<?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>148589</bug_id>
          
          <creation_ts>2015-08-28 14:14:46 -0700</creation_ts>
          <short_desc>DOMTokenList update steps for classList don&apos;t follow the spec</short_desc>
          <delta_ts>2016-04-07 10:33:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.mozilla.org/show_bug.cgi?id=869788</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=148780</see_also>
          <bug_file_loc>https://dom.spec.whatwg.org/#domtokenlist</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michał Gołębiowski-Owczarek">m.goleb+bugzilla</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1121825</commentid>
    <comment_count>0</comment_count>
    <who name="Michał Gołębiowski-Owczarek">m.goleb+bugzilla</who>
    <bug_when>2015-08-28 14:14:46 -0700</bug_when>
    <thetext>Steps to reproduce the problem:
```
var div = document.createElement(&apos;div&apos;);
div.className = &apos;   a   b   c   &apos;;
div.classList.remove(&apos;b&apos;);

console.log(div.className); // &quot;  a c  &quot;
```


`DOMTokenList` [update steps](https://dom.spec.whatwg.org/#domtokenlist)&apos; second point is:

&quot;Set an attribute value for the associated element using associated attribute’s local name and the result of running the ordered set serializer for tokens.&quot;

For `classList` the &quot;associated attribute&apos;s local name&quot; is `class`. The [&quot;ordered set serializer&quot; algorithm](https://dom.spec.whatwg.org/#concept-ordered-set-serializer) is:
&quot;The ordered set serializer takes a set and returns the concatenation of the strings in set, separated from each other by U+0020&quot;. This means that after updating the context object&apos;s classes via the classList API, className value (that reflects the &quot;class&quot; attribute value) should be &quot;a c&quot;, not &quot;   a c   &quot;.

Edge is the only browser that returns &quot;a c&quot; correctly for the above test case.


https://code.google.com/p/chromium/issues/detail?id=526282</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121827</commentid>
    <comment_count>1</comment_count>
    <who name="Michał Gołębiowski-Owczarek">m.goleb+bugzilla</who>
    <bug_when>2015-08-28 14:17:50 -0700</bug_when>
    <thetext>Firefox issue: https://bugzilla.mozilla.org/show_bug.cgi?id=869788</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122937</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-02 15:28:43 -0700</bug_when>
    <thetext>22547443</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122938</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-02 15:29:02 -0700</bug_when>
    <thetext>rdar://problem/22547443</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125057</commentid>
    <comment_count>4</comment_count>
      <attachid>260961</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-10 16:13:52 -0700</bug_when>
    <thetext>Created attachment 260961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125059</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-10 16:17:17 -0700</bug_when>
    <thetext>Attachment 260961 did not pass style-queue:


ERROR: Source/WebCore/html/DOMTokenList.h:53:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/DOMTokenList.h:55:  Missing space before {  [whitespace/braces] [5]
Total errors found: 2 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125062</commentid>
    <comment_count>6</comment_count>
      <attachid>260963</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-10 16:24:18 -0700</bug_when>
    <thetext>Created attachment 260963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125064</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-10 16:27:19 -0700</bug_when>
    <thetext>Attachment 260963 did not pass style-queue:


ERROR: Source/WebCore/html/DOMTokenList.h:53:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/DOMTokenList.h:55:  Missing space before {  [whitespace/braces] [5]
Total errors found: 2 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125079</commentid>
    <comment_count>8</comment_count>
      <attachid>260969</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-10 16:45:15 -0700</bug_when>
    <thetext>Created attachment 260969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125080</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-10 16:46:36 -0700</bug_when>
    <thetext>Attachment 260969 did not pass style-queue:


ERROR: Source/WebCore/html/DOMTokenList.h:53:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/html/DOMTokenList.h:55:  Missing space before {  [whitespace/braces] [5]
Total errors found: 2 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125199</commentid>
    <comment_count>10</comment_count>
      <attachid>260969</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-11 09:36:07 -0700</bug_when>
    <thetext>Comment on attachment 260969
Patch

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

&gt; Source/WebCore/html/AttributeDOMTokenList.h:42
&gt; +    virtual void ref() override { m_element.ref(); }
&gt; +    virtual void deref() override { m_element.deref(); }
&gt; +
&gt; +    virtual Element* element() const override { return &amp;m_element; }

Can any of these be private?

&gt; Source/WebCore/html/AttributeDOMTokenList.h:48
&gt; +    const WebCore::QualifiedName m_attributeName;

Could consider making this a reference; no need to churn the reference counts on the global immortal attribute names.

&gt; Source/WebCore/html/DOMTokenList.cpp:73
&gt; +    Vector&lt;AtomicString&gt; uniqueTokens;

This is a temporary that’s only used on the stack. I suggest some inline capacity to get rid of one heap allocation.

&gt; Source/WebCore/html/DOMTokenList.cpp:136
&gt; +        for (size_t i = 0; i &lt; m_tokens.size(); ++i) {
&gt; +            builder.append(m_tokens[i]);
&gt; +            if (i != m_tokens.size() - 1)
&gt; +                builder.append(&apos; &apos;);
&gt; +        }

I liked the old way with a boolean because then we could use a modern for loop. Also might be nice to teach StringBuilder how to join and append, since this seems like a common idiom.

&gt; Source/WebCore/html/DOMTokenList.cpp:162
&gt; +        // We do a simple linear search as there are usually not many tokens.
&gt; +        if (!m_tokens.contains(token))
&gt; +            m_tokens.append(token);

Seems a little dangerous to assume there’s never a giant one of these.

&gt; Source/WebCore/html/DOMTokenList.h:53
&gt; +    void add(const AtomicString&amp; token, ExceptionCode&amp; ec) { add(Vector&lt;String&gt;{token.string()}, ec); }

Seems wasteful to allocate a vector just to do this. There are multiple ways to avoid that; one is to have the worker function that takes a “view” on a vector, just a pointer plus a length.

I also think we are going too far in putting function bodies in the class. I’d like to see interface and implementation a bit more separate by putting the inline function bodies after the class.

&gt; Source/WebCore/html/DOMTokenList.h:72
&gt;  protected:
&gt; -    virtual AtomicString value() const = 0;
&gt; -    virtual void setValue(const AtomicString&amp;) = 0;
&gt; +    const AtomicString&amp; value() const;
&gt; +    void setValue(const String&amp;);
&gt; +    virtual void updateAfterTokenChange() { m_cachedValue = nullAtom; }
&gt;  
&gt; -    void addInternal(const AtomicString&amp;);
&gt; -    virtual bool containsInternal(const AtomicString&amp;) const = 0;
&gt; -    void removeInternal(const AtomicString&amp;);
&gt; -
&gt; -    static bool validateToken(const AtomicString&amp;, ExceptionCode&amp;);
&gt; +    static bool validateToken(const String&amp;, ExceptionCode&amp;);
&gt;      static bool validateTokens(const Vector&lt;String&gt;&amp;, ExceptionCode&amp;);
&gt; -    static String addToken(const AtomicString&amp;, const AtomicString&amp;);
&gt; -    static String addTokens(const AtomicString&amp;, const Vector&lt;String&gt;&amp;);
&gt; -    static String removeToken(const AtomicString&amp;, const AtomicString&amp;);
&gt; -    static String removeTokens(const AtomicString&amp;, const Vector&lt;String&gt;&amp;);
&gt; +
&gt; +    Vector&lt;AtomicString&gt; m_tokens;
&gt; +    mutable AtomicString m_cachedValue;

Do derived classes need access to all of these? I think at least some of this should be private rather than protected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125223</commentid>
    <comment_count>11</comment_count>
      <attachid>260969</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-11 11:02:12 -0700</bug_when>
    <thetext>Comment on attachment 260969
Patch

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

&gt;&gt; Source/WebCore/html/AttributeDOMTokenList.h:42
&gt;&gt; +    virtual Element* element() const override { return &amp;m_element; }
&gt; 
&gt; Can any of these be private?

I believe so, will fix.

&gt;&gt; Source/WebCore/html/AttributeDOMTokenList.h:48
&gt;&gt; +    const WebCore::QualifiedName m_attributeName;
&gt; 
&gt; Could consider making this a reference; no need to churn the reference counts on the global immortal attribute names.

Ok.

&gt;&gt; Source/WebCore/html/DOMTokenList.cpp:73
&gt;&gt; +    Vector&lt;AtomicString&gt; uniqueTokens;
&gt; 
&gt; This is a temporary that’s only used on the stack. I suggest some inline capacity to get rid of one heap allocation.

Ok, I will browse a little bit to determine a decent inline capacity.

&gt;&gt; Source/WebCore/html/DOMTokenList.cpp:136
&gt;&gt; +        }
&gt; 
&gt; I liked the old way with a boolean because then we could use a modern for loop. Also might be nice to teach StringBuilder how to join and append, since this seems like a common idiom.

Ok.

&gt;&gt; Source/WebCore/html/DOMTokenList.cpp:162
&gt;&gt; +            m_tokens.append(token);
&gt; 
&gt; Seems a little dangerous to assume there’s never a giant one of these.

Hmm. I will think a bit about this. We could allocate a HashMap on the stack to make this faster.

&gt;&gt; Source/WebCore/html/DOMTokenList.h:53
&gt;&gt; +    void add(const AtomicString&amp; token, ExceptionCode&amp; ec) { add(Vector&lt;String&gt;{token.string()}, ec); }
&gt; 
&gt; Seems wasteful to allocate a vector just to do this. There are multiple ways to avoid that; one is to have the worker function that takes a “view” on a vector, just a pointer plus a length.
&gt; 
&gt; I also think we are going too far in putting function bodies in the class. I’d like to see interface and implementation a bit more separate by putting the inline function bodies after the class.

Hmm. Agreed. I did not bother because the existing code was doing this and I am pretty sure this is only used by legacy ObjC bindings. However, I will look into the change you&apos;re suggesting.

&gt;&gt; Source/WebCore/html/DOMTokenList.h:72
&gt;&gt; +    mutable AtomicString m_cachedValue;
&gt; 
&gt; Do derived classes need access to all of these? I think at least some of this should be private rather than protected.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125237</commentid>
    <comment_count>12</comment_count>
      <attachid>261012</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-11 13:22:57 -0700</bug_when>
    <thetext>Created attachment 261012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125238</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-11 13:26:47 -0700</bug_when>
    <thetext>It looks like this may be performance-positive on Dromaeo Selector tests:
http://dromaeo.com/?id=241285,241294</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125255</commentid>
    <comment_count>14</comment_count>
      <attachid>261012</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-11 14:33:28 -0700</bug_when>
    <thetext>Comment on attachment 261012
Patch

Clearing flags on attachment: 261012

Committed r189632: &lt;http://trac.webkit.org/changeset/189632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125256</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-11 14:33:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125263</commentid>
    <comment_count>16</comment_count>
    <who name="Michał Gołębiowski-Owczarek">m.goleb+bugzilla</who>
    <bug_when>2015-09-11 14:53:08 -0700</bug_when>
    <thetext>Thanks! \o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181682</commentid>
    <comment_count>17</comment_count>
    <who name="Michał Gołębiowski-Owczarek">m.goleb+bugzilla</who>
    <bug_when>2016-04-07 08:43:49 -0700</bug_when>
    <thetext>It seems the algorithm used in Safari Technology Preview serializes too aggressively; see the spec issue at https://github.com/whatwg/dom/issues/105; the Tech Preview follows the old behavior, the current Safari 9 follows the new one.

Edge 13 which implemented DOMTokenList update steps properly applies them on add/remove/toggle but not just on a regular stringification if those are not involved (so it follows the current spec correctly, I think).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181697</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-07 09:24:54 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; It seems the algorithm used in Safari Technology Preview serializes too
&gt; aggressively; see the spec issue at
&gt; https://github.com/whatwg/dom/issues/105; the Tech Preview follows the old
&gt; behavior, the current Safari 9 follows the new one.
&gt; 
&gt; Edge 13 which implemented DOMTokenList update steps properly applies them on
&gt; add/remove/toggle but not just on a regular stringification if those are not
&gt; involved (so it follows the current spec correctly, I think).

Would you mind filing a new bug? I can probably fix this soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181719</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-07 10:33:19 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; It seems the algorithm used in Safari Technology Preview serializes too
&gt; &gt; aggressively; see the spec issue at
&gt; &gt; https://github.com/whatwg/dom/issues/105; the Tech Preview follows the old
&gt; &gt; behavior, the current Safari 9 follows the new one.
&gt; &gt; 
&gt; &gt; Edge 13 which implemented DOMTokenList update steps properly applies them on
&gt; &gt; add/remove/toggle but not just on a regular stringification if those are not
&gt; &gt; involved (so it follows the current spec correctly, I think).
&gt; 
&gt; Would you mind filing a new bug? I can probably fix this soon.

Although, since we were matching the spec until they changed it recently and considering that our new behavior is nicer, I think we should try and push back on the spec.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260961</attachid>
            <date>2015-09-10 16:13:52 -0700</date>
            <delta_ts>2015-09-10 16:24:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148589-20150910161345.patch</filename>
            <type>text/plain</type>
            <size>88840</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc3Yzg0MGVmMDJkNmQ5
NWFlMGUwZWEwYmY3MzdiMTY1ZTA0OWM5NC4uYjg3MzY3YWUxMjJjZTMzMzNlZTRiZWZkMTY5ZGZi
OGNjNGMyZjJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OCBAQAorMjAxNS0wOS0xMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERPTVRva2VuTGlzdCB1cGRh
dGUgc3RlcHMgZm9yIGNsYXNzTGlzdCBkb24ndCBmb2xsb3cgdGhlIHNwZWMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODU4OQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjI1NDc0NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIG91ciBET01Ub2tlbkxpc3QgaW1wbGVtZW50YXRpb24gdG8g
YmVoYXZlIGFjY29yZGluZyB0bworICAgICAgICB0aGUgbGF0ZXN0IERPTSBzcGVjaWZpY2F0aW9u
OgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1kb210b2tl
bmxpc3QKKworICAgICAgICBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIGNoYW5nZXMgd2Vy
ZSBtYWRlOgorICAgICAgICAtIFRoZSBzdHJpbmdpZmllciBub3cgcmV0dXJucyB0aGUgcmVzdWx0
IG9mIHRoZSBvcmRlcmVkIHNldCBzZXJpYWxpemVyCisgICAgICAgICAgZm9yIHRva2Vucy4gVGhp
cyBtZWFucyB0aGF0IHdlIGRyb3AgZHVwbGljYXRlIHNwYWNlcyBhbmQgZXh0cmEgc3BhY2VzCisg
ICAgICAgICAgWzFdWzJdWzNdLgorICAgICAgICAtIERPTVNldHRhYmxlVG9rZW5MaXN0LnZhbHVl
IG5vdyByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIG9yZGVyZWQgc2V0CisgICAgICAgICAgc2Vy
aWFsaXplciBmb3IgdG9rZW5zIFs0XSBhcyB3ZWxsLgorICAgICAgICAtIFdoZW4gdGhlIERPTVRv
a2VuTGlzdCdzIHRva2VucyBhcmUgdXBkYXRlZCBhbmQgdGhlcmUgaXMgYW4gYXNzb2NpYXRlZAor
ICAgICAgICAgIEVsZW1lbnQgYXR0cmlidXRlLCB3ZSBzZXQgdGhlIGF0dHJpYnV0ZSB2YWx1ZSB0
byBiZSB0aGUgdGhlIG9yZGVyZWQKKyAgICAgICAgICBzZXQgc2VyaWFsaXplciBmb3IgdG9rZW5z
LiBUaGlzIGlzIGFjY29yZGluZyB0byB0aGUgRE9NVG9rZW5MaXN0CisgICAgICAgICAgdXBkYXRl
IHN0ZXBzIGluIHRoZSBzcGVjaWZpY2F0aW9uIFs2XS4KKworICAgICAgICBFZGdlIGJyb3dzZXIg
YmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmljYXRpb24gYWxyZWFkeS4gRmlyZWZveCBp
cworICAgICAgICBpbXBsZW1lbnRpbmcgdGhpcyB2aWEgWzddLiBUaGlzIG1ha2VzIHRoZSBKUyBB
UEkgbmljZXIgdG8gdXNlIGFuZAorICAgICAgICBpbnRlcmVzdCB3YXMgc2hvd24gYnkgalF1ZXJ5
IFRlYW0uCisKKyAgICAgICAgVGhlIGZvbGxvd2luZyByZWZhY3RvcmluZyB3YXMgZG9uZToKKyAg
ICAgICAgLSBNZXJnZSBDbGFzc0xpc3QgLyBSZWxMaXN0IGludG8gYSBzaW5nbGUgQXR0cmlidXRl
RE9NVG9rZW5MaXN0IGNsYXNzCisgICAgICAgICAgYXMgdGhlaXIgY29kZSBpcyBtb3N0bHkgZHVw
bGljYXRlZCBhbmQgdGhlIG9ubHkgdGhpbmcgdGhhdCBjaGFuZ2VzCisgICAgICAgICAgaXMgd2hp
Y2ggYXR0cmlidXRlIGlzIGFzc29jaWF0ZWQgKGNsYXNzIHZzIHJlbCkuIEF0dHJpYnV0ZURPTVRv
a2VuTGlzdAorICAgICAgICAgIG5vdyBrZWVwcyB0aGUgYXR0cmlidXRlIG5hbWUgYXMgYSBtZW1i
ZXIgc28gaXQgY291bGQgYmUgdXNlZCBmb3IgYW55CisgICAgICAgICAgYXR0cmlidXRlLiBBdHRy
aWJ1dGVET01Ub2tlbkxpc3Qgb3ZlcnJpZGVzIERPTVRva2VuTGlzdCdzCisgICAgICAgICAgdXBk
YXRlQWZ0ZXJUb2tlbkNoYW5nZSgpIHRvIGRvIHVwZGF0ZSB0aGUgYXR0cmlidXRlJ3MgdmFsdWUg
YXMgcGVyCisgICAgICAgICAgWzZdLgorICAgICAgICAtIFdlIG5vIGxvbmdlciB1c2UgYSBTcGFj
ZVNwbGl0U3RyaW5nIGZvciB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24KKyAgICAgICAgICBh
cyB3ZSBuZWVkIHRvIHNhbml0aXplIHRoZSB0b2tlbnMgKGRyb3AgZHVwbGljYXRlcyBhbmQgZXh0
cmEgc3BhY2VzKS4KKyAgICAgICAgICBET01Ub2tlbkxpc3Qgbm93IGhhcyBhbiBpbnRlcm5hbCBW
ZWN0b3I8QXRvbWljU3RyaW5nPiBjb250YWluaW5nIHRoZQorICAgICAgICAgIHRva2VucyB0aGF0
IGlzIGNvbnN0cnVjdGVkIGZyb20gdGhlIGFsZ29yaXRobSBpbiBbMl0uIEFzIGEgcmVzdWx0LAor
ICAgICAgICAgIG1vc3Qgb2YgdGhlIGxvZ2ljIGlzIG5vdyBpbiBET01Ub2tlbkxpc3QgaW5zdGVh
ZCBvZiBpdHMgc3ViY2xhc3NlcworICAgICAgICAgIHdoaWNoIG1lYW5zIHRoYXQgbW9zdCBtZXRo
b2RzIGFyZSBubyBsb25nZXIgdmlydHVhbC4gV2Ugb25seSBoYXZlCisgICAgICAgICAgb25lIHZp
cnR1YWwgZnVuY3Rpb24gbmFtZWQgdXBkYXRlQWZ0ZXJUb2tlbkNoYW5nZSgpIHRvIGRvIHRoZSB1
cGRhdGUKKyAgICAgICAgICBzdGVwcyBhcyBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgbmVlZHMgdG8g
dXBkYXRlIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAgYXR0cmlidXRlLgorCisgICAgICAgIFRo
aXMgY2hhbmdlIGRvZXMgbm90IHNlZW0gdG8gaW1wYWN0IERyb21hZW8uCisKKyAgICAgICAgWzFd
IGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1vcmRlcmVkLXNldC1zZXJpYWxp
emVyCisgICAgICAgIFsyXSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI29yZGVyZWQlMjBz
ZXRzCisgICAgICAgIFszXSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI3N0cmluZ2lmaWNh
dGlvbi1iZWhhdmlvcgorICAgICAgICBbNF0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNk
b20tZG9tc2V0dGFibGV0b2tlbmxpc3QtdmFsdWUKKyAgICAgICAgWzVdIGh0dHBzOi8vZG9tLnNw
ZWMud2hhdHdnLm9yZy8jZG9tLWRvbXRva2VubGlzdC1jb250YWlucyAoc3RlcCAyKQorICAgICAg
ICBbNl0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LURUTC11cGRhdGUKKyAg
ICAgICAgWzddIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTg2
OTc4OAorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWxyZWFkeSBjb3ZlcmVkIGJ5IGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6Y2xhc3NBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgV2hlbiB0aGUgY2xhc3Mg
YXR0cmlidXRlIGNoYW5nZXMsIG1ha2Ugc3VyZSB0byB1cGRhdGUgdGhlIGFzc29jaWF0ZWQKKyAg
ICAgICAgY2xhc3NMaXN0IGlmIHRoZXJlIGlzIG9uZS4gV2UgY291bGQgZG8gdGhpcyBsYXppbHkg
aWYgaXQgdHVybnMgb3V0CisgICAgICAgIHRvIGJlIGEgcGVyZm9ybWFuY2UgcHJvYmxlbS4gSG93
ZXZlciwgY2hhbmNlcyBhcmUgdGhpcyBpcyBub3QgYXMKKyAgICAgICAgY2xhc3NMaXN0IGlzIHJh
cmVseSB1c2VkIGFuZCB3ZSBvbmx5IG5lZWQgdG8gdXBkYXRlIHRoZSBjbGFzc0xpc3QgaWYKKyAg
ICAgICAgaXQgd2FzIGV2ZXIgYWNjZXNzZWQgYnkgSlMgZm9yIHRoaXMgRWxlbWVudC4KKworICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgRHJvcCBjYWxs
IHRvIGNsZWFyQ2xhc3NMaXN0VmFsdWVGb3JRdWlya3NNb2RlKCkgYXMgd2Ugbm8gbG9uZ2VyIG5l
ZWQKKyAgICAgICAgdG8gbWFpbnRhaW4gYSBzZXBhcmF0ZSBTcGFjZVNwbGl0U3RyaW5nIGZvciBj
bGFzc2VzIHdoZW4gaW4gcXVpcmtzCisgICAgICAgIG1vZGUuIFRoaXMgaXMgYmVjYXVzZSBBdHRy
aWJ1dGVET01Ub2tlbkxpc3Qgbm93IGhhcyBpdHMgb3duIFZlY3RvcgorICAgICAgICBvZiBjbGFz
c2VzIGluIHRoZWlyIG9yaWdpbmFsIGNhc2VzLiBJdCB0aGVyZWZvcmUgbm8gbG9uZ2VyIHJlbGll
cyBvbgorICAgICAgICBFbGVtZW50OjpjbGFzc05hbWVzKCkgd2hpY2ggaGFzIGl0cyBjYXNlIGZv
bGRlZCB3aGVuIGluIHF1aXJrcyBtb2RlLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpj
bGFzc0xpc3QpOgorICAgICAgICBSZXR1cm4gYSBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgaW5zdGVh
ZCBvZiBhIENsYXNzTGlzdC4KKworICAgICAgICAqIGh0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0
Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdHRyaWJ1dGVET01Ub2tlbkxpc3Q6OkF0dHJpYnV0ZURP
TVRva2VuTGlzdCk6CisgICAgICAgIENhbGwgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZSgpIHVzaW5n
IHRoZSBhdHRyaWJ1dGUncyB2YWx1ZSBzbyB0aGF0CisgICAgICAgIERPTVRva2VuTGlzdCBjYW4g
aW5pdGlhbGl6ZSBpdHMgdG9rZW4gVmVjdG9yLgorCisgICAgICAgIChXZWJDb3JlOjpBdHRyaWJ1
dGVET01Ub2tlbkxpc3Q6OmF0dHJpYnV0ZVZhbHVlQ2hhbmdlZCk6CisgICAgICAgIElmIHRoZSBh
dHRyaWJ1dGUgdmFsdWUgd2FzIGNoYW5nZWQgYnkgc29tZWJvZHkgZWxzZSB0aGF0IHRoZQorICAg
ICAgICBBdHRyaWJ1dGVET01Ub2tlbkxpc3QsIGNhbGwgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZSgp
IHNvIHRoYXQgaXQKKyAgICAgICAgY2FuIHVwZGF0ZSBpdHMgdG9rZW4gVmVjdG9yLgorCisgICAg
ICAgIChXZWJDb3JlOjpBdHRyaWJ1dGVET01Ub2tlbkxpc3Q6OnVwZGF0ZUFmdGVyVG9rZW5DaGFu
Z2UpOgorICAgICAgICBUaGlzIGlzIGNhbGxlZCB3aGVuZXZlciB0aGUgdG9rZW4gVmVjdG9yIGlz
IGNoYW5nZWQgdmlhIEpTLiBJbgorICAgICAgICB0aGlzIGNhc2UsIHdlIHVwZGF0ZSB0aGUgYXNz
b2NpYXRlZCBhdHRyaWJ1dGUncyB2YWx1ZS4KKworICAgICAgICAqIGh0bWwvQ2xhc3NMaXN0LmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL0NsYXNzTGlzdC5oOiBSZW1vdmVkLgorICAgICAg
ICBOb3cgbWVyZ2VkIGludG8gQXR0cmlidXRlRE9NVG9rZW5MaXN0LgorCisgICAgICAgICogaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHA6CisgICAgICAgICogaHRtbC9ET01TZXR0YWJsZVRv
a2VuTGlzdC5oOgorICAgICAgICBHZXQgcmlkIG9mIG1vc3Qgb2YgdGhlIGNvZGUgYXMgbW9zdCBv
ZiB0aGUgbG9naWMgaXMgbm93IGluCisgICAgICAgIERPTVRva2VuTGlzdCBwYXJlbnQgY2xhc3Mu
CisKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW4pOgorICAgICAgICBVc2UgYSBTdHJpbmcgcGFyYW1l
dGVyIGluc3RlYWQgb2YgYW4gQXRvbWljU3RyaW5nIGFzIHRoaXMgbWV0aG9kIGRvZXMKKyAgICAg
ICAgbm90IG5lZWQgdGhlIGlucHV0IHRoZSBiZSBhbiBBdG9taWNTdHJpbmcuIFRoaXMgYXZvaWQg
YXRvbWl6aW5nCisgICAgICAgIFN0cmluZyB1bm5lY2Vzc2FyaWx5LgorCisgICAgICAgIChXZWJD
b3JlOjpET01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW5zKToKKyAgICAgICAgVXNlIGEgbW9kZXJu
IGxvb3AuCisKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6Y29udGFpbnMpOgorICAg
ICAgICBObyBsb25nZXIgdXNlIGNvbnRhaW5zSW50ZXJuYWwoKSB2aXJ0dWFsIGZ1bmN0aW9uLiBX
ZSBjYW4gbm93IGNoZWNrCisgICAgICAgIHRoZSBpbnRlcm5hbCB0b2tlbiBWZWN0b3IuCisKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6YWRkKToKKyAgICAgICAgTm93IHVwZGF0ZSB0
aGUgaW50ZXJuYWwgVmVjdG9yLiBVc2UgYSBtb2Rlcm4gbG9vcCBhbmQgdHJ5IHRvIG1pbmltaXpl
CisgICAgICAgIFZlY3RvciBjYXBhY2l0eSByZWFsbG9jYXRpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVRva2VuTGlzdDo6cmVtb3ZlKToKKyAgICAgICAgTm93IHVwZGF0ZSB0aGUgaW50ZXJu
YWwgVmVjdG9yLgorCisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnRvZ2dsZSk6Cisg
ICAgICAgIE5vdyB1cGRhdGUgdGhlIGludGVybmFsIFZlY3RvciBhbmQgcmVmYWN0b3IgdGhlIGNv
ZGUgc28gdGhhdCBpdCBpcworICAgICAgICBzdHJ1Y3R1cmVkIGV4YWN0bHkgYXMgdGhlIGFsZ29y
aXRobSBpbiB0aGUgc3BlY2lmaWNhdGlvbiBmb3IKKyAgICAgICAgY2xhcml0eS4KKworICAgICAg
ICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp2YWx1ZSk6CisgICAgICAgIE5vdyByZXR1cm4gdGhl
IHJlc3VsdCBvZiB0aGUgb3JkZXJlZCBzZXQgc2VyaWFsaXplciBmb3IgdG9rZW5zLiBUaGlzCisg
ICAgICAgIG1ldGhvZCBpcyB1c2VkIGZvcjoKKyAgICAgICAgLSBUaGUgRE9NU2V0dGFibGVUb2tl
bkxpc3QudmFsdWUoKSBnZXR0ZXIKKyAgICAgICAgLSBUaGUgRE9NVG9rZW5MaXN0IHN0cmluZ2lm
aWVyCisgICAgICAgIC0gQXMgYXR0cmlidXRlIHZhbHVlIHdoZW4gdXBkYXRpbmcgdGhlIGFzc29j
aWF0ZWQgYXR0cmlidXRlIGluCisgICAgICAgICAgQXR0cmlidXRlRE9NVG9rZW5MaXN0LgorCisg
ICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnNldFZhbHVlKToKKyAgICAgICAgVXBkYXRl
IHRoZSBpbnRlcm5hbCBWZWN0b3IgdXNpbmcgdGhlIGFsZ29yaXRobSBpbiBbMl0uCisKKyAgICAg
ICAgKiBodG1sL0RPTVRva2VuTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0
OjpsZW5ndGgpOgorICAgICAgICBObyBsb25nZXIgdmlydHVhbCwgbm93IHJldHVybnMgdGhlIHNp
emUgb2YgdGhlIGludGVybmFsIHRva2VuIFZlY3Rvci4KKworICAgICAgICAoV2ViQ29yZTo6RE9N
VG9rZW5MaXN0OjppdGVtKToKKyAgICAgICAgTm8gbG9uZ2VyIHZpcnR1YWwsIG5vdyByZXR1cm5z
IHRoZSB0b2tlbiBhdCB0aGUgZ2l2ZW4gaW5kZXggaW4gdGhlCisgICAgICAgIGludGVybmFsIFZl
Y3Rvci4KKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QpOgorICAgICAgICBOb3cgcmV0dXJu
IGEgQXR0cmlidXRlRE9NVG9rZW5MaXN0LgorCisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpyZWxMaXN0KToKKyAg
ICAgICAgTm93IHJldHVybiBhIEF0dHJpYnV0ZURPTVRva2VuTGlzdC4KKworICAgICAgICAqIGh0
bWwvUmVsTGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9SZWxMaXN0Lmg6IFJlbW92
ZWQuCisgICAgICAgIE5vdyBtZXJnZWQgaW50byBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuCisKIDIw
MTUtMDktMTAgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFdy
aXRlIGEgdGVzdCB0byBlbnN1cmUgd2UgZG9uJ3QgcmVncmVzcyBwcm9jZXNzaW5nIG9mIHRhc2tz
IHdoZW4gcGFnZSBkZWZlcnMgbG9hZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUyYTg5NTdiNTk4N2M5YmQ1MjJhMWEyNWJk
Zjg2ODRmNTljOTM2NGQuLmMyZjc1OGY1ZDBmM2YxZjY1ZmQ5NjViMmExNjhmZDJkNzAwNzk4NmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE2ODYsNiArMTY4Niw4IEBACiAJCTQ1QkFDMkIwMTM2MEJCQUIwMDVEQTI1OCAvKiBJ
Y29uVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NUJBQzJBRjEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ1RkVBNUNGMTU2RERFOEMwMDY1NDEwMSAv
KiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCAqLzsgfTsKIAkJNDVG
RUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNp
bWFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NDYyMzNFRUUxQkEwRjE4NzAwMEVCRUJCIC8qIEF0dHJpYnV0ZURPTVRva2VuTGlzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYyMzNFRUQxQkEwRjE3
QTAwMEVCRUJCIC8qIEF0dHJpYnV0ZURPTVRva2VuTGlzdC5oICovOyB9OworCQk0NjIzM0VFRjFC
QTBGMThCMDAwRUJFQkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MjMzRUVDMUJBMEYxN0EwMDBFQkVC
QiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwICovOyB9OwogCQk0NjM0NTkyQzFBQzIyNzEw
MDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJP
YnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2MzQ1OTJFMUFDMjI3M0MwMEVDQjcxQyAvKiBTaGFy
ZWRUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2MzQ1OTJEMUFDMjI3M0MwMEVDQjcxQyAvKiBTaGFyZWRUaW1lckNGLmNwcCAqLzsgfTsK
IAkJNDYzRUI2MjIxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRUI2MjAxQjg3ODlDQjAw
OTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uY3BwICovOyB9OwpAQCAtMTg1Myw4ICsxODU1LDYgQEAK
IAkJNEE5Q0M4MTgxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE5Q0M4MTYxNkJC
OUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oICovOyB9OwogCQk0QTlDQzgy
MDE2QkY5QkI0MDBFQzY0NUEgLyogSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTlDQzgxRTE2QkY5QkI0MDBF
QzY0NUEgLyogSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHAgKi87IH07CiAJCTRBOUNDODIxMTZC
RjlCQjQwMEVDNjQ1QSAvKiBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTlDQzgxRjE2QkY5QkI0MDBFQzY0NUEg
LyogSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5oICovOyB9OwotCQk0QUNCQzBCRTEyNzEzQ0JEMDA5
NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwICov
OyB9OwotCQk0QUNCQzBCRjEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBCRDEyNzEzQ0JEMDA5
NEY5QjIgLyogQ2xhc3NMaXN0LmggKi87IH07CiAJCTRBQ0JDMEMzMTI3MTNDQ0EwMDk0RjlCMiAv
KiBET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBDMDEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVU
b2tlbkxpc3QuY3BwICovOyB9OwogCQk0QUNCQzBDNDEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0
dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBQ0JDMEMxMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5o
ICovOyB9OwogCQk0QUNCQzBDQTEyNzEzRDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2Vu
TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
QUNCQzBDODEyNzEzRDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi87
IH07CkBAIC00ODkyLDggKzQ4OTIsNiBAQAogCQlCMkVEOTc3MTBCMUY1NUNFMDAyNTdEMEYgLyog
R3JhcGhpY3NDb250ZXh0Q0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjJFRDk3NzAwQjFGNTVDRTAwMjU3RDBGIC8qIEdyYXBoaWNzQ29udGV4dENH
LmNwcCAqLzsgfTsKIAkJQjJGMzRGRTYwRTgyRjgxNDAwRjYyN0NEIC8qIEROUy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJGMzRGRTUwRTgyRjgxNDAw
RjYyN0NEIC8qIEROUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUIyRjM0RkU5MEU4MkY4MjcwMEY2MjdDRCAvKiBETlNDRk5ldC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkYzNEZFODBFODJGODI3
MDBGNjI3Q0QgLyogRE5TQ0ZOZXQuY3BwICovOyB9OwotCQlCMkY3OENGRDE5RjJGMDJEMDA0OTY5
NkMgLyogUmVsTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkY3OENGQjE5RjJGMDJEMDA0OTY5NkMgLyogUmVsTGlzdC5jcHAgKi87IH07Ci0J
CUIyRjc4Q0ZFMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkY3OENGQzE5RjJGMDJEMDA0OTY5NkMgLyog
UmVsTGlzdC5oICovOyB9OwogCQlCMkZBM0QzNjBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyRkEzQzRFMEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVDb2xvckVs
ZW1lbnQuY3BwICovOyB9OwogCQlCMkZBM0QzNzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkZBM0M0RjBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmggKi87IH07CiAJCUIyRkEzRDM4MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVk
QW5nbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjJGQTNDNTAwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgKi87IH07
CkBAIC04OTM0LDYgKzg5MzIsOCBAQAogCQk0NUJBQzJBRjEzNjBCQkFCMDA1REEyNTggLyogSWNv
blVSTC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJY29uVVJMLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNp
bWFsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERlY2ltYWwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEg
LyogRGVjaW1hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWNpbWFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MjMzRUVDMUJBMEYxN0EwMDBFQkVCQiAv
KiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcDsgcGF0aCA9IC4uL0F0dHJpYnV0ZURP
TVRva2VuTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MjMzRUVEMUJB
MEYxN0EwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQXR0cmlidXRlRE9NVG9rZW5MaXN0Lmg7IHBhdGggPSAuLi9BdHRy
aWJ1dGVET01Ub2tlbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNDU5
MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2MzQ1OTJEMUFDMjI3M0MwMEVDQjcxQyAvKiBTaGFyZWRUaW1l
ckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFRpbWVy
Q0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMDFCODc4OUNCMDA5
NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUYWdDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTkxMTcsOCArOTExNyw2IEBACiAJCTRBOUNDODE2MTZCQjlBQzYwMEVDNjQ1QSAvKiBDU1NEZWZh
dWx0U3R5bGVTaGVldHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRGVm
YXVsdFN0eWxlU2hlZXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBOUNDODFF
MTZCRjlCQjQwMEVDNjQ1QSAvKiBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTlDQzgxRjE2QkY5QkI0MDBFQzY0NUEgLyog
SW5zcGVjdG9yQ1NTT01XcmFwcGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xhc3NMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNEFDQkMwQkQxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGFzc0xpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNEFDQkMwQzAxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9r
ZW5MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVNldHRh
YmxlVG9rZW5MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEFDQkMwQzEx
MjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNldHRhYmxlVG9rZW5MaXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTRBQ0JDMEMyMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRv
a2VuTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NU2V0dGFibGVUb2tlbkxpc3Qu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0NzIsOCArMTI0NzAsNiBAQAog
CQlCMkVEOTc3MDBCMUY1NUNFMDAyNTdEMEYgLyogR3JhcGhpY3NDb250ZXh0Q0cuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dENHLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJGMzRGRTUwRTgyRjgxNDAwRjYyN0NEIC8q
IEROUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBETlMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJGMzRGRTgwRTgyRjgyNzAwRjYyN0NEIC8qIEROU0NGTmV0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEROU0NGTmV0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjJGNzhDRkIxOUYyRjAyRDAwNDk2OTZDIC8q
IFJlbExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVsTGlz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyRjc4Q0ZDMTlGMkYwMkQwMDQ5
Njk2QyAvKiBSZWxMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbExp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJGQTNDNEUwQUI3NUE2RTAwMEU1
QUM0IC8qIEpTU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJGQTNDNEYwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHQW5p
bWF0ZUNvbG9yRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNT
VkdBbmltYXRlQ29sb3JFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIy
RkEzQzUwMEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkQW5nbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHQW5pbWF0ZWRBbmdsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODE5Niw4ICsxODE5Miw2IEBACiAJCQkJODMw
MDMwRjcxQjdEMzk4ODAwRUQzQUFDIC8qIENhY2hlZEhUTUxDb2xsZWN0aW9uLmggKi8sCiAJCQkJ
RjU1QjNEN0QxMjUxRjEyRDAwM0VGMjY5IC8qIENoZWNrYm94SW5wdXRUeXBlLmNwcCAqLywKIAkJ
CQlGNTVCM0Q3RTEyNTFGMTJEMDAzRUYyNjkgLyogQ2hlY2tib3hJbnB1dFR5cGUuaCAqLywKLQkJ
CQk0QUNCQzBCQzEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCAqLywKLQkJCQk0QUNC
QzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggKi8sCiAJCQkJNDZFQkVBMDExQjdE
NEQ1RDAwQkU0OTQxIC8qIENvbGxlY3Rpb25UcmF2ZXJzYWwuaCAqLywKIAkJCQk5M0M0NDFGRjBG
ODEzQUUxMDBDMUE2MzQgLyogQ29sbGVjdGlvblR5cGUuaCAqLywKIAkJCQlCQzI5OTM1QzE3QTFE
RDU4MDBCQ0U4ODAgLyogQ29sb3JJbnB1dFR5cGUuY3BwICovLApAQCAtMTg1NDEsOCArMTg1MzUs
NiBAQAogCQkJCUI2NThGRkE0MTUyMkVGQUEwMERENTU5NSAvKiBSYWRpb05vZGVMaXN0LmggKi8s
CiAJCQkJRjU1QjNEOTkxMjUxRjEyRDAwM0VGMjY5IC8qIFJhbmdlSW5wdXRUeXBlLmNwcCAqLywK
IAkJCQlGNTVCM0Q5QTEyNTFGMTJEMDAzRUYyNjkgLyogUmFuZ2VJbnB1dFR5cGUuaCAqLywKLQkJ
CQlCMkY3OENGQjE5RjJGMDJEMDA0OTY5NkMgLyogUmVsTGlzdC5jcHAgKi8sCi0JCQkJQjJGNzhD
RkMxOUYyRjAyRDAwNDk2OTZDIC8qIFJlbExpc3QuaCAqLywKIAkJCQlGNTVCM0Q5QjEyNTFGMTJE
MDAzRUYyNjkgLyogUmVzZXRJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzRDlDMTI1MUYxMkQw
MDNFRjI2OSAvKiBSZXNldElucHV0VHlwZS5oICovLAogCQkJCTU4MjRBQkEwMUFFODExMTYwMDkw
NzRCNyAvKiBSdWJ5RWxlbWVudC5jcHAgKi8sCkBAIC0yMDI5MSw2ICsyMDI4Myw4IEBACiAJCUIx
QUQ0RTc3MTNBMTJBNzIwMDg0NkIyNyAvKiB0cmFjayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNDYyMzNFRUMxQkEwRjE3QTAwMEVCRUJCIC8qIEF0dHJp
YnV0ZURPTVRva2VuTGlzdC5jcHAgKi8sCisJCQkJNDYyMzNFRUQxQkEwRjE3QTAwMEVCRUJCIC8q
IEF0dHJpYnV0ZURPTVRva2VuTGlzdC5oICovLAogCQkJCUJFODhFMENDMTcxNUQyQTIwMDY1OEQ5
OCAvKiBBdWRpb1RyYWNrLmNwcCAqLywKIAkJCQlCRTg4RTBDRDE3MTVEMkEyMDA2NThEOTggLyog
QXVkaW9UcmFjay5oICovLAogCQkJCUJFODhFMENFMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1Ry
YWNrLmlkbCAqLywKQEAgLTI0MjAxLDcgKzI0MTk1LDYgQEAKIAkJCQlBODE4NzIyMDA5NzdEM0Mw
MDA1ODI2RDkgLyogQ2hpbGROb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTREODIzNTIw
QUY5MkE3OTAwMDRGMDU3IC8qIENocm9tZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTREODI0MDgw
QUY5M0FFQjAwMDRGMDU3IC8qIENocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNEFD
QkMwQkYxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODUwMzFCNDAwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTI2MzMzLDYgKzI2MzI2LDcgQEAKIAkJCQk5NzA1OTk3ODEwN0Q5
NzUyMDBBNTBBN0MgLyogUG9saWN5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MDU5
OTdBMTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRDQ1QTk1NzE3NUQ0MTRDMDBDMjFFQzggLyogUG9seWdvblNoYXBlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NjIzM0VFRTFCQTBGMTg3MDAwRUJFQkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTc0RTIwQTEwQTFGNDRGMDBGOTVFNkYgLyogUG9wU3Rh
dGVFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY2OEUxOEIwQUREOTYyNDAwNDEyOEUwIC8q
IFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1
IC8qIFBvcHVwTWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjM5NSw3ICsyNjM4OSw2
IEBACiAJCQkJNkNEREU4RDAxNzcwQkIyMjAwMTZFMDcyIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMjZCOTk5OEYxODAzQUU3MjAwRDAxMTIxIC8qIFJlZ2lzdGVy
QWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0QzBBNDRFRkM3MDBGOTkyRTAg
LyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUIyRjc4Q0ZF
MTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREZDMzYw
NjE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOUUwMTA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21t
YW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDZDMEQ4RjBDRkQxMTQ2MDA2NUY0M0YgLyogUmVt
b3ZlRm9ybWF0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODAwMCw3ICsyNzk5Myw2IEBA
CiAJCQkJQTgxODcyMjUwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxkTm9kZUxpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTREODIzOEIwQUY5MkRGNjAwMDRGMDU3IC8qIENocm9tZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBQkFGMjIwODBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJNEFDQkMwQkUxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlz
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0MwNjU3RDBGM0NFMUI3MDBDRDJEODcgLyogQ2xp
ZW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0MwNjU4MDBGM0NFMUI3MDBDRDJEODcg
LyogQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCM0YwQTQ0RUZD
NzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg4NzUs
NiArMjg4NjcsNyBAQAogCQkJCUIyNzUzNTYwMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludENH
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTdDMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQ
b2ludE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUzNTczMEIwNTM4MTQwMDJDRTY0RiAv
KiBJbnRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ2MjMzRUVGMUJBMEYxOEIwMDBFQkVC
QiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1
NjEwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3RDRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
Mjc1MzU3RDBCMDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdE1hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTJENDZGMDUwMTdCOTZGRDIwMDU2NDdGMCAvKiBJbnRTaXplLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjk5MjgsNyArMjk5MjEsNiBAQAogCQkJCUZENDVBOTVBMTc1RDQxNzEwMEMyMUVDOCAv
KiBSZWN0YW5nbGVTaGFwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0FCNDE4MTEzRTM1NkU4
MDBEOEFBRjMgLyogUmVnaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjRCMEE0NEVG
QzcwMEY5OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlCMkY3OENGRDE5RjJGMDJEMDA0OTY5NkMgLyogUmVsTGlzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDREZDMzYwNTE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERkMzNjA3MThDQTY5NkMwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUwMDA5OUU2
NDkyMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDY3NTAwMGE1NGE3MDgyOWMwZDExMTJkOThiZjg5
YmNhY2RkN2MzOWMuLjFkZmJkMjYyZTBhNWRlY2FmZDliM2E4M2QzNjQ0YmQxYWNjNjI1OGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEzNDcsOCArMTM0NywxMCBAQCB2b2lkIEVsZW1lbnQ6
OmNsYXNzQXR0cmlidXRlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld0NsYXNzU3RyaW5n
KQogICAgICAgICBlbGVtZW50RGF0YSgpLT5jbGVhckNsYXNzKCk7CiAgICAgfQogCi0gICAgaWYg
KGhhc1JhcmVEYXRhKCkpCi0gICAgICAgIGVsZW1lbnRSYXJlRGF0YSgpLT5jbGVhckNsYXNzTGlz
dFZhbHVlRm9yUXVpcmtzTW9kZSgpOworICAgIGlmIChoYXNSYXJlRGF0YSgpKSB7CisgICAgICAg
IGlmIChhdXRvKiBjbGFzc0xpc3QgPSBlbGVtZW50UmFyZURhdGEoKS0+Y2xhc3NMaXN0KCkpCisg
ICAgICAgICAgICBjbGFzc0xpc3QtPmF0dHJpYnV0ZVZhbHVlQ2hhbmdlZChuZXdDbGFzc1N0cmlu
Zyk7CisgICAgfQogCiAgICAgaWYgKHNob3VsZEludmFsaWRhdGVTdHlsZSkKICAgICAgICAgc2V0
TmVlZHNTdHlsZVJlY2FsYygpOwpAQCAtMTUxNiw5ICsxNTE4LDYgQEAgTm9kZTo6SW5zZXJ0aW9u
Tm90aWZpY2F0aW9uUmVxdWVzdCBFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYg
aW5zZXJ0aW8KICAgICBpZiAoIWluc2VydGlvblBvaW50LmlzSW5UcmVlU2NvcGUoKSkKICAgICAg
ICAgcmV0dXJuIEluc2VydGlvbkRvbmU7CiAKLSAgICBpZiAoaGFzUmFyZURhdGEoKSkKLSAgICAg
ICAgZWxlbWVudFJhcmVEYXRhKCktPmNsZWFyQ2xhc3NMaXN0VmFsdWVGb3JRdWlya3NNb2RlKCk7
Ci0KICAgICBUcmVlU2NvcGUqIG5ld1Njb3BlID0gJmluc2VydGlvblBvaW50LnRyZWVTY29wZSgp
OwogICAgIEhUTUxEb2N1bWVudCogbmV3RG9jdW1lbnQgPSAhd2FzSW5Eb2N1bWVudCAmJiBpbkRv
Y3VtZW50KCkgJiYgaXM8SFRNTERvY3VtZW50PihuZXdTY29wZS0+ZG9jdW1lbnRTY29wZSgpKSA/
ICZkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KG5ld1Njb3BlLT5kb2N1bWVudFNjb3BlKCkpIDogbnVs
bHB0cjsKICAgICBpZiAobmV3U2NvcGUgIT0gJnRyZWVTY29wZSgpKQpAQCAtMjY1NSw3ICsyNjU0
LDcgQEAgRE9NVG9rZW5MaXN0JiBFbGVtZW50OjpjbGFzc0xpc3QoKQogewogICAgIEVsZW1lbnRS
YXJlRGF0YSYgZGF0YSA9IGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpOwogICAgIGlmICghZGF0YS5j
bGFzc0xpc3QoKSkKLSAgICAgICAgZGF0YS5zZXRDbGFzc0xpc3Qoc3RkOjptYWtlX3VuaXF1ZTxD
bGFzc0xpc3Q+KCp0aGlzKSk7CisgICAgICAgIGRhdGEuc2V0Q2xhc3NMaXN0KHN0ZDo6bWFrZV91
bmlxdWU8QXR0cmlidXRlRE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpjbGFzc0F0dHIp
KTsKICAgICByZXR1cm4gKmRhdGEuY2xhc3NMaXN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaAppbmRleCAzMWM4M2RlNjEzMzIyNTliYzdiMzVhNjAzNDhmYmZiODAwZWEw
MjU4Li41OTgxY2Y0YWY2NDQ1OTFmZGI4ZDQ0ZjQ5NzkwNzc5YmJiYTFkOGI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC0yMiw3ICsyMiw3IEBACiAjaWZuZGVmIEVsZW1l
bnRSYXJlRGF0YV9oCiAjZGVmaW5lIEVsZW1lbnRSYXJlRGF0YV9oCiAKLSNpbmNsdWRlICJDbGFz
c0xpc3QuaCIKKyNpbmNsdWRlICJBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJE
YXRhc2V0RE9NU3RyaW5nTWFwLmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVk
ZSAiTm9kZVJhcmVEYXRhLmgiCkBAIC05MiwxNCArOTIsOCBAQCBwdWJsaWM6CiAgICAgUmVuZGVy
U3R5bGUqIGNvbXB1dGVkU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVkU3R5bGUuZ2V0
KCk7IH0KICAgICB2b2lkIHNldENvbXB1dGVkU3R5bGUoUmVmPFJlbmRlclN0eWxlPiYmIGNvbXB1
dGVkU3R5bGUpIHsgbV9jb21wdXRlZFN0eWxlID0gV1RGOjptb3ZlKGNvbXB1dGVkU3R5bGUpOyB9
CiAKLSAgICBDbGFzc0xpc3QqIGNsYXNzTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NMaXN0
LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRDbGFzc0xpc3Qoc3RkOjp1bmlxdWVfcHRyPENsYXNzTGlz
dD4gY2xhc3NMaXN0KSB7IG1fY2xhc3NMaXN0ID0gV1RGOjptb3ZlKGNsYXNzTGlzdCk7IH0KLSAg
ICB2b2lkIGNsZWFyQ2xhc3NMaXN0VmFsdWVGb3JRdWlya3NNb2RlKCkKLSAgICB7Ci0gICAgICAg
IGlmICghbV9jbGFzc0xpc3QpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fY2xhc3NM
aXN0LT5jbGVhclZhbHVlRm9yUXVpcmtzTW9kZSgpOwotICAgIH0KKyAgICBBdHRyaWJ1dGVET01U
b2tlbkxpc3QqIGNsYXNzTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NMaXN0LmdldCgpOyB9
CisgICAgdm9pZCBzZXRDbGFzc0xpc3Qoc3RkOjp1bmlxdWVfcHRyPEF0dHJpYnV0ZURPTVRva2Vu
TGlzdD4gY2xhc3NMaXN0KSB7IG1fY2xhc3NMaXN0ID0gV1RGOjptb3ZlKGNsYXNzTGlzdCk7IH0K
IAogICAgIERhdGFzZXRET01TdHJpbmdNYXAqIGRhdGFzZXQoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGFzZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldERhdGFzZXQoc3RkOjp1bmlxdWVfcHRyPERhdGFz
ZXRET01TdHJpbmdNYXA+IGRhdGFzZXQpIHsgbV9kYXRhc2V0ID0gV1RGOjptb3ZlKGRhdGFzZXQp
OyB9CkBAIC0xNDAsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG1fY29tcHV0ZWRTdHlsZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhc2V0RE9NU3RyaW5n
TWFwPiBtX2RhdGFzZXQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENsYXNzTGlzdD4gbV9jbGFzc0xp
c3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPEF0dHJpYnV0ZURPTVRva2VuTGlzdD4gbV9jbGFzc0xp
c3Q7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdDsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4ZWM2ZjQ2NjRlZDM3
NWU4NTA0MTk1NTlmMzUxZTcyZDcwYWYwNTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdHRyaWJ1dGVET01Ub2tl
bkxpc3QuaCIKKworI2luY2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitBdHRyaWJ1dGVET01Ub2tlbkxpc3Q6OkF0dHJpYnV0ZURPTVRva2VuTGlz
dChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQor
ICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCisgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmlidXRl
TmFtZSkKK3sKKyAgICBzZXRWYWx1ZShtX2VsZW1lbnQuZ2V0QXR0cmlidXRlKG1fYXR0cmlidXRl
TmFtZSkpOworfQorCit2b2lkIEF0dHJpYnV0ZURPTVRva2VuTGlzdDo6YXR0cmlidXRlVmFsdWVD
aGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpCit7CisgICAgLy8gRG8gbm90IHJl
c2V0IHRoZSBET01Ub2tlbkxpc3QgdmFsdWUgaWYgdGhlIGF0dHJpYnV0ZSB2YWx1ZSB3YXMgY2hh
bmdlZCBieSB1cy4KKyAgICBpZiAobV9pc1VwZGF0aW5nQXR0cmlidXRlVmFsdWUpCisgICAgICAg
IHJldHVybjsKKworICAgIERPTVRva2VuTGlzdDo6c2V0VmFsdWUobmV3VmFsdWUpOworfQorCit2
b2lkIEF0dHJpYnV0ZURPTVRva2VuTGlzdDo6dXBkYXRlQWZ0ZXJUb2tlbkNoYW5nZSgpCit7Cisg
ICAgRE9NVG9rZW5MaXN0Ojp1cGRhdGVBZnRlclRva2VuQ2hhbmdlKCk7CisKKyAgICBUZW1wb3Jh
cnlDaGFuZ2U8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRhdGUobV9pc1VwZGF0aW5nQXR0cmlidXRlVmFs
dWUsIHRydWUpOworICAgIG1fZWxlbWVudC5zZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lLCB2
YWx1ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ5NzJlMzk3MWM4NDhkMGEx
NzJiNzEwYWJhZGYyZjVlZGM3OTBlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgQXR0cmlidXRlRE9NVG9rZW5MaXN0X2gKKyNkZWZpbmUgQXR0cmlidXRlRE9N
VG9rZW5MaXN0X2gKKworI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkVsZW1l
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdHRyaWJ1dGVET01Ub2tlbkxp
c3QgZmluYWwgOiBwdWJsaWMgRE9NVG9rZW5MaXN0IHsKK3B1YmxpYzoKKyAgICBBdHRyaWJ1dGVE
T01Ub2tlbkxpc3QoRWxlbWVudCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUp
OworICAgIHZvaWQgYXR0cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwor
CisgICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlIHsgbV9lbGVtZW50LnJlZigpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGUgeyBtX2VsZW1lbnQuZGVyZWYoKTsgfQor
CisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
Jm1fZWxlbWVudDsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBZnRlclRv
a2VuQ2hhbmdlKCkgb3ZlcnJpZGU7CisKKyAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CisgICAgY29u
c3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSBtX2F0dHJpYnV0ZU5hbWU7CisgICAgYm9vbCBtX2lz
VXBkYXRpbmdBdHRyaWJ1dGVWYWx1ZSB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBBdHRyaWJ1dGVET01Ub2tlbkxpc3RfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9D
bGFzc0xpc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTMzMmQ0YjdlNWIx
ZWI1MThhOGVmOGE3ZjRlNGM0MTE3NmU3YjE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCi0KLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgQ2xhc3NMaXN0OjpyZWYoKQotewotICAgIG1fZWxlbWVu
dC5yZWYoKTsKLX0KLQotdm9pZCBDbGFzc0xpc3Q6OmRlcmVmKCkKLXsKLSAgICBtX2VsZW1lbnQu
ZGVyZWYoKTsKLX0KLQotdW5zaWduZWQgQ2xhc3NMaXN0OjpsZW5ndGgoKSBjb25zdAotewotICAg
IHJldHVybiBtX2VsZW1lbnQuaGFzQ2xhc3MoKSA/IGNsYXNzTmFtZXMoKS5zaXplKCkgOiAwOwot
fQotCi1jb25zdCBBdG9taWNTdHJpbmcgQ2xhc3NMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdAotewotICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIEF0b21p
Y1N0cmluZygpOwotICAgIHJldHVybiBjbGFzc05hbWVzKClbaW5kZXhdOwotfQotCi1FbGVtZW50
KiBDbGFzc0xpc3Q6OmVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiAmbV9lbGVtZW50Owot
fQotCi1ib29sIENsYXNzTGlzdDo6Y29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcm
IHRva2VuKSBjb25zdAotewotICAgIHJldHVybiBtX2VsZW1lbnQuaGFzQ2xhc3MoKSAmJiBjbGFz
c05hbWVzKCkuY29udGFpbnModG9rZW4pOwotfQotCi1BdG9taWNTdHJpbmcgQ2xhc3NMaXN0Ojp2
YWx1ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZWxlbWVudC5nZXRBdHRyaWJ1dGUoSFRNTE5h
bWVzOjpjbGFzc0F0dHIpOwotfQotCi12b2lkIENsYXNzTGlzdDo6c2V0VmFsdWUoY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBtX2VsZW1lbnQuc2V0QXR0cmlidXRlKEhUTUxOYW1l
czo6Y2xhc3NBdHRyLCB2YWx1ZSk7Ci19Ci0KLWNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIENsYXNz
TGlzdDo6Y2xhc3NOYW1lcygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1fZWxlbWVudC5oYXNDbGFz
cygpKTsKLSAgICBpZiAobV9lbGVtZW50LmRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCkpIHsKLSAg
ICAgICAgaWYgKG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuaXNFbXB0eSgpKQotICAgICAgICAg
ICAgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5zZXQodmFsdWUoKSwgZmFsc2UpOwotICAgICAg
ICByZXR1cm4gbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZTsKLSAgICB9Ci0gICAgcmV0dXJuIG1f
ZWxlbWVudC5lbGVtZW50RGF0YSgpLT5jbGFzc05hbWVzKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4YWFhNGM3YzMzZWU1ODc4ZDliMmQzZTdhZDVlMzVkMDY4NzJiM2RlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q2xhc3NMaXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBDbGFzc0xpc3RfaAotI2RlZmluZSBDbGFzc0xpc3RfaAotCi0jaW5jbHVkZSAiRE9N
VG9rZW5MaXN0LmgiCi0jaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIEVsZW1lbnQ7Ci0KLWNsYXNzIENsYXNzTGlzdCBmaW5hbCA6IHB1
YmxpYyBET01Ub2tlbkxpc3QgewotcHVibGljOgotICAgIENsYXNzTGlzdChFbGVtZW50JiBlbGVt
ZW50KQotICAgICAgICA6IG1fZWxlbWVudChlbGVtZW50KQotICAgIHsKLSAgICB9Ci0KLSAgICB2
aXJ0dWFsIHZvaWQgcmVmKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3Zl
cnJpZGU7Ci0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0
IG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLSAgICB2b2lkIGNsZWFyVmFsdWVGb3JRdWlya3NNb2RlKCkgeyBtX2NsYXNzTmFtZXNG
b3JRdWlya3NNb2RlLmNsZWFyKCk7IH0KLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgY29u
dGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIEF0b21pY1N0cmluZyB2YWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
dm9pZCBzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLQotICAgIGNvbnN0
IFNwYWNlU3BsaXRTdHJpbmcmIGNsYXNzTmFtZXMoKSBjb25zdDsKLQotICAgIEVsZW1lbnQmIG1f
ZWxlbWVudDsKLSAgICBtdXRhYmxlIFNwYWNlU3BsaXRTdHJpbmcgbV9jbGFzc05hbWVzRm9yUXVp
cmtzTW9kZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIENsYXNz
TGlzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5M
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCmlu
ZGV4IDNmM2IwMTFhZjhmNWQ4MTA4OWJlNTAxZWVmMjU5NTQzZTNjZjg1MWUuLjQ1ZDNiMzk1ZTVm
MTJiNjk3ZTU5ZDNjOGQ5NmI4Y2FjNzgwMDFkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDMyICszOCw0IEBAIHZvaWQgRE9NU2V0dGFibGVU
b2tlbkxpc3Q6OmRlcmVmKCkKICAgICBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6
ZGVyZWYoKTsKIH0KIAotdW5zaWduZWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6Omxlbmd0aCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fdG9rZW5zLnNpemUoKTsKLX0KLQotY29uc3QgQXRvbWljU3Ry
aW5nIERPTVNldHRhYmxlVG9rZW5MaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotewot
ICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygp
OwotICAgIHJldHVybiBtX3Rva2Vuc1tpbmRleF07Ci19Ci0KLWJvb2wgRE9NU2V0dGFibGVUb2tl
bkxpc3Q6OmNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QK
LXsKLSAgICByZXR1cm4gbV90b2tlbnMuY29udGFpbnModG9rZW4pOwotfQotCi1BdG9taWNTdHJp
bmcgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OnZhbHVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV92
YWx1ZTsKLX0KLQotdm9pZCBET01TZXR0YWJsZVRva2VuTGlzdDo6c2V0VmFsdWUoY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBtX3ZhbHVlID0gdmFsdWU7Ci0gICAgbV90b2tlbnMu
c2V0KHZhbHVlLCBmYWxzZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaAppbmRleCA1NzdkMWY4MTQzZDk5MmQ4
M2E1ZTQyNjQ3NjhhMGExNzY1MmIzYmFlLi4wNTYwOTQwOGJjZmUxYjk5MTY2Y2UxNTUwMDJhMmE0
YmVkYTczN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9r
ZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5o
CkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTQ2LDE3ICs0Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHVuc2ln
bmVkIGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCBB
dG9taWNTdHJpbmcgdmFsdWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgdmly
dHVhbCBib29sIGNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Qgb3Zl
cnJpZGU7Ci0KLSAgICBBdG9taWNTdHJpbmcgbV92YWx1ZTsKLSAgICBTcGFjZVNwbGl0U3RyaW5n
IG1fdG9rZW5zOworICAgIC8vIE1ha2UgcHVibGljLgorICAgIHVzaW5nIERPTVRva2VuTGlzdDo6
dmFsdWU7CisgICAgdXNpbmcgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAppbmRleCBkYmQ0
ZDI2MzkzYjlhNDJjNzQ3NDk0ZmE2NjhjZTA3Njk4YTQ1ZTY1Li45MjRiYzRhNTg3MTllYmM1ZGVk
MWUzMmM5MDFjODBhMDQyODQzODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcs
MTEgKzI4LDEyIEBACiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSFRN
TFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9v
bCBET01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCitib29sIERPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbihjb25z
dCBTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAodG9rZW4uaXNF
bXB0eSgpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKQEAgLTUxLDExICs1MywxMCBAQCBi
b29sIERPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmIHRva2Vu
LCBFeGNlcHRpb25Db2RlJiBlYykKIAogYm9vbCBET01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW5z
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdG9rZW5zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlm
ICghdmFsaWRhdGVUb2tlbih0b2tlbnNbaV0sIGVjKSkKKyAgICBmb3IgKGF1dG8mIHRva2VuIDog
dG9rZW5zKSB7CisgICAgICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLQogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02
MywzNyArNjQsMjcgQEAgYm9vbCBET01Ub2tlbkxpc3Q6OmNvbnRhaW5zKGNvbnN0IEF0b21pY1N0
cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewogICAgIGlmICghdmFsaWRh
dGVUb2tlbih0b2tlbiwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGNv
bnRhaW5zSW50ZXJuYWwodG9rZW4pOwotfQogCi12b2lkIERPTVRva2VuTGlzdDo6YWRkKGNvbnN0
IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFZlY3RvcjxT
dHJpbmc+IHRva2VuczsKLSAgICB0b2tlbnMuYXBwZW5kKHRva2VuLnN0cmluZygpKTsKLSAgICBh
ZGQodG9rZW5zLCBlYyk7CisgICAgcmV0dXJuIG1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKTsKIH0K
IAogdm9pZCBET01Ub2tlbkxpc3Q6OmFkZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9rZW5zLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiBmaWx0ZXJlZFRva2VuczsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRva2Vucy5zaXplKCk7ICsraSkgewotICAgICAg
ICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW5zW2ldLCBlYykpCisgICAgVmVjdG9yPEF0b21pY1N0
cmluZz4gdW5pcXVlVG9rZW5zOworICAgIHVuaXF1ZVRva2Vucy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KHRva2Vucy5zaXplKCkpOworCisgICAgZm9yIChhdXRvJiB0b2tlbiA6IHRva2Vucykgewor
ICAgICAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgaWYgKCFjb250YWluc0ludGVybmFsKHRva2Vuc1tpXSkgJiYgIWZpbHRlcmVk
VG9rZW5zLmNvbnRhaW5zKHRva2Vuc1tpXSkpCi0gICAgICAgICAgICBmaWx0ZXJlZFRva2Vucy5h
cHBlbmQodG9rZW5zW2ldKTsKKyAgICAgICAgaWYgKCFtX3Rva2Vucy5jb250YWlucyh0b2tlbikg
JiYgIXVuaXF1ZVRva2Vucy5jb250YWlucyh0b2tlbikpCisgICAgICAgICAgICB1bmlxdWVUb2tl
bnMudW5jaGVja2VkQXBwZW5kKHRva2VuKTsKICAgICB9CiAKLSAgICBpZiAoZmlsdGVyZWRUb2tl
bnMuaXNFbXB0eSgpKQorICAgIGlmICh1bmlxdWVUb2tlbnMuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBzZXRWYWx1ZShhZGRUb2tlbnModmFsdWUoKSwgZmlsdGVyZWRUb2tlbnMp
KTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmIHRv
a2VuLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiB0b2tlbnM7Ci0g
ICAgdG9rZW5zLmFwcGVuZCh0b2tlbi5zdHJpbmcoKSk7Ci0gICAgcmVtb3ZlKHRva2VucywgZWMp
OworICAgIG1fdG9rZW5zLmFwcGVuZFZlY3Rvcih1bmlxdWVUb2tlbnMpOworICAgIHVwZGF0ZUFm
dGVyVG9rZW5DaGFuZ2UoKTsKIH0KIAogdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92ZShjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgdG9rZW5zLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTEwMSwxMzcgKzky
LDgwIEBAIHZvaWQgRE9NVG9rZW5MaXN0OjpyZW1vdmUoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRv
a2VucywgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgaWYgKCF2YWxpZGF0ZVRva2Vucyh0b2tlbnMs
IGVjKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gQ2hlY2sgdXNpbmcgY29udGFpbnNJbnRl
cm5hbCBmaXJzdCBzaW5jZSBpdCBpcyBhIGxvdCBmYXN0ZXIgdGhhbiBnb2luZwotICAgIC8vIHRo
cm91Z2ggdGhlIHN0cmluZyBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyLgotICAgIGJvb2wgZm91bmQg
PSBmYWxzZTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRva2Vucy5zaXplKCk7ICsraSkg
ewotICAgICAgICBpZiAoY29udGFpbnNJbnRlcm5hbCh0b2tlbnNbaV0pKSB7Ci0gICAgICAgICAg
ICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQorICAgIGJvb2wg
ZGlkUmVtb3ZlVG9rZW5zID0gZmFsc2U7CisgICAgZm9yIChhdXRvJiB0b2tlbiA6IHRva2Vucykg
eworICAgICAgICBpZiAobV90b2tlbnMucmVtb3ZlRmlyc3QodG9rZW4pKQorICAgICAgICAgICAg
ZGlkUmVtb3ZlVG9rZW5zID0gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoZm91bmQpCi0gICAgICAg
IHNldFZhbHVlKHJlbW92ZVRva2Vucyh2YWx1ZSgpLCB0b2tlbnMpKTsKKyAgICBpZiAoZGlkUmVt
b3ZlVG9rZW5zKQorICAgICAgICB1cGRhdGVBZnRlclRva2VuQ2hhbmdlKCk7CiB9CiAKLWJvb2wg
RE9NVG9rZW5MaXN0Ojp0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9u
Q29kZSYgZWMpCitib29sIERPTVRva2VuTGlzdDo6dG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYg
dG9rZW4sIE9wdGlvbmFsPGJvb2w+IGZvcmNlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBp
ZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgaWYgKGNvbnRhaW5zSW50ZXJuYWwodG9rZW4pKSB7Ci0gICAgICAgIHJlbW92ZUludGVybmFs
KHRva2VuKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX3Rva2Vucy5jb250YWlu
cyh0b2tlbikpIHsKKyAgICAgICAgaWYgKCFmb3JjZS52YWx1ZU9yKGZhbHNlKSkgeworICAgICAg
ICAgICAgbV90b2tlbnMucmVtb3ZlRmlyc3QodG9rZW4pOworICAgICAgICAgICAgdXBkYXRlQWZ0
ZXJUb2tlbkNoYW5nZSgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBhZGRJbnRlcm5hbCh0b2tlbik7Ci0gICAg
cmV0dXJuIHRydWU7Ci19CiAKLWJvb2wgRE9NVG9rZW5MaXN0Ojp0b2dnbGUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0b2tlbiwgYm9vbCBmb3JjZSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYg
KCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisgICAgaWYgKGZvcmNlICYmICFmb3JjZS52YWx1
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoZm9yY2UpCi0gICAgICAgIGFk
ZEludGVybmFsKHRva2VuKTsKLSAgICBlbHNlCi0gICAgICAgIHJlbW92ZUludGVybmFsKHRva2Vu
KTsKLQotICAgIHJldHVybiBmb3JjZTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OmFkZEludGVy
bmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCi17Ci0gICAgaWYgKCFjb250YWluc0ludGVy
bmFsKHRva2VuKSkKLSAgICAgICAgc2V0VmFsdWUoYWRkVG9rZW4odmFsdWUoKSwgdG9rZW4pKTsK
LX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdG9rZW4pCi17Ci0gICAgLy8gQ2hlY2sgdXNpbmcgY29udGFpbnMgZmlyc3Qgc2luY2UgaXQg
dXNlcyBBdG9taWNTdHJpbmcgY29tcGFyaXNvbnMgaW5zdGVhZAotICAgIC8vIG9mIGNoYXJhY3Rl
ciBieSBjaGFyYWN0ZXIgdGVzdGluZy4KLSAgICBpZiAoIWNvbnRhaW5zSW50ZXJuYWwodG9rZW4p
KQotICAgICAgICByZXR1cm47Ci0gICAgc2V0VmFsdWUocmVtb3ZlVG9rZW4odmFsdWUoKSwgdG9r
ZW4pKTsKLX0KLQotU3RyaW5nIERPTVRva2VuTGlzdDo6YWRkVG9rZW4oY29uc3QgQXRvbWljU3Ry
aW5nJiBpbnB1dCwgY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikKLXsKLSAgICBWZWN0b3I8U3Ry
aW5nPiB0b2tlbnM7Ci0gICAgdG9rZW5zLmFwcGVuZCh0b2tlbi5zdHJpbmcoKSk7Ci0gICAgcmV0
dXJuIGFkZFRva2VucyhpbnB1dCwgdG9rZW5zKTsKKyAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4p
OworICAgIHVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
U3RyaW5nIERPTVRva2VuTGlzdDo6YWRkVG9rZW5zKGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMpCitjb25zdCBBdG9taWNTdHJpbmcmIERPTVRv
a2VuTGlzdDo6dmFsdWUoKSBjb25zdAogewotICAgIGJvb2wgbmVlZHNTcGFjZSA9IGZhbHNlOwot
Ci0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGlmICghaW5wdXQuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGlucHV0KTsKLSAgICAgICAgbmVlZHNTcGFjZSA9ICFp
c0hUTUxTcGFjZShpbnB1dFtpbnB1dC5sZW5ndGgoKSAtIDFdKTsKLSAgICB9Ci0KLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHRva2Vucy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobmVl
ZHNTcGFjZSkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHRva2Vuc1tpXSk7Ci0gICAgICAgIG5lZWRzU3BhY2UgPSB0cnVlOworICAgIGlm
IChtX2NhY2hlZFZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgIC8vIGh0dHBzOi8vZG9tLnNwZWMu
d2hhdHdnLm9yZy8jY29uY2VwdC1vcmRlcmVkLXNldC1zZXJpYWxpemVyCisgICAgICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Rva2Vu
cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobV90b2tlbnNbaV0p
OworICAgICAgICAgICAgaWYgKGkgIT0gbV90b2tlbnMuc2l6ZSgpIC0gMSkKKyAgICAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAgICB9CisgICAgICAgIG1fY2FjaGVkVmFs
dWUgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7CisgICAgICAgIEFTU0VSVCghbV9jYWNoZWRW
YWx1ZS5pc051bGwoKSk7CiAgICAgfQotCi0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICByZXR1cm4gbV9jYWNoZWRWYWx1ZTsKIH0KIAotU3RyaW5nIERPTVRva2VuTGlzdDo6cmVt
b3ZlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiBpbnB1dCwgY29uc3QgQXRvbWljU3RyaW5nJiB0
b2tlbikKK3ZvaWQgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQog
ewotICAgIFZlY3RvcjxTdHJpbmc+IHRva2VuczsKLSAgICB0b2tlbnMuYXBwZW5kKHRva2VuLnN0
cmluZygpKTsKLSAgICByZXR1cm4gcmVtb3ZlVG9rZW5zKGlucHV0LCB0b2tlbnMpOwotfQorICAg
IC8vIENsZWFyIHRva2VucyBidXQgbm90IGNhcGFjaXR5LgorICAgIG1fdG9rZW5zLnNocmluaygw
KTsKKworICAgIC8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jb3JkZXJlZCUyMHNldHMK
KyAgICBmb3IgKHVuc2lnbmVkIHN0YXJ0ID0gMDsgOyApIHsKKyAgICAgICAgd2hpbGUgKHN0YXJ0
IDwgdmFsdWUubGVuZ3RoKCkgJiYgaXNIVE1MU3BhY2UodmFsdWVbc3RhcnRdKSkKKyAgICAgICAg
ICAgICsrc3RhcnQ7CisgICAgICAgIGlmIChzdGFydCA+PSB2YWx1ZS5sZW5ndGgoKSkKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB1bnNpZ25lZCBlbmQgPSBzdGFydCArIDE7CisgICAgICAg
IHdoaWxlIChlbmQgPCB2YWx1ZS5sZW5ndGgoKSAmJiAhaXNIVE1MU3BhY2UodmFsdWVbZW5kXSkp
CisgICAgICAgICAgICArK2VuZDsKIAotU3RyaW5nIERPTVRva2VuTGlzdDo6cmVtb3ZlVG9rZW5z
KGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMp
Ci17Ci0gICAgLy8gQWxnb3JpdGhtIGRlZmluZWQgYXQgaHR0cDovL3d3dy53aGF0d2cub3JnL3Nw
ZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLW1pY3Jvc3ludGF4ZXMu
aHRtbCNyZW1vdmUtYS10b2tlbi1mcm9tLWEtc3RyaW5nCi0gICAgLy8gTmV3IHNwZWMgaXMgYXQg
aHR0cDovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI3JlbW92ZS1hLXRva2VuLWZyb20tYS1zdHJpbmcK
LQotICAgIHVuc2lnbmVkIGlucHV0TGVuZ3RoID0gaW5wdXQubGVuZ3RoKCk7Ci0gICAgU3RyaW5n
QnVpbGRlciBvdXRwdXQ7IC8vIDMKLSAgICBvdXRwdXQucmVzZXJ2ZUNhcGFjaXR5KGlucHV0TGVu
Z3RoKTsKLSAgICB1bnNpZ25lZCBwb3NpdGlvbiA9IDA7IC8vIDQKLQotICAgIC8vIFN0ZXAgNQot
ICAgIHdoaWxlIChwb3NpdGlvbiA8IGlucHV0TGVuZ3RoKSB7Ci0gICAgICAgIGlmIChpc0hUTUxT
cGFjZShpbnB1dFtwb3NpdGlvbl0pKSB7IC8vIDYKLSAgICAgICAgICAgIG91dHB1dC5hcHBlbmQo
aW5wdXRbcG9zaXRpb24rK10pOyAvLyA2LjEsIDYuMgotICAgICAgICAgICAgY29udGludWU7IC8v
IDYuMwotICAgICAgICB9CisgICAgICAgIFN0cmluZyB0b2tlbiA9IHZhbHVlLnN1YnN0cmluZyhz
dGFydCwgZW5kIC0gc3RhcnQpOworCisgICAgICAgIC8vIFdlIGRvIGEgc2ltcGxlIGxpbmVhciBz
ZWFyY2ggYXMgdGhlcmUgYXJlIHVzdWFsbHkgbm90IG1hbnkgdG9rZW5zLgorICAgICAgICBpZiAo
IW1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKSkKKyAgICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0
b2tlbik7CiAKLSAgICAgICAgLy8gU3RlcCA3Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgczsKLSAg
ICAgICAgd2hpbGUgKHBvc2l0aW9uIDwgaW5wdXRMZW5ndGggJiYgaXNOb3RIVE1MU3BhY2UoaW5w
dXRbcG9zaXRpb25dKSkKLSAgICAgICAgICAgIHMuYXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsK
LQotICAgICAgICAvLyBTdGVwIDgKLSAgICAgICAgaWYgKHRva2Vucy5jb250YWlucyhzLnRvU3Ry
aW5nUHJlc2VydmVDYXBhY2l0eSgpKSkgewotICAgICAgICAgICAgLy8gU3RlcCA4LjEKLSAgICAg
ICAgICAgIHdoaWxlIChwb3NpdGlvbiA8IGlucHV0TGVuZ3RoICYmIGlzSFRNTFNwYWNlKGlucHV0
W3Bvc2l0aW9uXSkpCi0gICAgICAgICAgICAgICAgKytwb3NpdGlvbjsKLQotICAgICAgICAgICAg
Ly8gU3RlcCA4LjIKLSAgICAgICAgICAgIHNpemVfdCBqID0gb3V0cHV0Lmxlbmd0aCgpOwotICAg
ICAgICAgICAgd2hpbGUgKGogPiAwICYmIGlzSFRNTFNwYWNlKG91dHB1dFtqIC0gMV0pKQotICAg
ICAgICAgICAgICAgIC0tajsKLSAgICAgICAgICAgIG91dHB1dC5yZXNpemUoaik7Ci0KLSAgICAg
ICAgICAgIC8vIFN0ZXAgOC4zCi0gICAgICAgICAgICBpZiAocG9zaXRpb24gPCBpbnB1dExlbmd0
aCAmJiAhb3V0cHV0LmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCcg
Jyk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChzLnRvU3RyaW5n
UHJlc2VydmVDYXBhY2l0eSgpKTsgLy8gU3RlcCA5CisgICAgICAgIHN0YXJ0ID0gZW5kICsgMTsK
ICAgICB9CiAKLSAgICByZXR1cm4gb3V0cHV0LnRvU3RyaW5nKCk7CisgICAgbV90b2tlbnMuc2hy
aW5rVG9GaXQoKTsKKyAgICBtX2NhY2hlZFZhbHVlID0gbnVsbEF0b207CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCmluZGV4IDdjYTNlZmFl
NmQ5YWRkMjNiODYzNGE0YWMxYTA5ZjE4Y2IzOWEwMDEuLjY5Zjc5ODBkZjdhNGUwNjZiZTZjOTIx
ZGU5ZjQwYTZkMjRkODVkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9r
ZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI1LDggKzI2LDkg
QEAKICNpZm5kZWYgRE9NVG9rZW5MaXN0X2gKICNkZWZpbmUgRE9NVG9rZW5MaXN0X2gKIAotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNyw0MSArMzksMzcgQEAgdHlwZWRl
ZiBpbnQgRXhjZXB0aW9uQ29kZTsKIGNsYXNzIERPTVRva2VuTGlzdCB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoRE9NVG9rZW5MaXN0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgRE9NVG9rZW5MaXN0KCkgeyB9Ci0gICAgdmlydHVhbCB+RE9NVG9rZW5MaXN0KCkg
e307CisgICAgRE9NVG9rZW5MaXN0KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkRPTVRva2Vu
TGlzdCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJlZigpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZGVyZWYoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0ID0g
MDsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdCA9IDA7CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV90b2tlbnMu
c2l6ZSgpOyB9CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpdGVtKHVuc2lnbmVkIGluZGV4KSBj
b25zdCB7IHJldHVybiBpbmRleCA8IG1fdG9rZW5zLnNpemUoKSA/IG1fdG9rZW5zW2luZGV4XSA6
IG51bGxBdG9tOyB9CiAKICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lkIGFkZChjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpIHsgYWRkKFZlY3RvcjxTdHJpbmc+e3Rva2VuLnN0cmluZygpfSwgZWMp
OyB9CiAgICAgdm9pZCByZW1vdmUoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYp
OwotICAgIGJvb2wgdG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsK
LSAgICBib29sIHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmLCBib29sIGZvcmNlLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpIHsgcmVtb3ZlKFZlY3RvcjxTdHJpbmc+e3Rva2VuLnN0cmluZygpfSwg
ZWMpOyB9CisgICAgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0
aW9uQ29kZSYgZWMpIHsgcmV0dXJuIHRvZ2dsZSh0b2tlbiwgTnVsbG9wdCwgZWMpOyB9CisgICAg
Ym9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgT3B0aW9uYWw8Ym9vbD4gZm9yY2UsIEV4
Y2VwdGlvbkNvZGUmKTsKIAotICAgIEF0b21pY1N0cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0
dXJuIHZhbHVlKCk7IH0KKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRvU3RyaW5nKCkgY29uc3Qg
eyByZXR1cm4gdmFsdWUoKTsgfQogCi0gICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0IHsg
cmV0dXJuIG51bGxwdHI7IH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5n
IHZhbHVlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBBdG9t
aWNTdHJpbmcmKSA9IDA7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUFmdGVyVG9rZW5DaGFuZ2UoKSB7IG1fY2FjaGVkVmFsdWUgPSBudWxsQXRvbTsgfQogCi0gICAg
dm9pZCBhZGRJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJvb2wg
Y29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCA9IDA7Ci0gICAgdm9p
ZCByZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKTsKLQotICAgIHN0YXRpYyBib29s
IHZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHN0YXRpYyBib29sIHZhbGlkYXRlVG9rZW4oY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlVG9rZW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
RXhjZXB0aW9uQ29kZSYpOwotICAgIHN0YXRpYyBTdHJpbmcgYWRkVG9rZW4oY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgQXRvbWljU3RyaW5nJik7Ci0gICAgc3RhdGljIFN0cmluZyBhZGRUb2tl
bnMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKLSAgICBzdGF0
aWMgU3RyaW5nIHJlbW92ZVRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0
cmluZyYpOwotICAgIHN0YXRpYyBTdHJpbmcgcmVtb3ZlVG9rZW5zKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisKKyAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBt
X3Rva2VuczsKKyAgICBtdXRhYmxlIEF0b21pY1N0cmluZyBtX2NhY2hlZFZhbHVlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAppbmRleCBiNGZmZGIyYjQzNTViZWYzN2EwMTM3YWU4ZDViZTNkYmNhOTg2Y2YxLi4w
NTNlYzQ1YzczZDEzZWNhYWZiYTNlMDk5ZGM1MzNhMTEzYjc1N2JkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJB
dHRyaWJ1dGVET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNp
bmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCkBAIC0zOSw3
ICs0MCw2IEBACiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBpbmdMb2FkZXIu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKLSNpbmNsdWRlICJSZWxMaXN0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJTVkdJbWFnZS5oIgpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgSFRNTEFuY2hv
ckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21pY1N0CiAgICAgICAgIGlmIChTcGFjZVNwbGl0U3RyaW5nOjpzcGFjZVNwbGl0U3RyaW5n
Q29udGFpbnNWYWx1ZSh2YWx1ZSwgIm5vcmVmZXJyZXIiLCB0cnVlKSkKICAgICAgICAgICAgIG1f
bGlua1JlbGF0aW9ucyB8PSBSZWxhdGlvbk5vUmVmZXJyZXI7CiAgICAgICAgIGlmIChtX3JlbExp
c3QpCi0gICAgICAgICAgICBtX3JlbExpc3QtPnVwZGF0ZVJlbEF0dHJpYnV0ZSh2YWx1ZSk7Cisg
ICAgICAgICAgICBtX3JlbExpc3QtPmF0dHJpYnV0ZVZhbHVlQ2hhbmdlZCh2YWx1ZSk7CiAgICAg
fQogICAgIGVsc2UKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKQEAgLTMxNiw3ICszMTYsNyBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50OjpoYXNSZWwo
dWludDMyX3QgcmVsYXRpb24pIGNvbnN0CiBET01Ub2tlbkxpc3QmIEhUTUxBbmNob3JFbGVtZW50
OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlzdCkgCi0gICAgICAgIG1fcmVsTGlzdCA9
IHN0ZDo6bWFrZV91bmlxdWU8UmVsTGlzdD4oKnRoaXMpOworICAgICAgICBtX3JlbExpc3QgPSBz
dGQ6Om1ha2VfdW5pcXVlPEF0dHJpYnV0ZURPTVRva2VuTGlzdD4oKnRoaXMsIEhUTUxOYW1lczo6
cmVsQXR0cik7CiAgICAgcmV0dXJuICptX3JlbExpc3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA0YjY2YTAxNDVkNTdiOTdmMDdjOTNmOTRjZDE0MjMw
NjUyZWU0MWJjLi5mZDlkOTY2OTBiZjNjODUyZDAyMGJkODIyNzIzYWIyMjFiY2UwMzk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC0zMCw3ICszMCw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUmVsTGlzdDsKK2NsYXNzIEF0dHJpYnV0ZURP
TVRva2VuTGlzdDsKIAogLy8gTGluayByZWxhdGlvbiBiaXRtYXNrIHZhbHVlcy4KIC8vIEZJWE1F
OiBVbmNvbW1lbnQgYXMgdGhlIHZhcmlvdXMgbGluayByZWxhdGlvbnMgYXJlIGltcGxlbWVudGVk
LgpAQCAtMTQ1LDcgKzE0NSw3IEBAIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV9saW5rUmVsYXRp
b25zIDogMzA7CiAgICAgbXV0YWJsZSBMaW5rSGFzaCBtX2NhY2hlZFZpc2l0ZWRMaW5rSGFzaDsK
IAotICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWxMaXN0PiBtX3JlbExpc3Q7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEF0dHJpYnV0ZURPTVRva2VuTGlzdD4gbV9yZWxMaXN0OwogfTsKIAogaW5saW5lIExp
bmtIYXNoIEhUTUxBbmNob3JFbGVtZW50Ojp2aXNpdGVkTGlua0hhc2goKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDA0MTM5Y2I3MmMwMzFjODU4ZTU4
ZjFjZmRlM2NmMTFiOTM5YWRiMGIuLjMzMzQzMmYyYjRkYjMzMWZjM2NjNmI2MTdhZTM1Nzg1YTYw
ZTcyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkF0dHJp
YnV0ZS5oIgorI2luY2x1ZGUgIkF0dHJpYnV0ZURPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkNh
Y2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCkBAIC00Niw3ICs0Nyw2IEBACiAjaW5jbHVkZSAi
TWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCi0jaW5jbHVkZSAiUmVsTGlzdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAt
MTQxLDcgKzE0MSw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpCiAgICAgaWYgKG5hbWUgPT0g
cmVsQXR0cikgewogICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUodmFs
dWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQotICAgICAgICAgICAgbV9yZWxMaXN0LT51cGRh
dGVSZWxBdHRyaWJ1dGUodmFsdWUpOworICAgICAgICAgICAgbV9yZWxMaXN0LT5hdHRyaWJ1dGVW
YWx1ZUNoYW5nZWQodmFsdWUpOwogICAgICAgICBwcm9jZXNzKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmRpc3BhdGNo
UGVuZGluZ0V2ZW50KExpbmtFdmVudFNlbmRlciogZXZlbnRTZW5kZXIpCiBET01Ub2tlbkxpc3Qm
IEhUTUxMaW5rRWxlbWVudDo6cmVsTGlzdCgpCiB7CiAgICAgaWYgKCFtX3JlbExpc3QpIAotICAg
ICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlbExpc3Q+KCp0aGlzKTsKKyAgICAg
ICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+KCp0
aGlzLCBIVE1MTmFtZXM6OnJlbEF0dHIpOwogICAgIHJldHVybiAqbV9yZWxMaXN0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCBhNjY3MzUyZDZjNjg2OTJhZDQz
NDAyMTU5NmFkNzg1ZDYxNDU4YTM0Li5iZWIxNzFlZTBkYzhmMTdkMDU2YzhlZTNlNDhmYmMyZmQw
MDcyY2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTM1LDggKzM1
LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBdHRyaWJ1dGVET01Ub2tlbkxp
c3Q7CiBjbGFzcyBIVE1MTGlua0VsZW1lbnQ7Ci1jbGFzcyBSZWxMaXN0OwogY2xhc3MgVVJMOwog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBFdmVudFNlbmRlcjsKQEAgLTE0MCw3ICsxNDAs
NyBAQCBwcml2YXRlOgogCiAgICAgUGVuZGluZ1NoZWV0VHlwZSBtX3BlbmRpbmdTaGVldFR5cGU7
CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVsTGlzdD4gbV9yZWxMaXN0OworICAgIHN0ZDo6dW5p
cXVlX3B0cjxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+IG1fcmVsTGlzdDsKIH07CiAKIH0gLy9uYW1l
c3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVsTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JlbExpc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlYjNmNGJiNTkyZWY2ZTA0YzYzMDQyYTQ4MzQ4NzkyNDVkNTQwNGU1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVs
TGlzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE0IERoaSBBdXJyYWhtYW4gPGRpb3JhaG1hbkByb2NreWJhcnMuY29tPgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlbExpc3QuaCIKLQotI2luY2x1
ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1SZWxMaXN0OjpSZWxMaXN0KEVsZW1lbnQmIGVsZW1lbnQpIAotICAgIDogbV9lbGVt
ZW50KGVsZW1lbnQpCi0gICAgLCBtX3JlbEF0dHJpYnV0ZVZhbHVlKFNwYWNlU3BsaXRTdHJpbmco
ZWxlbWVudC5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6cmVsQXR0ciksIGZhbHNlKSkKLXsK
LX0KLQotdm9pZCBSZWxMaXN0OjpyZWYoKQotewotICAgIG1fZWxlbWVudC5yZWYoKTsKLX0KLQot
dm9pZCBSZWxMaXN0OjpkZXJlZigpCi17Ci0gICAgbV9lbGVtZW50LmRlcmVmKCk7Ci19Ci0KLXVu
c2lnbmVkIFJlbExpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVsQXR0cmli
dXRlVmFsdWUuc2l6ZSgpOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcgUmVsTGlzdDo6aXRlbSh1
bnNpZ25lZCBpbmRleCkgY29uc3QKLXsKLSAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkpCi0gICAg
ICAgIHJldHVybiBudWxsQXRvbTsKLSAgICByZXR1cm4gbV9yZWxBdHRyaWJ1dGVWYWx1ZVtpbmRl
eF07Ci19Ci0KLUVsZW1lbnQqIFJlbExpc3Q6OmVsZW1lbnQoKSBjb25zdAotewotICAgIHJldHVy
biAmbV9lbGVtZW50OwotfQotCi12b2lkIFJlbExpc3Q6OnVwZGF0ZVJlbEF0dHJpYnV0ZShjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlKQotewotICAgIG1fcmVsQXR0cmlidXRlVmFsdWUuc2V0KHZh
bHVlLCBmYWxzZSk7Ci19Ci0KLWJvb2wgUmVsTGlzdDo6Y29udGFpbnNJbnRlcm5hbChjb25zdCBB
dG9taWNTdHJpbmcmIHRva2VuKSBjb25zdAotewotICAgIHJldHVybiBtX3JlbEF0dHJpYnV0ZVZh
bHVlLmNvbnRhaW5zKHRva2VuKTsKLX0KLQotQXRvbWljU3RyaW5nIFJlbExpc3Q6OnZhbHVlKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9lbGVtZW50LmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVz
OjpyZWxBdHRyKTsKLX0KLQotdm9pZCBSZWxMaXN0OjpzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlKQotewotICAgIG1fZWxlbWVudC5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpyZWxB
dHRyLCB2YWx1ZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SZWxMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JlbExp
c3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTc0M2NjZjVkNTUzMDFlM2M4YTVj
NDgyMTYwOTU2M2MwNjNmYzg5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JlbExpc3QuaAorKysgL2Rldi9udWxsCkBA
IC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgRGhpIEF1cnJhaG1hbiA8
ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFJlbExpc3RfaAot
I2RlZmluZSBSZWxMaXN0X2gKLQotI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgotI2luY2x1ZGUg
IlNwYWNlU3BsaXRTdHJpbmcuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBFbGVt
ZW50OwotCi1jbGFzcyBSZWxMaXN0IGZpbmFsIDogcHVibGljIERPTVRva2VuTGlzdCB7Ci1wdWJs
aWM6Ci0gICAgUmVsTGlzdChFbGVtZW50Jik7Ci0gICAgdm9pZCB1cGRhdGVSZWxBdHRyaWJ1dGUo
Y29uc3QgQXRvbWljU3RyaW5nJik7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHJlZigp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29s
IGNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBBdG9taWNTdHJpbmcgdmFsdWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgCi0g
ICAgRWxlbWVudCYgbV9lbGVtZW50OwotICAgIG11dGFibGUgU3BhY2VTcGxpdFN0cmluZyBtX3Jl
bEF0dHJpYnV0ZVZhbHVlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gUmVsTGlzdF9oCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMjAyMThhMmQyNDU1YzBkYzdjYzcxYWExMGUxOTU1MWI2
NTAwMzk2Li42MTBjZGRmNDQ3NTdlNDY4NzZmNGRhY2E3ZTVlZDdiYjE0ZDIwMmQ3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTUtMDktMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBET01Ub2tlbkxpc3QgdXBkYXRlIHN0ZXBzIGZvciBjbGFzc0xpc3QgZG9u
J3QgZm9sbG93IHRoZSBzcGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDg1ODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNTQ3NDQzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSAvIHJl
YmFzZWxpbmUgZXhpc3RpbmcgdGVzdHMgYXMgb3VyIGJlaGF2aW9yIGNoYW5nZWQuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LXF1aXJrcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvc2NyaXB0LXRlc3RzL2NsYXNzLWxpc3Qu
anM6CisgICAgICAgICogZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvZG9tLXNldHRhYmxlLXRv
a2VuLWxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxPdXRwdXRFbGVt
ZW50L2h0bWxvdXRwdXRlbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9I
VE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlz
dC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9yZWwtbGlzdC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vcmVsLWxpc3QuaHRtbDoKKwogMjAxNS0wOS0xMCAgRGFuaWVsIEJhdGVzICA8
ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgV3JpdGUgYSB0ZXN0IHRvIGVuc3VyZSB3ZSBk
b24ndCByZWdyZXNzIHByb2Nlc3Npbmcgb2YgdGFza3Mgd2hlbiBwYWdlIGRlZmVycyBsb2FkaW5n
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmMWUxNjI2ZTYxNDFjOWFmODY5ZTZm
ZGY2ZjYzNGY3YmE0YzViZWVkLi4yMWU1ZjJmZDU2ZmVhMzcwMjQ5YjJkNWJkMTQ3YmYyMzIyODEz
ZDQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
NS0wOS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERPTVRv
a2VuTGlzdCB1cGRhdGUgc3RlcHMgZm9yIGNsYXNzTGlzdCBkb24ndCBmb2xsb3cgdGhlIHNwZWMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODU4OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NDc0NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXM0MgdGVzdHMgZm9yIERPTVRv
a2VuTGlzdCBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbGlzdHMvRE9NVG9rZW5MaXN0LXN0cmluZ2lmaWVyLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQt
Y2xhc3NsaXN0LWV4cGVjdGVkLnR4dDoKKwogMjAxNS0wOS0wOSAgRGV3ZWkgWmh1ICA8ZGV3ZWlf
emh1QGFwcGxlLmNvbT4KIAogICAgICAgICBEb2N1bWVudC5jaGFyYWN0ZXJTZXQgc2hvdWxkIHJl
dHVybiAiVVRGLTgiIGJ5IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxFbGVtZW50L2NsYXNzLWxpc3QtZXhwZWN0ZWQudHh0CmluZGV4IGQ4MWVkYWRhNTFi
Y2JmYWIxMzFlY2Q5YTVkODllZTZmM2U4NzFhYTguLjNkYmNmOGQzNzUwOTY2YjIwMjg5YTBiMzlk
NDI2YTMyN2RhODhjMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVt
ZW50L2NsYXNzLWxpc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxFbGVtZW50L2NsYXNzLWxpc3QtZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsNyBAQCBUZXN0cyBm
cm9tIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRv
a2VuTGlzdC8KIFBBU1MgU3RyaW5nKGVsZW1lbnQuY2xhc3NMaXN0KSBpcyAieCIKIFBBU1MgZWxl
bWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDAKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QubGVuZ3Ro
IGlzIDEKLVBBU1MgZWxlbWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDIKK1BBU1MgZWxlbWVudC5j
bGFzc0xpc3QubGVuZ3RoIGlzIDEKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDIK
IFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIngiCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlz
ICJ4IgpAQCAtMTUsNyArMTUsNyBAQCBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4ICB4Igog
UEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieSB4IgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBp
cyAiIgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiIgotUEFTUyBlbGVtZW50LmNsYXNzTmFt
ZSBpcyAiIHkgeSAiCitQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ5IgogUEFTUyBlbGVtZW50
LmNsYXNzTmFtZSBpcyAieSIKIEVuc3VyZSB0aGF0IHdlIGNhbiBoYW5kbGUgZW1wdHkgY2xhc3Mg
bmFtZSBjb3JyZWN0bHkKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCd4JykgaXMgdHJ1
ZQpAQCAtMzcsOCArMzcsOCBAQCBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgnJywgdHJ1
ZSkgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSAxMgogUEFTUyBlbGVtZW50
LmNsYXNzTGlzdC50b2dnbGUoJ3ggeScsIGZhbHNlKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRp
b24gd2l0aCBjb2RlIDUKIFRlc3RpbmcgYWRkIGluIHByZXNlbmNlIG9mIHRyYWlsaW5nIHdoaXRl
IHNwYWNlcy4KIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInggeSIKLVBBU1MgZWxlbWVudC5j
bGFzc05hbWUgaXMgInhcdHkiCi1QQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICIgeSIKK1BBU1Mg
ZWxlbWVudC5jbGFzc05hbWUgaXMgInggeSIKK1BBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInki
CiBUZXN0IGludmFsaWQgdG9rZW5zCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCcn
KSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2RlIDEyCiBQQVNTIGVsZW1lbnQu
Y2xhc3NMaXN0LmNvbnRhaW5zKCd4IHknKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0
aCBjb2RlIDUKQEAgLTUyLDggKzUyLDggQEAgUEFTUyBlbGVtZW50LmNsYXNzTGlzdC50b2dnbGUo
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIEluZGV4
aW5nCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0WzBdIGlzICJ4IgogUEFTUyBlbGVtZW50LmNsYXNz
TGlzdC5pdGVtKDApIGlzICJ4IgotUEFTUyBlbGVtZW50LmNsYXNzTGlzdFsxXSBpcyAieCIKLVBB
U1MgZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgxKSBpcyAieCIKK1BBU1MgZWxlbWVudC5jbGFzc0xp
c3RbMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5pdGVtKDEpIGlzIG51
bGwKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3RbMV0gaXMgInkiCiBQQVNTIGVsZW1lbnQuY2xhc3NM
aXN0Lml0ZW0oMSkgaXMgInkiCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0WzBdIGlzIHVuZGVmaW5l
ZC4KQEAgLTk4LDggKzk4LDggQEAgUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5hZGQoImEiLCB7dG9T
dHJpbmc6IGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoInVzZXIgZXIKIFBBU1MgZWxlbWVu
dC5jbGFzc05hbWUgaXMgIiIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCkgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCiBQQVNTIG9ic2VydmVyLnRha2VSZWNvcmRzKCkubGVuZ3RoIGlzIDEK
LVBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImIgZCAgIgotUEFTUyBlbGVtZW50LmNsYXNzTmFt
ZSBpcyAiZCAgIgorUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiYiBkIgorUEFTUyBlbGVtZW50
LmNsYXNzTmFtZSBpcyAiZCIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImEgYiBjIgogUEFT
UyBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2EnLCAnYicsICcnKSB0aHJldyBleHBlY3RlZCBE
T01FeGNlcHRpb24gd2l0aCBjb2RlIDEyCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJhIGIi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0
LXF1aXJrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9j
bGFzcy1saXN0LXF1aXJrcy1leHBlY3RlZC50eHQKaW5kZXggZDgxZWRhZGE1MWJjYmZhYjEzMWVj
ZDlhNWQ4OWVlNmYzZTg3MWFhOC4uM2RiY2Y4ZDM3NTA5NjZiMjAyODlhMGIzOWQ0MjZhMzI3ZGE4
OGMyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvY2xhc3Mt
bGlzdC1xdWlya3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxF
bGVtZW50L2NsYXNzLWxpc3QtcXVpcmtzLWV4cGVjdGVkLnR4dApAQCAtNyw3ICs3LDcgQEAgVGVz
dHMgZnJvbSBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9E
T01Ub2tlbkxpc3QvCiBQQVNTIFN0cmluZyhlbGVtZW50LmNsYXNzTGlzdCkgaXMgIngiCiBQQVNT
IGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAwCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lmxl
bmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAyCitQQVNTIGVsZW1l
bnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAxCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBp
cyAyCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4IgogUEFTUyBlbGVtZW50LmNsYXNzTmFt
ZSBpcyAieCIKQEAgLTE1LDcgKzE1LDcgQEAgUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieCAg
eCIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInkgeCIKIFBBU1MgZWxlbWVudC5jbGFzc05h
bWUgaXMgIiIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIiIKLVBBU1MgZWxlbWVudC5jbGFz
c05hbWUgaXMgIiB5IHkgIgorUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieSIKIFBBU1MgZWxl
bWVudC5jbGFzc05hbWUgaXMgInkiCiBFbnN1cmUgdGhhdCB3ZSBjYW4gaGFuZGxlIGVtcHR5IGNs
YXNzIG5hbWUgY29ycmVjdGx5CiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgneCcpIGlz
IHRydWUKQEAgLTM3LDggKzM3LDggQEAgUEFTUyBlbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJycs
IHRydWUpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNvZGUgMTIKIFBBU1MgZWxl
bWVudC5jbGFzc0xpc3QudG9nZ2xlKCd4IHknLCBmYWxzZSkgdGhyZXcgZXhwZWN0ZWQgRE9NRXhj
ZXB0aW9uIHdpdGggY29kZSA1CiBUZXN0aW5nIGFkZCBpbiBwcmVzZW5jZSBvZiB0cmFpbGluZyB3
aGl0ZSBzcGFjZXMuCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4IHkiCi1QQVNTIGVsZW1l
bnQuY2xhc3NOYW1lIGlzICJ4XHR5IgotUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiIHkiCitQ
QVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4IHkiCitQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlz
ICJ5IgogVGVzdCBpbnZhbGlkIHRva2VucwogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlu
cygnJykgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSAxMgogUEFTUyBlbGVt
ZW50LmNsYXNzTGlzdC5jb250YWlucygneCB5JykgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9u
IHdpdGggY29kZSA1CkBAIC01Miw4ICs1Miw4IEBAIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QudG9n
Z2xlKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBJ
bmRleGluZwogUEFTUyBlbGVtZW50LmNsYXNzTGlzdFswXSBpcyAieCIKIFBBU1MgZWxlbWVudC5j
bGFzc0xpc3QuaXRlbSgwKSBpcyAieCIKLVBBU1MgZWxlbWVudC5jbGFzc0xpc3RbMV0gaXMgIngi
Ci1QQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lml0ZW0oMSkgaXMgIngiCitQQVNTIGVsZW1lbnQuY2xh
c3NMaXN0WzFdIGlzIHVuZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgxKSBp
cyBudWxsCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0WzFdIGlzICJ5IgogUEFTUyBlbGVtZW50LmNs
YXNzTGlzdC5pdGVtKDEpIGlzICJ5IgogUEFTUyBlbGVtZW50LmNsYXNzTGlzdFswXSBpcyB1bmRl
ZmluZWQuCkBAIC05OCw4ICs5OCw4IEBAIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJhIiwg
e3RvU3RyaW5nOiBmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCJ1c2VyIGVyCiBQQVNTIGVs
ZW1lbnQuY2xhc3NOYW1lIGlzICIiCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBvYnNlcnZlci50YWtlUmVjb3JkcygpLmxlbmd0aCBp
cyAxCi1QQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJiIGQgICIKLVBBU1MgZWxlbWVudC5jbGFz
c05hbWUgaXMgImQgICIKK1BBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImIgZCIKK1BBU1MgZWxl
bWVudC5jbGFzc05hbWUgaXMgImQiCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJhIGIgYyIK
IFBBU1MgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdhJywgJ2InLCAnJykgdGhyZXcgZXhwZWN0
ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSAxMgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAi
YSBiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2NyaXB0
LXRlc3RzL2NsYXNzLWxpc3QuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9z
Y3JpcHQtdGVzdHMvY2xhc3MtbGlzdC5qcwppbmRleCA5MTFkMjQ0Y2RlZDQwZGU2NjNkOWVkYTYz
OTE1MWQ1ZmQxNjQ3YWVmLi43ZGM0ODc2OTE5NGU1MGUwNjFhZDEwOWJiNzk5NTE2ZGYxZWI4ZjNi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zY3JpcHQtdGVz
dHMvY2xhc3MtbGlzdC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9z
Y3JpcHQtdGVzdHMvY2xhc3MtbGlzdC5qcwpAQCAtMzEsNyArMzEsNyBAQCBzaG91bGRFdmFsdWF0
ZVRvKCdlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGgnLCAxKTsKIAogLy8gaHR0cDovL3NpbW9uLmh0
bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9NVG9rZW5MaXN0L2dldHRpbmcvMDAz
Lmh0bQogY3JlYXRlRWxlbWVudCgneCB4Jyk7Ci1zaG91bGRFdmFsdWF0ZVRvKCdlbGVtZW50LmNs
YXNzTGlzdC5sZW5ndGgnLCAyKTsKK3Nob3VsZEV2YWx1YXRlVG8oJ2VsZW1lbnQuY2xhc3NMaXN0
Lmxlbmd0aCcsIDEpOwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20v
cmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMDQuaHRtCiBjcmVhdGVFbGVtZW50KCd4
IHknKTsKQEAgLTcwLDcgKzcwLDcgQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNs
YXNzTmFtZScsICcnKTsKIC8vIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9odG1sL2RvbS9y
ZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAxMS5odG0KIGNyZWF0ZUVsZW1lbnQoJyB5
IHggIHkgJyk7CiBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3gnKTsKLXNob3VsZEJlRXF1YWxU
b1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAnIHkgeSAnKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAneScpOwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUu
b3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMTIuaHRt
CiBjcmVhdGVFbGVtZW50KCcgeCB5ICB4ICcpOwpAQCAtMTIxLDExICsxMjEsMTEgQEAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICd4IHknKTsKIAogY3JlYXRlRWxl
bWVudCgneFx0Jyk7CiBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3knKTsKLXNob3VsZEJlRXF1YWxU
b1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAneFx0eScpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICd4IHknKTsKIAogY3JlYXRlRWxlbWVudCgnICcpOwog
ZWxlbWVudC5jbGFzc0xpc3QuYWRkKCd5Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1l
bnQuY2xhc3NOYW1lJywgJyB5Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xh
c3NOYW1lJywgJ3knKTsKIAogCiBkZWJ1ZygnVGVzdCBpbnZhbGlkIHRva2VucycpOwpAQCAtMjA2
LDggKzIwNiw4IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc0xpc3RbMF0n
LCAneCcpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTGlzdC5pdGVtKDAp
JywgJ3gnKTsKIAogY3JlYXRlRWxlbWVudCgneCB4Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmco
J2VsZW1lbnQuY2xhc3NMaXN0WzFdJywgJ3gnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxl
bWVudC5jbGFzc0xpc3QuaXRlbSgxKScsICd4Jyk7CitzaG91bGRCZVVuZGVmaW5lZCgnZWxlbWVu
dC5jbGFzc0xpc3RbMV0nKTsKK3Nob3VsZEJlTnVsbCgnZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgx
KScpOwogCiBjcmVhdGVFbGVtZW50KCd4IHknKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxl
bWVudC5jbGFzc0xpc3RbMV0nLCAneScpOwpAQCAtMzI3LDEwICszMjcsMTAgQEAgc2hvdWxkQmUo
J29ic2VydmVyLnRha2VSZWNvcmRzKCkubGVuZ3RoJywgJzEnKTsKIAogY3JlYXRlRWxlbWVudCgn
YSBiIGMgZCAgJyk7CiBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2EnLCAnYycpOwotc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICdiIGQgICcpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICdiIGQnKTsKIAogZWxlbWVudC5jbGFz
c0xpc3QucmVtb3ZlKCdiJywgJ2InKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5j
bGFzc05hbWUnLCAnZCAgJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NO
YW1lJywgJ2QnKTsKIAogY3JlYXRlRWxlbWVudCgnYSBiIGMgbnVsbCBkIHVuZGVmaW5lZCAwIGZh
bHNlJyk7CiBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUobnVsbCwge3RvU3RyaW5nOiBmdW5jdGlv
bigpIHsgcmV0dXJuICdkJyB9fSwgdW5kZWZpbmVkLCAwLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9kb20tc2V0dGFibGUtdG9rZW4t
bGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVu
dC9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC1leHBlY3RlZC50eHQKaW5kZXggOGVjNjI0YzhmNWQz
OGYyNzM3Njg1NThkZjE0YmM4OThiNDUyNjlkMy4uYjNiMjlmN2M5M2FiNTk3MDQwMjZjNTg0MWI2
ZjExYjU5NDEzNGUzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1
dEVsZW1lbnQvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2RvbS1zZXR0YWJsZS10b2tlbi1saXN0
LWV4cGVjdGVkLnR4dApAQCAtNywxNSArNywxNSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
UEFTUyBTdHJpbmcoZWxlbWVudC5odG1sRm9yKSBpcyAieCIKIFBBU1MgZWxlbWVudC5odG1sRm9y
Lmxlbmd0aCBpcyAwCiBQQVNTIGVsZW1lbnQuaHRtbEZvci5sZW5ndGggaXMgMQotUEFTUyBlbGVt
ZW50Lmh0bWxGb3IubGVuZ3RoIGlzIDIKK1BBU1MgZWxlbWVudC5odG1sRm9yLmxlbmd0aCBpcyAx
CiBQQVNTIGVsZW1lbnQuaHRtbEZvci5sZW5ndGggaXMgMgogUEFTUyBlbGVtZW50Lmh0bWxGb3Iu
dG9TdHJpbmcoKSBpcyAieCIKIFBBU1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgIngi
Ci1QQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICJ4ICB4IgorUEFTUyBlbGVtZW50
Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieCIKIFBBU1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5n
KCkgaXMgInkgeCIKIFBBU1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgIiIKIFBBU1Mg
ZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgIiIKLVBBU1MgZWxlbWVudC5odG1sRm9yLnRv
U3RyaW5nKCkgaXMgIiB5IHkgIgorUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAi
eSIKIFBBU1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgInkiCiAtIEVuc3VyZSB0aGF0
IHdlIGNhbiBoYW5kbGUgZW1wdHkgZm9ybSBhdHRyaWJ1dGUgY29ycmVjdGx5CiBQQVNTIGxpc3Qu
dmFsdWUgaXMgIngiCkBAIC0yNiw4ICsyNiw4IEBAIFBBU1MgZWxlbWVudC5odG1sRm9yLmNvbnRh
aW5zKCd4JykgaXMgdHJ1ZQogUEFTUyBlbGVtZW50Lmh0bWxGb3JbMV0gaXMgdW5kZWZpbmVkLgog
LSBUZXN0aW5nIGFkZCBpbiBwcmVzZW5jZSBvZiB0cmFpbGluZyB3aGl0ZSBzcGFjZXMuCiBQQVNT
IGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICJ4IHkiCi1QQVNTIGVsZW1lbnQuaHRtbEZv
ci50b1N0cmluZygpIGlzICJ4XHR5IgotUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBp
cyAiIHkiCitQQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICJ4IHkiCitQQVNTIGVs
ZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICJ5IgogLSBUZXN0IGludmFsaWQgdG9rZW5zCiBQ
QVNTIGVsZW1lbnQuaHRtbEZvci5jb250YWlucygnJykgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0
aW9uIHdpdGggY29kZSAxMgogUEFTUyBlbGVtZW50Lmh0bWxGb3IuY29udGFpbnMoJ3ggeScpIHRo
cmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNvZGUgNQpAQCAtNDAsOCArNDAsOCBAQCBQ
QVNTIGVsZW1lbnQuaHRtbEZvci50b2dnbGUoJ3ggeScpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2Vw
dGlvbiB3aXRoIGNvZGUgNQogLSBJbmRleGluZwogUEFTUyBlbGVtZW50Lmh0bWxGb3JbMF0gaXMg
IngiCiBQQVNTIGVsZW1lbnQuaHRtbEZvci5pdGVtKDApIGlzICJ4IgotUEFTUyBlbGVtZW50Lmh0
bWxGb3JbMV0gaXMgIngiCi1QQVNTIGVsZW1lbnQuaHRtbEZvci5pdGVtKDEpIGlzICJ4IgorUEFT
UyBlbGVtZW50Lmh0bWxGb3JbMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBlbGVtZW50Lmh0bWxGb3Iu
aXRlbSgxKSBpcyBudWxsCiBQQVNTIGVsZW1lbnQuaHRtbEZvclsxXSBpcyAieSIKIFBBU1MgZWxl
bWVudC5odG1sRm9yLml0ZW0oMSkgaXMgInkiCiBQQVNTIGVsZW1lbnQuaHRtbEZvclswXSBpcyB1
bmRlZmluZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxl
bWVudC9odG1sb3V0cHV0ZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxlbWVudC1leHBlY3RlZC50eHQKaW5kZXgg
NDhiODVkY2IwYTRjMTJhYTViYTg4OWRjNTBlNDU4MjIyNTQzMGM5Ny4uMjI1ZjA4YWE4NWJhMjEw
MDQyZTEwOWM3ZDllOTZkYWY3N2RhZmZhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTE91dHB1dEVsZW1lbnQvaHRtbG91dHB1dGVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50
LWV4cGVjdGVkLnR4dApAQCAtMTIsNyArMTIsNyBAQCBQQVNTIG91dHB1dDIuaHRtbEZvci52YWx1
ZSBpcyAiZm9yLXRhcmdldDEiCiBQQVNTIG91dHB1dDMuaHRtbEZvci5sZW5ndGggaXMgMgogUEFT
UyBvdXRwdXQzLmh0bWxGb3JbMF0gaXMgImZvci10YXJnZXQxIgogUEFTUyBvdXRwdXQzLmh0bWxG
b3JbMV0gaXMgImZvci10YXJnZXQyIgotUEFTUyBvdXRwdXQzLmh0bWxGb3IudmFsdWUgaXMgIiBm
b3ItdGFyZ2V0MSBmb3ItdGFyZ2V0MiAiCitQQVNTIG91dHB1dDMuaHRtbEZvci52YWx1ZSBpcyAi
Zm9yLXRhcmdldDEgZm9yLXRhcmdldDIiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxP
dXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxlbWVudC5odG1sCmluZGV4IGRmODNjZWEx
ZDI1NDMxMGNkMTlkNzI4NzY2ZjJmZDNhYTk1ZmYzOWQuLjM2ODU3NmEzZDEzYzEwZmZhMjZhODMy
YTBkNDA1MGM2MmYxNGIwNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxP
dXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTE91dHB1dEVsZW1lbnQvaHRtbG91dHB1dGVsZW1lbnQuaHRtbApAQCAtMjgsNyAr
MjgsNyBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ291dHB1dDIuaHRtbEZvci52YWx1ZScsICdm
b3ItdGFyZ2V0MScpOwogc2hvdWxkRXZhbHVhdGVUbygnb3V0cHV0My5odG1sRm9yLmxlbmd0aCcs
IDIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdvdXRwdXQzLmh0bWxGb3JbMF0nLCAnZm9yLXRh
cmdldDEnKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnb3V0cHV0My5odG1sRm9yWzFdJywgJ2Zv
ci10YXJnZXQyJyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ291dHB1dDMuaHRtbEZvci52YWx1
ZScsICcgZm9yLXRhcmdldDEgZm9yLXRhcmdldDIgJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J291dHB1dDMuaHRtbEZvci52YWx1ZScsICdmb3ItdGFyZ2V0MSBmb3ItdGFyZ2V0MicpOwogPC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
T3V0cHV0RWxlbWVudC9zY3JpcHQtdGVzdHMvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QuanMgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9zY3JpcHQtdGVzdHMvZG9tLXNl
dHRhYmxlLXRva2VuLWxpc3QuanMKaW5kZXggNWNmMDQzOWM2YjAxOGFmOWQxYjFlM2JhN2YyZmMy
ZjBiYjE1ZjFmNS4uNDRkYzY3ODM4ODEwN2MxNDYxYWRlYWUwN2YwZjQ0MDE3NTc0ODJkOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvc2NyaXB0LXRl
c3RzL2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC5q
cwpAQCAtMjksNyArMjksNyBAQCBzaG91bGRFdmFsdWF0ZVRvKCdlbGVtZW50Lmh0bWxGb3IubGVu
Z3RoJywgMSk7CiAKIC8vIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZs
ZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAwMy5odG0KIGNyZWF0ZUVsZW1lbnQoJ3ggeCcp
Owotc2hvdWxkRXZhbHVhdGVUbygnZWxlbWVudC5odG1sRm9yLmxlbmd0aCcsIDIpOworc2hvdWxk
RXZhbHVhdGVUbygnZWxlbWVudC5odG1sRm9yLmxlbmd0aCcsIDEpOwogCiAvLyBodHRwOi8vc2lt
b24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGlu
Zy8wMDQuaHRtCiBjcmVhdGVFbGVtZW50KCd4IHknKTsKQEAgLTQ4LDcgKzQ4LDcgQEAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKScsICd4Jyk7CiAvLyBo
dHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxp
c3QvZ2V0dGluZy8wMDcuaHRtCiBjcmVhdGVFbGVtZW50KCd4ICB4Jyk7CiBlbGVtZW50Lmh0bWxG
b3IuYWRkKCd4Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvci50b1N0
cmluZygpJywgJ3ggIHgnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9y
LnRvU3RyaW5nKCknLCAneCcpOwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRt
bC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMDguaHRtCiBjcmVhdGVFbGVt
ZW50KCd5Jyk7CkBAIC02OCw3ICs2OCw3IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVu
dC5odG1sRm9yLnRvU3RyaW5nKCknLCAnJyk7CiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rl
c3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMTEuaHRtCiBjcmVh
dGVFbGVtZW50KCcgeSB4ICB5ICcpOwogZWxlbWVudC5odG1sRm9yLnJlbW92ZSgneCcpOwotc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKScsICcgeSB5ICcp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKScsICd5
Jyk7CiAKIC8vIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5n
L0RPTVRva2VuTGlzdC9nZXR0aW5nLzAxMi5odG0KIGNyZWF0ZUVsZW1lbnQoJyB4IHkgIHggJyk7
CkBAIC0xMDEsMTEgKzEwMSwxMSBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRt
bEZvci50b1N0cmluZygpJywgJ3ggeScpOwogCiBjcmVhdGVFbGVtZW50KCd4XHQnKTsKIGVsZW1l
bnQuaHRtbEZvci5hZGQoJ3knKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1s
Rm9yLnRvU3RyaW5nKCknLCAneFx0eScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50
Lmh0bWxGb3IudG9TdHJpbmcoKScsICd4IHknKTsKIAogY3JlYXRlRWxlbWVudCgnICcpOwogZWxl
bWVudC5odG1sRm9yLmFkZCgneScpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0
bWxGb3IudG9TdHJpbmcoKScsICcgeScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50
Lmh0bWxGb3IudG9TdHJpbmcoKScsICd5Jyk7CiAKIAogZGVidWcoJy0gVGVzdCBpbnZhbGlkIHRv
a2VucycpOwpAQCAtMTgyLDggKzE4Miw4IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVu
dC5odG1sRm9yWzBdJywgJ3gnKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1s
Rm9yLml0ZW0oMCknLCAneCcpOwogCiBjcmVhdGVFbGVtZW50KCd4IHgnKTsKLXNob3VsZEJlRXF1
YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yWzFdJywgJ3gnKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygnZWxlbWVudC5odG1sRm9yLml0ZW0oMSknLCAneCcpOworc2hvdWxkQmVVbmRlZmluZWQo
J2VsZW1lbnQuaHRtbEZvclsxXScpOworc2hvdWxkQmVOdWxsKCdlbGVtZW50Lmh0bWxGb3IuaXRl
bSgxKScpOwogCiBjcmVhdGVFbGVtZW50KCd4IHknKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
ZWxlbWVudC5odG1sRm9yWzFdJywgJ3knKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3JlbC1saXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlbC1saXN0
LWV4cGVjdGVkLnR4dAppbmRleCBkMTBlOTA3MDJmMzNjOTU1N2Q2NTdkYmQzMWQ4MDZjNGJiMzYw
Yzc1Li41NmYyNjNhYThjOWU0NzBjMTMwMjY0YzM0MDgxYTA2NTBlZmMyYzQwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZWwtbGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcmVsLWxpc3QtZXhwZWN0ZWQudHh0CkBAIC0yNiw3ICsyNiw3IEBAIFBB
U1MgZWxlbWVudC5yZWxMaXN0LmNvbnRhaW5zKCJvcmFuZ2UiKSBpcyBmYWxzZQogUEFTUyBTdHJp
bmcoZWxlbWVudC5yZWxMaXN0KSBpcyAieCIKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBp
cyAwCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGggaXMgMQotUEFTUyBlbGVtZW50LnJlbExp
c3QubGVuZ3RoIGlzIDIKK1BBU1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAxCiBQQVNTIGVs
ZW1lbnQucmVsTGlzdC5sZW5ndGggaXMgMgogUEFTUyBlbGVtZW50LnJlbCBpcyAieCIKIFBBU1Mg
ZWxlbWVudC5yZWwgaXMgIngiCkBAIC0zNCw3ICszNCw3IEBAIFBBU1MgZWxlbWVudC5yZWwgaXMg
InggIHgiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ5IHgiCiBQQVNTIGVsZW1lbnQucmVsIGlzICIi
CiBQQVNTIGVsZW1lbnQucmVsIGlzICIiCi1QQVNTIGVsZW1lbnQucmVsIGlzICIgeSB5ICIKK1BB
U1MgZWxlbWVudC5yZWwgaXMgInkiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ5IgogRW5zdXJlIHRo
YXQgd2UgY2FuIGhhbmRsZSBlbXB0eSByZWwgY29ycmVjdGx5CiBQQVNTIGVsZW1lbnQucmVsTGlz
dC50b2dnbGUoJ3gnKSBpcyB0cnVlCkBAIC01OCw4ICs1OCw4IEBAIFBBU1MgZWxlbWVudC5yZWxM
aXN0LnRvZ2dsZSgiIiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjog
RE9NIEV4CiBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUoInggeSIsIGZhbHNlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IEludmFsaWRDaGFyYWN0ZXJFcnJvcjogRE9NIEV4Y2VwdGlvbiA1Lgog
VGVzdGluZyBhZGQgaW4gcHJlc2VuY2Ugb2YgdHJhaWxpbmcgd2hpdGUgc3BhY2VzLgogUEFTUyBl
bGVtZW50LnJlbCBpcyAieCB5IgotUEFTUyBlbGVtZW50LnJlbCBpcyAieFx0eSIKLVBBU1MgZWxl
bWVudC5yZWwgaXMgIiB5IgorUEFTUyBlbGVtZW50LnJlbCBpcyAieCB5IgorUEFTUyBlbGVtZW50
LnJlbCBpcyAieSIKIFRlc3QgaW52YWxpZCB0b2tlbnMKIFBBU1MgZWxlbWVudC5yZWxMaXN0LmNv
bnRhaW5zKCIiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0
aW9uIDEyLgogUEFTUyBlbGVtZW50LnJlbExpc3QuY29udGFpbnMoInggeSIpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSW52YWxpZENoYXJhY3RlckVycm9yOiBET00gRXhjZXB0aW9uIDUuCkBAIC03
MSw4ICs3MSw4IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgiIikgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvCiBJbmRleGluZwogUEFTUyBlbGVt
ZW50LnJlbExpc3RbMF0gaXMgIngiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDApIGlzICJ4
IgotUEFTUyBlbGVtZW50LnJlbExpc3RbMV0gaXMgIngiCi1QQVNTIGVsZW1lbnQucmVsTGlzdC5p
dGVtKDEpIGlzICJ4IgorUEFTUyBlbGVtZW50LnJlbExpc3RbMV0gaXMgdW5kZWZpbmVkLgorUEFT
UyBlbGVtZW50LnJlbExpc3QuaXRlbSgxKSBpcyBudWxsCiBQQVNTIGVsZW1lbnQucmVsTGlzdFsx
XSBpcyAieSIKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSkgaXMgInkiCiBQQVNTIGVsZW1l
bnQucmVsTGlzdFswXSBpcyB1bmRlZmluZWQuCkBAIC0xMTUsOCArMTE1LDggQEAgUEFTUyBlbGVt
ZW50LnJlbExpc3QuYWRkKCJhIiwge3RvU3RyaW5nOiBmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVy
cm9yKCJ1c2VyIGVycm8KIFBBU1MgZWxlbWVudC5yZWwgaXMgIiIKIFBBU1MgZWxlbWVudC5yZWxM
aXN0LmFkZCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBvYnNlcnZlci50YWtlUmVj
b3JkcygpLmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQucmVsIGlzICJiIGQgICIKLVBBU1MgZWxl
bWVudC5yZWwgaXMgImQgICIKK1BBU1MgZWxlbWVudC5yZWwgaXMgImIgZCIKK1BBU1MgZWxlbWVu
dC5yZWwgaXMgImQiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJhIGIgYyIKIFBBU1MgZWxlbWVudC5y
ZWxMaXN0LnJlbW92ZSgiYSIsICJiIiwgIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4
RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCiBQQVNTIGVsZW1lbnQucmVsIGlzICJhIGIiCkBAIC0x
NDksNyArMTQ5LDcgQEAgUEFTUyBlbGVtZW50LnJlbExpc3QuY29udGFpbnMoIm9yYW5nZSIpIGlz
IGZhbHNlCiBQQVNTIFN0cmluZyhlbGVtZW50LnJlbExpc3QpIGlzICJ4IgogUEFTUyBlbGVtZW50
LnJlbExpc3QubGVuZ3RoIGlzIDAKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAxCi1Q
QVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGggaXMgMgorUEFTUyBlbGVtZW50LnJlbExpc3QubGVu
Z3RoIGlzIDEKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAyCiBQQVNTIGVsZW1lbnQu
cmVsIGlzICJ4IgogUEFTUyBlbGVtZW50LnJlbCBpcyAieCIKQEAgLTE1Nyw3ICsxNTcsNyBAQCBQ
QVNTIGVsZW1lbnQucmVsIGlzICJ4ICB4IgogUEFTUyBlbGVtZW50LnJlbCBpcyAieSB4IgogUEFT
UyBlbGVtZW50LnJlbCBpcyAiIgogUEFTUyBlbGVtZW50LnJlbCBpcyAiIgotUEFTUyBlbGVtZW50
LnJlbCBpcyAiIHkgeSAiCitQQVNTIGVsZW1lbnQucmVsIGlzICJ5IgogUEFTUyBlbGVtZW50LnJl
bCBpcyAieSIKIEVuc3VyZSB0aGF0IHdlIGNhbiBoYW5kbGUgZW1wdHkgcmVsIGNvcnJlY3RseQog
UEFTUyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCd4JykgaXMgdHJ1ZQpAQCAtMTgxLDggKzE4MSw4
IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgiIiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4CiBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUo
InggeSIsIGZhbHNlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRDaGFyYWN0ZXJFcnJv
cjogRE9NIEV4Y2VwdGlvbiA1LgogVGVzdGluZyBhZGQgaW4gcHJlc2VuY2Ugb2YgdHJhaWxpbmcg
d2hpdGUgc3BhY2VzLgogUEFTUyBlbGVtZW50LnJlbCBpcyAieCB5IgotUEFTUyBlbGVtZW50LnJl
bCBpcyAieFx0eSIKLVBBU1MgZWxlbWVudC5yZWwgaXMgIiB5IgorUEFTUyBlbGVtZW50LnJlbCBp
cyAieCB5IgorUEFTUyBlbGVtZW50LnJlbCBpcyAieSIKIFRlc3QgaW52YWxpZCB0b2tlbnMKIFBB
U1MgZWxlbWVudC5yZWxMaXN0LmNvbnRhaW5zKCIiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5
bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgogUEFTUyBlbGVtZW50LnJlbExpc3QuY29udGFp
bnMoInggeSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZENoYXJhY3RlckVycm9yOiBE
T00gRXhjZXB0aW9uIDUuCkBAIC0xOTQsOCArMTk0LDggQEAgUEFTUyBlbGVtZW50LnJlbExpc3Qu
dG9nZ2xlKCIiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0
aW8KIEluZGV4aW5nCiBQQVNTIGVsZW1lbnQucmVsTGlzdFswXSBpcyAieCIKIFBBU1MgZWxlbWVu
dC5yZWxMaXN0Lml0ZW0oMCkgaXMgIngiCi1QQVNTIGVsZW1lbnQucmVsTGlzdFsxXSBpcyAieCIK
LVBBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSkgaXMgIngiCitQQVNTIGVsZW1lbnQucmVsTGlz
dFsxXSBpcyB1bmRlZmluZWQuCitQQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDEpIGlzIG51bGwK
IFBBU1MgZWxlbWVudC5yZWxMaXN0WzFdIGlzICJ5IgogUEFTUyBlbGVtZW50LnJlbExpc3QuaXRl
bSgxKSBpcyAieSIKIFBBU1MgZWxlbWVudC5yZWxMaXN0WzBdIGlzIHVuZGVmaW5lZC4KQEAgLTIz
OCw4ICsyMzgsOCBAQCBQQVNTIGVsZW1lbnQucmVsTGlzdC5hZGQoImEiLCB7dG9TdHJpbmc6IGZ1
bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoInVzZXIgZXJybwogUEFTUyBlbGVtZW50LnJlbCBp
cyAiIgogUEFTUyBlbGVtZW50LnJlbExpc3QuYWRkKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CiBQQVNTIG9ic2VydmVyLnRha2VSZWNvcmRzKCkubGVuZ3RoIGlzIDEKLVBBU1MgZWxlbWVudC5y
ZWwgaXMgImIgZCAgIgotUEFTUyBlbGVtZW50LnJlbCBpcyAiZCAgIgorUEFTUyBlbGVtZW50LnJl
bCBpcyAiYiBkIgorUEFTUyBlbGVtZW50LnJlbCBpcyAiZCIKIFBBU1MgZWxlbWVudC5yZWwgaXMg
ImEgYiBjIgogUEFTUyBlbGVtZW50LnJlbExpc3QucmVtb3ZlKCJhIiwgImIiLCAiIikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgZWxl
bWVudC5yZWwgaXMgImEgYiIKQEAgLTI3Miw3ICsyNzIsNyBAQCBQQVNTIGVsZW1lbnQucmVsTGlz
dC5jb250YWlucygib3JhbmdlIikgaXMgZmFsc2UKIFBBU1MgU3RyaW5nKGVsZW1lbnQucmVsTGlz
dCkgaXMgIngiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGggaXMgMAogUEFTUyBlbGVtZW50
LnJlbExpc3QubGVuZ3RoIGlzIDEKLVBBU1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAyCitQ
QVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGggaXMgMQogUEFTUyBlbGVtZW50LnJlbExpc3QubGVu
Z3RoIGlzIDIKIFBBU1MgZWxlbWVudC5yZWwgaXMgIngiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ4
IgpAQCAtMjgwLDcgKzI4MCw3IEBAIFBBU1MgZWxlbWVudC5yZWwgaXMgInggIHgiCiBQQVNTIGVs
ZW1lbnQucmVsIGlzICJ5IHgiCiBQQVNTIGVsZW1lbnQucmVsIGlzICIiCiBQQVNTIGVsZW1lbnQu
cmVsIGlzICIiCi1QQVNTIGVsZW1lbnQucmVsIGlzICIgeSB5ICIKK1BBU1MgZWxlbWVudC5yZWwg
aXMgInkiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ5IgogRW5zdXJlIHRoYXQgd2UgY2FuIGhhbmRs
ZSBlbXB0eSByZWwgY29ycmVjdGx5CiBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUoJ3gnKSBp
cyB0cnVlCkBAIC0zMDQsOCArMzA0LDggQEAgUEFTUyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCIi
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXgKIFBBU1Mg
ZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgieCB5IiwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSW52YWxpZENoYXJhY3RlckVycm9yOiBET00gRXhjZXB0aW9uIDUuCiBUZXN0aW5nIGFkZCBp
biBwcmVzZW5jZSBvZiB0cmFpbGluZyB3aGl0ZSBzcGFjZXMuCiBQQVNTIGVsZW1lbnQucmVsIGlz
ICJ4IHkiCi1QQVNTIGVsZW1lbnQucmVsIGlzICJ4XHR5IgotUEFTUyBlbGVtZW50LnJlbCBpcyAi
IHkiCitQQVNTIGVsZW1lbnQucmVsIGlzICJ4IHkiCitQQVNTIGVsZW1lbnQucmVsIGlzICJ5Igog
VGVzdCBpbnZhbGlkIHRva2VucwogUEFTUyBlbGVtZW50LnJlbExpc3QuY29udGFpbnMoIiIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCiBQQVNT
IGVsZW1lbnQucmVsTGlzdC5jb250YWlucygieCB5IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
bnZhbGlkQ2hhcmFjdGVyRXJyb3I6IERPTSBFeGNlcHRpb24gNS4KQEAgLTMxNyw4ICszMTcsOCBA
QCBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUoIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
U3ludGF4RXJyb3I6IERPTSBFeGNlcHRpbwogSW5kZXhpbmcKIFBBU1MgZWxlbWVudC5yZWxMaXN0
WzBdIGlzICJ4IgogUEFTUyBlbGVtZW50LnJlbExpc3QuaXRlbSgwKSBpcyAieCIKLVBBU1MgZWxl
bWVudC5yZWxMaXN0WzFdIGlzICJ4IgotUEFTUyBlbGVtZW50LnJlbExpc3QuaXRlbSgxKSBpcyAi
eCIKK1BBU1MgZWxlbWVudC5yZWxMaXN0WzFdIGlzIHVuZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5y
ZWxMaXN0Lml0ZW0oMSkgaXMgbnVsbAogUEFTUyBlbGVtZW50LnJlbExpc3RbMV0gaXMgInkiCiBQ
QVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDEpIGlzICJ5IgogUEFTUyBlbGVtZW50LnJlbExpc3Rb
MF0gaXMgdW5kZWZpbmVkLgpAQCAtMzYxLDggKzM2MSw4IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0
LmFkZCgiYSIsIHt0b1N0cmluZzogZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcigidXNlciBl
cnJvCiBQQVNTIGVsZW1lbnQucmVsIGlzICIiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5hZGQoKSBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1Mgb2JzZXJ2ZXIudGFrZVJlY29yZHMoKS5sZW5n
dGggaXMgMQotUEFTUyBlbGVtZW50LnJlbCBpcyAiYiBkICAiCi1QQVNTIGVsZW1lbnQucmVsIGlz
ICJkICAiCitQQVNTIGVsZW1lbnQucmVsIGlzICJiIGQiCitQQVNTIGVsZW1lbnQucmVsIGlzICJk
IgogUEFTUyBlbGVtZW50LnJlbCBpcyAiYSBiIGMiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5yZW1v
dmUoImEiLCAiYiIsICIiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00g
RXhjZXB0aW9uIDEyLgogUEFTUyBlbGVtZW50LnJlbCBpcyAiYSBiIgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vcmVsLWxpc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jl
bC1saXN0Lmh0bWwKaW5kZXggY2JjMmM0YTU0ODY1ZTE0MjhhMTk1Y2E1NDYzNWY0OGJjODk2MjZk
MC4uMDkzYWFhYTNlYmRmOTMwYzkzOGJkZGY3YWE5NmU0N2QyZDQ0MjBlMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcmVsLWxpc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9yZWwtbGlzdC5odG1sCkBAIC02Miw3ICs2Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IHNob3VsZEV2YWx1YXRlVG8oJ2VsZW1lbnQucmVsTGlzdC5sZW5ndGgnLCAxKTsKIAogICAgIGNy
ZWF0ZUVsZW1lbnQoJ3ggeCcpOwotICAgIHNob3VsZEV2YWx1YXRlVG8oJ2VsZW1lbnQucmVsTGlz
dC5sZW5ndGgnLCAyKTsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCdlbGVtZW50LnJlbExpc3QubGVu
Z3RoJywgMSk7CiAKICAgICBjcmVhdGVFbGVtZW50KCd4IHknKTsKICAgICBzaG91bGRFdmFsdWF0
ZVRvKCdlbGVtZW50LnJlbExpc3QubGVuZ3RoJywgMik7CkBAIC05Myw3ICs5Myw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogCiAgICAgY3JlYXRlRWxlbWVudCgnIHkgeCAgeSAnKTsKICAgICBlbGVtZW50
LnJlbExpc3QucmVtb3ZlKCd4Jyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50
LnJlbCcsICcgeSB5ICcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwn
LCAneScpOwogCiAgICAgY3JlYXRlRWxlbWVudCgnIHggeSAgeCAnKTsKICAgICBlbGVtZW50LnJl
bExpc3QucmVtb3ZlKCd4Jyk7CkBAIC0xMzQsMTEgKzEzNCwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkK
IAogICAgIGNyZWF0ZUVsZW1lbnQoJ3hcdCcpOwogICAgIGVsZW1lbnQucmVsTGlzdC5hZGQoJ3kn
KTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVsJywgJ3hcdHknKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVsJywgJ3ggeScpOwogCiAgICAgY3Jl
YXRlRWxlbWVudCgnICcpOwogICAgIGVsZW1lbnQucmVsTGlzdC5hZGQoJ3knKTsKLSAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVsJywgJyB5Jyk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdlbGVtZW50LnJlbCcsICd5Jyk7CiAKICAgICBkZWJ1ZygnVGVzdCBpbnZhbGlk
IHRva2VucycpOwogCkBAIC0xNjksOCArMTY5LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbExpc3QuaXRlbSgwKScsICd4Jyk7CiAKICAg
ICBjcmVhdGVFbGVtZW50KCd4IHgnKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1l
bnQucmVsTGlzdFsxXScsICd4Jyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50
LnJlbExpc3QuaXRlbSgxKScsICd4Jyk7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoJ2VsZW1lbnQu
cmVsTGlzdFsxXScpOworICAgIHNob3VsZEJlTnVsbCgnZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSkn
KTsKIAogICAgIGNyZWF0ZUVsZW1lbnQoJ3ggeScpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygnZWxlbWVudC5yZWxMaXN0WzFdJywgJ3knKTsKQEAgLTI2MCwxMCArMjYwLDEwIEBAIGZ1bmN0
aW9uIHRlc3QoKQogCiAgICAgY3JlYXRlRWxlbWVudCgnYSBiIGMgZCAgJyk7CiAgICAgZWxlbWVu
dC5yZWxMaXN0LnJlbW92ZSgnYScsICdjJyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdl
bGVtZW50LnJlbCcsICdiIGQgICcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVu
dC5yZWwnLCAnYiBkJyk7CiAKICAgICBlbGVtZW50LnJlbExpc3QucmVtb3ZlKCdiJywgJ2InKTsK
LSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVsJywgJ2QgICcpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwnLCAnZCcpOwogCiAgICAgY3JlYXRlRWxl
bWVudCgnYSBiIGMgbnVsbCBkIHVuZGVmaW5lZCAwIGZhbHNlJyk7CiAgICAgZWxlbWVudC5yZWxM
aXN0LnJlbW92ZShudWxsLCB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2QnIH19LCB1
bmRlZmluZWQsIDAsIGZhbHNlKTsKQEAgLTMwMCw0ICszMDAsNCBAQCB0ZXN0KCk7CiA8L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9saXN0cy9ET01Ub2tlbkxpc3Qtc3RyaW5naWZpZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbGlzdHMvRE9NVG9rZW5M
aXN0LXN0cmluZ2lmaWVyLWV4cGVjdGVkLnR4dAppbmRleCAyZTU1ZjY2Nzc0NTVjMjlmMjgyMTBm
ODU2NTIyMTlhODA3ODNlMmMwLi44YjFkNWMyMjc5OGE1ZTRjY2E2MzU1ZjIyZGVkNTk0M2NkY2I1
NWZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9saXN0cy9ET01Ub2tlbkxpc3Qtc3RyaW5naWZpZXItZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2xpc3RzL0RP
TVRva2VuTGlzdC1zdHJpbmdpZmllci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZB
SUwgRE9NVG9rZW5MaXN0IHN0cmluZ2lmaWVyIGFzc2VydF9lcXVhbHM6IFN0cmluZyhjbGFzc0xp
c3QpIHNob3VsZCBjb21wcmVzcyB3aGl0ZXNwYWNlIGV4cGVjdGVkICJhIGIiIGJ1dCBnb3QgIiAg
IGEgIGEgYiIKK1BBU1MgRE9NVG9rZW5MaXN0IHN0cmluZ2lmaWVyIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVt
ZW50LWNsYXNzbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNsYXNzbGlzdC1leHBlY3RlZC50eHQK
aW5kZXggN2FmOGU5MDlhZDM3YmUyZGJmOGRlODU3ZmY1OWE4ZjBjYjBkZjAzMS4uMWRhZGM3ZmQ3
NTZiNzQ3NjJlNjU0ZjU3ZDA5NmNmYTRjNmYxNDc1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jbGFzc2xp
c3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2xhc3NsaXN0LWV4cGVjdGVkLnR4dApAQCAtNSw3
ICs1LDcgQEAgUEFTUyBET01Ub2tlbkxpc3Qgc2hvdWxkIGJlIGV4cG9zZWQgZm9yIHByb3RvdHlw
aW5nCiBQQVNTIHByb3RvdHlwaW5nIERPTVRva2VuTGlzdCBzaG91bGQgd29yayAKIFBBU1MgRWxl
bWVudC5jbGFzc0xpc3QgbXVzdCBpbXBsZW1lbnQgRE9NVG9rZW5MaXN0IAogUEFTUyBDU1MgLmZv
byBzZWxlY3RvcnMgbXVzdCBub3QgbWF0Y2ggZWxlbWVudHMgd2l0aG91dCBhbnkgY2xhc3MgCi1G
QUlMIGNsYXNzTGlzdCBtdXN0IGJlIGNvcnJlY3QgZm9yIGFuIGVsZW1lbnQgdGhhdCBoYXMgY2xh
c3NlcyBhc3NlcnRfZXF1YWxzOiBkdXBsaWNhdGVzIGluIGluaXRpYWwgc3RyaW5nIHNob3VsZCBi
ZSByZW1vdmVkIHBlciBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtY2xhc3Mg
ZXhwZWN0ZWQgMSBidXQgZ290IDIKK1BBU1MgY2xhc3NMaXN0IG11c3QgYmUgY29ycmVjdCBmb3Ig
YW4gZWxlbWVudCB0aGF0IGhhcyBjbGFzc2VzIAogUEFTUyBjbGFzc0xpc3QubGVuZ3RoIG11c3Qg
YmUgMCBmb3IgYW4gZWxlbWVudCB0aGF0IGhhcyBubyBjbGFzc2VzIAogUEFTUyBjbGFzc0xpc3Qg
bXVzdCBub3QgY29udGFpbiBhbiB1bmRlZmluZWQgY2xhc3MgCiBQQVNTIGNsYXNzTGlzdC5pdGVt
KCkgbXVzdCByZXR1cm4gbnVsbCBmb3Igb3V0LW9mLXJhbmdlIGluZGV4IApAQCAtMTMsNyArMTMs
NyBAQCBQQVNTIGNsYXNzTGlzdC5pdGVtKCkgbXVzdCByZXR1cm4gbnVsbCBmb3IgbmVnYXRpdmUg
aW5kZXgKIFBBU1MgY2xhc3NMaXN0W2luZGV4XSBtdXN0IGJlIHVuZGVmaW5lZCBmb3Igb3V0LW9m
LXJhbmdlIGluZGV4IAogUEFTUyBjbGFzc0xpc3RbaW5kZXhdIG11c3QgYmUgdW5kZWZpbmVkIGZv
ciBuZWdhdGl2ZSBpbmRleCAKIFBBU1MgY2xhc3NOYW1lIHNob3VsZCBjb250YWluIGluaXRpYWwg
bWFya3VwIHdoaXRlc3BhY2UgCi1GQUlMIGVtcHR5IGNsYXNzTGlzdCBzaG91bGQgcmV0dXJuIHRo
ZSBlbXB0eSBzdHJpbmcgc2luY2UgdGhlIG9yZGVyZWQgc2V0IHBhcnNlciBza2lwIHRoZSB3aGl0
ZXNwYWNlcyBhc3NlcnRfZXF1YWxzOiBpbXBsaWNpdCBleHBlY3RlZCAiIiBidXQgZ290ICIgIgor
UEFTUyBlbXB0eSBjbGFzc0xpc3Qgc2hvdWxkIHJldHVybiB0aGUgZW1wdHkgc3RyaW5nIHNpbmNl
IHRoZSBvcmRlcmVkIHNldCBwYXJzZXIgc2tpcCB0aGUgd2hpdGVzcGFjZXMgCiBQQVNTIC5jb250
YWlucyhlbXB0eV9zdHJpbmcpIG11c3QgdGhyb3cgYSBTWU5UQVhfRVJSIAogUEFTUyAuYWRkKGVt
cHR5X3N0cmluZykgbXVzdCB0aHJvdyBhIFNZTlRBWF9FUlIgCiBQQVNTIC5yZW1vdmUoZW1wdHlf
c3RyaW5nKSBtdXN0IHRocm93IGEgU1lOVEFYX0VSUiAKQEAgLTQzLDEwICs0MywxMCBAQCBQQVNT
IGNsYXNzTGlzdC5yZW1vdmUgbXVzdCByZW1vdmUgZXhpc3RpbmcgdG9rZW5zCiBQQVNTIGNsYXNz
TGlzdC5yZW1vdmUgbXVzdCBub3QgYnJlYWsgY2FzZS1zZW5zaXRpdmUgQ1NTIHNlbGVjdG9yIG1h
dGNoaW5nIAogUEFTUyBjbGFzc0xpc3QucmVtb3ZlIG11c3QgcmVtb3ZlIGR1cGxpY2F0ZWQgdG9r
ZW5zIAogUEFTUyBjbGFzc0xpc3QucmVtb3ZlIG11c3QgY29sbGFwc2Ugd2hpdGVzcGFjZSBhcm91
bmQgcmVtb3ZlZCB0b2tlbnMgCi1GQUlMIGNsYXNzTGlzdC5yZW1vdmUgbXVzdCBjb2xsYXBzZSB3
aGl0ZXNwYWNlcyBhcm91bmQgZWFjaCB0b2tlbiBhc3NlcnRfZXF1YWxzOiBpbXBsaWNpdCBleHBl
Y3RlZCAidG9rZW4xIiBidXQgZ290ICIgdG9rZW4xIgotRkFJTCBjbGFzc0xpc3QucmVtb3ZlIG11
c3QgY29sbGFwc2Ugd2hpdGVzcGFjZXMgYXJvdW5kIGVhY2ggdG9rZW4gYW5kIHJlbW92ZSBkdXBs
aWNhdGVzIGFzc2VydF9lcXVhbHM6IGltcGxpY2l0IGV4cGVjdGVkICJ0b2tlbjEiIGJ1dCBnb3Qg
IiAgdG9rZW4xIHRva2VuMSAgIgorUEFTUyBjbGFzc0xpc3QucmVtb3ZlIG11c3QgY29sbGFwc2Ug
d2hpdGVzcGFjZXMgYXJvdW5kIGVhY2ggdG9rZW4gCitQQVNTIGNsYXNzTGlzdC5yZW1vdmUgbXVz
dCBjb2xsYXBzZSB3aGl0ZXNwYWNlcyBhcm91bmQgZWFjaCB0b2tlbiBhbmQgcmVtb3ZlIGR1cGxp
Y2F0ZXMgCiBQQVNTIGNsYXNzTGlzdC5yZW1vdmUgbXVzdCBjb2xsYXBzZSB3aGl0ZXNwYWNlIHdo
ZW4gcmVtb3ZpbmcgZHVwbGljYXRlIHRva2VucyAKLUZBSUwgY2xhc3NMaXN0LmFkZCBtdXN0IGNv
bGxhcHNlIHdoaXRlc3BhY2VzIGFuZCByZW1vdmUgZHVwbGljYXRlcyB3aGVuIGFkZGluZyBhIHRv
a2VuIHRoYXQgYWxyZWFkeSBleGlzdHMgYXNzZXJ0X2VxdWFsczogaW1wbGljaXQgZXhwZWN0ZWQg
InRva2VuMSIgYnV0IGdvdCAiICB0b2tlbjEgIHRva2VuMSAgIgorUEFTUyBjbGFzc0xpc3QuYWRk
IG11c3QgY29sbGFwc2Ugd2hpdGVzcGFjZXMgYW5kIHJlbW92ZSBkdXBsaWNhdGVzIHdoZW4gYWRk
aW5nIGEgdG9rZW4gdGhhdCBhbHJlYWR5IGV4aXN0cyAKIFBBU1MgY2xhc3NMaXN0LnRvZ2dsZSBt
dXN0IHRvZ2dsZSB0b2tlbnMgY2FzZS1zZW5zaXRpdmVseSB3aGVuIGFkZGluZyAKIFBBU1MgY2xh
c3NMaXN0LnRvZ2dsZSBtdXN0IG5vdCBicmVhayBjYXNlLXNlbnNpdGl2ZSBDU1Mgc2VsZWN0b3Ig
bWF0Y2hpbmcgCiBQQVNTIGNsYXNzTGlzdC50b2dnbGUgbXVzdCBiZSBhYmxlIHRvIHJlbW92ZSB0
b2tlbnMgCkBAIC01NywxMCArNTcsMTAgQEAgUEFTUyBjbGFzc0xpc3QgbXVzdCBzdHJpbmdpZnkg
dG8gYW4gZW1wdHkgc3RyaW5nIHdoZW4gYWxsIGNsYXNzZXMgaGF2ZSBiZWVuIHJlbW8KIFBBU1Mg
Y2xhc3NMaXN0Lml0ZW0oMCkgbXVzdCByZXR1cm4gbnVsbCB3aGVuIGFsbCBjbGFzc2VzIGhhdmUg
YmVlbiByZW1vdmVkIAogUEFTUyBjbGFzc0xpc3RbMF0gbXVzdCBiZSB1bmRlZmluZWQgd2hlbiBh
bGwgY2xhc3NlcyBoYXZlIGJlZW4gcmVtb3ZlZCAKIFBBU1MgY2xhc3NMaXN0LmFkZCBzaG91bGQg
dHJlYXQgIiAiIGFzIGEgc3BhY2UgCi1GQUlMIGNsYXNzTGlzdC5hZGQgc2hvdWxkIHRyZWF0IFx0
IGFzIGEgc3BhY2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImEgYiIgYnV0IGdvdCAiYVx0YiIK
LUZBSUwgY2xhc3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXHIgYXMgYSBzcGFjZSBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAiYSBiIiBidXQgZ290ICJhXHJiIgotRkFJTCBjbGFzc0xpc3QuYWRkIHNo
b3VsZCB0cmVhdCBcbiBhcyBhIHNwYWNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJhIGIiIGJ1
dCBnb3QgImFcbmIiCi1GQUlMIGNsYXNzTGlzdC5hZGQgc2hvdWxkIHRyZWF0IFxmIGFzIGEgc3Bh
Y2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImEgYiIgYnV0IGdvdCAiYVxmYiIKK1BBU1MgY2xh
c3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXHQgYXMgYSBzcGFjZSAKK1BBU1MgY2xhc3NMaXN0LmFk
ZCBzaG91bGQgdHJlYXQgXHIgYXMgYSBzcGFjZSAKK1BBU1MgY2xhc3NMaXN0LmFkZCBzaG91bGQg
dHJlYXQgXG4gYXMgYSBzcGFjZSAKK1BBU1MgY2xhc3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXGYg
YXMgYSBzcGFjZSAKIFBBU1MgY2xhc3NMaXN0Lmxlbmd0aCBtdXN0IGJlIHJlYWQtb25seSAKIFBB
U1MgY2xhc3NMaXN0IG11c3QgYmUgcmVhZC1vbmx5IAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260963</attachid>
            <date>2015-09-10 16:24:18 -0700</date>
            <delta_ts>2015-09-10 16:45:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148589-20150910162411.patch</filename>
            <type>text/plain</type>
            <size>94966</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc3Yzg0MGVmMDJkNmQ5
NWFlMGUwZWEwYmY3MzdiMTY1ZTA0OWM5NC4uYjg3MzY3YWUxMjJjZTMzMzNlZTRiZWZkMTY5ZGZi
OGNjNGMyZjJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OCBAQAorMjAxNS0wOS0xMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERPTVRva2VuTGlzdCB1cGRh
dGUgc3RlcHMgZm9yIGNsYXNzTGlzdCBkb24ndCBmb2xsb3cgdGhlIHNwZWMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODU4OQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjI1NDc0NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIG91ciBET01Ub2tlbkxpc3QgaW1wbGVtZW50YXRpb24gdG8g
YmVoYXZlIGFjY29yZGluZyB0bworICAgICAgICB0aGUgbGF0ZXN0IERPTSBzcGVjaWZpY2F0aW9u
OgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1kb210b2tl
bmxpc3QKKworICAgICAgICBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIGNoYW5nZXMgd2Vy
ZSBtYWRlOgorICAgICAgICAtIFRoZSBzdHJpbmdpZmllciBub3cgcmV0dXJucyB0aGUgcmVzdWx0
IG9mIHRoZSBvcmRlcmVkIHNldCBzZXJpYWxpemVyCisgICAgICAgICAgZm9yIHRva2Vucy4gVGhp
cyBtZWFucyB0aGF0IHdlIGRyb3AgZHVwbGljYXRlIHNwYWNlcyBhbmQgZXh0cmEgc3BhY2VzCisg
ICAgICAgICAgWzFdWzJdWzNdLgorICAgICAgICAtIERPTVNldHRhYmxlVG9rZW5MaXN0LnZhbHVl
IG5vdyByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIG9yZGVyZWQgc2V0CisgICAgICAgICAgc2Vy
aWFsaXplciBmb3IgdG9rZW5zIFs0XSBhcyB3ZWxsLgorICAgICAgICAtIFdoZW4gdGhlIERPTVRv
a2VuTGlzdCdzIHRva2VucyBhcmUgdXBkYXRlZCBhbmQgdGhlcmUgaXMgYW4gYXNzb2NpYXRlZAor
ICAgICAgICAgIEVsZW1lbnQgYXR0cmlidXRlLCB3ZSBzZXQgdGhlIGF0dHJpYnV0ZSB2YWx1ZSB0
byBiZSB0aGUgdGhlIG9yZGVyZWQKKyAgICAgICAgICBzZXQgc2VyaWFsaXplciBmb3IgdG9rZW5z
LiBUaGlzIGlzIGFjY29yZGluZyB0byB0aGUgRE9NVG9rZW5MaXN0CisgICAgICAgICAgdXBkYXRl
IHN0ZXBzIGluIHRoZSBzcGVjaWZpY2F0aW9uIFs2XS4KKworICAgICAgICBFZGdlIGJyb3dzZXIg
YmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmljYXRpb24gYWxyZWFkeS4gRmlyZWZveCBp
cworICAgICAgICBpbXBsZW1lbnRpbmcgdGhpcyB2aWEgWzddLiBUaGlzIG1ha2VzIHRoZSBKUyBB
UEkgbmljZXIgdG8gdXNlIGFuZAorICAgICAgICBpbnRlcmVzdCB3YXMgc2hvd24gYnkgalF1ZXJ5
IFRlYW0uCisKKyAgICAgICAgVGhlIGZvbGxvd2luZyByZWZhY3RvcmluZyB3YXMgZG9uZToKKyAg
ICAgICAgLSBNZXJnZSBDbGFzc0xpc3QgLyBSZWxMaXN0IGludG8gYSBzaW5nbGUgQXR0cmlidXRl
RE9NVG9rZW5MaXN0IGNsYXNzCisgICAgICAgICAgYXMgdGhlaXIgY29kZSBpcyBtb3N0bHkgZHVw
bGljYXRlZCBhbmQgdGhlIG9ubHkgdGhpbmcgdGhhdCBjaGFuZ2VzCisgICAgICAgICAgaXMgd2hp
Y2ggYXR0cmlidXRlIGlzIGFzc29jaWF0ZWQgKGNsYXNzIHZzIHJlbCkuIEF0dHJpYnV0ZURPTVRv
a2VuTGlzdAorICAgICAgICAgIG5vdyBrZWVwcyB0aGUgYXR0cmlidXRlIG5hbWUgYXMgYSBtZW1i
ZXIgc28gaXQgY291bGQgYmUgdXNlZCBmb3IgYW55CisgICAgICAgICAgYXR0cmlidXRlLiBBdHRy
aWJ1dGVET01Ub2tlbkxpc3Qgb3ZlcnJpZGVzIERPTVRva2VuTGlzdCdzCisgICAgICAgICAgdXBk
YXRlQWZ0ZXJUb2tlbkNoYW5nZSgpIHRvIGRvIHVwZGF0ZSB0aGUgYXR0cmlidXRlJ3MgdmFsdWUg
YXMgcGVyCisgICAgICAgICAgWzZdLgorICAgICAgICAtIFdlIG5vIGxvbmdlciB1c2UgYSBTcGFj
ZVNwbGl0U3RyaW5nIGZvciB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24KKyAgICAgICAgICBh
cyB3ZSBuZWVkIHRvIHNhbml0aXplIHRoZSB0b2tlbnMgKGRyb3AgZHVwbGljYXRlcyBhbmQgZXh0
cmEgc3BhY2VzKS4KKyAgICAgICAgICBET01Ub2tlbkxpc3Qgbm93IGhhcyBhbiBpbnRlcm5hbCBW
ZWN0b3I8QXRvbWljU3RyaW5nPiBjb250YWluaW5nIHRoZQorICAgICAgICAgIHRva2VucyB0aGF0
IGlzIGNvbnN0cnVjdGVkIGZyb20gdGhlIGFsZ29yaXRobSBpbiBbMl0uIEFzIGEgcmVzdWx0LAor
ICAgICAgICAgIG1vc3Qgb2YgdGhlIGxvZ2ljIGlzIG5vdyBpbiBET01Ub2tlbkxpc3QgaW5zdGVh
ZCBvZiBpdHMgc3ViY2xhc3NlcworICAgICAgICAgIHdoaWNoIG1lYW5zIHRoYXQgbW9zdCBtZXRo
b2RzIGFyZSBubyBsb25nZXIgdmlydHVhbC4gV2Ugb25seSBoYXZlCisgICAgICAgICAgb25lIHZp
cnR1YWwgZnVuY3Rpb24gbmFtZWQgdXBkYXRlQWZ0ZXJUb2tlbkNoYW5nZSgpIHRvIGRvIHRoZSB1
cGRhdGUKKyAgICAgICAgICBzdGVwcyBhcyBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgbmVlZHMgdG8g
dXBkYXRlIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAgYXR0cmlidXRlLgorCisgICAgICAgIFRo
aXMgY2hhbmdlIGRvZXMgbm90IHNlZW0gdG8gaW1wYWN0IERyb21hZW8uCisKKyAgICAgICAgWzFd
IGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1vcmRlcmVkLXNldC1zZXJpYWxp
emVyCisgICAgICAgIFsyXSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI29yZGVyZWQlMjBz
ZXRzCisgICAgICAgIFszXSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI3N0cmluZ2lmaWNh
dGlvbi1iZWhhdmlvcgorICAgICAgICBbNF0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNk
b20tZG9tc2V0dGFibGV0b2tlbmxpc3QtdmFsdWUKKyAgICAgICAgWzVdIGh0dHBzOi8vZG9tLnNw
ZWMud2hhdHdnLm9yZy8jZG9tLWRvbXRva2VubGlzdC1jb250YWlucyAoc3RlcCAyKQorICAgICAg
ICBbNl0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LURUTC11cGRhdGUKKyAg
ICAgICAgWzddIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTg2
OTc4OAorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWxyZWFkeSBjb3ZlcmVkIGJ5IGV4aXN0aW5n
IHRlc3RzLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6Y2xhc3NBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgV2hlbiB0aGUgY2xhc3Mg
YXR0cmlidXRlIGNoYW5nZXMsIG1ha2Ugc3VyZSB0byB1cGRhdGUgdGhlIGFzc29jaWF0ZWQKKyAg
ICAgICAgY2xhc3NMaXN0IGlmIHRoZXJlIGlzIG9uZS4gV2UgY291bGQgZG8gdGhpcyBsYXppbHkg
aWYgaXQgdHVybnMgb3V0CisgICAgICAgIHRvIGJlIGEgcGVyZm9ybWFuY2UgcHJvYmxlbS4gSG93
ZXZlciwgY2hhbmNlcyBhcmUgdGhpcyBpcyBub3QgYXMKKyAgICAgICAgY2xhc3NMaXN0IGlzIHJh
cmVseSB1c2VkIGFuZCB3ZSBvbmx5IG5lZWQgdG8gdXBkYXRlIHRoZSBjbGFzc0xpc3QgaWYKKyAg
ICAgICAgaXQgd2FzIGV2ZXIgYWNjZXNzZWQgYnkgSlMgZm9yIHRoaXMgRWxlbWVudC4KKworICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgRHJvcCBjYWxs
IHRvIGNsZWFyQ2xhc3NMaXN0VmFsdWVGb3JRdWlya3NNb2RlKCkgYXMgd2Ugbm8gbG9uZ2VyIG5l
ZWQKKyAgICAgICAgdG8gbWFpbnRhaW4gYSBzZXBhcmF0ZSBTcGFjZVNwbGl0U3RyaW5nIGZvciBj
bGFzc2VzIHdoZW4gaW4gcXVpcmtzCisgICAgICAgIG1vZGUuIFRoaXMgaXMgYmVjYXVzZSBBdHRy
aWJ1dGVET01Ub2tlbkxpc3Qgbm93IGhhcyBpdHMgb3duIFZlY3RvcgorICAgICAgICBvZiBjbGFz
c2VzIGluIHRoZWlyIG9yaWdpbmFsIGNhc2VzLiBJdCB0aGVyZWZvcmUgbm8gbG9uZ2VyIHJlbGll
cyBvbgorICAgICAgICBFbGVtZW50OjpjbGFzc05hbWVzKCkgd2hpY2ggaGFzIGl0cyBjYXNlIGZv
bGRlZCB3aGVuIGluIHF1aXJrcyBtb2RlLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpj
bGFzc0xpc3QpOgorICAgICAgICBSZXR1cm4gYSBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgaW5zdGVh
ZCBvZiBhIENsYXNzTGlzdC4KKworICAgICAgICAqIGh0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0
Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdHRyaWJ1dGVET01Ub2tlbkxpc3Q6OkF0dHJpYnV0ZURP
TVRva2VuTGlzdCk6CisgICAgICAgIENhbGwgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZSgpIHVzaW5n
IHRoZSBhdHRyaWJ1dGUncyB2YWx1ZSBzbyB0aGF0CisgICAgICAgIERPTVRva2VuTGlzdCBjYW4g
aW5pdGlhbGl6ZSBpdHMgdG9rZW4gVmVjdG9yLgorCisgICAgICAgIChXZWJDb3JlOjpBdHRyaWJ1
dGVET01Ub2tlbkxpc3Q6OmF0dHJpYnV0ZVZhbHVlQ2hhbmdlZCk6CisgICAgICAgIElmIHRoZSBh
dHRyaWJ1dGUgdmFsdWUgd2FzIGNoYW5nZWQgYnkgc29tZWJvZHkgZWxzZSB0aGF0IHRoZQorICAg
ICAgICBBdHRyaWJ1dGVET01Ub2tlbkxpc3QsIGNhbGwgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZSgp
IHNvIHRoYXQgaXQKKyAgICAgICAgY2FuIHVwZGF0ZSBpdHMgdG9rZW4gVmVjdG9yLgorCisgICAg
ICAgIChXZWJDb3JlOjpBdHRyaWJ1dGVET01Ub2tlbkxpc3Q6OnVwZGF0ZUFmdGVyVG9rZW5DaGFu
Z2UpOgorICAgICAgICBUaGlzIGlzIGNhbGxlZCB3aGVuZXZlciB0aGUgdG9rZW4gVmVjdG9yIGlz
IGNoYW5nZWQgdmlhIEpTLiBJbgorICAgICAgICB0aGlzIGNhc2UsIHdlIHVwZGF0ZSB0aGUgYXNz
b2NpYXRlZCBhdHRyaWJ1dGUncyB2YWx1ZS4KKworICAgICAgICAqIGh0bWwvQ2xhc3NMaXN0LmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL0NsYXNzTGlzdC5oOiBSZW1vdmVkLgorICAgICAg
ICBOb3cgbWVyZ2VkIGludG8gQXR0cmlidXRlRE9NVG9rZW5MaXN0LgorCisgICAgICAgICogaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHA6CisgICAgICAgICogaHRtbC9ET01TZXR0YWJsZVRv
a2VuTGlzdC5oOgorICAgICAgICBHZXQgcmlkIG9mIG1vc3Qgb2YgdGhlIGNvZGUgYXMgbW9zdCBv
ZiB0aGUgbG9naWMgaXMgbm93IGluCisgICAgICAgIERPTVRva2VuTGlzdCBwYXJlbnQgY2xhc3Mu
CisKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW4pOgorICAgICAgICBVc2UgYSBTdHJpbmcgcGFyYW1l
dGVyIGluc3RlYWQgb2YgYW4gQXRvbWljU3RyaW5nIGFzIHRoaXMgbWV0aG9kIGRvZXMKKyAgICAg
ICAgbm90IG5lZWQgdGhlIGlucHV0IHRoZSBiZSBhbiBBdG9taWNTdHJpbmcuIFRoaXMgYXZvaWQg
YXRvbWl6aW5nCisgICAgICAgIFN0cmluZyB1bm5lY2Vzc2FyaWx5LgorCisgICAgICAgIChXZWJD
b3JlOjpET01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW5zKToKKyAgICAgICAgVXNlIGEgbW9kZXJu
IGxvb3AuCisKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6Y29udGFpbnMpOgorICAg
ICAgICBObyBsb25nZXIgdXNlIGNvbnRhaW5zSW50ZXJuYWwoKSB2aXJ0dWFsIGZ1bmN0aW9uLiBX
ZSBjYW4gbm93IGNoZWNrCisgICAgICAgIHRoZSBpbnRlcm5hbCB0b2tlbiBWZWN0b3IuCisKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6YWRkKToKKyAgICAgICAgTm93IHVwZGF0ZSB0
aGUgaW50ZXJuYWwgVmVjdG9yLiBVc2UgYSBtb2Rlcm4gbG9vcCBhbmQgdHJ5IHRvIG1pbmltaXpl
CisgICAgICAgIFZlY3RvciBjYXBhY2l0eSByZWFsbG9jYXRpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVRva2VuTGlzdDo6cmVtb3ZlKToKKyAgICAgICAgTm93IHVwZGF0ZSB0aGUgaW50ZXJu
YWwgVmVjdG9yLgorCisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnRvZ2dsZSk6Cisg
ICAgICAgIE5vdyB1cGRhdGUgdGhlIGludGVybmFsIFZlY3RvciBhbmQgcmVmYWN0b3IgdGhlIGNv
ZGUgc28gdGhhdCBpdCBpcworICAgICAgICBzdHJ1Y3R1cmVkIGV4YWN0bHkgYXMgdGhlIGFsZ29y
aXRobSBpbiB0aGUgc3BlY2lmaWNhdGlvbiBmb3IKKyAgICAgICAgY2xhcml0eS4KKworICAgICAg
ICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp2YWx1ZSk6CisgICAgICAgIE5vdyByZXR1cm4gdGhl
IHJlc3VsdCBvZiB0aGUgb3JkZXJlZCBzZXQgc2VyaWFsaXplciBmb3IgdG9rZW5zLiBUaGlzCisg
ICAgICAgIG1ldGhvZCBpcyB1c2VkIGZvcjoKKyAgICAgICAgLSBUaGUgRE9NU2V0dGFibGVUb2tl
bkxpc3QudmFsdWUoKSBnZXR0ZXIKKyAgICAgICAgLSBUaGUgRE9NVG9rZW5MaXN0IHN0cmluZ2lm
aWVyCisgICAgICAgIC0gQXMgYXR0cmlidXRlIHZhbHVlIHdoZW4gdXBkYXRpbmcgdGhlIGFzc29j
aWF0ZWQgYXR0cmlidXRlIGluCisgICAgICAgICAgQXR0cmlidXRlRE9NVG9rZW5MaXN0LgorCisg
ICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnNldFZhbHVlKToKKyAgICAgICAgVXBkYXRl
IHRoZSBpbnRlcm5hbCBWZWN0b3IgdXNpbmcgdGhlIGFsZ29yaXRobSBpbiBbMl0uCisKKyAgICAg
ICAgKiBodG1sL0RPTVRva2VuTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0
OjpsZW5ndGgpOgorICAgICAgICBObyBsb25nZXIgdmlydHVhbCwgbm93IHJldHVybnMgdGhlIHNp
emUgb2YgdGhlIGludGVybmFsIHRva2VuIFZlY3Rvci4KKworICAgICAgICAoV2ViQ29yZTo6RE9N
VG9rZW5MaXN0OjppdGVtKToKKyAgICAgICAgTm8gbG9uZ2VyIHZpcnR1YWwsIG5vdyByZXR1cm5z
IHRoZSB0b2tlbiBhdCB0aGUgZ2l2ZW4gaW5kZXggaW4gdGhlCisgICAgICAgIGludGVybmFsIFZl
Y3Rvci4KKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QpOgorICAgICAgICBOb3cgcmV0dXJu
IGEgQXR0cmlidXRlRE9NVG9rZW5MaXN0LgorCisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpyZWxMaXN0KToKKyAg
ICAgICAgTm93IHJldHVybiBhIEF0dHJpYnV0ZURPTVRva2VuTGlzdC4KKworICAgICAgICAqIGh0
bWwvUmVsTGlzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9SZWxMaXN0Lmg6IFJlbW92
ZWQuCisgICAgICAgIE5vdyBtZXJnZWQgaW50byBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuCisKIDIw
MTUtMDktMTAgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFdy
aXRlIGEgdGVzdCB0byBlbnN1cmUgd2UgZG9uJ3QgcmVncmVzcyBwcm9jZXNzaW5nIG9mIHRhc2tz
IHdoZW4gcGFnZSBkZWZlcnMgbG9hZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMDg0ODRi
ZGZlMTU4MzhhODM4N2ExMmM3NWRhNTExOWZhMmFiZmFlLi4wZjMxNDUxZmU3NDJlYmVmNGZmYmQx
NmZiMWU0YmYyNjEyYjExY2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTU3Myw2ICsxNTcz
LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCiAg
ICAgaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCiAKKyAgICBodG1sL0F0dHJpYnV0ZURPTVRva2VuTGlz
dC5jcHAKICAgICBodG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmNwcAogICAgIGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwCkBAIC0xNTgxLDcgKzE1ODIsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgaHRtbC9CYXNlVGV4dElucHV0VHlwZS5jcHAKICAgICBodG1sL0J1dHRvbklucHV0VHlwZS5j
cHAKICAgICBodG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcAotICAgIGh0bWwvQ2xhc3NMaXN0LmNw
cAogICAgIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5jcHAK
ICAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcApAQCAtMTcwNSw3ICsxNzA1LDYgQEAg
c2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCiAgICAgaHRt
bC9SYWRpb05vZGVMaXN0LmNwcAogICAgIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCi0gICAgaHRt
bC9SZWxMaXN0LmNwcAogICAgIGh0bWwvUmVzZXRJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9SdWJ5
RWxlbWVudC5jcHAKICAgICBodG1sL1J1YnlUZXh0RWxlbWVudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGQ1ZjAxMTlhYmJkMmVm
Y2E0YmI2OWFkOWQyZDU1NjQ0M2E0MjA1YWUuLjYxYmFjZDBkYTgxYWQ2ZGZkMzExMDk2NTEwZjIy
N2I0N2FkOTUxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagpAQCAtMTYwNDIsNiArMTYwNDIsNyBAQAogICAgIDwvQ2xDb21waWxlPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZWRpdGluZ1x3aW5cRWRpdG9yV2luLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZpbGVhcGlcQXN5bmNGaWxlU3RyZWFtLmNwcCIgLz4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcQmFzZUJ1dHRvbklucHV0VHlw
ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VDaGVja2FibGVJ
bnB1dFR5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHAiIC8+CkBAIC0xNjA1Niw3ICsxNjA1Nyw2IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXGNhbnZhc1xDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNcQ2Fu
dmFzU3R5bGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxDaGVja2Jv
eElucHV0VHlwZS5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXENsYXNz
TGlzdC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXENvbG9ySW5wdXRU
eXBlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcRGF0ZUlucHV0VHlw
ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXERhdGVUaW1lSW5wdXRU
eXBlLmNwcCIgLz4KQEAgLTE3MjE1LDcgKzE3MjE1LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGh0bWxcUmFkaW9JbnB1dFR5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5caHRtbFxSYWRpb05vZGVMaXN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGh0bWxcUmFuZ2VJbnB1dFR5cGUuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5caHRtbFxSZWxMaXN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxc
UmVzZXRJbnB1dFR5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxS
dWJ5RWxlbWVudC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXFJ1YnlU
ZXh0RWxlbWVudC5jcHAiIC8+CkBAIC0yMjE3OCw2ICsyMjE3Nyw3IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFZpc2libGVVbml0cy5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZWRpdGluZ1xXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZpbGVhcGlcQXN5bmNGaWxlU3RyZWFtLmgiIC8+
CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXEF0dHJpYnV0ZURPTVRva2VuTGlzdC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxCYXNlQnV0dG9uSW5wdXRUeXBl
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VDaGVja2FibGVJbnB1
dFR5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcQmFzZUNsaWNrYWJs
ZVdpdGhLZXlJbnB1dFR5cGUuaCIgLz4KQEAgLTIyMTkyLDcgKzIyMTkyLDYgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcY2FudmFzXENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNcQ2FudmFzU3R5bGUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcQ2hlY2tib3hJbnB1dFR5cGUu
aCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcQ2xhc3NMaXN0LmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXENvbGxlY3Rpb25UeXBlLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXENvbG9ySW5wdXRUeXBlLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXERhdGVJbnB1dFR5cGUuaCIgLz4KQEAgLTIyMzI1LDcg
KzIyMzI0LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcUmFkaW9JbnB1dFR5
cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcUmFkaW9Ob2RlTGlzdC5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxSYW5nZUlucHV0VHlwZS5oIiAv
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxSZWxMaXN0LmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXFJlc2V0SW5wdXRUeXBlLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxodG1sXFJ1YnlFbGVtZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxodG1sXFJ1YnlUZXh0RWxlbWVudC5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGQ5
ZTMzYzY4ODc0NTcwMGI5NTMxMjhjMWZhMzc0OTRlN2MxMjNiYzcuLjE3NWE5MzkxNjE1NWI1NjJi
OTEzZmY4YmFhZjhmMGYzZjNjMmUyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTM1OTEsNiArMzU5MSw5
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmaWxlYXBpXEFzeW5jRmlsZVN0cmVhbS5j
cHAiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXEF0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAiPgor
ICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VCdXR0b25JbnB1dFR5cGUuY3BwIj4KICAgICAgIDxG
aWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMzYxOCw5ICszNjIxLDYg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcQ2hlY2tib3hJbnB1dFR5cGUuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxDbGFzc0xpc3QuY3BwIj4KLSAgICAgIDxGaWx0ZXI+
aHRtbDwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5caHRtbFxDb2xvcklucHV0VHlwZS5jcHAiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CkBAIC0zOTk5LDkgKzM5OTksNiBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5caHRtbFxSYW5nZUlucHV0VHlwZS5jcHAiPgogICAgICAgPEZpbHRlcj5odG1s
PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxo
dG1sXFJlbExpc3QuY3BwIj4KLSAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgotICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxSZXNldElucHV0VHlwZS5j
cHAiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0x
MDc0OCw2ICsxMDc0NSw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmaWxlYXBpXEFz
eW5jRmlsZVN0cmVhbS5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxBdHRyaWJ1dGVET01Ub2tl
bkxpc3QuaCI+CisgICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcQmFzZUJ1dHRvbklucHV0VHlwZS5oIj4K
ICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTA3NzUs
OSArMTA3NzUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxDaGVja2JveElu
cHV0VHlwZS5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxDbGFzc0xpc3QuaCI+Ci0gICAgICA8
RmlsdGVyPmh0bWw8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGh0bWxcQ29sbGVjdGlvblR5cGUuaCI+CiAgICAgICA8RmlsdGVyPmh0bWw8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTExMTY4LDkgKzExMTY1LDYgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcUmFuZ2VJbnB1dFR5cGUuaCI+CiAgICAgICA8RmlsdGVy
Pmh0bWw8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGh0bWxcUmVsTGlzdC5oIj4KLSAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgotICAgIDwv
Q2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxSZXNldElucHV0VHlw
ZS5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDUyYTg5NTdiNTk4N2M5YmQ1MjJhMWEyNWJkZjg2ODRmNTljOTM2NGQuLmMyZjc1OGY1ZDBmM2Yx
ZjY1ZmQ5NjViMmExNjhmZDJkNzAwNzk4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2ODYsNiArMTY4Niw4IEBACiAJCTQ1
QkFDMkIwMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NUJBQzJBRjEzNjBCQkFCMDA1REEyNTggLyogSWNv
blVSTC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQ1RkVBNUNGMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAv
KiBEZWNpbWFsLmNwcCAqLzsgfTsKIAkJNDVGRUE1RDAxNTZEREU4QzAwNjU0MTAxIC8qIERlY2lt
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1RkVB
NUNFMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDYyMzNFRUUxQkEwRjE4NzAwMEVCRUJCIC8qIEF0
dHJpYnV0ZURPTVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDYyMzNFRUQxQkEwRjE3QTAwMEVCRUJCIC8qIEF0dHJpYnV0ZURPTVRva2Vu
TGlzdC5oICovOyB9OworCQk0NjIzM0VFRjFCQTBGMThCMDAwRUJFQkIgLyogQXR0cmlidXRlRE9N
VG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2MjMzRUVDMUJBMEYxN0EwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3Bw
ICovOyB9OwogCQk0NjM0NTkyQzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTky
QjFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2MzQ1
OTJFMUFDMjI3M0MwMEVDQjcxQyAvKiBTaGFyZWRUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzQ1OTJEMUFDMjI3M0MwMEVDQjcxQyAv
KiBTaGFyZWRUaW1lckNGLmNwcCAqLzsgfTsKIAkJNDYzRUI2MjIxQjg3ODlFMDAwOTZFRDUxIC8q
IFRhZ0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDYzRUI2MjAxQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uY3BwICov
OyB9OwpAQCAtMTg1Myw4ICsxODU1LDYgQEAKIAkJNEE5Q0M4MTgxNkJCOUFDNjAwRUM2NDVBIC8q
IENTU0RlZmF1bHRTdHlsZVNoZWV0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEE5Q0M4MTYxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRTdHls
ZVNoZWV0cy5oICovOyB9OwogCQk0QTlDQzgyMDE2QkY5QkI0MDBFQzY0NUEgLyogSW5zcGVjdG9y
Q1NTT01XcmFwcGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QTlDQzgxRTE2QkY5QkI0MDBFQzY0NUEgLyogSW5zcGVjdG9yQ1NTT01XcmFwcGVy
cy5jcHAgKi87IH07CiAJCTRBOUNDODIxMTZCRjlCQjQwMEVDNjQ1QSAvKiBJbnNwZWN0b3JDU1NP
TVdyYXBwZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0QTlDQzgxRjE2QkY5QkI0MDBFQzY0NUEgLyogSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5oICov
OyB9OwotCQk0QUNCQzBCRTEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JDMEJDMTI3MTNDQkQw
MDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwICovOyB9OwotCQk0QUNCQzBCRjEyNzEzQ0JEMDA5NEY5
QjIgLyogQ2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggKi87IH07CiAJ
CTRBQ0JDMEMzMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBDMDEyNzEz
Q0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwICovOyB9OwogCQk0QUNCQzBD
NDEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JDMEMxMTI3MTNDQ0EwMDk0RjlC
MiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oICovOyB9OwogCQk0QUNCQzBDQTEyNzEzRDBBMDA5
NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBDODEyNzEzRDBBMDA5NEY5QjIgLyogSlNE
T01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi87IH07CkBAIC00ODkyLDggKzQ4OTIsNiBAQAogCQlC
MkVEOTc3MTBCMUY1NUNFMDAyNTdEMEYgLyogR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJFRDk3NzAwQjFGNTVDRTAw
MjU3RDBGIC8qIEdyYXBoaWNzQ29udGV4dENHLmNwcCAqLzsgfTsKIAkJQjJGMzRGRTYwRTgyRjgx
NDAwRjYyN0NEIC8qIEROUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjJGMzRGRTUwRTgyRjgxNDAwRjYyN0NEIC8qIEROUy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyRjM0RkU5MEU4MkY4MjcwMEY2
MjdDRCAvKiBETlNDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCMkYzNEZFODBFODJGODI3MDBGNjI3Q0QgLyogRE5TQ0ZOZXQuY3BwICovOyB9
OwotCQlCMkY3OENGRDE5RjJGMDJEMDA0OTY5NkMgLyogUmVsTGlzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkY3OENGQjE5RjJGMDJEMDA0OTY5
NkMgLyogUmVsTGlzdC5jcHAgKi87IH07Ci0JCUIyRjc4Q0ZFMTlGMkYwMkQwMDQ5Njk2QyAvKiBS
ZWxMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MkY3OENGQzE5RjJGMDJEMDA0OTY5NkMgLyogUmVsTGlzdC5oICovOyB9OwogCQlCMkZBM0QzNjBB
Qjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRkEzQzRFMEFCNzVBNkUwMDBF
NUFDNCAvKiBKU1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwICovOyB9OwogCQlCMkZBM0QzNzBB
Qjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlQ29sb3JFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkZBM0M0RjBBQjc1QTZFMDAwRTVB
QzQgLyogSlNTVkdBbmltYXRlQ29sb3JFbGVtZW50LmggKi87IH07CiAJCUIyRkEzRDM4MEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVkQW5nbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJGQTNDNTAwQUI3NUE2RTAwMEU1QUM0IC8qIEpT
U1ZHQW5pbWF0ZWRBbmdsZS5jcHAgKi87IH07CkBAIC04OTM0LDYgKzg5MzIsOCBAQAogCQk0NUJB
QzJBRjEzNjBCQkFCMDA1REEyNTggLyogSWNvblVSTC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJY29uVVJMLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1RkVB
NUNEMTU2RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERlY2ltYWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEZWNpbWFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQ2MjMzRUVDMUJBMEYxN0EwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQXR0cmlidXRlRE9NVG9rZW5MaXN0
LmNwcDsgcGF0aCA9IC4uL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ2MjMzRUVEMUJBMEYxN0EwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01U
b2tlbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXR0cmlidXRlRE9N
VG9rZW5MaXN0Lmg7IHBhdGggPSAuLi9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2Jz
ZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93ZXJP
YnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MzQ1OTJEMUFD
MjI3M0MwMEVDQjcxQyAvKiBTaGFyZWRUaW1lckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNoYXJlZFRpbWVyQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjNFQjYyMDFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdDb2xsZWN0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkxMTcsOCArOTExNyw2IEBACiAJCTRBOUNDODE2
MTZCQjlBQzYwMEVDNjQ1QSAvKiBDU1NEZWZhdWx0U3R5bGVTaGVldHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTRBOUNDODFFMTZCRjlCQjQwMEVDNjQ1QSAvKiBJbnNwZWN0b3JD
U1NPTVdyYXBwZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
c3BlY3RvckNTU09NV3JhcHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
QTlDQzgxRjE2QkY5QkI0MDBFQzY0NUEgLyogSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBD
bGFzc0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xhc3NM
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEFDQkMwQkQxMjcxM0NCRDAw
OTRGOUIyIC8qIENsYXNzTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
bGFzc0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEFDQkMwQzAxMjcxM0ND
QTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEFDQkMwQzExMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxl
VG9rZW5MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNldHRhYmxl
VG9rZW5MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBQ0JDMEMyMTI3MTND
Q0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTI0NzIsOCArMTI0NzAsNiBAQAogCQlCMkVEOTc3MDBCMUY1NUNFMDAyNTdEMEYgLyog
R3JhcGhpY3NDb250ZXh0Q0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dENHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjJGMzRGRTUwRTgyRjgxNDAwRjYyN0NEIC8qIEROUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBETlMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJGMzRGRTgw
RTgyRjgyNzAwRjYyN0NEIC8qIEROU0NGTmV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEROU0NGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QjJGNzhDRkIxOUYyRjAyRDAwNDk2OTZDIC8qIFJlbExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVsTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUIyRjc4Q0ZDMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQjJGQTNDNEUwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdBbmltYXRl
Q29sb3JFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJGQTNDNEYw
QUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdBbmltYXRlQ29sb3JFbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyRkEzQzUwMEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NW
R0FuaW1hdGVkQW5nbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTU1ZHQW5pbWF0ZWRBbmdsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODE5Niw4ICsxODE5Miw2IEBACiAJCQkJODMwMDMwRjcxQjdEMzk4ODAwRUQzQUFDIC8qIENhY2hl
ZEhUTUxDb2xsZWN0aW9uLmggKi8sCiAJCQkJRjU1QjNEN0QxMjUxRjEyRDAwM0VGMjY5IC8qIENo
ZWNrYm94SW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q3RTEyNTFGMTJEMDAzRUYyNjkgLyog
Q2hlY2tib3hJbnB1dFR5cGUuaCAqLywKLQkJCQk0QUNCQzBCQzEyNzEzQ0JEMDA5NEY5QjIgLyog
Q2xhc3NMaXN0LmNwcCAqLywKLQkJCQk0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NM
aXN0LmggKi8sCiAJCQkJNDZFQkVBMDExQjdENEQ1RDAwQkU0OTQxIC8qIENvbGxlY3Rpb25UcmF2
ZXJzYWwuaCAqLywKIAkJCQk5M0M0NDFGRjBGODEzQUUxMDBDMUE2MzQgLyogQ29sbGVjdGlvblR5
cGUuaCAqLywKIAkJCQlCQzI5OTM1QzE3QTFERDU4MDBCQ0U4ODAgLyogQ29sb3JJbnB1dFR5cGUu
Y3BwICovLApAQCAtMTg1NDEsOCArMTg1MzUsNiBAQAogCQkJCUI2NThGRkE0MTUyMkVGQUEwMERE
NTU5NSAvKiBSYWRpb05vZGVMaXN0LmggKi8sCiAJCQkJRjU1QjNEOTkxMjUxRjEyRDAwM0VGMjY5
IC8qIFJhbmdlSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q5QTEyNTFGMTJEMDAzRUYyNjkg
LyogUmFuZ2VJbnB1dFR5cGUuaCAqLywKLQkJCQlCMkY3OENGQjE5RjJGMDJEMDA0OTY5NkMgLyog
UmVsTGlzdC5jcHAgKi8sCi0JCQkJQjJGNzhDRkMxOUYyRjAyRDAwNDk2OTZDIC8qIFJlbExpc3Qu
aCAqLywKIAkJCQlGNTVCM0Q5QjEyNTFGMTJEMDAzRUYyNjkgLyogUmVzZXRJbnB1dFR5cGUuY3Bw
ICovLAogCQkJCUY1NUIzRDlDMTI1MUYxMkQwMDNFRjI2OSAvKiBSZXNldElucHV0VHlwZS5oICov
LAogCQkJCTU4MjRBQkEwMUFFODExMTYwMDkwNzRCNyAvKiBSdWJ5RWxlbWVudC5jcHAgKi8sCkBA
IC0yMDI5MSw2ICsyMDI4Myw4IEBACiAJCUIxQUQ0RTc3MTNBMTJBNzIwMDg0NkIyNyAvKiB0cmFj
ayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNDYyMzNF
RUMxQkEwRjE3QTAwMEVCRUJCIC8qIEF0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgKi8sCisJCQkJ
NDYyMzNFRUQxQkEwRjE3QTAwMEVCRUJCIC8qIEF0dHJpYnV0ZURPTVRva2VuTGlzdC5oICovLAog
CQkJCUJFODhFMENDMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmNwcCAqLywKIAkJCQlC
RTg4RTBDRDE3MTVEMkEyMDA2NThEOTggLyogQXVkaW9UcmFjay5oICovLAogCQkJCUJFODhFMENF
MTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRpb1RyYWNrLmlkbCAqLywKQEAgLTI0MjAxLDcgKzI0MTk1
LDYgQEAKIAkJCQlBODE4NzIyMDA5NzdEM0MwMDA1ODI2RDkgLyogQ2hpbGROb2RlTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTREODIzNTIwQUY5MkE3OTAwMDRGMDU3IC8qIENocm9tZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTREODI0MDgwQUY5M0FFQjAwMDRGMDU3IC8qIENocm9tZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNEFDQkMwQkYxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNz
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENs
aWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAv
KiBDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNDAwQTQ0RUZDNzAw
Rjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MzMzLDYgKzI2
MzI2LDcgQEAKIAkJCQk5NzA1OTk3ODEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3MDU5OTdBMTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lD
aGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDQ1QTk1NzE3NUQ0MTRDMDBDMjFFQzggLyog
UG9seWdvblNoYXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjIzM0VFRTFCQTBGMTg3MDAwRUJF
QkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTc0RTIw
QTEwQTFGNDRGMDBGOTVFNkYgLyogUG9wU3RhdGVFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDY2OEUxOEIwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQUJDMTI4NzcwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjM5NSw3ICsyNjM4OSw2IEBACiAJCQkJNkNEREU4RDAxNzcwQkIyMjAwMTZF
MDcyIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZCOTk5OEYx
ODAzQUU3MjAwRDAxMTIxIC8qIFJlZ2lzdGVyQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NTAzMUI0QzBBNDRFRkM3MDBGOTkyRTAgLyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCUIyRjc4Q0ZFMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDREZDMzYwNjE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29t
bWFuZExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUwMTA5OUU2NDkyMDA1NkU1
ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDZD
MEQ4RjBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODAwMCw3ICsyNzk5Myw2IEBACiAJCQkJQTgxODcyMjUwOTc3RDNDMDAwNTgyNkQ5
IC8qIENoaWxkTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTREODIzOEIwQUY5MkRG
NjAwMDRGMDU3IC8qIENocm9tZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBQkFGMjIwODBDMDNC
MUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNEFDQkMwQkUx
MjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Mw
NjU3RDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0MwNjU4MDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODUwMzFCM0YwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjg4NzUsNiArMjg4NjcsNyBAQAogCQkJCUIyNzUzNTYwMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludENHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUz
NTdDMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUIyNzUzNTczMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTQ2MjMzRUVGMUJBMEYxOEIwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NjEwQjA1MzgxNDAwMkNFNjRGIC8qIEludFJlY3RD
Ry5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU3RDBCMDUzODE0MDAyQ0U2NEYgLyogSW50
UmVjdE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJENDZGMDUwMTdCOTZGRDIwMDU2NDdGMCAv
KiBJbnRTaXplLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk5MjgsNyArMjk5MjEsNiBAQAogCQkJ
CUZENDVBOTVBMTc1RDQxNzEwMEMyMUVDOCAvKiBSZWN0YW5nbGVTaGFwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0FCNDE4MTEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1MDMxQjRCMEE0NEVGQzcwMEY5OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCMkY3OENGRDE5RjJGMDJEMDA0OTY5NkMg
LyogUmVsTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREZDMzYwNTE4Q0E2MUMyMDAyNkU1
NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERkMz
NjA3MThDQTY5NkMwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5MzMwOUUwMDA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVy
dHlDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDY3
NTAwMGE1NGE3MDgyOWMwZDExMTJkOThiZjg5YmNhY2RkN2MzOWMuLjFkZmJkMjYyZTBhNWRlY2Fm
ZDliM2E4M2QzNjQ0YmQxYWNjNjI1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEzNDcs
OCArMTM0NywxMCBAQCB2b2lkIEVsZW1lbnQ6OmNsYXNzQXR0cmlidXRlQ2hhbmdlZChjb25zdCBB
dG9taWNTdHJpbmcmIG5ld0NsYXNzU3RyaW5nKQogICAgICAgICBlbGVtZW50RGF0YSgpLT5jbGVh
ckNsYXNzKCk7CiAgICAgfQogCi0gICAgaWYgKGhhc1JhcmVEYXRhKCkpCi0gICAgICAgIGVsZW1l
bnRSYXJlRGF0YSgpLT5jbGVhckNsYXNzTGlzdFZhbHVlRm9yUXVpcmtzTW9kZSgpOworICAgIGlm
IChoYXNSYXJlRGF0YSgpKSB7CisgICAgICAgIGlmIChhdXRvKiBjbGFzc0xpc3QgPSBlbGVtZW50
UmFyZURhdGEoKS0+Y2xhc3NMaXN0KCkpCisgICAgICAgICAgICBjbGFzc0xpc3QtPmF0dHJpYnV0
ZVZhbHVlQ2hhbmdlZChuZXdDbGFzc1N0cmluZyk7CisgICAgfQogCiAgICAgaWYgKHNob3VsZElu
dmFsaWRhdGVTdHlsZSkKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwpAQCAtMTUxNiw5
ICsxNTE4LDYgQEAgTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBFbGVtZW50Ojpp
bnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW8KICAgICBpZiAoIWluc2VydGlvblBv
aW50LmlzSW5UcmVlU2NvcGUoKSkKICAgICAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7CiAKLSAg
ICBpZiAoaGFzUmFyZURhdGEoKSkKLSAgICAgICAgZWxlbWVudFJhcmVEYXRhKCktPmNsZWFyQ2xh
c3NMaXN0VmFsdWVGb3JRdWlya3NNb2RlKCk7Ci0KICAgICBUcmVlU2NvcGUqIG5ld1Njb3BlID0g
Jmluc2VydGlvblBvaW50LnRyZWVTY29wZSgpOwogICAgIEhUTUxEb2N1bWVudCogbmV3RG9jdW1l
bnQgPSAhd2FzSW5Eb2N1bWVudCAmJiBpbkRvY3VtZW50KCkgJiYgaXM8SFRNTERvY3VtZW50Pihu
ZXdTY29wZS0+ZG9jdW1lbnRTY29wZSgpKSA/ICZkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KG5ld1Nj
b3BlLT5kb2N1bWVudFNjb3BlKCkpIDogbnVsbHB0cjsKICAgICBpZiAobmV3U2NvcGUgIT0gJnRy
ZWVTY29wZSgpKQpAQCAtMjY1NSw3ICsyNjU0LDcgQEAgRE9NVG9rZW5MaXN0JiBFbGVtZW50Ojpj
bGFzc0xpc3QoKQogewogICAgIEVsZW1lbnRSYXJlRGF0YSYgZGF0YSA9IGVuc3VyZUVsZW1lbnRS
YXJlRGF0YSgpOwogICAgIGlmICghZGF0YS5jbGFzc0xpc3QoKSkKLSAgICAgICAgZGF0YS5zZXRD
bGFzc0xpc3Qoc3RkOjptYWtlX3VuaXF1ZTxDbGFzc0xpc3Q+KCp0aGlzKSk7CisgICAgICAgIGRh
dGEuc2V0Q2xhc3NMaXN0KHN0ZDo6bWFrZV91bmlxdWU8QXR0cmlidXRlRE9NVG9rZW5MaXN0Pigq
dGhpcywgSFRNTE5hbWVzOjpjbGFzc0F0dHIpKTsKICAgICByZXR1cm4gKmRhdGEuY2xhc3NMaXN0
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCAzMWM4M2RlNjEz
MzIyNTliYzdiMzVhNjAzNDhmYmZiODAwZWEwMjU4Li41OTgxY2Y0YWY2NDQ1OTFmZGI4ZDQ0ZjQ5
NzkwNzc5YmJiYTFkOGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJh
cmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC0y
Miw3ICsyMiw3IEBACiAjaWZuZGVmIEVsZW1lbnRSYXJlRGF0YV9oCiAjZGVmaW5lIEVsZW1lbnRS
YXJlRGF0YV9oCiAKLSNpbmNsdWRlICJDbGFzc0xpc3QuaCIKKyNpbmNsdWRlICJBdHRyaWJ1dGVE
T01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJEYXRhc2V0RE9NU3RyaW5nTWFwLmgiCiAjaW5jbHVk
ZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCkBAIC05MiwxNCAr
OTIsOCBAQCBwdWJsaWM6CiAgICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUoKSBjb25zdCB7
IHJldHVybiBtX2NvbXB1dGVkU3R5bGUuZ2V0KCk7IH0KICAgICB2b2lkIHNldENvbXB1dGVkU3R5
bGUoUmVmPFJlbmRlclN0eWxlPiYmIGNvbXB1dGVkU3R5bGUpIHsgbV9jb21wdXRlZFN0eWxlID0g
V1RGOjptb3ZlKGNvbXB1dGVkU3R5bGUpOyB9CiAKLSAgICBDbGFzc0xpc3QqIGNsYXNzTGlzdCgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NMaXN0LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRDbGFzc0xp
c3Qoc3RkOjp1bmlxdWVfcHRyPENsYXNzTGlzdD4gY2xhc3NMaXN0KSB7IG1fY2xhc3NMaXN0ID0g
V1RGOjptb3ZlKGNsYXNzTGlzdCk7IH0KLSAgICB2b2lkIGNsZWFyQ2xhc3NMaXN0VmFsdWVGb3JR
dWlya3NNb2RlKCkKLSAgICB7Ci0gICAgICAgIGlmICghbV9jbGFzc0xpc3QpCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIG1fY2xhc3NMaXN0LT5jbGVhclZhbHVlRm9yUXVpcmtzTW9kZSgp
OwotICAgIH0KKyAgICBBdHRyaWJ1dGVET01Ub2tlbkxpc3QqIGNsYXNzTGlzdCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xhc3NMaXN0LmdldCgpOyB9CisgICAgdm9pZCBzZXRDbGFzc0xpc3Qoc3RkOjp1
bmlxdWVfcHRyPEF0dHJpYnV0ZURPTVRva2VuTGlzdD4gY2xhc3NMaXN0KSB7IG1fY2xhc3NMaXN0
ID0gV1RGOjptb3ZlKGNsYXNzTGlzdCk7IH0KIAogICAgIERhdGFzZXRET01TdHJpbmdNYXAqIGRh
dGFzZXQoKSBjb25zdCB7IHJldHVybiBtX2RhdGFzZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldERh
dGFzZXQoc3RkOjp1bmlxdWVfcHRyPERhdGFzZXRET01TdHJpbmdNYXA+IGRhdGFzZXQpIHsgbV9k
YXRhc2V0ID0gV1RGOjptb3ZlKGRhdGFzZXQpOyB9CkBAIC0xNDAsNyArMTM0LDcgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY29tcHV0ZWRTdHlsZTsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEYXRhc2V0RE9NU3RyaW5nTWFwPiBtX2RhdGFzZXQ7Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPENsYXNzTGlzdD4gbV9jbGFzc0xpc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPEF0dHJp
YnV0ZURPTVRva2VuTGlzdD4gbV9jbGFzc0xpc3Q7CiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IG1f
c2hhZG93Um9vdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0
ZU1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tl
bkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg4ZWM2ZjQ2NjRlZDM3NWU4NTA0MTk1NTlmMzUxZTcyZDcwYWYwNTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlz
dC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCIKKworI2luY2x1ZGUgPHd0Zi9UZW1w
b3JhcnlDaGFuZ2UuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitBdHRyaWJ1dGVET01Ub2tl
bkxpc3Q6OkF0dHJpYnV0ZURPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCisgICAg
LCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmlidXRlTmFtZSkKK3sKKyAgICBzZXRWYWx1ZShtX2VsZW1l
bnQuZ2V0QXR0cmlidXRlKG1fYXR0cmlidXRlTmFtZSkpOworfQorCit2b2lkIEF0dHJpYnV0ZURP
TVRva2VuTGlzdDo6YXR0cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3
VmFsdWUpCit7CisgICAgLy8gRG8gbm90IHJlc2V0IHRoZSBET01Ub2tlbkxpc3QgdmFsdWUgaWYg
dGhlIGF0dHJpYnV0ZSB2YWx1ZSB3YXMgY2hhbmdlZCBieSB1cy4KKyAgICBpZiAobV9pc1VwZGF0
aW5nQXR0cmlidXRlVmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAgIERPTVRva2VuTGlzdDo6
c2V0VmFsdWUobmV3VmFsdWUpOworfQorCit2b2lkIEF0dHJpYnV0ZURPTVRva2VuTGlzdDo6dXBk
YXRlQWZ0ZXJUb2tlbkNoYW5nZSgpCit7CisgICAgRE9NVG9rZW5MaXN0Ojp1cGRhdGVBZnRlclRv
a2VuQ2hhbmdlKCk7CisKKyAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gaW5BdHRyaWJ1dGVVcGRh
dGUobV9pc1VwZGF0aW5nQXR0cmlidXRlVmFsdWUsIHRydWUpOworICAgIG1fZWxlbWVudC5zZXRB
dHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1lLCB2YWx1ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9BdHRyaWJ1dGVET01Ub2tl
bkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmQ5NzJlMzk3MWM4NDhkMGExNzJiNzEwYWJhZGYyZjVlZGM3OTBlYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmgK
QEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQXR0cmlidXRlRE9NVG9rZW5M
aXN0X2gKKyNkZWZpbmUgQXR0cmlidXRlRE9NVG9rZW5MaXN0X2gKKworI2luY2x1ZGUgIkRPTVRv
a2VuTGlzdC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgZmluYWwgOiBwdWJsaWMgRE9NVG9rZW5MaXN0
IHsKK3B1YmxpYzoKKyAgICBBdHRyaWJ1dGVET01Ub2tlbkxpc3QoRWxlbWVudCYsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpOworICAgIHZvaWQgYXR0cmlidXRlVmFsdWVDaGFu
Z2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOworCisgICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJy
aWRlIHsgbV9lbGVtZW50LnJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJp
ZGUgeyBtX2VsZW1lbnQuZGVyZWYoKTsgfQorCisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gJm1fZWxlbWVudDsgfQorCitwcml2YXRlOgorICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVBZnRlclRva2VuQ2hhbmdlKCkgb3ZlcnJpZGU7CisKKyAgICBF
bGVtZW50JiBtX2VsZW1lbnQ7CisgICAgY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSBtX2F0
dHJpYnV0ZU5hbWU7CisgICAgYm9vbCBtX2lzVXBkYXRpbmdBdHRyaWJ1dGVWYWx1ZSB7IGZhbHNl
IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBBdHRyaWJ1dGVE
T01Ub2tlbkxpc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3ZTMzMmQ0YjdlNWIxZWI1MThhOGVmOGE3ZjRlNGM0MTE3NmU3YjE2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ2xhc3NMaXN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCi0K
LSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgQ2xhc3NM
aXN0OjpyZWYoKQotewotICAgIG1fZWxlbWVudC5yZWYoKTsKLX0KLQotdm9pZCBDbGFzc0xpc3Q6
OmRlcmVmKCkKLXsKLSAgICBtX2VsZW1lbnQuZGVyZWYoKTsKLX0KLQotdW5zaWduZWQgQ2xhc3NM
aXN0OjpsZW5ndGgoKSBjb25zdAotewotICAgIHJldHVybiBtX2VsZW1lbnQuaGFzQ2xhc3MoKSA/
IGNsYXNzTmFtZXMoKS5zaXplKCkgOiAwOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcgQ2xhc3NM
aXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotewotICAgIGlmIChpbmRleCA+PSBsZW5n
dGgoKSkKLSAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygpOwotICAgIHJldHVybiBjbGFzc05h
bWVzKClbaW5kZXhdOwotfQotCi1FbGVtZW50KiBDbGFzc0xpc3Q6OmVsZW1lbnQoKSBjb25zdAot
ewotICAgIHJldHVybiAmbV9lbGVtZW50OwotfQotCi1ib29sIENsYXNzTGlzdDo6Y29udGFpbnNJ
bnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKSBjb25zdAotewotICAgIHJldHVybiBt
X2VsZW1lbnQuaGFzQ2xhc3MoKSAmJiBjbGFzc05hbWVzKCkuY29udGFpbnModG9rZW4pOwotfQot
Ci1BdG9taWNTdHJpbmcgQ2xhc3NMaXN0Ojp2YWx1ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
ZWxlbWVudC5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpjbGFzc0F0dHIpOwotfQotCi12b2lkIENs
YXNzTGlzdDo6c2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBtX2Vs
ZW1lbnQuc2V0QXR0cmlidXRlKEhUTUxOYW1lczo6Y2xhc3NBdHRyLCB2YWx1ZSk7Ci19Ci0KLWNv
bnN0IFNwYWNlU3BsaXRTdHJpbmcmIENsYXNzTGlzdDo6Y2xhc3NOYW1lcygpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKG1fZWxlbWVudC5oYXNDbGFzcygpKTsKLSAgICBpZiAobV9lbGVtZW50LmRvY3Vt
ZW50KCkuaW5RdWlya3NNb2RlKCkpIHsKLSAgICAgICAgaWYgKG1fY2xhc3NOYW1lc0ZvclF1aXJr
c01vZGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5z
ZXQodmFsdWUoKSwgZmFsc2UpOwotICAgICAgICByZXR1cm4gbV9jbGFzc05hbWVzRm9yUXVpcmtz
TW9kZTsKLSAgICB9Ci0gICAgcmV0dXJuIG1fZWxlbWVudC5lbGVtZW50RGF0YSgpLT5jbGFzc05h
bWVzKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWFhNGM3YzMzZWU1ODc4ZDliMmQzZTdh
ZDVlMzVkMDY4NzJiM2RlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmgKKysrIC9kZXYvbnVsbApAQCAt
MSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDbGFzc0xpc3RfaAotI2RlZmluZSBD
bGFzc0xpc3RfaAotCi0jaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCi0jaW5jbHVkZSAiU3BhY2VT
cGxpdFN0cmluZy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEVsZW1lbnQ7Ci0K
LWNsYXNzIENsYXNzTGlzdCBmaW5hbCA6IHB1YmxpYyBET01Ub2tlbkxpc3QgewotcHVibGljOgot
ICAgIENsYXNzTGlzdChFbGVtZW50JiBlbGVtZW50KQotICAgICAgICA6IG1fZWxlbWVudChlbGVt
ZW50KQotICAgIHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGU7Ci0KLSAgICB2aXJ0dWFsIHVuc2lnbmVk
IGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
IGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCBFbGVt
ZW50KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGNsZWFyVmFsdWVGb3JR
dWlya3NNb2RlKCkgeyBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLmNsZWFyKCk7IH0KLQotcHJp
dmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJp
bmcmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyB2YWx1ZSgpIGNv
bnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJp
bmcmKSBvdmVycmlkZTsKLQotICAgIGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIGNsYXNzTmFtZXMo
KSBjb25zdDsKLQotICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKLSAgICBtdXRhYmxlIFNwYWNlU3Bs
aXRTdHJpbmcgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIENsYXNzTGlzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCmluZGV4IDNmM2IwMTFhZjhmNWQ4MTA4OWJlNTAxZWVm
MjU5NTQzZTNjZjg1MWUuLjQ1ZDNiMzk1ZTVmMTJiNjk3ZTU5ZDNjOGQ5NmI4Y2FjNzgwMDFkZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDMy
ICszOCw0IEBAIHZvaWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmRlcmVmKCkKICAgICBSZWZDb3Vu
dGVkPERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6ZGVyZWYoKTsKIH0KIAotdW5zaWduZWQgRE9NU2V0
dGFibGVUb2tlbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdG9rZW5zLnNp
emUoKTsKLX0KLQotY29uc3QgQXRvbWljU3RyaW5nIERPTVNldHRhYmxlVG9rZW5MaXN0OjppdGVt
KHVuc2lnbmVkIGluZGV4KSBjb25zdAotewotICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKLSAg
ICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygpOwotICAgIHJldHVybiBtX3Rva2Vuc1tpbmRleF07
Ci19Ci0KLWJvb2wgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNvbnRhaW5zSW50ZXJuYWwoY29uc3Qg
QXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKLXsKLSAgICByZXR1cm4gbV90b2tlbnMuY29udGFp
bnModG9rZW4pOwotfQotCi1BdG9taWNTdHJpbmcgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OnZhbHVl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV92YWx1ZTsKLX0KLQotdm9pZCBET01TZXR0YWJsZVRv
a2VuTGlzdDo6c2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBtX3Zh
bHVlID0gdmFsdWU7Ci0gICAgbV90b2tlbnMuc2V0KHZhbHVlLCBmYWxzZSk7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0
dGFibGVUb2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxp
c3QuaAppbmRleCA1NzdkMWY4MTQzZDk5MmQ4M2E1ZTQyNjQ3NjhhMGExNzY1MmIzYmFlLi4wNTYw
OTQwOGJjZmUxYjk5MTY2Y2UxNTUwMDJhMmE0YmVkYTczN2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDE3ICs0Niw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcmVmKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0
IG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCBBdG9taWNTdHJpbmcgdmFsdWUoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJikgb3Zl
cnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGNvbnRhaW5zSW50ZXJuYWwoY29u
c3QgQXRvbWljU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBBdG9taWNTdHJpbmcgbV92
YWx1ZTsKLSAgICBTcGFjZVNwbGl0U3RyaW5nIG1fdG9rZW5zOworICAgIC8vIE1ha2UgcHVibGlj
LgorICAgIHVzaW5nIERPTVRva2VuTGlzdDo6dmFsdWU7CisgICAgdXNpbmcgRE9NVG9rZW5MaXN0
OjpzZXRWYWx1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NVG9rZW5MaXN0LmNwcAppbmRleCBkYmQ0ZDI2MzkzYjlhNDJjNzQ3NDk0ZmE2NjhjZTA3Njk4
YTQ1ZTY1Li45MjRiYzRhNTg3MTllYmM1ZGVkMWUzMmM5MDFjODBhMDQyODQzODM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMTEgKzI4LDEyIEBACiAKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlNw
YWNlU3BsaXRTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBET01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW4o
Y29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIERPTVRv
a2VuTGlzdDo6dmFsaWRhdGVUb2tlbihjb25zdCBTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAodG9rZW4uaXNFbXB0eSgpKSB7CiAgICAgICAgIGVjID0gU1lOVEFY
X0VSUjsKQEAgLTUxLDExICs1MywxMCBAQCBib29sIERPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tl
bihjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKIAogYm9vbCBE
T01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdG9rZW5z
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbnNbaV0sIGVj
KSkKKyAgICBmb3IgKGF1dG8mIHRva2VuIDogdG9rZW5zKSB7CisgICAgICAgIGlmICghdmFsaWRh
dGVUb2tlbih0b2tlbiwgZWMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLQog
ICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02MywzNyArNjQsMjcgQEAgYm9vbCBET01Ub2tlbkxp
c3Q6OmNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAogewogICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGNvbnRhaW5zSW50ZXJuYWwodG9rZW4pOwotfQogCi12
b2lkIERPTVRva2VuTGlzdDo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIFZlY3RvcjxTdHJpbmc+IHRva2VuczsKLSAgICB0b2tlbnMuYXBw
ZW5kKHRva2VuLnN0cmluZygpKTsKLSAgICBhZGQodG9rZW5zLCBlYyk7CisgICAgcmV0dXJuIG1f
dG9rZW5zLmNvbnRhaW5zKHRva2VuKTsKIH0KIAogdm9pZCBET01Ub2tlbkxpc3Q6OmFkZChjb25z
dCBWZWN0b3I8U3RyaW5nPiYgdG9rZW5zLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBWZWN0
b3I8U3RyaW5nPiBmaWx0ZXJlZFRva2VuczsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRv
a2Vucy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW5zW2ld
LCBlYykpCisgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gdW5pcXVlVG9rZW5zOworICAgIHVuaXF1
ZVRva2Vucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHRva2Vucy5zaXplKCkpOworCisgICAgZm9y
IChhdXRvJiB0b2tlbiA6IHRva2VucykgeworICAgICAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9r
ZW4sIGVjKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKCFjb250YWluc0ludGVy
bmFsKHRva2Vuc1tpXSkgJiYgIWZpbHRlcmVkVG9rZW5zLmNvbnRhaW5zKHRva2Vuc1tpXSkpCi0g
ICAgICAgICAgICBmaWx0ZXJlZFRva2Vucy5hcHBlbmQodG9rZW5zW2ldKTsKKyAgICAgICAgaWYg
KCFtX3Rva2Vucy5jb250YWlucyh0b2tlbikgJiYgIXVuaXF1ZVRva2Vucy5jb250YWlucyh0b2tl
bikpCisgICAgICAgICAgICB1bmlxdWVUb2tlbnMudW5jaGVja2VkQXBwZW5kKHRva2VuKTsKICAg
ICB9CiAKLSAgICBpZiAoZmlsdGVyZWRUb2tlbnMuaXNFbXB0eSgpKQorICAgIGlmICh1bmlxdWVU
b2tlbnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRWYWx1ZShhZGRUb2tl
bnModmFsdWUoKSwgZmlsdGVyZWRUb2tlbnMpKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJl
bW92ZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICBWZWN0b3I8U3RyaW5nPiB0b2tlbnM7Ci0gICAgdG9rZW5zLmFwcGVuZCh0b2tlbi5zdHJpbmco
KSk7Ci0gICAgcmVtb3ZlKHRva2VucywgZWMpOworICAgIG1fdG9rZW5zLmFwcGVuZFZlY3Rvcih1
bmlxdWVUb2tlbnMpOworICAgIHVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKTsKIH0KIAogdm9pZCBE
T01Ub2tlbkxpc3Q6OnJlbW92ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9rZW5zLCBFeGNlcHRp
b25Db2RlJiBlYykKQEAgLTEwMSwxMzcgKzkyLDgwIEBAIHZvaWQgRE9NVG9rZW5MaXN0OjpyZW1v
dmUoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRva2VucywgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
aWYgKCF2YWxpZGF0ZVRva2Vucyh0b2tlbnMsIGVjKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Ly8gQ2hlY2sgdXNpbmcgY29udGFpbnNJbnRlcm5hbCBmaXJzdCBzaW5jZSBpdCBpcyBhIGxvdCBm
YXN0ZXIgdGhhbiBnb2luZwotICAgIC8vIHRocm91Z2ggdGhlIHN0cmluZyBjaGFyYWN0ZXIgYnkg
Y2hhcmFjdGVyLgotICAgIGJvb2wgZm91bmQgPSBmYWxzZTsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRva2Vucy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAoY29udGFpbnNJbnRlcm5h
bCh0b2tlbnNbaV0pKSB7Ci0gICAgICAgICAgICBmb3VuZCA9IHRydWU7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQorICAgIGJvb2wgZGlkUmVtb3ZlVG9rZW5zID0gZmFsc2U7CisgICAg
Zm9yIChhdXRvJiB0b2tlbiA6IHRva2VucykgeworICAgICAgICBpZiAobV90b2tlbnMucmVtb3Zl
Rmlyc3QodG9rZW4pKQorICAgICAgICAgICAgZGlkUmVtb3ZlVG9rZW5zID0gdHJ1ZTsKICAgICB9
CiAKLSAgICBpZiAoZm91bmQpCi0gICAgICAgIHNldFZhbHVlKHJlbW92ZVRva2Vucyh2YWx1ZSgp
LCB0b2tlbnMpKTsKKyAgICBpZiAoZGlkUmVtb3ZlVG9rZW5zKQorICAgICAgICB1cGRhdGVBZnRl
clRva2VuQ2hhbmdlKCk7CiB9CiAKLWJvb2wgRE9NVG9rZW5MaXN0Ojp0b2dnbGUoY29uc3QgQXRv
bWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIERPTVRva2VuTGlzdDo6
dG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIE9wdGlvbmFsPGJvb2w+IGZvcmNlLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNvbnRhaW5zSW50ZXJuYWwodG9rZW4p
KSB7Ci0gICAgICAgIHJlbW92ZUludGVybmFsKHRva2VuKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmIChtX3Rva2Vucy5jb250YWlucyh0b2tlbikpIHsKKyAgICAgICAgaWYgKCFmb3Jj
ZS52YWx1ZU9yKGZhbHNlKSkgeworICAgICAgICAgICAgbV90b2tlbnMucmVtb3ZlRmlyc3QodG9r
ZW4pOworICAgICAgICAgICAgdXBkYXRlQWZ0ZXJUb2tlbkNoYW5nZSgpOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAg
ICBhZGRJbnRlcm5hbCh0b2tlbik7Ci0gICAgcmV0dXJuIHRydWU7Ci19CiAKLWJvb2wgRE9NVG9r
ZW5MaXN0Ojp0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgYm9vbCBmb3JjZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisg
ICAgaWYgKGZvcmNlICYmICFmb3JjZS52YWx1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBpZiAoZm9yY2UpCi0gICAgICAgIGFkZEludGVybmFsKHRva2VuKTsKLSAgICBlbHNlCi0g
ICAgICAgIHJlbW92ZUludGVybmFsKHRva2VuKTsKLQotICAgIHJldHVybiBmb3JjZTsKLX0KLQot
dm9pZCBET01Ub2tlbkxpc3Q6OmFkZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4p
Ci17Ci0gICAgaWYgKCFjb250YWluc0ludGVybmFsKHRva2VuKSkKLSAgICAgICAgc2V0VmFsdWUo
YWRkVG9rZW4odmFsdWUoKSwgdG9rZW4pKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92
ZUludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCi17Ci0gICAgLy8gQ2hlY2sgdXNp
bmcgY29udGFpbnMgZmlyc3Qgc2luY2UgaXQgdXNlcyBBdG9taWNTdHJpbmcgY29tcGFyaXNvbnMg
aW5zdGVhZAotICAgIC8vIG9mIGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgdGVzdGluZy4KLSAgICBp
ZiAoIWNvbnRhaW5zSW50ZXJuYWwodG9rZW4pKQotICAgICAgICByZXR1cm47Ci0gICAgc2V0VmFs
dWUocmVtb3ZlVG9rZW4odmFsdWUoKSwgdG9rZW4pKTsKLX0KLQotU3RyaW5nIERPTVRva2VuTGlz
dDo6YWRkVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiBpbnB1dCwgY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbikKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiB0b2tlbnM7Ci0gICAgdG9rZW5zLmFwcGVu
ZCh0b2tlbi5zdHJpbmcoKSk7Ci0gICAgcmV0dXJuIGFkZFRva2VucyhpbnB1dCwgdG9rZW5zKTsK
KyAgICBtX3Rva2Vucy5hcHBlbmQodG9rZW4pOworICAgIHVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2Uo
KTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotU3RyaW5nIERPTVRva2VuTGlzdDo6YWRkVG9rZW5z
KGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMp
Citjb25zdCBBdG9taWNTdHJpbmcmIERPTVRva2VuTGlzdDo6dmFsdWUoKSBjb25zdAogewotICAg
IGJvb2wgbmVlZHNTcGFjZSA9IGZhbHNlOwotCi0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwot
ICAgIGlmICghaW5wdXQuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGlucHV0
KTsKLSAgICAgICAgbmVlZHNTcGFjZSA9ICFpc0hUTUxTcGFjZShpbnB1dFtpbnB1dC5sZW5ndGgo
KSAtIDFdKTsKLSAgICB9Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRva2Vucy5zaXpl
KCk7ICsraSkgewotICAgICAgICBpZiAobmVlZHNTcGFjZSkKLSAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRva2Vuc1tpXSk7Ci0gICAgICAg
IG5lZWRzU3BhY2UgPSB0cnVlOworICAgIGlmIChtX2NhY2hlZFZhbHVlLmlzTnVsbCgpKSB7Cisg
ICAgICAgIC8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1vcmRlcmVkLXNl
dC1zZXJpYWxpemVyCisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX3Rva2Vucy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQobV90b2tlbnNbaV0pOworICAgICAgICAgICAgaWYgKGkgIT0gbV90b2tl
bnMuc2l6ZSgpIC0gMSkKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAg
ICAgICB9CisgICAgICAgIG1fY2FjaGVkVmFsdWUgPSBidWlsZGVyLnRvQXRvbWljU3RyaW5nKCk7
CisgICAgICAgIEFTU0VSVCghbV9jYWNoZWRWYWx1ZS5pc051bGwoKSk7CiAgICAgfQotCi0gICAg
cmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICByZXR1cm4gbV9jYWNoZWRWYWx1ZTsKIH0K
IAotU3RyaW5nIERPTVRva2VuTGlzdDo6cmVtb3ZlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiBp
bnB1dCwgY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikKK3ZvaWQgRE9NVG9rZW5MaXN0OjpzZXRW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIFZlY3RvcjxTdHJpbmc+IHRva2VuczsK
LSAgICB0b2tlbnMuYXBwZW5kKHRva2VuLnN0cmluZygpKTsKLSAgICByZXR1cm4gcmVtb3ZlVG9r
ZW5zKGlucHV0LCB0b2tlbnMpOwotfQorICAgIC8vIENsZWFyIHRva2VucyBidXQgbm90IGNhcGFj
aXR5LgorICAgIG1fdG9rZW5zLnNocmluaygwKTsKKworICAgIC8vIGh0dHBzOi8vZG9tLnNwZWMu
d2hhdHdnLm9yZy8jb3JkZXJlZCUyMHNldHMKKyAgICBmb3IgKHVuc2lnbmVkIHN0YXJ0ID0gMDsg
OyApIHsKKyAgICAgICAgd2hpbGUgKHN0YXJ0IDwgdmFsdWUubGVuZ3RoKCkgJiYgaXNIVE1MU3Bh
Y2UodmFsdWVbc3RhcnRdKSkKKyAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgIGlmIChzdGFy
dCA+PSB2YWx1ZS5sZW5ndGgoKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB1bnNpZ25l
ZCBlbmQgPSBzdGFydCArIDE7CisgICAgICAgIHdoaWxlIChlbmQgPCB2YWx1ZS5sZW5ndGgoKSAm
JiAhaXNIVE1MU3BhY2UodmFsdWVbZW5kXSkpCisgICAgICAgICAgICArK2VuZDsKIAotU3RyaW5n
IERPTVRva2VuTGlzdDo6cmVtb3ZlVG9rZW5zKGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMpCi17Ci0gICAgLy8gQWxnb3JpdGhtIGRlZmluZWQg
YXQgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0
aXBhZ2UvY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNyZW1vdmUtYS10b2tlbi1mcm9tLWEtc3Ry
aW5nCi0gICAgLy8gTmV3IHNwZWMgaXMgYXQgaHR0cDovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI3Jl
bW92ZS1hLXRva2VuLWZyb20tYS1zdHJpbmcKLQotICAgIHVuc2lnbmVkIGlucHV0TGVuZ3RoID0g
aW5wdXQubGVuZ3RoKCk7Ci0gICAgU3RyaW5nQnVpbGRlciBvdXRwdXQ7IC8vIDMKLSAgICBvdXRw
dXQucmVzZXJ2ZUNhcGFjaXR5KGlucHV0TGVuZ3RoKTsKLSAgICB1bnNpZ25lZCBwb3NpdGlvbiA9
IDA7IC8vIDQKLQotICAgIC8vIFN0ZXAgNQotICAgIHdoaWxlIChwb3NpdGlvbiA8IGlucHV0TGVu
Z3RoKSB7Ci0gICAgICAgIGlmIChpc0hUTUxTcGFjZShpbnB1dFtwb3NpdGlvbl0pKSB7IC8vIDYK
LSAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoaW5wdXRbcG9zaXRpb24rK10pOyAvLyA2LjEsIDYu
MgotICAgICAgICAgICAgY29udGludWU7IC8vIDYuMwotICAgICAgICB9CisgICAgICAgIFN0cmlu
ZyB0b2tlbiA9IHZhbHVlLnN1YnN0cmluZyhzdGFydCwgZW5kIC0gc3RhcnQpOworCisgICAgICAg
IC8vIFdlIGRvIGEgc2ltcGxlIGxpbmVhciBzZWFyY2ggYXMgdGhlcmUgYXJlIHVzdWFsbHkgbm90
IG1hbnkgdG9rZW5zLgorICAgICAgICBpZiAoIW1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKSkKKyAg
ICAgICAgICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbik7CiAKLSAgICAgICAgLy8gU3RlcCA3Ci0g
ICAgICAgIFN0cmluZ0J1aWxkZXIgczsKLSAgICAgICAgd2hpbGUgKHBvc2l0aW9uIDwgaW5wdXRM
ZW5ndGggJiYgaXNOb3RIVE1MU3BhY2UoaW5wdXRbcG9zaXRpb25dKSkKLSAgICAgICAgICAgIHMu
YXBwZW5kKGlucHV0W3Bvc2l0aW9uKytdKTsKLQotICAgICAgICAvLyBTdGVwIDgKLSAgICAgICAg
aWYgKHRva2Vucy5jb250YWlucyhzLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKSkgewotICAg
ICAgICAgICAgLy8gU3RlcCA4LjEKLSAgICAgICAgICAgIHdoaWxlIChwb3NpdGlvbiA8IGlucHV0
TGVuZ3RoICYmIGlzSFRNTFNwYWNlKGlucHV0W3Bvc2l0aW9uXSkpCi0gICAgICAgICAgICAgICAg
Kytwb3NpdGlvbjsKLQotICAgICAgICAgICAgLy8gU3RlcCA4LjIKLSAgICAgICAgICAgIHNpemVf
dCBqID0gb3V0cHV0Lmxlbmd0aCgpOwotICAgICAgICAgICAgd2hpbGUgKGogPiAwICYmIGlzSFRN
TFNwYWNlKG91dHB1dFtqIC0gMV0pKQotICAgICAgICAgICAgICAgIC0tajsKLSAgICAgICAgICAg
IG91dHB1dC5yZXNpemUoaik7Ci0KLSAgICAgICAgICAgIC8vIFN0ZXAgOC4zCi0gICAgICAgICAg
ICBpZiAocG9zaXRpb24gPCBpbnB1dExlbmd0aCAmJiAhb3V0cHV0LmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCcgJyk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAg
ICAgb3V0cHV0LmFwcGVuZChzLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsgLy8gU3RlcCA5
CisgICAgICAgIHN0YXJ0ID0gZW5kICsgMTsKICAgICB9CiAKLSAgICByZXR1cm4gb3V0cHV0LnRv
U3RyaW5nKCk7CisgICAgbV90b2tlbnMuc2hyaW5rVG9GaXQoKTsKKyAgICBtX2NhY2hlZFZhbHVl
ID0gbnVsbEF0b207CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5oCmluZGV4IDdjYTNlZmFlNmQ5YWRkMjNiODYzNGE0YWMxYTA5ZjE4Y2IzOWEw
MDEuLjY5Zjc5ODBkZjdhNGUwNjZiZTZjOTIxZGU5ZjQwYTZkMjRkODVkZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9ET01Ub2tlbkxpc3QuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI1LDggKzI2LDkgQEAKICNpZm5kZWYgRE9NVG9rZW5MaXN0X2gKICNk
ZWZpbmUgRE9NVG9rZW5MaXN0X2gKIAotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5o
PgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0zNyw0MSArMzksMzcgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIGNsYXNzIERP
TVRva2VuTGlzdCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRE9NVG9rZW5MaXN0KTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRE9NVG9rZW5MaXN0KCkgeyB9Ci0g
ICAgdmlydHVhbCB+RE9NVG9rZW5MaXN0KCkge307CisgICAgRE9NVG9rZW5MaXN0KCkgPSBkZWZh
dWx0OworICAgIHZpcnR1YWwgfkRPTVRva2VuTGlzdCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lk
IHJlZigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSA9IDA7CiAKLSAgICB2aXJ0dWFs
IHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCA9IDA7CisgICAgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gbV90b2tlbnMuc2l6ZSgpOyB9CisgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBpbmRleCA8IG1fdG9rZW5z
LnNpemUoKSA/IG1fdG9rZW5zW2luZGV4XSA6IG51bGxBdG9tOyB9CiAKICAgICBib29sIGNvbnRh
aW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lk
IGFkZChjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIGFk
ZChjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBhZGQoY29u
c3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgYWRkKFZlY3RvcjxT
dHJpbmc+e3Rva2VuLnN0cmluZygpfSwgZWMpOyB9CiAgICAgdm9pZCByZW1vdmUoY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmUoY29uc3QgQXRv
bWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGJvb2wgdG9nZ2xlKGNvbnN0IEF0b21p
Y1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBib29sIHRvZ2dsZShjb25zdCBBdG9taWNT
dHJpbmcmLCBib29sIGZvcmNlLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCByZW1vdmUoY29u
c3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmVtb3ZlKFZlY3Rv
cjxTdHJpbmc+e3Rva2VuLnN0cmluZygpfSwgZWMpOyB9CisgICAgYm9vbCB0b2dnbGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIHRvZ2dsZSh0
b2tlbiwgTnVsbG9wdCwgZWMpOyB9CisgICAgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5n
JiwgT3B0aW9uYWw8Ym9vbD4gZm9yY2UsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIEF0b21pY1N0
cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCk7IH0KKyAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIHRvU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKTsgfQogCi0gICAgdmly
dHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwg
RWxlbWVudCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIAogcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIHZhbHVlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmKSA9IDA7CisgICAgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5n
Jik7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKSB7IG1fY2FjaGVk
VmFsdWUgPSBudWxsQXRvbTsgfQogCi0gICAgdm9pZCBhZGRJbnRlcm5hbChjb25zdCBBdG9taWNT
dHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNT
dHJpbmcmKSBjb25zdCA9IDA7Ci0gICAgdm9pZCByZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNT
dHJpbmcmKTsKLQotICAgIHN0YXRpYyBib29sIHZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBib29sIHZhbGlkYXRlVG9rZW4oY29u
c3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHN0YXRpYyBib29sIHZhbGlkYXRlVG9r
ZW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHN0YXRpYyBT
dHJpbmcgYWRkVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgQXRvbWljU3RyaW5nJik7
Ci0gICAgc3RhdGljIFN0cmluZyBhZGRUb2tlbnMoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mKTsKLSAgICBzdGF0aWMgU3RyaW5nIHJlbW92ZVRva2VuKGNvbnN0IEF0
b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwotICAgIHN0YXRpYyBTdHJpbmcgcmVt
b3ZlVG9rZW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisK
KyAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBtX3Rva2VuczsKKyAgICBtdXRhYmxlIEF0b21pY1N0
cmluZyBtX2NhY2hlZFZhbHVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBiNGZmZGIyYjQzNTViZWYz
N2EwMTM3YWU4ZDViZTNkYmNhOTg2Y2YxLi4wNTNlYzQ1YzczZDEzZWNhYWZiYTNlMDk5ZGM1MzNh
MTEzYjc1N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApA
QCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxBbmNo
b3JFbGVtZW50LmgiCiAKKyNpbmNsdWRlICJBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCIKICNpbmNs
dWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCkBAIC0zOSw3ICs0MCw2IEBACiAjaW5jbHVkZSAiTW91c2VFdmVu
dC5oIgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZl
bnQuaCIKLSNpbmNsdWRlICJSZWxMaXN0LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTVkdJbWFnZS5oIgpAQCAtMjY0
LDcgKzI2NCw3IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0CiAgICAgICAgIGlmIChTcGFjZVNw
bGl0U3RyaW5nOjpzcGFjZVNwbGl0U3RyaW5nQ29udGFpbnNWYWx1ZSh2YWx1ZSwgIm5vcmVmZXJy
ZXIiLCB0cnVlKSkKICAgICAgICAgICAgIG1fbGlua1JlbGF0aW9ucyB8PSBSZWxhdGlvbk5vUmVm
ZXJyZXI7CiAgICAgICAgIGlmIChtX3JlbExpc3QpCi0gICAgICAgICAgICBtX3JlbExpc3QtPnVw
ZGF0ZVJlbEF0dHJpYnV0ZSh2YWx1ZSk7CisgICAgICAgICAgICBtX3JlbExpc3QtPmF0dHJpYnV0
ZVZhbHVlQ2hhbmdlZCh2YWx1ZSk7CiAgICAgfQogICAgIGVsc2UKICAgICAgICAgSFRNTEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKQEAgLTMxNiw3ICszMTYsNyBAQCBib29s
IEhUTUxBbmNob3JFbGVtZW50OjpoYXNSZWwodWludDMyX3QgcmVsYXRpb24pIGNvbnN0CiBET01U
b2tlbkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVs
TGlzdCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8UmVsTGlzdD4oKnRo
aXMpOworICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPEF0dHJpYnV0ZURPTVRv
a2VuTGlzdD4oKnRoaXMsIEhUTUxOYW1lczo6cmVsQXR0cik7CiAgICAgcmV0dXJuICptX3JlbExp
c3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA0YjY2
YTAxNDVkNTdiOTdmMDdjOTNmOTRjZDE0MjMwNjUyZWU0MWJjLi5mZDlkOTY2OTBiZjNjODUyZDAy
MGJkODIyNzIzYWIyMjFiY2UwMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5oCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
UmVsTGlzdDsKK2NsYXNzIEF0dHJpYnV0ZURPTVRva2VuTGlzdDsKIAogLy8gTGluayByZWxhdGlv
biBiaXRtYXNrIHZhbHVlcy4KIC8vIEZJWE1FOiBVbmNvbW1lbnQgYXMgdGhlIHZhcmlvdXMgbGlu
ayByZWxhdGlvbnMgYXJlIGltcGxlbWVudGVkLgpAQCAtMTQ1LDcgKzE0NSw3IEBAIHByaXZhdGU6
CiAgICAgdWludDMyX3QgbV9saW5rUmVsYXRpb25zIDogMzA7CiAgICAgbXV0YWJsZSBMaW5rSGFz
aCBtX2NhY2hlZFZpc2l0ZWRMaW5rSGFzaDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWxMaXN0
PiBtX3JlbExpc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPEF0dHJpYnV0ZURPTVRva2VuTGlzdD4g
bV9yZWxMaXN0OwogfTsKIAogaW5saW5lIExpbmtIYXNoIEhUTUxBbmNob3JFbGVtZW50Ojp2aXNp
dGVkTGlua0hhc2goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3Bw
CmluZGV4IDA0MTM5Y2I3MmMwMzFjODU4ZTU4ZjFjZmRlM2NmMTFiOTM5YWRiMGIuLjMzMzQzMmYy
YjRkYjMzMWZjM2NjNmI2MTdhZTM1Nzg1YTYwZTcyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMaW5rRWxlbWVudC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJIVE1MTGlua0Vs
ZW1lbnQuaCIKIAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkF0dHJpYnV0ZURP
TVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCkBA
IC00Niw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1
ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUmVsTGlzdC5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgSFRNTExpbmtF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9taWNTdHJpCiAgICAgaWYgKG5hbWUgPT0gcmVsQXR0cikgewogICAgICAgICBtX3JlbEF0dHJp
YnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUodmFsdWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQot
ICAgICAgICAgICAgbV9yZWxMaXN0LT51cGRhdGVSZWxBdHRyaWJ1dGUodmFsdWUpOworICAgICAg
ICAgICAgbV9yZWxMaXN0LT5hdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgICAgICBw
cm9jZXNzKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00MDMsNyArNDAzLDcgQEAgdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OmRpc3BhdGNoUGVuZGluZ0V2ZW50KExpbmtFdmVudFNlbmRlciog
ZXZlbnRTZW5kZXIpCiBET01Ub2tlbkxpc3QmIEhUTUxMaW5rRWxlbWVudDo6cmVsTGlzdCgpCiB7
CiAgICAgaWYgKCFtX3JlbExpc3QpIAotICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5p
cXVlPFJlbExpc3Q+KCp0aGlzKTsKKyAgICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1
ZTxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFtZXM6OnJlbEF0dHIpOwogICAg
IHJldHVybiAqbV9yZWxMaXN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
aAppbmRleCBhNjY3MzUyZDZjNjg2OTJhZDQzNDAyMTU5NmFkNzg1ZDYxNDU4YTM0Li5iZWIxNzFl
ZTBkYzhmMTdkMDU2YzhlZTNlNDhmYmMyZmQwMDcyY2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmgKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBBdHRyaWJ1dGVET01Ub2tlbkxpc3Q7CiBjbGFzcyBIVE1MTGlua0VsZW1lbnQ7Ci1j
bGFzcyBSZWxMaXN0OwogY2xhc3MgVVJMOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBF
dmVudFNlbmRlcjsKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcml2YXRlOgogCiAgICAgUGVuZGluZ1No
ZWV0VHlwZSBtX3BlbmRpbmdTaGVldFR5cGU7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVsTGlz
dD4gbV9yZWxMaXN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+
IG1fcmVsTGlzdDsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmVsTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JlbExpc3QuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYjNmNGJiNTkyZWY2ZTA0YzYzMDQyYTQ4MzQ4
NzkyNDVkNTQwNGU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVsTGlzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IERoaSBBdXJyYWhtYW4gPGRpb3Jh
aG1hbkByb2NreWJhcnMuY29tPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlJlbExpc3QuaCIKLQotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1SZWxMaXN0OjpSZWxMaXN0KEVsZW1l
bnQmIGVsZW1lbnQpIAotICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCi0gICAgLCBtX3JlbEF0dHJp
YnV0ZVZhbHVlKFNwYWNlU3BsaXRTdHJpbmcoZWxlbWVudC5mYXN0R2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6cmVsQXR0ciksIGZhbHNlKSkKLXsKLX0KLQotdm9pZCBSZWxMaXN0OjpyZWYoKQotewot
ICAgIG1fZWxlbWVudC5yZWYoKTsKLX0KLQotdm9pZCBSZWxMaXN0OjpkZXJlZigpCi17Ci0gICAg
bV9lbGVtZW50LmRlcmVmKCk7Ci19Ci0KLXVuc2lnbmVkIFJlbExpc3Q6Omxlbmd0aCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fcmVsQXR0cmlidXRlVmFsdWUuc2l6ZSgpOwotfQotCi1jb25zdCBB
dG9taWNTdHJpbmcgUmVsTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLXsKLSAgICBp
ZiAoaW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBudWxsQXRvbTsKLSAgICByZXR1
cm4gbV9yZWxBdHRyaWJ1dGVWYWx1ZVtpbmRleF07Ci19Ci0KLUVsZW1lbnQqIFJlbExpc3Q6OmVs
ZW1lbnQoKSBjb25zdAotewotICAgIHJldHVybiAmbV9lbGVtZW50OwotfQotCi12b2lkIFJlbExp
c3Q6OnVwZGF0ZVJlbEF0dHJpYnV0ZShjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQotewotICAg
IG1fcmVsQXR0cmlidXRlVmFsdWUuc2V0KHZhbHVlLCBmYWxzZSk7Ci19Ci0KLWJvb2wgUmVsTGlz
dDo6Y29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKSBjb25zdAotewot
ICAgIHJldHVybiBtX3JlbEF0dHJpYnV0ZVZhbHVlLmNvbnRhaW5zKHRva2VuKTsKLX0KLQotQXRv
bWljU3RyaW5nIFJlbExpc3Q6OnZhbHVlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbGVtZW50
LmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpyZWxBdHRyKTsKLX0KLQotdm9pZCBSZWxMaXN0
OjpzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQotewotICAgIG1fZWxlbWVudC5z
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpyZWxBdHRyLCB2YWx1ZSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SZWxMaXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JlbExpc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTc0M2NjZjVkNTUzMDFlM2M4YTVjNDgyMTYwOTU2M2MwNjNmYzg5OC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JlbExpc3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQgRGhpIEF1cnJhaG1hbiA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+Ci0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIFJlbExpc3RfaAotI2RlZmluZSBSZWxMaXN0X2gKLQotI2luY2x1ZGUg
IkRPTVRva2VuTGlzdC5oIgotI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBFbGVtZW50OwotCi1jbGFzcyBSZWxMaXN0IGZpbmFsIDog
cHVibGljIERPTVRva2VuTGlzdCB7Ci1wdWJsaWM6Ci0gICAgUmVsTGlzdChFbGVtZW50Jik7Ci0g
ICAgdm9pZCB1cGRhdGVSZWxBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJik7Ci0KLXByaXZh
dGU6Ci0gICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRl
eCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWlj
U3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBBdG9taWNTdHJpbmcgdmFsdWUo
KSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgCi0gICAgRWxlbWVudCYgbV9lbGVtZW50OwotICAgIG11
dGFibGUgU3BhY2VTcGxpdFN0cmluZyBtX3JlbEF0dHJpYnV0ZVZhbHVlOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gUmVsTGlzdF9oCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMjAyMThh
MmQyNDU1YzBkYzdjYzcxYWExMGUxOTU1MWI2NTAwMzk2Li42MTBjZGRmNDQ3NTdlNDY4NzZmNGRh
Y2E3ZTVlZDdiYjE0ZDIwMmQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTUtMDktMTAgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBET01Ub2tlbkxpc3QgdXBk
YXRlIHN0ZXBzIGZvciBjbGFzc0xpc3QgZG9uJ3QgZm9sbG93IHRoZSBzcGVjCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg1ODkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyNTQ3NDQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZSAvIHJlYmFzZWxpbmUgZXhpc3RpbmcgdGVzdHMgYXMgb3Vy
IGJlaGF2aW9yIGNoYW5nZWQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFz
cy1saXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFz
cy1saXN0LXF1aXJrcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1l
bnQvc2NyaXB0LXRlc3RzL2NsYXNzLWxpc3QuanM6CisgICAgICAgICogZmFzdC9kb20vSFRNTE91
dHB1dEVsZW1lbnQvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxl
bWVudC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10
ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9yZWwt
bGlzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcmVsLWxpc3QuaHRtbDoKKwog
MjAxNS0wOS0xMCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
V3JpdGUgYSB0ZXN0IHRvIGVuc3VyZSB3ZSBkb24ndCByZWdyZXNzIHByb2Nlc3Npbmcgb2YgdGFz
a3Mgd2hlbiBwYWdlIGRlZmVycyBsb2FkaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCBmMWUxNjI2ZTYxNDFjOWFmODY5ZTZmZGY2ZjYzNGY3YmE0YzViZWVkLi4yMWU1ZjJmZDU2
ZmVhMzcwMjQ5YjJkNWJkMTQ3YmYyMzIyODEzZDQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0wOS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIERPTVRva2VuTGlzdCB1cGRhdGUgc3RlcHMgZm9yIGNsYXNz
TGlzdCBkb24ndCBmb2xsb3cgdGhlIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0ODU4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NDc0
NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVi
YXNlbGluZSBXM0MgdGVzdHMgZm9yIERPTVRva2VuTGlzdCBub3cgdGhhdCBtb3JlIGNoZWNrcyBh
cmUgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbGlzdHMvRE9N
VG9rZW5MaXN0LXN0cmluZ2lmaWVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2xhc3NsaXN0LWV4cGVjdGVkLnR4dDoKKwogMjAx
NS0wOS0wOSAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1QGFwcGxlLmNvbT4KIAogICAgICAgICBEb2N1
bWVudC5jaGFyYWN0ZXJTZXQgc2hvdWxkIHJldHVybiAiVVRGLTgiIGJ5IGRlZmF1bHQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2NsYXNzLWxpc3QtZXhw
ZWN0ZWQudHh0CmluZGV4IGQ4MWVkYWRhNTFiY2JmYWIxMzFlY2Q5YTVkODllZTZmM2U4NzFhYTgu
LjNkYmNmOGQzNzUwOTY2YjIwMjg5YTBiMzlkNDI2YTMyN2RhODhjMjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2NsYXNzLWxpc3QtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2NsYXNzLWxpc3QtZXhwZWN0ZWQu
dHh0CkBAIC03LDcgKzcsNyBAQCBUZXN0cyBmcm9tIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVz
dC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC8KIFBBU1MgU3RyaW5nKGVsZW1lbnQu
Y2xhc3NMaXN0KSBpcyAieCIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDAKIFBB
U1MgZWxlbWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDEKLVBBU1MgZWxlbWVudC5jbGFzc0xpc3Qu
bGVuZ3RoIGlzIDIKK1BBU1MgZWxlbWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDEKIFBBU1MgZWxl
bWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIngi
CiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4IgpAQCAtMTUsNyArMTUsNyBAQCBQQVNTIGVs
ZW1lbnQuY2xhc3NOYW1lIGlzICJ4ICB4IgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieSB4
IgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiIgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBp
cyAiIgotUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiIHkgeSAiCitQQVNTIGVsZW1lbnQuY2xh
c3NOYW1lIGlzICJ5IgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieSIKIEVuc3VyZSB0aGF0
IHdlIGNhbiBoYW5kbGUgZW1wdHkgY2xhc3MgbmFtZSBjb3JyZWN0bHkKIFBBU1MgZWxlbWVudC5j
bGFzc0xpc3QudG9nZ2xlKCd4JykgaXMgdHJ1ZQpAQCAtMzcsOCArMzcsOCBAQCBQQVNTIGVsZW1l
bnQuY2xhc3NMaXN0LnRvZ2dsZSgnJywgdHJ1ZSkgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9u
IHdpdGggY29kZSAxMgogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJ3ggeScsIGZhbHNl
KSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2RlIDUKIFRlc3RpbmcgYWRkIGlu
IHByZXNlbmNlIG9mIHRyYWlsaW5nIHdoaXRlIHNwYWNlcy4KIFBBU1MgZWxlbWVudC5jbGFzc05h
bWUgaXMgInggeSIKLVBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInhcdHkiCi1QQVNTIGVsZW1l
bnQuY2xhc3NOYW1lIGlzICIgeSIKK1BBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInggeSIKK1BB
U1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInkiCiBUZXN0IGludmFsaWQgdG9rZW5zCiBQQVNTIGVs
ZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCcnKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24g
d2l0aCBjb2RlIDEyCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCd4IHknKSB0aHJl
dyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2RlIDUKQEAgLTUyLDggKzUyLDggQEAgUEFT
UyBlbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cy4KIEluZGV4aW5nCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0WzBd
IGlzICJ4IgogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5pdGVtKDApIGlzICJ4IgotUEFTUyBlbGVt
ZW50LmNsYXNzTGlzdFsxXSBpcyAieCIKLVBBU1MgZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgxKSBp
cyAieCIKK1BBU1MgZWxlbWVudC5jbGFzc0xpc3RbMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBlbGVt
ZW50LmNsYXNzTGlzdC5pdGVtKDEpIGlzIG51bGwKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3RbMV0g
aXMgInkiCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lml0ZW0oMSkgaXMgInkiCiBQQVNTIGVsZW1l
bnQuY2xhc3NMaXN0WzBdIGlzIHVuZGVmaW5lZC4KQEAgLTk4LDggKzk4LDggQEAgUEFTUyBlbGVt
ZW50LmNsYXNzTGlzdC5hZGQoImEiLCB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcg
RXJyb3IoInVzZXIgZXIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIiIKIFBBU1MgZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIG9ic2VydmVy
LnRha2VSZWNvcmRzKCkubGVuZ3RoIGlzIDEKLVBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImIg
ZCAgIgotUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiZCAgIgorUEFTUyBlbGVtZW50LmNsYXNz
TmFtZSBpcyAiYiBkIgorUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiZCIKIFBBU1MgZWxlbWVu
dC5jbGFzc05hbWUgaXMgImEgYiBjIgogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2En
LCAnYicsICcnKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2RlIDEyCiBQQVNT
IGVsZW1lbnQuY2xhc3NOYW1lIGlzICJhIGIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LXF1aXJrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LXF1aXJrcy1leHBlY3RlZC50eHQK
aW5kZXggZDgxZWRhZGE1MWJjYmZhYjEzMWVjZDlhNWQ4OWVlNmYzZTg3MWFhOC4uM2RiY2Y4ZDM3
NTA5NjZiMjAyODlhMGIzOWQ0MjZhMzI3ZGE4OGMyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTEVsZW1lbnQvY2xhc3MtbGlzdC1xdWlya3MtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2NsYXNzLWxpc3QtcXVpcmtzLWV4cGVj
dGVkLnR4dApAQCAtNyw3ICs3LDcgQEAgVGVzdHMgZnJvbSBodHRwOi8vc2ltb24uaHRtbDUub3Jn
L3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvCiBQQVNTIFN0cmluZyhlbGVt
ZW50LmNsYXNzTGlzdCkgaXMgIngiCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAw
CiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQuY2xhc3NM
aXN0Lmxlbmd0aCBpcyAyCitQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAxCiBQQVNT
IGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAyCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlz
ICJ4IgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieCIKQEAgLTE1LDcgKzE1LDcgQEAgUEFT
UyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieCAgeCIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMg
InkgeCIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIiIKIFBBU1MgZWxlbWVudC5jbGFzc05h
bWUgaXMgIiIKLVBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIiB5IHkgIgorUEFTUyBlbGVtZW50
LmNsYXNzTmFtZSBpcyAieSIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInkiCiBFbnN1cmUg
dGhhdCB3ZSBjYW4gaGFuZGxlIGVtcHR5IGNsYXNzIG5hbWUgY29ycmVjdGx5CiBQQVNTIGVsZW1l
bnQuY2xhc3NMaXN0LnRvZ2dsZSgneCcpIGlzIHRydWUKQEAgLTM3LDggKzM3LDggQEAgUEFTUyBl
bGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJycsIHRydWUpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2Vw
dGlvbiB3aXRoIGNvZGUgMTIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCd4IHknLCBm
YWxzZSkgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSA1CiBUZXN0aW5nIGFk
ZCBpbiBwcmVzZW5jZSBvZiB0cmFpbGluZyB3aGl0ZSBzcGFjZXMuCiBQQVNTIGVsZW1lbnQuY2xh
c3NOYW1lIGlzICJ4IHkiCi1QQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4XHR5IgotUEFTUyBl
bGVtZW50LmNsYXNzTmFtZSBpcyAiIHkiCitQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4IHki
CitQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ5IgogVGVzdCBpbnZhbGlkIHRva2VucwogUEFT
UyBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnJykgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0
aW9uIHdpdGggY29kZSAxMgogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygneCB5Jykg
dGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSA1CkBAIC01Miw4ICs1Miw4IEBA
IFBBU1MgZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBJbmRleGluZwogUEFTUyBlbGVtZW50LmNsYXNzTGlz
dFswXSBpcyAieCIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgwKSBpcyAieCIKLVBBU1Mg
ZWxlbWVudC5jbGFzc0xpc3RbMV0gaXMgIngiCi1QQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lml0ZW0o
MSkgaXMgIngiCitQQVNTIGVsZW1lbnQuY2xhc3NMaXN0WzFdIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
ZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgxKSBpcyBudWxsCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0
WzFdIGlzICJ5IgogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5pdGVtKDEpIGlzICJ5IgogUEFTUyBl
bGVtZW50LmNsYXNzTGlzdFswXSBpcyB1bmRlZmluZWQuCkBAIC05OCw4ICs5OCw4IEBAIFBBU1Mg
ZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJhIiwge3RvU3RyaW5nOiBmdW5jdGlvbigpIHsgdGhyb3cg
bmV3IEVycm9yKCJ1c2VyIGVyCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCiBQQVNTIGVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBvYnNl
cnZlci50YWtlUmVjb3JkcygpLmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlz
ICJiIGQgICIKLVBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImQgICIKK1BBU1MgZWxlbWVudC5j
bGFzc05hbWUgaXMgImIgZCIKK1BBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImQiCiBQQVNTIGVs
ZW1lbnQuY2xhc3NOYW1lIGlzICJhIGIgYyIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QucmVtb3Zl
KCdhJywgJ2InLCAnJykgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSAxMgog
UEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiYSBiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTEVsZW1lbnQvc2NyaXB0LXRlc3RzL2NsYXNzLWxpc3QuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zY3JpcHQtdGVzdHMvY2xhc3MtbGlzdC5qcwppbmRl
eCA5MTFkMjQ0Y2RlZDQwZGU2NjNkOWVkYTYzOTE1MWQ1ZmQxNjQ3YWVmLi43ZGM0ODc2OTE5NGU1
MGUwNjFhZDEwOWJiNzk5NTE2ZGYxZWI4ZjNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MRWxlbWVudC9zY3JpcHQtdGVzdHMvY2xhc3MtbGlzdC5qcworKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zY3JpcHQtdGVzdHMvY2xhc3MtbGlzdC5qcwpAQCAt
MzEsNyArMzEsNyBAQCBzaG91bGRFdmFsdWF0ZVRvKCdlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGgn
LCAxKTsKIAogLy8gaHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3Rp
bmcvRE9NVG9rZW5MaXN0L2dldHRpbmcvMDAzLmh0bQogY3JlYXRlRWxlbWVudCgneCB4Jyk7Ci1z
aG91bGRFdmFsdWF0ZVRvKCdlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGgnLCAyKTsKK3Nob3VsZEV2
YWx1YXRlVG8oJ2VsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCcsIDEpOwogCiAvLyBodHRwOi8vc2lt
b24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGlu
Zy8wMDQuaHRtCiBjcmVhdGVFbGVtZW50KCd4IHknKTsKQEAgLTcwLDcgKzcwLDcgQEAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICcnKTsKIC8vIGh0dHA6Ly9zaW1v
bi5odG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5n
LzAxMS5odG0KIGNyZWF0ZUVsZW1lbnQoJyB5IHggIHkgJyk7CiBlbGVtZW50LmNsYXNzTGlzdC5y
ZW1vdmUoJ3gnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAn
IHkgeSAnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAneScp
OwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9E
T01Ub2tlbkxpc3QvZ2V0dGluZy8wMTIuaHRtCiBjcmVhdGVFbGVtZW50KCcgeCB5ICB4ICcpOwpA
QCAtMTIxLDExICsxMjEsMTEgQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNz
TmFtZScsICd4IHknKTsKIAogY3JlYXRlRWxlbWVudCgneFx0Jyk7CiBlbGVtZW50LmNsYXNzTGlz
dC5hZGQoJ3knKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAn
eFx0eScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICd4IHkn
KTsKIAogY3JlYXRlRWxlbWVudCgnICcpOwogZWxlbWVudC5jbGFzc0xpc3QuYWRkKCd5Jyk7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJyB5Jyk7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJ3knKTsKIAogCiBkZWJ1ZygnVGVz
dCBpbnZhbGlkIHRva2VucycpOwpAQCAtMjA2LDggKzIwNiw4IEBAIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnZWxlbWVudC5jbGFzc0xpc3RbMF0nLCAneCcpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdlbGVtZW50LmNsYXNzTGlzdC5pdGVtKDApJywgJ3gnKTsKIAogY3JlYXRlRWxlbWVudCgneCB4
Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NMaXN0WzFdJywgJ3gnKTsK
LXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgxKScsICd4Jyk7
CitzaG91bGRCZVVuZGVmaW5lZCgnZWxlbWVudC5jbGFzc0xpc3RbMV0nKTsKK3Nob3VsZEJlTnVs
bCgnZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgxKScpOwogCiBjcmVhdGVFbGVtZW50KCd4IHknKTsK
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc0xpc3RbMV0nLCAneScpOwpAQCAt
MzI3LDEwICszMjcsMTAgQEAgc2hvdWxkQmUoJ29ic2VydmVyLnRha2VSZWNvcmRzKCkubGVuZ3Ro
JywgJzEnKTsKIAogY3JlYXRlRWxlbWVudCgnYSBiIGMgZCAgJyk7CiBlbGVtZW50LmNsYXNzTGlz
dC5yZW1vdmUoJ2EnLCAnYycpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNz
TmFtZScsICdiIGQgICcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTmFt
ZScsICdiIGQnKTsKIAogZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdiJywgJ2InKTsKLXNob3Vs
ZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAnZCAgJyk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJ2QnKTsKIAogY3JlYXRlRWxlbWVudCgn
YSBiIGMgbnVsbCBkIHVuZGVmaW5lZCAwIGZhbHNlJyk7CiBlbGVtZW50LmNsYXNzTGlzdC5yZW1v
dmUobnVsbCwge3RvU3RyaW5nOiBmdW5jdGlvbigpIHsgcmV0dXJuICdkJyB9fSwgdW5kZWZpbmVk
LCAwLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0
RWxlbWVudC9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC1leHBl
Y3RlZC50eHQKaW5kZXggOGVjNjI0YzhmNWQzOGYyNzM3Njg1NThkZjE0YmM4OThiNDUyNjlkMy4u
YjNiMjlmN2M5M2FiNTk3MDQwMjZjNTg0MWI2ZjExYjU5NDEzNGUzMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvZG9tLXNldHRhYmxlLXRva2VuLWxp
c3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVt
ZW50L2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LWV4cGVjdGVkLnR4dApAQCAtNywxNSArNywxNSBA
QCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBTdHJpbmcoZWxlbWVudC5odG1sRm9yKSBp
cyAieCIKIFBBU1MgZWxlbWVudC5odG1sRm9yLmxlbmd0aCBpcyAwCiBQQVNTIGVsZW1lbnQuaHRt
bEZvci5sZW5ndGggaXMgMQotUEFTUyBlbGVtZW50Lmh0bWxGb3IubGVuZ3RoIGlzIDIKK1BBU1Mg
ZWxlbWVudC5odG1sRm9yLmxlbmd0aCBpcyAxCiBQQVNTIGVsZW1lbnQuaHRtbEZvci5sZW5ndGgg
aXMgMgogUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieCIKIFBBU1MgZWxlbWVu
dC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgIngiCi1QQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmlu
ZygpIGlzICJ4ICB4IgorUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieCIKIFBB
U1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgInkgeCIKIFBBU1MgZWxlbWVudC5odG1s
Rm9yLnRvU3RyaW5nKCkgaXMgIiIKIFBBU1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMg
IiIKLVBBU1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgIiB5IHkgIgorUEFTUyBlbGVt
ZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieSIKIFBBU1MgZWxlbWVudC5odG1sRm9yLnRvU3Ry
aW5nKCkgaXMgInkiCiAtIEVuc3VyZSB0aGF0IHdlIGNhbiBoYW5kbGUgZW1wdHkgZm9ybSBhdHRy
aWJ1dGUgY29ycmVjdGx5CiBQQVNTIGxpc3QudmFsdWUgaXMgIngiCkBAIC0yNiw4ICsyNiw4IEBA
IFBBU1MgZWxlbWVudC5odG1sRm9yLmNvbnRhaW5zKCd4JykgaXMgdHJ1ZQogUEFTUyBlbGVtZW50
Lmh0bWxGb3JbMV0gaXMgdW5kZWZpbmVkLgogLSBUZXN0aW5nIGFkZCBpbiBwcmVzZW5jZSBvZiB0
cmFpbGluZyB3aGl0ZSBzcGFjZXMuCiBQQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlz
ICJ4IHkiCi1QQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICJ4XHR5IgotUEFTUyBl
bGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAiIHkiCitQQVNTIGVsZW1lbnQuaHRtbEZvci50
b1N0cmluZygpIGlzICJ4IHkiCitQQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICJ5
IgogLSBUZXN0IGludmFsaWQgdG9rZW5zCiBQQVNTIGVsZW1lbnQuaHRtbEZvci5jb250YWlucygn
JykgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSAxMgogUEFTUyBlbGVtZW50
Lmh0bWxGb3IuY29udGFpbnMoJ3ggeScpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRo
IGNvZGUgNQpAQCAtNDAsOCArNDAsOCBAQCBQQVNTIGVsZW1lbnQuaHRtbEZvci50b2dnbGUoJ3gg
eScpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNvZGUgNQogLSBJbmRleGluZwog
UEFTUyBlbGVtZW50Lmh0bWxGb3JbMF0gaXMgIngiCiBQQVNTIGVsZW1lbnQuaHRtbEZvci5pdGVt
KDApIGlzICJ4IgotUEFTUyBlbGVtZW50Lmh0bWxGb3JbMV0gaXMgIngiCi1QQVNTIGVsZW1lbnQu
aHRtbEZvci5pdGVtKDEpIGlzICJ4IgorUEFTUyBlbGVtZW50Lmh0bWxGb3JbMV0gaXMgdW5kZWZp
bmVkLgorUEFTUyBlbGVtZW50Lmh0bWxGb3IuaXRlbSgxKSBpcyBudWxsCiBQQVNTIGVsZW1lbnQu
aHRtbEZvclsxXSBpcyAieSIKIFBBU1MgZWxlbWVudC5odG1sRm9yLml0ZW0oMSkgaXMgInkiCiBQ
QVNTIGVsZW1lbnQuaHRtbEZvclswXSBpcyB1bmRlZmluZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxlbWVudC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0
ZWxlbWVudC1leHBlY3RlZC50eHQKaW5kZXggNDhiODVkY2IwYTRjMTJhYTViYTg4OWRjNTBlNDU4
MjIyNTQzMGM5Ny4uMjI1ZjA4YWE4NWJhMjEwMDQyZTEwOWM3ZDllOTZkYWY3N2RhZmZhMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvaHRtbG91dHB1
dGVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRw
dXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMTIsNyArMTIsNyBA
QCBQQVNTIG91dHB1dDIuaHRtbEZvci52YWx1ZSBpcyAiZm9yLXRhcmdldDEiCiBQQVNTIG91dHB1
dDMuaHRtbEZvci5sZW5ndGggaXMgMgogUEFTUyBvdXRwdXQzLmh0bWxGb3JbMF0gaXMgImZvci10
YXJnZXQxIgogUEFTUyBvdXRwdXQzLmh0bWxGb3JbMV0gaXMgImZvci10YXJnZXQyIgotUEFTUyBv
dXRwdXQzLmh0bWxGb3IudmFsdWUgaXMgIiBmb3ItdGFyZ2V0MSBmb3ItdGFyZ2V0MiAiCitQQVNT
IG91dHB1dDMuaHRtbEZvci52YWx1ZSBpcyAiZm9yLXRhcmdldDEgZm9yLXRhcmdldDIiCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0
ZWxlbWVudC5odG1sCmluZGV4IGRmODNjZWExZDI1NDMxMGNkMTlkNzI4NzY2ZjJmZDNhYTk1ZmYz
OWQuLjM2ODU3NmEzZDEzYzEwZmZhMjZhODMyYTBkNDA1MGM2MmYxNGIwNDAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvaHRtbG91
dHB1dGVsZW1lbnQuaHRtbApAQCAtMjgsNyArMjgsNyBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J291dHB1dDIuaHRtbEZvci52YWx1ZScsICdmb3ItdGFyZ2V0MScpOwogc2hvdWxkRXZhbHVhdGVU
bygnb3V0cHV0My5odG1sRm9yLmxlbmd0aCcsIDIpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdv
dXRwdXQzLmh0bWxGb3JbMF0nLCAnZm9yLXRhcmdldDEnKTsKIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygnb3V0cHV0My5odG1sRm9yWzFdJywgJ2Zvci10YXJnZXQyJyk7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ291dHB1dDMuaHRtbEZvci52YWx1ZScsICcgZm9yLXRhcmdldDEgZm9yLXRhcmdldDIg
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ291dHB1dDMuaHRtbEZvci52YWx1ZScsICdmb3It
dGFyZ2V0MSBmb3ItdGFyZ2V0MicpOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9zY3JpcHQtdGVzdHMvZG9t
LXNldHRhYmxlLXRva2VuLWxpc3QuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0
RWxlbWVudC9zY3JpcHQtdGVzdHMvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QuanMKaW5kZXggNWNm
MDQzOWM2YjAxOGFmOWQxYjFlM2JhN2YyZmMyZjBiYjE1ZjFmNS4uNDRkYzY3ODM4ODEwN2MxNDYx
YWRlYWUwN2YwZjQ0MDE3NTc0ODJkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTE91dHB1dEVsZW1lbnQvc2NyaXB0LXRlc3RzL2RvbS1zZXR0YWJsZS10b2tlbi1saXN0Lmpz
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0
cy9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC5qcwpAQCAtMjksNyArMjksNyBAQCBzaG91bGRFdmFs
dWF0ZVRvKCdlbGVtZW50Lmh0bWxGb3IubGVuZ3RoJywgMSk7CiAKIC8vIGh0dHA6Ly9zaW1vbi5o
dG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAw
My5odG0KIGNyZWF0ZUVsZW1lbnQoJ3ggeCcpOwotc2hvdWxkRXZhbHVhdGVUbygnZWxlbWVudC5o
dG1sRm9yLmxlbmd0aCcsIDIpOworc2hvdWxkRXZhbHVhdGVUbygnZWxlbWVudC5odG1sRm9yLmxl
bmd0aCcsIDEpOwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVm
bGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMDQuaHRtCiBjcmVhdGVFbGVtZW50KCd4IHkn
KTsKQEAgLTQ4LDcgKzQ4LDcgQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxG
b3IudG9TdHJpbmcoKScsICd4Jyk7CiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRt
bC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMDcuaHRtCiBjcmVhdGVFbGVt
ZW50KCd4ICB4Jyk7CiBlbGVtZW50Lmh0bWxGb3IuYWRkKCd4Jyk7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2VsZW1lbnQuaHRtbEZvci50b1N0cmluZygpJywgJ3ggIHgnKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCknLCAneCcpOwogCiAvLyBodHRw
Oi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3Qv
Z2V0dGluZy8wMDguaHRtCiBjcmVhdGVFbGVtZW50KCd5Jyk7CkBAIC02OCw3ICs2OCw3IEBAIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCknLCAnJyk7CiAv
LyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tl
bkxpc3QvZ2V0dGluZy8wMTEuaHRtCiBjcmVhdGVFbGVtZW50KCcgeSB4ICB5ICcpOwogZWxlbWVu
dC5odG1sRm9yLnJlbW92ZSgneCcpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0
bWxGb3IudG9TdHJpbmcoKScsICcgeSB5ICcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVt
ZW50Lmh0bWxGb3IudG9TdHJpbmcoKScsICd5Jyk7CiAKIC8vIGh0dHA6Ly9zaW1vbi5odG1sNS5v
cmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAxMi5odG0K
IGNyZWF0ZUVsZW1lbnQoJyB4IHkgIHggJyk7CkBAIC0xMDEsMTEgKzEwMSwxMSBAQCBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvci50b1N0cmluZygpJywgJ3ggeScpOwogCiBj
cmVhdGVFbGVtZW50KCd4XHQnKTsKIGVsZW1lbnQuaHRtbEZvci5hZGQoJ3knKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCknLCAneFx0eScpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKScsICd4IHknKTsK
IAogY3JlYXRlRWxlbWVudCgnICcpOwogZWxlbWVudC5odG1sRm9yLmFkZCgneScpOwotc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKScsICcgeScpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKScsICd5Jyk7CiAK
IAogZGVidWcoJy0gVGVzdCBpbnZhbGlkIHRva2VucycpOwpAQCAtMTgyLDggKzE4Miw4IEBAIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yWzBdJywgJ3gnKTsKIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yLml0ZW0oMCknLCAneCcpOwogCiBjcmVhdGVF
bGVtZW50KCd4IHgnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yWzFd
JywgJ3gnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yLml0ZW0oMSkn
LCAneCcpOworc2hvdWxkQmVVbmRlZmluZWQoJ2VsZW1lbnQuaHRtbEZvclsxXScpOworc2hvdWxk
QmVOdWxsKCdlbGVtZW50Lmh0bWxGb3IuaXRlbSgxKScpOwogCiBjcmVhdGVFbGVtZW50KCd4IHkn
KTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yWzFdJywgJ3knKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlbC1saXN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3JlbC1saXN0LWV4cGVjdGVkLnR4dAppbmRleCBkMTBlOTA3MDJm
MzNjOTU1N2Q2NTdkYmQzMWQ4MDZjNGJiMzYwYzc1Li41NmYyNjNhYThjOWU0NzBjMTMwMjY0YzM0
MDgxYTA2NTBlZmMyYzQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZWwtbGlz
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVsLWxpc3QtZXhwZWN0
ZWQudHh0CkBAIC0yNiw3ICsyNiw3IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LmNvbnRhaW5zKCJv
cmFuZ2UiKSBpcyBmYWxzZQogUEFTUyBTdHJpbmcoZWxlbWVudC5yZWxMaXN0KSBpcyAieCIKIFBB
U1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAwCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5n
dGggaXMgMQotUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDIKK1BBU1MgZWxlbWVudC5y
ZWxMaXN0Lmxlbmd0aCBpcyAxCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGggaXMgMgogUEFT
UyBlbGVtZW50LnJlbCBpcyAieCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgIngiCkBAIC0zNCw3ICsz
NCw3IEBAIFBBU1MgZWxlbWVudC5yZWwgaXMgInggIHgiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ5
IHgiCiBQQVNTIGVsZW1lbnQucmVsIGlzICIiCiBQQVNTIGVsZW1lbnQucmVsIGlzICIiCi1QQVNT
IGVsZW1lbnQucmVsIGlzICIgeSB5ICIKK1BBU1MgZWxlbWVudC5yZWwgaXMgInkiCiBQQVNTIGVs
ZW1lbnQucmVsIGlzICJ5IgogRW5zdXJlIHRoYXQgd2UgY2FuIGhhbmRsZSBlbXB0eSByZWwgY29y
cmVjdGx5CiBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUoJ3gnKSBpcyB0cnVlCkBAIC01OCw4
ICs1OCw4IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgiIiwgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4CiBQQVNTIGVsZW1lbnQucmVsTGlzdC50
b2dnbGUoInggeSIsIGZhbHNlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRDaGFyYWN0
ZXJFcnJvcjogRE9NIEV4Y2VwdGlvbiA1LgogVGVzdGluZyBhZGQgaW4gcHJlc2VuY2Ugb2YgdHJh
aWxpbmcgd2hpdGUgc3BhY2VzLgogUEFTUyBlbGVtZW50LnJlbCBpcyAieCB5IgotUEFTUyBlbGVt
ZW50LnJlbCBpcyAieFx0eSIKLVBBU1MgZWxlbWVudC5yZWwgaXMgIiB5IgorUEFTUyBlbGVtZW50
LnJlbCBpcyAieCB5IgorUEFTUyBlbGVtZW50LnJlbCBpcyAieSIKIFRlc3QgaW52YWxpZCB0b2tl
bnMKIFBBU1MgZWxlbWVudC5yZWxMaXN0LmNvbnRhaW5zKCIiKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgogUEFTUyBlbGVtZW50LnJlbExpc3Qu
Y29udGFpbnMoInggeSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZENoYXJhY3RlckVy
cm9yOiBET00gRXhjZXB0aW9uIDUuCkBAIC03MSw4ICs3MSw4IEBAIFBBU1MgZWxlbWVudC5yZWxM
aXN0LnRvZ2dsZSgiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4
Y2VwdGlvCiBJbmRleGluZwogUEFTUyBlbGVtZW50LnJlbExpc3RbMF0gaXMgIngiCiBQQVNTIGVs
ZW1lbnQucmVsTGlzdC5pdGVtKDApIGlzICJ4IgotUEFTUyBlbGVtZW50LnJlbExpc3RbMV0gaXMg
IngiCi1QQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDEpIGlzICJ4IgorUEFTUyBlbGVtZW50LnJl
bExpc3RbMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBlbGVtZW50LnJlbExpc3QuaXRlbSgxKSBpcyBu
dWxsCiBQQVNTIGVsZW1lbnQucmVsTGlzdFsxXSBpcyAieSIKIFBBU1MgZWxlbWVudC5yZWxMaXN0
Lml0ZW0oMSkgaXMgInkiCiBQQVNTIGVsZW1lbnQucmVsTGlzdFswXSBpcyB1bmRlZmluZWQuCkBA
IC0xMTUsOCArMTE1LDggQEAgUEFTUyBlbGVtZW50LnJlbExpc3QuYWRkKCJhIiwge3RvU3RyaW5n
OiBmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCJ1c2VyIGVycm8KIFBBU1MgZWxlbWVudC5y
ZWwgaXMgIiIKIFBBU1MgZWxlbWVudC5yZWxMaXN0LmFkZCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgogUEFTUyBvYnNlcnZlci50YWtlUmVjb3JkcygpLmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1l
bnQucmVsIGlzICJiIGQgICIKLVBBU1MgZWxlbWVudC5yZWwgaXMgImQgICIKK1BBU1MgZWxlbWVu
dC5yZWwgaXMgImIgZCIKK1BBU1MgZWxlbWVudC5yZWwgaXMgImQiCiBQQVNTIGVsZW1lbnQucmVs
IGlzICJhIGIgYyIKIFBBU1MgZWxlbWVudC5yZWxMaXN0LnJlbW92ZSgiYSIsICJiIiwgIiIpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCiBQQVNT
IGVsZW1lbnQucmVsIGlzICJhIGIiCkBAIC0xNDksNyArMTQ5LDcgQEAgUEFTUyBlbGVtZW50LnJl
bExpc3QuY29udGFpbnMoIm9yYW5nZSIpIGlzIGZhbHNlCiBQQVNTIFN0cmluZyhlbGVtZW50LnJl
bExpc3QpIGlzICJ4IgogUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDAKIFBBU1MgZWxl
bWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGggaXMg
MgorUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDEKIFBBU1MgZWxlbWVudC5yZWxMaXN0
Lmxlbmd0aCBpcyAyCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ4IgogUEFTUyBlbGVtZW50LnJlbCBp
cyAieCIKQEAgLTE1Nyw3ICsxNTcsNyBAQCBQQVNTIGVsZW1lbnQucmVsIGlzICJ4ICB4IgogUEFT
UyBlbGVtZW50LnJlbCBpcyAieSB4IgogUEFTUyBlbGVtZW50LnJlbCBpcyAiIgogUEFTUyBlbGVt
ZW50LnJlbCBpcyAiIgotUEFTUyBlbGVtZW50LnJlbCBpcyAiIHkgeSAiCitQQVNTIGVsZW1lbnQu
cmVsIGlzICJ5IgogUEFTUyBlbGVtZW50LnJlbCBpcyAieSIKIEVuc3VyZSB0aGF0IHdlIGNhbiBo
YW5kbGUgZW1wdHkgcmVsIGNvcnJlY3RseQogUEFTUyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCd4
JykgaXMgdHJ1ZQpAQCAtMTgxLDggKzE4MSw4IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRvZ2ds
ZSgiIiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4CiBQ
QVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUoInggeSIsIGZhbHNlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IEludmFsaWRDaGFyYWN0ZXJFcnJvcjogRE9NIEV4Y2VwdGlvbiA1LgogVGVzdGluZyBh
ZGQgaW4gcHJlc2VuY2Ugb2YgdHJhaWxpbmcgd2hpdGUgc3BhY2VzLgogUEFTUyBlbGVtZW50LnJl
bCBpcyAieCB5IgotUEFTUyBlbGVtZW50LnJlbCBpcyAieFx0eSIKLVBBU1MgZWxlbWVudC5yZWwg
aXMgIiB5IgorUEFTUyBlbGVtZW50LnJlbCBpcyAieCB5IgorUEFTUyBlbGVtZW50LnJlbCBpcyAi
eSIKIFRlc3QgaW52YWxpZCB0b2tlbnMKIFBBU1MgZWxlbWVudC5yZWxMaXN0LmNvbnRhaW5zKCIi
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgog
UEFTUyBlbGVtZW50LnJlbExpc3QuY29udGFpbnMoInggeSIpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSW52YWxpZENoYXJhY3RlckVycm9yOiBET00gRXhjZXB0aW9uIDUuCkBAIC0xOTQsOCArMTk0
LDggQEAgUEFTUyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCIiKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW8KIEluZGV4aW5nCiBQQVNTIGVsZW1lbnQucmVs
TGlzdFswXSBpcyAieCIKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0oMCkgaXMgIngiCi1QQVNT
IGVsZW1lbnQucmVsTGlzdFsxXSBpcyAieCIKLVBBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSkg
aXMgIngiCitQQVNTIGVsZW1lbnQucmVsTGlzdFsxXSBpcyB1bmRlZmluZWQuCitQQVNTIGVsZW1l
bnQucmVsTGlzdC5pdGVtKDEpIGlzIG51bGwKIFBBU1MgZWxlbWVudC5yZWxMaXN0WzFdIGlzICJ5
IgogUEFTUyBlbGVtZW50LnJlbExpc3QuaXRlbSgxKSBpcyAieSIKIFBBU1MgZWxlbWVudC5yZWxM
aXN0WzBdIGlzIHVuZGVmaW5lZC4KQEAgLTIzOCw4ICsyMzgsOCBAQCBQQVNTIGVsZW1lbnQucmVs
TGlzdC5hZGQoImEiLCB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoInVz
ZXIgZXJybwogUEFTUyBlbGVtZW50LnJlbCBpcyAiIgogUEFTUyBlbGVtZW50LnJlbExpc3QuYWRk
KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIG9ic2VydmVyLnRha2VSZWNvcmRzKCku
bGVuZ3RoIGlzIDEKLVBBU1MgZWxlbWVudC5yZWwgaXMgImIgZCAgIgotUEFTUyBlbGVtZW50LnJl
bCBpcyAiZCAgIgorUEFTUyBlbGVtZW50LnJlbCBpcyAiYiBkIgorUEFTUyBlbGVtZW50LnJlbCBp
cyAiZCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgImEgYiBjIgogUEFTUyBlbGVtZW50LnJlbExpc3Qu
cmVtb3ZlKCJhIiwgImIiLCAiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjog
RE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgZWxlbWVudC5yZWwgaXMgImEgYiIKQEAgLTI3Miw3ICsy
NzIsNyBAQCBQQVNTIGVsZW1lbnQucmVsTGlzdC5jb250YWlucygib3JhbmdlIikgaXMgZmFsc2UK
IFBBU1MgU3RyaW5nKGVsZW1lbnQucmVsTGlzdCkgaXMgIngiCiBQQVNTIGVsZW1lbnQucmVsTGlz
dC5sZW5ndGggaXMgMAogUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDEKLVBBU1MgZWxl
bWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAyCitQQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGggaXMg
MQogUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDIKIFBBU1MgZWxlbWVudC5yZWwgaXMg
IngiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ4IgpAQCAtMjgwLDcgKzI4MCw3IEBAIFBBU1MgZWxl
bWVudC5yZWwgaXMgInggIHgiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ5IHgiCiBQQVNTIGVsZW1l
bnQucmVsIGlzICIiCiBQQVNTIGVsZW1lbnQucmVsIGlzICIiCi1QQVNTIGVsZW1lbnQucmVsIGlz
ICIgeSB5ICIKK1BBU1MgZWxlbWVudC5yZWwgaXMgInkiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ5
IgogRW5zdXJlIHRoYXQgd2UgY2FuIGhhbmRsZSBlbXB0eSByZWwgY29ycmVjdGx5CiBQQVNTIGVs
ZW1lbnQucmVsTGlzdC50b2dnbGUoJ3gnKSBpcyB0cnVlCkBAIC0zMDQsOCArMzA0LDggQEAgUEFT
UyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCIiLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IFN5bnRheEVycm9yOiBET00gRXgKIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgieCB5Iiwg
ZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZENoYXJhY3RlckVycm9yOiBET00g
RXhjZXB0aW9uIDUuCiBUZXN0aW5nIGFkZCBpbiBwcmVzZW5jZSBvZiB0cmFpbGluZyB3aGl0ZSBz
cGFjZXMuCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ4IHkiCi1QQVNTIGVsZW1lbnQucmVsIGlzICJ4
XHR5IgotUEFTUyBlbGVtZW50LnJlbCBpcyAiIHkiCitQQVNTIGVsZW1lbnQucmVsIGlzICJ4IHki
CitQQVNTIGVsZW1lbnQucmVsIGlzICJ5IgogVGVzdCBpbnZhbGlkIHRva2VucwogUEFTUyBlbGVt
ZW50LnJlbExpc3QuY29udGFpbnMoIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJy
b3I6IERPTSBFeGNlcHRpb24gMTIuCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5jb250YWlucygieCB5
IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkQ2hhcmFjdGVyRXJyb3I6IERPTSBFeGNl
cHRpb24gNS4KQEAgLTMxNyw4ICszMTcsOCBAQCBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUo
IiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpbwogSW5k
ZXhpbmcKIFBBU1MgZWxlbWVudC5yZWxMaXN0WzBdIGlzICJ4IgogUEFTUyBlbGVtZW50LnJlbExp
c3QuaXRlbSgwKSBpcyAieCIKLVBBU1MgZWxlbWVudC5yZWxMaXN0WzFdIGlzICJ4IgotUEFTUyBl
bGVtZW50LnJlbExpc3QuaXRlbSgxKSBpcyAieCIKK1BBU1MgZWxlbWVudC5yZWxMaXN0WzFdIGlz
IHVuZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSkgaXMgbnVsbAogUEFTUyBl
bGVtZW50LnJlbExpc3RbMV0gaXMgInkiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDEpIGlz
ICJ5IgogUEFTUyBlbGVtZW50LnJlbExpc3RbMF0gaXMgdW5kZWZpbmVkLgpAQCAtMzYxLDggKzM2
MSw4IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LmFkZCgiYSIsIHt0b1N0cmluZzogZnVuY3Rpb24o
KSB7IHRocm93IG5ldyBFcnJvcigidXNlciBlcnJvCiBQQVNTIGVsZW1lbnQucmVsIGlzICIiCiBQ
QVNTIGVsZW1lbnQucmVsTGlzdC5hZGQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1Mg
b2JzZXJ2ZXIudGFrZVJlY29yZHMoKS5sZW5ndGggaXMgMQotUEFTUyBlbGVtZW50LnJlbCBpcyAi
YiBkICAiCi1QQVNTIGVsZW1lbnQucmVsIGlzICJkICAiCitQQVNTIGVsZW1lbnQucmVsIGlzICJi
IGQiCitQQVNTIGVsZW1lbnQucmVsIGlzICJkIgogUEFTUyBlbGVtZW50LnJlbCBpcyAiYSBiIGMi
CiBQQVNTIGVsZW1lbnQucmVsTGlzdC5yZW1vdmUoImEiLCAiYiIsICIiKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgogUEFTUyBlbGVtZW50LnJl
bCBpcyAiYSBiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVsLWxpc3QuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlbC1saXN0Lmh0bWwKaW5kZXggY2JjMmM0YTU0ODY1
ZTE0MjhhMTk1Y2E1NDYzNWY0OGJjODk2MjZkMC4uMDkzYWFhYTNlYmRmOTMwYzkzOGJkZGY3YWE5
NmU0N2QyZDQ0MjBlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVsLWxpc3Qu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZWwtbGlzdC5odG1sCkBAIC02Miw3ICs2
Miw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHNob3VsZEV2YWx1YXRlVG8oJ2VsZW1lbnQucmVs
TGlzdC5sZW5ndGgnLCAxKTsKIAogICAgIGNyZWF0ZUVsZW1lbnQoJ3ggeCcpOwotICAgIHNob3Vs
ZEV2YWx1YXRlVG8oJ2VsZW1lbnQucmVsTGlzdC5sZW5ndGgnLCAyKTsKKyAgICBzaG91bGRFdmFs
dWF0ZVRvKCdlbGVtZW50LnJlbExpc3QubGVuZ3RoJywgMSk7CiAKICAgICBjcmVhdGVFbGVtZW50
KCd4IHknKTsKICAgICBzaG91bGRFdmFsdWF0ZVRvKCdlbGVtZW50LnJlbExpc3QubGVuZ3RoJywg
Mik7CkBAIC05Myw3ICs5Myw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgY3JlYXRlRWxlbWVu
dCgnIHkgeCAgeSAnKTsKICAgICBlbGVtZW50LnJlbExpc3QucmVtb3ZlKCd4Jyk7Ci0gICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbCcsICcgeSB5ICcpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwnLCAneScpOwogCiAgICAgY3JlYXRlRWxlbWVudCgn
IHggeSAgeCAnKTsKICAgICBlbGVtZW50LnJlbExpc3QucmVtb3ZlKCd4Jyk7CkBAIC0xMzQsMTEg
KzEzNCwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGNyZWF0ZUVsZW1lbnQoJ3hcdCcpOwog
ICAgIGVsZW1lbnQucmVsTGlzdC5hZGQoJ3knKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2VsZW1lbnQucmVsJywgJ3hcdHknKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1l
bnQucmVsJywgJ3ggeScpOwogCiAgICAgY3JlYXRlRWxlbWVudCgnICcpOwogICAgIGVsZW1lbnQu
cmVsTGlzdC5hZGQoJ3knKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVs
JywgJyB5Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbCcsICd5Jyk7
CiAKICAgICBkZWJ1ZygnVGVzdCBpbnZhbGlkIHRva2VucycpOwogCkBAIC0xNjksOCArMTY5LDgg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJl
bExpc3QuaXRlbSgwKScsICd4Jyk7CiAKICAgICBjcmVhdGVFbGVtZW50KCd4IHgnKTsKLSAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVsTGlzdFsxXScsICd4Jyk7Ci0gICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbExpc3QuaXRlbSgxKScsICd4Jyk7CisgICAg
c2hvdWxkQmVVbmRlZmluZWQoJ2VsZW1lbnQucmVsTGlzdFsxXScpOworICAgIHNob3VsZEJlTnVs
bCgnZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSknKTsKIAogICAgIGNyZWF0ZUVsZW1lbnQoJ3ggeScp
OwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWxMaXN0WzFdJywgJ3knKTsK
QEAgLTI2MCwxMCArMjYwLDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgY3JlYXRlRWxlbWVu
dCgnYSBiIGMgZCAgJyk7CiAgICAgZWxlbWVudC5yZWxMaXN0LnJlbW92ZSgnYScsICdjJyk7Ci0g
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbCcsICdiIGQgICcpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwnLCAnYiBkJyk7CiAKICAgICBlbGVtZW50
LnJlbExpc3QucmVtb3ZlKCdiJywgJ2InKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Vs
ZW1lbnQucmVsJywgJ2QgICcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5y
ZWwnLCAnZCcpOwogCiAgICAgY3JlYXRlRWxlbWVudCgnYSBiIGMgbnVsbCBkIHVuZGVmaW5lZCAw
IGZhbHNlJyk7CiAgICAgZWxlbWVudC5yZWxMaXN0LnJlbW92ZShudWxsLCB7dG9TdHJpbmc6IGZ1
bmN0aW9uKCkgeyByZXR1cm4gJ2QnIH19LCB1bmRlZmluZWQsIDAsIGZhbHNlKTsKQEAgLTMwMCw0
ICszMDAsNCBAQCB0ZXN0KCk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9saXN0cy9ET01Ub2tlbkxpc3Qtc3RyaW5n
aWZpZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbGlzdHMvRE9NVG9rZW5MaXN0LXN0cmluZ2lmaWVyLWV4cGVjdGVkLnR4dApp
bmRleCAyZTU1ZjY2Nzc0NTVjMjlmMjgyMTBmODU2NTIyMTlhODA3ODNlMmMwLi44YjFkNWMyMjc5
OGE1ZTRjY2E2MzU1ZjIyZGVkNTk0M2NkY2I1NWZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9saXN0cy9ET01Ub2tlbkxpc3Qtc3Ry
aW5naWZpZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2xpc3RzL0RPTVRva2VuTGlzdC1zdHJpbmdpZmllci1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgRE9NVG9rZW5MaXN0IHN0cmluZ2lmaWVyIGFz
c2VydF9lcXVhbHM6IFN0cmluZyhjbGFzc0xpc3QpIHNob3VsZCBjb21wcmVzcyB3aGl0ZXNwYWNl
IGV4cGVjdGVkICJhIGIiIGJ1dCBnb3QgIiAgIGEgIGEgYiIKK1BBU1MgRE9NVG9rZW5MaXN0IHN0
cmluZ2lmaWVyIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNsYXNzbGlzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVt
ZW50LWNsYXNzbGlzdC1leHBlY3RlZC50eHQKaW5kZXggN2FmOGU5MDlhZDM3YmUyZGJmOGRlODU3
ZmY1OWE4ZjBjYjBkZjAzMS4uMWRhZGM3ZmQ3NTZiNzQ3NjJlNjU0ZjU3ZDA5NmNmYTRjNmYxNDc1
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvRWxlbWVudC1jbGFzc2xpc3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2xh
c3NsaXN0LWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgUEFTUyBET01Ub2tlbkxpc3Qgc2hv
dWxkIGJlIGV4cG9zZWQgZm9yIHByb3RvdHlwaW5nCiBQQVNTIHByb3RvdHlwaW5nIERPTVRva2Vu
TGlzdCBzaG91bGQgd29yayAKIFBBU1MgRWxlbWVudC5jbGFzc0xpc3QgbXVzdCBpbXBsZW1lbnQg
RE9NVG9rZW5MaXN0IAogUEFTUyBDU1MgLmZvbyBzZWxlY3RvcnMgbXVzdCBub3QgbWF0Y2ggZWxl
bWVudHMgd2l0aG91dCBhbnkgY2xhc3MgCi1GQUlMIGNsYXNzTGlzdCBtdXN0IGJlIGNvcnJlY3Qg
Zm9yIGFuIGVsZW1lbnQgdGhhdCBoYXMgY2xhc3NlcyBhc3NlcnRfZXF1YWxzOiBkdXBsaWNhdGVz
IGluIGluaXRpYWwgc3RyaW5nIHNob3VsZCBiZSByZW1vdmVkIHBlciBodHRwczovL2RvbS5zcGVj
LndoYXR3Zy5vcmcvI2NvbmNlcHQtY2xhc3MgZXhwZWN0ZWQgMSBidXQgZ290IDIKK1BBU1MgY2xh
c3NMaXN0IG11c3QgYmUgY29ycmVjdCBmb3IgYW4gZWxlbWVudCB0aGF0IGhhcyBjbGFzc2VzIAog
UEFTUyBjbGFzc0xpc3QubGVuZ3RoIG11c3QgYmUgMCBmb3IgYW4gZWxlbWVudCB0aGF0IGhhcyBu
byBjbGFzc2VzIAogUEFTUyBjbGFzc0xpc3QgbXVzdCBub3QgY29udGFpbiBhbiB1bmRlZmluZWQg
Y2xhc3MgCiBQQVNTIGNsYXNzTGlzdC5pdGVtKCkgbXVzdCByZXR1cm4gbnVsbCBmb3Igb3V0LW9m
LXJhbmdlIGluZGV4IApAQCAtMTMsNyArMTMsNyBAQCBQQVNTIGNsYXNzTGlzdC5pdGVtKCkgbXVz
dCByZXR1cm4gbnVsbCBmb3IgbmVnYXRpdmUgaW5kZXgKIFBBU1MgY2xhc3NMaXN0W2luZGV4XSBt
dXN0IGJlIHVuZGVmaW5lZCBmb3Igb3V0LW9mLXJhbmdlIGluZGV4IAogUEFTUyBjbGFzc0xpc3Rb
aW5kZXhdIG11c3QgYmUgdW5kZWZpbmVkIGZvciBuZWdhdGl2ZSBpbmRleCAKIFBBU1MgY2xhc3NO
YW1lIHNob3VsZCBjb250YWluIGluaXRpYWwgbWFya3VwIHdoaXRlc3BhY2UgCi1GQUlMIGVtcHR5
IGNsYXNzTGlzdCBzaG91bGQgcmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcgc2luY2UgdGhlIG9yZGVy
ZWQgc2V0IHBhcnNlciBza2lwIHRoZSB3aGl0ZXNwYWNlcyBhc3NlcnRfZXF1YWxzOiBpbXBsaWNp
dCBleHBlY3RlZCAiIiBidXQgZ290ICIgIgorUEFTUyBlbXB0eSBjbGFzc0xpc3Qgc2hvdWxkIHJl
dHVybiB0aGUgZW1wdHkgc3RyaW5nIHNpbmNlIHRoZSBvcmRlcmVkIHNldCBwYXJzZXIgc2tpcCB0
aGUgd2hpdGVzcGFjZXMgCiBQQVNTIC5jb250YWlucyhlbXB0eV9zdHJpbmcpIG11c3QgdGhyb3cg
YSBTWU5UQVhfRVJSIAogUEFTUyAuYWRkKGVtcHR5X3N0cmluZykgbXVzdCB0aHJvdyBhIFNZTlRB
WF9FUlIgCiBQQVNTIC5yZW1vdmUoZW1wdHlfc3RyaW5nKSBtdXN0IHRocm93IGEgU1lOVEFYX0VS
UiAKQEAgLTQzLDEwICs0MywxMCBAQCBQQVNTIGNsYXNzTGlzdC5yZW1vdmUgbXVzdCByZW1vdmUg
ZXhpc3RpbmcgdG9rZW5zCiBQQVNTIGNsYXNzTGlzdC5yZW1vdmUgbXVzdCBub3QgYnJlYWsgY2Fz
ZS1zZW5zaXRpdmUgQ1NTIHNlbGVjdG9yIG1hdGNoaW5nIAogUEFTUyBjbGFzc0xpc3QucmVtb3Zl
IG11c3QgcmVtb3ZlIGR1cGxpY2F0ZWQgdG9rZW5zIAogUEFTUyBjbGFzc0xpc3QucmVtb3ZlIG11
c3QgY29sbGFwc2Ugd2hpdGVzcGFjZSBhcm91bmQgcmVtb3ZlZCB0b2tlbnMgCi1GQUlMIGNsYXNz
TGlzdC5yZW1vdmUgbXVzdCBjb2xsYXBzZSB3aGl0ZXNwYWNlcyBhcm91bmQgZWFjaCB0b2tlbiBh
c3NlcnRfZXF1YWxzOiBpbXBsaWNpdCBleHBlY3RlZCAidG9rZW4xIiBidXQgZ290ICIgdG9rZW4x
IgotRkFJTCBjbGFzc0xpc3QucmVtb3ZlIG11c3QgY29sbGFwc2Ugd2hpdGVzcGFjZXMgYXJvdW5k
IGVhY2ggdG9rZW4gYW5kIHJlbW92ZSBkdXBsaWNhdGVzIGFzc2VydF9lcXVhbHM6IGltcGxpY2l0
IGV4cGVjdGVkICJ0b2tlbjEiIGJ1dCBnb3QgIiAgdG9rZW4xIHRva2VuMSAgIgorUEFTUyBjbGFz
c0xpc3QucmVtb3ZlIG11c3QgY29sbGFwc2Ugd2hpdGVzcGFjZXMgYXJvdW5kIGVhY2ggdG9rZW4g
CitQQVNTIGNsYXNzTGlzdC5yZW1vdmUgbXVzdCBjb2xsYXBzZSB3aGl0ZXNwYWNlcyBhcm91bmQg
ZWFjaCB0b2tlbiBhbmQgcmVtb3ZlIGR1cGxpY2F0ZXMgCiBQQVNTIGNsYXNzTGlzdC5yZW1vdmUg
bXVzdCBjb2xsYXBzZSB3aGl0ZXNwYWNlIHdoZW4gcmVtb3ZpbmcgZHVwbGljYXRlIHRva2VucyAK
LUZBSUwgY2xhc3NMaXN0LmFkZCBtdXN0IGNvbGxhcHNlIHdoaXRlc3BhY2VzIGFuZCByZW1vdmUg
ZHVwbGljYXRlcyB3aGVuIGFkZGluZyBhIHRva2VuIHRoYXQgYWxyZWFkeSBleGlzdHMgYXNzZXJ0
X2VxdWFsczogaW1wbGljaXQgZXhwZWN0ZWQgInRva2VuMSIgYnV0IGdvdCAiICB0b2tlbjEgIHRv
a2VuMSAgIgorUEFTUyBjbGFzc0xpc3QuYWRkIG11c3QgY29sbGFwc2Ugd2hpdGVzcGFjZXMgYW5k
IHJlbW92ZSBkdXBsaWNhdGVzIHdoZW4gYWRkaW5nIGEgdG9rZW4gdGhhdCBhbHJlYWR5IGV4aXN0
cyAKIFBBU1MgY2xhc3NMaXN0LnRvZ2dsZSBtdXN0IHRvZ2dsZSB0b2tlbnMgY2FzZS1zZW5zaXRp
dmVseSB3aGVuIGFkZGluZyAKIFBBU1MgY2xhc3NMaXN0LnRvZ2dsZSBtdXN0IG5vdCBicmVhayBj
YXNlLXNlbnNpdGl2ZSBDU1Mgc2VsZWN0b3IgbWF0Y2hpbmcgCiBQQVNTIGNsYXNzTGlzdC50b2dn
bGUgbXVzdCBiZSBhYmxlIHRvIHJlbW92ZSB0b2tlbnMgCkBAIC01NywxMCArNTcsMTAgQEAgUEFT
UyBjbGFzc0xpc3QgbXVzdCBzdHJpbmdpZnkgdG8gYW4gZW1wdHkgc3RyaW5nIHdoZW4gYWxsIGNs
YXNzZXMgaGF2ZSBiZWVuIHJlbW8KIFBBU1MgY2xhc3NMaXN0Lml0ZW0oMCkgbXVzdCByZXR1cm4g
bnVsbCB3aGVuIGFsbCBjbGFzc2VzIGhhdmUgYmVlbiByZW1vdmVkIAogUEFTUyBjbGFzc0xpc3Rb
MF0gbXVzdCBiZSB1bmRlZmluZWQgd2hlbiBhbGwgY2xhc3NlcyBoYXZlIGJlZW4gcmVtb3ZlZCAK
IFBBU1MgY2xhc3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgIiAiIGFzIGEgc3BhY2UgCi1GQUlMIGNs
YXNzTGlzdC5hZGQgc2hvdWxkIHRyZWF0IFx0IGFzIGEgc3BhY2UgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgImEgYiIgYnV0IGdvdCAiYVx0YiIKLUZBSUwgY2xhc3NMaXN0LmFkZCBzaG91bGQgdHJl
YXQgXHIgYXMgYSBzcGFjZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYSBiIiBidXQgZ290ICJh
XHJiIgotRkFJTCBjbGFzc0xpc3QuYWRkIHNob3VsZCB0cmVhdCBcbiBhcyBhIHNwYWNlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJhIGIiIGJ1dCBnb3QgImFcbmIiCi1GQUlMIGNsYXNzTGlzdC5h
ZGQgc2hvdWxkIHRyZWF0IFxmIGFzIGEgc3BhY2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImEg
YiIgYnV0IGdvdCAiYVxmYiIKK1BBU1MgY2xhc3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXHQgYXMg
YSBzcGFjZSAKK1BBU1MgY2xhc3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXHIgYXMgYSBzcGFjZSAK
K1BBU1MgY2xhc3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXG4gYXMgYSBzcGFjZSAKK1BBU1MgY2xh
c3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXGYgYXMgYSBzcGFjZSAKIFBBU1MgY2xhc3NMaXN0Lmxl
bmd0aCBtdXN0IGJlIHJlYWQtb25seSAKIFBBU1MgY2xhc3NMaXN0IG11c3QgYmUgcmVhZC1vbmx5
IAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260969</attachid>
            <date>2015-09-10 16:45:15 -0700</date>
            <delta_ts>2015-09-11 13:22:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148589-20150910164508.patch</filename>
            <type>text/plain</type>
            <size>95049</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc3Yzg0MGVmMDJkNmQ5
NWFlMGUwZWEwYmY3MzdiMTY1ZTA0OWM5NC4uOTRmMWE4ZmEzZjYxZmJkNGY4M2EwYTJiN2VkM2Yw
YmE4N2JhOWMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OSBAQAorMjAxNS0wOS0xMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERPTVRva2VuTGlzdCB1cGRh
dGUgc3RlcHMgZm9yIGNsYXNzTGlzdCBkb24ndCBmb2xsb3cgdGhlIHNwZWMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODU4OQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjI1NDc0NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIG91ciBET01Ub2tlbkxpc3QgaW1wbGVtZW50YXRpb24gdG8g
YmVoYXZlIGFjY29yZGluZyB0bworICAgICAgICB0aGUgbGF0ZXN0IERPTSBzcGVjaWZpY2F0aW9u
OgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1kb210b2tl
bmxpc3QKKworICAgICAgICBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIGNoYW5nZXMgd2Vy
ZSBtYWRlOgorICAgICAgICAtIFRoZSBzdHJpbmdpZmllciBub3cgcmV0dXJucyB0aGUgcmVzdWx0
IG9mIHRoZSBvcmRlcmVkIHNldCBzZXJpYWxpemVyCisgICAgICAgICAgZm9yIHRva2Vucy4gVGhp
cyBtZWFucyB0aGF0IHdlIGRyb3AgZHVwbGljYXRlIHNwYWNlcyBhbmQgZXh0cmEgc3BhY2VzCisg
ICAgICAgICAgWzFdWzJdWzNdLgorICAgICAgICAtIERPTVNldHRhYmxlVG9rZW5MaXN0LnZhbHVl
IG5vdyByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIG9yZGVyZWQgc2V0CisgICAgICAgICAgc2Vy
aWFsaXplciBmb3IgdG9rZW5zIFs0XSBhcyB3ZWxsLgorICAgICAgICAtIFdoZW4gdGhlIERPTVRv
a2VuTGlzdCdzIHRva2VucyBhcmUgdXBkYXRlZCBhbmQgdGhlcmUgaXMgYW4gYXNzb2NpYXRlZAor
ICAgICAgICAgIEVsZW1lbnQgYXR0cmlidXRlLCB3ZSBzZXQgdGhlIGF0dHJpYnV0ZSB2YWx1ZSB0
byBiZSB0aGUgdGhlIG9yZGVyZWQKKyAgICAgICAgICBzZXQgc2VyaWFsaXplciBmb3IgdG9rZW5z
LiBUaGlzIGlzIGFjY29yZGluZyB0byB0aGUgRE9NVG9rZW5MaXN0CisgICAgICAgICAgdXBkYXRl
IHN0ZXBzIGluIHRoZSBzcGVjaWZpY2F0aW9uIFs2XS4gQ2hyb21lIGRvZXMgbm90IG1hdGNoIHRo
ZQorICAgICAgICAgIHNwZWNpZmljYXRpb24gZWl0aGVyLgorCisgICAgICAgIEVkZ2UgYnJvd3Nl
ciBiZWhhdmVzIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiBhbHJlYWR5LiBGaXJlZm94
IHdhcworICAgICAgICBpbXBsZW1lbnRpbmcgdGhpcyB2aWEgWzddIGJ1dCBubyByZWNlbnQgcHJv
Z3Jlc3MuIFRoaXMgbWFrZXMgdGhlIEpTIEFQSQorICAgICAgICBuaWNlciB0byB1c2UgYW5kIGlu
dGVyZXN0IHdhcyBzaG93biBieSBqUXVlcnkgVGVhbS4KKworICAgICAgICBUaGUgZm9sbG93aW5n
IHJlZmFjdG9yaW5nIHdhcyBkb25lOgorICAgICAgICAtIE1lcmdlIENsYXNzTGlzdCAvIFJlbExp
c3QgaW50byBhIHNpbmdsZSBBdHRyaWJ1dGVET01Ub2tlbkxpc3QgY2xhc3MKKyAgICAgICAgICBh
cyB0aGVpciBjb2RlIGlzIG1vc3RseSBkdXBsaWNhdGVkIGFuZCB0aGUgb25seSB0aGluZyB0aGF0
IGNoYW5nZXMKKyAgICAgICAgICBpcyB3aGljaCBhdHRyaWJ1dGUgaXMgYXNzb2NpYXRlZCAoY2xh
c3MgdnMgcmVsKS4gQXR0cmlidXRlRE9NVG9rZW5MaXN0CisgICAgICAgICAgbm93IGtlZXBzIHRo
ZSBhdHRyaWJ1dGUgbmFtZSBhcyBhIG1lbWJlciBzbyBpdCBjb3VsZCBiZSB1c2VkIGZvciBhbnkK
KyAgICAgICAgICBhdHRyaWJ1dGUuIEF0dHJpYnV0ZURPTVRva2VuTGlzdCBvdmVycmlkZXMgRE9N
VG9rZW5MaXN0J3MKKyAgICAgICAgICB1cGRhdGVBZnRlclRva2VuQ2hhbmdlKCkgdG8gZG8gdXBk
YXRlIHRoZSBhdHRyaWJ1dGUncyB2YWx1ZSBhcyBwZXIKKyAgICAgICAgICBbNl0uCisgICAgICAg
IC0gV2Ugbm8gbG9uZ2VyIHVzZSBhIFNwYWNlU3BsaXRTdHJpbmcgZm9yIHRoZSBpbnRlcm5hbCBy
ZXByZXNlbnRhdGlvbgorICAgICAgICAgIGFzIHdlIG5lZWQgdG8gc2FuaXRpemUgdGhlIHRva2Vu
cyAoZHJvcCBkdXBsaWNhdGVzIGFuZCBleHRyYSBzcGFjZXMpLgorICAgICAgICAgIERPTVRva2Vu
TGlzdCBub3cgaGFzIGFuIGludGVybmFsIFZlY3RvcjxBdG9taWNTdHJpbmc+IGNvbnRhaW5pbmcg
dGhlCisgICAgICAgICAgdG9rZW5zIHRoYXQgaXMgY29uc3RydWN0ZWQgZnJvbSB0aGUgYWxnb3Jp
dGhtIGluIFsyXS4gQXMgYSByZXN1bHQsCisgICAgICAgICAgbW9zdCBvZiB0aGUgbG9naWMgaXMg
bm93IGluIERPTVRva2VuTGlzdCBpbnN0ZWFkIG9mIGl0cyBzdWJjbGFzc2VzCisgICAgICAgICAg
d2hpY2ggbWVhbnMgdGhhdCBtb3N0IG1ldGhvZHMgYXJlIG5vIGxvbmdlciB2aXJ0dWFsLiBXZSBv
bmx5IGhhdmUKKyAgICAgICAgICBvbmUgdmlydHVhbCBmdW5jdGlvbiBuYW1lZCB1cGRhdGVBZnRl
clRva2VuQ2hhbmdlKCkgdG8gZG8gdGhlIHVwZGF0ZQorICAgICAgICAgIHN0ZXBzIGFzIEF0dHJp
YnV0ZURPTVRva2VuTGlzdCBuZWVkcyB0byB1cGRhdGUgdGhlIGFzc29jaWF0ZWQKKyAgICAgICAg
ICBhdHRyaWJ1dGUuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZG9lcyBub3Qgc2VlbSB0byBpbXBh
Y3QgRHJvbWFlby4KKworICAgICAgICBbMV0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNj
b25jZXB0LW9yZGVyZWQtc2V0LXNlcmlhbGl6ZXIKKyAgICAgICAgWzJdIGh0dHBzOi8vZG9tLnNw
ZWMud2hhdHdnLm9yZy8jb3JkZXJlZCUyMHNldHMKKyAgICAgICAgWzNdIGh0dHBzOi8vZG9tLnNw
ZWMud2hhdHdnLm9yZy8jc3RyaW5naWZpY2F0aW9uLWJlaGF2aW9yCisgICAgICAgIFs0XSBodHRw
czovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2RvbS1kb21zZXR0YWJsZXRva2VubGlzdC12YWx1ZQor
ICAgICAgICBbNV0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNkb20tZG9tdG9rZW5saXN0
LWNvbnRhaW5zIChzdGVwIDIpCisgICAgICAgIFs2XSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5v
cmcvI2NvbmNlcHQtRFRMLXVwZGF0ZQorICAgICAgICBbN10gaHR0cHM6Ly9idWd6aWxsYS5tb3pp
bGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY5Nzg4CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBh
bHJlYWR5IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjbGFzc0F0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICBXaGVuIHRoZSBjbGFzcyBhdHRyaWJ1dGUgY2hhbmdlcywgbWFrZSBzdXJlIHRv
IHVwZGF0ZSB0aGUgYXNzb2NpYXRlZAorICAgICAgICBjbGFzc0xpc3QgaWYgdGhlcmUgaXMgb25l
LiBXZSBjb3VsZCBkbyB0aGlzIGxhemlseSBpZiBpdCB0dXJucyBvdXQKKyAgICAgICAgdG8gYmUg
YSBwZXJmb3JtYW5jZSBwcm9ibGVtLiBIb3dldmVyLCBjaGFuY2VzIGFyZSB0aGlzIGlzIG5vdCBh
cworICAgICAgICBjbGFzc0xpc3QgaXMgcmFyZWx5IHVzZWQgYW5kIHdlIG9ubHkgbmVlZCB0byB1
cGRhdGUgdGhlIGNsYXNzTGlzdCBpZgorICAgICAgICBpdCB3YXMgZXZlciBhY2Nlc3NlZCBieSBK
UyBmb3IgdGhpcyBFbGVtZW50LgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjppbnNlcnRl
ZEludG8pOgorICAgICAgICBEcm9wIGNhbGwgdG8gY2xlYXJDbGFzc0xpc3RWYWx1ZUZvclF1aXJr
c01vZGUoKSBhcyB3ZSBubyBsb25nZXIgbmVlZAorICAgICAgICB0byBtYWludGFpbiBhIHNlcGFy
YXRlIFNwYWNlU3BsaXRTdHJpbmcgZm9yIGNsYXNzZXMgd2hlbiBpbiBxdWlya3MKKyAgICAgICAg
bW9kZS4gVGhpcyBpcyBiZWNhdXNlIEF0dHJpYnV0ZURPTVRva2VuTGlzdCBub3cgaGFzIGl0cyBv
d24gVmVjdG9yCisgICAgICAgIG9mIGNsYXNzZXMgaW4gdGhlaXIgb3JpZ2luYWwgY2FzZXMuIEl0
IHRoZXJlZm9yZSBubyBsb25nZXIgcmVsaWVzIG9uCisgICAgICAgIEVsZW1lbnQ6OmNsYXNzTmFt
ZXMoKSB3aGljaCBoYXMgaXRzIGNhc2UgZm9sZGVkIHdoZW4gaW4gcXVpcmtzIG1vZGUuCisKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNsYXNzTGlzdCk6CisgICAgICAgIFJldHVybiBhIEF0
dHJpYnV0ZURPTVRva2VuTGlzdCBpbnN0ZWFkIG9mIGEgQ2xhc3NMaXN0LgorCisgICAgICAgICog
aHRtbC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuaDogQWRkZWQuCisgICAgICAgICogaHRtbC9BdHRy
aWJ1dGVET01Ub2tlbkxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF0dHJpYnV0
ZURPTVRva2VuTGlzdDo6QXR0cmlidXRlRE9NVG9rZW5MaXN0KToKKyAgICAgICAgQ2FsbCBET01U
b2tlbkxpc3Q6OnNldFZhbHVlKCkgdXNpbmcgdGhlIGF0dHJpYnV0ZSdzIHZhbHVlIHNvIHRoYXQK
KyAgICAgICAgRE9NVG9rZW5MaXN0IGNhbiBpbml0aWFsaXplIGl0cyB0b2tlbiBWZWN0b3IuCisK
KyAgICAgICAgKFdlYkNvcmU6OkF0dHJpYnV0ZURPTVRva2VuTGlzdDo6YXR0cmlidXRlVmFsdWVD
aGFuZ2VkKToKKyAgICAgICAgSWYgdGhlIGF0dHJpYnV0ZSB2YWx1ZSB3YXMgY2hhbmdlZCBieSBz
b21lYm9keSBlbHNlIHRoYXQgdGhlCisgICAgICAgIEF0dHJpYnV0ZURPTVRva2VuTGlzdCwgY2Fs
bCBET01Ub2tlbkxpc3Q6OnNldFZhbHVlKCkgc28gdGhhdCBpdAorICAgICAgICBjYW4gdXBkYXRl
IGl0cyB0b2tlbiBWZWN0b3IuCisKKyAgICAgICAgKFdlYkNvcmU6OkF0dHJpYnV0ZURPTVRva2Vu
TGlzdDo6dXBkYXRlQWZ0ZXJUb2tlbkNoYW5nZSk6CisgICAgICAgIFRoaXMgaXMgY2FsbGVkIHdo
ZW5ldmVyIHRoZSB0b2tlbiBWZWN0b3IgaXMgY2hhbmdlZCB2aWEgSlMuIEluCisgICAgICAgIHRo
aXMgY2FzZSwgd2UgdXBkYXRlIHRoZSBhc3NvY2lhdGVkIGF0dHJpYnV0ZSdzIHZhbHVlLgorCisg
ICAgICAgICogaHRtbC9DbGFzc0xpc3QuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwvQ2xh
c3NMaXN0Lmg6IFJlbW92ZWQuCisgICAgICAgIE5vdyBtZXJnZWQgaW50byBBdHRyaWJ1dGVET01U
b2tlbkxpc3QuCisKKyAgICAgICAgKiBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcDoKKyAg
ICAgICAgKiBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0Lmg6CisgICAgICAgIEdldCByaWQgb2Yg
bW9zdCBvZiB0aGUgY29kZSBhcyBtb3N0IG9mIHRoZSBsb2dpYyBpcyBub3cgaW4KKyAgICAgICAg
RE9NVG9rZW5MaXN0IHBhcmVudCBjbGFzcy4KKworICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbik6Cisg
ICAgICAgIFVzZSBhIFN0cmluZyBwYXJhbWV0ZXIgaW5zdGVhZCBvZiBhbiBBdG9taWNTdHJpbmcg
YXMgdGhpcyBtZXRob2QgZG9lcworICAgICAgICBub3QgbmVlZCB0aGUgaW5wdXQgdGhlIGJlIGFu
IEF0b21pY1N0cmluZy4gVGhpcyBhdm9pZCBhdG9taXppbmcKKyAgICAgICAgU3RyaW5nIHVubmVj
ZXNzYXJpbHkuCisKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tl
bnMpOgorICAgICAgICBVc2UgYSBtb2Rlcm4gbG9vcC4KKworICAgICAgICAoV2ViQ29yZTo6RE9N
VG9rZW5MaXN0Ojpjb250YWlucyk6CisgICAgICAgIE5vIGxvbmdlciB1c2UgY29udGFpbnNJbnRl
cm5hbCgpIHZpcnR1YWwgZnVuY3Rpb24uIFdlIGNhbiBub3cgY2hlY2sKKyAgICAgICAgdGhlIGlu
dGVybmFsIHRva2VuIFZlY3Rvci4KKworICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojph
ZGQpOgorICAgICAgICBOb3cgdXBkYXRlIHRoZSBpbnRlcm5hbCBWZWN0b3IuIFVzZSBhIG1vZGVy
biBsb29wIGFuZCB0cnkgdG8gbWluaW1pemUKKyAgICAgICAgVmVjdG9yIGNhcGFjaXR5IHJlYWxs
b2NhdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjpyZW1vdmUpOgorICAg
ICAgICBOb3cgdXBkYXRlIHRoZSBpbnRlcm5hbCBWZWN0b3IuCisKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVRva2VuTGlzdDo6dG9nZ2xlKToKKyAgICAgICAgTm93IHVwZGF0ZSB0aGUgaW50ZXJuYWwg
VmVjdG9yIGFuZCByZWZhY3RvciB0aGUgY29kZSBzbyB0aGF0IGl0IGlzCisgICAgICAgIHN0cnVj
dHVyZWQgZXhhY3RseSBhcyB0aGUgYWxnb3JpdGhtIGluIHRoZSBzcGVjaWZpY2F0aW9uIGZvcgor
ICAgICAgICBjbGFyaXR5LgorCisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnZhbHVl
KToKKyAgICAgICAgTm93IHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBvcmRlcmVkIHNldCBzZXJp
YWxpemVyIGZvciB0b2tlbnMuIFRoaXMKKyAgICAgICAgbWV0aG9kIGlzIHVzZWQgZm9yOgorICAg
ICAgICAtIFRoZSBET01TZXR0YWJsZVRva2VuTGlzdC52YWx1ZSgpIGdldHRlcgorICAgICAgICAt
IFRoZSBET01Ub2tlbkxpc3Qgc3RyaW5naWZpZXIKKyAgICAgICAgLSBBcyBhdHRyaWJ1dGUgdmFs
dWUgd2hlbiB1cGRhdGluZyB0aGUgYXNzb2NpYXRlZCBhdHRyaWJ1dGUgaW4KKyAgICAgICAgICBB
dHRyaWJ1dGVET01Ub2tlbkxpc3QuCisKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6
c2V0VmFsdWUpOgorICAgICAgICBVcGRhdGUgdGhlIGludGVybmFsIFZlY3RvciB1c2luZyB0aGUg
YWxnb3JpdGhtIGluIFsyXS4KKworICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6Omxlbmd0aCk6CisgICAgICAgIE5vIGxvbmdlciB2
aXJ0dWFsLCBub3cgcmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgaW50ZXJuYWwgdG9rZW4gVmVjdG9y
LgorCisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6Oml0ZW0pOgorICAgICAgICBObyBs
b25nZXIgdmlydHVhbCwgbm93IHJldHVybnMgdGhlIHRva2VuIGF0IHRoZSBnaXZlbiBpbmRleCBp
biB0aGUKKyAgICAgICAgaW50ZXJuYWwgVmVjdG9yLgorCisgICAgICAgICogaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cmVs
TGlzdCk6CisgICAgICAgIE5vdyByZXR1cm4gYSBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuCisKKyAg
ICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TGlua0VsZW1lbnQ6OnJlbExpc3QpOgorICAgICAgICBOb3cgcmV0dXJuIGEgQXR0cmlidXRlRE9N
VG9rZW5MaXN0LgorCisgICAgICAgICogaHRtbC9SZWxMaXN0LmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBodG1sL1JlbExpc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgTm93IG1lcmdlZCBpbnRvIEF0
dHJpYnV0ZURPTVRva2VuTGlzdC4KKwogMjAxNS0wOS0xMCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgV3JpdGUgYSB0ZXN0IHRvIGVuc3VyZSB3ZSBkb24ndCBy
ZWdyZXNzIHByb2Nlc3Npbmcgb2YgdGFza3Mgd2hlbiBwYWdlIGRlZmVycyBsb2FkaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDEwODQ4NGJkZmUxNTgzOGE4Mzg3YTEyYzc1ZGE1MTE5ZmEyYWJm
YWUuLjBmMzE0NTFmZTc0MmViZWY0ZmZiZDE2ZmIxZTRiZjI2MTJiMTFjYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNTczLDYgKzE1NzMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
aGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5jcHAKIAorICAg
IGh0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcAogICAgIGh0bWwvQmFzZUJ1dHRvbklucHV0
VHlwZS5jcHAKICAgICBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTE1ODEsNyArMTU4Miw2
IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcAog
ICAgIGh0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAogICAgIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUu
Y3BwCi0gICAgaHRtbC9DbGFzc0xpc3QuY3BwCiAgICAgaHRtbC9Db2xvcklucHV0VHlwZS5jcHAK
ICAgICBodG1sL0RPTUZvcm1EYXRhLmNwcAogICAgIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3Qu
Y3BwCkBAIC0xNzA1LDcgKzE3MDUsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9S
YWRpb0lucHV0VHlwZS5jcHAKICAgICBodG1sL1JhZGlvTm9kZUxpc3QuY3BwCiAgICAgaHRtbC9S
YW5nZUlucHV0VHlwZS5jcHAKLSAgICBodG1sL1JlbExpc3QuY3BwCiAgICAgaHRtbC9SZXNldElu
cHV0VHlwZS5jcHAKICAgICBodG1sL1J1YnlFbGVtZW50LmNwcAogICAgIGh0bWwvUnVieVRleHRF
bGVtZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKaW5kZXggZDVmMDExOWFiYmQyZWZjYTRiYjY5YWQ5ZDJkNTU2NDQzYTQyMDVhZS4uNjFi
YWNkMGRhODFhZDZkZmQzMTEwOTY1MTBmMjI3YjQ3YWQ5NTFkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xNjA0Miw2ICsxNjA0Miw3
IEBACiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XHdpblxFZGl0b3JXaW4uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZmlsZWFw
aVxBc3luY0ZpbGVTdHJlYW0uY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRt
bFxBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5caHRtbFxCYXNlQnV0dG9uSW5wdXRUeXBlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGh0bWxcQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcCIgLz4K
QEAgLTE2MDU2LDcgKzE2MDU3LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxc
Y2FudmFzXENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxodG1sXGNhbnZhc1xDYW52YXNTdHlsZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxodG1sXENoZWNrYm94SW5wdXRUeXBlLmNwcCIgLz4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGh0bWxcQ2xhc3NMaXN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGh0bWxcQ29sb3JJbnB1dFR5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caHRtbFxEYXRlSW5wdXRUeXBlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGh0bWxcRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIiAvPgpAQCAtMTcyMTUsNyArMTcyMTUs
NiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxSYWRpb0lucHV0VHlwZS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXFJhZGlvTm9kZUxpc3QuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxSYW5nZUlucHV0VHlwZS5jcHAiIC8+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXFJlbExpc3QuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxSZXNldElucHV0VHlwZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXFJ1YnlFbGVtZW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGh0bWxcUnVieVRleHRFbGVtZW50LmNwcCIgLz4KQEAgLTIyMTc4LDYg
KzIyMTc3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVmlzaWJsZVVu
aXRzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFdyYXBDb250ZW50
c0luRHVtbXlTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZmls
ZWFwaVxBc3luY0ZpbGVTdHJlYW0uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0
bWxcQXR0cmlidXRlRE9NVG9rZW5MaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxodG1sXEJhc2VCdXR0b25JbnB1dFR5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGh0bWxcQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caHRtbFxCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIiAvPgpAQCAtMjIx
OTIsNyArMjIxOTIsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNc
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxodG1sXGNhbnZhc1xDYW52YXNTdHlsZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caHRtbFxDaGVja2JveElucHV0VHlwZS5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caHRtbFxDbGFzc0xpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxc
Q29sbGVjdGlvblR5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcQ29s
b3JJbnB1dFR5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcRGF0ZUlu
cHV0VHlwZS5oIiAvPgpAQCAtMjIzMjUsNyArMjIzMjQsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caHRtbFxSYWRpb0lucHV0VHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caHRtbFxSYWRpb05vZGVMaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxodG1sXFJhbmdlSW5wdXRUeXBlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxo
dG1sXFJlbExpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcUmVzZXRJ
bnB1dFR5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcUnVieUVsZW1l
bnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcUnVieVRleHRFbGVtZW50
LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZDllMzNjNjg4NzQ1NzAwYjk1MzEyOGMxZmEzNzQ5NGU3
YzEyM2JjNy4uMTc1YTkzOTE2MTU1YjU2MmI5MTNmZjhiYWFmOGYwZjNmM2MyZTJhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMzU5MSw2ICszNTkxLDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGZpbGVhcGlcQXN5bmNGaWxlU3RyZWFtLmNwcCI+CiAgICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcQXR0
cmlidXRlRE9NVG9rZW5MaXN0LmNwcCI+CisgICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcQmFzZUJ1dHRv
bklucHV0VHlwZS5jcHAiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC0zNjE4LDkgKzM2MjEsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
aHRtbFxDaGVja2JveElucHV0VHlwZS5jcHAiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXENsYXNz
TGlzdC5jcHAiPgotICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXENvbG9ySW5wdXRUeXBlLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM5OTksOSAr
Mzk5OSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXFJhbmdlSW5wdXRUeXBl
LmNwcCI+CiAgICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcUmVsTGlzdC5jcHAiPgotICAgICAgPEZpbHRl
cj5odG1sPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxodG1sXFJlc2V0SW5wdXRUeXBlLmNwcCI+CiAgICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwNzQ4LDYgKzEwNzQ1LDkgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGZpbGVhcGlcQXN5bmNGaWxlU3RyZWFtLmgiPgogICAgICAgPEZpbHRl
cj5odG1sPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxodG1sXEF0dHJpYnV0ZURPTVRva2VuTGlzdC5oIj4KKyAgICAgIDxGaWx0ZXI+aHRtbDwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRt
bFxCYXNlQnV0dG9uSW5wdXRUeXBlLmgiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xMDc3NSw5ICsxMDc3NSw2IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxodG1sXENoZWNrYm94SW5wdXRUeXBlLmgiPgogICAgICAgPEZpbHRlcj5odG1s
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxo
dG1sXENsYXNzTGlzdC5oIj4KLSAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgotICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxDb2xsZWN0aW9uVHlwZS5o
Ij4KICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTEx
NjgsOSArMTExNjUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxSYW5nZUlu
cHV0VHlwZS5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxSZWxMaXN0LmgiPgotICAgICAgPEZp
bHRlcj5odG1sPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxodG1sXFJlc2V0SW5wdXRUeXBlLmgiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTJhODk1N2I1OTg3YzliZDUyMmExYTI1YmRmODY4
NGY1OWM5MzY0ZC4uYzJmNzU4ZjVkMGYzZjFmNjVmZDk2NWIyYTE2OGZkMmQ3MDA3OTg2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTY4Niw2ICsxNjg2LDggQEAKIAkJNDVCQUMyQjAxMzYwQkJBQjAwNURBMjU4IC8qIEljb25V
UkwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1QkFD
MkFGMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJMLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDVGRUE1Q0YxNTZEREU4QzAwNjU0MTAxIC8qIERl
Y2ltYWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDVGRUE1Q0QxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuY3BwICovOyB9OwogCQk0NUZFQTVE
MDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDVGRUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NjIz
M0VFRTFCQTBGMTg3MDAwRUJFQkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjIzM0VFRDFCQTBGMTdBMDAw
RUJFQkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0LmggKi87IH07CisJCTQ2MjMzRUVGMUJBMEYx
OEIwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYyMzNFRUMxQkEwRjE3QTAwMEVCRUJCIC8q
IEF0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgKi87IH07CiAJCTQ2MzQ1OTJDMUFDMjI3MTAwMEVD
QjcxQyAvKiBQb3dlck9ic2VydmVyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2Vy
dmVyTWFjLmNwcCAqLzsgfTsKIAkJNDYzNDU5MkUxQUMyMjczQzAwRUNCNzFDIC8qIFNoYXJlZFRp
bWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYzNDU5MkQxQUMyMjczQzAwRUNCNzFDIC8qIFNoYXJlZFRpbWVyQ0YuY3BwICovOyB9OwogCQk0
NjNFQjYyMjFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNFQjYyMDFCODc4OUNCMDA5NkVE
NTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgKi87IH07CkBAIC0xODUzLDggKzE4NTUsNiBAQAogCQk0
QTlDQzgxODE2QkI5QUM2MDBFQzY0NUEgLyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTlDQzgxNjE2QkI5QUM2
MDBFQzY0NUEgLyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmggKi87IH07CiAJCTRBOUNDODIwMTZC
RjlCQjQwMEVDNjQ1QSAvKiBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOUNDODFFMTZCRjlCQjQwMEVDNjQ1
QSAvKiBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCAqLzsgfTsKIAkJNEE5Q0M4MjExNkJGOUJC
NDAwRUM2NDVBIC8qIEluc3BlY3RvckNTU09NV3JhcHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOUNDODFGMTZCRjlCQjQwMEVDNjQ1QSAvKiBJ
bnNwZWN0b3JDU1NPTVdyYXBwZXJzLmggKi87IH07Ci0JCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlC
MiAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEFDQkMwQkMxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi87IH07
Ci0JCTRBQ0JDMEJGMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlC
MiAvKiBDbGFzc0xpc3QuaCAqLzsgfTsKIAkJNEFDQkMwQzMxMjcxM0NDQTAwOTRGOUIyIC8qIERP
TVNldHRhYmxlVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRBQ0JDMEMwMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2Vu
TGlzdC5jcHAgKi87IH07CiAJCTRBQ0JDMEM0MTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJs
ZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEFDQkMwQzExMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmggKi87
IH07CiAJCTRBQ0JDMENBMTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JD
MEM4MTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLzsgfTsK
QEAgLTQ4OTIsOCArNDg5Miw2IEBACiAJCUIyRUQ5NzcxMEIxRjU1Q0UwMDI1N0QwRiAvKiBHcmFw
aGljc0NvbnRleHRDRy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkVEOTc3MDBCMUY1NUNFMDAyNTdEMEYgLyogR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
ICovOyB9OwogCQlCMkYzNEZFNjBFODJGODE0MDBGNjI3Q0QgLyogRE5TLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkYzNEZFNTBFODJGODE0MDBGNjI3
Q0QgLyogRE5TLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQjJGMzRGRTkwRTgyRjgyNzAwRjYyN0NEIC8qIEROU0NGTmV0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRjM0RkU4MEU4MkY4MjcwMEY2
MjdDRCAvKiBETlNDRk5ldC5jcHAgKi87IH07Ci0JCUIyRjc4Q0ZEMTlGMkYwMkQwMDQ5Njk2QyAv
KiBSZWxMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyRjc4Q0ZCMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0LmNwcCAqLzsgfTsKLQkJQjJG
NzhDRkUxOUYyRjAyRDAwNDk2OTZDIC8qIFJlbExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRjc4Q0ZDMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxM
aXN0LmggKi87IH07CiAJCUIyRkEzRDM2MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVD
b2xvckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjJGQTNDNEUwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5jcHAgKi87IH07CiAJCUIyRkEzRDM3MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVD
b2xvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyRkEzQzRGMEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVDb2xvckVsZW1lbnQu
aCAqLzsgfTsKIAkJQjJGQTNEMzgwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRBbmds
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkZB
M0M1MDBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlZEFuZ2xlLmNwcCAqLzsgfTsKQEAg
LTg5MzQsNiArODkzMiw4IEBACiAJCTQ1QkFDMkFGMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJM
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEljb25VUkwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVGRUE1Q0QxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVjaW1hbC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBE
ZWNpbWFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY2ltYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYyMzNFRUMxQkEwRjE3QTAwMEVCRUJCIC8qIEF0
dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwOyBwYXRoID0gLi4vQXR0cmlidXRlRE9NVG9r
ZW5MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYyMzNFRUQxQkEwRjE3
QTAwMEVCRUJCIC8qIEF0dHJpYnV0ZURPTVRva2VuTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaDsgcGF0aCA9IC4uL0F0dHJpYnV0
ZURPTVRva2VuTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM0NTkyQjFB
QzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQb3dlck9ic2VydmVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkQxQUMyMjczQzAwRUNCNzFDIC8qIFNoYXJlZFRpbWVyQ0Yu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkVGltZXJDRi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFRhZ0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTEx
Nyw4ICs5MTE3LDYgQEAKIAkJNEE5Q0M4MTYxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRT
dHlsZVNoZWV0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NEZWZhdWx0
U3R5bGVTaGVldHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE5Q0M4MUUxNkJG
OUJCNDAwRUM2NDVBIC8qIEluc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBOUNDODFGMTZCRjlCQjQwMEVDNjQ1QSAvKiBJbnNw
ZWN0b3JDU1NPTVdyYXBwZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3RvckNTU09NV3JhcHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEFD
QkMwQkMxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDbGFzc0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsYXNzTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0QUNCQzBDMDEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NU2V0dGFibGVU
b2tlbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QUNCQzBDMTEyNzEz
Q0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NU2V0dGFibGVUb2tlbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEFDQkMwQzIxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5M
aXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01TZXR0YWJsZVRva2VuTGlzdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjQ3Miw4ICsxMjQ3MCw2IEBACiAJCUIy
RUQ5NzcwMEIxRjU1Q0UwMDI1N0QwRiAvKiBHcmFwaGljc0NvbnRleHRDRy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0Q0cuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkYzNEZFNTBFODJGODE0MDBGNjI3Q0QgLyogRE5T
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEROUy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMkYzNEZFODBFODJGODI3MDBGNjI3Q0QgLyogRE5TQ0ZOZXQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE5TQ0ZOZXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMkY3OENGQjE5RjJGMDJEMDA0OTY5NkMgLyogUmVs
TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWxMaXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjJGNzhDRkMxOUYyRjAyRDAwNDk2OTZD
IC8qIFJlbExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVsTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkZBM0M0RTBBQjc1QTZFMDAwRTVBQzQg
LyogSlNTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMkZBM0M0RjBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdBbmltYXRl
Q29sb3JFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0Fu
aW1hdGVDb2xvckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJGQTND
NTAwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdBbmltYXRlZEFuZ2xlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTk2LDggKzE4MTkyLDYgQEAKIAkJCQk4MzAwMzBG
NzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLywKIAkJCQlGNTVC
M0Q3RDEyNTFGMTJEMDAzRUYyNjkgLyogQ2hlY2tib3hJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1
NUIzRDdFMTI1MUYxMkQwMDNFRjI2OSAvKiBDaGVja2JveElucHV0VHlwZS5oICovLAotCQkJCTRB
Q0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwICovLAotCQkJCTRBQ0JDMEJE
MTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCAqLywKIAkJCQk0NkVCRUEwMTFCN0Q0RDVE
MDBCRTQ5NDEgLyogQ29sbGVjdGlvblRyYXZlcnNhbC5oICovLAogCQkJCTkzQzQ0MUZGMEY4MTNB
RTEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uVHlwZS5oICovLAogCQkJCUJDMjk5MzVDMTdBMURENTgw
MEJDRTg4MCAvKiBDb2xvcklucHV0VHlwZS5jcHAgKi8sCkBAIC0xODU0MSw4ICsxODUzNSw2IEBA
CiAJCQkJQjY1OEZGQTQxNTIyRUZBQTAwREQ1NTk1IC8qIFJhZGlvTm9kZUxpc3QuaCAqLywKIAkJ
CQlGNTVCM0Q5OTEyNTFGMTJEMDAzRUYyNjkgLyogUmFuZ2VJbnB1dFR5cGUuY3BwICovLAogCQkJ
CUY1NUIzRDlBMTI1MUYxMkQwMDNFRjI2OSAvKiBSYW5nZUlucHV0VHlwZS5oICovLAotCQkJCUIy
Rjc4Q0ZCMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0LmNwcCAqLywKLQkJCQlCMkY3OENGQzE5
RjJGMDJEMDA0OTY5NkMgLyogUmVsTGlzdC5oICovLAogCQkJCUY1NUIzRDlCMTI1MUYxMkQwMDNF
RjI2OSAvKiBSZXNldElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOUMxMjUxRjEyRDAwM0VG
MjY5IC8qIFJlc2V0SW5wdXRUeXBlLmggKi8sCiAJCQkJNTgyNEFCQTAxQUU4MTExNjAwOTA3NEI3
IC8qIFJ1YnlFbGVtZW50LmNwcCAqLywKQEAgLTIwMjkxLDYgKzIwMjgzLDggQEAKIAkJQjFBRDRF
NzcxM0ExMkE3MjAwODQ2QjI3IC8qIHRyYWNrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQk0NjIzM0VFQzFCQTBGMTdBMDAwRUJFQkIgLyogQXR0cmlidXRl
RE9NVG9rZW5MaXN0LmNwcCAqLywKKwkJCQk0NjIzM0VFRDFCQTBGMTdBMDAwRUJFQkIgLyogQXR0
cmlidXRlRE9NVG9rZW5MaXN0LmggKi8sCiAJCQkJQkU4OEUwQ0MxNzE1RDJBMjAwNjU4RDk4IC8q
IEF1ZGlvVHJhY2suY3BwICovLAogCQkJCUJFODhFMENEMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRp
b1RyYWNrLmggKi8sCiAJCQkJQkU4OEUwQ0UxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2su
aWRsICovLApAQCAtMjQyMDEsNyArMjQxOTUsNiBAQAogCQkJCUE4MTg3MjIwMDk3N0QzQzAwMDU4
MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQ4MjM1MjBBRjky
QTc5MDAwNEYwNTcgLyogQ2hyb21lLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQ4MjQwODBBRjkz
QUVCMDAwNEYwNTcgLyogQ2hyb21lQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk0QUNCQzBC
RjEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Mw
NjU3RTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMDY1ODEwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NTAzMUI0MDBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjYzMzMsNiArMjYzMjYsNyBAQAogCQkJCTk3MDU5OTc4MTA3RDk3NTIw
MEE1MEE3QyAvKiBQb2xpY3lDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcwNTk5N0Ex
MDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
NDVBOTU3MTc1RDQxNEMwMEMyMUVDOCAvKiBQb2x5Z29uU2hhcGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ2MjMzRUVFMUJBMEYxODcwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNzRFMjBBMTBBMUY0NEYwMEY5NUU2RiAvKiBQb3BTdGF0ZUV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9w
dXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUgLyog
UG9wdXBNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2Mzk1LDcgKzI2Mzg5LDYgQEAK
IAkJCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyNkI5OTk4RjE4MDNBRTcyMDBEMDExMjEgLyogUmVnaXN0ZXJBbGxv
Y2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRDMEE0NEVGQzcwMEY5OTJFMCAvKiBS
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjJGNzhDRkUxOUYy
RjAyRDAwNDk2OTZDIC8qIFJlbExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERkMzNjA2MThD
QTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzMzA5RTAxMDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUQwNkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVG
b3JtYXRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKQEAgLTI4MDAwLDcgKzI3OTkzLDYgQEAKIAkJ
CQlBODE4NzIyNTA5NzdEM0MwMDA1ODI2RDkgLyogQ2hpbGROb2RlTGlzdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNEQ4MjM4QjBBRjkyREY2MDAwNEYwNTcgLyogQ2hyb21lLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUFCQUYyMjA4MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJvbWVNYWMubW0gaW4g
U291cmNlcyAqLywKLQkJCQk0QUNCQzBCRTEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRS
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUIzRjBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg3NSw2ICsy
ODg2Nyw3IEBACiAJCQkJQjI3NTM1NjAwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Q0cuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0MwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NzMwQjA1MzgxNDAwMkNFNjRGIC8qIElu
dFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDYyMzNFRUYxQkEwRjE4QjAwMEVCRUJCIC8q
IEF0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2MTBC
MDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdENHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUz
NTdEMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQ0NkYwNTAxN0I5NkZEMjAwNTY0N0YwIC8qIEludFNpemUuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yOTkyOCw3ICsyOTkyMSw2IEBACiAJCQkJRkQ0NUE5NUExNzVENDE3MTAwQzIxRUM4IC8qIFJl
Y3RhbmdsZVNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQUI0MTgxMTNFMzU2RTgwMEQ4
QUFGMyAvKiBSZWdpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNEIwQTQ0RUZDNzAw
Rjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUIyRjc4Q0ZEMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNERkMzNjA1MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGQzM2MDcxOENBNjk2QzAwMjZFNTZGIC8qIFJlbW90ZUNv
bW1hbmRMaXN0ZW5lcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTAwMDk5RTY0OTIw
MDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNjc1MDAwYTU0YTcwODI5YzBkMTExMmQ5OGJmODliY2Fj
ZGQ3YzM5Yy4uMWRmYmQyNjJlMGE1ZGVjYWZkOWIzYTgzZDM2NDRiZDFhY2M2MjU4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcApAQCAtMTM0Nyw4ICsxMzQ3LDEwIEBAIHZvaWQgRWxlbWVudDo6Y2xh
c3NBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3Q2xhc3NTdHJpbmcpCiAg
ICAgICAgIGVsZW1lbnREYXRhKCktPmNsZWFyQ2xhc3MoKTsKICAgICB9CiAKLSAgICBpZiAoaGFz
UmFyZURhdGEoKSkKLSAgICAgICAgZWxlbWVudFJhcmVEYXRhKCktPmNsZWFyQ2xhc3NMaXN0VmFs
dWVGb3JRdWlya3NNb2RlKCk7CisgICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIGNsYXNzTGlzdCA9IGVsZW1lbnRSYXJlRGF0YSgpLT5jbGFzc0xpc3QoKSkKKyAgICAg
ICAgICAgIGNsYXNzTGlzdC0+YXR0cmlidXRlVmFsdWVDaGFuZ2VkKG5ld0NsYXNzU3RyaW5nKTsK
KyAgICB9CiAKICAgICBpZiAoc2hvdWxkSW52YWxpZGF0ZVN0eWxlKQogICAgICAgICBzZXROZWVk
c1N0eWxlUmVjYWxjKCk7CkBAIC0xNTE2LDkgKzE1MTgsNiBAQCBOb2RlOjpJbnNlcnRpb25Ob3Rp
ZmljYXRpb25SZXF1ZXN0IEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNl
cnRpbwogICAgIGlmICghaW5zZXJ0aW9uUG9pbnQuaXNJblRyZWVTY29wZSgpKQogICAgICAgICBy
ZXR1cm4gSW5zZXJ0aW9uRG9uZTsKIAotICAgIGlmIChoYXNSYXJlRGF0YSgpKQotICAgICAgICBl
bGVtZW50UmFyZURhdGEoKS0+Y2xlYXJDbGFzc0xpc3RWYWx1ZUZvclF1aXJrc01vZGUoKTsKLQog
ICAgIFRyZWVTY29wZSogbmV3U2NvcGUgPSAmaW5zZXJ0aW9uUG9pbnQudHJlZVNjb3BlKCk7CiAg
ICAgSFRNTERvY3VtZW50KiBuZXdEb2N1bWVudCA9ICF3YXNJbkRvY3VtZW50ICYmIGluRG9jdW1l
bnQoKSAmJiBpczxIVE1MRG9jdW1lbnQ+KG5ld1Njb3BlLT5kb2N1bWVudFNjb3BlKCkpID8gJmRv
d25jYXN0PEhUTUxEb2N1bWVudD4obmV3U2NvcGUtPmRvY3VtZW50U2NvcGUoKSkgOiBudWxscHRy
OwogICAgIGlmIChuZXdTY29wZSAhPSAmdHJlZVNjb3BlKCkpCkBAIC0yNjU1LDcgKzI2NTQsNyBA
QCBET01Ub2tlbkxpc3QmIEVsZW1lbnQ6OmNsYXNzTGlzdCgpCiB7CiAgICAgRWxlbWVudFJhcmVE
YXRhJiBkYXRhID0gZW5zdXJlRWxlbWVudFJhcmVEYXRhKCk7CiAgICAgaWYgKCFkYXRhLmNsYXNz
TGlzdCgpKQotICAgICAgICBkYXRhLnNldENsYXNzTGlzdChzdGQ6Om1ha2VfdW5pcXVlPENsYXNz
TGlzdD4oKnRoaXMpKTsKKyAgICAgICAgZGF0YS5zZXRDbGFzc0xpc3Qoc3RkOjptYWtlX3VuaXF1
ZTxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFtZXM6OmNsYXNzQXR0cikpOwog
ICAgIHJldHVybiAqZGF0YS5jbGFzc0xpc3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRS
YXJlRGF0YS5oCmluZGV4IDMxYzgzZGU2MTMzMjI1OWJjN2IzNWE2MDM0OGZiZmI4MDBlYTAyNTgu
LjU5ODFjZjRhZjY0NDU5MWZkYjhkNDRmNDk3OTA3NzliYmJhMWQ4YjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTIyLDcgKzIyLDcgQEAKICNpZm5kZWYgRWxlbWVudFJh
cmVEYXRhX2gKICNkZWZpbmUgRWxlbWVudFJhcmVEYXRhX2gKIAotI2luY2x1ZGUgIkNsYXNzTGlz
dC5oIgorI2luY2x1ZGUgIkF0dHJpYnV0ZURPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRhdGFz
ZXRET01TdHJpbmdNYXAuaCIKICNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIKICNpbmNsdWRlICJO
b2RlUmFyZURhdGEuaCIKQEAgLTkyLDE0ICs5Miw4IEBAIHB1YmxpYzoKICAgICBSZW5kZXJTdHls
ZSogY29tcHV0ZWRTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZWRTdHlsZS5nZXQoKTsg
fQogICAgIHZvaWQgc2V0Q29tcHV0ZWRTdHlsZShSZWY8UmVuZGVyU3R5bGU+JiYgY29tcHV0ZWRT
dHlsZSkgeyBtX2NvbXB1dGVkU3R5bGUgPSBXVEY6Om1vdmUoY29tcHV0ZWRTdHlsZSk7IH0KIAot
ICAgIENsYXNzTGlzdCogY2xhc3NMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0xpc3QuZ2V0
KCk7IH0KLSAgICB2b2lkIHNldENsYXNzTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q2xhc3NMaXN0PiBj
bGFzc0xpc3QpIHsgbV9jbGFzc0xpc3QgPSBXVEY6Om1vdmUoY2xhc3NMaXN0KTsgfQotICAgIHZv
aWQgY2xlYXJDbGFzc0xpc3RWYWx1ZUZvclF1aXJrc01vZGUoKQotICAgIHsKLSAgICAgICAgaWYg
KCFtX2NsYXNzTGlzdCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9jbGFzc0xpc3Qt
PmNsZWFyVmFsdWVGb3JRdWlya3NNb2RlKCk7Ci0gICAgfQorICAgIEF0dHJpYnV0ZURPTVRva2Vu
TGlzdCogY2xhc3NMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0xpc3QuZ2V0KCk7IH0KKyAg
ICB2b2lkIHNldENsYXNzTGlzdChzdGQ6OnVuaXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9rZW5MaXN0
PiBjbGFzc0xpc3QpIHsgbV9jbGFzc0xpc3QgPSBXVEY6Om1vdmUoY2xhc3NMaXN0KTsgfQogCiAg
ICAgRGF0YXNldERPTVN0cmluZ01hcCogZGF0YXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YXNl
dC5nZXQoKTsgfQogICAgIHZvaWQgc2V0RGF0YXNldChzdGQ6OnVuaXF1ZV9wdHI8RGF0YXNldERP
TVN0cmluZ01hcD4gZGF0YXNldCkgeyBtX2RhdGFzZXQgPSBXVEY6Om1vdmUoZGF0YXNldCk7IH0K
QEAgLTE0MCw3ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9j
b21wdXRlZFN0eWxlOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFzZXRET01TdHJpbmdNYXA+
IG1fZGF0YXNldDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2xhc3NMaXN0PiBtX2NsYXNzTGlzdDsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9rZW5MaXN0PiBtX2NsYXNzTGlzdDsK
ICAgICBSZWZQdHI8U2hhZG93Um9vdD4gbV9zaGFkb3dSb290OwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxOYW1lZE5vZGVNYXA+IG1fYXR0cmlidXRlTWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODhlYzZmNDY2NGVkMzc1ZTg1
MDQxOTU1OWYzNTFlNzJkNzBhZjA1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF0dHJpYnV0ZURPTVRva2VuTGlz
dC5oIgorCisjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0F0dHJpYnV0ZURPTVRva2VuTGlzdDo6QXR0cmlidXRlRE9NVG9rZW5MaXN0KEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAg
OiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fYXR0cmlidXRlTmFtZShhdHRyaWJ1dGVOYW1l
KQoreworICAgIHNldFZhbHVlKG1fZWxlbWVudC5nZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1l
KSk7Cit9CisKK3ZvaWQgQXR0cmlidXRlRE9NVG9rZW5MaXN0OjphdHRyaWJ1dGVWYWx1ZUNoYW5n
ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdWYWx1ZSkKK3sKKyAgICAvLyBEbyBub3QgcmVzZXQg
dGhlIERPTVRva2VuTGlzdCB2YWx1ZSBpZiB0aGUgYXR0cmlidXRlIHZhbHVlIHdhcyBjaGFuZ2Vk
IGJ5IHVzLgorICAgIGlmIChtX2lzVXBkYXRpbmdBdHRyaWJ1dGVWYWx1ZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZShuZXdWYWx1ZSk7Cit9CisKK3ZvaWQg
QXR0cmlidXRlRE9NVG9rZW5MaXN0Ojp1cGRhdGVBZnRlclRva2VuQ2hhbmdlKCkKK3sKKyAgICBE
T01Ub2tlbkxpc3Q6OnVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKTsKKworICAgIFRlbXBvcmFyeUNo
YW5nZTxib29sPiBpbkF0dHJpYnV0ZVVwZGF0ZShtX2lzVXBkYXRpbmdBdHRyaWJ1dGVWYWx1ZSwg
dHJ1ZSk7CisgICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUsIHZhbHVl
KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9B
dHRyaWJ1dGVET01Ub2tlbkxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDk3MmUzOTcxYzg0OGQwYTE3MmI3
MTBhYmFkZjJmNWVkYzc5MGVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBBdHRyaWJ1dGVET01Ub2tlbkxpc3RfaAorI2RlZmluZSBBdHRyaWJ1dGVET01Ub2tl
bkxpc3RfaAorCisjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF0dHJpYnV0ZURPTVRva2VuTGlzdCBm
aW5hbCA6IHB1YmxpYyBET01Ub2tlbkxpc3QgeworcHVibGljOgorICAgIEF0dHJpYnV0ZURPTVRv
a2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSk7Cisg
ICAgdm9pZCBhdHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBtX2VsZW1lbnQucmVmKCk7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGVyZWYoKSBvdmVycmlkZSB7IG1fZWxlbWVudC5kZXJlZigpOyB9CisKKyAg
ICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAmbV9l
bGVtZW50OyB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFmdGVyVG9rZW5D
aGFuZ2UoKSBvdmVycmlkZTsKKworICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKKyAgICBjb25zdCBX
ZWJDb3JlOjpRdWFsaWZpZWROYW1lIG1fYXR0cmlidXRlTmFtZTsKKyAgICBib29sIG1faXNVcGRh
dGluZ0F0dHJpYnV0ZVZhbHVlIHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEF0dHJpYnV0ZURPTVRva2VuTGlzdF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNz
TGlzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlMzMyZDRiN2U1YjFlYjUx
OGE4ZWY4YTdmNGU0YzQxMTc2ZTdiMTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsODggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJDbGFzc0xpc3QuaCIKLQotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotdm9pZCBDbGFzc0xpc3Q6OnJlZigpCi17Ci0gICAgbV9lbGVtZW50LnJl
ZigpOwotfQotCi12b2lkIENsYXNzTGlzdDo6ZGVyZWYoKQotewotICAgIG1fZWxlbWVudC5kZXJl
ZigpOwotfQotCi11bnNpZ25lZCBDbGFzc0xpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fZWxlbWVudC5oYXNDbGFzcygpID8gY2xhc3NOYW1lcygpLnNpemUoKSA6IDA7Ci19Ci0K
LWNvbnN0IEF0b21pY1N0cmluZyBDbGFzc0xpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0
Ci17Ci0gICAgaWYgKGluZGV4ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm4gQXRvbWljU3Ry
aW5nKCk7Ci0gICAgcmV0dXJuIGNsYXNzTmFtZXMoKVtpbmRleF07Ci19Ci0KLUVsZW1lbnQqIENs
YXNzTGlzdDo6ZWxlbWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICZtX2VsZW1lbnQ7Ci19Ci0K
LWJvb2wgQ2xhc3NMaXN0Ojpjb250YWluc0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9r
ZW4pIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZWxlbWVudC5oYXNDbGFzcygpICYmIGNsYXNzTmFt
ZXMoKS5jb250YWlucyh0b2tlbik7Ci19Ci0KLUF0b21pY1N0cmluZyBDbGFzc0xpc3Q6OnZhbHVl
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbGVtZW50LmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6
OmNsYXNzQXR0cik7Ci19Ci0KLXZvaWQgQ2xhc3NMaXN0OjpzZXRWYWx1ZShjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQotewotICAgIG1fZWxlbWVudC5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpj
bGFzc0F0dHIsIHZhbHVlKTsKLX0KLQotY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgQ2xhc3NMaXN0
OjpjbGFzc05hbWVzKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9lbGVtZW50Lmhhc0NsYXNzKCkp
OwotICAgIGlmIChtX2VsZW1lbnQuZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSkgewotICAgICAg
ICBpZiAobV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBt
X2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLnNldCh2YWx1ZSgpLCBmYWxzZSk7Ci0gICAgICAgIHJl
dHVybiBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOwotICAgIH0KLSAgICByZXR1cm4gbV9lbGVt
ZW50LmVsZW1lbnREYXRhKCktPmNsYXNzTmFtZXMoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDhhYWE0YzdjMzNlZTU4NzhkOWIyZDNlN2FkNWUzNWQwNjg3MmIzZGUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DbGFz
c0xpc3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIENsYXNzTGlzdF9oCi0jZGVmaW5lIENsYXNzTGlzdF9oCi0KLSNpbmNsdWRlICJET01Ub2tl
bkxpc3QuaCIKLSNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgRWxlbWVudDsKLQotY2xhc3MgQ2xhc3NMaXN0IGZpbmFsIDogcHVibGlj
IERPTVRva2VuTGlzdCB7Ci1wdWJsaWM6Ci0gICAgQ2xhc3NMaXN0KEVsZW1lbnQmIGVsZW1lbnQp
Ci0gICAgICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCi0gICAgewotICAgIH0KLQotICAgIHZpcnR1
YWwgdm9pZCByZWYoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBvdmVycmlk
ZTsKLQotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Qgb3Zl
cnJpZGU7Ci0KLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsK
LQotICAgIHZvaWQgY2xlYXJWYWx1ZUZvclF1aXJrc01vZGUoKSB7IG1fY2xhc3NOYW1lc0ZvclF1
aXJrc01vZGUuY2xlYXIoKTsgfQotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBjb250YWlu
c0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgQXRvbWljU3RyaW5nIHZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotCi0gICAgY29uc3QgU3Bh
Y2VTcGxpdFN0cmluZyYgY2xhc3NOYW1lcygpIGNvbnN0OwotCi0gICAgRWxlbWVudCYgbV9lbGVt
ZW50OwotICAgIG11dGFibGUgU3BhY2VTcGxpdFN0cmluZyBtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gQ2xhc3NMaXN0
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAKaW5kZXgg
M2YzYjAxMWFmOGY1ZDgxMDg5YmU1MDFlZWYyNTk1NDNlM2NmODUxZS4uNDVkM2IzOTVlNWYxMmI2
OTdlNTlkM2M4ZDk2YjhjYWM3ODAwMWRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01T
ZXR0YWJsZVRva2VuTGlzdC5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsMzIgKzM4LDQgQEAgdm9pZCBET01TZXR0YWJsZVRva2Vu
TGlzdDo6ZGVyZWYoKQogICAgIFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+OjpkZXJl
ZigpOwogfQogCi11bnNpZ25lZCBET01TZXR0YWJsZVRva2VuTGlzdDo6bGVuZ3RoKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV90b2tlbnMuc2l6ZSgpOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcg
RE9NU2V0dGFibGVUb2tlbkxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci17Ci0gICAg
aWYgKGluZGV4ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKCk7Ci0g
ICAgcmV0dXJuIG1fdG9rZW5zW2luZGV4XTsKLX0KLQotYm9vbCBET01TZXR0YWJsZVRva2VuTGlz
dDo6Y29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKSBjb25zdAotewot
ICAgIHJldHVybiBtX3Rva2Vucy5jb250YWlucyh0b2tlbik7Ci19Ci0KLUF0b21pY1N0cmluZyBE
T01TZXR0YWJsZVRva2VuTGlzdDo6dmFsdWUoKSBjb25zdAotewotICAgIHJldHVybiBtX3ZhbHVl
OwotfQotCi12b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpzZXRWYWx1ZShjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQotewotICAgIG1fdmFsdWUgPSB2YWx1ZTsKLSAgICBtX3Rva2Vucy5zZXQo
dmFsdWUsIGZhbHNlKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oCmluZGV4IDU3N2QxZjgxNDNkOTkyZDgzYTVl
NDI2NDc2OGEwYTE3NjUyYjNiYWUuLjA1NjA5NDA4YmNmZTFiOTkxNjZjZTE1NTAwMmEyYTRiZWRh
NzM3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgKQEAg
LTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYs
MTcgKzQ2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWYoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQg
bGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcg
aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2aXJ0dWFsIEF0b21p
Y1N0cmluZyB2YWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFs
IGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlk
ZTsKLQotICAgIEF0b21pY1N0cmluZyBtX3ZhbHVlOwotICAgIFNwYWNlU3BsaXRTdHJpbmcgbV90
b2tlbnM7CisgICAgLy8gTWFrZSBwdWJsaWMuCisgICAgdXNpbmcgRE9NVG9rZW5MaXN0Ojp2YWx1
ZTsKKyAgICB1c2luZyBET01Ub2tlbkxpc3Q6OnNldFZhbHVlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IGRiZDRkMjYz
OTNiOWE0MmM3NDc0OTRmYTY2OGNlMDc2OThhNDVlNjUuLjkyNGJjNGE1ODcxOWViYzVkZWQxZTMy
YzkwMWM4MGEwNDI4NDM4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9r
ZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNywxMSAr
MjgsMTIgQEAKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJIVE1MUGFy
c2VySWRpb21zLmgiCisjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIERP
TVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNl
cHRpb25Db2RlJiBlYykKK2Jvb2wgRE9NVG9rZW5MaXN0Ojp2YWxpZGF0ZVRva2VuKGNvbnN0IFN0
cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICh0b2tlbi5pc0VtcHR5
KCkpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwpAQCAtNTEsMTEgKzUzLDEwIEBAIGJvb2wg
RE9NVG9rZW5MaXN0Ojp2YWxpZGF0ZVRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4
Y2VwdGlvbkNvZGUmIGVjKQogCiBib29sIERPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbnMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIHRva2VucywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCB0b2tlbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKCF2
YWxpZGF0ZVRva2VuKHRva2Vuc1tpXSwgZWMpKQorICAgIGZvciAoYXV0byYgdG9rZW4gOiB0b2tl
bnMpIHsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTYzLDM3
ICs2NCwyNyBAQCBib29sIERPTVRva2VuTGlzdDo6Y29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKCF2YWxpZGF0ZVRv
a2VuKHRva2VuLCBlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gY29udGFp
bnNJbnRlcm5hbCh0b2tlbik7Ci19CiAKLXZvaWQgRE9NVG9rZW5MaXN0OjphZGQoY29uc3QgQXRv
bWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgVmVjdG9yPFN0cmlu
Zz4gdG9rZW5zOwotICAgIHRva2Vucy5hcHBlbmQodG9rZW4uc3RyaW5nKCkpOwotICAgIGFkZCh0
b2tlbnMsIGVjKTsKKyAgICByZXR1cm4gbV90b2tlbnMuY29udGFpbnModG9rZW4pOwogfQogCiB2
b2lkIERPTVRva2VuTGlzdDo6YWRkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewotICAgIFZlY3RvcjxTdHJpbmc+IGZpbHRlcmVkVG9rZW5zOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdG9rZW5zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlm
ICghdmFsaWRhdGVUb2tlbih0b2tlbnNbaV0sIGVjKSkKKyAgICBWZWN0b3I8QXRvbWljU3RyaW5n
PiB1bmlxdWVUb2tlbnM7CisgICAgdW5pcXVlVG9rZW5zLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
dG9rZW5zLnNpemUoKSk7CisKKyAgICBmb3IgKGF1dG8mIHRva2VuIDogdG9rZW5zKSB7CisgICAg
ICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBpZiAoIWNvbnRhaW5zSW50ZXJuYWwodG9rZW5zW2ldKSAmJiAhZmlsdGVyZWRUb2tl
bnMuY29udGFpbnModG9rZW5zW2ldKSkKLSAgICAgICAgICAgIGZpbHRlcmVkVG9rZW5zLmFwcGVu
ZCh0b2tlbnNbaV0pOworICAgICAgICBpZiAoIW1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKSAmJiAh
dW5pcXVlVG9rZW5zLmNvbnRhaW5zKHRva2VuKSkKKyAgICAgICAgICAgIHVuaXF1ZVRva2Vucy51
bmNoZWNrZWRBcHBlbmQodG9rZW4pOwogICAgIH0KIAotICAgIGlmIChmaWx0ZXJlZFRva2Vucy5p
c0VtcHR5KCkpCisgICAgaWYgKHVuaXF1ZVRva2Vucy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHNldFZhbHVlKGFkZFRva2Vucyh2YWx1ZSgpLCBmaWx0ZXJlZFRva2VucykpOwot
fQotCi12b2lkIERPTVRva2VuTGlzdDo6cmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFZlY3RvcjxTdHJpbmc+IHRva2VuczsKLSAgICB0
b2tlbnMuYXBwZW5kKHRva2VuLnN0cmluZygpKTsKLSAgICByZW1vdmUodG9rZW5zLCBlYyk7Cisg
ICAgbV90b2tlbnMuYXBwZW5kVmVjdG9yKHVuaXF1ZVRva2Vucyk7CisgICAgdXBkYXRlQWZ0ZXJU
b2tlbkNoYW5nZSgpOwogfQogCiB2b2lkIERPTVRva2VuTGlzdDo6cmVtb3ZlKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiB0b2tlbnMsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTAxLDEzNyArOTIsODAg
QEAgdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9rZW5z
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBpZiAoIXZhbGlkYXRlVG9rZW5zKHRva2VucywgZWMp
KQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBDaGVjayB1c2luZyBjb250YWluc0ludGVybmFs
IGZpcnN0IHNpbmNlIGl0IGlzIGEgbG90IGZhc3RlciB0aGFuIGdvaW5nCi0gICAgLy8gdGhyb3Vn
aCB0aGUgc3RyaW5nIGNoYXJhY3RlciBieSBjaGFyYWN0ZXIuCi0gICAgYm9vbCBmb3VuZCA9IGZh
bHNlOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdG9rZW5zLnNpemUoKTsgKytpKSB7Ci0g
ICAgICAgIGlmIChjb250YWluc0ludGVybmFsKHRva2Vuc1tpXSkpIHsKLSAgICAgICAgICAgIGZv
dW5kID0gdHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CisgICAgYm9vbCBkaWRS
ZW1vdmVUb2tlbnMgPSBmYWxzZTsKKyAgICBmb3IgKGF1dG8mIHRva2VuIDogdG9rZW5zKSB7Cisg
ICAgICAgIGlmIChtX3Rva2Vucy5yZW1vdmVGaXJzdCh0b2tlbikpCisgICAgICAgICAgICBkaWRS
ZW1vdmVUb2tlbnMgPSB0cnVlOwogICAgIH0KIAotICAgIGlmIChmb3VuZCkKLSAgICAgICAgc2V0
VmFsdWUocmVtb3ZlVG9rZW5zKHZhbHVlKCksIHRva2VucykpOworICAgIGlmIChkaWRSZW1vdmVU
b2tlbnMpCisgICAgICAgIHVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKTsKIH0KIAotYm9vbCBET01U
b2tlbkxpc3Q6OnRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2Rl
JiBlYykKK2Jvb2wgRE9NVG9rZW5MaXN0Ojp0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tl
biwgT3B0aW9uYWw8Ym9vbD4gZm9yY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
dmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAoY29udGFpbnNJbnRlcm5hbCh0b2tlbikpIHsKLSAgICAgICAgcmVtb3ZlSW50ZXJuYWwodG9r
ZW4pOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fdG9rZW5zLmNvbnRhaW5zKHRv
a2VuKSkgeworICAgICAgICBpZiAoIWZvcmNlLnZhbHVlT3IoZmFsc2UpKSB7CisgICAgICAgICAg
ICBtX3Rva2Vucy5yZW1vdmVGaXJzdCh0b2tlbik7CisgICAgICAgICAgICB1cGRhdGVBZnRlclRv
a2VuQ2hhbmdlKCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIGFkZEludGVybmFsKHRva2VuKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KIAotYm9vbCBET01Ub2tlbkxpc3Q6OnRvZ2dsZShjb25zdCBBdG9taWNTdHJp
bmcmIHRva2VuLCBib29sIGZvcmNlLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIXZh
bGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICBpZiAoZm9yY2UgJiYgIWZvcmNlLnZhbHVlKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChmb3JjZSkKLSAgICAgICAgYWRkSW50
ZXJuYWwodG9rZW4pOwotICAgIGVsc2UKLSAgICAgICAgcmVtb3ZlSW50ZXJuYWwodG9rZW4pOwot
Ci0gICAgcmV0dXJuIGZvcmNlOwotfQotCi12b2lkIERPTVRva2VuTGlzdDo6YWRkSW50ZXJuYWwo
Y29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikKLXsKLSAgICBpZiAoIWNvbnRhaW5zSW50ZXJuYWwo
dG9rZW4pKQotICAgICAgICBzZXRWYWx1ZShhZGRUb2tlbih2YWx1ZSgpLCB0b2tlbikpOwotfQot
Ci12b2lkIERPTVRva2VuTGlzdDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0
b2tlbikKLXsKLSAgICAvLyBDaGVjayB1c2luZyBjb250YWlucyBmaXJzdCBzaW5jZSBpdCB1c2Vz
IEF0b21pY1N0cmluZyBjb21wYXJpc29ucyBpbnN0ZWFkCi0gICAgLy8gb2YgY2hhcmFjdGVyIGJ5
IGNoYXJhY3RlciB0ZXN0aW5nLgotICAgIGlmICghY29udGFpbnNJbnRlcm5hbCh0b2tlbikpCi0g
ICAgICAgIHJldHVybjsKLSAgICBzZXRWYWx1ZShyZW1vdmVUb2tlbih2YWx1ZSgpLCB0b2tlbikp
OwotfQotCi1TdHJpbmcgRE9NVG9rZW5MaXN0OjphZGRUb2tlbihjb25zdCBBdG9taWNTdHJpbmcm
IGlucHV0LCBjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKQotewotICAgIFZlY3RvcjxTdHJpbmc+
IHRva2VuczsKLSAgICB0b2tlbnMuYXBwZW5kKHRva2VuLnN0cmluZygpKTsKLSAgICByZXR1cm4g
YWRkVG9rZW5zKGlucHV0LCB0b2tlbnMpOworICAgIG1fdG9rZW5zLmFwcGVuZCh0b2tlbik7Cisg
ICAgdXBkYXRlQWZ0ZXJUb2tlbkNoYW5nZSgpOworICAgIHJldHVybiB0cnVlOwogfQogCi1TdHJp
bmcgRE9NVG9rZW5MaXN0OjphZGRUb2tlbnMoY29uc3QgQXRvbWljU3RyaW5nJiBpbnB1dCwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHRva2VucykKK2NvbnN0IEF0b21pY1N0cmluZyYgRE9NVG9rZW5M
aXN0Ojp2YWx1ZSgpIGNvbnN0CiB7Ci0gICAgYm9vbCBuZWVkc1NwYWNlID0gZmFsc2U7Ci0KLSAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgaWYgKCFpbnB1dC5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQoaW5wdXQpOwotICAgICAgICBuZWVkc1NwYWNlID0gIWlzSFRN
TFNwYWNlKGlucHV0W2lucHV0Lmxlbmd0aCgpIC0gMV0pOwotICAgIH0KLQotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgdG9rZW5zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChuZWVkc1Nw
YWNlKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQodG9rZW5zW2ldKTsKLSAgICAgICAgbmVlZHNTcGFjZSA9IHRydWU7CisgICAgaWYgKG1f
Y2FjaGVkVmFsdWUuaXNOdWxsKCkpIHsKKyAgICAgICAgLy8gaHR0cHM6Ly9kb20uc3BlYy53aGF0
d2cub3JnLyNjb25jZXB0LW9yZGVyZWQtc2V0LXNlcmlhbGl6ZXIKKyAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdG9rZW5zLnNp
emUoKTsgKytpKSB7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChtX3Rva2Vuc1tpXSk7Cisg
ICAgICAgICAgICBpZiAoaSAhPSBtX3Rva2Vucy5zaXplKCkgLSAxKQorICAgICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIH0KKyAgICAgICAgbV9jYWNoZWRWYWx1ZSA9
IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQVNTRVJUKCFtX2NhY2hlZFZhbHVl
LmlzTnVsbCgpKTsKICAgICB9Ci0KLSAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworICAg
IHJldHVybiBtX2NhY2hlZFZhbHVlOwogfQogCi1TdHJpbmcgRE9NVG9rZW5MaXN0OjpyZW1vdmVU
b2tlbihjb25zdCBBdG9taWNTdHJpbmcmIGlucHV0LCBjb25zdCBBdG9taWNTdHJpbmcmIHRva2Vu
KQordm9pZCBET01Ub2tlbkxpc3Q6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0g
ICAgVmVjdG9yPFN0cmluZz4gdG9rZW5zOwotICAgIHRva2Vucy5hcHBlbmQodG9rZW4uc3RyaW5n
KCkpOwotICAgIHJldHVybiByZW1vdmVUb2tlbnMoaW5wdXQsIHRva2Vucyk7Ci19CisgICAgLy8g
Q2xlYXIgdG9rZW5zIGJ1dCBub3QgY2FwYWNpdHkuCisgICAgbV90b2tlbnMuc2hyaW5rKDApOwor
CisgICAgLy8gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNvcmRlcmVkJTIwc2V0cworICAg
IGZvciAodW5zaWduZWQgc3RhcnQgPSAwOyA7ICkgeworICAgICAgICB3aGlsZSAoc3RhcnQgPCB2
YWx1ZS5sZW5ndGgoKSAmJiBpc0hUTUxTcGFjZSh2YWx1ZVtzdGFydF0pKQorICAgICAgICAgICAg
KytzdGFydDsKKyAgICAgICAgaWYgKHN0YXJ0ID49IHZhbHVlLmxlbmd0aCgpKQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIHVuc2lnbmVkIGVuZCA9IHN0YXJ0ICsgMTsKKyAgICAgICAgd2hp
bGUgKGVuZCA8IHZhbHVlLmxlbmd0aCgpICYmICFpc0hUTUxTcGFjZSh2YWx1ZVtlbmRdKSkKKyAg
ICAgICAgICAgICsrZW5kOwogCi1TdHJpbmcgRE9NVG9rZW5MaXN0OjpyZW1vdmVUb2tlbnMoY29u
c3QgQXRvbWljU3RyaW5nJiBpbnB1dCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRva2VucykKLXsK
LSAgICAvLyBBbGdvcml0aG0gZGVmaW5lZCBhdCBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mv
d2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9jb21tb24tbWljcm9zeW50YXhlcy5odG1s
I3JlbW92ZS1hLXRva2VuLWZyb20tYS1zdHJpbmcKLSAgICAvLyBOZXcgc3BlYyBpcyBhdCBodHRw
Oi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jcmVtb3ZlLWEtdG9rZW4tZnJvbS1hLXN0cmluZwotCi0g
ICAgdW5zaWduZWQgaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGgoKTsKLSAgICBTdHJpbmdCdWls
ZGVyIG91dHB1dDsgLy8gMwotICAgIG91dHB1dC5yZXNlcnZlQ2FwYWNpdHkoaW5wdXRMZW5ndGgp
OwotICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gMDsgLy8gNAotCi0gICAgLy8gU3RlcCA1Ci0gICAg
d2hpbGUgKHBvc2l0aW9uIDwgaW5wdXRMZW5ndGgpIHsKLSAgICAgICAgaWYgKGlzSFRNTFNwYWNl
KGlucHV0W3Bvc2l0aW9uXSkpIHsgLy8gNgotICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChpbnB1
dFtwb3NpdGlvbisrXSk7IC8vIDYuMSwgNi4yCi0gICAgICAgICAgICBjb250aW51ZTsgLy8gNi4z
Ci0gICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRva2VuID0gdmFsdWUuc3Vic3RyaW5nKHN0YXJ0
LCBlbmQgLSBzdGFydCk7CisKKyAgICAgICAgLy8gV2UgZG8gYSBzaW1wbGUgbGluZWFyIHNlYXJj
aCBhcyB0aGVyZSBhcmUgdXN1YWxseSBub3QgbWFueSB0b2tlbnMuCisgICAgICAgIGlmICghbV90
b2tlbnMuY29udGFpbnModG9rZW4pKQorICAgICAgICAgICAgbV90b2tlbnMuYXBwZW5kKHRva2Vu
KTsKIAotICAgICAgICAvLyBTdGVwIDcKLSAgICAgICAgU3RyaW5nQnVpbGRlciBzOwotICAgICAg
ICB3aGlsZSAocG9zaXRpb24gPCBpbnB1dExlbmd0aCAmJiBpc05vdEhUTUxTcGFjZShpbnB1dFtw
b3NpdGlvbl0pKQotICAgICAgICAgICAgcy5hcHBlbmQoaW5wdXRbcG9zaXRpb24rK10pOwotCi0g
ICAgICAgIC8vIFN0ZXAgOAotICAgICAgICBpZiAodG9rZW5zLmNvbnRhaW5zKHMudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkpKSB7Ci0gICAgICAgICAgICAvLyBTdGVwIDguMQotICAgICAgICAg
ICAgd2hpbGUgKHBvc2l0aW9uIDwgaW5wdXRMZW5ndGggJiYgaXNIVE1MU3BhY2UoaW5wdXRbcG9z
aXRpb25dKSkKLSAgICAgICAgICAgICAgICArK3Bvc2l0aW9uOwotCi0gICAgICAgICAgICAvLyBT
dGVwIDguMgotICAgICAgICAgICAgc2l6ZV90IGogPSBvdXRwdXQubGVuZ3RoKCk7Ci0gICAgICAg
ICAgICB3aGlsZSAoaiA+IDAgJiYgaXNIVE1MU3BhY2Uob3V0cHV0W2ogLSAxXSkpCi0gICAgICAg
ICAgICAgICAgLS1qOwotICAgICAgICAgICAgb3V0cHV0LnJlc2l6ZShqKTsKLQotICAgICAgICAg
ICAgLy8gU3RlcCA4LjMKLSAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IGlucHV0TGVuZ3RoICYm
ICFvdXRwdXQuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoJyAnKTsK
LSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHMudG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCkpOyAvLyBTdGVwIDkKKyAgICAgICAgc3RhcnQgPSBlbmQgKyAxOwogICAg
IH0KIAotICAgIHJldHVybiBvdXRwdXQudG9TdHJpbmcoKTsKKyAgICBtX3Rva2Vucy5zaHJpbmtU
b0ZpdCgpOworICAgIG1fY2FjaGVkVmFsdWUgPSBudWxsQXRvbTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKaW5kZXggN2NhM2VmYWU2ZDlh
ZGQyM2I4NjM0YTRhYzFhMDlmMThjYjM5YTAwMS4uNjlmNzk4MGRmN2E0ZTA2NmJlNmM5MjFkZTlm
NDBhNmQyNGQ4NWRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsOCArMjYsOSBAQAog
I2lmbmRlZiBET01Ub2tlbkxpc3RfaAogI2RlZmluZSBET01Ub2tlbkxpc3RfaAogCi0jaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3LDQxICszOSwzNyBAQCB0eXBlZGVmIGlu
dCBFeGNlcHRpb25Db2RlOwogY2xhc3MgRE9NVG9rZW5MaXN0IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShET01Ub2tlbkxpc3QpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBET01Ub2tlbkxpc3QoKSB7IH0KLSAgICB2aXJ0dWFsIH5ET01Ub2tlbkxpc3QoKSB7fTsK
KyAgICBET01Ub2tlbkxpc3QoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+RE9NVG9rZW5MaXN0
KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZigpID0gMDsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgPSAwOwot
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0
ID0gMDsKKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3Rva2Vucy5zaXpl
KCk7IH0KKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0
IHsgcmV0dXJuIGluZGV4IDwgbV90b2tlbnMuc2l6ZSgpID8gbV90b2tlbnNbaW5kZXhdIDogbnVs
bEF0b207IH0KIAogICAgIGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OwogICAgIHZvaWQgYWRkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgYWRkKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRp
b25Db2RlJiBlYykgeyBhZGQoVmVjdG9yPFN0cmluZz57dG9rZW4uc3RyaW5nKCl9LCBlYyk7IH0K
ICAgICB2b2lkIHJlbW92ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEV4Y2VwdGlvbkNvZGUmKTsK
LSAgICB2b2lkIHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAg
IGJvb2wgdG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYsIGJvb2wgZm9yY2UsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRp
b25Db2RlJiBlYykgeyByZW1vdmUoVmVjdG9yPFN0cmluZz57dG9rZW4uc3RyaW5nKCl9LCBlYyk7
IH0KKyAgICBib29sIHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25D
b2RlJiBlYykgeyByZXR1cm4gdG9nZ2xlKHRva2VuLCBOdWxsb3B0LCBlYyk7IH0KKyAgICBib29s
IHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmLCBPcHRpb25hbDxib29sPiBmb3JjZSwgRXhjZXB0
aW9uQ29kZSYpOwogCi0gICAgQXRvbWljU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgeyByZXR1cm4g
dmFsdWUoKTsgfQorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdG9TdHJpbmcoKSBjb25zdCB7IHJl
dHVybiB2YWx1ZSgpOyB9CiAKLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gbnVsbHB0cjsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBBdG9taWNTdHJpbmcgdmFs
dWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IEF0b21pY1N0
cmluZyYpID0gMDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKCkgY29uc3Q7CisgICAg
dm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWZ0
ZXJUb2tlbkNoYW5nZSgpIHsgbV9jYWNoZWRWYWx1ZSA9IG51bGxBdG9tOyB9CiAKLSAgICB2b2lk
IGFkZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpOwotICAgIHZpcnR1YWwgYm9vbCBjb250
YWluc0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0ID0gMDsKLSAgICB2b2lkIHJl
bW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpOwotCi0gICAgc3RhdGljIGJvb2wgdmFs
aWRhdGVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3Rh
dGljIGJvb2wgdmFsaWRhdGVUb2tlbihjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgc3RhdGljIGJvb2wgdmFsaWRhdGVUb2tlbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBFeGNl
cHRpb25Db2RlJik7Ci0gICAgc3RhdGljIFN0cmluZyBhZGRUb2tlbihjb25zdCBBdG9taWNTdHJp
bmcmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICBzdGF0aWMgU3RyaW5nIGFkZFRva2Vucyhj
b25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwotICAgIHN0YXRpYyBT
dHJpbmcgcmVtb3ZlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgQXRvbWljU3RyaW5n
Jik7Ci0gICAgc3RhdGljIFN0cmluZyByZW1vdmVUb2tlbnMoY29uc3QgQXRvbWljU3RyaW5nJiwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKworICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IG1fdG9r
ZW5zOworICAgIG11dGFibGUgQXRvbWljU3RyaW5nIG1fY2FjaGVkVmFsdWU7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCmluZGV4IGI0ZmZkYjJiNDM1NWJlZjM3YTAxMzdhZThkNWJlM2RiY2E5ODZjZjEuLjA1M2Vj
NDVjNzNkMTNlY2FhZmJhM2UwOTlkYzUzM2ExMTNiNzU3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkF0dHJp
YnV0ZURPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgogI2luY2x1
ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTM5LDcgKzQw
LDYgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRlci5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgotI2luY2x1ZGUgIlJlbExpc3QuaCIKICNp
bmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIlNWR0ltYWdlLmgiCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBIVE1MQW5jaG9yRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3QKICAgICAgICAgaWYgKFNwYWNlU3BsaXRTdHJpbmc6OnNwYWNlU3BsaXRTdHJpbmdDb250
YWluc1ZhbHVlKHZhbHVlLCAibm9yZWZlcnJlciIsIHRydWUpKQogICAgICAgICAgICAgbV9saW5r
UmVsYXRpb25zIHw9IFJlbGF0aW9uTm9SZWZlcnJlcjsKICAgICAgICAgaWYgKG1fcmVsTGlzdCkK
LSAgICAgICAgICAgIG1fcmVsTGlzdC0+dXBkYXRlUmVsQXR0cmlidXRlKHZhbHVlKTsKKyAgICAg
ICAgICAgIG1fcmVsTGlzdC0+YXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICB9CiAg
ICAgZWxzZQogICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OwpAQCAtMzE2LDcgKzMxNiw3IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6Omhhc1JlbCh1aW50
MzJfdCByZWxhdGlvbikgY29uc3QKIERPTVRva2VuTGlzdCYgSFRNTEFuY2hvckVsZW1lbnQ6OnJl
bExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAgICAgICAgbV9yZWxMaXN0ID0gc3Rk
OjptYWtlX3VuaXF1ZTxSZWxMaXN0PigqdGhpcyk7CisgICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6
bWFrZV91bmlxdWU8QXR0cmlidXRlRE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpyZWxB
dHRyKTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5oCmluZGV4IDRiNjZhMDE0NWQ1N2I5N2YwN2M5M2Y5NGNkMTQyMzA2NTJl
ZTQxYmMuLmZkOWQ5NjY5MGJmM2M4NTJkMDIwYmQ4MjI3MjNhYjIyMWJjZTAzOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZWxMaXN0OworY2xhc3MgQXR0cmlidXRlRE9NVG9r
ZW5MaXN0OwogCiAvLyBMaW5rIHJlbGF0aW9uIGJpdG1hc2sgdmFsdWVzLgogLy8gRklYTUU6IFVu
Y29tbWVudCBhcyB0aGUgdmFyaW91cyBsaW5rIHJlbGF0aW9ucyBhcmUgaW1wbGVtZW50ZWQuCkBA
IC0xNDUsNyArMTQ1LDcgQEAgcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX2xpbmtSZWxhdGlvbnMg
OiAzMDsKICAgICBtdXRhYmxlIExpbmtIYXNoIG1fY2FjaGVkVmlzaXRlZExpbmtIYXNoOwogCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFJlbExpc3Q+IG1fcmVsTGlzdDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8QXR0cmlidXRlRE9NVG9rZW5MaXN0PiBtX3JlbExpc3Q7CiB9OwogCiBpbmxpbmUgTGlua0hh
c2ggSFRNTEFuY2hvckVsZW1lbnQ6OnZpc2l0ZWRMaW5rSGFzaCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggMDQxMzljYjcyYzAzMWM4NThlNThmMWNm
ZGUzY2YxMWI5MzlhZGIwYi4uMzMzNDMyZjJiNGRiMzMxZmMzY2M2YjYxN2FlMzU3ODVhNjBlNzI3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogCiAjaW5jbHVkZSAiQXR0cmlidXRl
LmgiCisjaW5jbHVkZSAiQXR0cmlidXRlRE9NVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKQEAgLTQ2LDcgKzQ3LDYgQEAKICNpbmNsdWRlICJNZWRp
YVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKLSNpbmNsdWRlICJSZWxMaXN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0xNDEs
NyArMTQxLDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmkKICAgICBpZiAobmFtZSA9PSByZWxB
dHRyKSB7CiAgICAgICAgIG1fcmVsQXR0cmlidXRlID0gTGlua1JlbEF0dHJpYnV0ZSh2YWx1ZSk7
CiAgICAgICAgIGlmIChtX3JlbExpc3QpCi0gICAgICAgICAgICBtX3JlbExpc3QtPnVwZGF0ZVJl
bEF0dHJpYnV0ZSh2YWx1ZSk7CisgICAgICAgICAgICBtX3JlbExpc3QtPmF0dHJpYnV0ZVZhbHVl
Q2hhbmdlZCh2YWx1ZSk7CiAgICAgICAgIHByb2Nlc3MoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6ZGlzcGF0Y2hQZW5k
aW5nRXZlbnQoTGlua0V2ZW50U2VuZGVyKiBldmVudFNlbmRlcikKIERPTVRva2VuTGlzdCYgSFRN
TExpbmtFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlzdCkgCi0gICAgICAg
IG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8UmVsTGlzdD4oKnRoaXMpOworICAgICAgICBt
X3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPEF0dHJpYnV0ZURPTVRva2VuTGlzdD4oKnRoaXMs
IEhUTUxOYW1lczo6cmVsQXR0cik7CiAgICAgcmV0dXJuICptX3JlbExpc3Q7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCmluZGV4IGE2NjczNTJkNmM2ODY5MmFkNDM0MDIx
NTk2YWQ3ODVkNjE0NThhMzQuLmJlYjE3MWVlMGRjOGYxN2QwNTZjOGVlM2U0OGZiYzJmZDAwNzJj
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaApAQCAtMzUsOCArMzUsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEF0dHJpYnV0ZURPTVRva2VuTGlzdDsK
IGNsYXNzIEhUTUxMaW5rRWxlbWVudDsKLWNsYXNzIFJlbExpc3Q7CiBjbGFzcyBVUkw7CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEV2ZW50U2VuZGVyOwpAQCAtMTQwLDcgKzE0MCw3IEBA
IHByaXZhdGU6CiAKICAgICBQZW5kaW5nU2hlZXRUeXBlIG1fcGVuZGluZ1NoZWV0VHlwZTsKIAot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWxMaXN0PiBtX3JlbExpc3Q7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEF0dHJpYnV0ZURPTVRva2VuTGlzdD4gbV9yZWxMaXN0OwogfTsKIAogfSAvL25hbWVzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SZWxMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmVsTGlzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVi
M2Y0YmI1OTJlZjZlMDRjNjMwNDJhNDgzNDg3OTI0NWQ1NDA0ZTUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SZWxMaXN0
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTQgRGhpIEF1cnJhaG1hbiA8ZGlvcmFobWFuQHJvY2t5YmFycy5jb20+Ci0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgot
ICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUmVsTGlzdC5oIgotCi0jaW5jbHVkZSAi
RWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLVJlbExpc3Q6OlJlbExpc3QoRWxlbWVudCYgZWxlbWVudCkgCi0gICAgOiBtX2VsZW1lbnQo
ZWxlbWVudCkKLSAgICAsIG1fcmVsQXR0cmlidXRlVmFsdWUoU3BhY2VTcGxpdFN0cmluZyhlbGVt
ZW50LmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpyZWxBdHRyKSwgZmFsc2UpKQotewotfQot
Ci12b2lkIFJlbExpc3Q6OnJlZigpCi17Ci0gICAgbV9lbGVtZW50LnJlZigpOwotfQotCi12b2lk
IFJlbExpc3Q6OmRlcmVmKCkKLXsKLSAgICBtX2VsZW1lbnQuZGVyZWYoKTsKLX0KLQotdW5zaWdu
ZWQgUmVsTGlzdDo6bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yZWxBdHRyaWJ1dGVW
YWx1ZS5zaXplKCk7Ci19Ci0KLWNvbnN0IEF0b21pY1N0cmluZyBSZWxMaXN0OjppdGVtKHVuc2ln
bmVkIGluZGV4KSBjb25zdAotewotICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAg
cmV0dXJuIG51bGxBdG9tOwotICAgIHJldHVybiBtX3JlbEF0dHJpYnV0ZVZhbHVlW2luZGV4XTsK
LX0KLQotRWxlbWVudCogUmVsTGlzdDo6ZWxlbWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICZt
X2VsZW1lbnQ7Ci19Ci0KLXZvaWQgUmVsTGlzdDo6dXBkYXRlUmVsQXR0cmlidXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpCi17Ci0gICAgbV9yZWxBdHRyaWJ1dGVWYWx1ZS5zZXQodmFsdWUs
IGZhbHNlKTsKLX0KLQotYm9vbCBSZWxMaXN0Ojpjb250YWluc0ludGVybmFsKGNvbnN0IEF0b21p
Y1N0cmluZyYgdG9rZW4pIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVsQXR0cmlidXRlVmFsdWUu
Y29udGFpbnModG9rZW4pOwotfQotCi1BdG9taWNTdHJpbmcgUmVsTGlzdDo6dmFsdWUoKSBjb25z
dAotewotICAgIHJldHVybiBtX2VsZW1lbnQuZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnJl
bEF0dHIpOwotfQotCi12b2lkIFJlbExpc3Q6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCi17Ci0gICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnJlbEF0dHIs
IHZhbHVlKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JlbExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVsTGlzdC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NzQzY2NmNWQ1NTMwMWUzYzhhNWM0ODIx
NjA5NTYzYzA2M2ZjODk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVsTGlzdC5oCisrKyAvZGV2L251bGwKQEAgLTEs
NTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBEaGkgQXVycmFobWFuIDxkaW9y
YWhtYW5Acm9ja3liYXJzLmNvbT4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUmVsTGlzdF9oCi0jZGVm
aW5lIFJlbExpc3RfaAotCi0jaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCi0jaW5jbHVkZSAiU3Bh
Y2VTcGxpdFN0cmluZy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEVsZW1lbnQ7
Ci0KLWNsYXNzIFJlbExpc3QgZmluYWwgOiBwdWJsaWMgRE9NVG9rZW5MaXN0IHsKLXB1YmxpYzoK
LSAgICBSZWxMaXN0KEVsZW1lbnQmKTsKLSAgICB2b2lkIHVwZGF0ZVJlbEF0dHJpYnV0ZShjb25z
dCBBdG9taWNTdHJpbmcmKTsKLQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB1
bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgY29u
dGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIEF0b21pY1N0cmluZyB2YWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
dm9pZCBzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKLSAgICAKLSAgICBF
bGVtZW50JiBtX2VsZW1lbnQ7Ci0gICAgbXV0YWJsZSBTcGFjZVNwbGl0U3RyaW5nIG1fcmVsQXR0
cmlidXRlVmFsdWU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBS
ZWxMaXN0X2gKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGIyMDIxOGEyZDI0NTVjMGRjN2NjNzFhYTEwZTE5NTUxYjY1MDAz
OTYuLjYxMGNkZGY0NDc1N2U0Njg3NmY0ZGFjYTdlNWVkN2JiMTRkMjAyZDcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNS0wOS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERPTVRva2VuTGlzdCB1cGRhdGUgc3RlcHMgZm9yIGNsYXNzTGlzdCBkb24ndCBm
b2xsb3cgdGhlIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODU4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI1NDc0NDM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIC8gcmViYXNl
bGluZSBleGlzdGluZyB0ZXN0cyBhcyBvdXIgYmVoYXZpb3IgY2hhbmdlZC4KKworICAgICAgICAq
IGZhc3QvZG9tL0hUTUxFbGVtZW50L2NsYXNzLWxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL0hUTUxFbGVtZW50L2NsYXNzLWxpc3QtcXVpcmtzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9zY3JpcHQtdGVzdHMvY2xhc3MtbGlzdC5qczoK
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9kb20tc2V0dGFibGUtdG9rZW4t
bGlzdC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQv
aHRtbG91dHB1dGVsZW1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxP
dXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
SFRNTE91dHB1dEVsZW1lbnQvc2NyaXB0LXRlc3RzL2RvbS1zZXR0YWJsZS10b2tlbi1saXN0Lmpz
OgorICAgICAgICAqIGZhc3QvZG9tL3JlbC1saXN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2RvbS9yZWwtbGlzdC5odG1sOgorCiAyMDE1LTA5LTEwICBEYW5pZWwgQmF0ZXMgIDxkYWJh
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBXcml0ZSBhIHRlc3QgdG8gZW5zdXJlIHdlIGRvbid0
IHJlZ3Jlc3MgcHJvY2Vzc2luZyBvZiB0YXNrcyB3aGVuIHBhZ2UgZGVmZXJzIGxvYWRpbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGYxZTE2MjZlNjE0MWM5YWY4NjllNmZkZjZm
NjM0ZjdiYTRjNWJlZWQuLjIxZTVmMmZkNTZmZWEzNzAyNDliMmQ1YmQxNDdiZjIzMjI4MTNkNDMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTA5
LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRE9NVG9rZW5M
aXN0IHVwZGF0ZSBzdGVwcyBmb3IgY2xhc3NMaXN0IGRvbid0IGZvbGxvdyB0aGUgc3BlYworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4NTg5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU0NzQ0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIFczQyB0ZXN0cyBmb3IgRE9NVG9rZW5M
aXN0IG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9saXN0cy9ET01Ub2tlbkxpc3Qtc3RyaW5naWZpZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jbGFz
c2xpc3QtZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA5LTA5ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVA
YXBwbGUuY29tPgogCiAgICAgICAgIERvY3VtZW50LmNoYXJhY3RlclNldCBzaG91bGQgcmV0dXJu
ICJVVEYtOCIgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxFbGVtZW50L2NsYXNzLWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTEVsZW1lbnQvY2xhc3MtbGlzdC1leHBlY3RlZC50eHQKaW5kZXggZDgxZWRhZGE1MWJjYmZh
YjEzMWVjZDlhNWQ4OWVlNmYzZTg3MWFhOC4uM2RiY2Y4ZDM3NTA5NjZiMjAyODlhMGIzOWQ0MjZh
MzI3ZGE4OGMyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQv
Y2xhc3MtbGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVs
ZW1lbnQvY2xhc3MtbGlzdC1leHBlY3RlZC50eHQKQEAgLTcsNyArNyw3IEBAIFRlc3RzIGZyb20g
aHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9NVG9rZW5M
aXN0LwogUEFTUyBTdHJpbmcoZWxlbWVudC5jbGFzc0xpc3QpIGlzICJ4IgogUEFTUyBlbGVtZW50
LmNsYXNzTGlzdC5sZW5ndGggaXMgMAogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGggaXMg
MQotUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGggaXMgMgorUEFTUyBlbGVtZW50LmNsYXNz
TGlzdC5sZW5ndGggaXMgMQogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGggaXMgMgogUEFT
UyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieCIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIngi
CkBAIC0xNSw3ICsxNSw3IEBAIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInggIHgiCiBQQVNT
IGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ5IHgiCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICIi
CiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCi1QQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlz
ICIgeSB5ICIKK1BBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInkiCiBQQVNTIGVsZW1lbnQuY2xh
c3NOYW1lIGlzICJ5IgogRW5zdXJlIHRoYXQgd2UgY2FuIGhhbmRsZSBlbXB0eSBjbGFzcyBuYW1l
IGNvcnJlY3RseQogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJ3gnKSBpcyB0cnVlCkBA
IC0zNyw4ICszNyw4IEBAIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCcnLCB0cnVlKSB0
aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2RlIDEyCiBQQVNTIGVsZW1lbnQuY2xh
c3NMaXN0LnRvZ2dsZSgneCB5JywgZmFsc2UpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3
aXRoIGNvZGUgNQogVGVzdGluZyBhZGQgaW4gcHJlc2VuY2Ugb2YgdHJhaWxpbmcgd2hpdGUgc3Bh
Y2VzLgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieCB5IgotUEFTUyBlbGVtZW50LmNsYXNz
TmFtZSBpcyAieFx0eSIKLVBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIiB5IgorUEFTUyBlbGVt
ZW50LmNsYXNzTmFtZSBpcyAieCB5IgorUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieSIKIFRl
c3QgaW52YWxpZCB0b2tlbnMKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJycpIHRo
cmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNvZGUgMTIKIFBBU1MgZWxlbWVudC5jbGFz
c0xpc3QuY29udGFpbnMoJ3ggeScpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNv
ZGUgNQpAQCAtNTIsOCArNTIsOCBAQCBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgogSW5kZXhpbmcK
IFBBU1MgZWxlbWVudC5jbGFzc0xpc3RbMF0gaXMgIngiCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0
Lml0ZW0oMCkgaXMgIngiCi1QQVNTIGVsZW1lbnQuY2xhc3NMaXN0WzFdIGlzICJ4IgotUEFTUyBl
bGVtZW50LmNsYXNzTGlzdC5pdGVtKDEpIGlzICJ4IgorUEFTUyBlbGVtZW50LmNsYXNzTGlzdFsx
XSBpcyB1bmRlZmluZWQuCitQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lml0ZW0oMSkgaXMgbnVsbAog
UEFTUyBlbGVtZW50LmNsYXNzTGlzdFsxXSBpcyAieSIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3Qu
aXRlbSgxKSBpcyAieSIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3RbMF0gaXMgdW5kZWZpbmVkLgpA
QCAtOTgsOCArOTgsOCBAQCBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYSIsIHt0b1N0cmlu
ZzogZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcigidXNlciBlcgogUEFTUyBlbGVtZW50LmNs
YXNzTmFtZSBpcyAiIgogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5hZGQoKSBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KIFBBU1Mgb2JzZXJ2ZXIudGFrZVJlY29yZHMoKS5sZW5ndGggaXMgMQotUEFT
UyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiYiBkICAiCi1QQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlz
ICJkICAiCitQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJiIGQiCitQQVNTIGVsZW1lbnQuY2xh
c3NOYW1lIGlzICJkIgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiYSBiIGMiCiBQQVNTIGVs
ZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYScsICdiJywgJycpIHRocmV3IGV4cGVjdGVkIERPTUV4
Y2VwdGlvbiB3aXRoIGNvZGUgMTIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImEgYiIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2NsYXNzLWxpc3QtcXVp
cmtzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L2NsYXNz
LWxpc3QtcXVpcmtzLWV4cGVjdGVkLnR4dAppbmRleCBkODFlZGFkYTUxYmNiZmFiMTMxZWNkOWE1
ZDg5ZWU2ZjNlODcxYWE4Li4zZGJjZjhkMzc1MDk2NmIyMDI4OWEwYjM5ZDQyNmEzMjdkYTg4YzIz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0
LXF1aXJrcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1l
bnQvY2xhc3MtbGlzdC1xdWlya3MtZXhwZWN0ZWQudHh0CkBAIC03LDcgKzcsNyBAQCBUZXN0cyBm
cm9tIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRv
a2VuTGlzdC8KIFBBU1MgU3RyaW5nKGVsZW1lbnQuY2xhc3NMaXN0KSBpcyAieCIKIFBBU1MgZWxl
bWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDAKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QubGVuZ3Ro
IGlzIDEKLVBBU1MgZWxlbWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDIKK1BBU1MgZWxlbWVudC5j
bGFzc0xpc3QubGVuZ3RoIGlzIDEKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QubGVuZ3RoIGlzIDIK
IFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIngiCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlz
ICJ4IgpAQCAtMTUsNyArMTUsNyBAQCBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4ICB4Igog
UEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieSB4IgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBp
cyAiIgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiIgotUEFTUyBlbGVtZW50LmNsYXNzTmFt
ZSBpcyAiIHkgeSAiCitQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ5IgogUEFTUyBlbGVtZW50
LmNsYXNzTmFtZSBpcyAieSIKIEVuc3VyZSB0aGF0IHdlIGNhbiBoYW5kbGUgZW1wdHkgY2xhc3Mg
bmFtZSBjb3JyZWN0bHkKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCd4JykgaXMgdHJ1
ZQpAQCAtMzcsOCArMzcsOCBAQCBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgnJywgdHJ1
ZSkgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSAxMgogUEFTUyBlbGVtZW50
LmNsYXNzTGlzdC50b2dnbGUoJ3ggeScsIGZhbHNlKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRp
b24gd2l0aCBjb2RlIDUKIFRlc3RpbmcgYWRkIGluIHByZXNlbmNlIG9mIHRyYWlsaW5nIHdoaXRl
IHNwYWNlcy4KIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInggeSIKLVBBU1MgZWxlbWVudC5j
bGFzc05hbWUgaXMgInhcdHkiCi1QQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICIgeSIKK1BBU1Mg
ZWxlbWVudC5jbGFzc05hbWUgaXMgInggeSIKK1BBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInki
CiBUZXN0IGludmFsaWQgdG9rZW5zCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCcn
KSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2RlIDEyCiBQQVNTIGVsZW1lbnQu
Y2xhc3NMaXN0LmNvbnRhaW5zKCd4IHknKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0
aCBjb2RlIDUKQEAgLTUyLDggKzUyLDggQEAgUEFTUyBlbGVtZW50LmNsYXNzTGlzdC50b2dnbGUo
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KIEluZGV4
aW5nCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0WzBdIGlzICJ4IgogUEFTUyBlbGVtZW50LmNsYXNz
TGlzdC5pdGVtKDApIGlzICJ4IgotUEFTUyBlbGVtZW50LmNsYXNzTGlzdFsxXSBpcyAieCIKLVBB
U1MgZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgxKSBpcyAieCIKK1BBU1MgZWxlbWVudC5jbGFzc0xp
c3RbMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5pdGVtKDEpIGlzIG51
bGwKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3RbMV0gaXMgInkiCiBQQVNTIGVsZW1lbnQuY2xhc3NM
aXN0Lml0ZW0oMSkgaXMgInkiCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0WzBdIGlzIHVuZGVmaW5l
ZC4KQEAgLTk4LDggKzk4LDggQEAgUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5hZGQoImEiLCB7dG9T
dHJpbmc6IGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoInVzZXIgZXIKIFBBU1MgZWxlbWVu
dC5jbGFzc05hbWUgaXMgIiIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCkgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCiBQQVNTIG9ic2VydmVyLnRha2VSZWNvcmRzKCkubGVuZ3RoIGlzIDEK
LVBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImIgZCAgIgotUEFTUyBlbGVtZW50LmNsYXNzTmFt
ZSBpcyAiZCAgIgorUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiYiBkIgorUEFTUyBlbGVtZW50
LmNsYXNzTmFtZSBpcyAiZCIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImEgYiBjIgogUEFT
UyBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2EnLCAnYicsICcnKSB0aHJldyBleHBlY3RlZCBE
T01FeGNlcHRpb24gd2l0aCBjb2RlIDEyCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJhIGIi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zY3JpcHQtdGVz
dHMvY2xhc3MtbGlzdC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3Njcmlw
dC10ZXN0cy9jbGFzcy1saXN0LmpzCmluZGV4IDkxMWQyNDRjZGVkNDBkZTY2M2Q5ZWRhNjM5MTUx
ZDVmZDE2NDdhZWYuLjdkYzQ4NzY5MTk0ZTUwZTA2MWFkMTA5YmI3OTk1MTZkZjFlYjhmM2IgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NjcmlwdC10ZXN0cy9j
bGFzcy1saXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3Njcmlw
dC10ZXN0cy9jbGFzcy1saXN0LmpzCkBAIC0zMSw3ICszMSw3IEBAIHNob3VsZEV2YWx1YXRlVG8o
J2VsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCcsIDEpOwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUu
b3JnL3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMDMuaHRt
CiBjcmVhdGVFbGVtZW50KCd4IHgnKTsKLXNob3VsZEV2YWx1YXRlVG8oJ2VsZW1lbnQuY2xhc3NM
aXN0Lmxlbmd0aCcsIDIpOworc2hvdWxkRXZhbHVhdGVUbygnZWxlbWVudC5jbGFzc0xpc3QubGVu
Z3RoJywgMSk7CiAKIC8vIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZs
ZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAwNC5odG0KIGNyZWF0ZUVsZW1lbnQoJ3ggeScp
OwpAQCAtNzAsNyArNzAsNyBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NO
YW1lJywgJycpOwogLy8gaHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxl
Y3RpbmcvRE9NVG9rZW5MaXN0L2dldHRpbmcvMDExLmh0bQogY3JlYXRlRWxlbWVudCgnIHkgeCAg
eSAnKTsKIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgneCcpOwotc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICcgeSB5ICcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdlbGVtZW50LmNsYXNzTmFtZScsICd5Jyk7CiAKIC8vIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcv
dGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAxMi5odG0KIGNy
ZWF0ZUVsZW1lbnQoJyB4IHkgIHggJyk7CkBAIC0xMjEsMTEgKzEyMSwxMSBAQCBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJ3ggeScpOwogCiBjcmVhdGVFbGVtZW50
KCd4XHQnKTsKIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgneScpOwotc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICd4XHR5Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2VsZW1lbnQuY2xhc3NOYW1lJywgJ3ggeScpOwogCiBjcmVhdGVFbGVtZW50KCcgJyk7CiBlbGVt
ZW50LmNsYXNzTGlzdC5hZGQoJ3knKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5j
bGFzc05hbWUnLCAnIHknKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05h
bWUnLCAneScpOwogCiAKIGRlYnVnKCdUZXN0IGludmFsaWQgdG9rZW5zJyk7CkBAIC0yMDYsOCAr
MjA2LDggQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTGlzdFswXScsICd4
Jyk7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NMaXN0Lml0ZW0oMCknLCAn
eCcpOwogCiBjcmVhdGVFbGVtZW50KCd4IHgnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxl
bWVudC5jbGFzc0xpc3RbMV0nLCAneCcpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50
LmNsYXNzTGlzdC5pdGVtKDEpJywgJ3gnKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCdlbGVtZW50LmNs
YXNzTGlzdFsxXScpOworc2hvdWxkQmVOdWxsKCdlbGVtZW50LmNsYXNzTGlzdC5pdGVtKDEpJyk7
CiAKIGNyZWF0ZUVsZW1lbnQoJ3ggeScpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50
LmNsYXNzTGlzdFsxXScsICd5Jyk7CkBAIC0zMjcsMTAgKzMyNywxMCBAQCBzaG91bGRCZSgnb2Jz
ZXJ2ZXIudGFrZVJlY29yZHMoKS5sZW5ndGgnLCAnMScpOwogCiBjcmVhdGVFbGVtZW50KCdhIGIg
YyBkICAnKTsKIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYScsICdjJyk7Ci1zaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJ2IgZCAgJyk7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJ2IgZCcpOwogCiBlbGVtZW50LmNsYXNzTGlz
dC5yZW1vdmUoJ2InLCAnYicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNz
TmFtZScsICdkICAnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUn
LCAnZCcpOwogCiBjcmVhdGVFbGVtZW50KCdhIGIgYyBudWxsIGQgdW5kZWZpbmVkIDAgZmFsc2Un
KTsKIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShudWxsLCB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkg
eyByZXR1cm4gJ2QnIH19LCB1bmRlZmluZWQsIDAsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2RvbS1zZXR0YWJsZS10b2tlbi1saXN0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2Rv
bS1zZXR0YWJsZS10b2tlbi1saXN0LWV4cGVjdGVkLnR4dAppbmRleCA4ZWM2MjRjOGY1ZDM4ZjI3
Mzc2ODU1OGRmMTRiYzg5OGI0NTI2OWQzLi5iM2IyOWY3YzkzYWI1OTcwNDAyNmM1ODQxYjZmMTFi
NTk0MTM0ZTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxl
bWVudC9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QtZXhw
ZWN0ZWQudHh0CkBAIC03LDE1ICs3LDE1IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNT
IFN0cmluZyhlbGVtZW50Lmh0bWxGb3IpIGlzICJ4IgogUEFTUyBlbGVtZW50Lmh0bWxGb3IubGVu
Z3RoIGlzIDAKIFBBU1MgZWxlbWVudC5odG1sRm9yLmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQu
aHRtbEZvci5sZW5ndGggaXMgMgorUEFTUyBlbGVtZW50Lmh0bWxGb3IubGVuZ3RoIGlzIDEKIFBB
U1MgZWxlbWVudC5odG1sRm9yLmxlbmd0aCBpcyAyCiBQQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0
cmluZygpIGlzICJ4IgogUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieCIKLVBB
U1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgInggIHgiCitQQVNTIGVsZW1lbnQuaHRt
bEZvci50b1N0cmluZygpIGlzICJ4IgogUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBp
cyAieSB4IgogUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAiIgogUEFTUyBlbGVt
ZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAiIgotUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJp
bmcoKSBpcyAiIHkgeSAiCitQQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICJ5Igog
UEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieSIKIC0gRW5zdXJlIHRoYXQgd2Ug
Y2FuIGhhbmRsZSBlbXB0eSBmb3JtIGF0dHJpYnV0ZSBjb3JyZWN0bHkKIFBBU1MgbGlzdC52YWx1
ZSBpcyAieCIKQEAgLTI2LDggKzI2LDggQEAgUEFTUyBlbGVtZW50Lmh0bWxGb3IuY29udGFpbnMo
J3gnKSBpcyB0cnVlCiBQQVNTIGVsZW1lbnQuaHRtbEZvclsxXSBpcyB1bmRlZmluZWQuCiAtIFRl
c3RpbmcgYWRkIGluIHByZXNlbmNlIG9mIHRyYWlsaW5nIHdoaXRlIHNwYWNlcy4KIFBBU1MgZWxl
bWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgInggeSIKLVBBU1MgZWxlbWVudC5odG1sRm9yLnRv
U3RyaW5nKCkgaXMgInhcdHkiCi1QQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICIg
eSIKK1BBU1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgInggeSIKK1BBU1MgZWxlbWVu
dC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgInkiCiAtIFRlc3QgaW52YWxpZCB0b2tlbnMKIFBBU1Mg
ZWxlbWVudC5odG1sRm9yLmNvbnRhaW5zKCcnKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24g
d2l0aCBjb2RlIDEyCiBQQVNTIGVsZW1lbnQuaHRtbEZvci5jb250YWlucygneCB5JykgdGhyZXcg
ZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSA1CkBAIC00MCw4ICs0MCw4IEBAIFBBU1Mg
ZWxlbWVudC5odG1sRm9yLnRvZ2dsZSgneCB5JykgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9u
IHdpdGggY29kZSA1CiAtIEluZGV4aW5nCiBQQVNTIGVsZW1lbnQuaHRtbEZvclswXSBpcyAieCIK
IFBBU1MgZWxlbWVudC5odG1sRm9yLml0ZW0oMCkgaXMgIngiCi1QQVNTIGVsZW1lbnQuaHRtbEZv
clsxXSBpcyAieCIKLVBBU1MgZWxlbWVudC5odG1sRm9yLml0ZW0oMSkgaXMgIngiCitQQVNTIGVs
ZW1lbnQuaHRtbEZvclsxXSBpcyB1bmRlZmluZWQuCitQQVNTIGVsZW1lbnQuaHRtbEZvci5pdGVt
KDEpIGlzIG51bGwKIFBBU1MgZWxlbWVudC5odG1sRm9yWzFdIGlzICJ5IgogUEFTUyBlbGVtZW50
Lmh0bWxGb3IuaXRlbSgxKSBpcyAieSIKIFBBU1MgZWxlbWVudC5odG1sRm9yWzBdIGlzIHVuZGVm
aW5lZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50
L2h0bWxvdXRwdXRlbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxPdXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50LWV4cGVjdGVkLnR4dAppbmRleCA0OGI4
NWRjYjBhNGMxMmFhNWJhODg5ZGM1MGU0NTgyMjI1NDMwYzk3Li4yMjVmMDhhYTg1YmEyMTAwNDJl
MTA5YzdkOWU5NmRhZjc3ZGFmZmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvaHRtbG91dHB1dGVsZW1lbnQtZXhw
ZWN0ZWQudHh0CkBAIC0xMiw3ICsxMiw3IEBAIFBBU1Mgb3V0cHV0Mi5odG1sRm9yLnZhbHVlIGlz
ICJmb3ItdGFyZ2V0MSIKIFBBU1Mgb3V0cHV0My5odG1sRm9yLmxlbmd0aCBpcyAyCiBQQVNTIG91
dHB1dDMuaHRtbEZvclswXSBpcyAiZm9yLXRhcmdldDEiCiBQQVNTIG91dHB1dDMuaHRtbEZvclsx
XSBpcyAiZm9yLXRhcmdldDIiCi1QQVNTIG91dHB1dDMuaHRtbEZvci52YWx1ZSBpcyAiIGZvci10
YXJnZXQxIGZvci10YXJnZXQyICIKK1BBU1Mgb3V0cHV0My5odG1sRm9yLnZhbHVlIGlzICJmb3It
dGFyZ2V0MSBmb3ItdGFyZ2V0MiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1
dEVsZW1lbnQvaHRtbG91dHB1dGVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxPdXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50Lmh0bWwKaW5kZXggZGY4M2NlYTFkMjU0
MzEwY2QxOWQ3Mjg3NjZmMmZkM2FhOTVmZjM5ZC4uMzY4NTc2YTNkMTNjMTBmZmEyNmE4MzJhMGQ0
MDUwYzYyZjE0YjA0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1
dEVsZW1lbnQvaHRtbG91dHB1dGVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxlbWVudC5odG1sCkBAIC0yOCw3ICsyOCw3
IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygnb3V0cHV0Mi5odG1sRm9yLnZhbHVlJywgJ2Zvci10
YXJnZXQxJyk7CiBzaG91bGRFdmFsdWF0ZVRvKCdvdXRwdXQzLmh0bWxGb3IubGVuZ3RoJywgMik7
CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ291dHB1dDMuaHRtbEZvclswXScsICdmb3ItdGFyZ2V0
MScpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdvdXRwdXQzLmh0bWxGb3JbMV0nLCAnZm9yLXRh
cmdldDInKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnb3V0cHV0My5odG1sRm9yLnZhbHVlJywg
JyBmb3ItdGFyZ2V0MSBmb3ItdGFyZ2V0MiAnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnb3V0
cHV0My5odG1sRm9yLnZhbHVlJywgJ2Zvci10YXJnZXQxIGZvci10YXJnZXQyJyk7CiA8L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRw
dXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFi
bGUtdG9rZW4tbGlzdC5qcwppbmRleCA1Y2YwNDM5YzZiMDE4YWY5ZDFiMWUzYmE3ZjJmYzJmMGJi
MTVmMWY1Li40NGRjNjc4Mzg4MTA3YzE0NjFhZGVhZTA3ZjBmNDQwMTc1NzQ4MmQ4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9zY3JpcHQtdGVzdHMv
ZG9tLXNldHRhYmxlLXRva2VuLWxpc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TE91dHB1dEVsZW1lbnQvc2NyaXB0LXRlc3RzL2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LmpzCkBA
IC0yOSw3ICsyOSw3IEBAIHNob3VsZEV2YWx1YXRlVG8oJ2VsZW1lbnQuaHRtbEZvci5sZW5ndGgn
LCAxKTsKIAogLy8gaHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3Rp
bmcvRE9NVG9rZW5MaXN0L2dldHRpbmcvMDAzLmh0bQogY3JlYXRlRWxlbWVudCgneCB4Jyk7Ci1z
aG91bGRFdmFsdWF0ZVRvKCdlbGVtZW50Lmh0bWxGb3IubGVuZ3RoJywgMik7CitzaG91bGRFdmFs
dWF0ZVRvKCdlbGVtZW50Lmh0bWxGb3IubGVuZ3RoJywgMSk7CiAKIC8vIGh0dHA6Ly9zaW1vbi5o
dG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAw
NC5odG0KIGNyZWF0ZUVsZW1lbnQoJ3ggeScpOwpAQCAtNDgsNyArNDgsNyBAQCBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvci50b1N0cmluZygpJywgJ3gnKTsKIC8vIGh0dHA6
Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9n
ZXR0aW5nLzAwNy5odG0KIGNyZWF0ZUVsZW1lbnQoJ3ggIHgnKTsKIGVsZW1lbnQuaHRtbEZvci5h
ZGQoJ3gnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yLnRvU3RyaW5n
KCknLCAneCAgeCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxGb3IudG9T
dHJpbmcoKScsICd4Jyk7CiAKIC8vIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9odG1sL2Rv
bS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAwOC5odG0KIGNyZWF0ZUVsZW1lbnQo
J3knKTsKQEAgLTY4LDcgKzY4LDcgQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0
bWxGb3IudG9TdHJpbmcoKScsICcnKTsKIC8vIGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9o
dG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2VuTGlzdC9nZXR0aW5nLzAxMS5odG0KIGNyZWF0ZUVs
ZW1lbnQoJyB5IHggIHkgJyk7CiBlbGVtZW50Lmh0bWxGb3IucmVtb3ZlKCd4Jyk7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvci50b1N0cmluZygpJywgJyB5IHkgJyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvci50b1N0cmluZygpJywgJ3knKTsK
IAogLy8gaHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9N
VG9rZW5MaXN0L2dldHRpbmcvMDEyLmh0bQogY3JlYXRlRWxlbWVudCgnIHggeSAgeCAnKTsKQEAg
LTEwMSwxMSArMTAxLDExIEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9y
LnRvU3RyaW5nKCknLCAneCB5Jyk7CiAKIGNyZWF0ZUVsZW1lbnQoJ3hcdCcpOwogZWxlbWVudC5o
dG1sRm9yLmFkZCgneScpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxGb3Iu
dG9TdHJpbmcoKScsICd4XHR5Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRt
bEZvci50b1N0cmluZygpJywgJ3ggeScpOwogCiBjcmVhdGVFbGVtZW50KCcgJyk7CiBlbGVtZW50
Lmh0bWxGb3IuYWRkKCd5Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZv
ci50b1N0cmluZygpJywgJyB5Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRt
bEZvci50b1N0cmluZygpJywgJ3knKTsKIAogCiBkZWJ1ZygnLSBUZXN0IGludmFsaWQgdG9rZW5z
Jyk7CkBAIC0xODIsOCArMTgyLDggQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0
bWxGb3JbMF0nLCAneCcpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50Lmh0bWxGb3Iu
aXRlbSgwKScsICd4Jyk7CiAKIGNyZWF0ZUVsZW1lbnQoJ3ggeCcpOwotc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdlbGVtZW50Lmh0bWxGb3JbMV0nLCAneCcpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdlbGVtZW50Lmh0bWxGb3IuaXRlbSgxKScsICd4Jyk7CitzaG91bGRCZVVuZGVmaW5lZCgnZWxl
bWVudC5odG1sRm9yWzFdJyk7CitzaG91bGRCZU51bGwoJ2VsZW1lbnQuaHRtbEZvci5pdGVtKDEp
Jyk7CiAKIGNyZWF0ZUVsZW1lbnQoJ3ggeScpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVt
ZW50Lmh0bWxGb3JbMV0nLCAneScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cmVsLWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVsLWxpc3QtZXhw
ZWN0ZWQudHh0CmluZGV4IGQxMGU5MDcwMmYzM2M5NTU3ZDY1N2RiZDMxZDgwNmM0YmIzNjBjNzUu
LjU2ZjI2M2FhOGM5ZTQ3MGMxMzAyNjRjMzQwODFhMDY1MGVmYzJjNDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3JlbC1saXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9yZWwtbGlzdC1leHBlY3RlZC50eHQKQEAgLTI2LDcgKzI2LDcgQEAgUEFTUyBl
bGVtZW50LnJlbExpc3QuY29udGFpbnMoIm9yYW5nZSIpIGlzIGZhbHNlCiBQQVNTIFN0cmluZyhl
bGVtZW50LnJlbExpc3QpIGlzICJ4IgogUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDAK
IFBBU1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQucmVsTGlzdC5s
ZW5ndGggaXMgMgorUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDEKIFBBU1MgZWxlbWVu
dC5yZWxMaXN0Lmxlbmd0aCBpcyAyCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ4IgogUEFTUyBlbGVt
ZW50LnJlbCBpcyAieCIKQEAgLTM0LDcgKzM0LDcgQEAgUEFTUyBlbGVtZW50LnJlbCBpcyAieCAg
eCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgInkgeCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgIiIKIFBB
U1MgZWxlbWVudC5yZWwgaXMgIiIKLVBBU1MgZWxlbWVudC5yZWwgaXMgIiB5IHkgIgorUEFTUyBl
bGVtZW50LnJlbCBpcyAieSIKIFBBU1MgZWxlbWVudC5yZWwgaXMgInkiCiBFbnN1cmUgdGhhdCB3
ZSBjYW4gaGFuZGxlIGVtcHR5IHJlbCBjb3JyZWN0bHkKIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRv
Z2dsZSgneCcpIGlzIHRydWUKQEAgLTU4LDggKzU4LDggQEAgUEFTUyBlbGVtZW50LnJlbExpc3Qu
dG9nZ2xlKCIiLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00g
RXgKIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgieCB5IiwgZmFsc2UpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSW52YWxpZENoYXJhY3RlckVycm9yOiBET00gRXhjZXB0aW9uIDUuCiBUZXN0
aW5nIGFkZCBpbiBwcmVzZW5jZSBvZiB0cmFpbGluZyB3aGl0ZSBzcGFjZXMuCiBQQVNTIGVsZW1l
bnQucmVsIGlzICJ4IHkiCi1QQVNTIGVsZW1lbnQucmVsIGlzICJ4XHR5IgotUEFTUyBlbGVtZW50
LnJlbCBpcyAiIHkiCitQQVNTIGVsZW1lbnQucmVsIGlzICJ4IHkiCitQQVNTIGVsZW1lbnQucmVs
IGlzICJ5IgogVGVzdCBpbnZhbGlkIHRva2VucwogUEFTUyBlbGVtZW50LnJlbExpc3QuY29udGFp
bnMoIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpb24g
MTIuCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5jb250YWlucygieCB5IikgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJbnZhbGlkQ2hhcmFjdGVyRXJyb3I6IERPTSBFeGNlcHRpb24gNS4KQEAgLTcxLDgg
KzcxLDggQEAgUEFTUyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCIiKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW8KIEluZGV4aW5nCiBQQVNTIGVsZW1lbnQu
cmVsTGlzdFswXSBpcyAieCIKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0oMCkgaXMgIngiCi1Q
QVNTIGVsZW1lbnQucmVsTGlzdFsxXSBpcyAieCIKLVBBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0o
MSkgaXMgIngiCitQQVNTIGVsZW1lbnQucmVsTGlzdFsxXSBpcyB1bmRlZmluZWQuCitQQVNTIGVs
ZW1lbnQucmVsTGlzdC5pdGVtKDEpIGlzIG51bGwKIFBBU1MgZWxlbWVudC5yZWxMaXN0WzFdIGlz
ICJ5IgogUEFTUyBlbGVtZW50LnJlbExpc3QuaXRlbSgxKSBpcyAieSIKIFBBU1MgZWxlbWVudC5y
ZWxMaXN0WzBdIGlzIHVuZGVmaW5lZC4KQEAgLTExNSw4ICsxMTUsOCBAQCBQQVNTIGVsZW1lbnQu
cmVsTGlzdC5hZGQoImEiLCB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3Io
InVzZXIgZXJybwogUEFTUyBlbGVtZW50LnJlbCBpcyAiIgogUEFTUyBlbGVtZW50LnJlbExpc3Qu
YWRkKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIG9ic2VydmVyLnRha2VSZWNvcmRz
KCkubGVuZ3RoIGlzIDEKLVBBU1MgZWxlbWVudC5yZWwgaXMgImIgZCAgIgotUEFTUyBlbGVtZW50
LnJlbCBpcyAiZCAgIgorUEFTUyBlbGVtZW50LnJlbCBpcyAiYiBkIgorUEFTUyBlbGVtZW50LnJl
bCBpcyAiZCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgImEgYiBjIgogUEFTUyBlbGVtZW50LnJlbExp
c3QucmVtb3ZlKCJhIiwgImIiLCAiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJv
cjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgZWxlbWVudC5yZWwgaXMgImEgYiIKQEAgLTE0OSw3
ICsxNDksNyBAQCBQQVNTIGVsZW1lbnQucmVsTGlzdC5jb250YWlucygib3JhbmdlIikgaXMgZmFs
c2UKIFBBU1MgU3RyaW5nKGVsZW1lbnQucmVsTGlzdCkgaXMgIngiCiBQQVNTIGVsZW1lbnQucmVs
TGlzdC5sZW5ndGggaXMgMAogUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDEKLVBBU1Mg
ZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAyCitQQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGgg
aXMgMQogUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDIKIFBBU1MgZWxlbWVudC5yZWwg
aXMgIngiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ4IgpAQCAtMTU3LDcgKzE1Nyw3IEBAIFBBU1Mg
ZWxlbWVudC5yZWwgaXMgInggIHgiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ5IHgiCiBQQVNTIGVs
ZW1lbnQucmVsIGlzICIiCiBQQVNTIGVsZW1lbnQucmVsIGlzICIiCi1QQVNTIGVsZW1lbnQucmVs
IGlzICIgeSB5ICIKK1BBU1MgZWxlbWVudC5yZWwgaXMgInkiCiBQQVNTIGVsZW1lbnQucmVsIGlz
ICJ5IgogRW5zdXJlIHRoYXQgd2UgY2FuIGhhbmRsZSBlbXB0eSByZWwgY29ycmVjdGx5CiBQQVNT
IGVsZW1lbnQucmVsTGlzdC50b2dnbGUoJ3gnKSBpcyB0cnVlCkBAIC0xODEsOCArMTgxLDggQEAg
UEFTUyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCIiLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IFN5bnRheEVycm9yOiBET00gRXgKIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgieCB5
IiwgZmFsc2UpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZENoYXJhY3RlckVycm9yOiBE
T00gRXhjZXB0aW9uIDUuCiBUZXN0aW5nIGFkZCBpbiBwcmVzZW5jZSBvZiB0cmFpbGluZyB3aGl0
ZSBzcGFjZXMuCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ4IHkiCi1QQVNTIGVsZW1lbnQucmVsIGlz
ICJ4XHR5IgotUEFTUyBlbGVtZW50LnJlbCBpcyAiIHkiCitQQVNTIGVsZW1lbnQucmVsIGlzICJ4
IHkiCitQQVNTIGVsZW1lbnQucmVsIGlzICJ5IgogVGVzdCBpbnZhbGlkIHRva2VucwogUEFTUyBl
bGVtZW50LnJlbExpc3QuY29udGFpbnMoIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4
RXJyb3I6IERPTSBFeGNlcHRpb24gMTIuCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5jb250YWlucygi
eCB5IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkQ2hhcmFjdGVyRXJyb3I6IERPTSBF
eGNlcHRpb24gNS4KQEAgLTE5NCw4ICsxOTQsOCBAQCBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dn
bGUoIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpbwog
SW5kZXhpbmcKIFBBU1MgZWxlbWVudC5yZWxMaXN0WzBdIGlzICJ4IgogUEFTUyBlbGVtZW50LnJl
bExpc3QuaXRlbSgwKSBpcyAieCIKLVBBU1MgZWxlbWVudC5yZWxMaXN0WzFdIGlzICJ4IgotUEFT
UyBlbGVtZW50LnJlbExpc3QuaXRlbSgxKSBpcyAieCIKK1BBU1MgZWxlbWVudC5yZWxMaXN0WzFd
IGlzIHVuZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSkgaXMgbnVsbAogUEFT
UyBlbGVtZW50LnJlbExpc3RbMV0gaXMgInkiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDEp
IGlzICJ5IgogUEFTUyBlbGVtZW50LnJlbExpc3RbMF0gaXMgdW5kZWZpbmVkLgpAQCAtMjM4LDgg
KzIzOCw4IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LmFkZCgiYSIsIHt0b1N0cmluZzogZnVuY3Rp
b24oKSB7IHRocm93IG5ldyBFcnJvcigidXNlciBlcnJvCiBQQVNTIGVsZW1lbnQucmVsIGlzICIi
CiBQQVNTIGVsZW1lbnQucmVsTGlzdC5hZGQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBB
U1Mgb2JzZXJ2ZXIudGFrZVJlY29yZHMoKS5sZW5ndGggaXMgMQotUEFTUyBlbGVtZW50LnJlbCBp
cyAiYiBkICAiCi1QQVNTIGVsZW1lbnQucmVsIGlzICJkICAiCitQQVNTIGVsZW1lbnQucmVsIGlz
ICJiIGQiCitQQVNTIGVsZW1lbnQucmVsIGlzICJkIgogUEFTUyBlbGVtZW50LnJlbCBpcyAiYSBi
IGMiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5yZW1vdmUoImEiLCAiYiIsICIiKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgogUEFTUyBlbGVtZW50
LnJlbCBpcyAiYSBiIgpAQCAtMjcyLDcgKzI3Miw3IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LmNv
bnRhaW5zKCJvcmFuZ2UiKSBpcyBmYWxzZQogUEFTUyBTdHJpbmcoZWxlbWVudC5yZWxMaXN0KSBp
cyAieCIKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAwCiBQQVNTIGVsZW1lbnQucmVs
TGlzdC5sZW5ndGggaXMgMQotUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDIKK1BBU1Mg
ZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAxCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGgg
aXMgMgogUEFTUyBlbGVtZW50LnJlbCBpcyAieCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgIngiCkBA
IC0yODAsNyArMjgwLDcgQEAgUEFTUyBlbGVtZW50LnJlbCBpcyAieCAgeCIKIFBBU1MgZWxlbWVu
dC5yZWwgaXMgInkgeCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgIiIKIFBBU1MgZWxlbWVudC5yZWwg
aXMgIiIKLVBBU1MgZWxlbWVudC5yZWwgaXMgIiB5IHkgIgorUEFTUyBlbGVtZW50LnJlbCBpcyAi
eSIKIFBBU1MgZWxlbWVudC5yZWwgaXMgInkiCiBFbnN1cmUgdGhhdCB3ZSBjYW4gaGFuZGxlIGVt
cHR5IHJlbCBjb3JyZWN0bHkKIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgneCcpIGlzIHRy
dWUKQEAgLTMwNCw4ICszMDQsOCBAQCBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUoIiIsIHRy
dWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeAogUEFTUyBlbGVt
ZW50LnJlbExpc3QudG9nZ2xlKCJ4IHkiLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
bnZhbGlkQ2hhcmFjdGVyRXJyb3I6IERPTSBFeGNlcHRpb24gNS4KIFRlc3RpbmcgYWRkIGluIHBy
ZXNlbmNlIG9mIHRyYWlsaW5nIHdoaXRlIHNwYWNlcy4KIFBBU1MgZWxlbWVudC5yZWwgaXMgIngg
eSIKLVBBU1MgZWxlbWVudC5yZWwgaXMgInhcdHkiCi1QQVNTIGVsZW1lbnQucmVsIGlzICIgeSIK
K1BBU1MgZWxlbWVudC5yZWwgaXMgInggeSIKK1BBU1MgZWxlbWVudC5yZWwgaXMgInkiCiBUZXN0
IGludmFsaWQgdG9rZW5zCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5jb250YWlucygiIikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgZWxl
bWVudC5yZWxMaXN0LmNvbnRhaW5zKCJ4IHkiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFs
aWRDaGFyYWN0ZXJFcnJvcjogRE9NIEV4Y2VwdGlvbiA1LgpAQCAtMzE3LDggKzMxNyw4IEBAIFBB
U1MgZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50
YXhFcnJvcjogRE9NIEV4Y2VwdGlvCiBJbmRleGluZwogUEFTUyBlbGVtZW50LnJlbExpc3RbMF0g
aXMgIngiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDApIGlzICJ4IgotUEFTUyBlbGVtZW50
LnJlbExpc3RbMV0gaXMgIngiCi1QQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDEpIGlzICJ4Igor
UEFTUyBlbGVtZW50LnJlbExpc3RbMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBlbGVtZW50LnJlbExp
c3QuaXRlbSgxKSBpcyBudWxsCiBQQVNTIGVsZW1lbnQucmVsTGlzdFsxXSBpcyAieSIKIFBBU1Mg
ZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSkgaXMgInkiCiBQQVNTIGVsZW1lbnQucmVsTGlzdFswXSBp
cyB1bmRlZmluZWQuCkBAIC0zNjEsOCArMzYxLDggQEAgUEFTUyBlbGVtZW50LnJlbExpc3QuYWRk
KCJhIiwge3RvU3RyaW5nOiBmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCJ1c2VyIGVycm8K
IFBBU1MgZWxlbWVudC5yZWwgaXMgIiIKIFBBU1MgZWxlbWVudC5yZWxMaXN0LmFkZCgpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBvYnNlcnZlci50YWtlUmVjb3JkcygpLmxlbmd0aCBp
cyAxCi1QQVNTIGVsZW1lbnQucmVsIGlzICJiIGQgICIKLVBBU1MgZWxlbWVudC5yZWwgaXMgImQg
ICIKK1BBU1MgZWxlbWVudC5yZWwgaXMgImIgZCIKK1BBU1MgZWxlbWVudC5yZWwgaXMgImQiCiBQ
QVNTIGVsZW1lbnQucmVsIGlzICJhIGIgYyIKIFBBU1MgZWxlbWVudC5yZWxMaXN0LnJlbW92ZSgi
YSIsICJiIiwgIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNl
cHRpb24gMTIuCiBQQVNTIGVsZW1lbnQucmVsIGlzICJhIGIiCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZWwtbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVsLWxp
c3QuaHRtbAppbmRleCBjYmMyYzRhNTQ4NjVlMTQyOGExOTVjYTU0NjM1ZjQ4YmM4OTYyNmQwLi4w
OTNhYWFhM2ViZGY5MzBjOTM4YmRkZjdhYTk2ZTQ3ZDJkNDQyMGUzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9yZWwtbGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3JlbC1saXN0Lmh0bWwKQEAgLTYyLDcgKzYyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgc2hv
dWxkRXZhbHVhdGVUbygnZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCcsIDEpOwogCiAgICAgY3JlYXRl
RWxlbWVudCgneCB4Jyk7Ci0gICAgc2hvdWxkRXZhbHVhdGVUbygnZWxlbWVudC5yZWxMaXN0Lmxl
bmd0aCcsIDIpOworICAgIHNob3VsZEV2YWx1YXRlVG8oJ2VsZW1lbnQucmVsTGlzdC5sZW5ndGgn
LCAxKTsKIAogICAgIGNyZWF0ZUVsZW1lbnQoJ3ggeScpOwogICAgIHNob3VsZEV2YWx1YXRlVG8o
J2VsZW1lbnQucmVsTGlzdC5sZW5ndGgnLCAyKTsKQEAgLTkzLDcgKzkzLDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAKICAgICBjcmVhdGVFbGVtZW50KCcgeSB4ICB5ICcpOwogICAgIGVsZW1lbnQucmVs
TGlzdC5yZW1vdmUoJ3gnKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVs
JywgJyB5IHkgJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbCcsICd5
Jyk7CiAKICAgICBjcmVhdGVFbGVtZW50KCcgeCB5ICB4ICcpOwogICAgIGVsZW1lbnQucmVsTGlz
dC5yZW1vdmUoJ3gnKTsKQEAgLTEzNCwxMSArMTM0LDExIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAg
ICAgY3JlYXRlRWxlbWVudCgneFx0Jyk7CiAgICAgZWxlbWVudC5yZWxMaXN0LmFkZCgneScpOwot
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwnLCAneFx0eScpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwnLCAneCB5Jyk7CiAKICAgICBjcmVhdGVF
bGVtZW50KCcgJyk7CiAgICAgZWxlbWVudC5yZWxMaXN0LmFkZCgneScpOwotICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwnLCAnIHknKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2VsZW1lbnQucmVsJywgJ3knKTsKIAogICAgIGRlYnVnKCdUZXN0IGludmFsaWQgdG9r
ZW5zJyk7CiAKQEAgLTE2OSw4ICsxNjksOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVsTGlzdC5pdGVtKDApJywgJ3gnKTsKIAogICAgIGNy
ZWF0ZUVsZW1lbnQoJ3ggeCcpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5y
ZWxMaXN0WzFdJywgJ3gnKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVs
TGlzdC5pdGVtKDEpJywgJ3gnKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgnZWxlbWVudC5yZWxM
aXN0WzFdJyk7CisgICAgc2hvdWxkQmVOdWxsKCdlbGVtZW50LnJlbExpc3QuaXRlbSgxKScpOwog
CiAgICAgY3JlYXRlRWxlbWVudCgneCB5Jyk7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdl
bGVtZW50LnJlbExpc3RbMV0nLCAneScpOwpAQCAtMjYwLDEwICsyNjAsMTAgQEAgZnVuY3Rpb24g
dGVzdCgpCiAKICAgICBjcmVhdGVFbGVtZW50KCdhIGIgYyBkICAnKTsKICAgICBlbGVtZW50LnJl
bExpc3QucmVtb3ZlKCdhJywgJ2MnKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1l
bnQucmVsJywgJ2IgZCAgJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJl
bCcsICdiIGQnKTsKIAogICAgIGVsZW1lbnQucmVsTGlzdC5yZW1vdmUoJ2InLCAnYicpOwotICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwnLCAnZCAgJyk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbCcsICdkJyk7CiAKICAgICBjcmVhdGVFbGVtZW50
KCdhIGIgYyBudWxsIGQgdW5kZWZpbmVkIDAgZmFsc2UnKTsKICAgICBlbGVtZW50LnJlbExpc3Qu
cmVtb3ZlKG51bGwsIHt0b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiAnZCcgfX0sIHVuZGVm
aW5lZCwgMCwgZmFsc2UpOwpAQCAtMzAwLDQgKzMwMCw0IEBAIHRlc3QoKTsKIDwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgog
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2xpc3RzL0RPTVRva2VuTGlzdC1zdHJpbmdpZmllci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9saXN0cy9ET01Ub2tlbkxpc3Qt
c3RyaW5naWZpZXItZXhwZWN0ZWQudHh0CmluZGV4IDJlNTVmNjY3NzQ1NWMyOWYyODIxMGY4NTY1
MjIxOWE4MDc4M2UyYzAuLjhiMWQ1YzIyNzk4YTVlNGNjYTYzNTVmMjJkZWQ1OTQzY2RjYjU1ZmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2xpc3RzL0RPTVRva2VuTGlzdC1zdHJpbmdpZmllci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbGlzdHMvRE9NVG9r
ZW5MaXN0LXN0cmluZ2lmaWVyLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBE
T01Ub2tlbkxpc3Qgc3RyaW5naWZpZXIgYXNzZXJ0X2VxdWFsczogU3RyaW5nKGNsYXNzTGlzdCkg
c2hvdWxkIGNvbXByZXNzIHdoaXRlc3BhY2UgZXhwZWN0ZWQgImEgYiIgYnV0IGdvdCAiICAgYSAg
YSBiIgorUEFTUyBET01Ub2tlbkxpc3Qgc3RyaW5naWZpZXIgCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQt
Y2xhc3NsaXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtY2xhc3NsaXN0LWV4cGVjdGVkLnR4dAppbmRl
eCA3YWY4ZTkwOWFkMzdiZTJkYmY4ZGU4NTdmZjU5YThmMGNiMGRmMDMxLi4xZGFkYzdmZDc1NmI3
NDc2MmU2NTRmNTdkMDk2Y2ZhNGM2ZjE0NzU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNsYXNzbGlzdC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jbGFzc2xpc3QtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUs
NyBAQCBQQVNTIERPTVRva2VuTGlzdCBzaG91bGQgYmUgZXhwb3NlZCBmb3IgcHJvdG90eXBpbmcK
IFBBU1MgcHJvdG90eXBpbmcgRE9NVG9rZW5MaXN0IHNob3VsZCB3b3JrIAogUEFTUyBFbGVtZW50
LmNsYXNzTGlzdCBtdXN0IGltcGxlbWVudCBET01Ub2tlbkxpc3QgCiBQQVNTIENTUyAuZm9vIHNl
bGVjdG9ycyBtdXN0IG5vdCBtYXRjaCBlbGVtZW50cyB3aXRob3V0IGFueSBjbGFzcyAKLUZBSUwg
Y2xhc3NMaXN0IG11c3QgYmUgY29ycmVjdCBmb3IgYW4gZWxlbWVudCB0aGF0IGhhcyBjbGFzc2Vz
IGFzc2VydF9lcXVhbHM6IGR1cGxpY2F0ZXMgaW4gaW5pdGlhbCBzdHJpbmcgc2hvdWxkIGJlIHJl
bW92ZWQgcGVyIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1jbGFzcyBleHBl
Y3RlZCAxIGJ1dCBnb3QgMgorUEFTUyBjbGFzc0xpc3QgbXVzdCBiZSBjb3JyZWN0IGZvciBhbiBl
bGVtZW50IHRoYXQgaGFzIGNsYXNzZXMgCiBQQVNTIGNsYXNzTGlzdC5sZW5ndGggbXVzdCBiZSAw
IGZvciBhbiBlbGVtZW50IHRoYXQgaGFzIG5vIGNsYXNzZXMgCiBQQVNTIGNsYXNzTGlzdCBtdXN0
IG5vdCBjb250YWluIGFuIHVuZGVmaW5lZCBjbGFzcyAKIFBBU1MgY2xhc3NMaXN0Lml0ZW0oKSBt
dXN0IHJldHVybiBudWxsIGZvciBvdXQtb2YtcmFuZ2UgaW5kZXggCkBAIC0xMyw3ICsxMyw3IEBA
IFBBU1MgY2xhc3NMaXN0Lml0ZW0oKSBtdXN0IHJldHVybiBudWxsIGZvciBuZWdhdGl2ZSBpbmRl
eAogUEFTUyBjbGFzc0xpc3RbaW5kZXhdIG11c3QgYmUgdW5kZWZpbmVkIGZvciBvdXQtb2YtcmFu
Z2UgaW5kZXggCiBQQVNTIGNsYXNzTGlzdFtpbmRleF0gbXVzdCBiZSB1bmRlZmluZWQgZm9yIG5l
Z2F0aXZlIGluZGV4IAogUEFTUyBjbGFzc05hbWUgc2hvdWxkIGNvbnRhaW4gaW5pdGlhbCBtYXJr
dXAgd2hpdGVzcGFjZSAKLUZBSUwgZW1wdHkgY2xhc3NMaXN0IHNob3VsZCByZXR1cm4gdGhlIGVt
cHR5IHN0cmluZyBzaW5jZSB0aGUgb3JkZXJlZCBzZXQgcGFyc2VyIHNraXAgdGhlIHdoaXRlc3Bh
Y2VzIGFzc2VydF9lcXVhbHM6IGltcGxpY2l0IGV4cGVjdGVkICIiIGJ1dCBnb3QgIiAiCitQQVNT
IGVtcHR5IGNsYXNzTGlzdCBzaG91bGQgcmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcgc2luY2UgdGhl
IG9yZGVyZWQgc2V0IHBhcnNlciBza2lwIHRoZSB3aGl0ZXNwYWNlcyAKIFBBU1MgLmNvbnRhaW5z
KGVtcHR5X3N0cmluZykgbXVzdCB0aHJvdyBhIFNZTlRBWF9FUlIgCiBQQVNTIC5hZGQoZW1wdHlf
c3RyaW5nKSBtdXN0IHRocm93IGEgU1lOVEFYX0VSUiAKIFBBU1MgLnJlbW92ZShlbXB0eV9zdHJp
bmcpIG11c3QgdGhyb3cgYSBTWU5UQVhfRVJSIApAQCAtNDMsMTAgKzQzLDEwIEBAIFBBU1MgY2xh
c3NMaXN0LnJlbW92ZSBtdXN0IHJlbW92ZSBleGlzdGluZyB0b2tlbnMKIFBBU1MgY2xhc3NMaXN0
LnJlbW92ZSBtdXN0IG5vdCBicmVhayBjYXNlLXNlbnNpdGl2ZSBDU1Mgc2VsZWN0b3IgbWF0Y2hp
bmcgCiBQQVNTIGNsYXNzTGlzdC5yZW1vdmUgbXVzdCByZW1vdmUgZHVwbGljYXRlZCB0b2tlbnMg
CiBQQVNTIGNsYXNzTGlzdC5yZW1vdmUgbXVzdCBjb2xsYXBzZSB3aGl0ZXNwYWNlIGFyb3VuZCBy
ZW1vdmVkIHRva2VucyAKLUZBSUwgY2xhc3NMaXN0LnJlbW92ZSBtdXN0IGNvbGxhcHNlIHdoaXRl
c3BhY2VzIGFyb3VuZCBlYWNoIHRva2VuIGFzc2VydF9lcXVhbHM6IGltcGxpY2l0IGV4cGVjdGVk
ICJ0b2tlbjEiIGJ1dCBnb3QgIiB0b2tlbjEiCi1GQUlMIGNsYXNzTGlzdC5yZW1vdmUgbXVzdCBj
b2xsYXBzZSB3aGl0ZXNwYWNlcyBhcm91bmQgZWFjaCB0b2tlbiBhbmQgcmVtb3ZlIGR1cGxpY2F0
ZXMgYXNzZXJ0X2VxdWFsczogaW1wbGljaXQgZXhwZWN0ZWQgInRva2VuMSIgYnV0IGdvdCAiICB0
b2tlbjEgdG9rZW4xICAiCitQQVNTIGNsYXNzTGlzdC5yZW1vdmUgbXVzdCBjb2xsYXBzZSB3aGl0
ZXNwYWNlcyBhcm91bmQgZWFjaCB0b2tlbiAKK1BBU1MgY2xhc3NMaXN0LnJlbW92ZSBtdXN0IGNv
bGxhcHNlIHdoaXRlc3BhY2VzIGFyb3VuZCBlYWNoIHRva2VuIGFuZCByZW1vdmUgZHVwbGljYXRl
cyAKIFBBU1MgY2xhc3NMaXN0LnJlbW92ZSBtdXN0IGNvbGxhcHNlIHdoaXRlc3BhY2Ugd2hlbiBy
ZW1vdmluZyBkdXBsaWNhdGUgdG9rZW5zIAotRkFJTCBjbGFzc0xpc3QuYWRkIG11c3QgY29sbGFw
c2Ugd2hpdGVzcGFjZXMgYW5kIHJlbW92ZSBkdXBsaWNhdGVzIHdoZW4gYWRkaW5nIGEgdG9rZW4g
dGhhdCBhbHJlYWR5IGV4aXN0cyBhc3NlcnRfZXF1YWxzOiBpbXBsaWNpdCBleHBlY3RlZCAidG9r
ZW4xIiBidXQgZ290ICIgIHRva2VuMSAgdG9rZW4xICAiCitQQVNTIGNsYXNzTGlzdC5hZGQgbXVz
dCBjb2xsYXBzZSB3aGl0ZXNwYWNlcyBhbmQgcmVtb3ZlIGR1cGxpY2F0ZXMgd2hlbiBhZGRpbmcg
YSB0b2tlbiB0aGF0IGFscmVhZHkgZXhpc3RzIAogUEFTUyBjbGFzc0xpc3QudG9nZ2xlIG11c3Qg
dG9nZ2xlIHRva2VucyBjYXNlLXNlbnNpdGl2ZWx5IHdoZW4gYWRkaW5nIAogUEFTUyBjbGFzc0xp
c3QudG9nZ2xlIG11c3Qgbm90IGJyZWFrIGNhc2Utc2Vuc2l0aXZlIENTUyBzZWxlY3RvciBtYXRj
aGluZyAKIFBBU1MgY2xhc3NMaXN0LnRvZ2dsZSBtdXN0IGJlIGFibGUgdG8gcmVtb3ZlIHRva2Vu
cyAKQEAgLTU3LDEwICs1NywxMCBAQCBQQVNTIGNsYXNzTGlzdCBtdXN0IHN0cmluZ2lmeSB0byBh
biBlbXB0eSBzdHJpbmcgd2hlbiBhbGwgY2xhc3NlcyBoYXZlIGJlZW4gcmVtbwogUEFTUyBjbGFz
c0xpc3QuaXRlbSgwKSBtdXN0IHJldHVybiBudWxsIHdoZW4gYWxsIGNsYXNzZXMgaGF2ZSBiZWVu
IHJlbW92ZWQgCiBQQVNTIGNsYXNzTGlzdFswXSBtdXN0IGJlIHVuZGVmaW5lZCB3aGVuIGFsbCBj
bGFzc2VzIGhhdmUgYmVlbiByZW1vdmVkIAogUEFTUyBjbGFzc0xpc3QuYWRkIHNob3VsZCB0cmVh
dCAiICIgYXMgYSBzcGFjZSAKLUZBSUwgY2xhc3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXHQgYXMg
YSBzcGFjZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYSBiIiBidXQgZ290ICJhXHRiIgotRkFJ
TCBjbGFzc0xpc3QuYWRkIHNob3VsZCB0cmVhdCBcciBhcyBhIHNwYWNlIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJhIGIiIGJ1dCBnb3QgImFccmIiCi1GQUlMIGNsYXNzTGlzdC5hZGQgc2hvdWxk
IHRyZWF0IFxuIGFzIGEgc3BhY2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImEgYiIgYnV0IGdv
dCAiYVxuYiIKLUZBSUwgY2xhc3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXGYgYXMgYSBzcGFjZSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYSBiIiBidXQgZ290ICJhXGZiIgorUEFTUyBjbGFzc0xp
c3QuYWRkIHNob3VsZCB0cmVhdCBcdCBhcyBhIHNwYWNlIAorUEFTUyBjbGFzc0xpc3QuYWRkIHNo
b3VsZCB0cmVhdCBcciBhcyBhIHNwYWNlIAorUEFTUyBjbGFzc0xpc3QuYWRkIHNob3VsZCB0cmVh
dCBcbiBhcyBhIHNwYWNlIAorUEFTUyBjbGFzc0xpc3QuYWRkIHNob3VsZCB0cmVhdCBcZiBhcyBh
IHNwYWNlIAogUEFTUyBjbGFzc0xpc3QubGVuZ3RoIG11c3QgYmUgcmVhZC1vbmx5IAogUEFTUyBj
bGFzc0xpc3QgbXVzdCBiZSByZWFkLW9ubHkgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261012</attachid>
            <date>2015-09-11 13:22:57 -0700</date>
            <delta_ts>2015-09-11 14:33:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148589-20150911132249.patch</filename>
            <type>text/plain</type>
            <size>96266</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM2N2M5Y2NkYTY0Y2Vh
ZTBiN2QxOTY4ODViZTM3MjE0ZWU0YmM3NS4uZjlkMmQzYWQ3ZTMzM2U0MjYzMTRlZTExZDExMjY4
OGU1NjEwOWIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1OSBAQAorMjAxNS0wOS0xMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERPTVRva2VuTGlzdCB1cGRh
dGUgc3RlcHMgZm9yIGNsYXNzTGlzdCBkb24ndCBmb2xsb3cgdGhlIHNwZWMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODU4OQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjI1NDc0NDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
IGFuZCBEYXJpbiBBZGxlci4KKworICAgICAgICBVcGRhdGUgb3VyIERPTVRva2VuTGlzdCBpbXBs
ZW1lbnRhdGlvbiB0byBiZWhhdmUgYWNjb3JkaW5nIHRvCisgICAgICAgIHRoZSBsYXRlc3QgRE9N
IHNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jaW50
ZXJmYWNlLWRvbXRva2VubGlzdAorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoZSBmb2xsb3dp
bmcgY2hhbmdlcyB3ZXJlIG1hZGU6CisgICAgICAgIC0gVGhlIHN0cmluZ2lmaWVyIG5vdyByZXR1
cm5zIHRoZSByZXN1bHQgb2YgdGhlIG9yZGVyZWQgc2V0IHNlcmlhbGl6ZXIKKyAgICAgICAgICBm
b3IgdG9rZW5zLiBUaGlzIG1lYW5zIHRoYXQgd2UgZHJvcCBkdXBsaWNhdGUgc3BhY2VzIGFuZCBl
eHRyYSBzcGFjZXMKKyAgICAgICAgICBbMV1bMl1bM10uCisgICAgICAgIC0gRE9NU2V0dGFibGVU
b2tlbkxpc3QudmFsdWUgbm93IHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgb3JkZXJlZCBzZXQK
KyAgICAgICAgICBzZXJpYWxpemVyIGZvciB0b2tlbnMgWzRdIGFzIHdlbGwuCisgICAgICAgIC0g
V2hlbiB0aGUgRE9NVG9rZW5MaXN0J3MgdG9rZW5zIGFyZSB1cGRhdGVkIGFuZCB0aGVyZSBpcyBh
biBhc3NvY2lhdGVkCisgICAgICAgICAgRWxlbWVudCBhdHRyaWJ1dGUsIHdlIHNldCB0aGUgYXR0
cmlidXRlIHZhbHVlIHRvIGJlIHRoZSB0aGUgb3JkZXJlZAorICAgICAgICAgIHNldCBzZXJpYWxp
emVyIGZvciB0b2tlbnMuIFRoaXMgaXMgYWNjb3JkaW5nIHRvIHRoZSBET01Ub2tlbkxpc3QKKyAg
ICAgICAgICB1cGRhdGUgc3RlcHMgaW4gdGhlIHNwZWNpZmljYXRpb24gWzZdLiBDaHJvbWUgZG9l
cyBub3QgbWF0Y2ggdGhlCisgICAgICAgICAgc3BlY2lmaWNhdGlvbiBlaXRoZXIuCisKKyAgICAg
ICAgRWRnZSBicm93c2VyIGJlaGF2ZXMgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGFs
cmVhZHkuIEZpcmVmb3ggd2FzCisgICAgICAgIGltcGxlbWVudGluZyB0aGlzIHZpYSBbN10gYnV0
IG5vIHJlY2VudCBwcm9ncmVzcy4gVGhpcyBtYWtlcyB0aGUgSlMgQVBJCisgICAgICAgIG5pY2Vy
IHRvIHVzZSBhbmQgaW50ZXJlc3Qgd2FzIHNob3duIGJ5IGpRdWVyeSBUZWFtLgorCisgICAgICAg
IFRoZSBmb2xsb3dpbmcgcmVmYWN0b3Jpbmcgd2FzIGRvbmU6CisgICAgICAgIC0gTWVyZ2UgQ2xh
c3NMaXN0IC8gUmVsTGlzdCBpbnRvIGEgc2luZ2xlIEF0dHJpYnV0ZURPTVRva2VuTGlzdCBjbGFz
cworICAgICAgICAgIGFzIHRoZWlyIGNvZGUgaXMgbW9zdGx5IGR1cGxpY2F0ZWQgYW5kIHRoZSBv
bmx5IHRoaW5nIHRoYXQgY2hhbmdlcworICAgICAgICAgIGlzIHdoaWNoIGF0dHJpYnV0ZSBpcyBh
c3NvY2lhdGVkIChjbGFzcyB2cyByZWwpLiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QKKyAgICAgICAg
ICBub3cga2VlcHMgdGhlIGF0dHJpYnV0ZSBuYW1lIGFzIGEgbWVtYmVyIHNvIGl0IGNvdWxkIGJl
IHVzZWQgZm9yIGFueQorICAgICAgICAgIGF0dHJpYnV0ZS4gQXR0cmlidXRlRE9NVG9rZW5MaXN0
IG92ZXJyaWRlcyBET01Ub2tlbkxpc3QncworICAgICAgICAgIHVwZGF0ZUFmdGVyVG9rZW5DaGFu
Z2UoKSB0byBkbyB1cGRhdGUgdGhlIGF0dHJpYnV0ZSdzIHZhbHVlIGFzIHBlcgorICAgICAgICAg
IFs2XS4KKyAgICAgICAgLSBXZSBubyBsb25nZXIgdXNlIGEgU3BhY2VTcGxpdFN0cmluZyBmb3Ig
dGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uCisgICAgICAgICAgYXMgd2UgbmVlZCB0byBzYW5p
dGl6ZSB0aGUgdG9rZW5zIChkcm9wIGR1cGxpY2F0ZXMgYW5kIGV4dHJhIHNwYWNlcykuCisgICAg
ICAgICAgRE9NVG9rZW5MaXN0IG5vdyBoYXMgYW4gaW50ZXJuYWwgVmVjdG9yPEF0b21pY1N0cmlu
Zz4gY29udGFpbmluZyB0aGUKKyAgICAgICAgICB0b2tlbnMgdGhhdCBpcyBjb25zdHJ1Y3RlZCBm
cm9tIHRoZSBhbGdvcml0aG0gaW4gWzJdLiBBcyBhIHJlc3VsdCwKKyAgICAgICAgICBtb3N0IG9m
IHRoZSBsb2dpYyBpcyBub3cgaW4gRE9NVG9rZW5MaXN0IGluc3RlYWQgb2YgaXRzIHN1YmNsYXNz
ZXMKKyAgICAgICAgICB3aGljaCBtZWFucyB0aGF0IG1vc3QgbWV0aG9kcyBhcmUgbm8gbG9uZ2Vy
IHZpcnR1YWwuIFdlIG9ubHkgaGF2ZQorICAgICAgICAgIG9uZSB2aXJ0dWFsIGZ1bmN0aW9uIG5h
bWVkIHVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKSB0byBkbyB0aGUgdXBkYXRlCisgICAgICAgICAg
c3RlcHMgYXMgQXR0cmlidXRlRE9NVG9rZW5MaXN0IG5lZWRzIHRvIHVwZGF0ZSB0aGUgYXNzb2Np
YXRlZAorICAgICAgICAgIGF0dHJpYnV0ZS4KKworICAgICAgICBUaGlzIGNoYW5nZSBkb2VzIG5v
dCBzZWVtIHRvIGltcGFjdCBEcm9tYWVvLgorCisgICAgICAgIFsxXSBodHRwczovL2RvbS5zcGVj
LndoYXR3Zy5vcmcvI2NvbmNlcHQtb3JkZXJlZC1zZXQtc2VyaWFsaXplcgorICAgICAgICBbMl0g
aHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNvcmRlcmVkJTIwc2V0cworICAgICAgICBbM10g
aHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNzdHJpbmdpZmljYXRpb24tYmVoYXZpb3IKKyAg
ICAgICAgWzRdIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvbXNldHRhYmxldG9r
ZW5saXN0LXZhbHVlCisgICAgICAgIFs1XSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2Rv
bS1kb210b2tlbmxpc3QtY29udGFpbnMgKHN0ZXAgMikKKyAgICAgICAgWzZdIGh0dHBzOi8vZG9t
LnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1EVEwtdXBkYXRlCisgICAgICAgIFs3XSBodHRwczov
L2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD04Njk3ODgKKworICAgICAgICBO
byBuZXcgdGVzdHMsIGFscmVhZHkgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNsYXNzQXR0
cmlidXRlQ2hhbmdlZCk6CisgICAgICAgIFdoZW4gdGhlIGNsYXNzIGF0dHJpYnV0ZSBjaGFuZ2Vz
LCBtYWtlIHN1cmUgdG8gdXBkYXRlIHRoZSBhc3NvY2lhdGVkCisgICAgICAgIGNsYXNzTGlzdCBp
ZiB0aGVyZSBpcyBvbmUuIFdlIGNvdWxkIGRvIHRoaXMgbGF6aWx5IGlmIGl0IHR1cm5zIG91dAor
ICAgICAgICB0byBiZSBhIHBlcmZvcm1hbmNlIHByb2JsZW0uIEhvd2V2ZXIsIGNoYW5jZXMgYXJl
IHRoaXMgaXMgbm90IGFzCisgICAgICAgIGNsYXNzTGlzdCBpcyByYXJlbHkgdXNlZCBhbmQgd2Ug
b25seSBuZWVkIHRvIHVwZGF0ZSB0aGUgY2xhc3NMaXN0IGlmCisgICAgICAgIGl0IHdhcyBldmVy
IGFjY2Vzc2VkIGJ5IEpTIGZvciB0aGlzIEVsZW1lbnQuCisKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgIERyb3AgY2FsbCB0byBjbGVhckNsYXNzTGlz
dFZhbHVlRm9yUXVpcmtzTW9kZSgpIGFzIHdlIG5vIGxvbmdlciBuZWVkCisgICAgICAgIHRvIG1h
aW50YWluIGEgc2VwYXJhdGUgU3BhY2VTcGxpdFN0cmluZyBmb3IgY2xhc3NlcyB3aGVuIGluIHF1
aXJrcworICAgICAgICBtb2RlLiBUaGlzIGlzIGJlY2F1c2UgQXR0cmlidXRlRE9NVG9rZW5MaXN0
IG5vdyBoYXMgaXRzIG93biBWZWN0b3IKKyAgICAgICAgb2YgY2xhc3NlcyBpbiB0aGVpciBvcmln
aW5hbCBjYXNlcy4gSXQgdGhlcmVmb3JlIG5vIGxvbmdlciByZWxpZXMgb24KKyAgICAgICAgRWxl
bWVudDo6Y2xhc3NOYW1lcygpIHdoaWNoIGhhcyBpdHMgY2FzZSBmb2xkZWQgd2hlbiBpbiBxdWly
a3MgbW9kZS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xhc3NMaXN0KToKKyAgICAg
ICAgUmV0dXJuIGEgQXR0cmlidXRlRE9NVG9rZW5MaXN0IGluc3RlYWQgb2YgYSBDbGFzc0xpc3Qu
CisKKyAgICAgICAgKiBodG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBodG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXR0cmlidXRlRE9NVG9rZW5MaXN0OjpBdHRyaWJ1dGVET01Ub2tlbkxpc3QpOgorICAg
ICAgICBDYWxsIERPTVRva2VuTGlzdDo6c2V0VmFsdWUoKSB1c2luZyB0aGUgYXR0cmlidXRlJ3Mg
dmFsdWUgc28gdGhhdAorICAgICAgICBET01Ub2tlbkxpc3QgY2FuIGluaXRpYWxpemUgaXRzIHRv
a2VuIFZlY3Rvci4KKworICAgICAgICAoV2ViQ29yZTo6QXR0cmlidXRlRE9NVG9rZW5MaXN0Ojph
dHRyaWJ1dGVWYWx1ZUNoYW5nZWQpOgorICAgICAgICBJZiB0aGUgYXR0cmlidXRlIHZhbHVlIHdh
cyBjaGFuZ2VkIGJ5IHNvbWVib2R5IGVsc2UgdGhhdCB0aGUKKyAgICAgICAgQXR0cmlidXRlRE9N
VG9rZW5MaXN0LCBjYWxsIERPTVRva2VuTGlzdDo6c2V0VmFsdWUoKSBzbyB0aGF0IGl0CisgICAg
ICAgIGNhbiB1cGRhdGUgaXRzIHRva2VuIFZlY3Rvci4KKworICAgICAgICAoV2ViQ29yZTo6QXR0
cmlidXRlRE9NVG9rZW5MaXN0Ojp1cGRhdGVBZnRlclRva2VuQ2hhbmdlKToKKyAgICAgICAgVGhp
cyBpcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIHRva2VuIFZlY3RvciBpcyBjaGFuZ2VkIHZpYSBKUy4g
SW4KKyAgICAgICAgdGhpcyBjYXNlLCB3ZSB1cGRhdGUgdGhlIGFzc29jaWF0ZWQgYXR0cmlidXRl
J3MgdmFsdWUuCisKKyAgICAgICAgKiBodG1sL0NsYXNzTGlzdC5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogaHRtbC9DbGFzc0xpc3QuaDogUmVtb3ZlZC4KKyAgICAgICAgTm93IG1lcmdlZCBpbnRv
IEF0dHJpYnV0ZURPTVRva2VuTGlzdC4KKworICAgICAgICAqIGh0bWwvRE9NU2V0dGFibGVUb2tl
bkxpc3QuY3BwOgorICAgICAgICAqIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaDoKKyAgICAg
ICAgR2V0IHJpZCBvZiBtb3N0IG9mIHRoZSBjb2RlIGFzIG1vc3Qgb2YgdGhlIGxvZ2ljIGlzIG5v
dyBpbgorICAgICAgICBET01Ub2tlbkxpc3QgcGFyZW50IGNsYXNzLgorCisgICAgICAgICogaHRt
bC9ET01Ub2tlbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp2YWxp
ZGF0ZVRva2VuKToKKyAgICAgICAgVXNlIGEgU3RyaW5nIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGFu
IEF0b21pY1N0cmluZyBhcyB0aGlzIG1ldGhvZCBkb2VzCisgICAgICAgIG5vdCBuZWVkIHRoZSBp
bnB1dCB0aGUgYmUgYW4gQXRvbWljU3RyaW5nLiBUaGlzIGF2b2lkIGF0b21pemluZworICAgICAg
ICBTdHJpbmcgdW5uZWNlc3NhcmlseS4KKworICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0
Ojp2YWxpZGF0ZVRva2Vucyk6CisgICAgICAgIFVzZSBhIG1vZGVybiBsb29wLgorCisgICAgICAg
IChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OmNvbnRhaW5zKToKKyAgICAgICAgTm8gbG9uZ2VyIHVz
ZSBjb250YWluc0ludGVybmFsKCkgdmlydHVhbCBmdW5jdGlvbi4gV2UgY2FuIG5vdyBjaGVjawor
ICAgICAgICB0aGUgaW50ZXJuYWwgdG9rZW4gVmVjdG9yLgorCisgICAgICAgIChXZWJDb3JlOjpE
T01Ub2tlbkxpc3Q6OmFkZCk6CisgICAgICAgIE5vdyB1cGRhdGUgdGhlIGludGVybmFsIFZlY3Rv
ci4gVXNlIGEgbW9kZXJuIGxvb3AgYW5kIHRyeSB0byBtaW5pbWl6ZQorICAgICAgICBWZWN0b3Ig
Y2FwYWNpdHkgcmVhbGxvY2F0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6
OnJlbW92ZSk6CisgICAgICAgIE5vdyB1cGRhdGUgdGhlIGludGVybmFsIFZlY3Rvci4KKworICAg
ICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp0b2dnbGUpOgorICAgICAgICBOb3cgdXBkYXRl
IHRoZSBpbnRlcm5hbCBWZWN0b3IgYW5kIHJlZmFjdG9yIHRoZSBjb2RlIHNvIHRoYXQgaXQgaXMK
KyAgICAgICAgc3RydWN0dXJlZCBleGFjdGx5IGFzIHRoZSBhbGdvcml0aG0gaW4gdGhlIHNwZWNp
ZmljYXRpb24gZm9yCisgICAgICAgIGNsYXJpdHkuCisKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRv
a2VuTGlzdDo6dmFsdWUpOgorICAgICAgICBOb3cgcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIG9y
ZGVyZWQgc2V0IHNlcmlhbGl6ZXIgZm9yIHRva2Vucy4gVGhpcworICAgICAgICBtZXRob2QgaXMg
dXNlZCBmb3I6CisgICAgICAgIC0gVGhlIERPTVNldHRhYmxlVG9rZW5MaXN0LnZhbHVlKCkgZ2V0
dGVyCisgICAgICAgIC0gVGhlIERPTVRva2VuTGlzdCBzdHJpbmdpZmllcgorICAgICAgICAtIEFz
IGF0dHJpYnV0ZSB2YWx1ZSB3aGVuIHVwZGF0aW5nIHRoZSBhc3NvY2lhdGVkIGF0dHJpYnV0ZSBp
bgorICAgICAgICAgIEF0dHJpYnV0ZURPTVRva2VuTGlzdC4KKworICAgICAgICAoV2ViQ29yZTo6
RE9NVG9rZW5MaXN0OjpzZXRWYWx1ZSk6CisgICAgICAgIFVwZGF0ZSB0aGUgaW50ZXJuYWwgVmVj
dG9yIHVzaW5nIHRoZSBhbGdvcml0aG0gaW4gWzJdLgorCisgICAgICAgICogaHRtbC9ET01Ub2tl
bkxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6bGVuZ3RoKToKKyAgICAg
ICAgTm8gbG9uZ2VyIHZpcnR1YWwsIG5vdyByZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBpbnRlcm5h
bCB0b2tlbiBWZWN0b3IuCisKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6aXRlbSk6
CisgICAgICAgIE5vIGxvbmdlciB2aXJ0dWFsLCBub3cgcmV0dXJucyB0aGUgdG9rZW4gYXQgdGhl
IGdpdmVuIGluZGV4IGluIHRoZQorICAgICAgICBpbnRlcm5hbCBWZWN0b3IuCisKKyAgICAgICAg
KiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNo
b3JFbGVtZW50OjpyZWxMaXN0KToKKyAgICAgICAgTm93IHJldHVybiBhIEF0dHJpYnV0ZURPTVRv
a2VuTGlzdC4KKworICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cmVsTGlzdCk6CisgICAgICAgIE5vdyByZXR1cm4g
YSBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuCisKKyAgICAgICAgKiBodG1sL1JlbExpc3QuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0bWwvUmVsTGlzdC5oOiBSZW1vdmVkLgorICAgICAgICBOb3cg
bWVyZ2VkIGludG8gQXR0cmlidXRlRE9NVG9rZW5MaXN0LgorCiAyMDE1LTA5LTExICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRWxlbWVudC50YWdOYW1lIHNob3Vs
ZCBiZSB1cHBlci1jYXNlIGZvciBIVE1MIGVsZW1lbnRzIGluIEhUTUwgZG9jdW1lbnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDEwODQ4NGJkZmUxNTgzOGE4Mzg3YTEyYzc1ZGE1MTE5ZmEyYWJm
YWUuLjBmMzE0NTFmZTc0MmViZWY0ZmZiZDE2ZmIxZTRiZjI2MTJiMTFjYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNTczLDYgKzE1NzMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
aGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5jcHAKIAorICAg
IGh0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcAogICAgIGh0bWwvQmFzZUJ1dHRvbklucHV0
VHlwZS5jcHAKICAgICBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9C
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTE1ODEsNyArMTU4Miw2
IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcAog
ICAgIGh0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAogICAgIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUu
Y3BwCi0gICAgaHRtbC9DbGFzc0xpc3QuY3BwCiAgICAgaHRtbC9Db2xvcklucHV0VHlwZS5jcHAK
ICAgICBodG1sL0RPTUZvcm1EYXRhLmNwcAogICAgIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3Qu
Y3BwCkBAIC0xNzA1LDcgKzE3MDUsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9S
YWRpb0lucHV0VHlwZS5jcHAKICAgICBodG1sL1JhZGlvTm9kZUxpc3QuY3BwCiAgICAgaHRtbC9S
YW5nZUlucHV0VHlwZS5jcHAKLSAgICBodG1sL1JlbExpc3QuY3BwCiAgICAgaHRtbC9SZXNldElu
cHV0VHlwZS5jcHAKICAgICBodG1sL1J1YnlFbGVtZW50LmNwcAogICAgIGh0bWwvUnVieVRleHRF
bGVtZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKaW5kZXggZDVmMDExOWFiYmQyZWZjYTRiYjY5YWQ5ZDJkNTU2NDQzYTQyMDVhZS4uNjFi
YWNkMGRhODFhZDZkZmQzMTEwOTY1MTBmMjI3YjQ3YWQ5NTFkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xNjA0Miw2ICsxNjA0Miw3
IEBACiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5n
XHdpblxFZGl0b3JXaW4uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZmlsZWFw
aVxBc3luY0ZpbGVTdHJlYW0uY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRt
bFxBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5caHRtbFxCYXNlQnV0dG9uSW5wdXRUeXBlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGh0bWxcQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmNwcCIgLz4K
QEAgLTE2MDU2LDcgKzE2MDU3LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxc
Y2FudmFzXENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxodG1sXGNhbnZhc1xDYW52YXNTdHlsZS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxodG1sXENoZWNrYm94SW5wdXRUeXBlLmNwcCIgLz4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGh0bWxcQ2xhc3NMaXN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGh0bWxcQ29sb3JJbnB1dFR5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caHRtbFxEYXRlSW5wdXRUeXBlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGh0bWxcRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIiAvPgpAQCAtMTcyMTUsNyArMTcyMTUs
NiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxSYWRpb0lucHV0VHlwZS5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXFJhZGlvTm9kZUxpc3QuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxSYW5nZUlucHV0VHlwZS5jcHAiIC8+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXFJlbExpc3QuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxSZXNldElucHV0VHlwZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXFJ1YnlFbGVtZW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGh0bWxcUnVieVRleHRFbGVtZW50LmNwcCIgLz4KQEAgLTIyMTc4LDYg
KzIyMTc3LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcVmlzaWJsZVVu
aXRzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxlZGl0aW5nXFdyYXBDb250ZW50
c0luRHVtbXlTcGFuQ29tbWFuZC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZmls
ZWFwaVxBc3luY0ZpbGVTdHJlYW0uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0
bWxcQXR0cmlidXRlRE9NVG9rZW5MaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxodG1sXEJhc2VCdXR0b25JbnB1dFR5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGh0bWxcQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caHRtbFxCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oIiAvPgpAQCAtMjIx
OTIsNyArMjIxOTIsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNc
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxodG1sXGNhbnZhc1xDYW52YXNTdHlsZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caHRtbFxDaGVja2JveElucHV0VHlwZS5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caHRtbFxDbGFzc0xpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxc
Q29sbGVjdGlvblR5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcQ29s
b3JJbnB1dFR5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcRGF0ZUlu
cHV0VHlwZS5oIiAvPgpAQCAtMjIzMjUsNyArMjIzMjQsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caHRtbFxSYWRpb0lucHV0VHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caHRtbFxSYWRpb05vZGVMaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxodG1sXFJhbmdlSW5wdXRUeXBlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxo
dG1sXFJlbExpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcUmVzZXRJ
bnB1dFR5cGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcUnVieUVsZW1l
bnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcUnVieVRleHRFbGVtZW50
LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZDllMzNjNjg4NzQ1NzAwYjk1MzEyOGMxZmEzNzQ5NGU3
YzEyM2JjNy4uMTc1YTkzOTE2MTU1YjU2MmI5MTNmZjhiYWFmOGYwZjNmM2MyZTJhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtMzU5MSw2ICszNTkxLDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGZpbGVhcGlcQXN5bmNGaWxlU3RyZWFtLmNwcCI+CiAgICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcQXR0
cmlidXRlRE9NVG9rZW5MaXN0LmNwcCI+CisgICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcQmFzZUJ1dHRv
bklucHV0VHlwZS5jcHAiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CkBAIC0zNjE4LDkgKzM2MjEsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
aHRtbFxDaGVja2JveElucHV0VHlwZS5jcHAiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXENsYXNz
TGlzdC5jcHAiPgotICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXENvbG9ySW5wdXRUeXBlLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTM5OTksOSAr
Mzk5OSw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXFJhbmdlSW5wdXRUeXBl
LmNwcCI+CiAgICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcUmVsTGlzdC5jcHAiPgotICAgICAgPEZpbHRl
cj5odG1sPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxodG1sXFJlc2V0SW5wdXRUeXBlLmNwcCI+CiAgICAgICA8RmlsdGVyPmh0bWw8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEwNzQ4LDYgKzEwNzQ1LDkgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGZpbGVhcGlcQXN5bmNGaWxlU3RyZWFtLmgiPgogICAgICAgPEZpbHRl
cj5odG1sPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxodG1sXEF0dHJpYnV0ZURPTVRva2VuTGlzdC5oIj4KKyAgICAgIDxGaWx0ZXI+aHRtbDwv
RmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRt
bFxCYXNlQnV0dG9uSW5wdXRUeXBlLmgiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+CkBAIC0xMDc3NSw5ICsxMDc3NSw2IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxodG1sXENoZWNrYm94SW5wdXRUeXBlLmgiPgogICAgICAgPEZpbHRlcj5odG1s
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxo
dG1sXENsYXNzTGlzdC5oIj4KLSAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgotICAgIDwvQ2xJ
bmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxDb2xsZWN0aW9uVHlwZS5o
Ij4KICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTEx
NjgsOSArMTExNjUsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxSYW5nZUlu
cHV0VHlwZS5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxSZWxMaXN0LmgiPgotICAgICAgPEZp
bHRlcj5odG1sPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxodG1sXFJlc2V0SW5wdXRUeXBlLmgiPgogICAgICAgPEZpbHRlcj5odG1sPC9GaWx0
ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTJhODk1N2I1OTg3YzliZDUyMmExYTI1YmRmODY4
NGY1OWM5MzY0ZC4uYzJmNzU4ZjVkMGYzZjFmNjVmZDk2NWIyYTE2OGZkMmQ3MDA3OTg2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTY4Niw2ICsxNjg2LDggQEAKIAkJNDVCQUMyQjAxMzYwQkJBQjAwNURBMjU4IC8qIEljb25V
UkwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1QkFD
MkFGMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJMLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDVGRUE1Q0YxNTZEREU4QzAwNjU0MTAxIC8qIERl
Y2ltYWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDVGRUE1Q0QxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwuY3BwICovOyB9OwogCQk0NUZFQTVE
MDE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDVGRUE1Q0UxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NjIz
M0VFRTFCQTBGMTg3MDAwRUJFQkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjIzM0VFRDFCQTBGMTdBMDAw
RUJFQkIgLyogQXR0cmlidXRlRE9NVG9rZW5MaXN0LmggKi87IH07CisJCTQ2MjMzRUVGMUJBMEYx
OEIwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYyMzNFRUMxQkEwRjE3QTAwMEVCRUJCIC8q
IEF0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgKi87IH07CiAJCTQ2MzQ1OTJDMUFDMjI3MTAwMEVD
QjcxQyAvKiBQb3dlck9ic2VydmVyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2Vy
dmVyTWFjLmNwcCAqLzsgfTsKIAkJNDYzNDU5MkUxQUMyMjczQzAwRUNCNzFDIC8qIFNoYXJlZFRp
bWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYzNDU5MkQxQUMyMjczQzAwRUNCNzFDIC8qIFNoYXJlZFRpbWVyQ0YuY3BwICovOyB9OwogCQk0
NjNFQjYyMjFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNFQjYyMDFCODc4OUNCMDA5NkVE
NTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgKi87IH07CkBAIC0xODUzLDggKzE4NTUsNiBAQAogCQk0
QTlDQzgxODE2QkI5QUM2MDBFQzY0NUEgLyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTlDQzgxNjE2QkI5QUM2
MDBFQzY0NUEgLyogQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmggKi87IH07CiAJCTRBOUNDODIwMTZC
RjlCQjQwMEVDNjQ1QSAvKiBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOUNDODFFMTZCRjlCQjQwMEVDNjQ1
QSAvKiBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNwcCAqLzsgfTsKIAkJNEE5Q0M4MjExNkJGOUJC
NDAwRUM2NDVBIC8qIEluc3BlY3RvckNTU09NV3JhcHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOUNDODFGMTZCRjlCQjQwMEVDNjQ1QSAvKiBJ
bnNwZWN0b3JDU1NPTVdyYXBwZXJzLmggKi87IH07Ci0JCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlC
MiAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEFDQkMwQkMxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi87IH07
Ci0JCTRBQ0JDMEJGMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlC
MiAvKiBDbGFzc0xpc3QuaCAqLzsgfTsKIAkJNEFDQkMwQzMxMjcxM0NDQTAwOTRGOUIyIC8qIERP
TVNldHRhYmxlVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRBQ0JDMEMwMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2Vu
TGlzdC5jcHAgKi87IH07CiAJCTRBQ0JDMEM0MTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJs
ZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEFDQkMwQzExMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmggKi87
IH07CiAJCTRBQ0JDMENBMTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JD
MEM4MTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLzsgfTsK
QEAgLTQ4OTIsOCArNDg5Miw2IEBACiAJCUIyRUQ5NzcxMEIxRjU1Q0UwMDI1N0QwRiAvKiBHcmFw
aGljc0NvbnRleHRDRy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkVEOTc3MDBCMUY1NUNFMDAyNTdEMEYgLyogR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
ICovOyB9OwogCQlCMkYzNEZFNjBFODJGODE0MDBGNjI3Q0QgLyogRE5TLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkYzNEZFNTBFODJGODE0MDBGNjI3
Q0QgLyogRE5TLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQjJGMzRGRTkwRTgyRjgyNzAwRjYyN0NEIC8qIEROU0NGTmV0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRjM0RkU4MEU4MkY4MjcwMEY2
MjdDRCAvKiBETlNDRk5ldC5jcHAgKi87IH07Ci0JCUIyRjc4Q0ZEMTlGMkYwMkQwMDQ5Njk2QyAv
KiBSZWxMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyRjc4Q0ZCMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0LmNwcCAqLzsgfTsKLQkJQjJG
NzhDRkUxOUYyRjAyRDAwNDk2OTZDIC8qIFJlbExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyRjc4Q0ZDMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxM
aXN0LmggKi87IH07CiAJCUIyRkEzRDM2MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVD
b2xvckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjJGQTNDNEUwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5jcHAgKi87IH07CiAJCUIyRkEzRDM3MEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVD
b2xvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIyRkEzQzRGMEFCNzVBNkUwMDBFNUFDNCAvKiBKU1NWR0FuaW1hdGVDb2xvckVsZW1lbnQu
aCAqLzsgfTsKIAkJQjJGQTNEMzgwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRBbmds
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMkZB
M0M1MDBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdBbmltYXRlZEFuZ2xlLmNwcCAqLzsgfTsKQEAg
LTg5MzQsNiArODkzMiw4IEBACiAJCTQ1QkFDMkFGMTM2MEJCQUIwMDVEQTI1OCAvKiBJY29uVVJM
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEljb25VUkwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDVGRUE1Q0QxNTZEREU4QzAwNjU0MTAxIC8qIERlY2ltYWwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVjaW1hbC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1RkVBNUNFMTU2RERFOEMwMDY1NDEwMSAvKiBE
ZWNpbWFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY2ltYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYyMzNFRUMxQkEwRjE3QTAwMEVCRUJCIC8qIEF0
dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuY3BwOyBwYXRoID0gLi4vQXR0cmlidXRlRE9NVG9r
ZW5MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYyMzNFRUQxQkEwRjE3
QTAwMEVCRUJCIC8qIEF0dHJpYnV0ZURPTVRva2VuTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaDsgcGF0aCA9IC4uL0F0dHJpYnV0
ZURPTVRva2VuTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjM0NTkyQjFB
QzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQb3dlck9ic2VydmVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDYzNDU5MkQxQUMyMjczQzAwRUNCNzFDIC8qIFNoYXJlZFRpbWVyQ0Yu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkVGltZXJDRi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFRhZ0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTEx
Nyw4ICs5MTE3LDYgQEAKIAkJNEE5Q0M4MTYxNkJCOUFDNjAwRUM2NDVBIC8qIENTU0RlZmF1bHRT
dHlsZVNoZWV0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NEZWZhdWx0
U3R5bGVTaGVldHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE5Q0M4MUUxNkJG
OUJCNDAwRUM2NDVBIC8qIEluc3BlY3RvckNTU09NV3JhcHBlcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ1NTT01XcmFwcGVycy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBOUNDODFGMTZCRjlCQjQwMEVDNjQ1QSAvKiBJbnNw
ZWN0b3JDU1NPTVdyYXBwZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3RvckNTU09NV3JhcHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEFD
QkMwQkMxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDbGFzc0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsYXNzTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0QUNCQzBDMDEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NU2V0dGFibGVU
b2tlbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QUNCQzBDMTEyNzEz
Q0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NU2V0dGFibGVUb2tlbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEFDQkMwQzIxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5M
aXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01TZXR0YWJsZVRva2VuTGlzdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjQ3Miw4ICsxMjQ3MCw2IEBACiAJCUIy
RUQ5NzcwMEIxRjU1Q0UwMDI1N0QwRiAvKiBHcmFwaGljc0NvbnRleHRDRy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0Q0cuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkYzNEZFNTBFODJGODE0MDBGNjI3Q0QgLyogRE5T
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEROUy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMkYzNEZFODBFODJGODI3MDBGNjI3Q0QgLyogRE5TQ0ZOZXQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE5TQ0ZOZXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMkY3OENGQjE5RjJGMDJEMDA0OTY5NkMgLyogUmVs
TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWxMaXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjJGNzhDRkMxOUYyRjAyRDAwNDk2OTZD
IC8qIFJlbExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVsTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMkZBM0M0RTBBQjc1QTZFMDAwRTVBQzQg
LyogSlNTVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCMkZBM0M0RjBBQjc1QTZFMDAwRTVBQzQgLyogSlNTVkdBbmltYXRl
Q29sb3JFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0Fu
aW1hdGVDb2xvckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjJGQTND
NTAwQUI3NUE2RTAwMEU1QUM0IC8qIEpTU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdBbmltYXRlZEFuZ2xlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTk2LDggKzE4MTkyLDYgQEAKIAkJCQk4MzAwMzBG
NzFCN0QzOTg4MDBFRDNBQUMgLyogQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCAqLywKIAkJCQlGNTVC
M0Q3RDEyNTFGMTJEMDAzRUYyNjkgLyogQ2hlY2tib3hJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1
NUIzRDdFMTI1MUYxMkQwMDNFRjI2OSAvKiBDaGVja2JveElucHV0VHlwZS5oICovLAotCQkJCTRB
Q0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwICovLAotCQkJCTRBQ0JDMEJE
MTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCAqLywKIAkJCQk0NkVCRUEwMTFCN0Q0RDVE
MDBCRTQ5NDEgLyogQ29sbGVjdGlvblRyYXZlcnNhbC5oICovLAogCQkJCTkzQzQ0MUZGMEY4MTNB
RTEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uVHlwZS5oICovLAogCQkJCUJDMjk5MzVDMTdBMURENTgw
MEJDRTg4MCAvKiBDb2xvcklucHV0VHlwZS5jcHAgKi8sCkBAIC0xODU0MSw4ICsxODUzNSw2IEBA
CiAJCQkJQjY1OEZGQTQxNTIyRUZBQTAwREQ1NTk1IC8qIFJhZGlvTm9kZUxpc3QuaCAqLywKIAkJ
CQlGNTVCM0Q5OTEyNTFGMTJEMDAzRUYyNjkgLyogUmFuZ2VJbnB1dFR5cGUuY3BwICovLAogCQkJ
CUY1NUIzRDlBMTI1MUYxMkQwMDNFRjI2OSAvKiBSYW5nZUlucHV0VHlwZS5oICovLAotCQkJCUIy
Rjc4Q0ZCMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0LmNwcCAqLywKLQkJCQlCMkY3OENGQzE5
RjJGMDJEMDA0OTY5NkMgLyogUmVsTGlzdC5oICovLAogCQkJCUY1NUIzRDlCMTI1MUYxMkQwMDNF
RjI2OSAvKiBSZXNldElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOUMxMjUxRjEyRDAwM0VG
MjY5IC8qIFJlc2V0SW5wdXRUeXBlLmggKi8sCiAJCQkJNTgyNEFCQTAxQUU4MTExNjAwOTA3NEI3
IC8qIFJ1YnlFbGVtZW50LmNwcCAqLywKQEAgLTIwMjkxLDYgKzIwMjgzLDggQEAKIAkJQjFBRDRF
NzcxM0ExMkE3MjAwODQ2QjI3IC8qIHRyYWNrICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQk0NjIzM0VFQzFCQTBGMTdBMDAwRUJFQkIgLyogQXR0cmlidXRl
RE9NVG9rZW5MaXN0LmNwcCAqLywKKwkJCQk0NjIzM0VFRDFCQTBGMTdBMDAwRUJFQkIgLyogQXR0
cmlidXRlRE9NVG9rZW5MaXN0LmggKi8sCiAJCQkJQkU4OEUwQ0MxNzE1RDJBMjAwNjU4RDk4IC8q
IEF1ZGlvVHJhY2suY3BwICovLAogCQkJCUJFODhFMENEMTcxNUQyQTIwMDY1OEQ5OCAvKiBBdWRp
b1RyYWNrLmggKi8sCiAJCQkJQkU4OEUwQ0UxNzE1RDJBMjAwNjU4RDk4IC8qIEF1ZGlvVHJhY2su
aWRsICovLApAQCAtMjQyMDEsNyArMjQxOTUsNiBAQAogCQkJCUE4MTg3MjIwMDk3N0QzQzAwMDU4
MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQ4MjM1MjBBRjky
QTc5MDAwNEYwNTcgLyogQ2hyb21lLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQ4MjQwODBBRjkz
QUVCMDAwNEYwNTcgLyogQ2hyb21lQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk0QUNCQzBC
RjEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Mw
NjU3RTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMDY1ODEwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NTAzMUI0MDBBNDRFRkM3MDBGOTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjYzMzMsNiArMjYzMjYsNyBAQAogCQkJCTk3MDU5OTc4MTA3RDk3NTIw
MEE1MEE3QyAvKiBQb2xpY3lDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcwNTk5N0Ex
MDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
NDVBOTU3MTc1RDQxNEMwMEMyMUVDOCAvKiBQb2x5Z29uU2hhcGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ2MjMzRUVFMUJBMEYxODcwMDBFQkVCQiAvKiBBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNzRFMjBBMTBBMUY0NEYwMEY5NUU2RiAvKiBQb3BTdGF0ZUV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjY4RTE4QjBBREQ5NjI0MDA0MTI4RTAgLyogUG9w
dXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQkMxMjg3NzBCMzNBQTZEMDBDNjkzRDUgLyog
UG9wdXBNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI2Mzk1LDcgKzI2Mzg5LDYgQEAK
IAkJCQk2Q0RERThEMDE3NzBCQjIyMDAxNkUwNzIgLyogUmVnaW9uT3ZlcnNldFN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyNkI5OTk4RjE4MDNBRTcyMDBEMDExMjEgLyogUmVnaXN0ZXJBbGxv
Y2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRDMEE0NEVGQzcwMEY5OTJFMCAvKiBS
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQjJGNzhDRkUxOUYy
RjAyRDAwNDk2OTZDIC8qIFJlbExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERkMzNjA2MThD
QTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzMzA5RTAxMDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUQwNkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVG
b3JtYXRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKQEAgLTI4MDAwLDcgKzI3OTkzLDYgQEAKIAkJ
CQlBODE4NzIyNTA5NzdEM0MwMDA1ODI2RDkgLyogQ2hpbGROb2RlTGlzdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNEQ4MjM4QjBBRjkyREY2MDAwNEYwNTcgLyogQ2hyb21lLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUFCQUYyMjA4MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJvbWVNYWMubW0gaW4g
U291cmNlcyAqLywKLQkJCQk0QUNCQzBCRTEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRS
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUIzRjBBNDRFRkM3MDBG
OTkyRTAgLyogQ2xpcGJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg3NSw2ICsy
ODg2Nyw3IEBACiAJCQkJQjI3NTM1NjAwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50Q0cuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0MwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1NzMwQjA1MzgxNDAwMkNFNjRGIC8qIElu
dFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDYyMzNFRUYxQkEwRjE4QjAwMEVCRUJCIC8q
IEF0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjc1MzU2MTBC
MDUzODE0MDAyQ0U2NEYgLyogSW50UmVjdENHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyNzUz
NTdEMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQ0NkYwNTAxN0I5NkZEMjAwNTY0N0YwIC8qIEludFNpemUuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yOTkyOCw3ICsyOTkyMSw2IEBACiAJCQkJRkQ0NUE5NUExNzVENDE3MTAwQzIxRUM4IC8qIFJl
Y3RhbmdsZVNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQUI0MTgxMTNFMzU2RTgwMEQ4
QUFGMyAvKiBSZWdpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNEIwQTQ0RUZDNzAw
Rjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUIyRjc4Q0ZEMTlGMkYwMkQwMDQ5Njk2QyAvKiBSZWxMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNERkMzNjA1MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGQzM2MDcxOENBNjk2QzAwMjZFNTZGIC8qIFJlbW90ZUNv
bW1hbmRMaXN0ZW5lcklPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTAwMDk5RTY0OTIw
MDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKaW5kZXggM2E4OTA2MTdmYTNhMDdjN2ExOWNhN2EzNDI5N2MxNzE5
Mjg0Yjk5YS4uMjU4NzM3ZGU2NTI0MjY1MDAwZmU1Yjc2ZDg5MjQxNzUzMTJlNjBkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcApAQCAtMTM0Niw4ICsxMzQ2LDEwIEBAIHZvaWQgRWxlbWVudDo6Y2xh
c3NBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3Q2xhc3NTdHJpbmcpCiAg
ICAgICAgIGVsZW1lbnREYXRhKCktPmNsZWFyQ2xhc3MoKTsKICAgICB9CiAKLSAgICBpZiAoaGFz
UmFyZURhdGEoKSkKLSAgICAgICAgZWxlbWVudFJhcmVEYXRhKCktPmNsZWFyQ2xhc3NMaXN0VmFs
dWVGb3JRdWlya3NNb2RlKCk7CisgICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIGNsYXNzTGlzdCA9IGVsZW1lbnRSYXJlRGF0YSgpLT5jbGFzc0xpc3QoKSkKKyAgICAg
ICAgICAgIGNsYXNzTGlzdC0+YXR0cmlidXRlVmFsdWVDaGFuZ2VkKG5ld0NsYXNzU3RyaW5nKTsK
KyAgICB9CiAKICAgICBpZiAoc2hvdWxkSW52YWxpZGF0ZVN0eWxlKQogICAgICAgICBzZXROZWVk
c1N0eWxlUmVjYWxjKCk7CkBAIC0xNTE1LDkgKzE1MTcsNiBAQCBOb2RlOjpJbnNlcnRpb25Ob3Rp
ZmljYXRpb25SZXF1ZXN0IEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNl
cnRpbwogICAgIGlmICghaW5zZXJ0aW9uUG9pbnQuaXNJblRyZWVTY29wZSgpKQogICAgICAgICBy
ZXR1cm4gSW5zZXJ0aW9uRG9uZTsKIAotICAgIGlmIChoYXNSYXJlRGF0YSgpKQotICAgICAgICBl
bGVtZW50UmFyZURhdGEoKS0+Y2xlYXJDbGFzc0xpc3RWYWx1ZUZvclF1aXJrc01vZGUoKTsKLQog
ICAgIFRyZWVTY29wZSogbmV3U2NvcGUgPSAmaW5zZXJ0aW9uUG9pbnQudHJlZVNjb3BlKCk7CiAg
ICAgSFRNTERvY3VtZW50KiBuZXdEb2N1bWVudCA9ICF3YXNJbkRvY3VtZW50ICYmIGluRG9jdW1l
bnQoKSAmJiBpczxIVE1MRG9jdW1lbnQ+KG5ld1Njb3BlLT5kb2N1bWVudFNjb3BlKCkpID8gJmRv
d25jYXN0PEhUTUxEb2N1bWVudD4obmV3U2NvcGUtPmRvY3VtZW50U2NvcGUoKSkgOiBudWxscHRy
OwogICAgIGlmIChuZXdTY29wZSAhPSAmdHJlZVNjb3BlKCkpCkBAIC0yNjU0LDcgKzI2NTMsNyBA
QCBET01Ub2tlbkxpc3QmIEVsZW1lbnQ6OmNsYXNzTGlzdCgpCiB7CiAgICAgRWxlbWVudFJhcmVE
YXRhJiBkYXRhID0gZW5zdXJlRWxlbWVudFJhcmVEYXRhKCk7CiAgICAgaWYgKCFkYXRhLmNsYXNz
TGlzdCgpKQotICAgICAgICBkYXRhLnNldENsYXNzTGlzdChzdGQ6Om1ha2VfdW5pcXVlPENsYXNz
TGlzdD4oKnRoaXMpKTsKKyAgICAgICAgZGF0YS5zZXRDbGFzc0xpc3Qoc3RkOjptYWtlX3VuaXF1
ZTxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFtZXM6OmNsYXNzQXR0cikpOwog
ICAgIHJldHVybiAqZGF0YS5jbGFzc0xpc3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRS
YXJlRGF0YS5oCmluZGV4IDMxYzgzZGU2MTMzMjI1OWJjN2IzNWE2MDM0OGZiZmI4MDBlYTAyNTgu
LjU5ODFjZjRhZjY0NDU5MWZkYjhkNDRmNDk3OTA3NzliYmJhMWQ4YjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTIyLDcgKzIyLDcgQEAKICNpZm5kZWYgRWxlbWVudFJh
cmVEYXRhX2gKICNkZWZpbmUgRWxlbWVudFJhcmVEYXRhX2gKIAotI2luY2x1ZGUgIkNsYXNzTGlz
dC5oIgorI2luY2x1ZGUgIkF0dHJpYnV0ZURPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRhdGFz
ZXRET01TdHJpbmdNYXAuaCIKICNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIKICNpbmNsdWRlICJO
b2RlUmFyZURhdGEuaCIKQEAgLTkyLDE0ICs5Miw4IEBAIHB1YmxpYzoKICAgICBSZW5kZXJTdHls
ZSogY29tcHV0ZWRTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZWRTdHlsZS5nZXQoKTsg
fQogICAgIHZvaWQgc2V0Q29tcHV0ZWRTdHlsZShSZWY8UmVuZGVyU3R5bGU+JiYgY29tcHV0ZWRT
dHlsZSkgeyBtX2NvbXB1dGVkU3R5bGUgPSBXVEY6Om1vdmUoY29tcHV0ZWRTdHlsZSk7IH0KIAot
ICAgIENsYXNzTGlzdCogY2xhc3NMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0xpc3QuZ2V0
KCk7IH0KLSAgICB2b2lkIHNldENsYXNzTGlzdChzdGQ6OnVuaXF1ZV9wdHI8Q2xhc3NMaXN0PiBj
bGFzc0xpc3QpIHsgbV9jbGFzc0xpc3QgPSBXVEY6Om1vdmUoY2xhc3NMaXN0KTsgfQotICAgIHZv
aWQgY2xlYXJDbGFzc0xpc3RWYWx1ZUZvclF1aXJrc01vZGUoKQotICAgIHsKLSAgICAgICAgaWYg
KCFtX2NsYXNzTGlzdCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9jbGFzc0xpc3Qt
PmNsZWFyVmFsdWVGb3JRdWlya3NNb2RlKCk7Ci0gICAgfQorICAgIEF0dHJpYnV0ZURPTVRva2Vu
TGlzdCogY2xhc3NMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0xpc3QuZ2V0KCk7IH0KKyAg
ICB2b2lkIHNldENsYXNzTGlzdChzdGQ6OnVuaXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9rZW5MaXN0
PiBjbGFzc0xpc3QpIHsgbV9jbGFzc0xpc3QgPSBXVEY6Om1vdmUoY2xhc3NMaXN0KTsgfQogCiAg
ICAgRGF0YXNldERPTVN0cmluZ01hcCogZGF0YXNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YXNl
dC5nZXQoKTsgfQogICAgIHZvaWQgc2V0RGF0YXNldChzdGQ6OnVuaXF1ZV9wdHI8RGF0YXNldERP
TVN0cmluZ01hcD4gZGF0YXNldCkgeyBtX2RhdGFzZXQgPSBXVEY6Om1vdmUoZGF0YXNldCk7IH0K
QEAgLTE0MCw3ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9j
b21wdXRlZFN0eWxlOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFzZXRET01TdHJpbmdNYXA+
IG1fZGF0YXNldDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2xhc3NMaXN0PiBtX2NsYXNzTGlzdDsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXR0cmlidXRlRE9NVG9rZW5MaXN0PiBtX2NsYXNzTGlzdDsK
ICAgICBSZWZQdHI8U2hhZG93Um9vdD4gbV9zaGFkb3dSb290OwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxOYW1lZE5vZGVNYXA+IG1fYXR0cmlidXRlTWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0F0dHJpYnV0ZURPTVRva2VuTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODhlYzZmNDY2NGVkMzc1ZTg1
MDQxOTU1OWYzNTFlNzJkNzBhZjA1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQXR0cmlidXRlRE9NVG9rZW5MaXN0LmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF0dHJpYnV0ZURPTVRva2VuTGlz
dC5oIgorCisjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0F0dHJpYnV0ZURPTVRva2VuTGlzdDo6QXR0cmlidXRlRE9NVG9rZW5MaXN0KEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCisgICAg
OiBtX2VsZW1lbnQoZWxlbWVudCkKKyAgICAsIG1fYXR0cmlidXRlTmFtZShhdHRyaWJ1dGVOYW1l
KQoreworICAgIHNldFZhbHVlKG1fZWxlbWVudC5nZXRBdHRyaWJ1dGUobV9hdHRyaWJ1dGVOYW1l
KSk7Cit9CisKK3ZvaWQgQXR0cmlidXRlRE9NVG9rZW5MaXN0OjphdHRyaWJ1dGVWYWx1ZUNoYW5n
ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdWYWx1ZSkKK3sKKyAgICAvLyBEbyBub3QgcmVzZXQg
dGhlIERPTVRva2VuTGlzdCB2YWx1ZSBpZiB0aGUgYXR0cmlidXRlIHZhbHVlIHdhcyBjaGFuZ2Vk
IGJ5IHVzLgorICAgIGlmIChtX2lzVXBkYXRpbmdBdHRyaWJ1dGVWYWx1ZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgRE9NVG9rZW5MaXN0OjpzZXRWYWx1ZShuZXdWYWx1ZSk7Cit9CisKK3ZvaWQg
QXR0cmlidXRlRE9NVG9rZW5MaXN0Ojp1cGRhdGVBZnRlclRva2VuQ2hhbmdlKCkKK3sKKyAgICBE
T01Ub2tlbkxpc3Q6OnVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKTsKKworICAgIFRlbXBvcmFyeUNo
YW5nZTxib29sPiBpbkF0dHJpYnV0ZVVwZGF0ZShtX2lzVXBkYXRpbmdBdHRyaWJ1dGVWYWx1ZSwg
dHJ1ZSk7CisgICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShtX2F0dHJpYnV0ZU5hbWUsIHZhbHVl
KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0F0dHJpYnV0ZURPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9B
dHRyaWJ1dGVET01Ub2tlbkxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDEzMGZkMGM3YmRhNjU2ZGExYzAy
YWRhZjBjYTRkZDFjZGVhNTNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9BdHRyaWJ1dGVET01Ub2tlbkxpc3QuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBBdHRyaWJ1dGVET01Ub2tlbkxpc3RfaAorI2RlZmluZSBBdHRyaWJ1dGVET01Ub2tl
bkxpc3RfaAorCisjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRWxlbWVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF0dHJpYnV0ZURPTVRva2VuTGlzdCBm
aW5hbCA6IHB1YmxpYyBET01Ub2tlbkxpc3QgeworcHVibGljOgorICAgIEF0dHJpYnV0ZURPTVRv
a2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSk7Cisg
ICAgdm9pZCBhdHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlIHsgbV9lbGVtZW50LnJlZigp
OyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGUgeyBtX2VsZW1lbnQuZGVyZWYo
KTsgfQorCisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gJm1fZWxlbWVudDsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBZnRlclRva2VuQ2hh
bmdlKCkgb3ZlcnJpZGU7CisKKyAgICBFbGVtZW50JiBtX2VsZW1lbnQ7CisgICAgY29uc3QgV2Vi
Q29yZTo6UXVhbGlmaWVkTmFtZSYgbV9hdHRyaWJ1dGVOYW1lOworICAgIGJvb2wgbV9pc1VwZGF0
aW5nQXR0cmlidXRlVmFsdWUgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gQXR0cmlidXRlRE9NVG9rZW5MaXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2xhc3NM
aXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2UzMzJkNGI3ZTViMWViNTE4
YThlZjhhN2Y0ZTRjNDExNzZlN2IxNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw4OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIkNsYXNzTGlzdC5oIgotCi0jaW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi12b2lkIENsYXNzTGlzdDo6cmVmKCkKLXsKLSAgICBtX2VsZW1lbnQucmVm
KCk7Ci19Ci0KLXZvaWQgQ2xhc3NMaXN0OjpkZXJlZigpCi17Ci0gICAgbV9lbGVtZW50LmRlcmVm
KCk7Ci19Ci0KLXVuc2lnbmVkIENsYXNzTGlzdDo6bGVuZ3RoKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9lbGVtZW50Lmhhc0NsYXNzKCkgPyBjbGFzc05hbWVzKCkuc2l6ZSgpIDogMDsKLX0KLQot
Y29uc3QgQXRvbWljU3RyaW5nIENsYXNzTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QK
LXsKLSAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBBdG9taWNTdHJp
bmcoKTsKLSAgICByZXR1cm4gY2xhc3NOYW1lcygpW2luZGV4XTsKLX0KLQotRWxlbWVudCogQ2xh
c3NMaXN0OjplbGVtZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gJm1fZWxlbWVudDsKLX0KLQot
Ym9vbCBDbGFzc0xpc3Q6OmNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tl
bikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbGVtZW50Lmhhc0NsYXNzKCkgJiYgY2xhc3NOYW1l
cygpLmNvbnRhaW5zKHRva2VuKTsKLX0KLQotQXRvbWljU3RyaW5nIENsYXNzTGlzdDo6dmFsdWUo
KSBjb25zdAotewotICAgIHJldHVybiBtX2VsZW1lbnQuZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
Y2xhc3NBdHRyKTsKLX0KLQotdm9pZCBDbGFzc0xpc3Q6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0
cmluZyYgdmFsdWUpCi17Ci0gICAgbV9lbGVtZW50LnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmNs
YXNzQXR0ciwgdmFsdWUpOwotfQotCi1jb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBDbGFzc0xpc3Q6
OmNsYXNzTmFtZXMoKSBjb25zdAotewotICAgIEFTU0VSVChtX2VsZW1lbnQuaGFzQ2xhc3MoKSk7
Ci0gICAgaWYgKG1fZWxlbWVudC5kb2N1bWVudCgpLmluUXVpcmtzTW9kZSgpKSB7Ci0gICAgICAg
IGlmIChtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1f
Y2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuc2V0KHZhbHVlKCksIGZhbHNlKTsKLSAgICAgICAgcmV0
dXJuIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGU7Ci0gICAgfQotICAgIHJldHVybiBtX2VsZW1l
bnQuZWxlbWVudERhdGEoKS0+Y2xhc3NOYW1lcygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGFhYTRjN2MzM2VlNTg3OGQ5YjJkM2U3YWQ1ZTM1ZDA2ODcyYjNkZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNz
TGlzdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgQ2xhc3NMaXN0X2gKLSNkZWZpbmUgQ2xhc3NMaXN0X2gKLQotI2luY2x1ZGUgIkRPTVRva2Vu
TGlzdC5oIgotI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBFbGVtZW50OwotCi1jbGFzcyBDbGFzc0xpc3QgZmluYWwgOiBwdWJsaWMg
RE9NVG9rZW5MaXN0IHsKLXB1YmxpYzoKLSAgICBDbGFzc0xpc3QoRWxlbWVudCYgZWxlbWVudCkK
LSAgICAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKLSAgICB7Ci0gICAgfQotCi0gICAgdmlydHVh
bCB2b2lkIHJlZigpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIG92ZXJyaWRl
OwotCi0gICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVy
cmlkZTsKLQotICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwot
Ci0gICAgdm9pZCBjbGVhclZhbHVlRm9yUXVpcmtzTW9kZSgpIHsgbV9jbGFzc05hbWVzRm9yUXVp
cmtzTW9kZS5jbGVhcigpOyB9Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGNvbnRhaW5z
SW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBBdG9taWNTdHJpbmcgdmFsdWUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Ci0KLSAgICBjb25zdCBTcGFj
ZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVzKCkgY29uc3Q7Ci0KLSAgICBFbGVtZW50JiBtX2VsZW1l
bnQ7Ci0gICAgbXV0YWJsZSBTcGFjZVNwbGl0U3RyaW5nIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01v
ZGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBDbGFzc0xpc3Rf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcAppbmRleCAz
ZjNiMDExYWY4ZjVkODEwODliZTUwMWVlZjI1OTU0M2UzY2Y4NTFlLi40NWQzYjM5NWU1ZjEyYjY5
N2U1OWQzYzhkOTZiOGNhYzc4MDAxZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNl
dHRhYmxlVG9rZW5MaXN0LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zOCwzMiArMzgsNCBAQCB2b2lkIERPTVNldHRhYmxlVG9rZW5M
aXN0OjpkZXJlZigpCiAgICAgUmVmQ291bnRlZDxET01TZXR0YWJsZVRva2VuTGlzdD46OmRlcmVm
KCk7CiB9CiAKLXVuc2lnbmVkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpsZW5ndGgoKSBjb25zdAot
ewotICAgIHJldHVybiBtX3Rva2Vucy5zaXplKCk7Ci19Ci0KLWNvbnN0IEF0b21pY1N0cmluZyBE
T01TZXR0YWJsZVRva2VuTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLXsKLSAgICBp
ZiAoaW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKTsKLSAg
ICByZXR1cm4gbV90b2tlbnNbaW5kZXhdOwotfQotCi1ib29sIERPTVNldHRhYmxlVG9rZW5MaXN0
Ojpjb250YWluc0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKTsKLX0KLQotQXRvbWljU3RyaW5nIERP
TVNldHRhYmxlVG9rZW5MaXN0Ojp2YWx1ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdmFsdWU7
Ci19Ci0KLXZvaWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OnNldFZhbHVlKGNvbnN0IEF0b21pY1N0
cmluZyYgdmFsdWUpCi17Ci0gICAgbV92YWx1ZSA9IHZhbHVlOwotICAgIG1fdG9rZW5zLnNldCh2
YWx1ZSwgZmFsc2UpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgKaW5kZXggNTc3ZDFmODE0M2Q5OTJkODNhNWU0
MjY0NzY4YTBhMTc2NTJiM2JhZS4uMTU5ZWI1MTc5YTUwZjg2NTFhZTMwMmFhOTgyN2YyZDEyZGRi
ZWRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaApAQCAt
MSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Mywy
MCArNDMsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01TZXR0
YWJsZVRva2VuTGlzdCk7CiAgICAgfQogCisgICAgLy8gTWFrZSBwdWJsaWMuCisgICAgdXNpbmcg
RE9NVG9rZW5MaXN0Ojp2YWx1ZTsKKyAgICB1c2luZyBET01Ub2tlbkxpc3Q6OnNldFZhbHVlOwor
CiAgICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZigpIG92ZXJyaWRlOwotCi0gICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdCBvdmVycmlkZTsKLQotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIHZhbHVlKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IEF0b21pY1N0cmlu
ZyYpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBjb250YWluc0ludGVy
bmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgQXRvbWljU3Ry
aW5nIG1fdmFsdWU7Ci0gICAgU3BhY2VTcGxpdFN0cmluZyBtX3Rva2VuczsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9r
ZW5MaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAppbmRleCBk
YmQ0ZDI2MzkzYjlhNDJjNzQ3NDk0ZmE2NjhjZTA3Njk4YTQ1ZTY1Li42ODVlODIxYjVjMDIxYmVi
NGQ1NDE0MzczYTk1YjY4ZDJmZDU5N2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVRva2VuTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3Qu
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjcsMTEgKzI4LDE0IEBACiAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKKyNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2gu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotYm9vbCBET01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3Ry
aW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIERPTVRva2VuTGlzdDo6dmFsaWRh
dGVUb2tlbihjb25zdCBTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBp
ZiAodG9rZW4uaXNFbXB0eSgpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKQEAgLTQ5LDEz
ICs1MywxMiBAQCBib29sIERPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbihjb25zdCBBdG9taWNT
dHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBET01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0
b2tlbnMsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBET01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9r
ZW5zKGNvbnN0IFN0cmluZyogdG9rZW5zLCBzaXplX3QgbGVuZ3RoLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRva2Vucy5zaXplKCk7ICsraSkgewor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgaWYgKCF2
YWxpZGF0ZVRva2VuKHRva2Vuc1tpXSwgZWMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KLQogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02MywxNzUgKzY2LDEzMCBAQCBib29s
IERPTVRva2VuTGlzdDo6Y29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0
aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gY29udGFpbnNJbnRlcm5hbCh0b2tl
bik7Ci19CiAKLXZvaWQgRE9NVG9rZW5MaXN0OjphZGQoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tl
biwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgVmVjdG9yPFN0cmluZz4gdG9rZW5zOwotICAg
IHRva2Vucy5hcHBlbmQodG9rZW4uc3RyaW5nKCkpOwotICAgIGFkZCh0b2tlbnMsIGVjKTsKKyAg
ICByZXR1cm4gbV90b2tlbnMuY29udGFpbnModG9rZW4pOwogfQogCi12b2lkIERPTVRva2VuTGlz
dDo6YWRkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
aW5saW5lIHZvaWQgRE9NVG9rZW5MaXN0OjphZGRJbnRlcm5hbChjb25zdCBTdHJpbmcqIHRva2Vu
cywgc2l6ZV90IGxlbmd0aCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgVmVjdG9yPFN0cmlu
Zz4gZmlsdGVyZWRUb2tlbnM7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0b2tlbnMuc2l6
ZSgpOyArK2kpIHsKKyAgICAvLyBUaGlzIGlzIHVzdWFsbHkgY2FsbGVkIHdpdGggYSBzaW5nbGUg
dG9rZW4uCisgICAgVmVjdG9yPEF0b21pY1N0cmluZywgMT4gdW5pcXVlVG9rZW5zOworICAgIHVu
aXF1ZVRva2Vucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGxlbmd0aCk7CisKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAgICAgIGlmICghdmFsaWRhdGVUb2tl
bih0b2tlbnNbaV0sIGVjKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKCFjb250
YWluc0ludGVybmFsKHRva2Vuc1tpXSkgJiYgIWZpbHRlcmVkVG9rZW5zLmNvbnRhaW5zKHRva2Vu
c1tpXSkpCi0gICAgICAgICAgICBmaWx0ZXJlZFRva2Vucy5hcHBlbmQodG9rZW5zW2ldKTsKKyAg
ICAgICAgaWYgKCFtX3Rva2Vucy5jb250YWlucyh0b2tlbnNbaV0pICYmICF1bmlxdWVUb2tlbnMu
Y29udGFpbnModG9rZW5zW2ldKSkKKyAgICAgICAgICAgIHVuaXF1ZVRva2Vucy51bmNoZWNrZWRB
cHBlbmQodG9rZW5zW2ldKTsKICAgICB9CiAKLSAgICBpZiAoZmlsdGVyZWRUb2tlbnMuaXNFbXB0
eSgpKQorICAgIGlmICh1bmlxdWVUb2tlbnMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzZXRWYWx1ZShhZGRUb2tlbnModmFsdWUoKSwgZmlsdGVyZWRUb2tlbnMpKTsKKyAgICBt
X3Rva2Vucy5hcHBlbmRWZWN0b3IodW5pcXVlVG9rZW5zKTsKKyAgICB1cGRhdGVBZnRlclRva2Vu
Q2hhbmdlKCk7CiB9CiAKLXZvaWQgRE9NVG9rZW5MaXN0OjpyZW1vdmUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIERPTVRva2VuTGlzdDo6YWRkKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFZl
Y3RvcjxTdHJpbmc+IHRva2VuczsKLSAgICB0b2tlbnMuYXBwZW5kKHRva2VuLnN0cmluZygpKTsK
LSAgICByZW1vdmUodG9rZW5zLCBlYyk7CisgICAgYWRkSW50ZXJuYWwodG9rZW5zLmRhdGEoKSwg
dG9rZW5zLnNpemUoKSwgZWMpOwogfQogCi12b2lkIERPTVRva2VuTGlzdDo6cmVtb3ZlKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiB0b2tlbnMsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBET01Ub2tl
bkxpc3Q6OmFkZChjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIGlmICghdmFsaWRhdGVUb2tlbnModG9rZW5zLCBlYykpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIC8vIENoZWNrIHVzaW5nIGNvbnRhaW5zSW50ZXJuYWwgZmlyc3Qgc2luY2Ug
aXQgaXMgYSBsb3QgZmFzdGVyIHRoYW4gZ29pbmcKLSAgICAvLyB0aHJvdWdoIHRoZSBzdHJpbmcg
Y2hhcmFjdGVyIGJ5IGNoYXJhY3Rlci4KLSAgICBib29sIGZvdW5kID0gZmFsc2U7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCB0b2tlbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKGNv
bnRhaW5zSW50ZXJuYWwodG9rZW5zW2ldKSkgewotICAgICAgICAgICAgZm91bmQgPSB0cnVlOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoZm91bmQpCi0g
ICAgICAgIHNldFZhbHVlKHJlbW92ZVRva2Vucyh2YWx1ZSgpLCB0b2tlbnMpKTsKKyAgICBhZGRJ
bnRlcm5hbCgmdG9rZW4uc3RyaW5nKCksIDEsIGVjKTsKIH0KIAotYm9vbCBET01Ub2tlbkxpc3Q6
OnRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKK2lu
bGluZSB2b2lkIERPTVRva2VuTGlzdDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgU3RyaW5nKiB0b2tl
bnMsIHNpemVfdCBsZW5ndGgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICghdmFsaWRh
dGVUb2tlbih0b2tlbiwgZWMpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCF2YWxp
ZGF0ZVRva2Vucyh0b2tlbnMsIGxlbmd0aCwgZWMpKQorICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoY29udGFpbnNJbnRlcm5hbCh0b2tlbikpIHsKLSAgICAgICAgcmVtb3ZlSW50ZXJuYWwodG9r
ZW4pOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgYm9vbCBkaWRSZW1vdmVUb2tlbnMgPSBm
YWxzZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAg
IGlmIChtX3Rva2Vucy5yZW1vdmVGaXJzdCh0b2tlbnNbaV0pKQorICAgICAgICAgICAgZGlkUmVt
b3ZlVG9rZW5zID0gdHJ1ZTsKICAgICB9Ci0gICAgYWRkSW50ZXJuYWwodG9rZW4pOwotICAgIHJl
dHVybiB0cnVlOwotfQogCi1ib29sIERPTVRva2VuTGlzdDo6dG9nZ2xlKGNvbnN0IEF0b21pY1N0
cmluZyYgdG9rZW4sIGJvb2wgZm9yY2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICgh
dmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAoZm9yY2UpCi0gICAgICAgIGFkZEludGVybmFsKHRva2VuKTsKLSAgICBlbHNlCi0gICAgICAg
IHJlbW92ZUludGVybmFsKHRva2VuKTsKLQotICAgIHJldHVybiBmb3JjZTsKLX0KLQotdm9pZCBE
T01Ub2tlbkxpc3Q6OmFkZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCi17Ci0g
ICAgaWYgKCFjb250YWluc0ludGVybmFsKHRva2VuKSkKLSAgICAgICAgc2V0VmFsdWUoYWRkVG9r
ZW4odmFsdWUoKSwgdG9rZW4pKTsKKyAgICBpZiAoZGlkUmVtb3ZlVG9rZW5zKQorICAgICAgICB1
cGRhdGVBZnRlclRva2VuQ2hhbmdlKCk7CiB9CiAKLXZvaWQgRE9NVG9rZW5MaXN0OjpyZW1vdmVJ
bnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKQordm9pZCBET01Ub2tlbkxpc3Q6OnJl
bW92ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9rZW5zLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICAvLyBDaGVjayB1c2luZyBjb250YWlucyBmaXJzdCBzaW5jZSBpdCB1c2VzIEF0b21pY1N0
cmluZyBjb21wYXJpc29ucyBpbnN0ZWFkCi0gICAgLy8gb2YgY2hhcmFjdGVyIGJ5IGNoYXJhY3Rl
ciB0ZXN0aW5nLgotICAgIGlmICghY29udGFpbnNJbnRlcm5hbCh0b2tlbikpCi0gICAgICAgIHJl
dHVybjsKLSAgICBzZXRWYWx1ZShyZW1vdmVUb2tlbih2YWx1ZSgpLCB0b2tlbikpOworICAgIHJl
bW92ZUludGVybmFsKHRva2Vucy5kYXRhKCksIHRva2Vucy5zaXplKCksIGVjKTsKIH0KIAotU3Ry
aW5nIERPTVRva2VuTGlzdDo6YWRkVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiBpbnB1dCwgY29u
c3QgQXRvbWljU3RyaW5nJiB0b2tlbikKK3ZvaWQgRE9NVG9rZW5MaXN0OjpyZW1vdmUoY29uc3Qg
V1RGOjpBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBWZWN0
b3I8U3RyaW5nPiB0b2tlbnM7Ci0gICAgdG9rZW5zLmFwcGVuZCh0b2tlbi5zdHJpbmcoKSk7Ci0g
ICAgcmV0dXJuIGFkZFRva2VucyhpbnB1dCwgdG9rZW5zKTsKKyAgICByZW1vdmVJbnRlcm5hbCgm
dG9rZW4uc3RyaW5nKCksIDEsIGVjKTsKIH0KIAotU3RyaW5nIERPTVRva2VuTGlzdDo6YWRkVG9r
ZW5zKGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b2tl
bnMpCitib29sIERPTVRva2VuTGlzdDo6dG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4s
IE9wdGlvbmFsPGJvb2w+IGZvcmNlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBib29sIG5l
ZWRzU3BhY2UgPSBmYWxzZTsKKyAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGlm
ICghaW5wdXQuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGlucHV0KTsKLSAg
ICAgICAgbmVlZHNTcGFjZSA9ICFpc0hUTUxTcGFjZShpbnB1dFtpbnB1dC5sZW5ndGgoKSAtIDFd
KTsKKyAgICBpZiAobV90b2tlbnMuY29udGFpbnModG9rZW4pKSB7CisgICAgICAgIGlmICghZm9y
Y2UudmFsdWVPcihmYWxzZSkpIHsKKyAgICAgICAgICAgIG1fdG9rZW5zLnJlbW92ZUZpcnN0KHRv
a2VuKTsKKyAgICAgICAgICAgIHVwZGF0ZUFmdGVyVG9rZW5DaGFuZ2UoKTsKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRva2Vucy5zaXplKCk7ICsraSkgewotICAgICAg
ICBpZiAobmVlZHNTcGFjZSkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHRva2Vuc1tpXSk7Ci0gICAgICAgIG5lZWRzU3BhY2UgPSB0cnVl
OwotICAgIH0KKyAgICBpZiAoZm9yY2UgJiYgIWZvcmNlLnZhbHVlKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgbV90b2tlbnMu
YXBwZW5kKHRva2VuKTsKKyAgICB1cGRhdGVBZnRlclRva2VuQ2hhbmdlKCk7CisgICAgcmV0dXJu
IHRydWU7CiB9CiAKLVN0cmluZyBET01Ub2tlbkxpc3Q6OnJlbW92ZVRva2VuKGNvbnN0IEF0b21p
Y1N0cmluZyYgaW5wdXQsIGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCitjb25zdCBBdG9taWNT
dHJpbmcmIERPTVRva2VuTGlzdDo6dmFsdWUoKSBjb25zdAogewotICAgIFZlY3RvcjxTdHJpbmc+
IHRva2VuczsKLSAgICB0b2tlbnMuYXBwZW5kKHRva2VuLnN0cmluZygpKTsKLSAgICByZXR1cm4g
cmVtb3ZlVG9rZW5zKGlucHV0LCB0b2tlbnMpOworICAgIGlmIChtX2NhY2hlZFZhbHVlLmlzTnVs
bCgpKSB7CisgICAgICAgIC8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1v
cmRlcmVkLXNldC1zZXJpYWxpemVyCisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAg
ICAgICAgZm9yIChhdXRvJiB0b2tlbiA6IG1fdG9rZW5zKSB7CisgICAgICAgICAgICBpZiAoIWJ1
aWxkZXIuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Cisg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCh0b2tlbik7CisgICAgICAgIH0KKyAgICAgICAgbV9j
YWNoZWRWYWx1ZSA9IGJ1aWxkZXIudG9BdG9taWNTdHJpbmcoKTsKKyAgICAgICAgQVNTRVJUKCFt
X2NhY2hlZFZhbHVlLmlzTnVsbCgpKTsKKyAgICB9CisgICAgcmV0dXJuIG1fY2FjaGVkVmFsdWU7
CiB9CiAKLVN0cmluZyBET01Ub2tlbkxpc3Q6OnJlbW92ZVRva2Vucyhjb25zdCBBdG9taWNTdHJp
bmcmIGlucHV0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9rZW5zKQordm9pZCBET01Ub2tlbkxp
c3Q6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgLy8gQWxnb3JpdGhtIGRl
ZmluZWQgYXQgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29y
ay9tdWx0aXBhZ2UvY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNyZW1vdmUtYS10b2tlbi1mcm9t
LWEtc3RyaW5nCi0gICAgLy8gTmV3IHNwZWMgaXMgYXQgaHR0cDovL2RvbS5zcGVjLndoYXR3Zy5v
cmcvI3JlbW92ZS1hLXRva2VuLWZyb20tYS1zdHJpbmcKLQotICAgIHVuc2lnbmVkIGlucHV0TGVu
Z3RoID0gaW5wdXQubGVuZ3RoKCk7Ci0gICAgU3RyaW5nQnVpbGRlciBvdXRwdXQ7IC8vIDMKLSAg
ICBvdXRwdXQucmVzZXJ2ZUNhcGFjaXR5KGlucHV0TGVuZ3RoKTsKLSAgICB1bnNpZ25lZCBwb3Np
dGlvbiA9IDA7IC8vIDQKLQotICAgIC8vIFN0ZXAgNQotICAgIHdoaWxlIChwb3NpdGlvbiA8IGlu
cHV0TGVuZ3RoKSB7Ci0gICAgICAgIGlmIChpc0hUTUxTcGFjZShpbnB1dFtwb3NpdGlvbl0pKSB7
IC8vIDYKLSAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoaW5wdXRbcG9zaXRpb24rK10pOyAvLyA2
LjEsIDYuMgotICAgICAgICAgICAgY29udGludWU7IC8vIDYuMworICAgIC8vIENsZWFyIHRva2Vu
cyBidXQgbm90IGNhcGFjaXR5LgorICAgIG1fdG9rZW5zLnNocmluaygwKTsKKworICAgIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nPiBhZGRlZFRva2VuczsKKyAgICAvLyBodHRwczovL2RvbS5zcGVjLndo
YXR3Zy5vcmcvI29yZGVyZWQlMjBzZXRzCisgICAgZm9yICh1bnNpZ25lZCBzdGFydCA9IDA7IDsg
KSB7CisgICAgICAgIHdoaWxlIChzdGFydCA8IHZhbHVlLmxlbmd0aCgpICYmIGlzSFRNTFNwYWNl
KHZhbHVlW3N0YXJ0XSkpCisgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICBpZiAoc3RhcnQg
Pj0gdmFsdWUubGVuZ3RoKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgdW5zaWduZWQg
ZW5kID0gc3RhcnQgKyAxOworICAgICAgICB3aGlsZSAoZW5kIDwgdmFsdWUubGVuZ3RoKCkgJiYg
IWlzSFRNTFNwYWNlKHZhbHVlW2VuZF0pKQorICAgICAgICAgICAgKytlbmQ7CisKKyAgICAgICAg
QXRvbWljU3RyaW5nIHRva2VuID0gdmFsdWUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQgLSBzdGFydCk7
CisgICAgICAgIGlmICghYWRkZWRUb2tlbnMuY29udGFpbnModG9rZW4pKSB7CisgICAgICAgICAg
ICBtX3Rva2Vucy5hcHBlbmQodG9rZW4pOworICAgICAgICAgICAgYWRkZWRUb2tlbnMuYWRkKHRv
a2VuKTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIFN0ZXAgNwotICAgICAgICBTdHJpbmdCdWls
ZGVyIHM7Ci0gICAgICAgIHdoaWxlIChwb3NpdGlvbiA8IGlucHV0TGVuZ3RoICYmIGlzTm90SFRN
TFNwYWNlKGlucHV0W3Bvc2l0aW9uXSkpCi0gICAgICAgICAgICBzLmFwcGVuZChpbnB1dFtwb3Np
dGlvbisrXSk7Ci0KLSAgICAgICAgLy8gU3RlcCA4Ci0gICAgICAgIGlmICh0b2tlbnMuY29udGFp
bnMocy50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSkpIHsKLSAgICAgICAgICAgIC8vIFN0ZXAg
OC4xCi0gICAgICAgICAgICB3aGlsZSAocG9zaXRpb24gPCBpbnB1dExlbmd0aCAmJiBpc0hUTUxT
cGFjZShpbnB1dFtwb3NpdGlvbl0pKQotICAgICAgICAgICAgICAgICsrcG9zaXRpb247Ci0KLSAg
ICAgICAgICAgIC8vIFN0ZXAgOC4yCi0gICAgICAgICAgICBzaXplX3QgaiA9IG91dHB1dC5sZW5n
dGgoKTsKLSAgICAgICAgICAgIHdoaWxlIChqID4gMCAmJiBpc0hUTUxTcGFjZShvdXRwdXRbaiAt
IDFdKSkKLSAgICAgICAgICAgICAgICAtLWo7Ci0gICAgICAgICAgICBvdXRwdXQucmVzaXplKGop
OwotCi0gICAgICAgICAgICAvLyBTdGVwIDguMwotICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDwg
aW5wdXRMZW5ndGggJiYgIW91dHB1dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgb3V0cHV0
LmFwcGVuZCgnICcpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG91dHB1dC5hcHBlbmQo
cy50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7IC8vIFN0ZXAgOQorICAgICAgICBzdGFydCA9
IGVuZCArIDE7CiAgICAgfQogCi0gICAgcmV0dXJuIG91dHB1dC50b1N0cmluZygpOworICAgIG1f
dG9rZW5zLnNocmlua1RvRml0KCk7CisgICAgbV9jYWNoZWRWYWx1ZSA9IG51bGxBdG9tOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaAppbmRl
eCA3Y2EzZWZhZTZkOWFkZDIzYjg2MzRhNGFjMWEwOWYxOGNiMzlhMDAxLi5lMWY1MjMyZTcxNWI1
MWQ4YzViOTE3MjU3OGJmNWFmNTVlM2M5ZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RPTVRva2VuTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0
LmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NSw4ICsyNiw5IEBACiAjaWZuZGVmIERPTVRva2VuTGlzdF9oCiAjZGVmaW5lIERPTVRva2VuTGlz
dF9oCiAKLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzcsMTQgKzM5LDEz
IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiBjbGFzcyBET01Ub2tlbkxpc3QgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKERPTVRva2VuTGlzdCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIERPTVRva2VuTGlzdCgpIHsgfQotICAgIHZpcnR1YWwgfkRPTVRv
a2VuTGlzdCgpIHt9OworICAgIHZpcnR1YWwgfkRPTVRva2VuTGlzdCgpIHsgfQogCiAgICAgdmly
dHVhbCB2b2lkIHJlZigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCA9IDA7CisgICAgdW5zaWdu
ZWQgbGVuZ3RoKCkgY29uc3Q7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpdGVtKHVuc2lnbmVk
IGluZGV4KSBjb25zdDsKIAogICAgIGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIHZvaWQgYWRkKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNTIsMjggKzUzLDQ0IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbW92ZShjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCB0
b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGJvb2wgdG9n
Z2xlKGNvbnN0IEF0b21pY1N0cmluZyYsIGJvb2wgZm9yY2UsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBib29sIHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmLCBPcHRpb25hbDxib29sPiBmb3JjZSwg
RXhjZXB0aW9uQ29kZSYpOwogCi0gICAgQXRvbWljU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgeyBy
ZXR1cm4gdmFsdWUoKTsgfQorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdG9TdHJpbmcoKSBjb25z
dCB7IHJldHVybiB2YWx1ZSgpOyB9CiAKLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gbnVsbHB0cjsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBBdG9taWNTdHJp
bmcgdmFsdWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IEF0
b21pY1N0cmluZyYpID0gMDsKLQotICAgIHZvaWQgYWRkSW50ZXJuYWwoY29uc3QgQXRvbWljU3Ry
aW5nJik7Ci0gICAgdmlydHVhbCBib29sIGNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3Ry
aW5nJikgY29uc3QgPSAwOwotICAgIHZvaWQgcmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3Ry
aW5nJik7Ci0KLSAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZVRva2VuKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZVRva2Vucyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBzdGF0aWMgU3RyaW5nIGFk
ZFRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwotICAgIHN0
YXRpYyBTdHJpbmcgYWRkVG9rZW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik7Ci0gICAgc3RhdGljIFN0cmluZyByZW1vdmVUb2tlbihjb25zdCBBdG9taWNTdHJp
bmcmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICBzdGF0aWMgU3RyaW5nIHJlbW92ZVRva2Vu
cyhjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpOworICAgIERPTVRv
a2VuTGlzdCgpID0gZGVmYXVsdDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKCkgY29u
c3Q7CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBZnRlclRva2VuQ2hhbmdlKCkgeyBtX2NhY2hlZFZhbHVlID0gbnVsbEF0b207IH0K
KworcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZVRva2VuKGNvbnN0IFN0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZVRva2Vucyhjb25zdCBT
dHJpbmcqIHRva2Vucywgc2l6ZV90IGxlbmd0aCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
YWRkSW50ZXJuYWwoY29uc3QgU3RyaW5nKiB0b2tlbnMsIHNpemVfdCBsZW5ndGgsIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICB2b2lkIHJlbW92ZUludGVybmFsKGNvbnN0IFN0cmluZyogdG9rZW5zLCBz
aXplX3QgbGVuZ3RoLCBFeGNlcHRpb25Db2RlJik7CisKKyAgICBWZWN0b3I8QXRvbWljU3RyaW5n
PiBtX3Rva2VuczsKKyAgICBtdXRhYmxlIEF0b21pY1N0cmluZyBtX2NhY2hlZFZhbHVlOwogfTsK
IAoraW5saW5lIHVuc2lnbmVkIERPTVRva2VuTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV90b2tlbnMuc2l6ZSgpOworfQorCitpbmxpbmUgY29uc3QgQXRvbWljU3RyaW5nJiBE
T01Ub2tlbkxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlu
ZGV4IDwgbV90b2tlbnMuc2l6ZSgpID8gbV90b2tlbnNbaW5kZXhdIDogbnVsbEF0b207Cit9CisK
K2lubGluZSBib29sIERPTVRva2VuTGlzdDo6dG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9r
ZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiB0b2dnbGUodG9rZW4sIE51bGxv
cHQsIGVjKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRE9NVG9r
ZW5MaXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXgg
YjRmZmRiMmI0MzU1YmVmMzdhMDEzN2FlOGQ1YmUzZGJjYTk4NmNmMS4uMDUzZWM0NWM3M2QxM2Vj
YWFmYmEzZTA5OWRjNTMzYTExM2I3NTdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgogCisjaW5jbHVkZSAiQXR0cmlidXRlRE9NVG9r
ZW5MaXN0LmgiCiAjaW5jbHVkZSAiRWxlbWVudEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnRI
YW5kbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgpAQCAtMzksNyArNDAsNiBAQAogI2lu
Y2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQaW5nTG9hZGVyLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1Nb3VzZUV2ZW50LmgiCi0jaW5jbHVkZSAiUmVsTGlzdC5oIgogI2luY2x1ZGUgIlJl
bmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU1ZH
SW1hZ2UuaCIKQEAgLTI2NCw3ICsyNjQsNyBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdAogICAg
ICAgICBpZiAoU3BhY2VTcGxpdFN0cmluZzo6c3BhY2VTcGxpdFN0cmluZ0NvbnRhaW5zVmFsdWUo
dmFsdWUsICJub3JlZmVycmVyIiwgdHJ1ZSkpCiAgICAgICAgICAgICBtX2xpbmtSZWxhdGlvbnMg
fD0gUmVsYXRpb25Ob1JlZmVycmVyOwogICAgICAgICBpZiAobV9yZWxMaXN0KQotICAgICAgICAg
ICAgbV9yZWxMaXN0LT51cGRhdGVSZWxBdHRyaWJ1dGUodmFsdWUpOworICAgICAgICAgICAgbV9y
ZWxMaXN0LT5hdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0KICAgICBlbHNlCiAg
ICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CkBAIC0zMTYs
NyArMzE2LDcgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aGFzUmVsKHVpbnQzMl90IHJlbGF0
aW9uKSBjb25zdAogRE9NVG9rZW5MaXN0JiBIVE1MQW5jaG9yRWxlbWVudDo6cmVsTGlzdCgpCiB7
CiAgICAgaWYgKCFtX3JlbExpc3QpIAotICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5p
cXVlPFJlbExpc3Q+KCp0aGlzKTsKKyAgICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1
ZTxBdHRyaWJ1dGVET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFtZXM6OnJlbEF0dHIpOwogICAg
IHJldHVybiAqbV9yZWxMaXN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmgKaW5kZXggNGI2NmEwMTQ1ZDU3Yjk3ZjA3YzkzZjk0Y2QxNDIzMDY1MmVlNDFiYy4uZmQ5
ZDk2NjkwYmYzYzg1MmQwMjBiZDgyMjcyM2FiMjIxYmNlMDM5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuaApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIFJlbExpc3Q7CitjbGFzcyBBdHRyaWJ1dGVET01Ub2tlbkxpc3Q7CiAK
IC8vIExpbmsgcmVsYXRpb24gYml0bWFzayB2YWx1ZXMuCiAvLyBGSVhNRTogVW5jb21tZW50IGFz
IHRoZSB2YXJpb3VzIGxpbmsgcmVsYXRpb25zIGFyZSBpbXBsZW1lbnRlZC4KQEAgLTE0NSw3ICsx
NDUsNyBAQCBwcml2YXRlOgogICAgIHVpbnQzMl90IG1fbGlua1JlbGF0aW9ucyA6IDMwOwogICAg
IG11dGFibGUgTGlua0hhc2ggbV9jYWNoZWRWaXNpdGVkTGlua0hhc2g7CiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVsTGlzdD4gbV9yZWxMaXN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdHRyaWJ1
dGVET01Ub2tlbkxpc3Q+IG1fcmVsTGlzdDsKIH07CiAKIGlubGluZSBMaW5rSGFzaCBIVE1MQW5j
aG9yRWxlbWVudDo6dmlzaXRlZExpbmtIYXNoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAppbmRleCAwNDEzOWNiNzJjMDMxYzg1OGU1OGYxY2ZkZTNjZjExYjkz
OWFkYjBiLi4zMzM0MzJmMmI0ZGIzMzFmYzNjYzZiNjE3YWUzNTc4NWE2MGU3MjcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5j
bHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKKyNpbmNs
dWRlICJBdHRyaWJ1dGVET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNo
ZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgpAQCAtNDYsNyArNDcsNiBAQAogI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFs
dWF0b3IuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2lu
Y2x1ZGUgIlJlbExpc3QuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTE0MSw3ICsxNDEsNyBA
QCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaQogICAgIGlmIChuYW1lID09IHJlbEF0dHIpIHsKICAg
ICAgICAgbV9yZWxBdHRyaWJ1dGUgPSBMaW5rUmVsQXR0cmlidXRlKHZhbHVlKTsKICAgICAgICAg
aWYgKG1fcmVsTGlzdCkKLSAgICAgICAgICAgIG1fcmVsTGlzdC0+dXBkYXRlUmVsQXR0cmlidXRl
KHZhbHVlKTsKKyAgICAgICAgICAgIG1fcmVsTGlzdC0+YXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZh
bHVlKTsKICAgICAgICAgcHJvY2VzcygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDAz
LDcgKzQwMyw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRjaFBlbmRpbmdFdmVudChM
aW5rRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0JiBIVE1MTGlua0VsZW1l
bnQ6OnJlbExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAgICAgICAgbV9yZWxMaXN0
ID0gc3RkOjptYWtlX3VuaXF1ZTxSZWxMaXN0PigqdGhpcyk7CisgICAgICAgIG1fcmVsTGlzdCA9
IHN0ZDo6bWFrZV91bmlxdWU8QXR0cmlidXRlRE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVz
OjpyZWxBdHRyKTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmgKaW5kZXggYTY2NzM1MmQ2YzY4NjkyYWQ0MzQwMjE1OTZhZDc4NWQ2
MTQ1OGEzNC4uYmViMTcxZWUwZGM4ZjE3ZDA1NmM4ZWUzZTQ4ZmJjMmZkMDA3MmNiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCkBAIC0zNSw4ICszNSw4IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQXR0cmlidXRlRE9NVG9rZW5MaXN0OwogY2xhc3MgSFRN
TExpbmtFbGVtZW50OwotY2xhc3MgUmVsTGlzdDsKIGNsYXNzIFVSTDsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gY2xhc3MgRXZlbnRTZW5kZXI7CkBAIC0xNDAsNyArMTQwLDcgQEAgcHJpdmF0ZToK
IAogICAgIFBlbmRpbmdTaGVldFR5cGUgbV9wZW5kaW5nU2hlZXRUeXBlOwogCi0gICAgc3RkOjp1
bmlxdWVfcHRyPFJlbExpc3Q+IG1fcmVsTGlzdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXR0cmli
dXRlRE9NVG9rZW5MaXN0PiBtX3JlbExpc3Q7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JlbExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9SZWxMaXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWIzZjRiYjU5MmVm
NmUwNGM2MzA0MmE0ODM0ODc5MjQ1ZDU0MDRlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JlbExpc3QuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBEaGkg
QXVycmFobWFuIDxkaW9yYWhtYW5Acm9ja3liYXJzLmNvbT4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJSZWxMaXN0LmgiCi0KLSNpbmNsdWRlICJFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVsTGlz
dDo6UmVsTGlzdChFbGVtZW50JiBlbGVtZW50KSAKLSAgICA6IG1fZWxlbWVudChlbGVtZW50KQot
ICAgICwgbV9yZWxBdHRyaWJ1dGVWYWx1ZShTcGFjZVNwbGl0U3RyaW5nKGVsZW1lbnQuZmFzdEdl
dEF0dHJpYnV0ZShIVE1MTmFtZXM6OnJlbEF0dHIpLCBmYWxzZSkpCi17Ci19Ci0KLXZvaWQgUmVs
TGlzdDo6cmVmKCkKLXsKLSAgICBtX2VsZW1lbnQucmVmKCk7Ci19Ci0KLXZvaWQgUmVsTGlzdDo6
ZGVyZWYoKQotewotICAgIG1fZWxlbWVudC5kZXJlZigpOwotfQotCi11bnNpZ25lZCBSZWxMaXN0
OjpsZW5ndGgoKSBjb25zdAotewotICAgIHJldHVybiBtX3JlbEF0dHJpYnV0ZVZhbHVlLnNpemUo
KTsKLX0KLQotY29uc3QgQXRvbWljU3RyaW5nIFJlbExpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgp
IGNvbnN0Ci17Ci0gICAgaWYgKGluZGV4ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm4gbnVs
bEF0b207Ci0gICAgcmV0dXJuIG1fcmVsQXR0cmlidXRlVmFsdWVbaW5kZXhdOwotfQotCi1FbGVt
ZW50KiBSZWxMaXN0OjplbGVtZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gJm1fZWxlbWVudDsK
LX0KLQotdm9pZCBSZWxMaXN0Ojp1cGRhdGVSZWxBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKLXsKLSAgICBtX3JlbEF0dHJpYnV0ZVZhbHVlLnNldCh2YWx1ZSwgZmFsc2UpOwot
fQotCi1ib29sIFJlbExpc3Q6OmNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0
b2tlbikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yZWxBdHRyaWJ1dGVWYWx1ZS5jb250YWlucyh0
b2tlbik7Ci19Ci0KLUF0b21pY1N0cmluZyBSZWxMaXN0Ojp2YWx1ZSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fZWxlbWVudC5mYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6cmVsQXR0cik7Ci19
Ci0KLXZvaWQgUmVsTGlzdDo6c2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKLXsK
LSAgICBtX2VsZW1lbnQuc2V0QXR0cmlidXRlKEhUTUxOYW1lczo6cmVsQXR0ciwgdmFsdWUpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmVsTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SZWxMaXN0LmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3NDNjY2Y1ZDU1MzAxZTNjOGE1YzQ4MjE2MDk1NjNjMDYz
ZmM4OTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SZWxMaXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IERoaSBBdXJyYWhtYW4gPGRpb3JhaG1hbkByb2Nr
eWJhcnMuY29tPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBSZWxMaXN0X2gKLSNkZWZpbmUgUmVsTGlz
dF9oCi0KLSNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKLSNpbmNsdWRlICJTcGFjZVNwbGl0U3Ry
aW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRWxlbWVudDsKLQotY2xhc3Mg
UmVsTGlzdCBmaW5hbCA6IHB1YmxpYyBET01Ub2tlbkxpc3QgewotcHVibGljOgotICAgIFJlbExp
c3QoRWxlbWVudCYpOwotICAgIHZvaWQgdXBkYXRlUmVsQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0
cmluZyYpOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCByZWYoKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxl
bmd0aCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0
ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgRWxlbWVudCog
ZWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCBjb250YWluc0ludGVy
bmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgQXRv
bWljU3RyaW5nIHZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZh
bHVlKGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwotICAgIAotICAgIEVsZW1lbnQmIG1f
ZWxlbWVudDsKLSAgICBtdXRhYmxlIFNwYWNlU3BsaXRTdHJpbmcgbV9yZWxBdHRyaWJ1dGVWYWx1
ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFJlbExpc3RfaAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOWY1YTU2NjA5ZWZhOWM1ZWNiOWI2OWEwNDgxMzA1ODc4NzY2NjA2Ny4uNTA3MmVk
ZWNhNDNkNTJiMTRhYmM2YTBhMzk2ZDE4OTE0OGY0YzhkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDE1LTA5LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
RE9NVG9rZW5MaXN0IHVwZGF0ZSBzdGVwcyBmb3IgY2xhc3NMaXN0IGRvbid0IGZvbGxvdyB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4
NTg5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjU0NzQ0Mz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBSeW9zdWtlIE5pd2EgYW5kIERhcmluIEFkbGVyLgorCisgICAgICAgIFVwZGF0ZSAvIHJl
YmFzZWxpbmUgZXhpc3RpbmcgdGVzdHMgYXMgb3VyIGJlaGF2aW9yIGNoYW5nZWQuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LXF1aXJrcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvc2NyaXB0LXRlc3RzL2NsYXNzLWxpc3Qu
anM6CisgICAgICAgICogZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvZG9tLXNldHRhYmxlLXRv
a2VuLWxpc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxPdXRwdXRFbGVt
ZW50L2h0bWxvdXRwdXRlbGVtZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9I
VE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxlbWVudC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxPdXRwdXRFbGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlz
dC5qczoKKyAgICAgICAgKiBmYXN0L2RvbS9yZWwtbGlzdC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vcmVsLWxpc3QuaHRtbDoKKwogMjAxNS0wOS0xMSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEVsZW1lbnQudGFnTmFtZSBzaG91bGQgYmUgdXBw
ZXItY2FzZSBmb3IgSFRNTCBlbGVtZW50cyBpbiBIVE1MIGRvY3VtZW50cwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggMDlhMGUyOTcxNjdiNjQ4NTdiNWE1MzVhNWI1YWY2YTcyMGQw
NTRjNS4uMjg0YzhjYzY4NTE1NTcwODkwNjUzMWZiYzNlN2QxZmZhY2U3NTY2ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDktMTAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBET01Ub2tlbkxpc3QgdXBkYXRl
IHN0ZXBzIGZvciBjbGFzc0xpc3QgZG9uJ3QgZm9sbG93IHRoZSBzcGVjCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg1ODkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzIyNTQ3NDQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YSBh
bmQgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmViYXNlbGluZSBXM0MgdGVzdHMgZm9yIERPTVRv
a2VuTGlzdCBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbGlzdHMvRE9NVG9rZW5MaXN0LXN0cmluZ2lmaWVyLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQt
Y2xhc3NsaXN0LWV4cGVjdGVkLnR4dDoKKwogMjAxNS0wOS0xMSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEVsZW1lbnQudGFnTmFtZSBzaG91bGQgYmUgdXBwZXIt
Y2FzZSBmb3IgSFRNTCBlbGVtZW50cyBpbiBIVE1MIGRvY3VtZW50cwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvY2xhc3MtbGlzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LWV4cGVjdGVkLnR4dApp
bmRleCBkODFlZGFkYTUxYmNiZmFiMTMxZWNkOWE1ZDg5ZWU2ZjNlODcxYWE4Li4zZGJjZjhkMzc1
MDk2NmIyMDI4OWEwYjM5ZDQyNmEzMjdkYTg4YzIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LWV4cGVjdGVkLnR4dApAQCAtNyw3
ICs3LDcgQEAgVGVzdHMgZnJvbSBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRtbC9kb20v
cmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvCiBQQVNTIFN0cmluZyhlbGVtZW50LmNsYXNzTGlzdCkg
aXMgIngiCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAwCiBQQVNTIGVsZW1lbnQu
Y2xhc3NMaXN0Lmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAy
CitQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lmxlbmd0aCBpcyAxCiBQQVNTIGVsZW1lbnQuY2xhc3NM
aXN0Lmxlbmd0aCBpcyAyCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4IgogUEFTUyBlbGVt
ZW50LmNsYXNzTmFtZSBpcyAieCIKQEAgLTE1LDcgKzE1LDcgQEAgUEFTUyBlbGVtZW50LmNsYXNz
TmFtZSBpcyAieCAgeCIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInkgeCIKIFBBU1MgZWxl
bWVudC5jbGFzc05hbWUgaXMgIiIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgIiIKLVBBU1Mg
ZWxlbWVudC5jbGFzc05hbWUgaXMgIiB5IHkgIgorUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAi
eSIKIFBBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgInkiCiBFbnN1cmUgdGhhdCB3ZSBjYW4gaGFu
ZGxlIGVtcHR5IGNsYXNzIG5hbWUgY29ycmVjdGx5CiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LnRv
Z2dsZSgneCcpIGlzIHRydWUKQEAgLTM3LDggKzM3LDggQEAgUEFTUyBlbGVtZW50LmNsYXNzTGlz
dC50b2dnbGUoJycsIHRydWUpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNvZGUg
MTIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCd4IHknLCBmYWxzZSkgdGhyZXcgZXhw
ZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSA1CiBUZXN0aW5nIGFkZCBpbiBwcmVzZW5jZSBv
ZiB0cmFpbGluZyB3aGl0ZSBzcGFjZXMuCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4IHki
Ci1QQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4XHR5IgotUEFTUyBlbGVtZW50LmNsYXNzTmFt
ZSBpcyAiIHkiCitQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ4IHkiCitQQVNTIGVsZW1lbnQu
Y2xhc3NOYW1lIGlzICJ5IgogVGVzdCBpbnZhbGlkIHRva2VucwogUEFTUyBlbGVtZW50LmNsYXNz
TGlzdC5jb250YWlucygnJykgdGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSAx
MgogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygneCB5JykgdGhyZXcgZXhwZWN0ZWQg
RE9NRXhjZXB0aW9uIHdpdGggY29kZSA1CkBAIC01Miw4ICs1Miw4IEBAIFBBU1MgZWxlbWVudC5j
bGFzc0xpc3QudG9nZ2xlKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMuCiBJbmRleGluZwogUEFTUyBlbGVtZW50LmNsYXNzTGlzdFswXSBpcyAieCIKIFBB
U1MgZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgwKSBpcyAieCIKLVBBU1MgZWxlbWVudC5jbGFzc0xp
c3RbMV0gaXMgIngiCi1QQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lml0ZW0oMSkgaXMgIngiCitQQVNT
IGVsZW1lbnQuY2xhc3NMaXN0WzFdIGlzIHVuZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5jbGFzc0xp
c3QuaXRlbSgxKSBpcyBudWxsCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0WzFdIGlzICJ5IgogUEFT
UyBlbGVtZW50LmNsYXNzTGlzdC5pdGVtKDEpIGlzICJ5IgogUEFTUyBlbGVtZW50LmNsYXNzTGlz
dFswXSBpcyB1bmRlZmluZWQuCkBAIC05OCw4ICs5OCw4IEBAIFBBU1MgZWxlbWVudC5jbGFzc0xp
c3QuYWRkKCJhIiwge3RvU3RyaW5nOiBmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCJ1c2Vy
IGVyCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0
LmFkZCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBvYnNlcnZlci50YWtlUmVjb3Jk
cygpLmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJiIGQgICIKLVBBU1Mg
ZWxlbWVudC5jbGFzc05hbWUgaXMgImQgICIKK1BBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImIg
ZCIKK1BBU1MgZWxlbWVudC5jbGFzc05hbWUgaXMgImQiCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1l
IGlzICJhIGIgYyIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdhJywgJ2InLCAnJykg
dGhyZXcgZXhwZWN0ZWQgRE9NRXhjZXB0aW9uIHdpdGggY29kZSAxMgogUEFTUyBlbGVtZW50LmNs
YXNzTmFtZSBpcyAiYSBiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVs
ZW1lbnQvY2xhc3MtbGlzdC1xdWlya3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTEVsZW1lbnQvY2xhc3MtbGlzdC1xdWlya3MtZXhwZWN0ZWQudHh0CmluZGV4IGQ4MWVk
YWRhNTFiY2JmYWIxMzFlY2Q5YTVkODllZTZmM2U4NzFhYTguLjNkYmNmOGQzNzUwOTY2YjIwMjg5
YTBiMzlkNDI2YTMyN2RhODhjMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxFbGVtZW50L2NsYXNzLWxpc3QtcXVpcmtzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9jbGFzcy1saXN0LXF1aXJrcy1leHBlY3RlZC50eHQKQEAg
LTcsNyArNyw3IEBAIFRlc3RzIGZyb20gaHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwv
ZG9tL3JlZmxlY3RpbmcvRE9NVG9rZW5MaXN0LwogUEFTUyBTdHJpbmcoZWxlbWVudC5jbGFzc0xp
c3QpIGlzICJ4IgogUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGggaXMgMAogUEFTUyBlbGVt
ZW50LmNsYXNzTGlzdC5sZW5ndGggaXMgMQotUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGgg
aXMgMgorUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5sZW5ndGggaXMgMQogUEFTUyBlbGVtZW50LmNs
YXNzTGlzdC5sZW5ndGggaXMgMgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieCIKIFBBU1Mg
ZWxlbWVudC5jbGFzc05hbWUgaXMgIngiCkBAIC0xNSw3ICsxNSw3IEBAIFBBU1MgZWxlbWVudC5j
bGFzc05hbWUgaXMgInggIHgiCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ5IHgiCiBQQVNT
IGVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICIiCi1Q
QVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICIgeSB5ICIKK1BBU1MgZWxlbWVudC5jbGFzc05hbWUg
aXMgInkiCiBQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJ5IgogRW5zdXJlIHRoYXQgd2UgY2Fu
IGhhbmRsZSBlbXB0eSBjbGFzcyBuYW1lIGNvcnJlY3RseQogUEFTUyBlbGVtZW50LmNsYXNzTGlz
dC50b2dnbGUoJ3gnKSBpcyB0cnVlCkBAIC0zNyw4ICszNyw4IEBAIFBBU1MgZWxlbWVudC5jbGFz
c0xpc3QudG9nZ2xlKCcnLCB0cnVlKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBj
b2RlIDEyCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgneCB5JywgZmFsc2UpIHRocmV3
IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNvZGUgNQogVGVzdGluZyBhZGQgaW4gcHJlc2Vu
Y2Ugb2YgdHJhaWxpbmcgd2hpdGUgc3BhY2VzLgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAi
eCB5IgotUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieFx0eSIKLVBBU1MgZWxlbWVudC5jbGFz
c05hbWUgaXMgIiB5IgorUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAieCB5IgorUEFTUyBlbGVt
ZW50LmNsYXNzTmFtZSBpcyAieSIKIFRlc3QgaW52YWxpZCB0b2tlbnMKIFBBU1MgZWxlbWVudC5j
bGFzc0xpc3QuY29udGFpbnMoJycpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNv
ZGUgMTIKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3ggeScpIHRocmV3IGV4cGVj
dGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNvZGUgNQpAQCAtNTIsOCArNTIsOCBAQCBQQVNTIGVsZW1l
bnQuY2xhc3NMaXN0LnRvZ2dsZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgogSW5kZXhpbmcKIFBBU1MgZWxlbWVudC5jbGFzc0xpc3RbMF0gaXMgIngi
CiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0Lml0ZW0oMCkgaXMgIngiCi1QQVNTIGVsZW1lbnQuY2xh
c3NMaXN0WzFdIGlzICJ4IgotUEFTUyBlbGVtZW50LmNsYXNzTGlzdC5pdGVtKDEpIGlzICJ4Igor
UEFTUyBlbGVtZW50LmNsYXNzTGlzdFsxXSBpcyB1bmRlZmluZWQuCitQQVNTIGVsZW1lbnQuY2xh
c3NMaXN0Lml0ZW0oMSkgaXMgbnVsbAogUEFTUyBlbGVtZW50LmNsYXNzTGlzdFsxXSBpcyAieSIK
IFBBU1MgZWxlbWVudC5jbGFzc0xpc3QuaXRlbSgxKSBpcyAieSIKIFBBU1MgZWxlbWVudC5jbGFz
c0xpc3RbMF0gaXMgdW5kZWZpbmVkLgpAQCAtOTgsOCArOTgsOCBAQCBQQVNTIGVsZW1lbnQuY2xh
c3NMaXN0LmFkZCgiYSIsIHt0b1N0cmluZzogZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcigi
dXNlciBlcgogUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiIgogUEFTUyBlbGVtZW50LmNsYXNz
TGlzdC5hZGQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1Mgb2JzZXJ2ZXIudGFrZVJl
Y29yZHMoKS5sZW5ndGggaXMgMQotUEFTUyBlbGVtZW50LmNsYXNzTmFtZSBpcyAiYiBkICAiCi1Q
QVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJkICAiCitQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlz
ICJiIGQiCitQQVNTIGVsZW1lbnQuY2xhc3NOYW1lIGlzICJkIgogUEFTUyBlbGVtZW50LmNsYXNz
TmFtZSBpcyAiYSBiIGMiCiBQQVNTIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYScsICdiJywg
JycpIHRocmV3IGV4cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNvZGUgMTIKIFBBU1MgZWxlbWVu
dC5jbGFzc05hbWUgaXMgImEgYiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxFbGVtZW50L3NjcmlwdC10ZXN0cy9jbGFzcy1saXN0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTEVsZW1lbnQvc2NyaXB0LXRlc3RzL2NsYXNzLWxpc3QuanMKaW5kZXggOTExZDI0NGNk
ZWQ0MGRlNjYzZDllZGE2MzkxNTFkNWZkMTY0N2FlZi4uN2RjNDg3NjkxOTRlNTBlMDYxYWQxMDli
Yjc5OTUxNmRmMWViOGYzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVs
ZW1lbnQvc2NyaXB0LXRlc3RzL2NsYXNzLWxpc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTEVsZW1lbnQvc2NyaXB0LXRlc3RzL2NsYXNzLWxpc3QuanMKQEAgLTMxLDcgKzMxLDcg
QEAgc2hvdWxkRXZhbHVhdGVUbygnZWxlbWVudC5jbGFzc0xpc3QubGVuZ3RoJywgMSk7CiAKIC8v
IGh0dHA6Ly9zaW1vbi5odG1sNS5vcmcvdGVzdC9odG1sL2RvbS9yZWZsZWN0aW5nL0RPTVRva2Vu
TGlzdC9nZXR0aW5nLzAwMy5odG0KIGNyZWF0ZUVsZW1lbnQoJ3ggeCcpOwotc2hvdWxkRXZhbHVh
dGVUbygnZWxlbWVudC5jbGFzc0xpc3QubGVuZ3RoJywgMik7CitzaG91bGRFdmFsdWF0ZVRvKCdl
bGVtZW50LmNsYXNzTGlzdC5sZW5ndGgnLCAxKTsKIAogLy8gaHR0cDovL3NpbW9uLmh0bWw1Lm9y
Zy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9NVG9rZW5MaXN0L2dldHRpbmcvMDA0Lmh0bQog
Y3JlYXRlRWxlbWVudCgneCB5Jyk7CkBAIC03MCw3ICs3MCw3IEBAIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAnJyk7CiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3Jn
L3Rlc3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMTEuaHRtCiBj
cmVhdGVFbGVtZW50KCcgeSB4ICB5ICcpOwogZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd4Jyk7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJyB5IHkgJyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJ3knKTsKIAogLy8gaHR0
cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9NVG9rZW5MaXN0
L2dldHRpbmcvMDEyLmh0bQogY3JlYXRlRWxlbWVudCgnIHggeSAgeCAnKTsKQEAgLTEyMSwxMSAr
MTIxLDExIEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAneCB5
Jyk7CiAKIGNyZWF0ZUVsZW1lbnQoJ3hcdCcpOwogZWxlbWVudC5jbGFzc0xpc3QuYWRkKCd5Jyk7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJ3hcdHknKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAneCB5Jyk7CiAKIGNyZWF0
ZUVsZW1lbnQoJyAnKTsKIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgneScpOwotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICcgeScpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdlbGVtZW50LmNsYXNzTmFtZScsICd5Jyk7CiAKIAogZGVidWcoJ1Rlc3QgaW52YWxpZCB0
b2tlbnMnKTsKQEAgLTIwNiw4ICsyMDYsOCBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1l
bnQuY2xhc3NMaXN0WzBdJywgJ3gnKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5j
bGFzc0xpc3QuaXRlbSgwKScsICd4Jyk7CiAKIGNyZWF0ZUVsZW1lbnQoJ3ggeCcpOwotc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LmNsYXNzTGlzdFsxXScsICd4Jyk7Ci1zaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NMaXN0Lml0ZW0oMSknLCAneCcpOworc2hvdWxkQmVV
bmRlZmluZWQoJ2VsZW1lbnQuY2xhc3NMaXN0WzFdJyk7CitzaG91bGRCZU51bGwoJ2VsZW1lbnQu
Y2xhc3NMaXN0Lml0ZW0oMSknKTsKIAogY3JlYXRlRWxlbWVudCgneCB5Jyk7CiBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2VsZW1lbnQuY2xhc3NMaXN0WzFdJywgJ3knKTsKQEAgLTMyNywxMCArMzI3
LDEwIEBAIHNob3VsZEJlKCdvYnNlcnZlci50YWtlUmVjb3JkcygpLmxlbmd0aCcsICcxJyk7CiAK
IGNyZWF0ZUVsZW1lbnQoJ2EgYiBjIGQgICcpOwogZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdh
JywgJ2MnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAnYiBk
ICAnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5jbGFzc05hbWUnLCAnYiBkJyk7
CiAKIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYicsICdiJyk7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2VsZW1lbnQuY2xhc3NOYW1lJywgJ2QgICcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdlbGVtZW50LmNsYXNzTmFtZScsICdkJyk7CiAKIGNyZWF0ZUVsZW1lbnQoJ2EgYiBjIG51bGwg
ZCB1bmRlZmluZWQgMCBmYWxzZScpOwogZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKG51bGwsIHt0
b1N0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiAnZCcgfX0sIHVuZGVmaW5lZCwgMCwgZmFsc2Up
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvZG9t
LXNldHRhYmxlLXRva2VuLWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTE91dHB1dEVsZW1lbnQvZG9tLXNldHRhYmxlLXRva2VuLWxpc3QtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDhlYzYyNGM4ZjVkMzhmMjczNzY4NTU4ZGYxNGJjODk4YjQ1MjY5ZDMuLmIzYjI5ZjdjOTNh
YjU5NzA0MDI2YzU4NDFiNmYxMWI1OTQxMzRlMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9kb20tc2V0
dGFibGUtdG9rZW4tbGlzdC1leHBlY3RlZC50eHQKQEAgLTcsMTUgKzcsMTUgQEAgT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUKIFBBU1MgU3RyaW5nKGVsZW1lbnQuaHRtbEZvcikgaXMgIngiCiBQQVNT
IGVsZW1lbnQuaHRtbEZvci5sZW5ndGggaXMgMAogUEFTUyBlbGVtZW50Lmh0bWxGb3IubGVuZ3Ro
IGlzIDEKLVBBU1MgZWxlbWVudC5odG1sRm9yLmxlbmd0aCBpcyAyCitQQVNTIGVsZW1lbnQuaHRt
bEZvci5sZW5ndGggaXMgMQogUEFTUyBlbGVtZW50Lmh0bWxGb3IubGVuZ3RoIGlzIDIKIFBBU1Mg
ZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgIngiCiBQQVNTIGVsZW1lbnQuaHRtbEZvci50
b1N0cmluZygpIGlzICJ4IgotUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieCAg
eCIKK1BBU1MgZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCkgaXMgIngiCiBQQVNTIGVsZW1lbnQu
aHRtbEZvci50b1N0cmluZygpIGlzICJ5IHgiCiBQQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmlu
ZygpIGlzICIiCiBQQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICIiCi1QQVNTIGVs
ZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICIgeSB5ICIKK1BBU1MgZWxlbWVudC5odG1sRm9y
LnRvU3RyaW5nKCkgaXMgInkiCiBQQVNTIGVsZW1lbnQuaHRtbEZvci50b1N0cmluZygpIGlzICJ5
IgogLSBFbnN1cmUgdGhhdCB3ZSBjYW4gaGFuZGxlIGVtcHR5IGZvcm0gYXR0cmlidXRlIGNvcnJl
Y3RseQogUEFTUyBsaXN0LnZhbHVlIGlzICJ4IgpAQCAtMjYsOCArMjYsOCBAQCBQQVNTIGVsZW1l
bnQuaHRtbEZvci5jb250YWlucygneCcpIGlzIHRydWUKIFBBU1MgZWxlbWVudC5odG1sRm9yWzFd
IGlzIHVuZGVmaW5lZC4KIC0gVGVzdGluZyBhZGQgaW4gcHJlc2VuY2Ugb2YgdHJhaWxpbmcgd2hp
dGUgc3BhY2VzLgogUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieCB5IgotUEFT
UyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieFx0eSIKLVBBU1MgZWxlbWVudC5odG1s
Rm9yLnRvU3RyaW5nKCkgaXMgIiB5IgorUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBp
cyAieCB5IgorUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKSBpcyAieSIKIC0gVGVzdCBp
bnZhbGlkIHRva2VucwogUEFTUyBlbGVtZW50Lmh0bWxGb3IuY29udGFpbnMoJycpIHRocmV3IGV4
cGVjdGVkIERPTUV4Y2VwdGlvbiB3aXRoIGNvZGUgMTIKIFBBU1MgZWxlbWVudC5odG1sRm9yLmNv
bnRhaW5zKCd4IHknKSB0aHJldyBleHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2RlIDUKQEAg
LTQwLDggKzQwLDggQEAgUEFTUyBlbGVtZW50Lmh0bWxGb3IudG9nZ2xlKCd4IHknKSB0aHJldyBl
eHBlY3RlZCBET01FeGNlcHRpb24gd2l0aCBjb2RlIDUKIC0gSW5kZXhpbmcKIFBBU1MgZWxlbWVu
dC5odG1sRm9yWzBdIGlzICJ4IgogUEFTUyBlbGVtZW50Lmh0bWxGb3IuaXRlbSgwKSBpcyAieCIK
LVBBU1MgZWxlbWVudC5odG1sRm9yWzFdIGlzICJ4IgotUEFTUyBlbGVtZW50Lmh0bWxGb3IuaXRl
bSgxKSBpcyAieCIKK1BBU1MgZWxlbWVudC5odG1sRm9yWzFdIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
ZWxlbWVudC5odG1sRm9yLml0ZW0oMSkgaXMgbnVsbAogUEFTUyBlbGVtZW50Lmh0bWxGb3JbMV0g
aXMgInkiCiBQQVNTIGVsZW1lbnQuaHRtbEZvci5pdGVtKDEpIGlzICJ5IgogUEFTUyBlbGVtZW50
Lmh0bWxGb3JbMF0gaXMgdW5kZWZpbmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTE91dHB1dEVsZW1lbnQvaHRtbG91dHB1dGVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvaHRtbG91dHB1dGVsZW1lbnQtZXhw
ZWN0ZWQudHh0CmluZGV4IDQ4Yjg1ZGNiMGE0YzEyYWE1YmE4ODlkYzUwZTQ1ODIyMjU0MzBjOTcu
LjIyNWYwOGFhODViYTIxMDA0MmUxMDljN2Q5ZTk2ZGFmNzdkYWZmYTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9o
dG1sb3V0cHV0ZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTEyLDcgKzEyLDcgQEAgUEFTUyBvdXRw
dXQyLmh0bWxGb3IudmFsdWUgaXMgImZvci10YXJnZXQxIgogUEFTUyBvdXRwdXQzLmh0bWxGb3Iu
bGVuZ3RoIGlzIDIKIFBBU1Mgb3V0cHV0My5odG1sRm9yWzBdIGlzICJmb3ItdGFyZ2V0MSIKIFBB
U1Mgb3V0cHV0My5odG1sRm9yWzFdIGlzICJmb3ItdGFyZ2V0MiIKLVBBU1Mgb3V0cHV0My5odG1s
Rm9yLnZhbHVlIGlzICIgZm9yLXRhcmdldDEgZm9yLXRhcmdldDIgIgorUEFTUyBvdXRwdXQzLmh0
bWxGb3IudmFsdWUgaXMgImZvci10YXJnZXQxIGZvci10YXJnZXQyIgogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxlbWVudC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvaHRtbG91dHB1dGVsZW1lbnQuaHRt
bAppbmRleCBkZjgzY2VhMWQyNTQzMTBjZDE5ZDcyODc2NmYyZmQzYWE5NWZmMzlkLi4zNjg1NzZh
M2QxM2MxMGZmYTI2YTgzMmEwZDQwNTBjNjJmMTRiMDQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9odG1sb3V0cHV0ZWxlbWVudC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRFbGVtZW50L2h0bWxvdXRwdXRlbGVtZW50
Lmh0bWwKQEAgLTI4LDcgKzI4LDcgQEAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdvdXRwdXQyLmh0
bWxGb3IudmFsdWUnLCAnZm9yLXRhcmdldDEnKTsKIHNob3VsZEV2YWx1YXRlVG8oJ291dHB1dDMu
aHRtbEZvci5sZW5ndGgnLCAyKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnb3V0cHV0My5odG1s
Rm9yWzBdJywgJ2Zvci10YXJnZXQxJyk7CiBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ291dHB1dDMu
aHRtbEZvclsxXScsICdmb3ItdGFyZ2V0MicpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdvdXRw
dXQzLmh0bWxGb3IudmFsdWUnLCAnIGZvci10YXJnZXQxIGZvci10YXJnZXQyICcpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdvdXRwdXQzLmh0bWxGb3IudmFsdWUnLCAnZm9yLXRhcmdldDEgZm9y
LXRhcmdldDInKTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvc2NyaXB0LXRlc3RzL2RvbS1zZXR0YWJsZS10
b2tlbi1saXN0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTE91dHB1dEVsZW1lbnQvc2Ny
aXB0LXRlc3RzL2RvbS1zZXR0YWJsZS10b2tlbi1saXN0LmpzCmluZGV4IDVjZjA0MzljNmIwMThh
ZjlkMWIxZTNiYTdmMmZjMmYwYmIxNWYxZjUuLjQ0ZGM2NzgzODgxMDdjMTQ2MWFkZWFlMDdmMGY0
NDAxNzU3NDgyZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxPdXRwdXRF
bGVtZW50L3NjcmlwdC10ZXN0cy9kb20tc2V0dGFibGUtdG9rZW4tbGlzdC5qcworKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MT3V0cHV0RWxlbWVudC9zY3JpcHQtdGVzdHMvZG9tLXNldHRh
YmxlLXRva2VuLWxpc3QuanMKQEAgLTI5LDcgKzI5LDcgQEAgc2hvdWxkRXZhbHVhdGVUbygnZWxl
bWVudC5odG1sRm9yLmxlbmd0aCcsIDEpOwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rl
c3QvaHRtbC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMDMuaHRtCiBjcmVh
dGVFbGVtZW50KCd4IHgnKTsKLXNob3VsZEV2YWx1YXRlVG8oJ2VsZW1lbnQuaHRtbEZvci5sZW5n
dGgnLCAyKTsKK3Nob3VsZEV2YWx1YXRlVG8oJ2VsZW1lbnQuaHRtbEZvci5sZW5ndGgnLCAxKTsK
IAogLy8gaHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9N
VG9rZW5MaXN0L2dldHRpbmcvMDA0Lmh0bQogY3JlYXRlRWxlbWVudCgneCB5Jyk7CkBAIC00OCw3
ICs0OCw3IEBAIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yLnRvU3RyaW5n
KCknLCAneCcpOwogLy8gaHR0cDovL3NpbW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxl
Y3RpbmcvRE9NVG9rZW5MaXN0L2dldHRpbmcvMDA3Lmh0bQogY3JlYXRlRWxlbWVudCgneCAgeCcp
OwogZWxlbWVudC5odG1sRm9yLmFkZCgneCcpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVt
ZW50Lmh0bWxGb3IudG9TdHJpbmcoKScsICd4ICB4Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2VsZW1lbnQuaHRtbEZvci50b1N0cmluZygpJywgJ3gnKTsKIAogLy8gaHR0cDovL3NpbW9uLmh0
bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9NVG9rZW5MaXN0L2dldHRpbmcvMDA4
Lmh0bQogY3JlYXRlRWxlbWVudCgneScpOwpAQCAtNjgsNyArNjgsNyBAQCBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvci50b1N0cmluZygpJywgJycpOwogLy8gaHR0cDovL3Np
bW9uLmh0bWw1Lm9yZy90ZXN0L2h0bWwvZG9tL3JlZmxlY3RpbmcvRE9NVG9rZW5MaXN0L2dldHRp
bmcvMDExLmh0bQogY3JlYXRlRWxlbWVudCgnIHkgeCAgeSAnKTsKIGVsZW1lbnQuaHRtbEZvci5y
ZW1vdmUoJ3gnKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9yLnRvU3Ry
aW5nKCknLCAnIHkgeSAnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5odG1sRm9y
LnRvU3RyaW5nKCknLCAneScpOwogCiAvLyBodHRwOi8vc2ltb24uaHRtbDUub3JnL3Rlc3QvaHRt
bC9kb20vcmVmbGVjdGluZy9ET01Ub2tlbkxpc3QvZ2V0dGluZy8wMTIuaHRtCiBjcmVhdGVFbGVt
ZW50KCcgeCB5ICB4ICcpOwpAQCAtMTAxLDExICsxMDEsMTEgQEAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdlbGVtZW50Lmh0bWxGb3IudG9TdHJpbmcoKScsICd4IHknKTsKIAogY3JlYXRlRWxlbWVu
dCgneFx0Jyk7CiBlbGVtZW50Lmh0bWxGb3IuYWRkKCd5Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2VsZW1lbnQuaHRtbEZvci50b1N0cmluZygpJywgJ3hcdHknKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCknLCAneCB5Jyk7CiAKIGNyZWF0ZUVs
ZW1lbnQoJyAnKTsKIGVsZW1lbnQuaHRtbEZvci5hZGQoJ3knKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygnZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCknLCAnIHknKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnZWxlbWVudC5odG1sRm9yLnRvU3RyaW5nKCknLCAneScpOwogCiAKIGRlYnVnKCct
IFRlc3QgaW52YWxpZCB0b2tlbnMnKTsKQEAgLTE4Miw4ICsxODIsOCBAQCBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvclswXScsICd4Jyk7CiBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2VsZW1lbnQuaHRtbEZvci5pdGVtKDApJywgJ3gnKTsKIAogY3JlYXRlRWxlbWVudCgneCB4
Jyk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvclsxXScsICd4Jyk7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvci5pdGVtKDEpJywgJ3gnKTsKK3No
b3VsZEJlVW5kZWZpbmVkKCdlbGVtZW50Lmh0bWxGb3JbMV0nKTsKK3Nob3VsZEJlTnVsbCgnZWxl
bWVudC5odG1sRm9yLml0ZW0oMSknKTsKIAogY3JlYXRlRWxlbWVudCgneCB5Jyk7CiBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQuaHRtbEZvclsxXScsICd5Jyk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9yZWwtbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9yZWwtbGlzdC1leHBlY3RlZC50eHQKaW5kZXggZDEwZTkwNzAyZjMzYzk1NTdkNjU3
ZGJkMzFkODA2YzRiYjM2MGM3NS4uNTZmMjYzYWE4YzllNDcwYzEzMDI2NGMzNDA4MWEwNjUwZWZj
MmM0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVsLWxpc3QtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlbC1saXN0LWV4cGVjdGVkLnR4dApAQCAt
MjYsNyArMjYsNyBAQCBQQVNTIGVsZW1lbnQucmVsTGlzdC5jb250YWlucygib3JhbmdlIikgaXMg
ZmFsc2UKIFBBU1MgU3RyaW5nKGVsZW1lbnQucmVsTGlzdCkgaXMgIngiCiBQQVNTIGVsZW1lbnQu
cmVsTGlzdC5sZW5ndGggaXMgMAogUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDEKLVBB
U1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAyCitQQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5n
dGggaXMgMQogUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDIKIFBBU1MgZWxlbWVudC5y
ZWwgaXMgIngiCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ4IgpAQCAtMzQsNyArMzQsNyBAQCBQQVNT
IGVsZW1lbnQucmVsIGlzICJ4ICB4IgogUEFTUyBlbGVtZW50LnJlbCBpcyAieSB4IgogUEFTUyBl
bGVtZW50LnJlbCBpcyAiIgogUEFTUyBlbGVtZW50LnJlbCBpcyAiIgotUEFTUyBlbGVtZW50LnJl
bCBpcyAiIHkgeSAiCitQQVNTIGVsZW1lbnQucmVsIGlzICJ5IgogUEFTUyBlbGVtZW50LnJlbCBp
cyAieSIKIEVuc3VyZSB0aGF0IHdlIGNhbiBoYW5kbGUgZW1wdHkgcmVsIGNvcnJlY3RseQogUEFT
UyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCd4JykgaXMgdHJ1ZQpAQCAtNTgsOCArNTgsOCBAQCBQ
QVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUoIiIsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogU3ludGF4RXJyb3I6IERPTSBFeAogUEFTUyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCJ4IHki
LCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkQ2hhcmFjdGVyRXJyb3I6IERP
TSBFeGNlcHRpb24gNS4KIFRlc3RpbmcgYWRkIGluIHByZXNlbmNlIG9mIHRyYWlsaW5nIHdoaXRl
IHNwYWNlcy4KIFBBU1MgZWxlbWVudC5yZWwgaXMgInggeSIKLVBBU1MgZWxlbWVudC5yZWwgaXMg
InhcdHkiCi1QQVNTIGVsZW1lbnQucmVsIGlzICIgeSIKK1BBU1MgZWxlbWVudC5yZWwgaXMgIngg
eSIKK1BBU1MgZWxlbWVudC5yZWwgaXMgInkiCiBUZXN0IGludmFsaWQgdG9rZW5zCiBQQVNTIGVs
ZW1lbnQucmVsTGlzdC5jb250YWlucygiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhF
cnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgZWxlbWVudC5yZWxMaXN0LmNvbnRhaW5zKCJ4
IHkiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRDaGFyYWN0ZXJFcnJvcjogRE9NIEV4
Y2VwdGlvbiA1LgpAQCAtNzEsOCArNzEsOCBAQCBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUo
IiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRpbwogSW5k
ZXhpbmcKIFBBU1MgZWxlbWVudC5yZWxMaXN0WzBdIGlzICJ4IgogUEFTUyBlbGVtZW50LnJlbExp
c3QuaXRlbSgwKSBpcyAieCIKLVBBU1MgZWxlbWVudC5yZWxMaXN0WzFdIGlzICJ4IgotUEFTUyBl
bGVtZW50LnJlbExpc3QuaXRlbSgxKSBpcyAieCIKK1BBU1MgZWxlbWVudC5yZWxMaXN0WzFdIGlz
IHVuZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSkgaXMgbnVsbAogUEFTUyBl
bGVtZW50LnJlbExpc3RbMV0gaXMgInkiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDEpIGlz
ICJ5IgogUEFTUyBlbGVtZW50LnJlbExpc3RbMF0gaXMgdW5kZWZpbmVkLgpAQCAtMTE1LDggKzEx
NSw4IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LmFkZCgiYSIsIHt0b1N0cmluZzogZnVuY3Rpb24o
KSB7IHRocm93IG5ldyBFcnJvcigidXNlciBlcnJvCiBQQVNTIGVsZW1lbnQucmVsIGlzICIiCiBQ
QVNTIGVsZW1lbnQucmVsTGlzdC5hZGQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1Mg
b2JzZXJ2ZXIudGFrZVJlY29yZHMoKS5sZW5ndGggaXMgMQotUEFTUyBlbGVtZW50LnJlbCBpcyAi
YiBkICAiCi1QQVNTIGVsZW1lbnQucmVsIGlzICJkICAiCitQQVNTIGVsZW1lbnQucmVsIGlzICJi
IGQiCitQQVNTIGVsZW1lbnQucmVsIGlzICJkIgogUEFTUyBlbGVtZW50LnJlbCBpcyAiYSBiIGMi
CiBQQVNTIGVsZW1lbnQucmVsTGlzdC5yZW1vdmUoImEiLCAiYiIsICIiKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW9uIDEyLgogUEFTUyBlbGVtZW50LnJl
bCBpcyAiYSBiIgpAQCAtMTQ5LDcgKzE0OSw3IEBAIFBBU1MgZWxlbWVudC5yZWxMaXN0LmNvbnRh
aW5zKCJvcmFuZ2UiKSBpcyBmYWxzZQogUEFTUyBTdHJpbmcoZWxlbWVudC5yZWxMaXN0KSBpcyAi
eCIKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAwCiBQQVNTIGVsZW1lbnQucmVsTGlz
dC5sZW5ndGggaXMgMQotUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDIKK1BBU1MgZWxl
bWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAxCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5sZW5ndGggaXMg
MgogUEFTUyBlbGVtZW50LnJlbCBpcyAieCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgIngiCkBAIC0x
NTcsNyArMTU3LDcgQEAgUEFTUyBlbGVtZW50LnJlbCBpcyAieCAgeCIKIFBBU1MgZWxlbWVudC5y
ZWwgaXMgInkgeCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgIiIKIFBBU1MgZWxlbWVudC5yZWwgaXMg
IiIKLVBBU1MgZWxlbWVudC5yZWwgaXMgIiB5IHkgIgorUEFTUyBlbGVtZW50LnJlbCBpcyAieSIK
IFBBU1MgZWxlbWVudC5yZWwgaXMgInkiCiBFbnN1cmUgdGhhdCB3ZSBjYW4gaGFuZGxlIGVtcHR5
IHJlbCBjb3JyZWN0bHkKIFBBU1MgZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgneCcpIGlzIHRydWUK
QEAgLTE4MSw4ICsxODEsOCBAQCBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUoIiIsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeAogUEFTUyBlbGVtZW50
LnJlbExpc3QudG9nZ2xlKCJ4IHkiLCBmYWxzZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZh
bGlkQ2hhcmFjdGVyRXJyb3I6IERPTSBFeGNlcHRpb24gNS4KIFRlc3RpbmcgYWRkIGluIHByZXNl
bmNlIG9mIHRyYWlsaW5nIHdoaXRlIHNwYWNlcy4KIFBBU1MgZWxlbWVudC5yZWwgaXMgInggeSIK
LVBBU1MgZWxlbWVudC5yZWwgaXMgInhcdHkiCi1QQVNTIGVsZW1lbnQucmVsIGlzICIgeSIKK1BB
U1MgZWxlbWVudC5yZWwgaXMgInggeSIKK1BBU1MgZWxlbWVudC5yZWwgaXMgInkiCiBUZXN0IGlu
dmFsaWQgdG9rZW5zCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5jb250YWlucygiIikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBTeW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgZWxlbWVu
dC5yZWxMaXN0LmNvbnRhaW5zKCJ4IHkiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRD
aGFyYWN0ZXJFcnJvcjogRE9NIEV4Y2VwdGlvbiA1LgpAQCAtMTk0LDggKzE5NCw4IEBAIFBBU1Mg
ZWxlbWVudC5yZWxMaXN0LnRvZ2dsZSgiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhF
cnJvcjogRE9NIEV4Y2VwdGlvCiBJbmRleGluZwogUEFTUyBlbGVtZW50LnJlbExpc3RbMF0gaXMg
IngiCiBQQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDApIGlzICJ4IgotUEFTUyBlbGVtZW50LnJl
bExpc3RbMV0gaXMgIngiCi1QQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDEpIGlzICJ4IgorUEFT
UyBlbGVtZW50LnJlbExpc3RbMV0gaXMgdW5kZWZpbmVkLgorUEFTUyBlbGVtZW50LnJlbExpc3Qu
aXRlbSgxKSBpcyBudWxsCiBQQVNTIGVsZW1lbnQucmVsTGlzdFsxXSBpcyAieSIKIFBBU1MgZWxl
bWVudC5yZWxMaXN0Lml0ZW0oMSkgaXMgInkiCiBQQVNTIGVsZW1lbnQucmVsTGlzdFswXSBpcyB1
bmRlZmluZWQuCkBAIC0yMzgsOCArMjM4LDggQEAgUEFTUyBlbGVtZW50LnJlbExpc3QuYWRkKCJh
Iiwge3RvU3RyaW5nOiBmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCJ1c2VyIGVycm8KIFBB
U1MgZWxlbWVudC5yZWwgaXMgIiIKIFBBU1MgZWxlbWVudC5yZWxMaXN0LmFkZCgpIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgogUEFTUyBvYnNlcnZlci50YWtlUmVjb3JkcygpLmxlbmd0aCBpcyAx
Ci1QQVNTIGVsZW1lbnQucmVsIGlzICJiIGQgICIKLVBBU1MgZWxlbWVudC5yZWwgaXMgImQgICIK
K1BBU1MgZWxlbWVudC5yZWwgaXMgImIgZCIKK1BBU1MgZWxlbWVudC5yZWwgaXMgImQiCiBQQVNT
IGVsZW1lbnQucmVsIGlzICJhIGIgYyIKIFBBU1MgZWxlbWVudC5yZWxMaXN0LnJlbW92ZSgiYSIs
ICJiIiwgIiIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU3ludGF4RXJyb3I6IERPTSBFeGNlcHRp
b24gMTIuCiBQQVNTIGVsZW1lbnQucmVsIGlzICJhIGIiCkBAIC0yNzIsNyArMjcyLDcgQEAgUEFT
UyBlbGVtZW50LnJlbExpc3QuY29udGFpbnMoIm9yYW5nZSIpIGlzIGZhbHNlCiBQQVNTIFN0cmlu
ZyhlbGVtZW50LnJlbExpc3QpIGlzICJ4IgogUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlz
IDAKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAxCi1QQVNTIGVsZW1lbnQucmVsTGlz
dC5sZW5ndGggaXMgMgorUEFTUyBlbGVtZW50LnJlbExpc3QubGVuZ3RoIGlzIDEKIFBBU1MgZWxl
bWVudC5yZWxMaXN0Lmxlbmd0aCBpcyAyCiBQQVNTIGVsZW1lbnQucmVsIGlzICJ4IgogUEFTUyBl
bGVtZW50LnJlbCBpcyAieCIKQEAgLTI4MCw3ICsyODAsNyBAQCBQQVNTIGVsZW1lbnQucmVsIGlz
ICJ4ICB4IgogUEFTUyBlbGVtZW50LnJlbCBpcyAieSB4IgogUEFTUyBlbGVtZW50LnJlbCBpcyAi
IgogUEFTUyBlbGVtZW50LnJlbCBpcyAiIgotUEFTUyBlbGVtZW50LnJlbCBpcyAiIHkgeSAiCitQ
QVNTIGVsZW1lbnQucmVsIGlzICJ5IgogUEFTUyBlbGVtZW50LnJlbCBpcyAieSIKIEVuc3VyZSB0
aGF0IHdlIGNhbiBoYW5kbGUgZW1wdHkgcmVsIGNvcnJlY3RseQogUEFTUyBlbGVtZW50LnJlbExp
c3QudG9nZ2xlKCd4JykgaXMgdHJ1ZQpAQCAtMzA0LDggKzMwNCw4IEBAIFBBU1MgZWxlbWVudC5y
ZWxMaXN0LnRvZ2dsZSgiIiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTeW50YXhFcnJv
cjogRE9NIEV4CiBQQVNTIGVsZW1lbnQucmVsTGlzdC50b2dnbGUoInggeSIsIGZhbHNlKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRDaGFyYWN0ZXJFcnJvcjogRE9NIEV4Y2VwdGlvbiA1
LgogVGVzdGluZyBhZGQgaW4gcHJlc2VuY2Ugb2YgdHJhaWxpbmcgd2hpdGUgc3BhY2VzLgogUEFT
UyBlbGVtZW50LnJlbCBpcyAieCB5IgotUEFTUyBlbGVtZW50LnJlbCBpcyAieFx0eSIKLVBBU1Mg
ZWxlbWVudC5yZWwgaXMgIiB5IgorUEFTUyBlbGVtZW50LnJlbCBpcyAieCB5IgorUEFTUyBlbGVt
ZW50LnJlbCBpcyAieSIKIFRlc3QgaW52YWxpZCB0b2tlbnMKIFBBU1MgZWxlbWVudC5yZWxMaXN0
LmNvbnRhaW5zKCIiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhj
ZXB0aW9uIDEyLgogUEFTUyBlbGVtZW50LnJlbExpc3QuY29udGFpbnMoInggeSIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSW52YWxpZENoYXJhY3RlckVycm9yOiBET00gRXhjZXB0aW9uIDUuCkBA
IC0zMTcsOCArMzE3LDggQEAgUEFTUyBlbGVtZW50LnJlbExpc3QudG9nZ2xlKCIiKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IFN5bnRheEVycm9yOiBET00gRXhjZXB0aW8KIEluZGV4aW5nCiBQQVNT
IGVsZW1lbnQucmVsTGlzdFswXSBpcyAieCIKIFBBU1MgZWxlbWVudC5yZWxMaXN0Lml0ZW0oMCkg
aXMgIngiCi1QQVNTIGVsZW1lbnQucmVsTGlzdFsxXSBpcyAieCIKLVBBU1MgZWxlbWVudC5yZWxM
aXN0Lml0ZW0oMSkgaXMgIngiCitQQVNTIGVsZW1lbnQucmVsTGlzdFsxXSBpcyB1bmRlZmluZWQu
CitQQVNTIGVsZW1lbnQucmVsTGlzdC5pdGVtKDEpIGlzIG51bGwKIFBBU1MgZWxlbWVudC5yZWxM
aXN0WzFdIGlzICJ5IgogUEFTUyBlbGVtZW50LnJlbExpc3QuaXRlbSgxKSBpcyAieSIKIFBBU1Mg
ZWxlbWVudC5yZWxMaXN0WzBdIGlzIHVuZGVmaW5lZC4KQEAgLTM2MSw4ICszNjEsOCBAQCBQQVNT
IGVsZW1lbnQucmVsTGlzdC5hZGQoImEiLCB7dG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyB0aHJvdyBu
ZXcgRXJyb3IoInVzZXIgZXJybwogUEFTUyBlbGVtZW50LnJlbCBpcyAiIgogUEFTUyBlbGVtZW50
LnJlbExpc3QuYWRkKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIG9ic2VydmVyLnRh
a2VSZWNvcmRzKCkubGVuZ3RoIGlzIDEKLVBBU1MgZWxlbWVudC5yZWwgaXMgImIgZCAgIgotUEFT
UyBlbGVtZW50LnJlbCBpcyAiZCAgIgorUEFTUyBlbGVtZW50LnJlbCBpcyAiYiBkIgorUEFTUyBl
bGVtZW50LnJlbCBpcyAiZCIKIFBBU1MgZWxlbWVudC5yZWwgaXMgImEgYiBjIgogUEFTUyBlbGVt
ZW50LnJlbExpc3QucmVtb3ZlKCJhIiwgImIiLCAiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBT
eW50YXhFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMi4KIFBBU1MgZWxlbWVudC5yZWwgaXMgImEgYiIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlbC1saXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZWwtbGlzdC5odG1sCmluZGV4IGNiYzJjNGE1NDg2NWUxNDI4YTE5NWNh
NTQ2MzVmNDhiYzg5NjI2ZDAuLjA5M2FhYWEzZWJkZjkzMGM5MzhiZGRmN2FhOTZlNDdkMmQ0NDIw
ZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlbC1saXN0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcmVsLWxpc3QuaHRtbApAQCAtNjIsNyArNjIsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBzaG91bGRFdmFsdWF0ZVRvKCdlbGVtZW50LnJlbExpc3QubGVuZ3Ro
JywgMSk7CiAKICAgICBjcmVhdGVFbGVtZW50KCd4IHgnKTsKLSAgICBzaG91bGRFdmFsdWF0ZVRv
KCdlbGVtZW50LnJlbExpc3QubGVuZ3RoJywgMik7CisgICAgc2hvdWxkRXZhbHVhdGVUbygnZWxl
bWVudC5yZWxMaXN0Lmxlbmd0aCcsIDEpOwogCiAgICAgY3JlYXRlRWxlbWVudCgneCB5Jyk7CiAg
ICAgc2hvdWxkRXZhbHVhdGVUbygnZWxlbWVudC5yZWxMaXN0Lmxlbmd0aCcsIDIpOwpAQCAtOTMs
NyArOTMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGNyZWF0ZUVsZW1lbnQoJyB5IHggIHkg
Jyk7CiAgICAgZWxlbWVudC5yZWxMaXN0LnJlbW92ZSgneCcpOwotICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnZWxlbWVudC5yZWwnLCAnIHkgeSAnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2VsZW1lbnQucmVsJywgJ3knKTsKIAogICAgIGNyZWF0ZUVsZW1lbnQoJyB4IHkgIHggJyk7
CiAgICAgZWxlbWVudC5yZWxMaXN0LnJlbW92ZSgneCcpOwpAQCAtMTM0LDExICsxMzQsMTEgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAKICAgICBjcmVhdGVFbGVtZW50KCd4XHQnKTsKICAgICBlbGVtZW50
LnJlbExpc3QuYWRkKCd5Jyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJl
bCcsICd4XHR5Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbCcsICd4
IHknKTsKIAogICAgIGNyZWF0ZUVsZW1lbnQoJyAnKTsKICAgICBlbGVtZW50LnJlbExpc3QuYWRk
KCd5Jyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbCcsICcgeScpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwnLCAneScpOwogCiAgICAgZGVi
dWcoJ1Rlc3QgaW52YWxpZCB0b2tlbnMnKTsKIApAQCAtMTY5LDggKzE2OSw4IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWxMaXN0Lml0ZW0o
MCknLCAneCcpOwogCiAgICAgY3JlYXRlRWxlbWVudCgneCB4Jyk7Ci0gICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdlbGVtZW50LnJlbExpc3RbMV0nLCAneCcpOwotICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnZWxlbWVudC5yZWxMaXN0Lml0ZW0oMSknLCAneCcpOworICAgIHNob3VsZEJlVW5k
ZWZpbmVkKCdlbGVtZW50LnJlbExpc3RbMV0nKTsKKyAgICBzaG91bGRCZU51bGwoJ2VsZW1lbnQu
cmVsTGlzdC5pdGVtKDEpJyk7CiAKICAgICBjcmVhdGVFbGVtZW50KCd4IHknKTsKICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVsTGlzdFsxXScsICd5Jyk7CkBAIC0yNjAsMTAg
KzI2MCwxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGNyZWF0ZUVsZW1lbnQoJ2EgYiBjIGQg
ICcpOwogICAgIGVsZW1lbnQucmVsTGlzdC5yZW1vdmUoJ2EnLCAnYycpOwotICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnZWxlbWVudC5yZWwnLCAnYiBkICAnKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2VsZW1lbnQucmVsJywgJ2IgZCcpOwogCiAgICAgZWxlbWVudC5yZWxMaXN0LnJl
bW92ZSgnYicsICdiJyk7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdlbGVtZW50LnJlbCcs
ICdkICAnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2VsZW1lbnQucmVsJywgJ2QnKTsK
IAogICAgIGNyZWF0ZUVsZW1lbnQoJ2EgYiBjIG51bGwgZCB1bmRlZmluZWQgMCBmYWxzZScpOwog
ICAgIGVsZW1lbnQucmVsTGlzdC5yZW1vdmUobnVsbCwge3RvU3RyaW5nOiBmdW5jdGlvbigpIHsg
cmV0dXJuICdkJyB9fSwgdW5kZWZpbmVkLCAwLCBmYWxzZSk7CkBAIC0zMDAsNCArMzAwLDQgQEAg
dGVzdCgpOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbGlzdHMvRE9NVG9rZW5MaXN0LXN0cmluZ2lmaWVyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2xpc3RzL0RPTVRva2VuTGlzdC1zdHJpbmdpZmllci1leHBlY3RlZC50eHQKaW5kZXggMmU1NWY2
Njc3NDU1YzI5ZjI4MjEwZjg1NjUyMjE5YTgwNzgzZTJjMC4uOGIxZDVjMjI3OThhNWU0Y2NhNjM1
NWYyMmRlZDU5NDNjZGNiNTVmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbGlzdHMvRE9NVG9rZW5MaXN0LXN0cmluZ2lmaWVyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9saXN0cy9ET01Ub2tlbkxpc3Qtc3RyaW5naWZpZXItZXhwZWN0ZWQudHh0CkBAIC0x
LDMgKzEsMyBAQAogCi1GQUlMIERPTVRva2VuTGlzdCBzdHJpbmdpZmllciBhc3NlcnRfZXF1YWxz
OiBTdHJpbmcoY2xhc3NMaXN0KSBzaG91bGQgY29tcHJlc3Mgd2hpdGVzcGFjZSBleHBlY3RlZCAi
YSBiIiBidXQgZ290ICIgICBhICBhIGIiCitQQVNTIERPTVRva2VuTGlzdCBzdHJpbmdpZmllciAK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvRWxlbWVudC1jbGFzc2xpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1jbGFzc2xp
c3QtZXhwZWN0ZWQudHh0CmluZGV4IDdhZjhlOTA5YWQzN2JlMmRiZjhkZTg1N2ZmNTlhOGYwY2Iw
ZGYwMzEuLjFkYWRjN2ZkNzU2Yjc0NzYyZTY1NGY1N2QwOTZjZmE0YzZmMTQ3NTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L0VsZW1lbnQtY2xhc3NsaXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWNsYXNzbGlzdC1leHBl
Y3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIFBBU1MgRE9NVG9rZW5MaXN0IHNob3VsZCBiZSBleHBv
c2VkIGZvciBwcm90b3R5cGluZwogUEFTUyBwcm90b3R5cGluZyBET01Ub2tlbkxpc3Qgc2hvdWxk
IHdvcmsgCiBQQVNTIEVsZW1lbnQuY2xhc3NMaXN0IG11c3QgaW1wbGVtZW50IERPTVRva2VuTGlz
dCAKIFBBU1MgQ1NTIC5mb28gc2VsZWN0b3JzIG11c3Qgbm90IG1hdGNoIGVsZW1lbnRzIHdpdGhv
dXQgYW55IGNsYXNzIAotRkFJTCBjbGFzc0xpc3QgbXVzdCBiZSBjb3JyZWN0IGZvciBhbiBlbGVt
ZW50IHRoYXQgaGFzIGNsYXNzZXMgYXNzZXJ0X2VxdWFsczogZHVwbGljYXRlcyBpbiBpbml0aWFs
IHN0cmluZyBzaG91bGQgYmUgcmVtb3ZlZCBwZXIgaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3Jn
LyNjb25jZXB0LWNsYXNzIGV4cGVjdGVkIDEgYnV0IGdvdCAyCitQQVNTIGNsYXNzTGlzdCBtdXN0
IGJlIGNvcnJlY3QgZm9yIGFuIGVsZW1lbnQgdGhhdCBoYXMgY2xhc3NlcyAKIFBBU1MgY2xhc3NM
aXN0Lmxlbmd0aCBtdXN0IGJlIDAgZm9yIGFuIGVsZW1lbnQgdGhhdCBoYXMgbm8gY2xhc3NlcyAK
IFBBU1MgY2xhc3NMaXN0IG11c3Qgbm90IGNvbnRhaW4gYW4gdW5kZWZpbmVkIGNsYXNzIAogUEFT
UyBjbGFzc0xpc3QuaXRlbSgpIG11c3QgcmV0dXJuIG51bGwgZm9yIG91dC1vZi1yYW5nZSBpbmRl
eCAKQEAgLTEzLDcgKzEzLDcgQEAgUEFTUyBjbGFzc0xpc3QuaXRlbSgpIG11c3QgcmV0dXJuIG51
bGwgZm9yIG5lZ2F0aXZlIGluZGV4CiBQQVNTIGNsYXNzTGlzdFtpbmRleF0gbXVzdCBiZSB1bmRl
ZmluZWQgZm9yIG91dC1vZi1yYW5nZSBpbmRleCAKIFBBU1MgY2xhc3NMaXN0W2luZGV4XSBtdXN0
IGJlIHVuZGVmaW5lZCBmb3IgbmVnYXRpdmUgaW5kZXggCiBQQVNTIGNsYXNzTmFtZSBzaG91bGQg
Y29udGFpbiBpbml0aWFsIG1hcmt1cCB3aGl0ZXNwYWNlIAotRkFJTCBlbXB0eSBjbGFzc0xpc3Qg
c2hvdWxkIHJldHVybiB0aGUgZW1wdHkgc3RyaW5nIHNpbmNlIHRoZSBvcmRlcmVkIHNldCBwYXJz
ZXIgc2tpcCB0aGUgd2hpdGVzcGFjZXMgYXNzZXJ0X2VxdWFsczogaW1wbGljaXQgZXhwZWN0ZWQg
IiIgYnV0IGdvdCAiICIKK1BBU1MgZW1wdHkgY2xhc3NMaXN0IHNob3VsZCByZXR1cm4gdGhlIGVt
cHR5IHN0cmluZyBzaW5jZSB0aGUgb3JkZXJlZCBzZXQgcGFyc2VyIHNraXAgdGhlIHdoaXRlc3Bh
Y2VzIAogUEFTUyAuY29udGFpbnMoZW1wdHlfc3RyaW5nKSBtdXN0IHRocm93IGEgU1lOVEFYX0VS
UiAKIFBBU1MgLmFkZChlbXB0eV9zdHJpbmcpIG11c3QgdGhyb3cgYSBTWU5UQVhfRVJSIAogUEFT
UyAucmVtb3ZlKGVtcHR5X3N0cmluZykgbXVzdCB0aHJvdyBhIFNZTlRBWF9FUlIgCkBAIC00Mywx
MCArNDMsMTAgQEAgUEFTUyBjbGFzc0xpc3QucmVtb3ZlIG11c3QgcmVtb3ZlIGV4aXN0aW5nIHRv
a2VucwogUEFTUyBjbGFzc0xpc3QucmVtb3ZlIG11c3Qgbm90IGJyZWFrIGNhc2Utc2Vuc2l0aXZl
IENTUyBzZWxlY3RvciBtYXRjaGluZyAKIFBBU1MgY2xhc3NMaXN0LnJlbW92ZSBtdXN0IHJlbW92
ZSBkdXBsaWNhdGVkIHRva2VucyAKIFBBU1MgY2xhc3NMaXN0LnJlbW92ZSBtdXN0IGNvbGxhcHNl
IHdoaXRlc3BhY2UgYXJvdW5kIHJlbW92ZWQgdG9rZW5zIAotRkFJTCBjbGFzc0xpc3QucmVtb3Zl
IG11c3QgY29sbGFwc2Ugd2hpdGVzcGFjZXMgYXJvdW5kIGVhY2ggdG9rZW4gYXNzZXJ0X2VxdWFs
czogaW1wbGljaXQgZXhwZWN0ZWQgInRva2VuMSIgYnV0IGdvdCAiIHRva2VuMSIKLUZBSUwgY2xh
c3NMaXN0LnJlbW92ZSBtdXN0IGNvbGxhcHNlIHdoaXRlc3BhY2VzIGFyb3VuZCBlYWNoIHRva2Vu
IGFuZCByZW1vdmUgZHVwbGljYXRlcyBhc3NlcnRfZXF1YWxzOiBpbXBsaWNpdCBleHBlY3RlZCAi
dG9rZW4xIiBidXQgZ290ICIgIHRva2VuMSB0b2tlbjEgICIKK1BBU1MgY2xhc3NMaXN0LnJlbW92
ZSBtdXN0IGNvbGxhcHNlIHdoaXRlc3BhY2VzIGFyb3VuZCBlYWNoIHRva2VuIAorUEFTUyBjbGFz
c0xpc3QucmVtb3ZlIG11c3QgY29sbGFwc2Ugd2hpdGVzcGFjZXMgYXJvdW5kIGVhY2ggdG9rZW4g
YW5kIHJlbW92ZSBkdXBsaWNhdGVzIAogUEFTUyBjbGFzc0xpc3QucmVtb3ZlIG11c3QgY29sbGFw
c2Ugd2hpdGVzcGFjZSB3aGVuIHJlbW92aW5nIGR1cGxpY2F0ZSB0b2tlbnMgCi1GQUlMIGNsYXNz
TGlzdC5hZGQgbXVzdCBjb2xsYXBzZSB3aGl0ZXNwYWNlcyBhbmQgcmVtb3ZlIGR1cGxpY2F0ZXMg
d2hlbiBhZGRpbmcgYSB0b2tlbiB0aGF0IGFscmVhZHkgZXhpc3RzIGFzc2VydF9lcXVhbHM6IGlt
cGxpY2l0IGV4cGVjdGVkICJ0b2tlbjEiIGJ1dCBnb3QgIiAgdG9rZW4xICB0b2tlbjEgICIKK1BB
U1MgY2xhc3NMaXN0LmFkZCBtdXN0IGNvbGxhcHNlIHdoaXRlc3BhY2VzIGFuZCByZW1vdmUgZHVw
bGljYXRlcyB3aGVuIGFkZGluZyBhIHRva2VuIHRoYXQgYWxyZWFkeSBleGlzdHMgCiBQQVNTIGNs
YXNzTGlzdC50b2dnbGUgbXVzdCB0b2dnbGUgdG9rZW5zIGNhc2Utc2Vuc2l0aXZlbHkgd2hlbiBh
ZGRpbmcgCiBQQVNTIGNsYXNzTGlzdC50b2dnbGUgbXVzdCBub3QgYnJlYWsgY2FzZS1zZW5zaXRp
dmUgQ1NTIHNlbGVjdG9yIG1hdGNoaW5nIAogUEFTUyBjbGFzc0xpc3QudG9nZ2xlIG11c3QgYmUg
YWJsZSB0byByZW1vdmUgdG9rZW5zIApAQCAtNTcsMTAgKzU3LDEwIEBAIFBBU1MgY2xhc3NMaXN0
IG11c3Qgc3RyaW5naWZ5IHRvIGFuIGVtcHR5IHN0cmluZyB3aGVuIGFsbCBjbGFzc2VzIGhhdmUg
YmVlbiByZW1vCiBQQVNTIGNsYXNzTGlzdC5pdGVtKDApIG11c3QgcmV0dXJuIG51bGwgd2hlbiBh
bGwgY2xhc3NlcyBoYXZlIGJlZW4gcmVtb3ZlZCAKIFBBU1MgY2xhc3NMaXN0WzBdIG11c3QgYmUg
dW5kZWZpbmVkIHdoZW4gYWxsIGNsYXNzZXMgaGF2ZSBiZWVuIHJlbW92ZWQgCiBQQVNTIGNsYXNz
TGlzdC5hZGQgc2hvdWxkIHRyZWF0ICIgIiBhcyBhIHNwYWNlIAotRkFJTCBjbGFzc0xpc3QuYWRk
IHNob3VsZCB0cmVhdCBcdCBhcyBhIHNwYWNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJhIGIi
IGJ1dCBnb3QgImFcdGIiCi1GQUlMIGNsYXNzTGlzdC5hZGQgc2hvdWxkIHRyZWF0IFxyIGFzIGEg
c3BhY2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImEgYiIgYnV0IGdvdCAiYVxyYiIKLUZBSUwg
Y2xhc3NMaXN0LmFkZCBzaG91bGQgdHJlYXQgXG4gYXMgYSBzcGFjZSBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAiYSBiIiBidXQgZ290ICJhXG5iIgotRkFJTCBjbGFzc0xpc3QuYWRkIHNob3VsZCB0
cmVhdCBcZiBhcyBhIHNwYWNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJhIGIiIGJ1dCBnb3Qg
ImFcZmIiCitQQVNTIGNsYXNzTGlzdC5hZGQgc2hvdWxkIHRyZWF0IFx0IGFzIGEgc3BhY2UgCitQ
QVNTIGNsYXNzTGlzdC5hZGQgc2hvdWxkIHRyZWF0IFxyIGFzIGEgc3BhY2UgCitQQVNTIGNsYXNz
TGlzdC5hZGQgc2hvdWxkIHRyZWF0IFxuIGFzIGEgc3BhY2UgCitQQVNTIGNsYXNzTGlzdC5hZGQg
c2hvdWxkIHRyZWF0IFxmIGFzIGEgc3BhY2UgCiBQQVNTIGNsYXNzTGlzdC5sZW5ndGggbXVzdCBi
ZSByZWFkLW9ubHkgCiBQQVNTIGNsYXNzTGlzdCBtdXN0IGJlIHJlYWQtb25seSAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>