<?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>217919</bug_id>
          
          <creation_ts>2020-10-19 13:30:03 -0700</creation_ts>
          <short_desc>Rename HighlightMap to HighlightRegister and HighlightRangeGroup to Highlight to match current spec</short_desc>
          <delta_ts>2020-10-20 16:59:17 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1699402</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-19 13:30:03 -0700</bug_when>
    <thetext>Rename HighlightMap to HighlightRegister to match current spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699407</commentid>
    <comment_count>1</comment_count>
      <attachid>411788</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-19 13:34:14 -0700</bug_when>
    <thetext>Created attachment 411788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699412</commentid>
    <comment_count>2</comment_count>
      <attachid>411788</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-19 13:42:44 -0700</bug_when>
    <thetext>Comment on attachment 411788
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests, no new behavior, rename only.

A link the the spec would be nice here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699436</commentid>
    <comment_count>3</comment_count>
      <attachid>411799</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-19 14:26:24 -0700</bug_when>
    <thetext>Created attachment 411799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699444</commentid>
    <comment_count>4</comment_count>
      <attachid>411799</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-19 14:36:22 -0700</bug_when>
    <thetext>Comment on attachment 411799
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests, no new behavior, rename only.

Shouldn&apos;t this have at least broken some tests. The names of the IDL exposed constructors are changed and that is observable.

&gt; Source/WebCore/Modules/highlight/Highlight.h:38
&gt; +class CSSStyleDeclaration;
&gt; +class DOMSetAdapter;
&gt; +class StaticRange;
&gt; +class PropertySetCSSStyleDeclaration;

Please sort these.

&gt; Source/WebCore/Modules/highlight/Highlight.h:42
&gt; +struct HighlightRangeData : RefCounted&lt;HighlightRangeData&gt;, public CanMakeWeakPtr&lt;HighlightRangeData&gt; {
&gt; +    
&gt; +    HighlightRangeData(Ref&lt;StaticRange&gt;&amp;&amp; range)

You don&apos;t need this newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699446</commentid>
    <comment_count>5</comment_count>
      <attachid>411799</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-19 14:38:54 -0700</bug_when>
    <thetext>Comment on attachment 411799
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        No new tests, no new behavior, rename only.
&gt; 
&gt; Shouldn&apos;t this have at least broken some tests. The names of the IDL exposed constructors are changed and that is observable.

Agreed, if this does not break tests then this shows lack of test coverage and we should add test coverage for the name of these interfaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699535</commentid>
    <comment_count>6</comment_count>
      <attachid>411818</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-19 17:09:53 -0700</bug_when>
    <thetext>Created attachment 411818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699541</commentid>
    <comment_count>7</comment_count>
      <attachid>411818</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-10-19 17:25:49 -0700</bug_when>
    <thetext>Comment on attachment 411818
Patch

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

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-text.html:29
&gt; +        let highlight1 = new highlight(new StaticRange({startContainer: textElement.childNodes[0], startOffset: 1, endContainer: textElement.childNodes[0], endOffset: 2}));

`new Highlight`?

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-text.html:31
&gt; +        let highlight2 = new highlight(new StaticRange({startContainer: textElement.childNodes[0], startOffset: 3, endContainer: textElement.childNodes[0], endOffset: 4}));

(Ditto)

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-text.html:34
&gt; +        let highlight3 = new highlight(new StaticRange({startContainer: textElement.childNodes[0], startOffset: 7, endContainer: textElement.childNodes[0], endOffset: 8}));

(Ditto)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699604</commentid>
    <comment_count>8</comment_count>
      <attachid>411818</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-19 21:10:49 -0700</bug_when>
    <thetext>Comment on attachment 411818
Patch

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

Looks ike you also need to fix highlight/highlight-world-leak.html

&gt; Source/WebCore/Modules/highlight/Highlight.cpp:2
&gt; + * Copyright (C) 2019 Apple Inc. All rights reserved.

2019-2020?

&gt; Source/WebCore/Modules/highlight/Highlight.cpp:61
&gt; +    auto* startNode = &amp;range.startContainer();
&gt; +    auto* endNode = &amp;range.endContainer();

Please use makeRefPtr.

&gt; Source/WebCore/Modules/highlight/Highlight.cpp:74
&gt; +    auto node = startNode;
&gt; +    while (node != endNode) {

Use intersectingNodes?

&gt; Source/WebCore/Modules/highlight/Highlight.h:2
&gt; + * Copyright (C) 2019 Apple Inc. All rights reserved.

2019-2020?

&gt; Source/WebCore/Modules/highlight/Highlight.h:41
&gt; +    

Nit: Whitespace.

&gt; Source/WebCore/Modules/highlight/Highlight.h:46
&gt; +    

Nit: Whitespace.

&gt; Source/WebCore/Modules/highlight/Highlight.h:51
&gt; +    

Nit: Whitespace.

&gt; Source/WebCore/Modules/highlight/Highlight.h:60
&gt; +    

Nit: Whitespace.

&gt; Source/WebCore/Modules/highlight/Highlight.h:65
&gt; +    

Nit: Whitespace.

&gt; Source/WebCore/Modules/highlight/Highlight.h:69
&gt; +    

Nit: Whitespace.

&gt; LayoutTests/highlight/highlight-interfaces.html:16
&gt; +shouldBeDefined(&apos;new HighlightRegister().set(&quot;foo-styling&quot;,new HighlightRegister(new StaticRange({startContainer: document.body, startOffset: 1, endContainer: document.body, endOffset: 2})))&apos;);

This appears to be failing on Mojave. Surely, the second argument must one a Highlight, not HighlightRegister.

-PASS new HighlightRegister().set(&quot;foo-styling&quot;,new Highlight(new StaticRange({startContainer: document.body, startOffset: 1, endContainer: document.body, endOffset: 2}))) is defined.
+FAIL new HighlightRegister().set(&quot;foo-styling&quot;,new HighlightRegister(new StaticRange({startContainer: document.body, startOffset: 1, endContainer: document.body, endOffset: 2}))) should be defined. Threw exception TypeError: Argument 2 (&apos;value&apos;) to HighlightRegister.set must be an instance of Highlight
 PASS CSS.highlights is defined.
-PASS CSS.highlights.set(&quot;foo-styling&quot;,new Highlight(new StaticRange({startContainer: document.body, startOffset: 1, endContainer: document.body, endOffset: 2}))) is CSS.highlights
+FAIL CSS.highlights.set(&quot;foo-styling&quot;,new HighlightRegister(new StaticRange({startContainer: document.body, startOffset: 1, endContainer: document.body, endOffset: 2}))) should be [object HighlightRegister]. Threw exception TypeError: Argument 2 (&apos;value&apos;) to HighlightRegister.set must be an instance of Highlight
 PASS successfullyParsed is true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699720</commentid>
    <comment_count>9</comment_count>
      <attachid>411867</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-20 08:22:23 -0700</bug_when>
    <thetext>Created attachment 411867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699732</commentid>
    <comment_count>10</comment_count>
      <attachid>411869</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-20 08:45:11 -0700</bug_when>
    <thetext>Created attachment 411869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699788</commentid>
    <comment_count>11</comment_count>
      <attachid>411877</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-20 09:47:05 -0700</bug_when>
    <thetext>Created attachment 411877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699793</commentid>
    <comment_count>12</comment_count>
      <attachid>411878</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-20 09:58:35 -0700</bug_when>
    <thetext>Created attachment 411878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699852</commentid>
    <comment_count>13</comment_count>
      <attachid>411890</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-20 11:11:46 -0700</bug_when>
    <thetext>Created attachment 411890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699988</commentid>
    <comment_count>14</comment_count>
      <attachid>411932</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-20 16:12:37 -0700</bug_when>
    <thetext>Created attachment 411932
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700016</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-20 16:58:07 -0700</bug_when>
    <thetext>Committed r268774: &lt;https://trac.webkit.org/changeset/268774&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411932.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700017</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-20 16:59:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/70508151&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411788</attachid>
            <date>2020-10-19 13:34:14 -0700</date>
            <delta_ts>2020-10-19 20:59:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217919-20201019133413.patch</filename>
            <type>text/plain</type>
            <size>51691</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiY2FmMTc5NjJkZGEy
MTRkZTNkZWEzMWE3ODYzMDhjMTMzNWQ1My4uNjFlMWY2MWZlOTA1YzE4YWQ2ZmVkNTRhMzAzZjk4
MThlNTk3MTg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTEwLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEhp
Z2hsaWdodE1hcCB0byBIaWdobGlnaHRSZWdpc3RlciBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB0
byBIaWdobGlnaHQgdG8gbWF0Y2ggY3VycmVudCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG5ldyBiZWhhdmlvciwg
cmVuYW1lIG9ubHkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodFJhbmdlR3JvdXAuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0OjpIaWdo
bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0Ojppbml0aWFsaXplU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIaWdobGlnaHQ6OnJlbW92ZUZyb21TZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hs
aWdodDo6Y2xlYXJGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHQ6OmFk
ZFRvU2V0TGlrZSk6CisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0Lmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5n
ZUdyb3VwLmguCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmlkbDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdl
R3JvdXAuaWRsLgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVy
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodE1hcC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6aW5pdGlh
bGl6ZU1hcExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OnNldEZy
b21NYXBMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpjbGVhcik6
CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3ZlKToKKyAgICAgICAg
KiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmguCisgICAgICAgIChX
ZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okhp
Z2hsaWdodFJlZ2lzdGVyOjptYXAgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwuCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBjc3MvRE9NQ1NTTmFt
ZXNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNTU05hbWVzcGFjZTo6aGlnaGxpZ2h0
cyk6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVzcGFjZS5oOgorICAgICAgICAqIGNzcy9ET01D
U1NOYW1lc3BhY2UuaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Y29tbW9uVGVhcmRvd24pOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmhpZ2hsaWdodFJlZ2lzdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1
cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omhp
Z2hsaWdodE1hcCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbGxlY3RN
YXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6Y2FsY3Vs
YXRlSGlnaGxpZ2h0Q29sb3IgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9TZWxlY3Rpb25S
YW5nZURhdGEuY3BwOgorCiAyMDIwLTEwLTE5ICBQYXRyaWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OKHIyNjUyMzEpOiBPdmVy
bGF5OiBub2RlIGluZm8gc29tZXRpbWVzIGRyYXdzIG9uIG9uZSBsaW5lCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA3YTQ1NDFkMTdmZWIz
ZTA4MjgxZWFhZmMwNDM5ZmEwYjJhNzZjMjkwLi5jZGNiMjkyZjUxZmNlNWFjZTFjNzg5Mjk3ZGZi
ZGM5ZmYxMjMwNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKQEAgLTEyOSw4ICsxMjksOCBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbAotJChQUk9KRUNUX0RJUikvTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2lu
ZG93K0luZGV4ZWREYXRhYmFzZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ckRpcmVjdGlvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKaW5kZXggZTk0NzI5MDYyMjA4OTFhY2Q2M2IwMTliMGY5M2E2MWFhNjBiMzQw
ZC4uOTVkZDZlOTZkNDY4NDI4ZGViMWZiZmRhNTczZDIyN2IzNjMwYTJhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTExMDgsMTAg
KzExMDgsMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNIYXNoQ2hhbmdlRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hkck1ldGFkYXRhVHlwZS5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGRyTWV0YWRhdGFUeXBlLmgKLSQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGlnaGxpZ2h0TWFwLmNw
cAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGln
aHRNYXAuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
aWdobGlnaHRSYW5nZUdyb3VwLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNIaWdobGlnaHRSYW5nZUdyb3VwLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJlZ2lzdGVy
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGlnaGxp
Z2h0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
aWdobGlnaHQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNIaXN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIaXN0b3J5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSGtkZlBhcmFtcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDI2
OTRmMDY1MWIzZWU2NzJlM2EzMGRkYWJhODIzMGM1N2U2OWIxMzYuLmU0YTUwYzVkYjczYTIyOTgx
ZWM0NjcyMjcyYzVhMjhkZjgxMGIxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpA
QCAtMTU1LDggKzE1NSw4IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsIFwKLSAgICAkKFdlYkNv
cmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsIFwKKyAgICAkKFdl
YkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbCBcCisgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvdytJbmRleGVkRGF0YWJhc2UuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5pZGwgXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yRGlyZWN0aW9uLmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2Zi
YWZiN2MyZWJjNDY1MzBjMzkzZWQyMzZhNDc5YzU1ZDI3MjdlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmNwcApAQCAtMCwwICsx
LDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIaWdo
bGlnaHQuaCIKKworI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01TZXRMaWtl
LmgiCisjaW5jbHVkZSAiSlNTdGF0aWNSYW5nZS5oIgorI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwu
aCIKKyNpbmNsdWRlICJQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgorI2luY2x1ZGUgIlN0
eWxlUHJvcGVydGllcy5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitIaWdobGlnaHQ6OkhpZ2hsaWdodChSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCit7
CisgICAgYXV0byBteVJhbmdlID0gV1RGTW92ZShyYW5nZSk7CisgICAgYWRkVG9TZXRMaWtlKG15
UmFuZ2UuZ2V0KCkpOworfQorCitSZWY8SGlnaGxpZ2h0PiBIaWdobGlnaHQ6OmNyZWF0ZShTdGF0
aWNSYW5nZSYgcmFuZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0KHJh
bmdlKSk7Cit9CisKK3ZvaWQgSGlnaGxpZ2h0Ojppbml0aWFsaXplU2V0TGlrZShET01TZXRBZGFw
dGVyJiBzZXQpCit7CisgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBtX3Jhbmdlc0RhdGEpCisg
ICAgICAgIHNldC5hZGQ8SURMSW50ZXJmYWNlPFN0YXRpY1JhbmdlPj4ocmFuZ2VEYXRhLT5yYW5n
ZSk7Cit9CisKK3N0YXRpYyB2b2lkIHJlcGFpbnRSYW5nZShjb25zdCBTdGF0aWNSYW5nZSYgcmFu
Z2UpCit7CisgICAgYXV0byogc3RhcnROb2RlID0gJnJhbmdlLnN0YXJ0Q29udGFpbmVyKCk7Cisg
ICAgYXV0byogZW5kTm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKKyAgICBhdXRvIG9yZGVy
aW5nID0gZG9jdW1lbnRPcmRlcigqc3RhcnROb2RlLCAqZW5kTm9kZSk7CisgICAgaWYgKGlzX2Vx
KG9yZGVyaW5nKSkgeworICAgICAgICBpZiAoYXV0byByZW5kZXJlciA9IHN0YXJ0Tm9kZS0+cmVu
ZGVyZXIoKSkKKyAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKGlzX2d0KG9yZGVyaW5nKSkgeworICAgICAgICBzdGFydE5vZGUg
PSAmcmFuZ2UuZW5kQ29udGFpbmVyKCk7CisgICAgICAgIGVuZE5vZGUgPSAmcmFuZ2Uuc3RhcnRD
b250YWluZXIoKTsKKyAgICB9CisKKyAgICBhdXRvIG5vZGUgPSBzdGFydE5vZGU7CisgICAgd2hp
bGUgKG5vZGUgIT0gZW5kTm9kZSkgeworICAgICAgICBpZiAoYXV0byByZW5kZXJlciA9IG5vZGUt
PnJlbmRlcmVyKCkpCisgICAgICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOworICAgICAgICBu
b2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9kZSk7CisgICAgfQorfQorCitib29sIEhpZ2hs
aWdodDo6cmVtb3ZlRnJvbVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAg
IHJldHVybiBtX3Jhbmdlc0RhdGEucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBS
ZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVudCkgeworICAgICAgICByZXBhaW50UmFuZ2Uo
cmFuZ2UpOworICAgICAgICByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5n
ZTsKKyAgICB9KTsKK30KKwordm9pZCBIaWdobGlnaHQ6OmNsZWFyRnJvbVNldExpa2UoKQorewor
ICAgIGZvciAoYXV0byYgZGF0YSA6IG1fcmFuZ2VzRGF0YSkKKyAgICAgICAgcmVwYWludFJhbmdl
KGRhdGEtPnJhbmdlKTsKKworICAgIG1fcmFuZ2VzRGF0YS5jbGVhcigpOworfQorCitib29sIEhp
Z2hsaWdodDo6YWRkVG9TZXRMaWtlKFN0YXRpY1JhbmdlJiByYW5nZSkKK3sKKyAgICBpZiAobm90
Rm91bmQgIT0gbV9yYW5nZXNEYXRhLmZpbmRNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGln
aGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVudCkgeyByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5n
ZXQoKSA9PSByYW5nZTsgfSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXBhaW50UmFu
Z2UocmFuZ2UpOworICAgIG1fcmFuZ2VzRGF0YS5hcHBlbmQoSGlnaGxpZ2h0UmFuZ2VEYXRhOjpj
cmVhdGUocmFuZ2UpKTsKKyAgICAKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlM2Zi
NjExZTM5MTE4MjYwMTQyYzAyM2U4ZTM3MGY0YzUyNTljNGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaApAQCAtMCwwICsxLDc2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgorI2luY2x1ZGUgIlBvc2l0aW9uLmgiCisjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENT
U1N0eWxlRGVjbGFyYXRpb247CitjbGFzcyBET01TZXRBZGFwdGVyOworY2xhc3MgU3RhdGljUmFu
Z2U7CitjbGFzcyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb247CisKK3N0cnVjdCBIaWdo
bGlnaHRSYW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+IHsKKyAgICAKKyAgICBIaWdobGlnaHRS
YW5nZURhdGEoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQorICAgICAgICA6IHJhbmdlKFdURk1v
dmUocmFuZ2UpKQorICAgIHsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFJlZjxIaWdobGlnaHRS
YW5nZURhdGE+IGNyZWF0ZShSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRSYW5nZURhdGEoV1RGTW92ZShyYW5nZSkp
KTsKKyAgICB9CisgICAgCisgICAgUmVmPFN0YXRpY1JhbmdlPiByYW5nZTsKKyAgICBPcHRpb25h
bDxQb3NpdGlvbj4gc3RhcnRQb3NpdGlvbjsKKyAgICBPcHRpb25hbDxQb3NpdGlvbj4gZW5kUG9z
aXRpb247Cit9OworCitjbGFzcyBIaWdobGlnaHQgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGln
aHQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0YXRpY1Jh
bmdlJik7CisgICAgCisgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CisgICAgYm9vbCBhZGRU
b1NldExpa2UoU3RhdGljUmFuZ2UmKTsKKyAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0
IFN0YXRpY1JhbmdlJik7CisgICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVy
Jik7CisgICAgCisgICAgY29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURhdGE+PiYgcmFu
Z2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQorCisgICAgLy8gRklYTUU6
IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgpOworICAgIAor
cHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1fcmFuZ2VzRGF0
YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8cmRhcjovL3By
b2JsZW0vNTc3NjA2MTQ+CisgICAgZXhwbGljaXQgSGlnaGxpZ2h0KFJlZjxTdGF0aWNSYW5nZT4m
Jik7Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZWI3YTlmMjE2ZTkzMDkxNzYzNjIzNjNkODgxZmZhMzA3
OWRhZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSGlnaGxpZ2h0IHsKKyAgICBjb25z
dHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7CisKKyAgICBzZXRsaWtlPFN0YXRpY1JhbmdlPjsK
KyAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9u
IHN0eWxlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRNYXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzlmZmFjMTg3MGMx
ZjZjMTM1YTA4MDJmYzRlNmMxYzE4YmRhZjA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodE1hcC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgotCi0jaW5jbHVk
ZSAiSURMVHlwZXMuaCIKLSNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIKLSNpbmNsdWRlICJKU0hp
Z2hsaWdodFJhbmdlR3JvdXAuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotdm9pZCBI
aWdobGlnaHRNYXA6OmluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImIG1hcCkKLXsKLSAg
ICBmb3IgKGF1dG8mIGtleVZhbHVlIDogbV9tYXApCi0gICAgICAgIG1hcC5zZXQ8SURMRE9NU3Ry
aW5nLCBJRExJbnRlcmZhY2U8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+KGtleVZhbHVlLmtleSwga2V5
VmFsdWUudmFsdWUpOwotfQotCi12b2lkIEhpZ2hsaWdodE1hcDo6c2V0RnJvbU1hcExpa2UoU3Ry
aW5nJiYga2V5LCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJiB2YWx1ZSkKLXsKLSAgICBtX21h
cC5zZXQoV1RGTW92ZShrZXkpLCBXVEZNb3ZlKHZhbHVlKSk7Ci19Ci0KLXZvaWQgSGlnaGxpZ2h0
TWFwOjpjbGVhcigpCi17Ci0gICAgbV9tYXAuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRN
YXA6OnJlbW92ZShjb25zdCBTdHJpbmcmIGtleSkKLXsKLSAgICByZXR1cm4gbV9tYXAucmVtb3Zl
KGtleSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodE1hcC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0TWFwLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwOWNlOTc5MjE1MGZj
NzcxYjhlODkxNDNhMThjMjQzYTY4OGIwNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0TWFwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCi0jaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIERPTU1hcEFkYXB0ZXI7Ci1jbGFzcyBET01TdHJpbmc7Ci1jbGFz
cyBIaWdobGlnaHRSYW5nZUdyb3VwOwotCi1jbGFzcyBIaWdobGlnaHRNYXAgOiBwdWJsaWMgUmVm
Q291bnRlZDxIaWdobGlnaHRNYXA+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dE1hcD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRNYXApOyB9Ci0K
LSAgICB2b2lkIGluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImKTsKLSAgICB2b2lkIHNl
dEZyb21NYXBMaWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJik7Ci0gICAg
dm9pZCBjbGVhcigpOwotICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOwotICAgIAotICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+JiBtYXAoKSBj
b25zdCB7IHJldHVybiBtX21hcDsgfQotICAgIAotcHJpdmF0ZToKLSAgICBIaWdobGlnaHRNYXAo
KSA9IGRlZmF1bHQ7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGlnaHRSYW5nZUdyb3Vw
Pj4gbV9tYXA7Ci19OwotCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRNYXAuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTI1
MWYwNThhODRkMjM0OWVhNGVlNzg4M2Q0ZWE4YThiYTgyZTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodE1hcC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLAotICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIEhp
Z2hsaWdodE1hcCB7Ci0gICAgY29uc3RydWN0b3IoKTsKLQotICAgIG1hcGxpa2U8RE9NU3RyaW5n
LCBIaWdobGlnaHRSYW5nZUdyb3VwPjsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZGQ4NzI5NmNlNzVlYjk5MzE3MDI4NGU0YjEyYWI5YThmOTdlNjM2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgotCi0jaW5jbHVkZSAiSURMVHlwZXMu
aCIKLSNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKLSNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgi
Ci0jaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgotI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgotI2luY2x1ZGUgIlN0
YXRpY1JhbmdlLmgiCi0jaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSA8d3Rm
L1JlZi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUhpZ2hsaWdodFJhbmdlR3JvdXA6Okhp
Z2hsaWdodFJhbmdlR3JvdXAoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQotewotICAgIGF1dG8g
bXlSYW5nZSA9IFdURk1vdmUocmFuZ2UpOwotICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgp
KTsKLX0KLQotUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNy
ZWF0ZShTdGF0aWNSYW5nZSYgcmFuZ2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGln
aGxpZ2h0UmFuZ2VHcm91cChyYW5nZSkpOwotfQotCi12b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6
OmluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKLXsKLSAgICBmb3IgKGF1dG8m
IHJhbmdlRGF0YSA6IG1fcmFuZ2VzRGF0YSkKLSAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8
U3RhdGljUmFuZ2U+PihyYW5nZURhdGEtPnJhbmdlKTsKLX0KLQotc3RhdGljIHZvaWQgcmVwYWlu
dFJhbmdlKGNvbnN0IFN0YXRpY1JhbmdlJiByYW5nZSkKLXsKLSAgICBhdXRvKiBzdGFydE5vZGUg
PSAmcmFuZ2Uuc3RhcnRDb250YWluZXIoKTsKLSAgICBhdXRvKiBlbmROb2RlID0gJnJhbmdlLmVu
ZENvbnRhaW5lcigpOwotICAgIGF1dG8gb3JkZXJpbmcgPSBkb2N1bWVudE9yZGVyKCpzdGFydE5v
ZGUsICplbmROb2RlKTsKLSAgICBpZiAoaXNfZXEob3JkZXJpbmcpKSB7Ci0gICAgICAgIGlmIChh
dXRvIHJlbmRlcmVyID0gc3RhcnROb2RlLT5yZW5kZXJlcigpKQotICAgICAgICAgICAgcmVuZGVy
ZXItPnJlcGFpbnQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXNfZ3Qob3Jk
ZXJpbmcpKSB7Ci0gICAgICAgIHN0YXJ0Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKLSAg
ICAgICAgZW5kTm9kZSA9ICZyYW5nZS5zdGFydENvbnRhaW5lcigpOwotICAgIH0KLQotICAgIGF1
dG8gbm9kZSA9IHN0YXJ0Tm9kZTsKLSAgICB3aGlsZSAobm9kZSAhPSBlbmROb2RlKSB7Ci0gICAg
ICAgIGlmIChhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJl
bmRlcmVyLT5yZXBhaW50KCk7Ci0gICAgICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpu
b2RlKTsKLSAgICB9Ci19Ci0KLWJvb2wgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlRnJvbVNl
dExpa2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIHJldHVybiBtX3Jhbmdlc0Rh
dGEucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VE
YXRhPiYgY3VycmVudCkgewotICAgICAgICByZXBhaW50UmFuZ2UocmFuZ2UpOwotICAgICAgICBy
ZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsKLSAgICB9KTsKLX0KLQot
dm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21TZXRMaWtlKCkKLXsKLSAgICBmb3Ig
KGF1dG8mIGRhdGEgOiBtX3Jhbmdlc0RhdGEpCi0gICAgICAgIHJlcGFpbnRSYW5nZShkYXRhLT5y
YW5nZSk7Ci0KLSAgICBtX3Jhbmdlc0RhdGEuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRS
YW5nZUdyb3VwOjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIGlmIChu
b3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxI
aWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7IHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdl
LmdldCgpID09IHJhbmdlOyB9KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlcGFpbnRS
YW5nZShyYW5nZSk7Ci0gICAgbV9yYW5nZXNEYXRhLmFwcGVuZChIaWdobGlnaHRSYW5nZURhdGE6
OmNyZWF0ZShyYW5nZSkpOwotICAgIAotICAgIHJldHVybiB0cnVlOwotfQotCi19Ci0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ4MWU5ZWY3MjMzNDAzZmMzMzg1
ZTE0NjMxZmNiMGE5YzVlYTYwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5n
ZUdyb3VwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlBvc2l0aW9u
LmgiCi0jaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247Ci1j
bGFzcyBET01TZXRBZGFwdGVyOwotY2xhc3MgU3RhdGljUmFuZ2U7Ci1jbGFzcyBQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb247Ci0KLXN0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZD
b3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGln
aHRSYW5nZURhdGE+IHsKLSAgICAKLSAgICBIaWdobGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1Jh
bmdlPiYmIHJhbmdlKQotICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFuZ2UpKQotICAgIHsKLSAg
ICB9Ci0gICAgCi0gICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShSZWY8
U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIaWdobGlnaHRSYW5nZURhdGEoV1RGTW92ZShyYW5nZSkpKTsKLSAgICB9Ci0gICAgCi0gICAg
UmVmPFN0YXRpY1JhbmdlPiByYW5nZTsKLSAgICBPcHRpb25hbDxQb3NpdGlvbj4gc3RhcnRQb3Np
dGlvbjsKLSAgICBPcHRpb25hbDxQb3NpdGlvbj4gZW5kUG9zaXRpb247Ci19OwotCi1jbGFzcyBI
aWdobGlnaHRSYW5nZUdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VHcm91
cD4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gY3JlYXRl
KFN0YXRpY1JhbmdlJik7Ci0gICAgCi0gICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7Ci0gICAg
Ym9vbCBhZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmKTsKLSAgICBib29sIHJlbW92ZUZyb21TZXRM
aWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7Ci0gICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShET01T
ZXRBZGFwdGVyJik7Ci0gICAgCi0gICAgY29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURh
dGE+PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQotCi0gICAg
Ly8gRklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgp
OwotICAgIAotcHJpdmF0ZToKLSAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1f
cmFuZ2VzRGF0YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8
cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+Ci0gICAgZXhwbGljaXQgSGlnaGxpZ2h0UmFuZ2VHcm91
cChSZWY8U3RhdGljUmFuZ2U+JiYpOwotfTsKLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjVhYTQxZWE2NDVjZTY0ZTdjMDY5NTQyN2U0ZjZjOTBh
YWRlMDA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBFbmFibGVk
QXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAot
ICAgIEV4cG9zZWQ9V2luZG93Ci1dIGludGVyZmFjZSBIaWdobGlnaHRSYW5nZUdyb3VwIHsKLSAg
ICBjb25zdHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7Ci0KLSAgICBzZXRsaWtlPFN0YXRpY1Jh
bmdlPjsKLSAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xh
cmF0aW9uIHN0eWxlOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjZiYTM0YTQ4YzkyYTQ4
NDI1OTMwYjFkYmJmNDQ2OGI3N2VkZDJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0
UmVnaXN0ZXIuaCIKKworI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01NYXBM
aWtlLmgiCisjaW5jbHVkZSAiSlNIaWdobGlnaHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIAordm9pZCBIaWdobGlnaHRSZWdpc3Rlcjo6aW5pdGlhbGl6ZU1hcExpa2UoRE9NTWFwQWRh
cHRlciYgbWFwKQoreworICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBtX21hcCkKKyAgICAgICAg
bWFwLnNldDxJRExET01TdHJpbmcsIElETEludGVyZmFjZTxIaWdobGlnaHQ+PihrZXlWYWx1ZS5r
ZXksIGtleVZhbHVlLnZhbHVlKTsKK30KKwordm9pZCBIaWdobGlnaHRSZWdpc3Rlcjo6c2V0RnJv
bU1hcExpa2UoU3RyaW5nJiYga2V5LCBSZWY8SGlnaGxpZ2h0PiYmIHZhbHVlKQoreworICAgIG1f
bWFwLnNldChXVEZNb3ZlKGtleSksIFdURk1vdmUodmFsdWUpKTsKK30KKwordm9pZCBIaWdobGln
aHRSZWdpc3Rlcjo6Y2xlYXIoKQoreworICAgIG1fbWFwLmNsZWFyKCk7Cit9CisKK2Jvb2wgSGln
aGxpZ2h0UmVnaXN0ZXI6OnJlbW92ZShjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICByZXR1cm4g
bV9tYXAucmVtb3ZlKGtleSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZmM2NDNlNTNk
Yjg4MzA4ZDZkZTc3YWM5ZjQ5ZGQ5Njk4MGZkYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkhpZ2hsaWdodC5o
IgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01NYXBBZGFwdGVyOworY2xhc3MgRE9N
U3RyaW5nOworY2xhc3MgSGlnaGxpZ2h0OworCitjbGFzcyBIaWdobGlnaHRSZWdpc3RlciA6IHB1
YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodFJlZ2lzdGVyPiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxIaWdobGlnaHRSZWdpc3Rlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBI
aWdobGlnaHRSZWdpc3Rlcik7IH0KKworICAgIHZvaWQgaW5pdGlhbGl6ZU1hcExpa2UoRE9NTWFw
QWRhcHRlciYpOworICAgIHZvaWQgc2V0RnJvbU1hcExpa2UoU3RyaW5nJiYsIFJlZjxIaWdobGln
aHQ+JiYpOworICAgIHZvaWQgY2xlYXIoKTsKKyAgICBib29sIHJlbW92ZShjb25zdCBTdHJpbmcm
KTsKKyAgICAKKyAgICBjb25zdCBIYXNoTWFwPFN0cmluZywgUmVmPEhpZ2hsaWdodD4+JiBtYXAo
KSBjb25zdCB7IHJldHVybiBtX21hcDsgfQorICAgIAorcHJpdmF0ZToKKyAgICBIaWdobGlnaHRS
ZWdpc3RlcigpID0gZGVmYXVsdDsKKyAgICBIYXNoTWFwPFN0cmluZywgUmVmPEhpZ2hsaWdodD4+
IG1fbWFwOworfTsKKworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI2Y2FjNjNiZDE2ODYz
OTQwMmE2YWE3MjMxODhlZmE0ZjdmYjY4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbApAQCAtMCwwICsxLDM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLAor
ICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50
ZXJmYWNlIEhpZ2hsaWdodFJlZ2lzdGVyIHsKKyAgICBjb25zdHJ1Y3RvcigpOworCisgICAgbWFw
bGlrZTxET01TdHJpbmcsIEhpZ2hsaWdodD47Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5MWM1ODc5
ODVlNDA5Y2ViMjEzMWI4OGExY2M0YmY3Y2E3ZjVjM2VkLi5jZTcxMzc4YTRlODY1NWUzZWZhYjUx
MDA2YjkyYjlmNWYzMjJmNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjQsOCArNjQsOCBAQCBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbkNvbnRyb2xsZXIuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29v
cmRpbmF0ZXMuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmNw
cAotTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcAotTW9kdWxlcy9oaWdobGlnaHQv
SGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAKK01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lz
dGVyLmNwcAorTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmNwcAogTW9kdWxlcy9pbmRleGVk
ZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmNwcAogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmNwcApAQCAtMzA1
Miw4ICszMDUyLDggQEAgSlNIVE1MVW5rbm93bkVsZW1lbnQuY3BwCiBKU0hUTUxWaWRlb0VsZW1l
bnQuY3BwCiBKU0hhc2hDaGFuZ2VFdmVudC5jcHAKIEpTSGRyTWV0YWRhdGFUeXBlLmNwcAotSlNI
aWdobGlnaHRNYXAuY3BwCi1KU0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCitKU0hpZ2hsaWdodFJl
Z2lzdGVyLmNwcAorSlNIaWdobGlnaHQuY3BwCiBKU0hpc3RvcnkuY3BwCiBKU0hrZGZQYXJhbXMu
Y3BwCiBKU0htYWNLZXlQYXJhbXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTM5YjcxYzYxMDVkZjQ2N2IzYjMwZjUyMjli
N2QwZDA1Mjk3Yjc1Yi4uMzk4MjY2OTM2MTdkY2JlOTQ1ZDIxNmI2YTA0ZTMyMWNjYjE1NThhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNzk0MywxMiArNzk0MywxMiBAQAogCQk0NEQ4REE5ODEzOTU0NUJFMDAzMzdCNzUgLyog
U1ZHTVBhdGhFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdNUGF0aEVsZW1l
bnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEQ4REE5QTEzOTU0NUNEMDAz
MzdCNzUgLyogU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDRFMzQ5RjcyNDZGNERDNzAwNjg0NzlDIC8qIExpYldlYlJUQ0VudW1UcmFpdHMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDRW51bVRyYWl0cy5oOyBw
YXRoID0gbGlid2VicnRjL0xpYldlYlJUQ0VudW1UcmFpdHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDRFODhFNEMyMzY5MTI4QTAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSGlnaGxpZ2h0TWFwLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNDRFODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdl
R3JvdXAuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhpZ2hsaWdodFJhbmdlR3JvdXAuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU1MDIzNkE1NkFDMDA5QjQ4NDcg
LyogSGlnaGxpZ2h0TWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpZ2hsaWdodE1hcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU1MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxp
Z2h0UmFuZ2VHcm91cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHRSYW5nZUdyb3VwLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTUyMjM2QTY2N0YwMDlCNDg0NyAvKiBI
aWdobGlnaHRNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaGxpZ2h0TWFwLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTQyMzZBNjZBMTAwOUI0ODQ3IC8qIEhp
Z2hsaWdodFJhbmdlR3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaGxpZ2h0UmFuZ2VH
cm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTRDMjM2OTEyOEEw
MDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
SGlnaGxpZ2h0UmVnaXN0ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NEU4
OEU0RDIzNjkxMjhCMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBIaWdobGlnaHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NEU4OEU1
MDIzNkE1NkFDMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SGlnaGxpZ2h0UmVnaXN0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDRFODhF
NTEyMzZBNUM4RDAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGln
aHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDRFODhFNTIyMzZBNjY3RjAwOUI0
ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hsaWdo
dFJlZ2lzdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDRFODhFNTQyMzZB
NjZBMTAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdobGln
aHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTBDRUJFRTE1MDczQkJFMDAy
QkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMYWJlbGFibGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDUwQ0VCRUYxNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGFiZWxhYmxlRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NTEyNTAyMDE1RENFMzdEMDAyRjg0RTIgLyogU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bp
bkJ1dHRvbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTkzNjks
MTIgKzE5MzY5LDEyIEBACiAJCTQ0RTg4RTQ3MjM2OERGMEYwMDlCNDg0NyAvKiBoaWdobGlnaHQg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTQ0RTg4RTUy
MjM2QTY2N0YwMDlCNDg0NyAvKiBIaWdobGlnaHRNYXAuY3BwICovLAotCQkJCTQ0RTg4RTUwMjM2
QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRNYXAuaCAqLywKLQkJCQk0NEU4OEU0QzIzNjkxMjhB
MDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmlkbCAqLywKLQkJCQk0NEU4OEU1NDIzNkE2NkExMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgKi8sCi0JCQkJNDRFODhFNTEyMzZBNUM4
RDAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuaCAqLywKLQkJCQk0NEU4OEU0RDIzNjkx
MjhCMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwgKi8sCisJCQkJNDRFODhFNTQy
MzZBNjZBMTAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5jcHAgKi8sCisJCQkJNDRFODhFNTEyMzZBNUM4
RDAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5oICovLAorCQkJCTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0
NyAvKiBIaWdobGlnaHQuaWRsICovLAorCQkJCTQ0RTg4RTUyMjM2QTY2N0YwMDlCNDg0NyAvKiBI
aWdobGlnaHRSZWdpc3Rlci5jcHAgKi8sCisJCQkJNDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8q
IEhpZ2hsaWdodFJlZ2lzdGVyLmggKi8sCisJCQkJNDRFODhFNEMyMzY5MTI4QTAwOUI0ODQ3IC8q
IEhpZ2hsaWdodFJlZ2lzdGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaGlnaGxpZ2h0Owog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCA5NzAyY2M1OTcyZTk5NTc5NmIxNzg0YjY5
YjAwYjYyNzE3MWY0NDM3Li4yMGQ5NWVlNTRlMDQ3NGY4ODIzMzYzZmQ5YzViMTVlNjY3N2RjNDE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1l
cy5oCkBAIC0xMjksOCArMTI5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKEdQ
VVRleHR1cmVWaWV3KSBcCiAgICAgbWFjcm8oR1BVVW5jYXB0dXJlZEVycm9yRXZlbnQpIFwKICAg
ICBtYWNybyhHUFVWYWxpZGF0aW9uRXJyb3IpIFwKLSAgICBtYWNybyhIaWdobGlnaHRNYXApIFwK
LSAgICBtYWNybyhIaWdobGlnaHRSYW5nZUdyb3VwKSBcCisgICAgbWFjcm8oSGlnaGxpZ2h0UmVn
aXN0ZXIpIFwKKyAgICBtYWNybyhIaWdobGlnaHQpIFwKICAgICBtYWNybyhIVE1MQXR0YWNobWVu
dEVsZW1lbnQpIFwKICAgICBtYWNybyhIVE1MQXVkaW9FbGVtZW50KSBcCiAgICAgbWFjcm8oSFRN
TERpYWxvZ0VsZW1lbnQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NO
YW1lc3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAKaW5k
ZXggMTllM2RkNjFlYTlkOWFhMDk3NTZjNzM0NjU1ZDRkYzc2NzA2ODcxYi4uZDU5MjU3MGI4NjMx
NmQ4MzFmYjU5N2EyOTE0Yjk3NWZiYjNkNDBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTUNTU05hbWVzcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05h
bWVzcGFjZS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNp
bmNsdWRlICJDU1NQcm9wZXJ0eVBhcnNlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5j
bHVkZSAiSGlnaGxpZ2h0TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNp
bmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC04OSw5ICs4OSw5IEBA
IFN0cmluZyBET01DU1NOYW1lc3BhY2U6OmVzY2FwZShjb25zdCBTdHJpbmcmIGlkZW50KQogICAg
IHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKLUhpZ2hsaWdodE1hcCYgRE9NQ1NTTmFt
ZXNwYWNlOjpoaWdobGlnaHRzKERvY3VtZW50JiBkb2N1bWVudCkKK0hpZ2hsaWdodFJlZ2lzdGVy
JiBET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAg
IHJldHVybiBkb2N1bWVudC5oaWdobGlnaHRNYXAoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQuaGln
aGxpZ2h0UmVnaXN0ZXIoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0RPTUNTU05hbWVzcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5o
CmluZGV4IDMwNDdlNTI3OTg0NDZjZDc3MDY2NzU1MDk0MTk5YTMxZWMwNWVjN2YuLjg2ZDI3ZmU5
ZmY3MTc3YjNlNGFjZGNiZTRlOWU0ZjU4N2FkMDQxYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmgKQEAgLTM3LDE1ICszNywxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEb2N1bWVudDsKLWNsYXNzIEhpZ2hsaWdodE1hcDsKLWNsYXNzIEhpZ2hsaWdodFJhbmdl
R3JvdXA7CitjbGFzcyBIaWdobGlnaHRSZWdpc3RlcjsKK2NsYXNzIEhpZ2hsaWdodDsKIAogY2xh
c3MgRE9NQ1NTTmFtZXNwYWNlIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NQ1NTTmFtZXNw
YWNlPiwgcHVibGljIFN1cHBsZW1lbnRhYmxlPERPTUNTU05hbWVzcGFjZT4gewogcHVibGljOgog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0
eSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHMoRG9jdW1l
bnQmLCBjb25zdCBTdHJpbmcmIGNvbmRpdGlvblRleHQpOwogICAgIHN0YXRpYyBTdHJpbmcgZXNj
YXBlKGNvbnN0IFN0cmluZyYgaWRlbnQpOwotICAgIHN0YXRpYyBIaWdobGlnaHRNYXAmIGhpZ2hs
aWdodHMoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgSGlnaGxpZ2h0UmVnaXN0ZXImIGhpZ2hsaWdo
dHMoRG9jdW1lbnQmKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
T01DU1NOYW1lc3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5p
ZGwKaW5kZXggNTYzNTU5MzU2ZmM2ZWE1MWE4YTFiY2MyMjAyMTNmM2Q4MDgyYzA3Ny4uMzRmM2Q3
MjQzNWQzNTVhMmRhMDZhYjY1Nzc1NTE2ZTVlZGY2Y2UyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RP
TUNTU05hbWVzcGFjZS5pZGwKQEAgLTM1LDUgKzM1LDUgQEAKICAgICBbQ2FsbFdpdGg9RG9jdW1l
bnRdIHN0YXRpYyBib29sZWFuIHN1cHBvcnRzKERPTVN0cmluZyBwcm9wZXJ0eSwgRE9NU3RyaW5n
IHZhbHVlKTsKICAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyBib29sZWFuIHN1cHBvcnRz
KERPTVN0cmluZyBjb25kaXRpb25UZXh0KTsKICAgICBzdGF0aWMgRE9NU3RyaW5nIGVzY2FwZShE
T01TdHJpbmcgaWRlbnQpOwotICAgIFtFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwgQ2Fs
bFdpdGg9RG9jdW1lbnRdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgSGlnaGxpZ2h0TWFwIGhp
Z2hsaWdodHM7CisgICAgW0VuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLCBDYWxsV2l0aD1E
b2N1bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSBIaWdobGlnaHRSZWdpc3RlciBoaWdo
bGlnaHRzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDA4NTM1ODllYWJhYzM1ZTc2
YWJhNmYyODJhZTU3NmM1OTJlMWU4ZTUuLjZlNWYwMWQ5YzMyZmQyMjY0NWEzMmI0MDA2MGNiMDRi
MWIxOTc2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTExLDcgKzExMSw3IEBACiAj
aW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNp
bmNsdWRlICJIYXNoQ2hhbmdlRXZlbnQuaCIKLSNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKKyNp
bmNsdWRlICJIaWdobGlnaHRSZWdpc3Rlci5oIgogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNs
dWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSWRsZUNhbGxiYWNrQ29udHJvbGxlci5o
IgpAQCAtNzkyLDggKzc5Miw4IEBAIHZvaWQgRG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKCkKIAog
ICAgIGNsZWFyU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKCk7CiAgICAgCi0gICAgaWYgKG1f
aGlnaGxpZ2h0TWFwKQotICAgICAgICBtX2hpZ2hsaWdodE1hcC0+Y2xlYXIoKTsKKyAgICBpZiAo
bV9oaWdobGlnaHRSZWdpc3RlcikKKyAgICAgICAgbV9oaWdobGlnaHRSZWdpc3Rlci0+Y2xlYXIo
KTsKIAogICAgIG1fcGVuZGluZ1Njcm9sbEV2ZW50VGFyZ2V0TGlzdCA9IG51bGxwdHI7CiAKQEAg
LTI3NjcsMTggKzI3NjcsMTggQEAgUmVmPERvY3VtZW50UGFyc2VyPiBEb2N1bWVudDo6Y3JlYXRl
UGFyc2VyKCkKICAgICByZXR1cm4gWE1MRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSgqdGhpcywgdmll
dygpKTsKIH0KIAotSGlnaGxpZ2h0TWFwJiBEb2N1bWVudDo6aGlnaGxpZ2h0TWFwKCkKK0hpZ2hs
aWdodFJlZ2lzdGVyJiBEb2N1bWVudDo6aGlnaGxpZ2h0UmVnaXN0ZXIoKQogewotICAgIGlmICgh
bV9oaWdobGlnaHRNYXApCi0gICAgICAgIG1faGlnaGxpZ2h0TWFwID0gSGlnaGxpZ2h0TWFwOjpj
cmVhdGUoKTsKLSAgICByZXR1cm4gKm1faGlnaGxpZ2h0TWFwOworICAgIGlmICghbV9oaWdobGln
aHRSZWdpc3RlcikKKyAgICAgICAgbV9oaWdobGlnaHRSZWdpc3RlciA9IEhpZ2hsaWdodFJlZ2lz
dGVyOjpjcmVhdGUoKTsKKyAgICByZXR1cm4gKm1faGlnaGxpZ2h0UmVnaXN0ZXI7CiB9CiAKIHZv
aWQgRG9jdW1lbnQ6OnVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpCiB7CiAgICAgVmVjdG9yPFdl
YWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gcmFuZ2VzRGF0YTsKLSAgICBpZiAobV9oaWdobGln
aHRNYXApIHsKLSAgICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodE1hcC0+
bWFwKCkpIHsKKyAgICBpZiAobV9oaWdobGlnaHRSZWdpc3RlcikgeworICAgICAgICBmb3IgKGF1
dG8mIGhpZ2hsaWdodCA6IG1faGlnaGxpZ2h0UmVnaXN0ZXItPm1hcCgpKSB7CiAgICAgICAgICAg
ICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHJhbmdlRGF0YS0+c3RhcnRQb3NpdGlvbiAmJiByYW5nZURh
dGEtPmVuZFBvc2l0aW9uKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggZGQ4ODNiMmEwN2M1NjIzNmVjY2ZkNTA0NWFhZTYwNmIzOTZlODc0Zi4u
OTNmYjc0OGE3Zjk1MjMxZDVkNjk4ZWFlNDAyMGEzZTkxMzViNjAyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTE1Niw3ICsxNTYsNyBAQCBjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwogY2xhc3Mg
SFRNTE1hcEVsZW1lbnQ7CiBjbGFzcyBIVE1MTWVkaWFFbGVtZW50OwogY2xhc3MgSFRNTFZpZGVv
RWxlbWVudDsKLWNsYXNzIEhpZ2hsaWdodE1hcDsKK2NsYXNzIEhpZ2hsaWdodFJlZ2lzdGVyOwog
Y2xhc3MgSGl0VGVzdExvY2F0aW9uOwogY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRU
ZXN0UmVzdWx0OwpAQCAtMTU2OSw3ICsxNTY5LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyJiB0ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxl
cigpOwogICAgIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyKiB0ZXh0TWFuaXB1bGF0aW9uQ29u
dHJvbGxlcklmRXhpc3RzKCkgeyByZXR1cm4gbV90ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5n
ZXQoKTsgfQogICAgICAgICAKLSAgICBIaWdobGlnaHRNYXAmIGhpZ2hsaWdodE1hcCgpOworICAg
IEhpZ2hsaWdodFJlZ2lzdGVyJiBoaWdobGlnaHRSZWdpc3RlcigpOwogICAgIHZvaWQgdXBkYXRl
SGlnaGxpZ2h0UG9zaXRpb25zKCk7CiAKICAgICBib29sIGFsbG93c0NvbnRlbnRKYXZhU2NyaXB0
KCkgY29uc3Q7CkBAIC0xOTI0LDcgKzE5MjQsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxUZXh0QXV0b1NpemluZz4gbV90ZXh0QXV0b1NpemluZzsKICNlbmRpZgogICAgICAgICAK
LSAgICBSZWZQdHI8SGlnaGxpZ2h0TWFwPiBtX2hpZ2hsaWdodE1hcDsKKyAgICBSZWZQdHI8SGln
aGxpZ2h0UmVnaXN0ZXI+IG1faGlnaGxpZ2h0UmVnaXN0ZXI7CiAKICAgICBUaW1lciBtX3Zpc3Vh
bFVwZGF0ZXNTdXBwcmVzc2lvblRpbWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGln
aGxpZ2h0RGF0YS5jcHAKaW5kZXggNjVlMzJhNDg1MGQ2N2NjZDAwNGUyYTc1NmIwZjFiN2Q3OGQx
YmNhNy4uMzllYjE1MTA5YWE2YzAyYTY4NmJlMDRkZTBjZGQ2YjAzN2M4ZmM5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgotI2lu
Y2x1ZGUgIkhpZ2hsaWdodFJhbmdlR3JvdXAuaCIKKyNpbmNsdWRlICJIaWdobGlnaHQuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNpbmNsdWRlICJSYW5n
ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IGNi
YzAzYTdkYjk4YzExNTM2YjM3MTI3M2FmYThhMzUwMzZkMTY3NTYuLjQ3MWI1ZTczZGY1N2RmNzg1
MDU0NDAwOGEwMjU0MTgxNDkwMjI1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhpZ2hsaWdodERhdGEuaCIKLSNp
bmNsdWRlICJIaWdobGlnaHRNYXAuaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSZWdpc3Rlci5oIgog
I2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIklubGluZVRleHRCb3hTdHlsZS5oIgpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgVmVjdG9y
PE1hcmtlZFRleHQ+IElubGluZVRleHRCb3g6OmNvbGxlY3RNYXJrZWRUZXh0c0ZvckhpZ2hsaWdo
dHMoVGV4dFBhaW50UGhhc2UKICAgICBhdXRvJiBwYXJlbnRSZW5kZXJlciA9IHBhcmVudCgpLT5y
ZW5kZXJlcigpOwogICAgIGF1dG8mIHBhcmVudFN0eWxlID0gcGFyZW50UmVuZGVyZXIuc3R5bGUo
KTsKICAgICBIaWdobGlnaHREYXRhIGhpZ2hsaWdodERhdGE7Ci0gICAgZm9yIChhdXRvJiBoaWdo
bGlnaHQgOiByZW5kZXJlcigpLmRvY3VtZW50KCkuaGlnaGxpZ2h0TWFwKCkubWFwKCkpIHsKKyAg
ICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5oaWdobGlnaHRS
ZWdpc3RlcigpLm1hcCgpKSB7CiAgICAgICAgIGF1dG8gcmVuZGVyU3R5bGUgPSBwYXJlbnRSZW5k
ZXJlci5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hsaWdodCwgaGlnaGxp
Z2h0LmtleSB9LCAmcGFyZW50U3R5bGUpOwogICAgICAgICBpZiAoIXJlbmRlclN0eWxlKQogICAg
ICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcAppbmRleCBhNzJmMWVkNzc5NzJhNDQ3NjFkYTA3NTFmZjQyN2E1MmE2MGI5Y2IzLi4z
Y2VlMDFmNDU5NTFjMTU5YTlkYTI4MzMxYTdlNjBjZGZlN2U2NDdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNs
dWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIkhpZ2hsaWdodERhdGEuaCIKLSNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKKyNp
bmNsdWRlICJIaWdobGlnaHRSZWdpc3Rlci5oIgogI2luY2x1ZGUgIklubGluZUVsZW1lbnRCb3gu
aCIKICNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvci5oIgogI2luY2x1ZGUg
IkxheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaCIKQEAgLTE1NCw3ICsxNTQsNyBAQCBpbmxp
bmUgc3RhdGljIGJvb2wgZHJhZ2dlZENvbnRlbnRDb250YWluc1JlcGxhY2VkRWxlbWVudChjb25z
dCBWZWN0b3I8UmVuZGVyZWREbwogQ29sb3IgUmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0ZUhpZ2hs
aWdodENvbG9yKCkgY29uc3QKIHsKICAgICBIaWdobGlnaHREYXRhIGhpZ2hsaWdodERhdGE7Ci0g
ICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBkb2N1bWVudCgpLmhpZ2hsaWdodE1hcCgpLm1hcCgp
KSB7CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBkb2N1bWVudCgpLmhpZ2hsaWdodFJlZ2lz
dGVyKCkubWFwKCkpIHsKICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQu
dmFsdWUtPnJhbmdlc0RhdGEoKSkgewogICAgICAgICAgICAgaWYgKCFoaWdobGlnaHREYXRhLnNl
dFJlbmRlclJhbmdlKHJhbmdlRGF0YSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwCmluZGV4IGY0
OTcxNjllMjdiZDRhNzIwNzE2MzdmNjBjMGQxZmY5MWE1NzE3OTguLmJlNjdlNjBlNzU5OTI0ZWNm
YWRkZWU5MmU2Yzc5ZDUyM2U2ZTdmY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCi0jaW5jbHVkZSAiSGlnaGxp
Z2h0UmFuZ2VHcm91cC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodC5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlICJQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCg==
</data>
<flag name="review"
          id="428096"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="428104"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411799</attachid>
            <date>2020-10-19 14:26:24 -0700</date>
            <delta_ts>2020-10-19 20:59:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217919-20201019142623.patch</filename>
            <type>text/plain</type>
            <size>52398</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiY2FmMTc5NjJkZGEy
MTRkZTNkZWEzMWE3ODYzMDhjMTMzNWQ1My4uNmZmYzY5ZTJlMjJlM2RjYjY2YzA1ZDc5Yzc0Njc1
MGZlZDFlN2UwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEhp
Z2hsaWdodE1hcCB0byBIaWdobGlnaHRSZWdpc3RlciBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB0
byBIaWdobGlnaHQgdG8gbWF0Y2ggY3VycmVudCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG5ldyBiZWhhdmlvciwg
cmVuYW1lIG9ubHkuCisgICAgICAgIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxp
Z2h0LWFwaS0xLworCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6SGlnaGxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodDo6aW5pdGlhbGl6ZVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGln
aHQ6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0OjphZGRU
b1NldExpa2UpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oLgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGw6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRNYXAuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmluaXRpYWxp
emVNYXBMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9t
TWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OnJlbW92ZSk6CisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oLgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSZWdpc3Rlcjo6bWFwIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMp
OgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBjc3MvRE9NQ1NT
TmFtZXNwYWNlLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpoaWdobGlnaHRSZWdpc3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBk
YXRlSGlnaGxpZ2h0UG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoaWdo
bGlnaHRNYXApOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFy
a2VkVGV4dHNGb3JIaWdobGlnaHRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0
ZUhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFu
Z2VEYXRhLmNwcDoKKwogMjAyMC0xMC0xOSAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTihyMjY1MjMxKTogT3Zlcmxh
eTogbm9kZSBpbmZvIHNvbWV0aW1lcyBkcmF3cyBvbiBvbmUgbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA2ZjEzNjM3MWQ4OWFiYmQ5NmRmYWRiZmYyMTNiN2Y3Nzc4ZDE2MjNhLi40ZmRlY2Iy
NjlkY2JiYzJlZjlkMjA5OThjM2RiZGQ4ZjFjZWM5YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjg5LDggKzI4OSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKLSAgICBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRNYXAuaWRsCi0gICAgTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5pZGwKKyAgICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCisgICAgTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9E
T01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDdhNDU0MWQxN2ZlYjNlMDgyODFlYWFmYzA0MzlmYTBiMmE3NmMyOTAuLmNkY2Iy
OTJmNTFmY2U1YWNlMWM3ODkyOTdkZmJkYzlmZjEyMzA2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI5LDggKzEyOSw4IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCi0kKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiskKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yRGlyZWN0aW9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIyMDg5MWFj
ZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi45NWRkNmU5NmQ0Njg0MjhkZWIxZmJmZGE1NzNkMjI3
YjM2MzBhMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMTEwOCwxMCArMTEwOCwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGFzaENoYW5nZUV2ZW50LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGRyTWV0YWRhdGFU
eXBlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
ZHJNZXRhZGF0YVR5cGUuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIaWdobGlnaHRNYXAuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodE1hcC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGln
aHRSZWdpc3Rlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSGlnaGxpZ2h0UmVnaXN0ZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIa2RmUGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjY5NGYwNjUxYjNlZTY3MmUzYTMwZGRhYmE4MjMwYzU3ZTY5
YjEzNi4uZTRhNTBjNWRiNzNhMjI5ODFlYzQ2NzIyNzJjNWEyOGRmODEwYjFiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTUsOCArMTU1LDggQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNr
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bk9wdGlvbnMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dE1hcC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93K0luZGV4
ZWREYXRhYmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JEaXJl
Y3Rpb24uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdjZmJhZmI3YzJlYmM0NjUzMGMzOTNlZDIzNmE0NzljNTVkMjcy
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHQuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodC5oIgorCisjaW5jbHVkZSAiSURMVHlwZXMuaCIK
KyNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKKyNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgiCisj
aW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlN0YXRp
Y1JhbmdlLmgiCisjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0hpZ2hsaWdodDo6SGlnaGxpZ2h0KFJlZjxT
dGF0aWNSYW5nZT4mJiByYW5nZSkKK3sKKyAgICBhdXRvIG15UmFuZ2UgPSBXVEZNb3ZlKHJhbmdl
KTsKKyAgICBhZGRUb1NldExpa2UobXlSYW5nZS5nZXQoKSk7Cit9CisKK1JlZjxIaWdobGlnaHQ+
IEhpZ2hsaWdodDo6Y3JlYXRlKFN0YXRpY1JhbmdlJiByYW5nZSkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBIaWdobGlnaHQocmFuZ2UpKTsKK30KKwordm9pZCBIaWdobGlnaHQ6OmluaXRp
YWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKK3sKKyAgICBmb3IgKGF1dG8mIHJhbmdl
RGF0YSA6IG1fcmFuZ2VzRGF0YSkKKyAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8U3RhdGlj
UmFuZ2U+PihyYW5nZURhdGEtPnJhbmdlKTsKK30KKworc3RhdGljIHZvaWQgcmVwYWludFJhbmdl
KGNvbnN0IFN0YXRpY1JhbmdlJiByYW5nZSkKK3sKKyAgICBhdXRvKiBzdGFydE5vZGUgPSAmcmFu
Z2Uuc3RhcnRDb250YWluZXIoKTsKKyAgICBhdXRvKiBlbmROb2RlID0gJnJhbmdlLmVuZENvbnRh
aW5lcigpOworICAgIGF1dG8gb3JkZXJpbmcgPSBkb2N1bWVudE9yZGVyKCpzdGFydE5vZGUsICpl
bmROb2RlKTsKKyAgICBpZiAoaXNfZXEob3JkZXJpbmcpKSB7CisgICAgICAgIGlmIChhdXRvIHJl
bmRlcmVyID0gc3RhcnROb2RlLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmVuZGVyZXItPnJl
cGFpbnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoaXNfZ3Qob3JkZXJpbmcp
KSB7CisgICAgICAgIHN0YXJ0Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKKyAgICAgICAg
ZW5kTm9kZSA9ICZyYW5nZS5zdGFydENvbnRhaW5lcigpOworICAgIH0KKworICAgIGF1dG8gbm9k
ZSA9IHN0YXJ0Tm9kZTsKKyAgICB3aGlsZSAobm9kZSAhPSBlbmROb2RlKSB7CisgICAgICAgIGlm
IChhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIHJlbmRlcmVy
LT5yZXBhaW50KCk7CisgICAgICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlKTsK
KyAgICB9Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0
aWNSYW5nZSYgcmFuZ2UpCit7CisgICAgcmV0dXJuIG1fcmFuZ2VzRGF0YS5yZW1vdmVGaXJzdE1h
dGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7
CisgICAgICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgICAgIHJldHVybiBjdXJyZW50Lmdl
dCgpLnJhbmdlLmdldCgpID09IHJhbmdlOworICAgIH0pOworfQorCit2b2lkIEhpZ2hsaWdodDo6
Y2xlYXJGcm9tU2V0TGlrZSgpCit7CisgICAgZm9yIChhdXRvJiBkYXRhIDogbV9yYW5nZXNEYXRh
KQorICAgICAgICByZXBhaW50UmFuZ2UoZGF0YS0+cmFuZ2UpOworCisgICAgbV9yYW5nZXNEYXRh
LmNsZWFyKCk7Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2Um
IHJhbmdlKQoreworICAgIGlmIChub3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1hdGNoaW5n
KFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7IHJldHVy
biBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOyB9KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgbV9yYW5nZXNEYXRhLmFwcGVu
ZChIaWdobGlnaHRSYW5nZURhdGE6OmNyZWF0ZShyYW5nZSkpOworICAgIAorICAgIHJldHVybiB0
cnVlOworfQorCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmUzZmI2MTFlMzkxMTgyNjAxNDJjMDIzZThlMzcwZjRjNTI1OWM0
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiUG9zaXRpb24uaCIKKyNpbmNsdWRl
ICJTdGF0aWNSYW5nZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIERPTVNldEFk
YXB0ZXI7CitjbGFzcyBTdGF0aWNSYW5nZTsKK2NsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNs
YXJhdGlvbjsKKworc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YSA6IFJlZkNvdW50ZWQ8SGlnaGxp
Z2h0UmFuZ2VEYXRhPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4g
eworICAgIAorICAgIEhpZ2hsaWdodFJhbmdlRGF0YShSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2Up
CisgICAgICAgIDogcmFuZ2UoV1RGTW92ZShyYW5nZSkpCisgICAgeworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4gY3JlYXRlKFJlZjxTdGF0aWNSYW5nZT4m
JiByYW5nZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJh
bmdlRGF0YShXVEZNb3ZlKHJhbmdlKSkpOworICAgIH0KKyAgICAKKyAgICBSZWY8U3RhdGljUmFu
Z2U+IHJhbmdlOworICAgIE9wdGlvbmFsPFBvc2l0aW9uPiBzdGFydFBvc2l0aW9uOworICAgIE9w
dGlvbmFsPFBvc2l0aW9uPiBlbmRQb3NpdGlvbjsKK307CisKK2NsYXNzIEhpZ2hsaWdodCA6IHB1
YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SGln
aGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKKyAgICAKKyAgICB2b2lkIGNsZWFyRnJvbVNl
dExpa2UoKTsKKyAgICBib29sIGFkZFRvU2V0TGlrZShTdGF0aWNSYW5nZSYpOworICAgIGJvb2wg
cmVtb3ZlRnJvbVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2UmKTsKKyAgICB2b2lkIGluaXRpYWxp
emVTZXRMaWtlKERPTVNldEFkYXB0ZXImKTsKKyAgICAKKyAgICBjb25zdCBWZWN0b3I8UmVmPEhp
Z2hsaWdodFJhbmdlRGF0YT4+JiByYW5nZXNEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXNE
YXRhOyB9CisKKyAgICAvLyBGSVhNRTogQWRkIFdFQkNPUkVfRVhQT1JUIENTU1N0eWxlRGVjbGFy
YXRpb24mIHN0eWxlKCk7CisgICAgCitwcml2YXRlOgorICAgIFZlY3RvcjxSZWY8SGlnaGxpZ2h0
UmFuZ2VEYXRhPj4gbV9yYW5nZXNEYXRhOyAvLyBGSVhNRTogdXNlIGEgSGFzaFNldCBpbnN0ZWFk
IG9mIGEgVmVjdG9yIDxyZGFyOi8vcHJvYmxlbS81Nzc2MDYxND4KKyAgICBleHBsaWNpdCBIaWdo
bGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmKTsKK307CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVlYjdhOWYyMTZl
OTMwOTE3NjM2MjM2M2Q4ODFmZmEzMDc5ZGFmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGwKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKKyAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFj
ZSBIaWdobGlnaHQgeworICAgIGNvbnN0cnVjdG9yKFN0YXRpY1JhbmdlIHJhbmdlKTsKKworICAg
IHNldGxpa2U8U3RhdGljUmFuZ2U+OworICAgIC8vIEZJWE1FOiBBZGQgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDJjOWZmYWMxODcwYzFmNmMxMzVhMDgwMmZjNGU2YzFjMThiZGFmMDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU2
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSGln
aGxpZ2h0TWFwLmgiCi0KLSNpbmNsdWRlICJJRExUeXBlcy5oIgotI2luY2x1ZGUgIkpTRE9NTWFw
TGlrZS5oIgotI2luY2x1ZGUgIkpTSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0gICAgCi12b2lkIEhpZ2hsaWdodE1hcDo6aW5pdGlhbGl6ZU1hcExpa2UoRE9N
TWFwQWRhcHRlciYgbWFwKQotewotICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBtX21hcCkKLSAg
ICAgICAgbWFwLnNldDxJRExET01TdHJpbmcsIElETEludGVyZmFjZTxIaWdobGlnaHRSYW5nZUdy
b3VwPj4oa2V5VmFsdWUua2V5LCBrZXlWYWx1ZS52YWx1ZSk7Ci19Ci0KLXZvaWQgSGlnaGxpZ2h0
TWFwOjpzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGlnaHRSYW5nZUdyb3Vw
PiYmIHZhbHVlKQotewotICAgIG1fbWFwLnNldChXVEZNb3ZlKGtleSksIFdURk1vdmUodmFsdWUp
KTsKLX0KLQotdm9pZCBIaWdobGlnaHRNYXA6OmNsZWFyKCkKLXsKLSAgICBtX21hcC5jbGVhcigp
OwotfQotCi1ib29sIEhpZ2hsaWdodE1hcDo6cmVtb3ZlKGNvbnN0IFN0cmluZyYga2V5KQotewot
ICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzA5Y2U5NzkyMTUwZmM3NzFiOGU4OTE0M2ExOGMyNDNhNjg4YjA2Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkhpZ2hsaWdodFJh
bmdlR3JvdXAuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRE9NTWFwQWRhcHRlcjsK
LWNsYXNzIERPTVN0cmluZzsKLWNsYXNzIEhpZ2hsaWdodFJhbmdlR3JvdXA7Ci0KLWNsYXNzIEhp
Z2hsaWdodE1hcCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodE1hcD4gewotcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0TWFwPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IEhpZ2hsaWdodE1hcCk7IH0KLQotICAgIHZvaWQgaW5pdGlhbGl6ZU1hcExpa2UoRE9NTWFw
QWRhcHRlciYpOwotICAgIHZvaWQgc2V0RnJvbU1hcExpa2UoU3RyaW5nJiYsIFJlZjxIaWdobGln
aHRSYW5nZUdyb3VwPiYmKTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgYm9vbCByZW1vdmUoY29u
c3QgU3RyaW5nJik7Ci0gICAgCi0gICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGln
aHRSYW5nZUdyb3VwPj4mIG1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwOyB9Ci0gICAgCi1wcml2
YXRlOgotICAgIEhpZ2hsaWdodE1hcCgpID0gZGVmYXVsdDsKLSAgICBIYXNoTWFwPFN0cmluZywg
UmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+PiBtX21hcDsKLX07Ci0KLX0KLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNhMjUxZjA1OGE4NGQyMzQ5ZWE0ZWU3ODgzZDRlYThhOGJhODJl
MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbAorKysgL2Rldi9udWxs
CkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgRW5hYmxlZEF0UnVudGltZT1I
aWdobGlnaHRBUEksCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBFeHBvc2Vk
PVdpbmRvdwotXSBpbnRlcmZhY2UgSGlnaGxpZ2h0TWFwIHsKLSAgICBjb25zdHJ1Y3RvcigpOwot
Ci0gICAgbWFwbGlrZTxET01TdHJpbmcsIEhpZ2hsaWdodFJhbmdlR3JvdXA+OwotfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkZDg3Mjk2Y2U3NWViOTkz
MTcwMjg0ZTRiMTJhYjlhOGY5N2U2MzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmFuZ2VHcm91cC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgi
Ci0KLSNpbmNsdWRlICJJRExUeXBlcy5oIgotI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgotI2lu
Y2x1ZGUgIkpTU3RhdGljUmFuZ2UuaCIKLSNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCi0jaW5j
bHVkZSAiUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgiCi0jaW5jbHVkZSAiUmVuZGVy
T2JqZWN0LmgiCi0jaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKLSNpbmNsdWRlICJTdHlsZVByb3Bl
cnRpZXMuaCIKLSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6SGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGljUmFuZ2U+
JiYgcmFuZ2UpCi17Ci0gICAgYXV0byBteVJhbmdlID0gV1RGTW92ZShyYW5nZSk7Ci0gICAgYWRk
VG9TZXRMaWtlKG15UmFuZ2UuZ2V0KCkpOwotfQotCi1SZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4g
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y3JlYXRlKFN0YXRpY1JhbmdlJiByYW5nZSkKLXsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKHJhbmdlKSk7Ci19Ci0KLXZv
aWQgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6aW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYg
c2V0KQotewotICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQotICAgICAg
ICBzZXQuYWRkPElETEludGVyZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOwot
fQotCi1zdGF0aWMgdm9pZCByZXBhaW50UmFuZ2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQot
ewotICAgIGF1dG8qIHN0YXJ0Tm9kZSA9ICZyYW5nZS5zdGFydENvbnRhaW5lcigpOwotICAgIGF1
dG8qIGVuZE5vZGUgPSAmcmFuZ2UuZW5kQ29udGFpbmVyKCk7Ci0gICAgYXV0byBvcmRlcmluZyA9
IGRvY3VtZW50T3JkZXIoKnN0YXJ0Tm9kZSwgKmVuZE5vZGUpOwotICAgIGlmIChpc19lcShvcmRl
cmluZykpIHsKLSAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSBzdGFydE5vZGUtPnJlbmRlcmVy
KCkpCi0gICAgICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIGlmIChpc19ndChvcmRlcmluZykpIHsKLSAgICAgICAgc3RhcnROb2RlID0gJnJh
bmdlLmVuZENvbnRhaW5lcigpOwotICAgICAgICBlbmROb2RlID0gJnJhbmdlLnN0YXJ0Q29udGFp
bmVyKCk7Ci0gICAgfQotCi0gICAgYXV0byBub2RlID0gc3RhcnROb2RlOwotICAgIHdoaWxlIChu
b2RlICE9IGVuZE5vZGUpIHsKLSAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSBub2RlLT5yZW5k
ZXJlcigpKQotICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKLSAgICAgICAgbm9kZSA9
IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUpOwotICAgIH0KLX0KLQotYm9vbCBIaWdobGlnaHRS
YW5nZUdyb3VwOjpyZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCi17
Ci0gICAgcmV0dXJuIG1fcmFuZ2VzRGF0YS5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmcmFuZ2VdKGNv
bnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7Ci0gICAgICAgIHJlcGFpbnRS
YW5nZShyYW5nZSk7Ci0gICAgICAgIHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09
IHJhbmdlOwotICAgIH0pOwotfQotCi12b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNsZWFyRnJv
bVNldExpa2UoKQotewotICAgIGZvciAoYXV0byYgZGF0YSA6IG1fcmFuZ2VzRGF0YSkKLSAgICAg
ICAgcmVwYWludFJhbmdlKGRhdGEtPnJhbmdlKTsKLQotICAgIG1fcmFuZ2VzRGF0YS5jbGVhcigp
OwotfQotCi1ib29sIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmFkZFRvU2V0TGlrZShTdGF0aWNSYW5n
ZSYgcmFuZ2UpCi17Ci0gICAgaWYgKG5vdEZvdW5kICE9IG1fcmFuZ2VzRGF0YS5maW5kTWF0Y2hp
bmcoWyZyYW5nZV0oY29uc3QgUmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQpIHsgcmV0
dXJuIGN1cnJlbnQuZ2V0KCkucmFuZ2UuZ2V0KCkgPT0gcmFuZ2U7IH0pKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcmVwYWludFJhbmdlKHJhbmdlKTsKLSAgICBtX3Jhbmdlc0RhdGEuYXBw
ZW5kKEhpZ2hsaWdodFJhbmdlRGF0YTo6Y3JlYXRlKHJhbmdlKSk7Ci0gICAgCi0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0ZDgxZTllZjcyMzM0MDNmYzMzODVlMTQ2MzFmY2IwYTljNWVhNjBiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAorKysgL2Rldi9udWxsCkBAIC0xLDc2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbk9y
LmgiCi0jaW5jbHVkZSAiUG9zaXRpb24uaCIKLSNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
Q1NTU3R5bGVEZWNsYXJhdGlvbjsKLWNsYXNzIERPTVNldEFkYXB0ZXI7Ci1jbGFzcyBTdGF0aWNS
YW5nZTsKLWNsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjsKLQotc3RydWN0IEhp
Z2hsaWdodFJhbmdlRGF0YSA6IFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VEYXRhPiwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4gewotICAgIAotICAgIEhpZ2hsaWdo
dFJhbmdlRGF0YShSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCi0gICAgICAgIDogcmFuZ2UoV1RG
TW92ZShyYW5nZSkpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dFJhbmdlRGF0YT4gY3JlYXRlKFJlZjxTdGF0aWNSYW5nZT4mJiByYW5nZSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJhbmdlRGF0YShXVEZNb3ZlKHJhbmdl
KSkpOwotICAgIH0KLSAgICAKLSAgICBSZWY8U3RhdGljUmFuZ2U+IHJhbmdlOwotICAgIE9wdGlv
bmFsPFBvc2l0aW9uPiBzdGFydFBvc2l0aW9uOwotICAgIE9wdGlvbmFsPFBvc2l0aW9uPiBlbmRQ
b3NpdGlvbjsKLX07Ci0KLWNsYXNzIEhpZ2hsaWdodFJhbmdlR3JvdXAgOiBwdWJsaWMgUmVmQ291
bnRlZDxIaWdobGlnaHRSYW5nZUdyb3VwPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxIaWdo
bGlnaHRSYW5nZUdyb3VwPiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKLSAgICAKLSAgICB2b2lkIGNs
ZWFyRnJvbVNldExpa2UoKTsKLSAgICBib29sIGFkZFRvU2V0TGlrZShTdGF0aWNSYW5nZSYpOwot
ICAgIGJvb2wgcmVtb3ZlRnJvbVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2UmKTsKLSAgICB2b2lk
IGluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImKTsKLSAgICAKLSAgICBjb25zdCBWZWN0
b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+JiByYW5nZXNEYXRhKCkgY29uc3QgeyByZXR1cm4g
bV9yYW5nZXNEYXRhOyB9Ci0KLSAgICAvLyBGSVhNRTogQWRkIFdFQkNPUkVfRVhQT1JUIENTU1N0
eWxlRGVjbGFyYXRpb24mIHN0eWxlKCk7Ci0gICAgCi1wcml2YXRlOgotICAgIFZlY3RvcjxSZWY8
SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gbV9yYW5nZXNEYXRhOyAvLyBGSVhNRTogdXNlIGEgSGFzaFNl
dCBpbnN0ZWFkIG9mIGEgVmVjdG9yIDxyZGFyOi8vcHJvYmxlbS81Nzc2MDYxND4KLSAgICBleHBs
aWNpdCBIaWdobGlnaHRSYW5nZUdyb3VwKFJlZjxTdGF0aWNSYW5nZT4mJik7Ci19OwotCi19Ci0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJh
bmdlR3JvdXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmFuZ2VHcm91cC5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NWFhNDFlYTY0
NWNlNjRlN2MwNjk1NDI3ZTRmNmM5MGFhZGUwMDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0UmFuZ2VHcm91cC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLAotICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIEhp
Z2hsaWdodFJhbmdlR3JvdXAgewotICAgIGNvbnN0cnVjdG9yKFN0YXRpY1JhbmdlIHJhbmdlKTsK
LQotICAgIHNldGxpa2U8U3RhdGljUmFuZ2U+OwotICAgIC8vIEZJWE1FOiBBZGQgcmVhZG9ubHkg
YXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7Ci19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFmNmJhMzRhNDhjOTJhNDg0MjU5MzBiMWRiYmY0NDY4Yjc3ZWRkMmMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdp
c3Rlci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJIaWdobGlnaHRSZWdpc3Rlci5oIgorCisjaW5jbHVkZSAiSURMVHlwZXMu
aCIKKyNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIKKyNpbmNsdWRlICJKU0hpZ2hsaWdodC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjppbml0
aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVyJiBtYXApCit7CisgICAgZm9yIChhdXRvJiBrZXlW
YWx1ZSA6IG1fbWFwKQorICAgICAgICBtYXAuc2V0PElETERPTVN0cmluZywgSURMSW50ZXJmYWNl
PEhpZ2hsaWdodD4+KGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpOworfQorCit2b2lkIEhp
Z2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGln
aHQ+JiYgdmFsdWUpCit7CisgICAgbV9tYXAuc2V0KFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1
ZSkpOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjpjbGVhcigpCit7CisgICAgbV9tYXAu
Y2xlYXIoKTsKK30KKworYm9vbCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3ZlKGNvbnN0IFN0cmlu
ZyYga2V5KQoreworICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWJmYzY0M2U1M2RiODgzMDhkNmRlNzdhYzlmNDlkZDk2OTgwZmRiYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiSGlnaGxpZ2h0LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERP
TU1hcEFkYXB0ZXI7CitjbGFzcyBET01TdHJpbmc7CitjbGFzcyBIaWdobGlnaHQ7CisKK2NsYXNz
IEhpZ2hsaWdodFJlZ2lzdGVyIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmVnaXN0ZXI+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJlZ2lzdGVyPiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJlZ2lzdGVyKTsgfQorCisgICAgdm9pZCBp
bml0aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVyJik7CisgICAgdm9pZCBzZXRGcm9tTWFwTGlr
ZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7CisgICAgdm9pZCBjbGVhcigpOworICAgIGJv
b2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworICAgIAorICAgIGNvbnN0IEhhc2hNYXA8U3RyaW5n
LCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwOyB9CisgICAgCitw
cml2YXRlOgorICAgIEhpZ2hsaWdodFJlZ2lzdGVyKCkgPSBkZWZhdWx0OworICAgIEhhc2hNYXA8
U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4gbV9tYXA7Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kYjZjYWM2M2JkMTY4NjM5NDAyYTZhYTcyMzE4OGVmYTRmN2ZiNjgwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVn
aXN0ZXIuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0
UnVudGltZT1IaWdobGlnaHRBUEksCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAg
ICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSGlnaGxpZ2h0UmVnaXN0ZXIgeworICAgIGNv
bnN0cnVjdG9yKCk7CisKKyAgICBtYXBsaWtlPERPTVN0cmluZywgSGlnaGxpZ2h0PjsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDkxYzU4Nzk4NWU0MDljZWIyMTMxYjg4YTFjYzRiZjdjYTdmNWMzZWQu
LmNlNzEzNzhhNGU4NjU1ZTNlZmFiNTEwMDZiOTJiOWY1ZjMyMmY2ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC02NCw4ICs2NCw4IEBAIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCiBN
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24v
TmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCi1Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAu
Y3BwCi1Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCitNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHQuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3JXaXRoVmFsdWUuY3BwCkBAIC0zMDUyLDggKzMwNTIsOCBAQCBKU0hUTUxVbmtub3duRWxlbWVu
dC5jcHAKIEpTSFRNTFZpZGVvRWxlbWVudC5jcHAKIEpTSGFzaENoYW5nZUV2ZW50LmNwcAogSlNI
ZHJNZXRhZGF0YVR5cGUuY3BwCi1KU0hpZ2hsaWdodE1hcC5jcHAKLUpTSGlnaGxpZ2h0UmFuZ2VH
cm91cC5jcHAKK0pTSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCitKU0hpZ2hsaWdodC5jcHAKIEpTSGlz
dG9yeS5jcHAKIEpTSGtkZlBhcmFtcy5jcHAKIEpTSG1hY0tleVBhcmFtcy5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzli
NzFjNjEwNWRmNDY3YjNiMzBmNTIyOWI3ZDBkMDUyOTdiNzViLi4zOTgyNjY5MzYxN2RjYmU5NDVk
MjE2YjZhMDRlMzIxY2NiMTU1OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OTQzLDEyICs3OTQzLDEyIEBACiAJCTQ0RDhE
QTk4MTM5NTQ1QkUwMDMzN0I3NSAvKiBTVkdNUGF0aEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNWR01QYXRoRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0RDhEQTlBMTM5NTQ1Q0QwMDMzN0I3NSAvKiBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEUzNDlGNzI0NkY0REM3MDA2ODQ3OUMgLyog
TGliV2ViUlRDRW51bVRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBM
aWJXZWJSVENFbnVtVHJhaXRzLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDRW51bVRyYWl0
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU0QzIzNjkxMjhBMDA5QjQ4
NDcgLyogSGlnaGxpZ2h0TWFwLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIaWdobGlnaHRN
YXAuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU0RDIzNjkxMjhCMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
SGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0
RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRNYXAuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SGlnaGxpZ2h0TWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTUxMjM2
QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhp
Z2hsaWdodFJhbmdlR3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhF
NTIyMzZBNjY3RjAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIaWdobGlnaHRNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU1
NDIzNkE2NkExMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIaWdobGlnaHRSYW5nZUdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDRFODhFNEMyMzY5MTI4QTAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIaWdobGlnaHRSZWdpc3Rlci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdobGlnaHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhpZ2hsaWdodC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdp
c3Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHRSZWdpc3Rlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0NEU4OEU1MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxpZ2h0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhpZ2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0NEU4OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0NEU4OEU1NDIzNkE2NkExMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhpZ2hsaWdodC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ1MENFQkVFMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhYmVsYWJsZUVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTBDRUJFRjE1MDczQkJFMDAyQkIxNDkgLyog
TGFiZWxhYmxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYWJl
bGFibGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MTI1MDIwMTVE
Q0UzN0QwMDJGODRFMiAvKiBTcGluQnV0dG9uRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGluQnV0dG9uRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xOTM2OSwxMiArMTkzNjksMTIgQEAKIAkJNDRFODhFNDcyMzY4REYw
RjAwOUI0ODQ3IC8qIGhpZ2hsaWdodCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCi0JCQkJNDRFODhFNTIyMzZBNjY3RjAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5j
cHAgKi8sCi0JCQkJNDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5oICov
LAotCQkJCTQ0RTg4RTRDMjM2OTEyOEEwMDlCNDg0NyAvKiBIaWdobGlnaHRNYXAuaWRsICovLAot
CQkJCTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmNwcCAq
LywKLQkJCQk0NEU4OEU1MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5o
ICovLAotCQkJCTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3Vw
LmlkbCAqLywKKwkJCQk0NEU4OEU1NDIzNkE2NkExMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmNwcCAq
LywKKwkJCQk0NEU4OEU1MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmggKi8sCisJCQkJ
NDRFODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5pZGwgKi8sCisJCQkJNDRFODhF
NTIyMzZBNjY3RjAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmNwcCAqLywKKwkJCQk0NEU4
OEU1MDIzNkE1NkFDMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCAqLywKKwkJCQk0NEU4
OEU0QzIzNjkxMjhBMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsICovLAogCQkJKTsK
IAkJCXBhdGggPSBoaWdobGlnaHQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDk3
MDJjYzU5NzJlOTk1Nzk2YjE3ODRiNjliMDBiNjI3MTcxZjQ0MzcuLjIwZDk1ZWU1NGUwNDc0Zjg4
MjMzNjNmZDljNWIxNWU2Njc3ZGM0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTEyOSw4ICsxMjksOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oR1BVVGV4dHVyZVZpZXcpIFwKICAgICBtYWNybyhHUFVVbmNh
cHR1cmVkRXJyb3JFdmVudCkgXAogICAgIG1hY3JvKEdQVVZhbGlkYXRpb25FcnJvcikgXAotICAg
IG1hY3JvKEhpZ2hsaWdodE1hcCkgXAotICAgIG1hY3JvKEhpZ2hsaWdodFJhbmdlR3JvdXApIFwK
KyAgICBtYWNybyhIaWdobGlnaHRSZWdpc3RlcikgXAorICAgIG1hY3JvKEhpZ2hsaWdodCkgXAog
ICAgIG1hY3JvKEhUTUxBdHRhY2htZW50RWxlbWVudCkgXAogICAgIG1hY3JvKEhUTUxBdWRpb0Vs
ZW1lbnQpIFwKICAgICBtYWNybyhIVE1MRGlhbG9nRWxlbWVudCkgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTTmFtZXNwYWNlLmNwcAppbmRleCAxOWUzZGQ2MWVhOWQ5YWEwOTc1NmM3MzQ2NTVkNGRj
NzY3MDY4NzFiLi5kNTkyNTcwYjg2MzE2ZDgzMWZiNTk3YTI5MTRiOTc1ZmJiM2Q0MGM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2lu
Y2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VyLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKKyNpbmNsdWRlICJI
aWdobGlnaHRSZWdpc3Rlci5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTg5LDkgKzg5LDkgQEAgU3RyaW5nIERPTUNTU05hbWVzcGFjZTo6ZXNjYXBlKGNv
bnN0IFN0cmluZyYgaWRlbnQpCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIAot
SGlnaGxpZ2h0TWFwJiBET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMoRG9jdW1lbnQmIGRvY3Vt
ZW50KQorSGlnaGxpZ2h0UmVnaXN0ZXImIERPTUNTU05hbWVzcGFjZTo6aGlnaGxpZ2h0cyhEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGRvY3VtZW50LmhpZ2hsaWdodE1hcCgpOwor
ICAgIHJldHVybiBkb2N1bWVudC5oaWdobGlnaHRSZWdpc3RlcigpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmgKaW5kZXggMzA0N2U1Mjc5ODQ0NmNkNzcwNjY3NTUwOTQx
OTlhMzFlYzA1ZWM3Zi4uODZkMjdmZTlmZjcxNzdiM2U0YWNkY2JlNGU5ZTRmNTg3YWQwNDFhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaApAQCAtMzcsMTUgKzM3LDE1IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgSGlnaGxpZ2h0TWFw
OwotY2xhc3MgSGlnaGxpZ2h0UmFuZ2VHcm91cDsKK2NsYXNzIEhpZ2hsaWdodFJlZ2lzdGVyOwor
Y2xhc3MgSGlnaGxpZ2h0OwogCiBjbGFzcyBET01DU1NOYW1lc3BhY2UgZmluYWwgOiBwdWJsaWMg
UmVmQ291bnRlZDxET01DU1NOYW1lc3BhY2U+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8RE9NQ1NT
TmFtZXNwYWNlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHMoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmIHByb3BlcnR5LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0cyhEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgY29uZGl0aW9uVGV4dCk7
CiAgICAgc3RhdGljIFN0cmluZyBlc2NhcGUoY29uc3QgU3RyaW5nJiBpZGVudCk7Ci0gICAgc3Rh
dGljIEhpZ2hsaWdodE1hcCYgaGlnaGxpZ2h0cyhEb2N1bWVudCYpOworICAgIHN0YXRpYyBIaWdo
bGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0cyhEb2N1bWVudCYpOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbAppbmRleCA1NjM1NTkzNTZmYzZlYTUxYThhMWJjYzIy
MDIxM2YzZDgwODJjMDc3Li4zNGYzZDcyNDM1ZDM1NWEyZGEwNmFiNjU3NzU1MTZlNWVkZjZjZTIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbApAQCAtMzUsNSArMzUsNSBA
QAogICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIGJvb2xlYW4gc3VwcG9ydHMoRE9NU3Ry
aW5nIHByb3BlcnR5LCBET01TdHJpbmcgdmFsdWUpOwogICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0g
c3RhdGljIGJvb2xlYW4gc3VwcG9ydHMoRE9NU3RyaW5nIGNvbmRpdGlvblRleHQpOwogICAgIHN0
YXRpYyBET01TdHJpbmcgZXNjYXBlKERPTVN0cmluZyBpZGVudCk7Ci0gICAgW0VuYWJsZWRBdFJ1
bnRpbWU9SGlnaGxpZ2h0QVBJLCBDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0
dHJpYnV0ZSBIaWdobGlnaHRNYXAgaGlnaGxpZ2h0czsKKyAgICBbRW5hYmxlZEF0UnVudGltZT1I
aWdobGlnaHRBUEksIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRl
IEhpZ2hsaWdodFJlZ2lzdGVyIGhpZ2hsaWdodHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggMDg1MzU4OWVhYmFjMzVlNzZhYmE2ZjI4MmFlNTc2YzU5MmUxZThlNS4uNmU1ZjAxZDlj
MzJmZDIyNjQ1YTMyYjQwMDYwY2IwNGIxYjE5NzY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC0xMTEsNyArMTExLDcgQEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNs
dWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhhc2hDaGFuZ2VFdmVudC5oIgotI2luY2x1
ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5j
bHVkZSAiSGlzdG9yeS5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJ
ZGxlQ2FsbGJhY2tDb250cm9sbGVyLmgiCkBAIC03OTIsOCArNzkyLDggQEAgdm9pZCBEb2N1bWVu
dDo6Y29tbW9uVGVhcmRvd24oKQogCiAgICAgY2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIoKTsKICAgICAKLSAgICBpZiAobV9oaWdobGlnaHRNYXApCi0gICAgICAgIG1faGlnaGxpZ2h0
TWFwLT5jbGVhcigpOworICAgIGlmIChtX2hpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBtX2hp
Z2hsaWdodFJlZ2lzdGVyLT5jbGVhcigpOwogCiAgICAgbV9wZW5kaW5nU2Nyb2xsRXZlbnRUYXJn
ZXRMaXN0ID0gbnVsbHB0cjsKIApAQCAtMjc2NywxOCArMjc2NywxOCBAQCBSZWY8RG9jdW1lbnRQ
YXJzZXI+IERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogICAgIHJldHVybiBYTUxEb2N1bWVudFBh
cnNlcjo6Y3JlYXRlKCp0aGlzLCB2aWV3KCkpOwogfQogCi1IaWdobGlnaHRNYXAmIERvY3VtZW50
OjpoaWdobGlnaHRNYXAoKQorSGlnaGxpZ2h0UmVnaXN0ZXImIERvY3VtZW50OjpoaWdobGlnaHRS
ZWdpc3RlcigpCiB7Ci0gICAgaWYgKCFtX2hpZ2hsaWdodE1hcCkKLSAgICAgICAgbV9oaWdobGln
aHRNYXAgPSBIaWdobGlnaHRNYXA6OmNyZWF0ZSgpOwotICAgIHJldHVybiAqbV9oaWdobGlnaHRN
YXA7CisgICAgaWYgKCFtX2hpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBtX2hpZ2hsaWdodFJl
Z2lzdGVyID0gSGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSgpOworICAgIHJldHVybiAqbV9oaWdo
bGlnaHRSZWdpc3RlcjsKIH0KIAogdm9pZCBEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKCkKIHsKICAgICBWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+PiByYW5nZXNE
YXRhOwotICAgIGlmIChtX2hpZ2hsaWdodE1hcCkgewotICAgICAgICBmb3IgKGF1dG8mIGhpZ2hs
aWdodCA6IG1faGlnaGxpZ2h0TWFwLT5tYXAoKSkgeworICAgIGlmIChtX2hpZ2hsaWdodFJlZ2lz
dGVyKSB7CisgICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogbV9oaWdobGlnaHRSZWdpc3Rl
ci0+bWFwKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0
LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKICAgICAgICAgICAgICAgICBpZiAocmFuZ2VEYXRhLT5z
dGFydFBvc2l0aW9uICYmIHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24pCiAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkZDg4M2IyYTA3YzU2MjM2ZWNj
ZmQ1MDQ1YWFlNjA2YjM5NmU4NzRmLi45M2ZiNzQ4YTdmOTUyMzFkNWQ2OThlYWU0MDIwYTNlOTEz
NWI2MDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTU2LDcgKzE1Niw3IEBAIGNsYXNzIEhU
TUxJbWFnZUVsZW1lbnQ7CiBjbGFzcyBIVE1MTWFwRWxlbWVudDsKIGNsYXNzIEhUTUxNZWRpYUVs
ZW1lbnQ7CiBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwotY2xhc3MgSGlnaGxpZ2h0TWFwOworY2xh
c3MgSGlnaGxpZ2h0UmVnaXN0ZXI7CiBjbGFzcyBIaXRUZXN0TG9jYXRpb247CiBjbGFzcyBIaXRU
ZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CkBAIC0xNTY5LDcgKzE1NjksNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXImIHRl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyKCk7CiAgICAgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIqIHRleHRNYW5pcHVsYXRpb25Db250cm9sbGVySWZFeGlzdHMoKSB7IHJldHVybiBtX3RleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAgICAgICAgIAotICAgIEhpZ2hsaWdodE1h
cCYgaGlnaGxpZ2h0TWFwKCk7CisgICAgSGlnaGxpZ2h0UmVnaXN0ZXImIGhpZ2hsaWdodFJlZ2lz
dGVyKCk7CiAgICAgdm9pZCB1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKIAogICAgIGJvb2wg
YWxsb3dzQ29udGVudEphdmFTY3JpcHQoKSBjb25zdDsKQEAgLTE5MjQsNyArMTkyNCw3IEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHRBdXRvU2l6aW5nPiBtX3RleHRBdXRvU2l6
aW5nOwogI2VuZGlmCiAgICAgICAgIAotICAgIFJlZlB0cjxIaWdobGlnaHRNYXA+IG1faGlnaGxp
Z2h0TWFwOworICAgIFJlZlB0cjxIaWdobGlnaHRSZWdpc3Rlcj4gbV9oaWdobGlnaHRSZWdpc3Rl
cjsKIAogICAgIFRpbWVyIG1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcAppbmRleCA2NWUzMmE0ODUwZDY3
Y2NkMDA0ZTJhNzU2YjBmMWI3ZDc4ZDFiY2E3Li4zOWViMTUxMDlhYTZjMDJhNjg2YmUwNGRlMGNk
ZDZiMDM3YzhmYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxp
Z2h0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEu
Y3BwCkBAIC0zMyw3ICszMyw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkZyYW1lU2VsZWN0aW9uLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgorI2lu
Y2x1ZGUgIkhpZ2hsaWdodC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQb3Np
dGlvbi5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5jcHAKaW5kZXggY2JjMDNhN2RiOThjMTE1MzZiMzcxMjczYWZhOGEzNTAzNmQx
Njc1Ni4uNDcxYjVlNzNkZjU3ZGY3ODUwNTQ0MDA4YTAyNTQxODE0OTAyMjU4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtMzYsNyArMzYsNyBAQAog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiSGlnaGxpZ2h0RGF0YS5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUg
IkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1
ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveFN0eWxlLmgiCkBAIC0x
MDUxLDcgKzEwNTEsNyBAQCBWZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4dEJveDo6Y29sbGVj
dE1hcmtlZFRleHRzRm9ySGlnaGxpZ2h0cyhUZXh0UGFpbnRQaGFzZQogICAgIGF1dG8mIHBhcmVu
dFJlbmRlcmVyID0gcGFyZW50KCktPnJlbmRlcmVyKCk7CiAgICAgYXV0byYgcGFyZW50U3R5bGUg
PSBwYXJlbnRSZW5kZXJlci5zdHlsZSgpOwogICAgIEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0RGF0
YTsKLSAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5oaWdo
bGlnaHRNYXAoKS5tYXAoKSkgeworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIo
KS5kb2N1bWVudCgpLmhpZ2hsaWdodFJlZ2lzdGVyKCkubWFwKCkpIHsKICAgICAgICAgYXV0byBy
ZW5kZXJTdHlsZSA9IHBhcmVudFJlbmRlcmVyLmdldFVuY2FjaGVkUHNldWRvU3R5bGUoeyBQc2V1
ZG9JZDo6SGlnaGxpZ2h0LCBoaWdobGlnaHQua2V5IH0sICZwYXJlbnRTdHlsZSk7CiAgICAgICAg
IGlmICghcmVuZGVyU3R5bGUpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IGE3MmYxZWQ3Nzk3MmE0NDc2MWRh
MDc1MWZmNDI3YTUyYTYwYjljYjMuLjNjZWUwMWY0NTk1MWMxNTlhOWRhMjgzMzFhN2U2MGNkZmU3
ZTY0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApA
QCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0RGF0YS5oIgotI2luY2x1
ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5j
bHVkZSAiSW5saW5lRWxlbWVudEJveC5oIgogI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uTGlu
ZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oIgpA
QCAtMTU0LDcgKzE1NCw3IEBAIGlubGluZSBzdGF0aWMgYm9vbCBkcmFnZ2VkQ29udGVudENvbnRh
aW5zUmVwbGFjZWRFbGVtZW50KGNvbnN0IFZlY3RvcjxSZW5kZXJlZERvCiBDb2xvciBSZW5kZXJS
ZXBsYWNlZDo6Y2FsY3VsYXRlSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogewogICAgIEhpZ2hsaWdo
dERhdGEgaGlnaGxpZ2h0RGF0YTsKLSAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGRvY3VtZW50
KCkuaGlnaGxpZ2h0TWFwKCkubWFwKCkpIHsKKyAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGRv
Y3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewogICAgICAgICBmb3IgKGF1dG8m
IHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CiAgICAgICAgICAg
ICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
ZWxlY3Rpb25SYW5nZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlv
blJhbmdlRGF0YS5jcHAKaW5kZXggZjQ5NzE2OWUyN2JkNGE3MjA3MTYzN2Y2MGMwZDFmZjkxYTU3
MTc5OC4uYmU2N2U2MGU3NTk5MjRlY2ZhZGRlZTkyZTZjNzlkNTIzZTZlN2ZjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rp
b24uaCIKLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCisjaW5jbHVkZSAiSGlnaGxp
Z2h0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5j
bHVkZSAiUmFuZ2UuaCIK
</data>
<flag name="commit-queue"
          id="428129"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411818</attachid>
            <date>2020-10-19 17:09:53 -0700</date>
            <delta_ts>2020-10-20 16:12:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217919-20201019170951.patch</filename>
            <type>text/plain</type>
            <size>75847</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiY2FmMTc5NjJkZGEy
MTRkZTNkZWEzMWE3ODYzMDhjMTMzNWQ1My4uNmZmYzY5ZTJlMjJlM2RjYjY2YzA1ZDc5Yzc0Njc1
MGZlZDFlN2UwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEhp
Z2hsaWdodE1hcCB0byBIaWdobGlnaHRSZWdpc3RlciBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB0
byBIaWdobGlnaHQgdG8gbWF0Y2ggY3VycmVudCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG5ldyBiZWhhdmlvciwg
cmVuYW1lIG9ubHkuCisgICAgICAgIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxp
Z2h0LWFwaS0xLworCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6SGlnaGxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodDo6aW5pdGlhbGl6ZVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGln
aHQ6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0OjphZGRU
b1NldExpa2UpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oLgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGw6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRNYXAuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmluaXRpYWxp
emVNYXBMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9t
TWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OnJlbW92ZSk6CisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oLgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSZWdpc3Rlcjo6bWFwIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMp
OgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBjc3MvRE9NQ1NT
TmFtZXNwYWNlLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpoaWdobGlnaHRSZWdpc3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBk
YXRlSGlnaGxpZ2h0UG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoaWdo
bGlnaHRNYXApOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFy
a2VkVGV4dHNGb3JIaWdobGlnaHRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0
ZUhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFu
Z2VEYXRhLmNwcDoKKwogMjAyMC0xMC0xOSAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTihyMjY1MjMxKTogT3Zlcmxh
eTogbm9kZSBpbmZvIHNvbWV0aW1lcyBkcmF3cyBvbiBvbmUgbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA2ZjEzNjM3MWQ4OWFiYmQ5NmRmYWRiZmYyMTNiN2Y3Nzc4ZDE2MjNhLi40ZmRlY2Iy
NjlkY2JiYzJlZjlkMjA5OThjM2RiZGQ4ZjFjZWM5YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjg5LDggKzI4OSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKLSAgICBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRNYXAuaWRsCi0gICAgTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5pZGwKKyAgICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCisgICAgTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9E
T01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDdhNDU0MWQxN2ZlYjNlMDgyODFlYWFmYzA0MzlmYTBiMmE3NmMyOTAuLmNkY2Iy
OTJmNTFmY2U1YWNlMWM3ODkyOTdkZmJkYzlmZjEyMzA2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI5LDggKzEyOSw4IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCi0kKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiskKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yRGlyZWN0aW9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIyMDg5MWFj
ZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi45NWRkNmU5NmQ0Njg0MjhkZWIxZmJmZGE1NzNkMjI3
YjM2MzBhMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMTEwOCwxMCArMTEwOCwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGFzaENoYW5nZUV2ZW50LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGRyTWV0YWRhdGFU
eXBlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
ZHJNZXRhZGF0YVR5cGUuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIaWdobGlnaHRNYXAuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodE1hcC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGln
aHRSZWdpc3Rlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSGlnaGxpZ2h0UmVnaXN0ZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIa2RmUGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjY5NGYwNjUxYjNlZTY3MmUzYTMwZGRhYmE4MjMwYzU3ZTY5
YjEzNi4uZTRhNTBjNWRiNzNhMjI5ODFlYzQ2NzIyNzJjNWEyOGRmODEwYjFiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTUsOCArMTU1LDggQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNr
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bk9wdGlvbnMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dE1hcC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93K0luZGV4
ZWREYXRhYmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JEaXJl
Y3Rpb24uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdjZmJhZmI3YzJlYmM0NjUzMGMzOTNlZDIzNmE0NzljNTVkMjcy
N2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHQuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodC5oIgorCisjaW5jbHVkZSAiSURMVHlwZXMuaCIK
KyNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKKyNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgiCisj
aW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlN0YXRp
Y1JhbmdlLmgiCisjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0hpZ2hsaWdodDo6SGlnaGxpZ2h0KFJlZjxT
dGF0aWNSYW5nZT4mJiByYW5nZSkKK3sKKyAgICBhdXRvIG15UmFuZ2UgPSBXVEZNb3ZlKHJhbmdl
KTsKKyAgICBhZGRUb1NldExpa2UobXlSYW5nZS5nZXQoKSk7Cit9CisKK1JlZjxIaWdobGlnaHQ+
IEhpZ2hsaWdodDo6Y3JlYXRlKFN0YXRpY1JhbmdlJiByYW5nZSkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBIaWdobGlnaHQocmFuZ2UpKTsKK30KKwordm9pZCBIaWdobGlnaHQ6OmluaXRp
YWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKK3sKKyAgICBmb3IgKGF1dG8mIHJhbmdl
RGF0YSA6IG1fcmFuZ2VzRGF0YSkKKyAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8U3RhdGlj
UmFuZ2U+PihyYW5nZURhdGEtPnJhbmdlKTsKK30KKworc3RhdGljIHZvaWQgcmVwYWludFJhbmdl
KGNvbnN0IFN0YXRpY1JhbmdlJiByYW5nZSkKK3sKKyAgICBhdXRvKiBzdGFydE5vZGUgPSAmcmFu
Z2Uuc3RhcnRDb250YWluZXIoKTsKKyAgICBhdXRvKiBlbmROb2RlID0gJnJhbmdlLmVuZENvbnRh
aW5lcigpOworICAgIGF1dG8gb3JkZXJpbmcgPSBkb2N1bWVudE9yZGVyKCpzdGFydE5vZGUsICpl
bmROb2RlKTsKKyAgICBpZiAoaXNfZXEob3JkZXJpbmcpKSB7CisgICAgICAgIGlmIChhdXRvIHJl
bmRlcmVyID0gc3RhcnROb2RlLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmVuZGVyZXItPnJl
cGFpbnQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoaXNfZ3Qob3JkZXJpbmcp
KSB7CisgICAgICAgIHN0YXJ0Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKKyAgICAgICAg
ZW5kTm9kZSA9ICZyYW5nZS5zdGFydENvbnRhaW5lcigpOworICAgIH0KKworICAgIGF1dG8gbm9k
ZSA9IHN0YXJ0Tm9kZTsKKyAgICB3aGlsZSAobm9kZSAhPSBlbmROb2RlKSB7CisgICAgICAgIGlm
IChhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIHJlbmRlcmVy
LT5yZXBhaW50KCk7CisgICAgICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlKTsK
KyAgICB9Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0
aWNSYW5nZSYgcmFuZ2UpCit7CisgICAgcmV0dXJuIG1fcmFuZ2VzRGF0YS5yZW1vdmVGaXJzdE1h
dGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7
CisgICAgICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgICAgIHJldHVybiBjdXJyZW50Lmdl
dCgpLnJhbmdlLmdldCgpID09IHJhbmdlOworICAgIH0pOworfQorCit2b2lkIEhpZ2hsaWdodDo6
Y2xlYXJGcm9tU2V0TGlrZSgpCit7CisgICAgZm9yIChhdXRvJiBkYXRhIDogbV9yYW5nZXNEYXRh
KQorICAgICAgICByZXBhaW50UmFuZ2UoZGF0YS0+cmFuZ2UpOworCisgICAgbV9yYW5nZXNEYXRh
LmNsZWFyKCk7Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2Um
IHJhbmdlKQoreworICAgIGlmIChub3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1hdGNoaW5n
KFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7IHJldHVy
biBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOyB9KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgbV9yYW5nZXNEYXRhLmFwcGVu
ZChIaWdobGlnaHRSYW5nZURhdGE6OmNyZWF0ZShyYW5nZSkpOworICAgIAorICAgIHJldHVybiB0
cnVlOworfQorCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmUzZmI2MTFlMzkxMTgyNjAxNDJjMDIzZThlMzcwZjRjNTI1OWM0
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiUG9zaXRpb24uaCIKKyNpbmNsdWRl
ICJTdGF0aWNSYW5nZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIERPTVNldEFk
YXB0ZXI7CitjbGFzcyBTdGF0aWNSYW5nZTsKK2NsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNs
YXJhdGlvbjsKKworc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YSA6IFJlZkNvdW50ZWQ8SGlnaGxp
Z2h0UmFuZ2VEYXRhPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4g
eworICAgIAorICAgIEhpZ2hsaWdodFJhbmdlRGF0YShSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2Up
CisgICAgICAgIDogcmFuZ2UoV1RGTW92ZShyYW5nZSkpCisgICAgeworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4gY3JlYXRlKFJlZjxTdGF0aWNSYW5nZT4m
JiByYW5nZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJh
bmdlRGF0YShXVEZNb3ZlKHJhbmdlKSkpOworICAgIH0KKyAgICAKKyAgICBSZWY8U3RhdGljUmFu
Z2U+IHJhbmdlOworICAgIE9wdGlvbmFsPFBvc2l0aW9uPiBzdGFydFBvc2l0aW9uOworICAgIE9w
dGlvbmFsPFBvc2l0aW9uPiBlbmRQb3NpdGlvbjsKK307CisKK2NsYXNzIEhpZ2hsaWdodCA6IHB1
YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SGln
aGxpZ2h0PiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKKyAgICAKKyAgICB2b2lkIGNsZWFyRnJvbVNl
dExpa2UoKTsKKyAgICBib29sIGFkZFRvU2V0TGlrZShTdGF0aWNSYW5nZSYpOworICAgIGJvb2wg
cmVtb3ZlRnJvbVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2UmKTsKKyAgICB2b2lkIGluaXRpYWxp
emVTZXRMaWtlKERPTVNldEFkYXB0ZXImKTsKKyAgICAKKyAgICBjb25zdCBWZWN0b3I8UmVmPEhp
Z2hsaWdodFJhbmdlRGF0YT4+JiByYW5nZXNEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXNE
YXRhOyB9CisKKyAgICAvLyBGSVhNRTogQWRkIFdFQkNPUkVfRVhQT1JUIENTU1N0eWxlRGVjbGFy
YXRpb24mIHN0eWxlKCk7CisgICAgCitwcml2YXRlOgorICAgIFZlY3RvcjxSZWY8SGlnaGxpZ2h0
UmFuZ2VEYXRhPj4gbV9yYW5nZXNEYXRhOyAvLyBGSVhNRTogdXNlIGEgSGFzaFNldCBpbnN0ZWFk
IG9mIGEgVmVjdG9yIDxyZGFyOi8vcHJvYmxlbS81Nzc2MDYxND4KKyAgICBleHBsaWNpdCBIaWdo
bGlnaHQoUmVmPFN0YXRpY1JhbmdlPiYmKTsKK307CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDVlYjdhOWYyMTZl
OTMwOTE3NjM2MjM2M2Q4ODFmZmEzMDc5ZGFmZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGwKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKKyAgICBJ
bXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFj
ZSBIaWdobGlnaHQgeworICAgIGNvbnN0cnVjdG9yKFN0YXRpY1JhbmdlIHJhbmdlKTsKKworICAg
IHNldGxpa2U8U3RhdGljUmFuZ2U+OworICAgIC8vIEZJWE1FOiBBZGQgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDJjOWZmYWMxODcwYzFmNmMxMzVhMDgwMmZjNGU2YzFjMThiZGFmMDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU2
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSGln
aGxpZ2h0TWFwLmgiCi0KLSNpbmNsdWRlICJJRExUeXBlcy5oIgotI2luY2x1ZGUgIkpTRE9NTWFw
TGlrZS5oIgotI2luY2x1ZGUgIkpTSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0gICAgCi12b2lkIEhpZ2hsaWdodE1hcDo6aW5pdGlhbGl6ZU1hcExpa2UoRE9N
TWFwQWRhcHRlciYgbWFwKQotewotICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBtX21hcCkKLSAg
ICAgICAgbWFwLnNldDxJRExET01TdHJpbmcsIElETEludGVyZmFjZTxIaWdobGlnaHRSYW5nZUdy
b3VwPj4oa2V5VmFsdWUua2V5LCBrZXlWYWx1ZS52YWx1ZSk7Ci19Ci0KLXZvaWQgSGlnaGxpZ2h0
TWFwOjpzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGlnaHRSYW5nZUdyb3Vw
PiYmIHZhbHVlKQotewotICAgIG1fbWFwLnNldChXVEZNb3ZlKGtleSksIFdURk1vdmUodmFsdWUp
KTsKLX0KLQotdm9pZCBIaWdobGlnaHRNYXA6OmNsZWFyKCkKLXsKLSAgICBtX21hcC5jbGVhcigp
OwotfQotCi1ib29sIEhpZ2hsaWdodE1hcDo6cmVtb3ZlKGNvbnN0IFN0cmluZyYga2V5KQotewot
ICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzA5Y2U5NzkyMTUwZmM3NzFiOGU4OTE0M2ExOGMyNDNhNjg4YjA2Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkhpZ2hsaWdodFJh
bmdlR3JvdXAuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRE9NTWFwQWRhcHRlcjsK
LWNsYXNzIERPTVN0cmluZzsKLWNsYXNzIEhpZ2hsaWdodFJhbmdlR3JvdXA7Ci0KLWNsYXNzIEhp
Z2hsaWdodE1hcCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodE1hcD4gewotcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0TWFwPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IEhpZ2hsaWdodE1hcCk7IH0KLQotICAgIHZvaWQgaW5pdGlhbGl6ZU1hcExpa2UoRE9NTWFw
QWRhcHRlciYpOwotICAgIHZvaWQgc2V0RnJvbU1hcExpa2UoU3RyaW5nJiYsIFJlZjxIaWdobGln
aHRSYW5nZUdyb3VwPiYmKTsKLSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgYm9vbCByZW1vdmUoY29u
c3QgU3RyaW5nJik7Ci0gICAgCi0gICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGln
aHRSYW5nZUdyb3VwPj4mIG1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwOyB9Ci0gICAgCi1wcml2
YXRlOgotICAgIEhpZ2hsaWdodE1hcCgpID0gZGVmYXVsdDsKLSAgICBIYXNoTWFwPFN0cmluZywg
UmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+PiBtX21hcDsKLX07Ci0KLX0KLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGNhMjUxZjA1OGE4NGQyMzQ5ZWE0ZWU3ODgzZDRlYThhOGJhODJl
MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbAorKysgL2Rldi9udWxs
CkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgRW5hYmxlZEF0UnVudGltZT1I
aWdobGlnaHRBUEksCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBFeHBvc2Vk
PVdpbmRvdwotXSBpbnRlcmZhY2UgSGlnaGxpZ2h0TWFwIHsKLSAgICBjb25zdHJ1Y3RvcigpOwot
Ci0gICAgbWFwbGlrZTxET01TdHJpbmcsIEhpZ2hsaWdodFJhbmdlR3JvdXA+OwotfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkZDg3Mjk2Y2U3NWViOTkz
MTcwMjg0ZTRiMTJhYjlhOGY5N2U2MzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmFuZ2VHcm91cC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgi
Ci0KLSNpbmNsdWRlICJJRExUeXBlcy5oIgotI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgotI2lu
Y2x1ZGUgIkpTU3RhdGljUmFuZ2UuaCIKLSNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCi0jaW5j
bHVkZSAiUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgiCi0jaW5jbHVkZSAiUmVuZGVy
T2JqZWN0LmgiCi0jaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKLSNpbmNsdWRlICJTdHlsZVByb3Bl
cnRpZXMuaCIKLSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6SGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGljUmFuZ2U+
JiYgcmFuZ2UpCi17Ci0gICAgYXV0byBteVJhbmdlID0gV1RGTW92ZShyYW5nZSk7Ci0gICAgYWRk
VG9TZXRMaWtlKG15UmFuZ2UuZ2V0KCkpOwotfQotCi1SZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4g
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y3JlYXRlKFN0YXRpY1JhbmdlJiByYW5nZSkKLXsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKHJhbmdlKSk7Ci19Ci0KLXZv
aWQgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6aW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYg
c2V0KQotewotICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQotICAgICAg
ICBzZXQuYWRkPElETEludGVyZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOwot
fQotCi1zdGF0aWMgdm9pZCByZXBhaW50UmFuZ2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQot
ewotICAgIGF1dG8qIHN0YXJ0Tm9kZSA9ICZyYW5nZS5zdGFydENvbnRhaW5lcigpOwotICAgIGF1
dG8qIGVuZE5vZGUgPSAmcmFuZ2UuZW5kQ29udGFpbmVyKCk7Ci0gICAgYXV0byBvcmRlcmluZyA9
IGRvY3VtZW50T3JkZXIoKnN0YXJ0Tm9kZSwgKmVuZE5vZGUpOwotICAgIGlmIChpc19lcShvcmRl
cmluZykpIHsKLSAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSBzdGFydE5vZGUtPnJlbmRlcmVy
KCkpCi0gICAgICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIGlmIChpc19ndChvcmRlcmluZykpIHsKLSAgICAgICAgc3RhcnROb2RlID0gJnJh
bmdlLmVuZENvbnRhaW5lcigpOwotICAgICAgICBlbmROb2RlID0gJnJhbmdlLnN0YXJ0Q29udGFp
bmVyKCk7Ci0gICAgfQotCi0gICAgYXV0byBub2RlID0gc3RhcnROb2RlOwotICAgIHdoaWxlIChu
b2RlICE9IGVuZE5vZGUpIHsKLSAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSBub2RlLT5yZW5k
ZXJlcigpKQotICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKLSAgICAgICAgbm9kZSA9
IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUpOwotICAgIH0KLX0KLQotYm9vbCBIaWdobGlnaHRS
YW5nZUdyb3VwOjpyZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCi17
Ci0gICAgcmV0dXJuIG1fcmFuZ2VzRGF0YS5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmcmFuZ2VdKGNv
bnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7Ci0gICAgICAgIHJlcGFpbnRS
YW5nZShyYW5nZSk7Ci0gICAgICAgIHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09
IHJhbmdlOwotICAgIH0pOwotfQotCi12b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNsZWFyRnJv
bVNldExpa2UoKQotewotICAgIGZvciAoYXV0byYgZGF0YSA6IG1fcmFuZ2VzRGF0YSkKLSAgICAg
ICAgcmVwYWludFJhbmdlKGRhdGEtPnJhbmdlKTsKLQotICAgIG1fcmFuZ2VzRGF0YS5jbGVhcigp
OwotfQotCi1ib29sIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmFkZFRvU2V0TGlrZShTdGF0aWNSYW5n
ZSYgcmFuZ2UpCi17Ci0gICAgaWYgKG5vdEZvdW5kICE9IG1fcmFuZ2VzRGF0YS5maW5kTWF0Y2hp
bmcoWyZyYW5nZV0oY29uc3QgUmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQpIHsgcmV0
dXJuIGN1cnJlbnQuZ2V0KCkucmFuZ2UuZ2V0KCkgPT0gcmFuZ2U7IH0pKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcmVwYWludFJhbmdlKHJhbmdlKTsKLSAgICBtX3Jhbmdlc0RhdGEuYXBw
ZW5kKEhpZ2hsaWdodFJhbmdlRGF0YTo6Y3JlYXRlKHJhbmdlKSk7Ci0gICAgCi0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0ZDgxZTllZjcyMzM0MDNmYzMzODVlMTQ2MzFmY2IwYTljNWVhNjBiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAorKysgL2Rldi9udWxsCkBAIC0xLDc2ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbk9y
LmgiCi0jaW5jbHVkZSAiUG9zaXRpb24uaCIKLSNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
Q1NTU3R5bGVEZWNsYXJhdGlvbjsKLWNsYXNzIERPTVNldEFkYXB0ZXI7Ci1jbGFzcyBTdGF0aWNS
YW5nZTsKLWNsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjsKLQotc3RydWN0IEhp
Z2hsaWdodFJhbmdlRGF0YSA6IFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VEYXRhPiwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4gewotICAgIAotICAgIEhpZ2hsaWdo
dFJhbmdlRGF0YShSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCi0gICAgICAgIDogcmFuZ2UoV1RG
TW92ZShyYW5nZSkpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dFJhbmdlRGF0YT4gY3JlYXRlKFJlZjxTdGF0aWNSYW5nZT4mJiByYW5nZSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJhbmdlRGF0YShXVEZNb3ZlKHJhbmdl
KSkpOwotICAgIH0KLSAgICAKLSAgICBSZWY8U3RhdGljUmFuZ2U+IHJhbmdlOwotICAgIE9wdGlv
bmFsPFBvc2l0aW9uPiBzdGFydFBvc2l0aW9uOwotICAgIE9wdGlvbmFsPFBvc2l0aW9uPiBlbmRQ
b3NpdGlvbjsKLX07Ci0KLWNsYXNzIEhpZ2hsaWdodFJhbmdlR3JvdXAgOiBwdWJsaWMgUmVmQ291
bnRlZDxIaWdobGlnaHRSYW5nZUdyb3VwPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxIaWdo
bGlnaHRSYW5nZUdyb3VwPiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKLSAgICAKLSAgICB2b2lkIGNs
ZWFyRnJvbVNldExpa2UoKTsKLSAgICBib29sIGFkZFRvU2V0TGlrZShTdGF0aWNSYW5nZSYpOwot
ICAgIGJvb2wgcmVtb3ZlRnJvbVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2UmKTsKLSAgICB2b2lk
IGluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImKTsKLSAgICAKLSAgICBjb25zdCBWZWN0
b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+JiByYW5nZXNEYXRhKCkgY29uc3QgeyByZXR1cm4g
bV9yYW5nZXNEYXRhOyB9Ci0KLSAgICAvLyBGSVhNRTogQWRkIFdFQkNPUkVfRVhQT1JUIENTU1N0
eWxlRGVjbGFyYXRpb24mIHN0eWxlKCk7Ci0gICAgCi1wcml2YXRlOgotICAgIFZlY3RvcjxSZWY8
SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gbV9yYW5nZXNEYXRhOyAvLyBGSVhNRTogdXNlIGEgSGFzaFNl
dCBpbnN0ZWFkIG9mIGEgVmVjdG9yIDxyZGFyOi8vcHJvYmxlbS81Nzc2MDYxND4KLSAgICBleHBs
aWNpdCBIaWdobGlnaHRSYW5nZUdyb3VwKFJlZjxTdGF0aWNSYW5nZT4mJik7Ci19OwotCi19Ci0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJh
bmdlR3JvdXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmFuZ2VHcm91cC5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NWFhNDFlYTY0
NWNlNjRlN2MwNjk1NDI3ZTRmNmM5MGFhZGUwMDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0UmFuZ2VHcm91cC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLAotICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIEhp
Z2hsaWdodFJhbmdlR3JvdXAgewotICAgIGNvbnN0cnVjdG9yKFN0YXRpY1JhbmdlIHJhbmdlKTsK
LQotICAgIHNldGxpa2U8U3RhdGljUmFuZ2U+OwotICAgIC8vIEZJWE1FOiBBZGQgcmVhZG9ubHkg
YXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7Ci19OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFmNmJhMzRhNDhjOTJhNDg0MjU5MzBiMWRiYmY0NDY4Yjc3ZWRkMmMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdp
c3Rlci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJIaWdobGlnaHRSZWdpc3Rlci5oIgorCisjaW5jbHVkZSAiSURMVHlwZXMu
aCIKKyNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIKKyNpbmNsdWRlICJKU0hpZ2hsaWdodC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjppbml0
aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVyJiBtYXApCit7CisgICAgZm9yIChhdXRvJiBrZXlW
YWx1ZSA6IG1fbWFwKQorICAgICAgICBtYXAuc2V0PElETERPTVN0cmluZywgSURMSW50ZXJmYWNl
PEhpZ2hsaWdodD4+KGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpOworfQorCit2b2lkIEhp
Z2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGln
aHQ+JiYgdmFsdWUpCit7CisgICAgbV9tYXAuc2V0KFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1
ZSkpOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjpjbGVhcigpCit7CisgICAgbV9tYXAu
Y2xlYXIoKTsKK30KKworYm9vbCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3ZlKGNvbnN0IFN0cmlu
ZyYga2V5KQoreworICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKK30KKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWJmYzY0M2U1M2RiODgzMDhkNmRlNzdhYzlmNDlkZDk2OTgwZmRiYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dFJlZ2lzdGVyLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiSGlnaGxpZ2h0LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERP
TU1hcEFkYXB0ZXI7CitjbGFzcyBET01TdHJpbmc7CitjbGFzcyBIaWdobGlnaHQ7CisKK2NsYXNz
IEhpZ2hsaWdodFJlZ2lzdGVyIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmVnaXN0ZXI+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJlZ2lzdGVyPiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJlZ2lzdGVyKTsgfQorCisgICAgdm9pZCBp
bml0aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVyJik7CisgICAgdm9pZCBzZXRGcm9tTWFwTGlr
ZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodD4mJik7CisgICAgdm9pZCBjbGVhcigpOworICAgIGJv
b2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOworICAgIAorICAgIGNvbnN0IEhhc2hNYXA8U3RyaW5n
LCBSZWY8SGlnaGxpZ2h0Pj4mIG1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwOyB9CisgICAgCitw
cml2YXRlOgorICAgIEhpZ2hsaWdodFJlZ2lzdGVyKCkgPSBkZWZhdWx0OworICAgIEhhc2hNYXA8
U3RyaW5nLCBSZWY8SGlnaGxpZ2h0Pj4gbV9tYXA7Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kYjZjYWM2M2JkMTY4NjM5NDAyYTZhYTcyMzE4OGVmYTRmN2ZiNjgwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVn
aXN0ZXIuaWRsCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0
UnVudGltZT1IaWdobGlnaHRBUEksCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAg
ICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSGlnaGxpZ2h0UmVnaXN0ZXIgeworICAgIGNv
bnN0cnVjdG9yKCk7CisKKyAgICBtYXBsaWtlPERPTVN0cmluZywgSGlnaGxpZ2h0PjsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDkxYzU4Nzk4NWU0MDljZWIyMTMxYjg4YTFjYzRiZjdjYTdmNWMzZWQu
LmNlNzEzNzhhNGU4NjU1ZTNlZmFiNTEwMDZiOTJiOWY1ZjMyMmY2ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC02NCw4ICs2NCw4IEBAIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCiBN
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24v
TmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwCi1Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAu
Y3BwCi1Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCitNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHQuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3JXaXRoVmFsdWUuY3BwCkBAIC0zMDUyLDggKzMwNTIsOCBAQCBKU0hUTUxVbmtub3duRWxlbWVu
dC5jcHAKIEpTSFRNTFZpZGVvRWxlbWVudC5jcHAKIEpTSGFzaENoYW5nZUV2ZW50LmNwcAogSlNI
ZHJNZXRhZGF0YVR5cGUuY3BwCi1KU0hpZ2hsaWdodE1hcC5jcHAKLUpTSGlnaGxpZ2h0UmFuZ2VH
cm91cC5jcHAKK0pTSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCitKU0hpZ2hsaWdodC5jcHAKIEpTSGlz
dG9yeS5jcHAKIEpTSGtkZlBhcmFtcy5jcHAKIEpTSG1hY0tleVBhcmFtcy5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzli
NzFjNjEwNWRmNDY3YjNiMzBmNTIyOWI3ZDBkMDUyOTdiNzViLi4zOTgyNjY5MzYxN2RjYmU5NDVk
MjE2YjZhMDRlMzIxY2NiMTU1OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OTQzLDEyICs3OTQzLDEyIEBACiAJCTQ0RDhE
QTk4MTM5NTQ1QkUwMDMzN0I3NSAvKiBTVkdNUGF0aEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFNWR01QYXRoRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0RDhEQTlBMTM5NTQ1Q0QwMDMzN0I3NSAvKiBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEUzNDlGNzI0NkY0REM3MDA2ODQ3OUMgLyog
TGliV2ViUlRDRW51bVRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBM
aWJXZWJSVENFbnVtVHJhaXRzLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDRW51bVRyYWl0
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU0QzIzNjkxMjhBMDA5QjQ4
NDcgLyogSGlnaGxpZ2h0TWFwLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIaWdobGlnaHRN
YXAuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU0RDIzNjkxMjhCMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
SGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0
RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRNYXAuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SGlnaGxpZ2h0TWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTUxMjM2
QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhp
Z2hsaWdodFJhbmdlR3JvdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhF
NTIyMzZBNjY3RjAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIaWdobGlnaHRNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU1
NDIzNkE2NkExMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIaWdobGlnaHRSYW5nZUdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDRFODhFNEMyMzY5MTI4QTAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIaWdobGlnaHRSZWdpc3Rlci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdobGlnaHQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhpZ2hsaWdodC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdp
c3Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHRSZWdpc3Rlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0NEU4OEU1MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxpZ2h0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEhpZ2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0NEU4OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0NEU4OEU1NDIzNkE2NkExMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhpZ2hsaWdodC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ1MENFQkVFMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExhYmVsYWJsZUVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTBDRUJFRjE1MDczQkJFMDAyQkIxNDkgLyog
TGFiZWxhYmxlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYWJl
bGFibGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MTI1MDIwMTVE
Q0UzN0QwMDJGODRFMiAvKiBTcGluQnV0dG9uRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGluQnV0dG9uRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xOTM2OSwxMiArMTkzNjksMTIgQEAKIAkJNDRFODhFNDcyMzY4REYw
RjAwOUI0ODQ3IC8qIGhpZ2hsaWdodCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCi0JCQkJNDRFODhFNTIyMzZBNjY3RjAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5j
cHAgKi8sCi0JCQkJNDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5oICov
LAotCQkJCTQ0RTg4RTRDMjM2OTEyOEEwMDlCNDg0NyAvKiBIaWdobGlnaHRNYXAuaWRsICovLAot
CQkJCTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmNwcCAq
LywKLQkJCQk0NEU4OEU1MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5o
ICovLAotCQkJCTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3Vw
LmlkbCAqLywKKwkJCQk0NEU4OEU1NDIzNkE2NkExMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmNwcCAq
LywKKwkJCQk0NEU4OEU1MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmggKi8sCisJCQkJ
NDRFODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5pZGwgKi8sCisJCQkJNDRFODhF
NTIyMzZBNjY3RjAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmNwcCAqLywKKwkJCQk0NEU4
OEU1MDIzNkE1NkFDMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCAqLywKKwkJCQk0NEU4
OEU0QzIzNjkxMjhBMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsICovLAogCQkJKTsK
IAkJCXBhdGggPSBoaWdobGlnaHQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDk3
MDJjYzU5NzJlOTk1Nzk2YjE3ODRiNjliMDBiNjI3MTcxZjQ0MzcuLjIwZDk1ZWU1NGUwNDc0Zjg4
MjMzNjNmZDljNWIxNWU2Njc3ZGM0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTEyOSw4ICsxMjksOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgbWFjcm8oR1BVVGV4dHVyZVZpZXcpIFwKICAgICBtYWNybyhHUFVVbmNh
cHR1cmVkRXJyb3JFdmVudCkgXAogICAgIG1hY3JvKEdQVVZhbGlkYXRpb25FcnJvcikgXAotICAg
IG1hY3JvKEhpZ2hsaWdodE1hcCkgXAotICAgIG1hY3JvKEhpZ2hsaWdodFJhbmdlR3JvdXApIFwK
KyAgICBtYWNybyhIaWdobGlnaHRSZWdpc3RlcikgXAorICAgIG1hY3JvKEhpZ2hsaWdodCkgXAog
ICAgIG1hY3JvKEhUTUxBdHRhY2htZW50RWxlbWVudCkgXAogICAgIG1hY3JvKEhUTUxBdWRpb0Vs
ZW1lbnQpIFwKICAgICBtYWNybyhIVE1MRGlhbG9nRWxlbWVudCkgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTTmFtZXNwYWNlLmNwcAppbmRleCAxOWUzZGQ2MWVhOWQ5YWEwOTc1NmM3MzQ2NTVkNGRj
NzY3MDY4NzFiLi5kNTkyNTcwYjg2MzE2ZDgzMWZiNTk3YTI5MTRiOTc1ZmJiM2Q0MGM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2lu
Y2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VyLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKKyNpbmNsdWRlICJI
aWdobGlnaHRSZWdpc3Rlci5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTg5LDkgKzg5LDkgQEAgU3RyaW5nIERPTUNTU05hbWVzcGFjZTo6ZXNjYXBlKGNv
bnN0IFN0cmluZyYgaWRlbnQpCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIAot
SGlnaGxpZ2h0TWFwJiBET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMoRG9jdW1lbnQmIGRvY3Vt
ZW50KQorSGlnaGxpZ2h0UmVnaXN0ZXImIERPTUNTU05hbWVzcGFjZTo6aGlnaGxpZ2h0cyhEb2N1
bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGRvY3VtZW50LmhpZ2hsaWdodE1hcCgpOwor
ICAgIHJldHVybiBkb2N1bWVudC5oaWdobGlnaHRSZWdpc3RlcigpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmgKaW5kZXggMzA0N2U1Mjc5ODQ0NmNkNzcwNjY3NTUwOTQx
OTlhMzFlYzA1ZWM3Zi4uODZkMjdmZTlmZjcxNzdiM2U0YWNkY2JlNGU5ZTRmNTg3YWQwNDFhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaApAQCAtMzcsMTUgKzM3LDE1IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgSGlnaGxpZ2h0TWFw
OwotY2xhc3MgSGlnaGxpZ2h0UmFuZ2VHcm91cDsKK2NsYXNzIEhpZ2hsaWdodFJlZ2lzdGVyOwor
Y2xhc3MgSGlnaGxpZ2h0OwogCiBjbGFzcyBET01DU1NOYW1lc3BhY2UgZmluYWwgOiBwdWJsaWMg
UmVmQ291bnRlZDxET01DU1NOYW1lc3BhY2U+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8RE9NQ1NT
TmFtZXNwYWNlPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHMoRG9jdW1lbnQm
LCBjb25zdCBTdHJpbmcmIHByb3BlcnR5LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0cyhEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgY29uZGl0aW9uVGV4dCk7
CiAgICAgc3RhdGljIFN0cmluZyBlc2NhcGUoY29uc3QgU3RyaW5nJiBpZGVudCk7Ci0gICAgc3Rh
dGljIEhpZ2hsaWdodE1hcCYgaGlnaGxpZ2h0cyhEb2N1bWVudCYpOworICAgIHN0YXRpYyBIaWdo
bGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0cyhEb2N1bWVudCYpOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbAppbmRleCA1NjM1NTkzNTZmYzZlYTUxYThhMWJjYzIy
MDIxM2YzZDgwODJjMDc3Li4zNGYzZDcyNDM1ZDM1NWEyZGEwNmFiNjU3NzU1MTZlNWVkZjZjZTIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbApAQCAtMzUsNSArMzUsNSBA
QAogICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIGJvb2xlYW4gc3VwcG9ydHMoRE9NU3Ry
aW5nIHByb3BlcnR5LCBET01TdHJpbmcgdmFsdWUpOwogICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0g
c3RhdGljIGJvb2xlYW4gc3VwcG9ydHMoRE9NU3RyaW5nIGNvbmRpdGlvblRleHQpOwogICAgIHN0
YXRpYyBET01TdHJpbmcgZXNjYXBlKERPTVN0cmluZyBpZGVudCk7Ci0gICAgW0VuYWJsZWRBdFJ1
bnRpbWU9SGlnaGxpZ2h0QVBJLCBDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0
dHJpYnV0ZSBIaWdobGlnaHRNYXAgaGlnaGxpZ2h0czsKKyAgICBbRW5hYmxlZEF0UnVudGltZT1I
aWdobGlnaHRBUEksIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRl
IEhpZ2hsaWdodFJlZ2lzdGVyIGhpZ2hsaWdodHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggMDg1MzU4OWVhYmFjMzVlNzZhYmE2ZjI4MmFlNTc2YzU5MmUxZThlNS4uNmU1ZjAxZDlj
MzJmZDIyNjQ1YTMyYjQwMDYwY2IwNGIxYjE5NzY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC0xMTEsNyArMTExLDcgQEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNs
dWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhhc2hDaGFuZ2VFdmVudC5oIgotI2luY2x1
ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5j
bHVkZSAiSGlzdG9yeS5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJ
ZGxlQ2FsbGJhY2tDb250cm9sbGVyLmgiCkBAIC03OTIsOCArNzkyLDggQEAgdm9pZCBEb2N1bWVu
dDo6Y29tbW9uVGVhcmRvd24oKQogCiAgICAgY2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIoKTsKICAgICAKLSAgICBpZiAobV9oaWdobGlnaHRNYXApCi0gICAgICAgIG1faGlnaGxpZ2h0
TWFwLT5jbGVhcigpOworICAgIGlmIChtX2hpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBtX2hp
Z2hsaWdodFJlZ2lzdGVyLT5jbGVhcigpOwogCiAgICAgbV9wZW5kaW5nU2Nyb2xsRXZlbnRUYXJn
ZXRMaXN0ID0gbnVsbHB0cjsKIApAQCAtMjc2NywxOCArMjc2NywxOCBAQCBSZWY8RG9jdW1lbnRQ
YXJzZXI+IERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQogICAgIHJldHVybiBYTUxEb2N1bWVudFBh
cnNlcjo6Y3JlYXRlKCp0aGlzLCB2aWV3KCkpOwogfQogCi1IaWdobGlnaHRNYXAmIERvY3VtZW50
OjpoaWdobGlnaHRNYXAoKQorSGlnaGxpZ2h0UmVnaXN0ZXImIERvY3VtZW50OjpoaWdobGlnaHRS
ZWdpc3RlcigpCiB7Ci0gICAgaWYgKCFtX2hpZ2hsaWdodE1hcCkKLSAgICAgICAgbV9oaWdobGln
aHRNYXAgPSBIaWdobGlnaHRNYXA6OmNyZWF0ZSgpOwotICAgIHJldHVybiAqbV9oaWdobGlnaHRN
YXA7CisgICAgaWYgKCFtX2hpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBtX2hpZ2hsaWdodFJl
Z2lzdGVyID0gSGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSgpOworICAgIHJldHVybiAqbV9oaWdo
bGlnaHRSZWdpc3RlcjsKIH0KIAogdm9pZCBEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRp
b25zKCkKIHsKICAgICBWZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+PiByYW5nZXNE
YXRhOwotICAgIGlmIChtX2hpZ2hsaWdodE1hcCkgewotICAgICAgICBmb3IgKGF1dG8mIGhpZ2hs
aWdodCA6IG1faGlnaGxpZ2h0TWFwLT5tYXAoKSkgeworICAgIGlmIChtX2hpZ2hsaWdodFJlZ2lz
dGVyKSB7CisgICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogbV9oaWdobGlnaHRSZWdpc3Rl
ci0+bWFwKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0
LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKICAgICAgICAgICAgICAgICBpZiAocmFuZ2VEYXRhLT5z
dGFydFBvc2l0aW9uICYmIHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24pCiAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkZDg4M2IyYTA3YzU2MjM2ZWNj
ZmQ1MDQ1YWFlNjA2YjM5NmU4NzRmLi45M2ZiNzQ4YTdmOTUyMzFkNWQ2OThlYWU0MDIwYTNlOTEz
NWI2MDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTU2LDcgKzE1Niw3IEBAIGNsYXNzIEhU
TUxJbWFnZUVsZW1lbnQ7CiBjbGFzcyBIVE1MTWFwRWxlbWVudDsKIGNsYXNzIEhUTUxNZWRpYUVs
ZW1lbnQ7CiBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwotY2xhc3MgSGlnaGxpZ2h0TWFwOworY2xh
c3MgSGlnaGxpZ2h0UmVnaXN0ZXI7CiBjbGFzcyBIaXRUZXN0TG9jYXRpb247CiBjbGFzcyBIaXRU
ZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CkBAIC0xNTY5LDcgKzE1NjksNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXImIHRl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyKCk7CiAgICAgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXIqIHRleHRNYW5pcHVsYXRpb25Db250cm9sbGVySWZFeGlzdHMoKSB7IHJldHVybiBtX3RleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAgICAgICAgIAotICAgIEhpZ2hsaWdodE1h
cCYgaGlnaGxpZ2h0TWFwKCk7CisgICAgSGlnaGxpZ2h0UmVnaXN0ZXImIGhpZ2hsaWdodFJlZ2lz
dGVyKCk7CiAgICAgdm9pZCB1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKIAogICAgIGJvb2wg
YWxsb3dzQ29udGVudEphdmFTY3JpcHQoKSBjb25zdDsKQEAgLTE5MjQsNyArMTkyNCw3IEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRleHRBdXRvU2l6aW5nPiBtX3RleHRBdXRvU2l6
aW5nOwogI2VuZGlmCiAgICAgICAgIAotICAgIFJlZlB0cjxIaWdobGlnaHRNYXA+IG1faGlnaGxp
Z2h0TWFwOworICAgIFJlZlB0cjxIaWdobGlnaHRSZWdpc3Rlcj4gbV9oaWdobGlnaHRSZWdpc3Rl
cjsKIAogICAgIFRpbWVyIG1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcAppbmRleCA2NWUzMmE0ODUwZDY3
Y2NkMDA0ZTJhNzU2YjBmMWI3ZDc4ZDFiY2E3Li4zOWViMTUxMDlhYTZjMDJhNjg2YmUwNGRlMGNk
ZDZiMDM3YzhmYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxp
Z2h0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEu
Y3BwCkBAIC0zMyw3ICszMyw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkZyYW1lU2VsZWN0aW9uLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgorI2lu
Y2x1ZGUgIkhpZ2hsaWdodC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQb3Np
dGlvbi5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5jcHAKaW5kZXggY2JjMDNhN2RiOThjMTE1MzZiMzcxMjczYWZhOGEzNTAzNmQx
Njc1Ni4uNDcxYjVlNzNkZjU3ZGY3ODUwNTQ0MDA4YTAyNTQxODE0OTAyMjU4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtMzYsNyArMzYsNyBAQAog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiSGlnaGxpZ2h0RGF0YS5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUg
IkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1
ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveFN0eWxlLmgiCkBAIC0x
MDUxLDcgKzEwNTEsNyBAQCBWZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4dEJveDo6Y29sbGVj
dE1hcmtlZFRleHRzRm9ySGlnaGxpZ2h0cyhUZXh0UGFpbnRQaGFzZQogICAgIGF1dG8mIHBhcmVu
dFJlbmRlcmVyID0gcGFyZW50KCktPnJlbmRlcmVyKCk7CiAgICAgYXV0byYgcGFyZW50U3R5bGUg
PSBwYXJlbnRSZW5kZXJlci5zdHlsZSgpOwogICAgIEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0RGF0
YTsKLSAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5oaWdo
bGlnaHRNYXAoKS5tYXAoKSkgeworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIo
KS5kb2N1bWVudCgpLmhpZ2hsaWdodFJlZ2lzdGVyKCkubWFwKCkpIHsKICAgICAgICAgYXV0byBy
ZW5kZXJTdHlsZSA9IHBhcmVudFJlbmRlcmVyLmdldFVuY2FjaGVkUHNldWRvU3R5bGUoeyBQc2V1
ZG9JZDo6SGlnaGxpZ2h0LCBoaWdobGlnaHQua2V5IH0sICZwYXJlbnRTdHlsZSk7CiAgICAgICAg
IGlmICghcmVuZGVyU3R5bGUpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IGE3MmYxZWQ3Nzk3MmE0NDc2MWRh
MDc1MWZmNDI3YTUyYTYwYjljYjMuLjNjZWUwMWY0NTk1MWMxNTlhOWRhMjgzMzFhN2U2MGNkZmU3
ZTY0N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApA
QCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0RGF0YS5oIgotI2luY2x1
ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5j
bHVkZSAiSW5saW5lRWxlbWVudEJveC5oIgogI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uTGlu
ZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oIgpA
QCAtMTU0LDcgKzE1NCw3IEBAIGlubGluZSBzdGF0aWMgYm9vbCBkcmFnZ2VkQ29udGVudENvbnRh
aW5zUmVwbGFjZWRFbGVtZW50KGNvbnN0IFZlY3RvcjxSZW5kZXJlZERvCiBDb2xvciBSZW5kZXJS
ZXBsYWNlZDo6Y2FsY3VsYXRlSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogewogICAgIEhpZ2hsaWdo
dERhdGEgaGlnaGxpZ2h0RGF0YTsKLSAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGRvY3VtZW50
KCkuaGlnaGxpZ2h0TWFwKCkubWFwKCkpIHsKKyAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGRv
Y3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewogICAgICAgICBmb3IgKGF1dG8m
IHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CiAgICAgICAgICAg
ICBpZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
ZWxlY3Rpb25SYW5nZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlv
blJhbmdlRGF0YS5jcHAKaW5kZXggZjQ5NzE2OWUyN2JkNGE3MjA3MTYzN2Y2MGMwZDFmZjkxYTU3
MTc5OC4uYmU2N2U2MGU3NTk5MjRlY2ZhZGRlZTkyZTZjNzlkNTIzZTZlN2ZjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rp
b24uaCIKLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCisjaW5jbHVkZSAiSGlnaGxp
Z2h0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5j
bHVkZSAiUmFuZ2UuaCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGln
aHQtaW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxp
Z2h0LWludGVyZmFjZXMtZXhwZWN0ZWQudHh0CmluZGV4IGIzMDUxYzNmZDNmYTYzM2MwYzY3NWI3
ZDQ5ZjdmZmU3YTczMmM4MjkuLmY5ZjMyOWQwNjFiM2UzYWU2OGQxMTViMGViZTQ4OWM3ZWQ5NzFj
OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNl
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRl
cmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMSwxOCArMSwxOCBAQAotVGVzdHMgdGhlIGludGVyZmFj
ZXMgb2YgdGhlIGhpZ2hsaWdodCBBUEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0UmFuZ2VHcm91
cCwgSGlnaGxpZ2h0TWFwLCBhbmQgZXh0ZW5zaW9ucyB0byB0aGUgQ1NTIG5hbWVzcGFjZS4KK1Rl
c3RzIHRoZSBpbnRlcmZhY2VzIG9mIHRoZSBoaWdobGlnaHQgQVBJLCB3aGljaCBpbmNsdWRlIEhp
Z2hsaWdodCwgSGlnaGxpZ2h0UmVnaXN0ZXIsIGFuZCBleHRlbnNpb25zIHRvIHRoZSBDU1MgbmFt
ZXNwYWNlLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogVGVzdGluZyBIaWdobGln
aHQ6Ci1QQVNTIEhpZ2hsaWdodFJhbmdlR3JvdXAgaW5zdGFuY2VvZiBGdW5jdGlvbiBpcyB0cnVl
Ci1QQVNTIHR5cGVvZiBIaWdobGlnaHRSYW5nZUdyb3VwIGlzICJmdW5jdGlvbiIKLVBBU1MgbmV3
IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwg
ZW5kT2Zmc2V0OiAyfSkpIGluc3RhbmNlb2YgSGlnaGxpZ2h0UmFuZ2VHcm91cCBpcyB0cnVlCi1Q
QVNTIEhpZ2hsaWdodE1hcCBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKLVBBU1MgdHlwZW9m
IEhpZ2hsaWdodE1hcCBpcyAiZnVuY3Rpb24iCi1QQVNTIG5ldyBIaWdobGlnaHRNYXAoKSBpbnN0
YW5jZW9mIEhpZ2hsaWdodE1hcCBpcyB0cnVlCi1QQVNTIG5ldyBIaWdobGlnaHRNYXAoKS5zZXQo
ImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVy
OiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkpIGlzIGRlZmluZWQuCitQQVNTIEhpZ2hs
aWdodCBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKK1BBU1MgdHlwZW9mIEhpZ2hsaWdodCBp
cyAiZnVuY3Rpb24iCitQQVNTIG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpIGluc3RhbmNlb2YgSGlnaGxpZ2h0IGlzIHRydWUK
K1BBU1MgSGlnaGxpZ2h0UmVnaXN0ZXIgaW5zdGFuY2VvZiBGdW5jdGlvbiBpcyB0cnVlCitQQVNT
IHR5cGVvZiBIaWdobGlnaHRSZWdpc3RlciBpcyAiZnVuY3Rpb24iCitQQVNTIG5ldyBIaWdobGln
aHRSZWdpc3RlcigpIGluc3RhbmNlb2YgSGlnaGxpZ2h0UmVnaXN0ZXIgaXMgdHJ1ZQorUEFTUyBu
ZXcgSGlnaGxpZ2h0UmVnaXN0ZXIoKS5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0KG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0
OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSkgaXMgZGVm
aW5lZC4KIFBBU1MgQ1NTLmhpZ2hsaWdodHMgaXMgZGVmaW5lZC4KLVBBU1MgQ1NTLmhpZ2hsaWdo
dHMuc2V0KCJmb28tc3R5bGluZyIsbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENv
bnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBDU1MuaGlnaGxpZ2h0
cworUEFTUyBDU1MuaGlnaGxpZ2h0cy5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0KG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0
OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSkgaXMgQ1NT
LmhpZ2hsaWdodHMKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZh
Y2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMuaHRt
bAppbmRleCA1OGY0OTRjYTJmZDE5YWI3NGY4OWM4OTgwOWE0ZWJlZTBhZjdmYWRlLi45ZjI2YWE5
YmQwZGI3MTRmMTE2OTE0MTI4OTNlNmNhZjNiZTMzOTIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
aWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMuaHRtbApAQCAtNCwxOCArNCwxOCBAQAogPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAK
LWRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgaW50ZXJmYWNlcyBvZiB0aGUgaGlnaGxpZ2h0IEFQSSwg
d2hpY2ggaW5jbHVkZSBIaWdobGlnaHRSYW5nZUdyb3VwLCBIaWdobGlnaHRNYXAsIGFuZCBleHRl
bnNpb25zIHRvIHRoZSBDU1MgbmFtZXNwYWNlLiIpOworZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBp
bnRlcmZhY2VzIG9mIHRoZSBoaWdobGlnaHQgQVBJLCB3aGljaCBpbmNsdWRlIEhpZ2hsaWdodCwg
SGlnaGxpZ2h0UmVnaXN0ZXIsIGFuZCBleHRlbnNpb25zIHRvIHRoZSBDU1MgbmFtZXNwYWNlLiIp
OwogCiBkZWJ1ZygiVGVzdGluZyBIaWdobGlnaHQ6Iik7Ci1zaG91bGRCZVRydWUoIkhpZ2hsaWdo
dFJhbmdlR3JvdXAgaW5zdGFuY2VvZiBGdW5jdGlvbiIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ0eXBlb2YgSGlnaGxpZ2h0UmFuZ2VHcm91cCIsICJmdW5jdGlvbiIpOwotc2hvdWxkQmVUcnVl
KCJuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVy
OiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5i
b2R5LCBlbmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHRSYW5nZUdyb3VwIik7Ci1z
aG91bGRCZVRydWUoIkhpZ2hsaWdodE1hcCBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdobGlnaHRNYXAiLCAiZnVuY3Rpb24iKTsKLXNob3Vs
ZEJlVHJ1ZSgibmV3IEhpZ2hsaWdodE1hcCgpIGluc3RhbmNlb2YgSGlnaGxpZ2h0TWFwIik7Ci1z
aG91bGRCZURlZmluZWQoJ25ldyBIaWdobGlnaHRNYXAoKS5zZXQoImZvby1zdHlsaW5nIixuZXcg
SGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBl
bmRPZmZzZXQ6IDJ9KSkpJyk7CitzaG91bGRCZVRydWUoIkhpZ2hsaWdodFJlZ2lzdGVyIGluc3Rh
bmNlb2YgRnVuY3Rpb24iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIEhpZ2hsaWdo
dFJlZ2lzdGVyIiwgImZ1bmN0aW9uIik7CitzaG91bGRCZVRydWUoIm5ldyBIaWdobGlnaHRSZWdp
c3RlcihuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFy
dE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkg
aW5zdGFuY2VvZiBIaWdobGlnaHRSZWdpc3RlciIpOworc2hvdWxkQmVUcnVlKCJIaWdobGlnaHRS
ZWdpc3RlciBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5
cGVvZiBIaWdobGlnaHRSZWdpc3RlciIsICJmdW5jdGlvbiIpOworc2hvdWxkQmVUcnVlKCJuZXcg
SGlnaGxpZ2h0UmVnaXN0ZXIoKSBpbnN0YW5jZW9mIEhpZ2hsaWdodFJlZ2lzdGVyIik7CitzaG91
bGRCZURlZmluZWQoJ25ldyBIaWdobGlnaHRSZWdpc3RlcigpLnNldCgiZm9vLXN0eWxpbmciLG5l
dyBIaWdobGlnaHRSZWdpc3RlcihuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBl
bmRPZmZzZXQ6IDJ9KSkpJyk7CiBzaG91bGRCZURlZmluZWQoJ0NTUy5oaWdobGlnaHRzJyk7Ci1z
aG91bGRCZSgnQ1NTLmhpZ2hsaWdodHMuc2V0KCJmb28tc3R5bGluZyIsbmV3IEhpZ2hsaWdodFJh
bmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwg
c3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAy
fSkpKScsICdDU1MuaGlnaGxpZ2h0cycpOworc2hvdWxkQmUoJ0NTUy5oaWdobGlnaHRzLnNldCgi
Zm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHRSZWdpc3RlcihuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkpJywgJ0NTUy5oaWdobGlnaHRzJyk7CiAKIDwv
c2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hs
aWdodC1tYXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9o
aWdobGlnaHQtbWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQKaW5kZXggZmIxMzIxOWJiMmU5ZGNm
ZjVkMWNlNzNkNzMwZDcwZmFkYzE4OWFlZi4uY2E5YTQ5MDk0MzNhYjFkYzkwNWM5NjNiNmY4OTIx
NDEwNmRiNzk3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1t
YXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGln
aGxpZ2h0LW1hcC1hbmQtZ3JvdXAtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAotUEFTUyBo
aWdobGlnaHRSYW5nZUdyb3VwMS5zaXplIGlzIDEKLVBBU1MgaGlnaGxpZ2h0UmFuZ2VHcm91cDIu
c2l6ZSBpcyAyCi1QQVNTIGhpZ2hsaWdodFJhbmdlR3JvdXAzLnNpemUgaXMgMworUEFTUyBoaWdo
bGlnaHQxLnNpemUgaXMgMQorUEFTUyBoaWdobGlnaHQyLnNpemUgaXMgMgorUEFTUyBoaWdobGln
aHQzLnNpemUgaXMgMwogUEFTUyBDU1MuaGlnaGxpZ2h0cy5zaXplIGlzIDMKIFBBU1MgQ1NTLmhp
Z2hsaWdodHMuaGFzKCJleGFtcGxlLWhpZ2hsaWdodDEiKSBpcyB0cnVlCiBQQVNTIENTUy5oaWdo
bGlnaHRzLmhhcygiZXhhbXBsZS1oaWdobGlnaHQyIikgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWwgYi9MYXlvdXRU
ZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAuaHRtbAppbmRleCA1YjRiZmFi
MGFjZTM0YWExNWE1ZDQxODc3ODFiMDU1NjNkMTYxNWIwLi5hZTQ5Y2ZhMThhZTk4YzliY2MyNzZi
YjJkOTc0MDIyZjgwMjJhZDM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGln
aGxpZ2h0LW1hcC1hbmQtZ3JvdXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGln
aGxpZ2h0LW1hcC1hbmQtZ3JvdXAuaHRtbApAQCAtMjAsMjMgKzIwLDIzIEBACiAgICAgPGJvZHk+
PHNwYW4+T25lIDwvc3Bhbj48c3Bhbj50d28gPC9zcGFuPjxzcGFuPnRocmVlLi4uPC9zcGFuPgog
CiAgICAgPHNjcmlwdD4KLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhp
Z2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1l
bnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5k
T2Zmc2V0OiAyfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6
IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpOwogCi0gICAg
ICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0
OiAyLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogM30pKTsKLSAgICAg
ICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IGRvY3VtZW50
LmJvZHksIGVuZE9mZnNldDogNX0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDIgPSBuZXcgSGln
aGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0
YXJ0T2Zmc2V0OiAyLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogM30p
KTsKKyAgICAgICAgaGlnaGxpZ2h0Mi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5l
cjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQu
Ym9keSwgZW5kT2Zmc2V0OiA1fSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3Vw
MyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IGRvY3VtZW50
LmJvZHksIGVuZE9mZnNldDogOH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRk
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zm
c2V0OiAxMCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDEyfSkpOwot
ICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA2fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5l
dyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9k
eSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0
OiA4fSkpOworICAgICAgICBoaWdobGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAxMn0pKTsKKyAgICAgICAgaGlnaGxpZ2h0My5hZGQobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6
IDUsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA2fSkpOwogICAgICAg
ICAKIAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhp
Z2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxl
LWhpZ2hsaWdodDIiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7Ci0gICAgICAgIENTUy5oaWdobGln
aHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDMpOworICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEp
OworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hs
aWdodDIpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIs
IGhpZ2hsaWdodDMpOwogCi0gICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHRSYW5nZUdyb3VwMS5z
aXplIiwiMSIpOwotICAgICAgICBzaG91bGRCZSgiaGlnaGxpZ2h0UmFuZ2VHcm91cDIuc2l6ZSIs
IjIiKTsKLSAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodFJhbmdlR3JvdXAzLnNpemUiLCIzIik7
CisgICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHQxLnNpemUiLCIxIik7CisgICAgICAgIHNob3Vs
ZEJlKCJoaWdobGlnaHQyLnNpemUiLCIyIik7CisgICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHQz
LnNpemUiLCIzIik7CiAKICAgICAgICAgc2hvdWxkQmUoIkNTUy5oaWdobGlnaHRzLnNpemUiLCIz
Iik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxp
Z2h0LWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdo
dC1mcmFtZS5odG1sCmluZGV4IDg4NDg4N2I4MjdlNjk1YTA4NDA5OTRlYmIwMDcxN2E0YjEyYTE5
M2EuLjg3ZDk3OWNhNzI1ZDllY2UwMGQzNzUyMzU4ZGNlZjkwODMyMGY4NjAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbApA
QCAtMTMsNiArMTMsNiBAQAogCiA8c2NyaXB0PgogbGV0IGhpZ2hsaWdodCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdoaWdobGlnaHQnKTsKLWxldCBoaWdobGlnaHRSYW5nZUdyb3VwID0gbmV3
IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaGln
aGxpZ2h0LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGhpZ2hs
aWdodC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7Ci1DU1MuaGlnaGxpZ2h0cy5zZXQo
ImV4YW1wbGUiLCBoaWdobGlnaHRSYW5nZUdyb3VwKTsKK2xldCBoaWdobGlnaHQgPSBuZXcgSGln
aGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGhpZ2hsaWdodC5jaGlsZE5v
ZGVzWzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiBoaWdobGlnaHQuY2hpbGROb2Rl
c1swXSwgZW5kT2Zmc2V0OiA0fSkpOworQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlIiwgaGln
aGxpZ2h0KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3Nz
L2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCmluZGV4IDQ1
NzcxNWEyMTAzNWU2NWQxODUzM2RlMDA3ZDkxZGU3MDBlNjMyNGUuLjE1NWRkOGI0Y2ZmNDMzNzlm
ZmQwMTVmN2NlN2Y2ZmVkYmM5MjAxNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwK
QEAgLTE4LDEwICsxOCwxMCBAQAogCiAgICAgPHNjcmlwdD4KICAgICAgICAgbGV0IGltYWdlRWxl
bWVudDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpOwotICAgICAgICBsZXQgaGln
aGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiAwLCBlbmRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiAxfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBz
dGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9kZXNbMF0s
IGVuZE9mZnNldDogMX0pKTsKIAogCi0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBs
ZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOworICAgICAgICBDU1MuaGlnaGxp
Z2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEpOwogCiAgICAgPC9zY3Jp
cHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhp
Z2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3Nz
LWVsZW1lbnRzLmh0bWwKaW5kZXggYmFmNzFlMDk2ZTdkNzQ0YTQ0NDE3MzI1ZjBhYWJlMjYyYjY5
Nzk5YS4uNWQ2YzYwMWNjMjU3ZDI2ZjQwOTdmNGFjNTUwMmE1Yzk3ZDIyOWIxZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbApAQCAt
MzQsMTYgKzM0LDE2IEBACiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDMgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGV4dDMnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50NCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXh0NCcpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQ1ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQ1Jyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5n
ZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRD
b250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNCwgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA3fSkpOwor
ICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA0
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDd9
KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJh
bmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNo
aWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIu
Y2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdy
b3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNo
aWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDMu
Y2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA1fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MiA9
IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1l
bnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxl
bWVudDIuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOworICAgICAgICBoaWdobGlnaHQy
LmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50My5jaGls
ZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDV9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdl
R3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogdGV4dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDUuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxMn0pKTsK
KyAgICAgICAgbGV0IGhpZ2hsaWdodDMgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50My5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDog
MTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQ1LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDog
MTJ9KSk7CiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEi
LCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhh
bXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIpOwotICAgICAgICBDU1MuaGln
aGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodFJhbmdlR3JvdXAzKTsK
KyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGln
aHQxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBo
aWdobGlnaHQyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdo
dDMiLCBoaWdobGlnaHQzKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGln
aHQtdGV4dC1jYXNjYWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hs
aWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sCmluZGV4IGNkZTk3YzRiZmY3NGI3
ZjcyOGZmMjk3YjdlYjM4NzA4MWI2OGIwZGUuLjJmNzBjYTE2YmUzZTMyYjNiOGRmMDQ1ZTY1Mzk3
MDY5MDgyMjg4ZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGln
aGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRt
bApAQCAtMjYsMTAgKzI2LDEwIEBACiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGV4dDEnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50MiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MicpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQz
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQzJyk7Ci0gICAgICAgIGxldCBoaWdobGln
aHRSYW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAw
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDN9
KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA5fSkp
OworICAgICAgICBsZXQgaGlnaGxpZ2h0ID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uo
e3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6
IDAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDog
M30pKTsKKyAgICAgICAgaGlnaGxpZ2h0LmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRh
aW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogOX0pKTsKIAotICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0UmFu
Z2VHcm91cCk7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQi
LCBoaWdobGlnaHQpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0LWRlY29yYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hs
aWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtZGVjb3JhdGlvbnMuaHRtbAppbmRleCAyNDRiZmM5OGEy
YTA2YTgzMTZhZDczZjkzYzQxYWQzOThlZjM1MzhlLi45M2NhMTVmY2Q5NmI3ZGFkMTc1MTJjZmJk
ZjliNzM4NjdhNzg5Y2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtZGVjb3JhdGlvbnMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtZGVj
b3JhdGlvbnMuaHRtbApAQCAtNTEsMTMgKzUxLDEzIEBACiAKICAgICA8c2NyaXB0PgogICAgICAg
ICBsZXQgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDEnKTsKLSAg
ICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgZW5kT2Zmc2V0OiAyfSkpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBu
ZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7Ci0gICAgICAgIGxldCBo
aWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZz
ZXQ6IDEzfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3Rh
cnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5k
T2Zmc2V0OiAyfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MiA9IG5ldyBIaWdobGlnaHQobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
ZW5kT2Zmc2V0OiA2fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5ldyBIaWdobGlnaHQo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNb
MF0sIGVuZE9mZnNldDogMTN9KSk7CiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFt
cGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Ci0gICAgICAgIENTUy5oaWdo
bGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIpOwot
ICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdo
dFJhbmdlR3JvdXAzKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hs
aWdodDEiLCBoaWdobGlnaHQxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxl
LWhpZ2hsaWdodDIiLCBoaWdobGlnaHQyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJl
eGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHQzKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxp
Z2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBhaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwYWludC5odG1sCmluZGV4
IGQzOGM5NDBhNjFlYmM1OGVjNjVkOWE4NmUyNTM4YTY3NDM2M2ExYzcuLjQxODhiZTU3YTU0ZjBh
ZTA0NzVhOWJiNGMzZWFiZTNmNjIxMDU4ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBhaW50Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0LXJlcGFpbnQuaHRtbApAQCAtNSw3ICs1LDcgQEAKICAgICA8dGl0bGU+TXVsdGlwbGUgY3Vz
dG9tIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudHMuPC90aXRsZT4KICAgICA8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxpZ2h0LWFwaS0xLyNj
cmVhdGluZy1oaWdobGlnaHRzIj4KICAgICA8bGluayByZWw9Im1hdGNoIiBocmVmPSJoaWdobGln
aHQtdGV4dC1leHBlY3RlZC5odG1sIj4KLSAgICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9
IkhpZ2hsaWdodCBSYW5nZXMgc2hvdWxkIGJlIGFibGUgdG8gYmUgYWRkZWQgYW5kIHJlbW92ZWQg
ZnJvbSB0aGUgSGlnaGxpZ2h0UmFuZ2VHcm91cC4iPgorICAgIDxtZXRhIG5hbWU9ImFzc2VydCIg
Y29udGVudD0iSGlnaGxpZ2h0IFJhbmdlcyBzaG91bGQgYmUgYWJsZSB0byBiZSBhZGRlZCBhbmQg
cmVtb3ZlZCBmcm9tIHRoZSBIaWdobGlnaHQuIj4KICAgICA8c3R5bGU+CiAgICAgICAgIDo6aGln
aGxpZ2h0KGV4YW1wbGUtaGlnaGxpZ2h0KSB7CiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlOwpAQCAtNDIsMTIgKzQyLDEyIEBACiAgICAgICAgICAgICBsZXQgcmFuZ2UyID0gbmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
ZW5kT2Zmc2V0OiA0fSk7CiAgICAgICAgICAgICBsZXQgcmFuZ2UzID0gbmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6
IDgsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAx
Mn0pOwogCi0gICAgICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxp
Z2h0UmFuZ2VHcm91cChyYW5nZTEpOwotICAgICAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJl
eGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKKyAgICAgICAgICAgIGxl
dCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChyYW5nZTEpOworICAgICAgICAgICAgQ1NTLmhp
Z2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodDEpOwogCi0gICAgICAg
ICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMS5hZGQocmFuZ2UyKTsKLSAgICAgICAgICAgIGhpZ2hs
aWdodFJhbmdlR3JvdXAxLmRlbGV0ZShyYW5nZTEpOwotICAgICAgICAgICAgaGlnaGxpZ2h0UmFu
Z2VHcm91cDEuYWRkKHJhbmdlMyk7CisgICAgICAgICAgICBoaWdobGlnaHQxLmFkZChyYW5nZTIp
OworICAgICAgICAgICAgaGlnaGxpZ2h0MS5kZWxldGUocmFuZ2UxKTsKKyAgICAgICAgICAgIGhp
Z2hsaWdodDEuYWRkKHJhbmdlMyk7CiAKICAgICAgICAgICAgIHZhciByZXBhaW50UmVjdHMgPSB3
aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOwogICAgICAgICAgICAgd2luZG93
LmludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGxhY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGln
aHQtdGV4dC1yZXBsYWNlLmh0bWwKaW5kZXggNzAxM2E2NjMzNWViZTQ2MjVhNDRjN2U2M2NmZGYw
N2I2NzJjYWI1Mi4uOTEzY2I1ZTRjZjRhNjY1MjUyMDIwOTRhZGMzNjE0NTFlMDFhOWQ1MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hs
aWdodC10ZXh0LXJlcGxhY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sCkBAIC0xOCwxMyArMTgs
MTMgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAg
IGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29u
dGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CiAKLSAg
ICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgZW5kT2Zmc2V0OiA0fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
ZW5kT2Zmc2V0OiA2fSkpOyAgICAgICAgCisgICAgICAgIGxldCBoaWdobGlnaHQyID0gbmV3IEhp
Z2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGls
ZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGls
ZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CisgICAgICAgIGhpZ2hsaWdodDIuYWRkKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0
YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogNn0pKTsgICAgICAgIAogCi0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhh
bXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Ci0gICAgICAgIENTUy5oaWdo
bGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7Cisg
ICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHQx
KTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hs
aWdodDIpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LXRleHQuaHRtbAppbmRleCA0YWJmNDMwMDI4MGE4YTgzMTk3ZTgyMjlkODQ4OGM4MjM2MjA4NmI1
Li40YWQzNzI1MGRlNDc4OTBhMTc2Yzk5YThhMGJiM2EyMzIyMGZkMzRhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGln
aGxpZ2h0LXRleHQuaHRtbApAQCAtMjYsMTkgKzI2LDE5IEBACiAKICAgICA8c2NyaXB0PgogICAg
ICAgICBsZXQgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDEnKTsK
LSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3Jv
dXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgZW5kT2Zmc2V0OiAyfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5ldyBoaWdo
bGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiAyfSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdy
b3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250
YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAzLCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKLSAgICAg
ICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNn0pKTsKKyAgICAgICAg
bGV0IGhpZ2hsaWdodDIgPSBuZXcgaGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250
YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAzLCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKKyAgICAg
ICAgaGlnaGxpZ2h0Mi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVs
ZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVs
ZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkpOwogCi0gICAgICAgIGxldCBoaWdo
bGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0
OiA3LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDog
OH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA5
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTB9
KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTIs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxM30p
KTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDMgPSBuZXcgaGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0
OiA3LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDog
OH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0My5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRh
aW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDksIGVuZENvbnRh
aW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxMH0pKTsKKyAgICAg
ICAgaGlnaGxpZ2h0My5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVs
ZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEyLCBlbmRDb250YWluZXI6IHRleHRF
bGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTN9KSk7CiAgICAgICAgIAogCi0gICAg
ICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFu
Z2VHcm91cDEpOwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0
MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJl
eGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHRSYW5nZUdyb3VwMyk7CisgICAgICAgIENTUy5o
aWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0MSk7CisgICAgICAg
IENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0Mik7Cisg
ICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0
Myk7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411867</attachid>
            <date>2020-10-20 08:22:23 -0700</date>
            <delta_ts>2020-10-20 08:38:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217919-20201020082222.patch</filename>
            <type>text/plain</type>
            <size>75810</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiY2FmMTc5NjJkZGEy
MTRkZTNkZWEzMWE3ODYzMDhjMTMzNWQ1My4uNmZmYzY5ZTJlMjJlM2RjYjY2YzA1ZDc5Yzc0Njc1
MGZlZDFlN2UwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEhp
Z2hsaWdodE1hcCB0byBIaWdobGlnaHRSZWdpc3RlciBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB0
byBIaWdobGlnaHQgdG8gbWF0Y2ggY3VycmVudCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG5ldyBiZWhhdmlvciwg
cmVuYW1lIG9ubHkuCisgICAgICAgIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxp
Z2h0LWFwaS0xLworCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6SGlnaGxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodDo6aW5pdGlhbGl6ZVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGln
aHQ6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0OjphZGRU
b1NldExpa2UpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oLgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGw6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRNYXAuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmluaXRpYWxp
emVNYXBMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9t
TWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OnJlbW92ZSk6CisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oLgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSZWdpc3Rlcjo6bWFwIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMp
OgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBjc3MvRE9NQ1NT
TmFtZXNwYWNlLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpoaWdobGlnaHRSZWdpc3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBk
YXRlSGlnaGxpZ2h0UG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoaWdo
bGlnaHRNYXApOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFy
a2VkVGV4dHNGb3JIaWdobGlnaHRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0
ZUhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFu
Z2VEYXRhLmNwcDoKKwogMjAyMC0xMC0xOSAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTihyMjY1MjMxKTogT3Zlcmxh
eTogbm9kZSBpbmZvIHNvbWV0aW1lcyBkcmF3cyBvbiBvbmUgbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA2ZjEzNjM3MWQ4OWFiYmQ5NmRmYWRiZmYyMTNiN2Y3Nzc4ZDE2MjNhLi40ZmRlY2Iy
NjlkY2JiYzJlZjlkMjA5OThjM2RiZGQ4ZjFjZWM5YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjg5LDggKzI4OSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKLSAgICBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRNYXAuaWRsCi0gICAgTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5pZGwKKyAgICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCisgICAgTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9E
T01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDdhNDU0MWQxN2ZlYjNlMDgyODFlYWFmYzA0MzlmYTBiMmE3NmMyOTAuLmNkY2Iy
OTJmNTFmY2U1YWNlMWM3ODkyOTdkZmJkYzlmZjEyMzA2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI5LDggKzEyOSw4IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCi0kKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiskKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yRGlyZWN0aW9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIyMDg5MWFj
ZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi45NWRkNmU5NmQ0Njg0MjhkZWIxZmJmZGE1NzNkMjI3
YjM2MzBhMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMTEwOCwxMCArMTEwOCwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGFzaENoYW5nZUV2ZW50LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGRyTWV0YWRhdGFU
eXBlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
ZHJNZXRhZGF0YVR5cGUuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIaWdobGlnaHRNYXAuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodE1hcC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGln
aHRSZWdpc3Rlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSGlnaGxpZ2h0UmVnaXN0ZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIa2RmUGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjY5NGYwNjUxYjNlZTY3MmUzYTMwZGRhYmE4MjMwYzU3ZTY5
YjEzNi4uZTRhNTBjNWRiNzNhMjI5ODFlYzQ2NzIyNzJjNWEyOGRmODEwYjFiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTUsOCArMTU1LDggQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNr
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bk9wdGlvbnMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dE1hcC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93K0luZGV4
ZWREYXRhYmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JEaXJl
Y3Rpb24uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg2NDVmZDNjMmNiMTQ2OTI0YjVjODhkYTEzYTA1MjEzM2RjN2Rj
NGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHQuY3BwCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0LmgiCisKKyNpbmNsdWRlICJJRExUeXBl
cy5oIgorI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgorI2luY2x1ZGUgIkpTU3RhdGljUmFuZ2Uu
aCIKKyNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCisjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NT
dHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAi
U3RhdGljUmFuZ2UuaCIKKyNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSGlnaGxpZ2h0OjpIaWdobGlnaHQo
UmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQoreworICAgIGF1dG8gbXlSYW5nZSA9IFdURk1vdmUo
cmFuZ2UpOworICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgpKTsKK30KKworUmVmPEhpZ2hs
aWdodD4gSGlnaGxpZ2h0OjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChyYW5nZSkpOworfQorCit2b2lkIEhpZ2hsaWdodDo6
aW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYgc2V0KQoreworICAgIGZvciAoYXV0byYg
cmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAgICBzZXQuYWRkPElETEludGVyZmFjZTxT
dGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOworfQorCitzdGF0aWMgdm9pZCByZXBhaW50
UmFuZ2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8qIHN0YXJ0Tm9kZSA9
IG1ha2VSZWZQdHIoJnJhbmdlLnN0YXJ0Q29udGFpbmVyKCkpOworICAgIGF1dG8qIGVuZE5vZGUg
PSBtYWtlUmVmUHRyKCZyYW5nZS5lbmRDb250YWluZXIoKSk7CisgICAgYXV0byBvcmRlcmluZyA9
IGRvY3VtZW50T3JkZXIoKnN0YXJ0Tm9kZSwgKmVuZE5vZGUpOworICAgIGlmIChpc19lcShvcmRl
cmluZykpIHsKKyAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSBzdGFydE5vZGUtPnJlbmRlcmVy
KCkpCisgICAgICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmIChpc19ndChvcmRlcmluZykpIHsKKyAgICAgICAgc3RhcnROb2RlID0gJnJh
bmdlLmVuZENvbnRhaW5lcigpOworICAgICAgICBlbmROb2RlID0gJnJhbmdlLnN0YXJ0Q29udGFp
bmVyKCk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiBub2RlIDogaW50ZXJzZWN0aW5nTm9kZXMo
cmFuZ2UpKSB7CisgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKSkK
KyAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAgICAgIG5vZGUgPSBOb2RlVHJh
dmVyc2FsOjpuZXh0KCpub2RlKTsKKyAgICB9Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjpyZW1vdmVG
cm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCit7CisgICAgcmV0dXJuIG1fcmFu
Z2VzRGF0YS5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRS
YW5nZURhdGE+JiBjdXJyZW50KSB7CisgICAgICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAg
ICAgIHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOworICAgIH0pOwor
fQorCit2b2lkIEhpZ2hsaWdodDo6Y2xlYXJGcm9tU2V0TGlrZSgpCit7CisgICAgZm9yIChhdXRv
JiBkYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAgICByZXBhaW50UmFuZ2UoZGF0YS0+cmFuZ2Up
OworCisgICAgbV9yYW5nZXNEYXRhLmNsZWFyKCk7Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjphZGRU
b1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChub3RGb3VuZCAhPSBtX3Jh
bmdlc0RhdGEuZmluZE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURh
dGE+JiBjdXJyZW50KSB7IHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdl
OyB9KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7Cisg
ICAgbV9yYW5nZXNEYXRhLmFwcGVuZChIaWdobGlnaHRSYW5nZURhdGE6OmNyZWF0ZShyYW5nZSkp
OworICAgIAorICAgIHJldHVybiB0cnVlOworfQorCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBkZmE1NjgyMjhjODNiMjBl
YmU4YTJmOTM1ZWYwZjVkZTc1MzBmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNs
dWRlICJQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1NTdHlsZURl
Y2xhcmF0aW9uOworY2xhc3MgRE9NU2V0QWRhcHRlcjsKK2NsYXNzIFByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbjsKK2NsYXNzIFN0YXRpY1JhbmdlOworCisKK3N0cnVjdCBIaWdobGlnaHRS
YW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+IHsKKyAgICBIaWdobGlnaHRSYW5nZURhdGEoUmVm
PFN0YXRpY1JhbmdlPiYmIHJhbmdlKQorICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFuZ2UpKQor
ICAgIHsKKyAgICB9CisgICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShS
ZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBIaWdobGlnaHRSYW5nZURhdGEoV1RGTW92ZShyYW5nZSkpKTsKKyAgICB9CisgICAgUmVm
PFN0YXRpY1JhbmdlPiByYW5nZTsKKyAgICBPcHRpb25hbDxQb3NpdGlvbj4gc3RhcnRQb3NpdGlv
bjsKKyAgICBPcHRpb25hbDxQb3NpdGlvbj4gZW5kUG9zaXRpb247Cit9OworCitjbGFzcyBIaWdo
bGlnaHQgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0YXRpY1JhbmdlJik7CisgICAgdm9pZCBjbGVhckZy
b21TZXRMaWtlKCk7CisgICAgYm9vbCBhZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmKTsKKyAgICBi
b29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7CisgICAgdm9pZCBpbml0
aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVyJik7CisgICAgY29uc3QgVmVjdG9yPFJlZjxIaWdo
bGlnaHRSYW5nZURhdGE+PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0
YTsgfQorCisgICAgLy8gRklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0
aW9uJiBzdHlsZSgpOworcHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0
YT4+IG1fcmFuZ2VzRGF0YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZl
Y3RvciA8cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+CisgICAgZXhwbGljaXQgSGlnaGxpZ2h0KFJl
ZjxTdGF0aWNSYW5nZT4mJik7Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZWI3YTlmMjE2ZTkzMDkxNzYz
NjIzNjNkODgxZmZhMzA3OWRhZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksCisgICAgSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSGlnaGxp
Z2h0IHsKKyAgICBjb25zdHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7CisKKyAgICBzZXRsaWtl
PFN0YXRpY1JhbmdlPjsKKyAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NT
dHlsZURlY2xhcmF0aW9uIHN0eWxlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyYzlmZmFjMTg3MGMxZjZjMTM1YTA4MDJmYzRlNmMxYzE4YmRhZjA5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1h
cC5oIgotCi0jaW5jbHVkZSAiSURMVHlwZXMuaCIKLSNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIK
LSNpbmNsdWRlICJKU0hpZ2hsaWdodFJhbmdlR3JvdXAuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotICAgIAotdm9pZCBIaWdobGlnaHRNYXA6OmluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0
ZXImIG1hcCkKLXsKLSAgICBmb3IgKGF1dG8mIGtleVZhbHVlIDogbV9tYXApCi0gICAgICAgIG1h
cC5zZXQ8SURMRE9NU3RyaW5nLCBJRExJbnRlcmZhY2U8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+KGtl
eVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpOwotfQotCi12b2lkIEhpZ2hsaWdodE1hcDo6c2V0
RnJvbU1hcExpa2UoU3RyaW5nJiYga2V5LCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJiB2YWx1
ZSkKLXsKLSAgICBtX21hcC5zZXQoV1RGTW92ZShrZXkpLCBXVEZNb3ZlKHZhbHVlKSk7Ci19Ci0K
LXZvaWQgSGlnaGxpZ2h0TWFwOjpjbGVhcigpCi17Ci0gICAgbV9tYXAuY2xlYXIoKTsKLX0KLQot
Ym9vbCBIaWdobGlnaHRNYXA6OnJlbW92ZShjb25zdCBTdHJpbmcmIGtleSkKLXsKLSAgICByZXR1
cm4gbV9tYXAucmVtb3ZlKGtleSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDMwOWNlOTc5MjE1MGZjNzcxYjhlODkxNDNhMThjMjQzYTY4OGIwNjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0TWFwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3Vw
LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERPTU1hcEFkYXB0ZXI7Ci1jbGFzcyBE
T01TdHJpbmc7Ci1jbGFzcyBIaWdobGlnaHRSYW5nZUdyb3VwOwotCi1jbGFzcyBIaWdobGlnaHRN
YXAgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHRNYXA+IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPEhpZ2hsaWdodE1hcD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdo
bGlnaHRNYXApOyB9Ci0KLSAgICB2b2lkIGluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXIm
KTsKLSAgICB2b2lkIHNldEZyb21NYXBMaWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0UmFuZ2VH
cm91cD4mJik7Ci0gICAgdm9pZCBjbGVhcigpOwotICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmlu
ZyYpOwotICAgIAotICAgIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0UmFuZ2VH
cm91cD4+JiBtYXAoKSBjb25zdCB7IHJldHVybiBtX21hcDsgfQotICAgIAotcHJpdmF0ZToKLSAg
ICBIaWdobGlnaHRNYXAoKSA9IGRlZmF1bHQ7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdo
bGlnaHRSYW5nZUdyb3VwPj4gbV9tYXA7Ci19OwotCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjYTI1MWYwNThhODRkMjM0OWVhNGVlNzg4M2Q0ZWE4YThiYTgyZTIwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwz
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0
QVBJLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3NlZD1XaW5kb3cK
LV0gaW50ZXJmYWNlIEhpZ2hsaWdodE1hcCB7Ci0gICAgY29uc3RydWN0b3IoKTsKLQotICAgIG1h
cGxpa2U8RE9NU3RyaW5nLCBIaWdobGlnaHRSYW5nZUdyb3VwPjsKLX07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGQ4NzI5NmNlNzVlYjk5MzE3MDI4NGU0
YjEyYWI5YThmOTdlNjM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgotCi0jaW5j
bHVkZSAiSURMVHlwZXMuaCIKLSNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKLSNpbmNsdWRlICJK
U1N0YXRpY1JhbmdlLmgiCi0jaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgotI2luY2x1ZGUgIlBy
b3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgotI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCi0jaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgi
Ci0jaW5jbHVkZSA8d3RmL1JlZi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUhpZ2hsaWdo
dFJhbmdlR3JvdXA6OkhpZ2hsaWdodFJhbmdlR3JvdXAoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdl
KQotewotICAgIGF1dG8gbXlSYW5nZSA9IFdURk1vdmUocmFuZ2UpOwotICAgIGFkZFRvU2V0TGlr
ZShteVJhbmdlLmdldCgpKTsKLX0KLQotUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdo
dFJhbmdlR3JvdXA6OmNyZWF0ZShTdGF0aWNSYW5nZSYgcmFuZ2UpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChyYW5nZSkpOwotfQotCi12b2lkIEhpZ2hs
aWdodFJhbmdlR3JvdXA6OmluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKLXsK
LSAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IG1fcmFuZ2VzRGF0YSkKLSAgICAgICAgc2V0LmFk
ZDxJRExJbnRlcmZhY2U8U3RhdGljUmFuZ2U+PihyYW5nZURhdGEtPnJhbmdlKTsKLX0KLQotc3Rh
dGljIHZvaWQgcmVwYWludFJhbmdlKGNvbnN0IFN0YXRpY1JhbmdlJiByYW5nZSkKLXsKLSAgICBh
dXRvKiBzdGFydE5vZGUgPSAmcmFuZ2Uuc3RhcnRDb250YWluZXIoKTsKLSAgICBhdXRvKiBlbmRO
b2RlID0gJnJhbmdlLmVuZENvbnRhaW5lcigpOwotICAgIGF1dG8gb3JkZXJpbmcgPSBkb2N1bWVu
dE9yZGVyKCpzdGFydE5vZGUsICplbmROb2RlKTsKLSAgICBpZiAoaXNfZXEob3JkZXJpbmcpKSB7
Ci0gICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gc3RhcnROb2RlLT5yZW5kZXJlcigpKQotICAg
ICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBpZiAoaXNfZ3Qob3JkZXJpbmcpKSB7Ci0gICAgICAgIHN0YXJ0Tm9kZSA9ICZyYW5nZS5lbmRD
b250YWluZXIoKTsKLSAgICAgICAgZW5kTm9kZSA9ICZyYW5nZS5zdGFydENvbnRhaW5lcigpOwot
ICAgIH0KLQotICAgIGF1dG8gbm9kZSA9IHN0YXJ0Tm9kZTsKLSAgICB3aGlsZSAobm9kZSAhPSBl
bmROb2RlKSB7Ci0gICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKSkK
LSAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7Ci0gICAgICAgIG5vZGUgPSBOb2RlVHJh
dmVyc2FsOjpuZXh0KCpub2RlKTsKLSAgICB9Ci19Ci0KLWJvb2wgSGlnaGxpZ2h0UmFuZ2VHcm91
cDo6cmVtb3ZlRnJvbVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIHJl
dHVybiBtX3Jhbmdlc0RhdGEucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8
SGlnaGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVudCkgewotICAgICAgICByZXBhaW50UmFuZ2UocmFu
Z2UpOwotICAgICAgICByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsK
LSAgICB9KTsKLX0KLQotdm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21TZXRMaWtl
KCkKLXsKLSAgICBmb3IgKGF1dG8mIGRhdGEgOiBtX3Jhbmdlc0RhdGEpCi0gICAgICAgIHJlcGFp
bnRSYW5nZShkYXRhLT5yYW5nZSk7Ci0KLSAgICBtX3Jhbmdlc0RhdGEuY2xlYXIoKTsKLX0KLQot
Ym9vbCBIaWdobGlnaHRSYW5nZUdyb3VwOjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdl
KQotewotICAgIGlmIChub3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1hdGNoaW5nKFsmcmFu
Z2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7IHJldHVybiBjdXJy
ZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOyB9KSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7Ci0gICAgbV9yYW5nZXNEYXRhLmFwcGVuZChIaWdo
bGlnaHRSYW5nZURhdGE6OmNyZWF0ZShyYW5nZSkpOwotICAgIAotICAgIHJldHVybiB0cnVlOwot
fQotCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodFJhbmdlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodFJhbmdlR3JvdXAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ4MWU5
ZWY3MjMzNDAzZmMzMzg1ZTE0NjMxZmNiMGE5YzVlYTYwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2lu
Y2x1ZGUgIlBvc2l0aW9uLmgiCi0jaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU1N0eWxl
RGVjbGFyYXRpb247Ci1jbGFzcyBET01TZXRBZGFwdGVyOwotY2xhc3MgU3RhdGljUmFuZ2U7Ci1j
bGFzcyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb247Ci0KLXN0cnVjdCBIaWdobGlnaHRS
YW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+IHsKLSAgICAKLSAgICBIaWdobGlnaHRSYW5nZURh
dGEoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQotICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFu
Z2UpKQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURh
dGE+IGNyZWF0ZShSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRSYW5nZURhdGEoV1RGTW92ZShyYW5nZSkpKTsKLSAg
ICB9Ci0gICAgCi0gICAgUmVmPFN0YXRpY1JhbmdlPiByYW5nZTsKLSAgICBPcHRpb25hbDxQb3Np
dGlvbj4gc3RhcnRQb3NpdGlvbjsKLSAgICBPcHRpb25hbDxQb3NpdGlvbj4gZW5kUG9zaXRpb247
Ci19OwotCi1jbGFzcyBIaWdobGlnaHRSYW5nZUdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8SGln
aGxpZ2h0UmFuZ2VHcm91cD4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFu
Z2VHcm91cD4gY3JlYXRlKFN0YXRpY1JhbmdlJik7Ci0gICAgCi0gICAgdm9pZCBjbGVhckZyb21T
ZXRMaWtlKCk7Ci0gICAgYm9vbCBhZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmKTsKLSAgICBib29s
IHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7Ci0gICAgdm9pZCBpbml0aWFs
aXplU2V0TGlrZShET01TZXRBZGFwdGVyJik7Ci0gICAgCi0gICAgY29uc3QgVmVjdG9yPFJlZjxI
aWdobGlnaHRSYW5nZURhdGE+PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2Vz
RGF0YTsgfQotCi0gICAgLy8gRklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xh
cmF0aW9uJiBzdHlsZSgpOwotICAgIAotcHJpdmF0ZToKLSAgICBWZWN0b3I8UmVmPEhpZ2hsaWdo
dFJhbmdlRGF0YT4+IG1fcmFuZ2VzRGF0YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVh
ZCBvZiBhIFZlY3RvciA8cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+Ci0gICAgZXhwbGljaXQgSGln
aGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGljUmFuZ2U+JiYpOwotfTsKLQotfQotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3Vw
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjVhYTQxZWE2NDVjZTY0ZTdj
MDY5NTQyN2U0ZjZjOTBhYWRlMDA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJh
bmdlR3JvdXAuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LVsKLSAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKLSAgICBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlLAotICAgIEV4cG9zZWQ9V2luZG93Ci1dIGludGVyZmFjZSBIaWdobGlnaHRS
YW5nZUdyb3VwIHsKLSAgICBjb25zdHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7Ci0KLSAgICBz
ZXRsaWtlPFN0YXRpY1JhbmdlPjsKLSAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0
ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZTIwYjg2OTM0MjVjYmNhYTA2Y2NiMTQ0ZmUwMmQzY2Y2Mjg1ZThiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3Bw
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJIaWdobGlnaHRSZWdpc3Rlci5oIgorCisjaW5jbHVkZSAiSURMVHlwZXMuaCIK
KyNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIKKyNpbmNsdWRlICJKU0hpZ2hsaWdodC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjppbml0aWFs
aXplTWFwTGlrZShET01NYXBBZGFwdGVyJiBtYXApCit7CisgICAgZm9yIChhdXRvJiBrZXlWYWx1
ZSA6IG1fbWFwKQorICAgICAgICBtYXAuc2V0PElETERPTVN0cmluZywgSURMSW50ZXJmYWNlPEhp
Z2hsaWdodD4+KGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpOworfQorCit2b2lkIEhpZ2hs
aWdodFJlZ2lzdGVyOjpzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGlnaHQ+
JiYgdmFsdWUpCit7CisgICAgbV9tYXAuc2V0KFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1ZSkp
OworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjpjbGVhcigpCit7CisgICAgbV9tYXAuY2xl
YXIoKTsKK30KKworYm9vbCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3ZlKGNvbnN0IFN0cmluZyYg
a2V5KQoreworICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZkNWRjMGY1NjMzNDQxMDQ2MQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJl
Z2lzdGVyLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOS0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJIaWdobGlnaHQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RE9NTWFwQWRhcHRlcjsKK2NsYXNzIERPTVN0cmluZzsKK2NsYXNzIEhpZ2hsaWdodDsKKworY2xh
c3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHRSZWdpc3Rl
cj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmVnaXN0ZXI+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0UmVnaXN0ZXIpOyB9CisKKyAgICB2b2lk
IGluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImKTsKKyAgICB2b2lkIHNldEZyb21NYXBM
aWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0PiYmKTsKKyAgICB2b2lkIGNsZWFyKCk7CisgICAg
Ym9vbCByZW1vdmUoY29uc3QgU3RyaW5nJik7CisgICAgCisgICAgY29uc3QgSGFzaE1hcDxTdHJp
bmcsIFJlZjxIaWdobGlnaHQ+PiYgbWFwKCkgY29uc3QgeyByZXR1cm4gbV9tYXA7IH0KKyAgICAK
K3ByaXZhdGU6CisgICAgSGlnaGxpZ2h0UmVnaXN0ZXIoKSA9IGRlZmF1bHQ7CisgICAgSGFzaE1h
cDxTdHJpbmcsIFJlZjxIaWdobGlnaHQ+PiBtX21hcDsKK307CisKK30KKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRiNmNhYzYzYmQxNjg2Mzk0MDJhNmFhNzIzMTg4ZWZhNGY3ZmI2ODAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRS
ZWdpc3Rlci5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVk
QXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAor
ICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBIaWdobGlnaHRSZWdpc3RlciB7CisgICAg
Y29uc3RydWN0b3IoKTsKKworICAgIG1hcGxpa2U8RE9NU3RyaW5nLCBIaWdobGlnaHQ+OworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggOTFjNTg3OTg1ZTQwOWNlYjIxMzFiODhhMWNjNGJmN2NhN2Y1YzNl
ZC4uY2U3MTM3OGE0ZTg2NTVlM2VmYWI1MTAwNmI5MmI5ZjVmMzIyZjZkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKQEAgLTY0LDggKzY0LDggQEAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAK
IE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKLU1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1h
cC5jcHAKLU1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCitNb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAKK01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodC5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAK
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvcldpdGhWYWx1ZS5jcHAKQEAgLTMwNTIsOCArMzA1Miw4IEBAIEpTSFRNTFVua25vd25FbGVt
ZW50LmNwcAogSlNIVE1MVmlkZW9FbGVtZW50LmNwcAogSlNIYXNoQ2hhbmdlRXZlbnQuY3BwCiBK
U0hkck1ldGFkYXRhVHlwZS5jcHAKLUpTSGlnaGxpZ2h0TWFwLmNwcAotSlNIaWdobGlnaHRSYW5n
ZUdyb3VwLmNwcAorSlNIaWdobGlnaHRSZWdpc3Rlci5jcHAKK0pTSGlnaGxpZ2h0LmNwcAogSlNI
aXN0b3J5LmNwcAogSlNIa2RmUGFyYW1zLmNwcAogSlNIbWFjS2V5UGFyYW1zLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUz
OWI3MWM2MTA1ZGY0NjdiM2IzMGY1MjI5YjdkMGQwNTI5N2I3NWIuLjM5ODI2NjkzNjE3ZGNiZTk0
NWQyMTZiNmEwNGUzMjFjY2IxNTU4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc5NDMsMTIgKzc5NDMsMTIgQEAKIAkJNDRE
OERBOTgxMzk1NDVCRTAwMzM3Qjc1IC8qIFNWR01QYXRoRWxlbWVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU1ZHTVBhdGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDREOERBOUExMzk1NDVDRDAwMzM3Qjc1IC8qIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0RTM0OUY3MjQ2RjREQzcwMDY4NDc5QyAv
KiBMaWJXZWJSVENFbnVtVHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IExpYldlYlJUQ0VudW1UcmFpdHMuaDsgcGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENFbnVtVHJh
aXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTRDMjM2OTEyOEEwMDlC
NDg0NyAvKiBIaWdobGlnaHRNYXAuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhpZ2hsaWdo
dE1hcC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTREMjM2OTEyOEIw
MDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBIaWdobGlnaHRSYW5nZUdyb3VwLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIaWdobGlnaHRNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTEy
MzZBNUM4RDAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SGlnaGxpZ2h0UmFuZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4
OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhpZ2hsaWdodE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4
RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhpZ2hsaWdodFJhbmdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0NEU4OEU0QzIzNjkxMjhBMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lzdGVyLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDRFODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdo
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSGlnaGxpZ2h0LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJl
Z2lzdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lzdGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0RTg4RTUyMjM2QTY2N0YwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBIaWdobGlnaHRSZWdpc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSGlnaGxpZ2h0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDUwQ0VCRUUxNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGFiZWxhYmxlRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MENFQkVGMTUwNzNCQkUwMDJCQjE0OSAv
KiBMYWJlbGFibGVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExh
YmVsYWJsZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUxMjUwMjAx
NURDRTM3RDAwMkY4NEUyIC8qIFNwaW5CdXR0b25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwaW5CdXR0b25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MzY5LDEyICsxOTM2OSwxMiBAQAogCQk0NEU4OEU0NzIzNjhE
RjBGMDA5QjQ4NDcgLyogaGlnaGxpZ2h0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKLQkJCQk0NEU4OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFw
LmNwcCAqLywKLQkJCQk0NEU4OEU1MDIzNkE1NkFDMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmgg
Ki8sCi0JCQkJNDRFODhFNEMyMzY5MTI4QTAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5pZGwgKi8s
Ci0JCQkJNDRFODhFNTQyMzZBNjZBMTAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuY3Bw
ICovLAotCQkJCTQ0RTg4RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3Vw
LmggKi8sCi0JCQkJNDRFODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3Jv
dXAuaWRsICovLAorCQkJCTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHQuY3Bw
ICovLAorCQkJCTQ0RTg4RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLywKKwkJ
CQk0NEU4OEU0RDIzNjkxMjhCMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmlkbCAqLywKKwkJCQk0NEU4
OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwICovLAorCQkJCTQ0
RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovLAorCQkJCTQ0
RTg4RTRDMjM2OTEyOEEwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5pZGwgKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGhpZ2hsaWdodDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXgg
OTcwMmNjNTk3MmU5OTU3OTZiMTc4NGI2OWIwMGI2MjcxNzFmNDQzNy4uMjBkOTVlZTU0ZTA0NzRm
ODgyMzM2M2ZkOWM1YjE1ZTY2NzdkYzQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTI5LDggKzEyOSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyhHUFVUZXh0dXJlVmlldykgXAogICAgIG1hY3JvKEdQVVVu
Y2FwdHVyZWRFcnJvckV2ZW50KSBcCiAgICAgbWFjcm8oR1BVVmFsaWRhdGlvbkVycm9yKSBcCi0g
ICAgbWFjcm8oSGlnaGxpZ2h0TWFwKSBcCi0gICAgbWFjcm8oSGlnaGxpZ2h0UmFuZ2VHcm91cCkg
XAorICAgIG1hY3JvKEhpZ2hsaWdodFJlZ2lzdGVyKSBcCisgICAgbWFjcm8oSGlnaGxpZ2h0KSBc
CiAgICAgbWFjcm8oSFRNTEF0dGFjaG1lbnRFbGVtZW50KSBcCiAgICAgbWFjcm8oSFRNTEF1ZGlv
RWxlbWVudCkgXAogICAgIG1hY3JvKEhUTUxEaWFsb2dFbGVtZW50KSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9ET01DU1NOYW1lc3BhY2UuY3BwCmluZGV4IDE5ZTNkZDYxZWE5ZDlhYTA5NzU2YzczNDY1NWQ0
ZGM3NjcwNjg3MWIuLmQ1OTI1NzBiODYzMTZkODMxZmI1OTdhMjkxNGI5NzVmYmIzZDQwYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAj
aW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXIuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUg
IkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtODksOSArODksOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUo
Y29uc3QgU3RyaW5nJiBpZGVudCkKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQog
Ci1IaWdobGlnaHRNYXAmIERPTUNTU05hbWVzcGFjZTo6aGlnaGxpZ2h0cyhEb2N1bWVudCYgZG9j
dW1lbnQpCitIaWdobGlnaHRSZWdpc3RlciYgRE9NQ1NTTmFtZXNwYWNlOjpoaWdobGlnaHRzKERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQuaGlnaGxpZ2h0TWFwKCk7
CisgICAgcmV0dXJuIGRvY3VtZW50LmhpZ2hsaWdodFJlZ2lzdGVyKCk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaAppbmRleCAzMDQ3ZTUyNzk4NDQ2Y2Q3NzA2Njc1NTA5
NDE5OWEzMWVjMDVlYzdmLi44NmQyN2ZlOWZmNzE3N2IzZTRhY2RjYmU0ZTllNGY1ODdhZDA0MWFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5oCkBAIC0zNywxNSArMzcsMTUgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBIaWdobGlnaHRN
YXA7Ci1jbGFzcyBIaWdobGlnaHRSYW5nZUdyb3VwOworY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXI7
CitjbGFzcyBIaWdobGlnaHQ7CiAKIGNsYXNzIERPTUNTU05hbWVzcGFjZSBmaW5hbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPERPTUNTU05hbWVzcGFjZT4sIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxET01D
U1NOYW1lc3BhY2U+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0cyhEb2N1bWVu
dCYsIGNvbnN0IFN0cmluZyYgcHJvcGVydHksIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIHN0
YXRpYyBib29sIHN1cHBvcnRzKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBjb25kaXRpb25UZXh0
KTsKICAgICBzdGF0aWMgU3RyaW5nIGVzY2FwZShjb25zdCBTdHJpbmcmIGlkZW50KTsKLSAgICBz
dGF0aWMgSGlnaGxpZ2h0TWFwJiBoaWdobGlnaHRzKERvY3VtZW50Jik7CisgICAgc3RhdGljIEhp
Z2hsaWdodFJlZ2lzdGVyJiBoaWdobGlnaHRzKERvY3VtZW50Jik7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCmluZGV4IDU2MzU1OTM1NmZjNmVhNTFhOGExYmNj
MjIwMjEzZjNkODA4MmMwNzcuLjM0ZjNkNzI0MzVkMzU1YTJkYTA2YWI2NTc3NTUxNmU1ZWRmNmNl
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCkBAIC0zNSw1ICszNSw1
IEBACiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0cyhET01T
dHJpbmcgcHJvcGVydHksIERPTVN0cmluZyB2YWx1ZSk7CiAgICAgW0NhbGxXaXRoPURvY3VtZW50
XSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0cyhET01TdHJpbmcgY29uZGl0aW9uVGV4dCk7CiAgICAg
c3RhdGljIERPTVN0cmluZyBlc2NhcGUoRE9NU3RyaW5nIGlkZW50KTsKLSAgICBbRW5hYmxlZEF0
UnVudGltZT1IaWdobGlnaHRBUEksIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVhZG9ubHkg
YXR0cmlidXRlIEhpZ2hsaWdodE1hcCBoaWdobGlnaHRzOworICAgIFtFbmFibGVkQXRSdW50aW1l
PUhpZ2hsaWdodEFQSSwgQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1
dGUgSGlnaGxpZ2h0UmVnaXN0ZXIgaGlnaGxpZ2h0czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCAwODUzNTg5ZWFiYWMzNWU3NmFiYTZmMjgyYWU1NzZjNTkyZTFlOGU1Li42ZTVmMDFk
OWMzMmZkMjI2NDVhMzJiNDAwNjBjYjA0YjFiMTk3NjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTExMSw3ICsxMTEsNyBAQAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2lu
Y2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSGFzaENoYW5nZUV2ZW50LmgiCi0jaW5j
bHVkZSAiSGlnaGxpZ2h0TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNp
bmNsdWRlICJIaXN0b3J5LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUg
IklkbGVDYWxsYmFja0NvbnRyb2xsZXIuaCIKQEAgLTc5Miw4ICs3OTIsOCBAQCB2b2lkIERvY3Vt
ZW50Ojpjb21tb25UZWFyZG93bigpCiAKICAgICBjbGVhclNjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlcigpOwogICAgIAotICAgIGlmIChtX2hpZ2hsaWdodE1hcCkKLSAgICAgICAgbV9oaWdobGln
aHRNYXAtPmNsZWFyKCk7CisgICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1f
aGlnaGxpZ2h0UmVnaXN0ZXItPmNsZWFyKCk7CiAKICAgICBtX3BlbmRpbmdTY3JvbGxFdmVudFRh
cmdldExpc3QgPSBudWxscHRyOwogCkBAIC0yNzY3LDE4ICsyNzY3LDE4IEBAIFJlZjxEb2N1bWVu
dFBhcnNlcj4gRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiAgICAgcmV0dXJuIFhNTERvY3VtZW50
UGFyc2VyOjpjcmVhdGUoKnRoaXMsIHZpZXcoKSk7CiB9CiAKLUhpZ2hsaWdodE1hcCYgRG9jdW1l
bnQ6OmhpZ2hsaWdodE1hcCgpCitIaWdobGlnaHRSZWdpc3RlciYgRG9jdW1lbnQ6OmhpZ2hsaWdo
dFJlZ2lzdGVyKCkKIHsKLSAgICBpZiAoIW1faGlnaGxpZ2h0TWFwKQotICAgICAgICBtX2hpZ2hs
aWdodE1hcCA9IEhpZ2hsaWdodE1hcDo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuICptX2hpZ2hsaWdo
dE1hcDsKKyAgICBpZiAoIW1faGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1faGlnaGxpZ2h0
UmVnaXN0ZXIgPSBIaWdobGlnaHRSZWdpc3Rlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX2hp
Z2hsaWdodFJlZ2lzdGVyOwogfQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVIaWdobGlnaHRQb3Np
dGlvbnMoKQogewogICAgIFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4+IHJhbmdl
c0RhdGE7Ci0gICAgaWYgKG1faGlnaGxpZ2h0TWFwKSB7Ci0gICAgICAgIGZvciAoYXV0byYgaGln
aGxpZ2h0IDogbV9oaWdobGlnaHRNYXAtPm1hcCgpKSB7CisgICAgaWYgKG1faGlnaGxpZ2h0UmVn
aXN0ZXIpIHsKKyAgICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodFJlZ2lz
dGVyLT5tYXAoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGln
aHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgewogICAgICAgICAgICAgICAgIGlmIChyYW5nZURhdGEt
PnN0YXJ0UG9zaXRpb24gJiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGRkODgzYjJhMDdjNTYyMzZl
Y2NmZDUwNDVhYWU2MDZiMzk2ZTg3NGYuLjkzZmI3NDhhN2Y5NTIzMWQ1ZDY5OGVhZTQwMjBhM2U5
MTM1YjYwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNTYsNyArMTU2LDcgQEAgY2xhc3Mg
SFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxNYXBFbGVtZW50OwogY2xhc3MgSFRNTE1lZGlh
RWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBIaWdobGlnaHRNYXA7Citj
bGFzcyBIaWdobGlnaHRSZWdpc3RlcjsKIGNsYXNzIEhpdFRlc3RMb2NhdGlvbjsKIGNsYXNzIEhp
dFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKQEAgLTE1NjksNyArMTU2OSw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciYg
dGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIoKTsKICAgICBUZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlciogdGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1fdGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICAgICAgCi0gICAgSGlnaGxpZ2h0
TWFwJiBoaWdobGlnaHRNYXAoKTsKKyAgICBIaWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVn
aXN0ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCiAgICAgYm9v
bCBhbGxvd3NDb250ZW50SmF2YVNjcmlwdCgpIGNvbnN0OwpAQCAtMTkyNCw3ICsxOTI0LDcgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dEF1dG9TaXppbmc+IG1fdGV4dEF1dG9T
aXppbmc7CiAjZW5kaWYKICAgICAgICAgCi0gICAgUmVmUHRyPEhpZ2hsaWdodE1hcD4gbV9oaWdo
bGlnaHRNYXA7CisgICAgUmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBtX2hpZ2hsaWdodFJlZ2lz
dGVyOwogCiAgICAgVGltZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lcjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDY1ZTMyYTQ4NTBk
NjdjY2QwMDRlMmE3NTZiMGYxYjdkNzhkMWJjYTcuLjM5ZWIxNTEwOWFhNmMwMmE2ODZiZTA0ZGUw
Y2RkNmIwMzdjOGZjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdo
bGlnaHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0
YS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRnJhbWVTZWxlY3Rpb24uaCIKLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCisj
aW5jbHVkZSAiSGlnaGxpZ2h0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBv
c2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcAppbmRleCBjYmMwM2E3ZGI5OGMxMTUzNmIzNzEyNzNhZmE4YTM1MDM2
ZDE2NzU2Li40NzFiNWU3M2RmNTdkZjc4NTA1NDQwMDhhMDI1NDE4MTQ5MDIyNTgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC0zNiw3ICszNiw3IEBA
CiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNs
dWRlICJIaWdobGlnaHREYXRhLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0TWFwLmgiCisjaW5jbHVk
ZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94U3R5bGUuaCIKQEAg
LTEwNTEsNyArMTA1MSw3IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xs
ZWN0TWFya2VkVGV4dHNGb3JIaWdobGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgYXV0byYgcGFy
ZW50UmVuZGVyZXIgPSBwYXJlbnQoKS0+cmVuZGVyZXIoKTsKICAgICBhdXRvJiBwYXJlbnRTdHls
ZSA9IHBhcmVudFJlbmRlcmVyLnN0eWxlKCk7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGlnaHRE
YXRhOwotICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIoKS5kb2N1bWVudCgpLmhp
Z2hsaWdodE1hcCgpLm1hcCgpKSB7CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiByZW5kZXJl
cigpLmRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewogICAgICAgICBhdXRv
IHJlbmRlclN0eWxlID0gcGFyZW50UmVuZGVyZXIuZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBz
ZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodC5rZXkgfSwgJnBhcmVudFN0eWxlKTsKICAgICAg
ICAgaWYgKCFyZW5kZXJTdHlsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggYTcyZjFlZDc3OTcyYTQ0NzYx
ZGEwNzUxZmY0MjdhNTJhNjBiOWNiMy4uM2NlZTAxZjQ1OTUxYzE1OWE5ZGEyODMzMWE3ZTYwY2Rm
ZTdlNjQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3Bw
CkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIaWdobGlnaHREYXRhLmgiCi0jaW5j
bHVkZSAiSGlnaGxpZ2h0TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNp
bmNsdWRlICJJbmxpbmVFbGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25M
aW5lSXRlcmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgi
CkBAIC0xNTQsNyArMTU0LDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGRyYWdnZWRDb250ZW50Q29u
dGFpbnNSZXBsYWNlZEVsZW1lbnQoY29uc3QgVmVjdG9yPFJlbmRlcmVkRG8KIENvbG9yIFJlbmRl
clJlcGxhY2VkOjpjYWxjdWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0CiB7CiAgICAgSGlnaGxp
Z2h0RGF0YSBoaWdobGlnaHREYXRhOwotICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1l
bnQoKS5oaWdobGlnaHRNYXAoKS5tYXAoKSkgeworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDog
ZG9jdW1lbnQoKS5oaWdobGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7CiAgICAgICAgIGZvciAoYXV0
byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKICAgICAgICAg
ICAgIGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1NlbGVjdGlvblJhbmdlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0
aW9uUmFuZ2VEYXRhLmNwcAppbmRleCBmNDk3MTY5ZTI3YmQ0YTcyMDcxNjM3ZjYwYzBkMWZmOTFh
NTcxNzk4Li5iZTY3ZTYwZTc1OTkyNGVjZmFkZGVlOTJlNmM3OWQ1MjNlNmU3ZmNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcApAQCAtMzIs
NyArMzIsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodFJhbmdlR3JvdXAuaCIKKyNpbmNsdWRlICJIaWdo
bGlnaHQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNp
bmNsdWRlICJSYW5nZS5oIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hs
aWdodC1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdo
bGlnaHQtaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5kZXggYjMwNTFjM2ZkM2ZhNjMzYzBjNjc1
YjdkNDlmN2ZmZTdhNzMyYzgyOS4uZjlmMzI5ZDA2MWIzZTNhZTY4ZDExNWIwZWJlNDg5YzdlZDk3
MWM5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZh
Y2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWlu
dGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDE4ICsxLDE4IEBACi1UZXN0cyB0aGUgaW50ZXJm
YWNlcyBvZiB0aGUgaGlnaGxpZ2h0IEFQSSwgd2hpY2ggaW5jbHVkZSBIaWdobGlnaHRSYW5nZUdy
b3VwLCBIaWdobGlnaHRNYXAsIGFuZCBleHRlbnNpb25zIHRvIHRoZSBDU1MgbmFtZXNwYWNlLgor
VGVzdHMgdGhlIGludGVyZmFjZXMgb2YgdGhlIGhpZ2hsaWdodCBBUEksIHdoaWNoIGluY2x1ZGUg
SGlnaGxpZ2h0LCBIaWdobGlnaHRSZWdpc3RlciwgYW5kIGV4dGVuc2lvbnMgdG8gdGhlIENTUyBu
YW1lc3BhY2UuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCiBUZXN0aW5nIEhpZ2hs
aWdodDoKLVBBU1MgSGlnaGxpZ2h0UmFuZ2VHcm91cCBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRy
dWUKLVBBU1MgdHlwZW9mIEhpZ2hsaWdodFJhbmdlR3JvdXAgaXMgImZ1bmN0aW9uIgotUEFTUyBu
ZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5
LCBlbmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHRSYW5nZUdyb3VwIGlzIHRydWUK
LVBBU1MgSGlnaGxpZ2h0TWFwIGluc3RhbmNlb2YgRnVuY3Rpb24gaXMgdHJ1ZQotUEFTUyB0eXBl
b2YgSGlnaGxpZ2h0TWFwIGlzICJmdW5jdGlvbiIKLVBBU1MgbmV3IEhpZ2hsaWdodE1hcCgpIGlu
c3RhbmNlb2YgSGlnaGxpZ2h0TWFwIGlzIHRydWUKLVBBU1MgbmV3IEhpZ2hsaWdodE1hcCgpLnNl
dCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSkgaXMgZGVmaW5lZC4KK1BBU1MgSGln
aGxpZ2h0IGluc3RhbmNlb2YgRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyB0eXBlb2YgSGlnaGxpZ2h0
IGlzICJmdW5jdGlvbiIKK1BBU1MgbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHQgaXMgdHJ1
ZQorUEFTUyBIaWdobGlnaHRSZWdpc3RlciBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKK1BB
U1MgdHlwZW9mIEhpZ2hsaWdodFJlZ2lzdGVyIGlzICJmdW5jdGlvbiIKK1BBU1MgbmV3IEhpZ2hs
aWdodFJlZ2lzdGVyKCkgaW5zdGFuY2VvZiBIaWdobGlnaHRSZWdpc3RlciBpcyB0cnVlCitQQVNT
IG5ldyBIaWdobGlnaHRSZWdpc3RlcigpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZz
ZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBk
ZWZpbmVkLgogUEFTUyBDU1MuaGlnaGxpZ2h0cyBpcyBkZWZpbmVkLgotUEFTUyBDU1MuaGlnaGxp
Z2h0cy5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5k
Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkpIGlzIENTUy5oaWdobGln
aHRzCitQQVNTIENTUy5oaWdobGlnaHRzLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZz
ZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBD
U1MuaGlnaGxpZ2h0cwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVy
ZmFjZXMuaHRtbCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy5o
dG1sCmluZGV4IDU4ZjQ5NGNhMmZkMTlhYjc0Zjg5Yzg5ODA5YTRlYmVlMGFmN2ZhZGUuLjZmYmE1
ZDgyZDFmZTI1YjA4OTg5Y2NkOWFmMDA3ODEwZWExMWYwYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy5odG1sCkBAIC00LDE4ICs0LDE4IEBACiA8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
IAotZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBpbnRlcmZhY2VzIG9mIHRoZSBoaWdobGlnaHQgQVBJ
LCB3aGljaCBpbmNsdWRlIEhpZ2hsaWdodFJhbmdlR3JvdXAsIEhpZ2hsaWdodE1hcCwgYW5kIGV4
dGVuc2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2UuIik7CitkZXNjcmlwdGlvbigiVGVzdHMgdGhl
IGludGVyZmFjZXMgb2YgdGhlIGhpZ2hsaWdodCBBUEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0
LCBIaWdobGlnaHRSZWdpc3RlciwgYW5kIGV4dGVuc2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2Uu
Iik7CiAKIGRlYnVnKCJUZXN0aW5nIEhpZ2hsaWdodDoiKTsKLXNob3VsZEJlVHJ1ZSgiSGlnaGxp
Z2h0UmFuZ2VHcm91cCBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoInR5cGVvZiBIaWdobGlnaHRSYW5nZUdyb3VwIiwgImZ1bmN0aW9uIik7Ci1zaG91bGRCZVRy
dWUoIm5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50
LmJvZHksIGVuZE9mZnNldDogMn0pKSBpbnN0YW5jZW9mIEhpZ2hsaWdodFJhbmdlR3JvdXAiKTsK
LXNob3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0TWFwIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKLXNob3Vs
ZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIEhpZ2hsaWdodE1hcCIsICJmdW5jdGlvbiIpOwotc2hv
dWxkQmVUcnVlKCJuZXcgSGlnaGxpZ2h0TWFwKCkgaW5zdGFuY2VvZiBIaWdobGlnaHRNYXAiKTsK
LXNob3VsZEJlRGVmaW5lZCgnbmV3IEhpZ2hsaWdodE1hcCgpLnNldCgiZm9vLXN0eWxpbmciLG5l
dyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRv
Y3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHks
IGVuZE9mZnNldDogMn0pKSknKTsKK3Nob3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0ciBpbnN0YW5jZW9m
IEZ1bmN0aW9uIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdobGlnaHQiLCAi
ZnVuY3Rpb24iKTsKK3Nob3VsZEJlVHJ1ZSgibmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uo
e3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFp
bmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHRS
ZWdpc3RlciIpOworc2hvdWxkQmVUcnVlKCJIaWdobGlnaHRSZWdpc3RlciBpbnN0YW5jZW9mIEZ1
bmN0aW9uIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdobGlnaHRSZWdpc3Rl
ciIsICJmdW5jdGlvbiIpOworc2hvdWxkQmVUcnVlKCJuZXcgSGlnaGxpZ2h0UmVnaXN0ZXIoKSBp
bnN0YW5jZW9mIEhpZ2hsaWdodFJlZ2lzdGVyIik7CitzaG91bGRCZURlZmluZWQoJ25ldyBIaWdo
bGlnaHRSZWdpc3RlcigpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVu
ZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKScpOwogc2hvdWxkQmVE
ZWZpbmVkKCdDU1MuaGlnaGxpZ2h0cycpOwotc2hvdWxkQmUoJ0NTUy5oaWdobGlnaHRzLnNldCgi
Zm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6
IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSknLCAnQ1NTLmhpZ2hsaWdodHMnKTsKK3No
b3VsZEJlKCdDU1MuaGlnaGxpZ2h0cy5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0KG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0
OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSknLCAnQ1NT
LmhpZ2hsaWdodHMnKTsKIAogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dApp
bmRleCBmYjEzMjE5YmIyZTlkY2ZmNWQxY2U3M2Q3MzBkNzBmYWRjMTg5YWVmLi5jYTlhNDkwOTQz
M2FiMWRjOTA1Yzk2M2I2Zjg5MjE0MTA2ZGI3OTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
aWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQKQEAg
LTEsNiArMSw2IEBACi1QQVNTIGhpZ2hsaWdodFJhbmdlR3JvdXAxLnNpemUgaXMgMQotUEFTUyBo
aWdobGlnaHRSYW5nZUdyb3VwMi5zaXplIGlzIDIKLVBBU1MgaGlnaGxpZ2h0UmFuZ2VHcm91cDMu
c2l6ZSBpcyAzCitQQVNTIGhpZ2hsaWdodDEuc2l6ZSBpcyAxCitQQVNTIGhpZ2hsaWdodDIuc2l6
ZSBpcyAyCitQQVNTIGhpZ2hsaWdodDMuc2l6ZSBpcyAzCiBQQVNTIENTUy5oaWdobGlnaHRzLnNp
emUgaXMgMwogUEFTUyBDU1MuaGlnaGxpZ2h0cy5oYXMoImV4YW1wbGUtaGlnaGxpZ2h0MSIpIGlz
IHRydWUKIFBBU1MgQ1NTLmhpZ2hsaWdodHMuaGFzKCJleGFtcGxlLWhpZ2hsaWdodDIiKSBpcyB0
cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQt
Z3JvdXAuaHRtbCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91
cC5odG1sCmluZGV4IDViNGJmYWIwYWNlMzRhYTE1YTVkNDE4Nzc4MWIwNTU2M2QxNjE1YjAuLmFl
NDljZmExOGFlOThjOWJjYzI3NmJiMmQ5NzQwMjJmODAyMmFkMzkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sCkBAIC0yMCwyMyAr
MjAsMjMgQEAKICAgICA8Ym9keT48c3Bhbj5PbmUgPC9zcGFuPjxzcGFuPnR3byA8L3NwYW4+PHNw
YW4+dGhyZWUuLi48L3NwYW4+CiAKICAgICA8c2NyaXB0PgotICAgICAgICBsZXQgaGlnaGxpZ2h0
UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVy
OiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQx
ID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVu
dC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRP
ZmZzZXQ6IDJ9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhp
Z2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1l
bnQuYm9keSwgc3RhcnRPZmZzZXQ6IDIsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5k
T2Zmc2V0OiAzfSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVu
ZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA1fSkpOworICAgICAgICBsZXQg
aGlnaGxpZ2h0MiA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5l
cjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDIsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQu
Ym9keSwgZW5kT2Zmc2V0OiAzfSkpOworICAgICAgICBoaWdobGlnaHQyLmFkZChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNCwgZW5k
Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDV9KSk7CiAKLSAgICAgICAgbGV0
IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVu
ZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA4fSkpOwotICAgICAgICBoaWdo
bGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHks
IGVuZE9mZnNldDogMTJ9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcg
U3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDog
NSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDZ9KSk7CisgICAgICAg
IGxldCBoaWdobGlnaHQzID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDh9KSk7CisgICAgICAgIGhpZ2hsaWdodDMuYWRkKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAx
MCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDEyfSkpOworICAgICAg
ICBoaWdobGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVu
dC5ib2R5LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRP
ZmZzZXQ6IDZ9KSk7CiAgICAgICAgIAogCi0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhh
bXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOwotICAgICAgICBDU1MuaGln
aGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsK
LSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGln
aHRSYW5nZUdyb3VwMyk7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdo
bGlnaHQxIiwgaGlnaGxpZ2h0MSk7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBs
ZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0Mik7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgi
ZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0Myk7CiAKLSAgICAgICAgc2hvdWxkQmUoImhp
Z2hsaWdodFJhbmdlR3JvdXAxLnNpemUiLCIxIik7Ci0gICAgICAgIHNob3VsZEJlKCJoaWdobGln
aHRSYW5nZUdyb3VwMi5zaXplIiwiMiIpOwotICAgICAgICBzaG91bGRCZSgiaGlnaGxpZ2h0UmFu
Z2VHcm91cDMuc2l6ZSIsIjMiKTsKKyAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodDEuc2l6ZSIs
IjEiKTsKKyAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodDIuc2l6ZSIsIjIiKTsKKyAgICAgICAg
c2hvdWxkQmUoImhpZ2hsaWdodDMuc2l6ZSIsIjMiKTsKIAogICAgICAgICBzaG91bGRCZSgiQ1NT
LmhpZ2hsaWdodHMuc2l6ZSIsIjMiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxp
Z2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2hpZ2hsaWdo
dC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWwKaW5kZXggODg0ODg3YjgyN2U2OTVhMDg0
MDk5NGViYjAwNzE3YTRiMTJhMTkzYS4uODdkOTc5Y2E3MjVkOWVjZTAwZDM3NTIzNThkY2VmOTA4
MzIwZjg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdo
bGlnaHQtZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hp
Z2hsaWdodC1mcmFtZS5odG1sCkBAIC0xMyw2ICsxMyw2IEBACiAKIDxzY3JpcHQ+CiBsZXQgaGln
aGxpZ2h0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hpZ2hsaWdodCcpOwotbGV0IGhpZ2hs
aWdodFJhbmdlR3JvdXAgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uo
e3N0YXJ0Q29udGFpbmVyOiBoaWdobGlnaHQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAs
IGVuZENvbnRhaW5lcjogaGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsK
LUNTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZSIsIGhpZ2hsaWdodFJhbmdlR3JvdXApOworbGV0
IGhpZ2hsaWdodCA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5l
cjogaGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6
IGhpZ2hsaWdodC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CitDU1MuaGlnaGxpZ2h0
cy5zZXQoImV4YW1wbGUiLCBoaWdobGlnaHQpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LWltYWdlLmh0bWwKaW5kZXggNDU3NzE1YTIxMDM1ZTY1ZDE4NTMzZGUwMDdkOTFkZTcwMGU2MzI0
ZS4uMTU1ZGQ4YjRjZmY0MzM3OWZmZDAxNWY3Y2U3ZjZmZWRiYzkyMDE3NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFn
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9o
aWdobGlnaHQtaW1hZ2UuaHRtbApAQCAtMTgsMTAgKzE4LDEwIEBACiAKICAgICA8c2NyaXB0Pgog
ICAgICAgICBsZXQgaW1hZ2VFbGVtZW50MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcx
Jyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5n
ZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hp
bGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5j
aGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDF9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0g
bmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBpbWFnZUVsZW1l
bnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGltYWdlRWxl
bWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxfSkpOwogCiAKLSAgICAgICAgQ1NTLmhp
Z2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7
CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxp
Z2h0MSk7CiAKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxl
bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9o
aWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbAppbmRleCBiYWY3MWUwOTZlN2Q3NDRh
NDQ0MTczMjVmMGFhYmUyNjJiNjk3OTlhLi41ZDZjNjAxY2MyNTdkMjZmNDA5N2Y0YWM1NTAyYTVj
OTdkMjI5YjFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hs
aWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9z
cy1lbGVtZW50cy5odG1sCkBAIC0zNCwxNiArMzQsMTYgQEAKICAgICAgICAgbGV0IHRleHRFbGVt
ZW50MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MycpOwogICAgICAgICBsZXQgdGV4
dEVsZW1lbnQ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQ0Jyk7CiAgICAgICAgIGxl
dCB0ZXh0RWxlbWVudDUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDUnKTsKLSAgICAg
ICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0s
IHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBd
LCBlbmRPZmZzZXQ6IDd9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdo
dChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9k
ZXNbMF0sIGVuZE9mZnNldDogN30pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7Ci0gICAg
ICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50My5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDV9KSk7CisgICAg
ICAgIGxldCBoaWdobGlnaHQyID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7
CisgICAgICAgIGhpZ2hsaWdodDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5l
cjogdGV4dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNX0pKTsKIAotICAgICAg
ICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcg
U3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDMuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50NS5jaGlsZE5vZGVzWzBd
LCBlbmRPZmZzZXQ6IDEyfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5ldyBIaWdobGln
aHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLmNoaWxkTm9k
ZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDUuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiAxMn0pKTsKIAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQo
ImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NT
LmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBoaWdobGlnaHRSYW5nZUdyb3Vw
Mik7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGln
aGxpZ2h0UmFuZ2VHcm91cDMpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUt
aGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4
YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodDIpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5z
ZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodDMpOwogICAgIDwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwK
aW5kZXggY2RlOTdjNGJmZjc0YjdmNzI4ZmYyOTdiN2ViMzg3MDgxYjY4YjBkZS4uMmY3MGNhMTZi
ZTNlMzJiM2I4ZGYwNDVlNjUzOTcwNjkwODIyODhkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxp
Z2h0LXRleHQtY2FzY2FkZS5odG1sCkBAIC0yNiwxMCArMjYsMTAgQEAKICAgICAgICAgbGV0IHRl
eHRFbGVtZW50MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwogICAgICAgICBs
ZXQgdGV4dEVsZW1lbnQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQyJyk7CiAgICAg
ICAgIGxldCB0ZXh0RWxlbWVudDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDMnKTsK
LSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91
cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9k
ZXNbMF0sIGVuZE9mZnNldDogM30pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cC5hZGQo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNb
MF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVz
WzBdLCBlbmRPZmZzZXQ6IDl9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQgPSBuZXcgSGlnaGxp
Z2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5v
ZGVzWzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiAzfSkpOworICAgICAgICBoaWdobGlnaHQuYWRkKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFy
dE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgZW5k
T2Zmc2V0OiA5fSkpOwogCi0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdo
bGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0
KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodCk7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hs
aWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtZGVjb3JhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1kZWNvcmF0aW9ucy5o
dG1sCmluZGV4IDI0NGJmYzk4YTJhMDZhODMxNmFkNzNmOTNjNDFhZDM5OGVmMzUzOGUuLjkzY2Ex
NWZjZDk2YjdkYWQxNzUxMmNmYmRmOWI3Mzg2N2E3ODljYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1kZWNvcmF0
aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFw
aS9oaWdobGlnaHQtdGV4dC1kZWNvcmF0aW9ucy5odG1sCkBAIC01MSwxMyArNTEsMTMgQEAKIAog
ICAgIDxzY3JpcHQ+CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXh0MScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcg
SGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0
RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0
RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7Ci0gICAgICAgIGxldCBoaWdo
bGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0
OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDog
Nn0pKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJh
bmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hp
bGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNo
aWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTN9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0g
bmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVu
dC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVu
dC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQy
ID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxl
bWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxl
bWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7CisgICAgICAgIGxldCBoaWdobGln
aHQzID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0
RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4
dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxM30pKTsKIAotICAgICAgICBDU1Mu
aGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAx
KTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBoaWdo
bGlnaHRSYW5nZUdyb3VwMik7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1o
aWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDMpOworICAgICAgICBDU1MuaGlnaGxpZ2h0
cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEpOworICAgICAgICBDU1MuaGln
aGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodDIpOworICAgICAgICBD
U1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodDMpOwogICAg
IDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGFpbnQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4
dC1yZXBhaW50Lmh0bWwKaW5kZXggZDM4Yzk0MGE2MWViYzU4ZWM2NWQ5YTg2ZTI1MzhhNjc0MzYz
YTFjNy4uNDE4OGJlNTdhNTRmMGFlMDQ3NWE5YmI0YzNlYWJlM2Y2MjEwNTg4OSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0LXJlcGFpbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hs
aWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwYWludC5odG1sCkBAIC01LDcgKzUsNyBAQAogICAg
IDx0aXRsZT5NdWx0aXBsZSBjdXN0b20gaGlnaGxpZ2h0IHBzZXVkbyBlbGVtZW50cy48L3RpdGxl
PgogICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nz
cy1oaWdobGlnaHQtYXBpLTEvI2NyZWF0aW5nLWhpZ2hsaWdodHMiPgogICAgIDxsaW5rIHJlbD0i
bWF0Y2giIGhyZWY9ImhpZ2hsaWdodC10ZXh0LWV4cGVjdGVkLmh0bWwiPgotICAgIDxtZXRhIG5h
bWU9ImFzc2VydCIgY29udGVudD0iSGlnaGxpZ2h0IFJhbmdlcyBzaG91bGQgYmUgYWJsZSB0byBi
ZSBhZGRlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBIaWdobGlnaHRSYW5nZUdyb3VwLiI+CisgICAg
PG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJIaWdobGlnaHQgUmFuZ2VzIHNob3VsZCBiZSBh
YmxlIHRvIGJlIGFkZGVkIGFuZCByZW1vdmVkIGZyb20gdGhlIEhpZ2hsaWdodC4iPgogICAgIDxz
dHlsZT4KICAgICAgICAgOjpoaWdobGlnaHQoZXhhbXBsZS1oaWdobGlnaHQpIHsKICAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CkBAIC00MiwxMiArNDIsMTIgQEAKICAgICAgICAg
ICAgIGxldCByYW5nZTIgPSBuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxl
bWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxl
bWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KTsKICAgICAgICAgICAgIGxldCByYW5n
ZTMgPSBuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5v
ZGVzWzBdLCBzdGFydE9mZnNldDogOCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5v
ZGVzWzBdLCBlbmRPZmZzZXQ6IDEyfSk7CiAKLSAgICAgICAgICAgIGxldCBoaWdobGlnaHRSYW5n
ZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKHJhbmdlMSk7Ci0gICAgICAgICAgICBD
U1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0UmFuZ2VHcm91
cDEpOworICAgICAgICAgICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0KHJhbmdlMSk7
CisgICAgICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGln
aGxpZ2h0MSk7CiAKLSAgICAgICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAxLmFkZChyYW5nZTIp
OwotICAgICAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDEuZGVsZXRlKHJhbmdlMSk7Ci0gICAg
ICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMS5hZGQocmFuZ2UzKTsKKyAgICAgICAgICAgIGhp
Z2hsaWdodDEuYWRkKHJhbmdlMik7CisgICAgICAgICAgICBoaWdobGlnaHQxLmRlbGV0ZShyYW5n
ZTEpOworICAgICAgICAgICAgaGlnaGxpZ2h0MS5hZGQocmFuZ2UzKTsKIAogICAgICAgICAgICAg
dmFyIHJlcGFpbnRSZWN0cyA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7
CiAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGln
aGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbAppbmRleCA3MDEzYTY2MzM1
ZWJlNDYyNWE0NGM3ZTYzY2ZkZjA3YjY3MmNhYjUyLi45MTNjYjVlNGNmNGE2NjUyNTIwMjA5NGFk
YzM2MTQ1MWUwMWE5ZDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNl
Lmh0bWwKQEAgLTE4LDEzICsxOCwxMyBAQAogCiAgICAgPHNjcmlwdD4KICAgICAgICAgbGV0IHRl
eHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQxJyk7Ci0gICAgICAgIGxl
dCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0
T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9m
ZnNldDogMn0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0KG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0
YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogMn0pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcg
SGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0
RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0
RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhpZ2hsaWdo
dFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxl
bWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxl
bWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7ICAgICAgICAKKyAgICAgICAgbGV0
IGhpZ2hsaWdodDIgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAzLCBlbmRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKKyAgICAgICAg
aGlnaGxpZ2h0Mi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1l
bnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1l
bnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkpOyAgICAgICAgCiAKLSAgICAgICAgQ1NT
LmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAx
KTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hs
aWdodFJhbmdlR3JvdXAyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhp
Z2hsaWdodCIsIGhpZ2hsaWdodDEpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1w
bGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0Mik7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1h
cGkvaGlnaGxpZ2h0LXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGln
aGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sCmluZGV4IDRhYmY0MzAwMjgwYThhODMxOTdl
ODIyOWQ4NDg4YzgyMzYyMDg2YjUuLmZhNDcyNzUxMmZjMTZlMjc5ZjNkNjY2NTA0NzYzM2YyNzM0
ODQyMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0
LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sCkBAIC0yNiwxOSArMjYsMTkgQEAK
IAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXh0MScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBu
ZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxldCBo
aWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CiAKLSAgICAgICAg
bGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3Rh
cnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5k
T2Zmc2V0OiA0fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRP
ZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiA2fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MiA9IG5ldyBIaWdobGlnaHQobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3Rh
cnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5k
T2Zmc2V0OiA0fSkpOworICAgICAgICBoaWdobGlnaHQyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7
CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdl
R3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDcsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiA4fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5h
ZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDksIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgZW5kT2Zmc2V0OiAxMH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRk
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNb
MF0sIHN0YXJ0T2Zmc2V0OiAxMiwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBlbmRPZmZzZXQ6IDEzfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5ldyBIaWdo
bGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDcsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiA4fSkpOworICAgICAgICBoaWdobGlnaHQzLmFkZChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFy
dE9mZnNldDogOSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRP
ZmZzZXQ6IDEwfSkpOworICAgICAgICBoaWdobGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTIs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxM30p
KTsKICAgICAgICAgCiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hs
aWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNl
dCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIpOwotICAgICAgICBD
U1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodFJhbmdlR3Jv
dXAzKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBo
aWdobGlnaHQxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdo
dDIiLCBoaWdobGlnaHQyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhp
Z2hsaWdodDMiLCBoaWdobGlnaHQzKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="428190"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411869</attachid>
            <date>2020-10-20 08:45:11 -0700</date>
            <delta_ts>2020-10-20 09:58:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217919-20201020084511.patch</filename>
            <type>text/plain</type>
            <size>75828</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiY2FmMTc5NjJkZGEy
MTRkZTNkZWEzMWE3ODYzMDhjMTMzNWQ1My4uNmZmYzY5ZTJlMjJlM2RjYjY2YzA1ZDc5Yzc0Njc1
MGZlZDFlN2UwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEhp
Z2hsaWdodE1hcCB0byBIaWdobGlnaHRSZWdpc3RlciBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB0
byBIaWdobGlnaHQgdG8gbWF0Y2ggY3VycmVudCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG5ldyBiZWhhdmlvciwg
cmVuYW1lIG9ubHkuCisgICAgICAgIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxp
Z2h0LWFwaS0xLworCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6SGlnaGxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodDo6aW5pdGlhbGl6ZVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGln
aHQ6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0OjphZGRU
b1NldExpa2UpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oLgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGw6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRNYXAuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmluaXRpYWxp
emVNYXBMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9t
TWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OnJlbW92ZSk6CisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oLgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSZWdpc3Rlcjo6bWFwIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMp
OgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBjc3MvRE9NQ1NT
TmFtZXNwYWNlLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpoaWdobGlnaHRSZWdpc3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBk
YXRlSGlnaGxpZ2h0UG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoaWdo
bGlnaHRNYXApOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFy
a2VkVGV4dHNGb3JIaWdobGlnaHRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0
ZUhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFu
Z2VEYXRhLmNwcDoKKwogMjAyMC0xMC0xOSAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTihyMjY1MjMxKTogT3Zlcmxh
eTogbm9kZSBpbmZvIHNvbWV0aW1lcyBkcmF3cyBvbiBvbmUgbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA2ZjEzNjM3MWQ4OWFiYmQ5NmRmYWRiZmYyMTNiN2Y3Nzc4ZDE2MjNhLi40ZmRlY2Iy
NjlkY2JiYzJlZjlkMjA5OThjM2RiZGQ4ZjFjZWM5YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjg5LDggKzI4OSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKLSAgICBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRNYXAuaWRsCi0gICAgTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5pZGwKKyAgICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCisgICAgTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9E
T01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDdhNDU0MWQxN2ZlYjNlMDgyODFlYWFmYzA0MzlmYTBiMmE3NmMyOTAuLmNkY2Iy
OTJmNTFmY2U1YWNlMWM3ODkyOTdkZmJkYzlmZjEyMzA2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI5LDggKzEyOSw4IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCi0kKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiskKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yRGlyZWN0aW9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIyMDg5MWFj
ZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi45NWRkNmU5NmQ0Njg0MjhkZWIxZmJmZGE1NzNkMjI3
YjM2MzBhMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMTEwOCwxMCArMTEwOCwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGFzaENoYW5nZUV2ZW50LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGRyTWV0YWRhdGFU
eXBlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
ZHJNZXRhZGF0YVR5cGUuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIaWdobGlnaHRNYXAuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodE1hcC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGln
aHRSZWdpc3Rlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSGlnaGxpZ2h0UmVnaXN0ZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIa2RmUGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjY5NGYwNjUxYjNlZTY3MmUzYTMwZGRhYmE4MjMwYzU3ZTY5
YjEzNi4uZTRhNTBjNWRiNzNhMjI5ODFlYzQ2NzIyNzJjNWEyOGRmODEwYjFiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTUsOCArMTU1LDggQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNr
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bk9wdGlvbnMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dE1hcC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93K0luZGV4
ZWREYXRhYmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JEaXJl
Y3Rpb24uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI5MGI3MzcxYjcxNjk1NDgyMmJiMDQ4NTE5OGI0OTMwYWVlMzkz
MTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHQuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0LmgiCisKKyNpbmNsdWRlICJJRExUeXBl
cy5oIgorI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgorI2luY2x1ZGUgIkpTU3RhdGljUmFuZ2Uu
aCIKKyNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCisjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NT
dHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAi
U3RhdGljUmFuZ2UuaCIKKyNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSGlnaGxpZ2h0OjpIaWdobGlnaHQo
UmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQoreworICAgIGF1dG8gbXlSYW5nZSA9IFdURk1vdmUo
cmFuZ2UpOworICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgpKTsKK30KKworUmVmPEhpZ2hs
aWdodD4gSGlnaGxpZ2h0OjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChyYW5nZSkpOworfQorCit2b2lkIEhpZ2hsaWdodDo6
aW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYgc2V0KQoreworICAgIGZvciAoYXV0byYg
cmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAgICBzZXQuYWRkPElETEludGVyZmFjZTxT
dGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOworfQorCitzdGF0aWMgdm9pZCByZXBhaW50
UmFuZ2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gc3RhcnROb2RlID0g
bWFrZVJlZlB0cigmcmFuZ2Uuc3RhcnRDb250YWluZXIoKSk7CisgICAgYXV0byBlbmROb2RlID0g
bWFrZVJlZlB0cigmcmFuZ2UuZW5kQ29udGFpbmVyKCkpOworICAgIGF1dG8gb3JkZXJpbmcgPSBk
b2N1bWVudE9yZGVyKCpzdGFydE5vZGUuZ2V0KCksICplbmROb2RlLmdldCgpKTsKKyAgICBpZiAo
aXNfZXEob3JkZXJpbmcpKSB7CisgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gc3RhcnROb2Rl
LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoaXNfZ3Qob3JkZXJpbmcpKSB7CisgICAgICAgIHN0YXJ0
Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKKyAgICAgICAgZW5kTm9kZSA9ICZyYW5nZS5z
dGFydENvbnRhaW5lcigpOworICAgIH0KKworICAgIGF1dG8gbm9kZSA9IHN0YXJ0Tm9kZTsKKyAg
ICB3aGlsZSAobm9kZSAhPSBlbmROb2RlKSB7CisgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0g
bm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAg
ICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlKTsKKyAgICB9Cit9CisKK2Jvb2wg
SGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCit7
CisgICAgcmV0dXJuIG1fcmFuZ2VzRGF0YS5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmcmFuZ2VdKGNv
bnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7CisgICAgICAgIHJlcGFpbnRS
YW5nZShyYW5nZSk7CisgICAgICAgIHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09
IHJhbmdlOworICAgIH0pOworfQorCit2b2lkIEhpZ2hsaWdodDo6Y2xlYXJGcm9tU2V0TGlrZSgp
Cit7CisgICAgZm9yIChhdXRvJiBkYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAgICByZXBhaW50
UmFuZ2UoZGF0YS0+cmFuZ2UpOworCisgICAgbV9yYW5nZXNEYXRhLmNsZWFyKCk7Cit9CisKK2Jv
b2wgSGlnaGxpZ2h0OjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIGlm
IChub3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJl
ZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7IHJldHVybiBjdXJyZW50LmdldCgpLnJh
bmdlLmdldCgpID09IHJhbmdlOyB9KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlcGFp
bnRSYW5nZShyYW5nZSk7CisgICAgbV9yYW5nZXNEYXRhLmFwcGVuZChIaWdobGlnaHRSYW5nZURh
dGE6OmNyZWF0ZShyYW5nZSkpOworICAgIAorICAgIHJldHVybiB0cnVlOworfQorCit9CisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjBkZmE1NjgyMjhjODNiMjBlYmU4YTJmOTM1ZWYwZjVkZTc1MzBmZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oCkBAIC0wLDAg
KzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRXhj
ZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQb3NpdGlvbi5oIgorI2luY2x1ZGUgIlN0YXRpY1Jhbmdl
LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOworY2xhc3MgRE9NU2V0QWRhcHRlcjsKK2NsYXNz
IFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIFN0YXRpY1JhbmdlOworCisK
K3N0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0
YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+IHsKKyAgICBIaWdo
bGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQorICAgICAgICA6IHJhbmdl
KFdURk1vdmUocmFuZ2UpKQorICAgIHsKKyAgICB9CisgICAgc3RhdGljIFJlZjxIaWdobGlnaHRS
YW5nZURhdGE+IGNyZWF0ZShSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRSYW5nZURhdGEoV1RGTW92ZShyYW5nZSkp
KTsKKyAgICB9CisgICAgUmVmPFN0YXRpY1JhbmdlPiByYW5nZTsKKyAgICBPcHRpb25hbDxQb3Np
dGlvbj4gc3RhcnRQb3NpdGlvbjsKKyAgICBPcHRpb25hbDxQb3NpdGlvbj4gZW5kUG9zaXRpb247
Cit9OworCitjbGFzcyBIaWdobGlnaHQgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHQ+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlKFN0YXRpY1JhbmdlJik7
CisgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7CisgICAgYm9vbCBhZGRUb1NldExpa2UoU3Rh
dGljUmFuZ2UmKTsKKyAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1Jhbmdl
Jik7CisgICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVyJik7CisgICAgY29u
c3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURhdGE+PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQorCisgICAgLy8gRklYTUU6IEFkZCBXRUJDT1JFX0VYUE9S
VCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgpOworcHJpdmF0ZToKKyAgICBWZWN0b3I8UmVm
PEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1fcmFuZ2VzRGF0YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hT
ZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+CisgICAgZXhw
bGljaXQgSGlnaGxpZ2h0KFJlZjxTdGF0aWNSYW5nZT4mJik7Cit9OworCit9CisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1
ZWI3YTlmMjE2ZTkzMDkxNzYzNjIzNjNkODgxZmZhMzA3OWRhZmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1IaWdobGlnaHRB
UEksCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRvdwor
XSBpbnRlcmZhY2UgSGlnaGxpZ2h0IHsKKyAgICBjb25zdHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5n
ZSk7CisKKyAgICBzZXRsaWtlPFN0YXRpY1JhbmdlPjsKKyAgICAvLyBGSVhNRTogQWRkIHJlYWRv
bmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyYzlmZmFjMTg3MGMxZjZjMTM1YTA4MDJmYzRlNmMxYzE4YmRh
ZjA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgotCi0jaW5jbHVkZSAiSURMVHlwZXMuaCIKLSNpbmNsdWRl
ICJKU0RPTU1hcExpa2UuaCIKLSNpbmNsdWRlICJKU0hpZ2hsaWdodFJhbmdlR3JvdXAuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotdm9pZCBIaWdobGlnaHRNYXA6OmluaXRpYWxpemVN
YXBMaWtlKERPTU1hcEFkYXB0ZXImIG1hcCkKLXsKLSAgICBmb3IgKGF1dG8mIGtleVZhbHVlIDog
bV9tYXApCi0gICAgICAgIG1hcC5zZXQ8SURMRE9NU3RyaW5nLCBJRExJbnRlcmZhY2U8SGlnaGxp
Z2h0UmFuZ2VHcm91cD4+KGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUpOwotfQotCi12b2lk
IEhpZ2hsaWdodE1hcDo6c2V0RnJvbU1hcExpa2UoU3RyaW5nJiYga2V5LCBSZWY8SGlnaGxpZ2h0
UmFuZ2VHcm91cD4mJiB2YWx1ZSkKLXsKLSAgICBtX21hcC5zZXQoV1RGTW92ZShrZXkpLCBXVEZN
b3ZlKHZhbHVlKSk7Ci19Ci0KLXZvaWQgSGlnaGxpZ2h0TWFwOjpjbGVhcigpCi17Ci0gICAgbV9t
YXAuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRNYXA6OnJlbW92ZShjb25zdCBTdHJpbmcm
IGtleSkKLXsKLSAgICByZXR1cm4gbV9tYXAucmVtb3ZlKGtleSk7Ci19Ci0KLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDMwOWNlOTc5MjE1MGZjNzcxYjhlODkxNDNhMThjMjQzYTY4OGIw
NjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJI
aWdobGlnaHRSYW5nZUdyb3VwLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERPTU1h
cEFkYXB0ZXI7Ci1jbGFzcyBET01TdHJpbmc7Ci1jbGFzcyBIaWdobGlnaHRSYW5nZUdyb3VwOwot
Ci1jbGFzcyBIaWdobGlnaHRNYXAgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHRNYXA+IHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodE1hcD4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIaWdobGlnaHRNYXApOyB9Ci0KLSAgICB2b2lkIGluaXRpYWxpemVNYXBM
aWtlKERPTU1hcEFkYXB0ZXImKTsKLSAgICB2b2lkIHNldEZyb21NYXBMaWtlKFN0cmluZyYmLCBS
ZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJik7Ci0gICAgdm9pZCBjbGVhcigpOwotICAgIGJvb2wg
cmVtb3ZlKGNvbnN0IFN0cmluZyYpOwotICAgIAotICAgIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBS
ZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+JiBtYXAoKSBjb25zdCB7IHJldHVybiBtX21hcDsgfQot
ICAgIAotcHJpdmF0ZToKLSAgICBIaWdobGlnaHRNYXAoKSA9IGRlZmF1bHQ7Ci0gICAgSGFzaE1h
cDxTdHJpbmcsIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPj4gbV9tYXA7Ci19OwotCi19Ci0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTI1MWYwNThhODRkMjM0OWVhNGVlNzg4M2Q0
ZWE4YThiYTgyZTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwKKysr
IC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEVuYWJsZWRB
dFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi0g
ICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIEhpZ2hsaWdodE1hcCB7Ci0gICAgY29uc3Ry
dWN0b3IoKTsKLQotICAgIG1hcGxpa2U8RE9NU3RyaW5nLCBIaWdobGlnaHRSYW5nZUdyb3VwPjsK
LX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRSYW5nZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodFJhbmdlR3JvdXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGQ4NzI5
NmNlNzVlYjk5MzE3MDI4NGU0YjEyYWI5YThmOTdlNjM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTA4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFu
Z2VHcm91cC5oIgotCi0jaW5jbHVkZSAiSURMVHlwZXMuaCIKLSNpbmNsdWRlICJKU0RPTVNldExp
a2UuaCIKLSNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgiCi0jaW5jbHVkZSAiTm9kZVRyYXZlcnNh
bC5oIgotI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgotI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCi0jaW5jbHVkZSAi
U3R5bGVQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLUhpZ2hsaWdodFJhbmdlR3JvdXA6OkhpZ2hsaWdodFJhbmdlR3JvdXAoUmVmPFN0
YXRpY1JhbmdlPiYmIHJhbmdlKQotewotICAgIGF1dG8gbXlSYW5nZSA9IFdURk1vdmUocmFuZ2Up
OwotICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgpKTsKLX0KLQotUmVmPEhpZ2hsaWdodFJh
bmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNyZWF0ZShTdGF0aWNSYW5nZSYgcmFuZ2Up
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChyYW5nZSkp
OwotfQotCi12b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmluaXRpYWxpemVTZXRMaWtlKERPTVNl
dEFkYXB0ZXImIHNldCkKLXsKLSAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IG1fcmFuZ2VzRGF0
YSkKLSAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8U3RhdGljUmFuZ2U+PihyYW5nZURhdGEt
PnJhbmdlKTsKLX0KLQotc3RhdGljIHZvaWQgcmVwYWludFJhbmdlKGNvbnN0IFN0YXRpY1Jhbmdl
JiByYW5nZSkKLXsKLSAgICBhdXRvKiBzdGFydE5vZGUgPSAmcmFuZ2Uuc3RhcnRDb250YWluZXIo
KTsKLSAgICBhdXRvKiBlbmROb2RlID0gJnJhbmdlLmVuZENvbnRhaW5lcigpOwotICAgIGF1dG8g
b3JkZXJpbmcgPSBkb2N1bWVudE9yZGVyKCpzdGFydE5vZGUsICplbmROb2RlKTsKLSAgICBpZiAo
aXNfZXEob3JkZXJpbmcpKSB7Ci0gICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gc3RhcnROb2Rl
LT5yZW5kZXJlcigpKQotICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXNfZ3Qob3JkZXJpbmcpKSB7Ci0gICAgICAgIHN0YXJ0
Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKLSAgICAgICAgZW5kTm9kZSA9ICZyYW5nZS5z
dGFydENvbnRhaW5lcigpOwotICAgIH0KLQotICAgIGF1dG8gbm9kZSA9IHN0YXJ0Tm9kZTsKLSAg
ICB3aGlsZSAobm9kZSAhPSBlbmROb2RlKSB7Ci0gICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0g
bm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7Ci0gICAg
ICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2RlKTsKLSAgICB9Ci19Ci0KLWJvb2wg
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlRnJvbVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2Um
IHJhbmdlKQotewotICAgIHJldHVybiBtX3Jhbmdlc0RhdGEucmVtb3ZlRmlyc3RNYXRjaGluZyhb
JnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVudCkgewotICAgICAg
ICByZXBhaW50UmFuZ2UocmFuZ2UpOwotICAgICAgICByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5n
ZS5nZXQoKSA9PSByYW5nZTsKLSAgICB9KTsKLX0KLQotdm9pZCBIaWdobGlnaHRSYW5nZUdyb3Vw
OjpjbGVhckZyb21TZXRMaWtlKCkKLXsKLSAgICBmb3IgKGF1dG8mIGRhdGEgOiBtX3Jhbmdlc0Rh
dGEpCi0gICAgICAgIHJlcGFpbnRSYW5nZShkYXRhLT5yYW5nZSk7Ci0KLSAgICBtX3Jhbmdlc0Rh
dGEuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRSYW5nZUdyb3VwOjphZGRUb1NldExpa2Uo
U3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIGlmIChub3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEu
ZmluZE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJy
ZW50KSB7IHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOyB9KSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7Ci0gICAgbV9yYW5n
ZXNEYXRhLmFwcGVuZChIaWdobGlnaHRSYW5nZURhdGE6OmNyZWF0ZShyYW5nZSkpOwotICAgIAot
ICAgIHJldHVybiB0cnVlOwotfQotCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGQ4MWU5ZWY3MjMzNDAzZmMzMzg1ZTE0NjMxZmNiMGE5YzVlYTYwYi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJF
eGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlBvc2l0aW9uLmgiCi0jaW5jbHVkZSAiU3RhdGljUmFu
Z2UuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247Ci1jbGFzcyBET01TZXRBZGFwdGVyOwotY2xh
c3MgU3RhdGljUmFuZ2U7Ci1jbGFzcyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb247Ci0K
LXN0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0
YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+IHsKLSAgICAKLSAg
ICBIaWdobGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQotICAgICAgICA6
IHJhbmdlKFdURk1vdmUocmFuZ2UpKQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFJl
ZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCi0g
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRSYW5nZURhdGEoV1RG
TW92ZShyYW5nZSkpKTsKLSAgICB9Ci0gICAgCi0gICAgUmVmPFN0YXRpY1JhbmdlPiByYW5nZTsK
LSAgICBPcHRpb25hbDxQb3NpdGlvbj4gc3RhcnRQb3NpdGlvbjsKLSAgICBPcHRpb25hbDxQb3Np
dGlvbj4gZW5kUG9zaXRpb247Ci19OwotCi1jbGFzcyBIaWdobGlnaHRSYW5nZUdyb3VwIDogcHVi
bGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gewotcHVibGljOgotICAgIHN0YXRp
YyBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gY3JlYXRlKFN0YXRpY1JhbmdlJik7Ci0gICAgCi0g
ICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7Ci0gICAgYm9vbCBhZGRUb1NldExpa2UoU3RhdGlj
UmFuZ2UmKTsKLSAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7
Ci0gICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVyJik7Ci0gICAgCi0gICAg
Y29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURhdGE+PiYgcmFuZ2VzRGF0YSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQotCi0gICAgLy8gRklYTUU6IEFkZCBXRUJDT1JFX0VY
UE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgpOwotICAgIAotcHJpdmF0ZToKLSAgICBW
ZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1fcmFuZ2VzRGF0YTsgLy8gRklYTUU6IHVz
ZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+
Ci0gICAgZXhwbGljaXQgSGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGljUmFuZ2U+JiYpOwot
fTsKLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSYW5nZUdyb3VwLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
NjVhYTQxZWE2NDVjZTY0ZTdjMDY5NTQyN2U0ZjZjOTBhYWRlMDA1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLVsKLSAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwK
LSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAotICAgIEV4cG9zZWQ9V2luZG93Ci1dIGlu
dGVyZmFjZSBIaWdobGlnaHRSYW5nZUdyb3VwIHsKLSAgICBjb25zdHJ1Y3RvcihTdGF0aWNSYW5n
ZSByYW5nZSk7Ci0KLSAgICBzZXRsaWtlPFN0YXRpY1JhbmdlPjsKLSAgICAvLyBGSVhNRTogQWRk
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwotfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZTIwYjg2OTM0MjVjYmNhYTA2Y2NiMTQ0ZmUwMmQzY2Y2Mjg1ZThi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0UmVnaXN0ZXIuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSZWdpc3Rlci5oIgorCisjaW5j
bHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIKKyNpbmNsdWRlICJK
U0hpZ2hsaWdodC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCit2b2lkIEhpZ2hsaWdo
dFJlZ2lzdGVyOjppbml0aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVyJiBtYXApCit7CisgICAg
Zm9yIChhdXRvJiBrZXlWYWx1ZSA6IG1fbWFwKQorICAgICAgICBtYXAuc2V0PElETERPTVN0cmlu
ZywgSURMSW50ZXJmYWNlPEhpZ2hsaWdodD4+KGtleVZhbHVlLmtleSwga2V5VmFsdWUudmFsdWUp
OworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBr
ZXksIFJlZjxIaWdobGlnaHQ+JiYgdmFsdWUpCit7CisgICAgbV9tYXAuc2V0KFdURk1vdmUoa2V5
KSwgV1RGTW92ZSh2YWx1ZSkpOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjpjbGVhcigp
Cit7CisgICAgbV9tYXAuY2xlYXIoKTsKK30KKworYm9vbCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVt
b3ZlKGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIHJldHVybiBtX21hcC5yZW1vdmUoa2V5KTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodFJlZ2lzdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA1MzBmODM2MjNhMzMzYjIwY2ZhNmZkNWRjMGY1
NjMzNDQxMDQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJIaWdobGlnaHQuaCIKKyNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRE9NTWFwQWRhcHRlcjsKK2NsYXNzIERPTVN0cmluZzsKK2NsYXNz
IEhpZ2hsaWdodDsKKworY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxIaWdobGlnaHRSZWdpc3Rlcj4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0
UmVnaXN0ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0UmVnaXN0
ZXIpOyB9CisKKyAgICB2b2lkIGluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImKTsKKyAg
ICB2b2lkIHNldEZyb21NYXBMaWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0PiYmKTsKKyAgICB2
b2lkIGNsZWFyKCk7CisgICAgYm9vbCByZW1vdmUoY29uc3QgU3RyaW5nJik7CisgICAgCisgICAg
Y29uc3QgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGlnaHQ+PiYgbWFwKCkgY29uc3QgeyByZXR1
cm4gbV9tYXA7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgSGlnaGxpZ2h0UmVnaXN0ZXIoKSA9IGRl
ZmF1bHQ7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGlnaHQ+PiBtX21hcDsKK307CisK
K30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmVnaXN0ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmVnaXN0ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNmNhYzYzYmQxNjg2Mzk0MDJhNmFhNzIzMTg4
ZWZhNGY3ZmI2ODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKKyAgICBJbXBsZW1lbnRh
dGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2luZG93CitdIGludGVyZmFjZSBIaWdobGln
aHRSZWdpc3RlciB7CisgICAgY29uc3RydWN0b3IoKTsKKworICAgIG1hcGxpa2U8RE9NU3RyaW5n
LCBIaWdobGlnaHQ+OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOTFjNTg3OTg1ZTQwOWNlYjIxMzFi
ODhhMWNjNGJmN2NhN2Y1YzNlZC4uY2U3MTM3OGE0ZTg2NTVlM2VmYWI1MTAwNmI5MmI5ZjVmMzIy
ZjZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTY0LDggKzY0LDggQEAgTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9s
bGVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcAog
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKLU1vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKLU1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdl
R3JvdXAuY3BwCitNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAKK01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0lu
ZGV4ZWREYXRhYmFzZS5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5jcHAKQEAgLTMwNTIsOCArMzA1Miw4IEBA
IEpTSFRNTFVua25vd25FbGVtZW50LmNwcAogSlNIVE1MVmlkZW9FbGVtZW50LmNwcAogSlNIYXNo
Q2hhbmdlRXZlbnQuY3BwCiBKU0hkck1ldGFkYXRhVHlwZS5jcHAKLUpTSGlnaGxpZ2h0TWFwLmNw
cAotSlNIaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorSlNIaWdobGlnaHRSZWdpc3Rlci5jcHAKK0pT
SGlnaGxpZ2h0LmNwcAogSlNIaXN0b3J5LmNwcAogSlNIa2RmUGFyYW1zLmNwcAogSlNIbWFjS2V5
UGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGUzOWI3MWM2MTA1ZGY0NjdiM2IzMGY1MjI5YjdkMGQwNTI5N2I3NWIu
LjM5ODI2NjkzNjE3ZGNiZTk0NWQyMTZiNmEwNGUzMjFjY2IxNTU4YTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc5NDMsMTIg
Kzc5NDMsMTIgQEAKIAkJNDREOERBOTgxMzk1NDVCRTAwMzM3Qjc1IC8qIFNWR01QYXRoRWxlbWVu
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZHTVBhdGhFbGVtZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDREOERBOUExMzk1NDVDRDAwMzM3Qjc1IC8qIFNWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRl
TW90aW9uRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0RTM0OUY3
MjQ2RjREQzcwMDY4NDc5QyAvKiBMaWJXZWJSVENFbnVtVHJhaXRzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ0VudW1UcmFpdHMuaDsgcGF0aCA9IGxpYndlYnJ0
Yy9MaWJXZWJSVENFbnVtVHJhaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0
RTg4RTRDMjM2OTEyOEEwMDlCNDg0NyAvKiBIaWdobGlnaHRNYXAuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhpZ2hsaWdodE1hcC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIaWdobGlnaHRSYW5nZUdyb3VwLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1h
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHRNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNDRFODhFNTEyMzZBNUM4RDAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSGlnaGxpZ2h0UmFuZ2VHcm91cC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0NEU4OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hsaWdodE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdy
b3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hsaWdodFJhbmdlR3JvdXAuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NEU4OEU0QzIzNjkxMjhBMDA5QjQ4NDcgLyogSGln
aGxpZ2h0UmVnaXN0ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lz
dGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDRFODhFNEQyMzY5MTI4QjAw
OUI0ODQ3IC8qIEhpZ2hsaWdodC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSGlnaGxpZ2h0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDRFODhFNTAyMzZBNTZBQzAwOUI0
ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lz
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTUxMjM2QTVDOEQwMDlC
NDg0NyAvKiBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlnaGxpZ2h0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTUyMjM2QTY2N0YwMDlCNDg0NyAvKiBIaWdobGln
aHRSZWdpc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdobGlnaHRSZWdpc3Rlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAv
KiBIaWdobGlnaHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaGxpZ2h0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUwQ0VCRUUxNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVs
YWJsZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGFi
ZWxhYmxlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MENFQkVG
MTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IExhYmVsYWJsZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDUxMjUwMjAxNURDRTM3RDAwMkY4NEUyIC8qIFNwaW5CdXR0b25FbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwaW5CdXR0b25FbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MzY5LDEyICsxOTM2OSwxMiBA
QAogCQk0NEU4OEU0NzIzNjhERjBGMDA5QjQ4NDcgLyogaGlnaGxpZ2h0ICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0NEU4OEU1MjIzNkE2NjdGMDA5QjQ4
NDcgLyogSGlnaGxpZ2h0TWFwLmNwcCAqLywKLQkJCQk0NEU4OEU1MDIzNkE1NkFDMDA5QjQ4NDcg
LyogSGlnaGxpZ2h0TWFwLmggKi8sCi0JCQkJNDRFODhFNEMyMzY5MTI4QTAwOUI0ODQ3IC8qIEhp
Z2hsaWdodE1hcC5pZGwgKi8sCi0JCQkJNDRFODhFNTQyMzZBNjZBMTAwOUI0ODQ3IC8qIEhpZ2hs
aWdodFJhbmdlR3JvdXAuY3BwICovLAotCQkJCTQ0RTg4RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBI
aWdobGlnaHRSYW5nZUdyb3VwLmggKi8sCi0JCQkJNDRFODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8q
IEhpZ2hsaWdodFJhbmdlR3JvdXAuaWRsICovLAorCQkJCTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0
NyAvKiBIaWdobGlnaHQuY3BwICovLAorCQkJCTQ0RTg4RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBI
aWdobGlnaHQuaCAqLywKKwkJCQk0NEU4OEU0RDIzNjkxMjhCMDA5QjQ4NDcgLyogSGlnaGxpZ2h0
LmlkbCAqLywKKwkJCQk0NEU4OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0
ZXIuY3BwICovLAorCQkJCTQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdp
c3Rlci5oICovLAorCQkJCTQ0RTg4RTRDMjM2OTEyOEEwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdp
c3Rlci5pZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGhpZ2hsaWdodDsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmgKaW5kZXggOTcwMmNjNTk3MmU5OTU3OTZiMTc4NGI2OWIwMGI2MjcxNzFmNDQz
Ny4uMjBkOTVlZTU0ZTA0NzRmODgyMzM2M2ZkOWM1YjE1ZTY2NzdkYzQxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMTI5LDgg
KzEyOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhHUFVUZXh0dXJlVmlldykg
XAogICAgIG1hY3JvKEdQVVVuY2FwdHVyZWRFcnJvckV2ZW50KSBcCiAgICAgbWFjcm8oR1BVVmFs
aWRhdGlvbkVycm9yKSBcCi0gICAgbWFjcm8oSGlnaGxpZ2h0TWFwKSBcCi0gICAgbWFjcm8oSGln
aGxpZ2h0UmFuZ2VHcm91cCkgXAorICAgIG1hY3JvKEhpZ2hsaWdodFJlZ2lzdGVyKSBcCisgICAg
bWFjcm8oSGlnaGxpZ2h0KSBcCiAgICAgbWFjcm8oSFRNTEF0dGFjaG1lbnRFbGVtZW50KSBcCiAg
ICAgbWFjcm8oSFRNTEF1ZGlvRWxlbWVudCkgXAogICAgIG1hY3JvKEhUTUxEaWFsb2dFbGVtZW50
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCmluZGV4IDE5ZTNkZDYxZWE5
ZDlhYTA5NzU2YzczNDY1NWQ0ZGM3NjcwNjg3MWIuLmQ1OTI1NzBiODYzMTZkODMxZmI1OTdhMjkx
NGI5NzVmYmIzZDQwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1l
c3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCkBA
IC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlQYXJzZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkhpZ2hsaWdo
dE1hcC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQ
cm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODksOSArODksOSBAQCBTdHJpbmcgRE9NQ1NT
TmFtZXNwYWNlOjplc2NhcGUoY29uc3QgU3RyaW5nJiBpZGVudCkKICAgICByZXR1cm4gYnVpbGRl
ci50b1N0cmluZygpOwogfQogCi1IaWdobGlnaHRNYXAmIERPTUNTU05hbWVzcGFjZTo6aGlnaGxp
Z2h0cyhEb2N1bWVudCYgZG9jdW1lbnQpCitIaWdobGlnaHRSZWdpc3RlciYgRE9NQ1NTTmFtZXNw
YWNlOjpoaWdobGlnaHRzKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gZG9jdW1l
bnQuaGlnaGxpZ2h0TWFwKCk7CisgICAgcmV0dXJuIGRvY3VtZW50LmhpZ2hsaWdodFJlZ2lzdGVy
KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3Bh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaAppbmRleCAzMDQ3ZTUy
Nzk4NDQ2Y2Q3NzA2Njc1NTA5NDE5OWEzMWVjMDVlYzdmLi44NmQyN2ZlOWZmNzE3N2IzZTRhY2Rj
YmU0ZTllNGY1ODdhZDA0MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NT
TmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5oCkBA
IC0zNywxNSArMzcsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7
Ci1jbGFzcyBIaWdobGlnaHRNYXA7Ci1jbGFzcyBIaWdobGlnaHRSYW5nZUdyb3VwOworY2xhc3Mg
SGlnaGxpZ2h0UmVnaXN0ZXI7CitjbGFzcyBIaWdobGlnaHQ7CiAKIGNsYXNzIERPTUNTU05hbWVz
cGFjZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNTU05hbWVzcGFjZT4sIHB1YmxpYyBT
dXBwbGVtZW50YWJsZTxET01DU1NOYW1lc3BhY2U+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9v
bCBzdXBwb3J0cyhEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgcHJvcGVydHksIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzKERvY3VtZW50JiwgY29uc3QgU3Ry
aW5nJiBjb25kaXRpb25UZXh0KTsKICAgICBzdGF0aWMgU3RyaW5nIGVzY2FwZShjb25zdCBTdHJp
bmcmIGlkZW50KTsKLSAgICBzdGF0aWMgSGlnaGxpZ2h0TWFwJiBoaWdobGlnaHRzKERvY3VtZW50
Jik7CisgICAgc3RhdGljIEhpZ2hsaWdodFJlZ2lzdGVyJiBoaWdobGlnaHRzKERvY3VtZW50Jik7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCmluZGV4IDU2MzU1
OTM1NmZjNmVhNTFhOGExYmNjMjIwMjEzZjNkODA4MmMwNzcuLjM0ZjNkNzI0MzVkMzU1YTJkYTA2
YWI2NTc3NTUxNmU1ZWRmNmNlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NOYW1lc3BhY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2Uu
aWRsCkBAIC0zNSw1ICszNSw1IEBACiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgYm9v
bGVhbiBzdXBwb3J0cyhET01TdHJpbmcgcHJvcGVydHksIERPTVN0cmluZyB2YWx1ZSk7CiAgICAg
W0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0cyhET01TdHJpbmcgY29u
ZGl0aW9uVGV4dCk7CiAgICAgc3RhdGljIERPTVN0cmluZyBlc2NhcGUoRE9NU3RyaW5nIGlkZW50
KTsKLSAgICBbRW5hYmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksIENhbGxXaXRoPURvY3VtZW50
XSBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIEhpZ2hsaWdodE1hcCBoaWdobGlnaHRzOworICAg
IFtFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwgQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRp
YyByZWFkb25seSBhdHRyaWJ1dGUgSGlnaGxpZ2h0UmVnaXN0ZXIgaGlnaGxpZ2h0czsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwODUzNTg5ZWFiYWMzNWU3NmFiYTZmMjgyYWU1NzZj
NTkyZTFlOGU1Li42ZTVmMDFkOWMzMmZkMjI2NDVhMzJiNDAwNjBjYjA0YjFiMTk3NjgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQAogI2luY2x1ZGUgIkhUVFBI
ZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSGFzaENo
YW5nZUV2ZW50LmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxp
Z2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJIaXN0b3J5LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJl
c3VsdC5oIgogI2luY2x1ZGUgIklkbGVDYWxsYmFja0NvbnRyb2xsZXIuaCIKQEAgLTc5Miw4ICs3
OTIsOCBAQCB2b2lkIERvY3VtZW50Ojpjb21tb25UZWFyZG93bigpCiAKICAgICBjbGVhclNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlcigpOwogICAgIAotICAgIGlmIChtX2hpZ2hsaWdodE1hcCkK
LSAgICAgICAgbV9oaWdobGlnaHRNYXAtPmNsZWFyKCk7CisgICAgaWYgKG1faGlnaGxpZ2h0UmVn
aXN0ZXIpCisgICAgICAgIG1faGlnaGxpZ2h0UmVnaXN0ZXItPmNsZWFyKCk7CiAKICAgICBtX3Bl
bmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3QgPSBudWxscHRyOwogCkBAIC0yNzY3LDE4ICsyNzY3
LDE4IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiAgICAg
cmV0dXJuIFhNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRoaXMsIHZpZXcoKSk7CiB9CiAKLUhp
Z2hsaWdodE1hcCYgRG9jdW1lbnQ6OmhpZ2hsaWdodE1hcCgpCitIaWdobGlnaHRSZWdpc3RlciYg
RG9jdW1lbnQ6OmhpZ2hsaWdodFJlZ2lzdGVyKCkKIHsKLSAgICBpZiAoIW1faGlnaGxpZ2h0TWFw
KQotICAgICAgICBtX2hpZ2hsaWdodE1hcCA9IEhpZ2hsaWdodE1hcDo6Y3JlYXRlKCk7Ci0gICAg
cmV0dXJuICptX2hpZ2hsaWdodE1hcDsKKyAgICBpZiAoIW1faGlnaGxpZ2h0UmVnaXN0ZXIpCisg
ICAgICAgIG1faGlnaGxpZ2h0UmVnaXN0ZXIgPSBIaWdobGlnaHRSZWdpc3Rlcjo6Y3JlYXRlKCk7
CisgICAgcmV0dXJuICptX2hpZ2hsaWdodFJlZ2lzdGVyOwogfQogCiB2b2lkIERvY3VtZW50Ojp1
cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKQogewogICAgIFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdo
dFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7Ci0gICAgaWYgKG1faGlnaGxpZ2h0TWFwKSB7Ci0gICAg
ICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogbV9oaWdobGlnaHRNYXAtPm1hcCgpKSB7CisgICAg
aWYgKG1faGlnaGxpZ2h0UmVnaXN0ZXIpIHsKKyAgICAgICAgZm9yIChhdXRvJiBoaWdobGlnaHQg
OiBtX2hpZ2hsaWdodFJlZ2lzdGVyLT5tYXAoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBy
YW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgewogICAgICAgICAgICAg
ICAgIGlmIChyYW5nZURhdGEtPnN0YXJ0UG9zaXRpb24gJiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlv
bikKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IGRkODgzYjJhMDdjNTYyMzZlY2NmZDUwNDVhYWU2MDZiMzk2ZTg3NGYuLjkzZmI3NDhhN2Y5NTIz
MWQ1ZDY5OGVhZTQwMjBhM2U5MTM1YjYwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNTYs
NyArMTU2LDcgQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxNYXBFbGVtZW50
OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFz
cyBIaWdobGlnaHRNYXA7CitjbGFzcyBIaWdobGlnaHRSZWdpc3RlcjsKIGNsYXNzIEhpdFRlc3RM
b2NhdGlvbjsKIGNsYXNzIEhpdFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKQEAg
LTE1NjksNyArMTU2OSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBUZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlciYgdGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIoKTsKICAgICBUZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlciogdGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXJJZkV4aXN0
cygpIHsgcmV0dXJuIG1fdGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICAg
ICAgCi0gICAgSGlnaGxpZ2h0TWFwJiBoaWdobGlnaHRNYXAoKTsKKyAgICBIaWdobGlnaHRSZWdp
c3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUhpZ2hsaWdodFBvc2l0
aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3NDb250ZW50SmF2YVNjcmlwdCgpIGNvbnN0OwpAQCAt
MTkyNCw3ICsxOTI0LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dEF1dG9T
aXppbmc+IG1fdGV4dEF1dG9TaXppbmc7CiAjZW5kaWYKICAgICAgICAgCi0gICAgUmVmUHRyPEhp
Z2hsaWdodE1hcD4gbV9oaWdobGlnaHRNYXA7CisgICAgUmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVy
PiBtX2hpZ2hsaWdodFJlZ2lzdGVyOwogCiAgICAgVGltZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJl
c3Npb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hs
aWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3Bw
CmluZGV4IDY1ZTMyYTQ4NTBkNjdjY2QwMDRlMmE3NTZiMGYxYjdkNzhkMWJjYTcuLjM5ZWIxNTEw
OWFhNmMwMmE2ODZiZTA0ZGUwY2RkNmIwMzdjOGZjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKLSNpbmNsdWRlICJIaWdobGln
aHRSYW5nZUdyb3VwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0LmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAppbmRleCBjYmMwM2E3ZGI5OGMxMTUz
NmIzNzEyNzNhZmE4YTM1MDM2ZDE2NzU2Li40NzFiNWU3M2RmNTdkZjc4NTA1NDQwMDhhMDI1NDE4
MTQ5MDIyNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKICNpbmNsdWRlICJIaWdobGlnaHREYXRhLmgiCi0jaW5jbHVkZSAiSGlnaGxp
Z2h0TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJIaXRU
ZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbmxpbmVU
ZXh0Qm94U3R5bGUuaCIKQEAgLTEwNTEsNyArMTA1MSw3IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJ
bmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFya2VkVGV4dHNGb3JIaWdobGlnaHRzKFRleHRQYWludFBo
YXNlCiAgICAgYXV0byYgcGFyZW50UmVuZGVyZXIgPSBwYXJlbnQoKS0+cmVuZGVyZXIoKTsKICAg
ICBhdXRvJiBwYXJlbnRTdHlsZSA9IHBhcmVudFJlbmRlcmVyLnN0eWxlKCk7CiAgICAgSGlnaGxp
Z2h0RGF0YSBoaWdobGlnaHREYXRhOwotICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogcmVuZGVy
ZXIoKS5kb2N1bWVudCgpLmhpZ2hsaWdodE1hcCgpLm1hcCgpKSB7CisgICAgZm9yIChhdXRvJiBo
aWdobGlnaHQgOiByZW5kZXJlcigpLmRvY3VtZW50KCkuaGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAo
KSkgewogICAgICAgICBhdXRvIHJlbmRlclN0eWxlID0gcGFyZW50UmVuZGVyZXIuZ2V0VW5jYWNo
ZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodC5rZXkgfSwgJnBh
cmVudFN0eWxlKTsKICAgICAgICAgaWYgKCFyZW5kZXJTdHlsZSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXgg
YTcyZjFlZDc3OTcyYTQ0NzYxZGEwNzUxZmY0MjdhNTJhNjBiOWNiMy4uM2NlZTAxZjQ1OTUxYzE1
OWE5ZGEyODMzMWE3ZTYwY2RmZTdlNjQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTEltYWdl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIaWdo
bGlnaHREYXRhLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxp
Z2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJJbmxpbmVFbGVtZW50Qm94LmgiCiAjaW5jbHVkZSAi
TGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yLmgiCkBAIC0xNTQsNyArMTU0LDcgQEAgaW5saW5lIHN0YXRpYyBib29s
IGRyYWdnZWRDb250ZW50Q29udGFpbnNSZXBsYWNlZEVsZW1lbnQoY29uc3QgVmVjdG9yPFJlbmRl
cmVkRG8KIENvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxjdWxhdGVIaWdobGlnaHRDb2xvcigpIGNv
bnN0CiB7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGlnaHREYXRhOwotICAgIGZvciAoYXV0byYg
aGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdobGlnaHRNYXAoKS5tYXAoKSkgeworICAgIGZvciAo
YXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdobGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7
CiAgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNE
YXRhKCkpIHsKICAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShy
YW5nZURhdGEpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAppbmRleCBmNDk3MTY5ZTI3YmQ0YTcy
MDcxNjM3ZjYwYzBkMWZmOTFhNTcxNzk4Li5iZTY3ZTYwZTc1OTkyNGVjZmFkZGVlOTJlNmM3OWQ1
MjNlNmU3ZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9u
UmFuZ2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFu
Z2VEYXRhLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodFJhbmdlR3JvdXAu
aCIKKyNpbmNsdWRlICJIaWdobGlnaHQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiUG9zaXRpb24uaCIKICNpbmNsdWRlICJSYW5nZS5oIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKaW5kZXggYjMw
NTFjM2ZkM2ZhNjMzYzBjNjc1YjdkNDlmN2ZmZTdhNzMyYzgyOS4uZjlmMzI5ZDA2MWIzZTNhZTY4
ZDExNWIwZWJlNDg5YzdlZDk3MWM5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0
L2hpZ2hsaWdodC1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9oaWdo
bGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDE4ICsxLDE4IEBA
Ci1UZXN0cyB0aGUgaW50ZXJmYWNlcyBvZiB0aGUgaGlnaGxpZ2h0IEFQSSwgd2hpY2ggaW5jbHVk
ZSBIaWdobGlnaHRSYW5nZUdyb3VwLCBIaWdobGlnaHRNYXAsIGFuZCBleHRlbnNpb25zIHRvIHRo
ZSBDU1MgbmFtZXNwYWNlLgorVGVzdHMgdGhlIGludGVyZmFjZXMgb2YgdGhlIGhpZ2hsaWdodCBB
UEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0LCBIaWdobGlnaHRSZWdpc3RlciwgYW5kIGV4dGVu
c2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2UuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
IAogCiBUZXN0aW5nIEhpZ2hsaWdodDoKLVBBU1MgSGlnaGxpZ2h0UmFuZ2VHcm91cCBpbnN0YW5j
ZW9mIEZ1bmN0aW9uIGlzIHRydWUKLVBBU1MgdHlwZW9mIEhpZ2hsaWdodFJhbmdlR3JvdXAgaXMg
ImZ1bmN0aW9uIgotUEFTUyBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uo
e3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFp
bmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHRS
YW5nZUdyb3VwIGlzIHRydWUKLVBBU1MgSGlnaGxpZ2h0TWFwIGluc3RhbmNlb2YgRnVuY3Rpb24g
aXMgdHJ1ZQotUEFTUyB0eXBlb2YgSGlnaGxpZ2h0TWFwIGlzICJmdW5jdGlvbiIKLVBBU1MgbmV3
IEhpZ2hsaWdodE1hcCgpIGluc3RhbmNlb2YgSGlnaGxpZ2h0TWFwIGlzIHRydWUKLVBBU1MgbmV3
IEhpZ2hsaWdodE1hcCgpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHRSYW5nZUdyb3Vw
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zm
c2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSkgaXMg
ZGVmaW5lZC4KK1BBU1MgSGlnaGxpZ2h0IGluc3RhbmNlb2YgRnVuY3Rpb24gaXMgdHJ1ZQorUEFT
UyB0eXBlb2YgSGlnaGxpZ2h0IGlzICJmdW5jdGlvbiIKK1BBU1MgbmV3IEhpZ2hsaWdodChuZXcg
U3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDog
MSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2Vv
ZiBIaWdobGlnaHQgaXMgdHJ1ZQorUEFTUyBIaWdobGlnaHRSZWdpc3RlciBpbnN0YW5jZW9mIEZ1
bmN0aW9uIGlzIHRydWUKK1BBU1MgdHlwZW9mIEhpZ2hsaWdodFJlZ2lzdGVyIGlzICJmdW5jdGlv
biIKK1BBU1MgbmV3IEhpZ2hsaWdodFJlZ2lzdGVyKCkgaW5zdGFuY2VvZiBIaWdobGlnaHRSZWdp
c3RlciBpcyB0cnVlCitQQVNTIG5ldyBIaWdobGlnaHRSZWdpc3RlcigpLnNldCgiZm9vLXN0eWxp
bmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1l
bnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5k
T2Zmc2V0OiAyfSkpKSBpcyBkZWZpbmVkLgogUEFTUyBDU1MuaGlnaGxpZ2h0cyBpcyBkZWZpbmVk
LgotUEFTUyBDU1MuaGlnaGxpZ2h0cy5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0UmFu
Z2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBz
dGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9
KSkpIGlzIENTUy5oaWdobGlnaHRzCitQQVNTIENTUy5oaWdobGlnaHRzLnNldCgiZm9vLXN0eWxp
bmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1l
bnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5k
T2Zmc2V0OiAyfSkpKSBpcyBDU1MuaGlnaGxpZ2h0cwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGln
aHQvaGlnaGxpZ2h0LWludGVyZmFjZXMuaHRtbCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdo
bGlnaHQtaW50ZXJmYWNlcy5odG1sCmluZGV4IDU4ZjQ5NGNhMmZkMTlhYjc0Zjg5Yzg5ODA5YTRl
YmVlMGFmN2ZhZGUuLjZmYmE1ZDgyZDFmZTI1YjA4OTg5Y2NkOWFmMDA3ODEwZWExMWYwYmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy5odG1sCkBA
IC00LDE4ICs0LDE4IEBACiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KIAotZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBpbnRlcmZhY2VzIG9m
IHRoZSBoaWdobGlnaHQgQVBJLCB3aGljaCBpbmNsdWRlIEhpZ2hsaWdodFJhbmdlR3JvdXAsIEhp
Z2hsaWdodE1hcCwgYW5kIGV4dGVuc2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2UuIik7CitkZXNj
cmlwdGlvbigiVGVzdHMgdGhlIGludGVyZmFjZXMgb2YgdGhlIGhpZ2hsaWdodCBBUEksIHdoaWNo
IGluY2x1ZGUgSGlnaGxpZ2h0LCBIaWdobGlnaHRSZWdpc3RlciwgYW5kIGV4dGVuc2lvbnMgdG8g
dGhlIENTUyBuYW1lc3BhY2UuIik7CiAKIGRlYnVnKCJUZXN0aW5nIEhpZ2hsaWdodDoiKTsKLXNo
b3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0UmFuZ2VHcm91cCBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdobGlnaHRSYW5nZUdyb3VwIiwgImZ1bmN0
aW9uIik7Ci1zaG91bGRCZVRydWUoIm5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRD
b250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSBpbnN0YW5jZW9mIEhpZ2hs
aWdodFJhbmdlR3JvdXAiKTsKLXNob3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0TWFwIGluc3RhbmNlb2Yg
RnVuY3Rpb24iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIEhpZ2hsaWdodE1hcCIs
ICJmdW5jdGlvbiIpOwotc2hvdWxkQmVUcnVlKCJuZXcgSGlnaGxpZ2h0TWFwKCkgaW5zdGFuY2Vv
ZiBIaWdobGlnaHRNYXAiKTsKLXNob3VsZEJlRGVmaW5lZCgnbmV3IEhpZ2hsaWdodE1hcCgpLnNl
dCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSknKTsKK3Nob3VsZEJlVHJ1ZSgiSGln
aGxpZ2h0ciBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5
cGVvZiBIaWdobGlnaHQiLCAiZnVuY3Rpb24iKTsKK3Nob3VsZEJlVHJ1ZSgibmV3IEhpZ2hsaWdo
dChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9m
ZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkgaW5z
dGFuY2VvZiBIaWdobGlnaHRSZWdpc3RlciIpOworc2hvdWxkQmVUcnVlKCJIaWdobGlnaHRSZWdp
c3RlciBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVv
ZiBIaWdobGlnaHRSZWdpc3RlciIsICJmdW5jdGlvbiIpOworc2hvdWxkQmVUcnVlKCJuZXcgSGln
aGxpZ2h0UmVnaXN0ZXIoKSBpbnN0YW5jZW9mIEhpZ2hsaWdodFJlZ2lzdGVyIik7CitzaG91bGRC
ZURlZmluZWQoJ25ldyBIaWdobGlnaHRSZWdpc3RlcigpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBI
aWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwg
c3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAy
fSkpKScpOwogc2hvdWxkQmVEZWZpbmVkKCdDU1MuaGlnaGxpZ2h0cycpOwotc2hvdWxkQmUoJ0NT
Uy5oaWdobGlnaHRzLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0
OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSknLCAnQ1NT
LmhpZ2hsaWdodHMnKTsKK3Nob3VsZEJlKCdDU1MuaGlnaGxpZ2h0cy5zZXQoImZvby1zdHlsaW5n
IixuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50
LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9m
ZnNldDogMn0pKSknLCAnQ1NTLmhpZ2hsaWdodHMnKTsKIAogPC9zY3JpcHQ+CiA8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdy
b3VwLWV4cGVjdGVkLnR4dAppbmRleCBmYjEzMjE5YmIyZTlkY2ZmNWQxY2U3M2Q3MzBkNzBmYWRj
MTg5YWVmLi5jYTlhNDkwOTQzM2FiMWRjOTA1Yzk2M2I2Zjg5MjE0MTA2ZGI3OTdmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91
cC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACi1QQVNTIGhpZ2hsaWdodFJhbmdlR3JvdXAx
LnNpemUgaXMgMQotUEFTUyBoaWdobGlnaHRSYW5nZUdyb3VwMi5zaXplIGlzIDIKLVBBU1MgaGln
aGxpZ2h0UmFuZ2VHcm91cDMuc2l6ZSBpcyAzCitQQVNTIGhpZ2hsaWdodDEuc2l6ZSBpcyAxCitQ
QVNTIGhpZ2hsaWdodDIuc2l6ZSBpcyAyCitQQVNTIGhpZ2hsaWdodDMuc2l6ZSBpcyAzCiBQQVNT
IENTUy5oaWdobGlnaHRzLnNpemUgaXMgMwogUEFTUyBDU1MuaGlnaGxpZ2h0cy5oYXMoImV4YW1w
bGUtaGlnaGxpZ2h0MSIpIGlzIHRydWUKIFBBU1MgQ1NTLmhpZ2hsaWdodHMuaGFzKCJleGFtcGxl
LWhpZ2hsaWdodDIiKSBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQv
aGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAuaHRtbCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdo
bGlnaHQtbWFwLWFuZC1ncm91cC5odG1sCmluZGV4IDViNGJmYWIwYWNlMzRhYTE1YTVkNDE4Nzc4
MWIwNTU2M2QxNjE1YjAuLmFlNDljZmExOGFlOThjOWJjYzI3NmJiMmQ5NzQwMjJmODAyMmFkMzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91
cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91
cC5odG1sCkBAIC0yMCwyMyArMjAsMjMgQEAKICAgICA8Ym9keT48c3Bhbj5PbmUgPC9zcGFuPjxz
cGFuPnR3byA8L3NwYW4+PHNwYW4+dGhyZWUuLi48L3NwYW4+CiAKICAgICA8c2NyaXB0PgotICAg
ICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChu
ZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNl
dDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAg
ICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJh
bmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDIsIGVuZENvbnRhaW5lcjog
ZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAzfSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdy
b3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwg
c3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA1
fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MiA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDIsIGVuZENv
bnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAzfSkpOworICAgICAgICBoaWdobGln
aHQyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBz
dGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDV9
KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJh
bmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwg
c3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA4
fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMTJ9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJh
bmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5i
b2R5LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZz
ZXQ6IDZ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQzID0gbmV3IEhpZ2hsaWdodChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNCwg
ZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDh9KSk7CisgICAgICAgIGhp
Z2hsaWdodDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZz
ZXQ6IDEyfSkpOworICAgICAgICBoaWdobGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDZ9KSk7CiAgICAgICAgIAogCi0gICAgICAgIENTUy5o
aWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEp
OwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hs
aWdodFJhbmdlR3JvdXAyKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhp
Z2hsaWdodDMiLCBoaWdobGlnaHRSYW5nZUdyb3VwMyk7CisgICAgICAgIENTUy5oaWdobGlnaHRz
LnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0MSk7CisgICAgICAgIENTUy5oaWdo
bGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0Mik7CisgICAgICAgIENT
Uy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0Myk7CiAKLSAg
ICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodFJhbmdlR3JvdXAxLnNpemUiLCIxIik7Ci0gICAgICAg
IHNob3VsZEJlKCJoaWdobGlnaHRSYW5nZUdyb3VwMi5zaXplIiwiMiIpOwotICAgICAgICBzaG91
bGRCZSgiaGlnaGxpZ2h0UmFuZ2VHcm91cDMuc2l6ZSIsIjMiKTsKKyAgICAgICAgc2hvdWxkQmUo
ImhpZ2hsaWdodDEuc2l6ZSIsIjEiKTsKKyAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodDIuc2l6
ZSIsIjIiKTsKKyAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodDMuc2l6ZSIsIjMiKTsKIAogICAg
ICAgICBzaG91bGRCZSgiQ1NTLmhpZ2hsaWdodHMuc2l6ZSIsIjMiKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbCBiL0xh
eW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWwKaW5kZXgg
ODg0ODg3YjgyN2U2OTVhMDg0MDk5NGViYjAwNzE3YTRiMTJhMTkzYS4uODdkOTc5Y2E3MjVkOWVj
ZTAwZDM3NTIzNThkY2VmOTA4MzIwZjg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaGlnaGxp
Z2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9oaWdo
bGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFtZS5odG1sCkBAIC0xMyw2ICsxMyw2IEBACiAK
IDxzY3JpcHQ+CiBsZXQgaGlnaGxpZ2h0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hpZ2hs
aWdodCcpOwotbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91
cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBoaWdobGlnaHQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0s
IGVuZE9mZnNldDogNH0pKTsKLUNTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZSIsIGhpZ2hsaWdo
dFJhbmdlR3JvdXApOworbGV0IGhpZ2hsaWdodCA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogaGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0
OiAwLCBlbmRDb250YWluZXI6IGhpZ2hsaWdodC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9
KSk7CitDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUiLCBoaWdobGlnaHQpOwogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkv
aGlnaGxpZ2h0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hs
aWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwKaW5kZXggNDU3NzE1YTIxMDM1ZTY1ZDE4NTMz
ZGUwMDdkOTFkZTcwMGU2MzI0ZS4uMTU1ZGQ4YjRjZmY0MzM3OWZmZDAxNWY3Y2U3ZjZmZWRiYzky
MDE3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQt
YXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbApAQCAtMTgsMTAgKzE4LDEwIEBA
CiAKICAgICA8c2NyaXB0PgogICAgICAgICBsZXQgaW1hZ2VFbGVtZW50MSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpbWcxJyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9
IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5l
cjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDF9KSk7CisgICAgICAg
IGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRD
b250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxfSkpOwog
CiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdo
bGlnaHRSYW5nZUdyb3VwMSk7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1o
aWdobGlnaHQxIiwgaGlnaGxpZ2h0MSk7CiAKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGln
aHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbAppbmRl
eCBiYWY3MWUwOTZlN2Q3NDRhNDQ0MTczMjVmMGFhYmUyNjJiNjk3OTlhLi41ZDZjNjAxY2MyNTdk
MjZmNDA5N2Y0YWM1NTAyYTVjOTdkMjI5YjFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sCkBAIC0zNCwxNiArMzQsMTYgQEAKICAg
ICAgICAgbGV0IHRleHRFbGVtZW50MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0Mycp
OwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
eHQ0Jyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGV4dDUnKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hs
aWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1l
bnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IHRleHRFbGVt
ZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDd9KSk7CisgICAgICAgIGxldCBoaWdobGln
aHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0
RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogdGV4
dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogN30pKTsKIAotICAgICAgICBsZXQg
aGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRP
ZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRP
ZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgc3RhcnRP
ZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50My5jaGlsZE5vZGVzWzBdLCBlbmRP
ZmZzZXQ6IDV9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQyID0gbmV3IEhpZ2hsaWdodChuZXcg
U3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBd
LCBlbmRPZmZzZXQ6IDR9KSk7CisgICAgICAgIGhpZ2hsaWdodDIuYWRkKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNl
dDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNl
dDogNX0pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxp
Z2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVu
dDMuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVt
ZW50NS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEyfSkpOworICAgICAgICBsZXQgaGlnaGxp
Z2h0MyA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4
dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0
ZXh0RWxlbWVudDUuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxMn0pKTsKIAotICAgICAgICBD
U1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdlR3Jv
dXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBo
aWdobGlnaHRSYW5nZUdyb3VwMik7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBs
ZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDMpOworICAgICAgICBDU1MuaGlnaGxp
Z2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEpOworICAgICAgICBDU1Mu
aGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodDIpOworICAgICAg
ICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodDMpOwog
ICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQt
dGV4dC1jYXNjYWRlLmh0bWwKaW5kZXggY2RlOTdjNGJmZjc0YjdmNzI4ZmYyOTdiN2ViMzg3MDgx
YjY4YjBkZS4uMmY3MGNhMTZiZTNlMzJiM2I4ZGYwNDVlNjUzOTcwNjkwODIyODhkYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdo
dC10ZXh0LWNhc2NhZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhp
Z2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sCkBAIC0yNiwxMCArMjYsMTAg
QEAKICAgICAgICAgbGV0IHRleHRFbGVtZW50MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXh0MScpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RleHQyJyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGV4dDMnKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBuZXcg
SGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0
RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogdGV4
dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogM30pKTsKLSAgICAgICAgaGlnaGxp
Z2h0UmFuZ2VHcm91cC5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVs
ZW1lbnQyLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRF
bGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDl9KSk7CisgICAgICAgIGxldCBoaWdo
bGlnaHQgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRl
eHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiB0
ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAzfSkpOworICAgICAgICBoaWdo
bGlnaHQuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5j
aGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIu
Y2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA5fSkpOwogCi0gICAgICAgIENTUy5oaWdobGlnaHRz
LnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwKTsKKyAgICAgICAg
Q1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodCk7CiAgICAg
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtZGVjb3JhdGlvbnMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQt
dGV4dC1kZWNvcmF0aW9ucy5odG1sCmluZGV4IDI0NGJmYzk4YTJhMDZhODMxNmFkNzNmOTNjNDFh
ZDM5OGVmMzUzOGUuLjkzY2ExNWZjZDk2YjdkYWQxNzUxMmNmYmRmOWI3Mzg2N2E3ODljYTUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdo
bGlnaHQtdGV4dC1kZWNvcmF0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nz
cy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1kZWNvcmF0aW9ucy5odG1sCkBAIC01
MSwxMyArNTEsMTMgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0
UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7
Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdy
b3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9k
ZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9k
ZXNbMF0sIGVuZE9mZnNldDogNn0pKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAz
ID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5l
cjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTN9KSk7CisgICAgICAg
IGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29u
dGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAg
ICAgIGxldCBoaWdobGlnaHQyID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7Cisg
ICAgICAgIGxldCBoaWdobGlnaHQzID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxM30p
KTsKIAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhp
Z2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxl
LWhpZ2hsaWdodDIiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7Ci0gICAgICAgIENTUy5oaWdobGln
aHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDMpOworICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEp
OworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hs
aWdodDIpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIs
IGhpZ2hsaWdodDMpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0LXJlcGFpbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0
LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBhaW50Lmh0bWwKaW5kZXggZDM4Yzk0MGE2MWViYzU4ZWM2
NWQ5YTg2ZTI1MzhhNjc0MzYzYTFjNy4uNDE4OGJlNTdhNTRmMGFlMDQ3NWE5YmI0YzNlYWJlM2Y2
MjEwNTg4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGln
aHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGFpbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwYWludC5odG1sCkBA
IC01LDcgKzUsNyBAQAogICAgIDx0aXRsZT5NdWx0aXBsZSBjdXN0b20gaGlnaGxpZ2h0IHBzZXVk
byBlbGVtZW50cy48L3RpdGxlPgogICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
cmFmdHMuY3Nzd2cub3JnL2Nzcy1oaWdobGlnaHQtYXBpLTEvI2NyZWF0aW5nLWhpZ2hsaWdodHMi
PgogICAgIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImhpZ2hsaWdodC10ZXh0LWV4cGVjdGVkLmh0
bWwiPgotICAgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSGlnaGxpZ2h0IFJhbmdlcyBz
aG91bGQgYmUgYWJsZSB0byBiZSBhZGRlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBIaWdobGlnaHRS
YW5nZUdyb3VwLiI+CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJIaWdobGlnaHQg
UmFuZ2VzIHNob3VsZCBiZSBhYmxlIHRvIGJlIGFkZGVkIGFuZCByZW1vdmVkIGZyb20gdGhlIEhp
Z2hsaWdodC4iPgogICAgIDxzdHlsZT4KICAgICAgICAgOjpoaWdobGlnaHQoZXhhbXBsZS1oaWdo
bGlnaHQpIHsKICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CkBAIC00MiwxMiAr
NDIsMTIgQEAKICAgICAgICAgICAgIGxldCByYW5nZTIgPSBuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KTsKICAg
ICAgICAgICAgIGxldCByYW5nZTMgPSBuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogOCwgZW5kQ29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEyfSk7CiAKLSAgICAgICAgICAg
IGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKHJhbmdl
MSk7Ci0gICAgICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0Iiwg
aGlnaGxpZ2h0UmFuZ2VHcm91cDEpOworICAgICAgICAgICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcg
SGlnaGxpZ2h0KHJhbmdlMSk7CisgICAgICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1w
bGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0MSk7CiAKLSAgICAgICAgICAgIGhpZ2hsaWdodFJhbmdl
R3JvdXAxLmFkZChyYW5nZTIpOwotICAgICAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDEuZGVs
ZXRlKHJhbmdlMSk7Ci0gICAgICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMS5hZGQocmFuZ2Uz
KTsKKyAgICAgICAgICAgIGhpZ2hsaWdodDEuYWRkKHJhbmdlMik7CisgICAgICAgICAgICBoaWdo
bGlnaHQxLmRlbGV0ZShyYW5nZTEpOworICAgICAgICAgICAgaGlnaGxpZ2h0MS5hZGQocmFuZ2Uz
KTsKIAogICAgICAgICAgICAgdmFyIHJlcGFpbnRSZWN0cyA9IHdpbmRvdy5pbnRlcm5hbHMucmVw
YWludFJlY3RzQXNUZXh0KCk7CiAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnN0b3BUcmFj
a2luZ1JlcGFpbnRzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGxhY2UuaHRt
bAppbmRleCA3MDEzYTY2MzM1ZWJlNDYyNWE0NGM3ZTYzY2ZkZjA3YjY3MmNhYjUyLi45MTNjYjVl
NGNmNGE2NjUyNTIwMjA5NGFkYzM2MTQ1MWUwMWE5ZDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdo
bGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwKQEAgLTE4LDEzICsxOCwxMyBAQAogCiAgICAgPHNjcmlw
dD4KICAgICAgICAgbGV0IHRleHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
eHQxJyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRS
YW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNo
aWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNo
aWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMn0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDEgPSBu
ZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50
LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50
LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMn0pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0
UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7
Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7ICAg
ICAgICAKKyAgICAgICAgbGV0IGhpZ2hsaWdodDIgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiAzLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNl
dDogNH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0Mi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENv
bnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkpOyAgICAg
ICAgCiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhp
Z2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxl
LWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdo
dHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodDEpOworICAgICAgICBDU1MuaGln
aGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0Mik7CiAgICAgPC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9j
c3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sCmluZGV4IDRh
YmY0MzAwMjgwYThhODMxOTdlODIyOWQ4NDg4YzgyMzYyMDg2YjUuLmZhNDcyNzUxMmZjMTZlMjc5
ZjNkNjY2NTA0NzYzM2YyNzM0ODQyMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sCkBA
IC0yNiwxOSArMjYsMTkgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGxldCB0ZXh0RWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwotICAgICAgICBsZXQgaGlnaGxp
Z2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uo
e3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDog
MSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9
KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNl
dDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6
IDJ9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdo
dFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQu
Y2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQu
Y2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdy
b3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hp
bGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hp
bGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MiA9IG5l
dyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQu
Y2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQu
Y2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOworICAgICAgICBoaWdobGlnaHQyLmFkZChu
ZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBd
LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBd
LCBlbmRPZmZzZXQ6IDZ9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0g
bmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDcsIGVuZENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA4fSkpOwotICAgICAgICBoaWdo
bGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4
dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDksIGVuZENvbnRhaW5lcjogdGV4
dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxMH0pKTsKLSAgICAgICAgaGlnaGxp
Z2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRF
bGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMiwgZW5kQ29udGFpbmVyOiB0ZXh0
RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEzfSkpOworICAgICAgICBsZXQgaGln
aGxpZ2h0MyA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDcsIGVuZENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA4fSkpOworICAgICAgICBoaWdo
bGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5j
aGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogOSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5j
aGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEwfSkpOworICAgICAgICBoaWdobGlnaHQzLmFkZChu
ZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBd
LCBzdGFydE9mZnNldDogMTIsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgZW5kT2Zmc2V0OiAxM30pKTsKICAgICAgICAgCiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMu
c2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Ci0gICAgICAg
IENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VH
cm91cDIpOwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIs
IGhpZ2hsaWdodFJhbmdlR3JvdXAzKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFt
cGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHQxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0
KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBoaWdobGlnaHQyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdo
dHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHQzKTsKICAgICA8L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411877</attachid>
            <date>2020-10-20 09:47:05 -0700</date>
            <delta_ts>2020-10-20 09:58:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217919-20201020094704.patch</filename>
            <type>text/plain</type>
            <size>75966</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiY2FmMTc5NjJkZGEy
MTRkZTNkZWEzMWE3ODYzMDhjMTMzNWQ1My4uNmZmYzY5ZTJlMjJlM2RjYjY2YzA1ZDc5Yzc0Njc1
MGZlZDFlN2UwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEhp
Z2hsaWdodE1hcCB0byBIaWdobGlnaHRSZWdpc3RlciBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB0
byBIaWdobGlnaHQgdG8gbWF0Y2ggY3VycmVudCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG5ldyBiZWhhdmlvciwg
cmVuYW1lIG9ubHkuCisgICAgICAgIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxp
Z2h0LWFwaS0xLworCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6SGlnaGxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodDo6aW5pdGlhbGl6ZVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGln
aHQ6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0OjphZGRU
b1NldExpa2UpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oLgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGw6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRNYXAuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmluaXRpYWxp
emVNYXBMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9t
TWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OnJlbW92ZSk6CisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oLgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSZWdpc3Rlcjo6bWFwIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMp
OgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBjc3MvRE9NQ1NT
TmFtZXNwYWNlLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpoaWdobGlnaHRSZWdpc3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBk
YXRlSGlnaGxpZ2h0UG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoaWdo
bGlnaHRNYXApOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFy
a2VkVGV4dHNGb3JIaWdobGlnaHRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0
ZUhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFu
Z2VEYXRhLmNwcDoKKwogMjAyMC0xMC0xOSAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTihyMjY1MjMxKTogT3Zlcmxh
eTogbm9kZSBpbmZvIHNvbWV0aW1lcyBkcmF3cyBvbiBvbmUgbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA2ZjEzNjM3MWQ4OWFiYmQ5NmRmYWRiZmYyMTNiN2Y3Nzc4ZDE2MjNhLi40ZmRlY2Iy
NjlkY2JiYzJlZjlkMjA5OThjM2RiZGQ4ZjFjZWM5YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjg5LDggKzI4OSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKLSAgICBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRNYXAuaWRsCi0gICAgTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5pZGwKKyAgICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCisgICAgTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9E
T01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDdhNDU0MWQxN2ZlYjNlMDgyODFlYWFmYzA0MzlmYTBiMmE3NmMyOTAuLmNkY2Iy
OTJmNTFmY2U1YWNlMWM3ODkyOTdkZmJkYzlmZjEyMzA2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI5LDggKzEyOSw4IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCi0kKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiskKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yRGlyZWN0aW9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIyMDg5MWFj
ZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi45NWRkNmU5NmQ0Njg0MjhkZWIxZmJmZGE1NzNkMjI3
YjM2MzBhMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMTEwOCwxMCArMTEwOCwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGFzaENoYW5nZUV2ZW50LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGRyTWV0YWRhdGFU
eXBlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
ZHJNZXRhZGF0YVR5cGUuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIaWdobGlnaHRNYXAuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodE1hcC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGln
aHRSZWdpc3Rlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSGlnaGxpZ2h0UmVnaXN0ZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIa2RmUGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjY5NGYwNjUxYjNlZTY3MmUzYTMwZGRhYmE4MjMwYzU3ZTY5
YjEzNi4uZTRhNTBjNWRiNzNhMjI5ODFlYzQ2NzIyNzJjNWEyOGRmODEwYjFiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTUsOCArMTU1LDggQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNr
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bk9wdGlvbnMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dE1hcC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93K0luZGV4
ZWREYXRhYmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JEaXJl
Y3Rpb24uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU2NWI3YTA0NjkxMGIyM2NmZDE2NTcxOTY0ZTliMzNjNTcyMGE4
NzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHQuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0LmgiCisKKyNpbmNsdWRlICJJRExUeXBl
cy5oIgorI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgorI2luY2x1ZGUgIkpTU3RhdGljUmFuZ2Uu
aCIKKyNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCisjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NT
dHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAi
U3RhdGljUmFuZ2UuaCIKKyNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSGlnaGxpZ2h0OjpIaWdobGlnaHQo
UmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQoreworICAgIGF1dG8gbXlSYW5nZSA9IFdURk1vdmUo
cmFuZ2UpOworICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgpKTsKK30KKworUmVmPEhpZ2hs
aWdodD4gSGlnaGxpZ2h0OjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChyYW5nZSkpOworfQorCit2b2lkIEhpZ2hsaWdodDo6
aW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYgc2V0KQoreworICAgIGZvciAoYXV0byYg
cmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAgICBzZXQuYWRkPElETEludGVyZmFjZTxT
dGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOworfQorCitzdGF0aWMgdm9pZCByZXBhaW50
UmFuZ2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gc3RhcnROb2RlID0g
bWFrZVJlZlB0cigmcmFuZ2Uuc3RhcnRDb250YWluZXIoKSk7CisgICAgYXV0byBlbmROb2RlID0g
bWFrZVJlZlB0cigmcmFuZ2UuZW5kQ29udGFpbmVyKCkpOworICAgIGF1dG8gb3JkZXJpbmcgPSBk
b2N1bWVudE9yZGVyKCpzdGFydE5vZGUuZ2V0KCksICplbmROb2RlLmdldCgpKTsKKyAgICBpZiAo
aXNfZXEob3JkZXJpbmcpKSB7CisgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gc3RhcnROb2Rl
LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoaXNfZ3Qob3JkZXJpbmcpKSB7CisgICAgICAgIHN0YXJ0
Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKKyAgICAgICAgZW5kTm9kZSA9ICZyYW5nZS5z
dGFydENvbnRhaW5lcigpOworICAgIH0KKyAgICBhdXRvIHNpbXBsZVJhbmdlID0gbWFrZVNpbXBs
ZVJhbmdlKG1ha2VCb3VuZGFyeVBvaW50QmVmb3JlTm9kZSgqc3RhcnROb2RlLmdldCgpKSwgbWFr
ZUJvdW5kYXJ5UG9pbnRBZnRlck5vZGUoKmVuZE5vZGUuZ2V0KCkpKTsKKyAgICBpZiAoc2ltcGxl
UmFuZ2UpIHsKKyAgICAgICAgZm9yIChhdXRvJiBub2RlIDogaW50ZXJzZWN0aW5nTm9kZXMoc2lt
cGxlUmFuZ2UudmFsdWUoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gbm9k
ZS5yZW5kZXJlcigpKQorICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZShjb25z
dCBTdGF0aWNSYW5nZSYgcmFuZ2UpCit7CisgICAgcmV0dXJuIG1fcmFuZ2VzRGF0YS5yZW1vdmVG
aXJzdE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJy
ZW50KSB7CisgICAgICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgICAgIHJldHVybiBjdXJy
ZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOworICAgIH0pOworfQorCit2b2lkIEhpZ2hs
aWdodDo6Y2xlYXJGcm9tU2V0TGlrZSgpCit7CisgICAgZm9yIChhdXRvJiBkYXRhIDogbV9yYW5n
ZXNEYXRhKQorICAgICAgICByZXBhaW50UmFuZ2UoZGF0YS0+cmFuZ2UpOworCisgICAgbV9yYW5n
ZXNEYXRhLmNsZWFyKCk7Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjphZGRUb1NldExpa2UoU3RhdGlj
UmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChub3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1h
dGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7
IHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOyB9KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgbV9yYW5nZXNEYXRh
LmFwcGVuZChIaWdobGlnaHRSYW5nZURhdGE6OmNyZWF0ZShyYW5nZSkpOworICAgIAorICAgIHJl
dHVybiB0cnVlOworfQorCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
SGlnaGxpZ2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBkZmE1NjgyMjhjODNiMjBlYmU4YTJmOTM1ZWYwZjVk
ZTc1MzBmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQb3NpdGlvbi5o
IgorI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOworY2xh
c3MgRE9NU2V0QWRhcHRlcjsKK2NsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjsK
K2NsYXNzIFN0YXRpY1JhbmdlOworCisKK3N0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZD
b3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGln
aHRSYW5nZURhdGE+IHsKKyAgICBIaWdobGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1JhbmdlPiYm
IHJhbmdlKQorICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFuZ2UpKQorICAgIHsKKyAgICB9Cisg
ICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShSZWY8U3RhdGljUmFuZ2U+
JiYgcmFuZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRS
YW5nZURhdGEoV1RGTW92ZShyYW5nZSkpKTsKKyAgICB9CisgICAgUmVmPFN0YXRpY1JhbmdlPiBy
YW5nZTsKKyAgICBPcHRpb25hbDxQb3NpdGlvbj4gc3RhcnRQb3NpdGlvbjsKKyAgICBPcHRpb25h
bDxQb3NpdGlvbj4gZW5kUG9zaXRpb247Cit9OworCitjbGFzcyBIaWdobGlnaHQgOiBwdWJsaWMg
UmVmQ291bnRlZDxIaWdobGlnaHQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dD4gY3JlYXRlKFN0YXRpY1JhbmdlJik7CisgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7Cisg
ICAgYm9vbCBhZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmKTsKKyAgICBib29sIHJlbW92ZUZyb21T
ZXRMaWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7CisgICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShE
T01TZXRBZGFwdGVyJik7CisgICAgY29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURhdGE+
PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQorCisgICAgLy8g
RklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgpOwor
cHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1fcmFuZ2VzRGF0
YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8cmRhcjovL3By
b2JsZW0vNTc3NjA2MTQ+CisgICAgZXhwbGljaXQgSGlnaGxpZ2h0KFJlZjxTdGF0aWNSYW5nZT4m
Jik7Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZWI3YTlmMjE2ZTkzMDkxNzYzNjIzNjNkODgxZmZhMzA3
OWRhZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSGlnaGxpZ2h0IHsKKyAgICBjb25z
dHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7CisKKyAgICBzZXRsaWtlPFN0YXRpY1JhbmdlPjsK
KyAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9u
IHN0eWxlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRNYXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzlmZmFjMTg3MGMx
ZjZjMTM1YTA4MDJmYzRlNmMxYzE4YmRhZjA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodE1hcC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgotCi0jaW5jbHVk
ZSAiSURMVHlwZXMuaCIKLSNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIKLSNpbmNsdWRlICJKU0hp
Z2hsaWdodFJhbmdlR3JvdXAuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotdm9pZCBI
aWdobGlnaHRNYXA6OmluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImIG1hcCkKLXsKLSAg
ICBmb3IgKGF1dG8mIGtleVZhbHVlIDogbV9tYXApCi0gICAgICAgIG1hcC5zZXQ8SURMRE9NU3Ry
aW5nLCBJRExJbnRlcmZhY2U8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+KGtleVZhbHVlLmtleSwga2V5
VmFsdWUudmFsdWUpOwotfQotCi12b2lkIEhpZ2hsaWdodE1hcDo6c2V0RnJvbU1hcExpa2UoU3Ry
aW5nJiYga2V5LCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJiB2YWx1ZSkKLXsKLSAgICBtX21h
cC5zZXQoV1RGTW92ZShrZXkpLCBXVEZNb3ZlKHZhbHVlKSk7Ci19Ci0KLXZvaWQgSGlnaGxpZ2h0
TWFwOjpjbGVhcigpCi17Ci0gICAgbV9tYXAuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRN
YXA6OnJlbW92ZShjb25zdCBTdHJpbmcmIGtleSkKLXsKLSAgICByZXR1cm4gbV9tYXAucmVtb3Zl
KGtleSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodE1hcC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0TWFwLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwOWNlOTc5MjE1MGZj
NzcxYjhlODkxNDNhMThjMjQzYTY4OGIwNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0TWFwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCi0jaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIERPTU1hcEFkYXB0ZXI7Ci1jbGFzcyBET01TdHJpbmc7Ci1jbGFz
cyBIaWdobGlnaHRSYW5nZUdyb3VwOwotCi1jbGFzcyBIaWdobGlnaHRNYXAgOiBwdWJsaWMgUmVm
Q291bnRlZDxIaWdobGlnaHRNYXA+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dE1hcD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRNYXApOyB9Ci0K
LSAgICB2b2lkIGluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImKTsKLSAgICB2b2lkIHNl
dEZyb21NYXBMaWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJik7Ci0gICAg
dm9pZCBjbGVhcigpOwotICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOwotICAgIAotICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+JiBtYXAoKSBj
b25zdCB7IHJldHVybiBtX21hcDsgfQotICAgIAotcHJpdmF0ZToKLSAgICBIaWdobGlnaHRNYXAo
KSA9IGRlZmF1bHQ7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGlnaHRSYW5nZUdyb3Vw
Pj4gbV9tYXA7Ci19OwotCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRNYXAuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTI1
MWYwNThhODRkMjM0OWVhNGVlNzg4M2Q0ZWE4YThiYTgyZTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodE1hcC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLAotICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIEhp
Z2hsaWdodE1hcCB7Ci0gICAgY29uc3RydWN0b3IoKTsKLQotICAgIG1hcGxpa2U8RE9NU3RyaW5n
LCBIaWdobGlnaHRSYW5nZUdyb3VwPjsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZGQ4NzI5NmNlNzVlYjk5MzE3MDI4NGU0YjEyYWI5YThmOTdlNjM2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgotCi0jaW5jbHVkZSAiSURMVHlwZXMu
aCIKLSNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKLSNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgi
Ci0jaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgotI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgotI2luY2x1ZGUgIlN0
YXRpY1JhbmdlLmgiCi0jaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSA8d3Rm
L1JlZi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUhpZ2hsaWdodFJhbmdlR3JvdXA6Okhp
Z2hsaWdodFJhbmdlR3JvdXAoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQotewotICAgIGF1dG8g
bXlSYW5nZSA9IFdURk1vdmUocmFuZ2UpOwotICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgp
KTsKLX0KLQotUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNy
ZWF0ZShTdGF0aWNSYW5nZSYgcmFuZ2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGln
aGxpZ2h0UmFuZ2VHcm91cChyYW5nZSkpOwotfQotCi12b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6
OmluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKLXsKLSAgICBmb3IgKGF1dG8m
IHJhbmdlRGF0YSA6IG1fcmFuZ2VzRGF0YSkKLSAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8
U3RhdGljUmFuZ2U+PihyYW5nZURhdGEtPnJhbmdlKTsKLX0KLQotc3RhdGljIHZvaWQgcmVwYWlu
dFJhbmdlKGNvbnN0IFN0YXRpY1JhbmdlJiByYW5nZSkKLXsKLSAgICBhdXRvKiBzdGFydE5vZGUg
PSAmcmFuZ2Uuc3RhcnRDb250YWluZXIoKTsKLSAgICBhdXRvKiBlbmROb2RlID0gJnJhbmdlLmVu
ZENvbnRhaW5lcigpOwotICAgIGF1dG8gb3JkZXJpbmcgPSBkb2N1bWVudE9yZGVyKCpzdGFydE5v
ZGUsICplbmROb2RlKTsKLSAgICBpZiAoaXNfZXEob3JkZXJpbmcpKSB7Ci0gICAgICAgIGlmIChh
dXRvIHJlbmRlcmVyID0gc3RhcnROb2RlLT5yZW5kZXJlcigpKQotICAgICAgICAgICAgcmVuZGVy
ZXItPnJlcGFpbnQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXNfZ3Qob3Jk
ZXJpbmcpKSB7Ci0gICAgICAgIHN0YXJ0Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKLSAg
ICAgICAgZW5kTm9kZSA9ICZyYW5nZS5zdGFydENvbnRhaW5lcigpOwotICAgIH0KLQotICAgIGF1
dG8gbm9kZSA9IHN0YXJ0Tm9kZTsKLSAgICB3aGlsZSAobm9kZSAhPSBlbmROb2RlKSB7Ci0gICAg
ICAgIGlmIChhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJl
bmRlcmVyLT5yZXBhaW50KCk7Ci0gICAgICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpu
b2RlKTsKLSAgICB9Ci19Ci0KLWJvb2wgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlRnJvbVNl
dExpa2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIHJldHVybiBtX3Jhbmdlc0Rh
dGEucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VE
YXRhPiYgY3VycmVudCkgewotICAgICAgICByZXBhaW50UmFuZ2UocmFuZ2UpOwotICAgICAgICBy
ZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsKLSAgICB9KTsKLX0KLQot
dm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21TZXRMaWtlKCkKLXsKLSAgICBmb3Ig
KGF1dG8mIGRhdGEgOiBtX3Jhbmdlc0RhdGEpCi0gICAgICAgIHJlcGFpbnRSYW5nZShkYXRhLT5y
YW5nZSk7Ci0KLSAgICBtX3Jhbmdlc0RhdGEuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRS
YW5nZUdyb3VwOjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIGlmIChu
b3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxI
aWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7IHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdl
LmdldCgpID09IHJhbmdlOyB9KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlcGFpbnRS
YW5nZShyYW5nZSk7Ci0gICAgbV9yYW5nZXNEYXRhLmFwcGVuZChIaWdobGlnaHRSYW5nZURhdGE6
OmNyZWF0ZShyYW5nZSkpOwotICAgIAotICAgIHJldHVybiB0cnVlOwotfQotCi19Ci0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ4MWU5ZWY3MjMzNDAzZmMzMzg1
ZTE0NjMxZmNiMGE5YzVlYTYwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5n
ZUdyb3VwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlBvc2l0aW9u
LmgiCi0jaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247Ci1j
bGFzcyBET01TZXRBZGFwdGVyOwotY2xhc3MgU3RhdGljUmFuZ2U7Ci1jbGFzcyBQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb247Ci0KLXN0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZD
b3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGln
aHRSYW5nZURhdGE+IHsKLSAgICAKLSAgICBIaWdobGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1Jh
bmdlPiYmIHJhbmdlKQotICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFuZ2UpKQotICAgIHsKLSAg
ICB9Ci0gICAgCi0gICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShSZWY8
U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIaWdobGlnaHRSYW5nZURhdGEoV1RGTW92ZShyYW5nZSkpKTsKLSAgICB9Ci0gICAgCi0gICAg
UmVmPFN0YXRpY1JhbmdlPiByYW5nZTsKLSAgICBPcHRpb25hbDxQb3NpdGlvbj4gc3RhcnRQb3Np
dGlvbjsKLSAgICBPcHRpb25hbDxQb3NpdGlvbj4gZW5kUG9zaXRpb247Ci19OwotCi1jbGFzcyBI
aWdobGlnaHRSYW5nZUdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VHcm91
cD4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gY3JlYXRl
KFN0YXRpY1JhbmdlJik7Ci0gICAgCi0gICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7Ci0gICAg
Ym9vbCBhZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmKTsKLSAgICBib29sIHJlbW92ZUZyb21TZXRM
aWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7Ci0gICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShET01T
ZXRBZGFwdGVyJik7Ci0gICAgCi0gICAgY29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURh
dGE+PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQotCi0gICAg
Ly8gRklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgp
OwotICAgIAotcHJpdmF0ZToKLSAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1f
cmFuZ2VzRGF0YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8
cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+Ci0gICAgZXhwbGljaXQgSGlnaGxpZ2h0UmFuZ2VHcm91
cChSZWY8U3RhdGljUmFuZ2U+JiYpOwotfTsKLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjVhYTQxZWE2NDVjZTY0ZTdjMDY5NTQyN2U0ZjZjOTBh
YWRlMDA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBFbmFibGVk
QXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAot
ICAgIEV4cG9zZWQ9V2luZG93Ci1dIGludGVyZmFjZSBIaWdobGlnaHRSYW5nZUdyb3VwIHsKLSAg
ICBjb25zdHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7Ci0KLSAgICBzZXRsaWtlPFN0YXRpY1Jh
bmdlPjsKLSAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xh
cmF0aW9uIHN0eWxlOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTIwYjg2OTM0MjVjYmNh
YTA2Y2NiMTQ0ZmUwMmQzY2Y2Mjg1ZThiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIaWdo
bGlnaHRSZWdpc3Rlci5oIgorCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RP
TU1hcExpa2UuaCIKKyNpbmNsdWRlICJKU0hpZ2hsaWdodC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjppbml0aWFsaXplTWFwTGlrZShET01N
YXBBZGFwdGVyJiBtYXApCit7CisgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IG1fbWFwKQorICAg
ICAgICBtYXAuc2V0PElETERPTVN0cmluZywgSURMSW50ZXJmYWNlPEhpZ2hsaWdodD4+KGtleVZh
bHVlLmtleSwga2V5VmFsdWUudmFsdWUpOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjpz
ZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGlnaHQ+JiYgdmFsdWUpCit7Cisg
ICAgbV9tYXAuc2V0KFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1ZSkpOworfQorCit2b2lkIEhp
Z2hsaWdodFJlZ2lzdGVyOjpjbGVhcigpCit7CisgICAgbV9tYXAuY2xlYXIoKTsKK30KKworYm9v
bCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3ZlKGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIHJl
dHVybiBtX21hcC5yZW1vdmUoa2V5KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA1MzBm
ODM2MjNhMzMzYjIwY2ZhNmZkNWRjMGY1NjMzNDQxMDQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJI
aWdobGlnaHQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NTWFwQWRhcHRlcjsK
K2NsYXNzIERPTVN0cmluZzsKK2NsYXNzIEhpZ2hsaWdodDsKKworY2xhc3MgSGlnaGxpZ2h0UmVn
aXN0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmVnaXN0ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSGlnaGxpZ2h0UmVnaXN0ZXIpOyB9CisKKyAgICB2b2lkIGluaXRpYWxpemVNYXBM
aWtlKERPTU1hcEFkYXB0ZXImKTsKKyAgICB2b2lkIHNldEZyb21NYXBMaWtlKFN0cmluZyYmLCBS
ZWY8SGlnaGxpZ2h0PiYmKTsKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgYm9vbCByZW1vdmUoY29u
c3QgU3RyaW5nJik7CisgICAgCisgICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGln
aHQ+PiYgbWFwKCkgY29uc3QgeyByZXR1cm4gbV9tYXA7IH0KKyAgICAKK3ByaXZhdGU6CisgICAg
SGlnaGxpZ2h0UmVnaXN0ZXIoKSA9IGRlZmF1bHQ7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxI
aWdobGlnaHQ+PiBtX21hcDsKK307CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNmNh
YzYzYmQxNjg2Mzk0MDJhNmFhNzIzMTg4ZWZhNGY3ZmI2ODAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5pZGwKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hs
aWdodEFQSSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2lu
ZG93CitdIGludGVyZmFjZSBIaWdobGlnaHRSZWdpc3RlciB7CisgICAgY29uc3RydWN0b3IoKTsK
KworICAgIG1hcGxpa2U8RE9NU3RyaW5nLCBIaWdobGlnaHQ+OworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggOTFjNTg3OTg1ZTQwOWNlYjIxMzFiODhhMWNjNGJmN2NhN2Y1YzNlZC4uY2U3MTM3OGE0ZTg2
NTVlM2VmYWI1MTAwNmI5MmI5ZjVmMzIyZjZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTY0LDggKzY0
LDggQEAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbkNvb3JkaW5hdGVzLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9s
b2NhdGlvbi5jcHAKLU1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKLU1vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCitNb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAKK01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5jcHAKIE1vZHVs
ZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAKIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5j
cHAKQEAgLTMwNTIsOCArMzA1Miw4IEBAIEpTSFRNTFVua25vd25FbGVtZW50LmNwcAogSlNIVE1M
VmlkZW9FbGVtZW50LmNwcAogSlNIYXNoQ2hhbmdlRXZlbnQuY3BwCiBKU0hkck1ldGFkYXRhVHlw
ZS5jcHAKLUpTSGlnaGxpZ2h0TWFwLmNwcAotSlNIaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorSlNI
aWdobGlnaHRSZWdpc3Rlci5jcHAKK0pTSGlnaGxpZ2h0LmNwcAogSlNIaXN0b3J5LmNwcAogSlNI
a2RmUGFyYW1zLmNwcAogSlNIbWFjS2V5UGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUzOWI3MWM2MTA1ZGY0Njdi
M2IzMGY1MjI5YjdkMGQwNTI5N2I3NWIuLjM5ODI2NjkzNjE3ZGNiZTk0NWQyMTZiNmEwNGUzMjFj
Y2IxNTU4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTc5NDMsMTIgKzc5NDMsMTIgQEAKIAkJNDREOERBOTgxMzk1NDVCRTAw
MzM3Qjc1IC8qIFNWR01QYXRoRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZH
TVBhdGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDREOERBOUEx
Mzk1NDVDRDAwMzM3Qjc1IC8qIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ0RTM0OUY3MjQ2RjREQzcwMDY4NDc5QyAvKiBMaWJXZWJSVENFbnVt
VHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ0VudW1U
cmFpdHMuaDsgcGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENFbnVtVHJhaXRzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTRDMjM2OTEyOEEwMDlCNDg0NyAvKiBIaWdobGln
aHRNYXAuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhpZ2hsaWdodE1hcC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdo
bGlnaHRSYW5nZUdyb3VwLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIaWdobGlnaHRSYW5n
ZUdyb3VwLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTAyMzZBNTZB
QzAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHRNYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTEyMzZBNUM4RDAwOUI0ODQ3
IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU1MjIzNkE2NjdGMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hsaWdodE1h
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTU0MjM2QTY2QTEwMDlC
NDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hs
aWdodFJhbmdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NEU4OEU0
QzIzNjkxMjhBMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lzdGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDRFODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSGlnaGxpZ2h0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lzdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0RTg4RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTUyMjM2
QTY2N0YwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIaWdobGlnaHRSZWdpc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0
RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSGlnaGxpZ2h0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUwQ0VCRUUx
NTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGFiZWxhYmxlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ1MENFQkVGMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhYmVsYWJsZUVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUxMjUwMjAxNURDRTM3RDAwMkY4NEUy
IC8qIFNwaW5CdXR0b25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwaW5CdXR0b25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE5MzY5LDEyICsxOTM2OSwxMiBAQAogCQk0NEU4OEU0NzIzNjhERjBGMDA5QjQ4NDcgLyog
aGlnaGxpZ2h0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk0NEU4OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmNwcCAqLywKLQkJCQk0
NEU4OEU1MDIzNkE1NkFDMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmggKi8sCi0JCQkJNDRFODhF
NEMyMzY5MTI4QTAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5pZGwgKi8sCi0JCQkJNDRFODhFNTQy
MzZBNjZBMTAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuY3BwICovLAotCQkJCTQ0RTg4
RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmggKi8sCi0JCQkJNDRF
ODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuaWRsICovLAorCQkJ
CTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHQuY3BwICovLAorCQkJCTQ0RTg4
RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLywKKwkJCQk0NEU4OEU0RDIzNjkx
MjhCMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmlkbCAqLywKKwkJCQk0NEU4OEU1MjIzNkE2NjdGMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwICovLAorCQkJCTQ0RTg4RTUwMjM2QTU2QUMw
MDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovLAorCQkJCTQ0RTg4RTRDMjM2OTEyOEEw
MDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5pZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGhp
Z2hsaWdodDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggOTcwMmNjNTk3MmU5OTU3
OTZiMTc4NGI2OWIwMGI2MjcxNzFmNDQzNy4uMjBkOTVlZTU0ZTA0NzRmODgyMzM2M2ZkOWM1YjE1
ZTY2NzdkYzQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaApAQCAtMTI5LDggKzEyOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBtYWNybyhHUFVUZXh0dXJlVmlldykgXAogICAgIG1hY3JvKEdQVVVuY2FwdHVyZWRFcnJvckV2
ZW50KSBcCiAgICAgbWFjcm8oR1BVVmFsaWRhdGlvbkVycm9yKSBcCi0gICAgbWFjcm8oSGlnaGxp
Z2h0TWFwKSBcCi0gICAgbWFjcm8oSGlnaGxpZ2h0UmFuZ2VHcm91cCkgXAorICAgIG1hY3JvKEhp
Z2hsaWdodFJlZ2lzdGVyKSBcCisgICAgbWFjcm8oSGlnaGxpZ2h0KSBcCiAgICAgbWFjcm8oSFRN
TEF0dGFjaG1lbnRFbGVtZW50KSBcCiAgICAgbWFjcm8oSFRNTEF1ZGlvRWxlbWVudCkgXAogICAg
IG1hY3JvKEhUTUxEaWFsb2dFbGVtZW50KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3Bh
Y2UuY3BwCmluZGV4IDE5ZTNkZDYxZWE5ZDlhYTA5NzU2YzczNDY1NWQ0ZGM3NjcwNjg3MWIuLmQ1
OTI1NzBiODYzMTZkODMxZmI1OTdhMjkxNGI5NzVmYmIzZDQwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9ET01DU1NOYW1lc3BhY2UuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQ1NTUGFy
c2VyLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lz
dGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODks
OSArODksOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUoY29uc3QgU3RyaW5nJiBp
ZGVudCkKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCi1IaWdobGlnaHRNYXAm
IERPTUNTU05hbWVzcGFjZTo6aGlnaGxpZ2h0cyhEb2N1bWVudCYgZG9jdW1lbnQpCitIaWdobGln
aHRSZWdpc3RlciYgRE9NQ1NTTmFtZXNwYWNlOjpoaWdobGlnaHRzKERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQuaGlnaGxpZ2h0TWFwKCk7CisgICAgcmV0dXJuIGRv
Y3VtZW50LmhpZ2hsaWdodFJlZ2lzdGVyKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NO
YW1lc3BhY2UuaAppbmRleCAzMDQ3ZTUyNzk4NDQ2Y2Q3NzA2Njc1NTA5NDE5OWEzMWVjMDVlYzdm
Li44NmQyN2ZlOWZmNzE3N2IzZTRhY2RjYmU0ZTllNGY1ODdhZDA0MWFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTUNTU05hbWVzcGFjZS5oCkBAIC0zNywxNSArMzcsMTUgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBIaWdobGlnaHRNYXA7Ci1jbGFzcyBIaWdo
bGlnaHRSYW5nZUdyb3VwOworY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXI7CitjbGFzcyBIaWdobGln
aHQ7CiAKIGNsYXNzIERPTUNTU05hbWVzcGFjZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERP
TUNTU05hbWVzcGFjZT4sIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxET01DU1NOYW1lc3BhY2U+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0cyhEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHksIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBjb25kaXRpb25UZXh0KTsKICAgICBzdGF0aWMg
U3RyaW5nIGVzY2FwZShjb25zdCBTdHJpbmcmIGlkZW50KTsKLSAgICBzdGF0aWMgSGlnaGxpZ2h0
TWFwJiBoaWdobGlnaHRzKERvY3VtZW50Jik7CisgICAgc3RhdGljIEhpZ2hsaWdodFJlZ2lzdGVy
JiBoaWdobGlnaHRzKERvY3VtZW50Jik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NO
YW1lc3BhY2UuaWRsCmluZGV4IDU2MzU1OTM1NmZjNmVhNTFhOGExYmNjMjIwMjEzZjNkODA4MmMw
NzcuLjM0ZjNkNzI0MzVkMzU1YTJkYTA2YWI2NTc3NTUxNmU1ZWRmNmNlMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCkBAIC0zNSw1ICszNSw1IEBACiAgICAgW0NhbGxX
aXRoPURvY3VtZW50XSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0cyhET01TdHJpbmcgcHJvcGVydHks
IERPTVN0cmluZyB2YWx1ZSk7CiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgYm9vbGVh
biBzdXBwb3J0cyhET01TdHJpbmcgY29uZGl0aW9uVGV4dCk7CiAgICAgc3RhdGljIERPTVN0cmlu
ZyBlc2NhcGUoRE9NU3RyaW5nIGlkZW50KTsKLSAgICBbRW5hYmxlZEF0UnVudGltZT1IaWdobGln
aHRBUEksIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIEhpZ2hs
aWdodE1hcCBoaWdobGlnaHRzOworICAgIFtFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwg
Q2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgSGlnaGxpZ2h0UmVn
aXN0ZXIgaGlnaGxpZ2h0czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwODUzNTg5
ZWFiYWMzNWU3NmFiYTZmMjgyYWU1NzZjNTkyZTFlOGU1Li42ZTVmMDFkOWMzMmZkMjI2NDVhMzJi
NDAwNjBjYjA0YjFiMTk3NjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExMSw3ICsx
MTEsNyBAQAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBQYXJz
ZXJzLmgiCiAjaW5jbHVkZSAiSGFzaENoYW5nZUV2ZW50LmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0
TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJIaXN0b3J5
LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIklkbGVDYWxsYmFja0Nv
bnRyb2xsZXIuaCIKQEAgLTc5Miw4ICs3OTIsOCBAQCB2b2lkIERvY3VtZW50Ojpjb21tb25UZWFy
ZG93bigpCiAKICAgICBjbGVhclNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcigpOwogICAgIAot
ICAgIGlmIChtX2hpZ2hsaWdodE1hcCkKLSAgICAgICAgbV9oaWdobGlnaHRNYXAtPmNsZWFyKCk7
CisgICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1faGlnaGxpZ2h0UmVnaXN0
ZXItPmNsZWFyKCk7CiAKICAgICBtX3BlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3QgPSBudWxs
cHRyOwogCkBAIC0yNzY3LDE4ICsyNzY3LDE4IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gRG9jdW1l
bnQ6OmNyZWF0ZVBhcnNlcigpCiAgICAgcmV0dXJuIFhNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUo
KnRoaXMsIHZpZXcoKSk7CiB9CiAKLUhpZ2hsaWdodE1hcCYgRG9jdW1lbnQ6OmhpZ2hsaWdodE1h
cCgpCitIaWdobGlnaHRSZWdpc3RlciYgRG9jdW1lbnQ6OmhpZ2hsaWdodFJlZ2lzdGVyKCkKIHsK
LSAgICBpZiAoIW1faGlnaGxpZ2h0TWFwKQotICAgICAgICBtX2hpZ2hsaWdodE1hcCA9IEhpZ2hs
aWdodE1hcDo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuICptX2hpZ2hsaWdodE1hcDsKKyAgICBpZiAo
IW1faGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1faGlnaGxpZ2h0UmVnaXN0ZXIgPSBIaWdo
bGlnaHRSZWdpc3Rlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX2hpZ2hsaWdodFJlZ2lzdGVy
OwogfQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKQogewogICAg
IFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7Ci0gICAgaWYg
KG1faGlnaGxpZ2h0TWFwKSB7Ci0gICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogbV9oaWdo
bGlnaHRNYXAtPm1hcCgpKSB7CisgICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0ZXIpIHsKKyAgICAg
ICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodFJlZ2lzdGVyLT5tYXAoKSkgewog
ICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdl
c0RhdGEoKSkgewogICAgICAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0YXJ0UG9zaXRpb24g
JiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGRkODgzYjJhMDdjNTYyMzZlY2NmZDUwNDVhYWU2MDZi
Mzk2ZTg3NGYuLjkzZmI3NDhhN2Y5NTIzMWQ1ZDY5OGVhZTQwMjBhM2U5MTM1YjYwMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xNTYsNyArMTU2LDcgQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVu
dDsKIGNsYXNzIEhUTUxNYXBFbGVtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNz
IEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBIaWdobGlnaHRNYXA7CitjbGFzcyBIaWdobGlnaHRS
ZWdpc3RlcjsKIGNsYXNzIEhpdFRlc3RMb2NhdGlvbjsKIGNsYXNzIEhpdFRlc3RSZXF1ZXN0Owog
Y2xhc3MgSGl0VGVzdFJlc3VsdDsKQEAgLTE1NjksNyArMTU2OSw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciYgdGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXIoKTsKICAgICBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciogdGV4dE1hbmlw
dWxhdGlvbkNvbnRyb2xsZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1fdGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXIuZ2V0KCk7IH0KICAgICAgICAgCi0gICAgSGlnaGxpZ2h0TWFwJiBoaWdobGlnaHRN
YXAoKTsKKyAgICBIaWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKICAgICB2
b2lkIHVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3NDb250ZW50
SmF2YVNjcmlwdCgpIGNvbnN0OwpAQCAtMTkyNCw3ICsxOTI0LDcgQEAgcHJpdmF0ZToKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VGV4dEF1dG9TaXppbmc+IG1fdGV4dEF1dG9TaXppbmc7CiAjZW5kaWYK
ICAgICAgICAgCi0gICAgUmVmUHRyPEhpZ2hsaWdodE1hcD4gbV9oaWdobGlnaHRNYXA7CisgICAg
UmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBtX2hpZ2hsaWdodFJlZ2lzdGVyOwogCiAgICAgVGlt
ZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDY1ZTMyYTQ4NTBkNjdjY2QwMDRlMmE3NTZi
MGYxYjdkNzhkMWJjYTcuLjM5ZWIxNTEwOWFhNmMwMmE2ODZiZTA0ZGUwY2RkNmIwMzdjOGZjOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAgLTMzLDcg
KzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rp
b24uaCIKLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCisjaW5jbHVkZSAiSGlnaGxp
Z2h0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5j
bHVkZSAiUmFuZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNw
cAppbmRleCBjYmMwM2E3ZGI5OGMxMTUzNmIzNzEyNzNhZmE4YTM1MDM2ZDE2NzU2Li40NzFiNWU3
M2RmNTdkZjc4NTA1NDQwMDhhMDI1NDE4MTQ5MDIyNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIaWdobGlnaHRE
YXRhLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVn
aXN0ZXIuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94U3R5bGUuaCIKQEAgLTEwNTEsNyArMTA1MSw3
IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFya2VkVGV4dHNG
b3JIaWdobGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgYXV0byYgcGFyZW50UmVuZGVyZXIgPSBw
YXJlbnQoKS0+cmVuZGVyZXIoKTsKICAgICBhdXRvJiBwYXJlbnRTdHlsZSA9IHBhcmVudFJlbmRl
cmVyLnN0eWxlKCk7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGlnaHREYXRhOwotICAgIGZvciAo
YXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIoKS5kb2N1bWVudCgpLmhpZ2hsaWdodE1hcCgpLm1h
cCgpKSB7CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiByZW5kZXJlcigpLmRvY3VtZW50KCku
aGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewogICAgICAgICBhdXRvIHJlbmRlclN0eWxlID0g
cGFyZW50UmVuZGVyZXIuZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGln
aHQsIGhpZ2hsaWdodC5rZXkgfSwgJnBhcmVudFN0eWxlKTsKICAgICAgICAgaWYgKCFyZW5kZXJT
dHlsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggYTcyZjFlZDc3OTcyYTQ0NzYxZGEwNzUxZmY0MjdhNTJh
NjBiOWNiMy4uM2NlZTAxZjQ1OTUxYzE1OWE5ZGEyODMzMWE3ZTYwY2RmZTdlNjQ3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJ
ZGlvbXMuaCIKICNpbmNsdWRlICJIaWdobGlnaHREYXRhLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0
TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJJbmxpbmVF
bGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgiCkBAIC0xNTQsNyArMTU0
LDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGRyYWdnZWRDb250ZW50Q29udGFpbnNSZXBsYWNlZEVs
ZW1lbnQoY29uc3QgVmVjdG9yPFJlbmRlcmVkRG8KIENvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxj
dWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0CiB7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGln
aHREYXRhOwotICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdobGlnaHRN
YXAoKS5tYXAoKSkgeworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdo
bGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDog
aGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKICAgICAgICAgICAgIGlmICghaGlnaGxp
Z2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdl
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNw
cAppbmRleCBmNDk3MTY5ZTI3YmQ0YTcyMDcxNjM3ZjYwYzBkMWZmOTFhNTcxNzk4Li5iZTY3ZTYw
ZTc1OTkyNGVjZmFkZGVlOTJlNmM3OWQ1MjNlNmU3ZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgotI2luY2x1
ZGUgIkhpZ2hsaWdodFJhbmdlR3JvdXAuaCIKKyNpbmNsdWRlICJIaWdobGlnaHQuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNpbmNsdWRlICJSYW5nZS5o
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZhY2Vz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNl
cy1leHBlY3RlZC50eHQKaW5kZXggYjMwNTFjM2ZkM2ZhNjMzYzBjNjc1YjdkNDlmN2ZmZTdhNzMy
YzgyOS4uZjlmMzI5ZDA2MWIzZTNhZTY4ZDExNWIwZWJlNDg5YzdlZDk3MWM5NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMtZXhwZWN0
ZWQudHh0CkBAIC0xLDE4ICsxLDE4IEBACi1UZXN0cyB0aGUgaW50ZXJmYWNlcyBvZiB0aGUgaGln
aGxpZ2h0IEFQSSwgd2hpY2ggaW5jbHVkZSBIaWdobGlnaHRSYW5nZUdyb3VwLCBIaWdobGlnaHRN
YXAsIGFuZCBleHRlbnNpb25zIHRvIHRoZSBDU1MgbmFtZXNwYWNlLgorVGVzdHMgdGhlIGludGVy
ZmFjZXMgb2YgdGhlIGhpZ2hsaWdodCBBUEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0LCBIaWdo
bGlnaHRSZWdpc3RlciwgYW5kIGV4dGVuc2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2UuCiAKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCiBUZXN0aW5nIEhpZ2hsaWdodDoKLVBBU1MgSGln
aGxpZ2h0UmFuZ2VHcm91cCBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKLVBBU1MgdHlwZW9m
IEhpZ2hsaWdodFJhbmdlR3JvdXAgaXMgImZ1bmN0aW9uIgotUEFTUyBuZXcgSGlnaGxpZ2h0UmFu
Z2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBz
dGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9
KSkgaW5zdGFuY2VvZiBIaWdobGlnaHRSYW5nZUdyb3VwIGlzIHRydWUKLVBBU1MgSGlnaGxpZ2h0
TWFwIGluc3RhbmNlb2YgRnVuY3Rpb24gaXMgdHJ1ZQotUEFTUyB0eXBlb2YgSGlnaGxpZ2h0TWFw
IGlzICJmdW5jdGlvbiIKLVBBU1MgbmV3IEhpZ2hsaWdodE1hcCgpIGluc3RhbmNlb2YgSGlnaGxp
Z2h0TWFwIGlzIHRydWUKLVBBU1MgbmV3IEhpZ2hsaWdodE1hcCgpLnNldCgiZm9vLXN0eWxpbmci
LG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIGVuZE9mZnNldDogMn0pKSkgaXMgZGVmaW5lZC4KK1BBU1MgSGlnaGxpZ2h0IGluc3RhbmNl
b2YgRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyB0eXBlb2YgSGlnaGxpZ2h0IGlzICJmdW5jdGlvbiIK
K1BBU1MgbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBl
bmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHQgaXMgdHJ1ZQorUEFTUyBIaWdobGln
aHRSZWdpc3RlciBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKK1BBU1MgdHlwZW9mIEhpZ2hs
aWdodFJlZ2lzdGVyIGlzICJmdW5jdGlvbiIKK1BBU1MgbmV3IEhpZ2hsaWdodFJlZ2lzdGVyKCkg
aW5zdGFuY2VvZiBIaWdobGlnaHRSZWdpc3RlciBpcyB0cnVlCitQQVNTIG5ldyBIaWdobGlnaHRS
ZWdpc3RlcigpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRh
aW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBkZWZpbmVkLgogUEFTUyBD
U1MuaGlnaGxpZ2h0cyBpcyBkZWZpbmVkLgotUEFTUyBDU1MuaGlnaGxpZ2h0cy5zZXQoImZvby1z
dHlsaW5nIixuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkpIGlzIENTUy5oaWdobGlnaHRzCitQQVNTIENTUy5o
aWdobGlnaHRzLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRh
aW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBDU1MuaGlnaGxpZ2h0cwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy5odG1sCmluZGV4IDU4ZjQ5
NGNhMmZkMTlhYjc0Zjg5Yzg5ODA5YTRlYmVlMGFmN2ZhZGUuLjZmYmE1ZDgyZDFmZTI1YjA4OTg5
Y2NkOWFmMDA3ODEwZWExMWYwYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9o
aWdobGlnaHQtaW50ZXJmYWNlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdo
bGlnaHQtaW50ZXJmYWNlcy5odG1sCkBAIC00LDE4ICs0LDE4IEBACiA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotZGVzY3JpcHRpb24o
IlRlc3RzIHRoZSBpbnRlcmZhY2VzIG9mIHRoZSBoaWdobGlnaHQgQVBJLCB3aGljaCBpbmNsdWRl
IEhpZ2hsaWdodFJhbmdlR3JvdXAsIEhpZ2hsaWdodE1hcCwgYW5kIGV4dGVuc2lvbnMgdG8gdGhl
IENTUyBuYW1lc3BhY2UuIik7CitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGludGVyZmFjZXMgb2Yg
dGhlIGhpZ2hsaWdodCBBUEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0LCBIaWdobGlnaHRSZWdp
c3RlciwgYW5kIGV4dGVuc2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2UuIik7CiAKIGRlYnVnKCJU
ZXN0aW5nIEhpZ2hsaWdodDoiKTsKLXNob3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0UmFuZ2VHcm91cCBp
bnN0YW5jZW9mIEZ1bmN0aW9uIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdo
bGlnaHRSYW5nZUdyb3VwIiwgImZ1bmN0aW9uIik7Ci1zaG91bGRCZVRydWUoIm5ldyBIaWdobGln
aHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNl
dDogMn0pKSBpbnN0YW5jZW9mIEhpZ2hsaWdodFJhbmdlR3JvdXAiKTsKLXNob3VsZEJlVHJ1ZSgi
SGlnaGxpZ2h0TWFwIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygidHlwZW9mIEhpZ2hsaWdodE1hcCIsICJmdW5jdGlvbiIpOwotc2hvdWxkQmVUcnVlKCJuZXcg
SGlnaGxpZ2h0TWFwKCkgaW5zdGFuY2VvZiBIaWdobGlnaHRNYXAiKTsKLXNob3VsZEJlRGVmaW5l
ZCgnbmV3IEhpZ2hsaWdodE1hcCgpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHRSYW5n
ZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0
YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0p
KSknKTsKK3Nob3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0ciBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdobGlnaHQiLCAiZnVuY3Rpb24iKTsKK3No
b3VsZEJlVHJ1ZSgibmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVy
OiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5i
b2R5LCBlbmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHRSZWdpc3RlciIpOworc2hv
dWxkQmVUcnVlKCJIaWdobGlnaHRSZWdpc3RlciBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdobGlnaHRSZWdpc3RlciIsICJmdW5jdGlvbiIp
Oworc2hvdWxkQmVUcnVlKCJuZXcgSGlnaGxpZ2h0UmVnaXN0ZXIoKSBpbnN0YW5jZW9mIEhpZ2hs
aWdodFJlZ2lzdGVyIik7CitzaG91bGRCZURlZmluZWQoJ25ldyBIaWdobGlnaHRSZWdpc3Rlcigp
LnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKScpOwogc2hvdWxkQmVEZWZpbmVkKCdDU1MuaGln
aGxpZ2h0cycpOwotc2hvdWxkQmUoJ0NTUy5oaWdobGlnaHRzLnNldCgiZm9vLXN0eWxpbmciLG5l
dyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRv
Y3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHks
IGVuZE9mZnNldDogMn0pKSknLCAnQ1NTLmhpZ2hsaWdodHMnKTsKK3Nob3VsZEJlKCdDU1MuaGln
aGxpZ2h0cy5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSknLCAnQ1NTLmhpZ2hsaWdodHMnKTsK
IAogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQv
aGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaGlnaGxp
Z2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dAppbmRleCBmYjEzMjE5YmIy
ZTlkY2ZmNWQxY2U3M2Q3MzBkNzBmYWRjMTg5YWVmLi5jYTlhNDkwOTQzM2FiMWRjOTA1Yzk2M2I2
Zjg5MjE0MTA2ZGI3OTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxp
Z2h0LW1hcC1hbmQtZ3JvdXAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdo
dC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACi1Q
QVNTIGhpZ2hsaWdodFJhbmdlR3JvdXAxLnNpemUgaXMgMQotUEFTUyBoaWdobGlnaHRSYW5nZUdy
b3VwMi5zaXplIGlzIDIKLVBBU1MgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuc2l6ZSBpcyAzCitQQVNT
IGhpZ2hsaWdodDEuc2l6ZSBpcyAxCitQQVNTIGhpZ2hsaWdodDIuc2l6ZSBpcyAyCitQQVNTIGhp
Z2hsaWdodDMuc2l6ZSBpcyAzCiBQQVNTIENTUy5oaWdobGlnaHRzLnNpemUgaXMgMwogUEFTUyBD
U1MuaGlnaGxpZ2h0cy5oYXMoImV4YW1wbGUtaGlnaGxpZ2h0MSIpIGlzIHRydWUKIFBBU1MgQ1NT
LmhpZ2hsaWdodHMuaGFzKCJleGFtcGxlLWhpZ2hsaWdodDIiKSBpcyB0cnVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAuaHRtbCBiL0xh
eW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sCmluZGV4IDVi
NGJmYWIwYWNlMzRhYTE1YTVkNDE4Nzc4MWIwNTU2M2QxNjE1YjAuLmFlNDljZmExOGFlOThjOWJj
YzI3NmJiMmQ5NzQwMjJmODAyMmFkMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdo
dC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdo
dC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sCkBAIC0yMCwyMyArMjAsMjMgQEAKICAgICA8
Ym9keT48c3Bhbj5PbmUgPC9zcGFuPjxzcGFuPnR3byA8L3NwYW4+PHNwYW4+dGhyZWUuLi48L3Nw
YW4+CiAKICAgICA8c2NyaXB0PgotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBu
ZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5
LCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdo
dChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9m
ZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSk7CiAK
LSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3Jv
dXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRP
ZmZzZXQ6IDIsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAzfSkpOwot
ICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA1fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MiA9IG5l
dyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9k
eSwgc3RhcnRPZmZzZXQ6IDIsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0
OiAzfSkpOworICAgICAgICBoaWdobGlnaHQyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDV9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdl
R3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA4fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3Vw
My5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3Rh
cnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMTJ9
KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVy
OiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDZ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQz
ID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVu
dC5ib2R5LCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRP
ZmZzZXQ6IDh9KSk7CisgICAgICAgIGhpZ2hsaWdodDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVy
OiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDEyfSkpOworICAgICAgICBoaWdobGlnaHQzLmFk
ZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9m
ZnNldDogNSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDZ9KSk7CiAg
ICAgICAgIAogCi0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQx
IiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4
YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKLSAgICAgICAgQ1NTLmhp
Z2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHRSYW5nZUdyb3VwMyk7
CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxp
Z2h0MSk7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwg
aGlnaGxpZ2h0Mik7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGln
aHQzIiwgaGlnaGxpZ2h0Myk7CiAKLSAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodFJhbmdlR3Jv
dXAxLnNpemUiLCIxIik7Ci0gICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHRSYW5nZUdyb3VwMi5z
aXplIiwiMiIpOwotICAgICAgICBzaG91bGRCZSgiaGlnaGxpZ2h0UmFuZ2VHcm91cDMuc2l6ZSIs
IjMiKTsKKyAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodDEuc2l6ZSIsIjEiKTsKKyAgICAgICAg
c2hvdWxkQmUoImhpZ2hsaWdodDIuc2l6ZSIsIjIiKTsKKyAgICAgICAgc2hvdWxkQmUoImhpZ2hs
aWdodDMuc2l6ZSIsIjMiKTsKIAogICAgICAgICBzaG91bGRCZSgiQ1NTLmhpZ2hsaWdodHMuc2l6
ZSIsIjMiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9o
aWdobGlnaHQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGln
aGxpZ2h0LWZyYW1lLmh0bWwKaW5kZXggODg0ODg3YjgyN2U2OTVhMDg0MDk5NGViYjAwNzE3YTRi
MTJhMTkzYS4uODdkOTc5Y2E3MjVkOWVjZTAwZDM3NTIzNThkY2VmOTA4MzIwZjg2MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFtZS5o
dG1sCkBAIC0xMyw2ICsxMyw2IEBACiAKIDxzY3JpcHQ+CiBsZXQgaGlnaGxpZ2h0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2hpZ2hsaWdodCcpOwotbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAg
PSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVy
OiBoaWdobGlnaHQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjog
aGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKLUNTUy5oaWdobGlnaHRz
LnNldCgiZXhhbXBsZSIsIGhpZ2hsaWdodFJhbmdlR3JvdXApOworbGV0IGhpZ2hsaWdodCA9IG5l
dyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaGlnaGxpZ2h0LmNo
aWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGhpZ2hsaWdodC5jaGls
ZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CitDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUi
LCBoaWdobGlnaHQpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwKaW5k
ZXggNDU3NzE1YTIxMDM1ZTY1ZDE4NTMzZGUwMDdkOTFkZTcwMGU2MzI0ZS4uMTU1ZGQ4YjRjZmY0
MzM3OWZmZDAxNWY3Y2U3ZjZmZWRiYzkyMDE3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2Uu
aHRtbApAQCAtMTgsMTAgKzE4LDEwIEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBsZXQgaW1h
Z2VFbGVtZW50MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJyk7Ci0gICAgICAgIGxl
dCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3Rh
cnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBl
bmRPZmZzZXQ6IDF9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChu
ZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9kZXNb
MF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rl
c1swXSwgZW5kT2Zmc2V0OiAxfSkpOwogCiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJl
eGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7CisgICAgICAgIENTUy5o
aWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0MSk7CiAKICAgICA8
L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1h
Y3Jvc3MtZWxlbWVudHMuaHRtbAppbmRleCBiYWY3MWUwOTZlN2Q3NDRhNDQ0MTczMjVmMGFhYmUy
NjJiNjk3OTlhLi41ZDZjNjAxY2MyNTdkMjZmNDA5N2Y0YWM1NTAyYTVjOTdkMjI5YjFlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxp
Z2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
Y3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1s
CkBAIC0zNCwxNiArMzQsMTYgQEAKICAgICAgICAgbGV0IHRleHRFbGVtZW50MyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXh0MycpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQ0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQ0Jyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDUnKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdo
dFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA0
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDd9
KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZz
ZXQ6IDQsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNl
dDogN30pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxp
Z2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVu
dDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVt
ZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJh
bmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVu
dDIuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVt
ZW50My5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDV9KSk7CisgICAgICAgIGxldCBoaWdobGln
aHQyID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0
RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRl
eHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CisgICAgICAgIGhpZ2hs
aWdodDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5j
aGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQz
LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNX0pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0
UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDMuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEw
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50NS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEy
fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDUuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiAxMn0pKTsKIAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxp
Z2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0
KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7Ci0gICAgICAgIENT
Uy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFuZ2VHcm91
cDMpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhp
Z2hsaWdodDEpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0
MiIsIGhpZ2hsaWdodDIpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGln
aGxpZ2h0MyIsIGhpZ2hsaWdodDMpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3Mt
aGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwKaW5kZXggY2RlOTdjNGJm
Zjc0YjdmNzI4ZmYyOTdiN2ViMzg3MDgxYjY4YjBkZS4uMmY3MGNhMTZiZTNlMzJiM2I4ZGYwNDVl
NjUzOTcwNjkwODIyODhkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nz
cy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2Fk
ZS5odG1sCkBAIC0yNiwxMCArMjYsMTAgQEAKICAgICAgICAgbGV0IHRleHRFbGVtZW50MSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQyJyk7CiAgICAgICAgIGxldCB0ZXh0RWxl
bWVudDMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDMnKTsKLSAgICAgICAgbGV0IGhp
Z2hsaWdodFJhbmdlR3JvdXAgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZz
ZXQ6IDAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNl
dDogM30pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cC5hZGQobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0
OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6
IDl9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9m
ZnNldDogMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiAzfSkpOworICAgICAgICBoaWdobGlnaHQuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRD
b250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA5fSkpOwog
Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGln
aHRSYW5nZUdyb3VwKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hs
aWdodCIsIGhpZ2hsaWdodCk7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxp
Z2h0LXRleHQtZGVjb3JhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3Mt
aGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1kZWNvcmF0aW9ucy5odG1sCmluZGV4IDI0NGJm
Yzk4YTJhMDZhODMxNmFkNzNmOTNjNDFhZDM5OGVmMzUzOGUuLjkzY2ExNWZjZDk2YjdkYWQxNzUx
MmNmYmRmOWI3Mzg2N2E3ODljYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nz
cy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1kZWNvcmF0aW9ucy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4
dC1kZWNvcmF0aW9ucy5odG1sCkBAIC01MSwxMyArNTEsMTMgQEAKIAogICAgIDxzY3JpcHQ+CiAg
ICAgICAgIGxldCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScp
OwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VH
cm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5v
ZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5v
ZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3Vw
MiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNn0pKTsKLSAgICAgICAg
bGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3Rh
cnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogMTN9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChu
ZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBd
LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBd
LCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQyID0gbmV3IEhpZ2hsaWdo
dChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBlbmRPZmZzZXQ6IDZ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQzID0gbmV3IEhpZ2hs
aWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5v
ZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiAxM30pKTsKIAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQo
ImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NT
LmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBoaWdobGlnaHRSYW5nZUdyb3Vw
Mik7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGln
aGxpZ2h0UmFuZ2VHcm91cDMpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUt
aGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4
YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodDIpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5z
ZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodDMpOwogICAgIDwvc2NyaXB0PgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGFpbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBhaW50Lmh0bWwK
aW5kZXggZDM4Yzk0MGE2MWViYzU4ZWM2NWQ5YTg2ZTI1MzhhNjc0MzYzYTFjNy4uNDE4OGJlNTdh
NTRmMGFlMDQ3NWE5YmI0YzNlYWJlM2Y2MjEwNTg4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGFpbnQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxp
Z2h0LXRleHQtcmVwYWludC5odG1sCkBAIC01LDcgKzUsNyBAQAogICAgIDx0aXRsZT5NdWx0aXBs
ZSBjdXN0b20gaGlnaGxpZ2h0IHBzZXVkbyBlbGVtZW50cy48L3RpdGxlPgogICAgIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1oaWdobGlnaHQtYXBp
LTEvI2NyZWF0aW5nLWhpZ2hsaWdodHMiPgogICAgIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9Imhp
Z2hsaWdodC10ZXh0LWV4cGVjdGVkLmh0bWwiPgotICAgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29u
dGVudD0iSGlnaGxpZ2h0IFJhbmdlcyBzaG91bGQgYmUgYWJsZSB0byBiZSBhZGRlZCBhbmQgcmVt
b3ZlZCBmcm9tIHRoZSBIaWdobGlnaHRSYW5nZUdyb3VwLiI+CisgICAgPG1ldGEgbmFtZT0iYXNz
ZXJ0IiBjb250ZW50PSJIaWdobGlnaHQgUmFuZ2VzIHNob3VsZCBiZSBhYmxlIHRvIGJlIGFkZGVk
IGFuZCByZW1vdmVkIGZyb20gdGhlIEhpZ2hsaWdodC4iPgogICAgIDxzdHlsZT4KICAgICAgICAg
OjpoaWdobGlnaHQoZXhhbXBsZS1oaWdobGlnaHQpIHsKICAgICAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsdWU7CkBAIC00MiwxMiArNDIsMTIgQEAKICAgICAgICAgICAgIGxldCByYW5nZTIg
PSBuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBlbmRPZmZzZXQ6IDR9KTsKICAgICAgICAgICAgIGxldCByYW5nZTMgPSBuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9m
ZnNldDogOCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZz
ZXQ6IDEyfSk7CiAKLSAgICAgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBI
aWdobGlnaHRSYW5nZUdyb3VwKHJhbmdlMSk7Ci0gICAgICAgICAgICBDU1MuaGlnaGxpZ2h0cy5z
ZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOworICAgICAgICAg
ICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0KHJhbmdlMSk7CisgICAgICAgICAgICBD
U1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0MSk7CiAKLSAg
ICAgICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAxLmFkZChyYW5nZTIpOwotICAgICAgICAgICAg
aGlnaGxpZ2h0UmFuZ2VHcm91cDEuZGVsZXRlKHJhbmdlMSk7Ci0gICAgICAgICAgICBoaWdobGln
aHRSYW5nZUdyb3VwMS5hZGQocmFuZ2UzKTsKKyAgICAgICAgICAgIGhpZ2hsaWdodDEuYWRkKHJh
bmdlMik7CisgICAgICAgICAgICBoaWdobGlnaHQxLmRlbGV0ZShyYW5nZTEpOworICAgICAgICAg
ICAgaGlnaGxpZ2h0MS5hZGQocmFuZ2UzKTsKIAogICAgICAgICAgICAgdmFyIHJlcGFpbnRSZWN0
cyA9IHdpbmRvdy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CiAgICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVw
bGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbAppbmRleCA3MDEzYTY2MzM1ZWJlNDYyNWE0NGM3ZTYz
Y2ZkZjA3YjY3MmNhYjUyLi45MTNjYjVlNGNmNGE2NjUyNTIwMjA5NGFkYzM2MTQ1MWUwMWE5ZDUx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkv
aGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nz
cy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwKQEAgLTE4LDEz
ICsxOCwxMyBAQAogCiAgICAgPHNjcmlwdD4KICAgICAgICAgbGV0IHRleHRFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQxJyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5n
ZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRD
b250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxLCBlbmRD
b250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMn0pKTsKKyAg
ICAgICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxLCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMn0pKTsK
IAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VH
cm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5v
ZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5v
ZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFk
ZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBlbmRPZmZzZXQ6IDZ9KSk7ICAgICAgICAKKyAgICAgICAgbGV0IGhpZ2hsaWdodDIgPSBu
ZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50
LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAzLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50
LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0Mi5hZGQo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgZW5kT2Zmc2V0OiA2fSkpOyAgICAgICAgCiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0
KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NT
LmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAy
KTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hs
aWdodDEpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0Iiwg
aGlnaGxpZ2h0Mik7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRl
eHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdo
bGlnaHQtdGV4dC5odG1sCmluZGV4IDRhYmY0MzAwMjgwYThhODMxOTdlODIyOWQ4NDg4YzgyMzYy
MDg2YjUuLmZhNDcyNzUxMmZjMTZlMjc5ZjNkNjY2NTA0NzYzM2YyNzM0ODQyMmEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQt
dGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFw
aS9oaWdobGlnaHQtdGV4dC5odG1sCkBAIC0yNiwxOSArMjYsMTkgQEAKIAogICAgIDxzY3JpcHQ+
CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0
MScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFu
Z2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGls
ZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGls
ZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3
IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5j
aGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5j
aGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJh
bmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDMsIGVu
ZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOwot
ICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENv
bnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkpOworICAg
ICAgICBsZXQgaGlnaGxpZ2h0MiA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDMsIGVu
ZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOwor
ICAgICAgICBoaWdobGlnaHQyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7CiAKLSAgICAgICAgbGV0
IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRP
ZmZzZXQ6IDcsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiA4fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZz
ZXQ6IDksIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0
OiAxMH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0
OiAxMiwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6
IDEzfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRP
ZmZzZXQ6IDcsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiA4fSkpOworICAgICAgICBoaWdobGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogOSwgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEwfSkpOwor
ICAgICAgICBoaWdobGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTIsIGVuZENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxM30pKTsKICAgICAgICAgCiAK
LSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGln
aHRSYW5nZUdyb3VwMSk7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdo
bGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIpOwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5z
ZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodFJhbmdlR3JvdXAzKTsKKyAgICAgICAg
Q1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHQxKTsKKyAg
ICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBoaWdobGlnaHQy
KTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdo
bGlnaHQzKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411878</attachid>
            <date>2020-10-20 09:58:35 -0700</date>
            <delta_ts>2020-10-20 11:11:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217919-20201020095834.patch</filename>
            <type>text/plain</type>
            <size>75967</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiY2FmMTc5NjJkZGEy
MTRkZTNkZWEzMWE3ODYzMDhjMTMzNWQ1My4uNmZmYzY5ZTJlMjJlM2RjYjY2YzA1ZDc5Yzc0Njc1
MGZlZDFlN2UwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEhp
Z2hsaWdodE1hcCB0byBIaWdobGlnaHRSZWdpc3RlciBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB0
byBIaWdobGlnaHQgdG8gbWF0Y2ggY3VycmVudCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG5ldyBiZWhhdmlvciwg
cmVuYW1lIG9ubHkuCisgICAgICAgIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxp
Z2h0LWFwaS0xLworCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6SGlnaGxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodDo6aW5pdGlhbGl6ZVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGln
aHQ6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0OjphZGRU
b1NldExpa2UpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oLgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGw6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRNYXAuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmluaXRpYWxp
emVNYXBMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9t
TWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OnJlbW92ZSk6CisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oLgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSZWdpc3Rlcjo6bWFwIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMp
OgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBjc3MvRE9NQ1NT
TmFtZXNwYWNlLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpoaWdobGlnaHRSZWdpc3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBk
YXRlSGlnaGxpZ2h0UG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoaWdo
bGlnaHRNYXApOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFy
a2VkVGV4dHNGb3JIaWdobGlnaHRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0
ZUhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFu
Z2VEYXRhLmNwcDoKKwogMjAyMC0xMC0xOSAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTihyMjY1MjMxKTogT3Zlcmxh
eTogbm9kZSBpbmZvIHNvbWV0aW1lcyBkcmF3cyBvbiBvbmUgbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA2ZjEzNjM3MWQ4OWFiYmQ5NmRmYWRiZmYyMTNiN2Y3Nzc4ZDE2MjNhLi40ZmRlY2Iy
NjlkY2JiYzJlZjlkMjA5OThjM2RiZGQ4ZjFjZWM5YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjg5LDggKzI4OSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKLSAgICBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRNYXAuaWRsCi0gICAgTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5pZGwKKyAgICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCisgICAgTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9E
T01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDdhNDU0MWQxN2ZlYjNlMDgyODFlYWFmYzA0MzlmYTBiMmE3NmMyOTAuLmNkY2Iy
OTJmNTFmY2U1YWNlMWM3ODkyOTdkZmJkYzlmZjEyMzA2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI5LDggKzEyOSw4IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCi0kKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiskKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yRGlyZWN0aW9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIyMDg5MWFj
ZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi45NWRkNmU5NmQ0Njg0MjhkZWIxZmJmZGE1NzNkMjI3
YjM2MzBhMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMTEwOCwxMCArMTEwOCwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGFzaENoYW5nZUV2ZW50LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGRyTWV0YWRhdGFU
eXBlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
ZHJNZXRhZGF0YVR5cGUuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIaWdobGlnaHRNYXAuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodE1hcC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGln
aHRSZWdpc3Rlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSGlnaGxpZ2h0UmVnaXN0ZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIa2RmUGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjY5NGYwNjUxYjNlZTY3MmUzYTMwZGRhYmE4MjMwYzU3ZTY5
YjEzNi4uZTRhNTBjNWRiNzNhMjI5ODFlYzQ2NzIyNzJjNWEyOGRmODEwYjFiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTUsOCArMTU1LDggQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNr
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bk9wdGlvbnMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dE1hcC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93K0luZGV4
ZWREYXRhYmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JEaXJl
Y3Rpb24uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU2NWI3YTA0NjkxMGIyM2NmZDE2NTcxOTY0ZTliMzNjNTcyMGE4
NzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHQuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0LmgiCisKKyNpbmNsdWRlICJJRExUeXBl
cy5oIgorI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgorI2luY2x1ZGUgIkpTU3RhdGljUmFuZ2Uu
aCIKKyNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCisjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NT
dHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAi
U3RhdGljUmFuZ2UuaCIKKyNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSGlnaGxpZ2h0OjpIaWdobGlnaHQo
UmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQoreworICAgIGF1dG8gbXlSYW5nZSA9IFdURk1vdmUo
cmFuZ2UpOworICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgpKTsKK30KKworUmVmPEhpZ2hs
aWdodD4gSGlnaGxpZ2h0OjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChyYW5nZSkpOworfQorCit2b2lkIEhpZ2hsaWdodDo6
aW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYgc2V0KQoreworICAgIGZvciAoYXV0byYg
cmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAgICBzZXQuYWRkPElETEludGVyZmFjZTxT
dGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOworfQorCitzdGF0aWMgdm9pZCByZXBhaW50
UmFuZ2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gc3RhcnROb2RlID0g
bWFrZVJlZlB0cigmcmFuZ2Uuc3RhcnRDb250YWluZXIoKSk7CisgICAgYXV0byBlbmROb2RlID0g
bWFrZVJlZlB0cigmcmFuZ2UuZW5kQ29udGFpbmVyKCkpOworICAgIGF1dG8gb3JkZXJpbmcgPSBk
b2N1bWVudE9yZGVyKCpzdGFydE5vZGUuZ2V0KCksICplbmROb2RlLmdldCgpKTsKKyAgICBpZiAo
aXNfZXEob3JkZXJpbmcpKSB7CisgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gc3RhcnROb2Rl
LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoaXNfZ3Qob3JkZXJpbmcpKSB7CisgICAgICAgIHN0YXJ0
Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKKyAgICAgICAgZW5kTm9kZSA9ICZyYW5nZS5z
dGFydENvbnRhaW5lcigpOworICAgIH0KKyAgICBhdXRvIHNpbXBsZVJhbmdlID0gbWFrZVNpbXBs
ZVJhbmdlKG1ha2VCb3VuZGFyeVBvaW50QmVmb3JlTm9kZSgqc3RhcnROb2RlLmdldCgpKSwgbWFr
ZUJvdW5kYXJ5UG9pbnRBZnRlck5vZGUoKmVuZE5vZGUuZ2V0KCkpKTsKKyAgICBpZiAoc2ltcGxl
UmFuZ2UpIHsKKyAgICAgICAgZm9yIChhdXRvJiBub2RlIDogaW50ZXJzZWN0aW5nTm9kZXMoc2lt
cGxlUmFuZ2UudmFsdWUoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gbm9k
ZS5yZW5kZXJlcigpKQorICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZShjb25z
dCBTdGF0aWNSYW5nZSYgcmFuZ2UpCit7CisgICAgcmV0dXJuIG1fcmFuZ2VzRGF0YS5yZW1vdmVG
aXJzdE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJy
ZW50KSB7CisgICAgICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgICAgIHJldHVybiBjdXJy
ZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOworICAgIH0pOworfQorCit2b2lkIEhpZ2hs
aWdodDo6Y2xlYXJGcm9tU2V0TGlrZSgpCit7CisgICAgZm9yIChhdXRvJiBkYXRhIDogbV9yYW5n
ZXNEYXRhKQorICAgICAgICByZXBhaW50UmFuZ2UoZGF0YS0+cmFuZ2UpOworCisgICAgbV9yYW5n
ZXNEYXRhLmNsZWFyKCk7Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjphZGRUb1NldExpa2UoU3RhdGlj
UmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChub3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1h
dGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7
IHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOyB9KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgbV9yYW5nZXNEYXRh
LmFwcGVuZChIaWdobGlnaHRSYW5nZURhdGE6OmNyZWF0ZShyYW5nZSkpOworICAgIAorICAgIHJl
dHVybiB0cnVlOworfQorCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
SGlnaGxpZ2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBkZmE1NjgyMjhjODNiMjBlYmU4YTJmOTM1ZWYwZjVk
ZTc1MzBmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQb3NpdGlvbi5o
IgorI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOworY2xh
c3MgRE9NU2V0QWRhcHRlcjsKK2NsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjsK
K2NsYXNzIFN0YXRpY1JhbmdlOworCisKK3N0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZD
b3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGln
aHRSYW5nZURhdGE+IHsKKyAgICBIaWdobGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1JhbmdlPiYm
IHJhbmdlKQorICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFuZ2UpKQorICAgIHsKKyAgICB9Cisg
ICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShSZWY8U3RhdGljUmFuZ2U+
JiYgcmFuZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRS
YW5nZURhdGEoV1RGTW92ZShyYW5nZSkpKTsKKyAgICB9CisgICAgUmVmPFN0YXRpY1JhbmdlPiBy
YW5nZTsKKyAgICBPcHRpb25hbDxQb3NpdGlvbj4gc3RhcnRQb3NpdGlvbjsKKyAgICBPcHRpb25h
bDxQb3NpdGlvbj4gZW5kUG9zaXRpb247Cit9OworCitjbGFzcyBIaWdobGlnaHQgOiBwdWJsaWMg
UmVmQ291bnRlZDxIaWdobGlnaHQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dD4gY3JlYXRlKFN0YXRpY1JhbmdlJik7CisgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7Cisg
ICAgYm9vbCBhZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmKTsKKyAgICBib29sIHJlbW92ZUZyb21T
ZXRMaWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7CisgICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShE
T01TZXRBZGFwdGVyJik7CisgICAgY29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURhdGE+
PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQorCisgICAgLy8g
RklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgpOwor
cHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1fcmFuZ2VzRGF0
YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8cmRhcjovL3By
b2JsZW0vNTc3NjA2MTQ+CisgICAgZXhwbGljaXQgSGlnaGxpZ2h0KFJlZjxTdGF0aWNSYW5nZT4m
Jik7Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZWI3YTlmMjE2ZTkzMDkxNzYzNjIzNjNkODgxZmZhMzA3
OWRhZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSGlnaGxpZ2h0IHsKKyAgICBjb25z
dHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7CisKKyAgICBzZXRsaWtlPFN0YXRpY1JhbmdlPjsK
KyAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9u
IHN0eWxlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRNYXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzlmZmFjMTg3MGMx
ZjZjMTM1YTA4MDJmYzRlNmMxYzE4YmRhZjA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodE1hcC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgotCi0jaW5jbHVk
ZSAiSURMVHlwZXMuaCIKLSNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIKLSNpbmNsdWRlICJKU0hp
Z2hsaWdodFJhbmdlR3JvdXAuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotdm9pZCBI
aWdobGlnaHRNYXA6OmluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImIG1hcCkKLXsKLSAg
ICBmb3IgKGF1dG8mIGtleVZhbHVlIDogbV9tYXApCi0gICAgICAgIG1hcC5zZXQ8SURMRE9NU3Ry
aW5nLCBJRExJbnRlcmZhY2U8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+KGtleVZhbHVlLmtleSwga2V5
VmFsdWUudmFsdWUpOwotfQotCi12b2lkIEhpZ2hsaWdodE1hcDo6c2V0RnJvbU1hcExpa2UoU3Ry
aW5nJiYga2V5LCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJiB2YWx1ZSkKLXsKLSAgICBtX21h
cC5zZXQoV1RGTW92ZShrZXkpLCBXVEZNb3ZlKHZhbHVlKSk7Ci19Ci0KLXZvaWQgSGlnaGxpZ2h0
TWFwOjpjbGVhcigpCi17Ci0gICAgbV9tYXAuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRN
YXA6OnJlbW92ZShjb25zdCBTdHJpbmcmIGtleSkKLXsKLSAgICByZXR1cm4gbV9tYXAucmVtb3Zl
KGtleSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodE1hcC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0TWFwLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwOWNlOTc5MjE1MGZj
NzcxYjhlODkxNDNhMThjMjQzYTY4OGIwNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0TWFwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCi0jaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIERPTU1hcEFkYXB0ZXI7Ci1jbGFzcyBET01TdHJpbmc7Ci1jbGFz
cyBIaWdobGlnaHRSYW5nZUdyb3VwOwotCi1jbGFzcyBIaWdobGlnaHRNYXAgOiBwdWJsaWMgUmVm
Q291bnRlZDxIaWdobGlnaHRNYXA+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dE1hcD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRNYXApOyB9Ci0K
LSAgICB2b2lkIGluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImKTsKLSAgICB2b2lkIHNl
dEZyb21NYXBMaWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJik7Ci0gICAg
dm9pZCBjbGVhcigpOwotICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOwotICAgIAotICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+JiBtYXAoKSBj
b25zdCB7IHJldHVybiBtX21hcDsgfQotICAgIAotcHJpdmF0ZToKLSAgICBIaWdobGlnaHRNYXAo
KSA9IGRlZmF1bHQ7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGlnaHRSYW5nZUdyb3Vw
Pj4gbV9tYXA7Ci19OwotCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRNYXAuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTI1
MWYwNThhODRkMjM0OWVhNGVlNzg4M2Q0ZWE4YThiYTgyZTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodE1hcC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLAotICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIEhp
Z2hsaWdodE1hcCB7Ci0gICAgY29uc3RydWN0b3IoKTsKLQotICAgIG1hcGxpa2U8RE9NU3RyaW5n
LCBIaWdobGlnaHRSYW5nZUdyb3VwPjsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZGQ4NzI5NmNlNzVlYjk5MzE3MDI4NGU0YjEyYWI5YThmOTdlNjM2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgotCi0jaW5jbHVkZSAiSURMVHlwZXMu
aCIKLSNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKLSNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgi
Ci0jaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgotI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgotI2luY2x1ZGUgIlN0
YXRpY1JhbmdlLmgiCi0jaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSA8d3Rm
L1JlZi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUhpZ2hsaWdodFJhbmdlR3JvdXA6Okhp
Z2hsaWdodFJhbmdlR3JvdXAoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQotewotICAgIGF1dG8g
bXlSYW5nZSA9IFdURk1vdmUocmFuZ2UpOwotICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgp
KTsKLX0KLQotUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNy
ZWF0ZShTdGF0aWNSYW5nZSYgcmFuZ2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGln
aGxpZ2h0UmFuZ2VHcm91cChyYW5nZSkpOwotfQotCi12b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6
OmluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKLXsKLSAgICBmb3IgKGF1dG8m
IHJhbmdlRGF0YSA6IG1fcmFuZ2VzRGF0YSkKLSAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8
U3RhdGljUmFuZ2U+PihyYW5nZURhdGEtPnJhbmdlKTsKLX0KLQotc3RhdGljIHZvaWQgcmVwYWlu
dFJhbmdlKGNvbnN0IFN0YXRpY1JhbmdlJiByYW5nZSkKLXsKLSAgICBhdXRvKiBzdGFydE5vZGUg
PSAmcmFuZ2Uuc3RhcnRDb250YWluZXIoKTsKLSAgICBhdXRvKiBlbmROb2RlID0gJnJhbmdlLmVu
ZENvbnRhaW5lcigpOwotICAgIGF1dG8gb3JkZXJpbmcgPSBkb2N1bWVudE9yZGVyKCpzdGFydE5v
ZGUsICplbmROb2RlKTsKLSAgICBpZiAoaXNfZXEob3JkZXJpbmcpKSB7Ci0gICAgICAgIGlmIChh
dXRvIHJlbmRlcmVyID0gc3RhcnROb2RlLT5yZW5kZXJlcigpKQotICAgICAgICAgICAgcmVuZGVy
ZXItPnJlcGFpbnQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXNfZ3Qob3Jk
ZXJpbmcpKSB7Ci0gICAgICAgIHN0YXJ0Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKLSAg
ICAgICAgZW5kTm9kZSA9ICZyYW5nZS5zdGFydENvbnRhaW5lcigpOwotICAgIH0KLQotICAgIGF1
dG8gbm9kZSA9IHN0YXJ0Tm9kZTsKLSAgICB3aGlsZSAobm9kZSAhPSBlbmROb2RlKSB7Ci0gICAg
ICAgIGlmIChhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJl
bmRlcmVyLT5yZXBhaW50KCk7Ci0gICAgICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpu
b2RlKTsKLSAgICB9Ci19Ci0KLWJvb2wgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlRnJvbVNl
dExpa2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIHJldHVybiBtX3Jhbmdlc0Rh
dGEucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VE
YXRhPiYgY3VycmVudCkgewotICAgICAgICByZXBhaW50UmFuZ2UocmFuZ2UpOwotICAgICAgICBy
ZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsKLSAgICB9KTsKLX0KLQot
dm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21TZXRMaWtlKCkKLXsKLSAgICBmb3Ig
KGF1dG8mIGRhdGEgOiBtX3Jhbmdlc0RhdGEpCi0gICAgICAgIHJlcGFpbnRSYW5nZShkYXRhLT5y
YW5nZSk7Ci0KLSAgICBtX3Jhbmdlc0RhdGEuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRS
YW5nZUdyb3VwOjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIGlmIChu
b3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxI
aWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7IHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdl
LmdldCgpID09IHJhbmdlOyB9KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlcGFpbnRS
YW5nZShyYW5nZSk7Ci0gICAgbV9yYW5nZXNEYXRhLmFwcGVuZChIaWdobGlnaHRSYW5nZURhdGE6
OmNyZWF0ZShyYW5nZSkpOwotICAgIAotICAgIHJldHVybiB0cnVlOwotfQotCi19Ci0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ4MWU5ZWY3MjMzNDAzZmMzMzg1
ZTE0NjMxZmNiMGE5YzVlYTYwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5n
ZUdyb3VwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlBvc2l0aW9u
LmgiCi0jaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247Ci1j
bGFzcyBET01TZXRBZGFwdGVyOwotY2xhc3MgU3RhdGljUmFuZ2U7Ci1jbGFzcyBQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb247Ci0KLXN0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZD
b3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGln
aHRSYW5nZURhdGE+IHsKLSAgICAKLSAgICBIaWdobGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1Jh
bmdlPiYmIHJhbmdlKQotICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFuZ2UpKQotICAgIHsKLSAg
ICB9Ci0gICAgCi0gICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShSZWY8
U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIaWdobGlnaHRSYW5nZURhdGEoV1RGTW92ZShyYW5nZSkpKTsKLSAgICB9Ci0gICAgCi0gICAg
UmVmPFN0YXRpY1JhbmdlPiByYW5nZTsKLSAgICBPcHRpb25hbDxQb3NpdGlvbj4gc3RhcnRQb3Np
dGlvbjsKLSAgICBPcHRpb25hbDxQb3NpdGlvbj4gZW5kUG9zaXRpb247Ci19OwotCi1jbGFzcyBI
aWdobGlnaHRSYW5nZUdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VHcm91
cD4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gY3JlYXRl
KFN0YXRpY1JhbmdlJik7Ci0gICAgCi0gICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7Ci0gICAg
Ym9vbCBhZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmKTsKLSAgICBib29sIHJlbW92ZUZyb21TZXRM
aWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7Ci0gICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShET01T
ZXRBZGFwdGVyJik7Ci0gICAgCi0gICAgY29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURh
dGE+PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQotCi0gICAg
Ly8gRklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgp
OwotICAgIAotcHJpdmF0ZToKLSAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1f
cmFuZ2VzRGF0YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8
cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+Ci0gICAgZXhwbGljaXQgSGlnaGxpZ2h0UmFuZ2VHcm91
cChSZWY8U3RhdGljUmFuZ2U+JiYpOwotfTsKLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjVhYTQxZWE2NDVjZTY0ZTdjMDY5NTQyN2U0ZjZjOTBh
YWRlMDA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBFbmFibGVk
QXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAot
ICAgIEV4cG9zZWQ9V2luZG93Ci1dIGludGVyZmFjZSBIaWdobGlnaHRSYW5nZUdyb3VwIHsKLSAg
ICBjb25zdHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7Ci0KLSAgICBzZXRsaWtlPFN0YXRpY1Jh
bmdlPjsKLSAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xh
cmF0aW9uIHN0eWxlOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTIwYjg2OTM0MjVjYmNh
YTA2Y2NiMTQ0ZmUwMmQzY2Y2Mjg1ZThiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIaWdo
bGlnaHRSZWdpc3Rlci5oIgorCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RP
TU1hcExpa2UuaCIKKyNpbmNsdWRlICJKU0hpZ2hsaWdodC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjppbml0aWFsaXplTWFwTGlrZShET01N
YXBBZGFwdGVyJiBtYXApCit7CisgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IG1fbWFwKQorICAg
ICAgICBtYXAuc2V0PElETERPTVN0cmluZywgSURMSW50ZXJmYWNlPEhpZ2hsaWdodD4+KGtleVZh
bHVlLmtleSwga2V5VmFsdWUudmFsdWUpOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjpz
ZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGlnaHQ+JiYgdmFsdWUpCit7Cisg
ICAgbV9tYXAuc2V0KFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1ZSkpOworfQorCit2b2lkIEhp
Z2hsaWdodFJlZ2lzdGVyOjpjbGVhcigpCit7CisgICAgbV9tYXAuY2xlYXIoKTsKK30KKworYm9v
bCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3ZlKGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIHJl
dHVybiBtX21hcC5yZW1vdmUoa2V5KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA1MzBm
ODM2MjNhMzMzYjIwY2ZhNmZkNWRjMGY1NjMzNDQxMDQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJI
aWdobGlnaHQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NTWFwQWRhcHRlcjsK
K2NsYXNzIERPTVN0cmluZzsKK2NsYXNzIEhpZ2hsaWdodDsKKworY2xhc3MgSGlnaGxpZ2h0UmVn
aXN0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmVnaXN0ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSGlnaGxpZ2h0UmVnaXN0ZXIpOyB9CisKKyAgICB2b2lkIGluaXRpYWxpemVNYXBM
aWtlKERPTU1hcEFkYXB0ZXImKTsKKyAgICB2b2lkIHNldEZyb21NYXBMaWtlKFN0cmluZyYmLCBS
ZWY8SGlnaGxpZ2h0PiYmKTsKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgYm9vbCByZW1vdmUoY29u
c3QgU3RyaW5nJik7CisgICAgCisgICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGln
aHQ+PiYgbWFwKCkgY29uc3QgeyByZXR1cm4gbV9tYXA7IH0KKyAgICAKK3ByaXZhdGU6CisgICAg
SGlnaGxpZ2h0UmVnaXN0ZXIoKSA9IGRlZmF1bHQ7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxI
aWdobGlnaHQ+PiBtX21hcDsKK307CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNmNh
YzYzYmQxNjg2Mzk0MDJhNmFhNzIzMTg4ZWZhNGY3ZmI2ODAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5pZGwKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hs
aWdodEFQSSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2lu
ZG93CitdIGludGVyZmFjZSBIaWdobGlnaHRSZWdpc3RlciB7CisgICAgY29uc3RydWN0b3IoKTsK
KworICAgIG1hcGxpa2U8RE9NU3RyaW5nLCBIaWdobGlnaHQ+OworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggOTFjNTg3OTg1ZTQwOWNlYjIxMzFiODhhMWNjNGJmN2NhN2Y1YzNlZC4uY2U3MTM3OGE0ZTg2
NTVlM2VmYWI1MTAwNmI5MmI5ZjVmMzIyZjZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTY0LDggKzY0
LDggQEAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbkNvb3JkaW5hdGVzLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9s
b2NhdGlvbi5jcHAKLU1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKLU1vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCitNb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAKK01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5jcHAKIE1vZHVs
ZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAKIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5j
cHAKQEAgLTMwNTIsOCArMzA1Miw4IEBAIEpTSFRNTFVua25vd25FbGVtZW50LmNwcAogSlNIVE1M
VmlkZW9FbGVtZW50LmNwcAogSlNIYXNoQ2hhbmdlRXZlbnQuY3BwCiBKU0hkck1ldGFkYXRhVHlw
ZS5jcHAKLUpTSGlnaGxpZ2h0TWFwLmNwcAotSlNIaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorSlNI
aWdobGlnaHRSZWdpc3Rlci5jcHAKK0pTSGlnaGxpZ2h0LmNwcAogSlNIaXN0b3J5LmNwcAogSlNI
a2RmUGFyYW1zLmNwcAogSlNIbWFjS2V5UGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUzOWI3MWM2MTA1ZGY0Njdi
M2IzMGY1MjI5YjdkMGQwNTI5N2I3NWIuLjM5ODI2NjkzNjE3ZGNiZTk0NWQyMTZiNmEwNGUzMjFj
Y2IxNTU4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTc5NDMsMTIgKzc5NDMsMTIgQEAKIAkJNDREOERBOTgxMzk1NDVCRTAw
MzM3Qjc1IC8qIFNWR01QYXRoRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZH
TVBhdGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDREOERBOUEx
Mzk1NDVDRDAwMzM3Qjc1IC8qIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ0RTM0OUY3MjQ2RjREQzcwMDY4NDc5QyAvKiBMaWJXZWJSVENFbnVt
VHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ0VudW1U
cmFpdHMuaDsgcGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENFbnVtVHJhaXRzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTRDMjM2OTEyOEEwMDlCNDg0NyAvKiBIaWdobGln
aHRNYXAuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhpZ2hsaWdodE1hcC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdo
bGlnaHRSYW5nZUdyb3VwLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIaWdobGlnaHRSYW5n
ZUdyb3VwLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTAyMzZBNTZB
QzAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHRNYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTEyMzZBNUM4RDAwOUI0ODQ3
IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU1MjIzNkE2NjdGMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hsaWdodE1h
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTU0MjM2QTY2QTEwMDlC
NDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hs
aWdodFJhbmdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NEU4OEU0
QzIzNjkxMjhBMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lzdGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDRFODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSGlnaGxpZ2h0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lzdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0RTg4RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTUyMjM2
QTY2N0YwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIaWdobGlnaHRSZWdpc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0
RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSGlnaGxpZ2h0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUwQ0VCRUUx
NTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGFiZWxhYmxlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ1MENFQkVGMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhYmVsYWJsZUVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUxMjUwMjAxNURDRTM3RDAwMkY4NEUy
IC8qIFNwaW5CdXR0b25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwaW5CdXR0b25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE5MzY5LDEyICsxOTM2OSwxMiBAQAogCQk0NEU4OEU0NzIzNjhERjBGMDA5QjQ4NDcgLyog
aGlnaGxpZ2h0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk0NEU4OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmNwcCAqLywKLQkJCQk0
NEU4OEU1MDIzNkE1NkFDMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmggKi8sCi0JCQkJNDRFODhF
NEMyMzY5MTI4QTAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5pZGwgKi8sCi0JCQkJNDRFODhFNTQy
MzZBNjZBMTAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuY3BwICovLAotCQkJCTQ0RTg4
RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmggKi8sCi0JCQkJNDRF
ODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuaWRsICovLAorCQkJ
CTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHQuY3BwICovLAorCQkJCTQ0RTg4
RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLywKKwkJCQk0NEU4OEU0RDIzNjkx
MjhCMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmlkbCAqLywKKwkJCQk0NEU4OEU1MjIzNkE2NjdGMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwICovLAorCQkJCTQ0RTg4RTUwMjM2QTU2QUMw
MDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovLAorCQkJCTQ0RTg4RTRDMjM2OTEyOEEw
MDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5pZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGhp
Z2hsaWdodDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggOTcwMmNjNTk3MmU5OTU3
OTZiMTc4NGI2OWIwMGI2MjcxNzFmNDQzNy4uMjBkOTVlZTU0ZTA0NzRmODgyMzM2M2ZkOWM1YjE1
ZTY2NzdkYzQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaApAQCAtMTI5LDggKzEyOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBtYWNybyhHUFVUZXh0dXJlVmlldykgXAogICAgIG1hY3JvKEdQVVVuY2FwdHVyZWRFcnJvckV2
ZW50KSBcCiAgICAgbWFjcm8oR1BVVmFsaWRhdGlvbkVycm9yKSBcCi0gICAgbWFjcm8oSGlnaGxp
Z2h0TWFwKSBcCi0gICAgbWFjcm8oSGlnaGxpZ2h0UmFuZ2VHcm91cCkgXAorICAgIG1hY3JvKEhp
Z2hsaWdodFJlZ2lzdGVyKSBcCisgICAgbWFjcm8oSGlnaGxpZ2h0KSBcCiAgICAgbWFjcm8oSFRN
TEF0dGFjaG1lbnRFbGVtZW50KSBcCiAgICAgbWFjcm8oSFRNTEF1ZGlvRWxlbWVudCkgXAogICAg
IG1hY3JvKEhUTUxEaWFsb2dFbGVtZW50KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3Bh
Y2UuY3BwCmluZGV4IDE5ZTNkZDYxZWE5ZDlhYTA5NzU2YzczNDY1NWQ0ZGM3NjcwNjg3MWIuLmQ1
OTI1NzBiODYzMTZkODMxZmI1OTdhMjkxNGI5NzVmYmIzZDQwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9ET01DU1NOYW1lc3BhY2UuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQ1NTUGFy
c2VyLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lz
dGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODks
OSArODksOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUoY29uc3QgU3RyaW5nJiBp
ZGVudCkKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCi1IaWdobGlnaHRNYXAm
IERPTUNTU05hbWVzcGFjZTo6aGlnaGxpZ2h0cyhEb2N1bWVudCYgZG9jdW1lbnQpCitIaWdobGln
aHRSZWdpc3RlciYgRE9NQ1NTTmFtZXNwYWNlOjpoaWdobGlnaHRzKERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQuaGlnaGxpZ2h0TWFwKCk7CisgICAgcmV0dXJuIGRv
Y3VtZW50LmhpZ2hsaWdodFJlZ2lzdGVyKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NO
YW1lc3BhY2UuaAppbmRleCAzMDQ3ZTUyNzk4NDQ2Y2Q3NzA2Njc1NTA5NDE5OWEzMWVjMDVlYzdm
Li44NmQyN2ZlOWZmNzE3N2IzZTRhY2RjYmU0ZTllNGY1ODdhZDA0MWFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTUNTU05hbWVzcGFjZS5oCkBAIC0zNywxNSArMzcsMTUgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBIaWdobGlnaHRNYXA7Ci1jbGFzcyBIaWdo
bGlnaHRSYW5nZUdyb3VwOworY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXI7CitjbGFzcyBIaWdobGln
aHQ7CiAKIGNsYXNzIERPTUNTU05hbWVzcGFjZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERP
TUNTU05hbWVzcGFjZT4sIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxET01DU1NOYW1lc3BhY2U+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0cyhEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHksIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBjb25kaXRpb25UZXh0KTsKICAgICBzdGF0aWMg
U3RyaW5nIGVzY2FwZShjb25zdCBTdHJpbmcmIGlkZW50KTsKLSAgICBzdGF0aWMgSGlnaGxpZ2h0
TWFwJiBoaWdobGlnaHRzKERvY3VtZW50Jik7CisgICAgc3RhdGljIEhpZ2hsaWdodFJlZ2lzdGVy
JiBoaWdobGlnaHRzKERvY3VtZW50Jik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NO
YW1lc3BhY2UuaWRsCmluZGV4IDU2MzU1OTM1NmZjNmVhNTFhOGExYmNjMjIwMjEzZjNkODA4MmMw
NzcuLjM0ZjNkNzI0MzVkMzU1YTJkYTA2YWI2NTc3NTUxNmU1ZWRmNmNlMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCkBAIC0zNSw1ICszNSw1IEBACiAgICAgW0NhbGxX
aXRoPURvY3VtZW50XSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0cyhET01TdHJpbmcgcHJvcGVydHks
IERPTVN0cmluZyB2YWx1ZSk7CiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgYm9vbGVh
biBzdXBwb3J0cyhET01TdHJpbmcgY29uZGl0aW9uVGV4dCk7CiAgICAgc3RhdGljIERPTVN0cmlu
ZyBlc2NhcGUoRE9NU3RyaW5nIGlkZW50KTsKLSAgICBbRW5hYmxlZEF0UnVudGltZT1IaWdobGln
aHRBUEksIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIEhpZ2hs
aWdodE1hcCBoaWdobGlnaHRzOworICAgIFtFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwg
Q2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgSGlnaGxpZ2h0UmVn
aXN0ZXIgaGlnaGxpZ2h0czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwODUzNTg5
ZWFiYWMzNWU3NmFiYTZmMjgyYWU1NzZjNTkyZTFlOGU1Li42ZTVmMDFkOWMzMmZkMjI2NDVhMzJi
NDAwNjBjYjA0YjFiMTk3NjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExMSw3ICsx
MTEsNyBAQAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBQYXJz
ZXJzLmgiCiAjaW5jbHVkZSAiSGFzaENoYW5nZUV2ZW50LmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0
TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJIaXN0b3J5
LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIklkbGVDYWxsYmFja0Nv
bnRyb2xsZXIuaCIKQEAgLTc5Miw4ICs3OTIsOCBAQCB2b2lkIERvY3VtZW50Ojpjb21tb25UZWFy
ZG93bigpCiAKICAgICBjbGVhclNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcigpOwogICAgIAot
ICAgIGlmIChtX2hpZ2hsaWdodE1hcCkKLSAgICAgICAgbV9oaWdobGlnaHRNYXAtPmNsZWFyKCk7
CisgICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1faGlnaGxpZ2h0UmVnaXN0
ZXItPmNsZWFyKCk7CiAKICAgICBtX3BlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3QgPSBudWxs
cHRyOwogCkBAIC0yNzY3LDE4ICsyNzY3LDE4IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gRG9jdW1l
bnQ6OmNyZWF0ZVBhcnNlcigpCiAgICAgcmV0dXJuIFhNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUo
KnRoaXMsIHZpZXcoKSk7CiB9CiAKLUhpZ2hsaWdodE1hcCYgRG9jdW1lbnQ6OmhpZ2hsaWdodE1h
cCgpCitIaWdobGlnaHRSZWdpc3RlciYgRG9jdW1lbnQ6OmhpZ2hsaWdodFJlZ2lzdGVyKCkKIHsK
LSAgICBpZiAoIW1faGlnaGxpZ2h0TWFwKQotICAgICAgICBtX2hpZ2hsaWdodE1hcCA9IEhpZ2hs
aWdodE1hcDo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuICptX2hpZ2hsaWdodE1hcDsKKyAgICBpZiAo
IW1faGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1faGlnaGxpZ2h0UmVnaXN0ZXIgPSBIaWdo
bGlnaHRSZWdpc3Rlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX2hpZ2hsaWdodFJlZ2lzdGVy
OwogfQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKQogewogICAg
IFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7Ci0gICAgaWYg
KG1faGlnaGxpZ2h0TWFwKSB7Ci0gICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogbV9oaWdo
bGlnaHRNYXAtPm1hcCgpKSB7CisgICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0ZXIpIHsKKyAgICAg
ICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodFJlZ2lzdGVyLT5tYXAoKSkgewog
ICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdl
c0RhdGEoKSkgewogICAgICAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0YXJ0UG9zaXRpb24g
JiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGRkODgzYjJhMDdjNTYyMzZlY2NmZDUwNDVhYWU2MDZi
Mzk2ZTg3NGYuLjkzZmI3NDhhN2Y5NTIzMWQ1ZDY5OGVhZTQwMjBhM2U5MTM1YjYwMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xNTYsNyArMTU2LDcgQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVu
dDsKIGNsYXNzIEhUTUxNYXBFbGVtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNz
IEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBIaWdobGlnaHRNYXA7CitjbGFzcyBIaWdobGlnaHRS
ZWdpc3RlcjsKIGNsYXNzIEhpdFRlc3RMb2NhdGlvbjsKIGNsYXNzIEhpdFRlc3RSZXF1ZXN0Owog
Y2xhc3MgSGl0VGVzdFJlc3VsdDsKQEAgLTE1NjksNyArMTU2OSw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciYgdGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXIoKTsKICAgICBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciogdGV4dE1hbmlw
dWxhdGlvbkNvbnRyb2xsZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1fdGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXIuZ2V0KCk7IH0KICAgICAgICAgCi0gICAgSGlnaGxpZ2h0TWFwJiBoaWdobGlnaHRN
YXAoKTsKKyAgICBIaWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKICAgICB2
b2lkIHVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3NDb250ZW50
SmF2YVNjcmlwdCgpIGNvbnN0OwpAQCAtMTkyNCw3ICsxOTI0LDcgQEAgcHJpdmF0ZToKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VGV4dEF1dG9TaXppbmc+IG1fdGV4dEF1dG9TaXppbmc7CiAjZW5kaWYK
ICAgICAgICAgCi0gICAgUmVmUHRyPEhpZ2hsaWdodE1hcD4gbV9oaWdobGlnaHRNYXA7CisgICAg
UmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBtX2hpZ2hsaWdodFJlZ2lzdGVyOwogCiAgICAgVGlt
ZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDY1ZTMyYTQ4NTBkNjdjY2QwMDRlMmE3NTZi
MGYxYjdkNzhkMWJjYTcuLjM5ZWIxNTEwOWFhNmMwMmE2ODZiZTA0ZGUwY2RkNmIwMzdjOGZjOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAgLTMzLDcg
KzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rp
b24uaCIKLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCisjaW5jbHVkZSAiSGlnaGxp
Z2h0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5j
bHVkZSAiUmFuZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNw
cAppbmRleCBjYmMwM2E3ZGI5OGMxMTUzNmIzNzEyNzNhZmE4YTM1MDM2ZDE2NzU2Li40NzFiNWU3
M2RmNTdkZjc4NTA1NDQwMDhhMDI1NDE4MTQ5MDIyNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIaWdobGlnaHRE
YXRhLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVn
aXN0ZXIuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94U3R5bGUuaCIKQEAgLTEwNTEsNyArMTA1MSw3
IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFya2VkVGV4dHNG
b3JIaWdobGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgYXV0byYgcGFyZW50UmVuZGVyZXIgPSBw
YXJlbnQoKS0+cmVuZGVyZXIoKTsKICAgICBhdXRvJiBwYXJlbnRTdHlsZSA9IHBhcmVudFJlbmRl
cmVyLnN0eWxlKCk7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGlnaHREYXRhOwotICAgIGZvciAo
YXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIoKS5kb2N1bWVudCgpLmhpZ2hsaWdodE1hcCgpLm1h
cCgpKSB7CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiByZW5kZXJlcigpLmRvY3VtZW50KCku
aGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewogICAgICAgICBhdXRvIHJlbmRlclN0eWxlID0g
cGFyZW50UmVuZGVyZXIuZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGln
aHQsIGhpZ2hsaWdodC5rZXkgfSwgJnBhcmVudFN0eWxlKTsKICAgICAgICAgaWYgKCFyZW5kZXJT
dHlsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggYTcyZjFlZDc3OTcyYTQ0NzYxZGEwNzUxZmY0MjdhNTJh
NjBiOWNiMy4uM2NlZTAxZjQ1OTUxYzE1OWE5ZGEyODMzMWE3ZTYwY2RmZTdlNjQ3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJ
ZGlvbXMuaCIKICNpbmNsdWRlICJIaWdobGlnaHREYXRhLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0
TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJJbmxpbmVF
bGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgiCkBAIC0xNTQsNyArMTU0
LDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGRyYWdnZWRDb250ZW50Q29udGFpbnNSZXBsYWNlZEVs
ZW1lbnQoY29uc3QgVmVjdG9yPFJlbmRlcmVkRG8KIENvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxj
dWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0CiB7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGln
aHREYXRhOwotICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdobGlnaHRN
YXAoKS5tYXAoKSkgeworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdo
bGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDog
aGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKICAgICAgICAgICAgIGlmICghaGlnaGxp
Z2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdl
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNw
cAppbmRleCBmNDk3MTY5ZTI3YmQ0YTcyMDcxNjM3ZjYwYzBkMWZmOTFhNTcxNzk4Li5iZTY3ZTYw
ZTc1OTkyNGVjZmFkZGVlOTJlNmM3OWQ1MjNlNmU3ZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgotI2luY2x1
ZGUgIkhpZ2hsaWdodFJhbmdlR3JvdXAuaCIKKyNpbmNsdWRlICJIaWdobGlnaHQuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNpbmNsdWRlICJSYW5nZS5o
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZhY2Vz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNl
cy1leHBlY3RlZC50eHQKaW5kZXggYjMwNTFjM2ZkM2ZhNjMzYzBjNjc1YjdkNDlmN2ZmZTdhNzMy
YzgyOS4uZjlmMzI5ZDA2MWIzZTNhZTY4ZDExNWIwZWJlNDg5YzdlZDk3MWM5NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMtZXhwZWN0
ZWQudHh0CkBAIC0xLDE4ICsxLDE4IEBACi1UZXN0cyB0aGUgaW50ZXJmYWNlcyBvZiB0aGUgaGln
aGxpZ2h0IEFQSSwgd2hpY2ggaW5jbHVkZSBIaWdobGlnaHRSYW5nZUdyb3VwLCBIaWdobGlnaHRN
YXAsIGFuZCBleHRlbnNpb25zIHRvIHRoZSBDU1MgbmFtZXNwYWNlLgorVGVzdHMgdGhlIGludGVy
ZmFjZXMgb2YgdGhlIGhpZ2hsaWdodCBBUEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0LCBIaWdo
bGlnaHRSZWdpc3RlciwgYW5kIGV4dGVuc2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2UuCiAKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCiBUZXN0aW5nIEhpZ2hsaWdodDoKLVBBU1MgSGln
aGxpZ2h0UmFuZ2VHcm91cCBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKLVBBU1MgdHlwZW9m
IEhpZ2hsaWdodFJhbmdlR3JvdXAgaXMgImZ1bmN0aW9uIgotUEFTUyBuZXcgSGlnaGxpZ2h0UmFu
Z2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBz
dGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9
KSkgaW5zdGFuY2VvZiBIaWdobGlnaHRSYW5nZUdyb3VwIGlzIHRydWUKLVBBU1MgSGlnaGxpZ2h0
TWFwIGluc3RhbmNlb2YgRnVuY3Rpb24gaXMgdHJ1ZQotUEFTUyB0eXBlb2YgSGlnaGxpZ2h0TWFw
IGlzICJmdW5jdGlvbiIKLVBBU1MgbmV3IEhpZ2hsaWdodE1hcCgpIGluc3RhbmNlb2YgSGlnaGxp
Z2h0TWFwIGlzIHRydWUKLVBBU1MgbmV3IEhpZ2hsaWdodE1hcCgpLnNldCgiZm9vLXN0eWxpbmci
LG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIGVuZE9mZnNldDogMn0pKSkgaXMgZGVmaW5lZC4KK1BBU1MgSGlnaGxpZ2h0IGluc3RhbmNl
b2YgRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyB0eXBlb2YgSGlnaGxpZ2h0IGlzICJmdW5jdGlvbiIK
K1BBU1MgbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBl
bmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHQgaXMgdHJ1ZQorUEFTUyBIaWdobGln
aHRSZWdpc3RlciBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKK1BBU1MgdHlwZW9mIEhpZ2hs
aWdodFJlZ2lzdGVyIGlzICJmdW5jdGlvbiIKK1BBU1MgbmV3IEhpZ2hsaWdodFJlZ2lzdGVyKCkg
aW5zdGFuY2VvZiBIaWdobGlnaHRSZWdpc3RlciBpcyB0cnVlCitQQVNTIG5ldyBIaWdobGlnaHRS
ZWdpc3RlcigpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRh
aW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBkZWZpbmVkLgogUEFTUyBD
U1MuaGlnaGxpZ2h0cyBpcyBkZWZpbmVkLgotUEFTUyBDU1MuaGlnaGxpZ2h0cy5zZXQoImZvby1z
dHlsaW5nIixuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkpIGlzIENTUy5oaWdobGlnaHRzCitQQVNTIENTUy5o
aWdobGlnaHRzLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRh
aW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBDU1MuaGlnaGxpZ2h0cwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy5odG1sCmluZGV4IDU4ZjQ5
NGNhMmZkMTlhYjc0Zjg5Yzg5ODA5YTRlYmVlMGFmN2ZhZGUuLjE0Yzc1NmVjYTQzNjQ5MmFkNmI0
MzEwODdjNjYyMjg0MjZhOTZjMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9o
aWdobGlnaHQtaW50ZXJmYWNlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdo
bGlnaHQtaW50ZXJmYWNlcy5odG1sCkBAIC00LDE4ICs0LDE4IEBACiA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotZGVzY3JpcHRpb24o
IlRlc3RzIHRoZSBpbnRlcmZhY2VzIG9mIHRoZSBoaWdobGlnaHQgQVBJLCB3aGljaCBpbmNsdWRl
IEhpZ2hsaWdodFJhbmdlR3JvdXAsIEhpZ2hsaWdodE1hcCwgYW5kIGV4dGVuc2lvbnMgdG8gdGhl
IENTUyBuYW1lc3BhY2UuIik7CitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGludGVyZmFjZXMgb2Yg
dGhlIGhpZ2hsaWdodCBBUEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0LCBIaWdobGlnaHRSZWdp
c3RlciwgYW5kIGV4dGVuc2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2UuIik7CiAKIGRlYnVnKCJU
ZXN0aW5nIEhpZ2hsaWdodDoiKTsKLXNob3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0UmFuZ2VHcm91cCBp
bnN0YW5jZW9mIEZ1bmN0aW9uIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdo
bGlnaHRSYW5nZUdyb3VwIiwgImZ1bmN0aW9uIik7Ci1zaG91bGRCZVRydWUoIm5ldyBIaWdobGln
aHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNl
dDogMn0pKSBpbnN0YW5jZW9mIEhpZ2hsaWdodFJhbmdlR3JvdXAiKTsKLXNob3VsZEJlVHJ1ZSgi
SGlnaGxpZ2h0TWFwIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygidHlwZW9mIEhpZ2hsaWdodE1hcCIsICJmdW5jdGlvbiIpOwotc2hvdWxkQmVUcnVlKCJuZXcg
SGlnaGxpZ2h0TWFwKCkgaW5zdGFuY2VvZiBIaWdobGlnaHRNYXAiKTsKLXNob3VsZEJlRGVmaW5l
ZCgnbmV3IEhpZ2hsaWdodE1hcCgpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHRSYW5n
ZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0
YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0p
KSknKTsKK3Nob3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0IGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIEhpZ2hsaWdodCIsICJmdW5jdGlvbiIpOworc2hv
dWxkQmVUcnVlKCJuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIGVuZE9mZnNldDogMn0pKSBpbnN0YW5jZW9mIEhpZ2hsaWdodFJlZ2lzdGVyIik7CitzaG91
bGRCZVRydWUoIkhpZ2hsaWdodFJlZ2lzdGVyIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIEhpZ2hsaWdodFJlZ2lzdGVyIiwgImZ1bmN0aW9uIik7
CitzaG91bGRCZVRydWUoIm5ldyBIaWdobGlnaHRSZWdpc3RlcigpIGluc3RhbmNlb2YgSGlnaGxp
Z2h0UmVnaXN0ZXIiKTsKK3Nob3VsZEJlRGVmaW5lZCgnbmV3IEhpZ2hsaWdodFJlZ2lzdGVyKCku
c2V0KCJmb28tc3R5bGluZyIsbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkpJyk7CiBzaG91bGRCZURlZmluZWQoJ0NTUy5oaWdo
bGlnaHRzJyk7Ci1zaG91bGRCZSgnQ1NTLmhpZ2hsaWdodHMuc2V0KCJmb28tc3R5bGluZyIsbmV3
IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwg
ZW5kT2Zmc2V0OiAyfSkpKScsICdDU1MuaGlnaGxpZ2h0cycpOworc2hvdWxkQmUoJ0NTUy5oaWdo
bGlnaHRzLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5l
cjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKScsICdDU1MuaGlnaGxpZ2h0cycpOwog
CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9o
aWdobGlnaHQtbWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9oaWdobGln
aHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAtZXhwZWN0ZWQudHh0CmluZGV4IGZiMTMyMTliYjJl
OWRjZmY1ZDFjZTczZDczMGQ3MGZhZGMxODlhZWYuLmNhOWE0OTA5NDMzYWIxZGM5MDVjOTYzYjZm
ODkyMTQxMDZkYjc5N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGln
aHQtbWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0
L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKLVBB
U1MgaGlnaGxpZ2h0UmFuZ2VHcm91cDEuc2l6ZSBpcyAxCi1QQVNTIGhpZ2hsaWdodFJhbmdlR3Jv
dXAyLnNpemUgaXMgMgotUEFTUyBoaWdobGlnaHRSYW5nZUdyb3VwMy5zaXplIGlzIDMKK1BBU1Mg
aGlnaGxpZ2h0MS5zaXplIGlzIDEKK1BBU1MgaGlnaGxpZ2h0Mi5zaXplIGlzIDIKK1BBU1MgaGln
aGxpZ2h0My5zaXplIGlzIDMKIFBBU1MgQ1NTLmhpZ2hsaWdodHMuc2l6ZSBpcyAzCiBQQVNTIENT
Uy5oaWdobGlnaHRzLmhhcygiZXhhbXBsZS1oaWdobGlnaHQxIikgaXMgdHJ1ZQogUEFTUyBDU1Mu
aGlnaGxpZ2h0cy5oYXMoImV4YW1wbGUtaGlnaGxpZ2h0MiIpIGlzIHRydWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sIGIvTGF5
b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWwKaW5kZXggNWI0
YmZhYjBhY2UzNGFhMTVhNWQ0MTg3NzgxYjA1NTYzZDE2MTViMC4uYWU0OWNmYTE4YWU5OGM5YmNj
Mjc2YmIyZDk3NDAyMmY4MDIyYWQzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0
L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0
L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWwKQEAgLTIwLDIzICsyMCwyMyBAQAogICAgIDxi
b2R5PjxzcGFuPk9uZSA8L3NwYW4+PHNwYW4+dHdvIDwvc3Bhbj48c3Bhbj50aHJlZS4uLjwvc3Bh
bj4KIAogICAgIDxzY3JpcHQ+Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5l
dyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRv
Y3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHks
IGVuZE9mZnNldDogMn0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zm
c2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKTsKIAot
ICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91
cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9m
ZnNldDogMiwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDN9KSk7Ci0g
ICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDV9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQyID0gbmV3
IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5
LCBzdGFydE9mZnNldDogMiwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6
IDN9KSk7CisgICAgICAgIGhpZ2hsaWdodDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250
YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IGRvY3Vt
ZW50LmJvZHksIGVuZE9mZnNldDogNX0pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VH
cm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDh9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAz
LmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFy
dE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAxMn0p
KTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6
IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogNn0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDMg
PSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50
LmJvZHksIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9m
ZnNldDogOH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0My5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6
IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMTJ9KSk7CisgICAgICAgIGhpZ2hsaWdodDMuYWRk
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zm
c2V0OiA1LCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogNn0pKTsKICAg
ICAgICAgCiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEi
LCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhh
bXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIpOwotICAgICAgICBDU1MuaGln
aGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodFJhbmdlR3JvdXAzKTsK
KyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGln
aHQxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBo
aWdobGlnaHQyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdo
dDMiLCBoaWdobGlnaHQzKTsKIAotICAgICAgICBzaG91bGRCZSgiaGlnaGxpZ2h0UmFuZ2VHcm91
cDEuc2l6ZSIsIjEiKTsKLSAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodFJhbmdlR3JvdXAyLnNp
emUiLCIyIik7Ci0gICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHRSYW5nZUdyb3VwMy5zaXplIiwi
MyIpOworICAgICAgICBzaG91bGRCZSgiaGlnaGxpZ2h0MS5zaXplIiwiMSIpOworICAgICAgICBz
aG91bGRCZSgiaGlnaGxpZ2h0Mi5zaXplIiwiMiIpOworICAgICAgICBzaG91bGRCZSgiaGlnaGxp
Z2h0My5zaXplIiwiMyIpOwogCiAgICAgICAgIHNob3VsZEJlKCJDU1MuaGlnaGxpZ2h0cy5zaXpl
IiwiMyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hp
Z2hsaWdodC1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdo
bGlnaHQtZnJhbWUuaHRtbAppbmRleCA4ODQ4ODdiODI3ZTY5NWEwODQwOTk0ZWJiMDA3MTdhNGIx
MmExOTNhLi41MDUzZWVkMGRjODk5NWQ1MGU0MDBkZjRhOTliOTcxM2Q0Y2YwNjU4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFtZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0
bWwKQEAgLTEzLDYgKzEzLDYgQEAKIAogPHNjcmlwdD4KIGxldCBoaWdobGlnaHQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaGlnaGxpZ2h0Jyk7Ci1sZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cCA9
IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IGhpZ2hsaWdodC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiBo
aWdobGlnaHQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOwotQ1NTLmhpZ2hsaWdodHMu
c2V0KCJleGFtcGxlIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cCk7CitsZXQgaGlnaGxpZ2h0MSA9IG5l
dyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaGlnaGxpZ2h0LmNo
aWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGhpZ2hsaWdodC5jaGls
ZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CitDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUi
LCBoaWdobGlnaHQxKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCmlu
ZGV4IDQ1NzcxNWEyMTAzNWU2NWQxODUzM2RlMDA3ZDkxZGU3MDBlNjMyNGUuLjE1NWRkOGI0Y2Zm
NDMzNzlmZmQwMTVmN2NlN2Y2ZmVkYmM5MjAxNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdl
Lmh0bWwKQEAgLTE4LDEwICsxOCwxMCBAQAogCiAgICAgPHNjcmlwdD4KICAgICAgICAgbGV0IGlt
YWdlRWxlbWVudDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpOwotICAgICAgICBs
ZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0
YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwg
ZW5kT2Zmc2V0OiAxfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVz
WzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9k
ZXNbMF0sIGVuZE9mZnNldDogMX0pKTsKIAogCi0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgi
ZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOworICAgICAgICBDU1Mu
aGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEpOwogCiAgICAg
PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3Mv
Y3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQt
YWNyb3NzLWVsZW1lbnRzLmh0bWwKaW5kZXggYmFmNzFlMDk2ZTdkNzQ0YTQ0NDE3MzI1ZjBhYWJl
MjYyYjY5Nzk5YS4uNWQ2YzYwMWNjMjU3ZDI2ZjQwOTdmNGFjNTUwMmE1Yzk3ZDIyOWIxZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hs
aWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRt
bApAQCAtMzQsMTYgKzM0LDE2IEBACiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGV4dDMnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50NCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0NCcpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQ1
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQ1Jyk7Ci0gICAgICAgIGxldCBoaWdobGln
aHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDog
NCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA3
fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiA0LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZz
ZXQ6IDd9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hs
aWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1l
bnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxl
bWVudDIuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOwotICAgICAgICBoaWdobGlnaHRS
YW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1l
bnQyLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxl
bWVudDMuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA1fSkpOworICAgICAgICBsZXQgaGlnaGxp
Z2h0MiA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4
dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0
ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOworICAgICAgICBoaWdo
bGlnaHQyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIu
Y2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50
My5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDV9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdo
dFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAx
MCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDUuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAx
Mn0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDMgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50My5jaGlsZE5vZGVzWzBdLCBzdGFydE9m
ZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQ1LmNoaWxkTm9kZXNbMF0sIGVuZE9m
ZnNldDogMTJ9KSk7CiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hs
aWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNl
dCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIpOwotICAgICAgICBD
U1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodFJhbmdlR3Jv
dXAzKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBo
aWdobGlnaHQxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdo
dDIiLCBoaWdobGlnaHQyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhp
Z2hsaWdodDMiLCBoaWdobGlnaHQzKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9o
aWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sCmluZGV4IGNkZTk3YzRi
ZmY3NGI3ZjcyOGZmMjk3YjdlYjM4NzA4MWI2OGIwZGUuLjJmNzBjYTE2YmUzZTMyYjNiOGRmMDQ1
ZTY1Mzk3MDY5MDgyMjg4ZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2Nh
ZGUuaHRtbApAQCAtMjYsMTAgKzI2LDEwIEBACiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDEgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDEnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50
MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MicpOwogICAgICAgICBsZXQgdGV4dEVs
ZW1lbnQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQzJyk7Ci0gICAgICAgIGxldCBo
aWdobGlnaHRSYW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiAwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZz
ZXQ6IDN9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAuYWRkKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNl
dDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0
OiA5fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0ID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRP
ZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9m
ZnNldDogM30pKTsKKyAgICAgICAgaGlnaGxpZ2h0LmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVu
ZENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogOX0pKTsK
IAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxp
Z2h0UmFuZ2VHcm91cCk7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdo
bGlnaHQiLCBoaWdobGlnaHQpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hs
aWdodC10ZXh0LWRlY29yYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtZGVjb3JhdGlvbnMuaHRtbAppbmRleCAyNDRi
ZmM5OGEyYTA2YTgzMTZhZDczZjkzYzQxYWQzOThlZjM1MzhlLi45M2NhMTVmY2Q5NmI3ZGFkMTc1
MTJjZmJkZjliNzM4NjdhNzg5Y2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9j
c3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtZGVjb3JhdGlvbnMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRl
eHQtZGVjb3JhdGlvbnMuaHRtbApAQCAtNTEsMTMgKzUxLDEzIEBACiAKICAgICA8c2NyaXB0Pgog
ICAgICAgICBsZXQgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDEn
KTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdl
R3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiAyfSkpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7Ci0gICAgICAg
IGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0
YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBl
bmRPZmZzZXQ6IDEzfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgZW5kT2Zmc2V0OiAyfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MiA9IG5ldyBIaWdobGln
aHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgZW5kT2Zmc2V0OiA2fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5ldyBIaWdo
bGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxk
Tm9kZXNbMF0sIGVuZE9mZnNldDogMTN9KSk7CiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0
KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Ci0gICAgICAgIENT
Uy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VHcm91
cDIpOwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhp
Z2hsaWdodFJhbmdlR3JvdXAzKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxl
LWhpZ2hsaWdodDEiLCBoaWdobGlnaHQxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJl
eGFtcGxlLWhpZ2hsaWdodDIiLCBoaWdobGlnaHQyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMu
c2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHQzKTsKICAgICA8L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3Mt
aGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBhaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwYWludC5odG1s
CmluZGV4IGQzOGM5NDBhNjFlYmM1OGVjNjVkOWE4NmUyNTM4YTY3NDM2M2ExYzcuLjQxODhiZTU3
YTU0ZjBhZTA0NzVhOWJiNGMzZWFiZTNmNjIxMDU4ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBhaW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hs
aWdodC10ZXh0LXJlcGFpbnQuaHRtbApAQCAtNSw3ICs1LDcgQEAKICAgICA8dGl0bGU+TXVsdGlw
bGUgY3VzdG9tIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudHMuPC90aXRsZT4KICAgICA8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxpZ2h0LWFw
aS0xLyNjcmVhdGluZy1oaWdobGlnaHRzIj4KICAgICA8bGluayByZWw9Im1hdGNoIiBocmVmPSJo
aWdobGlnaHQtdGV4dC1leHBlY3RlZC5odG1sIj4KLSAgICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9IkhpZ2hsaWdodCBSYW5nZXMgc2hvdWxkIGJlIGFibGUgdG8gYmUgYWRkZWQgYW5kIHJl
bW92ZWQgZnJvbSB0aGUgSGlnaGxpZ2h0UmFuZ2VHcm91cC4iPgorICAgIDxtZXRhIG5hbWU9ImFz
c2VydCIgY29udGVudD0iSGlnaGxpZ2h0IFJhbmdlcyBzaG91bGQgYmUgYWJsZSB0byBiZSBhZGRl
ZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBIaWdobGlnaHQuIj4KICAgICA8c3R5bGU+CiAgICAgICAg
IDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxpZ2h0KSB7CiAgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBibHVlOwpAQCAtNDIsMTIgKzQyLDEyIEBACiAgICAgICAgICAgICBsZXQgcmFuZ2Uy
ID0gbmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgZW5kT2Zmc2V0OiA0fSk7CiAgICAgICAgICAgICBsZXQgcmFuZ2UzID0gbmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRP
ZmZzZXQ6IDgsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiAxMn0pOwogCi0gICAgICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcg
SGlnaGxpZ2h0UmFuZ2VHcm91cChyYW5nZTEpOwotICAgICAgICAgICAgQ1NTLmhpZ2hsaWdodHMu
c2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKKyAgICAgICAg
ICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChyYW5nZTEpOworICAgICAgICAgICAg
Q1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodDEpOwogCi0g
ICAgICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMS5hZGQocmFuZ2UyKTsKLSAgICAgICAgICAg
IGhpZ2hsaWdodFJhbmdlR3JvdXAxLmRlbGV0ZShyYW5nZTEpOwotICAgICAgICAgICAgaGlnaGxp
Z2h0UmFuZ2VHcm91cDEuYWRkKHJhbmdlMyk7CisgICAgICAgICAgICBoaWdobGlnaHQxLmFkZChy
YW5nZTIpOworICAgICAgICAgICAgaGlnaGxpZ2h0MS5kZWxldGUocmFuZ2UxKTsKKyAgICAgICAg
ICAgIGhpZ2hsaWdodDEuYWRkKHJhbmdlMyk7CiAKICAgICAgICAgICAgIHZhciByZXBhaW50UmVj
dHMgPSB3aW5kb3cuaW50ZXJuYWxzLnJlcGFpbnRSZWN0c0FzVGV4dCgpOwogICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zdG9wVHJhY2tpbmdSZXBhaW50cygpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJl
cGxhY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9o
aWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwKaW5kZXggNzAxM2E2NjMzNWViZTQ2MjVhNDRjN2U2
M2NmZGYwN2I2NzJjYWI1Mi4uOTEzY2I1ZTRjZjRhNjY1MjUyMDIwOTRhZGMzNjE0NTFlMDFhOWQ1
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBp
L2hpZ2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9j
c3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sCkBAIC0xOCwx
MyArMTgsMTMgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFu
Z2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7Cisg
ICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7
CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdl
R3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5h
ZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgZW5kT2Zmc2V0OiA2fSkpOyAgICAgICAgCisgICAgICAgIGxldCBoaWdobGlnaHQyID0g
bmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVu
dC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVu
dC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CisgICAgICAgIGhpZ2hsaWdodDIuYWRk
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNb
MF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNb
MF0sIGVuZE9mZnNldDogNn0pKTsgICAgICAgIAogCi0gICAgICAgIENTUy5oaWdobGlnaHRzLnNl
dCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Ci0gICAgICAgIENT
Uy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3Vw
Mik7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdo
bGlnaHQxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIs
IGhpZ2hsaWdodDIpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGln
aGxpZ2h0LXRleHQuaHRtbAppbmRleCA0YWJmNDMwMDI4MGE4YTgzMTk3ZTgyMjlkODQ4OGM4MjM2
MjA4NmI1Li5mYTQ3Mjc1MTJmYzE2ZTI3OWYzZDY2NjUwNDc2MzNmMjczNDg0MjJhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LXRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1h
cGkvaGlnaGxpZ2h0LXRleHQuaHRtbApAQCAtMjYsMTkgKzI2LDE5IEBACiAKICAgICA8c2NyaXB0
PgogICAgICAgICBsZXQgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4
dDEnKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJh
bmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hp
bGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hp
bGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAyfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5l
dyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQu
Y2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQu
Y2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAyfSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRS
YW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAzLCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsK
LSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRD
b250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRD
b250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNn0pKTsKKyAg
ICAgICAgbGV0IGhpZ2hsaWdodDIgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAzLCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsK
KyAgICAgICAgaGlnaGxpZ2h0Mi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkpOwogCi0gICAgICAgIGxl
dCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0
T2Zmc2V0OiA3LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9m
ZnNldDogOH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiA5LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNl
dDogMTB9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNl
dDogMTIsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0
OiAxM30pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDMgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0
T2Zmc2V0OiA3LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9m
ZnNldDogOH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0My5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDksIGVu
ZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxMH0pKTsK
KyAgICAgICAgaGlnaGxpZ2h0My5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEyLCBlbmRDb250YWluZXI6
IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTN9KSk7CiAgICAgICAgIAog
Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxp
Z2h0UmFuZ2VHcm91cDEpOwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGln
aGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMu
c2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHRSYW5nZUdyb3VwMyk7CisgICAgICAg
IENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0MSk7Cisg
ICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0
Mik7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGln
aGxpZ2h0Myk7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411890</attachid>
            <date>2020-10-20 11:11:46 -0700</date>
            <delta_ts>2020-10-20 16:12:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217919-20201020111145.patch</filename>
            <type>text/plain</type>
            <size>75959</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiY2FmMTc5NjJkZGEy
MTRkZTNkZWEzMWE3ODYzMDhjMTMzNWQ1My4uNmZmYzY5ZTJlMjJlM2RjYjY2YzA1ZDc5Yzc0Njc1
MGZlZDFlN2UwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEhp
Z2hsaWdodE1hcCB0byBIaWdobGlnaHRSZWdpc3RlciBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB0
byBIaWdobGlnaHQgdG8gbWF0Y2ggY3VycmVudCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIG5ldyBiZWhhdmlvciwg
cmVuYW1lIG9ubHkuCisgICAgICAgIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxp
Z2h0LWFwaS0xLworCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6SGlnaGxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodDo6aW5pdGlhbGl6ZVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGln
aHQ6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0OjphZGRU
b1NldExpa2UpOgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oLgorICAgICAgICAqIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5pZGw6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRNYXAuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmluaXRpYWxp
emVNYXBMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpzZXRGcm9t
TWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6Y2xlYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OnJlbW92ZSk6CisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5oLgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSZWdpc3Rlcjo6bWFwIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRSZWdpc3Rlci5pZGw6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVz
cGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMp
OgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuaDoKKyAgICAgICAgKiBjc3MvRE9NQ1NT
TmFtZXNwYWNlLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmNvbW1vblRlYXJkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpoaWdobGlnaHRSZWdpc3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBk
YXRlSGlnaGxpZ2h0UG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpoaWdo
bGlnaHRNYXApOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFy
a2VkVGV4dHNGb3JIaWdobGlnaHRzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNhbGN1bGF0
ZUhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFu
Z2VEYXRhLmNwcDoKKwogMjAyMC0xMC0xOSAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVTU0lPTihyMjY1MjMxKTogT3Zlcmxh
eTogbm9kZSBpbmZvIHNvbWV0aW1lcyBkcmF3cyBvbiBvbmUgbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCA2ZjEzNjM3MWQ4OWFiYmQ5NmRmYWRiZmYyMTNiN2Y3Nzc4ZDE2MjNhLi40ZmRlY2Iy
NjlkY2JiYzJlZjlkMjA5OThjM2RiZGQ4ZjFjZWM5YTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMjg5LDggKzI4OSw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKLSAgICBNb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRNYXAuaWRsCi0gICAgTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5pZGwKKyAgICBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCisgICAgTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9E
T01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CmluZGV4IDdhNDU0MWQxN2ZlYjNlMDgyODFlYWFmYzA0MzlmYTBiMmE3NmMyOTAuLmNkY2Iy
OTJmNTFmY2U1YWNlMWM3ODkyOTdkZmJkYzlmZjEyMzA2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTI5LDggKzEyOSw4IEBAICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwKICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCi0k
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaWRsCi0kKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbAorJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCiskKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsCiAkKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3crSW5kZXhlZERhdGFiYXNlLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yRGlyZWN0aW9uLmlkbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCBlOTQ3MjkwNjIyMDg5MWFj
ZDYzYjAxOWIwZjkzYTYxYWE2MGIzNDBkLi45NWRkNmU5NmQ0Njg0MjhkZWIxZmJmZGE1NzNkMjI3
YjM2MzBhMmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdApAQCAtMTEwOCwxMCArMTEwOCwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGFzaENoYW5nZUV2ZW50LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGRyTWV0YWRhdGFU
eXBlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
ZHJNZXRhZGF0YVR5cGUuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIaWdobGlnaHRNYXAuY3BwCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodE1hcC5oCi0kKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCi0kKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodFJhbmdlR3JvdXAu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGln
aHRSZWdpc3Rlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSGlnaGxpZ2h0UmVnaXN0ZXIuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHQuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpZ2hsaWdodC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hpc3RvcnkuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIa2RmUGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggMjY5NGYwNjUxYjNlZTY3MmUzYTMwZGRhYmE4MjMwYzU3ZTY5
YjEzNi4uZTRhNTBjNWRiNzNhMjI5ODFlYzQ2NzIyNzJjNWEyOGRmODEwYjFiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNTUsOCArMTU1LDggQEAgSlNfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNr
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bk9wdGlvbnMuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dE1hcC5pZGwgXAotICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
UmVnaXN0ZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93K0luZGV4
ZWREYXRhYmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JEaXJl
Y3Rpb24uaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU2NWI3YTA0NjkxMGIyM2NmZDE2NTcxOTY0ZTliMzNjNTcyMGE4
NzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHQuY3BwCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0LmgiCisKKyNpbmNsdWRlICJJRExUeXBl
cy5oIgorI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgorI2luY2x1ZGUgIkpTU3RhdGljUmFuZ2Uu
aCIKKyNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCisjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NT
dHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAi
U3RhdGljUmFuZ2UuaCIKKyNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSGlnaGxpZ2h0OjpIaWdobGlnaHQo
UmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQoreworICAgIGF1dG8gbXlSYW5nZSA9IFdURk1vdmUo
cmFuZ2UpOworICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgpKTsKK30KKworUmVmPEhpZ2hs
aWdodD4gSGlnaGxpZ2h0OjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChyYW5nZSkpOworfQorCit2b2lkIEhpZ2hsaWdodDo6
aW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYgc2V0KQoreworICAgIGZvciAoYXV0byYg
cmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAgICBzZXQuYWRkPElETEludGVyZmFjZTxT
dGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOworfQorCitzdGF0aWMgdm9pZCByZXBhaW50
UmFuZ2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIGF1dG8gc3RhcnROb2RlID0g
bWFrZVJlZlB0cigmcmFuZ2Uuc3RhcnRDb250YWluZXIoKSk7CisgICAgYXV0byBlbmROb2RlID0g
bWFrZVJlZlB0cigmcmFuZ2UuZW5kQ29udGFpbmVyKCkpOworICAgIGF1dG8gb3JkZXJpbmcgPSBk
b2N1bWVudE9yZGVyKCpzdGFydE5vZGUuZ2V0KCksICplbmROb2RlLmdldCgpKTsKKyAgICBpZiAo
aXNfZXEob3JkZXJpbmcpKSB7CisgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gc3RhcnROb2Rl
LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoaXNfZ3Qob3JkZXJpbmcpKSB7CisgICAgICAgIHN0YXJ0
Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKKyAgICAgICAgZW5kTm9kZSA9ICZyYW5nZS5z
dGFydENvbnRhaW5lcigpOworICAgIH0KKyAgICBhdXRvIHNpbXBsZVJhbmdlID0gbWFrZVNpbXBs
ZVJhbmdlKG1ha2VCb3VuZGFyeVBvaW50QmVmb3JlTm9kZSgqc3RhcnROb2RlLmdldCgpKSwgbWFr
ZUJvdW5kYXJ5UG9pbnRBZnRlck5vZGUoKmVuZE5vZGUuZ2V0KCkpKTsKKyAgICBpZiAoc2ltcGxl
UmFuZ2UpIHsKKyAgICAgICAgZm9yIChhdXRvJiBub2RlIDogaW50ZXJzZWN0aW5nTm9kZXMoc2lt
cGxlUmFuZ2UudmFsdWUoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gbm9k
ZS5yZW5kZXJlcigpKQorICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjpyZW1vdmVGcm9tU2V0TGlrZShjb25z
dCBTdGF0aWNSYW5nZSYgcmFuZ2UpCit7CisgICAgcmV0dXJuIG1fcmFuZ2VzRGF0YS5yZW1vdmVG
aXJzdE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJy
ZW50KSB7CisgICAgICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgICAgIHJldHVybiBjdXJy
ZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOworICAgIH0pOworfQorCit2b2lkIEhpZ2hs
aWdodDo6Y2xlYXJGcm9tU2V0TGlrZSgpCit7CisgICAgZm9yIChhdXRvJiBkYXRhIDogbV9yYW5n
ZXNEYXRhKQorICAgICAgICByZXBhaW50UmFuZ2UoZGF0YS0+cmFuZ2UpOworCisgICAgbV9yYW5n
ZXNEYXRhLmNsZWFyKCk7Cit9CisKK2Jvb2wgSGlnaGxpZ2h0OjphZGRUb1NldExpa2UoU3RhdGlj
UmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChub3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1h
dGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxIaWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7
IHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdlLmdldCgpID09IHJhbmdlOyB9KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJlcGFpbnRSYW5nZShyYW5nZSk7CisgICAgbV9yYW5nZXNEYXRh
LmFwcGVuZChIaWdobGlnaHRSYW5nZURhdGE6OmNyZWF0ZShyYW5nZSkpOworICAgIAorICAgIHJl
dHVybiB0cnVlOworfQorCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
SGlnaGxpZ2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBkZmE1NjgyMjhjODNiMjBlYmU4YTJmOTM1ZWYwZjVk
ZTc1MzBmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQb3NpdGlvbi5o
IgorI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOworY2xh
c3MgRE9NU2V0QWRhcHRlcjsKK2NsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjsK
K2NsYXNzIFN0YXRpY1JhbmdlOworCisKK3N0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZD
b3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGln
aHRSYW5nZURhdGE+IHsKKyAgICBIaWdobGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1JhbmdlPiYm
IHJhbmdlKQorICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFuZ2UpKQorICAgIHsKKyAgICB9Cisg
ICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShSZWY8U3RhdGljUmFuZ2U+
JiYgcmFuZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRS
YW5nZURhdGEoV1RGTW92ZShyYW5nZSkpKTsKKyAgICB9CisgICAgUmVmPFN0YXRpY1JhbmdlPiBy
YW5nZTsKKyAgICBPcHRpb25hbDxQb3NpdGlvbj4gc3RhcnRQb3NpdGlvbjsKKyAgICBPcHRpb25h
bDxQb3NpdGlvbj4gZW5kUG9zaXRpb247Cit9OworCitjbGFzcyBIaWdobGlnaHQgOiBwdWJsaWMg
UmVmQ291bnRlZDxIaWdobGlnaHQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dD4gY3JlYXRlKFN0YXRpY1JhbmdlJik7CisgICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7Cisg
ICAgYm9vbCBhZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmKTsKKyAgICBib29sIHJlbW92ZUZyb21T
ZXRMaWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7CisgICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShE
T01TZXRBZGFwdGVyJik7CisgICAgY29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURhdGE+
PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQorCisgICAgLy8g
RklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgpOwor
cHJpdmF0ZToKKyAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1fcmFuZ2VzRGF0
YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8cmRhcjovL3By
b2JsZW0vNTc3NjA2MTQ+CisgICAgZXhwbGljaXQgSGlnaGxpZ2h0KFJlZjxTdGF0aWNSYW5nZT4m
Jik7Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1ZWI3YTlmMjE2ZTkzMDkxNzYzNjIzNjNkODgxZmZhMzA3
OWRhZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5h
YmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKKyAgICBFeHBvc2VkPVdpbmRvdworXSBpbnRlcmZhY2UgSGlnaGxpZ2h0IHsKKyAgICBjb25z
dHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7CisKKyAgICBzZXRsaWtlPFN0YXRpY1JhbmdlPjsK
KyAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9u
IHN0eWxlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0
L0hpZ2hsaWdodE1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRNYXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzlmZmFjMTg3MGMx
ZjZjMTM1YTA4MDJmYzRlNmMxYzE4YmRhZjA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodE1hcC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgotCi0jaW5jbHVk
ZSAiSURMVHlwZXMuaCIKLSNpbmNsdWRlICJKU0RPTU1hcExpa2UuaCIKLSNpbmNsdWRlICJKU0hp
Z2hsaWdodFJhbmdlR3JvdXAuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAotdm9pZCBI
aWdobGlnaHRNYXA6OmluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImIG1hcCkKLXsKLSAg
ICBmb3IgKGF1dG8mIGtleVZhbHVlIDogbV9tYXApCi0gICAgICAgIG1hcC5zZXQ8SURMRE9NU3Ry
aW5nLCBJRExJbnRlcmZhY2U8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+KGtleVZhbHVlLmtleSwga2V5
VmFsdWUudmFsdWUpOwotfQotCi12b2lkIEhpZ2hsaWdodE1hcDo6c2V0RnJvbU1hcExpa2UoU3Ry
aW5nJiYga2V5LCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJiB2YWx1ZSkKLXsKLSAgICBtX21h
cC5zZXQoV1RGTW92ZShrZXkpLCBXVEZNb3ZlKHZhbHVlKSk7Ci19Ci0KLXZvaWQgSGlnaGxpZ2h0
TWFwOjpjbGVhcigpCi17Ci0gICAgbV9tYXAuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRN
YXA6OnJlbW92ZShjb25zdCBTdHJpbmcmIGtleSkKLXsKLSAgICByZXR1cm4gbV9tYXAucmVtb3Zl
KGtleSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodE1hcC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0TWFwLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwOWNlOTc5MjE1MGZj
NzcxYjhlODkxNDNhMThjMjQzYTY4OGIwNjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0TWFwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCi0jaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIERPTU1hcEFkYXB0ZXI7Ci1jbGFzcyBET01TdHJpbmc7Ci1jbGFz
cyBIaWdobGlnaHRSYW5nZUdyb3VwOwotCi1jbGFzcyBIaWdobGlnaHRNYXAgOiBwdWJsaWMgUmVm
Q291bnRlZDxIaWdobGlnaHRNYXA+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dE1hcD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRNYXApOyB9Ci0K
LSAgICB2b2lkIGluaXRpYWxpemVNYXBMaWtlKERPTU1hcEFkYXB0ZXImKTsKLSAgICB2b2lkIHNl
dEZyb21NYXBMaWtlKFN0cmluZyYmLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4mJik7Ci0gICAg
dm9pZCBjbGVhcigpOwotICAgIGJvb2wgcmVtb3ZlKGNvbnN0IFN0cmluZyYpOwotICAgIAotICAg
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+JiBtYXAoKSBj
b25zdCB7IHJldHVybiBtX21hcDsgfQotICAgIAotcHJpdmF0ZToKLSAgICBIaWdobGlnaHRNYXAo
KSA9IGRlZmF1bHQ7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGlnaHRSYW5nZUdyb3Vw
Pj4gbV9tYXA7Ci19OwotCi19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRNYXAuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTI1
MWYwNThhODRkMjM0OWVhNGVlNzg4M2Q0ZWE4YThiYTgyZTIwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodE1hcC5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotWwotICAgIEVuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLAotICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3NlZD1XaW5kb3cKLV0gaW50ZXJmYWNlIEhp
Z2hsaWdodE1hcCB7Ci0gICAgY29uc3RydWN0b3IoKTsKLQotICAgIG1hcGxpa2U8RE9NU3RyaW5n
LCBIaWdobGlnaHRSYW5nZUdyb3VwPjsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZGQ4NzI5NmNlNzVlYjk5MzE3MDI4NGU0YjEyYWI5YThmOTdlNjM2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgotCi0jaW5jbHVkZSAiSURMVHlwZXMu
aCIKLSNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKLSNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgi
Ci0jaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgotI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgotI2luY2x1ZGUgIlN0
YXRpY1JhbmdlLmgiCi0jaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSA8d3Rm
L1JlZi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUhpZ2hsaWdodFJhbmdlR3JvdXA6Okhp
Z2hsaWdodFJhbmdlR3JvdXAoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQotewotICAgIGF1dG8g
bXlSYW5nZSA9IFdURk1vdmUocmFuZ2UpOwotICAgIGFkZFRvU2V0TGlrZShteVJhbmdlLmdldCgp
KTsKLX0KLQotUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNy
ZWF0ZShTdGF0aWNSYW5nZSYgcmFuZ2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGln
aGxpZ2h0UmFuZ2VHcm91cChyYW5nZSkpOwotfQotCi12b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6
OmluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKLXsKLSAgICBmb3IgKGF1dG8m
IHJhbmdlRGF0YSA6IG1fcmFuZ2VzRGF0YSkKLSAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8
U3RhdGljUmFuZ2U+PihyYW5nZURhdGEtPnJhbmdlKTsKLX0KLQotc3RhdGljIHZvaWQgcmVwYWlu
dFJhbmdlKGNvbnN0IFN0YXRpY1JhbmdlJiByYW5nZSkKLXsKLSAgICBhdXRvKiBzdGFydE5vZGUg
PSAmcmFuZ2Uuc3RhcnRDb250YWluZXIoKTsKLSAgICBhdXRvKiBlbmROb2RlID0gJnJhbmdlLmVu
ZENvbnRhaW5lcigpOwotICAgIGF1dG8gb3JkZXJpbmcgPSBkb2N1bWVudE9yZGVyKCpzdGFydE5v
ZGUsICplbmROb2RlKTsKLSAgICBpZiAoaXNfZXEob3JkZXJpbmcpKSB7Ci0gICAgICAgIGlmIChh
dXRvIHJlbmRlcmVyID0gc3RhcnROb2RlLT5yZW5kZXJlcigpKQotICAgICAgICAgICAgcmVuZGVy
ZXItPnJlcGFpbnQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaXNfZ3Qob3Jk
ZXJpbmcpKSB7Ci0gICAgICAgIHN0YXJ0Tm9kZSA9ICZyYW5nZS5lbmRDb250YWluZXIoKTsKLSAg
ICAgICAgZW5kTm9kZSA9ICZyYW5nZS5zdGFydENvbnRhaW5lcigpOwotICAgIH0KLQotICAgIGF1
dG8gbm9kZSA9IHN0YXJ0Tm9kZTsKLSAgICB3aGlsZSAobm9kZSAhPSBlbmROb2RlKSB7Ci0gICAg
ICAgIGlmIChhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJl
bmRlcmVyLT5yZXBhaW50KCk7Ci0gICAgICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpu
b2RlKTsKLSAgICB9Ci19Ci0KLWJvb2wgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6cmVtb3ZlRnJvbVNl
dExpa2UoY29uc3QgU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIHJldHVybiBtX3Jhbmdlc0Rh
dGEucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VE
YXRhPiYgY3VycmVudCkgewotICAgICAgICByZXBhaW50UmFuZ2UocmFuZ2UpOwotICAgICAgICBy
ZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsKLSAgICB9KTsKLX0KLQot
dm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21TZXRMaWtlKCkKLXsKLSAgICBmb3Ig
KGF1dG8mIGRhdGEgOiBtX3Jhbmdlc0RhdGEpCi0gICAgICAgIHJlcGFpbnRSYW5nZShkYXRhLT5y
YW5nZSk7Ci0KLSAgICBtX3Jhbmdlc0RhdGEuY2xlYXIoKTsKLX0KLQotYm9vbCBIaWdobGlnaHRS
YW5nZUdyb3VwOjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIGlmIChu
b3RGb3VuZCAhPSBtX3Jhbmdlc0RhdGEuZmluZE1hdGNoaW5nKFsmcmFuZ2VdKGNvbnN0IFJlZjxI
aWdobGlnaHRSYW5nZURhdGE+JiBjdXJyZW50KSB7IHJldHVybiBjdXJyZW50LmdldCgpLnJhbmdl
LmdldCgpID09IHJhbmdlOyB9KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlcGFpbnRS
YW5nZShyYW5nZSk7Ci0gICAgbV9yYW5nZXNEYXRhLmFwcGVuZChIaWdobGlnaHRSYW5nZURhdGE6
OmNyZWF0ZShyYW5nZSkpOwotICAgIAotICAgIHJldHVybiB0cnVlOwotfQotCi19Ci0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ4MWU5ZWY3MjMzNDAzZmMzMzg1
ZTE0NjMxZmNiMGE5YzVlYTYwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5n
ZUdyb3VwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlBvc2l0aW9u
LmgiCi0jaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247Ci1j
bGFzcyBET01TZXRBZGFwdGVyOwotY2xhc3MgU3RhdGljUmFuZ2U7Ci1jbGFzcyBQcm9wZXJ0eVNl
dENTU1N0eWxlRGVjbGFyYXRpb247Ci0KLXN0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZD
b3VudGVkPEhpZ2hsaWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGln
aHRSYW5nZURhdGE+IHsKLSAgICAKLSAgICBIaWdobGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1Jh
bmdlPiYmIHJhbmdlKQotICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFuZ2UpKQotICAgIHsKLSAg
ICB9Ci0gICAgCi0gICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShSZWY8
U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIaWdobGlnaHRSYW5nZURhdGEoV1RGTW92ZShyYW5nZSkpKTsKLSAgICB9Ci0gICAgCi0gICAg
UmVmPFN0YXRpY1JhbmdlPiByYW5nZTsKLSAgICBPcHRpb25hbDxQb3NpdGlvbj4gc3RhcnRQb3Np
dGlvbjsKLSAgICBPcHRpb25hbDxQb3NpdGlvbj4gZW5kUG9zaXRpb247Ci19OwotCi1jbGFzcyBI
aWdobGlnaHRSYW5nZUdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VHcm91
cD4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gY3JlYXRl
KFN0YXRpY1JhbmdlJik7Ci0gICAgCi0gICAgdm9pZCBjbGVhckZyb21TZXRMaWtlKCk7Ci0gICAg
Ym9vbCBhZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmKTsKLSAgICBib29sIHJlbW92ZUZyb21TZXRM
aWtlKGNvbnN0IFN0YXRpY1JhbmdlJik7Ci0gICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShET01T
ZXRBZGFwdGVyJik7Ci0gICAgCi0gICAgY29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURh
dGE+PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQotCi0gICAg
Ly8gRklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgp
OwotICAgIAotcHJpdmF0ZToKLSAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1f
cmFuZ2VzRGF0YTsgLy8gRklYTUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8
cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+Ci0gICAgZXhwbGljaXQgSGlnaGxpZ2h0UmFuZ2VHcm91
cChSZWY8U3RhdGljUmFuZ2U+JiYpOwotfTsKLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjVhYTQxZWE2NDVjZTY0ZTdjMDY5NTQyN2U0ZjZjOTBh
YWRlMDA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBFbmFibGVk
QXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKLSAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAot
ICAgIEV4cG9zZWQ9V2luZG93Ci1dIGludGVyZmFjZSBIaWdobGlnaHRSYW5nZUdyb3VwIHsKLSAg
ICBjb25zdHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSk7Ci0KLSAgICBzZXRsaWtlPFN0YXRpY1Jh
bmdlPjsKLSAgICAvLyBGSVhNRTogQWRkIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xh
cmF0aW9uIHN0eWxlOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTIwYjg2OTM0MjVjYmNh
YTA2Y2NiMTQ0ZmUwMmQzY2Y2Mjg1ZThiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIaWdo
bGlnaHRSZWdpc3Rlci5oIgorCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RP
TU1hcExpa2UuaCIKKyNpbmNsdWRlICJKU0hpZ2hsaWdodC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisgICAgCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjppbml0aWFsaXplTWFwTGlrZShET01N
YXBBZGFwdGVyJiBtYXApCit7CisgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IG1fbWFwKQorICAg
ICAgICBtYXAuc2V0PElETERPTVN0cmluZywgSURMSW50ZXJmYWNlPEhpZ2hsaWdodD4+KGtleVZh
bHVlLmtleSwga2V5VmFsdWUudmFsdWUpOworfQorCit2b2lkIEhpZ2hsaWdodFJlZ2lzdGVyOjpz
ZXRGcm9tTWFwTGlrZShTdHJpbmcmJiBrZXksIFJlZjxIaWdobGlnaHQ+JiYgdmFsdWUpCit7Cisg
ICAgbV9tYXAuc2V0KFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1ZSkpOworfQorCit2b2lkIEhp
Z2hsaWdodFJlZ2lzdGVyOjpjbGVhcigpCit7CisgICAgbV9tYXAuY2xlYXIoKTsKK30KKworYm9v
bCBIaWdobGlnaHRSZWdpc3Rlcjo6cmVtb3ZlKGNvbnN0IFN0cmluZyYga2V5KQoreworICAgIHJl
dHVybiBtX21hcC5yZW1vdmUoa2V5KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA1MzBm
ODM2MjNhMzMzYjIwY2ZhNmZkNWRjMGY1NjMzNDQxMDQ2MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmgKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJI
aWdobGlnaHQuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NTWFwQWRhcHRlcjsK
K2NsYXNzIERPTVN0cmluZzsKK2NsYXNzIEhpZ2hsaWdodDsKKworY2xhc3MgSGlnaGxpZ2h0UmVn
aXN0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHRSZWdpc3Rlcj4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmVnaXN0ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSGlnaGxpZ2h0UmVnaXN0ZXIpOyB9CisKKyAgICB2b2lkIGluaXRpYWxpemVNYXBM
aWtlKERPTU1hcEFkYXB0ZXImKTsKKyAgICB2b2lkIHNldEZyb21NYXBMaWtlKFN0cmluZyYmLCBS
ZWY8SGlnaGxpZ2h0PiYmKTsKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgYm9vbCByZW1vdmUoY29u
c3QgU3RyaW5nJik7CisgICAgCisgICAgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFJlZjxIaWdobGln
aHQ+PiYgbWFwKCkgY29uc3QgeyByZXR1cm4gbV9tYXA7IH0KKyAgICAKK3ByaXZhdGU6CisgICAg
SGlnaGxpZ2h0UmVnaXN0ZXIoKSA9IGRlZmF1bHQ7CisgICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxI
aWdobGlnaHQ+PiBtX21hcDsKK307CisKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNmNh
YzYzYmQxNjg2Mzk0MDJhNmFhNzIzMTg4ZWZhNGY3ZmI2ODAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5pZGwKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hs
aWdodEFQSSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEV4cG9zZWQ9V2lu
ZG93CitdIGludGVyZmFjZSBIaWdobGlnaHRSZWdpc3RlciB7CisgICAgY29uc3RydWN0b3IoKTsK
KworICAgIG1hcGxpa2U8RE9NU3RyaW5nLCBIaWdobGlnaHQ+OworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggOTFjNTg3OTg1ZTQwOWNlYjIxMzFiODhhMWNjNGJmN2NhN2Y1YzNlZC4uY2U3MTM3OGE0ZTg2
NTVlM2VmYWI1MTAwNmI5MmI5ZjVmMzIyZjZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTY0LDggKzY0
LDggQEAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbkNvb3JkaW5hdGVzLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9s
b2NhdGlvbi5jcHAKLU1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodE1hcC5jcHAKLU1vZHVsZXMv
aGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuY3BwCitNb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSZWdpc3Rlci5jcHAKK01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodC5jcHAKIE1vZHVs
ZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAKIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHAKIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5j
cHAKQEAgLTMwNTIsOCArMzA1Miw4IEBAIEpTSFRNTFVua25vd25FbGVtZW50LmNwcAogSlNIVE1M
VmlkZW9FbGVtZW50LmNwcAogSlNIYXNoQ2hhbmdlRXZlbnQuY3BwCiBKU0hkck1ldGFkYXRhVHlw
ZS5jcHAKLUpTSGlnaGxpZ2h0TWFwLmNwcAotSlNIaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorSlNI
aWdobGlnaHRSZWdpc3Rlci5jcHAKK0pTSGlnaGxpZ2h0LmNwcAogSlNIaXN0b3J5LmNwcAogSlNI
a2RmUGFyYW1zLmNwcAogSlNIbWFjS2V5UGFyYW1zLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUzOWI3MWM2MTA1ZGY0Njdi
M2IzMGY1MjI5YjdkMGQwNTI5N2I3NWIuLjM5ODI2NjkzNjE3ZGNiZTk0NWQyMTZiNmEwNGUzMjFj
Y2IxNTU4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTc5NDMsMTIgKzc5NDMsMTIgQEAKIAkJNDREOERBOTgxMzk1NDVCRTAw
MzM3Qjc1IC8qIFNWR01QYXRoRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU1ZH
TVBhdGhFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDREOERBOUEx
Mzk1NDVDRDAwMzM3Qjc1IC8qIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ0RTM0OUY3MjQ2RjREQzcwMDY4NDc5QyAvKiBMaWJXZWJSVENFbnVt
VHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ0VudW1U
cmFpdHMuaDsgcGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENFbnVtVHJhaXRzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTRDMjM2OTEyOEEwMDlCNDg0NyAvKiBIaWdobGln
aHRNYXAuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhpZ2hsaWdodE1hcC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdo
bGlnaHRSYW5nZUdyb3VwLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIaWdobGlnaHRSYW5n
ZUdyb3VwLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTAyMzZBNTZB
QzAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdobGlnaHRNYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTEyMzZBNUM4RDAwOUI0ODQ3
IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU1MjIzNkE2NjdGMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hsaWdodE1h
cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTU0MjM2QTY2QTEwMDlC
NDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hs
aWdodFJhbmdlR3JvdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NEU4OEU0
QzIzNjkxMjhBMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lzdGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDRFODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSGlnaGxpZ2h0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDRFODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhpZ2hsaWdodFJlZ2lzdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0RTg4RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0RTg4RTUyMjM2
QTY2N0YwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIaWdobGlnaHRSZWdpc3Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0
RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSGlnaGxpZ2h0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUwQ0VCRUUx
NTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGFiZWxhYmxlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ1MENFQkVGMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhYmVsYWJsZUVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUxMjUwMjAxNURDRTM3RDAwMkY4NEUy
IC8qIFNwaW5CdXR0b25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNwaW5CdXR0b25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE5MzY5LDEyICsxOTM2OSwxMiBAQAogCQk0NEU4OEU0NzIzNjhERjBGMDA5QjQ4NDcgLyog
aGlnaGxpZ2h0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk0NEU4OEU1MjIzNkE2NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmNwcCAqLywKLQkJCQk0
NEU4OEU1MDIzNkE1NkFDMDA5QjQ4NDcgLyogSGlnaGxpZ2h0TWFwLmggKi8sCi0JCQkJNDRFODhF
NEMyMzY5MTI4QTAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5pZGwgKi8sCi0JCQkJNDRFODhFNTQy
MzZBNjZBMTAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuY3BwICovLAotCQkJCTQ0RTg4
RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmggKi8sCi0JCQkJNDRF
ODhFNEQyMzY5MTI4QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJhbmdlR3JvdXAuaWRsICovLAorCQkJ
CTQ0RTg4RTU0MjM2QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHQuY3BwICovLAorCQkJCTQ0RTg4
RTUxMjM2QTVDOEQwMDlCNDg0NyAvKiBIaWdobGlnaHQuaCAqLywKKwkJCQk0NEU4OEU0RDIzNjkx
MjhCMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmlkbCAqLywKKwkJCQk0NEU4OEU1MjIzNkE2NjdGMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwICovLAorCQkJCTQ0RTg4RTUwMjM2QTU2QUMw
MDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovLAorCQkJCTQ0RTg4RTRDMjM2OTEyOEEw
MDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5pZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGhp
Z2hsaWdodDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggOTcwMmNjNTk3MmU5OTU3
OTZiMTc4NGI2OWIwMGI2MjcxNzFmNDQzNy4uMjBkOTVlZTU0ZTA0NzRmODgyMzM2M2ZkOWM1YjE1
ZTY2NzdkYzQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaApAQCAtMTI5LDggKzEyOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBtYWNybyhHUFVUZXh0dXJlVmlldykgXAogICAgIG1hY3JvKEdQVVVuY2FwdHVyZWRFcnJvckV2
ZW50KSBcCiAgICAgbWFjcm8oR1BVVmFsaWRhdGlvbkVycm9yKSBcCi0gICAgbWFjcm8oSGlnaGxp
Z2h0TWFwKSBcCi0gICAgbWFjcm8oSGlnaGxpZ2h0UmFuZ2VHcm91cCkgXAorICAgIG1hY3JvKEhp
Z2hsaWdodFJlZ2lzdGVyKSBcCisgICAgbWFjcm8oSGlnaGxpZ2h0KSBcCiAgICAgbWFjcm8oSFRN
TEF0dGFjaG1lbnRFbGVtZW50KSBcCiAgICAgbWFjcm8oSFRNTEF1ZGlvRWxlbWVudCkgXAogICAg
IG1hY3JvKEhUTUxEaWFsb2dFbGVtZW50KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3Bh
Y2UuY3BwCmluZGV4IDE5ZTNkZDYxZWE5ZDlhYTA5NzU2YzczNDY1NWQ0ZGM3NjcwNjg3MWIuLmQ1
OTI1NzBiODYzMTZkODMxZmI1OTdhMjkxNGI5NzVmYmIzZDQwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9ET01DU1NOYW1lc3BhY2UuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiQ1NTUGFy
c2VyLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lz
dGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODks
OSArODksOSBAQCBTdHJpbmcgRE9NQ1NTTmFtZXNwYWNlOjplc2NhcGUoY29uc3QgU3RyaW5nJiBp
ZGVudCkKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCi1IaWdobGlnaHRNYXAm
IERPTUNTU05hbWVzcGFjZTo6aGlnaGxpZ2h0cyhEb2N1bWVudCYgZG9jdW1lbnQpCitIaWdobGln
aHRSZWdpc3RlciYgRE9NQ1NTTmFtZXNwYWNlOjpoaWdobGlnaHRzKERvY3VtZW50JiBkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gZG9jdW1lbnQuaGlnaGxpZ2h0TWFwKCk7CisgICAgcmV0dXJuIGRv
Y3VtZW50LmhpZ2hsaWdodFJlZ2lzdGVyKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NO
YW1lc3BhY2UuaAppbmRleCAzMDQ3ZTUyNzk4NDQ2Y2Q3NzA2Njc1NTA5NDE5OWEzMWVjMDVlYzdm
Li44NmQyN2ZlOWZmNzE3N2IzZTRhY2RjYmU0ZTllNGY1ODdhZDA0MWFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTUNTU05hbWVzcGFjZS5oCkBAIC0zNywxNSArMzcsMTUgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBIaWdobGlnaHRNYXA7Ci1jbGFzcyBIaWdo
bGlnaHRSYW5nZUdyb3VwOworY2xhc3MgSGlnaGxpZ2h0UmVnaXN0ZXI7CitjbGFzcyBIaWdobGln
aHQ7CiAKIGNsYXNzIERPTUNTU05hbWVzcGFjZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERP
TUNTU05hbWVzcGFjZT4sIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxET01DU1NOYW1lc3BhY2U+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0cyhEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHksIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJiBjb25kaXRpb25UZXh0KTsKICAgICBzdGF0aWMg
U3RyaW5nIGVzY2FwZShjb25zdCBTdHJpbmcmIGlkZW50KTsKLSAgICBzdGF0aWMgSGlnaGxpZ2h0
TWFwJiBoaWdobGlnaHRzKERvY3VtZW50Jik7CisgICAgc3RhdGljIEhpZ2hsaWdodFJlZ2lzdGVy
JiBoaWdobGlnaHRzKERvY3VtZW50Jik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NO
YW1lc3BhY2UuaWRsCmluZGV4IDU2MzU1OTM1NmZjNmVhNTFhOGExYmNjMjIwMjEzZjNkODA4MmMw
NzcuLjM0ZjNkNzI0MzVkMzU1YTJkYTA2YWI2NTc3NTUxNmU1ZWRmNmNlMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuaWRsCkBAIC0zNSw1ICszNSw1IEBACiAgICAgW0NhbGxX
aXRoPURvY3VtZW50XSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0cyhET01TdHJpbmcgcHJvcGVydHks
IERPTVN0cmluZyB2YWx1ZSk7CiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgYm9vbGVh
biBzdXBwb3J0cyhET01TdHJpbmcgY29uZGl0aW9uVGV4dCk7CiAgICAgc3RhdGljIERPTVN0cmlu
ZyBlc2NhcGUoRE9NU3RyaW5nIGlkZW50KTsKLSAgICBbRW5hYmxlZEF0UnVudGltZT1IaWdobGln
aHRBUEksIENhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIEhpZ2hs
aWdodE1hcCBoaWdobGlnaHRzOworICAgIFtFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwg
Q2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgSGlnaGxpZ2h0UmVn
aXN0ZXIgaGlnaGxpZ2h0czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwODUzNTg5
ZWFiYWMzNWU3NmFiYTZmMjgyYWU1NzZjNTkyZTFlOGU1Li42ZTVmMDFkOWMzMmZkMjI2NDVhMzJi
NDAwNjBjYjA0YjFiMTk3NjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExMSw3ICsx
MTEsNyBAQAogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBQYXJz
ZXJzLmgiCiAjaW5jbHVkZSAiSGFzaENoYW5nZUV2ZW50LmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0
TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJIaXN0b3J5
LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIklkbGVDYWxsYmFja0Nv
bnRyb2xsZXIuaCIKQEAgLTc5Miw4ICs3OTIsOCBAQCB2b2lkIERvY3VtZW50Ojpjb21tb25UZWFy
ZG93bigpCiAKICAgICBjbGVhclNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcigpOwogICAgIAot
ICAgIGlmIChtX2hpZ2hsaWdodE1hcCkKLSAgICAgICAgbV9oaWdobGlnaHRNYXAtPmNsZWFyKCk7
CisgICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1faGlnaGxpZ2h0UmVnaXN0
ZXItPmNsZWFyKCk7CiAKICAgICBtX3BlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3QgPSBudWxs
cHRyOwogCkBAIC0yNzY3LDE4ICsyNzY3LDE4IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gRG9jdW1l
bnQ6OmNyZWF0ZVBhcnNlcigpCiAgICAgcmV0dXJuIFhNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUo
KnRoaXMsIHZpZXcoKSk7CiB9CiAKLUhpZ2hsaWdodE1hcCYgRG9jdW1lbnQ6OmhpZ2hsaWdodE1h
cCgpCitIaWdobGlnaHRSZWdpc3RlciYgRG9jdW1lbnQ6OmhpZ2hsaWdodFJlZ2lzdGVyKCkKIHsK
LSAgICBpZiAoIW1faGlnaGxpZ2h0TWFwKQotICAgICAgICBtX2hpZ2hsaWdodE1hcCA9IEhpZ2hs
aWdodE1hcDo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuICptX2hpZ2hsaWdodE1hcDsKKyAgICBpZiAo
IW1faGlnaGxpZ2h0UmVnaXN0ZXIpCisgICAgICAgIG1faGlnaGxpZ2h0UmVnaXN0ZXIgPSBIaWdo
bGlnaHRSZWdpc3Rlcjo6Y3JlYXRlKCk7CisgICAgcmV0dXJuICptX2hpZ2hsaWdodFJlZ2lzdGVy
OwogfQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKQogewogICAg
IFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7Ci0gICAgaWYg
KG1faGlnaGxpZ2h0TWFwKSB7Ci0gICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogbV9oaWdo
bGlnaHRNYXAtPm1hcCgpKSB7CisgICAgaWYgKG1faGlnaGxpZ2h0UmVnaXN0ZXIpIHsKKyAgICAg
ICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodFJlZ2lzdGVyLT5tYXAoKSkgewog
ICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdl
c0RhdGEoKSkgewogICAgICAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0YXJ0UG9zaXRpb24g
JiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGRkODgzYjJhMDdjNTYyMzZlY2NmZDUwNDVhYWU2MDZi
Mzk2ZTg3NGYuLjkzZmI3NDhhN2Y5NTIzMWQ1ZDY5OGVhZTQwMjBhM2U5MTM1YjYwMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xNTYsNyArMTU2LDcgQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVu
dDsKIGNsYXNzIEhUTUxNYXBFbGVtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNz
IEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBIaWdobGlnaHRNYXA7CitjbGFzcyBIaWdobGlnaHRS
ZWdpc3RlcjsKIGNsYXNzIEhpdFRlc3RMb2NhdGlvbjsKIGNsYXNzIEhpdFRlc3RSZXF1ZXN0Owog
Y2xhc3MgSGl0VGVzdFJlc3VsdDsKQEAgLTE1NjksNyArMTU2OSw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciYgdGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXIoKTsKICAgICBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciogdGV4dE1hbmlw
dWxhdGlvbkNvbnRyb2xsZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1fdGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXIuZ2V0KCk7IH0KICAgICAgICAgCi0gICAgSGlnaGxpZ2h0TWFwJiBoaWdobGlnaHRN
YXAoKTsKKyAgICBIaWdobGlnaHRSZWdpc3RlciYgaGlnaGxpZ2h0UmVnaXN0ZXIoKTsKICAgICB2
b2lkIHVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCiAgICAgYm9vbCBhbGxvd3NDb250ZW50
SmF2YVNjcmlwdCgpIGNvbnN0OwpAQCAtMTkyNCw3ICsxOTI0LDcgQEAgcHJpdmF0ZToKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8VGV4dEF1dG9TaXppbmc+IG1fdGV4dEF1dG9TaXppbmc7CiAjZW5kaWYK
ICAgICAgICAgCi0gICAgUmVmUHRyPEhpZ2hsaWdodE1hcD4gbV9oaWdobGlnaHRNYXA7CisgICAg
UmVmUHRyPEhpZ2hsaWdodFJlZ2lzdGVyPiBtX2hpZ2hsaWdodFJlZ2lzdGVyOwogCiAgICAgVGlt
ZXIgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDY1ZTMyYTQ4NTBkNjdjY2QwMDRlMmE3NTZi
MGYxYjdkNzhkMWJjYTcuLjM5ZWIxNTEwOWFhNmMwMmE2ODZiZTA0ZGUwY2RkNmIwMzdjOGZjOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAgLTMzLDcg
KzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rp
b24uaCIKLSNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCisjaW5jbHVkZSAiSGlnaGxp
Z2h0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5j
bHVkZSAiUmFuZ2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNw
cAppbmRleCBjYmMwM2E3ZGI5OGMxMTUzNmIzNzEyNzNhZmE4YTM1MDM2ZDE2NzU2Li40NzFiNWU3
M2RmNTdkZjc4NTA1NDQwMDhhMDI1NDE4MTQ5MDIyNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIaWdobGlnaHRE
YXRhLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVn
aXN0ZXIuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZm
ZXIuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94U3R5bGUuaCIKQEAgLTEwNTEsNyArMTA1MSw3
IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFya2VkVGV4dHNG
b3JIaWdobGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgYXV0byYgcGFyZW50UmVuZGVyZXIgPSBw
YXJlbnQoKS0+cmVuZGVyZXIoKTsKICAgICBhdXRvJiBwYXJlbnRTdHlsZSA9IHBhcmVudFJlbmRl
cmVyLnN0eWxlKCk7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGlnaHREYXRhOwotICAgIGZvciAo
YXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIoKS5kb2N1bWVudCgpLmhpZ2hsaWdodE1hcCgpLm1h
cCgpKSB7CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiByZW5kZXJlcigpLmRvY3VtZW50KCku
aGlnaGxpZ2h0UmVnaXN0ZXIoKS5tYXAoKSkgewogICAgICAgICBhdXRvIHJlbmRlclN0eWxlID0g
cGFyZW50UmVuZGVyZXIuZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGln
aHQsIGhpZ2hsaWdodC5rZXkgfSwgJnBhcmVudFN0eWxlKTsKICAgICAgICAgaWYgKCFyZW5kZXJT
dHlsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggYTcyZjFlZDc3OTcyYTQ0NzYxZGEwNzUxZmY0MjdhNTJh
NjBiOWNiMy4uM2NlZTAxZjQ1OTUxYzE1OWE5ZGEyODMzMWE3ZTYwY2RmZTdlNjQ3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJ
ZGlvbXMuaCIKICNpbmNsdWRlICJIaWdobGlnaHREYXRhLmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0
TWFwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0UmVnaXN0ZXIuaCIKICNpbmNsdWRlICJJbmxpbmVF
bGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgiCkBAIC0xNTQsNyArMTU0
LDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGRyYWdnZWRDb250ZW50Q29udGFpbnNSZXBsYWNlZEVs
ZW1lbnQoY29uc3QgVmVjdG9yPFJlbmRlcmVkRG8KIENvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxj
dWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0CiB7CiAgICAgSGlnaGxpZ2h0RGF0YSBoaWdobGln
aHREYXRhOwotICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdobGlnaHRN
YXAoKS5tYXAoKSkgeworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdo
bGlnaHRSZWdpc3RlcigpLm1hcCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDog
aGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKICAgICAgICAgICAgIGlmICghaGlnaGxp
Z2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdl
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNw
cAppbmRleCBmNDk3MTY5ZTI3YmQ0YTcyMDcxNjM3ZjYwYzBkMWZmOTFhNTcxNzk4Li5iZTY3ZTYw
ZTc1OTkyNGVjZmFkZGVlOTJlNmM3OWQ1MjNlNmU3ZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgotI2luY2x1
ZGUgIkhpZ2hsaWdodFJhbmdlR3JvdXAuaCIKKyNpbmNsdWRlICJIaWdobGlnaHQuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNpbmNsdWRlICJSYW5nZS5o
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZhY2Vz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNl
cy1leHBlY3RlZC50eHQKaW5kZXggYjMwNTFjM2ZkM2ZhNjMzYzBjNjc1YjdkNDlmN2ZmZTdhNzMy
YzgyOS4uZjlmMzI5ZDA2MWIzZTNhZTY4ZDExNWIwZWJlNDg5YzdlZDk3MWM5NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMtZXhwZWN0
ZWQudHh0CkBAIC0xLDE4ICsxLDE4IEBACi1UZXN0cyB0aGUgaW50ZXJmYWNlcyBvZiB0aGUgaGln
aGxpZ2h0IEFQSSwgd2hpY2ggaW5jbHVkZSBIaWdobGlnaHRSYW5nZUdyb3VwLCBIaWdobGlnaHRN
YXAsIGFuZCBleHRlbnNpb25zIHRvIHRoZSBDU1MgbmFtZXNwYWNlLgorVGVzdHMgdGhlIGludGVy
ZmFjZXMgb2YgdGhlIGhpZ2hsaWdodCBBUEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0LCBIaWdo
bGlnaHRSZWdpc3RlciwgYW5kIGV4dGVuc2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2UuCiAKIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCiBUZXN0aW5nIEhpZ2hsaWdodDoKLVBBU1MgSGln
aGxpZ2h0UmFuZ2VHcm91cCBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKLVBBU1MgdHlwZW9m
IEhpZ2hsaWdodFJhbmdlR3JvdXAgaXMgImZ1bmN0aW9uIgotUEFTUyBuZXcgSGlnaGxpZ2h0UmFu
Z2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBz
dGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9
KSkgaW5zdGFuY2VvZiBIaWdobGlnaHRSYW5nZUdyb3VwIGlzIHRydWUKLVBBU1MgSGlnaGxpZ2h0
TWFwIGluc3RhbmNlb2YgRnVuY3Rpb24gaXMgdHJ1ZQotUEFTUyB0eXBlb2YgSGlnaGxpZ2h0TWFw
IGlzICJmdW5jdGlvbiIKLVBBU1MgbmV3IEhpZ2hsaWdodE1hcCgpIGluc3RhbmNlb2YgSGlnaGxp
Z2h0TWFwIGlzIHRydWUKLVBBU1MgbmV3IEhpZ2hsaWdodE1hcCgpLnNldCgiZm9vLXN0eWxpbmci
LG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIGVuZE9mZnNldDogMn0pKSkgaXMgZGVmaW5lZC4KK1BBU1MgSGlnaGxpZ2h0IGluc3RhbmNl
b2YgRnVuY3Rpb24gaXMgdHJ1ZQorUEFTUyB0eXBlb2YgSGlnaGxpZ2h0IGlzICJmdW5jdGlvbiIK
K1BBU1MgbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBl
bmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHQgaXMgdHJ1ZQorUEFTUyBIaWdobGln
aHRSZWdpc3RlciBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKK1BBU1MgdHlwZW9mIEhpZ2hs
aWdodFJlZ2lzdGVyIGlzICJmdW5jdGlvbiIKK1BBU1MgbmV3IEhpZ2hsaWdodFJlZ2lzdGVyKCkg
aW5zdGFuY2VvZiBIaWdobGlnaHRSZWdpc3RlciBpcyB0cnVlCitQQVNTIG5ldyBIaWdobGlnaHRS
ZWdpc3RlcigpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRh
aW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBkZWZpbmVkLgogUEFTUyBD
U1MuaGlnaGxpZ2h0cyBpcyBkZWZpbmVkLgotUEFTUyBDU1MuaGlnaGxpZ2h0cy5zZXQoImZvby1z
dHlsaW5nIixuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1
bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkpIGlzIENTUy5oaWdobGlnaHRzCitQQVNTIENTUy5o
aWdobGlnaHRzLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRh
aW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBDU1MuaGlnaGxpZ2h0cwog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy5odG1sCmluZGV4IDU4ZjQ5
NGNhMmZkMTlhYjc0Zjg5Yzg5ODA5YTRlYmVlMGFmN2ZhZGUuLjIyMWI0NTNkYmZhNzYyYTA1NDE2
MGRmZmJiN2I3NThiMDhjZDFhMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9o
aWdobGlnaHQtaW50ZXJmYWNlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdo
bGlnaHQtaW50ZXJmYWNlcy5odG1sCkBAIC00LDE4ICs0LDE4IEBACiA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotZGVzY3JpcHRpb24o
IlRlc3RzIHRoZSBpbnRlcmZhY2VzIG9mIHRoZSBoaWdobGlnaHQgQVBJLCB3aGljaCBpbmNsdWRl
IEhpZ2hsaWdodFJhbmdlR3JvdXAsIEhpZ2hsaWdodE1hcCwgYW5kIGV4dGVuc2lvbnMgdG8gdGhl
IENTUyBuYW1lc3BhY2UuIik7CitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGludGVyZmFjZXMgb2Yg
dGhlIGhpZ2hsaWdodCBBUEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0LCBIaWdobGlnaHRSZWdp
c3RlciwgYW5kIGV4dGVuc2lvbnMgdG8gdGhlIENTUyBuYW1lc3BhY2UuIik7CiAKIGRlYnVnKCJU
ZXN0aW5nIEhpZ2hsaWdodDoiKTsKLXNob3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0UmFuZ2VHcm91cCBp
bnN0YW5jZW9mIEZ1bmN0aW9uIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdo
bGlnaHRSYW5nZUdyb3VwIiwgImZ1bmN0aW9uIik7Ci1zaG91bGRCZVRydWUoIm5ldyBIaWdobGln
aHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNl
dDogMn0pKSBpbnN0YW5jZW9mIEhpZ2hsaWdodFJhbmdlR3JvdXAiKTsKLXNob3VsZEJlVHJ1ZSgi
SGlnaGxpZ2h0TWFwIGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygidHlwZW9mIEhpZ2hsaWdodE1hcCIsICJmdW5jdGlvbiIpOwotc2hvdWxkQmVUcnVlKCJuZXcg
SGlnaGxpZ2h0TWFwKCkgaW5zdGFuY2VvZiBIaWdobGlnaHRNYXAiKTsKLXNob3VsZEJlRGVmaW5l
ZCgnbmV3IEhpZ2hsaWdodE1hcCgpLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGlnaHRSYW5n
ZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0
YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0p
KSknKTsKK3Nob3VsZEJlVHJ1ZSgiSGlnaGxpZ2h0IGluc3RhbmNlb2YgRnVuY3Rpb24iKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIEhpZ2hsaWdodCIsICJmdW5jdGlvbiIpOworc2hv
dWxkQmVUcnVlKCJuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIGVuZE9mZnNldDogMn0pKSBpbnN0YW5jZW9mIEhpZ2hsaWdodCIpOworc2hvdWxkQmVUcnVl
KCJIaWdobGlnaHRSZWdpc3RlciBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInR5cGVvZiBIaWdobGlnaHRSZWdpc3RlciIsICJmdW5jdGlvbiIpOworc2hvdWxk
QmVUcnVlKCJuZXcgSGlnaGxpZ2h0UmVnaXN0ZXIoKSBpbnN0YW5jZW9mIEhpZ2hsaWdodFJlZ2lz
dGVyIik7CitzaG91bGRCZURlZmluZWQoJ25ldyBIaWdobGlnaHRSZWdpc3RlcigpLnNldCgiZm9v
LXN0eWxpbmciLG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
ZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9k
eSwgZW5kT2Zmc2V0OiAyfSkpKScpOwogc2hvdWxkQmVEZWZpbmVkKCdDU1MuaGlnaGxpZ2h0cycp
Owotc2hvdWxkQmUoJ0NTUy5oaWdobGlnaHRzLnNldCgiZm9vLXN0eWxpbmciLG5ldyBIaWdobGln
aHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJv
ZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNl
dDogMn0pKSknLCAnQ1NTLmhpZ2hsaWdodHMnKTsKK3Nob3VsZEJlKCdDU1MuaGlnaGxpZ2h0cy5z
ZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250
YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3Vt
ZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSknLCAnQ1NTLmhpZ2hsaWdodHMnKTsKIAogPC9zY3Jp
cHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0
LW1hcC1hbmQtZ3JvdXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hs
aWdodC1tYXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dAppbmRleCBmYjEzMjE5YmIyZTlkY2ZmNWQx
Y2U3M2Q3MzBkNzBmYWRjMTg5YWVmLi5jYTlhNDkwOTQzM2FiMWRjOTA1Yzk2M2I2Zjg5MjE0MTA2
ZGI3OTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1h
bmQtZ3JvdXAtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGln
aHQtbWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw2IEBACi1QQVNTIGhpZ2hs
aWdodFJhbmdlR3JvdXAxLnNpemUgaXMgMQotUEFTUyBoaWdobGlnaHRSYW5nZUdyb3VwMi5zaXpl
IGlzIDIKLVBBU1MgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuc2l6ZSBpcyAzCitQQVNTIGhpZ2hsaWdo
dDEuc2l6ZSBpcyAxCitQQVNTIGhpZ2hsaWdodDIuc2l6ZSBpcyAyCitQQVNTIGhpZ2hsaWdodDMu
c2l6ZSBpcyAzCiBQQVNTIENTUy5oaWdobGlnaHRzLnNpemUgaXMgMwogUEFTUyBDU1MuaGlnaGxp
Z2h0cy5oYXMoImV4YW1wbGUtaGlnaGxpZ2h0MSIpIGlzIHRydWUKIFBBU1MgQ1NTLmhpZ2hsaWdo
dHMuaGFzKCJleGFtcGxlLWhpZ2hsaWdodDIiKSBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAuaHRtbCBiL0xheW91dFRlc3Rz
L2hpZ2hsaWdodC9oaWdobGlnaHQtbWFwLWFuZC1ncm91cC5odG1sCmluZGV4IDViNGJmYWIwYWNl
MzRhYTE1YTVkNDE4Nzc4MWIwNTU2M2QxNjE1YjAuLmFlNDljZmExOGFlOThjOWJjYzI3NmJiMmQ5
NzQwMjJmODAyMmFkMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGln
aHQtbWFwLWFuZC1ncm91cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGln
aHQtbWFwLWFuZC1ncm91cC5odG1sCkBAIC0yMCwyMyArMjAsMjMgQEAKICAgICA8Ym9keT48c3Bh
bj5PbmUgPC9zcGFuPjxzcGFuPnR3byA8L3NwYW4+PHNwYW4+dGhyZWUuLi48L3NwYW4+CiAKICAg
ICA8c2NyaXB0PgotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxp
Z2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5i
b2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZz
ZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwg
ZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSk7CiAKLSAgICAgICAg
bGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDIs
IGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAzfSkpOwotICAgICAgICBo
aWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
ZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9k
eSwgZW5kT2Zmc2V0OiA1fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MiA9IG5ldyBIaWdobGln
aHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRP
ZmZzZXQ6IDIsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAzfSkpOwor
ICAgICAgICBoaWdobGlnaHQyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5
LCBlbmRPZmZzZXQ6IDV9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0g
bmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
ZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9k
eSwgZW5kT2Zmc2V0OiA4fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6
IDEwLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMTJ9KSk7Ci0gICAg
ICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiBkb2N1bWVu
dC5ib2R5LCBlbmRPZmZzZXQ6IDZ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQzID0gbmV3IEhp
Z2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBz
dGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDh9
KSk7CisgICAgICAgIGhpZ2hsaWdodDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiBkb2N1bWVu
dC5ib2R5LCBlbmRPZmZzZXQ6IDEyfSkpOworICAgICAgICBoaWdobGlnaHQzLmFkZChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogNSwg
ZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDZ9KSk7CiAgICAgICAgIAog
Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxp
Z2h0UmFuZ2VHcm91cDEpOwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGln
aGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMu
c2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHRSYW5nZUdyb3VwMyk7CisgICAgICAg
IENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0MSk7Cisg
ICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0
Mik7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGln
aGxpZ2h0Myk7CiAKLSAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodFJhbmdlR3JvdXAxLnNpemUi
LCIxIik7Ci0gICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHRSYW5nZUdyb3VwMi5zaXplIiwiMiIp
OwotICAgICAgICBzaG91bGRCZSgiaGlnaGxpZ2h0UmFuZ2VHcm91cDMuc2l6ZSIsIjMiKTsKKyAg
ICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodDEuc2l6ZSIsIjEiKTsKKyAgICAgICAgc2hvdWxkQmUo
ImhpZ2hsaWdodDIuc2l6ZSIsIjIiKTsKKyAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodDMuc2l6
ZSIsIjMiKTsKIAogICAgICAgICBzaG91bGRCZSgiQ1NTLmhpZ2hsaWdodHMuc2l6ZSIsIjMiKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQt
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZy
YW1lLmh0bWwKaW5kZXggODg0ODg3YjgyN2U2OTVhMDg0MDk5NGViYjAwNzE3YTRiMTJhMTkzYS4u
NTA1M2VlZDBkYzg5OTVkNTBlNDAwZGY0YTk5Yjk3MTNkNGNmMDY1OCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFtZS5odG1sCkBAIC0x
Myw2ICsxMyw2IEBACiAKIDxzY3JpcHQ+CiBsZXQgaGlnaGxpZ2h0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2hpZ2hsaWdodCcpOwotbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBuZXcgSGln
aGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBoaWdobGln
aHQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaGlnaGxpZ2h0
LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKLUNTUy5oaWdobGlnaHRzLnNldCgiZXhh
bXBsZSIsIGhpZ2hsaWdodFJhbmdlR3JvdXApOworbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxp
Z2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGhpZ2hsaWdodC5jaGlsZE5vZGVz
WzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiBoaWdobGlnaHQuY2hpbGROb2Rlc1sw
XSwgZW5kT2Zmc2V0OiA0fSkpOworQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlIiwgaGlnaGxp
Z2h0MSk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbAppbmRleCA0NTc3
MTVhMjEwMzVlNjVkMTg1MzNkZTAwN2Q5MWRlNzAwZTYzMjRlLi4xNTVkZDhiNGNmZjQzMzc5ZmZk
MDE1ZjdjZTdmNmZlZGJjOTIwMTc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9j
c3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCkBA
IC0xOCwxMCArMTgsMTAgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGxldCBpbWFnZUVsZW1l
bnQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZzEnKTsKLSAgICAgICAgbGV0IGhpZ2hs
aWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNl
dDogMCwgZW5kQ29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNl
dDogMX0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3Rh
cnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBl
bmRPZmZzZXQ6IDF9KSk7CiAKIAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUt
aGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdo
dHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHQxKTsKIAogICAgIDwvc2NyaXB0
PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdo
bGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9zcy1l
bGVtZW50cy5odG1sCmluZGV4IGJhZjcxZTA5NmU3ZDc0NGE0NDQxNzMyNWYwYWFiZTI2MmI2OTc5
OWEuLjVkNmM2MDFjYzI1N2QyNmY0MDk3ZjRhYzU1MDJhNWM5N2QyMjliMWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4
dC1hY3Jvc3MtZWxlbWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwKQEAgLTM0
LDE2ICszNCwxNiBAQAogICAgICAgICBsZXQgdGV4dEVsZW1lbnQzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RleHQzJyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGV4dDQnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50NSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0NScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VH
cm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENv
bnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogN30pKTsKKyAg
ICAgICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNCwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA3fSkp
OwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5n
ZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGls
ZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNo
aWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91
cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGls
ZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLmNo
aWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNX0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDIgPSBu
ZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50
MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1l
bnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0Mi5h
ZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9k
ZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDMuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiA1fSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdy
b3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250
YWluZXI6IHRleHRFbGVtZW50My5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENv
bnRhaW5lcjogdGV4dEVsZW1lbnQ1LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTJ9KSk7Cisg
ICAgICAgIGxldCBoaWdobGlnaHQzID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDMuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEw
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50NS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEy
fSkpOwogCi0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwg
aGlnaGxpZ2h0UmFuZ2VHcm91cDEpOwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1w
bGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKLSAgICAgICAgQ1NTLmhpZ2hs
aWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHRSYW5nZUdyb3VwMyk7Cisg
ICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0
MSk7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGln
aGxpZ2h0Mik7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQz
IiwgaGlnaGxpZ2h0Myk7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LXRleHQtY2FzY2FkZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGln
aHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbAppbmRleCBjZGU5N2M0YmZmNzRiN2Y3
MjhmZjI5N2I3ZWIzODcwODFiNjhiMGRlLi4yZjcwY2ExNmJlM2UzMmIzYjhkZjA0NWU2NTM5NzA2
OTA4MjI4OGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hs
aWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwK
QEAgLTI2LDEwICsyNiwxMCBAQAogICAgICAgICBsZXQgdGV4dEVsZW1lbnQxID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RleHQxJyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDInKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50MyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MycpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0
UmFuZ2VHcm91cCA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMCwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAzfSkp
OwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVu
ZENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogOX0pKTsK
KyAgICAgICAgbGV0IGhpZ2hsaWdodCA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAw
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDN9
KSk7CisgICAgICAgIGhpZ2hsaWdodC5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5l
cjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWlu
ZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDl9KSk7CiAKLSAgICAg
ICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdl
R3JvdXApOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0Iiwg
aGlnaGxpZ2h0KTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4
dC1kZWNvcmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGln
aHQtYXBpL2hpZ2hsaWdodC10ZXh0LWRlY29yYXRpb25zLmh0bWwKaW5kZXggMjQ0YmZjOThhMmEw
NmE4MzE2YWQ3M2Y5M2M0MWFkMzk4ZWYzNTM4ZS4uOTNjYTE1ZmNkOTZiN2RhZDE3NTEyY2ZiZGY5
YjczODY3YTc4OWNhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWRlY29yYXRpb25zLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWRlY29y
YXRpb25zLmh0bWwKQEAgLTUxLDEzICs1MSwxMyBAQAogCiAgICAgPHNjcmlwdD4KICAgICAgICAg
bGV0IHRleHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQxJyk7Ci0gICAg
ICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0s
IHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0s
IGVuZE9mZnNldDogMn0pKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3
IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4
dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4
dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkpOwotICAgICAgICBsZXQgaGln
aGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNl
dDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0
OiAxM30pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0
T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9m
ZnNldDogMn0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDIgPSBuZXcgSGlnaGxpZ2h0KG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0
YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogNn0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDMgPSBuZXcgSGlnaGxpZ2h0KG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0s
IHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBd
LCBlbmRPZmZzZXQ6IDEzfSkpOwogCi0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBs
ZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOwotICAgICAgICBDU1MuaGlnaGxp
Z2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKLSAg
ICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHRS
YW5nZUdyb3VwMyk7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGln
aHQxIiwgaGlnaGxpZ2h0MSk7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1o
aWdobGlnaHQyIiwgaGlnaGxpZ2h0Mik7CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhh
bXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0Myk7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwYWludC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
Y3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGFpbnQuaHRtbAppbmRleCBk
MzhjOTQwYTYxZWJjNThlYzY1ZDlhODZlMjUzOGE2NzQzNjNhMWM3Li40MTg4YmU1N2E1NGYwYWUw
NDc1YTliYjRjM2VhYmUzZjYyMTA1ODg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwYWludC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4
dC1yZXBhaW50Lmh0bWwKQEAgLTUsNyArNSw3IEBACiAgICAgPHRpdGxlPk11bHRpcGxlIGN1c3Rv
bSBoaWdobGlnaHQgcHNldWRvIGVsZW1lbnRzLjwvdGl0bGU+CiAgICAgPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWhpZ2hsaWdodC1hcGktMS8jY3Jl
YXRpbmctaGlnaGxpZ2h0cyI+CiAgICAgPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iaGlnaGxpZ2h0
LXRleHQtZXhwZWN0ZWQuaHRtbCI+Ci0gICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJI
aWdobGlnaHQgUmFuZ2VzIHNob3VsZCBiZSBhYmxlIHRvIGJlIGFkZGVkIGFuZCByZW1vdmVkIGZy
b20gdGhlIEhpZ2hsaWdodFJhbmdlR3JvdXAuIj4KKyAgICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9IkhpZ2hsaWdodCBSYW5nZXMgc2hvdWxkIGJlIGFibGUgdG8gYmUgYWRkZWQgYW5kIHJl
bW92ZWQgZnJvbSB0aGUgSGlnaGxpZ2h0LiI+CiAgICAgPHN0eWxlPgogICAgICAgICA6OmhpZ2hs
aWdodChleGFtcGxlLWhpZ2hsaWdodCkgewogICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
Ymx1ZTsKQEAgLTQyLDEyICs0MiwxMiBAQAogICAgICAgICAgICAgbGV0IHJhbmdlMiA9IG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0
YXJ0T2Zmc2V0OiAzLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogNH0pOwogICAgICAgICAgICAgbGV0IHJhbmdlMyA9IG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA4
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTJ9
KTsKIAotICAgICAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdo
dFJhbmdlR3JvdXAocmFuZ2UxKTsKLSAgICAgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhh
bXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7CisgICAgICAgICAgICBsZXQg
aGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQocmFuZ2UxKTsKKyAgICAgICAgICAgIENTUy5oaWdo
bGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHQxKTsKIAotICAgICAgICAg
ICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDEuYWRkKHJhbmdlMik7Ci0gICAgICAgICAgICBoaWdobGln
aHRSYW5nZUdyb3VwMS5kZWxldGUocmFuZ2UxKTsKLSAgICAgICAgICAgIGhpZ2hsaWdodFJhbmdl
R3JvdXAxLmFkZChyYW5nZTMpOworICAgICAgICAgICAgaGlnaGxpZ2h0MS5hZGQocmFuZ2UyKTsK
KyAgICAgICAgICAgIGhpZ2hsaWdodDEuZGVsZXRlKHJhbmdlMSk7CisgICAgICAgICAgICBoaWdo
bGlnaHQxLmFkZChyYW5nZTMpOwogCiAgICAgICAgICAgICB2YXIgcmVwYWludFJlY3RzID0gd2lu
ZG93LmludGVybmFscy5yZXBhaW50UmVjdHNBc1RleHQoKTsKICAgICAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc3RvcFRyYWNraW5nUmVwYWludHMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LXRleHQtcmVwbGFjZS5odG1sCmluZGV4IDcwMTNhNjYzMzVlYmU0NjI1YTQ0YzdlNjNjZmRmMDdi
NjcyY2FiNTIuLjkxM2NiNWU0Y2Y0YTY2NTI1MjAyMDk0YWRjMzYxNDUxZTAxYTlkNTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGln
aHQtdGV4dC1yZXBsYWNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbApAQCAtMTgsMTMgKzE4LDEz
IEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBsZXQgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGV4dDEnKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAx
ID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5l
cjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5l
cjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAyfSkpOworICAgICAgICBs
ZXQgaGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRh
aW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRh
aW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAyfSkpOwogCi0gICAg
ICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0s
IHN0YXJ0T2Zmc2V0OiAzLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0s
IGVuZE9mZnNldDogNH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0
YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogNn0pKTsgICAgICAgIAorICAgICAgICBsZXQgaGlnaGxpZ2h0MiA9IG5ldyBIaWdo
bGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGRO
b2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOworICAgICAgICBoaWdobGlnaHQyLmFkZChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFy
dE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRP
ZmZzZXQ6IDZ9KSk7ICAgICAgICAKIAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1w
bGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOwotICAgICAgICBDU1MuaGlnaGxp
Z2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIpOworICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0MSk7
CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGln
aHQyKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0Lmh0bWwKaW5kZXggNGFiZjQzMDAyODBhOGE4MzE5N2U4MjI5ZDg0ODhjODIzNjIwODZiNS4u
ZmE0NzI3NTEyZmMxNmUyNzlmM2Q2NjY1MDQ3NjMzZjI3MzQ4NDIyYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hs
aWdodC10ZXh0Lmh0bWwKQEAgLTI2LDE5ICsyNiwxOSBAQAogCiAgICAgPHNjcmlwdD4KICAgICAg
ICAgbGV0IHRleHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQxJyk7Ci0g
ICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3Vw
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNb
MF0sIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNb
MF0sIGVuZE9mZnNldDogMn0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxp
Z2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9k
ZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9k
ZXNbMF0sIGVuZE9mZnNldDogMn0pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7Ci0gICAgICAg
IGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7CisgICAgICAgIGxl
dCBoaWdobGlnaHQyID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CisgICAgICAg
IGhpZ2hsaWdodDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVt
ZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVt
ZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNn0pKTsKIAotICAgICAgICBsZXQgaGlnaGxp
Z2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uo
e3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDog
NywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDh9
KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogOSwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEwfSkp
OwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEyLCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTN9KSk7
CisgICAgICAgIGxldCBoaWdobGlnaHQzID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uo
e3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDog
NywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDh9
KSk7CisgICAgICAgIGhpZ2hsaWdodDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA5LCBlbmRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTB9KSk7CisgICAgICAg
IGhpZ2hsaWdodDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVt
ZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMiwgZW5kQ29udGFpbmVyOiB0ZXh0RWxl
bWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEzfSkpOwogICAgICAgICAKIAotICAgICAg
ICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdl
R3JvdXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIi
LCBoaWdobGlnaHRSYW5nZUdyb3VwMik7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhh
bXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDMpOworICAgICAgICBDU1MuaGln
aGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEpOworICAgICAgICBD
U1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodDIpOworICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodDMp
OwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411932</attachid>
            <date>2020-10-20 16:12:37 -0700</date>
            <delta_ts>2020-10-20 16:58:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217919-20201020161236.patch</filename>
            <type>text/plain</type>
            <size>75957</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FiY2FmMTc5NjJkZGEy
MTRkZTNkZWEzMWE3ODYzMDhjMTMzNWQ1My4uZTcxYTkzOTU2NDUwMmVlMGJhOTkwNDA2YmRkNjFi
ZDVlMGE1NTc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTE5ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEhp
Z2hsaWdodE1hcCB0byBIaWdobGlnaHRSZWdpc3RlciBhbmQgSGlnaGxpZ2h0UmFuZ2VHcm91cCB0
byBIaWdobGlnaHQgdG8gbWF0Y2ggY3VycmVudCBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBS
eW9zdWtlIE5pd2EuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBuZXcgYmVoYXZpb3IsIHJl
bmFtZSBvbmx5LgorICAgICAgICBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWhpZ2hsaWdo
dC1hcGktMS8KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQu
Y3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmFuZ2VHcm91cC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHQ6OkhpZ2hsaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpIaWdobGlnaHQ6OmluaXRpYWxpemVTZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6Okhp
Z2hsaWdodDo6cmVtb3ZlRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0
OjpjbGVhckZyb21TZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodDo6YWRkVG9T
ZXRMaWtlKToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaC4KKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuaWRsOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5pZGwuCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
TWFwLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjppbml0aWFsaXpl
TWFwTGlrZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSZWdpc3Rlcjo6c2V0RnJvbU1h
cExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmVnaXN0ZXI6OmNsZWFyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpyZW1vdmUpOgorICAgICAgICAqIE1v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuaC4KKyAgICAgICAgKFdlYkNv
cmU6OkhpZ2hsaWdodFJlZ2lzdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxp
Z2h0UmVnaXN0ZXI6Om1hcCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0UmVnaXN0ZXIuaWRsOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9o
aWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3Bh
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ1NTTmFtZXNwYWNlOjpoaWdobGlnaHRzKToK
KyAgICAgICAgKiBjc3MvRE9NQ1NTTmFtZXNwYWNlLmg6CisgICAgICAgICogY3NzL0RPTUNTU05h
bWVzcGFjZS5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojpjb21tb25UZWFyZG93bik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6aGlnaGxpZ2h0UmVnaXN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0
ZUhpZ2hsaWdodFBvc2l0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGlnaGxp
Z2h0TWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Y29sbGVjdE1hcmtl
ZFRleHRzRm9ySGlnaGxpZ2h0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjYWxjdWxhdGVI
aWdobGlnaHRDb2xvciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdl
RGF0YS5jcHA6CisKIDIwMjAtMTAtMTkgIFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04ocjI2NTIzMSk6IE92ZXJsYXk6
IG5vZGUgaW5mbyBzb21ldGltZXMgZHJhd3Mgb24gb25lIGxpbmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggNmYxMzYzNzFkODlhYmJkOTZkZmFkYmZmMjEzYjdmNzc3OGQxNjIzYS4uNGZkZWNiMjY5
ZGNiYmMyZWY5ZDIwOTk4YzNkYmRkOGYxY2VjOWExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTI4OSw4ICsyODksOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIE1vZHVs
ZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmlkbAogCi0gICAgTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0TWFwLmlkbAotICAgIE1vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAu
aWRsCisgICAgTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmlkbAorICAgIE1vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbAogCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvRE9N
V2luZG93K0luZGV4ZWREYXRhYmFzZS5pZGwKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAppbmRleCA3YTQ1NDFkMTdmZWIzZTA4MjgxZWFhZmMwNDM5ZmEwYjJhNzZjMjkwLi5jZGNiMjky
ZjUxZmNlNWFjZTFjNzg5Mjk3ZGZiZGM5ZmYxMjMwNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw4ICsxMjksOCBAQCAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsCiAkKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCiAkKFBST0pF
Q1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmlkbAotJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0TWFwLmlkbAotJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwKKyQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbAorJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0LmlkbAogJChQUk9KRUNUX0RJUikvTW9k
dWxlcy9pbmRleGVkZGIvRE9NV2luZG93K0luZGV4ZWREYXRhYmFzZS5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvckRpcmVjdGlvbi5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZTk0NzI5MDYyMjA4OTFhY2Q2
M2IwMTliMGY5M2E2MWFhNjBiMzQwZC4uOTVkZDZlOTZkNDY4NDI4ZGViMWZiZmRhNTczZDIyN2Iz
NjMwYTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKQEAgLTExMDgsMTAgKzExMDgsMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIYXNoQ2hhbmdlRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hkck1ldGFkYXRhVHlw
ZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGRy
TWV0YWRhdGFUeXBlLmgKLSQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSGlnaGxpZ2h0TWFwLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNIaWdobGlnaHRNYXAuaAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHRSYW5nZUdyb3VwLmNwcAotJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHRSYW5nZUdyb3VwLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGlnaGxpZ2h0
UmVnaXN0ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hpZ2hsaWdodFJlZ2lzdGVyLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSGlnaGxpZ2h0LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaWdobGlnaHQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaXN0b3J5LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaXN0b3J5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGtkZlBhcmFtcy5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDI2OTRmMDY1MWIzZWU2NzJlM2EzMGRkYWJhODIzMGM1N2U2OWIx
MzYuLmU0YTUwYzVkYjczYTIyOTgxZWM0NjcyMjcyYzVhMjhkZjgxMGIxYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTU1LDggKzE1NSw4IEBAIEpTX0JJTkRJTkdfSURMUyA9
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2Fs
bGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25P
cHRpb25zLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRN
YXAuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdl
R3JvdXAuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJl
Z2lzdGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvdytJbmRleGVk
RGF0YWJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yRGlyZWN0
aW9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NjViN2EwNDY5MTBiMjNjZmQxNjU3MTk2NGU5YjMzYzU3MjBhODc4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGln
aGxpZ2h0LmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOS0y
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodC5oIgorCisjaW5jbHVkZSAiSURMVHlwZXMu
aCIKKyNpbmNsdWRlICJKU0RPTVNldExpa2UuaCIKKyNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgi
CisjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlN0
YXRpY1JhbmdlLmgiCisjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0hpZ2hsaWdodDo6SGlnaGxpZ2h0KFJl
ZjxTdGF0aWNSYW5nZT4mJiByYW5nZSkKK3sKKyAgICBhdXRvIG15UmFuZ2UgPSBXVEZNb3ZlKHJh
bmdlKTsKKyAgICBhZGRUb1NldExpa2UobXlSYW5nZS5nZXQoKSk7Cit9CisKK1JlZjxIaWdobGln
aHQ+IEhpZ2hsaWdodDo6Y3JlYXRlKFN0YXRpY1JhbmdlJiByYW5nZSkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIaWdobGlnaHQocmFuZ2UpKTsKK30KKwordm9pZCBIaWdobGlnaHQ6Omlu
aXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKK3sKKyAgICBmb3IgKGF1dG8mIHJh
bmdlRGF0YSA6IG1fcmFuZ2VzRGF0YSkKKyAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8U3Rh
dGljUmFuZ2U+PihyYW5nZURhdGEtPnJhbmdlKTsKK30KKworc3RhdGljIHZvaWQgcmVwYWludFJh
bmdlKGNvbnN0IFN0YXRpY1JhbmdlJiByYW5nZSkKK3sKKyAgICBhdXRvIHN0YXJ0Tm9kZSA9IG1h
a2VSZWZQdHIoJnJhbmdlLnN0YXJ0Q29udGFpbmVyKCkpOworICAgIGF1dG8gZW5kTm9kZSA9IG1h
a2VSZWZQdHIoJnJhbmdlLmVuZENvbnRhaW5lcigpKTsKKyAgICBhdXRvIG9yZGVyaW5nID0gZG9j
dW1lbnRPcmRlcigqc3RhcnROb2RlLmdldCgpLCAqZW5kTm9kZS5nZXQoKSk7CisgICAgaWYgKGlz
X2VxKG9yZGVyaW5nKSkgeworICAgICAgICBpZiAoYXV0byByZW5kZXJlciA9IHN0YXJ0Tm9kZS0+
cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgaWYgKGlzX2d0KG9yZGVyaW5nKSkgeworICAgICAgICBzdGFydE5v
ZGUgPSAmcmFuZ2UuZW5kQ29udGFpbmVyKCk7CisgICAgICAgIGVuZE5vZGUgPSAmcmFuZ2Uuc3Rh
cnRDb250YWluZXIoKTsKKyAgICB9CisgICAgYXV0byBzaW1wbGVSYW5nZSA9IG1ha2VTaW1wbGVS
YW5nZShtYWtlQm91bmRhcnlQb2ludEJlZm9yZU5vZGUoKnN0YXJ0Tm9kZS5nZXQoKSksIG1ha2VC
b3VuZGFyeVBvaW50QWZ0ZXJOb2RlKCplbmROb2RlLmdldCgpKSk7CisgICAgaWYgKHNpbXBsZVJh
bmdlKSB7CisgICAgICAgIGZvciAoYXV0byYgbm9kZSA6IGludGVyc2VjdGluZ05vZGVzKHNpbXBs
ZVJhbmdlLnZhbHVlKCkpKSB7CisgICAgICAgICAgICBpZiAoYXV0byByZW5kZXJlciA9IG5vZGUu
cmVuZGVyZXIoKSkKKyAgICAgICAgICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOworICAgICAg
ICB9CisgICAgfQorfQorCitib29sIEhpZ2hsaWdodDo6cmVtb3ZlRnJvbVNldExpa2UoY29uc3Qg
U3RhdGljUmFuZ2UmIHJhbmdlKQoreworICAgIHJldHVybiBtX3Jhbmdlc0RhdGEucmVtb3ZlRmly
c3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVu
dCkgeworICAgICAgICByZXBhaW50UmFuZ2UocmFuZ2UpOworICAgICAgICByZXR1cm4gY3VycmVu
dC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsKKyAgICB9KTsKK30KKwordm9pZCBIaWdobGln
aHQ6OmNsZWFyRnJvbVNldExpa2UoKQoreworICAgIGZvciAoYXV0byYgZGF0YSA6IG1fcmFuZ2Vz
RGF0YSkKKyAgICAgICAgcmVwYWludFJhbmdlKGRhdGEtPnJhbmdlKTsKKworICAgIG1fcmFuZ2Vz
RGF0YS5jbGVhcigpOworfQorCitib29sIEhpZ2hsaWdodDo6YWRkVG9TZXRMaWtlKFN0YXRpY1Jh
bmdlJiByYW5nZSkKK3sKKyAgICBpZiAobm90Rm91bmQgIT0gbV9yYW5nZXNEYXRhLmZpbmRNYXRj
aGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVudCkgeyBy
ZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsgfSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXBhaW50UmFuZ2UocmFuZ2UpOworICAgIG1fcmFuZ2VzRGF0YS5h
cHBlbmQoSGlnaGxpZ2h0UmFuZ2VEYXRhOjpjcmVhdGUocmFuZ2UpKTsKKyAgICAKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hp
Z2hsaWdodC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwZGZhNTY4MjI4YzgzYjIwZWJlOGEyZjkzNWVmMGY1ZGU3
NTMwZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHQuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiUG9zaXRpb24uaCIK
KyNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNz
IERPTVNldEFkYXB0ZXI7CitjbGFzcyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb247Citj
bGFzcyBTdGF0aWNSYW5nZTsKKworCitzdHJ1Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhIDogUmVmQ291
bnRlZDxIaWdobGlnaHRSYW5nZURhdGE+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SGlnaGxpZ2h0
UmFuZ2VEYXRhPiB7CisgICAgSGlnaGxpZ2h0UmFuZ2VEYXRhKFJlZjxTdGF0aWNSYW5nZT4mJiBy
YW5nZSkKKyAgICAgICAgOiByYW5nZShXVEZNb3ZlKHJhbmdlKSkKKyAgICB7CisgICAgfQorICAg
IHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiBjcmVhdGUoUmVmPFN0YXRpY1JhbmdlPiYm
IHJhbmdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0UmFu
Z2VEYXRhKFdURk1vdmUocmFuZ2UpKSk7CisgICAgfQorICAgIFJlZjxTdGF0aWNSYW5nZT4gcmFu
Z2U7CisgICAgT3B0aW9uYWw8UG9zaXRpb24+IHN0YXJ0UG9zaXRpb247CisgICAgT3B0aW9uYWw8
UG9zaXRpb24+IGVuZFBvc2l0aW9uOworfTsKKworY2xhc3MgSGlnaGxpZ2h0IDogcHVibGljIFJl
ZkNvdW50ZWQ8SGlnaGxpZ2h0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+
IGNyZWF0ZShTdGF0aWNSYW5nZSYpOworICAgIHZvaWQgY2xlYXJGcm9tU2V0TGlrZSgpOworICAg
IGJvb2wgYWRkVG9TZXRMaWtlKFN0YXRpY1JhbmdlJik7CisgICAgYm9vbCByZW1vdmVGcm9tU2V0
TGlrZShjb25zdCBTdGF0aWNSYW5nZSYpOworICAgIHZvaWQgaW5pdGlhbGl6ZVNldExpa2UoRE9N
U2V0QWRhcHRlciYpOworICAgIGNvbnN0IFZlY3RvcjxSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4m
IHJhbmdlc0RhdGEoKSBjb25zdCB7IHJldHVybiBtX3Jhbmdlc0RhdGE7IH0KKworICAgIC8vIEZJ
WE1FOiBBZGQgV0VCQ09SRV9FWFBPUlQgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgc3R5bGUoKTsKK3By
aXZhdGU6CisgICAgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURhdGE+PiBtX3Jhbmdlc0RhdGE7
IC8vIEZJWE1FOiB1c2UgYSBIYXNoU2V0IGluc3RlYWQgb2YgYSBWZWN0b3IgPHJkYXI6Ly9wcm9i
bGVtLzU3NzYwNjE0PgorICAgIGV4cGxpY2l0IEhpZ2hsaWdodChSZWY8U3RhdGljUmFuZ2U+JiYp
OworfTsKKworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNWViN2E5ZjIxNmU5MzA5MTc2MzYyMzYzZDg4MWZmYTMwNzlk
YWZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQv
SGlnaGxpZ2h0LmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJs
ZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0QVBJLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUs
CisgICAgRXhwb3NlZD1XaW5kb3cKK10gaW50ZXJmYWNlIEhpZ2hsaWdodCB7CisgICAgY29uc3Ry
dWN0b3IoU3RhdGljUmFuZ2UgcmFuZ2UpOworCisgICAgc2V0bGlrZTxTdGF0aWNSYW5nZT47Cisg
ICAgLy8gRklYTUU6IEFkZCByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBz
dHlsZTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9I
aWdobGlnaHRNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0TWFwLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmM5ZmZhYzE4NzBjMWY2
YzEzNWEwODAyZmM0ZTZjMWMxOGJkYWYwOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRNYXAuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKLQotI2luY2x1ZGUg
IklETFR5cGVzLmgiCi0jaW5jbHVkZSAiSlNET01NYXBMaWtlLmgiCi0jaW5jbHVkZSAiSlNIaWdo
bGlnaHRSYW5nZUdyb3VwLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICAKLXZvaWQgSGln
aGxpZ2h0TWFwOjppbml0aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVyJiBtYXApCi17Ci0gICAg
Zm9yIChhdXRvJiBrZXlWYWx1ZSA6IG1fbWFwKQotICAgICAgICBtYXAuc2V0PElETERPTVN0cmlu
ZywgSURMSW50ZXJmYWNlPEhpZ2hsaWdodFJhbmdlR3JvdXA+PihrZXlWYWx1ZS5rZXksIGtleVZh
bHVlLnZhbHVlKTsKLX0KLQotdm9pZCBIaWdobGlnaHRNYXA6OnNldEZyb21NYXBMaWtlKFN0cmlu
ZyYmIGtleSwgUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+JiYgdmFsdWUpCi17Ci0gICAgbV9tYXAu
c2V0KFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1ZSkpOwotfQotCi12b2lkIEhpZ2hsaWdodE1h
cDo6Y2xlYXIoKQotewotICAgIG1fbWFwLmNsZWFyKCk7Ci19Ci0KLWJvb2wgSGlnaGxpZ2h0TWFw
OjpyZW1vdmUoY29uc3QgU3RyaW5nJiBrZXkpCi17Ci0gICAgcmV0dXJuIG1fbWFwLnJlbW92ZShr
ZXkpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHRNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodE1hcC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDljZTk3OTIxNTBmYzc3
MWI4ZTg5MTQzYTE4YzI0M2E2ODhiMDY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdo
dE1hcC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgotI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBET01NYXBBZGFwdGVyOwotY2xhc3MgRE9NU3RyaW5nOwotY2xhc3Mg
SGlnaGxpZ2h0UmFuZ2VHcm91cDsKLQotY2xhc3MgSGlnaGxpZ2h0TWFwIDogcHVibGljIFJlZkNv
dW50ZWQ8SGlnaGxpZ2h0TWFwPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxIaWdobGlnaHRN
YXA+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0TWFwKTsgfQotCi0g
ICAgdm9pZCBpbml0aWFsaXplTWFwTGlrZShET01NYXBBZGFwdGVyJik7Ci0gICAgdm9pZCBzZXRG
cm9tTWFwTGlrZShTdHJpbmcmJiwgUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+JiYpOwotICAgIHZv
aWQgY2xlYXIoKTsKLSAgICBib29sIHJlbW92ZShjb25zdCBTdHJpbmcmKTsKLSAgICAKLSAgICBj
b25zdCBIYXNoTWFwPFN0cmluZywgUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+PiYgbWFwKCkgY29u
c3QgeyByZXR1cm4gbV9tYXA7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAgSGlnaGxpZ2h0TWFwKCkg
PSBkZWZhdWx0OwotICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4+
IG1fbWFwOwotfTsKLQotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRNYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0TWFwLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2EyNTFm
MDU4YTg0ZDIzNDllYTRlZTc4ODNkNGVhOGE4YmE4MmUyMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHRNYXAuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLVsKLSAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKLSAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlLAotICAgIEV4cG9zZWQ9V2luZG93Ci1dIGludGVyZmFjZSBIaWdo
bGlnaHRNYXAgewotICAgIGNvbnN0cnVjdG9yKCk7Ci0KLSAgICBtYXBsaWtlPERPTVN0cmluZywg
SGlnaGxpZ2h0UmFuZ2VHcm91cD47Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2RkODcyOTZjZTc1ZWI5OTMxNzAyODRlNGIxMmFiOWE4Zjk3ZTYzNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkhpZ2hsaWdodFJhbmdlR3JvdXAuaCIKLQotI2luY2x1ZGUgIklETFR5cGVzLmgi
Ci0jaW5jbHVkZSAiSlNET01TZXRMaWtlLmgiCi0jaW5jbHVkZSAiSlNTdGF0aWNSYW5nZS5oIgot
I2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKLSNpbmNsdWRlICJQcm9wZXJ0eVNldENTU1N0eWxl
RGVjbGFyYXRpb24uaCIKLSNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKLSNpbmNsdWRlICJTdGF0
aWNSYW5nZS5oIgotI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgotI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1IaWdobGlnaHRSYW5nZUdyb3VwOjpIaWdo
bGlnaHRSYW5nZUdyb3VwKFJlZjxTdGF0aWNSYW5nZT4mJiByYW5nZSkKLXsKLSAgICBhdXRvIG15
UmFuZ2UgPSBXVEZNb3ZlKHJhbmdlKTsKLSAgICBhZGRUb1NldExpa2UobXlSYW5nZS5nZXQoKSk7
Ci19Ci0KLVJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiBIaWdobGlnaHRSYW5nZUdyb3VwOjpjcmVh
dGUoU3RhdGljUmFuZ2UmIHJhbmdlKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hs
aWdodFJhbmdlR3JvdXAocmFuZ2UpKTsKLX0KLQotdm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpp
bml0aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVyJiBzZXQpCi17Ci0gICAgZm9yIChhdXRvJiBy
YW5nZURhdGEgOiBtX3Jhbmdlc0RhdGEpCi0gICAgICAgIHNldC5hZGQ8SURMSW50ZXJmYWNlPFN0
YXRpY1JhbmdlPj4ocmFuZ2VEYXRhLT5yYW5nZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlcGFpbnRS
YW5nZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCi17Ci0gICAgYXV0byogc3RhcnROb2RlID0g
JnJhbmdlLnN0YXJ0Q29udGFpbmVyKCk7Ci0gICAgYXV0byogZW5kTm9kZSA9ICZyYW5nZS5lbmRD
b250YWluZXIoKTsKLSAgICBhdXRvIG9yZGVyaW5nID0gZG9jdW1lbnRPcmRlcigqc3RhcnROb2Rl
LCAqZW5kTm9kZSk7Ci0gICAgaWYgKGlzX2VxKG9yZGVyaW5nKSkgewotICAgICAgICBpZiAoYXV0
byByZW5kZXJlciA9IHN0YXJ0Tm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRlcmVy
LT5yZXBhaW50KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGlzX2d0KG9yZGVy
aW5nKSkgewotICAgICAgICBzdGFydE5vZGUgPSAmcmFuZ2UuZW5kQ29udGFpbmVyKCk7Ci0gICAg
ICAgIGVuZE5vZGUgPSAmcmFuZ2Uuc3RhcnRDb250YWluZXIoKTsKLSAgICB9Ci0KLSAgICBhdXRv
IG5vZGUgPSBzdGFydE5vZGU7Ci0gICAgd2hpbGUgKG5vZGUgIT0gZW5kTm9kZSkgewotICAgICAg
ICBpZiAoYXV0byByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCkpCi0gICAgICAgICAgICByZW5k
ZXJlci0+cmVwYWludCgpOwotICAgICAgICBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqbm9k
ZSk7Ci0gICAgfQotfQotCi1ib29sIEhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZUZyb21TZXRM
aWtlKGNvbnN0IFN0YXRpY1JhbmdlJiByYW5nZSkKLXsKLSAgICByZXR1cm4gbV9yYW5nZXNEYXRh
LnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPEhpZ2hsaWdodFJhbmdlRGF0
YT4mIGN1cnJlbnQpIHsKLSAgICAgICAgcmVwYWludFJhbmdlKHJhbmdlKTsKLSAgICAgICAgcmV0
dXJuIGN1cnJlbnQuZ2V0KCkucmFuZ2UuZ2V0KCkgPT0gcmFuZ2U7Ci0gICAgfSk7Ci19Ci0KLXZv
aWQgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y2xlYXJGcm9tU2V0TGlrZSgpCi17Ci0gICAgZm9yIChh
dXRvJiBkYXRhIDogbV9yYW5nZXNEYXRhKQotICAgICAgICByZXBhaW50UmFuZ2UoZGF0YS0+cmFu
Z2UpOwotCi0gICAgbV9yYW5nZXNEYXRhLmNsZWFyKCk7Ci19Ci0KLWJvb2wgSGlnaGxpZ2h0UmFu
Z2VHcm91cDo6YWRkVG9TZXRMaWtlKFN0YXRpY1JhbmdlJiByYW5nZSkKLXsKLSAgICBpZiAobm90
Rm91bmQgIT0gbV9yYW5nZXNEYXRhLmZpbmRNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGln
aGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVudCkgeyByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5n
ZXQoKSA9PSByYW5nZTsgfSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXBhaW50UmFu
Z2UocmFuZ2UpOwotICAgIG1fcmFuZ2VzRGF0YS5hcHBlbmQoSGlnaGxpZ2h0UmFuZ2VEYXRhOjpj
cmVhdGUocmFuZ2UpKTsKLSAgICAKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfQotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3Vw
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3Vw
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkODFlOWVmNzIzMzQwM2ZjMzM4NWUx
NDYzMWZjYjBhOWM1ZWE2MGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VH
cm91cC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJQb3NpdGlvbi5o
IgotI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwotY2xh
c3MgRE9NU2V0QWRhcHRlcjsKLWNsYXNzIFN0YXRpY1JhbmdlOwotY2xhc3MgUHJvcGVydHlTZXRD
U1NTdHlsZURlY2xhcmF0aW9uOwotCi1zdHJ1Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhIDogUmVmQ291
bnRlZDxIaWdobGlnaHRSYW5nZURhdGE+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SGlnaGxpZ2h0
UmFuZ2VEYXRhPiB7Ci0gICAgCi0gICAgSGlnaGxpZ2h0UmFuZ2VEYXRhKFJlZjxTdGF0aWNSYW5n
ZT4mJiByYW5nZSkKLSAgICAgICAgOiByYW5nZShXVEZNb3ZlKHJhbmdlKSkKLSAgICB7Ci0gICAg
fQotICAgIAotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiBjcmVhdGUoUmVmPFN0
YXRpY1JhbmdlPiYmIHJhbmdlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SGlnaGxpZ2h0UmFuZ2VEYXRhKFdURk1vdmUocmFuZ2UpKSk7Ci0gICAgfQotICAgIAotICAgIFJl
ZjxTdGF0aWNSYW5nZT4gcmFuZ2U7Ci0gICAgT3B0aW9uYWw8UG9zaXRpb24+IHN0YXJ0UG9zaXRp
b247Ci0gICAgT3B0aW9uYWw8UG9zaXRpb24+IGVuZFBvc2l0aW9uOwotfTsKLQotY2xhc3MgSGln
aGxpZ2h0UmFuZ2VHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlR3JvdXA+
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IGNyZWF0ZShT
dGF0aWNSYW5nZSYpOwotICAgIAotICAgIHZvaWQgY2xlYXJGcm9tU2V0TGlrZSgpOwotICAgIGJv
b2wgYWRkVG9TZXRMaWtlKFN0YXRpY1JhbmdlJik7Ci0gICAgYm9vbCByZW1vdmVGcm9tU2V0TGlr
ZShjb25zdCBTdGF0aWNSYW5nZSYpOwotICAgIHZvaWQgaW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0
QWRhcHRlciYpOwotICAgIAotICAgIGNvbnN0IFZlY3RvcjxSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRh
Pj4mIHJhbmdlc0RhdGEoKSBjb25zdCB7IHJldHVybiBtX3Jhbmdlc0RhdGE7IH0KLQotICAgIC8v
IEZJWE1FOiBBZGQgV0VCQ09SRV9FWFBPUlQgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgc3R5bGUoKTsK
LSAgICAKLXByaXZhdGU6Ci0gICAgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURhdGE+PiBtX3Jh
bmdlc0RhdGE7IC8vIEZJWE1FOiB1c2UgYSBIYXNoU2V0IGluc3RlYWQgb2YgYSBWZWN0b3IgPHJk
YXI6Ly9wcm9ibGVtLzU3NzYwNjE0PgotICAgIGV4cGxpY2l0IEhpZ2hsaWdodFJhbmdlR3JvdXAo
UmVmPFN0YXRpY1JhbmdlPiYmKTsKLX07Ci0KLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTY1YWE0MWVhNjQ1Y2U2NGU3YzA2OTU0MjdlNGY2YzkwYWFk
ZTAwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgRW5hYmxlZEF0
UnVudGltZT1IaWdobGlnaHRBUEksCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAg
ICBFeHBvc2VkPVdpbmRvdwotXSBpbnRlcmZhY2UgSGlnaGxpZ2h0UmFuZ2VHcm91cCB7Ci0gICAg
Y29uc3RydWN0b3IoU3RhdGljUmFuZ2UgcmFuZ2UpOwotCi0gICAgc2V0bGlrZTxTdGF0aWNSYW5n
ZT47Ci0gICAgLy8gRklYTUU6IEFkZCByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJh
dGlvbiBzdHlsZTsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hs
aWdodC9IaWdobGlnaHRSZWdpc3Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUyMGI4NjkzNDI1Y2JjYWEw
NmNjYjE0NGZlMDJkM2NmNjI4NWU4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmNwcApAQCAtMCwwICsxLDU2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGlnaGxp
Z2h0UmVnaXN0ZXIuaCIKKworI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01N
YXBMaWtlLmgiCisjaW5jbHVkZSAiSlNIaWdobGlnaHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIAordm9pZCBIaWdobGlnaHRSZWdpc3Rlcjo6aW5pdGlhbGl6ZU1hcExpa2UoRE9NTWFw
QWRhcHRlciYgbWFwKQoreworICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBtX21hcCkKKyAgICAg
ICAgbWFwLnNldDxJRExET01TdHJpbmcsIElETEludGVyZmFjZTxIaWdobGlnaHQ+PihrZXlWYWx1
ZS5rZXksIGtleVZhbHVlLnZhbHVlKTsKK30KKwordm9pZCBIaWdobGlnaHRSZWdpc3Rlcjo6c2V0
RnJvbU1hcExpa2UoU3RyaW5nJiYga2V5LCBSZWY8SGlnaGxpZ2h0PiYmIHZhbHVlKQoreworICAg
IG1fbWFwLnNldChXVEZNb3ZlKGtleSksIFdURk1vdmUodmFsdWUpKTsKK30KKwordm9pZCBIaWdo
bGlnaHRSZWdpc3Rlcjo6Y2xlYXIoKQoreworICAgIG1fbWFwLmNsZWFyKCk7Cit9CisKK2Jvb2wg
SGlnaGxpZ2h0UmVnaXN0ZXI6OnJlbW92ZShjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICByZXR1
cm4gbV9tYXAucmVtb3ZlKGtleSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwNTMwZjgz
NjIzYTMzM2IyMGNmYTZmZDVkYzBmNTYzMzQ0MTA0NjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSZWdpc3Rlci5oCkBAIC0wLDAg
KzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSGln
aGxpZ2h0LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTU1hcEFkYXB0ZXI7Citj
bGFzcyBET01TdHJpbmc7CitjbGFzcyBIaWdobGlnaHQ7CisKK2NsYXNzIEhpZ2hsaWdodFJlZ2lz
dGVyIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmVnaXN0ZXI+IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJlZ2lzdGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IEhpZ2hsaWdodFJlZ2lzdGVyKTsgfQorCisgICAgdm9pZCBpbml0aWFsaXplTWFwTGlr
ZShET01NYXBBZGFwdGVyJik7CisgICAgdm9pZCBzZXRGcm9tTWFwTGlrZShTdHJpbmcmJiwgUmVm
PEhpZ2hsaWdodD4mJik7CisgICAgdm9pZCBjbGVhcigpOworICAgIGJvb2wgcmVtb3ZlKGNvbnN0
IFN0cmluZyYpOworICAgIAorICAgIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBSZWY8SGlnaGxpZ2h0
Pj4mIG1hcCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwOyB9CisgICAgCitwcml2YXRlOgorICAgIEhp
Z2hsaWdodFJlZ2lzdGVyKCkgPSBkZWZhdWx0OworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWY8SGln
aGxpZ2h0Pj4gbV9tYXA7Cit9OworCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJlZ2lzdGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjZjYWM2
M2JkMTY4NjM5NDAyYTZhYTcyMzE4OGVmYTRmN2ZiNjgwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsCkBAIC0w
LDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1IaWdobGln
aHRBUEksCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBFeHBvc2VkPVdpbmRv
dworXSBpbnRlcmZhY2UgSGlnaGxpZ2h0UmVnaXN0ZXIgeworICAgIGNvbnN0cnVjdG9yKCk7CisK
KyAgICBtYXBsaWtlPERPTVN0cmluZywgSGlnaGxpZ2h0PjsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IDkxYzU4Nzk4NWU0MDljZWIyMTMxYjg4YTFjYzRiZjdjYTdmNWMzZWQuLmNlNzEzNzhhNGU4NjU1
ZTNlZmFiNTEwMDZiOTJiOWY1ZjMyMmY2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02NCw4ICs2NCw4
IEBAIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCiBNb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9j
YXRpb25Db29yZGluYXRlcy5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9j
YXRpb24uY3BwCi1Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRNYXAuY3BwCi1Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmVnaXN0ZXIuY3BwCitNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHQuY3BwCiBNb2R1bGVz
L2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuY3BwCiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuY3Bw
CkBAIC0zMDUyLDggKzMwNTIsOCBAQCBKU0hUTUxVbmtub3duRWxlbWVudC5jcHAKIEpTSFRNTFZp
ZGVvRWxlbWVudC5jcHAKIEpTSGFzaENoYW5nZUV2ZW50LmNwcAogSlNIZHJNZXRhZGF0YVR5cGUu
Y3BwCi1KU0hpZ2hsaWdodE1hcC5jcHAKLUpTSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAKK0pTSGln
aGxpZ2h0UmVnaXN0ZXIuY3BwCitKU0hpZ2hsaWdodC5jcHAKIEpTSGlzdG9yeS5jcHAKIEpTSGtk
ZlBhcmFtcy5jcHAKIEpTSG1hY0tleVBhcmFtcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzliNzFjNjEwNWRmNDY3YjNi
MzBmNTIyOWI3ZDBkMDUyOTdiNzViLi4zOTgyNjY5MzYxN2RjYmU5NDVkMjE2YjZhMDRlMzIxY2Ni
MTU1OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC03OTQzLDEyICs3OTQzLDEyIEBACiAJCTQ0RDhEQTk4MTM5NTQ1QkUwMDMz
N0I3NSAvKiBTVkdNUGF0aEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNWR01Q
YXRoRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0RDhEQTlBMTM5
NTQ1Q0QwMDMzN0I3NSAvKiBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NEUzNDlGNzI0NkY0REM3MDA2ODQ3OUMgLyogTGliV2ViUlRDRW51bVRy
YWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENFbnVtVHJh
aXRzLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDRW51bVRyYWl0cy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU0QzIzNjkxMjhBMDA5QjQ4NDcgLyogSGlnaGxpZ2h0
TWFwLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIaWdobGlnaHRNYXAuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU0RDIzNjkxMjhCMDA5QjQ4NDcgLyogSGlnaGxp
Z2h0UmFuZ2VHcm91cC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSGlnaGxpZ2h0UmFuZ2VH
cm91cC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTUwMjM2QTU2QUMw
MDlCNDg0NyAvKiBIaWdobGlnaHRNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlnaGxpZ2h0TWFwLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ0RTg4RTUxMjM2QTVDOEQwMDlCNDg0NyAv
KiBIaWdobGlnaHRSYW5nZUdyb3VwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpZ2hsaWdodFJhbmdlR3Jv
dXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDRFODhFNTIyMzZBNjY3RjAwOUI0
ODQ3IC8qIEhpZ2hsaWdodE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdobGlnaHRNYXAu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NEU4OEU1NDIzNkE2NkExMDA5QjQ4
NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdobGln
aHRSYW5nZUdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDRFODhFNEMy
MzY5MTI4QTAwOUI0ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBIaWdobGlnaHRSZWdpc3Rlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0RTg4RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdobGlnaHQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEhpZ2hsaWdodC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQ0RTg4RTUwMjM2QTU2QUMwMDlCNDg0NyAvKiBIaWdobGlnaHRSZWdpc3Rlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIaWdobGlnaHRSZWdpc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0NEU4OEU1MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEhpZ2hsaWdodC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NEU4OEU1MjIzNkE2
NjdGMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SGlnaGxpZ2h0UmVnaXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NEU4
OEU1NDIzNkE2NkExMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhpZ2hsaWdodC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MENFQkVFMTUw
NzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IExhYmVsYWJsZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NTBDRUJFRjE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYWJlbGFibGVFbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MTI1MDIwMTVEQ0UzN0QwMDJGODRFMiAv
KiBTcGluQnV0dG9uRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTcGluQnV0dG9uRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xOTM2OSwxMiArMTkzNjksMTIgQEAKIAkJNDRFODhFNDcyMzY4REYwRjAwOUI0ODQ3IC8qIGhp
Z2hsaWdodCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
NDRFODhFNTIyMzZBNjY3RjAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5jcHAgKi8sCi0JCQkJNDRF
ODhFNTAyMzZBNTZBQzAwOUI0ODQ3IC8qIEhpZ2hsaWdodE1hcC5oICovLAotCQkJCTQ0RTg4RTRD
MjM2OTEyOEEwMDlCNDg0NyAvKiBIaWdobGlnaHRNYXAuaWRsICovLAotCQkJCTQ0RTg4RTU0MjM2
QTY2QTEwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmNwcCAqLywKLQkJCQk0NEU4OEU1
MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxpZ2h0UmFuZ2VHcm91cC5oICovLAotCQkJCTQ0RTg4
RTREMjM2OTEyOEIwMDlCNDg0NyAvKiBIaWdobGlnaHRSYW5nZUdyb3VwLmlkbCAqLywKKwkJCQk0
NEU4OEU1NDIzNkE2NkExMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmNwcCAqLywKKwkJCQk0NEU4OEU1
MTIzNkE1QzhEMDA5QjQ4NDcgLyogSGlnaGxpZ2h0LmggKi8sCisJCQkJNDRFODhFNEQyMzY5MTI4
QjAwOUI0ODQ3IC8qIEhpZ2hsaWdodC5pZGwgKi8sCisJCQkJNDRFODhFNTIyMzZBNjY3RjAwOUI0
ODQ3IC8qIEhpZ2hsaWdodFJlZ2lzdGVyLmNwcCAqLywKKwkJCQk0NEU4OEU1MDIzNkE1NkFDMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaCAqLywKKwkJCQk0NEU4OEU0QzIzNjkxMjhBMDA5
QjQ4NDcgLyogSGlnaGxpZ2h0UmVnaXN0ZXIuaWRsICovLAogCQkJKTsKIAkJCXBhdGggPSBoaWdo
bGlnaHQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IDk3MDJjYzU5NzJlOTk1Nzk2
YjE3ODRiNjliMDBiNjI3MTcxZjQ0MzcuLjIwZDk1ZWU1NGUwNDc0Zjg4MjMzNjNmZDljNWIxNWU2
Njc3ZGM0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVC
dWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmgKQEAgLTEyOSw4ICsxMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
bWFjcm8oR1BVVGV4dHVyZVZpZXcpIFwKICAgICBtYWNybyhHUFVVbmNhcHR1cmVkRXJyb3JFdmVu
dCkgXAogICAgIG1hY3JvKEdQVVZhbGlkYXRpb25FcnJvcikgXAotICAgIG1hY3JvKEhpZ2hsaWdo
dE1hcCkgXAotICAgIG1hY3JvKEhpZ2hsaWdodFJhbmdlR3JvdXApIFwKKyAgICBtYWNybyhIaWdo
bGlnaHRSZWdpc3RlcikgXAorICAgIG1hY3JvKEhpZ2hsaWdodCkgXAogICAgIG1hY3JvKEhUTUxB
dHRhY2htZW50RWxlbWVudCkgXAogICAgIG1hY3JvKEhUTUxBdWRpb0VsZW1lbnQpIFwKICAgICBt
YWNybyhIVE1MRGlhbG9nRWxlbWVudCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0RPTUNTU05hbWVzcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNl
LmNwcAppbmRleCAxOWUzZGQ2MWVhOWQ5YWEwOTc1NmM3MzQ2NTVkNGRjNzY3MDY4NzFiLi5kNTky
NTcwYjg2MzE2ZDgzMWZiNTk3YTI5MTRiOTc1ZmJiM2Q0MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTTmFtZXNwYWNlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIkNTU1BhcnNl
ci5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5UGFyc2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKLSNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSZWdpc3Rl
ci5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg5LDkg
Kzg5LDkgQEAgU3RyaW5nIERPTUNTU05hbWVzcGFjZTo6ZXNjYXBlKGNvbnN0IFN0cmluZyYgaWRl
bnQpCiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIAotSGlnaGxpZ2h0TWFwJiBE
T01DU1NOYW1lc3BhY2U6OmhpZ2hsaWdodHMoRG9jdW1lbnQmIGRvY3VtZW50KQorSGlnaGxpZ2h0
UmVnaXN0ZXImIERPTUNTU05hbWVzcGFjZTo6aGlnaGxpZ2h0cyhEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGRvY3VtZW50LmhpZ2hsaWdodE1hcCgpOworICAgIHJldHVybiBkb2N1
bWVudC5oaWdobGlnaHRSZWdpc3RlcigpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFt
ZXNwYWNlLmgKaW5kZXggMzA0N2U1Mjc5ODQ0NmNkNzcwNjY3NTUwOTQxOTlhMzFlYzA1ZWM3Zi4u
ODZkMjdmZTlmZjcxNzdiM2U0YWNkY2JlNGU5ZTRmNTg3YWQwNDFhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9ET01DU1NOYW1lc3BhY2UuaApAQCAtMzcsMTUgKzM3LDE1IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgSGlnaGxpZ2h0TWFwOwotY2xhc3MgSGlnaGxp
Z2h0UmFuZ2VHcm91cDsKK2NsYXNzIEhpZ2hsaWdodFJlZ2lzdGVyOworY2xhc3MgSGlnaGxpZ2h0
OwogCiBjbGFzcyBET01DU1NOYW1lc3BhY2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxET01D
U1NOYW1lc3BhY2U+LCBwdWJsaWMgU3VwcGxlbWVudGFibGU8RE9NQ1NTTmFtZXNwYWNlPiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHMoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
IHByb3BlcnR5LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
cyhEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgY29uZGl0aW9uVGV4dCk7CiAgICAgc3RhdGljIFN0
cmluZyBlc2NhcGUoY29uc3QgU3RyaW5nJiBpZGVudCk7Ci0gICAgc3RhdGljIEhpZ2hsaWdodE1h
cCYgaGlnaGxpZ2h0cyhEb2N1bWVudCYpOworICAgIHN0YXRpYyBIaWdobGlnaHRSZWdpc3RlciYg
aGlnaGxpZ2h0cyhEb2N1bWVudCYpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0RPTUNTU05hbWVzcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFt
ZXNwYWNlLmlkbAppbmRleCA1NjM1NTkzNTZmYzZlYTUxYThhMWJjYzIyMDIxM2YzZDgwODJjMDc3
Li4zNGYzZDcyNDM1ZDM1NWEyZGEwNmFiNjU3NzU1MTZlNWVkZjZjZTIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbApAQCAtMzUsNSArMzUsNSBAQAogICAgIFtDYWxsV2l0
aD1Eb2N1bWVudF0gc3RhdGljIGJvb2xlYW4gc3VwcG9ydHMoRE9NU3RyaW5nIHByb3BlcnR5LCBE
T01TdHJpbmcgdmFsdWUpOwogICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIGJvb2xlYW4g
c3VwcG9ydHMoRE9NU3RyaW5nIGNvbmRpdGlvblRleHQpOwogICAgIHN0YXRpYyBET01TdHJpbmcg
ZXNjYXBlKERPTVN0cmluZyBpZGVudCk7Ci0gICAgW0VuYWJsZWRBdFJ1bnRpbWU9SGlnaGxpZ2h0
QVBJLCBDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSBIaWdobGln
aHRNYXAgaGlnaGxpZ2h0czsKKyAgICBbRW5hYmxlZEF0UnVudGltZT1IaWdobGlnaHRBUEksIENh
bGxXaXRoPURvY3VtZW50XSBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIEhpZ2hsaWdodFJlZ2lz
dGVyIGhpZ2hsaWdodHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDg1MzU4OWVh
YmFjMzVlNzZhYmE2ZjI4MmFlNTc2YzU5MmUxZThlNS4uNmU1ZjAxZDljMzJmZDIyNjQ1YTMyYjQw
MDYwY2IwNGIxYjE5NzY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTEsNyArMTEx
LDcgQEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vy
cy5oIgogI2luY2x1ZGUgIkhhc2hDaGFuZ2VFdmVudC5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1h
cC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiSGlzdG9yeS5o
IgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJZGxlQ2FsbGJhY2tDb250
cm9sbGVyLmgiCkBAIC03OTIsOCArNzkyLDggQEAgdm9pZCBEb2N1bWVudDo6Y29tbW9uVGVhcmRv
d24oKQogCiAgICAgY2xlYXJTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIoKTsKICAgICAKLSAg
ICBpZiAobV9oaWdobGlnaHRNYXApCi0gICAgICAgIG1faGlnaGxpZ2h0TWFwLT5jbGVhcigpOwor
ICAgIGlmIChtX2hpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBtX2hpZ2hsaWdodFJlZ2lzdGVy
LT5jbGVhcigpOwogCiAgICAgbV9wZW5kaW5nU2Nyb2xsRXZlbnRUYXJnZXRMaXN0ID0gbnVsbHB0
cjsKIApAQCAtMjc2NywxOCArMjc2NywxOCBAQCBSZWY8RG9jdW1lbnRQYXJzZXI+IERvY3VtZW50
OjpjcmVhdGVQYXJzZXIoKQogICAgIHJldHVybiBYTUxEb2N1bWVudFBhcnNlcjo6Y3JlYXRlKCp0
aGlzLCB2aWV3KCkpOwogfQogCi1IaWdobGlnaHRNYXAmIERvY3VtZW50OjpoaWdobGlnaHRNYXAo
KQorSGlnaGxpZ2h0UmVnaXN0ZXImIERvY3VtZW50OjpoaWdobGlnaHRSZWdpc3RlcigpCiB7Ci0g
ICAgaWYgKCFtX2hpZ2hsaWdodE1hcCkKLSAgICAgICAgbV9oaWdobGlnaHRNYXAgPSBIaWdobGln
aHRNYXA6OmNyZWF0ZSgpOwotICAgIHJldHVybiAqbV9oaWdobGlnaHRNYXA7CisgICAgaWYgKCFt
X2hpZ2hsaWdodFJlZ2lzdGVyKQorICAgICAgICBtX2hpZ2hsaWdodFJlZ2lzdGVyID0gSGlnaGxp
Z2h0UmVnaXN0ZXI6OmNyZWF0ZSgpOworICAgIHJldHVybiAqbV9oaWdobGlnaHRSZWdpc3RlcjsK
IH0KIAogdm9pZCBEb2N1bWVudDo6dXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCkKIHsKICAgICBW
ZWN0b3I8V2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+PiByYW5nZXNEYXRhOwotICAgIGlmICht
X2hpZ2hsaWdodE1hcCkgewotICAgICAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IG1faGlnaGxp
Z2h0TWFwLT5tYXAoKSkgeworICAgIGlmIChtX2hpZ2hsaWdodFJlZ2lzdGVyKSB7CisgICAgICAg
IGZvciAoYXV0byYgaGlnaGxpZ2h0IDogbV9oaWdobGlnaHRSZWdpc3Rlci0+bWFwKCkpIHsKICAg
ICAgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNE
YXRhKCkpIHsKICAgICAgICAgICAgICAgICBpZiAocmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uICYm
IHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24pCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAppbmRleCBkZDg4M2IyYTA3YzU2MjM2ZWNjZmQ1MDQ1YWFlNjA2YjM5
NmU4NzRmLi45M2ZiNzQ4YTdmOTUyMzFkNWQ2OThlYWU0MDIwYTNlOTEzNWI2MDI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaApAQCAtMTU2LDcgKzE1Niw3IEBAIGNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7
CiBjbGFzcyBIVE1MTWFwRWxlbWVudDsKIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiBjbGFzcyBI
VE1MVmlkZW9FbGVtZW50OwotY2xhc3MgSGlnaGxpZ2h0TWFwOworY2xhc3MgSGlnaGxpZ2h0UmVn
aXN0ZXI7CiBjbGFzcyBIaXRUZXN0TG9jYXRpb247CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNs
YXNzIEhpdFRlc3RSZXN1bHQ7CkBAIC0xNTY5LDcgKzE1NjksNyBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXImIHRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyKCk7CiAgICAgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIqIHRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVySWZFeGlzdHMoKSB7IHJldHVybiBtX3RleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmdldCgpOyB9CiAgICAgICAgIAotICAgIEhpZ2hsaWdodE1hcCYgaGlnaGxpZ2h0TWFw
KCk7CisgICAgSGlnaGxpZ2h0UmVnaXN0ZXImIGhpZ2hsaWdodFJlZ2lzdGVyKCk7CiAgICAgdm9p
ZCB1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKIAogICAgIGJvb2wgYWxsb3dzQ29udGVudEph
dmFTY3JpcHQoKSBjb25zdDsKQEAgLTE5MjQsNyArMTkyNCw3IEBAIHByaXZhdGU6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFRleHRBdXRvU2l6aW5nPiBtX3RleHRBdXRvU2l6aW5nOwogI2VuZGlmCiAg
ICAgICAgIAotICAgIFJlZlB0cjxIaWdobGlnaHRNYXA+IG1faGlnaGxpZ2h0TWFwOworICAgIFJl
ZlB0cjxIaWdobGlnaHRSZWdpc3Rlcj4gbV9oaWdobGlnaHRSZWdpc3RlcjsKIAogICAgIFRpbWVy
IG1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9IaWdobGlnaHREYXRhLmNwcAppbmRleCA2NWUzMmE0ODUwZDY3Y2NkMDA0ZTJhNzU2YjBm
MWI3ZDc4ZDFiY2E3Li4zOWViMTUxMDlhYTZjMDJhNjg2YmUwNGRlMGNkZDZiMDM3YzhmYzljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCkBAIC0zMyw3ICsz
Myw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCi0jaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdo
dC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQb3NpdGlvbi5oIgogI2luY2x1
ZGUgIlJhbmdlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAK
aW5kZXggY2JjMDNhN2RiOThjMTE1MzZiMzcxMjczYWZhOGEzNTAzNmQxNjc1Ni4uNDcxYjVlNzNk
ZjU3ZGY3ODUwNTQ0MDA4YTAyNTQxODE0OTAyMjU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0RGF0
YS5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lz
dGVyLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVy
LmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveFN0eWxlLmgiCkBAIC0xMDUxLDcgKzEwNTEsNyBA
QCBWZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4dEJveDo6Y29sbGVjdE1hcmtlZFRleHRzRm9y
SGlnaGxpZ2h0cyhUZXh0UGFpbnRQaGFzZQogICAgIGF1dG8mIHBhcmVudFJlbmRlcmVyID0gcGFy
ZW50KCktPnJlbmRlcmVyKCk7CiAgICAgYXV0byYgcGFyZW50U3R5bGUgPSBwYXJlbnRSZW5kZXJl
ci5zdHlsZSgpOwogICAgIEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0RGF0YTsKLSAgICBmb3IgKGF1
dG8mIGhpZ2hsaWdodCA6IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5oaWdobGlnaHRNYXAoKS5tYXAo
KSkgeworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogcmVuZGVyZXIoKS5kb2N1bWVudCgpLmhp
Z2hsaWdodFJlZ2lzdGVyKCkubWFwKCkpIHsKICAgICAgICAgYXV0byByZW5kZXJTdHlsZSA9IHBh
cmVudFJlbmRlcmVyLmdldFVuY2FjaGVkUHNldWRvU3R5bGUoeyBQc2V1ZG9JZDo6SGlnaGxpZ2h0
LCBoaWdobGlnaHQua2V5IH0sICZwYXJlbnRTdHlsZSk7CiAgICAgICAgIGlmICghcmVuZGVyU3R5
bGUpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwCmluZGV4IGE3MmYxZWQ3Nzk3MmE0NDc2MWRhMDc1MWZmNDI3YTUyYTYw
YjljYjMuLjNjZWUwMWY0NTk1MWMxNTlhOWRhMjgzMzFhN2U2MGNkZmU3ZTY0N2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtMzMsNyArMzMsNyBA
QAogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0RGF0YS5oIgotI2luY2x1ZGUgIkhpZ2hsaWdodE1h
cC5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodFJlZ2lzdGVyLmgiCiAjaW5jbHVkZSAiSW5saW5lRWxl
bWVudEJveC5oIgogI2luY2x1ZGUgIkxheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oIgpAQCAtMTU0LDcgKzE1NCw3
IEBAIGlubGluZSBzdGF0aWMgYm9vbCBkcmFnZ2VkQ29udGVudENvbnRhaW5zUmVwbGFjZWRFbGVt
ZW50KGNvbnN0IFZlY3RvcjxSZW5kZXJlZERvCiBDb2xvciBSZW5kZXJSZXBsYWNlZDo6Y2FsY3Vs
YXRlSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogewogICAgIEhpZ2hsaWdodERhdGEgaGlnaGxpZ2h0
RGF0YTsKLSAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGRvY3VtZW50KCkuaGlnaGxpZ2h0TWFw
KCkubWFwKCkpIHsKKyAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IGRvY3VtZW50KCkuaGlnaGxp
Z2h0UmVnaXN0ZXIoKS5tYXAoKSkgewogICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhp
Z2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CiAgICAgICAgICAgICBpZiAoIWhpZ2hsaWdo
dERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAK
aW5kZXggZjQ5NzE2OWUyN2JkNGE3MjA3MTYzN2Y2MGMwZDFmZjkxYTU3MTc5OC4uYmU2N2U2MGU3
NTk5MjRlY2ZhZGRlZTkyZTZjNzlkNTIzZTZlN2ZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKLSNpbmNsdWRl
ICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0LmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IGIzMDUxYzNmZDNmYTYzM2MwYzY3NWI3ZDQ5ZjdmZmU3YTczMmM4
MjkuLmY5ZjMyOWQwNjFiM2UzYWU2OGQxMTViMGViZTQ4OWM3ZWQ5NzFjOTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtaW50ZXJmYWNlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZhY2VzLWV4cGVjdGVk
LnR4dApAQCAtMSwxOCArMSwxOCBAQAotVGVzdHMgdGhlIGludGVyZmFjZXMgb2YgdGhlIGhpZ2hs
aWdodCBBUEksIHdoaWNoIGluY2x1ZGUgSGlnaGxpZ2h0UmFuZ2VHcm91cCwgSGlnaGxpZ2h0TWFw
LCBhbmQgZXh0ZW5zaW9ucyB0byB0aGUgQ1NTIG5hbWVzcGFjZS4KK1Rlc3RzIHRoZSBpbnRlcmZh
Y2VzIG9mIHRoZSBoaWdobGlnaHQgQVBJLCB3aGljaCBpbmNsdWRlIEhpZ2hsaWdodCwgSGlnaGxp
Z2h0UmVnaXN0ZXIsIGFuZCBleHRlbnNpb25zIHRvIHRoZSBDU1MgbmFtZXNwYWNlLgogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAogVGVzdGluZyBIaWdobGlnaHQ6Ci1QQVNTIEhpZ2hs
aWdodFJhbmdlR3JvdXAgaW5zdGFuY2VvZiBGdW5jdGlvbiBpcyB0cnVlCi1QQVNTIHR5cGVvZiBI
aWdobGlnaHRSYW5nZUdyb3VwIGlzICJmdW5jdGlvbiIKLVBBU1MgbmV3IEhpZ2hsaWdodFJhbmdl
R3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3Rh
cnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkp
IGluc3RhbmNlb2YgSGlnaGxpZ2h0UmFuZ2VHcm91cCBpcyB0cnVlCi1QQVNTIEhpZ2hsaWdodE1h
cCBpbnN0YW5jZW9mIEZ1bmN0aW9uIGlzIHRydWUKLVBBU1MgdHlwZW9mIEhpZ2hsaWdodE1hcCBp
cyAiZnVuY3Rpb24iCi1QQVNTIG5ldyBIaWdobGlnaHRNYXAoKSBpbnN0YW5jZW9mIEhpZ2hsaWdo
dE1hcCBpcyB0cnVlCi1QQVNTIG5ldyBIaWdobGlnaHRNYXAoKS5zZXQoImZvby1zdHlsaW5nIixu
ZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5
LCBlbmRPZmZzZXQ6IDJ9KSkpIGlzIGRlZmluZWQuCitQQVNTIEhpZ2hsaWdodCBpbnN0YW5jZW9m
IEZ1bmN0aW9uIGlzIHRydWUKK1BBU1MgdHlwZW9mIEhpZ2hsaWdodCBpcyAiZnVuY3Rpb24iCitQ
QVNTIG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1l
bnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5k
T2Zmc2V0OiAyfSkpIGluc3RhbmNlb2YgSGlnaGxpZ2h0IGlzIHRydWUKK1BBU1MgSGlnaGxpZ2h0
UmVnaXN0ZXIgaW5zdGFuY2VvZiBGdW5jdGlvbiBpcyB0cnVlCitQQVNTIHR5cGVvZiBIaWdobGln
aHRSZWdpc3RlciBpcyAiZnVuY3Rpb24iCitQQVNTIG5ldyBIaWdobGlnaHRSZWdpc3RlcigpIGlu
c3RhbmNlb2YgSGlnaGxpZ2h0UmVnaXN0ZXIgaXMgdHJ1ZQorUEFTUyBuZXcgSGlnaGxpZ2h0UmVn
aXN0ZXIoKS5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSkgaXMgZGVmaW5lZC4KIFBBU1MgQ1NT
LmhpZ2hsaWdodHMgaXMgZGVmaW5lZC4KLVBBU1MgQ1NTLmhpZ2hsaWdodHMuc2V0KCJmb28tc3R5
bGluZyIsbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRh
aW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1l
bnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpKSBpcyBDU1MuaGlnaGxpZ2h0cworUEFTUyBDU1MuaGln
aGxpZ2h0cy5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWlu
ZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogMn0pKSkgaXMgQ1NTLmhpZ2hsaWdodHMKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1pbnRlcmZhY2VzLmh0bWwgYi9MYXlv
dXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LWludGVyZmFjZXMuaHRtbAppbmRleCA1OGY0OTRj
YTJmZDE5YWI3NGY4OWM4OTgwOWE0ZWJlZTBhZjdmYWRlLi4yMjFiNDUzZGJmYTc2MmEwNTQxNjBk
ZmZiYjdiNzU4YjA4Y2QxYTI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGln
aGxpZ2h0LWludGVyZmFjZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxp
Z2h0LWludGVyZmFjZXMuaHRtbApAQCAtNCwxOCArNCwxOCBAQAogPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKLWRlc2NyaXB0aW9uKCJU
ZXN0cyB0aGUgaW50ZXJmYWNlcyBvZiB0aGUgaGlnaGxpZ2h0IEFQSSwgd2hpY2ggaW5jbHVkZSBI
aWdobGlnaHRSYW5nZUdyb3VwLCBIaWdobGlnaHRNYXAsIGFuZCBleHRlbnNpb25zIHRvIHRoZSBD
U1MgbmFtZXNwYWNlLiIpOworZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBpbnRlcmZhY2VzIG9mIHRo
ZSBoaWdobGlnaHQgQVBJLCB3aGljaCBpbmNsdWRlIEhpZ2hsaWdodCwgSGlnaGxpZ2h0UmVnaXN0
ZXIsIGFuZCBleHRlbnNpb25zIHRvIHRoZSBDU1MgbmFtZXNwYWNlLiIpOwogCiBkZWJ1ZygiVGVz
dGluZyBIaWdobGlnaHQ6Iik7Ci1zaG91bGRCZVRydWUoIkhpZ2hsaWdodFJhbmdlR3JvdXAgaW5z
dGFuY2VvZiBGdW5jdGlvbiIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgSGlnaGxp
Z2h0UmFuZ2VHcm91cCIsICJmdW5jdGlvbiIpOwotc2hvdWxkQmVUcnVlKCJuZXcgSGlnaGxpZ2h0
UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5
LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6
IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHRSYW5nZUdyb3VwIik7Ci1zaG91bGRCZVRydWUoIkhp
Z2hsaWdodE1hcCBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmco
InR5cGVvZiBIaWdobGlnaHRNYXAiLCAiZnVuY3Rpb24iKTsKLXNob3VsZEJlVHJ1ZSgibmV3IEhp
Z2hsaWdodE1hcCgpIGluc3RhbmNlb2YgSGlnaGxpZ2h0TWFwIik7Ci1zaG91bGRCZURlZmluZWQo
J25ldyBIaWdobGlnaHRNYXAoKS5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0UmFuZ2VH
cm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBzdGFy
dE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkp
Jyk7CitzaG91bGRCZVRydWUoIkhpZ2hsaWdodCBpbnN0YW5jZW9mIEZ1bmN0aW9uIik7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBIaWdobGlnaHQiLCAiZnVuY3Rpb24iKTsKK3Nob3Vs
ZEJlVHJ1ZSgibmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBk
b2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5
LCBlbmRPZmZzZXQ6IDJ9KSkgaW5zdGFuY2VvZiBIaWdobGlnaHQiKTsKK3Nob3VsZEJlVHJ1ZSgi
SGlnaGxpZ2h0UmVnaXN0ZXIgaW5zdGFuY2VvZiBGdW5jdGlvbiIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJ0eXBlb2YgSGlnaGxpZ2h0UmVnaXN0ZXIiLCAiZnVuY3Rpb24iKTsKK3Nob3VsZEJl
VHJ1ZSgibmV3IEhpZ2hsaWdodFJlZ2lzdGVyKCkgaW5zdGFuY2VvZiBIaWdobGlnaHRSZWdpc3Rl
ciIpOworc2hvdWxkQmVEZWZpbmVkKCduZXcgSGlnaGxpZ2h0UmVnaXN0ZXIoKS5zZXQoImZvby1z
dHlsaW5nIixuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRv
Y3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHks
IGVuZE9mZnNldDogMn0pKSknKTsKIHNob3VsZEJlRGVmaW5lZCgnQ1NTLmhpZ2hsaWdodHMnKTsK
LXNob3VsZEJlKCdDU1MuaGlnaGxpZ2h0cy5zZXQoImZvby1zdHlsaW5nIixuZXcgSGlnaGxpZ2h0
UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBkb2N1bWVudC5ib2R5
LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6
IDJ9KSkpJywgJ0NTUy5oaWdobGlnaHRzJyk7CitzaG91bGRCZSgnQ1NTLmhpZ2hsaWdodHMuc2V0
KCJmb28tc3R5bGluZyIsbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiBkb2N1bWVu
dC5ib2R5LCBlbmRPZmZzZXQ6IDJ9KSkpJywgJ0NTUy5oaWdobGlnaHRzJyk7CiAKIDwvc2NyaXB0
PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1t
YXAtYW5kLWdyb3VwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9oaWdobGln
aHQtbWFwLWFuZC1ncm91cC1leHBlY3RlZC50eHQKaW5kZXggZmIxMzIxOWJiMmU5ZGNmZjVkMWNl
NzNkNzMwZDcwZmFkYzE4OWFlZi4uY2E5YTQ5MDk0MzNhYjFkYzkwNWM5NjNiNmY4OTIxNDEwNmRi
Nzk3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5k
LWdyb3VwLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0
LW1hcC1hbmQtZ3JvdXAtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAotUEFTUyBoaWdobGln
aHRSYW5nZUdyb3VwMS5zaXplIGlzIDEKLVBBU1MgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuc2l6ZSBp
cyAyCi1QQVNTIGhpZ2hsaWdodFJhbmdlR3JvdXAzLnNpemUgaXMgMworUEFTUyBoaWdobGlnaHQx
LnNpemUgaXMgMQorUEFTUyBoaWdobGlnaHQyLnNpemUgaXMgMgorUEFTUyBoaWdobGlnaHQzLnNp
emUgaXMgMwogUEFTUyBDU1MuaGlnaGxpZ2h0cy5zaXplIGlzIDMKIFBBU1MgQ1NTLmhpZ2hsaWdo
dHMuaGFzKCJleGFtcGxlLWhpZ2hsaWdodDEiKSBpcyB0cnVlCiBQQVNTIENTUy5oaWdobGlnaHRz
LmhhcygiZXhhbXBsZS1oaWdobGlnaHQyIikgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1tYXAtYW5kLWdyb3VwLmh0bWwgYi9MYXlvdXRUZXN0cy9o
aWdobGlnaHQvaGlnaGxpZ2h0LW1hcC1hbmQtZ3JvdXAuaHRtbAppbmRleCA1YjRiZmFiMGFjZTM0
YWExNWE1ZDQxODc3ODFiMDU1NjNkMTYxNWIwLi5hZTQ5Y2ZhMThhZTk4YzliY2MyNzZiYjJkOTc0
MDIyZjgwMjJhZDM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0
LW1hcC1hbmQtZ3JvdXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0
LW1hcC1hbmQtZ3JvdXAuaHRtbApAQCAtMjAsMjMgKzIwLDIzIEBACiAgICAgPGJvZHk+PHNwYW4+
T25lIDwvc3Bhbj48c3Bhbj50d28gPC9zcGFuPjxzcGFuPnRocmVlLi4uPC9zcGFuPgogCiAgICAg
PHNjcmlwdD4KLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdo
dFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9k
eSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0
OiAyfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MSA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDEsIGVu
ZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiAyfSkpOwogCi0gICAgICAgIGxl
dCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAyLCBl
bmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogM30pKTsKLSAgICAgICAgaGln
aGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRv
Y3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHks
IGVuZE9mZnNldDogNX0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodDIgPSBuZXcgSGlnaGxpZ2h0
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zm
c2V0OiAyLCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIGVuZE9mZnNldDogM30pKTsKKyAg
ICAgICAgaGlnaGxpZ2h0Mi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9j
dW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwg
ZW5kT2Zmc2V0OiA1fSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5l
dyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRv
Y3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IGRvY3VtZW50LmJvZHks
IGVuZE9mZnNldDogOH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGRvY3VtZW50LmJvZHksIHN0YXJ0T2Zmc2V0OiAx
MCwgZW5kQ29udGFpbmVyOiBkb2N1bWVudC5ib2R5LCBlbmRPZmZzZXQ6IDEyfSkpOwotICAgICAg
ICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5l
cjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQu
Ym9keSwgZW5kT2Zmc2V0OiA2fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5ldyBIaWdo
bGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3Rh
cnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA4fSkp
OworICAgICAgICBoaWdobGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVy
OiBkb2N1bWVudC5ib2R5LCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogZG9jdW1lbnQu
Ym9keSwgZW5kT2Zmc2V0OiAxMn0pKTsKKyAgICAgICAgaGlnaGxpZ2h0My5hZGQobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgc3RhcnRPZmZzZXQ6IDUsIGVu
ZENvbnRhaW5lcjogZG9jdW1lbnQuYm9keSwgZW5kT2Zmc2V0OiA2fSkpOwogICAgICAgICAKIAot
ICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdo
dFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hs
aWdodDIiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNl
dCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDMpOworICAgICAgICBD
U1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEpOworICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodDIp
OworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIsIGhpZ2hs
aWdodDMpOwogCi0gICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHRSYW5nZUdyb3VwMS5zaXplIiwi
MSIpOwotICAgICAgICBzaG91bGRCZSgiaGlnaGxpZ2h0UmFuZ2VHcm91cDIuc2l6ZSIsIjIiKTsK
LSAgICAgICAgc2hvdWxkQmUoImhpZ2hsaWdodFJhbmdlR3JvdXAzLnNpemUiLCIzIik7CisgICAg
ICAgIHNob3VsZEJlKCJoaWdobGlnaHQxLnNpemUiLCIxIik7CisgICAgICAgIHNob3VsZEJlKCJo
aWdobGlnaHQyLnNpemUiLCIyIik7CisgICAgICAgIHNob3VsZEJlKCJoaWdobGlnaHQzLnNpemUi
LCIzIik7CiAKICAgICAgICAgc2hvdWxkQmUoIkNTUy5oaWdobGlnaHRzLnNpemUiLCIzIik7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFt
ZS5odG1sCmluZGV4IDg4NDg4N2I4MjdlNjk1YTA4NDA5OTRlYmIwMDcxN2E0YjEyYTE5M2EuLjUw
NTNlZWQwZGM4OTk1ZDUwZTQwMGRmNGE5OWI5NzEzZDRjZjA2NTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbApAQCAtMTMs
NiArMTMsNiBAQAogCiA8c2NyaXB0PgogbGV0IGhpZ2hsaWdodCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdoaWdobGlnaHQnKTsKLWxldCBoaWdobGlnaHRSYW5nZUdyb3VwID0gbmV3IEhpZ2hs
aWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaGlnaGxpZ2h0
LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGhpZ2hsaWdodC5j
aGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7Ci1DU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1w
bGUiLCBoaWdobGlnaHRSYW5nZUdyb3VwKTsKK2xldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdo
dChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBoaWdobGlnaHQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0s
IGVuZE9mZnNldDogNH0pKTsKK0NTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZSIsIGhpZ2hsaWdo
dDEpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwKaW5kZXggNDU3NzE1
YTIxMDM1ZTY1ZDE4NTMzZGUwMDdkOTFkZTcwMGU2MzI0ZS4uMTU1ZGQ4YjRjZmY0MzM3OWZmZDAx
NWY3Y2U3ZjZmZWRiYzkyMDE3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3Nz
L2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbApAQCAt
MTgsMTAgKzE4LDEwIEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBsZXQgaW1hZ2VFbGVtZW50
MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJyk7Ci0gICAgICAgIGxldCBoaWdobGln
aHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6
IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6
IDF9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0
T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5k
T2Zmc2V0OiAxfSkpOwogCiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhp
Z2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7CisgICAgICAgIENTUy5oaWdobGlnaHRz
LnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0MSk7CiAKICAgICA8L3NjcmlwdD4K
IDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxp
Z2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxl
bWVudHMuaHRtbAppbmRleCBiYWY3MWUwOTZlN2Q3NDRhNDQ0MTczMjVmMGFhYmUyNjJiNjk3OTlh
Li41ZDZjNjAxY2MyNTdkMjZmNDA5N2Y0YWM1NTAyYTVjOTdkMjI5YjFlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQt
YWNyb3NzLWVsZW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sCkBAIC0zNCwx
NiArMzQsMTYgQEAKICAgICAgICAgbGV0IHRleHRFbGVtZW50MyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXh0MycpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQ0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RleHQ0Jyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGV4dDUnKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3Jv
dXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRh
aW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDd9KSk7CisgICAg
ICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDQsIGVu
ZENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogN30pKTsK
IAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VH
cm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGls
ZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAy
LmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGRO
b2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50My5jaGls
ZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDV9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQyID0gbmV3
IEhpZ2hsaWdodChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEu
Y2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50
Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CisgICAgICAgIGhpZ2hsaWdodDIuYWRk
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVz
WzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLmNoaWxkTm9k
ZXNbMF0sIGVuZE9mZnNldDogNX0pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudDMuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50NS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEyfSkpOworICAg
ICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDUuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxMn0p
KTsKIAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhp
Z2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxl
LWhpZ2hsaWdodDIiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7Ci0gICAgICAgIENTUy5oaWdobGln
aHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDMpOworICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodDEp
OworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hs
aWdodDIpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MyIs
IGhpZ2hsaWdodDMpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0LWNhc2NhZGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0
LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwKaW5kZXggY2RlOTdjNGJmZjc0YjdmNzI4
ZmYyOTdiN2ViMzg3MDgxYjY4YjBkZS4uMmY3MGNhMTZiZTNlMzJiM2I4ZGYwNDVlNjUzOTcwNjkw
ODIyODhkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGln
aHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sCkBA
IC0yNiwxMCArMjYsMTAgQEAKICAgICAgICAgbGV0IHRleHRFbGVtZW50MSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXh0MScpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQyID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQyJyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDMgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDMnKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJh
bmdlR3JvdXAgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVu
ZENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogM30pKTsK
LSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cC5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRD
b250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDl9KSk7Cisg
ICAgICAgIGxldCBoaWdobGlnaHQgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMCwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAzfSkp
OworICAgICAgICBoaWdobGlnaHQuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVy
OiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA5fSkpOwogCi0gICAgICAg
IENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdy
b3VwKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhp
Z2hsaWdodCk7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQt
ZGVjb3JhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0
LWFwaS9oaWdobGlnaHQtdGV4dC1kZWNvcmF0aW9ucy5odG1sCmluZGV4IDI0NGJmYzk4YTJhMDZh
ODMxNmFkNzNmOTNjNDFhZDM5OGVmMzUzOGUuLjkzY2ExNWZjZDk2YjdkYWQxNzUxMmNmYmRmOWI3
Mzg2N2E3ODljYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGln
aGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1kZWNvcmF0aW9ucy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1kZWNvcmF0
aW9ucy5odG1sCkBAIC01MSwxMyArNTEsMTMgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGxl
dCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwotICAgICAg
ICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcg
U3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBz
dGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBl
bmRPZmZzZXQ6IDJ9KSk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBI
aWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRF
bGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRF
bGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNn0pKTsKLSAgICAgICAgbGV0IGhpZ2hs
aWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6
IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDog
MTN9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdodChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9m
ZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZz
ZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQyID0gbmV3IEhpZ2hsaWdodChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFy
dE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRP
ZmZzZXQ6IDZ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQzID0gbmV3IEhpZ2hsaWdodChuZXcg
U3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBz
dGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
ZW5kT2Zmc2V0OiAxM30pKTsKIAotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUt
aGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdo
dHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7Ci0gICAg
ICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQzIiwgaGlnaGxpZ2h0UmFu
Z2VHcm91cDMpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0
MSIsIGhpZ2hsaWdodDEpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGln
aGxpZ2h0MiIsIGhpZ2hsaWdodDIpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1w
bGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodDMpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQt
YXBpL2hpZ2hsaWdodC10ZXh0LXJlcGFpbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nz
cy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBhaW50Lmh0bWwKaW5kZXggZDM4
Yzk0MGE2MWViYzU4ZWM2NWQ5YTg2ZTI1MzhhNjc0MzYzYTFjNy4uNDE4OGJlNTdhNTRmMGFlMDQ3
NWE5YmI0YzNlYWJlM2Y2MjEwNTg4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
Y3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGFpbnQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQt
cmVwYWludC5odG1sCkBAIC01LDcgKzUsNyBAQAogICAgIDx0aXRsZT5NdWx0aXBsZSBjdXN0b20g
aGlnaGxpZ2h0IHBzZXVkbyBlbGVtZW50cy48L3RpdGxlPgogICAgIDxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1oaWdobGlnaHQtYXBpLTEvI2NyZWF0
aW5nLWhpZ2hsaWdodHMiPgogICAgIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImhpZ2hsaWdodC10
ZXh0LWV4cGVjdGVkLmh0bWwiPgotICAgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSGln
aGxpZ2h0IFJhbmdlcyBzaG91bGQgYmUgYWJsZSB0byBiZSBhZGRlZCBhbmQgcmVtb3ZlZCBmcm9t
IHRoZSBIaWdobGlnaHRSYW5nZUdyb3VwLiI+CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250
ZW50PSJIaWdobGlnaHQgUmFuZ2VzIHNob3VsZCBiZSBhYmxlIHRvIGJlIGFkZGVkIGFuZCByZW1v
dmVkIGZyb20gdGhlIEhpZ2hsaWdodC4iPgogICAgIDxzdHlsZT4KICAgICAgICAgOjpoaWdobGln
aHQoZXhhbXBsZS1oaWdobGlnaHQpIHsKICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJs
dWU7CkBAIC00MiwxMiArNDIsMTIgQEAKICAgICAgICAgICAgIGxldCByYW5nZTIgPSBuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFy
dE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRP
ZmZzZXQ6IDR9KTsKICAgICAgICAgICAgIGxldCByYW5nZTMgPSBuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogOCwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEyfSk7
CiAKLSAgICAgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRS
YW5nZUdyb3VwKHJhbmdlMSk7Ci0gICAgICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1w
bGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOworICAgICAgICAgICAgbGV0IGhp
Z2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0KHJhbmdlMSk7CisgICAgICAgICAgICBDU1MuaGlnaGxp
Z2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0MSk7CiAKLSAgICAgICAgICAg
IGhpZ2hsaWdodFJhbmdlR3JvdXAxLmFkZChyYW5nZTIpOwotICAgICAgICAgICAgaGlnaGxpZ2h0
UmFuZ2VHcm91cDEuZGVsZXRlKHJhbmdlMSk7Ci0gICAgICAgICAgICBoaWdobGlnaHRSYW5nZUdy
b3VwMS5hZGQocmFuZ2UzKTsKKyAgICAgICAgICAgIGhpZ2hsaWdodDEuYWRkKHJhbmdlMik7Cisg
ICAgICAgICAgICBoaWdobGlnaHQxLmRlbGV0ZShyYW5nZTEpOworICAgICAgICAgICAgaGlnaGxp
Z2h0MS5hZGQocmFuZ2UzKTsKIAogICAgICAgICAgICAgdmFyIHJlcGFpbnRSZWN0cyA9IHdpbmRv
dy5pbnRlcm5hbHMucmVwYWludFJlY3RzQXNUZXh0KCk7CiAgICAgICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnN0b3BUcmFja2luZ1JlcGFpbnRzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0LXJlcGxhY2UuaHRtbAppbmRleCA3MDEzYTY2MzM1ZWJlNDYyNWE0NGM3ZTYzY2ZkZjA3YjY3
MmNhYjUyLi45MTNjYjVlNGNmNGE2NjUyNTIwMjA5NGFkYzM2MTQ1MWUwMWE5ZDUxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LXRleHQtcmVwbGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGln
aGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwKQEAgLTE4LDEzICsxOCwxMyBA
QAogCiAgICAgPHNjcmlwdD4KICAgICAgICAgbGV0IHRleHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RleHQxJyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9
IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6
IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMn0pKTsKKyAgICAgICAgbGV0
IGhpZ2hsaWdodDEgPSBuZXcgSGlnaGxpZ2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWlu
ZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMn0pKTsKIAotICAgICAg
ICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcg
U3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBz
dGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBl
bmRPZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFy
dE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRP
ZmZzZXQ6IDZ9KSk7ICAgICAgICAKKyAgICAgICAgbGV0IGhpZ2hsaWdodDIgPSBuZXcgSGlnaGxp
Z2h0KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9k
ZXNbMF0sIHN0YXJ0T2Zmc2V0OiAzLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9k
ZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0Mi5hZGQobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRP
ZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiA2fSkpOyAgICAgICAgCiAKLSAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxl
LWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKLSAgICAgICAgQ1NTLmhpZ2hsaWdo
dHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKKyAgICAg
ICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodDEpOwor
ICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0
Mik7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4
dC5odG1sCmluZGV4IDRhYmY0MzAwMjgwYThhODMxOTdlODIyOWQ4NDg4YzgyMzYyMDg2YjUuLmZh
NDcyNzUxMmZjMTZlMjc5ZjNkNjY2NTA0NzYzM2YyNzM0ODQyMmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGln
aHQtdGV4dC5odG1sCkBAIC0yNiwxOSArMjYsMTkgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAg
IGxldCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwotICAg
ICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChu
ZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBd
LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBd
LCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHQxID0gbmV3IEhpZ2hsaWdo
dChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAy
ID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5l
cjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5l
cjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOwotICAgICAgICBo
aWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjog
dGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkpOworICAgICAgICBsZXQg
aGlnaGxpZ2h0MiA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5l
cjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5l
cjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOworICAgICAgICBo
aWdobGlnaHQyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVu
dC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVu
dC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdo
dFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDcs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA4fSkp
OwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDksIGVu
ZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxMH0pKTsK
LSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRD
b250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMiwgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEzfSkpOwor
ICAgICAgICBsZXQgaGlnaGxpZ2h0MyA9IG5ldyBIaWdobGlnaHQobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDcs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA4fSkp
OworICAgICAgICBoaWdobGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogOSwgZW5kQ29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEwfSkpOworICAgICAgICBo
aWdobGlnaHQzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVu
dC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTIsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1l
bnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxM30pKTsKICAgICAgICAgCiAKLSAgICAgICAg
Q1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdy
b3VwMSk7Ci0gICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwg
aGlnaGxpZ2h0UmFuZ2VHcm91cDIpOwotICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1w
bGUtaGlnaGxpZ2h0MyIsIGhpZ2hsaWdodFJhbmdlR3JvdXAzKTsKKyAgICAgICAgQ1NTLmhpZ2hs
aWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHQxKTsKKyAgICAgICAgQ1NT
LmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDIiLCBoaWdobGlnaHQyKTsKKyAgICAg
ICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHQzKTsK
ICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>