<?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>71050</bug_id>
          
          <creation_ts>2011-10-27 12:18:13 -0700</creation_ts>
          <short_desc>[Microdata] Support for properties attribute.</short_desc>
          <delta_ts>2012-03-06 22:16:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68609</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Arko Saha">arko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491811</commentid>
    <comment_count>0</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-27 12:18:13 -0700</bug_when>
    <thetext>1. Implement HTMLPropertiesCollection : A collection of elements that add name-value pairs to a particular item in the microdata model.
2. Support for HMTL5 Microdata properties attribute. The properties attribute returns an HTMLPropertiesCollection object with all the element&apos;s properties. Otherwise, an empty HTMLPropertiesCollection object.

Here is the spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#dom-properties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491825</commentid>
    <comment_count>1</comment_count>
      <attachid>112731</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-10-27 12:32:02 -0700</bug_when>
    <thetext>Created attachment 112731
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501729</commentid>
    <comment_count>2</comment_count>
      <attachid>114902</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-14 01:53:32 -0800</bug_when>
    <thetext>Created attachment 114902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501939</commentid>
    <comment_count>3</comment_count>
      <attachid>114902</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-14 08:39:20 -0800</bug_when>
    <thetext>Comment on attachment 114902
Patch

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

&gt; Source/WebCore/html/CollectionType.h:58
&gt; +        ItemProperties, // Microdata item properties in the document

Please match the above indent.

&gt; Source/WebCore/html/HTMLElement.h:144
&gt;      mutable RefPtr&lt;DOMSettableTokenList&gt; m_itemProp;
&gt;      mutable RefPtr&lt;DOMSettableTokenList&gt; m_itemRef;
&gt;      mutable RefPtr&lt;DOMSettableTokenList&gt; m_itemType;
&gt; +    mutable RefPtr&lt;HTMLPropertiesCollection&gt; m_properties;

How do all these members impact memory usage?  Should we put them in a RareData member?

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:74
&gt; +            pending.append(child);

Bad indent.

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:82
&gt; +        for (unsigned itrRef = 0; itrRef &lt; itemRef-&gt;length(); ++itrRef) {

itrRef =&gt; please use complete words in variable names.  Also, should this be a size_t?

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:83
&gt; +            AtomicString refId = itemRef-&gt;item(itrRef);

refId =&gt; please uses complete words in variable names.

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:85
&gt; +            if (Document* document = root-&gt;document()) {

Can this really be null?

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:119
&gt; +

Extra blank line.

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:123
&gt; +unsigned HTMLPropertiesCollection::calcLength() const

calcLength =&gt; please use complete works in function names.

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:160
&gt; +    for (unsigned i = 0; i &lt; m_properties.size(); ++i) {

unsigned =&gt; size_t

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:163
&gt; +        DOMSettableTokenList* itemProp = toHTMLElement(m_properties[i])-&gt;itemProp().get();

itemProp =&gt; please use complete words

&gt; Source/WebCore/html/HTMLPropertiesCollection.h:49
&gt; +private:

Blank line before visibility specifiers.

&gt; Source/WebCore/html/HTMLPropertiesCollection.idl:42
&gt; +        // TODO: override inherited namedItem()

TODO =&gt; FIXME</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501940</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-14 08:39:40 -0800</bug_when>
    <thetext>Those are all really minor comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502639</commentid>
    <comment_count>5</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-14 22:17:52 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 114902 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=114902&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/CollectionType.h:58
&gt; &gt; +        ItemProperties, // Microdata item properties in the document
&gt; 
&gt; Please match the above indent.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLElement.h:144
&gt; &gt;      mutable RefPtr&lt;DOMSettableTokenList&gt; m_itemProp;
&gt; &gt;      mutable RefPtr&lt;DOMSettableTokenList&gt; m_itemRef;
&gt; &gt;      mutable RefPtr&lt;DOMSettableTokenList&gt; m_itemType;
&gt; &gt; +    mutable RefPtr&lt;HTMLPropertiesCollection&gt; m_properties;
&gt; 
&gt; How do all these members impact memory usage?  Should we put them in a RareData member?

m_itemProp, m_itemRef, m_itemType are just HTMLElement(HTMLElement.idl) attributes related to microdata. We set the value of these members from HTMLElement::parseMappedAttribute() when attribute changed accordingly. So I think there is no need to cache.
Currently we don&apos;t cache properties collection i.e, m_properties. I thought of adding m_properties to RareData but the list of places where I should invalidate property collection cache was not clear to me so thought of handling it separately, may be in a seperate bug. I think we need to invalidate the cache when any attribute changes and when contents are appended/inserted/removed.

Please let me know your thoughts on the same.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:74
&gt; &gt; +            pending.append(child);
&gt; 
&gt; Bad indent.

Will correct.

&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:82
&gt; &gt; +        for (unsigned itrRef = 0; itrRef &lt; itemRef-&gt;length(); ++itrRef) {
&gt; 
&gt; itrRef =&gt; please use complete words in variable names.  Also, should this be a size_t?

Will do.

&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:83
&gt; &gt; +            AtomicString refId = itemRef-&gt;item(itrRef);
&gt; 
&gt; refId =&gt; please uses complete words in variable names.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:85
&gt; &gt; +            if (Document* document = root-&gt;document()) {
&gt; 
&gt; Can this really be null?

Ok, will modify.

&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:119
&gt; &gt; +
&gt; 
&gt; Extra blank line.

Will correct.

&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:123
&gt; &gt; +unsigned HTMLPropertiesCollection::calcLength() const
&gt; 
&gt; calcLength =&gt; please use complete works in function names.

Will do.

&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:160
&gt; &gt; +    for (unsigned i = 0; i &lt; m_properties.size(); ++i) {
&gt; 
&gt; unsigned =&gt; size_t

Will do.

&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:163
&gt; &gt; +        DOMSettableTokenList* itemProp = toHTMLElement(m_properties[i])-&gt;itemProp().get();
&gt; 
&gt; itemProp =&gt; please use complete words

Will modify.

&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.h:49
&gt; &gt; +private:
&gt; 
&gt; Blank line before visibility specifiers.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.idl:42
&gt; &gt; +        // TODO: override inherited namedItem()
&gt; 
&gt; TODO =&gt; FIXME
Will change.

Thanks for the review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502657</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-14 22:59:28 -0800</bug_when>
    <thetext>&gt; m_itemProp, m_itemRef, m_itemType are just HTMLElement(HTMLElement.idl) attributes related to microdata. We set the value of these members from HTMLElement::parseMappedAttribute() when attribute changed accordingly. So I think there is no need to cache.
&gt;
&gt; Currently we don&apos;t cache properties collection i.e, m_properties. I thought of adding m_properties to RareData but the list of places where I should invalidate property collection cache was not clear to me so thought of handling it separately, may be in a seperate bug. I think we need to invalidate the cache when any attribute changes and when contents are appended/inserted/removed.
&gt; 
&gt; Please let me know your thoughts on the same.

IMHO, we should move them all to RareData.  Almost no HTMLElements will need these fields and the pointers are just taking up memory on all HTMLElements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502667</commentid>
    <comment_count>7</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-14 23:14:33 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; m_itemProp, m_itemRef, m_itemType are just HTMLElement(HTMLElement.idl) attributes related to microdata. We set the value of these members from HTMLElement::parseMappedAttribute() when attribute changed accordingly. So I think there is no need to cache.
&gt; &gt;
&gt; &gt; Currently we don&apos;t cache properties collection i.e, m_properties. I thought of adding m_properties to RareData but the list of places where I should invalidate property collection cache was not clear to me so thought of handling it separately, may be in a seperate bug. I think we need to invalidate the cache when any attribute changes and when contents are appended/inserted/removed.
&gt; &gt; 
&gt; &gt; Please let me know your thoughts on the same.
&gt; 
&gt; IMHO, we should move them all to RareData.  Almost no HTMLElements will need these fields and the pointers are just taking up memory on all HTMLElements.

Ok. I will move them all to RareData and upload the patch. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502834</commentid>
    <comment_count>8</comment_count>
      <attachid>115149</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-15 05:34:06 -0800</bug_when>
    <thetext>Created attachment 115149
Updated patch

Incorporating review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504790</commentid>
    <comment_count>9</comment_count>
      <attachid>115575</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-17 06:10:23 -0800</bug_when>
    <thetext>Created attachment 115575
Updated patch

Updated patch with some minor changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507988</commentid>
    <comment_count>10</comment_count>
      <attachid>115575</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-23 01:03:32 -0800</bug_when>
    <thetext>Comment on attachment 115575
Updated patch

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

Below are a few minor nits.  It would be nice to include more tests, but it&apos;s always nicer to include more tests.  :)

&gt; Source/WebCore/dom/Node.h:86
&gt; +class DOMSettableTokenList;

This shouldn&apos;t be guarded by this macro because it&apos;s defined outside of ENABLE(MICRODATA)

&gt; Source/WebCore/dom/NodeRareData.h:29
&gt; +#include &quot;DOMSettableTokenList.h&quot;

Same here.

&gt; Source/WebCore/html/CollectionType.h:58
&gt; +        ItemProperties, // Microdata item properties in the document

Bad indent

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:33
&gt; +#if ENABLE(MICRODATA)

We usually have a blank line below this line.

&gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:69
&gt; +    Vector&lt;Node*&gt; memory, pending;

We usually don&apos;t use compound declarations.

&gt; Source/WebCore/html/HTMLPropertiesCollection.h:38
&gt; +namespace WebCore {

We usually have a blank line below this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508121</commentid>
    <comment_count>11</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-23 07:12:24 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 115575 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115575&amp;action=review
&gt; 
&gt; Below are a few minor nits.  It would be nice to include more tests, but it&apos;s always nicer to include more tests.  :)

Added more test cases.

&gt; &gt; Source/WebCore/dom/Node.h:86
&gt; &gt; +class DOMSettableTokenList;
&gt; 
&gt; This shouldn&apos;t be guarded by this macro because it&apos;s defined outside of ENABLE(MICRODATA)
&gt; 
&gt; &gt; Source/WebCore/dom/NodeRareData.h:29
&gt; &gt; +#include &quot;DOMSettableTokenList.h&quot;
&gt; 
&gt; Same here.

Done.

&gt; &gt; Source/WebCore/html/CollectionType.h:58
&gt; &gt; +        ItemProperties, // Microdata item properties in the document
&gt; 
&gt; Bad indent

Fixed.
 
&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:33
&gt; &gt; +#if ENABLE(MICRODATA)
&gt; 
&gt; We usually have a blank line below this line.

Done.

&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.cpp:69
&gt; &gt; +    Vector&lt;Node*&gt; memory, pending;
&gt; 
&gt; We usually don&apos;t use compound declarations.

Ok. Modified accordingly.
 
&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.h:38
&gt; &gt; +namespace WebCore {
&gt; 
&gt; We usually have a blank line below this line.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508122</commentid>
    <comment_count>12</comment_count>
      <attachid>116353</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-23 07:13:35 -0800</bug_when>
    <thetext>Created attachment 116353
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508409</commentid>
    <comment_count>13</comment_count>
      <attachid>116353</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-23 14:34:23 -0800</bug_when>
    <thetext>Comment on attachment 116353
Updated patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508428</commentid>
    <comment_count>14</comment_count>
      <attachid>116353</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-23 14:51:11 -0800</bug_when>
    <thetext>Comment on attachment 116353
Updated patch

Rejecting attachment 116353 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref-expected.txt
patching file LayoutTests/fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html
patching file LayoutTests/fast/dom/MicroData/properties-collection-test-expected.txt
patching file LayoutTests/fast/dom/MicroData/properties-collection-test.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/10647024</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508632</commentid>
    <comment_count>15</comment_count>
      <attachid>116480</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-23 22:48:46 -0800</bug_when>
    <thetext>Created attachment 116480
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508725</commentid>
    <comment_count>16</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2011-11-24 05:04:20 -0800</bug_when>
    <thetext>Hi Adam Barth, Can you please r+ &amp; cq+ this updated patch? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508856</commentid>
    <comment_count>17</comment_count>
      <attachid>116480</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-24 12:03:17 -0800</bug_when>
    <thetext>Comment on attachment 116480
Updated patch

Clearing flags on attachment: 116480

Committed r101144: &lt;http://trac.webkit.org/changeset/101144&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508857</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-24 12:03:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572067</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-06 12:32:17 -0800</bug_when>
    <thetext>HTMLPropertiesCollection is implemented very poorly :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572111</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-06 13:36:25 -0800</bug_when>
    <thetext>&gt; HTMLPropertiesCollection is implemented very poorly :(

Is there something specific we should change?  Should we revert this patch and try again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572114</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-06 13:37:51 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; HTMLPropertiesCollection is implemented very poorly :(
&gt; 
&gt; Is there something specific we should change?  Should we revert this patch and try again?

length, item, etc... are not using the cache at all. It&apos;s re-computing it every time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572529</commentid>
    <comment_count>22</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-03-06 22:08:56 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; &gt; HTMLPropertiesCollection is implemented very poorly :(
&gt; &gt; 
&gt; &gt; Is there something specific we should change?  Should we revert this patch and try again?
&gt; 
&gt; length, item, etc... are not using the cache at all. It&apos;s re-computing it every time.

Currently item, length does not use cache, its recomputing item, length every time. I have a thought of optimize the HTMLPropertiesCollection in a new patch. I will log a new bug and optimizing the HTMLPropertiesCollection. so that item, length will cache. Any other stuff you think needs improvement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572534</commentid>
    <comment_count>23</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-03-06 22:16:20 -0800</bug_when>
    <thetext>(In reply to comment #22)

&gt; Currently item, length does not use cache, its recomputing item, length every time. I have a thought of optimize the HTMLPropertiesCollection in a new patch. I will log a new bug and optimizing the HTMLPropertiesCollection. so that item, length will cache. Any other stuff you think needs improvement?

Logged a new bug to implement caching mechanism for HTMLPropertiesCollection : https://bugs.webkit.org/show_bug.cgi?id=80490</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112731</attachid>
            <date>2011-10-27 12:32:02 -0700</date>
            <delta_ts>2011-11-14 01:53:32 -0800</delta_ts>
            <desc>Work in progress</desc>
            <filename>patch_71050.diff</filename>
            <type>text/plain</type>
            <size>15315</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4NjE2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMTAtMjcgIEFya28gU2Fo
YSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogU3VwcG9ydCBmb3Ig
cHJvcGVydGllcyBhdHRyaWJ1dGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTA1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZSBwcm9wZXJ0aWVzIGF0dHJpYnV0ZSByZXR1cm5zIGFuIEhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbiBvYmplY3Qgd2l0aAorICAgICAgICBhbGwgdGhlIGVsZW1lbnQncyBw
cm9wZXJ0aWVzLiBPdGhlcndpc2UsIGFuIGVtcHR5IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBv
YmplY3QuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUu
YW06CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBodG1sL0NvbGxlY3Rpb25UeXBlLmg6
CisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MQ29sbGVjdGlvbjo6aXRlbUFmdGVyKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRJdGVtVHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cHJvcGVydGllcyk6CisgICAgICAgICogaHRtbC9IVE1M
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb246OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246On5IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpu
YW1lcyk6CisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaDogQWRkZWQu
CisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsOiBBZGRlZC4KKwog
MjAxMS0xMC0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyOTg1NDIpOiB0YWJsZXMvbW96aWxsYV9leHBlY3RlZF9mYWlsdXJlcy9idWdz
L2J1ZzE0MDA3LTIuaHRtbApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZp
c2lvbiA5ODYxNikKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTMwMCw2ICszMDAsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUHJlRWxlbWVudC5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MUXVvdGVFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hU
TUxRdW90ZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxTY3JpcHRF
bGVtZW50LmNwcCBcCkBAIC0xNzkyLDYgKzE3OTQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gOTg2MTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjYsNiArMTY2LDggQEAgd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJ
RGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnRQcml2YXRlLmgg
XAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJlRWxlbWVudFByaXZhdGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxRdW90ZUVs
ZW1lbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFF1b3RlRWxl
bWVudFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxTY3Jp
cHRFbGVtZW50LmNwcCBcCkBAIC0zNDMsNiArMzQ1LDcgQEAgd2Via2l0Z3RrX2J1aWx0X2hfYXBp
ICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1l
bnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcmVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50LmggXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5oIFwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rp
b25DdXN0b20uY3BwCShyZXZpc2lvbiA5ODYxNikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICsz
MywxMCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiSlNIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24uaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05Nyw2ICsxMDEsMTEgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYQogICAgICAgICBjYXNlIERvY0FsbDoKICAgICAgICAgICAg
IHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBIVE1MQWxs
Q29sbGVjdGlvbiwgY29sbGVjdGlvbik7CiAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUo
TUlDUk9EQVRBKQorICAgICAgICBjYXNlIEl0ZW1Qcm9wZXJ0aWVzOgorICAgICAgICAgICAgd3Jh
cHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbiwgY29sbGVjdGlvbik7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBF
UihleGVjLCBnbG9iYWxPYmplY3QsIEhUTUxDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsKICAgICAg
ICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaAkocmV2
aXNpb24gOTg2MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDkgQEAgZW51bSBDb2xsZWN0aW9uVHlwZSB7CiAgICAg
RGF0YUxpc3RPcHRpb25zLAogICAgIE1hcEFyZWFzLAogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
KyAgICBJdGVtUHJvcGVydGllcywgLy8gIGl0ZW0gcHJvcGVydGllcyBpbiB0aGUgZG9jdW1lbnQK
KyNlbmRpZgogICAgIE90aGVyQ29sbGVjdGlvbgogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9uIDk4NjE2KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw2ICsxMDIsOSBA
QCBFbGVtZW50KiBIVE1MQ29sbGVjdGlvbjo6aXRlbUFmdGVyKEVsZW1lCiAgICAgICAgIGNhc2Ug
RG9jT2JqZWN0czoKICAgICAgICAgY2FzZSBEb2NTY3JpcHRzOgogICAgICAgICBjYXNlIERvY3Vt
ZW50TmFtZWRJdGVtczoKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgICAgICBjYXNlIEl0ZW1Q
cm9wZXJ0aWVzOgorI2VuZGlmCiAgICAgICAgIGNhc2UgTWFwQXJlYXM6CiAgICAgICAgIGNhc2Ug
T3RoZXJDb2xsZWN0aW9uOgogICAgICAgICBjYXNlIFNlbGVjdE9wdGlvbnM6CkBAIC0xODgsNiAr
MTkxLDEyIEBAIEVsZW1lbnQqIEhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0ZXIoRWxlbWUKICAgICAg
ICAgICAgICAgICBpZiAoZS0+aGFzTG9jYWxOYW1lKGFUYWcpICYmIGUtPmZhc3RIYXNBdHRyaWJ1
dGUobmFtZUF0dHIpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTsKICAgICAgICAgICAg
ICAgICBicmVhazsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgICAgICAgICAgY2FzZSBJdGVt
UHJvcGVydGllczoKKyAgICAgICAgICAgICAgICBpZiAoZS0+aXNIVE1MRWxlbWVudCgpICYmIGUt
Pmhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICAgICAgY2FzZSBEb2NB
bGw6CiAgICAgICAgICAgICBjYXNlIE5vZGVDaGlsZHJlbjoKICAgICAgICAgICAgICAgICByZXR1
cm4gZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5ODYx
NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIK
ICNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKICNlbmRpZgogCkBAIC0xMDczLDYgKzEw
NzQsMTEgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0SXRlbVR5cGUoY29uc3QgU3RyaQogCiAgICAg
bV9pdGVtVHlwZS0+c2V0VmFsdWUodmFsdWUpOwogfQorCitQYXNzUmVmUHRyPEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbj4gSFRNTEVsZW1lbnQ6OnByb3BlcnRpZXMoKQoreworICAgIHJldHVybiBI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmNyZWF0ZSh0aGlzKTsKK30KICNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShyZXZp
c2lvbiA5ODYxNikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBjbGFzcyBIVE1MQ29sbGVjdGlvbjsKIGNsYXNzIEhU
TUxGb3JtRWxlbWVudDsKIAogI2lmIEVOQUJMRShNSUNST0RBVEEpCitjbGFzcyBIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb247CiBjbGFzcyBNaWNyb0RhdGFJdGVtVmFsdWU7CiAjZW5kaWYKIApAQCAt
OTYsNiArOTcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEl0ZW1WYWx1ZShjb25zdCBTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxNaWNyb0RhdGFJdGVtVmFsdWU+
IGl0ZW1WYWx1ZSgpIGNvbnN0OworCisgICAgUGFzc1JlZlB0cjxIVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24+IHByb3BlcnRpZXMoKTsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2aXNpb24gOTg2MTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiArNzIsNyBAQCBt
b2R1bGUgaHRtbCB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1N
SUNST0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1SZWY7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0YWJsZVRva2VuTGlzdCBp
dGVtUHJvcDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RB
VEFdIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBwcm9wZXJ0aWVzOwogCiAjaWYgIWRlZmluZWQo
TEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JK
RUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBNb3Rvcm9s
YSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQg
bW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUg
bmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
CisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgi
CisKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uPiBI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGJhc2UpCit7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24oYmFzZSkp
OworfQorCitIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bihQYXNzUmVmUHRyPE5vZGU+IGJhc2UpCisgICAgOiBIVE1MQ29sbGVjdGlvbihiYXNlLCBJdGVt
UHJvcGVydGllcykKK3sKK30KKworSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjp+SFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uKCkKK3sKK30KKworUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVzKCkKK3sKKyAgICByZXR1cm4gRE9NU3RyaW5nTGlz
dDo6Y3JlYXRlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShNSUNST0RBVEEpCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxp
dHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbl9oCisjZGVmaW5lIEhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbl9oCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorCisjaW5jbHVk
ZSAiSFRNTENvbGxlY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRE9NU3Ry
aW5nTGlzdDsKKworY2xhc3MgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIDogcHVibGljIEhUTUxD
b2xsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICB2aXJ0dWFsIH5IVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24oKTsKKworICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
bmFtZXMoKTsKK3ByaXZhdGU6CisgICAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKFBhc3NSZWZQ
dHI8Tm9kZT4pOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKE1JQ1JPREFUQSkKKworI2VuZGlmIC8vIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbl9oCisK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbi5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAor
ICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1
bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NSUNST0RB
VEEKKyAgICBdIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiA6IEhUTUxDb2xsZWN0aW9uIHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgICAgICBO
b2RlIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZ0xpc3QgbmFtZXM7CisgICAgfTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114902</attachid>
            <date>2011-11-14 01:53:32 -0800</date>
            <delta_ts>2011-11-15 05:34:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch_71050.diff</filename>
            <type>text/plain</type>
            <size>49622</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDExMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBACisyMDExLTExLTE0ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IFN1cHBvcnQgZm9y
IHByb3BlcnRpZXMgYXR0cmlidXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEwNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgcHJvcGVydGllcyBhdHRyaWJ1dGUgcmV0dXJucyBhbiBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24gb2JqZWN0IHdpdGggYWxsIHRoZSBlbGVtZW50J3MKKyAgICAgICAg
cHJvcGVydGllcy4gT3RoZXJ3aXNlLCBhbiBlbXB0eSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24g
b2JqZWN0LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZl
cnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3QuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1iZWhh
dmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1hdHRyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0Lmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24t
bXVzdC1pZ25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQtaXRlbXMuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10aGUt
cHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC5odG1sCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KUyk6CisgICAgICAgICogaHRtbC9Db2xsZWN0aW9uVHlwZS5oOgorICAgICAgICAqIGh0
bWwvSFRNTENvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246
Oml0ZW1BZnRlcik6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudDo6cHJvcGVydGllcyk6CisgICAgICAgICogaHRtbC9IVE1MRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOiBBZGRlZCBwcm9wZXJ0aWVz
IElETCBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVUcmVlT3JkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjp+SFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbjo6ZmluZFByb3BldGllc09mQW5JdGVtKTogRmluZHMgdGhlIHByb3BlcnRpZXMgb2Yg
YW4gaXRlbS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y2Fs
Y0xlbmd0aCk6IFJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgcHJvcGVydGll
cyBjb2xsZWN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
OjppdGVtKTogUmV0dXJucyB0aGUgZWxlbWVudCB3aXRoIGluZGV4ICdpbmRleCcgZnJvbSB0aGUg
Y29sbGVjdGlvbi4gVGhlIGl0ZW1zIGFyZSBzb3J0ZWQgaW4gdHJlZSBvcmRlci4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZXMpOiBSZXR1cm5zIGEgRE9N
U3RyaW5nTGlzdCB3aXRoIHRoZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgZWxlbWVudHMgaW4gdGhl
IGNvbGxlY3Rpb24gd2l0aCB0aGUgb3JkZXIgcHJlc2VydmVkIGJ1dCB3aXRoIGR1cGxpY2F0ZXMg
cmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oOiBBZGRl
ZC4KKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMS0xMS0xMCAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmdW5j
dGlvbiByZW1vdGUgb2JqZXRjdCBzaG91bGQgcHJvdmlkZSBhY2Nlc3MgdG8gZnVuY3Rpb24gcG9z
aXRpb24gaW4gdGhlIHNjcmlwdApJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDEw
MDExMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0yNTcsNiArMjU3LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9IVE1MUGFy
YW1FbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFByZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmlkbAorICAgIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlk
bAogICAgIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmlkbAogICAgIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCkBAIC03NjgsNiArNzY5LDcg
QEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAKICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5jcHAKKyAgICBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAKICAgICBodG1s
L0hUTUxRdW90ZUVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKICAg
ICBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAkocmV2aXNpb24gMTAwMTEwKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNiArMTM1LDcgQEAKICNpbmNsdWRlICJKU0hhc2hD
aGFuZ2VFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNIaXN0b3J5LmNwcCIKICNpbmNsdWRlICJKU0hU
TUxBbGxDb2xsZWN0aW9uLmNwcCIKKyNpbmNsdWRlICJKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MQW5jaG9yRWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSlNI
VE1MQXBwbGV0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MQXJlYUVsZW1lbnQuY3BwIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMDAxMTApCisrKyBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNzks
NiArMTc5LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgR2VvbG9jYXRpb24gXAogICAgIEdlb3Bv
c2l0aW9uIFwKICAgICBIVE1MQWxsQ29sbGVjdGlvbiBcCisgICAgSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uIFwKICAgICBIVE1MQW5jaG9yRWxlbWVudCBcCiAgICAgSFRNTEFwcGxldEVsZW1lbnQg
XAogICAgIEhUTUxBcmVhRWxlbWVudCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJp
CShyZXZpc2lvbiAxMDAxMTApCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJ
KHdvcmtpbmcgY29weSkKQEAgLTI5NSw2ICsyOTUsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAg
IGh0bWwvSFRNTFBhcmFtRWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFByZUVsZW1lbnQuaWRs
IFwKICAgICBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsIFwKKyAgICBodG1sL0hUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5pZGwgXAogICAgIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwgXAog
ICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEw
MDExMCkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29w
eSkKQEAgLTMwMyw2ICszMDMsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUHJlRWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTSFRNTFByb2dyZXNzRWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
VE1MUXVvdGVFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxRdW90
ZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxTY3JpcHRFbGVtZW50
LmNwcCBcCkBAIC0xODE1LDYgKzE4MTcsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
aCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTAwMTEw
KQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtNzY0LDYg
Kzc2NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAgXAogICAgIGh0bWwvSFRNTFByZUVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwIFwKKyAgICBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAgXAog
ICAgIGh0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwIFwKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBcCkBAIC0xODM1LDYgKzE4
MzYsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBc
CiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaCBcCisgICAgaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBcCiAgICAgaHRtbC9I
VE1MUXVvdGVFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBcCiAgICAg
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9u
IDEwMDExMCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpA
QCAtMTMxMiw2ICsxMzEyLDcgQEAKICAgICAgICAgICAgICdodG1sL0hUTUxQYXJhbUVsZW1lbnQu
aWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxQcmVFbGVtZW50LmlkbCcsCiAgICAgICAgICAg
ICAnaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9IVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24uaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxRdW90ZUVs
ZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwnLApAQCAtNTU0OCw2ICs1NTQ5
LDggQEAKICAgICAgICAgICAgICdodG1sL0hUTUxQcmVFbGVtZW50LmgnLAogICAgICAgICAgICAg
J2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5oJywKKyAgICAgICAgICAgICdodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbi5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgn
LAogICAgICAgICAgICAgJ2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAnLAogICAgICAgICAgICAg
J2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxTY3JpcHRF
bGVtZW50LmNwcCcsCkBAIC03NDc4LDYgKzc0ODEsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUHJlRWxlbWVudC5oJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmgnLAorICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24uY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUXVvdGVFbGVtZW50LmNwcCcsCiAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxR
dW90ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0hUTUxTY3JpcHRFbGVtZW50LmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMTAwMTEwKQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTg1OTgsNiArODU5OCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCIKKwkJCQk+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFF1b3RlRWxlbWVudC5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpAQCAtNTY1NDYsNiArNTY2MDIsMTQgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxodG1sXEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxRdW90ZUVsZW1lbnQu
Y3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTAwMTEwKQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw4IEBAIHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMg
Kz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUGFyYW1FbGVtZW50UHJp
dmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByZUVsZW1lbnRQcml2
YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uUHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NSFRNTFF1b3RlRWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01IVE1MUXVvdGVFbGVtZW50UHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKQEAgLTM0Myw2ICszNDUsNyBAQCB3ZWJraXRn
dGtfYnVpbHRfaF9hcGkgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1M
UGFyYWdyYXBoRWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRN
TFBhcmFtRWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFBy
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFF1
b3RlRWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFNjcmlw
dEVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxTZWxlY3RF
bGVtZW50LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVj
dGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAJKHJldmlzaW9uIDEwMDExMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMywxMSBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5j
bHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSlNIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24uaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC05Nyw2ICsxMDIsMTEgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0
ZSogZXhlYywgSlNET01HbG9iYQogICAgICAgICBjYXNlIERvY0FsbDoKICAgICAgICAgICAgIHdy
YXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBIVE1MQWxsQ29s
bGVjdGlvbiwgY29sbGVjdGlvbik7CiAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoTUlD
Uk9EQVRBKQorICAgICAgICBjYXNlIEl0ZW1Qcm9wZXJ0aWVzOgorICAgICAgICAgICAgd3JhcHBl
ciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbiwgY29sbGVjdGlvbik7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihl
eGVjLCBnbG9iYWxPYmplY3QsIEhUTUxDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaAkocmV2aXNp
b24gMTAwMTEwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw2ICs1NCwxMCBAQCBlbnVtIENvbGxlY3Rpb25UeXBlIHsKICAgICBE
YXRhTGlzdE9wdGlvbnMsCiAgICAgTWFwQXJlYXMsCiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQor
ICAgICAgICBJdGVtUHJvcGVydGllcywgLy8gTWljcm9kYXRhIGl0ZW0gcHJvcGVydGllcyBpbiB0
aGUgZG9jdW1lbnQKKyNlbmRpZgorCiAgICAgT3RoZXJDb2xsZWN0aW9uCiB9OwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMTAwMTEwKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwNSw2ICsxMDUsOSBAQCBFbGVtZW50KiBIVE1MQ29sbGVjdGlvbjo6aXRlbUFmdGVyKEVsZW1l
CiAgICAgICAgIGNhc2UgU2VsZWN0T3B0aW9uczoKICAgICAgICAgY2FzZSBEYXRhTGlzdE9wdGlv
bnM6CiAgICAgICAgIGNhc2UgV2luZG93TmFtZWRJdGVtczoKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorICAgICAgICBjYXNlIEl0ZW1Qcm9wZXJ0aWVzOgorI2VuZGlmCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBOb2RlQ2hpbGRyZW46CiAgICAgICAgIGNhc2UgVFJDZWxsczoKQEAg
LTE4OSw2ICsxOTIsMTIgQEAgRWxlbWVudCogSFRNTENvbGxlY3Rpb246Oml0ZW1BZnRlcihFbGVt
ZQogICAgICAgICAgICAgY2FzZSBEb2NBbGw6CiAgICAgICAgICAgICBjYXNlIE5vZGVDaGlsZHJl
bjoKICAgICAgICAgICAgICAgICByZXR1cm4gZTsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAg
ICAgICAgICAgY2FzZSBJdGVtUHJvcGVydGllczoKKyAgICAgICAgICAgICAgICBpZiAoZS0+aXNI
VE1MRWxlbWVudCgpICYmIGUtPmhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpKQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAg
ICAgICAgICAgY2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6CiAgICAgICAgICAgICBjYXNlIE90aGVy
Q29sbGVjdGlvbjoKICAgICAgICAgICAgIGNhc2UgV2luZG93TmFtZWRJdGVtczoKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMDAxMTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA4Myw2ICsx
MDgzLDE0IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1UeXBlKGNvbnN0IFN0cmkKIAogICAg
IG1faXRlbVR5cGUtPnNldFZhbHVlKHZhbHVlKTsKIH0KKworUGFzc1JlZlB0cjxIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24+IEhUTUxFbGVtZW50Ojpwcm9wZXJ0aWVzKCkgY29uc3QKK3sKKyAgICBp
ZiAoIW1fcHJvcGVydGllcykKKyAgICAgICAgbV9wcm9wZXJ0aWVzID0gSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uOjpjcmVhdGUoY29uc3RfY2FzdDxIVE1MRWxlbWVudCogY29uc3Q+KHRoaXMpKTsK
KworICAgIHJldHVybiBtX3Byb3BlcnRpZXM7Cit9CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNpb24gMTAwMTEw
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogI2luY2x1ZGUgIkRPTVNl
dHRhYmxlVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgi
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTYsNiArOTcsOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHNldEl0ZW1WYWx1ZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgUGFzc1JlZlB0cjxNaWNyb0RhdGFJdGVtVmFsdWU+IGl0ZW1WYWx1ZSgpIGNvbnN0Owor
CisgICAgUGFzc1JlZlB0cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IHByb3BlcnRpZXMoKSBj
b25zdDsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CkBAIC0xMzgsNiArMTQxLDcgQEAgcHJpdmF0ZToK
ICAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtUHJvcDsKICAg
ICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtUmVmOwogICAgIG11
dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBtX2l0ZW1UeXBlOworICAgIG11dGFi
bGUgUmVmUHRyPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4gbV9wcm9wZXJ0aWVzOwogI2VuZGlm
CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2aXNpb24gMTAw
MTEwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTczLDYgKzczLDEwIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1S
ZWY7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBE
T01TZXR0YWJsZVRva2VuTGlzdCBpdGVtUHJvcDsKIAorI2lmIGRlZmluZWQoRU5BQkxFX01JQ1JP
REFUQSkgJiYgRU5BQkxFX01JQ1JPREFUQQorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPU1JQ1JPREFUQV0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIHByb3BlcnRpZXM7
CisjZW5kaWYKKwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdFX0NQUAog
I2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZF
X0MKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEEsIEN1
c3RvbV0gRE9NT2JqZWN0IGl0ZW1WYWx1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxp
dHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh
dGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
TW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3Jz
IG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
TUlDUk9EQVRBKQorI2luY2x1ZGUgIkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIgorCisjaW5j
bHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb21w
YXJlVHJlZU9yZGVyKE5vZGUqIG5vZGUxLCBOb2RlKiBub2RlMikKK3sKKyAgICByZXR1cm4gKG5v
ZGUyLT5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihub2RlMSkgJiAoTm9kZTo6RE9DVU1FTlRfUE9T
SVRJT05fUFJFQ0VESU5HIHwgTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEKSkg
PT0gTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HOworfQorCitQYXNzUmVmUHRyPEhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpjcmVhdGUo
UGFzc1JlZlB0cjxOb2RlPiBpdGVtTm9kZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbihpdGVtTm9kZSkpOworfQorCitIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb246OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbihQYXNzUmVmUHRyPE5vZGU+IGl0ZW1O
b2RlKQorICAgIDogSFRNTENvbGxlY3Rpb24oaXRlbU5vZGUsIEl0ZW1Qcm9wZXJ0aWVzKQorICAg
ICwgbV9wcm9wZXJ0eU5hbWVzKERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpKQoreworfQorCitIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb246On5IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24oKQoreworfQor
Cit2b2lkIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6ZmluZFByb3BldGllc09mQW5JdGVtKE5v
ZGUqIHJvb3QpIGNvbnN0Cit7CisgICAgLy8gNS4yLjUgQXNzb2NpYXRpbmcgbmFtZXMgd2l0aCBp
dGVtcy4KKyAgICBWZWN0b3I8Tm9kZSo+IG1lbW9yeSwgcGVuZGluZzsKKworICAgIG1lbW9yeS5h
cHBlbmQocm9vdCk7CisKKyAgICAvLyBBZGQgdGhlIGNoaWxkIGVsZW1lbnRzIG9mIHJvb3QsIGlm
IGFueSwgdG8gcGVuZGluZy4KKyAgICBmb3IgKE5vZGUqIGNoaWxkID0gcm9vdC0+Zmlyc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgICAgIHBl
bmRpbmcuYXBwZW5kKGNoaWxkKTsKKworICAgIC8vIElmIHJvb3QgaGFzIGFuIGl0ZW1yZWYgYXR0
cmlidXRlLCBzcGxpdCB0aGUgdmFsdWUgb2YgdGhhdCBpdGVtcmVmIGF0dHJpYnV0ZSBvbiBzcGFj
ZXMuCisgICAgLy8gRm9yIGVhY2ggcmVzdWx0aW5nIHRva2VuIElELCBpZiB0aGVyZSBpcyBhbiBl
bGVtZW50IGluIHRoZSBob21lIHN1YnRyZWUgb2Ygcm9vdCB3aXRoIHRoZSBJRCBJRCwKKyAgICAv
LyB0aGVuIGFkZCB0aGUgZmlyc3Qgc3VjaCBlbGVtZW50IHRvIHBlbmRpbmcuCisgICAgaWYgKHRv
SFRNTEVsZW1lbnQocm9vdCktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXJlZkF0dHIpKSB7CisgICAg
ICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtUmVmID0gdG9IVE1MRWxlbWVudChyb290KS0+
aXRlbVJlZigpLmdldCgpOworCisgICAgICAgIGZvciAodW5zaWduZWQgaXRyUmVmID0gMDsgaXRy
UmVmIDwgaXRlbVJlZi0+bGVuZ3RoKCk7ICsraXRyUmVmKSB7CisgICAgICAgICAgICBBdG9taWNT
dHJpbmcgcmVmSWQgPSBpdGVtUmVmLT5pdGVtKGl0clJlZik7CisKKyAgICAgICAgICAgIGlmIChE
b2N1bWVudCogZG9jdW1lbnQgPSByb290LT5kb2N1bWVudCgpKSB7CisgICAgICAgICAgICAgICAg
aWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBkb2N1bWVudC0+Z2V0RWxlbWVudEJ5SWQocmVmSWQpKQor
ICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcGVuZGluZy5hcHBlbmQoZWxlbWVudCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBMb29wIHRpbGwgd2UgaGF2ZSBwcm9jZXNzZWQg
YWxsIHBlbmRpbmcgZWxlbWVudHMKKyAgICB3aGlsZSAoIXBlbmRpbmcuaXNFbXB0eSgpKSB7CisK
KyAgICAgICAgLy8gUmVtb3ZlIGZpcnN0IGVsZW1lbnQgZnJvbSBwZW5kaW5nIGFuZCBsZXQgY3Vy
cmVudCBiZSB0aGF0IGVsZW1lbnQuCisgICAgICAgIE5vZGUqIGN1cnJlbnQgPSBwZW5kaW5nWzBd
OworICAgICAgICBwZW5kaW5nLnJlbW92ZSgwKTsKKworICAgICAgICAvLyBJZiBjdXJyZW50IGlz
IGFscmVhZHkgaW4gbWVtb3J5LCB0aGVyZSBpcyBhIG1pY3JvZGF0YSBlcnJvcjsKKyAgICAgICAg
aWYgKG1lbW9yeS5jb250YWlucyhjdXJyZW50KSkgeworICAgICAgICAgICAgLy8gbWljcm9kYXRh
IGVycm9yOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBtZW1v
cnkuYXBwZW5kKGN1cnJlbnQpOworCisgICAgICAgIC8vIElmIGN1cnJlbnQgZG9lcyBub3QgaGF2
ZSBhbiBpdGVtc2NvcGUgYXR0cmlidXRlLCB0aGVuOiBhZGQgYWxsIHRoZSBjaGlsZCBlbGVtZW50
cyBvZiBjdXJyZW50IHRvIHBlbmRpbmcuCisgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0g
dG9IVE1MRWxlbWVudChjdXJyZW50KTsKKyAgICAgICAgaWYgKCFlbGVtZW50LT5mYXN0SGFzQXR0
cmlidXRlKGl0ZW1zY29wZUF0dHIpKSB7CisgICAgICAgICAgICBmb3IgKE5vZGUqIGNoaWxkID0g
Y3VycmVudC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmco
KSkKKyAgICAgICAgICAgICAgICBpZiAoY2hpbGQtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAg
ICAgICAgICAgICAgcGVuZGluZy5hcHBlbmQoY2hpbGQpOworICAgICAgICB9CisKKyAgICAgICAg
Ly8gSWYgY3VycmVudCBoYXMgYW4gaXRlbXByb3AgYXR0cmlidXRlIHNwZWNpZmllZCwgYWRkIGl0
IHRvIHJlc3VsdHMuCisgICAgICAgIGlmIChlbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1w
cm9wQXR0cikpCisgICAgICAgICAgICAgbV9wcm9wZXJ0aWVzLmFwcGVuZChjdXJyZW50KTsKKwor
ICAgIH0KK30KKwordW5zaWduZWQgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpjYWxjTGVuZ3Ro
KCkgY29uc3QKK3sKKyAgICBpZiAoIWJhc2UoKS0+aXNIVE1MRWxlbWVudCgpIHx8ICF0b0hUTUxF
bGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCisgICAgICAg
IHJldHVybiAwOworCisgICAgbV9wcm9wZXJ0aWVzLmNsZWFyKCk7CisgICAgZmluZFByb3BldGll
c09mQW5JdGVtKGJhc2UoKSk7CisgICAgcmV0dXJuIG1fcHJvcGVydGllcy5zaXplKCk7Cit9CisK
K05vZGUqIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29u
c3QKK3sKKyAgICBpZiAoIWJhc2UoKS0+aXNIVE1MRWxlbWVudCgpIHx8ICF0b0hUTUxFbGVtZW50
KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCisgICAgICAgIHJldHVy
biAwOworCisgICAgbV9wcm9wZXJ0aWVzLmNsZWFyKCk7CisgICAgZmluZFByb3BldGllc09mQW5J
dGVtKGJhc2UoKSk7CisKKyAgICBpZiAobV9wcm9wZXJ0aWVzLnNpemUoKSA8PSBpbmRleCkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBzdGQ6OnNvcnQobV9wcm9wZXJ0aWVzLmJlZ2luKCksIG1f
cHJvcGVydGllcy5lbmQoKSwgY29tcGFyZVRyZWVPcmRlcik7CisgICAgcmV0dXJuIG1fcHJvcGVy
dGllc1tpbmRleF07Cit9CisKK1Bhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uOjpuYW1lcygpIGNvbnN0Cit7CisgICAgbV9wcm9wZXJ0aWVzLmNsZWFyKCk7
CisgICAgbV9wcm9wZXJ0eU5hbWVzLT5jbGVhcigpOworCisgICAgaWYgKCFiYXNlKCktPmlzSFRN
TEVsZW1lbnQoKSB8fCAhdG9IVE1MRWxlbWVudChiYXNlKCkpLT5mYXN0SGFzQXR0cmlidXRlKGl0
ZW1zY29wZUF0dHIpKQorICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eU5hbWVzOworCisgICAgZmlu
ZFByb3BldGllc09mQW5JdGVtKGJhc2UoKSk7CisKKyAgICBzdGQ6OnNvcnQobV9wcm9wZXJ0aWVz
LmJlZ2luKCksIG1fcHJvcGVydGllcy5lbmQoKSwgY29tcGFyZVRyZWVPcmRlcik7CisKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wcm9wZXJ0aWVzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIC8vIEZvciBlYWNoIGl0ZW0gcHJvcGVydGllcywgc3BsaXQgdGhlIHZhbHVlIG9mIHRoYXQg
aXRlbXByb3AgYXR0cmlidXRlIG9uIHNwYWNlcy4KKyAgICAgICAgLy8gQWRkIGFsbCB0b2tlbnMg
dG8gcHJvcGVydHkgbmFtZXMsIHdpdGggdGhlIG9yZGVyIHByZXNlcnZlZCBidXQgd2l0aCBkdXBs
aWNhdGVzIHJlbW92ZWQuCisgICAgICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtUHJvcCA9
IHRvSFRNTEVsZW1lbnQobV9wcm9wZXJ0aWVzW2ldKS0+aXRlbVByb3AoKS5nZXQoKTsKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1Qcm9wLT5sZW5ndGgoKTsgKytpKSB7Cisg
ICAgICAgICAgICBBdG9taWNTdHJpbmcgcHJvcE5hbWUgPSBpdGVtUHJvcC0+aXRlbShpKTsKKyAg
ICAgICAgICAgIGlmIChtX3Byb3BlcnR5TmFtZXMtPmlzRW1wdHkoKSB8fCAhbV9wcm9wZXJ0eU5h
bWVzLT5jb250YWlucyhwcm9wTmFtZSkpCisgICAgICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWVz
LT5hcHBlbmQocHJvcE5hbWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG1fcHJv
cGVydHlOYW1lczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbl9oCisjZGVmaW5lIEhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbl9oCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorCisjaW5jbHVkZSAi
SFRNTENvbGxlY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRE9NU3RyaW5n
TGlzdDsKKworY2xhc3MgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIDogcHVibGljIEhUTUxDb2xs
ZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICB2aXJ0dWFsIH5IVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24oKTsKKworICAgIHZpcnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCkg
Y29uc3QgT1ZFUlJJREU7CisKKyAgICBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG5hbWVzKCkg
Y29uc3Q7Citwcml2YXRlOgorICAgIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbihQYXNzUmVmUHRy
PE5vZGU+KTsKKworICAgIHZpcnR1YWwgdW5zaWduZWQgY2FsY0xlbmd0aCgpIGNvbnN0OworICAg
IHZvaWQgZmluZFByb3BldGllc09mQW5JdGVtKE5vZGUqIGN1cnJlbnQpIGNvbnN0OworCisgICAg
bXV0YWJsZSBWZWN0b3I8Tm9kZSo+IG1fcHJvcGVydGllczsKKyAgICBtdXRhYmxlIFJlZlB0cjxE
T01TdHJpbmdMaXN0PiBtX3Byb3BlcnR5TmFtZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQorCisjZW5kaWYgLy8gSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAq
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
IG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAq
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICog
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBD
b25kaXRpb25hbD1NSUNST0RBVEEsCisgICAgICAgIEhhc0luZGV4R2V0dGVyCisgICAgXSBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24gOiBIVE1MQ29sbGVjdGlvbiB7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICAgICAgTm9kZSBpdGVtKGluIHVu
c2lnbmVkIGxvbmcgaW5kZXgpOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmdMaXN0IG5hbWVzOworCisgICAgICAgIC8vIFRPRE86IG92ZXJyaWRlIGluaGVyaXRlZCBuYW1l
ZEl0ZW0oKQorICAgIH07Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZp
c2lvbiAxMDAxMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTQ4OCw2ICs0ODgsNyBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBh
dHRyaWJ1dGUgSFRNTENvbGxlY3Rpb25Db25zdHJ1Y3RvciBIVE1MQ29sbGVjdGlvbjsKICAgICAg
ICAgYXR0cmlidXRlIEhUTUxBbGxDb2xsZWN0aW9uQ29uc3RydWN0b3IgSFRNTEFsbENvbGxlY3Rp
b247CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb25Db25zdHJ1Y3RvciBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb247CiAgICAg
ICAgIGF0dHJpYnV0ZSBIVE1MVW5rbm93bkVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVW5rbm93bkVs
ZW1lbnQ7CiAKICAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsIEN1c3RvbUNvbnN0
cnVjdG9yXSBIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciBJbWFnZTsgLy8g
VXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDAxMTMpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOSBAQAorMjAx
MS0xMS0xNCAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9k
YXRhOiBTdXBwb3J0IGZvciBwcm9wZXJ0aWVzIGF0dHJpYnV0ZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDUwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBmb3IgaHRtbCBwcm9wZXJ0
aWVzIGNvbGxlY3Rpb25zLgorCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYt
cmVmZXJzLWZpcnN0LWVsZW1lbnQtd2l0aC1naXZlbi1pZC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLXJlZmVycy1maXJzdC1lbGVtZW50
LXdpdGgtZ2l2ZW4taWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRh
L25hbWVzLXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3Qu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5
LXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
bmFtZXMtcHJvcGVydHktdGVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNy
b0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUtaXRlbXNjb3Bl
LWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUtaXRlbXNjb3BlLWF0dHIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29s
bGVjdGlvbi1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29ycmVjdC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xs
ZWN0aW9uLW11c3QtaWdub3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVj
dGlvbi1tdXN0LWlnbm9yZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1pdGVtcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3Qt
c2VlLXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3Qt
c2VlLXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29s
bGVjdGlvbi10ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDExLTExLTEwICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZ1bmN0aW9u
IHJlbW90ZSBvYmpldGN0IHNob3VsZCBwcm92aWRlIGFjY2VzcyB0byBmdW5jdGlvbiBwb3NpdGlv
biBpbiB0aGUgc2NyaXB0CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRl
bXJlZi1yZWZlcnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZlcnMt
Zmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLXJlZmVycy1maXJzdC1lbGVt
ZW50LXdpdGgtZ2l2ZW4taWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1yZWYgbXVzdCByZWZlcmVuY2UgdGhlIGZp
cnN0IGVsZW1lbnQgd2l0aCBhIGdpdmVuIGlkLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTog
ZGl2CitQQVNTIGl0ZW0ucHJvcGVydGllcy5sZW5ndGggPT0gJzInIGlzIHRydWUKK1BBU1MgaXRl
bS5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdIGlzIHRydWUKK1BB
U1MgaXRlbS5wcm9wZXJ0aWVzLml0ZW0oMSkgPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdLmZpcnN0
Q2hpbGQgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLXJl
ZmVycy1maXJzdC1lbGVtZW50LXdpdGgtZ2l2ZW4taWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZlcnMtZmlyc3QtZWxlbWVudC13
aXRoLWdpdmVuLWlkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvaXRlbXJlZi1yZWZlcnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtcmVm
IG11c3QgcmVmZXJlbmNlIHRoZSBmaXJzdCBlbGVtZW50IHdpdGggYSBnaXZlbiBpZC48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVs
ZW1lbnQoJ2Rpdicse30sJzxkaXYgaXRlbXNjb3BlIGl0ZW1yZWY9ImlkMSI+PC9kaXY+PGRpdiBp
dGVtcHJvcD0iZm9vIiBpZD0iaWQxIj48ZGl2IGl0ZW1wcm9wPSJiYXIiPjwvZGl2PjwvZGl2Pjxk
aXYgaXRlbXByb3A9ImJheiIgaWQ9ImlkMSI+PC9kaXY+Jyk7Citkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVsZW1lbnQpOwordmFyIGl0ZW0gPSBlbGVtZW50LmNoaWxkTm9kZXNbMF07CisKK3No
b3VsZEJlVHJ1ZSgiaXRlbS5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMiciKTsKK3Nob3VsZEJlVHJ1
ZSgiaXRlbS5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdIik7Citz
aG91bGRCZVRydWUoIml0ZW0ucHJvcGVydGllcy5pdGVtKDEpID09IGVsZW1lbnQuY2hpbGROb2Rl
c1sxXS5maXJzdENoaWxkIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LW11c3QtYmUt
Y29ycmVjdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL25hbWVzLXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVy
dHktbXVzdC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NyBAQAorVGhpcyB0ZXN0cyB0aGF0IG5hbWVzLml0ZW0oKSBhbmQgbmFtZXNbaW5kZXhdIG11c3Qg
cmV0dXJuIGNvcnJlY3QgcHJvcGVydHkgbmFtZSBpbiB0cmVlIG9yZGVyIGFuZCBpdCBzaG91bGQg
bm90IGNvbnRhaW4gZHVwbGljYXRlIHRva2Vucy4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6
IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitQQVNTIGVs
ZW1lbnQucHJvcGVydGllcy5uYW1lc1swXSA9PSAnZm9vJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQu
cHJvcGVydGllcy5uYW1lc1sxXSA9PSAnYmFyJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVy
dGllcy5uYW1lc1syXSA9PSAnYmF6JyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5u
YW1lc1szXSA9PSAncXV4JyBpcyB0cnVlCisKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVz
Lml0ZW0oMCkgPT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFtZXMu
aXRlbSgxKSA9PSAnYmFyJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lcy5p
dGVtKDIpID09ICdiYXonIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0
ZW0oMykgPT0gJ3F1eCcgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9u
YW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktbXVzdC1iZS1jb3JyZWN0Lmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMt
cHJvcGVydHktbXVzdC1iZS1jb3JyZWN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
VGhpcyB0ZXN0cyB0aGF0IG5hbWVzLml0ZW0oKSBhbmQgbmFtZXNbaW5kZXhdIG11c3QgcmV0dXJu
IGNvcnJlY3QgcHJvcGVydHkgbmFtZSBpbiB0cmVlIG9yZGVyIGFuZCBpdCBzaG91bGQgbm90IGNv
bnRhaW4gZHVwbGljYXRlIHRva2Vucy48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtc2NvcGU6ICdp
dGVtc2NvcGUnfSwnPGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rpdj48ZGl2IGl0ZW1wcm9wPSJiYXIi
PjxkaXYgaXRlbXByb3A9ImZvbyI+PC9kaXY+PGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rpdj48L2Rp
dj48ZGl2IGl0ZW1wcm9wPSJiYXogcXV4Ij48L2Rpdj4nKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVu
dC5wcm9wZXJ0aWVzLm5hbWVzWzBdID09ICdmb28nIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQu
cHJvcGVydGllcy5uYW1lc1sxXSA9PSAnYmFyJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnBy
b3BlcnRpZXMubmFtZXNbMl0gPT0gJ2JheiciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9w
ZXJ0aWVzLm5hbWVzWzNdID09ICdxdXgnIik7CisKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgi
ZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMCkgPT0gJ2ZvbyciKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMSkgPT0gJ2JhciciKTsKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMikgPT0gJ2JheiciKTsKK3Nob3Vs
ZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMykgPT0gJ3F1eCciKTsKKwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L25hbWVzLXByb3BlcnR5LXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEzIEBACituYW1lcyBwcm9wZXJ0eSBzaW1wbGUgdGVzdC4KKworQ3JlYXRlZCBlbGVtZW50IG9m
IHR5cGU6IGRpdgorCitUaGUgbmFtZXMgcHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkLgorUEFTUyBl
bGVtZW50LnByb3BlcnRpZXMubmFtZXMgaXMgZGVmaW5lZC4KKworVGhlIG5hbWVzIHByb3BlcnR5
IG11c3QgcmV0dXJuIGEgRE9NU3RyaW5nTGlzdCBvYmplY3QuCitQQVNTIGVsZW1lbnQucHJvcGVy
dGllcy5uYW1lcyA9PSAnW29iamVjdCBET01TdHJpbmdMaXN0XScgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS10ZXN0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3Qu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1l
cy1wcm9wZXJ0eS10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNy
b2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+bmFtZXMgcHJv
cGVydHkgc2ltcGxlIHRlc3QuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7fSk7CisKK2RlYnVnKCI8YnI+
VGhlIG5hbWVzIHByb3BlcnR5IG11c3QgYmUgZGVmaW5lZC4iKTsKK3Nob3VsZEJlRGVmaW5lZCgi
ZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzIik7CisKK2RlYnVnKCI8YnI+VGhlIG5hbWVzIHByb3Bl
cnR5IG11c3QgcmV0dXJuIGEgRE9NU3RyaW5nTGlzdCBvYmplY3QuIik7CitzaG91bGRCZVRydWUo
ImVsZW1lbnQucHJvcGVydGllcy5uYW1lcyA9PSAnW29iamVjdCBET01TdHJpbmdMaXN0XSciKTsK
KworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUt
aXRlbXNjb3BlLWF0dHItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZpb3ItYWRkLXJlbW92
ZS1pdGVtc2NvcGUtYXR0ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1y
ZW1vdmUtaXRlbXNjb3BlLWF0dHItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDIyIEBACitUaGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24g
b24gYWRkaW5nIG9yIHJlbW92aW5nIGl0ZW1zY29wZSBhdHRyaWJ1dGUuCisKK0NyZWF0ZWQgZWxl
bWVudCBvZiB0eXBlOiBkaXYKKworVGhlIHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IGJlIGVt
cHR5IGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gaXRlbXNjb3BlIGF0dHJpYnV0ZS4K
K1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMCcgaXMgdHJ1ZQorUEFTUyBlbGVt
ZW50LnByb3BlcnRpZXNbMF0gPT0gdW5kZWZpbmVkIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9w
ZXJ0aWVzLml0ZW0oMCkgPT0gdW5kZWZpbmVkIGlzIHRydWUKKworVGhlIHByb3BlcnRpZXMgY29s
bGVjdGlvbiBtdXN0IGJlY29tZSBwb3B1bGF0ZWQgaWYgd2UgYWRkIGl0ZW1zY29wZSBhdHRyaWJ1
dGUuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5sZW5ndGggPT0gJzEnIGlzIHRydWUKK1BBU1Mg
ZWxlbWVudC5wcm9wZXJ0aWVzWzBdID09IGVsZW1lbnQuZmlyc3RDaGlsZCBpcyB0cnVlCitQQVNT
IGVsZW1lbnQucHJvcGVydGllcy5pdGVtKDApID09IGVsZW1lbnQuZmlyc3RDaGlsZCBpcyB0cnVl
CisKK1RoZSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gbXVzdCBiZWNvbWUgZW1wdHkgaWYgd2UgcmVt
b3ZlIGl0ZW1zY29wZSBhdHRyaWJ1dGUuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5sZW5ndGgg
PT0gJzAnIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzWzBdID09IHVuZGVmaW5lZCBp
cyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5pdGVtKDApID09IHVuZGVmaW5lZCBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlv
bi1iZWhhdmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1hdHRyLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1iZWhh
dmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1hdHRyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9y
LWFkZC1yZW1vdmUtaXRlbXNjb3BlLWF0dHIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gb24gYWRk
aW5nIG9yIHJlbW92aW5nIGl0ZW1zY29wZSBhdHRyaWJ1dGUuPC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7
fSwgJzxkaXYgaXRlbXByb3A9ImZvbyI+YmFyPC9kaXY+Jyk7CisKK2RlYnVnKCI8YnI+VGhlIHBy
b3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IGJlIGVtcHR5IGlmIHRoZSBlbGVtZW50IGRvZXMgbm90
IGhhdmUgYW4gaXRlbXNjb3BlIGF0dHJpYnV0ZS4iKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5w
cm9wZXJ0aWVzLmxlbmd0aCA9PSAnMCciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0
aWVzWzBdID09IHVuZGVmaW5lZCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMu
aXRlbSgwKSA9PSB1bmRlZmluZWQiKTsKKworZGVidWcoIjxicj5UaGUgcHJvcGVydGllcyBjb2xs
ZWN0aW9uIG11c3QgYmVjb21lIHBvcHVsYXRlZCBpZiB3ZSBhZGQgaXRlbXNjb3BlIGF0dHJpYnV0
ZS4iKTsKK2VsZW1lbnQuaXRlbVNjb3BlID0gdHJ1ZTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5w
cm9wZXJ0aWVzLmxlbmd0aCA9PSAnMSciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0
aWVzWzBdID09IGVsZW1lbnQuZmlyc3RDaGlsZCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnBy
b3BlcnRpZXMuaXRlbSgwKSA9PSBlbGVtZW50LmZpcnN0Q2hpbGQiKTsKKworZGVidWcoIjxicj5U
aGUgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgYmVjb21lIGVtcHR5IGlmIHdlIHJlbW92ZSBp
dGVtc2NvcGUgYXR0cmlidXRlLiIpOworZWxlbWVudC5pdGVtU2NvcGUgPSBmYWxzZTsKK3Nob3Vs
ZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMCciKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5wcm9wZXJ0aWVzWzBdID09IHVuZGVmaW5lZCIpOworc2hvdWxkQmVUcnVlKCJl
bGVtZW50LnByb3BlcnRpZXMuaXRlbSgwKSA9PSB1bmRlZmluZWQiKTsKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVj
dGlvbi1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWJlLWNv
cnJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACitUaGlzIHRl
c3QgZW5zdXJlcyB0aGF0IHByb3BlcnRpZXMgY29sbGVjdGlvbiBvZiBhIE1pY3JvZGF0YSBpdGVt
IG11c3QgYmUgY29ycmVjdC4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0
dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCisKK3Byb3BlcnRpZXMubGVuZ3Ro
IG11c3QgYmUgdGhlIHRvdGFsIG51bWJlciBvZiBwcm9wZXJ0aWVzLgorUEFTUyBwcm9wZXJ0aWVz
Q29sbGVjdGlvbi5sZW5ndGggPT0gJzQnIGlzIHRydWUKKworcHJvcGVydGllcy5pdGVtKGluZGV4
KSBhbmQgcHJvcGVydGllc1tpbmRleF0gbXVzdCBnaXZlIGVhY2ggcHJvcGVydHkgaW4gdHJlZSBv
cmRlcicKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgwKSA9PSBjaGlsZE5vZGVzWzBd
IGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgxKSA9PSBjaGlsZE5vZGVz
WzFdIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgyKSA9PSBjaGlsZE5v
ZGVzWzFdLmNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5p
dGVtKDMpID09IGNoaWxkTm9kZXNbMl0gaXMgdHJ1ZQorCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0
aW9uWzBdID09IGNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlv
blsxXSA9PSBjaGlsZE5vZGVzWzFdIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb25b
Ml0gPT0gY2hpbGROb2Rlc1sxXS5jaGlsZE5vZGVzWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydGll
c0NvbGxlY3Rpb25bM10gPT0gY2hpbGROb2Rlc1syXSBpcyB0cnVlCitwcm9wZXJ0aWVzW2luZGV4
XSBhbmQgcHJvcGVydGllcy5pdGVtKGluZGV4KSBtdXN0IHJldHVybiB1bmRlZmluZWQgZm9yIG91
dCBvZiByYW5nZSBpbmRleC4KK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb25bNF0gPT0gdW5kZWZp
bmVkIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSg0KSA9PSB1bmRlZmlu
ZWQgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNv
bGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWJlLWNvcnJlY3Qu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9w
ZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gb2Yg
YSBNaWNyb2RhdGEgaXRlbSBtdXN0IGJlIGNvcnJlY3QuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRl
bXNjb3BlOiAnaXRlbXNjb3BlJ30sICc8ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PjxkaXYgaXRl
bXByb3A9ImJhciI+PGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rpdj48L2Rpdj48ZGl2IGl0ZW1wcm9w
PSJiYXogcXV4Ij48L2Rpdj4nKTsKK3ZhciBwcm9wZXJ0aWVzQ29sbGVjdGlvbiA9IGVsZW1lbnQu
cHJvcGVydGllczsKK3ZhciBjaGlsZE5vZGVzID0gZWxlbWVudC5jaGlsZE5vZGVzOworCitkZWJ1
ZygiPGJyPnByb3BlcnRpZXMubGVuZ3RoIG11c3QgYmUgdGhlIHRvdGFsIG51bWJlciBvZiBwcm9w
ZXJ0aWVzLiIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5sZW5ndGggPT0g
JzQnIik7CisKK2RlYnVnKCI8YnI+cHJvcGVydGllcy5pdGVtKGluZGV4KSBhbmQgcHJvcGVydGll
c1tpbmRleF0gbXVzdCBnaXZlIGVhY2ggcHJvcGVydHkgaW4gdHJlZSBvcmRlciciKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgwKSA9PSBjaGlsZE5vZGVzWzBdIik7
CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMSkgPT0gY2hpbGROb2Rl
c1sxXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDIpID09IGNo
aWxkTm9kZXNbMV0uY2hpbGROb2Rlc1swXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29s
bGVjdGlvbi5pdGVtKDMpID09IGNoaWxkTm9kZXNbMl0iKTsKK2RlYnVnKCcnKTsKKworc2hvdWxk
QmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvblswXSA9PSBjaGlsZE5vZGVzWzBdIik7CitzaG91
bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uWzFdID09IGNoaWxkTm9kZXNbMV0iKTsKK3No
b3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb25bMl0gPT0gY2hpbGROb2Rlc1sxXS5jaGls
ZE5vZGVzWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uWzNdID09IGNo
aWxkTm9kZXNbMl0iKTsKKworZGVidWcoInByb3BlcnRpZXNbaW5kZXhdIGFuZCBwcm9wZXJ0aWVz
Lml0ZW0oaW5kZXgpIG11c3QgcmV0dXJuIHVuZGVmaW5lZCBmb3Igb3V0IG9mIHJhbmdlIGluZGV4
LiIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbls0XSA9PSB1bmRlZmluZWQi
KTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSg0KSA9PSB1bmRlZmlu
ZWQiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdub3JlLXBy
b3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdu
b3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24t
bXVzdC1pZ25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQtaXRlbXMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGV0IHByb3BlcnRp
ZXMuaXRlbSBhbmQgbGVuZ3RoIG11c3QgaWdub3JlIHByb3BlcnRpZXMgb2YgbmVzdGVkIGl0ZW1z
LgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtc2Nv
cGUsIHZhbHVlOiBpdGVtc2NvcGUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24ubGVuZ3RoID09
ICcyJyBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uWzBdID09IGNoaWxkTm9kZXNb
MF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDApID09IGNoaWxkTm9k
ZXNbMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvblsxXSA9PSBjaGlsZE5vZGVz
WzFdLmZpcnN0Q2hpbGQgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDEp
ID09IGNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9yZS1wcm9wZXJ0aWVz
LW9mLW5lc3RlZC1pdGVtcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1pZ25vcmUtcHJvcGVydGllcy1v
Zi1uZXN0ZWQtaXRlbXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1pZ25vcmUtcHJvcGVydGllcy1v
Zi1uZXN0ZWQtaXRlbXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3Jv
ZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Qg
ZW5zdXJlcyB0aGV0IHByb3BlcnRpZXMuaXRlbSBhbmQgbGVuZ3RoIG11c3QgaWdub3JlIHByb3Bl
cnRpZXMgb2YgbmVzdGVkIGl0ZW1zLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1zY29wZTogJ2l0
ZW1zY29wZSd9LCAnPGRpdiBpdGVtc2NvcGUgaXRlbXByb3A9ImZvbyI+PGRpdiBpdGVtcHJvcD0i
YmFyIj48L2Rpdj48L2Rpdj48ZGl2PjxkaXYgaXRlbXByb3A9ImJheiI+PC9kaXY+PC9kaXY+Jyk7
Cit2YXIgcHJvcGVydGllc0NvbGxlY3Rpb24gPSBlbGVtZW50LnByb3BlcnRpZXM7Cit2YXIgY2hp
bGROb2RlcyA9IGVsZW1lbnQuY2hpbGROb2RlczsKKworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVz
Q29sbGVjdGlvbi5sZW5ndGggPT0gJzInIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xs
ZWN0aW9uWzBdID09IGNoaWxkTm9kZXNbMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0Nv
bGxlY3Rpb24uaXRlbSgwKSA9PSBjaGlsZE5vZGVzWzBdIik7CitzaG91bGRCZVRydWUoInByb3Bl
cnRpZXNDb2xsZWN0aW9uWzFdID09IGNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZCIpOworc2hvdWxk
QmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDEpID09IGNoaWxkTm9kZXNbMV0uZmly
c3RDaGlsZCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUt
dGhlLXByb3BlcnRpZXMtYWRkZWQtaW4taXRlbXJlZi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1t
dXN0LXNlZS10aGUtcHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNv
bGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRpZXMtYWRkZWQtaW4taXRlbXJlZi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdHMgdGhhdCBwcm9w
ZXJ0aWVzLml0ZW0gYW5kIGxlbmd0aCBtdXN0IHNlZSB0aGUgcHJvcGVydGllcyBhZGRlZCB3aXRo
IGl0ZW1yZWYuCisKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24ubGVuZ3RoID09ICc0JyBpcyB0
cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMCkgPT0gZGl2c1swXSBpcyB0cnVl
CitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMSkgPT0gZGl2c1syXSBpcyB0cnVlCitQ
QVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMikgPT0gZGl2c1szXSBpcyB0cnVlCitQQVNT
IHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMykgPT0gZGl2c1s0XSBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10
aGUtcHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10
aGUtcHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3Qtc2Vl
LXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgcHJvcGVydGllcy5pdGVtIGFuZCBsZW5ndGggbXVzdCBz
ZWUgdGhlIHByb3BlcnRpZXMgYWRkZWQgd2l0aCBpdGVtcmVmLjwvcD4KKworPGRpdiBpdGVtcHJv
cD0iZm9vIiBpZD0iaWQxIj48L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW1yZWY9ImlkMiBpZDEi
PgorPGRpdiBpdGVtcHJvcD0iYmFyIj48L2Rpdj4KKzwvZGl2PgorPGRpdiBpdGVtcHJvcD0iYmF6
IiBpZD0iaWQyIj4KKzxkaXYgaXRlbXByb3A9InF1eCI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGl0ZW0gPSBkb2N1bWVudC5nZXRJdGVt
cygpWzBdOwordmFyIHByb3BlcnRpZXNDb2xsZWN0aW9uID0gaXRlbS5wcm9wZXJ0aWVzOwordmFy
IGRpdnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2Jyk7CisKK3Nob3VsZEJl
VHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24ubGVuZ3RoID09ICc0JyIpOworc2hvdWxkQmVUcnVl
KCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDApID09IGRpdnNbMF0iKTsKK3Nob3VsZEJlVHJ1
ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgxKSA9PSBkaXZzWzJdIik7CitzaG91bGRCZVRy
dWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMikgPT0gZGl2c1szXSIpOworc2hvdWxkQmVU
cnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDMpID09IGRpdnNbNF0iKTsKKworCis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlv
bi10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK01pY3JvZGF0YSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24g
c2ltcGxlIHRlc3QuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKKworVGhlIHByb3Bl
cnRpZXMgcHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkLgorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMg
aXMgZGVmaW5lZC4KKworVGhlIHByb3BlcnRpZXMgcHJvcGVydHkgbXVzdCByZXR1cm4gYSBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24gb2JqZWN0LgorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMgPT0g
J1tvYmplY3QgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uXScgaXMgdHJ1ZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxl
Y3Rpb24tdGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+TWljcm9kYXRhIHByb3BlcnRpZXMgY29sbGVjdGlvbiBzaW1wbGUgdGVzdC48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0
ZUVsZW1lbnQoJ2RpdicsIHt9KTsKKworZGVidWcoIjxicj5UaGUgcHJvcGVydGllcyBwcm9wZXJ0
eSBtdXN0IGJlIGRlZmluZWQuIik7CitzaG91bGRCZURlZmluZWQoImVsZW1lbnQucHJvcGVydGll
cyIpOworCitkZWJ1ZygiPGJyPlRoZSBwcm9wZXJ0aWVzIHByb3BlcnR5IG11c3QgcmV0dXJuIGEg
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIG9iamVjdC4iKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVu
dC5wcm9wZXJ0aWVzID09ICdbb2JqZWN0IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbl0nIik7CisK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="113677"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115149</attachid>
            <date>2011-11-15 05:34:06 -0800</date>
            <delta_ts>2011-11-17 06:10:23 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_71050.diff</filename>
            <type>text/plain</type>
            <size>56851</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDI2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDExLTExLTE1ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IFN1cHBvcnQgZm9y
IHByb3BlcnRpZXMgYXR0cmlidXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEwNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgcHJvcGVydGllcyBhdHRyaWJ1dGUgcmV0dXJucyBhbiBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24gb2JqZWN0IHdpdGggYWxsIHRoZSBlbGVtZW50J3MKKyAgICAgICAg
cHJvcGVydGllcy4gT3RoZXJ3aXNlLCBhbiBlbXB0eSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24g
b2JqZWN0LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZl
cnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3QuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1iZWhh
dmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1hdHRyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0Lmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24t
bXVzdC1pZ25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQtaXRlbXMuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10aGUt
cHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC5odG1sCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KUyk6CisgICAgICAgICogZG9tL01pY3JvRGF0YUl0ZW1MaXN0LmNwcDoKKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppdGVtUHJvcCk6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjpzZXRJdGVtUHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjppdGVtUmVmKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldEl0ZW1SZWYpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6aXRlbVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0
SXRlbVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cHJvcGVydGllcyk6CisgICAgICAg
ICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmg6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlUmFyZURhdGE6Oml0ZW1Qcm9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVS
YXJlRGF0YTo6c2V0SXRlbVByb3ApOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpp
dGVtUmVmKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6c2V0SXRlbVJlZik6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6Oml0ZW1UeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGVSYXJlRGF0YTo6c2V0SXRlbVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJh
cmVEYXRhOjpwcm9wZXJ0aWVzKToKKyAgICAgICAgKiBodG1sL0NvbGxlY3Rpb25UeXBlLmg6Cisg
ICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q29sbGVjdGlvbjo6aXRlbUFmdGVyKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRJdGVtVmFsdWVUZXh0KToKKyAgICAg
ICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5pZGw6
CisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmNvbXBhcmVUcmVlT3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjp+SFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6ZmluZFBy
b3BldGllc09mQW5JdGVtKTogRmluZHMgdGhlIHByb3BlcnRpZXMgb2YgYW4gaXRlbS4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bGVuZ3RoKTogUmV0dXJucyB0
aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Oml0ZW0pOiBSZXR1cm5zIHRo
ZSBlbGVtZW50IHdpdGggaW5kZXggJ2luZGV4JyBmcm9tIHRoZSBjb2xsZWN0aW9uLiBUaGUgaXRl
bXMgYXJlIHNvcnRlZCBpbiB0cmVlIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uOjpuYW1lcyk6IFJldHVybnMgYSBET01TdHJpbmdMaXN0IHdpdGggdGhl
IHByb3BlcnR5IG5hbWVzIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgY29sbGVjdGlvbiB3aXRoIHRo
ZSBvcmRlciBwcmVzZXJ2ZWQgYnV0IHdpdGggZHVwbGljYXRlcyByZW1vdmVkLgorICAgICAgICAq
IGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwv
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOgorCiAyMDExLTExLTE1ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIENlbnRyYWxpemUgaGlkZV9zeW1ib2xzIGFuZCBl
bnN1cmUgYWxsIGxpYnMgYXJlIGJ1aWx0IHdpdGggc3ltYm9sIHZpc2liaWxpdHkgJiBic3ltYm9s
aWNfZnVuY3Rpb25zCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTAwMjY4KQor
KysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI1Nyw2
ICsyNTcsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBodG1sL0hUTUxQYXJhbUVsZW1l
bnQuaWRsCiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuaWRsCisgICAgaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsCiAgICAg
aHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRs
CiAgICAgaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTc2OSw2ICs3NzAsNyBAQCBTRVQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAogICAg
IGh0bWwvSFRNTFByZUVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cAorICAgIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAogICAgIGh0bWwvSFRNTFF1
b3RlRWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAogICAgIGh0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShy
ZXZpc2lvbiAxMDAyNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEzNSw2ICsxMzUsNyBAQAogI2luY2x1ZGUgIkpTSGFzaENoYW5nZUV2
ZW50LmNwcCIKICNpbmNsdWRlICJKU0hpc3RvcnkuY3BwIgogI2luY2x1ZGUgIkpTSFRNTEFsbENv
bGxlY3Rpb24uY3BwIgorI2luY2x1ZGUgIkpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCIK
ICNpbmNsdWRlICJKU0hUTUxBbmNob3JFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxBcHBs
ZXRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxBcmVhRWxlbWVudC5jcHAiCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDEwMDI2OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE3OSw2ICsxNzks
NyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBHZW9sb2NhdGlvbiBcCiAgICAgR2VvcG9zaXRpb24g
XAogICAgIEhUTUxBbGxDb2xsZWN0aW9uIFwKKyAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24g
XAogICAgIEhUTUxBbmNob3JFbGVtZW50IFwKICAgICBIVE1MQXBwbGV0RWxlbWVudCBcCiAgICAg
SFRNTEFyZWFFbGVtZW50IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlz
aW9uIDEwMDI2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2lu
ZyBjb3B5KQpAQCAtMjk1LDYgKzI5NSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgaHRtbC9I
VE1MUGFyYW1FbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwgXAogICAg
IGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwgXAorICAgIGh0bWwvSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmlkbCBcCiAgICAgaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbCBcCiAgICAgaHRt
bC9IVE1MU2NyaXB0RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRs
IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTAwMjY4KQor
KysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAt
MzAzLDYgKzMwMyw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0hUTUxQcmVFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hU
TUxQcm9ncmVzc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxRdW90
ZUVsZW1lbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFF1b3RlRWxlbWVu
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwK
QEAgLTE4MTgsNiArMTgyMCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUHJlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMDAyNjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC03NjAsNiArNzYwLDcg
QEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBcCiAg
ICAgaHRtbC9IVE1MUHJlRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5jcHAgXAorICAgIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBcCiAgICAgaHRt
bC9IVE1MUXVvdGVFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAg
XAogICAgIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIFwKQEAgLTE4MzIsNiArMTgzMyw3IEBA
IEhFQURFUlMgKz0gXAogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIFwKICAgICBo
dG1sL0hUTUxQcmVFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oIFwK
KyAgICBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIFwKICAgICBodG1sL0hUTUxRdW90
ZUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIFwKICAgICBodG1sL0hU
TUxTZWxlY3RFbGVtZW50LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTAwMjY4
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEy
LDYgKzEzMTIsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBhcmFtRWxlbWVudC5pZGwnLAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsJywKKyAgICAgICAgICAgICdodG1sL0hUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFF1b3RlRWxlbWVudC5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsJywKICAgICAgICAg
ICAgICdodG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCcsCkBAIC01NTUxLDYgKzU1NTIsOCBAQAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTFByZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNw
cCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9I
VE1MUXVvdGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwJywKQEAgLTc0ODAsNiArNzQ4Myw4IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcmVFbGVtZW50LmgnLAogICAgICAgICAgICAg
JzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0hUTUxQcm9ncmVzc0VsZW1lbnQuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAn
LAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxRdW90ZUVsZW1lbnQuY3BwJywKICAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFF1b3RlRWxl
bWVudC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSFRNTFNjcmlwdEVsZW1lbnQuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMDAyNjgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAt
ODU5OCw2ICs4NTk4LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIgorCQkJCT4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNIVE1MUXVvdGVFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCkBAIC01NjUxNCw2ICs1NjU3MCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGh0bWxcSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFF1b3RlRWxlbWVudC5jcHAiCiAJ
CQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAxMDAyNjgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjYsNiArMTY2LDggQEAgd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJ
RGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnRQcml2YXRlLmgg
XAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJlRWxlbWVudFByaXZhdGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb25Qcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1M
UXVvdGVFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxR
dW90ZUVsZW1lbnRQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01I
VE1MU2NyaXB0RWxlbWVudC5jcHAgXApAQCAtMzQzLDYgKzM0NSw3IEBAIHdlYmtpdGd0a19idWls
dF9oX2FwaSArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQYXJhZ3Jh
cGhFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUGFyYW1F
bGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUXVvdGVFbGVt
ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVu
dC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQu
aCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxD
b2xsZWN0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gMTAwMjY4KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDExIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZy5oPgogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJKU0hUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTk3LDYgKzEwMiwxMSBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhCiAgICAgICAgIGNhc2UgRG9jQWxsOgogICAgICAgICAgICAgd3JhcHBlciA9
IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEhUTUxBbGxDb2xsZWN0aW9u
LCBjb2xsZWN0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShNSUNST0RBVEEp
CisgICAgICAgIGNhc2UgSXRlbVByb3BlcnRpZXM6CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uLCBjb2xsZWN0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgSFRNTENvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOwogICAgICAgICAgICAgYnJl
YWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHJldmlz
aW9uIDEwMDI2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQog
I2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1MaXN0LmgiCiAKKyNpbmNsdWRlICJET01TZXR0YWJsZVRv
a2VuTGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9u
IDEwMDI2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE0LDYgKzExNCwxMSBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmg+CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tl
bkxpc3QuaCIKKyNpbmNsdWRlICJIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKKyNlbmRpZgor
CiAjZGVmaW5lIERVTVBfTk9ERV9TVEFUSVNUSUNTIDAKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
QEAgLTI5OTcsNiArMzAwMiw0MyBAQCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQqIGV2CiAgICAgfQogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK0RPTVNldHRhYmxlVG9r
ZW5MaXN0KiBOb2RlOjppdGVtUHJvcCgpCit7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkt
Pml0ZW1Qcm9wKCk7Cit9CisKK3ZvaWQgTm9kZTo6c2V0SXRlbVByb3AoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKK3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRJdGVtUHJvcCh2YWx1ZSk7Cit9CisK
K0RPTVNldHRhYmxlVG9rZW5MaXN0KiBOb2RlOjppdGVtUmVmKCkKK3sKKyAgICByZXR1cm4gZW5z
dXJlUmFyZURhdGEoKS0+aXRlbVJlZigpOworfQorCit2b2lkIE5vZGU6OnNldEl0ZW1SZWYoY29u
c3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRJdGVtUmVmKHZh
bHVlKTsKK30KKworRE9NU2V0dGFibGVUb2tlbkxpc3QqIE5vZGU6Oml0ZW1UeXBlKCkKK3sKKyAg
ICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS0+aXRlbVR5cGUoKTsKK30KKwordm9pZCBOb2RlOjpz
ZXRJdGVtVHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGVuc3VyZVJhcmVEYXRhKCkt
PnNldEl0ZW1UeXBlKHZhbHVlKTsKK30KKworSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBOb2Rl
Ojpwcm9wZXJ0aWVzKCkKK3sKKyAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS0+cHJvcGVydGll
cyh0aGlzKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYg
TkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDEwMDI2OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDExIEBAIGNsYXNzIFNW
R1VzZUVsZW1lbnQ7CiBjbGFzcyBUYWdOb2RlTGlzdDsKIGNsYXNzIFRyZWVTY29wZTsKIAorI2lm
IEVOQUJMRShNSUNST0RBVEEpCitjbGFzcyBET01TZXR0YWJsZVRva2VuTGlzdDsKK2NsYXNzIEhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjsKKyNlbmRpZgorCiB0eXBlZGVmIGludCBFeGNlcHRpb25D
b2RlOwogCiBjb25zdCBpbnQgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgPSAyNTsKQEAgLTU4Niw2ICs1
OTEsMTEgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICAgICB2b2lkIGl0ZW1U
eXBlQXR0cmlidXRlQ2hhbmdlZCgpOworCisgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1Q
cm9wKCk7CisgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1SZWYoKTsKKyAgICBET01TZXR0
YWJsZVRva2VuTGlzdCogaXRlbVR5cGUoKTsKKyAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24q
IHByb3BlcnRpZXMoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykK
QEAgLTc1Niw2ICs3NjYsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0SGFzUmFyZVNWR0Rh
dGEoKSB7IHNldEZsYWcoSGFzU1ZHUmFyZURhdGFGbGFnKTsgfQogICAgIHZvaWQgY2xlYXJIYXNS
YXJlU1ZHRGF0YSgpIHsgY2xlYXJGbGFnKEhhc1NWR1JhcmVEYXRhRmxhZyk7IH0KICNlbmRpZgor
CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2b2lkIHNldEl0ZW1Qcm9wKGNvbnN0IFN0cmlu
ZyYpOworICAgIHZvaWQgc2V0SXRlbVJlZihjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldEl0
ZW1UeXBlKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCiB9OwogCiAvLyBVc2VkIGluIE5vZGU6OmFk
ZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcygpIGFuZCBpbiBhZGRTdWJyZXNvdXJjZVN0eWxlVVJM
cygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCShyZXZpc2lvbiAxMDAyNjgpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDggQEAKICNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKIAogI2lmIEVOQUJMRShN
SUNST0RBVEEpCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKyNpbmNsdWRlICJI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJNaWNyb0RhdGFJdGVtTGlzdC5o
IgogI2VuZGlmCiAKQEAgLTE1Nyw2ICsxNTksNjQgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVBy
b3AoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCFtX2l0ZW1Qcm9wKQorICAgICAgICAgICAg
bV9pdGVtUHJvcCA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgICAgICBy
ZXR1cm4gbV9pdGVtUHJvcC5nZXQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldEl0ZW1Qcm9wKGNv
bnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoIW1faXRlbVByb3ApCisgICAg
ICAgICAgICBtX2l0ZW1Qcm9wID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisg
ICAgICAgIG1faXRlbVByb3AtPnNldFZhbHVlKHZhbHVlKTsKKyAgICB9CisKKyAgICBET01TZXR0
YWJsZVRva2VuTGlzdCogaXRlbVJlZigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1faXRl
bVJlZikKKyAgICAgICAgICAgIG1faXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVh
dGUoKTsKKworICAgICAgICByZXR1cm4gbV9pdGVtUmVmLmdldCgpOworICAgIH0KKworICAgIHZv
aWQgc2V0SXRlbVJlZihjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKCFt
X2l0ZW1SZWYpCisgICAgICAgICAgICBtX2l0ZW1SZWYgPSBET01TZXR0YWJsZVRva2VuTGlzdDo6
Y3JlYXRlKCk7CisKKyAgICAgICAgbV9pdGVtUmVmLT5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgfQor
CisgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1UeXBlKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIGlmICghbV9pdGVtVHlwZSkKKyAgICAgICAgICAgIG1faXRlbVR5cGUgPSBET01TZXR0YWJs
ZVRva2VuTGlzdDo6Y3JlYXRlKCk7CisKKyAgICAgICAgcmV0dXJuIG1faXRlbVR5cGUuZ2V0KCk7
CisgICAgfQorCisgICAgdm9pZCBzZXRJdGVtVHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKQorICAg
IHsKKyAgICAgICAgaWYgKCFtX2l0ZW1UeXBlKQorICAgICAgICAgICAgbV9pdGVtVHlwZSA9IERP
TVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgICAgICBtX2l0ZW1UeXBlLT5zZXRW
YWx1ZSh2YWx1ZSk7CisgICAgfQorCisgICAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBwcm9w
ZXJ0aWVzKE5vZGUqIG5vZGUpCisgICAgeworICAgICAgICBpZiAoIW1fcHJvcGVydGllcykKKyAg
ICAgICAgICAgIG1fcHJvcGVydGllcyA9IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y3JlYXRl
KG5vZGUpOworCisgICAgICAgIHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7CisgICAgfQorI2Vu
ZGlmCisKICAgICBib29sIGlzRm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb2N1c2VkOyB9
CiAgICAgdm9pZCBzZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCkgeyBtX2lzRm9jdXNlZCA9IGZvY3Vz
ZWQ7IH0KIApAQCAtMTc4LDYgKzIzOCwxMyBAQCBwcml2YXRlOgogICAgIE93blB0cjxWZWN0b3I8
T3duUHRyPE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24+ID4gPiBtX211dGF0aW9uT2JzZXJ2
ZXJSZWdpc3RyeTsKICAgICBPd25QdHI8SGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0
aW9uKj4gPiBtX3RyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeTsKICNlbmRpZgorCisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2Vu
TGlzdD4gbV9pdGVtUHJvcDsKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlz
dD4gbV9pdGVtUmVmOworICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBt
X2l0ZW1UeXBlOworICAgIG11dGFibGUgUmVmUHRyPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4g
bV9wcm9wZXJ0aWVzOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oCShyZXZpc2lvbiAxMDAyNjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0
LDYgKzU0LDEwIEBAIGVudW0gQ29sbGVjdGlvblR5cGUgewogICAgIERhdGFMaXN0T3B0aW9ucywK
ICAgICBNYXBBcmVhcywKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgICAgIEl0ZW1Qcm9w
ZXJ0aWVzLCAvLyBNaWNyb2RhdGEgaXRlbSBwcm9wZXJ0aWVzIGluIHRoZSBkb2N1bWVudAorI2Vu
ZGlmCisKICAgICBPdGhlckNvbGxlY3Rpb24KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMDAyNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw5IEBA
IEVsZW1lbnQqIEhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0ZXIoRWxlbWUKICAgICAgICAgY2FzZSBT
ZWxlY3RPcHRpb25zOgogICAgICAgICBjYXNlIERhdGFMaXN0T3B0aW9uczoKICAgICAgICAgY2Fz
ZSBXaW5kb3dOYW1lZEl0ZW1zOgorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgICAgIGNhc2Ug
SXRlbVByb3BlcnRpZXM6CisjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IE5vZGVDaGlsZHJlbjoKICAgICAgICAgY2FzZSBUUkNlbGxzOgpAQCAtMTg5LDYgKzE5MiwxMiBA
QCBFbGVtZW50KiBIVE1MQ29sbGVjdGlvbjo6aXRlbUFmdGVyKEVsZW1lCiAgICAgICAgICAgICBj
YXNlIERvY0FsbDoKICAgICAgICAgICAgIGNhc2UgTm9kZUNoaWxkcmVuOgogICAgICAgICAgICAg
ICAgIHJldHVybiBlOworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgICAgICAgICBjYXNlIEl0
ZW1Qcm9wZXJ0aWVzOgorICAgICAgICAgICAgICAgIGlmIChlLT5pc0hUTUxFbGVtZW50KCkgJiYg
ZS0+aGFzQXR0cmlidXRlKGl0ZW1wcm9wQXR0cikpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBlOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgICAgICBjYXNlIERv
Y3VtZW50TmFtZWRJdGVtczoKICAgICAgICAgICAgIGNhc2UgT3RoZXJDb2xsZWN0aW9uOgogICAg
ICAgICAgICAgY2FzZSBXaW5kb3dOYW1lZEl0ZW1zOgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAJKHJldmlzaW9uIDEwMDI2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA1LDM4ICsxMDA1LDYgQEAgYm9vbCBI
VE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidQogfQogCiAjaWYgRU5BQkxFKE1JQ1JP
REFUQSkKLVBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVtZW50OjppdGVt
UHJvcCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2l0ZW1Qcm9wKQotICAgICAgICBtX2l0ZW1Qcm9w
ID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOwotCi0gICAgcmV0dXJuIG1faXRlbVBy
b3A7Ci19Ci0KLXZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYgdmFs
dWUpCi17Ci0gICAgaWYgKCFtX2l0ZW1Qcm9wKQotICAgICAgICBtX2l0ZW1Qcm9wID0gRE9NU2V0
dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOwotCi0gICAgbV9pdGVtUHJvcC0+c2V0VmFsdWUodmFs
dWUpOwotfQotCi1QYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVudDo6
aXRlbVJlZigpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2l0ZW1SZWYpCi0gICAgICAgIG1faXRlbVJl
ZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKLQotICAgIHJldHVybiBtX2l0ZW1S
ZWY7Ci19Ci0KLXZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1SZWYoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKLXsKLSAgICBpZiAoIW1faXRlbVJlZikKLSAgICAgICAgbV9pdGVtUmVmID0gRE9NU2V0dGFi
bGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOwotCi0gICAgbV9pdGVtUmVmLT5zZXRWYWx1ZSh2YWx1ZSk7
Ci19Ci0KIHZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVl
LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0
dHIpIHx8IGhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkgewpAQCAtMTA2NywyMiArMTAzNSw2
IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QKIHsKICAgICBzZXRU
ZXh0Q29udGVudCh2YWx1ZSwgZWMpOwogfQotCi1QYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5M
aXN0PiBIVE1MRWxlbWVudDo6aXRlbVR5cGUoKSBjb25zdAotewotICAgIGlmICghbV9pdGVtVHlw
ZSkKLSAgICAgICAgbV9pdGVtVHlwZSA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsK
LQotICAgIHJldHVybiBtX2l0ZW1UeXBlOwotfQotCi12b2lkIEhUTUxFbGVtZW50OjpzZXRJdGVt
VHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIGlmICghbV9pdGVtVHlwZSkKLSAgICAg
ICAgbV9pdGVtVHlwZSA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKLQotICAgIG1f
aXRlbVR5cGUtPnNldFZhbHVlKHZhbHVlKTsKLX0KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiAxMDAyNjgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDEwICsyNSw2IEBACiAKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAKLSNpZiBFTkFC
TEUoTUlDUk9EQVRBKQotI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCi0jZW5kaWYK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwpAQCAtOTAs
MTAgKzg2LDYgQEAgcHVibGljOgogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uYWxpdHlJZmhh
c0RpckF1dG9BdHRyaWJ1dGUoYm9vbCYgaXNBdXRvKSBjb25zdDsKIAogI2lmIEVOQUJMRShNSUNS
T0RBVEEpCi0gICAgUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gaXRlbVJlZigpIGNv
bnN0OwotICAgIFBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IGl0ZW1Qcm9wKCkgY29u
c3Q7Ci0gICAgUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gaXRlbVR5cGUoKSBjb25z
dDsKLQogICAgIHZvaWQgc2V0SXRlbVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBQYXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gaXRlbVZhbHVlKCkgY29uc3Q7
CiAjZW5kaWYKQEAgLTEyOCwxNiArMTIwLDggQEAgcHJpdmF0ZToKICAgICBUZXh0RGlyZWN0aW9u
IGRpcmVjdGlvbmFsaXR5KE5vZGUqKiBzdHJvbmdEaXJlY3Rpb25hbGl0eVRleHROb2RlPSAwKSBj
b25zdDsKIAogI2lmIEVOQUJMRShNSUNST0RBVEEpCi0gICAgdm9pZCBzZXRJdGVtUHJvcChjb25z
dCBTdHJpbmcmKTsKLSAgICB2b2lkIHNldEl0ZW1SZWYoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9p
ZCBzZXRJdGVtVHlwZShjb25zdCBTdHJpbmcmKTsKLQogICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1W
YWx1ZVRleHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25z
dCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0
YWJsZVRva2VuTGlzdD4gbV9pdGVtUHJvcDsKLSAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJs
ZVRva2VuTGlzdD4gbV9pdGVtUmVmOwotICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9r
ZW5MaXN0PiBtX2l0ZW1UeXBlOwogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmlkbAkocmV2aXNpb24gMTAwMjY4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDEwIEBAIG1vZHVsZSBo
dG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFd
IERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1SZWY7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0YWJsZVRva2VuTGlzdCBpdGVtUHJvcDsK
IAorI2lmIGRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkgJiYgRU5BQkxFX01JQ1JPREFUQQorICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uIHByb3BlcnRpZXM7CisjZW5kaWYKKwogI2lmICFkZWZpbmVkKExBTkdV
QUdFX0NQUCkgfHwgIUxBTkdVQUdFX0NQUAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElW
RV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1NSUNST0RBVEEsIEN1c3RvbV0gRE9NT2JqZWN0IGl0ZW1WYWx1ZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICog
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIkhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5oIgorCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIK
KyNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworc3RhdGljIGlubGluZSBib29s
IGNvbXBhcmVUcmVlT3JkZXIoTm9kZSogbm9kZTEsIE5vZGUqIG5vZGUyKQoreworICAgIHJldHVy
biAobm9kZTItPmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG5vZGUxKSAmIChOb2RlOjpET0NVTUVO
VF9QT1NJVElPTl9QUkVDRURJTkcgfCBOb2RlOjpET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNU
RUQpKSA9PSBOb2RlOjpET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc7Cit9CisKK1Bhc3NSZWZQ
dHI8SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uPiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmNy
ZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGl0ZW1Ob2RlKQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKGl0ZW1Ob2RlKSk7Cit9CisKK0hUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4g
aXRlbU5vZGUpCisgICAgOiBIVE1MQ29sbGVjdGlvbihpdGVtTm9kZSwgSXRlbVByb3BlcnRpZXMp
CisgICAgLCBtX3Byb3BlcnR5TmFtZXMoRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCkpCit7Cit9CisK
K0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6fkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbigpCit7
Cit9CisKK3ZvaWQgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpmaW5kUHJvcGV0aWVzT2ZBbkl0
ZW0oTm9kZSogcm9vdCkgY29uc3QKK3sKKyAgICAvLyA1LjIuNSBBc3NvY2lhdGluZyBuYW1lcyB3
aXRoIGl0ZW1zLgorICAgIFZlY3RvcjxOb2RlKj4gbWVtb3J5LCBwZW5kaW5nOworCisgICAgbWVt
b3J5LmFwcGVuZChyb290KTsKKworICAgIC8vIEFkZCB0aGUgY2hpbGQgZWxlbWVudHMgb2Ygcm9v
dCwgaWYgYW55LCB0byBwZW5kaW5nLgorICAgIGZvciAoTm9kZSogY2hpbGQgPSByb290LT5maXJz
dENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICBw
ZW5kaW5nLmFwcGVuZChjaGlsZCk7CisKKyAgICAvLyBJZiByb290IGhhcyBhbiBpdGVtcmVmIGF0
dHJpYnV0ZSwgc3BsaXQgdGhlIHZhbHVlIG9mIHRoYXQgaXRlbXJlZiBhdHRyaWJ1dGUgb24gc3Bh
Y2VzLgorICAgIC8vIEZvciBlYWNoIHJlc3VsdGluZyB0b2tlbiBJRCwgaWYgdGhlcmUgaXMgYW4g
ZWxlbWVudCBpbiB0aGUgaG9tZSBzdWJ0cmVlIG9mIHJvb3Qgd2l0aCB0aGUgSUQgSUQsCisgICAg
Ly8gdGhlbiBhZGQgdGhlIGZpcnN0IHN1Y2ggZWxlbWVudCB0byBwZW5kaW5nLgorICAgIGlmICh0
b0hUTUxFbGVtZW50KHJvb3QpLT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1yZWZBdHRyKSkgeworICAg
ICAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVJlZiA9IHJvb3QtPml0ZW1SZWYoKTsKKwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGl0ZW1SZWYtPmxlbmd0aCgpOyArK2kpIHsK
KyAgICAgICAgICAgIEF0b21pY1N0cmluZyBpZCA9IGl0ZW1SZWYtPml0ZW0oaSk7CisKKyAgICAg
ICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSByb290LT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJ
ZChpZCk7CisgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAg
ICAgICAgICAgIHBlbmRpbmcuYXBwZW5kKGVsZW1lbnQpOworICAgICAgICB9CisgICAgfQorCisg
ICAgLy8gTG9vcCB0aWxsIHdlIGhhdmUgcHJvY2Vzc2VkIGFsbCBwZW5kaW5nIGVsZW1lbnRzCisg
ICAgd2hpbGUgKCFwZW5kaW5nLmlzRW1wdHkoKSkgeworCisgICAgICAgIC8vIFJlbW92ZSBmaXJz
dCBlbGVtZW50IGZyb20gcGVuZGluZyBhbmQgbGV0IGN1cnJlbnQgYmUgdGhhdCBlbGVtZW50Lgor
ICAgICAgICBOb2RlKiBjdXJyZW50ID0gcGVuZGluZ1swXTsKKyAgICAgICAgcGVuZGluZy5yZW1v
dmUoMCk7CisKKyAgICAgICAgLy8gSWYgY3VycmVudCBpcyBhbHJlYWR5IGluIG1lbW9yeSwgdGhl
cmUgaXMgYSBtaWNyb2RhdGEgZXJyb3I7CisgICAgICAgIGlmIChtZW1vcnkuY29udGFpbnMoY3Vy
cmVudCkpIHsKKyAgICAgICAgICAgIC8vIG1pY3JvZGF0YSBlcnJvcjsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgbWVtb3J5LmFwcGVuZChjdXJyZW50KTsKKwor
ICAgICAgICAvLyBJZiBjdXJyZW50IGRvZXMgbm90IGhhdmUgYW4gaXRlbXNjb3BlIGF0dHJpYnV0
ZSwgdGhlbjogYWRkIGFsbCB0aGUgY2hpbGQgZWxlbWVudHMgb2YgY3VycmVudCB0byBwZW5kaW5n
LgorICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQoY3VycmVudCk7
CisgICAgICAgIGlmICghZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkg
eworICAgICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGN1cnJlbnQtPmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICAgICAgaWYg
KGNoaWxkLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgICAgIHBlbmRpbmcuYXBw
ZW5kKGNoaWxkKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIGN1cnJlbnQgaGFzIGFuIGl0
ZW1wcm9wIGF0dHJpYnV0ZSBzcGVjaWZpZWQsIGFkZCBpdCB0byByZXN1bHRzLgorICAgICAgICBp
ZiAoZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpKQorICAgICAgICAgICAg
IG1fcHJvcGVydGllcy5hcHBlbmQoY3VycmVudCk7CisgICAgfQorfQorCit1bnNpZ25lZCBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb246Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgaWYgKCFiYXNlKCkt
PmlzSFRNTEVsZW1lbnQoKSB8fCAhdG9IVE1MRWxlbWVudChiYXNlKCkpLT5mYXN0SGFzQXR0cmli
dXRlKGl0ZW1zY29wZUF0dHIpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIG1fcHJvcGVydGll
cy5jbGVhcigpOworICAgIGZpbmRQcm9wZXRpZXNPZkFuSXRlbShiYXNlKCkpOworICAgIHJldHVy
biBtX3Byb3BlcnRpZXMuc2l6ZSgpOworfQorCitOb2RlKiBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKCFiYXNlKCktPmlzSFRN
TEVsZW1lbnQoKSB8fCAhdG9IVE1MRWxlbWVudChiYXNlKCkpLT5mYXN0SGFzQXR0cmlidXRlKGl0
ZW1zY29wZUF0dHIpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIG1fcHJvcGVydGllcy5jbGVh
cigpOworICAgIGZpbmRQcm9wZXRpZXNPZkFuSXRlbShiYXNlKCkpOworCisgICAgaWYgKG1fcHJv
cGVydGllcy5zaXplKCkgPD0gaW5kZXgpCisgICAgICAgIHJldHVybiAwOworCisgICAgc3RkOjpz
b3J0KG1fcHJvcGVydGllcy5iZWdpbigpLCBtX3Byb3BlcnRpZXMuZW5kKCksIGNvbXBhcmVUcmVl
T3JkZXIpOworICAgIHJldHVybiBtX3Byb3BlcnRpZXNbaW5kZXhdOworfQorCitQYXNzUmVmUHRy
PERPTVN0cmluZ0xpc3Q+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZXMoKSBjb25zdAor
eworICAgIG1fcHJvcGVydGllcy5jbGVhcigpOworICAgIG1fcHJvcGVydHlOYW1lcy0+Y2xlYXIo
KTsKKworICAgIGlmICghYmFzZSgpLT5pc0hUTUxFbGVtZW50KCkgfHwgIXRvSFRNTEVsZW1lbnQo
YmFzZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkKKyAgICAgICAgcmV0dXJu
IG1fcHJvcGVydHlOYW1lczsKKworICAgIGZpbmRQcm9wZXRpZXNPZkFuSXRlbShiYXNlKCkpOwor
CisgICAgc3RkOjpzb3J0KG1fcHJvcGVydGllcy5iZWdpbigpLCBtX3Byb3BlcnRpZXMuZW5kKCks
IGNvbXBhcmVUcmVlT3JkZXIpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Byb3Bl
cnRpZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgLy8gRm9yIGVhY2ggaXRlbSBwcm9wZXJ0aWVz
LCBzcGxpdCB0aGUgdmFsdWUgb2YgdGhhdCBpdGVtcHJvcCBhdHRyaWJ1dGUgb24gc3BhY2VzLgor
ICAgICAgICAvLyBBZGQgYWxsIHRva2VucyB0byBwcm9wZXJ0eSBuYW1lcywgd2l0aCB0aGUgb3Jk
ZXIgcHJlc2VydmVkIGJ1dCB3aXRoIGR1cGxpY2F0ZXMgcmVtb3ZlZC4KKyAgICAgICAgRE9NU2V0
dGFibGVUb2tlbkxpc3QqIGl0ZW1Qcm9wZXJ0eSA9IG1fcHJvcGVydGllc1tpXS0+aXRlbVByb3Ao
KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpdGVtUHJvcGVydHktPmxlbmd0aCgp
OyArK2kpIHsKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBwcm9wZXJ0eU5hbWUgPSBpdGVtUHJv
cGVydHktPml0ZW0oaSk7CisgICAgICAgICAgICBpZiAobV9wcm9wZXJ0eU5hbWVzLT5pc0VtcHR5
KCkgfHwgIW1fcHJvcGVydHlOYW1lcy0+Y29udGFpbnMocHJvcGVydHlOYW1lKSkKKyAgICAgICAg
ICAgICAgICBtX3Byb3BlcnR5TmFtZXMtPmFwcGVuZChwcm9wZXJ0eU5hbWUpOworICAgICAgICB9
CisgICAgfQorCisgICAgcmV0dXJuIG1fcHJvcGVydHlOYW1lczsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3Jv
bGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29u
dHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbl9oCisjZGVmaW5lIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbl9oCisKKyNpZiBFTkFC
TEUoTUlDUk9EQVRBKQorCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgRE9NU3RyaW5nTGlzdDsKKworY2xhc3MgSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uIDogcHVibGljIEhUTUxDb2xsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE5v
ZGU+KTsKKyAgICB2aXJ0dWFsIH5IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24oKTsKKworICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0IE9WRVJSSURFOworCisgICAgdmlydHVhbCBOb2RlKiBpdGVt
KHVuc2lnbmVkKSBjb25zdCBPVkVSUklERTsKKworICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlz
dD4gbmFtZXMoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24oUGFzc1JlZlB0cjxOb2RlPik7CisKKyAgICB2b2lkIGZpbmRQcm9wZXRpZXNPZkFuSXRlbShO
b2RlKiBjdXJyZW50KSBjb25zdDsKKworICAgIG11dGFibGUgVmVjdG9yPE5vZGUqPiBtX3Byb3Bl
cnRpZXM7CisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gbV9wcm9wZXJ0eU5hbWVz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JP
REFUQSkKKworI2VuZGlmIC8vIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbl9oCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
aWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDExIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAor
ICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICog
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgewor
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLAorICAgICAg
ICBIYXNJbmRleEdldHRlcgorICAgIF0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIDogSFRNTENv
bGxlY3Rpb24geworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5n
dGg7CisgICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBuYW1lczsKKworICAgICAgICAvLyBG
SVhNRTogb3ZlcnJpZGUgaW5oZXJpdGVkIG5hbWVkSXRlbSgpCisgICAgfTsKK30KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDEwMDI2OCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDg4LDYgKzQ4OCw3IEBA
IG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbkNvbnN0
cnVjdG9yIEhUTUxDb2xsZWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgSFRNTEFsbENvbGxlY3Rp
b25Db25zdHJ1Y3RvciBIVE1MQWxsQ29sbGVjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtDb25k
aXRpb25hbD1NSUNST0RBVEFdIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbkNvbnN0cnVjdG9yIEhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIEhUTUxVbmtub3duRWxl
bWVudENvbnN0cnVjdG9yIEhUTUxVbmtub3duRWxlbWVudDsKIAogICAgICAgICBhdHRyaWJ1dGUg
W0pTQ0N1c3RvbUdldHRlciwgQ3VzdG9tQ29uc3RydWN0b3JdIEhUTUxJbWFnZUVsZW1lbnRDb25z
dHJ1Y3RvckNvbnN0cnVjdG9yIEltYWdlOyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDEwMDI2OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDExLTExLTE1ICBBcmtvIFNhaGEgIDxhcmtvQG1v
dG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IFN1cHBvcnQgZm9yIHByb3BlcnRpZXMg
YXR0cmlidXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzEwNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCB0ZXN0IGZvciBodG1sIHByb3BlcnRpZXMgY29sbGVjdGlvbnMuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZlcnMtZmlyc3QtZWxlbWVudC13aXRoLWdp
dmVuLWlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRh
L2l0ZW1yZWYtcmVmZXJzLWZpcnN0LWVsZW1lbnQtd2l0aC1naXZlbi1pZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktbXVzdC1iZS1jb3Jy
ZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL25h
bWVzLXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS10ZXN0Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24t
YmVoYXZpb3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUtYXR0ci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZp
b3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUtYXR0ci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29ycmVjdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVz
LWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1pZ25vcmUtcHJvcGVydGll
cy1vZi1uZXN0ZWQtaXRlbXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdub3JlLXByb3BlcnRpZXMt
b2YtbmVzdGVkLWl0ZW1zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0
YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRpZXMtYWRkZWQtaW4t
aXRlbXJlZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0
YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRpZXMtYWRkZWQtaW4t
aXRlbXJlZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVy
dGllcy1jb2xsZWN0aW9uLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3QuaHRtbDogQWRkZWQuCisK
IDIwMTEtMTEtMTUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSRUdSRVNTSU9OKHIxMDAxODIpOiBJdCBicm9rZSAyIGh0dHAvdGVzdHMvc2VjdXJpdHkg
dGVzdHMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLXJlZmVy
cy1maXJzdC1lbGVtZW50LXdpdGgtZ2l2ZW4taWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLXJlZmVycy1maXJzdC1lbGVt
ZW50LXdpdGgtZ2l2ZW4taWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtcmVmZXJzLWZpcnN0LWVsZW1lbnQtd2l0aC1n
aXZlbi1pZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMg
dGVzdCBlbnN1cmVzIHRoYXQgaXRlbXJlZiBtdXN0IHJlZmVyZW5jZSB0aGUgZmlyc3QgZWxlbWVu
dCB3aXRoIGEgZ2l2ZW4gaWQuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1BBU1Mg
aXRlbS5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMicgaXMgdHJ1ZQorUEFTUyBpdGVtLnByb3BlcnRp
ZXMuaXRlbSgwKSA9PSBlbGVtZW50LmNoaWxkTm9kZXNbMV0gaXMgdHJ1ZQorUEFTUyBpdGVtLnBy
b3BlcnRpZXMuaXRlbSgxKSA9PSBlbGVtZW50LmNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZCBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtcmVmZXJzLWZpcnN0
LWVsZW1lbnQtd2l0aC1naXZlbi1pZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLXJlZmVycy1maXJzdC1lbGVtZW50LXdpdGgtZ2l2ZW4t
aWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9p
dGVtcmVmLXJlZmVycy1maXJzdC1lbGVtZW50LXdpdGgtZ2l2ZW4taWQuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1yZWYgbXVzdCByZWZl
cmVuY2UgdGhlIGZpcnN0IGVsZW1lbnQgd2l0aCBhIGdpdmVuIGlkLjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2
Jyx7fSwnPGRpdiBpdGVtc2NvcGUgaXRlbXJlZj0iaWQxIj48L2Rpdj48ZGl2IGl0ZW1wcm9wPSJm
b28iIGlkPSJpZDEiPjxkaXYgaXRlbXByb3A9ImJhciI+PC9kaXY+PC9kaXY+PGRpdiBpdGVtcHJv
cD0iYmF6IiBpZD0iaWQxIj48L2Rpdj4nKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7Cit2YXIgaXRlbSA9IGVsZW1lbnQuY2hpbGROb2Rlc1swXTsKKworc2hvdWxkQmVUcnVl
KCJpdGVtLnByb3BlcnRpZXMubGVuZ3RoID09ICcyJyIpOworc2hvdWxkQmVUcnVlKCJpdGVtLnBy
b3BlcnRpZXMuaXRlbSgwKSA9PSBlbGVtZW50LmNoaWxkTm9kZXNbMV0iKTsKK3Nob3VsZEJlVHJ1
ZSgiaXRlbS5wcm9wZXJ0aWVzLml0ZW0oMSkgPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdLmZpcnN0
Q2hpbGQiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktbXVzdC1iZS1jb3JyZWN0LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
bmFtZXMtcHJvcGVydHktbXVzdC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJl
LWNvcnJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitUaGlz
IHRlc3RzIHRoYXQgbmFtZXMuaXRlbSgpIGFuZCBuYW1lc1tpbmRleF0gbXVzdCByZXR1cm4gY29y
cmVjdCBwcm9wZXJ0eSBuYW1lIGluIHRyZWUgb3JkZXIgYW5kIGl0IHNob3VsZCBub3QgY29udGFp
biBkdXBsaWNhdGUgdG9rZW5zLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQg
YXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1BBU1MgZWxlbWVudC5wcm9w
ZXJ0aWVzLm5hbWVzWzBdID09ICdmb28nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVz
Lm5hbWVzWzFdID09ICdiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVz
WzJdID09ICdiYXonIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzWzNdID09
ICdxdXgnIGlzIHRydWUKKworUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFtZXMuaXRlbSgwKSA9
PSAnZm9vJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lcy5pdGVtKDEpID09
ICdiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMikgPT0g
J2JheicgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFtZXMuaXRlbSgzKSA9PSAn
cXV4JyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3Bl
cnR5LW11c3QtYmUtY29ycmVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1t
dXN0LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3Jv
ZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3Rz
IHRoYXQgbmFtZXMuaXRlbSgpIGFuZCBuYW1lc1tpbmRleF0gbXVzdCByZXR1cm4gY29ycmVjdCBw
cm9wZXJ0eSBuYW1lIGluIHRyZWUgb3JkZXIgYW5kIGl0IHNob3VsZCBub3QgY29udGFpbiBkdXBs
aWNhdGUgdG9rZW5zLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3Zh
ciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1zY29wZTogJ2l0ZW1zY29wZSd9
LCc8ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PjxkaXYgaXRlbXByb3A9ImJhciI+PGRpdiBpdGVt
cHJvcD0iZm9vIj48L2Rpdj48ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PjwvZGl2PjxkaXYgaXRl
bXByb3A9ImJheiBxdXgiPjwvZGl2PicpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRp
ZXMubmFtZXNbMF0gPT0gJ2ZvbyciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVz
Lm5hbWVzWzFdID09ICdiYXInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5u
YW1lc1syXSA9PSAnYmF6JyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFt
ZXNbM10gPT0gJ3F1eCciKTsKKworZGVidWcoJycpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnBy
b3BlcnRpZXMubmFtZXMuaXRlbSgwKSA9PSAnZm9vJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50
LnByb3BlcnRpZXMubmFtZXMuaXRlbSgxKSA9PSAnYmFyJyIpOworc2hvdWxkQmVUcnVlKCJlbGVt
ZW50LnByb3BlcnRpZXMubmFtZXMuaXRlbSgyKSA9PSAnYmF6JyIpOworc2hvdWxkQmVUcnVlKCJl
bGVtZW50LnByb3BlcnRpZXMubmFtZXMuaXRlbSgzKSA9PSAncXV4JyIpOworCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9uYW1lcy1wcm9wZXJ0eS10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktdGVzdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJv
cGVydHktdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK25h
bWVzIHByb3BlcnR5IHNpbXBsZSB0ZXN0LgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2
CisKK1RoZSBuYW1lcyBwcm9wZXJ0eSBtdXN0IGJlIGRlZmluZWQuCitQQVNTIGVsZW1lbnQucHJv
cGVydGllcy5uYW1lcyBpcyBkZWZpbmVkLgorCitUaGUgbmFtZXMgcHJvcGVydHkgbXVzdCByZXR1
cm4gYSBET01TdHJpbmdMaXN0IG9iamVjdC4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVz
ID09ICdbb2JqZWN0IERPTVN0cmluZ0xpc3RdJyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktdGVzdC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5
LXRlc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21t
b24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5uYW1lcyBwcm9wZXJ0eSBzaW1w
bGUgdGVzdC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxl
bWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHt9KTsKKworZGVidWcoIjxicj5UaGUgbmFtZXMg
cHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkLiIpOworc2hvdWxkQmVEZWZpbmVkKCJlbGVtZW50LnBy
b3BlcnRpZXMubmFtZXMiKTsKKworZGVidWcoIjxicj5UaGUgbmFtZXMgcHJvcGVydHkgbXVzdCBy
ZXR1cm4gYSBET01TdHJpbmdMaXN0IG9iamVjdC4iKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5w
cm9wZXJ0aWVzLm5hbWVzID09ICdbb2JqZWN0IERPTVN0cmluZ0xpc3RdJyIpOworCis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZpb3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUt
YXR0ci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1iZWhhdmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29w
ZS1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZpb3ItYWRkLXJlbW92ZS1pdGVt
c2NvcGUtYXR0ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKK1Ro
aXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIHByb3BlcnRpZXMgY29sbGVjdGlvbiBvbiBhZGRpbmcg
b3IgcmVtb3ZpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZS4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5
cGU6IGRpdgorCitUaGUgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgYmUgZW1wdHkgaWYgdGhl
IGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBpdGVtc2NvcGUgYXR0cmlidXRlLgorUEFTUyBlbGVt
ZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcwJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVy
dGllc1swXSA9PSB1bmRlZmluZWQgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMuaXRl
bSgwKSA9PSB1bmRlZmluZWQgaXMgdHJ1ZQorCitUaGUgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11
c3QgYmVjb21lIHBvcHVsYXRlZCBpZiB3ZSBhZGQgaXRlbXNjb3BlIGF0dHJpYnV0ZS4KK1BBU1Mg
ZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMScgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnBy
b3BlcnRpZXNbMF0gPT0gZWxlbWVudC5maXJzdENoaWxkIGlzIHRydWUKK1BBU1MgZWxlbWVudC5w
cm9wZXJ0aWVzLml0ZW0oMCkgPT0gZWxlbWVudC5maXJzdENoaWxkIGlzIHRydWUKKworVGhlIHBy
b3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IGJlY29tZSBlbXB0eSBpZiB3ZSByZW1vdmUgaXRlbXNj
b3BlIGF0dHJpYnV0ZS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMCcgaXMg
dHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbMF0gPT0gdW5kZWZpbmVkIGlzIHRydWUKK1BB
U1MgZWxlbWVudC5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0gdW5kZWZpbmVkIGlzIHRydWUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9y
LWFkZC1yZW1vdmUtaXRlbXNjb3BlLWF0dHIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1y
ZW1vdmUtaXRlbXNjb3BlLWF0dHIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZpb3ItYWRkLXJlbW92
ZS1pdGVtc2NvcGUtYXR0ci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWlj
cm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVz
dHMgdGhlIGJlaGF2aW9yIG9mIHByb3BlcnRpZXMgY29sbGVjdGlvbiBvbiBhZGRpbmcgb3IgcmVt
b3ZpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHt9LCAnPGRpdiBp
dGVtcHJvcD0iZm9vIj5iYXI8L2Rpdj4nKTsKKworZGVidWcoIjxicj5UaGUgcHJvcGVydGllcyBj
b2xsZWN0aW9uIG11c3QgYmUgZW1wdHkgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBp
dGVtc2NvcGUgYXR0cmlidXRlLiIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMu
bGVuZ3RoID09ICcwJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbMF0gPT0g
dW5kZWZpbmVkIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5pdGVtKDApID09
IHVuZGVmaW5lZCIpOworCitkZWJ1ZygiPGJyPlRoZSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gbXVz
dCBiZWNvbWUgcG9wdWxhdGVkIGlmIHdlIGFkZCBpdGVtc2NvcGUgYXR0cmlidXRlLiIpOworZWxl
bWVudC5pdGVtU2NvcGUgPSB0cnVlOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMu
bGVuZ3RoID09ICcxJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbMF0gPT0g
ZWxlbWVudC5maXJzdENoaWxkIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5p
dGVtKDApID09IGVsZW1lbnQuZmlyc3RDaGlsZCIpOworCitkZWJ1ZygiPGJyPlRoZSBwcm9wZXJ0
aWVzIGNvbGxlY3Rpb24gbXVzdCBiZWNvbWUgZW1wdHkgaWYgd2UgcmVtb3ZlIGl0ZW1zY29wZSBh
dHRyaWJ1dGUuIik7CitlbGVtZW50Lml0ZW1TY29wZSA9IGZhbHNlOworc2hvdWxkQmVUcnVlKCJl
bGVtZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcwJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50
LnByb3BlcnRpZXNbMF0gPT0gdW5kZWZpbmVkIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJv
cGVydGllcy5pdGVtKDApID09IHVuZGVmaW5lZCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVz
LWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3Qt
YmUtY29ycmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29ycmVjdC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUgQEAKK1RoaXMgdGVzdCBlbnN1cmVz
IHRoYXQgcHJvcGVydGllcyBjb2xsZWN0aW9uIG9mIGEgTWljcm9kYXRhIGl0ZW0gbXVzdCBiZSBj
b3JyZWN0LgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBp
dGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKKworcHJvcGVydGllcy5sZW5ndGggbXVzdCBiZSB0
aGUgdG90YWwgbnVtYmVyIG9mIHByb3BlcnRpZXMuCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9u
Lmxlbmd0aCA9PSAnNCcgaXMgdHJ1ZQorCitwcm9wZXJ0aWVzLml0ZW0oaW5kZXgpIGFuZCBwcm9w
ZXJ0aWVzW2luZGV4XSBtdXN0IGdpdmUgZWFjaCBwcm9wZXJ0eSBpbiB0cmVlIG9yZGVyJworUEFT
UyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDApID09IGNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQor
UEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDEpID09IGNoaWxkTm9kZXNbMV0gaXMgdHJ1
ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDIpID09IGNoaWxkTm9kZXNbMV0uY2hp
bGROb2Rlc1swXSBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMykgPT0g
Y2hpbGROb2Rlc1syXSBpcyB0cnVlCisKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb25bMF0gPT0g
Y2hpbGROb2Rlc1swXSBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uWzFdID09IGNo
aWxkTm9kZXNbMV0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvblsyXSA9PSBjaGls
ZE5vZGVzWzFdLmNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlv
blszXSA9PSBjaGlsZE5vZGVzWzJdIGlzIHRydWUKK3Byb3BlcnRpZXNbaW5kZXhdIGFuZCBwcm9w
ZXJ0aWVzLml0ZW0oaW5kZXgpIG11c3QgcmV0dXJuIHVuZGVmaW5lZCBmb3Igb3V0IG9mIHJhbmdl
IGluZGV4LgorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbls0XSA9PSB1bmRlZmluZWQgaXMgdHJ1
ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDQpID09IHVuZGVmaW5lZCBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1t
dXN0LWJlLWNvcnJlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29ycmVjdC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29s
bGVjdGlvbi1tdXN0LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3QgZW5zdXJlcyB0aGF0IHByb3BlcnRpZXMgY29sbGVjdGlvbiBvZiBhIE1pY3JvZGF0
YSBpdGVtIG11c3QgYmUgY29ycmVjdC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtc2NvcGU6ICdp
dGVtc2NvcGUnfSwgJzxkaXYgaXRlbXByb3A9ImZvbyI+PC9kaXY+PGRpdiBpdGVtcHJvcD0iYmFy
Ij48ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PjwvZGl2PjxkaXYgaXRlbXByb3A9ImJheiBxdXgi
PjwvZGl2PicpOwordmFyIHByb3BlcnRpZXNDb2xsZWN0aW9uID0gZWxlbWVudC5wcm9wZXJ0aWVz
OwordmFyIGNoaWxkTm9kZXMgPSBlbGVtZW50LmNoaWxkTm9kZXM7CisKK2RlYnVnKCI8YnI+cHJv
cGVydGllcy5sZW5ndGggbXVzdCBiZSB0aGUgdG90YWwgbnVtYmVyIG9mIHByb3BlcnRpZXMuIik7
CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLmxlbmd0aCA9PSAnNCciKTsKKwor
ZGVidWcoIjxicj5wcm9wZXJ0aWVzLml0ZW0oaW5kZXgpIGFuZCBwcm9wZXJ0aWVzW2luZGV4XSBt
dXN0IGdpdmUgZWFjaCBwcm9wZXJ0eSBpbiB0cmVlIG9yZGVyJyIpOworc2hvdWxkQmVUcnVlKCJw
cm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDApID09IGNoaWxkTm9kZXNbMF0iKTsKK3Nob3VsZEJl
VHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgxKSA9PSBjaGlsZE5vZGVzWzFdIik7Citz
aG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMikgPT0gY2hpbGROb2Rlc1sx
XS5jaGlsZE5vZGVzWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0
ZW0oMykgPT0gY2hpbGROb2Rlc1syXSIpOworZGVidWcoJycpOworCitzaG91bGRCZVRydWUoInBy
b3BlcnRpZXNDb2xsZWN0aW9uWzBdID09IGNoaWxkTm9kZXNbMF0iKTsKK3Nob3VsZEJlVHJ1ZSgi
cHJvcGVydGllc0NvbGxlY3Rpb25bMV0gPT0gY2hpbGROb2Rlc1sxXSIpOworc2hvdWxkQmVUcnVl
KCJwcm9wZXJ0aWVzQ29sbGVjdGlvblsyXSA9PSBjaGlsZE5vZGVzWzFdLmNoaWxkTm9kZXNbMF0i
KTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb25bM10gPT0gY2hpbGROb2Rlc1sy
XSIpOworCitkZWJ1ZygicHJvcGVydGllc1tpbmRleF0gYW5kIHByb3BlcnRpZXMuaXRlbShpbmRl
eCkgbXVzdCByZXR1cm4gdW5kZWZpbmVkIGZvciBvdXQgb2YgcmFuZ2UgaW5kZXguIik7CitzaG91
bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uWzRdID09IHVuZGVmaW5lZCIpOworc2hvdWxk
QmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDQpID09IHVuZGVmaW5lZCIpOworCis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1pZ25vcmUtcHJvcGVydGllcy1v
Zi1uZXN0ZWQtaXRlbXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1pZ25vcmUtcHJvcGVy
dGllcy1vZi1uZXN0ZWQtaXRlbXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9y
ZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1pdGVtcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoZXQgcHJvcGVydGllcy5pdGVtIGFu
ZCBsZW5ndGggbXVzdCBpZ25vcmUgcHJvcGVydGllcyBvZiBuZXN0ZWQgaXRlbXMuCisKK0NyZWF0
ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6
IGl0ZW1zY29wZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5sZW5ndGggPT0gJzInIGlzIHRy
dWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb25bMF0gPT0gY2hpbGROb2Rlc1swXSBpcyB0cnVl
CitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMCkgPT0gY2hpbGROb2Rlc1swXSBpcyB0
cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uWzFdID09IGNoaWxkTm9kZXNbMV0uZmlyc3RD
aGlsZCBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMSkgPT0gY2hpbGRO
b2Rlc1sxXS5maXJzdENoaWxkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdub3JlLXByb3BlcnRpZXMtb2YtbmVzdGVk
LWl0ZW1zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9yZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1p
dGVtcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9yZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1p
dGVtcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRo
ZXQgcHJvcGVydGllcy5pdGVtIGFuZCBsZW5ndGggbXVzdCBpZ25vcmUgcHJvcGVydGllcyBvZiBu
ZXN0ZWQgaXRlbXMuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFy
IGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbXNjb3BlOiAnaXRlbXNjb3BlJ30s
ICc8ZGl2IGl0ZW1zY29wZSBpdGVtcHJvcD0iZm9vIj48ZGl2IGl0ZW1wcm9wPSJiYXIiPjwvZGl2
PjwvZGl2PjxkaXY+PGRpdiBpdGVtcHJvcD0iYmF6Ij48L2Rpdj48L2Rpdj4nKTsKK3ZhciBwcm9w
ZXJ0aWVzQ29sbGVjdGlvbiA9IGVsZW1lbnQucHJvcGVydGllczsKK3ZhciBjaGlsZE5vZGVzID0g
ZWxlbWVudC5jaGlsZE5vZGVzOworCitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9u
Lmxlbmd0aCA9PSAnMiciKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb25bMF0g
PT0gY2hpbGROb2Rlc1swXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5p
dGVtKDApID09IGNoaWxkTm9kZXNbMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxl
Y3Rpb25bMV0gPT0gY2hpbGROb2Rlc1sxXS5maXJzdENoaWxkIik7CitzaG91bGRCZVRydWUoInBy
b3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMSkgPT0gY2hpbGROb2Rlc1sxXS5maXJzdENoaWxkIik7
CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10aGUtcHJvcGVy
dGllcy1hZGRlZC1pbi1pdGVtcmVmLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3Qtc2VlLXRo
ZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1t
dXN0LXNlZS10aGUtcHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0cyB0aGF0IHByb3BlcnRpZXMuaXRl
bSBhbmQgbGVuZ3RoIG11c3Qgc2VlIHRoZSBwcm9wZXJ0aWVzIGFkZGVkIHdpdGggaXRlbXJlZi4K
KworUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5sZW5ndGggPT0gJzQnIGlzIHRydWUKK1BBU1Mg
cHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgwKSA9PSBkaXZzWzBdIGlzIHRydWUKK1BBU1MgcHJv
cGVydGllc0NvbGxlY3Rpb24uaXRlbSgxKSA9PSBkaXZzWzJdIGlzIHRydWUKK1BBU1MgcHJvcGVy
dGllc0NvbGxlY3Rpb24uaXRlbSgyKSA9PSBkaXZzWzNdIGlzIHRydWUKK1BBU1MgcHJvcGVydGll
c0NvbGxlY3Rpb24uaXRlbSgzKSA9PSBkaXZzWzRdIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3Qtc2VlLXRoZS1wcm9wZXJ0
aWVzLWFkZGVkLWluLWl0ZW1yZWYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3Qtc2VlLXRoZS1wcm9wZXJ0
aWVzLWFkZGVkLWluLWl0ZW1yZWYuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3Bl
cnRpZXMtYWRkZWQtaW4taXRlbXJlZi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdHMgdGhhdCBwcm9wZXJ0aWVzLml0ZW0gYW5kIGxlbmd0aCBtdXN0IHNlZSB0aGUgcHJv
cGVydGllcyBhZGRlZCB3aXRoIGl0ZW1yZWYuPC9wPgorCis8ZGl2IGl0ZW1wcm9wPSJmb28iIGlk
PSJpZDEiPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXJlZj0iaWQyIGlkMSI+Cis8ZGl2IGl0
ZW1wcm9wPSJiYXIiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGl0ZW1wcm9wPSJiYXoiIGlkPSJpZDIi
PgorPGRpdiBpdGVtcHJvcD0icXV4Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgaXRlbSA9IGRvY3VtZW50LmdldEl0ZW1zKClbMF07Cit2
YXIgcHJvcGVydGllc0NvbGxlY3Rpb24gPSBpdGVtLnByb3BlcnRpZXM7Cit2YXIgZGl2cyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYnKTsKKworc2hvdWxkQmVUcnVlKCJwcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5sZW5ndGggPT0gJzQnIik7CitzaG91bGRCZVRydWUoInByb3BlcnRp
ZXNDb2xsZWN0aW9uLml0ZW0oMCkgPT0gZGl2c1swXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0
aWVzQ29sbGVjdGlvbi5pdGVtKDEpID09IGRpdnNbMl0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVy
dGllc0NvbGxlY3Rpb24uaXRlbSgyKSA9PSBkaXZzWzNdIik7CitzaG91bGRCZVRydWUoInByb3Bl
cnRpZXNDb2xsZWN0aW9uLml0ZW0oMykgPT0gZGl2c1s0XSIpOworCisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3By
b3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3QtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMyBAQAorTWljcm9kYXRhIHByb3BlcnRpZXMgY29sbGVjdGlvbiBzaW1wbGUgdGVz
dC4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorCitUaGUgcHJvcGVydGllcyBwcm9w
ZXJ0eSBtdXN0IGJlIGRlZmluZWQuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcyBpcyBkZWZpbmVk
LgorCitUaGUgcHJvcGVydGllcyBwcm9wZXJ0eSBtdXN0IHJldHVybiBhIEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbiBvYmplY3QuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcyA9PSAnW29iamVjdCBI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb25dJyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJv
cGVydGllcy1jb2xsZWN0aW9uLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5N
aWNyb2RhdGEgcHJvcGVydGllcyBjb2xsZWN0aW9uIHNpbXBsZSB0ZXN0LjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgn
ZGl2Jywge30pOworCitkZWJ1ZygiPGJyPlRoZSBwcm9wZXJ0aWVzIHByb3BlcnR5IG11c3QgYmUg
ZGVmaW5lZC4iKTsKK3Nob3VsZEJlRGVmaW5lZCgiZWxlbWVudC5wcm9wZXJ0aWVzIik7CisKK2Rl
YnVnKCI8YnI+VGhlIHByb3BlcnRpZXMgcHJvcGVydHkgbXVzdCByZXR1cm4gYSBIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24gb2JqZWN0LiIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRp
ZXMgPT0gJ1tvYmplY3QgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uXSciKTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115575</attachid>
            <date>2011-11-17 06:10:23 -0800</date>
            <delta_ts>2011-11-23 07:13:35 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_71050.diff</filename>
            <type>text/plain</type>
            <size>54652</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBACisyMDExLTExLTE3ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IFN1cHBvcnQgZm9y
IHByb3BlcnRpZXMgYXR0cmlidXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEwNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgcHJvcGVydGllcyBhdHRyaWJ1dGUgcmV0dXJucyBhbiBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24gb2JqZWN0IHdpdGggYWxsIHRoZSBlbGVtZW50J3MKKyAgICAgICAg
cHJvcGVydGllcy4gT3RoZXJ3aXNlLCBhbiBlbXB0eSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24g
b2JqZWN0LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVy
dHktbXVzdC1iZS1jb3JyZWN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0
YS9uYW1lcy1wcm9wZXJ0eS10ZXN0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3Jv
RGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZpb3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUt
YXR0ci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1j
b2xsZWN0aW9uLW11c3QtYmUtY29ycmVjdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9N
aWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdub3JlLXByb3BlcnRpZXMtb2Yt
bmVzdGVkLWl0ZW1zLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9w
ZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRpZXMtYWRkZWQtaW4taXRlbXJl
Zi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xs
ZWN0aW9uLXRlc3QuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogYmluZGluZ3MvZ29i
amVjdC9HTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0
aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGRvbS9N
aWNyb0RhdGFJdGVtTGlzdC5jcHA6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6aXRlbVByb3ApOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0SXRl
bVByb3ApOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXRlbVJlZik6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjpzZXRJdGVtUmVmKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Oml0ZW1UeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldEl0ZW1UeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OnByb3BlcnRpZXMpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICog
ZG9tL05vZGVSYXJlRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjppdGVt
UHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnNldEl0ZW1Qcm9wKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6aXRlbVJlZik6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlUmFyZURhdGE6OnNldEl0ZW1SZWYpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVE
YXRhOjppdGVtVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnNldEl0ZW1U
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0YTo6cHJvcGVydGllcyk6CisgICAg
ICAgICogaHRtbC9Db2xsZWN0aW9uVHlwZS5oOgorICAgICAgICAqIGh0bWwvSFRNTENvbGxlY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246Oml0ZW1BZnRlcik6Cisg
ICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxl
bWVudDo6c2V0SXRlbVZhbHVlVGV4dCk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjb21wYXJlVHJl
ZU9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6SFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbjo6fkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmZpbmRQcm9wZXRpZXNPZkFuSXRlbSk6IEZpbmRzIHRo
ZSBwcm9wZXJ0aWVzIG9mIGFuIGl0ZW0uCisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb246Omxlbmd0aCk6IFJldHVybnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0
aGUgcHJvcGVydGllcyBjb2xsZWN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uOjppdGVtKTogUmV0dXJucyB0aGUgZWxlbWVudCB3aXRoIGluZGV4ICdpbmRl
eCcgZnJvbSB0aGUgY29sbGVjdGlvbi4gVGhlIGl0ZW1zIGFyZSBzb3J0ZWQgaW4gdHJlZSBvcmRl
ci4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZXMpOiBS
ZXR1cm5zIGEgRE9NU3RyaW5nTGlzdCB3aXRoIHRoZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgZWxl
bWVudHMgaW4gdGhlIGNvbGxlY3Rpb24gd2l0aCB0aGUgb3JkZXIgcHJlc2VydmVkIGJ1dCB3aXRo
IGR1cGxpY2F0ZXMgcmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5p
ZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMS0xMS0xNyAg
QmVuIE11cmRvY2ggIDxiZW5tQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXguCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTAwNjExKQorKysgU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI1Nyw2ICsyNTcs
NyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBodG1sL0hUTUxQYXJhbUVsZW1lbnQuaWRs
CiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaWRsCisgICAgaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsCiAgICAgaHRtbC9I
VE1MUXVvdGVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCiAgICAg
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTc2OSw2ICs3NzAsNyBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAogICAgIGh0bWwv
SFRNTFByZUVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorICAg
IGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAogICAgIGh0bWwvSFRNTFF1b3RlRWxl
bWVudC5jcHAKICAgICBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lv
biAxMDA2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNSw2ICsxMzUsNyBAQAogI2luY2x1ZGUgIkpTSGFzaENoYW5nZUV2ZW50LmNw
cCIKICNpbmNsdWRlICJKU0hpc3RvcnkuY3BwIgogI2luY2x1ZGUgIkpTSFRNTEFsbENvbGxlY3Rp
b24uY3BwIgorI2luY2x1ZGUgIkpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCIKICNpbmNs
dWRlICJKU0hUTUxBbmNob3JFbGVtZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxBcHBsZXRFbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJKU0hUTUxBcmVhRWxlbWVudC5jcHAiCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDEwMDYxMSkKKysrIFNvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE3OSw2ICsxNzksNyBAQCBE
T01fQ0xBU1NFUyA9IFwKICAgICBHZW9sb2NhdGlvbiBcCiAgICAgR2VvcG9zaXRpb24gXAogICAg
IEhUTUxBbGxDb2xsZWN0aW9uIFwKKyAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24gXAogICAg
IEhUTUxBbmNob3JFbGVtZW50IFwKICAgICBIVE1MQXBwbGV0RWxlbWVudCBcCiAgICAgSFRNTEFy
ZWFFbGVtZW50IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlzaW9uIDEw
MDYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2luZyBjb3B5
KQpAQCAtMjk1LDYgKzI5NSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgaHRtbC9IVE1MUGFy
YW1FbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwgXAogICAgIGh0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5pZGwgXAorICAgIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uLmlkbCBcCiAgICAgaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5pZGwgXAogICAgIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIFwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTAwNjExKQorKysgU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMzAzLDYg
KzMwMyw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0hUTUxQcmVFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1M
UHJvZ3Jlc3NFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcm9n
cmVzc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxRdW90ZUVsZW1l
bnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFF1b3RlRWxlbWVudC5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKQEAgLTE4
MTcsNiArMTgxOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUHJlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBc
CisJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxRdW90ZUVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMDA2MTEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC03NjAsNiArNzYwLDcgQEAgU09V
UkNFUyArPSBcCiAgICAgaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBcCiAgICAgaHRt
bC9IVE1MUHJlRWxlbWVudC5jcHAgXAogICAgIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAg
XAorICAgIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBcCiAgICAgaHRtbC9IVE1M
UXVvdGVFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgXAogICAg
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIFwKQEAgLTE4MzMsNiArMTgzNCw3IEBAIEhFQURF
UlMgKz0gXAogICAgIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oIFwKICAgICBodG1sL0hU
TUxQcmVFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oIFwKKyAgICBo
dG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIFwKICAgICBodG1sL0hUTUxRdW90ZUVsZW1l
bnQuaCBcCiAgICAgaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTAwNjExKQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xMzExLDYgKzEz
MTEsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSFRNTFBhcmFtRWxlbWVudC5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuaWRsJywKKyAgICAgICAgICAgICdodG1sL0hUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwnLAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsJywKICAgICAgICAgICAgICdo
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCcsCkBAIC01NTQ1LDYgKzU1NDYsOCBAQAogICAgICAg
ICAgICAgJ2h0bWwvSFRNTFByZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50
LmgnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCcsCisg
ICAgICAgICAgICAnaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCcsCiAgICAgICAgICAg
ICAnaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUXVv
dGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwJywK
QEAgLTc0NzQsNiArNzQ3Nyw4IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcmVFbGVtZW50LmgnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0hUTUxQcm9ncmVzc0VsZW1lbnQuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAnLAorICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxRdW90ZUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFF1b3RlRWxlbWVudC5o
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTFNjcmlwdEVsZW1lbnQuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMDA2MTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtODU5OCw2
ICs4NTk4LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNIVE1MUXVvdGVFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0
aW9uCkBAIC01NjU1NCw2ICs1NjYxMCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxc
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFF1b3RlRWxlbWVudC5jcHAiCiAJCQkJPgog
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAxMDA2MTEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjYsNiArMTY2LDggQEAgd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZl
ZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnRQcml2YXRlLmggXAogCURl
cml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJlRWxlbWVudFByaXZhdGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rp
b25Qcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUXVvdGVF
bGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxRdW90ZUVs
ZW1lbnRQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MU2Ny
aXB0RWxlbWVudC5jcHAgXApAQCAtMzQzLDYgKzM0NSw3IEBAIHdlYmtpdGd0a19idWlsdF9oX2Fw
aSArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVt
ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUGFyYW1FbGVtZW50
LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUXVvdGVFbGVtZW50Lmgg
XAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5oIFwK
IAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQuaCBcCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0
aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gMTAwNjExKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYg
KzMzLDExIEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21pY1N0cmluZy5oPgogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTk3LDYgKzEwMiwxMSBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhCiAgICAgICAgIGNhc2UgRG9jQWxsOgogICAgICAgICAgICAgd3JhcHBlciA9IENSRUFU
RV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEhUTUxBbGxDb2xsZWN0aW9uLCBjb2xs
ZWN0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAg
ICAgIGNhc2UgSXRlbVByb3BlcnRpZXM6CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RP
TV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLCBj
b2xsZWN0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9i
amVjdCwgSFRNTENvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOwogICAgICAgICAgICAgYnJlYWs7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHJldmlzaW9uIDEw
MDYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJdGVtTGlzdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogI2luY2x1
ZGUgIk1pY3JvRGF0YUl0ZW1MaXN0LmgiCiAKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlz
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEwMDYx
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0
LDYgKzExNCwxMSBAQAogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmg+CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3Qu
aCIKKyNpbmNsdWRlICJIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKKyNlbmRpZgorCiAjZGVm
aW5lIERVTVBfTk9ERV9TVEFUSVNUSUNTIDAKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTI5
OTcsNiArMzAwMiw0MyBAQCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
CiAgICAgfQogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK0RPTVNldHRhYmxlVG9rZW5MaXN0
KiBOb2RlOjppdGVtUHJvcCgpCit7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCktPml0ZW1Q
cm9wKCk7Cit9CisKK3ZvaWQgTm9kZTo6c2V0SXRlbVByb3AoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
K3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRJdGVtUHJvcCh2YWx1ZSk7Cit9CisKK0RPTVNl
dHRhYmxlVG9rZW5MaXN0KiBOb2RlOjppdGVtUmVmKCkKK3sKKyAgICByZXR1cm4gZW5zdXJlUmFy
ZURhdGEoKS0+aXRlbVJlZigpOworfQorCit2b2lkIE5vZGU6OnNldEl0ZW1SZWYoY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKK3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRJdGVtUmVmKHZhbHVlKTsK
K30KKworRE9NU2V0dGFibGVUb2tlbkxpc3QqIE5vZGU6Oml0ZW1UeXBlKCkKK3sKKyAgICByZXR1
cm4gZW5zdXJlUmFyZURhdGEoKS0+aXRlbVR5cGUoKTsKK30KKwordm9pZCBOb2RlOjpzZXRJdGVt
VHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGVuc3VyZVJhcmVEYXRhKCktPnNldEl0
ZW1UeXBlKHZhbHVlKTsKK30KKworSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBOb2RlOjpwcm9w
ZXJ0aWVzKCkKK3sKKyAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS0+cHJvcGVydGllcyh0aGlz
KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVH
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDEwMDYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDExIEBAIGNsYXNzIFNWR1VzZUVs
ZW1lbnQ7CiBjbGFzcyBUYWdOb2RlTGlzdDsKIGNsYXNzIFRyZWVTY29wZTsKIAorI2lmIEVOQUJM
RShNSUNST0RBVEEpCitjbGFzcyBET01TZXR0YWJsZVRva2VuTGlzdDsKK2NsYXNzIEhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbjsKKyNlbmRpZgorCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwog
CiBjb25zdCBpbnQgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgPSAyNTsKQEAgLTU4OCw2ICs1OTMsMTEg
QEAgcHVibGljOgogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICAgICB2b2lkIGl0ZW1UeXBlQXR0
cmlidXRlQ2hhbmdlZCgpOworCisgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1Qcm9wKCk7
CisgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1SZWYoKTsKKyAgICBET01TZXR0YWJsZVRv
a2VuTGlzdCogaXRlbVR5cGUoKTsKKyAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24qIHByb3Bl
cnRpZXMoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKQEAgLTc1
OCw2ICs3NjgsMTIgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0SGFzUmFyZVNWR0RhdGEoKSB7
IHNldEZsYWcoSGFzU1ZHUmFyZURhdGFGbGFnKTsgfQogICAgIHZvaWQgY2xlYXJIYXNSYXJlU1ZH
RGF0YSgpIHsgY2xlYXJGbGFnKEhhc1NWR1JhcmVEYXRhRmxhZyk7IH0KICNlbmRpZgorCisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKyAgICB2b2lkIHNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYpOwor
ICAgIHZvaWQgc2V0SXRlbVJlZihjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldEl0ZW1UeXBl
KGNvbnN0IFN0cmluZyYpOworI2VuZGlmCiB9OwogCiAvLyBVc2VkIGluIE5vZGU6OmFkZFN1YnJl
c291cmNlQXR0cmlidXRlVVJMcygpIGFuZCBpbiBhZGRTdWJyZXNvdXJjZVN0eWxlVVJMcygpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCShyZXZpc2lvbiAxMDA2MTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2
LDggQEAKICNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKIAogI2lmIEVOQUJMRShNSUNST0RB
VEEpCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKyNpbmNsdWRlICJIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJNaWNyb0RhdGFJdGVtTGlzdC5oIgogI2Vu
ZGlmCiAKQEAgLTE1Nyw2ICsxNTksNjQgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKyAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVByb3AoKSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKCFtX2l0ZW1Qcm9wKQorICAgICAgICAgICAgbV9pdGVt
UHJvcCA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgICAgICByZXR1cm4g
bV9pdGVtUHJvcC5nZXQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldEl0ZW1Qcm9wKGNvbnN0IFN0
cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoIW1faXRlbVByb3ApCisgICAgICAgICAg
ICBtX2l0ZW1Qcm9wID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgICAg
IG1faXRlbVByb3AtPnNldFZhbHVlKHZhbHVlKTsKKyAgICB9CisKKyAgICBET01TZXR0YWJsZVRv
a2VuTGlzdCogaXRlbVJlZigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1faXRlbVJlZikK
KyAgICAgICAgICAgIG1faXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsK
KworICAgICAgICByZXR1cm4gbV9pdGVtUmVmLmdldCgpOworICAgIH0KKworICAgIHZvaWQgc2V0
SXRlbVJlZihjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2l0ZW1S
ZWYpCisgICAgICAgICAgICBtX2l0ZW1SZWYgPSBET01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRl
KCk7CisKKyAgICAgICAgbV9pdGVtUmVmLT5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgfQorCisgICAg
RE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1UeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlm
ICghbV9pdGVtVHlwZSkKKyAgICAgICAgICAgIG1faXRlbVR5cGUgPSBET01TZXR0YWJsZVRva2Vu
TGlzdDo6Y3JlYXRlKCk7CisKKyAgICAgICAgcmV0dXJuIG1faXRlbVR5cGUuZ2V0KCk7CisgICAg
fQorCisgICAgdm9pZCBzZXRJdGVtVHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAg
ICAgICAgaWYgKCFtX2l0ZW1UeXBlKQorICAgICAgICAgICAgbV9pdGVtVHlwZSA9IERPTVNldHRh
YmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgICAgICBtX2l0ZW1UeXBlLT5zZXRWYWx1ZSh2
YWx1ZSk7CisgICAgfQorCisgICAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBwcm9wZXJ0aWVz
KE5vZGUqIG5vZGUpCisgICAgeworICAgICAgICBpZiAoIW1fcHJvcGVydGllcykKKyAgICAgICAg
ICAgIG1fcHJvcGVydGllcyA9IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y3JlYXRlKG5vZGUp
OworCisgICAgICAgIHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7CisgICAgfQorI2VuZGlmCisK
ICAgICBib29sIGlzRm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb2N1c2VkOyB9CiAgICAg
dm9pZCBzZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCkgeyBtX2lzRm9jdXNlZCA9IGZvY3VzZWQ7IH0K
IApAQCAtMTc4LDYgKzIzOCwxMyBAQCBwcml2YXRlOgogICAgIE93blB0cjxWZWN0b3I8T3duUHRy
PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24+ID4gPiBtX211dGF0aW9uT2JzZXJ2ZXJSZWdp
c3RyeTsKICAgICBPd25QdHI8SGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4g
PiBtX3RyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeTsKICNlbmRpZgorCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4g
bV9pdGVtUHJvcDsKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9p
dGVtUmVmOworICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBtX2l0ZW1U
eXBlOworICAgIG11dGFibGUgUmVmUHRyPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4gbV9wcm9w
ZXJ0aWVzOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oCShyZXZpc2lvbiAxMDA2MTEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0
LDEwIEBAIGVudW0gQ29sbGVjdGlvblR5cGUgewogICAgIERhdGFMaXN0T3B0aW9ucywKICAgICBN
YXBBcmVhcywKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgICAgIEl0ZW1Qcm9wZXJ0aWVz
LCAvLyBNaWNyb2RhdGEgaXRlbSBwcm9wZXJ0aWVzIGluIHRoZSBkb2N1bWVudAorI2VuZGlmCisK
ICAgICBPdGhlckNvbGxlY3Rpb24KIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENv
bGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMDA2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw5IEBAIEVsZW1l
bnQqIEhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0ZXIoRWxlbWUKICAgICAgICAgY2FzZSBTZWxlY3RP
cHRpb25zOgogICAgICAgICBjYXNlIERhdGFMaXN0T3B0aW9uczoKICAgICAgICAgY2FzZSBXaW5k
b3dOYW1lZEl0ZW1zOgorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgICAgIGNhc2UgSXRlbVBy
b3BlcnRpZXM6CisjZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGVD
aGlsZHJlbjoKICAgICAgICAgY2FzZSBUUkNlbGxzOgpAQCAtMTg5LDYgKzE5MiwxMiBAQCBFbGVt
ZW50KiBIVE1MQ29sbGVjdGlvbjo6aXRlbUFmdGVyKEVsZW1lCiAgICAgICAgICAgICBjYXNlIERv
Y0FsbDoKICAgICAgICAgICAgIGNhc2UgTm9kZUNoaWxkcmVuOgogICAgICAgICAgICAgICAgIHJl
dHVybiBlOworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgICAgICAgICBjYXNlIEl0ZW1Qcm9w
ZXJ0aWVzOgorICAgICAgICAgICAgICAgIGlmIChlLT5pc0hUTUxFbGVtZW50KCkgJiYgZS0+aGFz
QXR0cmlidXRlKGl0ZW1wcm9wQXR0cikpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgICAgICBjYXNlIERvY3VtZW50
TmFtZWRJdGVtczoKICAgICAgICAgICAgIGNhc2UgT3RoZXJDb2xsZWN0aW9uOgogICAgICAgICAg
ICAgY2FzZSBXaW5kb3dOYW1lZEl0ZW1zOgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDEwMDYxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA1LDM4ICsxMDA1LDYgQEAgYm9vbCBIVE1MRWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidQogfQogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
LVBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVtZW50OjppdGVtUHJvcCgp
IGNvbnN0Ci17Ci0gICAgaWYgKCFtX2l0ZW1Qcm9wKQotICAgICAgICBtX2l0ZW1Qcm9wID0gRE9N
U2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOwotCi0gICAgcmV0dXJuIG1faXRlbVByb3A7Ci19
Ci0KLXZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYgdmFsdWUpCi17
Ci0gICAgaWYgKCFtX2l0ZW1Qcm9wKQotICAgICAgICBtX2l0ZW1Qcm9wID0gRE9NU2V0dGFibGVU
b2tlbkxpc3Q6OmNyZWF0ZSgpOwotCi0gICAgbV9pdGVtUHJvcC0+c2V0VmFsdWUodmFsdWUpOwot
fQotCi1QYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVudDo6aXRlbVJl
ZigpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2l0ZW1SZWYpCi0gICAgICAgIG1faXRlbVJlZiA9IERP
TVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKLQotICAgIHJldHVybiBtX2l0ZW1SZWY7Ci19
Ci0KLXZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1SZWYoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsK
LSAgICBpZiAoIW1faXRlbVJlZikKLSAgICAgICAgbV9pdGVtUmVmID0gRE9NU2V0dGFibGVUb2tl
bkxpc3Q6OmNyZWF0ZSgpOwotCi0gICAgbV9pdGVtUmVmLT5zZXRWYWx1ZSh2YWx1ZSk7Ci19Ci0K
IHZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpIHx8
IGhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkgewpAQCAtMTA2NywyMiArMTAzNSw2IEBAIHZv
aWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QKIHsKICAgICBzZXRUZXh0Q29u
dGVudCh2YWx1ZSwgZWMpOwogfQotCi1QYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBI
VE1MRWxlbWVudDo6aXRlbVR5cGUoKSBjb25zdAotewotICAgIGlmICghbV9pdGVtVHlwZSkKLSAg
ICAgICAgbV9pdGVtVHlwZSA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKLQotICAg
IHJldHVybiBtX2l0ZW1UeXBlOwotfQotCi12b2lkIEhUTUxFbGVtZW50OjpzZXRJdGVtVHlwZShj
b25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIGlmICghbV9pdGVtVHlwZSkKLSAgICAgICAgbV9p
dGVtVHlwZSA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKLQotICAgIG1faXRlbVR5
cGUtPnNldFZhbHVlKHZhbHVlKTsKLX0KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiAxMDA2MTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEw
ICsyNSw2IEBACiAKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAKLSNpZiBFTkFCTEUoTUlD
Uk9EQVRBKQotI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCi0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwpAQCAtOTAsMTAgKzg2
LDYgQEAgcHVibGljOgogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uYWxpdHlJZmhhc0RpckF1
dG9BdHRyaWJ1dGUoYm9vbCYgaXNBdXRvKSBjb25zdDsKIAogI2lmIEVOQUJMRShNSUNST0RBVEEp
Ci0gICAgUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gaXRlbVJlZigpIGNvbnN0Owot
ICAgIFBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IGl0ZW1Qcm9wKCkgY29uc3Q7Ci0g
ICAgUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gaXRlbVR5cGUoKSBjb25zdDsKLQog
ICAgIHZvaWQgc2V0SXRlbVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBQYXNzUmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gaXRlbVZhbHVlKCkgY29uc3Q7CiAjZW5k
aWYKQEAgLTEyOCwxNiArMTIwLDggQEAgcHJpdmF0ZToKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVj
dGlvbmFsaXR5KE5vZGUqKiBzdHJvbmdEaXJlY3Rpb25hbGl0eVRleHROb2RlPSAwKSBjb25zdDsK
IAogI2lmIEVOQUJMRShNSUNST0RBVEEpCi0gICAgdm9pZCBzZXRJdGVtUHJvcChjb25zdCBTdHJp
bmcmKTsKLSAgICB2b2lkIHNldEl0ZW1SZWYoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRJ
dGVtVHlwZShjb25zdCBTdHJpbmcmKTsKLQogICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRl
eHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRv
a2VuTGlzdD4gbV9pdGVtUHJvcDsKLSAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2Vu
TGlzdD4gbV9pdGVtUmVmOwotICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0
PiBtX2l0ZW1UeXBlOwogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmlkbAkocmV2aXNpb24gMTAwNjExKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDEwIEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNl
dHRhYmxlVG9rZW5MaXN0IGl0ZW1SZWY7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0YWJsZVRva2VuTGlzdCBpdGVtUHJvcDsKIAorI2lm
IGRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkgJiYgRU5BQkxFX01JQ1JPREFUQQorICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uIHByb3BlcnRpZXM7CisjZW5kaWYKKwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQ
UCkgfHwgIUxBTkdVQUdFX0NQUAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8
fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb25k
aXRpb25hbD1NSUNST0RBVEEsIEN1c3RvbV0gRE9NT2JqZWN0IGl0ZW1WYWx1ZQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMp
IDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Us
CisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisg
KiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIkhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbi5oIgorCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKyNpbmNs
dWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworc3RhdGljIGlubGluZSBib29sIGNvbXBh
cmVUcmVlT3JkZXIoTm9kZSogbm9kZTEsIE5vZGUqIG5vZGUyKQoreworICAgIHJldHVybiAobm9k
ZTItPmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG5vZGUxKSAmIChOb2RlOjpET0NVTUVOVF9QT1NJ
VElPTl9QUkVDRURJTkcgfCBOb2RlOjpET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQpKSA9
PSBOb2RlOjpET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc7Cit9CisKK1Bhc3NSZWZQdHI8SFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uPiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmNyZWF0ZShQ
YXNzUmVmUHRyPE5vZGU+IGl0ZW1Ob2RlKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uKGl0ZW1Ob2RlKSk7Cit9CisKK0hUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbjo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gaXRlbU5v
ZGUpCisgICAgOiBIVE1MQ29sbGVjdGlvbihpdGVtTm9kZSwgSXRlbVByb3BlcnRpZXMpCisgICAg
LCBtX3Byb3BlcnR5TmFtZXMoRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCkpCit7Cit9CisKK0hUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbjo6fkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbigpCit7Cit9CisK
K3ZvaWQgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0oTm9k
ZSogcm9vdCkgY29uc3QKK3sKKyAgICAvLyA1LjIuNSBBc3NvY2lhdGluZyBuYW1lcyB3aXRoIGl0
ZW1zLgorICAgIFZlY3RvcjxOb2RlKj4gbWVtb3J5LCBwZW5kaW5nOworCisgICAgbWVtb3J5LmFw
cGVuZChyb290KTsKKworICAgIC8vIEFkZCB0aGUgY2hpbGQgZWxlbWVudHMgb2Ygcm9vdCwgaWYg
YW55LCB0byBwZW5kaW5nLgorICAgIGZvciAoTm9kZSogY2hpbGQgPSByb290LT5maXJzdENoaWxk
KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICBpZiAoY2hp
bGQtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHBlbmRpbmcuYXBwZW5kKGNoaWxkKTsK
KworICAgIC8vIElmIHJvb3QgaGFzIGFuIGl0ZW1yZWYgYXR0cmlidXRlLCBzcGxpdCB0aGUgdmFs
dWUgb2YgdGhhdCBpdGVtcmVmIGF0dHJpYnV0ZSBvbiBzcGFjZXMuCisgICAgLy8gRm9yIGVhY2gg
cmVzdWx0aW5nIHRva2VuIElELCBpZiB0aGVyZSBpcyBhbiBlbGVtZW50IGluIHRoZSBob21lIHN1
YnRyZWUgb2Ygcm9vdCB3aXRoIHRoZSBJRCBJRCwKKyAgICAvLyB0aGVuIGFkZCB0aGUgZmlyc3Qg
c3VjaCBlbGVtZW50IHRvIHBlbmRpbmcuCisgICAgaWYgKHRvSFRNTEVsZW1lbnQocm9vdCktPmZh
c3RIYXNBdHRyaWJ1dGUoaXRlbXJlZkF0dHIpKSB7CisgICAgICAgIERPTVNldHRhYmxlVG9rZW5M
aXN0KiBpdGVtUmVmID0gcm9vdC0+aXRlbVJlZigpOworCisgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgaXRlbVJlZi0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgQXRvbWljU3Ry
aW5nIGlkID0gaXRlbVJlZi0+aXRlbShpKTsKKworICAgICAgICAgICAgRWxlbWVudCogZWxlbWVu
dCA9IHJvb3QtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgICAgIGlm
IChlbGVtZW50ICYmIGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICBw
ZW5kaW5nLmFwcGVuZChlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIExvb3Ag
dGlsbCB3ZSBoYXZlIHByb2Nlc3NlZCBhbGwgcGVuZGluZyBlbGVtZW50cworICAgIHdoaWxlICgh
cGVuZGluZy5pc0VtcHR5KCkpIHsKKworICAgICAgICAvLyBSZW1vdmUgZmlyc3QgZWxlbWVudCBm
cm9tIHBlbmRpbmcgYW5kIGxldCBjdXJyZW50IGJlIHRoYXQgZWxlbWVudC4KKyAgICAgICAgTm9k
ZSogY3VycmVudCA9IHBlbmRpbmdbMF07CisgICAgICAgIHBlbmRpbmcucmVtb3ZlKDApOworCisg
ICAgICAgIC8vIElmIGN1cnJlbnQgaXMgYWxyZWFkeSBpbiBtZW1vcnksIHRoZXJlIGlzIGEgbWlj
cm9kYXRhIGVycm9yOworICAgICAgICBpZiAobWVtb3J5LmNvbnRhaW5zKGN1cnJlbnQpKSB7Cisg
ICAgICAgICAgICAvLyBtaWNyb2RhdGEgZXJyb3I7CisgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIG1lbW9yeS5hcHBlbmQoY3VycmVudCk7CisKKyAgICAgICAgLy8g
SWYgY3VycmVudCBkb2VzIG5vdCBoYXZlIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUsIHRoZW46IGFk
ZCBhbGwgdGhlIGNoaWxkIGVsZW1lbnRzIG9mIGN1cnJlbnQgdG8gcGVuZGluZy4KKyAgICAgICAg
SFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KGN1cnJlbnQpOworICAgICAgICBp
ZiAoIWVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpIHsKKyAgICAgICAg
ICAgIGZvciAoTm9kZSogY2hpbGQgPSBjdXJyZW50LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNI
VE1MRWxlbWVudCgpKQorICAgICAgICAgICAgICAgICAgICBwZW5kaW5nLmFwcGVuZChjaGlsZCk7
CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiBjdXJyZW50IGhhcyBhbiBpdGVtcHJvcCBhdHRy
aWJ1dGUgc3BlY2lmaWVkLCBhZGQgaXQgdG8gcmVzdWx0cy4KKyAgICAgICAgaWYgKGVsZW1lbnQt
PmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXByb3BBdHRyKSkKKyAgICAgICAgICAgICBtX3Byb3BlcnRp
ZXMuYXBwZW5kKGN1cnJlbnQpOworICAgIH0KK30KKwordW5zaWduZWQgSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uOjpsZW5ndGgoKSBjb25zdAoreworICAgIGlmICghYmFzZSgpLT5pc0hUTUxFbGVt
ZW50KCkgfHwgIXRvSFRNTEVsZW1lbnQoYmFzZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2Nv
cGVBdHRyKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBtX3Byb3BlcnRpZXMuY2xlYXIoKTsK
KyAgICBmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0oYmFzZSgpKTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0
aWVzLnNpemUoKTsKK30KKworTm9kZSogSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjppdGVtKHVu
c2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIGlmICghYmFzZSgpLT5pc0hUTUxFbGVtZW50KCkg
fHwgIXRvSFRNTEVsZW1lbnQoYmFzZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRy
KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBtX3Byb3BlcnRpZXMuY2xlYXIoKTsKKyAgICBm
aW5kUHJvcGV0aWVzT2ZBbkl0ZW0oYmFzZSgpKTsKKworICAgIGlmIChtX3Byb3BlcnRpZXMuc2l6
ZSgpIDw9IGluZGV4KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHN0ZDo6c29ydChtX3Byb3Bl
cnRpZXMuYmVnaW4oKSwgbV9wcm9wZXJ0aWVzLmVuZCgpLCBjb21wYXJlVHJlZU9yZGVyKTsKKyAg
ICByZXR1cm4gbV9wcm9wZXJ0aWVzW2luZGV4XTsKK30KKworUGFzc1JlZlB0cjxET01TdHJpbmdM
aXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVzKCkgY29uc3QKK3sKKyAgICBtX3By
b3BlcnRpZXMuY2xlYXIoKTsKKyAgICBtX3Byb3BlcnR5TmFtZXMtPmNsZWFyKCk7CisKKyAgICBp
ZiAoIWJhc2UoKS0+aXNIVE1MRWxlbWVudCgpIHx8ICF0b0hUTUxFbGVtZW50KGJhc2UoKSktPmZh
c3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCisgICAgICAgIHJldHVybiBtX3Byb3BlcnR5
TmFtZXM7CisKKyAgICBmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0oYmFzZSgpKTsKKworICAgIHN0ZDo6
c29ydChtX3Byb3BlcnRpZXMuYmVnaW4oKSwgbV9wcm9wZXJ0aWVzLmVuZCgpLCBjb21wYXJlVHJl
ZU9yZGVyKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wcm9wZXJ0aWVzLnNpemUo
KTsgKytpKSB7CisgICAgICAgIC8vIEZvciBlYWNoIGl0ZW0gcHJvcGVydGllcywgc3BsaXQgdGhl
IHZhbHVlIG9mIHRoYXQgaXRlbXByb3AgYXR0cmlidXRlIG9uIHNwYWNlcy4KKyAgICAgICAgLy8g
QWRkIGFsbCB0b2tlbnMgdG8gcHJvcGVydHkgbmFtZXMsIHdpdGggdGhlIG9yZGVyIHByZXNlcnZl
ZCBidXQgd2l0aCBkdXBsaWNhdGVzIHJlbW92ZWQuCisgICAgICAgIERPTVNldHRhYmxlVG9rZW5M
aXN0KiBpdGVtUHJvcGVydHkgPSBtX3Byb3BlcnRpZXNbaV0tPml0ZW1Qcm9wKCk7CisgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXRlbVByb3BlcnR5LT5sZW5ndGgoKTsgKytpKSB7Cisg
ICAgICAgICAgICBBdG9taWNTdHJpbmcgcHJvcGVydHlOYW1lID0gaXRlbVByb3BlcnR5LT5pdGVt
KGkpOworICAgICAgICAgICAgaWYgKG1fcHJvcGVydHlOYW1lcy0+aXNFbXB0eSgpIHx8ICFtX3By
b3BlcnR5TmFtZXMtPmNvbnRhaW5zKHByb3BlcnR5TmFtZSkpCisgICAgICAgICAgICAgICAgbV9w
cm9wZXJ0eU5hbWVzLT5hcHBlbmQocHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp
b24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1v
dG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb25faAor
I2RlZmluZSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb25faAorCisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKKworI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIERPTVN0cmluZ0xpc3Q7CisKK2NsYXNzIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiA6
IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPik7CisgICAg
dmlydHVhbCB+SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKCk7CisKKyAgICB1bnNpZ25lZCBsZW5n
dGgoKSBjb25zdCBPVkVSUklERTsKKworICAgIHZpcnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCkg
Y29uc3QgT1ZFUlJJREU7CisKKyAgICBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG5hbWVzKCkg
Y29uc3Q7CisKK3ByaXZhdGU6CisgICAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKFBhc3NSZWZQ
dHI8Tm9kZT4pOworCisgICAgdm9pZCBmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0oTm9kZSogY3VycmVu
dCkgY29uc3Q7CisKKyAgICBtdXRhYmxlIFZlY3RvcjxOb2RlKj4gbV9wcm9wZXJ0aWVzOworICAg
IG11dGFibGUgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG1fcHJvcGVydHlOYW1lczsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCisKKyNl
bmRpZiAvLyBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb25faApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBNb3Rvcm9s
YSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQg
bW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUg
bmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
CisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVy
ZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1JQ1JPREFUQSwKKyAgICAgICAgSGFzSW5kZXhH
ZXR0ZXIKKyAgICBdIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiA6IEhUTUxDb2xsZWN0aW9uIHsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOworICAgICAg
ICBOb2RlIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZ0xpc3QgbmFtZXM7CisKKyAgICAgICAgLy8gRklYTUU6IG92ZXJy
aWRlIGluaGVyaXRlZCBuYW1lZEl0ZW0oKQorICAgIH07Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCShyZXZpc2lvbiAxMDA2MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ4OCw2ICs0ODgsNyBAQCBtb2R1bGUgd2lu
ZG93IHsKIAogICAgICAgICBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb25Db25zdHJ1Y3RvciBIVE1M
Q29sbGVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIEhUTUxBbGxDb2xsZWN0aW9uQ29uc3RydWN0
b3IgSFRNTEFsbENvbGxlY3Rpb247CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlD
Uk9EQVRBXSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb25Db25zdHJ1Y3RvciBIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb247CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MVW5rbm93bkVsZW1lbnRDb25zdHJ1
Y3RvciBIVE1MVW5rbm93bkVsZW1lbnQ7CiAKICAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21H
ZXR0ZXIsIEN1c3RvbUNvbnN0cnVjdG9yXSBIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvciBJbWFnZTsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMDA2MTEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyNyBAQAorMjAxMS0xMS0xNyAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+
CisKKyAgICAgICAgTWljcm9kYXRhOiBTdXBwb3J0IGZvciBwcm9wZXJ0aWVzIGF0dHJpYnV0ZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDUwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVz
dCBmb3IgaHRtbCBwcm9wZXJ0aWVzIGNvbGxlY3Rpb25zLgorCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhL25hbWVzLXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJl
LWNvcnJlY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL25hbWVz
LXByb3BlcnR5LXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9N
aWNyb0RhdGEvbmFtZXMtcHJvcGVydHktdGVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUt
aXRlbXNjb3BlLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9N
aWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUtaXRlbXNj
b3BlLWF0dHIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3Bl
cnRpZXMtY29sbGVjdGlvbi1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUt
Y29ycmVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVy
dGllcy1jb2xsZWN0aW9uLW11c3QtaWdub3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRp
ZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9yZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1pdGVtcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0
aW9uLW11c3Qtc2VlLXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0
aW9uLW11c3Qtc2VlLXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3Bl
cnRpZXMtY29sbGVjdGlvbi10ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDExLTExLTE3ICBTdGV2ZSBC
bG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBTZXZlcmFsIGFuaW1hdGlv
bnMvIHRlc3RzIGZsYWtpbHkgZmFpbCBkdWUgdG8gZnJhZ2lsZSBzZXRUaW1lb3V0KCktYmFzZWQg
ZnJhbWV3b3JrCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJv
cGVydHktbXVzdC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktbXVzdC1iZS1jb3JyZWN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE3IEBACitUaGlzIHRlc3RzIHRoYXQgbmFtZXMuaXRlbSgpIGFuZCBuYW1l
c1tpbmRleF0gbXVzdCByZXR1cm4gY29ycmVjdCBwcm9wZXJ0eSBuYW1lIGluIHRyZWUgb3JkZXIg
YW5kIGl0IHNob3VsZCBub3QgY29udGFpbiBkdXBsaWNhdGUgdG9rZW5zLgorCitDcmVhdGVkIGVs
ZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVt
c2NvcGUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzWzBdID09ICdmb28nIGlzIHRydWUK
K1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzWzFdID09ICdiYXInIGlzIHRydWUKK1BBU1Mg
ZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzWzJdID09ICdiYXonIGlzIHRydWUKK1BBU1MgZWxlbWVu
dC5wcm9wZXJ0aWVzLm5hbWVzWzNdID09ICdxdXgnIGlzIHRydWUKKworUEFTUyBlbGVtZW50LnBy
b3BlcnRpZXMubmFtZXMuaXRlbSgwKSA9PSAnZm9vJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJv
cGVydGllcy5uYW1lcy5pdGVtKDEpID09ICdiYXInIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9w
ZXJ0aWVzLm5hbWVzLml0ZW0oMikgPT0gJ2JheicgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3Bl
cnRpZXMubmFtZXMuaXRlbSgzKSA9PSAncXV4JyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0
LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgbmFtZXMuaXRlbSgpIGFuZCBuYW1lc1tpbmRl
eF0gbXVzdCByZXR1cm4gY29ycmVjdCBwcm9wZXJ0eSBuYW1lIGluIHRyZWUgb3JkZXIgYW5kIGl0
IHNob3VsZCBub3QgY29udGFpbiBkdXBsaWNhdGUgdG9rZW5zLjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywg
e2l0ZW1zY29wZTogJ2l0ZW1zY29wZSd9LCc8ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PjxkaXYg
aXRlbXByb3A9ImJhciI+PGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rpdj48ZGl2IGl0ZW1wcm9wPSJm
b28iPjwvZGl2PjwvZGl2PjxkaXYgaXRlbXByb3A9ImJheiBxdXgiPjwvZGl2PicpOworc2hvdWxk
QmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZXNbMF0gPT0gJ2ZvbyciKTsKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzWzFdID09ICdiYXInIik7CitzaG91bGRCZVRy
dWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lc1syXSA9PSAnYmF6JyIpOworc2hvdWxkQmVUcnVl
KCJlbGVtZW50LnByb3BlcnRpZXMubmFtZXNbM10gPT0gJ3F1eCciKTsKKworZGVidWcoJycpOwor
c2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZXMuaXRlbSgwKSA9PSAnZm9vJyIp
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZXMuaXRlbSgxKSA9PSAnYmFy
JyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZXMuaXRlbSgyKSA9PSAn
YmF6JyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZXMuaXRlbSgzKSA9
PSAncXV4JyIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS10ZXN0LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJv
cGVydHktdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTMgQEAKK25hbWVzIHByb3BlcnR5IHNpbXBsZSB0ZXN0LgorCitDcmVh
dGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CisKK1RoZSBuYW1lcyBwcm9wZXJ0eSBtdXN0IGJlIGRl
ZmluZWQuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lcyBpcyBkZWZpbmVkLgorCitUaGUg
bmFtZXMgcHJvcGVydHkgbXVzdCByZXR1cm4gYSBET01TdHJpbmdMaXN0IG9iamVjdC4KK1BBU1Mg
ZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzID09ICdbb2JqZWN0IERPTVN0cmluZ0xpc3RdJyBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3Qu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMt
cHJvcGVydHktdGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cD5uYW1lcyBwcm9wZXJ0eSBzaW1wbGUgdGVzdC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHt9KTsK
KworZGVidWcoIjxicj5UaGUgbmFtZXMgcHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkLiIpOworc2hv
dWxkQmVEZWZpbmVkKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZXMiKTsKKworZGVidWcoIjxicj5U
aGUgbmFtZXMgcHJvcGVydHkgbXVzdCByZXR1cm4gYSBET01TdHJpbmdMaXN0IG9iamVjdC4iKTsK
K3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzID09ICdbb2JqZWN0IERPTVN0
cmluZ0xpc3RdJyIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZp
b3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUtYXR0ci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1iZWhh
dmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24t
YmVoYXZpb3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUtYXR0ci1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIHByb3BlcnRp
ZXMgY29sbGVjdGlvbiBvbiBhZGRpbmcgb3IgcmVtb3ZpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZS4K
KworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorCitUaGUgcHJvcGVydGllcyBjb2xsZWN0
aW9uIG11c3QgYmUgZW1wdHkgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBpdGVtc2Nv
cGUgYXR0cmlidXRlLgorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcwJyBpcyB0
cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1swXSA9PSB1bmRlZmluZWQgaXMgdHJ1ZQorUEFT
UyBlbGVtZW50LnByb3BlcnRpZXMuaXRlbSgwKSA9PSB1bmRlZmluZWQgaXMgdHJ1ZQorCitUaGUg
cHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgYmVjb21lIHBvcHVsYXRlZCBpZiB3ZSBhZGQgaXRl
bXNjb3BlIGF0dHJpYnV0ZS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMScg
aXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbMF0gPT0gZWxlbWVudC5maXJzdENoaWxk
IGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0gZWxlbWVudC5maXJz
dENoaWxkIGlzIHRydWUKKworVGhlIHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IGJlY29tZSBl
bXB0eSBpZiB3ZSByZW1vdmUgaXRlbXNjb3BlIGF0dHJpYnV0ZS4KK1BBU1MgZWxlbWVudC5wcm9w
ZXJ0aWVzLmxlbmd0aCA9PSAnMCcgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbMF0g
PT0gdW5kZWZpbmVkIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0g
dW5kZWZpbmVkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVy
dGllcy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUtaXRlbXNjb3BlLWF0dHIuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1j
b2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUtaXRlbXNjb3BlLWF0dHIuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxl
Y3Rpb24tYmVoYXZpb3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUtYXR0ci5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIHByb3BlcnRpZXMgY29s
bGVjdGlvbiBvbiBhZGRpbmcgb3IgcmVtb3ZpbmcgaXRlbXNjb3BlIGF0dHJpYnV0ZS48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVs
ZW1lbnQoJ2RpdicsIHt9LCAnPGRpdiBpdGVtcHJvcD0iZm9vIj5iYXI8L2Rpdj4nKTsKKworZGVi
dWcoIjxicj5UaGUgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgYmUgZW1wdHkgaWYgdGhlIGVs
ZW1lbnQgZG9lcyBub3QgaGF2ZSBhbiBpdGVtc2NvcGUgYXR0cmlidXRlLiIpOworc2hvdWxkQmVU
cnVlKCJlbGVtZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcwJyIpOworc2hvdWxkQmVUcnVlKCJl
bGVtZW50LnByb3BlcnRpZXNbMF0gPT0gdW5kZWZpbmVkIik7CitzaG91bGRCZVRydWUoImVsZW1l
bnQucHJvcGVydGllcy5pdGVtKDApID09IHVuZGVmaW5lZCIpOworCitkZWJ1ZygiPGJyPlRoZSBw
cm9wZXJ0aWVzIGNvbGxlY3Rpb24gbXVzdCBiZWNvbWUgcG9wdWxhdGVkIGlmIHdlIGFkZCBpdGVt
c2NvcGUgYXR0cmlidXRlLiIpOworZWxlbWVudC5pdGVtU2NvcGUgPSB0cnVlOworc2hvdWxkQmVU
cnVlKCJlbGVtZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcxJyIpOworc2hvdWxkQmVUcnVlKCJl
bGVtZW50LnByb3BlcnRpZXNbMF0gPT0gZWxlbWVudC5maXJzdENoaWxkIik7CitzaG91bGRCZVRy
dWUoImVsZW1lbnQucHJvcGVydGllcy5pdGVtKDApID09IGVsZW1lbnQuZmlyc3RDaGlsZCIpOwor
CitkZWJ1ZygiPGJyPlRoZSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gbXVzdCBiZWNvbWUgZW1wdHkg
aWYgd2UgcmVtb3ZlIGl0ZW1zY29wZSBhdHRyaWJ1dGUuIik7CitlbGVtZW50Lml0ZW1TY29wZSA9
IGZhbHNlOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcwJyIp
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbMF0gPT0gdW5kZWZpbmVkIik7Citz
aG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5pdGVtKDApID09IHVuZGVmaW5lZCIpOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJv
cGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0
aW9uLW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MjUgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRoYXQgcHJvcGVydGllcyBjb2xsZWN0aW9uIG9mIGEg
TWljcm9kYXRhIGl0ZW0gbXVzdCBiZSBjb3JyZWN0LgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlw
ZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKKworcHJv
cGVydGllcy5sZW5ndGggbXVzdCBiZSB0aGUgdG90YWwgbnVtYmVyIG9mIHByb3BlcnRpZXMuCitQ
QVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLmxlbmd0aCA9PSAnNCcgaXMgdHJ1ZQorCitwcm9wZXJ0
aWVzLml0ZW0oaW5kZXgpIGFuZCBwcm9wZXJ0aWVzW2luZGV4XSBtdXN0IGdpdmUgZWFjaCBwcm9w
ZXJ0eSBpbiB0cmVlIG9yZGVyJworUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDApID09
IGNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDEp
ID09IGNoaWxkTm9kZXNbMV0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVt
KDIpID09IGNoaWxkTm9kZXNbMV0uY2hpbGROb2Rlc1swXSBpcyB0cnVlCitQQVNTIHByb3BlcnRp
ZXNDb2xsZWN0aW9uLml0ZW0oMykgPT0gY2hpbGROb2Rlc1syXSBpcyB0cnVlCisKK1BBU1MgcHJv
cGVydGllc0NvbGxlY3Rpb25bMF0gPT0gY2hpbGROb2Rlc1swXSBpcyB0cnVlCitQQVNTIHByb3Bl
cnRpZXNDb2xsZWN0aW9uWzFdID09IGNoaWxkTm9kZXNbMV0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0
aWVzQ29sbGVjdGlvblsyXSA9PSBjaGlsZE5vZGVzWzFdLmNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQor
UEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvblszXSA9PSBjaGlsZE5vZGVzWzJdIGlzIHRydWUKK3By
b3BlcnRpZXNbaW5kZXhdIGFuZCBwcm9wZXJ0aWVzLml0ZW0oaW5kZXgpIG11c3QgcmV0dXJuIHVu
ZGVmaW5lZCBmb3Igb3V0IG9mIHJhbmdlIGluZGV4LgorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlv
bls0XSA9PSB1bmRlZmluZWQgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVt
KDQpID09IHVuZGVmaW5lZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWJlLWNvcnJlY3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11
c3QtYmUtY29ycmVjdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWJlLWNvcnJlY3QuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHByb3BlcnRpZXMg
Y29sbGVjdGlvbiBvZiBhIE1pY3JvZGF0YSBpdGVtIG11c3QgYmUgY29ycmVjdC48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1l
bnQoJ2RpdicsIHtpdGVtc2NvcGU6ICdpdGVtc2NvcGUnfSwgJzxkaXYgaXRlbXByb3A9ImZvbyI+
PC9kaXY+PGRpdiBpdGVtcHJvcD0iYmFyIj48ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PjwvZGl2
PjxkaXYgaXRlbXByb3A9ImJheiBxdXgiPjwvZGl2PicpOwordmFyIHByb3BlcnRpZXNDb2xsZWN0
aW9uID0gZWxlbWVudC5wcm9wZXJ0aWVzOwordmFyIGNoaWxkTm9kZXMgPSBlbGVtZW50LmNoaWxk
Tm9kZXM7CisKK2RlYnVnKCI8YnI+cHJvcGVydGllcy5sZW5ndGggbXVzdCBiZSB0aGUgdG90YWwg
bnVtYmVyIG9mIHByb3BlcnRpZXMuIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0
aW9uLmxlbmd0aCA9PSAnNCciKTsKKworZGVidWcoIjxicj5wcm9wZXJ0aWVzLml0ZW0oaW5kZXgp
IGFuZCBwcm9wZXJ0aWVzW2luZGV4XSBtdXN0IGdpdmUgZWFjaCBwcm9wZXJ0eSBpbiB0cmVlIG9y
ZGVyJyIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDApID09IGNo
aWxkTm9kZXNbMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgx
KSA9PSBjaGlsZE5vZGVzWzFdIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9u
Lml0ZW0oMikgPT0gY2hpbGROb2Rlc1sxXS5jaGlsZE5vZGVzWzBdIik7CitzaG91bGRCZVRydWUo
InByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMykgPT0gY2hpbGROb2Rlc1syXSIpOworZGVidWco
JycpOworCitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uWzBdID09IGNoaWxkTm9k
ZXNbMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb25bMV0gPT0gY2hpbGRO
b2Rlc1sxXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvblsyXSA9PSBjaGls
ZE5vZGVzWzFdLmNoaWxkTm9kZXNbMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxl
Y3Rpb25bM10gPT0gY2hpbGROb2Rlc1syXSIpOworCitkZWJ1ZygicHJvcGVydGllc1tpbmRleF0g
YW5kIHByb3BlcnRpZXMuaXRlbShpbmRleCkgbXVzdCByZXR1cm4gdW5kZWZpbmVkIGZvciBvdXQg
b2YgcmFuZ2UgaW5kZXguIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uWzRd
ID09IHVuZGVmaW5lZCIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVt
KDQpID09IHVuZGVmaW5lZCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24t
bXVzdC1pZ25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQtaXRlbXMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxl
Y3Rpb24tbXVzdC1pZ25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQtaXRlbXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRp
ZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9yZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1pdGVtcy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdCBlbnN1cmVz
IHRoZXQgcHJvcGVydGllcy5pdGVtIGFuZCBsZW5ndGggbXVzdCBpZ25vcmUgcHJvcGVydGllcyBv
ZiBuZXN0ZWQgaXRlbXMuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRy
aWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVj
dGlvbi5sZW5ndGggPT0gJzInIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb25bMF0g
PT0gY2hpbGROb2Rlc1swXSBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0o
MCkgPT0gY2hpbGROb2Rlc1swXSBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uWzFd
ID09IGNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZCBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xs
ZWN0aW9uLml0ZW0oMSkgPT0gY2hpbGROb2Rlc1sxXS5maXJzdENoaWxkIGlzIHRydWUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdu
b3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9y
ZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1pdGVtcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9y
ZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1pdGVtcy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoaXMgdGVzdCBlbnN1cmVzIHRoZXQgcHJvcGVydGllcy5pdGVtIGFuZCBsZW5ndGggbXVz
dCBpZ25vcmUgcHJvcGVydGllcyBvZiBuZXN0ZWQgaXRlbXMuPC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7
aXRlbXNjb3BlOiAnaXRlbXNjb3BlJ30sICc8ZGl2IGl0ZW1zY29wZSBpdGVtcHJvcD0iZm9vIj48
ZGl2IGl0ZW1wcm9wPSJiYXIiPjwvZGl2PjwvZGl2PjxkaXY+PGRpdiBpdGVtcHJvcD0iYmF6Ij48
L2Rpdj48L2Rpdj4nKTsKK3ZhciBwcm9wZXJ0aWVzQ29sbGVjdGlvbiA9IGVsZW1lbnQucHJvcGVy
dGllczsKK3ZhciBjaGlsZE5vZGVzID0gZWxlbWVudC5jaGlsZE5vZGVzOworCitzaG91bGRCZVRy
dWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLmxlbmd0aCA9PSAnMiciKTsKK3Nob3VsZEJlVHJ1ZSgi
cHJvcGVydGllc0NvbGxlY3Rpb25bMF0gPT0gY2hpbGROb2Rlc1swXSIpOworc2hvdWxkQmVUcnVl
KCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDApID09IGNoaWxkTm9kZXNbMF0iKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb25bMV0gPT0gY2hpbGROb2Rlc1sxXS5maXJzdENo
aWxkIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMSkgPT0gY2hp
bGROb2Rlc1sxXS5maXJzdENoaWxkIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVj
dGlvbi1tdXN0LXNlZS10aGUtcHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGll
cy1jb2xsZWN0aW9uLW11c3Qtc2VlLXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10aGUtcHJvcGVydGllcy1hZGRlZC1pbi1p
dGVtcmVmLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0
ZXN0cyB0aGF0IHByb3BlcnRpZXMuaXRlbSBhbmQgbGVuZ3RoIG11c3Qgc2VlIHRoZSBwcm9wZXJ0
aWVzIGFkZGVkIHdpdGggaXRlbXJlZi4KKworUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5sZW5n
dGggPT0gJzQnIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgwKSA9PSBk
aXZzWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgxKSA9PSBkaXZz
WzJdIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgyKSA9PSBkaXZzWzNd
IGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgzKSA9PSBkaXZzWzRdIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0
aW9uLW11c3Qtc2VlLXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0
aW9uLW11c3Qtc2VlLXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxl
Y3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRpZXMtYWRkZWQtaW4taXRlbXJlZi5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBwcm9wZXJ0aWVzLml0ZW0gYW5k
IGxlbmd0aCBtdXN0IHNlZSB0aGUgcHJvcGVydGllcyBhZGRlZCB3aXRoIGl0ZW1yZWYuPC9wPgor
Cis8ZGl2IGl0ZW1wcm9wPSJmb28iIGlkPSJpZDEiPjwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRl
bXJlZj0iaWQyIGlkMSI+Cis8ZGl2IGl0ZW1wcm9wPSJiYXIiPjwvZGl2PgorPC9kaXY+Cis8ZGl2
IGl0ZW1wcm9wPSJiYXoiIGlkPSJpZDIiPgorPGRpdiBpdGVtcHJvcD0icXV4Ij48L2Rpdj4KKzwv
ZGl2PgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgaXRlbSA9IGRv
Y3VtZW50LmdldEl0ZW1zKClbMF07Cit2YXIgcHJvcGVydGllc0NvbGxlY3Rpb24gPSBpdGVtLnBy
b3BlcnRpZXM7Cit2YXIgZGl2cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdkaXYn
KTsKKworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5sZW5ndGggPT0gJzQnIik7
CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMCkgPT0gZGl2c1swXSIp
Oworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDEpID09IGRpdnNbMl0i
KTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgyKSA9PSBkaXZzWzNd
Iik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMykgPT0gZGl2c1s0
XSIpOworCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVy
dGllcy1jb2xsZWN0aW9uLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorTWljcm9kYXRhIHByb3BlcnRp
ZXMgY29sbGVjdGlvbiBzaW1wbGUgdGVzdC4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRp
dgorCitUaGUgcHJvcGVydGllcyBwcm9wZXJ0eSBtdXN0IGJlIGRlZmluZWQuCitQQVNTIGVsZW1l
bnQucHJvcGVydGllcyBpcyBkZWZpbmVkLgorCitUaGUgcHJvcGVydGllcyBwcm9wZXJ0eSBtdXN0
IHJldHVybiBhIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBvYmplY3QuCitQQVNTIGVsZW1lbnQu
cHJvcGVydGllcyA9PSAnW29iamVjdCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb25dJyBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi10
ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3By
b3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3QuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5NaWNyb2RhdGEgcHJvcGVydGllcyBjb2xsZWN0aW9uIHNp
bXBsZSB0ZXN0LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBl
bGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge30pOworCitkZWJ1ZygiPGJyPlRoZSBwcm9w
ZXJ0aWVzIHByb3BlcnR5IG11c3QgYmUgZGVmaW5lZC4iKTsKK3Nob3VsZEJlRGVmaW5lZCgiZWxl
bWVudC5wcm9wZXJ0aWVzIik7CisKK2RlYnVnKCI8YnI+VGhlIHByb3BlcnRpZXMgcHJvcGVydHkg
bXVzdCByZXR1cm4gYSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24gb2JqZWN0LiIpOworc2hvdWxk
QmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMgPT0gJ1tvYmplY3QgSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uXSciKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="114519"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="115467"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116353</attachid>
            <date>2011-11-23 07:13:35 -0800</date>
            <delta_ts>2011-11-23 22:48:46 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_71050.diff</filename>
            <type>text/plain</type>
            <size>70334</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTA4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBACisyMDExLTExLTIzICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IFN1cHBvcnQgZm9y
IHByb3BlcnRpZXMgYXR0cmlidXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEwNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgcHJvcGVydGllcyBhdHRyaWJ1dGUgcmV0dXJucyBhbiBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24gb2JqZWN0IHdpdGggYWxsIHRoZSBlbGVtZW50J3MKKyAgICAgICAg
cHJvcGVydGllcy4gT3RoZXJ3aXNlLCBhbiBlbXB0eSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24g
b2JqZWN0LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZl
cnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3QuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQt
cmVtb3ZlLWl0ZW1yZWYuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL3By
b3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLXByb3BlcnR5Lmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZpb3ItYWRk
LXJlbW92ZS1pdGVtc2NvcGUtYXR0ci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNy
b0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29ycmVjdC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdu
b3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRp
ZXMtYWRkZWQtaW4taXRlbXJlZi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3QuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLm1ha2U6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1M
Q29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAg
KiBkb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGU6Oml0ZW1Qcm9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OnNldEl0ZW1Qcm9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Oml0ZW1SZWYpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6c2V0SXRlbVJlZik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpp
dGVtVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRJdGVtVHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpwcm9wZXJ0aWVzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAg
ICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0
YTo6aXRlbVByb3ApOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpzZXRJdGVtUHJv
cCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6Oml0ZW1SZWYpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpzZXRJdGVtUmVmKToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVSYXJlRGF0YTo6aXRlbVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpz
ZXRJdGVtVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnByb3BlcnRpZXMp
OgorICAgICAgICAqIGh0bWwvQ29sbGVjdGlvblR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxD
b2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29t
cGFyZVRyZWVPcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246
OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb246On5IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0pOiBG
aW5kcyB0aGUgcHJvcGVydGllcyBvZiBhbiBpdGVtLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uOjpsZW5ndGgpOiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVu
dHMgaW4gdGhlIHByb3BlcnRpZXMgY29sbGVjdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbjo6aXRlbSk6IFJldHVybnMgdGhlIGVsZW1lbnQgd2l0aCBpbmRl
eCAnaW5kZXgnIGZyb20gdGhlIGNvbGxlY3Rpb24uIFRoZSBpdGVtcyBhcmUgc29ydGVkIGluIHRy
ZWUgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5h
bWVzKTogUmV0dXJucyBhIERPTVN0cmluZ0xpc3Qgd2l0aCB0aGUgcHJvcGVydHkgbmFtZXMgb2Yg
dGhlIGVsZW1lbnRzIGluIHRoZSBjb2xsZWN0aW9uIHdpdGggdGhlIG9yZGVyIHByZXNlcnZlZCBi
dXQgd2l0aCBkdXBsaWNhdGVzIHJlbW92ZWQuCisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTEt
MTEtMjMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiB3YXJuaW5nIGljb24gZm9yIHVucmVjb2duaXplZCBzdHlsZSBydWxl
IHNob3VsZCBoYXZlIHRvb2x0aXAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAx
MDEwODApCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMjU3LDYgKzI1Nyw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvSFRNTFBh
cmFtRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5pZGwKKyAgICBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5p
ZGwKICAgICBodG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5pZGwKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtNzY5LDYgKzc3MCw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
Y3BwCiAgICAgaHRtbC9IVE1MUHJlRWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwCisgICAgaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCiAgICAgaHRt
bC9IVE1MUXVvdGVFbGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCiAg
ICAgaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAJKHJldmlzaW9uIDEwMTA4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBACiAjaW5jbHVkZSAiSlNIYXNo
Q2hhbmdlRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTSGlzdG9yeS5jcHAiCiAjaW5jbHVkZSAiSlNI
VE1MQWxsQ29sbGVjdGlvbi5jcHAiCisjaW5jbHVkZSAiSlNIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24uY3BwIgogI2luY2x1ZGUgIkpTSFRNTEFuY2hvckVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpT
SFRNTEFwcGxldEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTEFyZWFFbGVtZW50LmNwcCIK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTAxMDgwKQorKysg
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTc5
LDYgKzE3OSw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIEdlb2xvY2F0aW9uIFwKICAgICBHZW9w
b3NpdGlvbiBcCiAgICAgSFRNTEFsbENvbGxlY3Rpb24gXAorICAgIEhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbiBcCiAgICAgSFRNTEFuY2hvckVsZW1lbnQgXAogICAgIEhUTUxBcHBsZXRFbGVtZW50
IFwKICAgICBIVE1MQXJlYUVsZW1lbnQgXApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
aQkocmV2aXNpb24gMTAxMDgwKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJp
CSh3b3JraW5nIGNvcHkpCkBAIC0yOTUsNiArMjk1LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAg
ICBodG1sL0hUTUxQYXJhbUVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxQcmVFbGVtZW50Lmlk
bCBcCiAgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBcCisgICAgaHRtbC9IVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24uaWRsIFwKICAgICBodG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRsIFwK
ICAgICBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAx
MDEwODApCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNv
cHkpCkBAIC0zMDMsNiArMzAzLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFByZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSFRNTFByb2dyZXNzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTFF1b3RlRWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUXVv
dGVFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MU2NyaXB0RWxlbWVu
dC5jcHAgXApAQCAtMTgxNyw2ICsxODE5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTY3JpcHRFbGVtZW50LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDEwMTA4
MCkKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTc2MCw2
ICs3NjAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
Y3BwIFwKICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmNwcCBcCisgICAgaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwK
ICAgICBodG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgXApAQCAtMTgzMyw2ICsx
ODM0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmgg
XAogICAgIGh0bWwvSFRNTFByZUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmggXAorICAgIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggXAogICAgIGh0bWwv
SFRNTFF1b3RlRWxlbWVudC5oIFwKICAgICBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmggXAogICAg
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lv
biAxMDEwODApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkK
QEAgLTEzMTUsNiArMTMxNSw3IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MUGFyYW1FbGVtZW50
LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwnLAogICAgICAgICAg
ICAgJ2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUXVvdGVF
bGVtZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwnLAog
ICAgICAgICAgICAgJ2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsJywKQEAgLTU1NTEsNiArNTU1
Miw4IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MUHJlRWxlbWVudC5oJywKICAgICAgICAgICAg
ICdodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uY3BwJywKKyAgICAgICAgICAgICdodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5o
JywKICAgICAgICAgICAgICdodG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwJywKICAgICAgICAgICAg
ICdodG1sL0hUTUxRdW90ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MU2NyaXB0
RWxlbWVudC5jcHAnLApAQCAtNzQ4Myw2ICs3NDg2LDggQEAKICAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFByZUVsZW1lbnQuaCcsCiAgICAg
ICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcm9n
cmVzc0VsZW1lbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTFByb2dyZXNzRWxlbWVudC5oJywKKyAgICAgICAgICAgICc8KFBS
T0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uLmNwcCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oJywKICAgICAgICAgICAgICc8KFBST0RV
Q1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFF1b3RlRWxlbWVudC5jcHAnLAog
ICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1M
UXVvdGVFbGVtZW50LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNIVE1MU2NyaXB0RWxlbWVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDEwMTA4MCkKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC04NTk4LDYgKzg1OTgsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAiCisJCQkJ
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9u
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQog
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU0hUTUxRdW90ZUVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTU2NTU0LDYgKzU2NjEwLDE0IEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5caHRtbFxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MUXVvdGVFbGVtZW50
LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDEw
ODApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDEwIEBACiAJCTAwQ0E5M0I1MTNDNjY5N0MwMEY3
RkU5NSAvKiBOZXdYTUxEb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMENBOTNCNDEzQzY2OTdDMDBGN0ZFOTUgLyogTmV3WE1M
RG9jdW1lbnRQYXJzZXIuY3BwICovOyB9OwogCQkwMEQwNDY0QTEzQzREMTQ1MDAzMjZGQ0MgLyog
WE1MQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwRDA0NjQ4MTNDNEQxNDUwMDMyNkZDQyAvKiBYTUxDaGFy
YWN0ZXJSZWZlcmVuY2VQYXJzZXIuY3BwICovOyB9OwogCQkwMEQwNDY0QjEzQzREMTQ1MDAzMjZG
Q0MgLyogWE1MQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEQwNDY0OTEzQzREMTQ1MDAzMjZGQ0MgLyogWE1M
Q2hhcmFjdGVyUmVmZXJlbmNlUGFyc2VyLmggKi87IH07CisJCTAzM0E2NDY3MTQ3RDI4OEMwMDUw
OUIzNiAvKiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDMzQTY0NjYxNDdEMjg4QzAwNTA5QjM2IC8qIEhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAgKi87IH07CisJCTAzM0E2NDY5MTQ3RDI4OUIwMDUw
OUIzNiAvKiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAzM0E2NDY4MTQ3RDI4OUIwMDUwOUIzNiAvKiBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24uaCAqLzsgfTsKKwkJMDMzQTY0OEMxNDdEMkY3MzAwNTA5QjM2
IC8qIEpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAzM0E2NDhBMTQ3RDJGNzMwMDUwOUIzNiAvKiBKU0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAgKi87IH07CisJCTAzM0E2NDhEMTQ3RDJGNzMwMDUw
OUIzNiAvKiBKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDMzQTY0OEIxNDdEMkY3MzAwNTA5QjM2IC8qIEpT
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggKi87IH07CiAJCTA1MkJGQ0U5MTI4QUJGMTUwMEZE
MzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDUyQkZDRTgxMjhBQkYxNTAwRkQzMzhEIC8qIEdlb2xv
Y2F0aW9uQ2xpZW50TW9jay5jcHAgKi87IH07CiAJCTA1MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAv
KiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA1MkJGQ0VBMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNs
aWVudE1vY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNUZENjlFMDEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNUZENjlERjEyODQ1RDQzMDBC
MkJFQjMgLyogRE9NVGltZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTcwOTYsNiArNzEwMCwxMSBAQAogCQkwMENBOTNCNDEzQzY2OTdD
MDBGN0ZFOTUgLyogTmV3WE1MRG9jdW1lbnRQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTmV3WE1MRG9jdW1lbnRQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwMEQwNDY0ODEzQzREMTQ1MDAzMjZGQ0MgLyogWE1MQ2hhcmFjdGVy
UmVmZXJlbmNlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFhNTENoYXJhY3RlclJlZmVyZW5jZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTAwRDA0NjQ5MTNDNEQxNDUwMDMyNkZDQyAvKiBYTUxDaGFyYWN0ZXJSZWZlcmVuY2VQ
YXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MQ2hhcmFjdGVyUmVm
ZXJlbmNlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTAzM0E2NDY2MTQ3
RDI4OEMwMDUwOUIzNiAvKiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDMzQTY0NjgxNDdEMjg5QjAwNTA5QjM2IC8q
IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDMzQTY0NkExNDdEMjhCNjAwNTA5QjM2IC8qIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDMzQTY0OEExNDdEMkY3MzAwNTA5QjM2
IC8qIEpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDMzQTY0OEIxNDdEMkY3MzAwNTA5QjM2IC8qIEpTSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA1MkJGQ0U4MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gR2VvbG9jYXRpb25DbGllbnRNb2Nr
LmNwcDsgcGF0aCA9IG1vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDUyQkZDRUExMjhBQkYyMTAwRkQzMzhEIC8qIEdlb2xvY2F0aW9u
Q2xpZW50TW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZW9sb2NhdGlv
bkNsaWVudE1vY2suaDsgcGF0aCA9IG1vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA1RkQ2OURGMTI4NDVENDMwMEIyQkVCMyAvKiBET01U
aW1lU3RhbXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NVGltZVN0YW1w
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzI5MCw2ICsxNzI5OSw5IEBACiAJ
CQkJQTQzQkY1OTYxMTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwICov
LAogCQkJCUE0M0JGNTk3MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50Lmgg
Ki8sCiAJCQkJQTQyMjZFQTUxMTYzRDg0RDAwOEI4Mzk3IC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQu
aWRsICovLAorCQkJCTAzM0E2NDY2MTQ3RDI4OEMwMDUwOUIzNiAvKiBIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uY3BwICovLAorCQkJCTAzM0E2NDY4MTQ3RDI4OUIwMDUwOUIzNiAvKiBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24uaCAqLywKKwkJCQkwMzNBNjQ2QTE0N0QyOEI2MDA1MDlCMzYgLyog
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbCAqLywKIAkJCQlBOENGRjc5QjBBMTU2OTc4MDAw
QTQyMzQgLyogSFRNTFF1b3RlRWxlbWVudC5jcHAgKi8sCiAJCQkJQThDRkY3OTkwQTE1Njk3ODAw
MEE0MjM0IC8qIEhUTUxRdW90ZUVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUVBMzBBMUQyOEU4MDBC
NDJCMjUgLyogSFRNTFF1b3RlRWxlbWVudC5pZGwgKi8sCkBAIC0xNzgwNiw2ICsxNzgxOCw4IEBA
CiAJCQkJMUFFMkFCQTMwQTFDRTkwNTAwQjQyQjI1IC8qIEpTSFRNTFByZUVsZW1lbnQuaCAqLywK
IAkJCQlBNDIyNkU1OTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cCAqLywKIAkJCQlBNDIyNkU1QjExNjNENjk1MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVt
ZW50LmggKi8sCisJCQkJMDMzQTY0OEExNDdEMkY3MzAwNTA5QjM2IC8qIEpTSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uLmNwcCAqLywKKwkJCQkwMzNBNjQ4QjE0N0QyRjczMDA1MDlCMzYgLyogSlNI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCAqLywKIAkJCQkxQUUyQUVDMzBBMUQyOTdCMDBCNDJC
MjUgLyogSlNIVE1MUXVvdGVFbGVtZW50LmNwcCAqLywKIAkJCQkxQUUyQUVDNDBBMUQyOTdCMDBC
NDJCMjUgLyogSlNIVE1MUXVvdGVFbGVtZW50LmggKi8sCiAJCQkJMUFFMkFCQTQwQTFDRTkwNTAw
QjQyQjI1IC8qIEpTSFRNTFNjcmlwdEVsZW1lbnQuY3BwICovLApAQCAtMjQ3MjcsNiArMjQ3NDEs
OCBAQAogCQkJCTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUEzRTI2NDMxMTQ3NDg5OTEwMDVBODU4OCAvKiBXb3JrZXJFdmVudFF1
ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTM4QTlFNTE0NzQ0MzQ2MDBCMEVEMTIgLyogU3R5
bGVTaGFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTAzM0E2NDY5MTQ3RDI4OUIwMDUwOUIzNiAv
KiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTAzM0E2NDhE
MTQ3RDJGNzMwMDUwOUIzNiAvKiBKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0yNzYwMSw2ICsyNzYxNyw4IEBACiAJCQkJNTAzOEJFMkYxNDcyQUQyMzAwOTVF
MEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwMzhCRTQw
MTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTNFMjY0MzAxNDc0ODk5MTAwNUE4NTg4IC8qIFdvcmtlckV2ZW50UXVldWUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMDMzQTY0NjcxNDdEMjg4QzAwNTA5QjM2IC8qIEhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwMzNBNjQ4QzE0N0QyRjczMDA1MDlCMzYg
LyogSlNIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDEwMTA4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZp
bGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTE2Niw2ICsxNjYsOCBAQCB3ZWJraXRndGtfZ2RvbV9i
dWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFBh
cmFtRWxlbWVudFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhU
TUxQcmVFbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQ
cmVFbGVtZW50UHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvblByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
d2Via2l0L1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvd2Via2l0L1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50LmNwcCBcCkBAIC0zNDMsNiArMzQ1
LDcgQEAgd2Via2l0Z3RrX2J1aWx0X2hfYXBpICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dl
YktpdERPTUhUTUxQcmVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dl
YktpdERPTUhUTUxRdW90ZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTUhUTUxTY3JpcHRFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudC5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCShyZXZpc2lvbiAxMDEwODAp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsMTEgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoTUlD
Uk9EQVRBKQorI2luY2x1ZGUgIkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUg
IkpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTcsNiArMTAyLDExIEBAIEpTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmEKICAgICAgICAgY2FzZSBEb2NBbGw6CiAg
ICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVj
dCwgSFRNTEFsbENvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOwogICAgICAgICAgICAgYnJlYWs7Cisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICAgICAgY2FzZSBJdGVtUHJvcGVydGllczoKKyAgICAg
ICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOworICAgICAgICAgICAgYnJlYWs7
CisjZW5kaWYKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBIVE1MQ29sbGVjdGlvbiwgY29sbGVjdGlv
bik7CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0Rh
dGFJdGVtTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL01pY3JvRGF0
YUl0ZW1MaXN0LmNwcAkocmV2aXNpb24gMTAxMDgwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL01p
Y3JvRGF0YUl0ZW1MaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2lm
IEVOQUJMRShNSUNST0RBVEEpCiAjaW5jbHVkZSAiTWljcm9EYXRhSXRlbUxpc3QuaCIKIAorI2lu
Y2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAkocmV2aXNpb24gMTAxMDgwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiQ2xhc3NOb2Rl
TGlzdC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRP
TUltcGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUg
IkR5bmFtaWNOb2RlTGlzdC5oIgpAQCAtMTE0LDYgKzExNSwxMCBAQAogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNHbG9iYWxEYXRhLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5j
bHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCisjZW5kaWYKKwogI2RlZmluZSBEVU1Q
X05PREVfU1RBVElTVElDUyAwCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC0yOTk3LDYgKzMw
MDIsNDMgQEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldgogICAgIH0K
IH0KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitET01TZXR0YWJsZVRva2VuTGlzdCogTm9kZTo6
aXRlbVByb3AoKQoreworICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLT5pdGVtUHJvcCgpOwor
fQorCit2b2lkIE5vZGU6OnNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAg
ZW5zdXJlUmFyZURhdGEoKS0+c2V0SXRlbVByb3AodmFsdWUpOworfQorCitET01TZXR0YWJsZVRv
a2VuTGlzdCogTm9kZTo6aXRlbVJlZigpCit7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkt
Pml0ZW1SZWYoKTsKK30KKwordm9pZCBOb2RlOjpzZXRJdGVtUmVmKGNvbnN0IFN0cmluZyYgdmFs
dWUpCit7CisgICAgZW5zdXJlUmFyZURhdGEoKS0+c2V0SXRlbVJlZih2YWx1ZSk7Cit9CisKK0RP
TVNldHRhYmxlVG9rZW5MaXN0KiBOb2RlOjppdGVtVHlwZSgpCit7CisgICAgcmV0dXJuIGVuc3Vy
ZVJhcmVEYXRhKCktPml0ZW1UeXBlKCk7Cit9CisKK3ZvaWQgTm9kZTo6c2V0SXRlbVR5cGUoY29u
c3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRJdGVtVHlwZSh2
YWx1ZSk7Cit9CisKK0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiogTm9kZTo6cHJvcGVydGllcygp
Cit7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCktPnByb3BlcnRpZXModGhpcyk7Cit9Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWZuZGVmIE5ERUJVRwpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCShyZXZpc2lvbiAxMDEwODApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEF0dHJpYnV0ZTsKIGNsYXNzIENsYXNzTm9kZUxpc3Q7CiBjbGFzcyBDb250YWluZXJOb2Rl
OworY2xhc3MgRE9NU2V0dGFibGVUb2tlbkxpc3Q7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIER5
bmFtaWNOb2RlTGlzdDsKIGNsYXNzIEVsZW1lbnQ7CkBAIC04Miw2ICs4MywxMCBAQCBjbGFzcyBT
VkdVc2VFbGVtZW50OwogY2xhc3MgVGFnTm9kZUxpc3Q7CiBjbGFzcyBUcmVlU2NvcGU7CiAKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQorY2xhc3MgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOworI2Vu
ZGlmCisKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNvbnN0IGludCBub2RlU3R5bGVD
aGFuZ2VTaGlmdCA9IDI1OwpAQCAtNTg4LDYgKzU5MywxMSBAQCBwdWJsaWM6CiAKICNpZiBFTkFC
TEUoTUlDUk9EQVRBKQogICAgIHZvaWQgaXRlbVR5cGVBdHRyaWJ1dGVDaGFuZ2VkKCk7CisKKyAg
ICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVByb3AoKTsKKyAgICBET01TZXR0YWJsZVRva2Vu
TGlzdCogaXRlbVJlZigpOworICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtVHlwZSgpOwor
ICAgIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiogcHJvcGVydGllcygpOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpAQCAtNzU4LDYgKzc2OCwxMiBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBzZXRIYXNSYXJlU1ZHRGF0YSgpIHsgc2V0RmxhZyhIYXNTVkdSYXJlRGF0
YUZsYWcpOyB9CiAgICAgdm9pZCBjbGVhckhhc1JhcmVTVkdEYXRhKCkgeyBjbGVhckZsYWcoSGFz
U1ZHUmFyZURhdGFGbGFnKTsgfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAg
IHZvaWQgc2V0SXRlbVByb3AoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzZXRJdGVtUmVmKGNv
bnN0IFN0cmluZyYpOworICAgIHZvaWQgc2V0SXRlbVR5cGUoY29uc3QgU3RyaW5nJik7CisjZW5k
aWYKIH07CiAKIC8vIFVzZWQgaW4gTm9kZTo6YWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKCkg
YW5kIGluIGFkZFN1YnJlc291cmNlU3R5bGVVUkxzKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJh
cmVEYXRhLmgJKHJldmlzaW9uIDEwMTA4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFy
ZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTIgKzIzLDggQEAKICNkZWZpbmUgTm9kZVJh
cmVEYXRhX2gKIAogI2luY2x1ZGUgIkNsYXNzTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJET01TZXR0
YWJsZVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgotCi0jaWYgRU5B
QkxFKE1JQ1JPREFUQSkKLSNpbmNsdWRlICJNaWNyb0RhdGFJdGVtTGlzdC5oIgotI2VuZGlmCi0K
ICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAiTmFt
ZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgpAQCAtNDAsNiArMzYsMTEg
QEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIkhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1MaXN0LmgiCisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMYWJlbHNOb2RlTGlzdDsKQEAg
LTE1Nyw2ICsxNTgsNjQgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE1J
Q1JPREFUQSkKKyAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVByb3AoKSBjb25zdAorICAg
IHsKKyAgICAgICAgaWYgKCFtX2l0ZW1Qcm9wKQorICAgICAgICAgICAgbV9pdGVtUHJvcCA9IERP
TVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgICAgICByZXR1cm4gbV9pdGVtUHJv
cC5nZXQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYgdmFs
dWUpCisgICAgeworICAgICAgICBpZiAoIW1faXRlbVByb3ApCisgICAgICAgICAgICBtX2l0ZW1Q
cm9wID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgICAgIG1faXRlbVBy
b3AtPnNldFZhbHVlKHZhbHVlKTsKKyAgICB9CisKKyAgICBET01TZXR0YWJsZVRva2VuTGlzdCog
aXRlbVJlZigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1faXRlbVJlZikKKyAgICAgICAg
ICAgIG1faXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKworICAgICAg
ICByZXR1cm4gbV9pdGVtUmVmLmdldCgpOworICAgIH0KKworICAgIHZvaWQgc2V0SXRlbVJlZihj
b25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2l0ZW1SZWYpCisgICAg
ICAgICAgICBtX2l0ZW1SZWYgPSBET01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKCk7CisKKyAg
ICAgICAgbV9pdGVtUmVmLT5zZXRWYWx1ZSh2YWx1ZSk7CisgICAgfQorCisgICAgRE9NU2V0dGFi
bGVUb2tlbkxpc3QqIGl0ZW1UeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9pdGVt
VHlwZSkKKyAgICAgICAgICAgIG1faXRlbVR5cGUgPSBET01TZXR0YWJsZVRva2VuTGlzdDo6Y3Jl
YXRlKCk7CisKKyAgICAgICAgcmV0dXJuIG1faXRlbVR5cGUuZ2V0KCk7CisgICAgfQorCisgICAg
dm9pZCBzZXRJdGVtVHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYg
KCFtX2l0ZW1UeXBlKQorICAgICAgICAgICAgbV9pdGVtVHlwZSA9IERPTVNldHRhYmxlVG9rZW5M
aXN0OjpjcmVhdGUoKTsKKworICAgICAgICBtX2l0ZW1UeXBlLT5zZXRWYWx1ZSh2YWx1ZSk7Cisg
ICAgfQorCisgICAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBwcm9wZXJ0aWVzKE5vZGUqIG5v
ZGUpCisgICAgeworICAgICAgICBpZiAoIW1fcHJvcGVydGllcykKKyAgICAgICAgICAgIG1fcHJv
cGVydGllcyA9IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y3JlYXRlKG5vZGUpOworCisgICAg
ICAgIHJldHVybiBtX3Byb3BlcnRpZXMuZ2V0KCk7CisgICAgfQorI2VuZGlmCisKICAgICBib29s
IGlzRm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb2N1c2VkOyB9CiAgICAgdm9pZCBzZXRG
b2N1c2VkKGJvb2wgZm9jdXNlZCkgeyBtX2lzRm9jdXNlZCA9IGZvY3VzZWQ7IH0KIApAQCAtMTc4
LDYgKzIzNywxMyBAQCBwcml2YXRlOgogICAgIE93blB0cjxWZWN0b3I8T3duUHRyPE11dGF0aW9u
T2JzZXJ2ZXJSZWdpc3RyYXRpb24+ID4gPiBtX211dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeTsKICAg
ICBPd25QdHI8SGFzaFNldDxNdXRhdGlvbk9ic2VydmVyUmVnaXN0cmF0aW9uKj4gPiBtX3RyYW5z
aWVudE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1JQ1JP
REFUQSkKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtUHJv
cDsKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtUmVmOwor
ICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBtX2l0ZW1UeXBlOworICAg
IG11dGFibGUgUmVmUHRyPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4gbV9wcm9wZXJ0aWVzOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9Db2xsZWN0aW9uVHlwZS5oCShyZXZpc2lvbiAxMDEwODApCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbGxlY3Rpb25UeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDEwIEBAIGVu
dW0gQ29sbGVjdGlvblR5cGUgewogICAgIERhdGFMaXN0T3B0aW9ucywKICAgICBNYXBBcmVhcywK
IAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgSXRlbVByb3BlcnRpZXMsIC8vIE1pY3JvZGF0
YSBpdGVtIHByb3BlcnRpZXMgaW4gdGhlIGRvY3VtZW50CisjZW5kaWYKKwogICAgIE90aGVyQ29s
bGVjdGlvbgogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAJ
KHJldmlzaW9uIDEwMTA4MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDkgQEAgRWxlbWVudCogSFRNTENvbGxl
Y3Rpb246Oml0ZW1BZnRlcihFbGVtZQogICAgICAgICBjYXNlIFNlbGVjdE9wdGlvbnM6CiAgICAg
ICAgIGNhc2UgRGF0YUxpc3RPcHRpb25zOgogICAgICAgICBjYXNlIFdpbmRvd05hbWVkSXRlbXM6
CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICAgICAgY2FzZSBJdGVtUHJvcGVydGllczoKKyNl
bmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZUNoaWxkcmVuOgogICAg
ICAgICBjYXNlIFRSQ2VsbHM6CkBAIC0xODksNiArMTkyLDEyIEBAIEVsZW1lbnQqIEhUTUxDb2xs
ZWN0aW9uOjppdGVtQWZ0ZXIoRWxlbWUKICAgICAgICAgICAgIGNhc2UgRG9jQWxsOgogICAgICAg
ICAgICAgY2FzZSBOb2RlQ2hpbGRyZW46CiAgICAgICAgICAgICAgICAgcmV0dXJuIGU7CisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKyAgICAgICAgICAgIGNhc2UgSXRlbVByb3BlcnRpZXM6CisgICAg
ICAgICAgICAgICAgaWYgKGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBlLT5oYXNBdHRyaWJ1dGUoaXRl
bXByb3BBdHRyKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROYW1lZEl0ZW1zOgog
ICAgICAgICAgICAgY2FzZSBPdGhlckNvbGxlY3Rpb246CiAgICAgICAgICAgICBjYXNlIFdpbmRv
d05hbWVkSXRlbXM6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNp
b24gMTAxMDgwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTk5NywzOCArOTk3LDYgQEAgYm9vbCBIVE1MRWxlbWVudDo6aXNVUkxBdHRy
aWJ1dGUoQXR0cmlidQogfQogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKLVBhc3NSZWZQdHI8RE9N
U2V0dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVtZW50OjppdGVtUHJvcCgpIGNvbnN0Ci17Ci0gICAg
aWYgKCFtX2l0ZW1Qcm9wKQotICAgICAgICBtX2l0ZW1Qcm9wID0gRE9NU2V0dGFibGVUb2tlbkxp
c3Q6OmNyZWF0ZSgpOwotCi0gICAgcmV0dXJuIG1faXRlbVByb3A7Ci19Ci0KLXZvaWQgSFRNTEVs
ZW1lbnQ6OnNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgaWYgKCFtX2l0
ZW1Qcm9wKQotICAgICAgICBtX2l0ZW1Qcm9wID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0
ZSgpOwotCi0gICAgbV9pdGVtUHJvcC0+c2V0VmFsdWUodmFsdWUpOwotfQotCi1QYXNzUmVmUHRy
PERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVudDo6aXRlbVJlZigpIGNvbnN0Ci17Ci0g
ICAgaWYgKCFtX2l0ZW1SZWYpCi0gICAgICAgIG1faXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5M
aXN0OjpjcmVhdGUoKTsKLQotICAgIHJldHVybiBtX2l0ZW1SZWY7Ci19Ci0KLXZvaWQgSFRNTEVs
ZW1lbnQ6OnNldEl0ZW1SZWYoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBpZiAoIW1faXRl
bVJlZikKLSAgICAgICAgbV9pdGVtUmVmID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgp
OwotCi0gICAgbV9pdGVtUmVmLT5zZXRWYWx1ZSh2YWx1ZSk7Ci19Ci0KIHZvaWQgSFRNTEVsZW1l
bnQ6OnNldEl0ZW1WYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBpZiAoIWhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpIHx8IGhhc0F0dHJpYnV0ZShp
dGVtc2NvcGVBdHRyKSkgewpAQCAtMTA1OSwyMiArMTAyNyw2IEBAIHZvaWQgSFRNTEVsZW1lbnQ6
OnNldEl0ZW1WYWx1ZVRleHQoY29uc3QKIHsKICAgICBzZXRUZXh0Q29udGVudCh2YWx1ZSwgZWMp
OwogfQotCi1QYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBIVE1MRWxlbWVudDo6aXRl
bVR5cGUoKSBjb25zdAotewotICAgIGlmICghbV9pdGVtVHlwZSkKLSAgICAgICAgbV9pdGVtVHlw
ZSA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKLQotICAgIHJldHVybiBtX2l0ZW1U
eXBlOwotfQotCi12b2lkIEhUTUxFbGVtZW50OjpzZXRJdGVtVHlwZShjb25zdCBTdHJpbmcmIHZh
bHVlKQotewotICAgIGlmICghbV9pdGVtVHlwZSkKLSAgICAgICAgbV9pdGVtVHlwZSA9IERPTVNl
dHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKLQotICAgIG1faXRlbVR5cGUtPnNldFZhbHVlKHZh
bHVlKTsKLX0KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiAxMDEwODApCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSw2IEBACiAKICNp
bmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAKLSNpZiBFTkFCTEUoTUlDUk9EQVRBKQotI2luY2x1
ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwpAQCAtOTAsMTAgKzg2LDYgQEAgcHVibGljOgog
ICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uYWxpdHlJZmhhc0RpckF1dG9BdHRyaWJ1dGUoYm9v
bCYgaXNBdXRvKSBjb25zdDsKIAogI2lmIEVOQUJMRShNSUNST0RBVEEpCi0gICAgUGFzc1JlZlB0
cjxET01TZXR0YWJsZVRva2VuTGlzdD4gaXRlbVJlZigpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8
RE9NU2V0dGFibGVUb2tlbkxpc3Q+IGl0ZW1Qcm9wKCkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxE
T01TZXR0YWJsZVRva2VuTGlzdD4gaXRlbVR5cGUoKSBjb25zdDsKLQogICAgIHZvaWQgc2V0SXRl
bVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPE1p
Y3JvRGF0YUl0ZW1WYWx1ZT4gaXRlbVZhbHVlKCkgY29uc3Q7CiAjZW5kaWYKQEAgLTEyOCwxNiAr
MTIwLDggQEAgcHJpdmF0ZToKICAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbmFsaXR5KE5vZGUq
KiBzdHJvbmdEaXJlY3Rpb25hbGl0eVRleHROb2RlPSAwKSBjb25zdDsKIAogI2lmIEVOQUJMRShN
SUNST0RBVEEpCi0gICAgdm9pZCBzZXRJdGVtUHJvcChjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lk
IHNldEl0ZW1SZWYoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRJdGVtVHlwZShjb25zdCBT
dHJpbmcmKTsKLQogICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1WYWx1ZVRleHQoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SXRlbVZhbHVlVGV4dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25D
b2RlJik7Ci0KLSAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVt
UHJvcDsKLSAgICBtdXRhYmxlIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtUmVm
OwotICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBtX2l0ZW1UeXBlOwog
I2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAkocmV2aXNp
b24gMTAxMDgwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTc0LDYgKzc0LDEwIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0
IGl0ZW1SZWY7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9E
QVRBXSBET01TZXR0YWJsZVRva2VuTGlzdCBpdGVtUHJvcDsKIAorI2lmIGRlZmluZWQoRU5BQkxF
X01JQ1JPREFUQSkgJiYgRU5BQkxFX01JQ1JPREFUQQorICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIHByb3Bl
cnRpZXM7CisjZW5kaWYKKwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdF
X0NQUAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JK
RUNUSVZFX0MKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RB
VEEsIEN1c3RvbV0gRE9NT2JqZWN0IGl0ZW1WYWx1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1v
ZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJp
YnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORwor
ICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorCisjaW5jbHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgi
CisKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkRPTVN0cmlu
Z0xpc3QuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgorI2luY2x1ZGUgIk5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOworCitzdGF0aWMgaW5saW5lIGJvb2wgY29tcGFyZVRyZWVPcmRlcihO
b2RlKiBub2RlMSwgTm9kZSogbm9kZTIpCit7CisgICAgcmV0dXJuIChub2RlMi0+Y29tcGFyZURv
Y3VtZW50UG9zaXRpb24obm9kZTEpICYgKE5vZGU6OkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElO
RyB8IE5vZGU6OkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCkpID09IE5vZGU6OkRPQ1VN
RU5UX1BPU0lUSU9OX1BSRUNFRElORzsKK30KKworUGFzc1JlZlB0cjxIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9k
ZT4gaXRlbU5vZGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24oaXRlbU5vZGUpKTsKK30KKworSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24oUGFzc1JlZlB0cjxOb2RlPiBpdGVtTm9kZSkKKyAgICA6IEhU
TUxDb2xsZWN0aW9uKGl0ZW1Ob2RlLCBJdGVtUHJvcGVydGllcykKKyAgICAsIG1fcHJvcGVydHlO
YW1lcyhET01TdHJpbmdMaXN0OjpjcmVhdGUoKSkKK3sKK30KKworSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uOjp+SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKCkKK3sKK30KKwordm9pZCBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb246OmZpbmRQcm9wZXRpZXNPZkFuSXRlbShOb2RlKiByb290KSBjb25z
dAoreworICAgIC8vIDUuMi41IEFzc29jaWF0aW5nIG5hbWVzIHdpdGggaXRlbXMuCisgICAgVmVj
dG9yPE5vZGUqPiBtZW1vcnk7CisKKyAgICBtZW1vcnkuYXBwZW5kKHJvb3QpOworCisgICAgVmVj
dG9yPE5vZGUqPiBwZW5kaW5nOworICAgIC8vIEFkZCB0aGUgY2hpbGQgZWxlbWVudHMgb2Ygcm9v
dCwgaWYgYW55LCB0byBwZW5kaW5nLgorICAgIGZvciAoTm9kZSogY2hpbGQgPSByb290LT5maXJz
dENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICBp
ZiAoY2hpbGQtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHBlbmRpbmcuYXBwZW5kKGNo
aWxkKTsKKworICAgIC8vIElmIHJvb3QgaGFzIGFuIGl0ZW1yZWYgYXR0cmlidXRlLCBzcGxpdCB0
aGUgdmFsdWUgb2YgdGhhdCBpdGVtcmVmIGF0dHJpYnV0ZSBvbiBzcGFjZXMuCisgICAgLy8gRm9y
IGVhY2ggcmVzdWx0aW5nIHRva2VuIElELCBpZiB0aGVyZSBpcyBhbiBlbGVtZW50IGluIHRoZSBo
b21lIHN1YnRyZWUgb2Ygcm9vdCB3aXRoIHRoZSBJRCBJRCwKKyAgICAvLyB0aGVuIGFkZCB0aGUg
Zmlyc3Qgc3VjaCBlbGVtZW50IHRvIHBlbmRpbmcuCisgICAgaWYgKHRvSFRNTEVsZW1lbnQocm9v
dCktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXJlZkF0dHIpKSB7CisgICAgICAgIERPTVNldHRhYmxl
VG9rZW5MaXN0KiBpdGVtUmVmID0gcm9vdC0+aXRlbVJlZigpOworCisgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgaXRlbVJlZi0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgQXRv
bWljU3RyaW5nIGlkID0gaXRlbVJlZi0+aXRlbShpKTsKKworICAgICAgICAgICAgRWxlbWVudCog
ZWxlbWVudCA9IHJvb3QtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAg
ICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAg
ICAgICBwZW5kaW5nLmFwcGVuZChlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8v
IExvb3AgdGlsbCB3ZSBoYXZlIHByb2Nlc3NlZCBhbGwgcGVuZGluZyBlbGVtZW50cworICAgIHdo
aWxlICghcGVuZGluZy5pc0VtcHR5KCkpIHsKKworICAgICAgICAvLyBSZW1vdmUgZmlyc3QgZWxl
bWVudCBmcm9tIHBlbmRpbmcgYW5kIGxldCBjdXJyZW50IGJlIHRoYXQgZWxlbWVudC4KKyAgICAg
ICAgTm9kZSogY3VycmVudCA9IHBlbmRpbmdbMF07CisgICAgICAgIHBlbmRpbmcucmVtb3ZlKDAp
OworCisgICAgICAgIC8vIElmIGN1cnJlbnQgaXMgYWxyZWFkeSBpbiBtZW1vcnksIHRoZXJlIGlz
IGEgbWljcm9kYXRhIGVycm9yOworICAgICAgICBpZiAobWVtb3J5LmNvbnRhaW5zKGN1cnJlbnQp
KSB7CisgICAgICAgICAgICAvLyBtaWNyb2RhdGEgZXJyb3I7CisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgfQorCisgICAgICAgIG1lbW9yeS5hcHBlbmQoY3VycmVudCk7CisKKyAgICAg
ICAgLy8gSWYgY3VycmVudCBkb2VzIG5vdCBoYXZlIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUsIHRo
ZW46IGFkZCBhbGwgdGhlIGNoaWxkIGVsZW1lbnRzIG9mIGN1cnJlbnQgdG8gcGVuZGluZy4KKyAg
ICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KGN1cnJlbnQpOworICAg
ICAgICBpZiAoIWVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpIHsKKyAg
ICAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBjdXJyZW50LT5maXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgICAgIGlmIChjaGls
ZC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICAgICAgICAgICAgICBwZW5kaW5nLmFwcGVuZChj
aGlsZCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiBjdXJyZW50IGhhcyBhbiBpdGVtcHJv
cCBhdHRyaWJ1dGUgc3BlY2lmaWVkLCBhZGQgaXQgdG8gcmVzdWx0cy4KKyAgICAgICAgaWYgKGVs
ZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXByb3BBdHRyKSkKKyAgICAgICAgICAgICBtX3By
b3BlcnRpZXMuYXBwZW5kKGN1cnJlbnQpOworICAgIH0KK30KKwordW5zaWduZWQgSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uOjpsZW5ndGgoKSBjb25zdAoreworICAgIGlmICghYmFzZSgpLT5pc0hU
TUxFbGVtZW50KCkgfHwgIXRvSFRNTEVsZW1lbnQoYmFzZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShp
dGVtc2NvcGVBdHRyKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBtX3Byb3BlcnRpZXMuY2xl
YXIoKTsKKyAgICBmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0oYmFzZSgpKTsKKyAgICByZXR1cm4gbV9w
cm9wZXJ0aWVzLnNpemUoKTsKK30KKworTm9kZSogSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpp
dGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIGlmICghYmFzZSgpLT5pc0hUTUxFbGVt
ZW50KCkgfHwgIXRvSFRNTEVsZW1lbnQoYmFzZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2Nv
cGVBdHRyKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBtX3Byb3BlcnRpZXMuY2xlYXIoKTsK
KyAgICBmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0oYmFzZSgpKTsKKworICAgIGlmIChtX3Byb3BlcnRp
ZXMuc2l6ZSgpIDw9IGluZGV4KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHN0ZDo6c29ydCht
X3Byb3BlcnRpZXMuYmVnaW4oKSwgbV9wcm9wZXJ0aWVzLmVuZCgpLCBjb21wYXJlVHJlZU9yZGVy
KTsKKyAgICByZXR1cm4gbV9wcm9wZXJ0aWVzW2luZGV4XTsKK30KKworUGFzc1JlZlB0cjxET01T
dHJpbmdMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVzKCkgY29uc3QKK3sKKyAg
ICBtX3Byb3BlcnRpZXMuY2xlYXIoKTsKKyAgICBtX3Byb3BlcnR5TmFtZXMtPmNsZWFyKCk7CisK
KyAgICBpZiAoIWJhc2UoKS0+aXNIVE1MRWxlbWVudCgpIHx8ICF0b0hUTUxFbGVtZW50KGJhc2Uo
KSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCisgICAgICAgIHJldHVybiBtX3By
b3BlcnR5TmFtZXM7CisKKyAgICBmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0oYmFzZSgpKTsKKworICAg
IHN0ZDo6c29ydChtX3Byb3BlcnRpZXMuYmVnaW4oKSwgbV9wcm9wZXJ0aWVzLmVuZCgpLCBjb21w
YXJlVHJlZU9yZGVyKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wcm9wZXJ0aWVz
LnNpemUoKTsgKytpKSB7CisgICAgICAgIC8vIEZvciBlYWNoIGl0ZW0gcHJvcGVydGllcywgc3Bs
aXQgdGhlIHZhbHVlIG9mIHRoYXQgaXRlbXByb3AgYXR0cmlidXRlIG9uIHNwYWNlcy4KKyAgICAg
ICAgLy8gQWRkIGFsbCB0b2tlbnMgdG8gcHJvcGVydHkgbmFtZXMsIHdpdGggdGhlIG9yZGVyIHBy
ZXNlcnZlZCBidXQgd2l0aCBkdXBsaWNhdGVzIHJlbW92ZWQuCisgICAgICAgIERPTVNldHRhYmxl
VG9rZW5MaXN0KiBpdGVtUHJvcGVydHkgPSBtX3Byb3BlcnRpZXNbaV0tPml0ZW1Qcm9wKCk7Cisg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXRlbVByb3BlcnR5LT5sZW5ndGgoKTsgKytp
KSB7CisgICAgICAgICAgICBBdG9taWNTdHJpbmcgcHJvcGVydHlOYW1lID0gaXRlbVByb3BlcnR5
LT5pdGVtKGkpOworICAgICAgICAgICAgaWYgKG1fcHJvcGVydHlOYW1lcy0+aXNFbXB0eSgpIHx8
ICFtX3Byb3BlcnR5TmFtZXMtPmNvbnRhaW5zKHByb3BlcnR5TmFtZSkpCisgICAgICAgICAgICAg
ICAgbV9wcm9wZXJ0eU5hbWVzLT5hcHBlbmQocHJvcGVydHlOYW1lKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXM7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2Rp
ZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAq
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b25faAorI2RlZmluZSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb25faAorCisjaWYgRU5BQkxFKE1J
Q1JPREFUQSkKKworI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRE9NU3RyaW5nTGlzdDsKKworY2xhc3MgSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uIDogcHVibGljIEhUTUxDb2xsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+
KTsKKyAgICB2aXJ0dWFsIH5IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24oKTsKKworICAgIHVuc2ln
bmVkIGxlbmd0aCgpIGNvbnN0IE9WRVJSSURFOworCisgICAgdmlydHVhbCBOb2RlKiBpdGVtKHVu
c2lnbmVkKSBjb25zdCBPVkVSUklERTsKKworICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
bmFtZXMoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24o
UGFzc1JlZlB0cjxOb2RlPik7CisKKyAgICB2b2lkIGZpbmRQcm9wZXRpZXNPZkFuSXRlbShOb2Rl
KiBjdXJyZW50KSBjb25zdDsKKworICAgIG11dGFibGUgVmVjdG9yPE5vZGUqPiBtX3Byb3BlcnRp
ZXM7CisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gbV9wcm9wZXJ0eU5hbWVzOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFU
QSkKKworI2VuZGlmIC8vIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbl9oCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRs
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEx
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICog
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisg
ICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLAorICAgICAgICBI
YXNJbmRleEdldHRlcgorICAgIF0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIDogSFRNTENvbGxl
Y3Rpb24geworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7
CisgICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBuYW1lczsKKworICAgICAgICAvLyBGSVhN
RTogb3ZlcnJpZGUgaW5oZXJpdGVkIG5hbWVkSXRlbSgpCisgICAgfTsKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDEwMTA4MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDg4LDYgKzQ4OCw3IEBAIG1v
ZHVsZSB3aW5kb3cgewogCiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbkNvbnN0cnVj
dG9yIEhUTUxDb2xsZWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgSFRNTEFsbENvbGxlY3Rpb25D
b25zdHJ1Y3RvciBIVE1MQWxsQ29sbGVjdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRp
b25hbD1NSUNST0RBVEFdIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbkNvbnN0cnVjdG9yIEhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIEhUTUxVbmtub3duRWxlbWVu
dENvbnN0cnVjdG9yIEhUTUxVbmtub3duRWxlbWVudDsKIAogICAgICAgICBhdHRyaWJ1dGUgW0pT
Q0N1c3RvbUdldHRlciwgQ3VzdG9tQ29uc3RydWN0b3JdIEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1
Y3RvckNvbnN0cnVjdG9yIEltYWdlOyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDEwMTA4MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDExLTExLTIzICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9y
b2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IFN1cHBvcnQgZm9yIHByb3BlcnRpZXMgYXR0
cmlidXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzEwNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCB0ZXN0IGZvciBodG1sIHByb3BlcnRpZXMgY29sbGVjdGlvbnMuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZlcnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVu
LWlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL2l0
ZW1yZWYtcmVmZXJzLWZpcnN0LWVsZW1lbnQtd2l0aC1naXZlbi1pZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktbXVzdC1iZS1jb3JyZWN0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL25hbWVz
LXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS10ZXN0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYWRk
LXJlbW92ZS1pdGVtcmVmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLWl0ZW1yZWYuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlv
bi1hZGQtcmVtb3ZlLXByb3BlcnR5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLXByb3BlcnR5
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNv
bGxlY3Rpb24tYmVoYXZpb3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUtYXR0ci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rp
b24tYmVoYXZpb3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUtYXR0ci5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29y
cmVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9w
cm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1pZ25vcmUt
cHJvcGVydGllcy1vZi1uZXN0ZWQtaXRlbXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdub3JlLXBy
b3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRpZXMt
YWRkZWQtaW4taXRlbXJlZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRpZXMt
YWRkZWQtaW4taXRlbXJlZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3QuaHRtbDog
QWRkZWQuCisKIDIwMTEtMTEtMjMgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+
CiAKICAgICAgICAgQ1NTIEV4Y2x1c2lvbnM6IHBhcnNlIHRoZSBzaG9ydGhhbmQgIndyYXAiIHBy
b3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZl
cnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZlcnMtZmlyc3QtZWxl
bWVudC13aXRoLWdpdmVuLWlkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLXJlZmVycy1maXJzdC1lbGVtZW50LXdpdGgt
Z2l2ZW4taWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitUaGlz
IHRlc3QgZW5zdXJlcyB0aGF0IGl0ZW1yZWYgbXVzdCByZWZlcmVuY2UgdGhlIGZpcnN0IGVsZW1l
bnQgd2l0aCBhIGdpdmVuIGlkLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitQQVNT
IGl0ZW0ucHJvcGVydGllcy5sZW5ndGggPT0gJzInIGlzIHRydWUKK1BBU1MgaXRlbS5wcm9wZXJ0
aWVzLml0ZW0oMCkgPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdIGlzIHRydWUKK1BBU1MgaXRlbS5w
cm9wZXJ0aWVzLml0ZW0oMSkgPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdLmZpcnN0Q2hpbGQgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLXJlZmVycy1maXJz
dC1lbGVtZW50LXdpdGgtZ2l2ZW4taWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZlcnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVu
LWlkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
aXRlbXJlZi1yZWZlcnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtcmVmIG11c3QgcmVm
ZXJlbmNlIHRoZSBmaXJzdCBlbGVtZW50IHdpdGggYSBnaXZlbiBpZC48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2Rp
dicse30sJzxkaXYgaXRlbXNjb3BlIGl0ZW1yZWY9ImlkMSI+PC9kaXY+PGRpdiBpdGVtcHJvcD0i
Zm9vIiBpZD0iaWQxIj48ZGl2IGl0ZW1wcm9wPSJiYXIiPjwvZGl2PjwvZGl2PjxkaXYgaXRlbXBy
b3A9ImJheiIgaWQ9ImlkMSI+PC9kaXY+Jyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVs
ZW1lbnQpOwordmFyIGl0ZW0gPSBlbGVtZW50LmNoaWxkTm9kZXNbMF07CisKK3Nob3VsZEJlVHJ1
ZSgiaXRlbS5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMiciKTsKK3Nob3VsZEJlVHJ1ZSgiaXRlbS5w
cm9wZXJ0aWVzLml0ZW0oMCkgPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdIik7CitzaG91bGRCZVRy
dWUoIml0ZW0ucHJvcGVydGllcy5pdGVtKDEpID09IGVsZW1lbnQuY2hpbGROb2Rlc1sxXS5maXJz
dENoaWxkIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L25hbWVzLXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktbXVzdC1i
ZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorVGhp
cyB0ZXN0cyB0aGF0IG5hbWVzLml0ZW0oKSBhbmQgbmFtZXNbaW5kZXhdIG11c3QgcmV0dXJuIGNv
cnJlY3QgcHJvcGVydHkgbmFtZSBpbiB0cmVlIG9yZGVyIGFuZCBpdCBzaG91bGQgbm90IGNvbnRh
aW4gZHVwbGljYXRlIHRva2Vucy4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0
IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3BlCitQQVNTIGVsZW1lbnQucHJv
cGVydGllcy5uYW1lc1swXSA9PSAnZm9vJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGll
cy5uYW1lc1sxXSA9PSAnYmFyJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1l
c1syXSA9PSAnYmF6JyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lc1szXSA9
PSAncXV4JyBpcyB0cnVlCisKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMCkg
PT0gJ2ZvbycgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFtZXMuaXRlbSgxKSA9
PSAnYmFyJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lcy5pdGVtKDIpID09
ICdiYXonIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMykgPT0g
J3F1eCcgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9w
ZXJ0eS1tdXN0LWJlLWNvcnJlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktbXVzdC1iZS1jb3JyZWN0Lmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHkt
bXVzdC1iZS1jb3JyZWN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNy
b2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
cyB0aGF0IG5hbWVzLml0ZW0oKSBhbmQgbmFtZXNbaW5kZXhdIG11c3QgcmV0dXJuIGNvcnJlY3Qg
cHJvcGVydHkgbmFtZSBpbiB0cmVlIG9yZGVyIGFuZCBpdCBzaG91bGQgbm90IGNvbnRhaW4gZHVw
bGljYXRlIHRva2Vucy48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2
YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtc2NvcGU6ICdpdGVtc2NvcGUn
fSwnPGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rpdj48ZGl2IGl0ZW1wcm9wPSJiYXIiPjxkaXYgaXRl
bXByb3A9ImZvbyI+PC9kaXY+PGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rpdj48L2Rpdj48ZGl2IGl0
ZW1wcm9wPSJiYXogcXV4Ij48L2Rpdj4nKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0
aWVzLm5hbWVzWzBdID09ICdmb28nIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGll
cy5uYW1lc1sxXSA9PSAnYmFyJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMu
bmFtZXNbMl0gPT0gJ2JheiciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5h
bWVzWzNdID09ICdxdXgnIik7CisKK2RlYnVnKCcnKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5w
cm9wZXJ0aWVzLm5hbWVzLml0ZW0oMCkgPT0gJ2ZvbyciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVu
dC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMSkgPT0gJ2JhciciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxl
bWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMikgPT0gJ2JheiciKTsKK3Nob3VsZEJlVHJ1ZSgi
ZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzLml0ZW0oMykgPT0gJ3F1eCciKTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvbmFtZXMtcHJvcGVydHktdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXBy
b3BlcnR5LXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACitu
YW1lcyBwcm9wZXJ0eSBzaW1wbGUgdGVzdC4KKworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRp
dgorCitUaGUgbmFtZXMgcHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkLgorUEFTUyBlbGVtZW50LnBy
b3BlcnRpZXMubmFtZXMgaXMgZGVmaW5lZC4KKworVGhlIG5hbWVzIHByb3BlcnR5IG11c3QgcmV0
dXJuIGEgRE9NU3RyaW5nTGlzdCBvYmplY3QuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1l
cyA9PSAnW29iamVjdCBET01TdHJpbmdMaXN0XScgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0
eS10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29t
bW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+bmFtZXMgcHJvcGVydHkgc2lt
cGxlIHRlc3QuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVs
ZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7fSk7CisKK2RlYnVnKCI8YnI+VGhlIG5hbWVz
IHByb3BlcnR5IG11c3QgYmUgZGVmaW5lZC4iKTsKK3Nob3VsZEJlRGVmaW5lZCgiZWxlbWVudC5w
cm9wZXJ0aWVzLm5hbWVzIik7CisKK2RlYnVnKCI8YnI+VGhlIG5hbWVzIHByb3BlcnR5IG11c3Qg
cmV0dXJuIGEgRE9NU3RyaW5nTGlzdCBvYmplY3QuIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQu
cHJvcGVydGllcy5uYW1lcyA9PSAnW29iamVjdCBET01TdHJpbmdMaXN0XSciKTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWFkZC1yZW1vdmUtaXRlbXJlZi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRp
ZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLWl0ZW1yZWYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlv
bi1hZGQtcmVtb3ZlLWl0ZW1yZWYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE4IEBACitNaWNyb2RhdGEgcHJvcGVydGllcyBjb2xsZWN0aW9uIHNob3VsZCB1cGRhdGUgcHJv
cGVybHkgb24gYWRkaW5nIG9yIHJlbW92aW5nIGl0ZW1yZWYuCisKK0NyZWF0ZWQgZWxlbWVudCBv
ZiB0eXBlOiBkaXYKK1BBU1MgaXRlbS5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMCcgaXMgdHJ1ZQor
CitTZXQgaXRlbXJlZiB0byBpZDEuCitQQVNTIGl0ZW0ucHJvcGVydGllcy5sZW5ndGggPT0gJzEn
IGlzIHRydWUKK1BBU1MgaXRlbS5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0gZWxlbWVudC5maXJzdENo
aWxkIGlzIHRydWUKK1BBU1MgaXRlbS5wcm9wZXJ0aWVzWzBdID09IGVsZW1lbnQuZmlyc3RDaGls
ZCBpcyB0cnVlCisKK1JlbW92ZSBpdGVtcmVmIGF0dHJpYnV0ZS4KK1BBU1MgaXRlbS5wcm9wZXJ0
aWVzLmxlbmd0aCA9PSAnMCcgaXMgdHJ1ZQorUEFTUyBpdGVtLnByb3BlcnRpZXMuaXRlbSgwKSA9
PSB1bmRlZmluZWQgaXMgdHJ1ZQorUEFTUyBpdGVtLnByb3BlcnRpZXNbMF0gPT0gdW5kZWZpbmVk
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xs
ZWN0aW9uLWFkZC1yZW1vdmUtaXRlbXJlZi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYWRkLXJlbW92ZS1pdGVt
cmVmLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydGllcy1jb2xsZWN0aW9uLWFkZC1yZW1vdmUtaXRlbXJlZi5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPk1pY3JvZGF0YSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gc2hvdWxkIHVw
ZGF0ZSBwcm9wZXJseSBvbiBhZGRpbmcgb3IgcmVtb3ZpbmcgaXRlbXJlZi48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQo
J2RpdicsIHt9LCAnPGRpdiBpZD0iaWQxIiBpdGVtcHJvcD0iZm9vIj48L2Rpdj48ZGl2IGl0ZW1z
Y29wZT48L2Rpdj4nKTsKK3ZhciBpdGVtID0gZWxlbWVudC5jaGlsZE5vZGVzWzFdOworZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKworc2hvdWxkQmVUcnVlKCJpdGVtLnByb3Bl
cnRpZXMubGVuZ3RoID09ICcwJyIpOworCitkZWJ1ZygiPGJyPlNldCBpdGVtcmVmIHRvIGlkMS4i
KTsKK2l0ZW0uc2V0QXR0cmlidXRlKCdpdGVtcmVmJywgJ2lkMScpOworc2hvdWxkQmVUcnVlKCJp
dGVtLnByb3BlcnRpZXMubGVuZ3RoID09ICcxJyIpOworc2hvdWxkQmVUcnVlKCJpdGVtLnByb3Bl
cnRpZXMuaXRlbSgwKSA9PSBlbGVtZW50LmZpcnN0Q2hpbGQiKTsKK3Nob3VsZEJlVHJ1ZSgiaXRl
bS5wcm9wZXJ0aWVzWzBdID09IGVsZW1lbnQuZmlyc3RDaGlsZCIpOworCitkZWJ1ZygiPGJyPlJl
bW92ZSBpdGVtcmVmIGF0dHJpYnV0ZS4iKTsKK2l0ZW0ucmVtb3ZlQXR0cmlidXRlKCdpdGVtcmVm
Jyk7CitzaG91bGRCZVRydWUoIml0ZW0ucHJvcGVydGllcy5sZW5ndGggPT0gJzAnIik7CitzaG91
bGRCZVRydWUoIml0ZW0ucHJvcGVydGllcy5pdGVtKDApID09IHVuZGVmaW5lZCIpOworc2hvdWxk
QmVUcnVlKCJpdGVtLnByb3BlcnRpZXNbMF0gPT0gdW5kZWZpbmVkIik7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLXByb3BlcnR5LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1j
b2xsZWN0aW9uLWFkZC1yZW1vdmUtcHJvcGVydHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1h
ZGQtcmVtb3ZlLXByb3BlcnR5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MCBAQAorTWljcm9kYXRhIHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IHVwZGF0ZSBvbiBhZGRp
bmcgb3IgcmVtb3ZpbmcgcHJvcGVydHkuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYK
K1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorUEFTUyBlbGVtZW50
LnByb3BlcnRpZXMubGVuZ3RoID09ICcxJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGll
cy5pdGVtKDApID09IGVsZW1lbnQuZmlyc3RDaGlsZCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJv
cGVydGllc1swXSA9PSBlbGVtZW50LmZpcnN0Q2hpbGQgaXMgdHJ1ZQorCitBcHBlbmQgYSBwcm9w
ZXJ0eSB3aXRoIGl0ZW1wcm9wOiBiYXIuCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitT
ZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGJhcgorUEFTUyBlbGVtZW50LnByb3BlcnRp
ZXMubGVuZ3RoID09ICcyJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5pdGVtKDEp
ID09IGVsZW1lbnQuY2hpbGROb2Rlc1sxXSBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGll
c1sxXSA9PSBlbGVtZW50LmNoaWxkTm9kZXNbMV0gaXMgdHJ1ZQorCitBcHBlbmQgYSBwcm9wZXJ0
eSB3aXRoIGl0ZW1wcm9wOiBmb28uCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQg
YXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworUEFTUyBlbGVtZW50LnByb3BlcnRpZXMu
bGVuZ3RoID09ICczJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5pdGVtKDIpID09
IGVsZW1lbnQuY2hpbGROb2Rlc1sxXS5maXJzdENoaWxkIGlzIHRydWUKK1BBU1MgZWxlbWVudC5w
cm9wZXJ0aWVzWzJdID09IGVsZW1lbnQuY2hpbGROb2Rlc1sxXS5maXJzdENoaWxkIGlzIHRydWUK
KworUmVtb3ZlIHByb3BlcnR5IHdpdGggaXRlbXByb3A6IGZvby4KK1BBU1MgZWxlbWVudC5wcm9w
ZXJ0aWVzLmxlbmd0aCA9PSAnMicgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMuaXRl
bSgyKSA9PSB1bmRlZmluZWQgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbMl0gPT0g
dW5kZWZpbmVkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVy
dGllcy1jb2xsZWN0aW9uLWFkZC1yZW1vdmUtcHJvcGVydHkuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWFkZC1y
ZW1vdmUtcHJvcGVydHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYWRkLXJlbW92ZS1wcm9wZXJ0eS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPk1pY3JvZGF0YSBwcm9wZXJ0aWVzIGNvbGxlY3Rp
b24gbXVzdCB1cGRhdGUgb24gYWRkaW5nIG9yIHJlbW92aW5nIHByb3BlcnR5LjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVu
dCgnZGl2Jywge2l0ZW1zY29wZTogJ2l0ZW1zY29wZSd9LCAnPGRpdiBpdGVtcHJvcD0iZm9vIj48
L2Rpdj4nKTsKKworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcx
JyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMuaXRlbSgwKSA9PSBlbGVtZW50
LmZpcnN0Q2hpbGQiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzWzBdID09IGVs
ZW1lbnQuZmlyc3RDaGlsZCIpOworCitkZWJ1ZygnPGJyPkFwcGVuZCBhIHByb3BlcnR5IHdpdGgg
aXRlbXByb3A6IGJhci4nKTsKK2VsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnZGl2
Jyx7aXRlbXByb3A6J2Jhcid9KSk7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5s
ZW5ndGggPT0gJzInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5pdGVtKDEp
ID09IGVsZW1lbnQuY2hpbGROb2Rlc1sxXSIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3Bl
cnRpZXNbMV0gPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdIik7CisKK2RlYnVnKCc8YnI+QXBwZW5k
IGEgcHJvcGVydHkgd2l0aCBpdGVtcHJvcDogZm9vLicpOworZWxlbWVudC5sYXN0Q2hpbGQuYXBw
ZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnZGl2Jyx7aXRlbXByb3A6J2Zvbyd9KSk7CitzaG91bGRC
ZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5sZW5ndGggPT0gJzMnIik7CitzaG91bGRCZVRydWUo
ImVsZW1lbnQucHJvcGVydGllcy5pdGVtKDIpID09IGVsZW1lbnQuY2hpbGROb2Rlc1sxXS5maXJz
dENoaWxkIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllc1syXSA9PSBlbGVtZW50
LmNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZCIpOworCitkZWJ1ZygnPGJyPlJlbW92ZSBwcm9wZXJ0
eSB3aXRoIGl0ZW1wcm9wOiBmb28uJyk7CitlbGVtZW50Lmxhc3RDaGlsZC5yZW1vdmVDaGlsZChl
bGVtZW50Lmxhc3RDaGlsZC5maXJzdENoaWxkKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9w
ZXJ0aWVzLmxlbmd0aCA9PSAnMiciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVz
Lml0ZW0oMikgPT0gdW5kZWZpbmVkIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGll
c1syXSA9PSB1bmRlZmluZWQiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9u
LWJlaGF2aW9yLWFkZC1yZW1vdmUtaXRlbXNjb3BlLWF0dHItZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rp
b24tYmVoYXZpb3ItYWRkLXJlbW92ZS1pdGVtc2NvcGUtYXR0ci1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xs
ZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUtaXRlbXNjb3BlLWF0dHItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACitUaGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiBw
cm9wZXJ0aWVzIGNvbGxlY3Rpb24gb24gYWRkaW5nIG9yIHJlbW92aW5nIGl0ZW1zY29wZSBhdHRy
aWJ1dGUuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKKworVGhlIHByb3BlcnRpZXMg
Y29sbGVjdGlvbiBtdXN0IGJlIGVtcHR5IGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4g
aXRlbXNjb3BlIGF0dHJpYnV0ZS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAn
MCcgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbMF0gPT0gdW5kZWZpbmVkIGlzIHRy
dWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0gdW5kZWZpbmVkIGlzIHRydWUK
KworVGhlIHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IGJlY29tZSBwb3B1bGF0ZWQgaWYgd2Ug
YWRkIGl0ZW1zY29wZSBhdHRyaWJ1dGUuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5sZW5ndGgg
PT0gJzEnIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzWzBdID09IGVsZW1lbnQuZmly
c3RDaGlsZCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5pdGVtKDApID09IGVsZW1l
bnQuZmlyc3RDaGlsZCBpcyB0cnVlCisKK1RoZSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gbXVzdCBi
ZWNvbWUgZW1wdHkgaWYgd2UgcmVtb3ZlIGl0ZW1zY29wZSBhdHRyaWJ1dGUuCitQQVNTIGVsZW1l
bnQucHJvcGVydGllcy5sZW5ndGggPT0gJzAnIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0
aWVzWzBdID09IHVuZGVmaW5lZCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5pdGVt
KDApID09IHVuZGVmaW5lZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnRpZXMtY29sbGVjdGlvbi1iZWhhdmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1hdHRy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3Bl
cnRpZXMtY29sbGVjdGlvbi1iZWhhdmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1hdHRyLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGll
cy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUtaXRlbXNjb3BlLWF0dHIuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoZSBiZWhhdmlvciBvZiBwcm9wZXJ0
aWVzIGNvbGxlY3Rpb24gb24gYWRkaW5nIG9yIHJlbW92aW5nIGl0ZW1zY29wZSBhdHRyaWJ1dGUu
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBj
cmVhdGVFbGVtZW50KCdkaXYnLCB7fSwgJzxkaXYgaXRlbXByb3A9ImZvbyI+YmFyPC9kaXY+Jyk7
CisKK2RlYnVnKCI8YnI+VGhlIHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IGJlIGVtcHR5IGlm
IHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gaXRlbXNjb3BlIGF0dHJpYnV0ZS4iKTsKK3No
b3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMCciKTsKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzWzBdID09IHVuZGVmaW5lZCIpOworc2hvdWxkQmVUcnVl
KCJlbGVtZW50LnByb3BlcnRpZXMuaXRlbSgwKSA9PSB1bmRlZmluZWQiKTsKKworZGVidWcoIjxi
cj5UaGUgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgYmVjb21lIHBvcHVsYXRlZCBpZiB3ZSBh
ZGQgaXRlbXNjb3BlIGF0dHJpYnV0ZS4iKTsKK2VsZW1lbnQuaXRlbVNjb3BlID0gdHJ1ZTsKK3No
b3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMSciKTsKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzWzBdID09IGVsZW1lbnQuZmlyc3RDaGlsZCIpOworc2hv
dWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMuaXRlbSgwKSA9PSBlbGVtZW50LmZpcnN0Q2hp
bGQiKTsKKworZGVidWcoIjxicj5UaGUgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgYmVjb21l
IGVtcHR5IGlmIHdlIHJlbW92ZSBpdGVtc2NvcGUgYXR0cmlidXRlLiIpOworZWxlbWVudC5pdGVt
U2NvcGUgPSBmYWxzZTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9
PSAnMCciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzWzBdID09IHVuZGVmaW5l
ZCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMuaXRlbSgwKSA9PSB1bmRlZmlu
ZWQiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29ycmVj
dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMt
Y29sbGVjdGlvbi1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDI1IEBACitUaGlzIHRlc3QgZW5zdXJlcyB0aGF0IHByb3BlcnRpZXMgY29sbGVjdGlv
biBvZiBhIE1pY3JvZGF0YSBpdGVtIG11c3QgYmUgY29ycmVjdC4KKworQ3JlYXRlZCBlbGVtZW50
IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3Bl
CisKK3Byb3BlcnRpZXMubGVuZ3RoIG11c3QgYmUgdGhlIHRvdGFsIG51bWJlciBvZiBwcm9wZXJ0
aWVzLgorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvbi5sZW5ndGggPT0gJzQnIGlzIHRydWUKKwor
cHJvcGVydGllcy5pdGVtKGluZGV4KSBhbmQgcHJvcGVydGllc1tpbmRleF0gbXVzdCBnaXZlIGVh
Y2ggcHJvcGVydHkgaW4gdHJlZSBvcmRlcicKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRl
bSgwKSA9PSBjaGlsZE5vZGVzWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24u
aXRlbSgxKSA9PSBjaGlsZE5vZGVzWzFdIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rp
b24uaXRlbSgyKSA9PSBjaGlsZE5vZGVzWzFdLmNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQorUEFTUyBw
cm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDMpID09IGNoaWxkTm9kZXNbMl0gaXMgdHJ1ZQorCitQ
QVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uWzBdID09IGNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQorUEFT
UyBwcm9wZXJ0aWVzQ29sbGVjdGlvblsxXSA9PSBjaGlsZE5vZGVzWzFdIGlzIHRydWUKK1BBU1Mg
cHJvcGVydGllc0NvbGxlY3Rpb25bMl0gPT0gY2hpbGROb2Rlc1sxXS5jaGlsZE5vZGVzWzBdIGlz
IHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb25bM10gPT0gY2hpbGROb2Rlc1syXSBpcyB0
cnVlCitwcm9wZXJ0aWVzW2luZGV4XSBhbmQgcHJvcGVydGllcy5pdGVtKGluZGV4KSBtdXN0IHJl
dHVybiB1bmRlZmluZWQgZm9yIG91dCBvZiByYW5nZSBpbmRleC4KK1BBU1MgcHJvcGVydGllc0Nv
bGxlY3Rpb25bNF0gPT0gdW5kZWZpbmVkIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rp
b24uaXRlbSg0KSA9PSB1bmRlZmluZWQgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVj
dGlvbi1tdXN0LWJlLWNvcnJlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0Lmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBwcm9w
ZXJ0aWVzIGNvbGxlY3Rpb24gb2YgYSBNaWNyb2RhdGEgaXRlbSBtdXN0IGJlIGNvcnJlY3QuPC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBjcmVh
dGVFbGVtZW50KCdkaXYnLCB7aXRlbXNjb3BlOiAnaXRlbXNjb3BlJ30sICc8ZGl2IGl0ZW1wcm9w
PSJmb28iPjwvZGl2PjxkaXYgaXRlbXByb3A9ImJhciI+PGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rp
dj48L2Rpdj48ZGl2IGl0ZW1wcm9wPSJiYXogcXV4Ij48L2Rpdj4nKTsKK3ZhciBwcm9wZXJ0aWVz
Q29sbGVjdGlvbiA9IGVsZW1lbnQucHJvcGVydGllczsKK3ZhciBjaGlsZE5vZGVzID0gZWxlbWVu
dC5jaGlsZE5vZGVzOworCitkZWJ1ZygiPGJyPnByb3BlcnRpZXMubGVuZ3RoIG11c3QgYmUgdGhl
IHRvdGFsIG51bWJlciBvZiBwcm9wZXJ0aWVzLiIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVz
Q29sbGVjdGlvbi5sZW5ndGggPT0gJzQnIik7CisKK2RlYnVnKCI8YnI+cHJvcGVydGllcy5pdGVt
KGluZGV4KSBhbmQgcHJvcGVydGllc1tpbmRleF0gbXVzdCBnaXZlIGVhY2ggcHJvcGVydHkgaW4g
dHJlZSBvcmRlciciKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgw
KSA9PSBjaGlsZE5vZGVzWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9u
Lml0ZW0oMSkgPT0gY2hpbGROb2Rlc1sxXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29s
bGVjdGlvbi5pdGVtKDIpID09IGNoaWxkTm9kZXNbMV0uY2hpbGROb2Rlc1swXSIpOworc2hvdWxk
QmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDMpID09IGNoaWxkTm9kZXNbMl0iKTsK
K2RlYnVnKCcnKTsKKworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvblswXSA9PSBj
aGlsZE5vZGVzWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uWzFdID09
IGNoaWxkTm9kZXNbMV0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb25bMl0g
PT0gY2hpbGROb2Rlc1sxXS5jaGlsZE5vZGVzWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnRp
ZXNDb2xsZWN0aW9uWzNdID09IGNoaWxkTm9kZXNbMl0iKTsKKworZGVidWcoInByb3BlcnRpZXNb
aW5kZXhdIGFuZCBwcm9wZXJ0aWVzLml0ZW0oaW5kZXgpIG11c3QgcmV0dXJuIHVuZGVmaW5lZCBm
b3Igb3V0IG9mIHJhbmdlIGluZGV4LiIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVj
dGlvbls0XSA9PSB1bmRlZmluZWQiKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rp
b24uaXRlbSg0KSA9PSB1bmRlZmluZWQiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xs
ZWN0aW9uLW11c3QtaWdub3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGll
cy1jb2xsZWN0aW9uLW11c3QtaWdub3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9w
cm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1pZ25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQtaXRl
bXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACitUaGlzIHRlc3Qg
ZW5zdXJlcyB0aGV0IHByb3BlcnRpZXMuaXRlbSBhbmQgbGVuZ3RoIG11c3QgaWdub3JlIHByb3Bl
cnRpZXMgb2YgbmVzdGVkIGl0ZW1zLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitT
ZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2NvcGUKK1BBU1MgcHJvcGVydGll
c0NvbGxlY3Rpb24ubGVuZ3RoID09ICcyJyBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0
aW9uWzBdID09IGNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlv
bi5pdGVtKDApID09IGNoaWxkTm9kZXNbMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVj
dGlvblsxXSA9PSBjaGlsZE5vZGVzWzFdLmZpcnN0Q2hpbGQgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0
aWVzQ29sbGVjdGlvbi5pdGVtKDEpID09IGNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZCBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1t
dXN0LWlnbm9yZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1pdGVtcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVz
dC1pZ25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQtaXRlbXMuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVz
dC1pZ25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQtaXRlbXMuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGV0IHByb3BlcnRpZXMuaXRlbSBhbmQgbGVu
Z3RoIG11c3QgaWdub3JlIHByb3BlcnRpZXMgb2YgbmVzdGVkIGl0ZW1zLjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgn
ZGl2Jywge2l0ZW1zY29wZTogJ2l0ZW1zY29wZSd9LCAnPGRpdiBpdGVtc2NvcGUgaXRlbXByb3A9
ImZvbyI+PGRpdiBpdGVtcHJvcD0iYmFyIj48L2Rpdj48L2Rpdj48ZGl2PjxkaXYgaXRlbXByb3A9
ImJheiI+PC9kaXY+PC9kaXY+Jyk7Cit2YXIgcHJvcGVydGllc0NvbGxlY3Rpb24gPSBlbGVtZW50
LnByb3BlcnRpZXM7Cit2YXIgY2hpbGROb2RlcyA9IGVsZW1lbnQuY2hpbGROb2RlczsKKworc2hv
dWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5sZW5ndGggPT0gJzInIik7CitzaG91bGRC
ZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uWzBdID09IGNoaWxkTm9kZXNbMF0iKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgwKSA9PSBjaGlsZE5vZGVzWzBdIik7
CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uWzFdID09IGNoaWxkTm9kZXNbMV0u
Zmlyc3RDaGlsZCIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDEp
ID09IGNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVz
LWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRpZXMtYWRkZWQtaW4taXRlbXJlZi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3By
b3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10aGUtcHJvcGVydGllcy1hZGRlZC1pbi1pdGVt
cmVmLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRpZXMtYWRk
ZWQtaW4taXRlbXJlZi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAK
K1RoaXMgdGVzdHMgdGhhdCBwcm9wZXJ0aWVzLml0ZW0gYW5kIGxlbmd0aCBtdXN0IHNlZSB0aGUg
cHJvcGVydGllcyBhZGRlZCB3aXRoIGl0ZW1yZWYuCisKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rp
b24ubGVuZ3RoID09ICc0JyBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0o
MCkgPT0gZGl2c1swXSBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMSkg
PT0gZGl2c1syXSBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMikgPT0g
ZGl2c1szXSBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMykgPT0gZGl2
c1s0XSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMt
Y29sbGVjdGlvbi1tdXN0LXNlZS10aGUtcHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMt
Y29sbGVjdGlvbi1tdXN0LXNlZS10aGUtcHJvcGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGll
cy1jb2xsZWN0aW9uLW11c3Qtc2VlLXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgcHJvcGVydGllcy5p
dGVtIGFuZCBsZW5ndGggbXVzdCBzZWUgdGhlIHByb3BlcnRpZXMgYWRkZWQgd2l0aCBpdGVtcmVm
LjwvcD4KKworPGRpdiBpdGVtcHJvcD0iZm9vIiBpZD0iaWQxIj48L2Rpdj4KKzxkaXYgaXRlbXNj
b3BlIGl0ZW1yZWY9ImlkMiBpZDEiPgorPGRpdiBpdGVtcHJvcD0iYmFyIj48L2Rpdj4KKzwvZGl2
PgorPGRpdiBpdGVtcHJvcD0iYmF6IiBpZD0iaWQyIj4KKzxkaXYgaXRlbXByb3A9InF1eCI+PC9k
aXY+Cis8L2Rpdj4KKworPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGl0
ZW0gPSBkb2N1bWVudC5nZXRJdGVtcygpWzBdOwordmFyIHByb3BlcnRpZXNDb2xsZWN0aW9uID0g
aXRlbS5wcm9wZXJ0aWVzOwordmFyIGRpdnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgnZGl2Jyk7CisKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24ubGVuZ3RoID09
ICc0JyIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDApID09IGRp
dnNbMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgxKSA9PSBk
aXZzWzJdIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMikgPT0g
ZGl2c1szXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDMpID09
IGRpdnNbNF0iKTsKKworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVz
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK01pY3JvZGF0YSBw
cm9wZXJ0aWVzIGNvbGxlY3Rpb24gc2ltcGxlIHRlc3QuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0
eXBlOiBkaXYKKworVGhlIHByb3BlcnRpZXMgcHJvcGVydHkgbXVzdCBiZSBkZWZpbmVkLgorUEFT
UyBlbGVtZW50LnByb3BlcnRpZXMgaXMgZGVmaW5lZC4KKworVGhlIHByb3BlcnRpZXMgcHJvcGVy
dHkgbXVzdCByZXR1cm4gYSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24gb2JqZWN0LgorUEFTUyBl
bGVtZW50LnByb3BlcnRpZXMgPT0gJ1tvYmplY3QgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uXScg
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxl
Y3Rpb24tdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi10ZXN0Lmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+TWljcm9kYXRhIHByb3BlcnRpZXMgY29sbGVj
dGlvbiBzaW1wbGUgdGVzdC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHt9KTsKKworZGVidWcoIjxicj5U
aGUgcHJvcGVydGllcyBwcm9wZXJ0eSBtdXN0IGJlIGRlZmluZWQuIik7CitzaG91bGRCZURlZmlu
ZWQoImVsZW1lbnQucHJvcGVydGllcyIpOworCitkZWJ1ZygiPGJyPlRoZSBwcm9wZXJ0aWVzIHBy
b3BlcnR5IG11c3QgcmV0dXJuIGEgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIG9iamVjdC4iKTsK
K3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzID09ICdbb2JqZWN0IEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbl0nIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="115496"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="115497"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116480</attachid>
            <date>2011-11-23 22:48:46 -0800</date>
            <delta_ts>2011-11-24 12:03:17 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_71050.diff</filename>
            <type>text/plain</type>
            <size>70359</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTEyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBACisyMDExLTExLTIzICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IFN1cHBvcnQgZm9y
IHByb3BlcnRpZXMgYXR0cmlidXRlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEwNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgcHJvcGVydGllcyBhdHRyaWJ1dGUgcmV0dXJucyBhbiBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24gb2JqZWN0IHdpdGggYWxsIHRoZSBlbGVtZW50J3MKKyAgICAgICAg
cHJvcGVydGllcy4gT3RoZXJ3aXNlLCBhbiBlbXB0eSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24g
b2JqZWN0LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1yZWZl
cnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3QuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQt
cmVtb3ZlLWl0ZW1yZWYuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL3By
b3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLXByb3BlcnR5Lmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZpb3ItYWRk
LXJlbW92ZS1pdGVtc2NvcGUtYXR0ci5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNy
b0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtYmUtY29ycmVjdC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdu
b3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRp
ZXMtYWRkZWQtaW4taXRlbXJlZi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3QuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLm1ha2U6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRp
bmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW06CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1M
Q29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAg
KiBkb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGU6Oml0ZW1Qcm9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OnNldEl0ZW1Qcm9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Oml0ZW1SZWYpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6c2V0SXRlbVJlZik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpp
dGVtVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRJdGVtVHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpwcm9wZXJ0aWVzKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAg
ICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSYXJlRGF0
YTo6aXRlbVByb3ApOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpzZXRJdGVtUHJv
cCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6Oml0ZW1SZWYpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpzZXRJdGVtUmVmKToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGVSYXJlRGF0YTo6aXRlbVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpz
ZXRJdGVtVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmFyZURhdGE6OnByb3BlcnRpZXMp
OgorICAgICAgICAqIGh0bWwvQ29sbGVjdGlvblR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxD
b2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0
ZXIpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEVsZW1lbnQ6OnNldEl0ZW1WYWx1ZVRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29t
cGFyZVRyZWVPcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246
OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb246On5IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0pOiBG
aW5kcyB0aGUgcHJvcGVydGllcyBvZiBhbiBpdGVtLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uOjpsZW5ndGgpOiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVu
dHMgaW4gdGhlIHByb3BlcnRpZXMgY29sbGVjdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbjo6aXRlbSk6IFJldHVybnMgdGhlIGVsZW1lbnQgd2l0aCBpbmRl
eCAnaW5kZXgnIGZyb20gdGhlIGNvbGxlY3Rpb24uIFRoZSBpdGVtcyBhcmUgc29ydGVkIGluIHRy
ZWUgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5h
bWVzKTogUmV0dXJucyBhIERPTVN0cmluZ0xpc3Qgd2l0aCB0aGUgcHJvcGVydHkgbmFtZXMgb2Yg
dGhlIGVsZW1lbnRzIGluIHRoZSBjb2xsZWN0aW9uIHdpdGggdGhlIG9yZGVyIHByZXNlcnZlZCBi
dXQgd2l0aCBkdXBsaWNhdGVzIHJlbW92ZWQuCisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTEt
MTEtMjMgIEplZmYgVGltYW51cyAgPHR3aXpAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJv
bWl1bV0gIFByZXZlbnQgRHJhd2luZ0J1ZmZlciBpbnN0YW5jZXMgZnJvbSBjb3JydXB0aW5nIHRo
ZSBhY3RpdmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDExMjApCisrKyBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjU3LDYgKzI1
Nyw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvSFRNTFBhcmFtRWxlbWVudC5p
ZGwKICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5pZGwKKyAgICBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwKICAgICBodG1s
L0hUTUxRdW90ZUVsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKICAg
ICBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtNzY5LDYgKzc3MCw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCiAgICAgaHRt
bC9IVE1MUHJlRWxlbWVudC5jcHAKICAgICBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisg
ICAgaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCiAgICAgaHRtbC9IVE1MUXVvdGVF
bGVtZW50LmNwcAogICAgIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCiAgICAgaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJldmlz
aW9uIDEwMTEyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBACiAjaW5jbHVkZSAiSlNIYXNoQ2hhbmdlRXZlbnQu
Y3BwIgogI2luY2x1ZGUgIkpTSGlzdG9yeS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MQWxsQ29sbGVj
dGlvbi5jcHAiCisjaW5jbHVkZSAiSlNIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIgogI2lu
Y2x1ZGUgIkpTSFRNTEFuY2hvckVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTEFwcGxldEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIkpTSFRNTEFyZWFFbGVtZW50LmNwcCIKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTAxMTIwKQorKysgU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTc5LDYgKzE3OSw3IEBA
IERPTV9DTEFTU0VTID0gXAogICAgIEdlb2xvY2F0aW9uIFwKICAgICBHZW9wb3NpdGlvbiBcCiAg
ICAgSFRNTEFsbENvbGxlY3Rpb24gXAorICAgIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBcCiAg
ICAgSFRNTEFuY2hvckVsZW1lbnQgXAogICAgIEhUTUxBcHBsZXRFbGVtZW50IFwKICAgICBIVE1M
QXJlYUVsZW1lbnQgXApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkocmV2aXNpb24g
MTAxMTIwKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCSh3b3JraW5nIGNv
cHkpCkBAIC0yOTUsNiArMjk1LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBodG1sL0hUTUxQ
YXJhbUVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hUTUxQcmVFbGVtZW50LmlkbCBcCiAgICAgaHRt
bC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBcCisgICAgaHRtbC9IVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uaWRsIFwKICAgICBodG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRsIFwKICAgICBodG1sL0hU
TUxTY3JpcHRFbGVtZW50LmlkbCBcCiAgICAgaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgXApJ
bmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDExMjApCisrKyBT
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMDMs
NiArMzAzLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTSFRNTFByZUVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFBy
b2dyZXNzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFF1b3RlRWxl
bWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUXVvdGVFbGVtZW50Lmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MU2NyaXB0RWxlbWVudC5jcHAgXApAQCAt
MTgxNyw2ICsxODE5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcmVFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFF1b3RlRWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDEwMTEyMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTc2MCw2ICs3NjAsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIFwKICAgICBo
dG1sL0hUTUxQcmVFbGVtZW50LmNwcCBcCiAgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cCBcCisgICAgaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwKICAgICBodG1sL0hU
TUxRdW90ZUVsZW1lbnQuY3BwIFwKICAgICBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBcCiAg
ICAgaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgXApAQCAtMTgzNyw2ICsxODM4LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggXAogICAgIGh0bWwv
SFRNTFByZUVsZW1lbnQuaCBcCiAgICAgaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmggXAorICAg
IGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggXAogICAgIGh0bWwvSFRNTFF1b3RlRWxl
bWVudC5oIFwKICAgICBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmggXAogICAgIGh0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDExMjApCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEzMTUsNiAr
MTMxNSw3IEBACiAgICAgICAgICAgICAnaHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbCcsCiAgICAg
ICAgICAgICAnaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsJywKQEAgLTU1NTksNiArNTU2MCw4IEBACiAgICAg
ICAgICAgICAnaHRtbC9IVE1MUHJlRWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaCcsCisgICAgICAgICAgICAnaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwJywK
KyAgICAgICAgICAgICdodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oJywKICAgICAgICAg
ICAgICdodG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL0hUTUxR
dW90ZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAn
LApAQCAtNzQ5MSw2ICs3NDk0LDggQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFByZUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQcm9ncmVzc0VsZW1lbnQu
Y3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTFByb2dyZXNzRWxlbWVudC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCcsCisg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbi5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFF1b3RlRWxlbWVudC5jcHAnLAogICAgICAgICAgICAg
JzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MUXVvdGVFbGVtZW50
LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNIVE1MU2NyaXB0RWxlbWVudC5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDEwMTEyMCkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04NTk4
LDYgKzg1OTgsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAiCisJCQkJPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0hUTUxRdW90ZUVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KQEAgLTU2NTU0LDYgKzU2NjEwLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNw
cCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxIVE1MUXVvdGVFbGVtZW50LmNwcCIKIAkJCQk+
CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDExMjApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTY2LDYgKzY2LDEwIEBACiAJCTAwQ0E5M0I1MTNDNjY5N0MwMEY3RkU5NSAvKiBOZXdY
TUxEb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwMENBOTNCNDEzQzY2OTdDMDBGN0ZFOTUgLyogTmV3WE1MRG9jdW1lbnRQYXJz
ZXIuY3BwICovOyB9OwogCQkwMEQwNDY0QTEzQzREMTQ1MDAzMjZGQ0MgLyogWE1MQ2hhcmFjdGVy
UmVmZXJlbmNlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDAwRDA0NjQ4MTNDNEQxNDUwMDMyNkZDQyAvKiBYTUxDaGFyYWN0ZXJSZWZlcmVu
Y2VQYXJzZXIuY3BwICovOyB9OwogCQkwMEQwNDY0QjEzQzREMTQ1MDAzMjZGQ0MgLyogWE1MQ2hh
cmFjdGVyUmVmZXJlbmNlUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwMEQwNDY0OTEzQzREMTQ1MDAzMjZGQ0MgLyogWE1MQ2hhcmFjdGVyUmVm
ZXJlbmNlUGFyc2VyLmggKi87IH07CisJCTAzM0E2QTdDMTQ3RTA3RDIwMDUwOUIzNiAvKiBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDAzM0E2QTdCMTQ3RTA3RDIwMDUwOUIzNiAvKiBIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uaCAqLzsgfTsKKwkJMDMzQTZBN0UxNDdFMDdFNzAwNTA5QjM2IC8qIEhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwMzNBNkE3RDE0N0UwN0U3MDA1MDlCMzYgLyogSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uLmNwcCAqLzsgfTsKKwkJMDMzQTZBODExNDdFMDg4NjAwNTA5QjM2IC8qIEpTSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDAzM0E2QTgwMTQ3RTA4ODYwMDUwOUIzNiAvKiBKU0hUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbi5jcHAgKi87IH07CisJCTAzM0E2QTgzMTQ3RTA4QTYwMDUwOUIzNiAvKiBKU0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDMzQTZBODIxNDdFMDhBNjAwNTA5QjM2IC8qIEpTSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uLmggKi87IH07CiAJCTA1MkJGQ0U5MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9s
b2NhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDUyQkZDRTgxMjhBQkYxNTAwRkQzMzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50
TW9jay5jcHAgKi87IH07CiAJCTA1MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlv
bkNsaWVudE1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA1MkJGQ0VBMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNUZENjlF
MDEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNUZENjlERjEyODQ1RDQzMDBCMkJFQjMgLyogRE9N
VGltZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTcxMDQsNiArNzEwOCwxMSBAQAogCQkwMENBOTNCNDEzQzY2OTdDMDBGN0ZFOTUgLyog
TmV3WE1MRG9jdW1lbnRQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTmV3WE1MRG9jdW1lbnRQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwMEQwNDY0ODEzQzREMTQ1MDAzMjZGQ0MgLyogWE1MQ2hhcmFjdGVyUmVmZXJlbmNlUGFy
c2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTENoYXJhY3Rl
clJlZmVyZW5jZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAwRDA0
NjQ5MTNDNEQxNDUwMDMyNkZDQyAvKiBYTUxDaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MQ2hhcmFjdGVyUmVmZXJlbmNlUGFyc2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTAzM0E2QTdCMTQ3RTA3RDIwMDUwOUIz
NiAvKiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTAzM0E2QTdEMTQ3RTA3RTcwMDUwOUIzNiAvKiBIVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDMzQTZB
N0YxNDdFMDdGOTAwNTA5QjM2IC8qIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDMzQTZBODAxNDdFMDg4NjAwNTA5QjM2IC8qIEpTSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMDMzQTZBODIxNDdFMDhBNjAwNTA5QjM2IC8qIEpTSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA1MkJGQ0U4MTI4
QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcDsgcGF0aCA9
IG1vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDUyQkZDRUExMjhBQkYyMTAwRkQzMzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9jay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZW9sb2NhdGlvbkNsaWVudE1vY2su
aDsgcGF0aCA9IG1vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA1RkQ2OURGMTI4NDVENDMwMEIyQkVCMyAvKiBET01UaW1lU3RhbXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NVGltZVN0YW1wLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzMxNCw2ICsxNzMyMyw5IEBACiAJCQkJQTQzQkY1OTYx
MTQ5MjkwQTAwQzY0M0NBIC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuY3BwICovLAogCQkJCUE0M0JG
NTk3MTE0OTI5MEEwMEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmggKi8sCiAJCQkJQTQy
MjZFQTUxMTYzRDg0RDAwOEI4Mzk3IC8qIEhUTUxQcm9ncmVzc0VsZW1lbnQuaWRsICovLAorCQkJ
CTAzM0E2QTdCMTQ3RTA3RDIwMDUwOUIzNiAvKiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCAq
LywKKwkJCQkwMzNBNkE3RDE0N0UwN0U3MDA1MDlCMzYgLyogSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uLmNwcCAqLywKKwkJCQkwMzNBNkE3RjE0N0UwN0Y5MDA1MDlCMzYgLyogSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uLmlkbCAqLywKIAkJCQlBOENGRjc5QjBBMTU2OTc4MDAwQTQyMzQgLyogSFRN
TFF1b3RlRWxlbWVudC5jcHAgKi8sCiAJCQkJQThDRkY3OTkwQTE1Njk3ODAwMEE0MjM0IC8qIEhU
TUxRdW90ZUVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQUVBMzBBMUQyOEU4MDBCNDJCMjUgLyogSFRN
TFF1b3RlRWxlbWVudC5pZGwgKi8sCkBAIC0xNzgzMCw2ICsxNzg0Miw4IEBACiAJCQkJMUFFMkFC
QTMwQTFDRTkwNTAwQjQyQjI1IC8qIEpTSFRNTFByZUVsZW1lbnQuaCAqLywKIAkJCQlBNDIyNkU1
OTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCAqLywKIAkJCQlB
NDIyNkU1QjExNjNENjk1MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmggKi8sCisJ
CQkJMDMzQTZBODAxNDdFMDg4NjAwNTA5QjM2IC8qIEpTSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmNwcCAqLywKKwkJCQkwMzNBNkE4MjE0N0UwOEE2MDA1MDlCMzYgLyogSlNIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uaCAqLywKIAkJCQkxQUUyQUVDMzBBMUQyOTdCMDBCNDJCMjUgLyogSlNIVE1M
UXVvdGVFbGVtZW50LmNwcCAqLywKIAkJCQkxQUUyQUVDNDBBMUQyOTdCMDBCNDJCMjUgLyogSlNI
VE1MUXVvdGVFbGVtZW50LmggKi8sCiAJCQkJMUFFMkFCQTQwQTFDRTkwNTAwQjQyQjI1IC8qIEpT
SFRNTFNjcmlwdEVsZW1lbnQuY3BwICovLApAQCAtMjQ3NTUsNiArMjQ3NjksOCBAQAogCQkJCUYz
ODIwODk1MTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlGMzgyMDg5NzE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyQ29uc29sZUFnZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGMzgyMDg5OTE0N0QzNUY5MDAxMEJDMDYgLyogV29ya2VyUnVu
dGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwMzNBNkE3QzE0N0UwN0QyMDA1MDlCMzYg
LyogSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwMzNBNkE4
MzE0N0UwOEE2MDA1MDlCMzYgLyogSlNIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjc2MzMsNiArMjc2NDksOCBAQAogCQkJCUYzODIwODk0MTQ3RDM1RjkwMDEw
QkMwNiAvKiBQYWdlUnVudGltZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODIwODk2
MTQ3RDM1RjkwMDEwQkMwNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjM4MjA4OTgxNDdEMzVGOTAwMTBCQzA2IC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkwMzNBNkE3RTE0N0UwN0U3MDA1MDlCMzYgLyogSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTAzM0E2QTgxMTQ3RTA4ODYw
MDUwOUIzNiAvKiBKU0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gMTAxMTIwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9H
TlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw4IEBAIHdlYmtpdGd0
a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01IVE1MUGFyYW1FbGVtZW50UHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NSFRNTFByZUVsZW1lbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NSFRNTFByZUVsZW1lbnRQcml2YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJL
aXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJr
aXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uUHJpdmF0ZS5oIFwKIAlEZXJpdmVk
U291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudC5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUXVvdGVFbGVtZW50UHJpdmF0ZS5oIFwKIAlEZXJp
dmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKQEAgLTM0
Myw2ICszNDUsNyBAQCB3ZWJraXRndGtfYnVpbHRfaF9hcGkgKz0gXAogCURlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNl
cy93ZWJraXQvV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJr
aXQvV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAJKHJldmlzaW9u
IDEwMTEyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25D
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMywxMSBAQAogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAorI2lmIEVO
QUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCisj
aW5jbHVkZSAiSlNIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKKyNlbmRpZgorCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05Nyw2ICsxMDIsMTEgQEAg
SlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYQogICAgICAgICBjYXNlIERv
Y0FsbDoKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xv
YmFsT2JqZWN0LCBIVE1MQWxsQ29sbGVjdGlvbiwgY29sbGVjdGlvbik7CiAgICAgICAgICAgICBi
cmVhazsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgICAgICBjYXNlIEl0ZW1Qcm9wZXJ0aWVz
OgorICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxP
YmplY3QsIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiwgY29sbGVjdGlvbik7CisgICAgICAgICAg
ICBicmVhazsKKyNlbmRpZgogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgd3JhcHBlciA9
IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEhUTUxDb2xsZWN0aW9uLCBj
b2xsZWN0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L01pY3JvRGF0YUl0ZW1MaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
TWljcm9EYXRhSXRlbUxpc3QuY3BwCShyZXZpc2lvbiAxMDExMjApCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICNpbmNsdWRlICJNaWNyb0RhdGFJdGVtTGlzdC5o
IgogCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAxMDExMjApCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJD
bGFzc05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlz
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAj
aW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCkBAIC0xMTQsNiArMTE1LDEwIEBACiAjaW5jbHVk
ZSA8cnVudGltZS9KU0dsb2JhbERhdGEuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKKyNpbmNsdWRlICJIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKKyNlbmRpZgorCiAjZGVm
aW5lIERVTVBfTk9ERV9TVEFUSVNUSUNTIDAKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTI5
OTcsNiArMzAwMiw0MyBAQCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2
CiAgICAgfQogfQogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKK0RPTVNldHRhYmxlVG9rZW5MaXN0
KiBOb2RlOjppdGVtUHJvcCgpCit7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCktPml0ZW1Q
cm9wKCk7Cit9CisKK3ZvaWQgTm9kZTo6c2V0SXRlbVByb3AoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
K3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRJdGVtUHJvcCh2YWx1ZSk7Cit9CisKK0RPTVNl
dHRhYmxlVG9rZW5MaXN0KiBOb2RlOjppdGVtUmVmKCkKK3sKKyAgICByZXR1cm4gZW5zdXJlUmFy
ZURhdGEoKS0+aXRlbVJlZigpOworfQorCit2b2lkIE5vZGU6OnNldEl0ZW1SZWYoY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKK3sKKyAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRJdGVtUmVmKHZhbHVlKTsK
K30KKworRE9NU2V0dGFibGVUb2tlbkxpc3QqIE5vZGU6Oml0ZW1UeXBlKCkKK3sKKyAgICByZXR1
cm4gZW5zdXJlUmFyZURhdGEoKS0+aXRlbVR5cGUoKTsKK30KKwordm9pZCBOb2RlOjpzZXRJdGVt
VHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGVuc3VyZVJhcmVEYXRhKCktPnNldEl0
ZW1UeXBlKHZhbHVlKTsKK30KKworSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBOb2RlOjpwcm9w
ZXJ0aWVzKCkKK3sKKyAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS0+cHJvcGVydGllcyh0aGlz
KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZm5kZWYgTkRFQlVH
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDEwMTEyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQXR0cmlidXRlOwogY2xhc3MgQ2xhc3NOb2RlTGlzdDsKIGNsYXNzIENvbnRh
aW5lck5vZGU7CitjbGFzcyBET01TZXR0YWJsZVRva2VuTGlzdDsKIGNsYXNzIERvY3VtZW50Owog
Y2xhc3MgRHluYW1pY05vZGVMaXN0OwogY2xhc3MgRWxlbWVudDsKQEAgLTgyLDYgKzgzLDEwIEBA
IGNsYXNzIFNWR1VzZUVsZW1lbnQ7CiBjbGFzcyBUYWdOb2RlTGlzdDsKIGNsYXNzIFRyZWVTY29w
ZTsKIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCitjbGFzcyBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b247CisjZW5kaWYKKwogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY29uc3QgaW50IG5v
ZGVTdHlsZUNoYW5nZVNoaWZ0ID0gMjU7CkBAIC01ODgsNiArNTkzLDExIEBAIHB1YmxpYzoKIAog
I2lmIEVOQUJMRShNSUNST0RBVEEpCiAgICAgdm9pZCBpdGVtVHlwZUF0dHJpYnV0ZUNoYW5nZWQo
KTsKKworICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtUHJvcCgpOworICAgIERPTVNldHRh
YmxlVG9rZW5MaXN0KiBpdGVtUmVmKCk7CisgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1U
eXBlKCk7CisgICAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBwcm9wZXJ0aWVzKCk7CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCkBAIC03NTgsNiArNzY4LDEyIEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHNldEhhc1JhcmVTVkdEYXRhKCkgeyBzZXRGbGFnKEhhc1NW
R1JhcmVEYXRhRmxhZyk7IH0KICAgICB2b2lkIGNsZWFySGFzUmFyZVNWR0RhdGEoKSB7IGNsZWFy
RmxhZyhIYXNTVkdSYXJlRGF0YUZsYWcpOyB9CiAjZW5kaWYKKworI2lmIEVOQUJMRShNSUNST0RB
VEEpCisgICAgdm9pZCBzZXRJdGVtUHJvcChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldEl0
ZW1SZWYoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzZXRJdGVtVHlwZShjb25zdCBTdHJpbmcm
KTsKKyNlbmRpZgogfTsKIAogLy8gVXNlZCBpbiBOb2RlOjphZGRTdWJyZXNvdXJjZUF0dHJpYnV0
ZVVSTHMoKSBhbmQgaW4gYWRkU3VicmVzb3VyY2VTdHlsZVVSTHMoKQpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaAkocmV2aXNpb24gMTAxMTIwKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMiArMjMsOCBAQAogI2RlZmlu
ZSBOb2RlUmFyZURhdGFfaAogCiAjaW5jbHVkZSAiQ2xhc3NOb2RlTGlzdC5oIgorI2luY2x1ZGUg
IkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRHluYW1pY05vZGVMaXN0LmgiCi0K
LSNpZiBFTkFCTEUoTUlDUk9EQVRBKQotI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1MaXN0LmgiCi0j
ZW5kaWYKLQogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uaCIKICNpbmNs
dWRlICJOYW1lTm9kZUxpc3QuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00MCw2
ICszNiwxMSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAorI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVk
ZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiTWljcm9EYXRhSXRlbUxp
c3QuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIExhYmVsc05vZGVM
aXN0OwpAQCAtMTU3LDYgKzE1OCw2NCBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtUHJvcCgpIGNv
bnN0CisgICAgeworICAgICAgICBpZiAoIW1faXRlbVByb3ApCisgICAgICAgICAgICBtX2l0ZW1Q
cm9wID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgICAgIHJldHVybiBt
X2l0ZW1Qcm9wLmdldCgpOworICAgIH0KKworICAgIHZvaWQgc2V0SXRlbVByb3AoY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICghbV9pdGVtUHJvcCkKKyAgICAgICAgICAg
IG1faXRlbVByb3AgPSBET01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKCk7CisKKyAgICAgICAg
bV9pdGVtUHJvcC0+c2V0VmFsdWUodmFsdWUpOworICAgIH0KKworICAgIERPTVNldHRhYmxlVG9r
ZW5MaXN0KiBpdGVtUmVmKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9pdGVtUmVmKQor
ICAgICAgICAgICAgbV9pdGVtUmVmID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOwor
CisgICAgICAgIHJldHVybiBtX2l0ZW1SZWYuZ2V0KCk7CisgICAgfQorCisgICAgdm9pZCBzZXRJ
dGVtUmVmKGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoIW1faXRlbVJl
ZikKKyAgICAgICAgICAgIG1faXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUo
KTsKKworICAgICAgICBtX2l0ZW1SZWYtPnNldFZhbHVlKHZhbHVlKTsKKyAgICB9CisKKyAgICBE
T01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVR5cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYg
KCFtX2l0ZW1UeXBlKQorICAgICAgICAgICAgbV9pdGVtVHlwZSA9IERPTVNldHRhYmxlVG9rZW5M
aXN0OjpjcmVhdGUoKTsKKworICAgICAgICByZXR1cm4gbV9pdGVtVHlwZS5nZXQoKTsKKyAgICB9
CisKKyAgICB2b2lkIHNldEl0ZW1UeXBlKGNvbnN0IFN0cmluZyYgdmFsdWUpCisgICAgeworICAg
ICAgICBpZiAoIW1faXRlbVR5cGUpCisgICAgICAgICAgICBtX2l0ZW1UeXBlID0gRE9NU2V0dGFi
bGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworCisgICAgICAgIG1faXRlbVR5cGUtPnNldFZhbHVlKHZh
bHVlKTsKKyAgICB9CisKKyAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24qIHByb3BlcnRpZXMo
Tm9kZSogbm9kZSkKKyAgICB7CisgICAgICAgIGlmICghbV9wcm9wZXJ0aWVzKQorICAgICAgICAg
ICAgbV9wcm9wZXJ0aWVzID0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpjcmVhdGUobm9kZSk7
CisKKyAgICAgICAgcmV0dXJuIG1fcHJvcGVydGllcy5nZXQoKTsKKyAgICB9CisjZW5kaWYKKwog
ICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KICAgICB2
b2lkIHNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKSB7IG1faXNGb2N1c2VkID0gZm9jdXNlZDsgfQog
CkBAIC0xNzgsNiArMjM3LDEzIEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFZlY3RvcjxPd25QdHI8
TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJhdGlvbj4gPiA+IG1fbXV0YXRpb25PYnNlcnZlclJlZ2lz
dHJ5OwogICAgIE93blB0cjxIYXNoU2V0PE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24qPiA+
IG1fdHJhbnNpZW50TXV0YXRpb25PYnNlcnZlclJlZ2lzdHJ5OwogI2VuZGlmCisKKyNpZiBFTkFC
TEUoTUlDUk9EQVRBKQorICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBt
X2l0ZW1Qcm9wOworICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBtX2l0
ZW1SZWY7CisgICAgbXV0YWJsZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1faXRlbVR5
cGU7CisgICAgbXV0YWJsZSBSZWZQdHI8SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uPiBtX3Byb3Bl
cnRpZXM7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgJKHJldmlzaW9uIDEwMTEyMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQs
MTAgQEAgZW51bSBDb2xsZWN0aW9uVHlwZSB7CiAgICAgRGF0YUxpc3RPcHRpb25zLAogICAgIE1h
cEFyZWFzLAogCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICBJdGVtUHJvcGVydGllcywgLy8g
TWljcm9kYXRhIGl0ZW0gcHJvcGVydGllcyBpbiB0aGUgZG9jdW1lbnQKKyNlbmRpZgorCiAgICAg
T3RoZXJDb2xsZWN0aW9uCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xs
ZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0
aW9uLmNwcAkocmV2aXNpb24gMTAxMTIwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29s
bGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsOSBAQCBFbGVtZW50KiBI
VE1MQ29sbGVjdGlvbjo6aXRlbUFmdGVyKEVsZW1lCiAgICAgICAgIGNhc2UgU2VsZWN0T3B0aW9u
czoKICAgICAgICAgY2FzZSBEYXRhTGlzdE9wdGlvbnM6CiAgICAgICAgIGNhc2UgV2luZG93TmFt
ZWRJdGVtczoKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgICAgICBjYXNlIEl0ZW1Qcm9wZXJ0
aWVzOgorI2VuZGlmCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlQ2hpbGRy
ZW46CiAgICAgICAgIGNhc2UgVFJDZWxsczoKQEAgLTE4OSw2ICsxOTIsMTIgQEAgRWxlbWVudCog
SFRNTENvbGxlY3Rpb246Oml0ZW1BZnRlcihFbGVtZQogICAgICAgICAgICAgY2FzZSBEb2NBbGw6
CiAgICAgICAgICAgICBjYXNlIE5vZGVDaGlsZHJlbjoKICAgICAgICAgICAgICAgICByZXR1cm4g
ZTsKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgICAgICAgICAgY2FzZSBJdGVtUHJvcGVydGll
czoKKyAgICAgICAgICAgICAgICBpZiAoZS0+aXNIVE1MRWxlbWVudCgpICYmIGUtPmhhc0F0dHJp
YnV0ZShpdGVtcHJvcEF0dHIpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyNlbmRpZgogICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5hbWVk
SXRlbXM6CiAgICAgICAgICAgICBjYXNlIE90aGVyQ29sbGVjdGlvbjoKICAgICAgICAgICAgIGNh
c2UgV2luZG93TmFtZWRJdGVtczoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxMDExMjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTk3LDM4ICs5OTcsNiBAQCBib29sIEhUTUxFbGVtZW50Ojpp
c1VSTEF0dHJpYnV0ZShBdHRyaWJ1CiB9CiAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQotUGFzc1Jl
ZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gSFRNTEVsZW1lbnQ6Oml0ZW1Qcm9wKCkgY29uc3QK
LXsKLSAgICBpZiAoIW1faXRlbVByb3ApCi0gICAgICAgIG1faXRlbVByb3AgPSBET01TZXR0YWJs
ZVRva2VuTGlzdDo6Y3JlYXRlKCk7Ci0KLSAgICByZXR1cm4gbV9pdGVtUHJvcDsKLX0KLQotdm9p
ZCBIVE1MRWxlbWVudDo6c2V0SXRlbVByb3AoY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBp
ZiAoIW1faXRlbVByb3ApCi0gICAgICAgIG1faXRlbVByb3AgPSBET01TZXR0YWJsZVRva2VuTGlz
dDo6Y3JlYXRlKCk7Ci0KLSAgICBtX2l0ZW1Qcm9wLT5zZXRWYWx1ZSh2YWx1ZSk7Ci19Ci0KLVBh
c3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVtZW50OjppdGVtUmVmKCkgY29u
c3QKLXsKLSAgICBpZiAoIW1faXRlbVJlZikKLSAgICAgICAgbV9pdGVtUmVmID0gRE9NU2V0dGFi
bGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOwotCi0gICAgcmV0dXJuIG1faXRlbVJlZjsKLX0KLQotdm9p
ZCBIVE1MRWxlbWVudDo6c2V0SXRlbVJlZihjb25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIGlm
ICghbV9pdGVtUmVmKQotICAgICAgICBtX2l0ZW1SZWYgPSBET01TZXR0YWJsZVRva2VuTGlzdDo6
Y3JlYXRlKCk7Ci0KLSAgICBtX2l0ZW1SZWYtPnNldFZhbHVlKHZhbHVlKTsKLX0KLQogdm9pZCBI
VE1MRWxlbWVudDo6c2V0SXRlbVZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIGlmICghaGFzQXR0cmlidXRlKGl0ZW1wcm9wQXR0cikgfHwgaGFzQXR0
cmlidXRlKGl0ZW1zY29wZUF0dHIpKSB7CkBAIC0xMDU5LDIyICsxMDI3LDYgQEAgdm9pZCBIVE1M
RWxlbWVudDo6c2V0SXRlbVZhbHVlVGV4dChjb25zdAogewogICAgIHNldFRleHRDb250ZW50KHZh
bHVlLCBlYyk7CiB9Ci0KLVBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IEhUTUxFbGVt
ZW50OjppdGVtVHlwZSgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2l0ZW1UeXBlKQotICAgICAgICBt
X2l0ZW1UeXBlID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOwotCi0gICAgcmV0dXJu
IG1faXRlbVR5cGU7Ci19Ci0KLXZvaWQgSFRNTEVsZW1lbnQ6OnNldEl0ZW1UeXBlKGNvbnN0IFN0
cmluZyYgdmFsdWUpCi17Ci0gICAgaWYgKCFtX2l0ZW1UeXBlKQotICAgICAgICBtX2l0ZW1UeXBl
ID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOwotCi0gICAgbV9pdGVtVHlwZS0+c2V0
VmFsdWUodmFsdWUpOwotfQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDEwMTEyMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTAgKzI1LDYg
QEAKIAogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKIAotI2lmIEVOQUJMRShNSUNST0RBVEEp
Ci0jaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CkBAIC05MCwxMCArODYsNiBAQCBw
dWJsaWM6CiAgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb25hbGl0eUlmaGFzRGlyQXV0b0F0dHJp
YnV0ZShib29sJiBpc0F1dG8pIGNvbnN0OwogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKLSAgICBQ
YXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBpdGVtUmVmKCkgY29uc3Q7Ci0gICAgUGFz
c1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gaXRlbVByb3AoKSBjb25zdDsKLSAgICBQYXNz
UmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBpdGVtVHlwZSgpIGNvbnN0OwotCiAgICAgdm9p
ZCBzZXRJdGVtVmFsdWUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NS
ZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiBpdGVtVmFsdWUoKSBjb25zdDsKICNlbmRpZgpAQCAt
MTI4LDE2ICsxMjAsOCBAQCBwcml2YXRlOgogICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uYWxp
dHkoTm9kZSoqIHN0cm9uZ0RpcmVjdGlvbmFsaXR5VGV4dE5vZGU9IDApIGNvbnN0OwogCiAjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKLSAgICB2b2lkIHNldEl0ZW1Qcm9wKGNvbnN0IFN0cmluZyYpOwot
ICAgIHZvaWQgc2V0SXRlbVJlZihjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHNldEl0ZW1UeXBl
KGNvbnN0IFN0cmluZyYpOwotCiAgICAgdmlydHVhbCBTdHJpbmcgaXRlbVZhbHVlVGV4dCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtVmFsdWVUZXh0KGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKTsKLQotICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0
PiBtX2l0ZW1Qcm9wOwotICAgIG11dGFibGUgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBt
X2l0ZW1SZWY7Ci0gICAgbXV0YWJsZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1faXRl
bVR5cGU7CiAjZW5kaWYKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRs
CShyZXZpc2lvbiAxMDExMjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsMTAgQEAgbW9kdWxlIGh0bWwgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gRE9NU2V0dGFibGVU
b2tlbkxpc3QgaXRlbVJlZjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1NSUNST0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1Qcm9wOwogCisjaWYgZGVmaW5l
ZChFTkFCTEVfTUlDUk9EQVRBKSAmJiBFTkFCTEVfTUlDUk9EQVRBCisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24gcHJvcGVydGllczsKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAh
TEFOR1VBR0VfQ1BQCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5H
VUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFs
PU1JQ1JPREFUQSwgQ3VzdG9tXSBET01PYmplY3QgaXRlbVZhbHVlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgor
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShNSUNST0RBVEEpCisKKyNpbmNsdWRlICJIVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uaCIKKworI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAi
RE9NU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlVHJl
ZU9yZGVyKE5vZGUqIG5vZGUxLCBOb2RlKiBub2RlMikKK3sKKyAgICByZXR1cm4gKG5vZGUyLT5j
b21wYXJlRG9jdW1lbnRQb3NpdGlvbihub2RlMSkgJiAoTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05f
UFJFQ0VESU5HIHwgTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEKSkgPT0gTm9k
ZTo6RE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HOworfQorCitQYXNzUmVmUHRyPEhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbj4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiBpdGVtTm9kZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbihpdGVtTm9kZSkpOworfQorCitIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbihQYXNzUmVmUHRyPE5vZGU+IGl0ZW1Ob2RlKQor
ICAgIDogSFRNTENvbGxlY3Rpb24oaXRlbU5vZGUsIEl0ZW1Qcm9wZXJ0aWVzKQorICAgICwgbV9w
cm9wZXJ0eU5hbWVzKERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpKQoreworfQorCitIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb246On5IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24oKQoreworfQorCit2b2lk
IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6ZmluZFByb3BldGllc09mQW5JdGVtKE5vZGUqIHJv
b3QpIGNvbnN0Cit7CisgICAgLy8gNS4yLjUgQXNzb2NpYXRpbmcgbmFtZXMgd2l0aCBpdGVtcy4K
KyAgICBWZWN0b3I8Tm9kZSo+IG1lbW9yeTsKKworICAgIG1lbW9yeS5hcHBlbmQocm9vdCk7CisK
KyAgICBWZWN0b3I8Tm9kZSo+IHBlbmRpbmc7CisgICAgLy8gQWRkIHRoZSBjaGlsZCBlbGVtZW50
cyBvZiByb290LCBpZiBhbnksIHRvIHBlbmRpbmcuCisgICAgZm9yIChOb2RlKiBjaGlsZCA9IHJv
b3QtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisg
ICAgICAgIGlmIChjaGlsZC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICAgICAgcGVuZGluZy5h
cHBlbmQoY2hpbGQpOworCisgICAgLy8gSWYgcm9vdCBoYXMgYW4gaXRlbXJlZiBhdHRyaWJ1dGUs
IHNwbGl0IHRoZSB2YWx1ZSBvZiB0aGF0IGl0ZW1yZWYgYXR0cmlidXRlIG9uIHNwYWNlcy4KKyAg
ICAvLyBGb3IgZWFjaCByZXN1bHRpbmcgdG9rZW4gSUQsIGlmIHRoZXJlIGlzIGFuIGVsZW1lbnQg
aW4gdGhlIGhvbWUgc3VidHJlZSBvZiByb290IHdpdGggdGhlIElEIElELAorICAgIC8vIHRoZW4g
YWRkIHRoZSBmaXJzdCBzdWNoIGVsZW1lbnQgdG8gcGVuZGluZy4KKyAgICBpZiAodG9IVE1MRWxl
bWVudChyb290KS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtcmVmQXR0cikpIHsKKyAgICAgICAgRE9N
U2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1SZWYgPSByb290LT5pdGVtUmVmKCk7CisKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBpdGVtUmVmLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAg
ICAgICBBdG9taWNTdHJpbmcgaWQgPSBpdGVtUmVmLT5pdGVtKGkpOworCisgICAgICAgICAgICBF
bGVtZW50KiBlbGVtZW50ID0gcm9vdC0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoaWQpOwor
ICAgICAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAg
ICAgICAgICAgICAgIHBlbmRpbmcuYXBwZW5kKGVsZW1lbnQpOworICAgICAgICB9CisgICAgfQor
CisgICAgLy8gTG9vcCB0aWxsIHdlIGhhdmUgcHJvY2Vzc2VkIGFsbCBwZW5kaW5nIGVsZW1lbnRz
CisgICAgd2hpbGUgKCFwZW5kaW5nLmlzRW1wdHkoKSkgeworCisgICAgICAgIC8vIFJlbW92ZSBm
aXJzdCBlbGVtZW50IGZyb20gcGVuZGluZyBhbmQgbGV0IGN1cnJlbnQgYmUgdGhhdCBlbGVtZW50
LgorICAgICAgICBOb2RlKiBjdXJyZW50ID0gcGVuZGluZ1swXTsKKyAgICAgICAgcGVuZGluZy5y
ZW1vdmUoMCk7CisKKyAgICAgICAgLy8gSWYgY3VycmVudCBpcyBhbHJlYWR5IGluIG1lbW9yeSwg
dGhlcmUgaXMgYSBtaWNyb2RhdGEgZXJyb3I7CisgICAgICAgIGlmIChtZW1vcnkuY29udGFpbnMo
Y3VycmVudCkpIHsKKyAgICAgICAgICAgIC8vIG1pY3JvZGF0YSBlcnJvcjsKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgbWVtb3J5LmFwcGVuZChjdXJyZW50KTsK
KworICAgICAgICAvLyBJZiBjdXJyZW50IGRvZXMgbm90IGhhdmUgYW4gaXRlbXNjb3BlIGF0dHJp
YnV0ZSwgdGhlbjogYWRkIGFsbCB0aGUgY2hpbGQgZWxlbWVudHMgb2YgY3VycmVudCB0byBwZW5k
aW5nLgorICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQoY3VycmVu
dCk7CisgICAgICAgIGlmICghZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRy
KSkgeworICAgICAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGN1cnJlbnQtPmZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICAgICAg
aWYgKGNoaWxkLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgICAgIHBlbmRpbmcu
YXBwZW5kKGNoaWxkKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIGN1cnJlbnQgaGFzIGFu
IGl0ZW1wcm9wIGF0dHJpYnV0ZSBzcGVjaWZpZWQsIGFkZCBpdCB0byByZXN1bHRzLgorICAgICAg
ICBpZiAoZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpKQorICAgICAgICAg
ICAgIG1fcHJvcGVydGllcy5hcHBlbmQoY3VycmVudCk7CisgICAgfQorfQorCit1bnNpZ25lZCBI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb246Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgaWYgKCFiYXNl
KCktPmlzSFRNTEVsZW1lbnQoKSB8fCAhdG9IVE1MRWxlbWVudChiYXNlKCkpLT5mYXN0SGFzQXR0
cmlidXRlKGl0ZW1zY29wZUF0dHIpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIG1fcHJvcGVy
dGllcy5jbGVhcigpOworICAgIGZpbmRQcm9wZXRpZXNPZkFuSXRlbShiYXNlKCkpOworICAgIHJl
dHVybiBtX3Byb3BlcnRpZXMuc2l6ZSgpOworfQorCitOb2RlKiBIVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb246Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKCFiYXNlKCktPmlz
SFRNTEVsZW1lbnQoKSB8fCAhdG9IVE1MRWxlbWVudChiYXNlKCkpLT5mYXN0SGFzQXR0cmlidXRl
KGl0ZW1zY29wZUF0dHIpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIG1fcHJvcGVydGllcy5j
bGVhcigpOworICAgIGZpbmRQcm9wZXRpZXNPZkFuSXRlbShiYXNlKCkpOworCisgICAgaWYgKG1f
cHJvcGVydGllcy5zaXplKCkgPD0gaW5kZXgpCisgICAgICAgIHJldHVybiAwOworCisgICAgc3Rk
Ojpzb3J0KG1fcHJvcGVydGllcy5iZWdpbigpLCBtX3Byb3BlcnRpZXMuZW5kKCksIGNvbXBhcmVU
cmVlT3JkZXIpOworICAgIHJldHVybiBtX3Byb3BlcnRpZXNbaW5kZXhdOworfQorCitQYXNzUmVm
UHRyPERPTVN0cmluZ0xpc3Q+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZXMoKSBjb25z
dAoreworICAgIG1fcHJvcGVydGllcy5jbGVhcigpOworICAgIG1fcHJvcGVydHlOYW1lcy0+Y2xl
YXIoKTsKKworICAgIGlmICghYmFzZSgpLT5pc0hUTUxFbGVtZW50KCkgfHwgIXRvSFRNTEVsZW1l
bnQoYmFzZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkKKyAgICAgICAgcmV0
dXJuIG1fcHJvcGVydHlOYW1lczsKKworICAgIGZpbmRQcm9wZXRpZXNPZkFuSXRlbShiYXNlKCkp
OworCisgICAgc3RkOjpzb3J0KG1fcHJvcGVydGllcy5iZWdpbigpLCBtX3Byb3BlcnRpZXMuZW5k
KCksIGNvbXBhcmVUcmVlT3JkZXIpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3By
b3BlcnRpZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgLy8gRm9yIGVhY2ggaXRlbSBwcm9wZXJ0
aWVzLCBzcGxpdCB0aGUgdmFsdWUgb2YgdGhhdCBpdGVtcHJvcCBhdHRyaWJ1dGUgb24gc3BhY2Vz
LgorICAgICAgICAvLyBBZGQgYWxsIHRva2VucyB0byBwcm9wZXJ0eSBuYW1lcywgd2l0aCB0aGUg
b3JkZXIgcHJlc2VydmVkIGJ1dCB3aXRoIGR1cGxpY2F0ZXMgcmVtb3ZlZC4KKyAgICAgICAgRE9N
U2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1Qcm9wZXJ0eSA9IG1fcHJvcGVydGllc1tpXS0+aXRlbVBy
b3AoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpdGVtUHJvcGVydHktPmxlbmd0
aCgpOyArK2kpIHsKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBwcm9wZXJ0eU5hbWUgPSBpdGVt
UHJvcGVydHktPml0ZW0oaSk7CisgICAgICAgICAgICBpZiAobV9wcm9wZXJ0eU5hbWVzLT5pc0Vt
cHR5KCkgfHwgIW1fcHJvcGVydHlOYW1lcy0+Y29udGFpbnMocHJvcGVydHlOYW1lKSkKKyAgICAg
ICAgICAgICAgICBtX3Byb3BlcnR5TmFtZXMtPmFwcGVuZChwcm9wZXJ0eU5hbWUpOworICAgICAg
ICB9CisgICAgfQorCisgICAgcmV0dXJuIG1fcHJvcGVydHlOYW1lczsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEgTW90
b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMg
Y29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbl9oCisjZGVmaW5lIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbl9oCisKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBET01TdHJpbmdMaXN0OworCitjbGFzcyBIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24geworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4gY3JlYXRlKFBhc3NSZWZQ
dHI8Tm9kZT4pOworICAgIHZpcnR1YWwgfkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbigpOworCisg
ICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIE5vZGUq
IGl0ZW0odW5zaWduZWQpIGNvbnN0IE9WRVJSSURFOworCisgICAgUGFzc1JlZlB0cjxET01TdHJp
bmdMaXN0PiBuYW1lcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIEhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbihQYXNzUmVmUHRyPE5vZGU+KTsKKworICAgIHZvaWQgZmluZFByb3BldGllc09mQW5J
dGVtKE5vZGUqIGN1cnJlbnQpIGNvbnN0OworCisgICAgbXV0YWJsZSBWZWN0b3I8Tm9kZSo+IG1f
cHJvcGVydGllczsKKyAgICBtdXRhYmxlIFJlZlB0cjxET01TdHJpbmdMaXN0PiBtX3Byb3BlcnR5
TmFtZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
TUlDUk9EQVRBKQorCisjZW5kaWYgLy8gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uX2gKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbi5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
CisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRt
bCB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NSUNST0RBVEEsCisg
ICAgICAgIEhhc0luZGV4R2V0dGVyCisgICAgXSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24gOiBI
VE1MQ29sbGVjdGlvbiB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKKyAgICAgICAgTm9kZSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworCisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0IG5hbWVzOworCisgICAgICAg
IC8vIEZJWE1FOiBvdmVycmlkZSBpbmhlcml0ZWQgbmFtZWRJdGVtKCkKKyAgICB9OworfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMTAxMTIwKQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00ODgsNiArNDg4
LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9u
Q29uc3RydWN0b3IgSFRNTENvbGxlY3Rpb247CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MQWxsQ29s
bGVjdGlvbkNvbnN0cnVjdG9yIEhUTUxBbGxDb2xsZWN0aW9uOworICAgICAgICBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uQ29uc3RydWN0
b3IgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgSFRNTFVua25v
d25FbGVtZW50Q29uc3RydWN0b3IgSFRNTFVua25vd25FbGVtZW50OwogCiAgICAgICAgIGF0dHJp
YnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLCBDdXN0b21Db25zdHJ1Y3Rvcl0gSFRNTEltYWdlRWxlbWVu
dENvbnN0cnVjdG9yQ29uc3RydWN0b3IgSW1hZ2U7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRv
cgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTAxMTIwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMTEtMjMgIEFya28gU2FoYSAgPGFy
a29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogU3VwcG9ydCBmb3IgcHJvcGVy
dGllcyBhdHRyaWJ1dGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MTA1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIHRlc3QgZm9yIGh0bWwgcHJvcGVydGllcyBjb2xsZWN0aW9ucy4KKworICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9pdGVtcmVmLXJlZmVycy1maXJzdC1lbGVtZW50LXdp
dGgtZ2l2ZW4taWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbXJlZi1yZWZlcnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJl
LWNvcnJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvbmFtZXMtcHJvcGVydHktbXVzdC1iZS1jb3JyZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS10ZXN0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVj
dGlvbi1hZGQtcmVtb3ZlLWl0ZW1yZWYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWFkZC1yZW1vdmUtaXRlbXJl
Zi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1j
b2xsZWN0aW9uLWFkZC1yZW1vdmUtcHJvcGVydHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWFkZC1yZW1vdmUt
cHJvcGVydHkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3Bl
cnRpZXMtY29sbGVjdGlvbi1iZWhhdmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1hdHRyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMt
Y29sbGVjdGlvbi1iZWhhdmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1hdHRyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVz
dC1iZS1jb3JyZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWJlLWNvcnJlY3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0
LWlnbm9yZS1wcm9wZXJ0aWVzLW9mLW5lc3RlZC1pdGVtcy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1p
Z25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQtaXRlbXMuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10aGUtcHJv
cGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10aGUtcHJv
cGVydGllcy1hZGRlZC1pbi1pdGVtcmVmLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVz
dC5odG1sOiBBZGRlZC4KKwogMjAxMS0xMS0yMyAgSmVmZiBUaW1hbnVzICA8dHdpekBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSAgUHJldmVudCBEcmF3aW5nQnVmZmVyIGluc3Rh
bmNlcyBmcm9tIGNvcnJ1cHRpbmcgdGhlIGFjdGl2ZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL2l0ZW1yZWYtcmVmZXJzLWZpcnN0LWVsZW1lbnQtd2l0aC1naXZlbi1pZC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L2l0ZW1yZWYtcmVmZXJzLWZpcnN0LWVsZW1lbnQtd2l0aC1naXZlbi1pZC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvaXRlbXJlZi1y
ZWZlcnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBpdGVtcmVmIG11c3Qg
cmVmZXJlbmNlIHRoZSBmaXJzdCBlbGVtZW50IHdpdGggYSBnaXZlbiBpZC4KKworQ3JlYXRlZCBl
bGVtZW50IG9mIHR5cGU6IGRpdgorUEFTUyBpdGVtLnByb3BlcnRpZXMubGVuZ3RoID09ICcyJyBp
cyB0cnVlCitQQVNTIGl0ZW0ucHJvcGVydGllcy5pdGVtKDApID09IGVsZW1lbnQuY2hpbGROb2Rl
c1sxXSBpcyB0cnVlCitQQVNTIGl0ZW0ucHJvcGVydGllcy5pdGVtKDEpID09IGVsZW1lbnQuY2hp
bGROb2Rlc1sxXS5maXJzdENoaWxkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvaXRlbXJlZi1yZWZlcnMtZmlyc3QtZWxlbWVudC13aXRoLWdpdmVuLWlkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtcmVmZXJz
LWZpcnN0LWVsZW1lbnQtd2l0aC1naXZlbi1pZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2l0ZW1yZWYtcmVmZXJzLWZpcnN0LWVsZW1lbnQtd2l0
aC1naXZlbi1pZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRh
LWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1
cmVzIHRoYXQgaXRlbXJlZiBtdXN0IHJlZmVyZW5jZSB0aGUgZmlyc3QgZWxlbWVudCB3aXRoIGEg
Z2l2ZW4gaWQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVs
ZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLHt9LCc8ZGl2IGl0ZW1zY29wZSBpdGVtcmVmPSJp
ZDEiPjwvZGl2PjxkaXYgaXRlbXByb3A9ImZvbyIgaWQ9ImlkMSI+PGRpdiBpdGVtcHJvcD0iYmFy
Ij48L2Rpdj48L2Rpdj48ZGl2IGl0ZW1wcm9wPSJiYXoiIGlkPSJpZDEiPjwvZGl2PicpOworZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK3ZhciBpdGVtID0gZWxlbWVudC5jaGls
ZE5vZGVzWzBdOworCitzaG91bGRCZVRydWUoIml0ZW0ucHJvcGVydGllcy5sZW5ndGggPT0gJzIn
Iik7CitzaG91bGRCZVRydWUoIml0ZW0ucHJvcGVydGllcy5pdGVtKDApID09IGVsZW1lbnQuY2hp
bGROb2Rlc1sxXSIpOworc2hvdWxkQmVUcnVlKCJpdGVtLnByb3BlcnRpZXMuaXRlbSgxKSA9PSBl
bGVtZW50LmNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1w
cm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS1tdXN0LWJlLWNvcnJlY3Qt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL25hbWVzLXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTcgQEAKK1RoaXMgdGVzdHMgdGhhdCBuYW1lcy5pdGVtKCkgYW5kIG5h
bWVzW2luZGV4XSBtdXN0IHJldHVybiBjb3JyZWN0IHByb3BlcnR5IG5hbWUgaW4gdHJlZSBvcmRl
ciBhbmQgaXQgc2hvdWxkIG5vdCBjb250YWluIGR1cGxpY2F0ZSB0b2tlbnMuCisKK0NyZWF0ZWQg
ZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0
ZW1zY29wZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFtZXNbMF0gPT0gJ2ZvbycgaXMgdHJ1
ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFtZXNbMV0gPT0gJ2JhcicgaXMgdHJ1ZQorUEFT
UyBlbGVtZW50LnByb3BlcnRpZXMubmFtZXNbMl0gPT0gJ2JheicgaXMgdHJ1ZQorUEFTUyBlbGVt
ZW50LnByb3BlcnRpZXMubmFtZXNbM10gPT0gJ3F1eCcgaXMgdHJ1ZQorCitQQVNTIGVsZW1lbnQu
cHJvcGVydGllcy5uYW1lcy5pdGVtKDApID09ICdmb28nIGlzIHRydWUKK1BBU1MgZWxlbWVudC5w
cm9wZXJ0aWVzLm5hbWVzLml0ZW0oMSkgPT0gJ2JhcicgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnBy
b3BlcnRpZXMubmFtZXMuaXRlbSgyKSA9PSAnYmF6JyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJv
cGVydGllcy5uYW1lcy5pdGVtKDMpID09ICdxdXgnIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktbXVzdC1iZS1jb3JyZWN0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LW11
c3QtYmUtY29ycmVjdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL25hbWVzLXByb3BlcnR5LW11c3QtYmUtY29ycmVjdC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBuYW1lcy5pdGVtKCkgYW5kIG5hbWVzW2lu
ZGV4XSBtdXN0IHJldHVybiBjb3JyZWN0IHByb3BlcnR5IG5hbWUgaW4gdHJlZSBvcmRlciBhbmQg
aXQgc2hvdWxkIG5vdCBjb250YWluIGR1cGxpY2F0ZSB0b2tlbnMuPC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYn
LCB7aXRlbXNjb3BlOiAnaXRlbXNjb3BlJ30sJzxkaXYgaXRlbXByb3A9ImZvbyI+PC9kaXY+PGRp
diBpdGVtcHJvcD0iYmFyIj48ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PjxkaXYgaXRlbXByb3A9
ImZvbyI+PC9kaXY+PC9kaXY+PGRpdiBpdGVtcHJvcD0iYmF6IHF1eCI+PC9kaXY+Jyk7CitzaG91
bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lc1swXSA9PSAnZm9vJyIpOworc2hvdWxk
QmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZXNbMV0gPT0gJ2JhciciKTsKK3Nob3VsZEJl
VHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzWzJdID09ICdiYXonIik7CitzaG91bGRCZVRy
dWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lc1szXSA9PSAncXV4JyIpOworCitkZWJ1ZygnJyk7
CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lcy5pdGVtKDApID09ICdmb28n
Iik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lcy5pdGVtKDEpID09ICdi
YXInIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lcy5pdGVtKDIpID09
ICdiYXonIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lcy5pdGVtKDMp
ID09ICdxdXgnIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVzLXByb3BlcnR5LXRlc3QtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lcy1w
cm9wZXJ0eS10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9uYW1lcy1wcm9wZXJ0eS10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMyBAQAorbmFtZXMgcHJvcGVydHkgc2ltcGxlIHRlc3QuCisKK0Ny
ZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKKworVGhlIG5hbWVzIHByb3BlcnR5IG11c3QgYmUg
ZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVzIGlzIGRlZmluZWQuCisKK1Ro
ZSBuYW1lcyBwcm9wZXJ0eSBtdXN0IHJldHVybiBhIERPTVN0cmluZ0xpc3Qgb2JqZWN0LgorUEFT
UyBlbGVtZW50LnByb3BlcnRpZXMubmFtZXMgPT0gJ1tvYmplY3QgRE9NU3RyaW5nTGlzdF0nIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktdGVz
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1l
cy1wcm9wZXJ0eS10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvbmFtZXMtcHJvcGVydHktdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwPm5hbWVzIHByb3BlcnR5IHNpbXBsZSB0ZXN0LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge30p
OworCitkZWJ1ZygiPGJyPlRoZSBuYW1lcyBwcm9wZXJ0eSBtdXN0IGJlIGRlZmluZWQuIik7Citz
aG91bGRCZURlZmluZWQoImVsZW1lbnQucHJvcGVydGllcy5uYW1lcyIpOworCitkZWJ1ZygiPGJy
PlRoZSBuYW1lcyBwcm9wZXJ0eSBtdXN0IHJldHVybiBhIERPTVN0cmluZ0xpc3Qgb2JqZWN0LiIp
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZXMgPT0gJ1tvYmplY3QgRE9N
U3RyaW5nTGlzdF0nIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQt
cmVtb3ZlLWl0ZW1yZWYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYWRkLXJlbW92ZS1pdGVtcmVm
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYWRkLXJlbW92ZS1pdGVtcmVmLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorTWljcm9kYXRhIHByb3BlcnRpZXMgY29s
bGVjdGlvbiBzaG91bGQgdXBkYXRlIHByb3Blcmx5IG9uIGFkZGluZyBvciByZW1vdmluZyBpdGVt
cmVmLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitQQVNTIGl0ZW0ucHJvcGVydGll
cy5sZW5ndGggPT0gJzAnIGlzIHRydWUKKworU2V0IGl0ZW1yZWYgdG8gaWQxLgorUEFTUyBpdGVt
LnByb3BlcnRpZXMubGVuZ3RoID09ICcxJyBpcyB0cnVlCitQQVNTIGl0ZW0ucHJvcGVydGllcy5p
dGVtKDApID09IGVsZW1lbnQuZmlyc3RDaGlsZCBpcyB0cnVlCitQQVNTIGl0ZW0ucHJvcGVydGll
c1swXSA9PSBlbGVtZW50LmZpcnN0Q2hpbGQgaXMgdHJ1ZQorCitSZW1vdmUgaXRlbXJlZiBhdHRy
aWJ1dGUuCitQQVNTIGl0ZW0ucHJvcGVydGllcy5sZW5ndGggPT0gJzAnIGlzIHRydWUKK1BBU1Mg
aXRlbS5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0gdW5kZWZpbmVkIGlzIHRydWUKK1BBU1MgaXRlbS5w
cm9wZXJ0aWVzWzBdID09IHVuZGVmaW5lZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLWl0ZW1yZWYuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1j
b2xsZWN0aW9uLWFkZC1yZW1vdmUtaXRlbXJlZi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3Zl
LWl0ZW1yZWYuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1j
b21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5NaWNyb2RhdGEgcHJvcGVy
dGllcyBjb2xsZWN0aW9uIHNob3VsZCB1cGRhdGUgcHJvcGVybHkgb24gYWRkaW5nIG9yIHJlbW92
aW5nIGl0ZW1yZWYuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFy
IGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7fSwgJzxkaXYgaWQ9ImlkMSIgaXRlbXBy
b3A9ImZvbyI+PC9kaXY+PGRpdiBpdGVtc2NvcGU+PC9kaXY+Jyk7Cit2YXIgaXRlbSA9IGVsZW1l
bnQuY2hpbGROb2Rlc1sxXTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisK
K3Nob3VsZEJlVHJ1ZSgiaXRlbS5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMCciKTsKKworZGVidWco
Ijxicj5TZXQgaXRlbXJlZiB0byBpZDEuIik7CitpdGVtLnNldEF0dHJpYnV0ZSgnaXRlbXJlZics
ICdpZDEnKTsKK3Nob3VsZEJlVHJ1ZSgiaXRlbS5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMSciKTsK
K3Nob3VsZEJlVHJ1ZSgiaXRlbS5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0gZWxlbWVudC5maXJzdENo
aWxkIik7CitzaG91bGRCZVRydWUoIml0ZW0ucHJvcGVydGllc1swXSA9PSBlbGVtZW50LmZpcnN0
Q2hpbGQiKTsKKworZGVidWcoIjxicj5SZW1vdmUgaXRlbXJlZiBhdHRyaWJ1dGUuIik7CitpdGVt
LnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXJlZicpOworc2hvdWxkQmVUcnVlKCJpdGVtLnByb3BlcnRp
ZXMubGVuZ3RoID09ICcwJyIpOworc2hvdWxkQmVUcnVlKCJpdGVtLnByb3BlcnRpZXMuaXRlbSgw
KSA9PSB1bmRlZmluZWQiKTsKK3Nob3VsZEJlVHJ1ZSgiaXRlbS5wcm9wZXJ0aWVzWzBdID09IHVu
ZGVmaW5lZCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYWRkLXJlbW92
ZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLXByb3BlcnR5LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYWRkLXJlbW92ZS1wcm9wZXJ0eS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKK01pY3JvZGF0YSBwcm9wZXJ0aWVzIGNvbGxl
Y3Rpb24gbXVzdCB1cGRhdGUgb24gYWRkaW5nIG9yIHJlbW92aW5nIHByb3BlcnR5LgorCitDcmVh
dGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVl
OiBpdGVtc2NvcGUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMScgaXMgdHJ1
ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMuaXRlbSgwKSA9PSBlbGVtZW50LmZpcnN0Q2hpbGQg
aXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbMF0gPT0gZWxlbWVudC5maXJzdENoaWxk
IGlzIHRydWUKKworQXBwZW5kIGEgcHJvcGVydHkgd2l0aCBpdGVtcHJvcDogYmFyLgorQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBi
YXIKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMicgaXMgdHJ1ZQorUEFTUyBl
bGVtZW50LnByb3BlcnRpZXMuaXRlbSgxKSA9PSBlbGVtZW50LmNoaWxkTm9kZXNbMV0gaXMgdHJ1
ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbMV0gPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdIGlz
IHRydWUKKworQXBwZW5kIGEgcHJvcGVydHkgd2l0aCBpdGVtcHJvcDogZm9vLgorQ3JlYXRlZCBl
bGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28K
K1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMycgaXMgdHJ1ZQorUEFTUyBlbGVt
ZW50LnByb3BlcnRpZXMuaXRlbSgyKSA9PSBlbGVtZW50LmNoaWxkTm9kZXNbMV0uZmlyc3RDaGls
ZCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1syXSA9PSBlbGVtZW50LmNoaWxkTm9k
ZXNbMV0uZmlyc3RDaGlsZCBpcyB0cnVlCisKK1JlbW92ZSBwcm9wZXJ0eSB3aXRoIGl0ZW1wcm9w
OiBmb28uCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5sZW5ndGggPT0gJzInIGlzIHRydWUKK1BB
U1MgZWxlbWVudC5wcm9wZXJ0aWVzLml0ZW0oMikgPT0gdW5kZWZpbmVkIGlzIHRydWUKK1BBU1Mg
ZWxlbWVudC5wcm9wZXJ0aWVzWzJdID09IHVuZGVmaW5lZCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLXByb3Bl
cnR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3By
b3BlcnRpZXMtY29sbGVjdGlvbi1hZGQtcmVtb3ZlLXByb3BlcnR5Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9u
LWFkZC1yZW1vdmUtcHJvcGVydHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5NaWNy
b2RhdGEgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgdXBkYXRlIG9uIGFkZGluZyBvciByZW1v
dmluZyBwcm9wZXJ0eS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2
YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtc2NvcGU6ICdpdGVtc2NvcGUn
fSwgJzxkaXYgaXRlbXByb3A9ImZvbyI+PC9kaXY+Jyk7CisKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVu
dC5wcm9wZXJ0aWVzLmxlbmd0aCA9PSAnMSciKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9w
ZXJ0aWVzLml0ZW0oMCkgPT0gZWxlbWVudC5maXJzdENoaWxkIik7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQucHJvcGVydGllc1swXSA9PSBlbGVtZW50LmZpcnN0Q2hpbGQiKTsKKworZGVidWcoJzxi
cj5BcHBlbmQgYSBwcm9wZXJ0eSB3aXRoIGl0ZW1wcm9wOiBiYXIuJyk7CitlbGVtZW50LmFwcGVu
ZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2Rpdicse2l0ZW1wcm9wOidiYXInfSkpOworc2hvdWxkQmVU
cnVlKCJlbGVtZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcyJyIpOworc2hvdWxkQmVUcnVlKCJl
bGVtZW50LnByb3BlcnRpZXMuaXRlbSgxKSA9PSBlbGVtZW50LmNoaWxkTm9kZXNbMV0iKTsKK3No
b3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzWzFdID09IGVsZW1lbnQuY2hpbGROb2Rlc1sx
XSIpOworCitkZWJ1ZygnPGJyPkFwcGVuZCBhIHByb3BlcnR5IHdpdGggaXRlbXByb3A6IGZvby4n
KTsKK2VsZW1lbnQubGFzdENoaWxkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2Rpdicse2l0
ZW1wcm9wOidmb28nfSkpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubGVuZ3Ro
ID09ICczJyIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMuaXRlbSgyKSA9PSBl
bGVtZW50LmNoaWxkTm9kZXNbMV0uZmlyc3RDaGlsZCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50
LnByb3BlcnRpZXNbMl0gPT0gZWxlbWVudC5jaGlsZE5vZGVzWzFdLmZpcnN0Q2hpbGQiKTsKKwor
ZGVidWcoJzxicj5SZW1vdmUgcHJvcGVydHkgd2l0aCBpdGVtcHJvcDogZm9vLicpOworZWxlbWVu
dC5sYXN0Q2hpbGQucmVtb3ZlQ2hpbGQoZWxlbWVudC5sYXN0Q2hpbGQuZmlyc3RDaGlsZCk7Citz
aG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5sZW5ndGggPT0gJzInIik7CitzaG91bGRC
ZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5pdGVtKDIpID09IHVuZGVmaW5lZCIpOworc2hvdWxk
QmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbMl0gPT0gdW5kZWZpbmVkIik7CisKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1iZWhhdmlvci1hZGQtcmVtb3ZlLWl0ZW1zY29wZS1h
dHRyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLWJlaGF2aW9yLWFkZC1yZW1vdmUtaXRlbXNjb3Bl
LWF0dHItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1iZWhhdmlvci1hZGQtcmVtb3ZlLWl0ZW1z
Y29wZS1hdHRyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorVGhp
cyB0ZXN0cyB0aGUgYmVoYXZpb3Igb2YgcHJvcGVydGllcyBjb2xsZWN0aW9uIG9uIGFkZGluZyBv
ciByZW1vdmluZyBpdGVtc2NvcGUgYXR0cmlidXRlLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlw
ZTogZGl2CisKK1RoZSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gbXVzdCBiZSBlbXB0eSBpZiB0aGUg
ZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFuIGl0ZW1zY29wZSBhdHRyaWJ1dGUuCitQQVNTIGVsZW1l
bnQucHJvcGVydGllcy5sZW5ndGggPT0gJzAnIGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0
aWVzWzBdID09IHVuZGVmaW5lZCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5pdGVt
KDApID09IHVuZGVmaW5lZCBpcyB0cnVlCisKK1RoZSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gbXVz
dCBiZWNvbWUgcG9wdWxhdGVkIGlmIHdlIGFkZCBpdGVtc2NvcGUgYXR0cmlidXRlLgorUEFTUyBl
bGVtZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcxJyBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJv
cGVydGllc1swXSA9PSBlbGVtZW50LmZpcnN0Q2hpbGQgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnBy
b3BlcnRpZXMuaXRlbSgwKSA9PSBlbGVtZW50LmZpcnN0Q2hpbGQgaXMgdHJ1ZQorCitUaGUgcHJv
cGVydGllcyBjb2xsZWN0aW9uIG11c3QgYmVjb21lIGVtcHR5IGlmIHdlIHJlbW92ZSBpdGVtc2Nv
cGUgYXR0cmlidXRlLgorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubGVuZ3RoID09ICcwJyBpcyB0
cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1swXSA9PSB1bmRlZmluZWQgaXMgdHJ1ZQorUEFT
UyBlbGVtZW50LnByb3BlcnRpZXMuaXRlbSgwKSA9PSB1bmRlZmluZWQgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZpb3It
YWRkLXJlbW92ZS1pdGVtc2NvcGUtYXR0ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tYmVoYXZpb3ItYWRkLXJl
bW92ZS1pdGVtc2NvcGUtYXR0ci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1iZWhhdmlvci1hZGQtcmVtb3Zl
LWl0ZW1zY29wZS1hdHRyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNy
b2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0
cyB0aGUgYmVoYXZpb3Igb2YgcHJvcGVydGllcyBjb2xsZWN0aW9uIG9uIGFkZGluZyBvciByZW1v
dmluZyBpdGVtc2NvcGUgYXR0cmlidXRlLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge30sICc8ZGl2IGl0
ZW1wcm9wPSJmb28iPmJhcjwvZGl2PicpOworCitkZWJ1ZygiPGJyPlRoZSBwcm9wZXJ0aWVzIGNv
bGxlY3Rpb24gbXVzdCBiZSBlbXB0eSBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFuIGl0
ZW1zY29wZSBhdHRyaWJ1dGUuIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5s
ZW5ndGggPT0gJzAnIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllc1swXSA9PSB1
bmRlZmluZWQiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLml0ZW0oMCkgPT0g
dW5kZWZpbmVkIik7CisKK2RlYnVnKCI8YnI+VGhlIHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0
IGJlY29tZSBwb3B1bGF0ZWQgaWYgd2UgYWRkIGl0ZW1zY29wZSBhdHRyaWJ1dGUuIik7CitlbGVt
ZW50Lml0ZW1TY29wZSA9IHRydWU7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5s
ZW5ndGggPT0gJzEnIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllc1swXSA9PSBl
bGVtZW50LmZpcnN0Q2hpbGQiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLml0
ZW0oMCkgPT0gZWxlbWVudC5maXJzdENoaWxkIik7CisKK2RlYnVnKCI8YnI+VGhlIHByb3BlcnRp
ZXMgY29sbGVjdGlvbiBtdXN0IGJlY29tZSBlbXB0eSBpZiB3ZSByZW1vdmUgaXRlbXNjb3BlIGF0
dHJpYnV0ZS4iKTsKK2VsZW1lbnQuaXRlbVNjb3BlID0gZmFsc2U7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQucHJvcGVydGllcy5sZW5ndGggPT0gJzAnIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQu
cHJvcGVydGllc1swXSA9PSB1bmRlZmluZWQiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9w
ZXJ0aWVzLml0ZW0oMCkgPT0gdW5kZWZpbmVkIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMt
Y29sbGVjdGlvbi1tdXN0LWJlLWNvcnJlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1i
ZS1jb3JyZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorVGhpcyB0ZXN0IGVuc3VyZXMg
dGhhdCBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gb2YgYSBNaWNyb2RhdGEgaXRlbSBtdXN0IGJlIGNv
cnJlY3QuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0
ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorCitwcm9wZXJ0aWVzLmxlbmd0aCBtdXN0IGJlIHRo
ZSB0b3RhbCBudW1iZXIgb2YgcHJvcGVydGllcy4KK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24u
bGVuZ3RoID09ICc0JyBpcyB0cnVlCisKK3Byb3BlcnRpZXMuaXRlbShpbmRleCkgYW5kIHByb3Bl
cnRpZXNbaW5kZXhdIG11c3QgZ2l2ZSBlYWNoIHByb3BlcnR5IGluIHRyZWUgb3JkZXInCitQQVNT
IHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMCkgPT0gY2hpbGROb2Rlc1swXSBpcyB0cnVlCitQ
QVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMSkgPT0gY2hpbGROb2Rlc1sxXSBpcyB0cnVl
CitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMikgPT0gY2hpbGROb2Rlc1sxXS5jaGls
ZE5vZGVzWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgzKSA9PSBj
aGlsZE5vZGVzWzJdIGlzIHRydWUKKworUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvblswXSA9PSBj
aGlsZE5vZGVzWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb25bMV0gPT0gY2hp
bGROb2Rlc1sxXSBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uWzJdID09IGNoaWxk
Tm9kZXNbMV0uY2hpbGROb2Rlc1swXSBpcyB0cnVlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9u
WzNdID09IGNoaWxkTm9kZXNbMl0gaXMgdHJ1ZQorcHJvcGVydGllc1tpbmRleF0gYW5kIHByb3Bl
cnRpZXMuaXRlbShpbmRleCkgbXVzdCByZXR1cm4gdW5kZWZpbmVkIGZvciBvdXQgb2YgcmFuZ2Ug
aW5kZXguCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uWzRdID09IHVuZGVmaW5lZCBpcyB0cnVl
CitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oNCkgPT0gdW5kZWZpbmVkIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11
c3QtYmUtY29ycmVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1iZS1jb3JyZWN0Lmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xs
ZWN0aW9uLW11c3QtYmUtY29ycmVjdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBlbnN1cmVzIHRoYXQgcHJvcGVydGllcyBjb2xsZWN0aW9uIG9mIGEgTWljcm9kYXRh
IGl0ZW0gbXVzdCBiZSBjb3JyZWN0LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK3ZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1zY29wZTogJ2l0
ZW1zY29wZSd9LCAnPGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rpdj48ZGl2IGl0ZW1wcm9wPSJiYXIi
PjxkaXYgaXRlbXByb3A9ImZvbyI+PC9kaXY+PC9kaXY+PGRpdiBpdGVtcHJvcD0iYmF6IHF1eCI+
PC9kaXY+Jyk7Cit2YXIgcHJvcGVydGllc0NvbGxlY3Rpb24gPSBlbGVtZW50LnByb3BlcnRpZXM7
Cit2YXIgY2hpbGROb2RlcyA9IGVsZW1lbnQuY2hpbGROb2RlczsKKworZGVidWcoIjxicj5wcm9w
ZXJ0aWVzLmxlbmd0aCBtdXN0IGJlIHRoZSB0b3RhbCBudW1iZXIgb2YgcHJvcGVydGllcy4iKTsK
K3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24ubGVuZ3RoID09ICc0JyIpOworCitk
ZWJ1ZygiPGJyPnByb3BlcnRpZXMuaXRlbShpbmRleCkgYW5kIHByb3BlcnRpZXNbaW5kZXhdIG11
c3QgZ2l2ZSBlYWNoIHByb3BlcnR5IGluIHRyZWUgb3JkZXInIik7CitzaG91bGRCZVRydWUoInBy
b3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oMCkgPT0gY2hpbGROb2Rlc1swXSIpOworc2hvdWxkQmVU
cnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDEpID09IGNoaWxkTm9kZXNbMV0iKTsKK3No
b3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgyKSA9PSBjaGlsZE5vZGVzWzFd
LmNoaWxkTm9kZXNbMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24uaXRl
bSgzKSA9PSBjaGlsZE5vZGVzWzJdIik7CitkZWJ1ZygnJyk7CisKK3Nob3VsZEJlVHJ1ZSgicHJv
cGVydGllc0NvbGxlY3Rpb25bMF0gPT0gY2hpbGROb2Rlc1swXSIpOworc2hvdWxkQmVUcnVlKCJw
cm9wZXJ0aWVzQ29sbGVjdGlvblsxXSA9PSBjaGlsZE5vZGVzWzFdIik7CitzaG91bGRCZVRydWUo
InByb3BlcnRpZXNDb2xsZWN0aW9uWzJdID09IGNoaWxkTm9kZXNbMV0uY2hpbGROb2Rlc1swXSIp
Oworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvblszXSA9PSBjaGlsZE5vZGVzWzJd
Iik7CisKK2RlYnVnKCJwcm9wZXJ0aWVzW2luZGV4XSBhbmQgcHJvcGVydGllcy5pdGVtKGluZGV4
KSBtdXN0IHJldHVybiB1bmRlZmluZWQgZm9yIG91dCBvZiByYW5nZSBpbmRleC4iKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb25bNF0gPT0gdW5kZWZpbmVkIik7CitzaG91bGRC
ZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0ZW0oNCkgPT0gdW5kZWZpbmVkIik7CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
TWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9yZS1wcm9wZXJ0aWVzLW9m
LW5lc3RlZC1pdGVtcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LWlnbm9yZS1wcm9wZXJ0
aWVzLW9mLW5lc3RlZC1pdGVtcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdub3Jl
LXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0ZW1zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhldCBwcm9wZXJ0aWVzLml0ZW0gYW5k
IGxlbmd0aCBtdXN0IGlnbm9yZSBwcm9wZXJ0aWVzIG9mIG5lc3RlZCBpdGVtcy4KKworQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTog
aXRlbXNjb3BlCitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLmxlbmd0aCA9PSAnMicgaXMgdHJ1
ZQorUEFTUyBwcm9wZXJ0aWVzQ29sbGVjdGlvblswXSA9PSBjaGlsZE5vZGVzWzBdIGlzIHRydWUK
K1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgwKSA9PSBjaGlsZE5vZGVzWzBdIGlzIHRy
dWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb25bMV0gPT0gY2hpbGROb2Rlc1sxXS5maXJzdENo
aWxkIGlzIHRydWUKK1BBU1MgcHJvcGVydGllc0NvbGxlY3Rpb24uaXRlbSgxKSA9PSBjaGlsZE5v
ZGVzWzFdLmZpcnN0Q2hpbGQgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1pZ25vcmUtcHJvcGVydGllcy1vZi1uZXN0ZWQt
aXRlbXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdub3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0
ZW1zLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3QtaWdub3JlLXByb3BlcnRpZXMtb2YtbmVzdGVkLWl0
ZW1zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9u
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZXMgdGhl
dCBwcm9wZXJ0aWVzLml0ZW0gYW5kIGxlbmd0aCBtdXN0IGlnbm9yZSBwcm9wZXJ0aWVzIG9mIG5l
c3RlZCBpdGVtcy48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIg
ZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtc2NvcGU6ICdpdGVtc2NvcGUnfSwg
JzxkaXYgaXRlbXNjb3BlIGl0ZW1wcm9wPSJmb28iPjxkaXYgaXRlbXByb3A9ImJhciI+PC9kaXY+
PC9kaXY+PGRpdj48ZGl2IGl0ZW1wcm9wPSJiYXoiPjwvZGl2PjwvZGl2PicpOwordmFyIHByb3Bl
cnRpZXNDb2xsZWN0aW9uID0gZWxlbWVudC5wcm9wZXJ0aWVzOwordmFyIGNoaWxkTm9kZXMgPSBl
bGVtZW50LmNoaWxkTm9kZXM7CisKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGllc0NvbGxlY3Rpb24u
bGVuZ3RoID09ICcyJyIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVjdGlvblswXSA9
PSBjaGlsZE5vZGVzWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnRpZXNDb2xsZWN0aW9uLml0
ZW0oMCkgPT0gY2hpbGROb2Rlc1swXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0aWVzQ29sbGVj
dGlvblsxXSA9PSBjaGlsZE5vZGVzWzFdLmZpcnN0Q2hpbGQiKTsKK3Nob3VsZEJlVHJ1ZSgicHJv
cGVydGllc0NvbGxlY3Rpb24uaXRlbSgxKSA9PSBjaGlsZE5vZGVzWzFdLmZpcnN0Q2hpbGQiKTsK
KworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11c3Qtc2VlLXRoZS1wcm9wZXJ0
aWVzLWFkZGVkLWluLWl0ZW1yZWYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhl
LXByb3BlcnRpZXMtYWRkZWQtaW4taXRlbXJlZi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLW11
c3Qtc2VlLXRoZS1wcm9wZXJ0aWVzLWFkZGVkLWluLWl0ZW1yZWYtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3RzIHRoYXQgcHJvcGVydGllcy5pdGVt
IGFuZCBsZW5ndGggbXVzdCBzZWUgdGhlIHByb3BlcnRpZXMgYWRkZWQgd2l0aCBpdGVtcmVmLgor
CitQQVNTIHByb3BlcnRpZXNDb2xsZWN0aW9uLmxlbmd0aCA9PSAnNCcgaXMgdHJ1ZQorUEFTUyBw
cm9wZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDApID09IGRpdnNbMF0gaXMgdHJ1ZQorUEFTUyBwcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5pdGVtKDEpID09IGRpdnNbMl0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0
aWVzQ29sbGVjdGlvbi5pdGVtKDIpID09IGRpdnNbM10gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0aWVz
Q29sbGVjdGlvbi5pdGVtKDMpID09IGRpdnNbNF0gaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRp
ZXMtYWRkZWQtaW4taXRlbXJlZi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tbXVzdC1zZWUtdGhlLXByb3BlcnRp
ZXMtYWRkZWQtaW4taXRlbXJlZi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnRpZXMtY29sbGVjdGlvbi1tdXN0LXNlZS10aGUtcHJvcGVy
dGllcy1hZGRlZC1pbi1pdGVtcmVmLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhp
cyB0ZXN0cyB0aGF0IHByb3BlcnRpZXMuaXRlbSBhbmQgbGVuZ3RoIG11c3Qgc2VlIHRoZSBwcm9w
ZXJ0aWVzIGFkZGVkIHdpdGggaXRlbXJlZi48L3A+CisKKzxkaXYgaXRlbXByb3A9ImZvbyIgaWQ9
ImlkMSI+PC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtcmVmPSJpZDIgaWQxIj4KKzxkaXYgaXRl
bXByb3A9ImJhciI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaXRlbXByb3A9ImJheiIgaWQ9ImlkMiI+
Cis8ZGl2IGl0ZW1wcm9wPSJxdXgiPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK3ZhciBpdGVtID0gZG9jdW1lbnQuZ2V0SXRlbXMoKVswXTsKK3Zh
ciBwcm9wZXJ0aWVzQ29sbGVjdGlvbiA9IGl0ZW0ucHJvcGVydGllczsKK3ZhciBkaXZzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpOworCitzaG91bGRCZVRydWUoInByb3Bl
cnRpZXNDb2xsZWN0aW9uLmxlbmd0aCA9PSAnNCciKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydGll
c0NvbGxlY3Rpb24uaXRlbSgwKSA9PSBkaXZzWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnRp
ZXNDb2xsZWN0aW9uLml0ZW0oMSkgPT0gZGl2c1syXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0
aWVzQ29sbGVjdGlvbi5pdGVtKDIpID09IGRpdnNbM10iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVy
dGllc0NvbGxlY3Rpb24uaXRlbSgzKSA9PSBkaXZzWzRdIik7CisKKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJv
cGVydGllcy1jb2xsZWN0aW9uLXRlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzIEBACitNaWNyb2RhdGEgcHJvcGVydGllcyBjb2xsZWN0aW9uIHNpbXBsZSB0ZXN0
LgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CisKK1RoZSBwcm9wZXJ0aWVzIHByb3Bl
cnR5IG11c3QgYmUgZGVmaW5lZC4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzIGlzIGRlZmluZWQu
CisKK1RoZSBwcm9wZXJ0aWVzIHByb3BlcnR5IG11c3QgcmV0dXJuIGEgSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uIG9iamVjdC4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzID09ICdbb2JqZWN0IEhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbl0nIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydGllcy1jb2xsZWN0aW9uLXRlc3Qu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9w
ZXJ0aWVzLWNvbGxlY3Rpb24tdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPk1p
Y3JvZGF0YSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gc2ltcGxlIHRlc3QuPC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdk
aXYnLCB7fSk7CisKK2RlYnVnKCI8YnI+VGhlIHByb3BlcnRpZXMgcHJvcGVydHkgbXVzdCBiZSBk
ZWZpbmVkLiIpOworc2hvdWxkQmVEZWZpbmVkKCJlbGVtZW50LnByb3BlcnRpZXMiKTsKKworZGVi
dWcoIjxicj5UaGUgcHJvcGVydGllcyBwcm9wZXJ0eSBtdXN0IHJldHVybiBhIEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbiBvYmplY3QuIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGll
cyA9PSAnW29iamVjdCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb25dJyIpOworCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>