<?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>6503</bug_id>
          
          <creation_ts>2006-01-12 07:20:19 -0800</creation_ts>
          <short_desc>content property doesn&apos;t support quotes</short_desc>
          <delta_ts>2011-03-02 13:24:19 -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>CSS</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.designmeme.com/articles/csscurlyquotes/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55508</dependson>
          <blocked>52126</blocked>
    
    <blocked>3234</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Duncan Wilcox">duncan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>bhawkeslewis</cc>
    
    <cc>bugmail</cc>
    
    <cc>buildbot</cc>
    
    <cc>carol</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>emacemac7</cc>
    
    <cc>eric</cc>
    
    <cc>gsnedders</cc>
    
    <cc>ian</cc>
    
    <cc>magic</cc>
    
    <cc>mrowe</cc>
    
    <cc>ossy</cc>
    
    <cc>peter</cc>
    
    <cc>webkit</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeal</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>28291</commentid>
    <comment_count>0</comment_count>
    <who name="Duncan Wilcox">duncan</who>
    <bug_when>2006-01-12 07:20:19 -0800</bug_when>
    <thetext>According to http://www.w3.org/TR/REC-CSS2/generate.html#propdef-content the content property 
should allow:

Value:  	[ &lt;string&gt; | &lt;uri&gt; | &lt;counter&gt; | attr(X) | open-quote | close-quote | no-open-quote | no-
close-quote ]+ | inherit

The page doesn&apos;t show quotes around the last blockquote because webkit doesn&apos;t appear support open-
quote | close-quote | no-open-quote | no-close-quote.

A simple workaround in CSS is to use &quot;\201c&quot; instead of open-quote and &quot;\201d&quot; instead of close-quote.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28292</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-01-12 07:29:08 -0800</bug_when>
    <thetext>This looks to be related to bug 3234.  To properly support open-quote and close-quote we should 
support the quotes property as specified at http://www.w3.org/TR/CSS21/generate.html#propdef-
quotes.  From there the correct quotation marks can be used by open-quote and close-quote.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28295</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-01-12 07:41:51 -0800</bug_when>
    <thetext>A good test case exercising both open-quote/close-quote and the quotes property can be found at 
http://www.meyerweb.com/eric/css/tests/css2/sec12-04-01.htm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64936</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Hawkes-Lewis">bhawkeslewis</who>
    <bug_when>2007-12-21 02:37:30 -0800</bug_when>
    <thetext>&quot;A simple workaround in CSS is to use &quot;\201c&quot; instead of open-quote and &quot;\201d&quot;
instead of close-quote.&quot;

This isn&apos;t an effective workaround since it can&apos;t properly handle the alternation of quotation marks (e.g. between double and single in US English) when quotations are nested inside one another.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74970</commentid>
    <comment_count>4</comment_count>
      <attachid>20006</attachid>
    <who name="Vincent Ricard">magic</who>
    <bug_when>2008-03-24 07:13:16 -0700</bug_when>
    <thetext>Created attachment 20006
first patch (almost finished) for &apos;content: *quotes&apos; and &apos;quotes&apos; properties

Here is a patch working for the both url provoding in this bug report.
I still have to write the corresponding test cases, but i&apos;d like have some comments/suggestions/review since the code is almost done.

This patch also covers #3234.

One thing is not yet fixed: choose the default open/close quote. I think this should be language dependent; but where put that? in html.css ? a new quote-lang.css?

A second thing: i&apos;ve to add the copyright/license header :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75151</commentid>
    <comment_count>5</comment_count>
      <attachid>20006</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-03-25 14:12:55 -0700</bug_when>
    <thetext>Comment on attachment 20006
first patch (almost finished) for &apos;content: *quotes&apos; and &apos;quotes&apos; properties

Nice work adding this!

The convention of _ arguments in the QuotesValue is not something we use these days.  Also the &amp; should be with const String&amp; in the QuoteValue constructor.

The QuoteValue object should have m_ in front of its member variable names, e.g., m_openQuote, m_closeQuote.

Pointer placement is wrong in the RenderQuote constructor.

Document *node

should be

Document* node

Is redoing pref widths inside dirtyLineBoxes really necessary, or did you just copy this file from RenderCounter and accidentally pick that up?

You can&apos;t just do a raw pointer comparison in the equality operator of StyleRareInheritedData.

&amp;&amp; m_quotes == o.m_quotes;

You need to actually check if the quotes objects are equivalent.

Extraneous whitespace change:

-    unsigned wordWrap : 1; // EWordWrap 
+    unsigned wordWrap : 1; // EWordWrap

In CSSStyleSelector for the case where you clear out the quotes (CSSValueNone), can&apos;t you just set to 0 instead of to new QuotesData?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76419</commentid>
    <comment_count>6</comment_count>
      <attachid>20365</attachid>
    <who name="Vincent Ricard">magic</who>
    <bug_when>2008-04-06 07:48:47 -0700</bug_when>
    <thetext>Created attachment 20365
Final patch

Here is the final patch (all corrections asked by Dave are inside).

About the overriding of &apos;dirtyLineBoxes&apos;: if i don&apos;t do that, it does not work... and i dont know why, i&apos;m still a newbie with the rendering engine :-)

The default quotes put in html4.css are the english ones (we could merge the whole list provided in #3234).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79328</commentid>
    <comment_count>7</comment_count>
      <attachid>20365</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-04-30 23:45:40 -0700</bug_when>
    <thetext>Comment on attachment 20365
Final patch

There seem to be a bunch of little issues in this patch.

We&apos;ll see how many I get this first round.  I fear we may have to got a couple rounds.

1.  There are a bunch of style guideline violations re: placement of &quot;*&quot;
http://webkit.org/coding/coding-style.html

No { } here:
 1921             if (value2 &amp;&amp; value2-&gt;unit == CSSPrimitiveValue::CSS_STRING) {
 1922                 values-&gt;append(new QuotesValue(value1-&gt;string, value2-&gt;string));
 1923             } else

or here:

 3449         if (primitiveValue &amp;&amp; primitiveValue-&gt;getIdent() == CSSValueNone) {
 3450             m_style-&gt;setQuotes(0);
 3451         } else {


I&apos;m confused by this?
/ FIXME: we should use the version present in with CSSPrimitiveValue.cpp
 37 static String quoteString(const String&amp; string)
 

Again, {}
 66     if (m_quote == CLOSE_QUOTE || m_quote == NO_CLOSE_QUOTE) {
 67         --level;
 68     }


This seems hackish?

 111 void RenderQuote::calcPrefWidths(int lead)
 112 {
 113     setTextInternal(originalText());
 114     RenderText::calcPrefWidths(lead);
 115 }

(the setTextInternal during a calcPrefsWidths call).  Why is that needed/correct?

0 &lt;= m_level (for isVisible) would be more clear as m_level &gt;= 0 IMO.


Why can&apos;t:
 839 bool StyleRareInheritedData::quotesDataEquivalent(const StyleRareInheritedData&amp; o) const

just be
return m_quotes == o.m_quotes &amp;&amp; *m_quotes == *o.m_quotes ?
yes, that depends on the compiler short-circuting the &amp;&amp;, but that&apos;s safe.


Bah.  I wish the various setContent calls could share more code.

Any time you&apos;re returning an AtomicString, return emptyAtom instead of &quot;&quot;; there are at least 2 times where you could do that.

Generally each initializer gets its own line:
 1068     QuotesData(const QuotesData&amp; o)
 1069         : m_openQuotes(o.m_openQuotes), m_closeQuotes(o.m_closeQuotes) { }


I think m_quotes is leaking when set.  Can&apos;t m_quotes just be an OwnPtr?  I don&apos;t think it needs to be a DataRef, but that would be another option.

In general the patch looks good.  r- for the various issues above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79619</commentid>
    <comment_count>8</comment_count>
    <who name="Vincent Ricard">magic</who>
    <bug_when>2008-05-04 11:18:20 -0700</bug_when>
    <thetext>&gt; 1.  There are a bunch of style guideline violations re: placement of &quot;*&quot;
&gt; http://webkit.org/coding/coding-style.html

Fixed.

&gt; I&apos;m confused by this?
&gt; / FIXME: we should use the version present in with CSSPrimitiveValue.cpp
&gt;  37 static String quoteString(const String&amp; string)

Because CSSPrimitiveValue.h does not expose quoteString() for the subclasses (the function is only declared in CSSPrimitiveValue.cpp). So i had to copy/paste it.

&gt; (the setTextInternal during a calcPrefsWidths call).  Why is that
&gt; needed/correct?

I fixed this by calling setTextInternal in dirtyLineBoxes. In fact, i don&apos;t know how/when set the internal text; i need the render tree to compute the depth, so i can&apos;t do that in the constructor (since the parent is not yet known).

&gt; 0 &lt;= m_level (for isVisible) would be more clear as m_level &gt;= 0 IMO.

Fixed.

&gt; Why can&apos;t:
&gt; just be
&gt; return m_quotes == o.m_quotes &amp;&amp; *m_quotes == *o.m_quotes ?
&gt; yes, that depends on the compiler short-circuting the &amp;&amp;, but that&apos;s safe.

I missed the trick :-/ &apos;m_quotes == o.m_quotes&apos; does not mean &apos;*m_quotes == *o.m_quotes&apos; ?

&gt; Bah.  I wish the various setContent calls could share more code.

I&apos;d prefer my patch only corrects the css property. We could open an other bugs dedicated to this refactoring.

&gt; Any time you&apos;re returning an AtomicString, return emptyAtom instead of &quot;&quot;;
&gt; there are at least 2 times where you could do that.

Fixed.

&gt; Generally each initializer gets its own line:
&gt;  1068     QuotesData(const QuotesData&amp; o)
&gt;  1069         : m_openQuotes(o.m_openQuotes), m_closeQuotes(o.m_closeQuotes) 

Fixed.

&gt; I think m_quotes is leaking when set.  Can&apos;t m_quotes just be an OwnPtr?  I
&gt; don&apos;t think it needs to be a DataRef, but that would be another option.

Fixed with OwnPtr.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79620</commentid>
    <comment_count>9</comment_count>
      <attachid>20959</attachid>
    <who name="Vincent Ricard">magic</who>
    <bug_when>2008-05-04 11:19:19 -0700</bug_when>
    <thetext>Created attachment 20959
Patch with some fix

Here is the new patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79626</commentid>
    <comment_count>10</comment_count>
      <attachid>20959</attachid>
    <who name="">mitz</who>
    <bug_when>2008-05-04 13:16:58 -0700</bug_when>
    <thetext>Comment on attachment 20959
Patch with some fix

Presumably Vincent meant to ask for a review :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87226</commentid>
    <comment_count>11</comment_count>
      <attachid>20959</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-28 15:38:53 -0700</bug_when>
    <thetext>Comment on attachment 20959
Patch with some fix

I am confused by:

1987     if (values-&gt;length()) {
 1988         addProperty(propId, values.release(), important);
 1989         if (value2)
 1990             valueList-&gt;next();
 1991         return true;
 1992     }

Couldn&apos;t that have been handled in the previous loop?

Also the previous loop:
 while (value1 = valueList-&gt;current()) {
 1974         if (value1-&gt;unit == CSSPrimitiveValue::CSS_STRING) {
 1975             value2 = valueList-&gt;next();
 1976             if (value2 &amp;&amp; value2-&gt;unit == CSSPrimitiveValue::CSS_STRING)
 1977                 values-&gt;append(new QuotesValue(value1-&gt;string, value2-&gt;string));
 1978             else
 1979                 break;
 1980         } else
 1981             break;
 1982 
 1983         value2 = 0;
 1984         valueList-&gt;next();
 1985     }
 
Would be easier to understand using an early-return.

if (value1-&gt;unit != CSSPrimitiveValue::CSS_STRING)
  break;

It&apos;s not clear to me why you advance valueList only if values-&gt;length() (my first comment above).

* goes next to the type name in WebKit style:
 3577             CSSValueList *list = static_cast&lt;CSSValueList*&gt;(value);
That block has as bunch of misplaced *&apos;s

Probably better to use a StringBuilder here:
47     String result(&quot;&quot;);
 48 
 49     result += quoteString(m_openQuote);
 50     result += &quot; &quot;;
 51     result += quoteString(m_closeQuote);

 44 void RenderQuote::computeLevel() const
looks horribly inefficient.  Can&apos;t it use the pre-computed levels from other quotes it encounters?  I guess the question would be how to invalidate them when the tree changes...
But if I&apos;m reading that correctly, every RenderQuote will walk through *every* RenderObject which corresponds to an element before it in a file.  Am I reading that correctly?

* spacing:
 91     QuotesData *quotes = style()-&gt;quotes();

it seems this would be more efficient:
974     if (!m_quotes &amp;&amp; o.m_quotes || m_quotes &amp;&amp; !o.m_quotes)
 975         return false;
 976     if (m_quotes &amp;&amp; o.m_quotes &amp;&amp; (*m_quotes != *o.m_quotes))
 977         return false;
 978     return true;
written as:
if (m_quotes == o.m_quotes)
   return true;
return (m_quotes &amp;&amp; o.m_quotes &amp;&amp; (*m_quotes == *o.m_quotes));


This:
if (m_closeQuotes.size() &lt;= level)
 1911         level = m_closeQuotes.size() - 1;
would read more clear to me as:
if (level &gt;= m_closeQuotes.size())
   return m_closeQuotes.last();

spacing:
 1207     void addLevel(const AtomicString &amp;open, const AtomicString &amp;close);


You patch also needs a test case which covers syntax errors in &quot;quotes&quot; property.

r- for the lack of syntax error test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89929</commentid>
    <comment_count>12</comment_count>
      <attachid>23125</attachid>
    <who name="Vincent Ricard">magic</who>
    <bug_when>2008-09-02 13:26:07 -0700</bug_when>
    <thetext>Created attachment 23125
Patch reusing the previous computed level

Here is a patch fixing all Eric&apos;s requirements.
About the level computation and the tree invalidation, maybe could we do as for the counters: have an &quot;invalidQuote&quot; method, and call it from RenderObject::destroy()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93952</commentid>
    <comment_count>13</comment_count>
      <attachid>23125</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-03 13:12:51 -0700</bug_when>
    <thetext>Comment on attachment 23125
Patch reusing the previous computed level

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93953</commentid>
    <comment_count>14</comment_count>
      <attachid>23125</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-10-03 13:13:30 -0700</bug_when>
    <thetext>Comment on attachment 23125
Patch reusing the previous computed level

This does need to add RenderQuote.cpp/h to other projects though (Mac/Windows) etc. or the build will be broken.

Whoever lands it will need to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95077</commentid>
    <comment_count>15</comment_count>
      <attachid>23125</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 14:01:51 -0700</bug_when>
    <thetext>Comment on attachment 23125
Patch reusing the previous computed level

This also has a bug in the inherit case that will result in multiple styles sharing the same QuoteData and multiply deleting it.

review-

I&apos;m going to fix this and land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95081</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 15:05:10 -0700</bug_when>
    <thetext>This patch also didn&apos;t include expected results for the tests. Also, the patch changes the results of some existing tests; seemingly breaking fast/css-generated-content/005.html because the quotes aren&apos;t defaulting to straight quotes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95082</commentid>
    <comment_count>17</comment_count>
      <attachid>24311</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-12 15:10:30 -0700</bug_when>
    <thetext>Created attachment 24311
newer patch -- not ready to check in

This patch has some of the problems with the previous patch fixed. But it breaks our existing regression test fast/css-generated-content/005.html, so it&apos;s not ready to check in yet.

I&apos;m also uncertain if the results of the tests are good. I&apos;d really prefer to find a way to write dumpAsText tests, but that may not be possible for generated content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136458</commentid>
    <comment_count>18</comment_count>
    <who name="Daniel Upstone">zeal</who>
    <bug_when>2009-08-01 08:53:47 -0700</bug_when>
    <thetext>This bug has still not been resolved and is a serious browser inconsistency issue for CSS2 implementation.
It may be worth noting that IE8 is the only browser to do this correctly (yes, you read that correctly). Firefox does render correctly, but c&amp;p of the output shows that it&apos;s still using forced quotes on the q element rather than providing the rendered result or a no-generated-content result. Opera seems to have it&apos;s own issues (eg. a stray &quot; sneaking in) but is otherwise fine. Webkit still lacks full support and renders incorrectly.

Test Case: http://www.zealous-studios.co.uk/content-quotes.xhtml
The *-quote values for the content property are still not supported. This breaks any attempt to correctly fix https://bugs.webkit.org/show_bug.cgi?id=3234

This bug needs to be fixed first before any progress on bug 3234 can be made.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347408</commentid>
    <comment_count>19</comment_count>
      <attachid>81638</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-08 08:42:36 -0800</bug_when>
    <thetext>Created attachment 81638
Proposed Patch. Similar to Darin&apos;s, but taking advantage of the recent changes to RenderObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347433</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-08 09:09:49 -0800</bug_when>
    <thetext>Attachment 81638 did not build on chromium:
Build output: http://queues.webkit.org/results/7763130</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347482</commentid>
    <comment_count>21</comment_count>
      <attachid>81638</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-02-08 10:14:48 -0800</bug_when>
    <thetext>Comment on attachment 81638
Proposed Patch. Similar to Darin&apos;s, but taking advantage of the recent changes to RenderObject

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

Glad you are tackling this!  Some initial comments:

&gt; Source/WebCore/css/CSSStyleSelector.cpp:4599
&gt; +        HANDLE_INHERIT(quotes, Quotes)

Where is the handling of &quot;initial&quot;?

&gt; Source/WebCore/css/html.css:28
&gt; +    quotes: &apos;&quot;&apos; &apos;&quot;&apos; &quot;&apos;&quot; &quot;&apos;&quot;;

This really shouldn&apos;t be necessary.  The CSS 2.1 specification says the initial value &quot;depends on the user agent,&quot; which implies to me that the initial value is the quotes you want to use and not none.  Also, quotes should obviously work for XML documents, so let&apos;s just fix the initial value.

The initial value should probably just be a special keyword like -webkit-quotes.  Then your front end code can eventually use the current document language to pick the correct set of quotes (instead of hard-coding the quotes listed above).

&gt; Source/WebCore/rendering/RenderQuote.cpp:80
&gt; +    for (RenderObject* predecesor = head-&gt;previousInPreOrder(); predecesor; predecesor = predecesor-&gt;previousInPreOrder())

Should be predecessor.

&gt; Source/WebCore/rendering/RenderQuote.cpp:178
&gt; +        if (descendant-&gt;isQuote()) {

I think this for loop would read nicer if you just did

if (!descendant-&gt;isQuote())
    continue;

and then you don&apos;t have to indent all the code that comes after.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347532</commentid>
    <comment_count>22</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-08 11:02:46 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:4599
&gt; &gt; +        HANDLE_INHERIT(quotes, Quotes)
&gt; 
&gt; Where is the handling of &quot;initial&quot;?
I do not see that initial is allowed for quotes. But maybe we should support it anyway.
&gt; 
&gt; &gt; Source/WebCore/css/html.css:28
&gt; &gt; +    quotes: &apos;&quot;&apos; &apos;&quot;&apos; &quot;&apos;&quot; &quot;&apos;&quot;;
&gt; 
&gt; This really shouldn&apos;t be necessary.  The CSS 2.1 specification says the initial value &quot;depends on the user agent,&quot; which implies to me that the initial value is the quotes you want to use and not none.  Also, quotes should obviously work for XML documents, so let&apos;s just fix the initial value.
&gt; 
&gt; The initial value should probably just be a special keyword like -webkit-quotes.  Then your front end code can eventually use the current document language to pick the correct set of quotes (instead of hard-coding the quotes listed above).
I understand the part with using the quotes as per document language, but I am not sure how to implement that. An example of another feature using this would be helpful.
What I understand so far is that I could use a keyword (such as initial) instead of an actual list of quotes in html.css and in CSSStyleSelector::applyProperty, transform that keyword into a real list when creating the RenderStyle object for an element.
What I do not know is how to specify this keyword to the root element of any type of document so that it is inherited by all elements unless one element in the tree defines it otherwise, and then its children will inherit that redefined value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347613</commentid>
    <comment_count>23</comment_count>
      <attachid>81638</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-02-08 12:54:58 -0800</bug_when>
    <thetext>Comment on attachment 81638
Proposed Patch. Similar to Darin&apos;s, but taking advantage of the recent changes to RenderObject

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

&gt; Source/WebCore/rendering/style/StyleRareInheritedData.h:91
&gt; +    Vector&lt;String&gt; quotes;

Basically I&apos;d consider turning the Vector into a pointer and only allocate it when there are concrete quotes specified explicitly in CSS.  Then you could add a member like bool m_useUAQuotes; and have that be set to true for the initial value (and false when quotes is explicitly set, either to none or to a concrete value).

Vector&lt;String&gt;* m_authorQuotes;
bool m_useUAQuotes;

Then you just need a good place to resolve to a real value if m_useUAQuotes is set instead of having a Vector.  It seems like you could do that in placeQuote and have a global hashmap in RenderQuote that just stores the different languages.  For the first landing you can just make a static Vector sitting right in placeQuote for English and use that if the user agent value is set.

You still need to patch CSSComputedStyleDeclaration as well, although doing that in a follow-up patch would be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350688</commentid>
    <comment_count>24</comment_count>
      <attachid>82320</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-14 08:54:39 -0800</bug_when>
    <thetext>Created attachment 82320
Proposed Patch. Added support for language specific defaults.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350707</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-14 09:32:13 -0800</bug_when>
    <thetext>Attachment 82320 did not build on chromium:
Build output: http://queues.webkit.org/results/7905669</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350723</commentid>
    <comment_count>26</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-14 09:57:28 -0800</bug_when>
    <thetext>Attachment 82320 did not build on win:
Build output: http://queues.webkit.org/results/7913581</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350729</commentid>
    <comment_count>27</comment_count>
      <attachid>82329</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-14 10:05:12 -0800</bug_when>
    <thetext>Created attachment 82329
Proposed Patch. Fixed problem with Chromium build system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350756</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-14 10:42:05 -0800</bug_when>
    <thetext>Attachment 82329 did not build on chromium:
Build output: http://queues.webkit.org/results/7907670</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350768</commentid>
    <comment_count>29</comment_count>
      <attachid>82340</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-14 10:54:44 -0800</bug_when>
    <thetext>Created attachment 82340
Proposed Patch. Fixed problem with Chromium build system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350774</commentid>
    <comment_count>30</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-14 11:14:32 -0800</bug_when>
    <thetext>Attachment 82329 did not build on win:
Build output: http://queues.webkit.org/results/7908669</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350787</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-14 11:32:12 -0800</bug_when>
    <thetext>Attachment 82340 did not build on chromium:
Build output: http://queues.webkit.org/results/7910675</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350839</commentid>
    <comment_count>32</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-14 13:04:51 -0800</bug_when>
    <thetext>Attachment 82340 did not build on win:
Build output: http://queues.webkit.org/results/7910694</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352339</commentid>
    <comment_count>33</comment_count>
      <attachid>82693</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-16 14:16:53 -0800</bug_when>
    <thetext>Created attachment 82693
Proposed Patch. Rebased and fixed typing warning for some indexes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352371</commentid>
    <comment_count>34</comment_count>
    <who name="Eli Grey (:sephr)">bugmail</who>
    <bug_when>2011-02-16 14:43:28 -0800</bug_when>
    <thetext>(In reply to comment #33)
I&apos;m opposed to the simpleQuotes default, and feel that the UA&apos;s preferred locale should be the default, or englishQuotes if this is not possible (which possibly should be changed to latinQuotes). {&quot;&apos;} isn&apos;t that appropriate in a case where the start and end of the quote are both known.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352386</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 14:54:42 -0800</bug_when>
    <thetext>Attachment 82693 did not build on chromium:
Build output: http://queues.webkit.org/results/7925347</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352392</commentid>
    <comment_count>36</comment_count>
      <attachid>82706</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-16 15:05:31 -0800</bug_when>
    <thetext>Created attachment 82706
Proposed Patch. Fixed typo in WebCore.gypi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352488</commentid>
    <comment_count>37</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-16 17:24:10 -0800</bug_when>
    <thetext>Attachment 82706 did not build on win:
Build output: http://queues.webkit.org/results/7917606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352515</commentid>
    <comment_count>38</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-16 18:24:43 -0800</bug_when>
    <thetext>Attachment 82706 did not build on win:
Build output: http://queues.webkit.org/results/7929298</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353691</commentid>
    <comment_count>39</comment_count>
      <attachid>82985</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-18 11:14:17 -0800</bug_when>
    <thetext>Created attachment 82985
Proposed Patch. Fixed problem with Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353704</commentid>
    <comment_count>40</comment_count>
      <attachid>82985</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-02-18 11:32:44 -0800</bug_when>
    <thetext>Comment on attachment 82985
Proposed Patch. Fixed problem with Windows build.

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

&gt; Source/WebCore/css/CSSStyleSelector.cpp:4729
&gt; +    case CSSPropertyQuotes:
&gt; +        if (isInherit) {
&gt; +            if (m_parentStyle)
&gt; +                m_style-&gt;setQuotes(m_parentStyle-&gt;quotes());
&gt; +            return;
&gt; +        }

Still don&apos;t see the isInitial case here for handling the initial value.  You should probably make a test case that tests -webkit-initial explicitly, since this isn&apos;t being covered.  Put an object with quotes:-webkit-initial inside an object with quotes:none to see the problem.  If I&apos;m understanding how you represent the initial value correctly (with a null pointer), then all your isInitial case needs to do is m_style-&gt;setQuotes(0).

&gt; Source/WebCore/rendering/RenderQuote.cpp:245
&gt; +    ASSERT(m_depth != UNKNOWN_DEPTH);
&gt; +     const QuotesData* quotes = style()-&gt;quotes();
&gt; +     if (!quotes)
&gt; +         quotes = defaultQuotes(this);

Some funny indenting here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353892</commentid>
    <comment_count>41</comment_count>
      <attachid>83029</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-18 15:41:04 -0800</bug_when>
    <thetext>Created attachment 83029
Proposed Patch. Addressed DHyatt&apos;s concerns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353912</commentid>
    <comment_count>42</comment_count>
    <who name="Eli Grey (:sephr)">bugmail</who>
    <bug_when>2011-02-18 16:29:59 -0800</bug_when>
    <thetext>What is your response to my concerns?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354596</commentid>
    <comment_count>43</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-02-21 07:56:17 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; (In reply to comment #33)
&gt; I&apos;m opposed to the simpleQuotes default, and feel that the UA&apos;s preferred locale should be the default, or englishQuotes if this is not possible (which possibly should be changed to latinQuotes). {&quot;&apos;} isn&apos;t that appropriate in a case where the start and end of the quote are both known.

I believe the default is a minor issue, a matter of preference. The quotes you do not like are used only when the language of the page cannot be determined. I feel that simple ASCII characters, which are available on most systems, should be an option.
The way the code is designed, any implementor of a WebKit based browser can change this default easily. My goal is to provide basic support for quotes and compliance with the standard. The defaults are not specified in the standard, so the only reason why I included a relatively elaborate logic for defaults is so that my patch gets approved by reviewers. I would have considered such a logic out of scope for now.
If you want a different default wait for my patch to be landed and make your proposal. See if reviewers approve it.

As far as the englishQuotes vs. latinQuotes part of your comment I have no idea what you mean. I come from a culture based on a Latin language, very close to Italian and we use different quotes; so even with my limited knowledge of correct orthography in different cultures, I do not find latinQuotes an appropriate name for the quotes used customarily in English texts. Please explain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360067</commentid>
    <comment_count>44</comment_count>
      <attachid>83029</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-03-01 11:53:01 -0800</bug_when>
    <thetext>Comment on attachment 83029
Proposed Patch. Addressed DHyatt&apos;s concerns.

r=me

Looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360084</commentid>
    <comment_count>45</comment_count>
      <attachid>83029</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-03-01 11:58:00 -0800</bug_when>
    <thetext>Comment on attachment 83029
Proposed Patch. Addressed DHyatt&apos;s concerns.

Two gotchas:

(1) You need to patch RenderStyle::diff for when quotes change dynamically to supply the appropriate hint (layout hint I think).
(2) It seems like:

&amp;&amp; *quotes.get() == *o.quotes.get()

will crash if you are comparing against objects with quotes:none, since you&apos;ll deref 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360091</commentid>
    <comment_count>46</comment_count>
      <attachid>83029</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-03-01 12:02:36 -0800</bug_when>
    <thetext>Comment on attachment 83029
Proposed Patch. Addressed DHyatt&apos;s concerns.

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

&gt; Source/WebCore/rendering/style/QuotesData.cpp:42
&gt; +    if (!&amp;other || !this)
&gt; +        return false;

I see you did handle the null check.  This would probably seem a little less strange if you made the operator== a friend function instead, but I don&apos;t feel that strongly about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360094</commentid>
    <comment_count>47</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-01 12:06:58 -0800</bug_when>
    <thetext>Also, no need to use get() if you are using *. The * operator works on the smart pointers directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360095</commentid>
    <comment_count>48</comment_count>
      <attachid>83029</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2011-03-01 12:07:22 -0800</bug_when>
    <thetext>Comment on attachment 83029
Proposed Patch. Addressed DHyatt&apos;s concerns.

My concerns have been met.  Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360217</commentid>
    <comment_count>49</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-01 14:09:00 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80037 might have broken SnowLeopard Intel Release (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360218</commentid>
    <comment_count>50</comment_count>
      <attachid>83029</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-01 14:09:09 -0800</bug_when>
    <thetext>Comment on attachment 83029
Proposed Patch. Addressed DHyatt&apos;s concerns.

Manually committed due to failure to apply changes to the vcproj in some ews. r80037.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360244</commentid>
    <comment_count>51</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-03-01 14:35:12 -0800</bug_when>
    <thetext>Reopen, because it was rolled out by http://trac.webkit.org/changeset/80041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360256</commentid>
    <comment_count>52</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-03-01 14:51:09 -0800</bug_when>
    <thetext>The patch was rolled out because of SL build break, but I&apos;d like to ask
some minor changes for the fixed patch:

Please add &quot;#include &lt;wtf/text/CString.h&gt;&quot; line to Source/WebCore/rendering/RenderQuote.cpp to make Qt-V8 build happy.

And please update the 3 layout test result: http://build.webkit.org/results/Qt%20Linux%20Release/r80040%20%2829126%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360942</commentid>
    <comment_count>53</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2011-03-02 11:39:02 -0800</bug_when>
    <thetext>Changeset 80151. Recommitted my patch after fixing the XCode project and including expected result changes and style changes suggested by Ossy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361029</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-02 13:24:19 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80151 might have broken GTK Linux 64-bit Debug
The following tests are not passing:
fast/css-generated-content/005.html
fast/css-generated-content/beforeAfter-interdocument.html
fast/css-generated-content/no-openclose-quote.html
fast/invalid/residual-style.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20006</attachid>
            <date>2008-03-24 07:13:16 -0700</date>
            <delta_ts>2008-04-06 07:48:47 -0700</delta_ts>
            <desc>first patch (almost finished) for &apos;content: *quotes&apos; and &apos;quotes&apos; properties</desc>
            <filename>6503.diff</filename>
            <type>text/plain</type>
            <size>27274</size>
            <attacher name="Vincent Ricard">magic</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTI0MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODEgQEAKKzIwMDgtMDMtMjQgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNu
aW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQnVnIDY1MDM6IGNvbnRlbnQgcHJvcGVydHkgZG9lc24ndCBzdXBwb3J0IHF1b3RlcworICAg
ICAgICBCdWcgMzIzNDogQ1NTMjogSW1wbGVtZW50IGJldHRlciBxdW90ZSBzdXBwb3J0IChmb3Ig
dGhlIHEgdGFnKQorCisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1Bh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZVF1b3Rlcyk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9RdW90ZXNWYWx1
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UXVvdGVzVmFsdWU6OlF1b3Rlc1ZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OnF1b3RlU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlF1
b3Rlc1ZhbHVlOjpjc3NUZXh0KToKKyAgICAgICAgKiBjc3MvUXVvdGVzVmFsdWUuaDogQWRkZWQu
CisgICAgICAgICogY3NzL2h0bWw0LmNzczoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ29u
dGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvbnRhaW5lcjo6YWRkQ2hpbGQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ29udGFpbmVyOjpyZW1vdmVDaGlsZE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ29udGFpbmVyOjpyZW1vdmVDaGlsZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJDb250YWluZXI6OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudEZvckNv
bnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb250YWluZXI6OmFwcGVuZENoaWxk
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb250YWluZXI6Omluc2VydENoaWxkTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb250YWluZXI6OnJlbW92ZUxlZnRvdmVyQW5v
bnltb3VzQmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ29udGFpbmVyOjpwb3NpdGlv
bkZvckNvb3JkaW5hdGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb3VudGVyOjppc0NvdW50ZXIpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1F1b3RlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclF1b3RlOjpSZW5kZXJRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90
ZTo6cmVuZGVyTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6aXNRdW90ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6Y29tcHV0ZUxldmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclF1b3RlOjpvcmlnaW5hbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUXVvdGU6OmRpcnR5TGluZUJveGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1
b3RlOjpjYWxjUHJlZldpZHRocyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclF1b3RlLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OmlzVmlzaWJsZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6flN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZUluaGVyaXRlZERhdGE6OlN0eWxlSW5oZXJpdGVkRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29udGVudERhdGFFcXVpdmFsZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnREYXRhOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpRdW90ZXNEYXRh
OjphZGRMZXZlbCk6CisgICAgICAgIChXZWJDb3JlOjpRdW90ZXNEYXRhOjpvcGVuUXVvdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UXVvdGVzRGF0YTo6Y2xvc2VRdW90ZSk6CisgICAgICAgIChXZWJD
b3JlOjpRdW90ZXNEYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
U3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlckRhdGE6OmJvcmRlckxlZnRXaWR0aCk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZU11bHRpQ29sRGF0YTo6cnVsZVdpZHRoKToKKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RGF0YTo6KToKKyAgICAg
ICAgKFdlYkNvcmU6OlF1b3Rlc0RhdGE6OlF1b3Rlc0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
UXVvdGVzRGF0YTo6b3BlcmF0b3IhPSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpkZXJlZik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTdHlsZTo6c2V0Qml0RGVmYXVsdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OnF1b3Rlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6b3V0bGlu
ZU9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Qm9yZGVyUmFkaXVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRCb3JkZXJUb3BDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0T3V0bGluZVN0eWxlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRRdW90ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OmRlbGV0ZUJpbmRpbmdVUklzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpzZXRUZXh0U2VjdXJpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnF1
b3Rlc0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxRdW90ZXMp
OgorCiAyMDA4LTAzLTI0ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBBZGQgZmlsZXMgZnJvbSBXZWJDb3Jl
L3BhZ2UvaW5zcGVjdG9yCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDMxMjQyKQorKysgV2ViQ29yZS9XZWJDb3Jl
LnBybwkod29ya2luZyBjb3B5KQpAQCAtNTA0LDYgKzUwNCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IGNzcy9NZWRpYVF1ZXJ5LmNwcCBcCiAgICAgY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIFwK
ICAgICBjc3MvTWVkaWFRdWVyeUV4cC5jcHAgXAorICAgIGNzcy9RdW90ZXNWYWx1ZS5jcHAgXAog
ICAgIGNzcy9TaGFkb3dWYWx1ZS5jcHAgXAogICAgIGNzcy9TdHlsZUJhc2UuY3BwIFwKICAgICBj
c3MvU3R5bGVMaXN0LmNwcCBcCkBAIC04NjYsNiArODY3LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNw
cCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuY3BwIFwKKyAgICByZW5kZXJpbmcv
UmVuZGVyUXVvdGUuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIFwKICAg
ICByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclN0eWxl
LmNwcCBcCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDMxMjQyKQorKysgV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUg
Ik1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIKICNpbmNsdWRlICJQYWly
LmgiCisjaW5jbHVkZSAiUXVvdGVzVmFsdWUuaCIKICNpbmNsdWRlICJTaGFkb3dWYWx1ZS5oIgog
I2luY2x1ZGUgPGtqcy9kdG9hLmg+CiAKQEAgLTU4NCw3ICs1ODUsNiBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgICAqLwogCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVNpemU6ICAgICAgICAgICAgICAgICAvLyA8bGVuZ3RoPnsxLDJ9IHwgYXV0byB8IHBv
cnRyYWl0IHwgbGFuZHNjYXBlIHwgaW5oZXJpdAotICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6
ICAgICAgICAgICAgICAgLy8gWzxzdHJpbmc+IDxzdHJpbmc+XSsgfCBub25lIHwgaW5oZXJpdAog
ICAgICAgICBpZiAoaWQpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAg
ICAgICBicmVhazsKQEAgLTEwNTQsNiArMTA1NCwxMSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VW
YWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VDb3VudGVyKHByb3BJ
ZCwgMCwgaW1wb3J0YW50KTsKICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3RlczogICAgICAgICAgICAgICAvLyBb
PHN0cmluZz4gPHN0cmluZz5dKyB8IG5vbmUgfCBpbmhlcml0CisgICAgICAgIGlmIChpZCAhPSBD
U1NWYWx1ZU5vbmUpCisgICAgICAgICAgICByZXR1cm4gcGFyc2VRdW90ZXMocHJvcElkLCBpbXBv
cnRhbnQpOworICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBicmVhazsK
ICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udEZhbWlseToKICAgICAgICAgLy8gW1sgPGZhbWlseS1u
YW1lPiB8IDxnZW5lcmljLWZhbWlseT4gXSxdKiBbPGZhbWlseS1uYW1lPiB8IDxnZW5lcmljLWZh
bWlseT5dIHwgaW5oZXJpdAogICAgIHsKQEAgLTE4OTksMTEgKzE5MDQsMTEgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlQ29udGVudChpbnQgcHJvcElkLAogICAgICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9IGVsc2UgaWYgKHZhbC0+dW5pdCA9
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UKSB7Ci0gICAgICAgICAgICAvLyBvcGVuLXF1
b3RlCi0gICAgICAgICAgICAvLyBjbG9zZS1xdW90ZQotICAgICAgICAgICAgLy8gbm8tb3Blbi1x
dW90ZQotICAgICAgICAgICAgLy8gbm8tY2xvc2UtcXVvdGUKLSAgICAgICAgICAgIC8vIEZJWE1F
OiBUaGVzZSBhcmUgbm90IHlldCBpbXBsZW1lbnRlZCAoaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjUwMykuCisgICAgICAgICAgICAvLyBvcGVuLXF1b3RlIHwgY2xvc2Ut
cXVvdGUgfCBuby1vcGVuLXF1b3RlIHwgbm8tY2xvc2UtcXVvdGUKKyAgICAgICAgICAgIGlmICh2
YWwtPmlkID09IENTU1ZhbHVlT3BlblF1b3RlIHx8IHZhbC0+aWQgPT0gQ1NTVmFsdWVDbG9zZVF1
b3RlIHx8CisgICAgICAgICAgICAgICAgdmFsLT5pZCA9PSBDU1NWYWx1ZU5vT3BlblF1b3RlIHx8
IHZhbC0+aWQgPT0gQ1NTVmFsdWVOb0Nsb3NlUXVvdGUpIHsKKyAgICAgICAgICAgICAgICBwYXJz
ZWRWYWx1ZSA9IG5ldyBDU1NQcmltaXRpdmVWYWx1ZSh2YWwtPmlkKTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNlIGlmICh2YWwtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19T
VFJJTkcpIHsKICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KHZhbC0+c3RyaW5nLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORyk7CiAgICAgICAgIH0K
QEAgLTE5MjIsNiArMTkyNywzNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDb250ZW50KGludCBw
cm9wSWQsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisvLyBbPHN0cmluZz4gPHN0cmluZz5dKyB8
IGluaGVyaXQKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZVF1b3RlcyhpbnQgcHJvcElkLCBib29sIGlt
cG9ydGFudCkKK3sKKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiB2YWx1ZXMgPSBuZXcgQ1NTVmFs
dWVMaXN0KHRydWUpOworCisgICAgVmFsdWUqIHZhbHVlMSA9IDA7CisgICAgVmFsdWUqIHZhbHVl
MiA9IDA7CisgICAgd2hpbGUgKHZhbHVlMSA9IHZhbHVlTGlzdC0+Y3VycmVudCgpKSB7CisgICAg
ICAgIGlmICh2YWx1ZTEtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpIHsK
KyAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICAgICAgaWYg
KHZhbHVlMiAmJiB2YWx1ZTItPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcp
IHsKKyAgICAgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZChuZXcgUXVvdGVzVmFsdWUodmFsdWUx
LT5zdHJpbmcsIHZhbHVlMi0+c3RyaW5nKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICB2YWx1ZTIgPSAwOworICAgICAgICB2YWx1ZUxpc3QtPm5leHQoKTsKKyAgICB9CisKKyAg
ICBpZiAodmFsdWVzLT5sZW5ndGgoKSkgeworICAgICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIHZh
bHVlcy5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAgICAgIGlmICh2YWx1ZTIpCisgICAgICAg
ICAgICB2YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBh
cnNlQmFja2dyb3VuZENvbG9yKCkKIHsKICAgICBpbnQgaWQgPSB2YWx1ZUxpc3QtPmN1cnJlbnQo
KS0+aWQ7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaAkocmV2aXNpb24gMzEyNDIpCisrKyBXZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTU0LDYgKzE1NCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBwYXJzZUNvdW50ZXIoaW50IHByb3BJZCwgaW50IGRlZmF1bHRW
YWx1ZSwgYm9vbCBpbXBvcnRhbnQpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJz
ZUNvdW50ZXJDb250ZW50KFZhbHVlTGlzdCogYXJncywgYm9vbCBjb3VudGVycyk7CiAKKyAgICAg
ICAgYm9vbCBwYXJzZVF1b3RlcyhpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CisKICAgICAg
ICAgYm9vbCBwYXJzZUNvbG9yUGFyYW1ldGVycyhWYWx1ZSosIGludCogY29sb3JWYWx1ZXMsIGJv
b2wgcGFyc2VBbHBoYSk7CiAgICAgICAgIGJvb2wgcGFyc2VIU0xQYXJhbWV0ZXJzKFZhbHVlKiwg
ZG91YmxlKiBjb2xvclZhbHVlcywgYm9vbCBwYXJzZUFscGhhKTsKICAgICAgICAgUGFzc1JlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VDb2xvcihWYWx1ZSogPSAwKTsKSW5kZXg6IFdlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NT
U1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAzMTI0MikKKysrIFdlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhaXIuaCIKKyNp
bmNsdWRlICJRdW90ZXNWYWx1ZS5oIgogI2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5k
ZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKQEAgLTMzOTQsNiAr
MzM5NSwyNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAg
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY291bnRlciwgZGlkU2V0KTsKICAg
ICAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UOiB7CisgICAgICAg
ICAgICAgICAgICAgIHN3aXRjaCAodmFsLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlT3BlblF1b3RlOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldENvbnRlbnQoT1BFTl9RVU9URSwgZGlkU2V0KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ1NT
VmFsdWVDbG9zZVF1b3RlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNl
dENvbnRlbnQoQ0xPU0VfUVVPVEUsIGRpZFNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTm9PcGVuUXVv
dGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChOT19P
UEVOX1FVT1RFLCBkaWRTZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZU5vQ2xvc2VRdW90ZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KE5PX0NMT1NFX1FVT1RF
LCBkaWRTZXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBkaWRTZXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFkaWRTZXQp
CkBAIC0zNDA4LDYgKzM0MjksMjcgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3Bl
cnR5KGludAogICAgICAgICBhcHBseUNvdW50ZXJMaXN0KG1fc3R5bGUsIHZhbHVlLT5pc1ZhbHVl
TGlzdCgpID8gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpIDogMCwgdHJ1ZSk7CiAg
ICAgICAgIHJldHVybjsKIAorICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6CisgICAgICAgIEhB
TkRMRV9JTkhFUklUX0FORF9JTklUSUFMKHF1b3RlcywgUXVvdGVzKTsKKyAgICAgICAgaWYgKHBy
aW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9u
ZSkgeworICAgICAgICAgICAgLy8gV2l0aCBhbiBlbXB0eSBRdW90ZXNEYXRhLCB3ZSB3aWxsIHBy
b2R1Y2Ugbm8gcXVvdGF0aW9uIG1hcmtzIGFzIGFza2VkIGJ5IENTUzIuMSBzcGVjCisgICAgICAg
ICAgICBtX3N0eWxlLT5zZXRRdW90ZXMobmV3IFF1b3Rlc0RhdGEpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgIENTU1ZhbHVlTGlzdCAqbGlzdCA9IHN0YXRpY19jYXN0
PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgICAgIGludCBsZW4gPSBsaXN0LT5sZW5n
dGgoKTsKKyAgICAgICAgICAgIFF1b3Rlc0RhdGEgKnF1b3RlcyA9IG5ldyBRdW90ZXNEYXRhOwor
ICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICAgICAg
ICAgIENTU1ZhbHVlICppdGVtID0gbGlzdC0+aXRlbShpKTsKKyAgICAgICAgICAgICAgICBRdW90
ZXNWYWx1ZSAqdmFsID0gc3RhdGljX2Nhc3Q8UXVvdGVzVmFsdWUqPihpdGVtKTsKKyAgICAgICAg
ICAgICAgICBxdW90ZXMtPmFkZExldmVsKHZhbC0+b3BlblF1b3RlLCB2YWwtPmNsb3NlUXVvdGUp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9zdHlsZS0+c2V0UXVvdGVzKHF1b3Rlcyk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRG
YW1pbHk6IHsKICAgICAgICAgLy8gbGlzdCBvZiBzdHJpbmdzIGFuZCBpZHMKICAgICAgICAgaWYg
KGlzSW5oZXJpdCkgewpAQCAtNDUyNCw3ICs0NTY2LDYgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9y
OjphcHBseVByb3BlcnR5KGludAogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eUZvbnRTdHJldGNoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWdlOgotICAgIGNhc2UgQ1NTUHJv
cGVydHlRdW90ZXM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbGJhcjNkbGlnaHRDb2xvcjoK
ICAgICBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsYmFyQXJyb3dDb2xvcjoKICAgICBjYXNlIENTU1By
b3BlcnR5U2Nyb2xsYmFyRGFya3NoYWRvd0NvbG9yOgpJbmRleDogV2ViQ29yZS9jc3MvUXVvdGVz
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL1F1b3Rlc1ZhbHVlLmNwcAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvY3NzL1F1b3Rlc1ZhbHVlLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzNiBAQAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlF1b3Rlc1ZhbHVl
LmgiCisKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUXVvdGVzVmFsdWU6OlF1b3Rlc1Zh
bHVlKGNvbnN0IFN0cmluZyAmX29wZW5RdW90ZSwKKyAgICBjb25zdCBTdHJpbmcgJl9jbG9zZVF1
b3RlKQorICAgIDogb3BlblF1b3RlKF9vcGVuUXVvdGUpCisgICAgLCBjbG9zZVF1b3RlKF9jbG9z
ZVF1b3RlKQoreworfQorCisvLyBGSVhNRTogd2Ugc2hvdWxkIGNhbiB1c2UgdGhlIHZlcnNpb24g
cHJlc2VudCBpbiB3aXRoIENTU1ByaW1pdGl2ZVZhbHVlLmNwcAorc3RhdGljIFN0cmluZyBxdW90
ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBTdHJpbmcgcXVvdGVkU3RyaW5n
ID0gc3RyaW5nOworICAgIHF1b3RlZFN0cmluZy5yZXBsYWNlKCdcXCcsICJcXFxcIik7CisgICAg
cXVvdGVkU3RyaW5nLnJlcGxhY2UoJ1wnJywgIlxcJyIpOworICAgIHJldHVybiAiJyIgKyBxdW90
ZWRTdHJpbmcgKyAiJyI7Cit9CisKK1N0cmluZyBRdW90ZXNWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0
Cit7CisgICAgU3RyaW5nIHJlc3VsdCgiIik7CisKKyAgICByZXN1bHQgKz0gcXVvdGVTdHJpbmco
b3BlblF1b3RlKTsKKyAgICByZXN1bHQgKz0gIiAiOworICAgIHJlc3VsdCArPSBxdW90ZVN0cmlu
ZyhjbG9zZVF1b3RlKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30KSW5kZXg6IFdlYkNv
cmUvY3NzL1F1b3Rlc1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvUXVvdGVzVmFs
dWUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvY3NzL1F1b3Rlc1ZhbHVlLmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjUgQEAKKyNpZm5kZWYgUXVvdGVzVmFsdWVfaAorI2RlZmluZSBRdW90
ZXNWYWx1ZV9oCisKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3RyaW5nOworCitjbGFzcyBR
dW90ZXNWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZQoreworcHVibGljOgorICAgIFF1b3Rlc1ZhbHVl
KGNvbnN0IFN0cmluZyAmb3BlblF1b3RlLAorICAgICAgICBjb25zdCBTdHJpbmcgJmNsb3NlUXVv
dGUpOworCisgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OworCisgICAgU3RyaW5n
IG9wZW5RdW90ZTsKKyAgICBTdHJpbmcgY2xvc2VRdW90ZTsKK307CisKK30gLy8gbmFtZXNwYWNl
CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9jc3MvaHRtbDQuY3NzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvY3NzL2h0bWw0LmNzcwkocmV2aXNpb24gMzEyNDIpCisrKyBXZWJDb3JlL2Nzcy9odG1s
NC5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTkxLDEzICs5MSwxMSBAQCBxIHsKIH0KIAogcTpiZWZv
cmUgewotICAgIGNvbnRlbnQ6ICciJwotICAgIC8qIEZJWE1FOiBjb250ZW50OiBvcGVuLXF1b3Rl
OyAqLworICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7CiB9CiAKIHE6YWZ0ZXIgewotICAgIGNvbnRl
bnQ6ICciJwotICAgIC8qIEZJWE1FOiBjb250ZW50OiBjbG9zZS1xdW90ZTsgKi8KKyAgICBjb250
ZW50OiBjbG9zZS1xdW90ZTsKIH0KIAogY2VudGVyIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckNvbnRhaW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQ29udGFpbmVyLmNwcAkocmV2aXNpb24gMzEyNDIpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJDb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUg
IlJlbmRlckxpc3RJdGVtLmgiCisjaW5jbHVkZSAiUmVuZGVyUXVvdGUuaCIKICNpbmNsdWRlICJS
ZW5kZXJUYWJsZS5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRGcmFnbWVudC5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKQEAgLTM1Miw2ICszNTMsMTAgQEAgdm9pZCBSZW5kZXJDb250YWluZXI6
OnVwZGF0ZUJlZm9yZUFmdGVyQwogICAgICAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChyZW5k
ZXJBcmVuYSgpKSBSZW5kZXJDb3VudGVyKGRvY3VtZW50KCksICpjb250ZW50LT5tX2NvbnRlbnQu
bV9jb3VudGVyKTsKICAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxl
bWVudFN0eWxlKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ09O
VEVOVF9RVU9URToKKyAgICAgICAgICAgICAgICByZW5kZXJlciA9IG5ldyAocmVuZGVyQXJlbmEo
KSkgUmVuZGVyUXVvdGUoZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgb2JqZWN0ICovLCBjb250ZW50
LT5tX2NvbnRlbnQubV9xdW90ZSk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxl
KHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAocmVuZGVyZXIpIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CShyZXZpc2lvbiAzMTI0MikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNjUsNiArMjY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc0xpc3RJdGVtKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNMaXN0TWFya2VyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNR
dW90ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVy
VmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQlIoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlQ2VsbCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDgzIEBACisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVu
ZGVyUXVvdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZW5kZXJRdW90ZTo6UmVuZGVy
UXVvdGUoRG9jdW1lbnQgKm5vZGUsIFF1b3RlQ29udGVudCBxdW90ZSkKKyAgICA6IFJlbmRlclRl
eHQobm9kZSwgU3RyaW5nSW1wbDo6ZW1wdHkoKSkKKyAgICAsIG1fcXVvdGUocXVvdGUpCisgICAg
LCBtX25lZWRzQ29tcHV0ZUxldmVsKHRydWUpCisgICAgLCBtX2xldmVsKDApCit7Cit9CisKK2Nv
bnN0IGNoYXIqIFJlbmRlclF1b3RlOjpyZW5kZXJOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
IlJlbmRlclF1b3RlIjsKK30KKworYm9vbCBSZW5kZXJRdW90ZTo6aXNRdW90ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OmNvbXB1dGVMZXZlbCgp
IGNvbnN0Cit7CisgICAgaW50IGxldmVsID0gMDsKKworICAgIGNvbnN0IFJlbmRlck9iamVjdCog
cHJldmlvdXNPYmplY3QgPSB0aGlzOworICAgIHdoaWxlICgocHJldmlvdXNPYmplY3QgPSBwcmV2
aW91c09iamVjdC0+cHJldmlvdXNJblByZU9yZGVyKCkpKSB7CisgICAgICAgIGlmIChwcmV2aW91
c09iamVjdC0+aXNRdW90ZSgpKSB7CisgICAgICAgICAgICBjb25zdCBSZW5kZXJRdW90ZSogcHJl
dmlvdXNRdW90ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclF1b3RlKj4ocHJldmlvdXNPYmpl
Y3QpOworICAgICAgICAgICAgaWYgKHByZXZpb3VzUXVvdGUtPm1fcXVvdGUgPT0gT1BFTl9RVU9U
RSB8fCBwcmV2aW91c1F1b3RlLT5tX3F1b3RlID09IE5PX09QRU5fUVVPVEUpCisgICAgICAgICAg
ICAgICAgKytsZXZlbDsKKyAgICAgICAgICAgIGVsc2UgaWYgKHByZXZpb3VzUXVvdGUtPm1fcXVv
dGUgPT0gQ0xPU0VfUVVPVEUgfHwgcHJldmlvdXNRdW90ZS0+bV9xdW90ZSA9PSBOT19DTE9TRV9R
VU9URSkKKyAgICAgICAgICAgICAgICAtLWxldmVsOworICAgICAgICB9CisgICAgfQorCisgICAg
bV9sZXZlbCA9IGxldmVsOworICAgIG1fbmVlZHNDb21wdXRlTGV2ZWwgPSBmYWxzZTsKK30KKwor
UGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBSZW5kZXJRdW90ZTo6b3JpZ2luYWxUZXh0KCkgY29uc3QK
K3sKKyAgICBpZiAoIXBhcmVudCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICghbV9x
dW90ZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBDb21wdXRlIGxldmVsCisgICAgaWYg
KG1fbmVlZHNDb21wdXRlTGV2ZWwpCisgICAgICAgIGNvbXB1dGVMZXZlbCgpOworCisgICAgU3Ry
aW5nIHF1b3RlKCIiKTsKKyAgICBRdW90ZXNEYXRhICpxdW90ZXMgPSBzdHlsZSgpLT5xdW90ZXMo
KTsKKyAgICBpZiAocXVvdGVzICYmIGlzVmlzaWJsZSgpKSB7CisgICAgICAgIGlmIChtX3F1b3Rl
ID09IE9QRU5fUVVPVEUpCisgICAgICAgICAgICBxdW90ZSArPSBxdW90ZXMtPm9wZW5RdW90ZSht
X2xldmVsKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcXVvdGUgKz0gcXVvdGVzLT5jbG9z
ZVF1b3RlKG1fbGV2ZWwpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEZJWE1FIHdlIG5lZWQg
dG8gY2hvb3NlIHRoZSBkZWZhdWx0IHF1b3RlcyAob3BlbiBhbmQgY2xvc2UpCisgICAgICAgIHF1
b3RlICs9ICJcIiI7CisgICAgfQorCisgICAgcmV0dXJuIHF1b3RlLmltcGwoKTsKK30KKwordm9p
ZCBSZW5kZXJRdW90ZTo6ZGlydHlMaW5lQm94ZXMoYm9vbCBmdWxsTGF5b3V0LCBib29sIGR1bW15
KQoreworICAgIGlmIChwcmVmV2lkdGhzRGlydHkoKSkKKyAgICAgICAgY2FsY1ByZWZXaWR0aHMo
MCk7CisgICAgUmVuZGVyVGV4dDo6ZGlydHlMaW5lQm94ZXMoZnVsbExheW91dCwgZHVtbXkpOwor
fQorCit2b2lkIFJlbmRlclF1b3RlOjpjYWxjUHJlZldpZHRocyhpbnQgbGVhZCkKK3sKKyAgICBz
ZXRUZXh0SW50ZXJuYWwob3JpZ2luYWxUZXh0KCkpOworICAgIFJlbmRlclRleHQ6OmNhbGNQcmVm
V2lkdGhzKGxlYWQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclF1b3RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJR
dW90ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACisjaWZuZGVmIFJlbmRlclF1b3Rl
X2gKKyNkZWZpbmUgUmVuZGVyUXVvdGVfaAorCisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclF1b3RlIDogcHVibGljIFJlbmRlclRl
eHQgeworcHVibGljOgorICAgIFJlbmRlclF1b3RlKERvY3VtZW50KiwgUXVvdGVDb250ZW50KTsK
KworICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBpc1F1b3RlKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0cmluZ0lt
cGw+IG9yaWdpbmFsVGV4dCgpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIGRpcnR5TGluZUJv
eGVzKGJvb2wsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBjYWxjUHJlZldpZHRocyhpbnQgbGVh
ZFdpZHRoKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzVmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcXVvdGUgPT0gT1BFTl9RVU9URSB8fCBtX3F1b3RlID09IENMT1NFX1FVT1RFIHx8IG1fbGV2
ZWwgPCAwO30KKyAgICB2b2lkIGNvbXB1dGVMZXZlbCgpIGNvbnN0OworCisgICAgUXVvdGVDb250
ZW50IG1fcXVvdGU7CisgICAgbXV0YWJsZSBib29sIG1fbmVlZHNDb21wdXRlTGV2ZWw7CisgICAg
bXV0YWJsZSBpbnQgbV9sZXZlbDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFJlbmRlclF1b3RlX2gKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5jcHAJKHJl
dmlzaW9uIDMxMjQyKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NzgsNiArNzc4LDcgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlSW5oZXJpdAogICAgICwgdGV4dFNpemVBZGp1c3QoUmVuZGVyU3R5bGU6OmluaXRpYWxU
ZXh0U2l6ZUFkanVzdCgpKQogICAgICwgcmVzaXplKFJlbmRlclN0eWxlOjppbml0aWFsUmVzaXpl
KCkpCiAgICAgLCB1c2VyU2VsZWN0KFJlbmRlclN0eWxlOjppbml0aWFsVXNlclNlbGVjdCgpKQor
ICAgICwgbV9xdW90ZXMoUmVuZGVyU3R5bGU6OmluaXRpYWxRdW90ZXMoKSkKIHsKIH0KIApAQCAt
Nzk3LDEyICs3OTgsMTQgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJp
dAogICAgICwgdGV4dFNpemVBZGp1c3Qoby50ZXh0U2l6ZUFkanVzdCkKICAgICAsIHJlc2l6ZShv
LnJlc2l6ZSkKICAgICAsIHVzZXJTZWxlY3Qoby51c2VyU2VsZWN0KQorICAgICwgbV9xdW90ZXMo
by5tX3F1b3RlcyA/IG5ldyBRdW90ZXNEYXRhKCpvLm1fcXVvdGVzKSA6IFJlbmRlclN0eWxlOjpp
bml0aWFsUXVvdGVzKCkpCiB7CiB9CiAKIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6On5TdHlsZVJh
cmVJbmhlcml0ZWREYXRhKCkKIHsKICAgICBkZWxldGUgdGV4dFNoYWRvdzsKKyAgICBkZWxldGUg
bV9xdW90ZXM7CiB9CiAKIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShj
b25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdApAQCAtODE5LDcgKzgyMiw4IEBA
IGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSgKICAgICAgICAgJiYgbmJz
cE1vZGUgPT0gby5uYnNwTW9kZQogICAgICAgICAmJiBraHRtbExpbmVCcmVhayA9PSBvLmtodG1s
TGluZUJyZWFrCiAgICAgICAgICYmIHRleHRTaXplQWRqdXN0ID09IG8udGV4dFNpemVBZGp1c3QK
LSAgICAgICAgJiYgdXNlclNlbGVjdCA9PSBvLnVzZXJTZWxlY3Q7CisgICAgICAgICYmIHVzZXJT
ZWxlY3QgPT0gby51c2VyU2VsZWN0CisgICAgICAgICYmIG1fcXVvdGVzID09IG8ubV9xdW90ZXM7
CiB9CiAKIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6c2hhZG93RGF0YUVxdWl2YWxlbnQo
Y29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKQEAgLTEzOTMsNiArMTM5OCwx
MCBAQCBib29sIFJlbmRlclN0eWxlOjpjb250ZW50RGF0YUVxdWl2YWxlbnQoCiAgICAgICAgICAg
ICAgICAgaWYgKCpjMS0+bV9jb250ZW50Lm1fY291bnRlciAhPSAqYzItPm1fY29udGVudC5tX2Nv
dW50ZXIpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9RVU9URToKKyAgICAgICAgICAgICAg
ICBpZiAoYzEtPm1fY29udGVudC5tX3F1b3RlICE9IGMyLT5tX2NvbnRlbnQubV9xdW90ZSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAKICAgICAgICAgYzEgPSBjMS0+bV9uZXh0OwpAQCAtMTUwMyw2ICsxNTEyLDMz
IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoQ291bnRlckNvbnQKICAgICBuZXdDb250
ZW50RGF0YS0+bV90eXBlID0gQ09OVEVOVF9DT1VOVEVSOwogfQogCit2b2lkIFJlbmRlclN0eWxl
OjpzZXRDb250ZW50KFF1b3RlQ29udGVudCBxLCBib29sIGFkZCkKK3sKKyAgICBpZiAoIXEpCisg
ICAgICAgIHJldHVybjsKKworICAgIENvbnRlbnREYXRhKiYgY29udGVudCA9IHJhcmVOb25Jbmhl
cml0ZWREYXRhLmFjY2VzcygpLT5tX2NvbnRlbnQ7CisgICAgQ29udGVudERhdGEqIGxhc3RDb250
ZW50ID0gY29udGVudDsKKyAgICB3aGlsZSAobGFzdENvbnRlbnQgJiYgbGFzdENvbnRlbnQtPm1f
bmV4dCkKKyAgICAgICAgbGFzdENvbnRlbnQgPSBsYXN0Q29udGVudC0+bV9uZXh0OworCisgICAg
Ym9vbCByZXVzZUNvbnRlbnQgPSAhYWRkOworICAgIENvbnRlbnREYXRhKiBuZXdDb250ZW50RGF0
YSA9IDA7CisgICAgaWYgKHJldXNlQ29udGVudCAmJiBjb250ZW50KSB7CisgICAgICAgIGNvbnRl
bnQtPmNsZWFyKCk7CisgICAgICAgIG5ld0NvbnRlbnREYXRhID0gY29udGVudDsKKyAgICB9IGVs
c2UKKyAgICAgICAgbmV3Q29udGVudERhdGEgPSBuZXcgQ29udGVudERhdGE7CisKKyAgICBpZiAo
bGFzdENvbnRlbnQgJiYgIXJldXNlQ29udGVudCkKKyAgICAgICAgbGFzdENvbnRlbnQtPm1fbmV4
dCA9IG5ld0NvbnRlbnREYXRhOworICAgIGVsc2UKKyAgICAgICAgY29udGVudCA9IG5ld0NvbnRl
bnREYXRhOworCisgICAgbmV3Q29udGVudERhdGEtPm1fY29udGVudC5tX3F1b3RlID0gcTsKKyAg
ICBuZXdDb250ZW50RGF0YS0+bV90eXBlID0gQ09OVEVOVF9RVU9URTsKK30KKwogdm9pZCBDb250
ZW50RGF0YTo6Y2xlYXIoKQogewogICAgIHN3aXRjaCAobV90eXBlKSB7CkBAIC0xNTE1LDYgKzE1
NTEsOSBAQCB2b2lkIENvbnRlbnREYXRhOjpjbGVhcigpCiAgICAgICAgIGNhc2UgQ09OVEVOVF9D
T1VOVEVSOgogICAgICAgICAgICAgZGVsZXRlIG1fY29udGVudC5tX2NvdW50ZXI7CiAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICAgICAgbV9j
b250ZW50Lm1fcXVvdGUgPSBRVU9URV9OT05FOworICAgICAgICAgICAgYnJlYWs7CiAgICAgfQog
CiAgICAgQ29udGVudERhdGEqIG4gPSBtX25leHQ7CkBAIC0xNjgxLDYgKzE3MjAsMzkgQEAgQ291
bnRlckRpcmVjdGl2ZU1hcCYgUmVuZGVyU3R5bGU6OmFjY2VzcwogICAgIHJldHVybiAqbWFwOwog
fQogCit2b2lkIFF1b3Rlc0RhdGE6OmFkZExldmVsKGNvbnN0IEF0b21pY1N0cmluZyAmb3Blbiwg
Y29uc3QgQXRvbWljU3RyaW5nICZjbG9zZSkKK3sKKyAgICBtX29wZW5RdW90ZXMuYXBwZW5kKG9w
ZW4pOworICAgIG1fY2xvc2VRdW90ZXMuYXBwZW5kKGNsb3NlKTsKK30KKworY29uc3QgQXRvbWlj
U3RyaW5nIFF1b3Rlc0RhdGE6Om9wZW5RdW90ZShpbnQgbGV2ZWwpIGNvbnN0Cit7CisgICAgaWYg
KG1fb3BlblF1b3Rlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAiIjsKKworICAgIGlmICht
X29wZW5RdW90ZXMuc2l6ZSgpIDw9IGxldmVsKQorICAgICAgICBsZXZlbCA9IG1fb3BlblF1b3Rl
cy5zaXplKCkgLSAxOworCisgICAgcmV0dXJuIG1fb3BlblF1b3Rlcy5hdChsZXZlbCk7Cit9CisK
K2NvbnN0IEF0b21pY1N0cmluZyBRdW90ZXNEYXRhOjpjbG9zZVF1b3RlKGludCBsZXZlbCkgY29u
c3QKK3sKKyAgICBpZiAobV9jbG9zZVF1b3Rlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAi
IjsKKworICAgIGlmIChtX2Nsb3NlUXVvdGVzLnNpemUoKSA8PSBsZXZlbCkKKyAgICAgICAgbGV2
ZWwgPSBtX2Nsb3NlUXVvdGVzLnNpemUoKSAtIDE7CisKKyAgICByZXR1cm4gbV9jbG9zZVF1b3Rl
cy5hdChsZXZlbCk7Cit9CisKK2Jvb2wgUXVvdGVzRGF0YTo6b3BlcmF0b3I9PShjb25zdCBRdW90
ZXNEYXRhJiBvKSBjb25zdAoreworICAgIHJldHVybiBtX29wZW5RdW90ZXMgPT0gby5tX29wZW5R
dW90ZXMgJiYgbV9jbG9zZVF1b3RlcyA9PSBvLm1fY2xvc2VRdW90ZXM7Cit9CisKIGNvbnN0IFZl
Y3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIFJlbmRlclN0eWxlOjppbml0aWFsRGFzaGJvYXJk
UmVnaW9ucygpCiB7IAogICAgIHN0YXRpYyBWZWN0b3I8U3R5bGVEYXNoYm9hcmRSZWdpb24+IGVt
cHR5TGlzdDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gMzEyNDIpCisr
KyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDM5
LDcgKzEwMzksMTEgQEAgcHJpdmF0ZToKIH07CiAKIGVudW0gQ29udGVudFR5cGUgewotICAgIENP
TlRFTlRfTk9ORSwgQ09OVEVOVF9PQkpFQ1QsIENPTlRFTlRfVEVYVCwgQ09OVEVOVF9DT1VOVEVS
CisgICAgQ09OVEVOVF9OT05FLCBDT05URU5UX09CSkVDVCwgQ09OVEVOVF9URVhULCBDT05URU5U
X0NPVU5URVIsIENPTlRFTlRfUVVPVEUKK307CisKK2VudW0gUXVvdGVDb250ZW50IHsKKyAgICBR
VU9URV9OT05FLCBPUEVOX1FVT1RFLCBDTE9TRV9RVU9URSwgTk9fT1BFTl9RVU9URSwgTk9fQ0xP
U0VfUVVPVEUKIH07CiAKIHN0cnVjdCBDb250ZW50RGF0YSA6IE5vbmNvcHlhYmxlIHsKQEAgLTEw
NTMsMTAgKzEwNTcsMzEgQEAgc3RydWN0IENvbnRlbnREYXRhIDogTm9uY29weWFibGUgewogICAg
ICAgICBDYWNoZWRSZXNvdXJjZSogbV9vYmplY3Q7CiAgICAgICAgIFN0cmluZ0ltcGwqIG1fdGV4
dDsKICAgICAgICAgQ291bnRlckNvbnRlbnQqIG1fY291bnRlcjsKKyAgICAgICAgUXVvdGVDb250
ZW50IG1fcXVvdGU7CiAgICAgfSBtX2NvbnRlbnQ7CiAgICAgQ29udGVudERhdGEqIG1fbmV4dDsK
IH07CiAKK2NsYXNzIFF1b3Rlc0RhdGEgeworcHVibGljOgorICAgIFF1b3Rlc0RhdGEoKSB7IH0K
KyAgICBRdW90ZXNEYXRhKGNvbnN0IFF1b3Rlc0RhdGEmIG8pCisgICAgICAgIDogbV9vcGVuUXVv
dGVzKG8ubV9vcGVuUXVvdGVzKSwgbV9jbG9zZVF1b3RlcyhvLm1fY2xvc2VRdW90ZXMpIHsgfQor
CisgICAgdm9pZCBhZGRMZXZlbChjb25zdCBBdG9taWNTdHJpbmcgJm9wZW4sIGNvbnN0IEF0b21p
Y1N0cmluZyAmY2xvc2UpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyBvcGVuUXVvdGUoaW50IGxl
dmVsKSBjb25zdDsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgY2xvc2VRdW90ZShpbnQgbGV2ZWwp
IGNvbnN0OworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFF1b3Rlc0RhdGEmIG8pIGNvbnN0
OworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBRdW90ZXNEYXRhJiBvKSBjb25zdCB7CisgICAg
ICAgIHJldHVybiAhKCp0aGlzID09IG8pOworICAgIH0KKworcHJpdmF0ZToKKyAgICBWZWN0b3I8
QXRvbWljU3RyaW5nPiBtX29wZW5RdW90ZXM7CisgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV9j
bG9zZVF1b3RlczsKK307CisKIGVudW0gRUJvcmRlckZpdCB7IEJvcmRlckZpdEJvcmRlciwgQm9y
ZGVyRml0TGluZXMgfTsKIAogZW51bSBFVGltaW5nRnVuY3Rpb25UeXBlIHsgTGluZWFyVGltaW5n
RnVuY3Rpb24sIEN1YmljQmV6aWVyVGltaW5nRnVuY3Rpb24gfTsKQEAgLTEyMjcsMTMgKzEyNTIs
MTQgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIHRleHRTZWN1cml0eSA6IDI7IC8vIEVUZXh0U2Vj
dXJpdHkKICAgICB1bnNpZ25lZCB1c2VyTW9kaWZ5IDogMjsgLy8gRVVzZXJNb2RpZnkgKGVkaXRp
bmcpCiAgICAgdW5zaWduZWQgd29yZEJyZWFrIDogMjsgLy8gRVdvcmRCcmVhawotICAgIHVuc2ln
bmVkIHdvcmRXcmFwIDogMTsgLy8gRVdvcmRXcmFwIAorICAgIHVuc2lnbmVkIHdvcmRXcmFwIDog
MTsgLy8gRVdvcmRXcmFwCiAgICAgdW5zaWduZWQgbmJzcE1vZGUgOiAxOyAvLyBFTkJTUE1vZGUK
ICAgICB1bnNpZ25lZCBraHRtbExpbmVCcmVhayA6IDE7IC8vIEVLSFRNTExpbmVCcmVhawogICAg
IGJvb2wgdGV4dFNpemVBZGp1c3QgOiAxOyAvLyBBbiBBcHBsZSBleHRlbnNpb24uCiAgICAgdW5z
aWduZWQgcmVzaXplIDogMjsgLy8gRVJlc2l6ZQogICAgIHVuc2lnbmVkIHVzZXJTZWxlY3QgOiAx
OyAgLy8gRVVzZXJTZWxlY3QKLSAgICAKKyAgICBRdW90ZXNEYXRhKiBtX3F1b3RlczsgLy8gVGhl
IHF1b3RlcyBsaXN0IHVzZWQgYnkgJ2NvbnRlbnQ6ICotcXVvdGUnCisKIHByaXZhdGU6CiAgICAg
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpOwogICAgIFN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29u
c3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYpOwpAQCAtMTc3OCw2ICsxODAzLDcgQEAgcHVibGlj
OgogICAgIEVFbXB0eUNlbGwgZW1wdHlDZWxscygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PEVFbXB0eUNlbGw+KGluaGVyaXRlZF9mbGFncy5fZW1wdHlfY2VsbHMpOyB9CiAgICAgRUNhcHRp
b25TaWRlIGNhcHRpb25TaWRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUNhcHRpb25T
aWRlPihpbmhlcml0ZWRfZmxhZ3MuX2NhcHRpb25fc2lkZSk7IH0KIAorICAgIFF1b3Rlc0RhdGEq
IHF1b3RlcygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5tX3F1b3RlczsgfQog
ICAgIHNob3J0IGNvdW50ZXJJbmNyZW1lbnQoKSBjb25zdCB7IHJldHVybiB2aXN1YWwtPmNvdW50
ZXJJbmNyZW1lbnQ7IH0KICAgICBzaG9ydCBjb3VudGVyUmVzZXQoKSBjb25zdCB7IHJldHVybiB2
aXN1YWwtPmNvdW50ZXJSZXNldDsgfQogCkBAIC0yMDEwLDYgKzIwMzYsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRFbXB0eUNlbGxzKEVFbXB0eUNlbGwgdikgeyBpbmhlcml0ZWRfZmxhZ3MuX2Vt
cHR5X2NlbGxzID0gdjsgfQogICAgIHZvaWQgc2V0Q2FwdGlvblNpZGUoRUNhcHRpb25TaWRlIHYp
IHsgaW5oZXJpdGVkX2ZsYWdzLl9jYXB0aW9uX3NpZGUgPSB2OyB9CiAKKyAgICB2b2lkIHNldFF1
b3RlcyhRdW90ZXNEYXRhKiB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1fcXVvdGVz
LCB2KTsgfQogCiAgICAgdm9pZCBzZXRDb3VudGVySW5jcmVtZW50KHNob3J0IHYpIHsgIFNFVF9W
QVIodmlzdWFsLGNvdW50ZXJJbmNyZW1lbnQsdikgfQogICAgIHZvaWQgc2V0Q291bnRlclJlc2V0
KHNob3J0IHYpIHsgIFNFVF9WQVIodmlzdWFsLGNvdW50ZXJSZXNldCx2KSB9CkBAIC0yMTE2LDI2
ICsyMTQzLDI4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRyYW5zZm9ybU9yaWdpblgoTGVuZ3Ro
IGwpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2Zvcm0s
IG1feCwgbCk7IH0KICAgICB2b2lkIHNldFRyYW5zZm9ybU9yaWdpblkoTGVuZ3RoIGwpIHsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2Zvcm0sIG1feSwgbCk7
IH0KICAgICAvLyBFbmQgQ1NTMyBTZXR0ZXJzCi0gICAKKwogICAgIC8vIEFwcGxlLXNwZWNpZmlj
IHByb3BlcnR5IHNldHRlcnMKICAgICB2b2lkIGNsZWFyVHJhbnNpdGlvbnMoKSB7IGRlbGV0ZSBy
YXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2l0aW9uOyByYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2l0aW9uID0gMDsgfQogICAgIHZvaWQgaW5oZXJpdFRy
YW5zaXRpb25zKGNvbnN0IFRyYW5zaXRpb24qIHBhcmVudCkgeyBjbGVhclRyYW5zaXRpb25zKCk7
IGlmIChwYXJlbnQpIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX3RyYW5zaXRpb24g
PSBuZXcgVHJhbnNpdGlvbigqcGFyZW50KTsgfQogICAgIHZvaWQgYWRqdXN0VHJhbnNpdGlvbnMo
KTsKICAgICB2b2lkIHNldExpbmVDbGFtcChpbnQgYykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0
ZWREYXRhLCBsaW5lQ2xhbXAsIGMpOyB9CiAgICAgdm9pZCBzZXRUZXh0U2l6ZUFkanVzdChib29s
IGIpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0YSwgdGV4dFNpemVBZGp1c3QsIGIpOyB9Ci0g
ICAgdm9pZCBzZXRUZXh0U2VjdXJpdHkoRVRleHRTZWN1cml0eSBhVGV4dFNlY3VyaXR5KSB7IFNF
VF9WQVIocmFyZUluaGVyaXRlZERhdGEsIHRleHRTZWN1cml0eSwgYVRleHRTZWN1cml0eSk7IH0g
CisgICAgdm9pZCBzZXRUZXh0U2VjdXJpdHkoRVRleHRTZWN1cml0eSBhVGV4dFNlY3VyaXR5KSB7
IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIHRleHRTZWN1cml0eSwgYVRleHRTZWN1cml0eSk7
IH0KIAogI2lmIEVOQUJMRShTVkcpCiAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUqIHN2Z1N0eWxl
KCkgY29uc3QgeyByZXR1cm4gbV9zdmdTdHlsZS5nZXQoKTsgfQogICAgIFNWR1JlbmRlclN0eWxl
KiBhY2Nlc3NTVkdTdHlsZSgpIHsgcmV0dXJuIG1fc3ZnU3R5bGUuYWNjZXNzKCk7IH0KICNlbmRp
ZgogCisgICAgY29uc3QgUXVvdGVzRGF0YSogcXVvdGVzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIHJh
cmVJbmhlcml0ZWREYXRhLT5tX3F1b3RlczsgfQogICAgIGNvbnN0IENvbnRlbnREYXRhKiBjb250
ZW50RGF0YSgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2NvbnRlbnQ7
IH0KICAgICBib29sIGNvbnRlbnREYXRhRXF1aXZhbGVudChjb25zdCBSZW5kZXJTdHlsZSogb3Ro
ZXJTdHlsZSkgY29uc3Q7CiAgICAgdm9pZCBjbGVhckNvbnRlbnQoKTsKICAgICB2b2lkIHNldENv
bnRlbnQoU3RyaW5nSW1wbCosIGJvb2wgYWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29udGVu
dChDYWNoZWRSZXNvdXJjZSosIGJvb2wgYWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29udGVu
dChDb3VudGVyQ29udGVudCosIGJvb2wgYWRkID0gZmFsc2UpOworICAgIHZvaWQgc2V0Q29udGVu
dChRdW90ZUNvbnRlbnQsIGJvb2wgYWRkID0gZmFsc2UpOwogCiAgICAgY29uc3QgQ291bnRlckRp
cmVjdGl2ZU1hcCogY291bnRlckRpcmVjdGl2ZXMoKSBjb25zdDsKICAgICBDb3VudGVyRGlyZWN0
aXZlTWFwJiBhY2Nlc3NDb3VudGVyRGlyZWN0aXZlcygpOwpAQCAtMjI4Myw3ICsyMzEyLDggQEAg
cHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiBpbml0aWFsVHJh
bnNmb3JtKCkgeyBzdGF0aWMgVHJhbnNmb3JtT3BlcmF0aW9ucyBvcHM7IHJldHVybiBvcHM7IH0K
ICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUcmFuc2Zvcm1PcmlnaW5YKCkgeyByZXR1cm4gTGVu
Z3RoKDUwLjAsIFBlcmNlbnQpOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsVHJhbnNmb3Jt
T3JpZ2luWSgpIHsgcmV0dXJuIExlbmd0aCg1MC4wLCBQZXJjZW50KTsgfQotICAgIAorICAgIHN0
YXRpYyBRdW90ZXNEYXRhKiBpbml0aWFsUXVvdGVzKCkgeyByZXR1cm4gMDsgfQorCiAgICAgLy8g
S2VlcCB0aGVzZSBhdCB0aGUgZW5kLgogICAgIHN0YXRpYyBpbnQgaW5pdGlhbFRyYW5zaXRpb25E
dXJhdGlvbigpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgaW50IGluaXRpYWxUcmFuc2l0aW9u
UmVwZWF0Q291bnQoKSB7IHJldHVybiAxOyB9Cg==
</data>
<flag name="review"
          id="8754"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20365</attachid>
            <date>2008-04-06 07:48:47 -0700</date>
            <delta_ts>2008-05-04 11:19:19 -0700</delta_ts>
            <desc>Final patch</desc>
            <filename>6503.diff</filename>
            <type>text/plain</type>
            <size>35689</size>
            <attacher name="Vincent Ricard">magic</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMTY3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjggQEAKKzIwMDgtMDQtMDYgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNu
aW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQnVnIDY1MDM6IGNvbnRlbnQgcHJvcGVydHkgZG9lc24ndCBzdXBwb3J0IHF1b3RlcworCisg
ICAgICAgIFRlc3RzOiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0y
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90
ZXMtMy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3Mt
cXVvdGVzLTQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQv
Y3NzLXF1b3Rlcy01Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb250ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VRdW90ZXMpOgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvUXVv
dGVzVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlF1b3Rlc1ZhbHVlOjpRdW90
ZXNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpxdW90ZVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpRdW90ZXNWYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAgICogY3NzL1F1b3Rlc1ZhbHVlLmg6
IEFkZGVkLgorICAgICAgICAqIGNzcy9odG1sNC5jc3M6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb250YWluZXI6OnVw
ZGF0ZUJlZm9yZUFmdGVyQ29udGVudEZvckNvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1F1b3Rl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclF1b3RlOjpSZW5kZXJRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJRdW90ZTo6cmVuZGVyTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6
aXNRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6Y29tcHV0ZUxldmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpvcmlnaW5hbFRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUXVvdGU6OmRpcnR5TGluZUJveGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclF1b3RlOjpjYWxjUHJlZldpZHRocyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clF1b3RlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OmlzVmlzaWJs
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6flN0eWxlUmFyZUluaGVyaXRl
ZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0
b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpxdW90ZXNE
YXRhRXF1aXZhbGVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Y29udGVudERh
dGFFcXVpdmFsZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjpjbGVhcik6CisgICAgICAgIChXZWJD
b3JlOjpRdW90ZXNEYXRhOjphZGRMZXZlbCk6CisgICAgICAgIChXZWJDb3JlOjpRdW90ZXNEYXRh
OjpvcGVuUXVvdGUpOgorICAgICAgICAoV2ViQ29yZTo6UXVvdGVzRGF0YTo6Y2xvc2VRdW90ZSk6
CisgICAgICAgIChXZWJDb3JlOjpRdW90ZXNEYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RGF0YTo6KToKKyAgICAgICAgKFdlYkNvcmU6OlF1b3Rlc0RhdGE6OlF1
b3Rlc0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UXVvdGVzRGF0YTo6b3BlcmF0b3IhPSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6cXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpzZXRRdW90ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6
OnF1b3Rlc0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmluaXRpYWxRdW90
ZXMpOgorCiAyMDA4LTA0LTA1ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMzE2
NjcpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC01MDcsNiArNTA3
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL01lZGlhUXVlcnkuY3BwIFwKICAgICBjc3MvTWVk
aWFRdWVyeUV2YWx1YXRvci5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCisgICAg
Y3NzL1F1b3Rlc1ZhbHVlLmNwcCBcCiAgICAgY3NzL1NoYWRvd1ZhbHVlLmNwcCBcCiAgICAgY3Nz
L1N0eWxlQmFzZS5jcHAgXAogICAgIGNzcy9TdHlsZUxpc3QuY3BwIFwKQEAgLTg3NSw2ICs4NzYs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydE9iamVj
dC5jcHAgXAorICAgIHJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAogICAgIHJlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIFwKICAg
ICByZW5kZXJpbmcvUmVuZGVyU3R5bGUuY3BwIFwKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24g
MzE2NjcpCisrKyBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVy
eUV4cC5oIgogI2luY2x1ZGUgIlBhaXIuaCIKKyNpbmNsdWRlICJRdW90ZXNWYWx1ZS5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1ZhbHVlLmgiCiAjaW5jbHVkZSA8a2pzL2R0b2EuaD4KIApAQCAtNTY2LDcg
KzU2Nyw2IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAg
ICAgICovCiAKICAgICBjYXNlIENTU1Byb3BlcnR5U2l6ZTogICAgICAgICAgICAgICAgIC8vIDxs
ZW5ndGg+ezEsMn0gfCBhdXRvIHwgcG9ydHJhaXQgfCBsYW5kc2NhcGUgfCBpbmhlcml0Ci0gICAg
Y2FzZSBDU1NQcm9wZXJ0eVF1b3RlczogICAgICAgICAgICAgICAvLyBbPHN0cmluZz4gPHN0cmlu
Zz5dKyB8IG5vbmUgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCkKICAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOwpAQCAtMTAzNSw2ICsxMDM1LDExIEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAgICAgICAgIHJl
dHVybiBwYXJzZUNvdW50ZXIocHJvcElkLCAwLCBpbXBvcnRhbnQpOwogICAgICAgICB2YWxpZF9w
cmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5UXVv
dGVzOiAgICAgICAgICAgICAgIC8vIFs8c3RyaW5nPiA8c3RyaW5nPl0rIHwgbm9uZSB8IGluaGVy
aXQKKyAgICAgICAgaWYgKGlkICE9IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAgIHJldHVybiBw
YXJzZVF1b3Rlcyhwcm9wSWQsIGltcG9ydGFudCk7CisgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
IHRydWU7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250RmFtaWx5Ogog
ICAgICAgICAvLyBbWyA8ZmFtaWx5LW5hbWU+IHwgPGdlbmVyaWMtZmFtaWx5PiBdLF0qIFs8ZmFt
aWx5LW5hbWU+IHwgPGdlbmVyaWMtZmFtaWx5Pl0gfCBpbmhlcml0CiAgICAgewpAQCAtMTg4MCwx
MSArMTg4NSwxMSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDb250ZW50KGludCBwcm9wSWQsCiAg
ICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0gZWxzZSBpZiAodmFsLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpIHsK
LSAgICAgICAgICAgIC8vIG9wZW4tcXVvdGUKLSAgICAgICAgICAgIC8vIGNsb3NlLXF1b3RlCi0g
ICAgICAgICAgICAvLyBuby1vcGVuLXF1b3RlCi0gICAgICAgICAgICAvLyBuby1jbG9zZS1xdW90
ZQotICAgICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBub3QgeWV0IGltcGxlbWVudGVkICho
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTAzKS4KKyAgICAgICAgICAg
IC8vIG9wZW4tcXVvdGUgfCBjbG9zZS1xdW90ZSB8IG5vLW9wZW4tcXVvdGUgfCBuby1jbG9zZS1x
dW90ZQorICAgICAgICAgICAgaWYgKHZhbC0+aWQgPT0gQ1NTVmFsdWVPcGVuUXVvdGUgfHwgdmFs
LT5pZCA9PSBDU1NWYWx1ZUNsb3NlUXVvdGUgfHwKKyAgICAgICAgICAgICAgICB2YWwtPmlkID09
IENTU1ZhbHVlTm9PcGVuUXVvdGUgfHwgdmFsLT5pZCA9PSBDU1NWYWx1ZU5vQ2xvc2VRdW90ZSkg
eworICAgICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHZh
bC0+aWQpOworICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKHZhbC0+dW5pdCA9PSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykgewogICAgICAgICAgICAgcGFyc2VkVmFsdWUg
PSBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUodmFsLT5zdHJpbmcsIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfU1RSSU5HKTsKICAgICAgICAgfQpAQCAtMTkwMyw2ICsxOTA4LDM3IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUNvbnRlbnQoaW50IHByb3BJZCwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKy8v
IFs8c3RyaW5nPiA8c3RyaW5nPl0rIHwgaW5oZXJpdAorYm9vbCBDU1NQYXJzZXI6OnBhcnNlUXVv
dGVzKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQoreworICAgIFJlZlB0cjxDU1NWYWx1ZUxp
c3Q+IHZhbHVlcyA9IG5ldyBDU1NWYWx1ZUxpc3QodHJ1ZSk7CisKKyAgICBWYWx1ZSogdmFsdWUx
ID0gMDsKKyAgICBWYWx1ZSogdmFsdWUyID0gMDsKKyAgICB3aGlsZSAodmFsdWUxID0gdmFsdWVM
aXN0LT5jdXJyZW50KCkpIHsKKyAgICAgICAgaWYgKHZhbHVlMS0+dW5pdCA9PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1NUUklORykgeworICAgICAgICAgICAgdmFsdWUyID0gdmFsdWVMaXN0LT5u
ZXh0KCk7CisgICAgICAgICAgICBpZiAodmFsdWUyICYmIHZhbHVlMi0+dW5pdCA9PSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1NUUklORykgeworICAgICAgICAgICAgICAgIHZhbHVlcy0+YXBwZW5k
KG5ldyBRdW90ZXNWYWx1ZSh2YWx1ZTEtPnN0cmluZywgdmFsdWUyLT5zdHJpbmcpKTsKKyAgICAg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHZhbHVlMiA9IDA7CisgICAgICAgIHZhbHVlTGlz
dC0+bmV4dCgpOworICAgIH0KKworICAgIGlmICh2YWx1ZXMtPmxlbmd0aCgpKSB7CisgICAgICAg
IGFkZFByb3BlcnR5KHByb3BJZCwgdmFsdWVzLnJlbGVhc2UoKSwgaW1wb3J0YW50KTsKKyAgICAg
ICAgaWYgKHZhbHVlMikKKyAgICAgICAgICAgIHZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VCYWNrZ3JvdW5kQ29sb3IoKQogewogICAgIGludCBp
ZCA9IHZhbHVlTGlzdC0+Y3VycmVudCgpLT5pZDsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1BhcnNl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5oCShyZXZpc2lvbiAzMTY2
NykKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNiAr
MTU0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHBhcnNlQ291bnRlcihp
bnQgcHJvcElkLCBpbnQgZGVmYXVsdFZhbHVlLCBib29sIGltcG9ydGFudCk7CiAgICAgICAgIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQ291bnRlckNvbnRlbnQoVmFsdWVMaXN0KiBhcmdzLCBi
b29sIGNvdW50ZXJzKTsKIAorICAgICAgICBib29sIHBhcnNlUXVvdGVzKGludCBwcm9wSWQsIGJv
b2wgaW1wb3J0YW50KTsKKwogICAgICAgICBib29sIHBhcnNlQ29sb3JQYXJhbWV0ZXJzKFZhbHVl
KiwgaW50KiBjb2xvclZhbHVlcywgYm9vbCBwYXJzZUFscGhhKTsKICAgICAgICAgYm9vbCBwYXJz
ZUhTTFBhcmFtZXRlcnMoVmFsdWUqLCBkb3VibGUqIGNvbG9yVmFsdWVzLCBib29sIHBhcnNlQWxw
aGEpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwYXJzZUNvbG9yKFZh
bHVlKiA9IDApOwpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDMxNjY3
KQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgi
CiAjaW5jbHVkZSAiUGFpci5oIgorI2luY2x1ZGUgIlF1b3Rlc1ZhbHVlLmgiCiAjaW5jbHVkZSAi
UmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29u
dHJvbGxlci5oIgpAQCAtMzQwNyw2ICszNDA4LDI3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgICAgICAgICAgICAgIChFTGlzdFN0eWxlVHlw
ZSljb3VudGVyVmFsdWUtPmxpc3RTdHlsZU51bWJlcigpLCBjb3VudGVyVmFsdWUtPnNlcGFyYXRv
cigpKTsKICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChjb3VudGVyLCBk
aWRTZXQpOwogICAgICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UOiB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRj
aCAodmFsLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENTU1Zh
bHVlT3BlblF1b3RlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENv
bnRlbnQoT1BFTl9RVU9URSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVDbG9zZVF1b3RlOgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoQ0xPU0VfUVVP
VEUsIGRpZFNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTm9PcGVuUXVvdGU6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChOT19PUEVOX1FVT1RFLCBkaWRTZXQp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZU5vQ2xvc2VRdW90ZToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3N0eWxlLT5zZXRDb250ZW50KE5PX0NMT1NFX1FVT1RFLCBkaWRTZXQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVl
OworICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTM0MjIsNiArMzQ0NCwyNiBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgIGFwcGx5Q291bnRlckxpc3QobV9zdHls
ZSwgdmFsdWUtPmlzVmFsdWVMaXN0KCkgPyBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1
ZSkgOiAwLCB0cnVlKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBDU1NQcm9wZXJ0eVF1
b3RlczoKKyAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwocXVvdGVzLCBRdW90ZXMp
OworICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVOb25lKSB7CisgICAgICAgICAgICBtX3N0eWxlLT5zZXRRdW90ZXMoMCk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgp
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgQ1NTVmFsdWVMaXN0ICps
aXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworICAgICAgICAgICAgaW50
IGxlbiA9IGxpc3QtPmxlbmd0aCgpOworICAgICAgICAgICAgUXVvdGVzRGF0YSAqcXVvdGVzID0g
bmV3IFF1b3Rlc0RhdGE7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsr
KSB7CisgICAgICAgICAgICAgICAgQ1NTVmFsdWUgKml0ZW0gPSBsaXN0LT5pdGVtKGkpOworICAg
ICAgICAgICAgICAgIFF1b3Rlc1ZhbHVlICp2YWwgPSBzdGF0aWNfY2FzdDxRdW90ZXNWYWx1ZSo+
KGl0ZW0pOworICAgICAgICAgICAgICAgIHF1b3Rlcy0+YWRkTGV2ZWwodmFsLT5tX29wZW5RdW90
ZSwgdmFsLT5tX2Nsb3NlUXVvdGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9zdHls
ZS0+c2V0UXVvdGVzKHF1b3Rlcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHk6IHsKICAgICAgICAgLy8gbGlzdCBvZiBzdHJpbmdz
IGFuZCBpZHMKICAgICAgICAgaWYgKGlzSW5oZXJpdCkgewpAQCAtNDUzOCw3ICs0NTgwLDYgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICByZXR1cm47
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHJldGNoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWdlOgotICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNj
cm9sbGJhcjNkbGlnaHRDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsYmFyQXJyb3dD
b2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5U2Nyb2xsYmFyRGFya3NoYWRvd0NvbG9yOgpJbmRl
eDogV2ViQ29yZS9jc3MvUXVvdGVzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L1F1b3Rlc1ZhbHVlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvY3NzL1F1b3Rlc1ZhbHVl
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBWaW5jZW50IFJpY2FyZCAobWFnaWNAbWFnaWNuaW5qYS5vcmcpCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUXVvdGVzVmFsdWUuaCIKKworI2luY2x1ZGUgIkNTU1ByaW1p
dGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitRdW90ZXNWYWx1ZTo6UXVvdGVzVmFsdWUoY29uc3QgU3RyaW5nJiBvcGVuUXVv
dGUsCisgICAgY29uc3QgU3RyaW5nJiBjbG9zZVF1b3RlKQorICAgIDogbV9vcGVuUXVvdGUob3Bl
blF1b3RlKQorICAgICwgbV9jbG9zZVF1b3RlKGNsb3NlUXVvdGUpCit7Cit9CisKKy8vIEZJWE1F
OiB3ZSBzaG91bGQgdXNlIHRoZSB2ZXJzaW9uIHByZXNlbnQgaW4gd2l0aCBDU1NQcmltaXRpdmVW
YWx1ZS5jcHAKK3N0YXRpYyBTdHJpbmcgcXVvdGVTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcp
Cit7CisgICAgU3RyaW5nIHF1b3RlZFN0cmluZyA9IHN0cmluZzsKKyAgICBxdW90ZWRTdHJpbmcu
cmVwbGFjZSgnXFwnLCAiXFxcXCIpOworICAgIHF1b3RlZFN0cmluZy5yZXBsYWNlKCdcJycsICJc
XCciKTsKKyAgICByZXR1cm4gIiciICsgcXVvdGVkU3RyaW5nICsgIiciOworfQorCitTdHJpbmcg
UXVvdGVzVmFsdWU6OmNzc1RleHQoKSBjb25zdAoreworICAgIFN0cmluZyByZXN1bHQoIiIpOwor
CisgICAgcmVzdWx0ICs9IHF1b3RlU3RyaW5nKG1fb3BlblF1b3RlKTsKKyAgICByZXN1bHQgKz0g
IiAiOworICAgIHJlc3VsdCArPSBxdW90ZVN0cmluZyhtX2Nsb3NlUXVvdGUpOworCisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworfQpJbmRleDogV2ViQ29yZS9jc3MvUXVvdGVzVmFsdWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9RdW90ZXNWYWx1ZS5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9jc3MvUXVvdGVzVmFsdWUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBWaW5jZW50IFJpY2FyZCAobWFnaWNAbWFnaWNuaW5qYS5v
cmcpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworCisjaWZuZGVmIFF1b3Rlc1ZhbHVlX2gKKyNkZWZpbmUgUXVvdGVzVmFsdWVfaAorCisj
aW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0cmluZzsKKworY2xhc3MgUXVvdGVzVmFsdWUgOiBw
dWJsaWMgQ1NTVmFsdWUKK3sKK3B1YmxpYzoKKyAgICBRdW90ZXNWYWx1ZShjb25zdCBTdHJpbmcm
IG9wZW5RdW90ZSwgY29uc3QgU3RyaW5nJiBjbG9zZVF1b3RlKTsKKworICAgIHZpcnR1YWwgU3Ry
aW5nIGNzc1RleHQoKSBjb25zdDsKKworICAgIFN0cmluZyBtX29wZW5RdW90ZTsKKyAgICBTdHJp
bmcgbV9jbG9zZVF1b3RlOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCkluZGV4OiBX
ZWJDb3JlL2Nzcy9odG1sNC5jc3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvaHRtbDQuY3Nz
CShyZXZpc2lvbiAzMTY2NykKKysrIFdlYkNvcmUvY3NzL2h0bWw0LmNzcwkod29ya2luZyBjb3B5
KQpAQCAtODcsMTcgKzg3LDE2IEBAIGJsb2NrcXVvdGUgewogfQogCiBxIHsKLSAgICBkaXNwbGF5
OiBpbmxpbmUKKyAgICBkaXNwbGF5OiBpbmxpbmU7CisgICAgcXVvdGVzOiAnXDIwMUMnICdcMjAx
RCcgJ1wyMDE4JyAnXDIwMTknCiB9CiAKIHE6YmVmb3JlIHsKLSAgICBjb250ZW50OiAnIicKLSAg
ICAvKiBGSVhNRTogY29udGVudDogb3Blbi1xdW90ZTsgKi8KKyAgICBjb250ZW50OiBvcGVuLXF1
b3RlCiB9CiAKIHE6YWZ0ZXIgewotICAgIGNvbnRlbnQ6ICciJwotICAgIC8qIEZJWE1FOiBjb250
ZW50OiBjbG9zZS1xdW90ZTsgKi8KKyAgICBjb250ZW50OiBjbG9zZS1xdW90ZQogfQogCiBjZW50
ZXIgewpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuY3BwCShyZXZpc2lvbiAz
MTY2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1
ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKKyNpbmNsdWRl
ICJSZW5kZXJRdW90ZS5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVGV4dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMzUyLDYgKzM1
MywxMCBAQCB2b2lkIFJlbmRlckNvbnRhaW5lcjo6dXBkYXRlQmVmb3JlQWZ0ZXJDCiAgICAgICAg
ICAgICAgICAgcmVuZGVyZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckNvdW50ZXIoZG9j
dW1lbnQoKSwgKmNvbnRlbnQtPm1fY29udGVudC5tX2NvdW50ZXIpOwogICAgICAgICAgICAgICAg
IHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50U3R5bGUpOwogICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICAgICAgICAg
IHJlbmRlcmVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJRdW90ZShkb2N1bWVudCgpLCBj
b250ZW50LT5tX2NvbnRlbnQubV9xdW90ZSk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNl
dFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAocmVuZGVyZXIpIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCShyZXZpc2lvbiAzMTY2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsNiArMjY2LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0xpc3RJdGVtKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNMaXN0TWFya2VyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
UmVuZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
QlIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlQ2Vs
bCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJRdW90ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUu
Y3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBW
aW5jZW50IFJpY2FyZCAobWFnaWNAbWFnaWNuaW5qYS5vcmcpCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVuZGVyUXVvdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitS
ZW5kZXJRdW90ZTo6UmVuZGVyUXVvdGUoRG9jdW1lbnQqIG5vZGUsIFF1b3RlQ29udGVudCBxdW90
ZSkKKyAgICA6IFJlbmRlclRleHQobm9kZSwgU3RyaW5nSW1wbDo6ZW1wdHkoKSkKKyAgICAsIG1f
cXVvdGUocXVvdGUpCisgICAgLCBtX25lZWRzQ29tcHV0ZUxldmVsKHRydWUpCisgICAgLCBtX2xl
dmVsKDApCit7Cit9CisKK2NvbnN0IGNoYXIqIFJlbmRlclF1b3RlOjpyZW5kZXJOYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIlJlbmRlclF1b3RlIjsKK30KKworYm9vbCBSZW5kZXJRdW90ZTo6
aXNRdW90ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUmVuZGVyUXVv
dGU6OmNvbXB1dGVMZXZlbCgpIGNvbnN0Cit7CisgICAgaW50IGxldmVsID0gMDsKKworICAgIGNv
bnN0IFJlbmRlck9iamVjdCogcHJldmlvdXNPYmplY3QgPSB0aGlzOworICAgIHdoaWxlICgocHJl
dmlvdXNPYmplY3QgPSBwcmV2aW91c09iamVjdC0+cHJldmlvdXNJblByZU9yZGVyKCkpKSB7Cisg
ICAgICAgIGlmIChwcmV2aW91c09iamVjdC0+aXNRdW90ZSgpKSB7CisgICAgICAgICAgICBjb25z
dCBSZW5kZXJRdW90ZSogcHJldmlvdXNRdW90ZSA9IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlclF1
b3RlKj4ocHJldmlvdXNPYmplY3QpOworICAgICAgICAgICAgc3dpdGNoIChwcmV2aW91c1F1b3Rl
LT5tX3F1b3RlKSB7CisgICAgICAgICAgICBjYXNlIE9QRU5fUVVPVEU6CisgICAgICAgICAgICBj
YXNlIE5PX09QRU5fUVVPVEU6CisgICAgICAgICAgICAgICAgKytsZXZlbDsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0xPU0VfUVVPVEU6CisgICAgICAgICAgICBj
YXNlIE5PX0NMT1NFX1FVT1RFOgorICAgICAgICAgICAgICAgIC0tbGV2ZWw7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJ
ZiB3ZSBhcmUgYSAnY2xvc2UtcXVvdGUnLCB3ZSBoYXZlIHRvIGRlY3JlbWVudCB0aGUgbGV2ZWwK
KyAgICBpZiAobV9xdW90ZSA9PSBDTE9TRV9RVU9URSB8fCBtX3F1b3RlID09IE5PX0NMT1NFX1FV
T1RFKSB7CisgICAgICAgIC0tbGV2ZWw7CisgICAgfQorCisgICAgbV9sZXZlbCA9IGxldmVsOwor
ICAgIG1fbmVlZHNDb21wdXRlTGV2ZWwgPSBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPiBSZW5kZXJRdW90ZTo6b3JpZ2luYWxUZXh0KCkgY29uc3QKK3sKKyAgICBTdHJpbmcgcXVv
dGUoIiIpOworCisgICAgaWYgKCFwYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIHF1b3RlLmltcGwo
KTsKKworICAgIGlmICghbV9xdW90ZSkKKyAgICAgICAgcmV0dXJuIHF1b3RlLmltcGwoKTsKKwor
ICAgIC8vIENvbXB1dGUgbGV2ZWwKKyAgICBpZiAobV9uZWVkc0NvbXB1dGVMZXZlbCkKKyAgICAg
ICAgY29tcHV0ZUxldmVsKCk7CisKKyAgICAvLyBXZSBuZWVkIHRoZSBsZXZlbCB0byBjaGVjayB0
aGUgdmlzaWJpbGl0eSBvZiB0aGUgcXVvdGUKKyAgICBpZiAoIWlzVmlzaWJsZSgpKQorICAgICAg
ICByZXR1cm4gcXVvdGUuaW1wbCgpOworCisgICAgUXVvdGVzRGF0YSAqcXVvdGVzID0gc3R5bGUo
KS0+cXVvdGVzKCk7CisgICAgaWYgKHF1b3RlcykgeworICAgICAgICBpZiAobV9xdW90ZSA9PSBP
UEVOX1FVT1RFKQorICAgICAgICAgICAgcXVvdGUgKz0gcXVvdGVzLT5vcGVuUXVvdGUobV9sZXZl
bCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHF1b3RlICs9IHF1b3Rlcy0+Y2xvc2VRdW90
ZShtX2xldmVsKTsKKyAgICB9CisgICAgLy8gZWxzZSB3ZSBoYXZlICJxdW90ZXM6IG5vbmU7Iiwg
c28gd2UgTVVTVCBOT1QgcHJvZHVjZSBxdW90YXRpb24gbWFyaworCisgICAgcmV0dXJuIHF1b3Rl
LmltcGwoKTsKK30KKwordm9pZCBSZW5kZXJRdW90ZTo6ZGlydHlMaW5lQm94ZXMoYm9vbCBmdWxs
TGF5b3V0LCBib29sIGR1bW15KQoreworICAgIGlmIChwcmVmV2lkdGhzRGlydHkoKSkKKyAgICAg
ICAgY2FsY1ByZWZXaWR0aHMoMCk7CisgICAgUmVuZGVyVGV4dDo6ZGlydHlMaW5lQm94ZXMoZnVs
bExheW91dCwgZHVtbXkpOworfQorCit2b2lkIFJlbmRlclF1b3RlOjpjYWxjUHJlZldpZHRocyhp
bnQgbGVhZCkKK3sKKyAgICBzZXRUZXh0SW50ZXJuYWwob3JpZ2luYWxUZXh0KCkpOworICAgIFJl
bmRlclRleHQ6OmNhbGNQcmVmV2lkdGhzKGxlYWQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA4IFZpbmNlbnQgUmljYXJkIChtYWdpY0BtYWdpY25pbmph
Lm9yZykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisKKyNpZm5kZWYgUmVuZGVyUXVvdGVfaAorI2RlZmluZSBSZW5kZXJRdW90ZV9oCisK
KyNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UmVuZGVyUXVvdGUgOiBwdWJsaWMgUmVuZGVyVGV4dCB7CitwdWJsaWM6CisgICAgUmVuZGVyUXVv
dGUoRG9jdW1lbnQqLCBRdW90ZUNvbnRlbnQpOworCisgICAgdmlydHVhbCBjb25zdCBjaGFyKiBy
ZW5kZXJOYW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxUZXh0KCkgY29uc3Q7CisK
KyAgICB2aXJ0dWFsIHZvaWQgZGlydHlMaW5lQm94ZXMoYm9vbCwgYm9vbCk7CisgICAgdmlydHVh
bCB2b2lkIGNhbGNQcmVmV2lkdGhzKGludCBsZWFkV2lkdGgpOworCitwcml2YXRlOgorICAgIGJv
b2wgaXNWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gKG1fcXVvdGUgPT0gT1BFTl9RVU9URSB8fCBt
X3F1b3RlID09IENMT1NFX1FVT1RFKSAmJiAwIDw9IG1fbGV2ZWw7IH0KKyAgICB2b2lkIGNvbXB1
dGVMZXZlbCgpIGNvbnN0OworCisgICAgUXVvdGVDb250ZW50IG1fcXVvdGU7CisgICAgbXV0YWJs
ZSBib29sIG1fbmVlZHNDb21wdXRlTGV2ZWw7CisgICAgbXV0YWJsZSBpbnQgbV9sZXZlbDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclF1b3RlX2gKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDMxNjY3KQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NzksNiArNzc5
LDcgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdAogICAgICwgdGV4
dFNpemVBZGp1c3QoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0U2l6ZUFkanVzdCgpKQogICAgICwg
cmVzaXplKFJlbmRlclN0eWxlOjppbml0aWFsUmVzaXplKCkpCiAgICAgLCB1c2VyU2VsZWN0KFJl
bmRlclN0eWxlOjppbml0aWFsVXNlclNlbGVjdCgpKQorICAgICwgbV9xdW90ZXMoUmVuZGVyU3R5
bGU6OmluaXRpYWxRdW90ZXMoKSkKIHsKIH0KIApAQCAtNzk4LDEyICs3OTksMTQgQEAgU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdAogICAgICwgdGV4dFNpemVBZGp1c3Qo
by50ZXh0U2l6ZUFkanVzdCkKICAgICAsIHJlc2l6ZShvLnJlc2l6ZSkKICAgICAsIHVzZXJTZWxl
Y3Qoby51c2VyU2VsZWN0KQorICAgICwgbV9xdW90ZXMoby5tX3F1b3RlcyA/IG5ldyBRdW90ZXNE
YXRhKCpvLm1fcXVvdGVzKSA6IFJlbmRlclN0eWxlOjppbml0aWFsUXVvdGVzKCkpCiB7CiB9CiAK
IFN0eWxlUmFyZUluaGVyaXRlZERhdGE6On5TdHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKIHsKICAg
ICBkZWxldGUgdGV4dFNoYWRvdzsKKyAgICBkZWxldGUgbV9xdW90ZXM7CiB9CiAKIGJvb2wgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhJiBvKSBjb25zdApAQCAtODIwLDcgKzgyMyw4IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YTo6b3BlcmF0b3I9PSgKICAgICAgICAgJiYgbmJzcE1vZGUgPT0gby5uYnNwTW9kZQogICAg
ICAgICAmJiBraHRtbExpbmVCcmVhayA9PSBvLmtodG1sTGluZUJyZWFrCiAgICAgICAgICYmIHRl
eHRTaXplQWRqdXN0ID09IG8udGV4dFNpemVBZGp1c3QKLSAgICAgICAgJiYgdXNlclNlbGVjdCA9
PSBvLnVzZXJTZWxlY3Q7CisgICAgICAgICYmIHVzZXJTZWxlY3QgPT0gby51c2VyU2VsZWN0Cisg
ICAgICAgICYmIHF1b3Rlc0RhdGFFcXVpdmFsZW50KG8pOwogfQogCiBib29sIFN0eWxlUmFyZUlu
aGVyaXRlZERhdGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRl
ZERhdGEmIG8pIGNvbnN0CkBAIC04MzIsNiArODM2LDE1IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6c2hhZG93RGF0YUUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhOjpxdW90ZXNEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhl
cml0ZWREYXRhJiBvKSBjb25zdAoreworICAgIGlmICghbV9xdW90ZXMgJiYgby5tX3F1b3RlcyB8
fCBtX3F1b3RlcyAmJiAhby5tX3F1b3RlcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChtX3F1b3RlcyAmJiBvLm1fcXVvdGVzICYmICgqbV9xdW90ZXMgIT0gKm8ubV9xdW90ZXMpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFN0eWxlSW5oZXJp
dGVkRGF0YTo6U3R5bGVJbmhlcml0ZWREYXRhKCkKICAgICA6IGluZGVudChSZW5kZXJTdHlsZTo6
aW5pdGlhbFRleHRJbmRlbnQoKSkKICAgICAsIGxpbmVfaGVpZ2h0KFJlbmRlclN0eWxlOjppbml0
aWFsTGluZUhlaWdodCgpKQpAQCAtMTM5NCw2ICsxNDA3LDEwIEBAIGJvb2wgUmVuZGVyU3R5bGU6
OmNvbnRlbnREYXRhRXF1aXZhbGVudCgKICAgICAgICAgICAgICAgICBpZiAoKmMxLT5tX2NvbnRl
bnQubV9jb3VudGVyICE9ICpjMi0+bV9jb250ZW50Lm1fY291bnRlcikKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICAgICAgICAgIGlmIChjMS0+bV9jb250ZW50Lm1f
cXVvdGUgIT0gYzItPm1fY29udGVudC5tX3F1b3RlKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICBj
MSA9IGMxLT5tX25leHQ7CkBAIC0xNTA0LDYgKzE1MjEsMzMgQEAgdm9pZCBSZW5kZXJTdHlsZTo6
c2V0Q29udGVudChDb3VudGVyQ29udAogICAgIG5ld0NvbnRlbnREYXRhLT5tX3R5cGUgPSBDT05U
RU5UX0NPVU5URVI7CiB9CiAKK3ZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoUXVvdGVDb250
ZW50IHEsIGJvb2wgYWRkKQoreworICAgIGlmICghcSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Q29udGVudERhdGEqJiBjb250ZW50ID0gcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1f
Y29udGVudDsKKyAgICBDb250ZW50RGF0YSogbGFzdENvbnRlbnQgPSBjb250ZW50OworICAgIHdo
aWxlIChsYXN0Q29udGVudCAmJiBsYXN0Q29udGVudC0+bV9uZXh0KQorICAgICAgICBsYXN0Q29u
dGVudCA9IGxhc3RDb250ZW50LT5tX25leHQ7CisKKyAgICBib29sIHJldXNlQ29udGVudCA9ICFh
ZGQ7CisgICAgQ29udGVudERhdGEqIG5ld0NvbnRlbnREYXRhID0gMDsKKyAgICBpZiAocmV1c2VD
b250ZW50ICYmIGNvbnRlbnQpIHsKKyAgICAgICAgY29udGVudC0+Y2xlYXIoKTsKKyAgICAgICAg
bmV3Q29udGVudERhdGEgPSBjb250ZW50OworICAgIH0gZWxzZQorICAgICAgICBuZXdDb250ZW50
RGF0YSA9IG5ldyBDb250ZW50RGF0YTsKKworICAgIGlmIChsYXN0Q29udGVudCAmJiAhcmV1c2VD
b250ZW50KQorICAgICAgICBsYXN0Q29udGVudC0+bV9uZXh0ID0gbmV3Q29udGVudERhdGE7Cisg
ICAgZWxzZQorICAgICAgICBjb250ZW50ID0gbmV3Q29udGVudERhdGE7CisKKyAgICBuZXdDb250
ZW50RGF0YS0+bV9jb250ZW50Lm1fcXVvdGUgPSBxOworICAgIG5ld0NvbnRlbnREYXRhLT5tX3R5
cGUgPSBDT05URU5UX1FVT1RFOworfQorCiB2b2lkIENvbnRlbnREYXRhOjpjbGVhcigpCiB7CiAg
ICAgc3dpdGNoIChtX3R5cGUpIHsKQEAgLTE1MTYsNiArMTU2MCw5IEBAIHZvaWQgQ29udGVudERh
dGE6OmNsZWFyKCkKICAgICAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CiAgICAgICAgICAgICBk
ZWxldGUgbV9jb250ZW50Lm1fY291bnRlcjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENPTlRFTlRfUVVPVEU6CisgICAgICAgICAgICBtX2NvbnRlbnQubV9xdW90ZSA9IFFVT1RF
X05PTkU7CisgICAgICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBDb250ZW50RGF0YSogbiA9
IG1fbmV4dDsKQEAgLTE2ODIsNiArMTcyOSwzOSBAQCBDb3VudGVyRGlyZWN0aXZlTWFwJiBSZW5k
ZXJTdHlsZTo6YWNjZXNzCiAgICAgcmV0dXJuICptYXA7CiB9CiAKK3ZvaWQgUXVvdGVzRGF0YTo6
YWRkTGV2ZWwoY29uc3QgQXRvbWljU3RyaW5nICZvcGVuLCBjb25zdCBBdG9taWNTdHJpbmcgJmNs
b3NlKQoreworICAgIG1fb3BlblF1b3Rlcy5hcHBlbmQob3Blbik7CisgICAgbV9jbG9zZVF1b3Rl
cy5hcHBlbmQoY2xvc2UpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcgUXVvdGVzRGF0YTo6b3Bl
blF1b3RlKGludCBsZXZlbCkgY29uc3QKK3sKKyAgICBpZiAobV9vcGVuUXVvdGVzLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuICIiOworCisgICAgaWYgKG1fb3BlblF1b3Rlcy5zaXplKCkgPD0g
bGV2ZWwpCisgICAgICAgIGxldmVsID0gbV9vcGVuUXVvdGVzLnNpemUoKSAtIDE7CisKKyAgICBy
ZXR1cm4gbV9vcGVuUXVvdGVzLmF0KGxldmVsKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nIFF1
b3Rlc0RhdGE6OmNsb3NlUXVvdGUoaW50IGxldmVsKSBjb25zdAoreworICAgIGlmIChtX2Nsb3Nl
UXVvdGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICIiOworCisgICAgaWYgKG1fY2xvc2VR
dW90ZXMuc2l6ZSgpIDw9IGxldmVsKQorICAgICAgICBsZXZlbCA9IG1fY2xvc2VRdW90ZXMuc2l6
ZSgpIC0gMTsKKworICAgIHJldHVybiBtX2Nsb3NlUXVvdGVzLmF0KGxldmVsKTsKK30KKworYm9v
bCBRdW90ZXNEYXRhOjpvcGVyYXRvcj09KGNvbnN0IFF1b3Rlc0RhdGEmIG8pIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fb3BlblF1b3RlcyA9PSBvLm1fb3BlblF1b3RlcyAmJiBtX2Nsb3NlUXVvdGVz
ID09IG8ubV9jbG9zZVF1b3RlczsKK30KKwogY29uc3QgVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVn
aW9uPiYgUmVuZGVyU3R5bGU6OmluaXRpYWxEYXNoYm9hcmRSZWdpb25zKCkKIHsgCiAgICAgc3Rh
dGljIFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4gZW1wdHlMaXN0OwpJbmRleDogV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiAzMTY2NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMzksNyArMTAzOSwxMSBAQCBwcml2YXRl
OgogfTsKIAogZW51bSBDb250ZW50VHlwZSB7Ci0gICAgQ09OVEVOVF9OT05FLCBDT05URU5UX09C
SkVDVCwgQ09OVEVOVF9URVhULCBDT05URU5UX0NPVU5URVIKKyAgICBDT05URU5UX05PTkUsIENP
TlRFTlRfT0JKRUNULCBDT05URU5UX1RFWFQsIENPTlRFTlRfQ09VTlRFUiwgQ09OVEVOVF9RVU9U
RQorfTsKKworZW51bSBRdW90ZUNvbnRlbnQgeworICAgIFFVT1RFX05PTkUsIE9QRU5fUVVPVEUs
IENMT1NFX1FVT1RFLCBOT19PUEVOX1FVT1RFLCBOT19DTE9TRV9RVU9URQogfTsKIAogc3RydWN0
IENvbnRlbnREYXRhIDogTm9uY29weWFibGUgewpAQCAtMTA1MywxMCArMTA1NywzMSBAQCBzdHJ1
Y3QgQ29udGVudERhdGEgOiBOb25jb3B5YWJsZSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlKiBt
X29iamVjdDsKICAgICAgICAgU3RyaW5nSW1wbCogbV90ZXh0OwogICAgICAgICBDb3VudGVyQ29u
dGVudCogbV9jb3VudGVyOworICAgICAgICBRdW90ZUNvbnRlbnQgbV9xdW90ZTsKICAgICB9IG1f
Y29udGVudDsKICAgICBDb250ZW50RGF0YSogbV9uZXh0OwogfTsKIAorY2xhc3MgUXVvdGVzRGF0
YSB7CitwdWJsaWM6CisgICAgUXVvdGVzRGF0YSgpIHsgfQorICAgIFF1b3Rlc0RhdGEoY29uc3Qg
UXVvdGVzRGF0YSYgbykKKyAgICAgICAgOiBtX29wZW5RdW90ZXMoby5tX29wZW5RdW90ZXMpLCBt
X2Nsb3NlUXVvdGVzKG8ubV9jbG9zZVF1b3RlcykgeyB9CisKKyAgICB2b2lkIGFkZExldmVsKGNv
bnN0IEF0b21pY1N0cmluZyAmb3BlbiwgY29uc3QgQXRvbWljU3RyaW5nICZjbG9zZSk7CisgICAg
Y29uc3QgQXRvbWljU3RyaW5nIG9wZW5RdW90ZShpbnQgbGV2ZWwpIGNvbnN0OworICAgIGNvbnN0
IEF0b21pY1N0cmluZyBjbG9zZVF1b3RlKGludCBsZXZlbCkgY29uc3Q7CisKKyAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgUXVvdGVzRGF0YSYgbykgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IFF1b3Rlc0RhdGEmIG8pIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0g
byk7CisgICAgfQorCitwcml2YXRlOgorICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IG1fb3BlblF1
b3RlczsKKyAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBtX2Nsb3NlUXVvdGVzOworfTsKKwogZW51
bSBFQm9yZGVyRml0IHsgQm9yZGVyRml0Qm9yZGVyLCBCb3JkZXJGaXRMaW5lcyB9OwogCiBlbnVt
IEVUaW1pbmdGdW5jdGlvblR5cGUgeyBMaW5lYXJUaW1pbmdGdW5jdGlvbiwgQ3ViaWNCZXppZXJU
aW1pbmdGdW5jdGlvbiB9OwpAQCAtMTIxNyw2ICsxMjQyLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gISgqdGhpcyA9PSBvKTsKICAgICB9CiAgICAgYm9vbCBzaGFkb3dEYXRhRXF1aXZhbGVu
dChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJikgY29uc3Q7CisgICAgYm9vbCBxdW90ZXNE
YXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJikgY29uc3Q7CiAKICAg
ICBDb2xvciB0ZXh0U3Ryb2tlQ29sb3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoOwpAQCAt
MTIzMyw3ICsxMjU5LDkgQEAgcHVibGljOgogICAgIGJvb2wgdGV4dFNpemVBZGp1c3QgOiAxOyAv
LyBBbiBBcHBsZSBleHRlbnNpb24uCiAgICAgdW5zaWduZWQgcmVzaXplIDogMjsgLy8gRVJlc2l6
ZQogICAgIHVuc2lnbmVkIHVzZXJTZWxlY3QgOiAxOyAgLy8gRVVzZXJTZWxlY3QKLSAgICAKKyAK
KyAgICBRdW90ZXNEYXRhKiBtX3F1b3RlczsgLy8gVGhlIHF1b3RlcyBsaXN0IHVzZWQgYnkgJ2Nv
bnRlbnQ6ICotcXVvdGUnCisKIHByaXZhdGU6CiAgICAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgp
OwogICAgIFN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSYpOwpAQCAtMTc3OCw2ICsxODA2LDcgQEAgcHVibGljOgogICAgIEVFbXB0eUNlbGwgZW1wdHlD
ZWxscygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVFbXB0eUNlbGw+KGluaGVyaXRlZF9m
bGFncy5fZW1wdHlfY2VsbHMpOyB9CiAgICAgRUNhcHRpb25TaWRlIGNhcHRpb25TaWRlKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUNhcHRpb25TaWRlPihpbmhlcml0ZWRfZmxhZ3MuX2Nh
cHRpb25fc2lkZSk7IH0KIAorICAgIFF1b3Rlc0RhdGEqIHF1b3RlcygpIGNvbnN0IHsgcmV0dXJu
IHJhcmVJbmhlcml0ZWREYXRhLT5tX3F1b3RlczsgfQogICAgIHNob3J0IGNvdW50ZXJJbmNyZW1l
bnQoKSBjb25zdCB7IHJldHVybiB2aXN1YWwtPmNvdW50ZXJJbmNyZW1lbnQ7IH0KICAgICBzaG9y
dCBjb3VudGVyUmVzZXQoKSBjb25zdCB7IHJldHVybiB2aXN1YWwtPmNvdW50ZXJSZXNldDsgfQog
CkBAIC0yMDEwLDYgKzIwMzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFbXB0eUNlbGxzKEVF
bXB0eUNlbGwgdikgeyBpbmhlcml0ZWRfZmxhZ3MuX2VtcHR5X2NlbGxzID0gdjsgfQogICAgIHZv
aWQgc2V0Q2FwdGlvblNpZGUoRUNhcHRpb25TaWRlIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl9jYXB0
aW9uX3NpZGUgPSB2OyB9CiAKKyAgICB2b2lkIHNldFF1b3RlcyhRdW90ZXNEYXRhKiB2KSB7IFNF
VF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1fcXVvdGVzLCB2KTsgfQogCiAgICAgdm9pZCBzZXRD
b3VudGVySW5jcmVtZW50KHNob3J0IHYpIHsgIFNFVF9WQVIodmlzdWFsLGNvdW50ZXJJbmNyZW1l
bnQsdikgfQogICAgIHZvaWQgc2V0Q291bnRlclJlc2V0KHNob3J0IHYpIHsgIFNFVF9WQVIodmlz
dWFsLGNvdW50ZXJSZXNldCx2KSB9CkBAIC0yMTMwLDEyICsyMTYwLDE0IEBAIHB1YmxpYzoKICAg
ICBTVkdSZW5kZXJTdHlsZSogYWNjZXNzU1ZHU3R5bGUoKSB7IHJldHVybiBtX3N2Z1N0eWxlLmFj
Y2VzcygpOyB9CiAjZW5kaWYKIAorICAgIGNvbnN0IFF1b3Rlc0RhdGEqIHF1b3Rlc0RhdGEoKSBj
b25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+bV9xdW90ZXM7IH0KICAgICBjb25zdCBD
b250ZW50RGF0YSogY29udGVudERhdGEoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9jb250ZW50OyB9CiAgICAgYm9vbCBjb250ZW50RGF0YUVxdWl2YWxlbnQoY29uc3Qg
UmVuZGVyU3R5bGUqIG90aGVyU3R5bGUpIGNvbnN0OwogICAgIHZvaWQgY2xlYXJDb250ZW50KCk7
CiAgICAgdm9pZCBzZXRDb250ZW50KFN0cmluZ0ltcGwqLCBib29sIGFkZCA9IGZhbHNlKTsKICAg
ICB2b2lkIHNldENvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqLCBib29sIGFkZCA9IGZhbHNlKTsKICAg
ICB2b2lkIHNldENvbnRlbnQoQ291bnRlckNvbnRlbnQqLCBib29sIGFkZCA9IGZhbHNlKTsKKyAg
ICB2b2lkIHNldENvbnRlbnQoUXVvdGVDb250ZW50LCBib29sIGFkZCA9IGZhbHNlKTsKIAogICAg
IGNvbnN0IENvdW50ZXJEaXJlY3RpdmVNYXAqIGNvdW50ZXJEaXJlY3RpdmVzKCkgY29uc3Q7CiAg
ICAgQ291bnRlckRpcmVjdGl2ZU1hcCYgYWNjZXNzQ291bnRlckRpcmVjdGl2ZXMoKTsKQEAgLTIy
ODMsNyArMjMxNSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHJhbnNmb3JtT3BlcmF0
aW9ucyYgaW5pdGlhbFRyYW5zZm9ybSgpIHsgc3RhdGljIFRyYW5zZm9ybU9wZXJhdGlvbnMgb3Bz
OyByZXR1cm4gb3BzOyB9CiAgICAgc3RhdGljIExlbmd0aCBpbml0aWFsVHJhbnNmb3JtT3JpZ2lu
WCgpIHsgcmV0dXJuIExlbmd0aCg1MC4wLCBQZXJjZW50KTsgfQogICAgIHN0YXRpYyBMZW5ndGgg
aW5pdGlhbFRyYW5zZm9ybU9yaWdpblkoKSB7IHJldHVybiBMZW5ndGgoNTAuMCwgUGVyY2VudCk7
IH0KLSAgICAKKyAgICBzdGF0aWMgUXVvdGVzRGF0YSogaW5pdGlhbFF1b3RlcygpIHsgcmV0dXJu
IDA7IH0KKwogICAgIC8vIEtlZXAgdGhlc2UgYXQgdGhlIGVuZC4KICAgICBzdGF0aWMgaW50IGlu
aXRpYWxUcmFuc2l0aW9uRHVyYXRpb24oKSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIGludCBp
bml0aWFsVHJhbnNpdGlvblJlcGVhdENvdW50KCkgeyByZXR1cm4gMTsgfQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMzE2NzApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNiBAQAorMjAwOC0wNC0wNiAgVmluY2VudCBSaWNhcmQgIDxtYWdpY0BtYWdpY25p
bmphLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0Y2FzZXMgZm9yCisgICAgICAgIEJ1ZyA2NTAzOiBjb250ZW50IHByb3BlcnR5IGRvZXNu
J3Qgc3VwcG9ydCBxdW90ZXMKKworICAgICAgICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50
L2Nzcy1xdW90ZXMtMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQt
Y29udGVudC9jc3MtcXVvdGVzLTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Y3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTUuaHRtbDogQWRkZWQuCisK
IDIwMDgtMDQtMDUgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9j
c3MtcXVvdGVzLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5l
cmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMS5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
bG9vc2UuZHRkIj4gCis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk5lc3RlZCBxdW90ZXM8L3RpdGxl
PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKy50ZXN0IHEge3F1b3RlczogIltbWyIgIl1dXSIg
IigoIiAiKSkiICIqLSIgIi0qIjt9CitxOmJlZm9yZSB7Y29udGVudDogb3Blbi1xdW90ZTt9Citx
OmFmdGVyICB7Y29udGVudDogY2xvc2UtcXVvdGU7fQorc3Bhbi5jaXRlOmJlZm9yZSB7Y29udGVu
dDogb3Blbi1xdW90ZTt9CitzcGFuLmNpdGU6YWZ0ZXIgIHtjb250ZW50OiBjbG9zZS1xdW90ZTt9
CisucmVmZXJlbmNlIHtjb2xvcjogZ3JlZW47fQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+
Cis8cD5UZXN0PGJyPgorPHNwYW4gY2xhc3M9InRlc3QiPgorVGhpcyAncCcgZWxlbWVudCBjb250
YWlucyBhIHNldCBvZiBuZXN0ZWQgcXVvdGVzIHdoaWNoIGFyZTogPHE+V2hlbiBJIGFza2VkIGhp
bSBhYm91dCBpdCwgaGUgc2FpZCwgPHNwYW4gY2xhc3M9ImNpdGUiPkkgZG9uJ3QgcmVtZW1iZXIg
YW55b25lIHNheWluZywgPHE+SSBuZWVkIHNvbWUgaGVscCw8L3E+IG9yIGVsc2UgSSB3b3VsZCBo
YXZlIGhlbHBlZC48L3NwYW4+IEkgZGlkbid0IHJlYWxseSBiZWxpZXZlIGhpbSwgYnV0IHdoYXQg
Y291bGQgSSBkbz88L3E+Cis8L3NwYW4+PC9wPgorPHAgY2xhc3M9InJlZmVyZW5jZSI+UmVmZXJl
bmNlPGJyPgorPHNwYW4+CitUaGlzICdwJyBlbGVtZW50IGNvbnRhaW5zIGEgc2V0IG9mIG5lc3Rl
ZCBxdW90ZXMgd2hpY2ggYXJlOiBbW1tXaGVuIEkgYXNrZWQgaGltIGFib3V0IGl0LCBoZSBzYWlk
LCAoKEkgZG9uJ3QgcmVtZW1iZXIgYW55b25lIHNheWluZywgKi1JIG5lZWQgc29tZSBoZWxwLC0q
IG9yIGVsc2UgSSB3b3VsZCBoYXZlIGhlbHBlZC4pKSBJIGRpZG4ndCByZWFsbHkgYmVsaWV2ZSBo
aW0sIGJ1dCB3aGF0IGNvdWxkIEkgZG8/XV1dCis8L3NwYW4+Cis8cD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90
ZXMtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1j
b250ZW50L2Nzcy1xdW90ZXMtMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0yLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0
LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5k
dGQiPiAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+UXVvdGVzIHBlciBsYW5nPC90aXRsZT4KKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisvKiBTcGVjaWZ5IHBhaXJzIG9mIHF1b3RlcyBmb3IgdHdv
IGxldmVscyBpbiB0d28gbGFuZ3VhZ2VzICovCitxOmxhbmcoZW4pIHsgcXVvdGVzOiAnIicgJyIn
ICInIiAiJyIgfQorcTpsYW5nKG5vKSB7IHF1b3RlczogIqsiICK7IiAiPCIgIj4iIH0KKworcTpi
ZWZvcmUgeyBjb250ZW50OiBvcGVuLXF1b3RlIH0KK3E6YWZ0ZXIgIHsgY29udGVudDogY2xvc2Ut
cXVvdGUgfQorCisucmVmZXJlbmNlIHtjb2xvcjogZ3JlZW47fQorPC9zdHlsZT4KKzwvaGVhZD4K
KworPGJvZHk+Cis8cD5UZXN0PGJyPgorPHEgbGFuZz0ibm8iPlRy+G5kZXJlIGdy5XRlciBu5XIg
PHE+Vmluc2phbiBw5SBrYWlhPC9xPiBibGlyIGRla2xhbWVydC48L3E+PGJyPgorPHEgbGFuZz0i
ZW4iPlF1b3RlIDxxPm1lPC9xPiE8L3E+Cis8L3A+Cis8cCBjbGFzcz0icmVmZXJlbmNlIj5SZWZl
cmVuY2U8YnI+Cis8c3Bhbj6rVHL4bmRlcmUgZ3LldGVyIG7lciAmbHQ7Vmluc2phbiBw5SBrYWlh
Jmd0OyBibGlyIGRla2xhbWVydC67PC9zcGFuPjxicj4KKzxzcGFuPiJRdW90ZSAnbWUnISI8L3Nw
YW4+Cis8cD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzLWdl
bmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMy5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rl
cy0zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3
LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPiAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+TW9y
ZSBjbG9zZS1xdW90ZSB0aGFuIG9wZW4tcXVvdGU8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KK3EgeyBxdW90ZXM6ICciJyAnIicgIiciICInIiB9CisKK3E6YmVmb3JlIHsgY29udGVu
dDogb3Blbi1xdW90ZSB9CitxOmFmdGVyICB7IGNvbnRlbnQ6IGNsb3NlLXF1b3RlIH0KK3NwYW4u
Y2xvc2U6YWZ0ZXIgIHsgY29udGVudDogY2xvc2UtcXVvdGUgfQorCisucmVmZXJlbmNlIHtjb2xv
cjogZ3JlZW47fQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5UZXN0PGJyPgorPHE+
TW9yZSA8cT5sZXZlbCBvZiA8c3BhbiBjbGFzcz0iY2xvc2UiPm5lc3Rpbmc8L3NwYW4+IHRoYW4g
ZGVmaW5lZDwvcT4gcXVvdGVzPC9xPgorPC9wPgorPHAgY2xhc3M9InJlZmVyZW5jZSI+UmVmZXJl
bmNlPGJyPgorPHNwYW4+Ik1vcmUgJ2xldmVsIG9mICduZXN0aW5nJyB0aGFuIGRlZmluZWQiIHF1
b3Rlczwvc3Bhbj4KKzxwPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy00Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy00Lmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9j
c3MtcXVvdGVzLTQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0
dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+IAorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5uby1jbG9zZS1xdW90ZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorYm9k
eSB7IHF1b3RlczogIiciICInIiB9CisKK2Jsb2NrcXVvdGUudGVzdCBwOmJlZm9yZSAgICAgeyBj
b250ZW50OiBvcGVuLXF1b3RlIH0KK2Jsb2NrcXVvdGUudGVzdCBwOmFmdGVyICAgICAgeyBjb250
ZW50OiBuby1jbG9zZS1xdW90ZSB9CitibG9ja3F1b3RlLnRlc3QgcDpsYXN0LWNoaWxkOmFmdGVy
IHsgY29udGVudDogY2xvc2UtcXVvdGUgfQorCisucmVmZXJlbmNlIHtjb2xvcjogZ3JlZW47fQor
PC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5UZXN0PC9wPgorPGJsb2NrcXVvdGUgY2xh
c3M9InRlc3QiPgorPHA+Rmlyc3QgcGFyYWdyYXBoPC9wPgorPHA+U2Vjb25kIHBhcmFncmFwaDwv
cD4KKzxwPlRoaXJkIHBhcmFncmFwaDwvcD4KKzwvYmxvY2txdW90ZT4KKworPHAgY2xhc3M9InJl
ZmVyZW5jZSI+UmVmZXJlbmNlPC9wPgorPGJsb2NrcXVvdGUgY2xhc3M9InJlZmVyZW5jZSI+Cis8
cD4nRmlyc3QgcGFyYWdyYXBoPC9wPgorPHA+J1NlY29uZCBwYXJhZ3JhcGg8L3A+Cis8cD4nVGhp
cmQgcGFyYWdyYXBoJzwvcD4KKzwvYmxvY2txdW90ZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nz
cy1xdW90ZXMtNS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy01Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5z
aXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPiAKKzxo
dG1sPgorPGhlYWQ+Cis8dGl0bGU+TW9yZSBuZXN0aW5nIHRoZW4gdGhhbiBkZWZpbmVzIHF1b3Rl
czwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorLyogU3BlY2lmeSBvbmx5IHR3byBs
ZXZlbHMsIHdlJ2xsIGhhdmUgMyBsZXZlbHMgb2YgbmVzdGluZyAqLworcSB7IHF1b3RlczogJyIn
ICciJyAiJyIgIiciIH0KKworcTpiZWZvcmUgeyBjb250ZW50OiBvcGVuLXF1b3RlIH0KK3E6YWZ0
ZXIgIHsgY29udGVudDogY2xvc2UtcXVvdGUgfQorCisucmVmZXJlbmNlIHtjb2xvcjogZ3JlZW47
fQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5UZXN0PGJyPgorPHE+TW9yZSA8cT5s
ZXZlbCBvZiA8cT5uZXN0aW5nPC9xPiB0aGFuIGRlZmluZWQ8L3E+IHF1b3RlczwvcT4KKzwvcD4K
KzxwIGNsYXNzPSJyZWZlcmVuY2UiPlJlZmVyZW5jZTxicj4KKzxzcGFuPiJNb3JlICdsZXZlbCBv
ZiAnbmVzdGluZycgdGhhbiBkZWZpbmVkJyBxdW90ZXMiPC9zcGFuPgorPHA+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>
<flag name="review"
          id="8864"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20959</attachid>
            <date>2008-05-04 11:19:19 -0700</date>
            <delta_ts>2008-09-02 13:26:07 -0700</delta_ts>
            <desc>Patch with some fix</desc>
            <filename>6503.diff</filename>
            <type>text/plain</type>
            <size>34981</size>
            <attacher name="Vincent Ricard">magic</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjg0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjIgQEAKKzIwMDgtMDUtMDQgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNu
aW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQnVnIDY1MDM6IGNvbnRlbnQgcHJvcGVydHkgZG9lc24ndCBzdXBwb3J0IHF1b3RlcworCisg
ICAgICAgIFRlc3RzOiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0y
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90
ZXMtMy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3Mt
cXVvdGVzLTQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQv
Y3NzLXF1b3Rlcy01Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VDb250ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VRdW90ZXMpOgorICAgICAgICAqIGNzcy9DU1NQYXJz
ZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvUXVv
dGVzVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlF1b3Rlc1ZhbHVlOjpRdW90
ZXNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpxdW90ZVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpRdW90ZXNWYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAgICogY3NzL1F1b3Rlc1ZhbHVlLmg6
IEFkZGVkLgorICAgICAgICAqIGNzcy9odG1sNC5jc3M6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb250YWluZXI6OnVw
ZGF0ZUJlZm9yZUFmdGVyQ29udGVudEZvckNvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1F1b3Rl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclF1b3RlOjpSZW5kZXJRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJRdW90ZTo6cmVuZGVyTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6
aXNRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6Y29tcHV0ZUxldmVsKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpvcmlnaW5hbFRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUXVvdGU6OmRpcnR5TGluZUJveGVzKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyUXVvdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6
aXNWaXNpYmxlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU3R5bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnF1b3Rlc0RhdGFF
cXVpdmFsZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpjb250ZW50RGF0YUVx
dWl2YWxlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldENvbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6
OlF1b3Rlc0RhdGE6OmFkZExldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OlF1b3Rlc0RhdGE6Om9w
ZW5RdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpRdW90ZXNEYXRhOjpjbG9zZVF1b3RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlF1b3Rlc0RhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnREYXRhOjopOgorICAgICAgICAoV2ViQ29yZTo6UXVvdGVzRGF0YTo6UXVvdGVz
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpRdW90ZXNEYXRhOjpvcGVyYXRvciE9KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpxdW90ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OnNldFF1b3Rlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6aW5p
dGlhbFF1b3Rlcyk6CisKIDIwMDgtMDUtMDMgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbS4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMzI4NDkpCisrKyBXZWJDb3Jl
L1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC01MzksNiArNTM5LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgY3NzL01lZGlhUXVlcnkuY3BwIFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBcCisgICAgY3NzL1F1b3Rlc1ZhbHVl
LmNwcCBcCiAgICAgY3NzL1NoYWRvd1ZhbHVlLmNwcCBcCiAgICAgY3NzL1N0eWxlQmFzZS5jcHAg
XAogICAgIGNzcy9TdHlsZUxpc3QuY3BwIFwKQEAgLTkxMSw2ICs5MTIsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
clBhcnQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHAgXAorICAgIHJl
bmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5jcHAgXApJbmRleDogV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiAzMjg0OSkKKysrIFdl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAK
ICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5j
bHVkZSAiUGFpci5oIgorI2luY2x1ZGUgIlF1b3Rlc1ZhbHVlLmgiCiAjaW5jbHVkZSAiUmVjdC5o
IgogI2luY2x1ZGUgIlNoYWRvd1ZhbHVlLmgiCiAjaW5jbHVkZSA8a2pzL2R0b2EuaD4KQEAgLTU3
Myw3ICs1NzQsNiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAg
ICAgICAgICAqLwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNpemU6ICAgICAgICAgICAgICAgICAv
LyA8bGVuZ3RoPnsxLDJ9IHwgYXV0byB8IHBvcnRyYWl0IHwgbGFuZHNjYXBlIHwgaW5oZXJpdAot
ICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6ICAgICAgICAgICAgICAgLy8gWzxzdHJpbmc+IDxz
dHJpbmc+XSsgfCBub25lIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQpCiAgICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBicmVhazsKQEAgLTEwNTgsNiArMTA1OCwx
MSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgICAg
ICByZXR1cm4gcGFyc2VDb3VudGVyKHByb3BJZCwgMCwgaW1wb3J0YW50KTsKICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVF1b3RlczogICAgICAgICAgICAgICAvLyBbPHN0cmluZz4gPHN0cmluZz5dKyB8IG5vbmUgfCBp
bmhlcml0CisgICAgICAgIGlmIChpZCAhPSBDU1NWYWx1ZU5vbmUpCisgICAgICAgICAgICByZXR1
cm4gcGFyc2VRdW90ZXMocHJvcElkLCBpbXBvcnRhbnQpOworICAgICAgICB2YWxpZF9wcmltaXRp
dmUgPSB0cnVlOworICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udEZhbWls
eToKICAgICAgICAgLy8gW1sgPGZhbWlseS1uYW1lPiB8IDxnZW5lcmljLWZhbWlseT4gXSxdKiBb
PGZhbWlseS1uYW1lPiB8IDxnZW5lcmljLWZhbWlseT5dIHwgaW5oZXJpdAogICAgIHsKQEAgLTE5
MzYsMTEgKzE5NDEsMTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ29udGVudChpbnQgcHJvcElk
LAogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICB9IGVsc2UgaWYgKHZhbC0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5U
KSB7Ci0gICAgICAgICAgICAvLyBvcGVuLXF1b3RlCi0gICAgICAgICAgICAvLyBjbG9zZS1xdW90
ZQotICAgICAgICAgICAgLy8gbm8tb3Blbi1xdW90ZQotICAgICAgICAgICAgLy8gbm8tY2xvc2Ut
cXVvdGUKLSAgICAgICAgICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgbm90IHlldCBpbXBsZW1lbnRl
ZCAoaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwMykuCisgICAgICAg
ICAgICAvLyBvcGVuLXF1b3RlIHwgY2xvc2UtcXVvdGUgfCBuby1vcGVuLXF1b3RlIHwgbm8tY2xv
c2UtcXVvdGUKKyAgICAgICAgICAgIGlmICh2YWwtPmlkID09IENTU1ZhbHVlT3BlblF1b3RlIHx8
IHZhbC0+aWQgPT0gQ1NTVmFsdWVDbG9zZVF1b3RlIHx8CisgICAgICAgICAgICAgICAgdmFsLT5p
ZCA9PSBDU1NWYWx1ZU5vT3BlblF1b3RlIHx8IHZhbC0+aWQgPT0gQ1NTVmFsdWVOb0Nsb3NlUXVv
dGUpCisgICAgICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
dmFsLT5pZCk7CiAgICAgICAgIH0gZWxzZSBpZiAodmFsLT51bml0ID09IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfU1RSSU5HKSB7CiAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IG5ldyBDU1NQcmlt
aXRpdmVWYWx1ZSh2YWwtPnN0cmluZywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpOwog
ICAgICAgICB9CkBAIC0xOTU5LDYgKzE5NjMsMzcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ29u
dGVudChpbnQgcHJvcElkLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorLy8gWzxzdHJpbmc+IDxz
dHJpbmc+XSsgfCBpbmhlcml0Citib29sIENTU1BhcnNlcjo6cGFyc2VRdW90ZXMoaW50IHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQpCit7CisgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gdmFsdWVzID0g
bmV3IENTU1ZhbHVlTGlzdCh0cnVlKTsKKworICAgIFZhbHVlKiB2YWx1ZTEgPSAwOworICAgIFZh
bHVlKiB2YWx1ZTIgPSAwOworICAgIHdoaWxlICh2YWx1ZTEgPSB2YWx1ZUxpc3QtPmN1cnJlbnQo
KSkgeworICAgICAgICBpZiAodmFsdWUxLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
U1RSSU5HKSB7CisgICAgICAgICAgICB2YWx1ZTIgPSB2YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAg
ICAgICAgIGlmICh2YWx1ZTIgJiYgdmFsdWUyLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfU1RSSU5HKQorICAgICAgICAgICAgICAgIHZhbHVlcy0+YXBwZW5kKG5ldyBRdW90ZXNWYWx1
ZSh2YWx1ZTEtPnN0cmluZywgdmFsdWUyLT5zdHJpbmcpKTsKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBicmVhazsK
KworICAgICAgICB2YWx1ZTIgPSAwOworICAgICAgICB2YWx1ZUxpc3QtPm5leHQoKTsKKyAgICB9
CisKKyAgICBpZiAodmFsdWVzLT5sZW5ndGgoKSkgeworICAgICAgICBhZGRQcm9wZXJ0eShwcm9w
SWQsIHZhbHVlcy5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAgICAgIGlmICh2YWx1ZTIpCisg
ICAgICAgICAgICB2YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJz
ZXI6OnBhcnNlQmFja2dyb3VuZENvbG9yKCkKIHsKICAgICBpbnQgaWQgPSB2YWx1ZUxpc3QtPmN1
cnJlbnQoKS0+aWQ7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAkocmV2aXNpb24gMzI4NDkpCisrKyBXZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDYgKzE1NSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBwYXJzZUNvdW50ZXIoaW50IHByb3BJZCwgaW50IGRl
ZmF1bHRWYWx1ZSwgYm9vbCBpbXBvcnRhbnQpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBwYXJzZUNvdW50ZXJDb250ZW50KFZhbHVlTGlzdCogYXJncywgYm9vbCBjb3VudGVycyk7CiAK
KyAgICAgICAgYm9vbCBwYXJzZVF1b3RlcyhpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CisK
ICAgICAgICAgYm9vbCBwYXJzZUNvbG9yUGFyYW1ldGVycyhWYWx1ZSosIGludCogY29sb3JWYWx1
ZXMsIGJvb2wgcGFyc2VBbHBoYSk7CiAgICAgICAgIGJvb2wgcGFyc2VIU0xQYXJhbWV0ZXJzKFZh
bHVlKiwgZG91YmxlKiBjb2xvclZhbHVlcywgYm9vbCBwYXJzZUFscGhhKTsKICAgICAgICAgUGFz
c1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VDb2xvcihWYWx1ZSogPSAwKTsKSW5kZXg6
IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAzMjg0OSkKKysrIFdlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBACiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhaXIu
aCIKKyNpbmNsdWRlICJRdW90ZXNWYWx1ZS5oIgogI2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRl
ICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKQEAgLTM1
MjksNiArMzUzMCwyNyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50
CiAgICAgICAgICAgICAgICAgICAgICAgICAoRUxpc3RTdHlsZVR5cGUpY291bnRlclZhbHVlLT5s
aXN0U3R5bGVOdW1iZXIoKSwgY291bnRlclZhbHVlLT5zZXBhcmF0b3IoKSk7CiAgICAgICAgICAg
ICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY291bnRlciwgZGlkU2V0KTsKICAgICAgICAg
ICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19JREVOVDogeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbC0+Z2V0SWRlbnQo
KSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlT3BlblF1b3RlOgorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChPUEVOX1FVT1RFLCBkaWRTZXQp
OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNh
c2UgQ1NTVmFsdWVDbG9zZVF1b3RlOgorICAgICAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+
c2V0Q29udGVudChDTE9TRV9RVU9URSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTm9PcGVuUXVvdGU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KE5PX09QRU5fUVVPVEUs
IGRpZFNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZU5vQ2xvc2VRdW90ZToKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fc3R5bGUtPnNldENvbnRlbnQoTk9fQ0xPU0VfUVVPVEUsIGRpZFNldCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtMzU0NCw2ICszNTY2LDI2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9w
ZXJ0eShpbnQKICAgICAgICAgYXBwbHlDb3VudGVyTGlzdChtX3N0eWxlLCB2YWx1ZS0+aXNWYWx1
ZUxpc3QoKSA/IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSA6IDAsIHRydWUpOwog
ICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOgorICAgICAgICBI
QU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChxdW90ZXMsIFF1b3Rlcyk7CisgICAgICAgIGlmIChw
cmltaXRpdmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5v
bmUpCisgICAgICAgICAgICBtX3N0eWxlLT5zZXRRdW90ZXMoMCk7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgICAgIENTU1ZhbHVlTGlzdCAqbGlzdCA9IHN0YXRpY19jYXN0PENT
U1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgICAgIGludCBsZW4gPSBsaXN0LT5sZW5ndGgo
KTsKKyAgICAgICAgICAgIFF1b3Rlc0RhdGEgKnF1b3RlcyA9IG5ldyBRdW90ZXNEYXRhOworICAg
ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICAgICAgICAg
IENTU1ZhbHVlICppdGVtID0gbGlzdC0+aXRlbShpKTsKKyAgICAgICAgICAgICAgICBRdW90ZXNW
YWx1ZSAqdmFsID0gc3RhdGljX2Nhc3Q8UXVvdGVzVmFsdWUqPihpdGVtKTsKKyAgICAgICAgICAg
ICAgICBxdW90ZXMtPmFkZExldmVsKHZhbC0+bV9vcGVuUXVvdGUsIHZhbC0+bV9jbG9zZVF1b3Rl
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fc3R5bGUtPnNldFF1b3RlcyhxdW90ZXMp
OworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250
RmFtaWx5OiB7CiAgICAgICAgIC8vIGxpc3Qgb2Ygc3RyaW5ncyBhbmQgaWRzCiAgICAgICAgIGlm
IChpc0luaGVyaXQpIHsKQEAgLTQ2NTQsNyArNDY5Niw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlGb250U3RyZXRjaDoKICAgICBjYXNlIENTU1Byb3BlcnR5UGFnZToKLSAgICBjYXNlIENTU1By
b3BlcnR5UXVvdGVzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxiYXIzZGxpZ2h0Q29sb3I6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbGJhckFycm93Q29sb3I6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVNjcm9sbGJhckRhcmtzaGFkb3dDb2xvcjoKSW5kZXg6IFdlYkNvcmUvY3NzL1F1b3Rl
c1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9RdW90ZXNWYWx1ZS5jcHAJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL2Nzcy9RdW90ZXNWYWx1ZS5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVmluY2VudCBSaWNhcmQg
KG1hZ2ljQG1hZ2ljbmluamEub3JnKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlF1b3Rlc1ZhbHVlLmgiCisKKyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUXVvdGVzVmFs
dWU6OlF1b3Rlc1ZhbHVlKGNvbnN0IFN0cmluZyYgb3BlblF1b3RlLAorICAgIGNvbnN0IFN0cmlu
ZyYgY2xvc2VRdW90ZSkKKyAgICA6IG1fb3BlblF1b3RlKG9wZW5RdW90ZSkKKyAgICAsIG1fY2xv
c2VRdW90ZShjbG9zZVF1b3RlKQoreworfQorCisvLyBGSVhNRTogd2Ugc2hvdWxkIHVzZSB0aGUg
dmVyc2lvbiBwcmVzZW50IGluIHdpdGggQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCitzdGF0aWMgU3Ry
aW5nIHF1b3RlU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIFN0cmluZyBxdW90
ZWRTdHJpbmcgPSBzdHJpbmc7CisgICAgcXVvdGVkU3RyaW5nLnJlcGxhY2UoJ1xcJywgIlxcXFwi
KTsKKyAgICBxdW90ZWRTdHJpbmcucmVwbGFjZSgnXCcnLCAiXFwnIik7CisgICAgcmV0dXJuICIn
IiArIHF1b3RlZFN0cmluZyArICInIjsKK30KKworU3RyaW5nIFF1b3Rlc1ZhbHVlOjpjc3NUZXh0
KCkgY29uc3QKK3sKKyAgICBTdHJpbmcgcmVzdWx0KCIiKTsKKworICAgIHJlc3VsdCArPSBxdW90
ZVN0cmluZyhtX29wZW5RdW90ZSk7CisgICAgcmVzdWx0ICs9ICIgIjsKKyAgICByZXN1bHQgKz0g
cXVvdGVTdHJpbmcobV9jbG9zZVF1b3RlKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30K
SW5kZXg6IFdlYkNvcmUvY3NzL1F1b3Rlc1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9j
c3MvUXVvdGVzVmFsdWUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvY3NzL1F1b3Rlc1ZhbHVl
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggVmluY2VudCBSaWNhcmQgKG1hZ2ljQG1hZ2ljbmluamEub3JnKQorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBRdW90
ZXNWYWx1ZV9oCisjZGVmaW5lIFF1b3Rlc1ZhbHVlX2gKKworI2luY2x1ZGUgIkNTU1ZhbHVlLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTdHJpbmc7CisKK2NsYXNzIFF1b3Rlc1ZhbHVlIDogcHVibGljIENTU1ZhbHVlCit7Citw
dWJsaWM6CisgICAgUXVvdGVzVmFsdWUoY29uc3QgU3RyaW5nJiBvcGVuUXVvdGUsIGNvbnN0IFN0
cmluZyYgY2xvc2VRdW90ZSk7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7
CisKKyAgICBTdHJpbmcgbV9vcGVuUXVvdGU7CisgICAgU3RyaW5nIG1fY2xvc2VRdW90ZTsKK307
CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9jc3MvaHRtbDQuY3Nz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL2h0bWw0LmNzcwkocmV2aXNpb24gMzI4NDkpCisr
KyBXZWJDb3JlL2Nzcy9odG1sNC5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTg3LDE3ICs4NywxNiBA
QCBibG9ja3F1b3RlIHsKIH0KIAogcSB7Ci0gICAgZGlzcGxheTogaW5saW5lCisgICAgZGlzcGxh
eTogaW5saW5lOworICAgIHF1b3RlczogJ1wyMDFDJyAnXDIwMUQnICdcMjAxOCcgJ1wyMDE5Jwog
fQogCiBxOmJlZm9yZSB7Ci0gICAgY29udGVudDogJyInCi0gICAgLyogRklYTUU6IGNvbnRlbnQ6
IG9wZW4tcXVvdGU7ICovCisgICAgY29udGVudDogb3Blbi1xdW90ZQogfQogCiBxOmFmdGVyIHsK
LSAgICBjb250ZW50OiAnIicKLSAgICAvKiBGSVhNRTogY29udGVudDogY2xvc2UtcXVvdGU7ICov
CisgICAgY29udGVudDogY2xvc2UtcXVvdGUKIH0KIAogY2VudGVyIHsKSW5kZXg6IFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ29udGFpbmVyLmNwcAkocmV2aXNpb24gMzI4NDkpCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJDb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiUmVuZGVySW1hZ2VHZW5lcmF0ZWRDb250ZW50LmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5oIgorI2luY2x1ZGUgIlJl
bmRlclF1b3RlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGUuaCIKICNpbmNsdWRlICJSZW5kZXJU
ZXh0RnJhZ21lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0zNTAsNiArMzUxLDEw
IEBAIHZvaWQgUmVuZGVyQ29udGFpbmVyOjp1cGRhdGVCZWZvcmVBZnRlckMKICAgICAgICAgICAg
ICAgICByZW5kZXJlciA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihkb2N1bWVu
dCgpLCAqY29udGVudC0+bV9jb250ZW50Lm1fY291bnRlcik7CiAgICAgICAgICAgICAgICAgcmVu
ZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIENPTlRFTlRfUVVPVEU6CisgICAgICAgICAgICAgICAgcmVu
ZGVyZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlclF1b3RlKGRvY3VtZW50KCksIGNvbnRl
bnQtPm1fY29udGVudC5tX3F1b3RlKTsKKyAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5
bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCiAgICAgICAgIGlmIChyZW5kZXJlcikgewpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgJKHJldmlzaW9uIDMyODQ5KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3NSw2ICsyNzUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGlzTGlzdE1hcmtlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzTWVkaWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c01lbnVMaXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNR
dW90ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVy
QmxvY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRl
ckltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJJbmxpbmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUXVvdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clF1b3RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3Rl
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggVmluY2VudCBSaWNhcmQgKG1hZ2ljQG1hZ2ljbmluamEub3JnKQorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclF1b3RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUmVuZGVyUXVvdGU6OlJlbmRlclF1b3RlKERvY3VtZW50KiBub2RlLCBRdW90ZUNvbnRl
bnQgcXVvdGUpCisgICAgOiBSZW5kZXJUZXh0KG5vZGUsIFN0cmluZ0ltcGw6OmVtcHR5KCkpCisg
ICAgLCBtX3F1b3RlKHF1b3RlKQorICAgICwgbV9uZWVkc0NvbXB1dGVMZXZlbCh0cnVlKQorICAg
ICwgbV9sZXZlbCgwKQoreworfQorCitjb25zdCBjaGFyKiBSZW5kZXJRdW90ZTo6cmVuZGVyTmFt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJSZW5kZXJRdW90ZSI7Cit9CisKK2Jvb2wgUmVuZGVy
UXVvdGU6OmlzUXVvdGUoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJl
bmRlclF1b3RlOjpjb21wdXRlTGV2ZWwoKSBjb25zdAoreworICAgIGludCBsZXZlbCA9IDA7CisK
KyAgICBjb25zdCBSZW5kZXJPYmplY3QqIHByZXZpb3VzT2JqZWN0ID0gdGhpczsKKyAgICB3aGls
ZSAoKHByZXZpb3VzT2JqZWN0ID0gcHJldmlvdXNPYmplY3QtPnByZXZpb3VzSW5QcmVPcmRlcigp
KSkgeworICAgICAgICBpZiAocHJldmlvdXNPYmplY3QtPmlzUXVvdGUoKSkgeworICAgICAgICAg
ICAgY29uc3QgUmVuZGVyUXVvdGUqIHByZXZpb3VzUXVvdGUgPSBzdGF0aWNfY2FzdDxjb25zdCBS
ZW5kZXJRdW90ZSo+KHByZXZpb3VzT2JqZWN0KTsKKyAgICAgICAgICAgIHN3aXRjaCAocHJldmlv
dXNRdW90ZS0+bV9xdW90ZSkgeworICAgICAgICAgICAgY2FzZSBPUEVOX1FVT1RFOgorICAgICAg
ICAgICAgY2FzZSBOT19PUEVOX1FVT1RFOgorICAgICAgICAgICAgICAgICsrbGV2ZWw7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENMT1NFX1FVT1RFOgorICAgICAg
ICAgICAgY2FzZSBOT19DTE9TRV9RVU9URToKKyAgICAgICAgICAgICAgICAtLWxldmVsOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisg
ICAgLy8gSWYgd2UgYXJlIGEgJ2Nsb3NlLXF1b3RlJywgd2UgaGF2ZSB0byBkZWNyZW1lbnQgdGhl
IGxldmVsCisgICAgaWYgKG1fcXVvdGUgPT0gQ0xPU0VfUVVPVEUgfHwgbV9xdW90ZSA9PSBOT19D
TE9TRV9RVU9URSkKKyAgICAgICAgLS1sZXZlbDsKKworICAgIG1fbGV2ZWwgPSBsZXZlbDsKKyAg
ICBtX25lZWRzQ29tcHV0ZUxldmVsID0gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gUmVuZGVyUXVvdGU6Om9yaWdpbmFsVGV4dCgpIGNvbnN0Cit7CisgICAgU3RyaW5nIHF1b3Rl
KCIiKTsKKworICAgIGlmICghcGFyZW50KCkpCisgICAgICAgIHJldHVybiBxdW90ZS5pbXBsKCk7
CisKKyAgICBpZiAoIW1fcXVvdGUpCisgICAgICAgIHJldHVybiBxdW90ZS5pbXBsKCk7CisKKyAg
ICAvLyBDb21wdXRlIGxldmVsCisgICAgaWYgKG1fbmVlZHNDb21wdXRlTGV2ZWwpCisgICAgICAg
IGNvbXB1dGVMZXZlbCgpOworCisgICAgLy8gV2UgbmVlZCB0aGUgbGV2ZWwgdG8gY2hlY2sgdGhl
IHZpc2liaWxpdHkgb2YgdGhlIHF1b3RlCisgICAgaWYgKCFpc1Zpc2libGUoKSkKKyAgICAgICAg
cmV0dXJuIHF1b3RlLmltcGwoKTsKKworICAgIFF1b3Rlc0RhdGEgKnF1b3RlcyA9IHN0eWxlKCkt
PnF1b3RlcygpOworICAgIGlmIChxdW90ZXMpIHsKKyAgICAgICAgaWYgKG1fcXVvdGUgPT0gT1BF
Tl9RVU9URSkKKyAgICAgICAgICAgIHF1b3RlICs9IHF1b3Rlcy0+b3BlblF1b3RlKG1fbGV2ZWwp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBxdW90ZSArPSBxdW90ZXMtPmNsb3NlUXVvdGUo
bV9sZXZlbCk7CisgICAgfQorICAgIC8vIGVsc2Ugd2UgaGF2ZSAicXVvdGVzOiBub25lOyIsIHNv
IHdlIE1VU1QgTk9UIHByb2R1Y2UgcXVvdGF0aW9uIG1hcmsKKworICAgIHJldHVybiBxdW90ZS5p
bXBsKCk7Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OmRpcnR5TGluZUJveGVzKGJvb2wgZnVsbExh
eW91dCwgYm9vbCBkdW1teSkKK3sKKyAgICBzZXRUZXh0SW50ZXJuYWwob3JpZ2luYWxUZXh0KCkp
OworICAgIFJlbmRlclRleHQ6OmRpcnR5TGluZUJveGVzKGZ1bGxMYXlvdXQsIGR1bW15KTsKK30K
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1
b3RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVmluY2VudCBSaWNh
cmQgKG1hZ2ljQG1hZ2ljbmluamEub3JnKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBSZW5kZXJRdW90ZV9oCisjZGVm
aW5lIFJlbmRlclF1b3RlX2gKKworI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJRdW90ZSA6IHB1YmxpYyBSZW5kZXJUZXh0IHsKK3B1
YmxpYzoKKyAgICBSZW5kZXJRdW90ZShEb2N1bWVudCosIFF1b3RlQ29udGVudCk7CisKKyAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNRdW90ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBvcmln
aW5hbFRleHQoKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBkaXJ0eUxpbmVCb3hlcyhib29s
LCBib29sKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzVmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJu
IChtX3F1b3RlID09IE9QRU5fUVVPVEUgfHwgbV9xdW90ZSA9PSBDTE9TRV9RVU9URSkgJiYgbV9s
ZXZlbCA+PSAwOyB9CisgICAgdm9pZCBjb21wdXRlTGV2ZWwoKSBjb25zdDsKKworICAgIFF1b3Rl
Q29udGVudCBtX3F1b3RlOworICAgIG11dGFibGUgYm9vbCBtX25lZWRzQ29tcHV0ZUxldmVsOwor
ICAgIG11dGFibGUgaW50IG1fbGV2ZWw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBSZW5kZXJRdW90ZV9oCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
dHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU3R5bGUuY3Bw
CShyZXZpc2lvbiAzMjg0OSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclN0eWxlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTEzLDYgKzkxMyw3IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6
OlN0eWxlUmFyZUluaGVyaXQKICAgICAsIHRleHRTaXplQWRqdXN0KFJlbmRlclN0eWxlOjppbml0
aWFsVGV4dFNpemVBZGp1c3QoKSkKICAgICAsIHJlc2l6ZShSZW5kZXJTdHlsZTo6aW5pdGlhbFJl
c2l6ZSgpKQogICAgICwgdXNlclNlbGVjdChSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJTZWxlY3Qo
KSkKKyAgICAsIG1fcXVvdGVzKFJlbmRlclN0eWxlOjppbml0aWFsUXVvdGVzKCkpCiB7CiB9CiAK
QEAgLTkzMiw2ICs5MzMsNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhl
cml0CiAgICAgLCB0ZXh0U2l6ZUFkanVzdChvLnRleHRTaXplQWRqdXN0KQogICAgICwgcmVzaXpl
KG8ucmVzaXplKQogICAgICwgdXNlclNlbGVjdChvLnVzZXJTZWxlY3QpCisgICAgLCBtX3F1b3Rl
cyhvLm1fcXVvdGVzID8gbmV3IFF1b3Rlc0RhdGEoKm8ubV9xdW90ZXMpIDogUmVuZGVyU3R5bGU6
OmluaXRpYWxRdW90ZXMoKSkKIHsKIH0KIApAQCAtOTU0LDcgKzk1Niw4IEBAIGJvb2wgU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSgKICAgICAgICAgJiYgbmJzcE1vZGUgPT0gby5u
YnNwTW9kZQogICAgICAgICAmJiBraHRtbExpbmVCcmVhayA9PSBvLmtodG1sTGluZUJyZWFrCiAg
ICAgICAgICYmIHRleHRTaXplQWRqdXN0ID09IG8udGV4dFNpemVBZGp1c3QKLSAgICAgICAgJiYg
dXNlclNlbGVjdCA9PSBvLnVzZXJTZWxlY3Q7CisgICAgICAgICYmIHVzZXJTZWxlY3QgPT0gby51
c2VyU2VsZWN0CisgICAgICAgICYmIHF1b3Rlc0RhdGFFcXVpdmFsZW50KG8pOwogfQogCiBib29s
IFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxl
UmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CkBAIC05NjYsNiArOTY5LDE1IEBAIGJvb2wgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6c2hhZG93RGF0YUUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
Ym9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpxdW90ZXNEYXRhRXF1aXZhbGVudChjb25zdCBT
dHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAoreworICAgIGlmICghbV9xdW90ZXMgJiYg
by5tX3F1b3RlcyB8fCBtX3F1b3RlcyAmJiAhby5tX3F1b3RlcykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmIChtX3F1b3RlcyAmJiBvLm1fcXVvdGVzICYmICgqbV9xdW90ZXMgIT0gKm8u
bV9xdW90ZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
IFN0eWxlSW5oZXJpdGVkRGF0YTo6U3R5bGVJbmhlcml0ZWREYXRhKCkKICAgICA6IGluZGVudChS
ZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQoKSkKICAgICAsIGxpbmVfaGVpZ2h0KFJlbmRl
clN0eWxlOjppbml0aWFsTGluZUhlaWdodCgpKQpAQCAtMTU1MCw2ICsxNTYyLDEwIEBAIGJvb2wg
UmVuZGVyU3R5bGU6OmNvbnRlbnREYXRhRXF1aXZhbGVudCgKICAgICAgICAgICAgICAgICBpZiAo
KmMxLT5tX2NvbnRlbnQubV9jb3VudGVyICE9ICpjMi0+bV9jb250ZW50Lm1fY291bnRlcikKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICAgICAgICAgIGlmIChjMS0+
bV9jb250ZW50Lm1fcXVvdGUgIT0gYzItPm1fY29udGVudC5tX3F1b3RlKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IAogICAgICAgICBjMSA9IGMxLT5tX25leHQ7CkBAIC0xNjYxLDYgKzE2NzcsMzMgQEAgdm9pZCBS
ZW5kZXJTdHlsZTo6c2V0Q29udGVudChDb3VudGVyQ29udAogICAgIG5ld0NvbnRlbnREYXRhLT5t
X3R5cGUgPSBDT05URU5UX0NPVU5URVI7CiB9CiAKK3ZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRl
bnQoUXVvdGVDb250ZW50IHEsIGJvb2wgYWRkKQoreworICAgIGlmICghcSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgQ29udGVudERhdGEqJiBjb250ZW50ID0gcmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCktPm1fY29udGVudDsKKyAgICBDb250ZW50RGF0YSogbGFzdENvbnRlbnQgPSBjb250
ZW50OworICAgIHdoaWxlIChsYXN0Q29udGVudCAmJiBsYXN0Q29udGVudC0+bV9uZXh0KQorICAg
ICAgICBsYXN0Q29udGVudCA9IGxhc3RDb250ZW50LT5tX25leHQ7CisKKyAgICBib29sIHJldXNl
Q29udGVudCA9ICFhZGQ7CisgICAgQ29udGVudERhdGEqIG5ld0NvbnRlbnREYXRhID0gMDsKKyAg
ICBpZiAocmV1c2VDb250ZW50ICYmIGNvbnRlbnQpIHsKKyAgICAgICAgY29udGVudC0+Y2xlYXIo
KTsKKyAgICAgICAgbmV3Q29udGVudERhdGEgPSBjb250ZW50OworICAgIH0gZWxzZQorICAgICAg
ICBuZXdDb250ZW50RGF0YSA9IG5ldyBDb250ZW50RGF0YTsKKworICAgIGlmIChsYXN0Q29udGVu
dCAmJiAhcmV1c2VDb250ZW50KQorICAgICAgICBsYXN0Q29udGVudC0+bV9uZXh0ID0gbmV3Q29u
dGVudERhdGE7CisgICAgZWxzZQorICAgICAgICBjb250ZW50ID0gbmV3Q29udGVudERhdGE7CisK
KyAgICBuZXdDb250ZW50RGF0YS0+bV9jb250ZW50Lm1fcXVvdGUgPSBxOworICAgIG5ld0NvbnRl
bnREYXRhLT5tX3R5cGUgPSBDT05URU5UX1FVT1RFOworfQorCiB2b2lkIENvbnRlbnREYXRhOjpj
bGVhcigpCiB7CiAgICAgc3dpdGNoIChtX3R5cGUpIHsKQEAgLTE2NzUsNiArMTcxOCw5IEBAIHZv
aWQgQ29udGVudERhdGE6OmNsZWFyKCkKICAgICAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CiAg
ICAgICAgICAgICBkZWxldGUgbV9jb250ZW50Lm1fY291bnRlcjsKICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENPTlRFTlRfUVVPVEU6CisgICAgICAgICAgICBtX2NvbnRlbnQubV9x
dW90ZSA9IFFVT1RFX05PTkU7CisgICAgICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBDb250
ZW50RGF0YSogbiA9IG1fbmV4dDsKQEAgLTE4MzksNiArMTg4NSwzOSBAQCBDb3VudGVyRGlyZWN0
aXZlTWFwJiBSZW5kZXJTdHlsZTo6YWNjZXNzCiAgICAgcmV0dXJuICptYXA7CiB9CiAKK3ZvaWQg
UXVvdGVzRGF0YTo6YWRkTGV2ZWwoY29uc3QgQXRvbWljU3RyaW5nICZvcGVuLCBjb25zdCBBdG9t
aWNTdHJpbmcgJmNsb3NlKQoreworICAgIG1fb3BlblF1b3Rlcy5hcHBlbmQob3Blbik7CisgICAg
bV9jbG9zZVF1b3Rlcy5hcHBlbmQoY2xvc2UpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcgUXVv
dGVzRGF0YTo6b3BlblF1b3RlKGludCBsZXZlbCkgY29uc3QKK3sKKyAgICBpZiAobV9vcGVuUXVv
dGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKKworICAgIGlmIChtX29w
ZW5RdW90ZXMuc2l6ZSgpIDw9IGxldmVsKQorICAgICAgICBsZXZlbCA9IG1fb3BlblF1b3Rlcy5z
aXplKCkgLSAxOworCisgICAgcmV0dXJuIG1fb3BlblF1b3Rlcy5hdChsZXZlbCk7Cit9CisKK2Nv
bnN0IEF0b21pY1N0cmluZyBRdW90ZXNEYXRhOjpjbG9zZVF1b3RlKGludCBsZXZlbCkgY29uc3QK
K3sKKyAgICBpZiAobV9jbG9zZVF1b3Rlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBlbXB0
eUF0b207CisKKyAgICBpZiAobV9jbG9zZVF1b3Rlcy5zaXplKCkgPD0gbGV2ZWwpCisgICAgICAg
IGxldmVsID0gbV9jbG9zZVF1b3Rlcy5zaXplKCkgLSAxOworCisgICAgcmV0dXJuIG1fY2xvc2VR
dW90ZXMuYXQobGV2ZWwpOworfQorCitib29sIFF1b3Rlc0RhdGE6Om9wZXJhdG9yPT0oY29uc3Qg
UXVvdGVzRGF0YSYgbykgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vcGVuUXVvdGVzID09IG8ubV9v
cGVuUXVvdGVzICYmIG1fY2xvc2VRdW90ZXMgPT0gby5tX2Nsb3NlUXVvdGVzOworfQorCiAjaWYg
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogY29uc3QgVmVjdG9yPFN0eWxlRGFzaGJvYXJkUmVn
aW9uPiYgUmVuZGVyU3R5bGU6OmluaXRpYWxEYXNoYm9hcmRSZWdpb25zKCkKIHsgCkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDMyODQ5KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSAiVGV4dERpcmVjdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogI2lmIEVOQUJMRShTVkcpCkBAIC0xMTczLDcgKzExNzQsMTEgQEAgcHJp
dmF0ZToKIH07CiAKIGVudW0gQ29udGVudFR5cGUgewotICAgIENPTlRFTlRfTk9ORSwgQ09OVEVO
VF9PQkpFQ1QsIENPTlRFTlRfVEVYVCwgQ09OVEVOVF9DT1VOVEVSCisgICAgQ09OVEVOVF9OT05F
LCBDT05URU5UX09CSkVDVCwgQ09OVEVOVF9URVhULCBDT05URU5UX0NPVU5URVIsIENPTlRFTlRf
UVVPVEUKK307CisKK2VudW0gUXVvdGVDb250ZW50IHsKKyAgICBRVU9URV9OT05FLCBPUEVOX1FV
T1RFLCBDTE9TRV9RVU9URSwgTk9fT1BFTl9RVU9URSwgTk9fQ0xPU0VfUVVPVEUKIH07CiAKIHN0
cnVjdCBDb250ZW50RGF0YSA6IE5vbmNvcHlhYmxlIHsKQEAgLTExODcsMTAgKzExOTIsMzIgQEAg
c3RydWN0IENvbnRlbnREYXRhIDogTm9uY29weWFibGUgewogICAgICAgICBTdHlsZUltYWdlKiBt
X2ltYWdlOwogICAgICAgICBTdHJpbmdJbXBsKiBtX3RleHQ7CiAgICAgICAgIENvdW50ZXJDb250
ZW50KiBtX2NvdW50ZXI7CisgICAgICAgIFF1b3RlQ29udGVudCBtX3F1b3RlOwogICAgIH0gbV9j
b250ZW50OwogICAgIENvbnRlbnREYXRhKiBtX25leHQ7CiB9OwogCitjbGFzcyBRdW90ZXNEYXRh
IHsKK3B1YmxpYzoKKyAgICBRdW90ZXNEYXRhKCkgeyB9CisgICAgUXVvdGVzRGF0YShjb25zdCBR
dW90ZXNEYXRhJiBvKQorICAgICAgICA6IG1fb3BlblF1b3RlcyhvLm1fb3BlblF1b3RlcyksCisg
ICAgICAgICAgbV9jbG9zZVF1b3RlcyhvLm1fY2xvc2VRdW90ZXMpIHsgfQorCisgICAgdm9pZCBh
ZGRMZXZlbChjb25zdCBBdG9taWNTdHJpbmcgJm9wZW4sIGNvbnN0IEF0b21pY1N0cmluZyAmY2xv
c2UpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyBvcGVuUXVvdGUoaW50IGxldmVsKSBjb25zdDsK
KyAgICBjb25zdCBBdG9taWNTdHJpbmcgY2xvc2VRdW90ZShpbnQgbGV2ZWwpIGNvbnN0OworCisg
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFF1b3Rlc0RhdGEmIG8pIGNvbnN0OworICAgIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBRdW90ZXNEYXRhJiBvKSBjb25zdCB7CisgICAgICAgIHJldHVybiAh
KCp0aGlzID09IG8pOworICAgIH0KKworcHJpdmF0ZToKKyAgICBWZWN0b3I8QXRvbWljU3RyaW5n
PiBtX29wZW5RdW90ZXM7CisgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV9jbG9zZVF1b3RlczsK
K307CisKIGVudW0gRUJvcmRlckZpdCB7IEJvcmRlckZpdEJvcmRlciwgQm9yZGVyRml0TGluZXMg
fTsKIAogZW51bSBFVGltaW5nRnVuY3Rpb25UeXBlIHsgTGluZWFyVGltaW5nRnVuY3Rpb24sIEN1
YmljQmV6aWVyVGltaW5nRnVuY3Rpb24gfTsKQEAgLTEzODgsNiArMTQxNSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7CiAgICAgfQogICAgIGJvb2wgc2hhZG93RGF0
YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYpIGNvbnN0OworICAgIGJv
b2wgcXVvdGVzRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYpIGNv
bnN0OwogCiAgICAgQ29sb3IgdGV4dFN0cm9rZUNvbG9yOwogICAgIGZsb2F0IHRleHRTdHJva2VX
aWR0aDsKQEAgLTE0MDQsNyArMTQzMiw5IEBAIHB1YmxpYzoKICAgICBib29sIHRleHRTaXplQWRq
dXN0IDogMTsgLy8gQW4gQXBwbGUgZXh0ZW5zaW9uLgogICAgIHVuc2lnbmVkIHJlc2l6ZSA6IDI7
IC8vIEVSZXNpemUKICAgICB1bnNpZ25lZCB1c2VyU2VsZWN0IDogMTsgIC8vIEVVc2VyU2VsZWN0
Ci0gICAgCisKKyAgICBPd25QdHI8UXVvdGVzRGF0YT4gbV9xdW90ZXM7IC8vIFRoZSBxdW90ZXMg
bGlzdCB1c2VkIGJ5ICdjb250ZW50OiAqLXF1b3RlJworCiBwcml2YXRlOgogICAgIFN0eWxlUmFy
ZUluaGVyaXRlZERhdGEoKTsKICAgICBTdHlsZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxl
UmFyZUluaGVyaXRlZERhdGEmKTsKQEAgLTE5NTksNiArMTk4OSw3IEBAIHB1YmxpYzoKICAgICBF
RW1wdHlDZWxsIGVtcHR5Q2VsbHMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRW1wdHlD
ZWxsPihpbmhlcml0ZWRfZmxhZ3MuX2VtcHR5X2NlbGxzKTsgfQogICAgIEVDYXB0aW9uU2lkZSBj
YXB0aW9uU2lkZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVDYXB0aW9uU2lkZT4oaW5o
ZXJpdGVkX2ZsYWdzLl9jYXB0aW9uX3NpZGUpOyB9CiAKKyAgICBRdW90ZXNEYXRhKiBxdW90ZXMo
KSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+bV9xdW90ZXMuZ2V0KCk7IH0KICAg
ICBzaG9ydCBjb3VudGVySW5jcmVtZW50KCkgY29uc3QgeyByZXR1cm4gdmlzdWFsLT5jb3VudGVy
SW5jcmVtZW50OyB9CiAgICAgc2hvcnQgY291bnRlclJlc2V0KCkgY29uc3QgeyByZXR1cm4gdmlz
dWFsLT5jb3VudGVyUmVzZXQ7IH0KIApAQCAtMjIxMCw2ICsyMjQxLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0RW1wdHlDZWxscyhFRW1wdHlDZWxsIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl9lbXB0
eV9jZWxscyA9IHY7IH0KICAgICB2b2lkIHNldENhcHRpb25TaWRlKEVDYXB0aW9uU2lkZSB2KSB7
IGluaGVyaXRlZF9mbGFncy5fY2FwdGlvbl9zaWRlID0gdjsgfQogCisgICAgdm9pZCBzZXRRdW90
ZXMoUXVvdGVzRGF0YSogdikgeyByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9xdW90ZXMu
c2V0KHYpOyB9CiAgICAgdm9pZCBzZXRDb3VudGVySW5jcmVtZW50KHNob3J0IHYpIHsgIFNFVF9W
QVIodmlzdWFsLGNvdW50ZXJJbmNyZW1lbnQsdikgfQogICAgIHZvaWQgc2V0Q291bnRlclJlc2V0
KHNob3J0IHYpIHsgIFNFVF9WQVIodmlzdWFsLGNvdW50ZXJSZXNldCx2KSB9CiAKQEAgLTIzMzYs
NiArMjM2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvbnRlbnQoU3RyaW5nSW1wbCosIGJv
b2wgYWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29udGVudChTdHlsZUltYWdlKiwgYm9vbCBh
ZGQgPSBmYWxzZSk7CiAgICAgdm9pZCBzZXRDb250ZW50KENvdW50ZXJDb250ZW50KiwgYm9vbCBh
ZGQgPSBmYWxzZSk7CisgICAgdm9pZCBzZXRDb250ZW50KFF1b3RlQ29udGVudCwgYm9vbCBhZGQg
PSBmYWxzZSk7CiAKICAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3VudGVyRGlyZWN0
aXZlcygpIGNvbnN0OwogICAgIENvdW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0NvdW50ZXJEaXJl
Y3RpdmVzKCk7CkBAIC0yNDc1LDcgKzI1MDgsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0
IFRyYW5zZm9ybU9wZXJhdGlvbnMmIGluaXRpYWxUcmFuc2Zvcm0oKSB7IHN0YXRpYyBUcmFuc2Zv
cm1PcGVyYXRpb25zIG9wczsgcmV0dXJuIG9wczsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlh
bFRyYW5zZm9ybU9yaWdpblgoKSB7IHJldHVybiBMZW5ndGgoNTAuMCwgUGVyY2VudCk7IH0KICAg
ICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUcmFuc2Zvcm1PcmlnaW5ZKCkgeyByZXR1cm4gTGVuZ3Ro
KDUwLjAsIFBlcmNlbnQpOyB9Ci0gICAgCisgICAgc3RhdGljIFF1b3Rlc0RhdGEqIGluaXRpYWxR
dW90ZXMoKSB7IHJldHVybiAwOyB9CisKICAgICAvLyBLZWVwIHRoZXNlIGF0IHRoZSBlbmQuCiAg
ICAgc3RhdGljIGludCBpbml0aWFsVHJhbnNpdGlvbkR1cmF0aW9uKCkgeyByZXR1cm4gMDsgfQog
ICAgIHN0YXRpYyBpbnQgaW5pdGlhbFRyYW5zaXRpb25SZXBlYXRDb3VudCgpIHsgcmV0dXJuIDE7
IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDMyODQ5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMDUtMDQgIFZpbmNlbnQgUmljYXJk
ICA8bWFnaWNAbWFnaWNuaW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdGNhc2VzIGZvcgorICAgICAgICBCdWcgNjUwMzogY29udGVu
dCBwcm9wZXJ0eSBkb2Vzbid0IHN1cHBvcnQgcXVvdGVzCisKKyAgICAgICAgKiBmYXN0L2Nzcy1n
ZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0yLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy01
Lmh0bWw6IEFkZGVkLgorCiAyMDA4LTA1LTAzICBSb2IgQnVpcyAgPGJ1aXNAa2RlLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTYW0uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5l
cmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMt
MS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53
My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4gCis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk5lc3Rl
ZCBxdW90ZXM8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKy50ZXN0IHEge3F1b3Rl
czogIltbWyIgIl1dXSIgIigoIiAiKSkiICIqLSIgIi0qIjt9CitxOmJlZm9yZSB7Y29udGVudDog
b3Blbi1xdW90ZTt9CitxOmFmdGVyICB7Y29udGVudDogY2xvc2UtcXVvdGU7fQorc3Bhbi5jaXRl
OmJlZm9yZSB7Y29udGVudDogb3Blbi1xdW90ZTt9CitzcGFuLmNpdGU6YWZ0ZXIgIHtjb250ZW50
OiBjbG9zZS1xdW90ZTt9CisucmVmZXJlbmNlIHtjb2xvcjogZ3JlZW47fQorPC9zdHlsZT4KKzwv
aGVhZD4KKworPGJvZHk+Cis8cD5UZXN0PGJyPgorPHNwYW4gY2xhc3M9InRlc3QiPgorVGhpcyAn
cCcgZWxlbWVudCBjb250YWlucyBhIHNldCBvZiBuZXN0ZWQgcXVvdGVzIHdoaWNoIGFyZTogPHE+
V2hlbiBJIGFza2VkIGhpbSBhYm91dCBpdCwgaGUgc2FpZCwgPHNwYW4gY2xhc3M9ImNpdGUiPkkg
ZG9uJ3QgcmVtZW1iZXIgYW55b25lIHNheWluZywgPHE+SSBuZWVkIHNvbWUgaGVscCw8L3E+IG9y
IGVsc2UgSSB3b3VsZCBoYXZlIGhlbHBlZC48L3NwYW4+IEkgZGlkbid0IHJlYWxseSBiZWxpZXZl
IGhpbSwgYnV0IHdoYXQgY291bGQgSSBkbz88L3E+Cis8L3NwYW4+PC9wPgorPHAgY2xhc3M9InJl
ZmVyZW5jZSI+UmVmZXJlbmNlPGJyPgorPHNwYW4+CitUaGlzICdwJyBlbGVtZW50IGNvbnRhaW5z
IGEgc2V0IG9mIG5lc3RlZCBxdW90ZXMgd2hpY2ggYXJlOiBbW1tXaGVuIEkgYXNrZWQgaGltIGFi
b3V0IGl0LCBoZSBzYWlkLCAoKEkgZG9uJ3QgcmVtZW1iZXIgYW55b25lIHNheWluZywgKi1JIG5l
ZWQgc29tZSBoZWxwLC0qIG9yIGVsc2UgSSB3b3VsZCBoYXZlIGhlbHBlZC4pKSBJIGRpZG4ndCBy
ZWFsbHkgYmVsaWV2ZSBoaW0sIGJ1dCB3aGF0IGNvdWxkIEkgZG8/XV1dCis8L3NwYW4+Cis8cD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1j
b250ZW50L2Nzcy1xdW90ZXMtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMi5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0yLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
VzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNC9sb29zZS5kdGQiPiAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+UXVvdGVzIHBlciBs
YW5nPC90aXRsZT4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisvKiBTcGVj
aWZ5IHBhaXJzIG9mIHF1b3RlcyBmb3IgdHdvIGxldmVscyBpbiB0d28gbGFuZ3VhZ2VzICovCitx
OmxhbmcoZW4pIHsgcXVvdGVzOiAnIicgJyInICInIiAiJyIgfQorcTpsYW5nKG5vKSB7IHF1b3Rl
czogIsKrIiAiwrsiICI8IiAiPiIgfQorCitxOmJlZm9yZSB7IGNvbnRlbnQ6IG9wZW4tcXVvdGUg
fQorcTphZnRlciAgeyBjb250ZW50OiBjbG9zZS1xdW90ZSB9CisKKy5yZWZlcmVuY2Uge2NvbG9y
OiBncmVlbjt9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxwPlRlc3Q8YnI+Cis8cSBs
YW5nPSJubyI+VHLDuG5kZXJlIGdyw6V0ZXIgbsOlciA8cT5WaW5zamFuIHDDpSBrYWlhPC9xPiBi
bGlyIGRla2xhbWVydC48L3E+PGJyPgorPHEgbGFuZz0iZW4iPlF1b3RlIDxxPm1lPC9xPiE8L3E+
Cis8L3A+Cis8cCBjbGFzcz0icmVmZXJlbmNlIj5SZWZlcmVuY2U8YnI+Cis8c3Bhbj7Cq1Ryw7hu
ZGVyZSBncsOldGVyIG7DpXIgIlZpbnNqYW4gcMOlIGthaWEiIGJsaXIgZGVrbGFtZXJ0LsK7PC9z
cGFuPjxicj4KKzxzcGFuPiJRdW90ZSAnbWUnISI8L3NwYW4+Cis8cD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90
ZXMtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1j
b250ZW50L2Nzcy1xdW90ZXMtMy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0zLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0
LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5k
dGQiPiAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+TW9yZSBjbG9zZS1xdW90ZSB0aGFuIG9wZW4t
cXVvdGU8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK3EgeyBxdW90ZXM6ICciJyAn
IicgIiciICInIiB9CisKK3E6YmVmb3JlIHsgY29udGVudDogb3Blbi1xdW90ZSB9CitxOmFmdGVy
ICB7IGNvbnRlbnQ6IGNsb3NlLXF1b3RlIH0KK3NwYW4uY2xvc2U6YWZ0ZXIgIHsgY29udGVudDog
Y2xvc2UtcXVvdGUgfQorCisucmVmZXJlbmNlIHtjb2xvcjogZ3JlZW47fQorPC9zdHlsZT4KKzwv
aGVhZD4KKworPGJvZHk+Cis8cD5UZXN0PGJyPgorPHE+TW9yZSA8cT5sZXZlbCBvZiA8c3BhbiBj
bGFzcz0iY2xvc2UiPm5lc3Rpbmc8L3NwYW4+IHRoYW4gZGVmaW5lZDwvcT4gcXVvdGVzPC9xPgor
PC9wPgorPHAgY2xhc3M9InJlZmVyZW5jZSI+UmVmZXJlbmNlPGJyPgorPHNwYW4+Ik1vcmUgJ2xl
dmVsIG9mICduZXN0aW5nJyB0aGFuIGRlZmluZWQiIHF1b3Rlczwvc3Bhbj4KKzxwPgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQv
Y3NzLXF1b3Rlcy00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy00Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTQuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RU
RCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0
L2xvb3NlLmR0ZCI+IAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5uby1jbG9zZS1xdW90ZTwvdGl0
bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorYm9keSB7IHF1b3RlczogIiciICInIiB9CisK
K2Jsb2NrcXVvdGUudGVzdCBwOmJlZm9yZSAgICAgeyBjb250ZW50OiBvcGVuLXF1b3RlIH0KK2Js
b2NrcXVvdGUudGVzdCBwOmFmdGVyICAgICAgeyBjb250ZW50OiBuby1jbG9zZS1xdW90ZSB9Citi
bG9ja3F1b3RlLnRlc3QgcDpsYXN0LWNoaWxkOmFmdGVyIHsgY29udGVudDogY2xvc2UtcXVvdGUg
fQorCisucmVmZXJlbmNlIHtjb2xvcjogZ3JlZW47fQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJv
ZHk+Cis8cD5UZXN0PC9wPgorPGJsb2NrcXVvdGUgY2xhc3M9InRlc3QiPgorPHA+Rmlyc3QgcGFy
YWdyYXBoPC9wPgorPHA+U2Vjb25kIHBhcmFncmFwaDwvcD4KKzxwPlRoaXJkIHBhcmFncmFwaDwv
cD4KKzwvYmxvY2txdW90ZT4KKworPHAgY2xhc3M9InJlZmVyZW5jZSI+UmVmZXJlbmNlPC9wPgor
PGJsb2NrcXVvdGUgY2xhc3M9InJlZmVyZW5jZSI+Cis8cD4nRmlyc3QgcGFyYWdyYXBoPC9wPgor
PHA+J1NlY29uZCBwYXJhZ3JhcGg8L3A+Cis8cD4nVGhpcmQgcGFyYWdyYXBoJzwvcD4KKzwvYmxv
Y2txdW90ZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzLWdl
bmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNS5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rl
cy01Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3
LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPiAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+TW9y
ZSBuZXN0aW5nIHRoZW4gdGhhbiBkZWZpbmVzIHF1b3RlczwvdGl0bGU+Cis8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiPgorLyogU3BlY2lmeSBvbmx5IHR3byBsZXZlbHMsIHdlJ2xsIGhhdmUgMyBsZXZl
bHMgb2YgbmVzdGluZyAqLworcSB7IHF1b3RlczogJyInICciJyAiJyIgIiciIH0KKworcTpiZWZv
cmUgeyBjb250ZW50OiBvcGVuLXF1b3RlIH0KK3E6YWZ0ZXIgIHsgY29udGVudDogY2xvc2UtcXVv
dGUgfQorCisucmVmZXJlbmNlIHtjb2xvcjogZ3JlZW47fQorPC9zdHlsZT4KKzwvaGVhZD4KKwor
PGJvZHk+Cis8cD5UZXN0PGJyPgorPHE+TW9yZSA8cT5sZXZlbCBvZiA8cT5uZXN0aW5nPC9xPiB0
aGFuIGRlZmluZWQ8L3E+IHF1b3RlczwvcT4KKzwvcD4KKzxwIGNsYXNzPSJyZWZlcmVuY2UiPlJl
ZmVyZW5jZTxicj4KKzxzcGFuPiJNb3JlICdsZXZlbCBvZiAnbmVzdGluZycgdGhhbiBkZWZpbmVk
JyBxdW90ZXMiPC9zcGFuPgorPHA+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="9167"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23125</attachid>
            <date>2008-09-02 13:26:07 -0700</date>
            <delta_ts>2008-10-12 15:10:30 -0700</delta_ts>
            <desc>Patch reusing the previous computed level</desc>
            <filename>6503.diff</filename>
            <type>text/plain</type>
            <size>36456</size>
            <attacher name="Vincent Ricard">magic</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNjAyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjQgQEAKKzIwMDgtMDktMDIgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNu
aW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQnVnIDY1MDM6IGNvbnRlbnQgcHJvcGVydHkgZG9lc24ndCBzdXBwb3J0IHF1b3RlcworCisg
ICAgICAgIFRlc3RzOiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0y
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90
ZXMtMy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3Mt
cXVvdGVzLTQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQv
Y3NzLXF1b3Rlcy01Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250
ZW50L3N5bnRheC1lcnJvci1pbi1jc3MtcXVvdGVzLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUu
cHJvOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VD
b250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VRdW90ZXMpOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToK
KyAgICAgICAgKiBjc3MvUXVvdGVzVmFsdWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlF1b3Rlc1ZhbHVlOjpRdW90ZXNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpxdW90ZVN0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpRdW90ZXNWYWx1ZTo6Y3NzVGV4dCk6CisgICAgICAgICog
Y3NzL1F1b3Rlc1ZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UXVvdGVzVmFsdWU6
OmNyZWF0ZSk6CisgICAgICAgICogY3NzL2h0bWw0LmNzczoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvbnRhaW5lcjo6
dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50Rm9yQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUXVv
dGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OlJlbmRlclF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclF1b3RlOjpyZW5kZXJOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3Rl
Ojppc1F1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpjb21wdXRlTGV2ZWwp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6Om9yaWdpbmFsVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6ZGlydHlMaW5lQm94ZXMpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJRdW90ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3Rl
Ojppc1Zpc2libGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhl
cml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9w
ZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cXVv
dGVzRGF0YUVxdWl2YWxlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmNvbnRl
bnREYXRhRXF1aXZhbGVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29u
dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RGF0YTo6Y2xlYXIpOgorICAgICAgICAo
V2ViQ29yZTo6UXVvdGVzRGF0YTo6YWRkTGV2ZWwpOgorICAgICAgICAoV2ViQ29yZTo6UXVvdGVz
RGF0YTo6b3BlblF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlF1b3Rlc0RhdGE6OmNsb3NlUXVv
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UXVvdGVzRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjopOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6Oik6CisgICAgICAgIChXZWJDb3JlOjpRdW90
ZXNEYXRhOjpRdW90ZXNEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlF1b3Rlc0RhdGE6Om9wZXJh
dG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnF1b3Rlcyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0UXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclN0eWxlOjppbml0aWFsUXVvdGVzKToKKwogMjAwOC0wOS0wMiAgQWxleGV5IFByb3NrdXJ5
YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnBybwkocmV2aXNpb24gMzYwMDgpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC00NzcsNiArNDc3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL01lZGlhUXVlcnku
Y3BwIFwKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgXAogICAgIGNzcy9NZWRpYVF1
ZXJ5RXhwLmNwcCBcCisgICAgY3NzL1F1b3Rlc1ZhbHVlLmNwcCBcCiAgICAgY3NzL1NoYWRvd1Zh
bHVlLmNwcCBcCiAgICAgY3NzL1N0eWxlQmFzZS5jcHAgXAogICAgIGNzcy9TdHlsZUxpc3QuY3Bw
IFwKQEAgLTg3NCw2ICs4NzUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwIFwKICAgICByZW5kZXJp
bmcvUmVuZGVyUGFydE9iamVjdC5jcHAgXAorICAgIHJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAg
XAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJSZXBsaWNhLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgXApJbmRleDog
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCShyZXZpc2lvbiAzNjAwOCkKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIK
ICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgorI2luY2x1ZGUg
IlF1b3Rlc1ZhbHVlLmgiCiAjaW5jbHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlNoYWRvd1ZhbHVl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCkBAIC01NzEsNyArNTcyLDYg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAgKi8K
IAogICAgIGNhc2UgQ1NTUHJvcGVydHlTaXplOiAgICAgICAgICAgICAgICAgLy8gPGxlbmd0aD57
MSwyfSB8IGF1dG8gfCBwb3J0cmFpdCB8IGxhbmRzY2FwZSB8IGluaGVyaXQKLSAgICBjYXNlIENT
U1Byb3BlcnR5UXVvdGVzOiAgICAgICAgICAgICAgIC8vIFs8c3RyaW5nPiA8c3RyaW5nPl0rIHwg
bm9uZSB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CkBAIC0xMDM3LDYgKzEwMzcsMTEgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAgICAgcmV0dXJuIHBh
cnNlQ291bnRlcihwcm9wSWQsIDAsIGltcG9ydGFudCk7CiAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6ICAg
ICAgICAgICAgICAgLy8gWzxzdHJpbmc+IDxzdHJpbmc+XSsgfCBub25lIHwgaW5oZXJpdAorICAg
ICAgICBpZiAoaWQgIT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlUXVv
dGVzKHByb3BJZCwgaW1wb3J0YW50KTsKKyAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHk6CiAgICAgICAg
IC8vIFtbIDxmYW1pbHktbmFtZT4gfCA8Z2VuZXJpYy1mYW1pbHk+IF0sXSogWzxmYW1pbHktbmFt
ZT4gfCA8Z2VuZXJpYy1mYW1pbHk+XSB8IGluaGVyaXQKICAgICB7CkBAIC0xOTg1LDExICsxOTkw
LDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUNvbnRlbnQoaW50IHByb3BJZCwKICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfSBlbHNl
IGlmICh2YWwtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCkgewotICAgICAg
ICAgICAgLy8gb3Blbi1xdW90ZQotICAgICAgICAgICAgLy8gY2xvc2UtcXVvdGUKLSAgICAgICAg
ICAgIC8vIG5vLW9wZW4tcXVvdGUKLSAgICAgICAgICAgIC8vIG5vLWNsb3NlLXF1b3RlCi0gICAg
ICAgICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQgKGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MDMpLgorICAgICAgICAgICAgLy8gb3Bl
bi1xdW90ZSB8IGNsb3NlLXF1b3RlIHwgbm8tb3Blbi1xdW90ZSB8IG5vLWNsb3NlLXF1b3RlCisg
ICAgICAgICAgICBpZiAodmFsLT5pZCA9PSBDU1NWYWx1ZU9wZW5RdW90ZSB8fCB2YWwtPmlkID09
IENTU1ZhbHVlQ2xvc2VRdW90ZSB8fAorICAgICAgICAgICAgICAgIHZhbC0+aWQgPT0gQ1NTVmFs
dWVOb09wZW5RdW90ZSB8fCB2YWwtPmlkID09IENTU1ZhbHVlTm9DbG9zZVF1b3RlKQorICAgICAg
ICAgICAgICAgIHBhcnNlZFZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZp
ZXIodmFsLT5pZCk7CiAgICAgICAgIH0gZWxzZSBpZiAodmFsLT51bml0ID09IENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfU1RSSU5HKSB7CiAgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGUodmFsLT5zdHJpbmcsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RS
SU5HKTsKICAgICAgICAgfQpAQCAtMjAwOCw2ICsyMDEyLDM1IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZUNvbnRlbnQoaW50IHByb3BJZCwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKy8vIFs8c3Ry
aW5nPiA8c3RyaW5nPl0rIHwgaW5oZXJpdAorYm9vbCBDU1NQYXJzZXI6OnBhcnNlUXVvdGVzKGlu
dCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQoreworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHF1
b3RlcyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKworICAgIENTU1Bh
cnNlclZhbHVlKiBvcGVuUXVvdGUgPSAwOworICAgIENTU1BhcnNlclZhbHVlKiBjbG9zZVF1b3Rl
ID0gMDsKKyAgICB3aGlsZSAob3BlblF1b3RlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKSkgewor
ICAgICAgICBpZiAob3BlblF1b3RlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RS
SU5HKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGNsb3NlUXVvdGUgPSBt
X3ZhbHVlTGlzdC0+bmV4dCgpOworICAgICAgICBpZiAoIWNsb3NlUXVvdGUgfHwgY2xvc2VRdW90
ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBxdW90ZXMtPmFwcGVuZChRdW90ZXNWYWx1ZTo6Y3JlYXRl
KG9wZW5RdW90ZS0+c3RyaW5nLCBjbG9zZVF1b3RlLT5zdHJpbmcpKTsKKworICAgICAgICBjbG9z
ZVF1b3RlID0gMDsKKyAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICB9CisKKyAgICBp
ZiAocXVvdGVzLT5sZW5ndGgoKSkgeworICAgICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIHF1b3Rl
cy5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpw
YXJzZUJhY2tncm91bmRDb2xvcigpCiB7CiAgICAgaW50IGlkID0gbV92YWx1ZUxpc3QtPmN1cnJl
bnQoKS0+aWQ7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAkocmV2aXNpb24gMzYwMDgpCisrKyBXZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYgKzExMiw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgYm9vbCBwYXJzZUNvdW50ZXIoaW50IHByb3BJZCwgaW50IGRlZmF1
bHRWYWx1ZSwgYm9vbCBpbXBvcnRhbnQpOwogICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBw
YXJzZUNvdW50ZXJDb250ZW50KENTU1BhcnNlclZhbHVlTGlzdCogYXJncywgYm9vbCBjb3VudGVy
cyk7CiAKKyAgICAgICAgYm9vbCBwYXJzZVF1b3RlcyhpbnQgcHJvcElkLCBib29sIGltcG9ydGFu
dCk7CisKICAgICAgICAgYm9vbCBwYXJzZUNvbG9yUGFyYW1ldGVycyhDU1NQYXJzZXJWYWx1ZSos
IGludCogY29sb3JWYWx1ZXMsIGJvb2wgcGFyc2VBbHBoYSk7CiAgICAgICAgIGJvb2wgcGFyc2VI
U0xQYXJhbWV0ZXJzKENTU1BhcnNlclZhbHVlKiwgZG91YmxlKiBjb2xvclZhbHVlcywgYm9vbCBw
YXJzZUFscGhhKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcGFyc2VD
b2xvcihDU1NQYXJzZXJWYWx1ZSogPSAwKTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
CShyZXZpc2lvbiAzNjAwOCkKKysrIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhaXIuaCIKKyNpbmNsdWRlICJRdW90ZXNWYWx1
ZS5oIgogI2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1
ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKQEAgLTM3NDUsNiArMzc0NiwyNiBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICAgICAgICAgIG1f
c3R5bGUtPnNldENvbnRlbnQoY291bnRlciwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICAgICAg
ZGlkU2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UOiB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRj
aCAodmFsLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVP
cGVuUXVvdGU6CisgICAgICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KE9Q
RU5fUVVPVEUsIGRpZFNldCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUNsb3NlUXVvdGU6CisgICAgICAgICAgICAgICAg
ICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KENMT1NFX1FVT1RFLCBkaWRTZXQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFs
dWVOb09wZW5RdW90ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRl
bnQoTk9fT1BFTl9RVU9URSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTm9DbG9zZVF1b3RlOgorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChOT19DTE9TRV9RVU9URSwgZGlk
U2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmICghZGlkU2V0KQpAQCAtMzc1OSw2ICszNzgw
LDI2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAg
YXBwbHlDb3VudGVyTGlzdChtX3N0eWxlLCB2YWx1ZS0+aXNWYWx1ZUxpc3QoKSA/IHN0YXRpY19j
YXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSA6IDAsIHRydWUpOwogICAgICAgICByZXR1cm47CiAK
KyAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOgorICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRf
SU5JVElBTChxdW90ZXMsIFF1b3Rlcyk7CisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpCisgICAgICAgICAgICBt
X3N0eWxlLT5zZXRRdW90ZXMoMCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKCF2
YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVl
KTsKKyAgICAgICAgICAgIGludCBsZW4gPSBsaXN0LT5sZW5ndGgoKTsKKyAgICAgICAgICAgIFF1
b3Rlc0RhdGEqIHF1b3RlcyA9IG5ldyBRdW90ZXNEYXRhOworICAgICAgICAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICAgICAgICAgIENTU1ZhbHVlICppdGVtID0g
bGlzdC0+aXRlbShpKTsKKyAgICAgICAgICAgICAgICBRdW90ZXNWYWx1ZSogdmFsID0gc3RhdGlj
X2Nhc3Q8UXVvdGVzVmFsdWUqPihpdGVtKTsKKyAgICAgICAgICAgICAgICBxdW90ZXMtPmFkZExl
dmVsKHZhbC0+bV9vcGVuUXVvdGUsIHZhbC0+bV9jbG9zZVF1b3RlKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIG1fc3R5bGUtPnNldFF1b3RlcyhxdW90ZXMpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybjsKKwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250RmFtaWx5OiB7CiAgICAgICAg
IC8vIGxpc3Qgb2Ygc3RyaW5ncyBhbmQgaWRzCiAgICAgICAgIGlmIChpc0luaGVyaXQpIHsKQEAg
LTQ4ODYsNyArNDkyNyw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShp
bnQKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3RyZXRjaDoKICAg
ICBjYXNlIENTU1Byb3BlcnR5UGFnZToKLSAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxiYXIzZGxpZ2h0Q29sb3I6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVNjcm9sbGJhckFycm93Q29sb3I6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVNjcm9sbGJhckRh
cmtzaGFkb3dDb2xvcjoKSW5kZXg6IFdlYkNvcmUvY3NzL1F1b3Rlc1ZhbHVlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9RdW90ZXNWYWx1ZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2Nzcy9RdW90ZXNWYWx1ZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVmluY2VudCBSaWNhcmQgKG1hZ2ljQG1hZ2ljbmluamEu
b3JnKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlF1b3Rlc1ZhbHVlLmgiCisK
KyNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCisjaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1F1b3Rlc1ZhbHVlOjpRdW90ZXNWYWx1ZShjb25zdCBTdHJpbmcmIG9wZW5RdW90ZSwKKyAgICBj
b25zdCBTdHJpbmcmIGNsb3NlUXVvdGUpCisgICAgOiBtX29wZW5RdW90ZShvcGVuUXVvdGUpCisg
ICAgLCBtX2Nsb3NlUXVvdGUoY2xvc2VRdW90ZSkKK3sKK30KKworLy8gRklYTUU6IHdlIHNob3Vs
ZCB1c2UgdGhlIHZlcnNpb24gcHJlc2VudCBpbiBDU1NQcmltaXRpdmVWYWx1ZS5jcHAKK3N0YXRp
YyBTdHJpbmcgcXVvdGVTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgU3RyaW5n
IHF1b3RlZFN0cmluZyA9IHN0cmluZzsKKyAgICBxdW90ZWRTdHJpbmcucmVwbGFjZSgnXFwnLCAi
XFxcXCIpOworICAgIHF1b3RlZFN0cmluZy5yZXBsYWNlKCdcJycsICJcXCciKTsKKyAgICByZXR1
cm4gIiciICsgcXVvdGVkU3RyaW5nICsgIiciOworfQorCitTdHJpbmcgUXVvdGVzVmFsdWU6OmNz
c1RleHQoKSBjb25zdAoreworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworCisgICAgcmVzdWx0
LmFwcGVuZChxdW90ZVN0cmluZyhtX29wZW5RdW90ZSkpOworICAgIHJlc3VsdC5hcHBlbmQoJyAn
KTsKKyAgICByZXN1bHQuYXBwZW5kKHF1b3RlU3RyaW5nKG1fY2xvc2VRdW90ZSkpOworCisgICAg
cmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworfQorCit9CkluZGV4OiBXZWJDb3JlL2Nzcy9RdW90
ZXNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL1F1b3Rlc1ZhbHVlLmgJKHJldmlz
aW9uIDApCisrKyBXZWJDb3JlL2Nzcy9RdW90ZXNWYWx1ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFZpbmNlbnQgUmljYXJkIChtYWdp
Y0BtYWdpY25pbmphLm9yZykKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUXVvdGVzVmFsdWVfaAorI2RlZmluZSBRdW90
ZXNWYWx1ZV9oCisKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3RyaW5nOworCitjbGFzcyBR
dW90ZXNWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZQoreworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFF1b3Rlc1ZhbHVlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBvcGVuUXVvdGUsCisgICAg
ICAgIGNvbnN0IFN0cmluZyYgY2xvc2VRdW90ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgUXVvdGVzVmFsdWUob3BlblF1b3RlLCBjbG9zZVF1b3RlKSk7CisgICAgfQorCisg
ICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OworCisgICAgU3RyaW5nIG1fb3BlblF1
b3RlOworICAgIFN0cmluZyBtX2Nsb3NlUXVvdGU7CisKK3ByaXZhdGU6CisgICAgUXVvdGVzVmFs
dWUoY29uc3QgU3RyaW5nJiBvcGVuUXVvdGUsIGNvbnN0IFN0cmluZyYgY2xvc2VRdW90ZSk7Cit9
OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvY3NzL2h0bWw0LmNz
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9odG1sNC5jc3MJKHJldmlzaW9uIDM2MDA4KQor
KysgV2ViQ29yZS9jc3MvaHRtbDQuY3NzCSh3b3JraW5nIGNvcHkpCkBAIC05MSwxMyArOTEsMTEg
QEAgcSB7CiB9CiAKIHE6YmVmb3JlIHsKLSAgICBjb250ZW50OiAnIicKLSAgICAvKiBGSVhNRTog
Y29udGVudDogb3Blbi1xdW90ZTsgKi8KKyAgICBjb250ZW50OiBvcGVuLXF1b3RlOwogfQogCiBx
OmFmdGVyIHsKLSAgICBjb250ZW50OiAnIicKLSAgICAvKiBGSVhNRTogY29udGVudDogY2xvc2Ut
cXVvdGU7ICovCisgICAgY29udGVudDogY2xvc2UtcXVvdGU7CiB9CiAKIGNlbnRlciB7CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5jcHAJKHJldmlzaW9uIDM2MDA4KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlJlbmRlckltYWdlR2VuZXJhdGVkQ29udGVudC5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKKyNp
bmNsdWRlICJSZW5kZXJRdW90ZS5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGV4dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMzY1
LDYgKzM2NiwxMCBAQCB2b2lkIFJlbmRlckNvbnRhaW5lcjo6dXBkYXRlQmVmb3JlQWZ0ZXJDCiAg
ICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckNvdW50
ZXIoZG9jdW1lbnQoKSwgKmNvbnRlbnQtPm1fY29udGVudC5tX2NvdW50ZXIpOwogICAgICAgICAg
ICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50U3R5bGUpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICAg
ICAgICAgIHJlbmRlcmVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJRdW90ZShkb2N1bWVu
dCgpLCBjb250ZW50LT5tX2NvbnRlbnQubV9xdW90ZSk7CisgICAgICAgICAgICAgICAgcmVuZGVy
ZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVuZGVyZXIpIHsKSW5kZXg6IFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCShyZXZpc2lvbiAzNjAwOCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNiArMjc1LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBpc0xpc3RNYXJrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc01lZGlhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNNZW51TGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGlzUXVvdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlckJsb2NrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNSZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzUmVuZGVySW5saW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJRdW90ZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJRdW90ZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IFZpbmNlbnQgUmljYXJkIChtYWdpY0BtYWdpY25pbmphLm9yZykKKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJRdW90ZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlbmRlclF1b3RlOjpSZW5kZXJRdW90ZShEb2N1bWVudCogbm9kZSwg
UXVvdGVDb250ZW50IHF1b3RlKQorICAgIDogUmVuZGVyVGV4dChub2RlLCBTdHJpbmdJbXBsOjpl
bXB0eSgpKQorICAgICwgbV9xdW90ZShxdW90ZSkKKyAgICAsIG1fbmVlZHNDb21wdXRlTGV2ZWwo
dHJ1ZSkKKyAgICAsIG1fbGV2ZWwoMCkKK3sKK30KKworY29uc3QgY2hhciogUmVuZGVyUXVvdGU6
OnJlbmRlck5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUmVuZGVyUXVvdGUiOworfQorCiti
b29sIFJlbmRlclF1b3RlOjppc1F1b3RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwordm9pZCBSZW5kZXJRdW90ZTo6Y29tcHV0ZUxldmVsKCkgY29uc3QKK3sKKyAgICBpbnQgbGV2
ZWwgPSAwOworCisgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBwcmV2aW91c09iamVjdCA9IHRoaXM7
CisgICAgd2hpbGUgKChwcmV2aW91c09iamVjdCA9IHByZXZpb3VzT2JqZWN0LT5wcmV2aW91c0lu
UHJlT3JkZXIoKSkpIHsKKyAgICAgICAgaWYgKHByZXZpb3VzT2JqZWN0LT5pc1F1b3RlKCkpIHsK
KyAgICAgICAgICAgIGNvbnN0IFJlbmRlclF1b3RlKiBwcmV2aW91c1F1b3RlID0gc3RhdGljX2Nh
c3Q8Y29uc3QgUmVuZGVyUXVvdGUqPihwcmV2aW91c09iamVjdCk7CisgICAgICAgICAgICBpZiAo
cHJldmlvdXNRdW90ZS0+bV9uZWVkc0NvbXB1dGVMZXZlbCkKKyAgICAgICAgICAgICAgICBwcmV2
aW91c1F1b3RlLT5jb21wdXRlTGV2ZWwoKTsKKworICAgICAgICAgICAgbGV2ZWwgPSBwcmV2aW91
c1F1b3RlLT5tX2xldmVsOworCisgICAgICAgICAgICBzd2l0Y2ggKHByZXZpb3VzUXVvdGUtPm1f
cXVvdGUpIHsKKyAgICAgICAgICAgIGNhc2UgT1BFTl9RVU9URToKKyAgICAgICAgICAgIGNhc2Ug
Tk9fT1BFTl9RVU9URToKKyAgICAgICAgICAgICAgICArK2xldmVsOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICAvLyBJZiB3ZSBhcmUgYSAnY2xvc2UtcXVvdGUnLCB3ZSBoYXZlIHRvIGRlY3Jl
bWVudCB0aGUgbGV2ZWwKKyAgICBpZiAobV9xdW90ZSA9PSBDTE9TRV9RVU9URSB8fCBtX3F1b3Rl
ID09IE5PX0NMT1NFX1FVT1RFKQorICAgICAgICAtLWxldmVsOworCisgICAgbV9sZXZlbCA9IGxl
dmVsOworICAgIG1fbmVlZHNDb21wdXRlTGV2ZWwgPSBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxT
dHJpbmdJbXBsPiBSZW5kZXJRdW90ZTo6b3JpZ2luYWxUZXh0KCkgY29uc3QKK3sKKyAgICBTdHJp
bmcgcXVvdGUoIiIpOworCisgICAgaWYgKCFwYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIHF1b3Rl
LmltcGwoKTsKKworICAgIGlmICghbV9xdW90ZSkKKyAgICAgICAgcmV0dXJuIHF1b3RlLmltcGwo
KTsKKworICAgIC8vIENvbXB1dGUgbGV2ZWwKKyAgICBpZiAobV9uZWVkc0NvbXB1dGVMZXZlbCkK
KyAgICAgICAgY29tcHV0ZUxldmVsKCk7CisKKyAgICAvLyBXZSBuZWVkIHRoZSBsZXZlbCB0byBj
aGVjayB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgcXVvdGUKKyAgICBpZiAoIWlzVmlzaWJsZSgpKQor
ICAgICAgICByZXR1cm4gcXVvdGUuaW1wbCgpOworCisgICAgUXVvdGVzRGF0YSogcXVvdGVzID0g
c3R5bGUoKS0+cXVvdGVzKCk7CisgICAgaWYgKHF1b3RlcykgeworICAgICAgICBpZiAobV9xdW90
ZSA9PSBPUEVOX1FVT1RFKQorICAgICAgICAgICAgcXVvdGUgKz0gcXVvdGVzLT5vcGVuUXVvdGUo
bV9sZXZlbCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHF1b3RlICs9IHF1b3Rlcy0+Y2xv
c2VRdW90ZShtX2xldmVsKTsKKyAgICB9CisgICAgLy8gZWxzZSB3ZSBoYXZlICJxdW90ZXM6IG5v
bmU7Iiwgc28gd2UgTVVTVCBOT1QgcHJvZHVjZSBxdW90YXRpb24gbWFyaworCisgICAgcmV0dXJu
IHF1b3RlLmltcGwoKTsKK30KKwordm9pZCBSZW5kZXJRdW90ZTo6ZGlydHlMaW5lQm94ZXMoYm9v
bCBmdWxsTGF5b3V0LCBib29sIGR1bW15KQoreworICAgIHNldFRleHRJbnRlcm5hbChvcmlnaW5h
bFRleHQoKSk7CisgICAgUmVuZGVyVGV4dDo6ZGlydHlMaW5lQm94ZXMoZnVsbExheW91dCwgZHVt
bXkpOworfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUXVvdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90
ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBWaW5j
ZW50IFJpY2FyZCAobWFnaWNAbWFnaWNuaW5qYS5vcmcpCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFJlbmRlclF1b3Rl
X2gKKyNkZWZpbmUgUmVuZGVyUXVvdGVfaAorCisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclF1b3RlIDogcHVibGljIFJlbmRlclRl
eHQgeworcHVibGljOgorICAgIFJlbmRlclF1b3RlKERvY3VtZW50KiwgUXVvdGVDb250ZW50KTsK
KworICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBpc1F1b3RlKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0cmluZ0lt
cGw+IG9yaWdpbmFsVGV4dCgpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIGRpcnR5TGluZUJv
eGVzKGJvb2wsIGJvb2wpOworCitwcml2YXRlOgorICAgIGJvb2wgaXNWaXNpYmxlKCkgY29uc3Qg
eyByZXR1cm4gKG1fcXVvdGUgPT0gT1BFTl9RVU9URSB8fCBtX3F1b3RlID09IENMT1NFX1FVT1RF
KSAmJiBtX2xldmVsID49IDA7IH0KKyAgICB2b2lkIGNvbXB1dGVMZXZlbCgpIGNvbnN0OworCisg
ICAgUXVvdGVDb250ZW50IG1fcXVvdGU7CisgICAgbXV0YWJsZSBib29sIG1fbmVlZHNDb21wdXRl
TGV2ZWw7CisgICAgbXV0YWJsZSBpbnQgbV9sZXZlbDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclF1b3RlX2gKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDM2MDA4KQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MDgsNiArOTA4LDcg
QEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdAogICAgICwgdGV4dFNp
emVBZGp1c3QoUmVuZGVyU3R5bGU6OmluaXRpYWxUZXh0U2l6ZUFkanVzdCgpKQogICAgICwgcmVz
aXplKFJlbmRlclN0eWxlOjppbml0aWFsUmVzaXplKCkpCiAgICAgLCB1c2VyU2VsZWN0KFJlbmRl
clN0eWxlOjppbml0aWFsVXNlclNlbGVjdCgpKQorICAgICwgbV9xdW90ZXMoUmVuZGVyU3R5bGU6
OmluaXRpYWxRdW90ZXMoKSkKIHsKIH0KIApAQCAtOTI3LDYgKzkyOCw3IEBAIFN0eWxlUmFyZUlu
aGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXQKICAgICAsIHRleHRTaXplQWRqdXN0KG8udGV4
dFNpemVBZGp1c3QpCiAgICAgLCByZXNpemUoby5yZXNpemUpCiAgICAgLCB1c2VyU2VsZWN0KG8u
dXNlclNlbGVjdCkKKyAgICAsIG1fcXVvdGVzKG8ubV9xdW90ZXMgPyBuZXcgUXVvdGVzRGF0YSgq
by5tX3F1b3RlcykgOiBSZW5kZXJTdHlsZTo6aW5pdGlhbFF1b3RlcygpKQogewogfQogCkBAIC05
NDksNyArOTUxLDggQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KAog
ICAgICAgICAmJiBuYnNwTW9kZSA9PSBvLm5ic3BNb2RlCiAgICAgICAgICYmIGtodG1sTGluZUJy
ZWFrID09IG8ua2h0bWxMaW5lQnJlYWsKICAgICAgICAgJiYgdGV4dFNpemVBZGp1c3QgPT0gby50
ZXh0U2l6ZUFkanVzdAotICAgICAgICAmJiB1c2VyU2VsZWN0ID09IG8udXNlclNlbGVjdDsKKyAg
ICAgICAgJiYgdXNlclNlbGVjdCA9PSBvLnVzZXJTZWxlY3QKKyAgICAgICAgJiYgcXVvdGVzRGF0
YUVxdWl2YWxlbnQobyk7CiB9CiAKIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6c2hhZG93
RGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKQEAg
LTk2MSw2ICs5NjQsMTMgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpzaGFkb3dEYXRh
RQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnF1
b3Rlc0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0
Cit7CisgICAgaWYgKG1fcXVvdGVzID09IG8ubV9xdW90ZXMpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIHJldHVybiAobV9xdW90ZXMgJiYgby5tX3F1b3RlcyAmJiAoKm1fcXVvdGVzID09ICpv
Lm1fcXVvdGVzKSk7Cit9CisKIFN0eWxlSW5oZXJpdGVkRGF0YTo6U3R5bGVJbmhlcml0ZWREYXRh
KCkKICAgICA6IGluZGVudChSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQoKSkKICAgICAs
IGxpbmVfaGVpZ2h0KFJlbmRlclN0eWxlOjppbml0aWFsTGluZUhlaWdodCgpKQpAQCAtMTU0NSw2
ICsxNTU1LDEwIEBAIGJvb2wgUmVuZGVyU3R5bGU6OmNvbnRlbnREYXRhRXF1aXZhbGVudCgKICAg
ICAgICAgICAgICAgICBpZiAoKmMxLT5tX2NvbnRlbnQubV9jb3VudGVyICE9ICpjMi0+bV9jb250
ZW50Lm1fY291bnRlcikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAg
ICAgICAgICAgIGlmIChjMS0+bV9jb250ZW50Lm1fcXVvdGUgIT0gYzItPm1fY29udGVudC5tX3F1
b3RlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICBjMSA9IGMxLT5tX25leHQ7CkBAIC0xNjU1LDYg
KzE2NjksMzMgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29udGVudChDb3VudGVyQ29udAogICAg
IG5ld0NvbnRlbnREYXRhLT5tX3R5cGUgPSBDT05URU5UX0NPVU5URVI7CiB9CiAKK3ZvaWQgUmVu
ZGVyU3R5bGU6OnNldENvbnRlbnQoUXVvdGVDb250ZW50IHEsIGJvb2wgYWRkKQoreworICAgIGlm
ICghcSkKKyAgICAgICAgcmV0dXJuOworCisgICAgT3duUHRyPENvbnRlbnREYXRhPiYgY29udGVu
dCA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2NvbnRlbnQ7CisgICAgQ29udGVu
dERhdGEqIGxhc3RDb250ZW50ID0gY29udGVudC5nZXQoKTsKKyAgICB3aGlsZSAobGFzdENvbnRl
bnQgJiYgbGFzdENvbnRlbnQtPm1fbmV4dCkKKyAgICAgICAgbGFzdENvbnRlbnQgPSBsYXN0Q29u
dGVudC0+bV9uZXh0OworCisgICAgYm9vbCByZXVzZUNvbnRlbnQgPSAhYWRkOworICAgIENvbnRl
bnREYXRhKiBuZXdDb250ZW50RGF0YSA9IDA7CisgICAgaWYgKHJldXNlQ29udGVudCAmJiBjb250
ZW50KSB7CisgICAgICAgIGNvbnRlbnQtPmNsZWFyKCk7CisgICAgICAgIG5ld0NvbnRlbnREYXRh
ID0gY29udGVudC5yZWxlYXNlKCk7CisgICAgfSBlbHNlCisgICAgICAgIG5ld0NvbnRlbnREYXRh
ID0gbmV3IENvbnRlbnREYXRhOworCisgICAgaWYgKGxhc3RDb250ZW50ICYmICFyZXVzZUNvbnRl
bnQpCisgICAgICAgIGxhc3RDb250ZW50LT5tX25leHQgPSBuZXdDb250ZW50RGF0YTsKKyAgICBl
bHNlCisgICAgICAgIGNvbnRlbnQuc2V0KG5ld0NvbnRlbnREYXRhKTsKKworICAgIG5ld0NvbnRl
bnREYXRhLT5tX2NvbnRlbnQubV9xdW90ZSA9IHE7CisgICAgbmV3Q29udGVudERhdGEtPm1fdHlw
ZSA9IENPTlRFTlRfUVVPVEU7Cit9CisKIHZvaWQgQ29udGVudERhdGE6OmNsZWFyKCkKIHsKICAg
ICBzd2l0Y2ggKG1fdHlwZSkgewpAQCAtMTY2OSw2ICsxNzEwLDkgQEAgdm9pZCBDb250ZW50RGF0
YTo6Y2xlYXIoKQogICAgICAgICBjYXNlIENPTlRFTlRfQ09VTlRFUjoKICAgICAgICAgICAgIGRl
bGV0ZSBtX2NvbnRlbnQubV9jb3VudGVyOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ09OVEVOVF9RVU9URToKKyAgICAgICAgICAgIG1fY29udGVudC5tX3F1b3RlID0gUVVPVEVf
Tk9ORTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIENvbnRlbnREYXRhKiBuID0g
bV9uZXh0OwpAQCAtMTgzOCw2ICsxODgyLDM5IEBAIENvdW50ZXJEaXJlY3RpdmVNYXAmIFJlbmRl
clN0eWxlOjphY2Nlc3MKICAgICByZXR1cm4gKm1hcC5nZXQoKTsKIH0KIAordm9pZCBRdW90ZXNE
YXRhOjphZGRMZXZlbChjb25zdCBBdG9taWNTdHJpbmcmIG9wZW4sIGNvbnN0IEF0b21pY1N0cmlu
ZyYgY2xvc2UpCit7CisgICAgbV9vcGVuUXVvdGVzLmFwcGVuZChvcGVuKTsKKyAgICBtX2Nsb3Nl
UXVvdGVzLmFwcGVuZChjbG9zZSk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyBRdW90ZXNEYXRh
OjpvcGVuUXVvdGUoaW50IGxldmVsKSBjb25zdAoreworICAgIGlmIChtX29wZW5RdW90ZXMuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gZW1wdHlBdG9tOworCisgICAgaWYgKGxldmVsID49IG1f
b3BlblF1b3Rlcy5zaXplKCkpCisgICAgICAgIGxldmVsID0gbV9vcGVuUXVvdGVzLnNpemUoKSAt
IDE7CisKKyAgICByZXR1cm4gbV9vcGVuUXVvdGVzLmF0KGxldmVsKTsKK30KKworY29uc3QgQXRv
bWljU3RyaW5nIFF1b3Rlc0RhdGE6OmNsb3NlUXVvdGUoaW50IGxldmVsKSBjb25zdAoreworICAg
IGlmIChtX2Nsb3NlUXVvdGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsK
KworICAgIGlmIChsZXZlbCA+PSBtX2Nsb3NlUXVvdGVzLnNpemUoKSkKKyAgICAgICAgbGV2ZWwg
PSBtX2Nsb3NlUXVvdGVzLnNpemUoKSAtIDE7CisKKyAgICByZXR1cm4gbV9jbG9zZVF1b3Rlcy5h
dChsZXZlbCk7Cit9CisKK2Jvb2wgUXVvdGVzRGF0YTo6b3BlcmF0b3I9PShjb25zdCBRdW90ZXNE
YXRhJiBvKSBjb25zdAoreworICAgIHJldHVybiBtX29wZW5RdW90ZXMgPT0gby5tX29wZW5RdW90
ZXMgJiYgbV9jbG9zZVF1b3RlcyA9PSBvLm1fY2xvc2VRdW90ZXM7Cit9CisKICNpZiBFTkFCTEUo
REFTSEJPQVJEX1NVUFBPUlQpCiBjb25zdCBWZWN0b3I8U3R5bGVEYXNoYm9hcmRSZWdpb24+JiBS
ZW5kZXJTdHlsZTo6aW5pdGlhbERhc2hib2FyZFJlZ2lvbnMoKQogeyAKSW5kZXg6IFdlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkocmV2aXNpb24gMzYwMDgpCisrKyBXZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3
IEBACiAjaW5jbHVkZSAiUGFpci5oIgogI2luY2x1ZGUgIlRleHREaXJlY3Rpb24uaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtMTAyMiw3ICsx
MDIzLDExIEBAIHByaXZhdGU6CiB9OwogCiBlbnVtIENvbnRlbnRUeXBlIHsKLSAgICBDT05URU5U
X05PTkUsIENPTlRFTlRfT0JKRUNULCBDT05URU5UX1RFWFQsIENPTlRFTlRfQ09VTlRFUgorICAg
IENPTlRFTlRfTk9ORSwgQ09OVEVOVF9PQkpFQ1QsIENPTlRFTlRfVEVYVCwgQ09OVEVOVF9DT1VO
VEVSLCBDT05URU5UX1FVT1RFCit9OworCitlbnVtIFF1b3RlQ29udGVudCB7CisgICAgUVVPVEVf
Tk9ORSwgT1BFTl9RVU9URSwgQ0xPU0VfUVVPVEUsIE5PX09QRU5fUVVPVEUsIE5PX0NMT1NFX1FV
T1RFCiB9OwogCiBzdHJ1Y3QgQ29udGVudERhdGEgOiBOb25jb3B5YWJsZSB7CkBAIC0xMDM2LDEw
ICsxMDQxLDMyIEBAIHN0cnVjdCBDb250ZW50RGF0YSA6IE5vbmNvcHlhYmxlIHsKICAgICAgICAg
U3R5bGVJbWFnZSogbV9pbWFnZTsKICAgICAgICAgU3RyaW5nSW1wbCogbV90ZXh0OwogICAgICAg
ICBDb3VudGVyQ29udGVudCogbV9jb3VudGVyOworICAgICAgICBRdW90ZUNvbnRlbnQgbV9xdW90
ZTsKICAgICB9IG1fY29udGVudDsKICAgICBDb250ZW50RGF0YSogbV9uZXh0OwogfTsKIAorY2xh
c3MgUXVvdGVzRGF0YSB7CitwdWJsaWM6CisgICAgUXVvdGVzRGF0YSgpIHsgfQorICAgIFF1b3Rl
c0RhdGEoY29uc3QgUXVvdGVzRGF0YSYgbykKKyAgICAgICAgOiBtX29wZW5RdW90ZXMoby5tX29w
ZW5RdW90ZXMpLAorICAgICAgICAgIG1fY2xvc2VRdW90ZXMoby5tX2Nsb3NlUXVvdGVzKSB7IH0K
KworICAgIHZvaWQgYWRkTGV2ZWwoY29uc3QgQXRvbWljU3RyaW5nJiBvcGVuLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGNsb3NlKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgb3BlblF1b3RlKGludCBs
ZXZlbCkgY29uc3Q7CisgICAgY29uc3QgQXRvbWljU3RyaW5nIGNsb3NlUXVvdGUoaW50IGxldmVs
KSBjb25zdDsKKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBRdW90ZXNEYXRhJiBvKSBjb25z
dDsKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgUXVvdGVzRGF0YSYgbykgY29uc3QgeworICAg
ICAgICByZXR1cm4gISgqdGhpcyA9PSBvKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgVmVjdG9y
PEF0b21pY1N0cmluZz4gbV9vcGVuUXVvdGVzOworICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IG1f
Y2xvc2VRdW90ZXM7Cit9OworCiBlbnVtIEVCb3JkZXJGaXQgeyBCb3JkZXJGaXRCb3JkZXIsIEJv
cmRlckZpdExpbmVzIH07CiAKIGVudW0gRVRpbWluZ0Z1bmN0aW9uVHlwZSB7IExpbmVhclRpbWlu
Z0Z1bmN0aW9uLCBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uIH07CkBAIC0xMzA0LDYgKzEzMzEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG8pOwogICAgIH0KICAgICBi
b29sIHNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmKSBj
b25zdDsKKyAgICBib29sIHF1b3Rlc0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVy
aXRlZERhdGEmKSBjb25zdDsKIAogICAgIENvbG9yIHRleHRTdHJva2VDb2xvcjsKICAgICBmbG9h
dCB0ZXh0U3Ryb2tlV2lkdGg7CkBAIC0xMzIwLDcgKzEzNDgsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCB0ZXh0U2l6ZUFkanVzdCA6IDE7IC8vIEFuIEFwcGxlIGV4dGVuc2lvbi4KICAgICB1bnNpZ25l
ZCByZXNpemUgOiAyOyAvLyBFUmVzaXplCiAgICAgdW5zaWduZWQgdXNlclNlbGVjdCA6IDE7ICAv
LyBFVXNlclNlbGVjdAotICAgIAorCisgICAgT3duUHRyPFF1b3Rlc0RhdGE+IG1fcXVvdGVzOyAv
LyBUaGUgcXVvdGVzIGxpc3QgdXNlZCBieSAnY29udGVudDogKi1xdW90ZScKKwogcHJpdmF0ZToK
ICAgICBTdHlsZVJhcmVJbmhlcml0ZWREYXRhKCk7CiAgICAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJik7CkBAIC0xODgwLDYgKzE5MTAsNyBAQCBw
dWJsaWM6CiAgICAgRUVtcHR5Q2VsbCBlbXB0eUNlbGxzKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RUVtcHR5Q2VsbD4oaW5oZXJpdGVkX2ZsYWdzLl9lbXB0eV9jZWxscyk7IH0KICAgICBF
Q2FwdGlvblNpZGUgY2FwdGlvblNpZGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFQ2Fw
dGlvblNpZGU+KGluaGVyaXRlZF9mbGFncy5fY2FwdGlvbl9zaWRlKTsgfQogCisgICAgUXVvdGVz
RGF0YSogcXVvdGVzKCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPm1fcXVvdGVz
LmdldCgpOyB9CiAgICAgc2hvcnQgY291bnRlckluY3JlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHZp
c3VhbC0+Y291bnRlckluY3JlbWVudDsgfQogICAgIHNob3J0IGNvdW50ZXJSZXNldCgpIGNvbnN0
IHsgcmV0dXJuIHZpc3VhbC0+Y291bnRlclJlc2V0OyB9CiAKQEAgLTIxNDQsNiArMjE3NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEVtcHR5Q2VsbHMoRUVtcHR5Q2VsbCB2KSB7IGluaGVyaXRl
ZF9mbGFncy5fZW1wdHlfY2VsbHMgPSB2OyB9CiAgICAgdm9pZCBzZXRDYXB0aW9uU2lkZShFQ2Fw
dGlvblNpZGUgdikgeyBpbmhlcml0ZWRfZmxhZ3MuX2NhcHRpb25fc2lkZSA9IHY7IH0KIAorICAg
IHZvaWQgc2V0UXVvdGVzKFF1b3Rlc0RhdGEqIHYpIHsgcmFyZUluaGVyaXRlZERhdGEuYWNjZXNz
KCktPm1fcXVvdGVzLnNldCh2KTsgfQogICAgIHZvaWQgc2V0Q291bnRlckluY3JlbWVudChzaG9y
dCB2KSB7ICBTRVRfVkFSKHZpc3VhbCxjb3VudGVySW5jcmVtZW50LHYpIH0KICAgICB2b2lkIHNl
dENvdW50ZXJSZXNldChzaG9ydCB2KSB7ICBTRVRfVkFSKHZpc3VhbCxjb3VudGVyUmVzZXQsdikg
fQogCkBAIC0yMjgxLDYgKzIzMTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb250ZW50KFN0
cmluZ0ltcGwqLCBib29sIGFkZCA9IGZhbHNlKTsKICAgICB2b2lkIHNldENvbnRlbnQoUGFzc1Jl
ZlB0cjxTdHlsZUltYWdlPiwgYm9vbCBhZGQgPSBmYWxzZSk7CiAgICAgdm9pZCBzZXRDb250ZW50
KENvdW50ZXJDb250ZW50KiwgYm9vbCBhZGQgPSBmYWxzZSk7CisgICAgdm9pZCBzZXRDb250ZW50
KFF1b3RlQ29udGVudCwgYm9vbCBhZGQgPSBmYWxzZSk7CiAKICAgICBjb25zdCBDb3VudGVyRGly
ZWN0aXZlTWFwKiBjb3VudGVyRGlyZWN0aXZlcygpIGNvbnN0OwogICAgIENvdW50ZXJEaXJlY3Rp
dmVNYXAmIGFjY2Vzc0NvdW50ZXJEaXJlY3RpdmVzKCk7CkBAIC0yNDIwLDcgKzI0NTMsOCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIGluaXRpYWxUcmFu
c2Zvcm0oKSB7IHN0YXRpYyBUcmFuc2Zvcm1PcGVyYXRpb25zIG9wczsgcmV0dXJuIG9wczsgfQog
ICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbFRyYW5zZm9ybU9yaWdpblgoKSB7IHJldHVybiBMZW5n
dGgoNTAuMCwgUGVyY2VudCk7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxUcmFuc2Zvcm1P
cmlnaW5ZKCkgeyByZXR1cm4gTGVuZ3RoKDUwLjAsIFBlcmNlbnQpOyB9Ci0gICAgCisgICAgc3Rh
dGljIFF1b3Rlc0RhdGEqIGluaXRpYWxRdW90ZXMoKSB7IHJldHVybiAwOyB9CisKICAgICAvLyBL
ZWVwIHRoZXNlIGF0IHRoZSBlbmQuCiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxBbmltYXRpb25E
ZWxheSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgYm9vbCBpbml0aWFsQW5pbWF0aW9uRGly
ZWN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2MDI1KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MDgtMDktMDIgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNuaW5qYS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGNhc2VzIGZvcgor
ICAgICAgICBCdWcgNjUwMzogY29udGVudCBwcm9wZXJ0eSBkb2Vzbid0IHN1cHBvcnQgcXVvdGVz
CisKKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rl
cy0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nz
cy1xdW90ZXMtMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC9jc3MtcXVvdGVzLTQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ2VuZXJh
dGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy01Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
LWdlbmVyYXRlZC1jb250ZW50L3N5bnRheC1lcnJvci1pbi1jc3MtcXVvdGVzLmh0bWw6IEFkZGVk
LgorCiAyMDA4LTA4LTI5ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0xLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVz
LTEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cu
dzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+IAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5OZXN0
ZWQgcXVvdGVzPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisudGVzdCBxIHtxdW90
ZXM6ICJbW1siICJdXV0iICIoKCIgIikpIiAiKi0iICItKiI7fQorcTpiZWZvcmUge2NvbnRlbnQ6
IG9wZW4tcXVvdGU7fQorcTphZnRlciAge2NvbnRlbnQ6IGNsb3NlLXF1b3RlO30KK3NwYW4uY2l0
ZTpiZWZvcmUge2NvbnRlbnQ6IG9wZW4tcXVvdGU7fQorc3Bhbi5jaXRlOmFmdGVyICB7Y29udGVu
dDogY2xvc2UtcXVvdGU7fQorLnJlZmVyZW5jZSB7Y29sb3I6IGdyZWVuO30KKzwvc3R5bGU+Cis8
L2hlYWQ+CisKKzxib2R5PgorPHA+VGVzdDxicj4KKzxzcGFuIGNsYXNzPSJ0ZXN0Ij4KK1RoaXMg
J3AnIGVsZW1lbnQgY29udGFpbnMgYSBzZXQgb2YgbmVzdGVkIHF1b3RlcyB3aGljaCBhcmU6IDxx
PldoZW4gSSBhc2tlZCBoaW0gYWJvdXQgaXQsIGhlIHNhaWQsIDxzcGFuIGNsYXNzPSJjaXRlIj5J
IGRvbid0IHJlbWVtYmVyIGFueW9uZSBzYXlpbmcsIDxxPkkgbmVlZCBzb21lIGhlbHAsPC9xPiBv
ciBlbHNlIEkgd291bGQgaGF2ZSBoZWxwZWQuPC9zcGFuPiBJIGRpZG4ndCByZWFsbHkgYmVsaWV2
ZSBoaW0sIGJ1dCB3aGF0IGNvdWxkIEkgZG8/PC9xPgorPC9zcGFuPjwvcD4KKzxwIGNsYXNzPSJy
ZWZlcmVuY2UiPlJlZmVyZW5jZTxicj4KKzxzcGFuPgorVGhpcyAncCcgZWxlbWVudCBjb250YWlu
cyBhIHNldCBvZiBuZXN0ZWQgcXVvdGVzIHdoaWNoIGFyZTogW1tbV2hlbiBJIGFza2VkIGhpbSBh
Ym91dCBpdCwgaGUgc2FpZCwgKChJIGRvbid0IHJlbWVtYmVyIGFueW9uZSBzYXlpbmcsICotSSBu
ZWVkIHNvbWUgaGVscCwtKiBvciBlbHNlIEkgd291bGQgaGF2ZSBoZWxwZWQuKSkgSSBkaWRuJ3Qg
cmVhbGx5IGJlbGlldmUgaGltLCBidXQgd2hhdCBjb3VsZCBJIGRvP11dXQorPC9zcGFuPgorPHA+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQt
Y29udGVudC9jc3MtcXVvdGVzLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTIuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMi5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcv
VFIvaHRtbDQvbG9vc2UuZHRkIj4gCis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlF1b3RlcyBwZXIg
bGFuZzwvdGl0bGU+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorLyogU3Bl
Y2lmeSBwYWlycyBvZiBxdW90ZXMgZm9yIHR3byBsZXZlbHMgaW4gdHdvIGxhbmd1YWdlcyAqLwor
cTpsYW5nKGVuKSB7IHF1b3RlczogJyInICciJyAiJyIgIiciIH0KK3E6bGFuZyhubykgeyBxdW90
ZXM6ICLCqyIgIsK7IiAiPCIgIj4iIH0KKworcTpiZWZvcmUgeyBjb250ZW50OiBvcGVuLXF1b3Rl
IH0KK3E6YWZ0ZXIgIHsgY29udGVudDogY2xvc2UtcXVvdGUgfQorCisucmVmZXJlbmNlIHtjb2xv
cjogZ3JlZW47fQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5UZXN0PGJyPgorPHEg
bGFuZz0ibm8iPlRyw7huZGVyZSBncsOldGVyIG7DpXIgPHE+Vmluc2phbiBww6Uga2FpYTwvcT4g
YmxpciBkZWtsYW1lcnQuPC9xPjxicj4KKzxxIGxhbmc9ImVuIj5RdW90ZSA8cT5tZTwvcT4hPC9x
PgorPC9wPgorPHAgY2xhc3M9InJlZmVyZW5jZSI+UmVmZXJlbmNlPGJyPgorPHNwYW4+wqtUcsO4
bmRlcmUgZ3LDpXRlciBuw6VyICJWaW5zamFuIHDDpSBrYWlhIiBibGlyIGRla2xhbWVydC7Cuzwv
c3Bhbj48YnI+Cis8c3Bhbj4iUXVvdGUgJ21lJyEiPC9zcGFuPgorPHA+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVv
dGVzLTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQt
Y29udGVudC9jc3MtcXVvdGVzLTMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMy5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwg
NC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2Uu
ZHRkIj4gCis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk1vcmUgY2xvc2UtcXVvdGUgdGhhbiBvcGVu
LXF1b3RlPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitxIHsgcXVvdGVzOiAnIicg
JyInICInIiAiJyIgfQorCitxOmJlZm9yZSB7IGNvbnRlbnQ6IG9wZW4tcXVvdGUgfQorcTphZnRl
ciAgeyBjb250ZW50OiBjbG9zZS1xdW90ZSB9CitzcGFuLmNsb3NlOmFmdGVyICB7IGNvbnRlbnQ6
IGNsb3NlLXF1b3RlIH0KKworLnJlZmVyZW5jZSB7Y29sb3I6IGdyZWVuO30KKzwvc3R5bGU+Cis8
L2hlYWQ+CisKKzxib2R5PgorPHA+VGVzdDxicj4KKzxxPk1vcmUgPHE+Y2xvc2UtcXVvdGUgPHNw
YW4gY2xhc3M9ImNsb3NlIj50aGFuPC9zcGFuPiBvcGVuLXF1b3RlPC9xPiBpbiB0aGlzIHNlbnRl
bmNlLjwvcT4KKzwvcD4KKzxwIGNsYXNzPSJyZWZlcmVuY2UiPlJlZmVyZW5jZTxicj4KKzxzcGFu
PiJNb3JlICdjbG9zZS1xdW90ZSB0aGFuJyBvcGVuLXF1b3RlIiBpbiB0aGlzIHNlbnRlbmNlLjwv
c3Bhbj4KKzxwPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy00Lmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVv
dGVzLTQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93
d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+IAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5u
by1jbG9zZS1xdW90ZTwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorYm9keSB7IHF1
b3RlczogIiciICInIiB9CisKK2Jsb2NrcXVvdGUudGVzdCBwOmJlZm9yZSAgICAgeyBjb250ZW50
OiBvcGVuLXF1b3RlIH0KK2Jsb2NrcXVvdGUudGVzdCBwOmFmdGVyICAgICAgeyBjb250ZW50OiBu
by1jbG9zZS1xdW90ZSB9CitibG9ja3F1b3RlLnRlc3QgcDpsYXN0LWNoaWxkOmFmdGVyIHsgY29u
dGVudDogY2xvc2UtcXVvdGUgfQorCisucmVmZXJlbmNlIHtjb2xvcjogZ3JlZW47fQorPC9zdHls
ZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5UZXN0PC9wPgorPGJsb2NrcXVvdGUgY2xhc3M9InRl
c3QiPgorPHA+Rmlyc3QgcGFyYWdyYXBoPC9wPgorPHA+U2Vjb25kIHBhcmFncmFwaDwvcD4KKzxw
PlRoaXJkIHBhcmFncmFwaDwvcD4KKzwvYmxvY2txdW90ZT4KKworPHAgY2xhc3M9InJlZmVyZW5j
ZSI+UmVmZXJlbmNlPC9wPgorPGJsb2NrcXVvdGUgY2xhc3M9InJlZmVyZW5jZSI+Cis8cD4nRmly
c3QgcGFyYWdyYXBoPC9wPgorPHA+J1NlY29uZCBwYXJhZ3JhcGg8L3A+Cis8cD4nVGhpcmQgcGFy
YWdyYXBoJzwvcD4KKzwvYmxvY2txdW90ZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90
ZXMtNS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVk
LWNvbnRlbnQvY3NzLXF1b3Rlcy01Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25h
bC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9sb29zZS5kdGQiPiAKKzxodG1sPgor
PGhlYWQ+Cis8dGl0bGU+TW9yZSBuZXN0aW5nIHRoYW4gZGVmaW5lZCBxdW90ZXM8L3RpdGxlPgor
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKy8qIFNwZWNpZnkgb25seSB0d28gbGV2ZWxzLCB3ZSds
bCBoYXZlIDMgbGV2ZWxzIG9mIG5lc3RpbmcgKi8KK3EgeyBxdW90ZXM6ICciJyAnIicgIiciICIn
IiB9CisKK3E6YmVmb3JlIHsgY29udGVudDogb3Blbi1xdW90ZSB9CitxOmFmdGVyICB7IGNvbnRl
bnQ6IGNsb3NlLXF1b3RlIH0KKworLnJlZmVyZW5jZSB7Y29sb3I6IGdyZWVuO30KKzwvc3R5bGU+
Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+VGVzdDxicj4KKzxxPk1vcmUgPHE+bGV2ZWwgb2YgPHE+
bmVzdGluZzwvcT4gdGhhbiBkZWZpbmVkPC9xPiBxdW90ZXM8L3E+Cis8L3A+Cis8cCBjbGFzcz0i
cmVmZXJlbmNlIj5SZWZlcmVuY2U8YnI+Cis8c3Bhbj4iTW9yZSAnbGV2ZWwgb2YgJ25lc3Rpbmcn
IHRoYW4gZGVmaW5lZCcgcXVvdGVzIjwvc3Bhbj4KKzxwPgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvc3ludGF4LWVycm9yLWlu
LWNzcy1xdW90ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5l
cmF0ZWQtY29udGVudC9zeW50YXgtZXJyb3ItaW4tY3NzLXF1b3Rlcy5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvc3ludGF4LWVycm9y
LWluLWNzcy1xdW90ZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOSBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+IAorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5TeW50YXggZXJyb3IgaW4gInF1b3RlcyI8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KK3Age3F1b3Rlczogbm9uZX0KKworLyogVGhlIHByb3BlcnR5IGlzIGEgbGlzdCBv
ZiBwYWlyIChvZiBzdHJpbmdzKSAqLworcC5lcnJvcjEgeyBxdW90ZXM6ICcqJ30KKworLyogSWYg
b25lIHBhaXIgaXMgaW5jb21wbGV0ZSwgYWxsIHRoZSBwcm9wZXJ0eSBpcyBpbnZhbGlkICovCitw
LmVycm9yMiB7IHF1b3RlczogJyonICcqJyAnLSd9CisKKy8qIFRoZSBwYWlyIE1VU1QgYmUgc3Ry
aW5ncyAqLworcC5lcnJvcjMgeyBxdW90ZXM6ICcqJyAxIH0KK3AuZXJyb3I0IHsgcXVvdGVzOiAx
ICIqIiB9CisKK3A6YmVmb3JlIHsgY29udGVudDogb3Blbi1xdW90ZSB9CitwOmFmdGVyICB7IGNv
bnRlbnQ6IGNsb3NlLXF1b3RlIH0KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPHAgY2xh
c3M9ImVycm9yMSI+Tm8gcXVvdGVzITwvcD4KKzxwIGNsYXNzPSJlcnJvcjIiPk5vIHF1b3RlcyE8
L3A+Cis8cCBjbGFzcz0iZXJyb3IzIj5ObyBxdW90ZXMhPC9wPgorPHAgY2xhc3M9ImVycm9yNCI+
Tm8gcXVvdGVzITwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="10290"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24311</attachid>
            <date>2008-10-12 15:10:30 -0700</date>
            <delta_ts>2011-02-08 08:42:36 -0800</delta_ts>
            <desc>newer patch -- not ready to check in</desc>
            <filename>QuotesPatch.txt</filename>
            <type>text/plain</type>
            <size>78488</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzUyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDgtMTAtMTIgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNu
aW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYW5kIHJld29ya2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIC0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
MDMKKyAgICAgICAgICBCdWcgNjUwMzogY29udGVudCBwcm9wZXJ0eSBkb2Vzbid0IHN1cHBvcnQg
cXVvdGVzCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1x
dW90ZXMtMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9j
c3MtcXVvdGVzLTIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRl
bnQvY3NzLXF1b3Rlcy0zLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzLWdlbmVyYXRlZC1j
b250ZW50L2Nzcy1xdW90ZXMtNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy1nZW5lcmF0
ZWQtY29udGVudC9jc3MtcXVvdGVzLTUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQvc3ludGF4LWVycm9yLWluLWNzcy1xdW90ZXMuaHRtbAorCisgICAgICAg
IDxuZWVkIHRvIHdyaXRlIHBlci1maWxlIHJlbGVhc2Ugbm90ZXM+CisKIDIwMDgtMTAtMTIgIEJy
YWQgR2FyY2lhICA8YmdhcmNpYUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiAzNzUyNikKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8J
KHdvcmtpbmcgY29weSkKQEAgLTQ5Miw2ICs0OTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3Mv
TWVkaWFRdWVyeS5jcHAgXAogICAgIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBcCiAgICAg
Y3NzL01lZGlhUXVlcnlFeHAuY3BwIFwKKyAgICBjc3MvUXVvdGVzVmFsdWUuY3BwIFwKICAgICBj
c3MvU2hhZG93VmFsdWUuY3BwIFwKICAgICBjc3MvU3R5bGVCYXNlLmNwcCBcCiAgICAgY3NzL1N0
eWxlTGlzdC5jcHAgXApAQCAtOTAzLDYgKzkwNCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAgXAog
ICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0LmNwcCBcCisgICAgcmVuZGVyaW5nL1JlbmRl
clF1b3RlLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBcCiAgICAgcmVu
ZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFy
LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMzc1MjYpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTc5OCw2ICsxNzk4LDEyIEBACiAJCTkzOEU2NUY3MDlG
MDk4NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM4RTY1RjYwOUYwOTg1RDAw
OEE0OEVDIC8qIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgKi87IH07CiAJCTkzOEU2
NjYwMDlGMDlCODEwMDhBNDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEU2NjVGMDlGMDlCODEwMDhB
NDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmNwcCAqLzsgfTsKIAkJOTM4RTY2NjIwOUYwOUI4
NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOEU2NjYxMDlGMDlCODcwMDhBNDhFQyAvKiBKU0hU
TUxDYW52YXNFbGVtZW50LmggKi87IH07CisJCTkzOEVCREQ1MEVBMkExODcwMENCN0YyMiAvKiBR
dW90ZXNWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM4RUJERDMwRUEyQTE4NzAwQ0I3RjIyIC8qIFF1b3Rlc1ZhbHVlLmggKi87IH07CisJCTkz
OEVCREQ2MEVBMkExODcwMENCN0YyMiAvKiBRdW90ZXNWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzhFQkRENDBFQTJBMTg3MDBDQjdGMjIg
LyogUXVvdGVzVmFsdWUuY3BwICovOyB9OworCQk5MzhFQkREQTBFQTJBMUQwMDBDQjdGMjIgLyog
UXVvdGVzRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM4RUJERDgwRUEyQTFEMDAwQ0I3RjIyIC8qIFF1b3Rlc0RhdGEuaCAqLzsgfTsKKwkJOTM4
RUJEREIwRUEyQTFEMDAwQ0I3RjIyIC8qIFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM4RUJERDkwRUEyQTFEMDAwQ0I3RjIyIC8q
IFF1b3Rlc0RhdGEuY3BwICovOyB9OworCQk5MzhFQkRFRTBFQTJBNEU1MDBDQjdGMjIgLyogUmVu
ZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOEVCREVDMEVBMkE0RTUwMENCN0YyMiAvKiBSZW5kZXJRdW90ZS5oICovOyB9OworCQk5MzhF
QkRFRjBFQTJBNEU1MDBDQjdGMjIgLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM4RUJERUQwRUEyQTRFNTAwQ0I3RjIyIC8q
IFJlbmRlclF1b3RlLmNwcCAqLzsgfTsKIAkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFJl
bmRlckNvdW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTJGMTQxMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmggKi87IH07CiAJ
CTkzOTJGMTQ0MEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQzMEFEMTg1RkUwMDY5
MUJENCAvKiBSZW5kZXJDb3VudGVyLmNwcCAqLzsgfTsKIAkJOTM5MkYxNEMwQUQxODYxQjAwNjkx
QkQ0IC8qIENvdW50ZXJOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkyRjE0QjBBRDE4NjFCMDA2OTFCRDQgLyogQ291bnRlck5vZGUuaCAqLzsg
fTsKQEAgLTY0NzQsNiArNjQ4MCwxMiBAQAogCQk5MzhFNjYyNTA5RjA5OTU2MDA4QTQ4RUMgLyog
SFRNTENhbnZhc0VsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxDYW52YXNF
bGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM4RTY2NUYwOUYwOUI4
MTAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MQ2FudmFzRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzOEU2NjYxMDlGMDlCODcwMDhBNDhFQyAvKiBKU0hUTUxDYW52YXNF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTENhbnZhc0Vs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM4RUJERDMwRUEyQTE4NzAw
Q0I3RjIyIC8qIFF1b3Rlc1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFF1b3Rlc1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOEVCREQ0MEVB
MkExODcwMENCN0YyMiAvKiBRdW90ZXNWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBRdW90ZXNWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzOEVCREQ4MEVBMkExRDAwMENCN0YyMiAvKiBRdW90ZXNEYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFF1b3Rlc0RhdGEuaDsgcGF0aCA9IHN0eWxlL1F1b3Rlc0Rh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM4RUJERDkwRUEyQTFEMDAwQ0I3
RjIyIC8qIFF1b3Rlc0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gUXVvdGVzRGF0YS5jcHA7IHBhdGggPSBzdHlsZS9RdW90ZXNEYXRhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM4RUJERUMwRUEyQTRFNTAwQ0I3RjIyIC8qIFJlbmRlclF1
b3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclF1b3RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOEVCREVEMEVBMkE0RTUwMENCN0YyMiAvKiBS
ZW5kZXJRdW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJRdW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTJGMTQxMEFEMTg1
RjQwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJDb3VudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
OTJGMTQzMEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJDb3VudGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MkYxNEIwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3VudGVyTm9kZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI5MzMsNiArMTI5NDUsOCBAQAogCQkJCUJDRUY0
M0RGMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgKi8sCiAJCQkJQkNFRjQz
REMwRTY3NDAxMjAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggKi8sCiAJCQkJQkM1RUI1REMw
RTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oICovLAorCQkJCTkzOEVCREQ4MEVBMkEx
RDAwMENCN0YyMiAvKiBRdW90ZXNEYXRhLmggKi8sCisJCQkJOTM4RUJERDkwRUEyQTFEMDAwQ0I3
RjIyIC8qIFF1b3Rlc0RhdGEuY3BwICovLAogCQkJCUJDOEM4RkFCMEREQ0QzMUIwMEI1OTJGNCAv
KiBSZW5kZXJTdHlsZS5jcHAgKi8sCiAJCQkJQkM4QzhGQUMwRERDRDMxQjAwQjU5MkY0IC8qIFJl
bmRlclN0eWxlLmggKi8sCiAJCQkJQkM1RUI2NjcwRTgxQ0I3MTAwQjI1OTY1IC8qIFJlbmRlclN0
eWxlQ29uc3RhbnRzLmggKi8sCkBAIC0xMzQ0Miw2ICsxMzQ1Niw4IEBACiAJCQkJNEUxOTU5Mjgw
QTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCAqLywKIAkJCQlBODBFNkNEMTBBMTk4
OUNBMDA3RkI4QzUgLyogUGFpci5oICovLAogCQkJCTkzQ0E0QzlGMDlERjkzRkEwMERGODY3NyAv
KiBxdWlya3MuY3NzICovLAorCQkJCTkzOEVCREQzMEVBMkExODcwMENCN0YyMiAvKiBRdW90ZXNW
YWx1ZS5oICovLAorCQkJCTkzOEVCREQ0MEVBMkExODcwMENCN0YyMiAvKiBRdW90ZXNWYWx1ZS5j
cHAgKi8sCiAJCQkJQkM0MzY4RTcwQzIyNkUzMjAwNUVGQjVGIC8qIFJlY3QuaCAqLywKIAkJCQlB
ODBFNzk5NjBBMTlCRDIxMDA3RkI4QzUgLyogUmVjdC5pZGwgKi8sCiAJCQkJODU4QzM4RUYwQUE4
RkREMTAwQjE4N0E0IC8qIFJHQkNvbG9yLmlkbCAqLywKQEAgLTEzNTgxLDYgKzEzNTk3LDggQEAK
IAkJCQlBODcxREVDRDBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydE9iamVjdC5oICovLAog
CQkJCTg1M0NBOUVFMEFFRUM2NTcwMDIzNzJEQyAvKiBSZW5kZXJQYXRoLmNwcCAqLywKIAkJCQk4
NTNDQTlFRjBBRUVDNjU3MDAyMzcyREMgLyogUmVuZGVyUGF0aC5oICovLAorCQkJCTkzOEVCREVD
MEVBMkE0RTUwMENCN0YyMiAvKiBSZW5kZXJRdW90ZS5oICovLAorCQkJCTkzOEVCREVEMEVBMkE0
RTUwMENCN0YyMiAvKiBSZW5kZXJRdW90ZS5jcHAgKi8sCiAJCQkJQTg3MURGREUwQTE1Mzc2QjAw
QjEyQTY4IC8qIFJlbmRlclJlcGxhY2VkLmNwcCAqLywKIAkJCQlBODcxREZERjBBMTUzNzZCMDBC
MTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCAqLywKIAkJCQlCQ0E4NDZENDBEQzY3QTM1MDAyNkMz
MDkgLyogUmVuZGVyUmVwbGljYS5jcHAgKi8sCkBAIC0xNTk4NSw2ICsxNjAwMyw5IEBACiAJCQkJ
MUNGNkJERkEwRTlCQjI2QTAwMjVFMUNEIC8qIE9iakNFdmVudExpc3RlbmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQ0Y2QkUxNTBFOUJCNDY3MDAyNUUxQ0QgLyogT2JqQ05vZGVGaWx0ZXJDb25k
aXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEQ2NzA4MEU5RTlERUIwMEU0MjBGMCAvKiBH
cmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM4
RUJERDUwRUEyQTE4NzAwQ0I3RjIyIC8qIFF1b3Rlc1ZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5MzhFQkREQTBFQTJBMUQwMDBDQjdGMjIgLyogUXVvdGVzRGF0YS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM4RUJERUUwRUEyQTRFNTAwQ0I3RjIyIC8qIFJlbmRlclF1b3RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTE3ODUxLDYgKzE3ODcyLDkgQEAKIAkJCQlCQzNCRTlBQjBFOUMyNDIwMDA4MzU1
ODggLyogUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0Y2QkRG
QjBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlzdGVuZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQ0Y2QkUxNDBFOUJCNDY3MDAyNUUxQ0QgLyogT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24u
bW0gaW4gU291cmNlcyAqLywKKwkJCQk5MzhFQkRENjBFQTJBMTg3MDBDQjdGMjIgLyogUXVvdGVz
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM4RUJEREIwRUEyQTFEMDAwQ0I3RjIyIC8q
IFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM4RUJERUYwRUEyQTRFNTAwQ0I3
RjIyIC8qIFJlbmRlclF1b3RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCShyZXZpc2lvbiAzNzUyNikKKysrIFdl
YkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgiCiAj
aW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNs
dWRlICJDdXJzb3JMaXN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiUGFpci5oIgpJbmRleDogV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lv
biAzNzUyNikKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1
ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgorI2luY2x1ZGUgIlF1b3Rlc1ZhbHVlLmgiCiAj
aW5jbHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlNoYWRvd1ZhbHVlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCkBAIC01NzIsNyArNTczLDYgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAgKi8KIAogICAgIGNhc2UgQ1NTUHJv
cGVydHlTaXplOiAgICAgICAgICAgICAgICAgLy8gPGxlbmd0aD57MSwyfSB8IGF1dG8gfCBwb3J0
cmFpdCB8IGxhbmRzY2FwZSB8IGluaGVyaXQKLSAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOiAg
ICAgICAgICAgICAgIC8vIFs8c3RyaW5nPiA8c3RyaW5nPl0rIHwgbm9uZSB8IGluaGVyaXQKICAg
ICAgICAgaWYgKGlkKQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgYnJlYWs7CkBAIC0xMDM4LDYgKzEwMzgsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFs
dWUoaW50IHByb3BJZCwgYgogICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ291bnRlcihwcm9wSWQs
IDAsIGltcG9ydGFudCk7CiAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6ICAgICAgICAgICAgICAgLy8gWzxz
dHJpbmc+IDxzdHJpbmc+XSsgfCBub25lIHwgaW5oZXJpdAorICAgICAgICBpZiAoaWQgIT0gQ1NT
VmFsdWVOb25lKQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlUXVvdGVzKHByb3BJZCwgaW1wb3J0
YW50KTsKKyAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRGYW1pbHk6CiAgICAgICAgIC8vIFtbIDxmYW1pbHktbmFt
ZT4gfCA8Z2VuZXJpYy1mYW1pbHk+IF0sXSogWzxmYW1pbHktbmFtZT4gfCA8Z2VuZXJpYy1mYW1p
bHk+XSB8IGluaGVyaXQKICAgICB7CkBAIC0xOTg2LDExICsxOTkxLDEwIEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUNvbnRlbnQoaW50IHByb3BJZCwKICAgICAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfSBlbHNlIGlmICh2YWwtPnVuaXQgPT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCkgewotICAgICAgICAgICAgLy8gb3Blbi1xdW90
ZQotICAgICAgICAgICAgLy8gY2xvc2UtcXVvdGUKLSAgICAgICAgICAgIC8vIG5vLW9wZW4tcXVv
dGUKLSAgICAgICAgICAgIC8vIG5vLWNsb3NlLXF1b3RlCi0gICAgICAgICAgICAvLyBGSVhNRTog
VGhlc2UgYXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQgKGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY1MDMpLgorICAgICAgICAgICAgLy8gb3Blbi1xdW90ZSB8IGNsb3NlLXF1
b3RlIHwgbm8tb3Blbi1xdW90ZSB8IG5vLWNsb3NlLXF1b3RlCisgICAgICAgICAgICBpZiAodmFs
LT5pZCA9PSBDU1NWYWx1ZU9wZW5RdW90ZSB8fCB2YWwtPmlkID09IENTU1ZhbHVlQ2xvc2VRdW90
ZQorICAgICAgICAgICAgICAgICAgICB8fCB2YWwtPmlkID09IENTU1ZhbHVlTm9PcGVuUXVvdGUg
fHwgdmFsLT5pZCA9PSBDU1NWYWx1ZU5vQ2xvc2VRdW90ZSkKKyAgICAgICAgICAgICAgICBwYXJz
ZWRWYWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKHZhbC0+aWQpOwog
ICAgICAgICB9IGVsc2UgaWYgKHZhbC0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NU
UklORykgewogICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlKHZhbC0+c3RyaW5nLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORyk7CiAgICAgICAg
IH0KQEAgLTIwMDksNiArMjAxMywzMiBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDb250ZW50KGlu
dCBwcm9wSWQsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisvLyBbPHN0cmluZz4gPHN0cmluZz5d
KyB8IGluaGVyaXQKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZVF1b3RlcyhpbnQgcHJvcElkLCBib29s
IGltcG9ydGFudCkKK3sKKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBxdW90ZXMgPSBDU1NWYWx1
ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisKKyAgICB3aGlsZSAoQ1NTUGFyc2VyVmFs
dWUqIG9wZW5RdW90ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCkpIHsKKyAgICAgICAgaWYgKG9w
ZW5RdW90ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBDU1NQYXJzZXJWYWx1ZSogY2xvc2VRdW90ZSA9
IG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIGlmICghY2xvc2VRdW90ZSB8fCBjbG9zZVF1
b3RlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIHF1b3Rlcy0+YXBwZW5kKFF1b3Rlc1ZhbHVlOjpjcmVh
dGUob3BlblF1b3RlLT5zdHJpbmcsIGNsb3NlUXVvdGUtPnN0cmluZykpOworCisgICAgICAgIG1f
dmFsdWVMaXN0LT5uZXh0KCk7CisgICAgfQorCisgICAgaWYgKHF1b3Rlcy0+bGVuZ3RoKCkpIHsK
KyAgICAgICAgYWRkUHJvcGVydHkocHJvcElkLCBxdW90ZXMucmVsZWFzZSgpLCBpbXBvcnRhbnQp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VCYWNrZ3JvdW5kQ29sb3IoKQog
ewogICAgIGludCBpZCA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCktPmlkOwpJbmRleDogV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgJ
KHJldmlzaW9uIDM3NTI2KQorKysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTExMyw2ICsxMTMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
cGFyc2VDb3VudGVyKGludCBwcm9wSWQsIGludCBkZWZhdWx0VmFsdWUsIGJvb2wgaW1wb3J0YW50
KTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VDb3VudGVyQ29udGVudChDU1NQ
YXJzZXJWYWx1ZUxpc3QqIGFyZ3MsIGJvb2wgY291bnRlcnMpOwogCisgICAgICAgIGJvb2wgcGFy
c2VRdW90ZXMoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOworCiAgICAgICAgIGJvb2wgcGFy
c2VDb2xvclBhcmFtZXRlcnMoQ1NTUGFyc2VyVmFsdWUqLCBpbnQqIGNvbG9yVmFsdWVzLCBib29s
IHBhcnNlQWxwaGEpOwogICAgICAgICBib29sIHBhcnNlSFNMUGFyYW1ldGVycyhDU1NQYXJzZXJW
YWx1ZSosIGRvdWJsZSogY29sb3JWYWx1ZXMsIGJvb2wgcGFyc2VBbHBoYSk7CiAgICAgICAgIFBh
c3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBhcnNlQ29sb3IoQ1NTUGFyc2VyVmFsdWUqID0g
MCk7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCShyZXZpc2lvbiAzNzUyNikKKysr
IFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTks
MjIgKzk5LDI1IEBAIHN0YXRpYyBib29sIGlzQ1NTVG9rZW5pemVyVVJMKGNvbnN0IFN0cmkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotLy8gV2UgdXNlIHNpbmdsZSBxdW90ZXMgZm9yIG5vdyBiZWNh
dXNlIG1hcmt1cC5jcHAgdXNlcyBkb3VibGUgcXVvdGVzLgotc3RhdGljIFN0cmluZyBxdW90ZVN0
cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKy8vIFF1b3RlcyB0aGUgc3RyaW5nIGlmIGl0IG5l
ZWRzIHF1b3RpbmcuCisvLyBXZSB1c2Ugc2luZ2xlIHF1b3RlcyBiZWNhdXNlIHNlcmlhbGl6YXRp
b24gY29kZSB1c2VzIGRvdWJsZSBxdW90ZXMsIGFuZCBpdCdzIG5pY2UgdG8KKy8vIGF2b2lkIGhh
dmluZyB0byB0dXJuIGFsbCB0aGUgcXVvdGUgbWFya3MgaW50byAmcXVvdDsgYXMgd2Ugd291bGQg
aGF2ZSB0by4KK1N0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6cXVvdGVTdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCiB7Ci0gICAgLy8gRklYTUU6IEFsc28gbmVlZCB0byBlc2NhcGUgY2hhcmFj
dGVycyBsaWtlICdcbicuCisgICAgLy8gRklYTUU6IEFsc28gbmVlZCB0byB0cmFuc2Zvcm0gY29u
dHJvbCBjaGFyYWN0ZXJzICgwMC0xRikgaW50byBcIHNlcXVlbmNlcy4KKyAgICAvLyBGSVhNRTog
VGhpcyBpcyBpbmVmZmljaWVudCAtLSBzaG91bGQgdXNlIGEgVmVjdG9yPFVDaGFyPiBpbnN0ZWFk
LgogICAgIFN0cmluZyBzID0gc3RyaW5nOwogICAgIHMucmVwbGFjZSgnXFwnLCAiXFxcXCIpOwog
ICAgIHMucmVwbGFjZSgnXCcnLCAiXFwnIik7CiAgICAgcmV0dXJuICInIiArIHMgKyAiJyI7CiB9
CiAKLXN0YXRpYyBTdHJpbmcgcXVvdGVTdHJpbmdJZk5lZWRlZChjb25zdCBTdHJpbmcmIHN0cmlu
ZykKK1N0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6cXVvdGVTdHJpbmdJZk5lZWRlZChjb25zdCBT
dHJpbmcmIHN0cmluZykKIHsKICAgICByZXR1cm4gaXNDU1NUb2tlbml6ZXJJZGVudGlmaWVyKHN0
cmluZykgPyBzdHJpbmcgOiBxdW90ZVN0cmluZyhzdHJpbmcpOwogfQogCi1zdGF0aWMgU3RyaW5n
IHF1b3RlVVJMSWZOZWVkZWQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitTdHJpbmcgQ1NTUHJpbWl0
aXZlVmFsdWU6OnF1b3RlVVJMSWZOZWVkZWQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAg
cmV0dXJuIGlzQ1NTVG9rZW5pemVyVVJMKHN0cmluZykgPyBzdHJpbmcgOiBxdW90ZVN0cmluZyhz
dHJpbmcpOwogfQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCShyZXZpc2lvbiAzNzUyNikK
KysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3
Miw2ICsxNzIsMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBDU1NQYXJzZXJWYWx1ZSBwYXJz
ZXJWYWx1ZSgpIGNvbnN0OwogCisgICAgc3RhdGljIFN0cmluZyBxdW90ZVN0cmluZyhjb25zdCBT
dHJpbmcmKTsKKyAgICBzdGF0aWMgU3RyaW5nIHF1b3RlU3RyaW5nSWZOZWVkZWQoY29uc3QgU3Ry
aW5nJik7CisgICAgc3RhdGljIFN0cmluZyBxdW90ZVVSTElmTmVlZGVkKGNvbnN0IFN0cmluZyYp
OworCiBwcm90ZWN0ZWQ6CiAgICAgLy8gRklYTUU6IGludCB2cy4gdW5zaWduZWQgb3ZlcmxvYWRp
bmcgaXMgdG9vIHN1YnRsZSB0byBkaXN0aW5ndWlzaCB0aGUgY29sb3IgYW5kIGlkZW50aWZpZXIg
Y2FzZXMuCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUoaW50IGlkZW50KTsKSW5kZXg6IFdlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiAzNzUyNikKKysrIFdlYkNvcmUvY3NzL0NTU1N0eWxl
U2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
Q1NTRm9udEZhY2UuaCIKICNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKICNpbmNsdWRlICJD
U1NGb250RmFjZVNvdXJjZS5oIgorI2luY2x1ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCiAj
aW5jbHVkZSAiQ1NTTnRoU2VsZWN0b3IuaCIKQEAgLTUwLDYgKzUxLDcgQEAKICNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNvdW50ZXIuaCIKICNpbmNsdWRlICJDb3VudGVyQ29u
dGVudC5oIgorI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGb250RmFtaWx5VmFsdWUuaCIKICNpbmNsdWRlICJGb250VmFsdWUu
aCIKQEAgLTY3LDYgKzY5LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdy
b3VwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgorI2luY2x1ZGUgIlF1b3Rlc1ZhbHVlLmgiCiAjaW5j
bHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlJl
bmRlclNjcm9sbGJhclRoZW1lLmgiCkBAIC04OCw3ICs5MSw2IEBACiAjaW5jbHVkZSAiV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgImxv
YWRlci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lmIEVOQUJMRShEQVNIQk9BUkRf
U1VQUE9SVCkKICNpbmNsdWRlICJEYXNoYm9hcmRSZWdpb24uaCIKQEAgLTM5MTAsNiArMzkxMiwy
OCBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAg
ICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY291bnRlciwgZGlkU2V0KTsKICAgICAgICAg
ICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UOiB7CisgICAgICAgICAgICAg
ICAgICAgIFF1b3RlQ29udGVudCBjb250ZW50ID0gUVVPVEVfTk9ORTsKKyAgICAgICAgICAgICAg
ICAgICAgc3dpdGNoICh2YWwtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVPcGVuUXVvdGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGVudCA9IE9QRU5fUVVPVEU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQ2xvc2VRdW90ZToKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gQ0xPU0VfUVVPVEU7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIENTU1Zh
bHVlTm9PcGVuUXVvdGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IE5P
X09QRU5fUVVPVEU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTm9DbG9zZVF1b3RlOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBOT19DTE9TRV9RVU9URTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChj
b250ZW50LCBkaWRTZXQpOworICAgICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFkaWRTZXQpCkBAIC0zOTI0LDYgKzM5NDgsMjYgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICBhcHBseUNv
dW50ZXJMaXN0KG1fc3R5bGUsIHZhbHVlLT5pc1ZhbHVlTGlzdCgpID8gc3RhdGljX2Nhc3Q8Q1NT
VmFsdWVMaXN0Kj4odmFsdWUpIDogMCwgdHJ1ZSk7CiAgICAgICAgIHJldHVybjsKIAorICAgIGNh
c2UgQ1NTUHJvcGVydHlRdW90ZXM6CisgICAgICAgIGlmIChpc0luaGVyaXQpCisgICAgICAgICAg
ICBtX3N0eWxlLT5zZXRRdW90ZXMobV9wYXJlbnRTdHlsZS0+cXVvdGVzKCkgPyBuZXcgUXVvdGVz
RGF0YSgqbV9wYXJlbnRTdHlsZS0+cXVvdGVzKCkpIDogMCk7CisgICAgICAgIGVsc2UgaWYgKGlz
SW5pdGlhbCB8fCAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkg
PT0gQ1NTVmFsdWVOb25lKSkKKyAgICAgICAgICAgIG1fc3R5bGUtPnNldFF1b3RlcygwKTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgQ1NTVmFsdWVMaXN0KiBsaXN0ID0g
c3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworICAgICAgICAgICAgaW50IGxlbiA9
IGxpc3QtPmxlbmd0aCgpOworICAgICAgICAgICAgUXVvdGVzRGF0YSogcXVvdGVzID0gbmV3IFF1
b3Rlc0RhdGE7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7Cisg
ICAgICAgICAgICAgICAgUXVvdGVzVmFsdWUqIHZhbCA9IHN0YXRpY19jYXN0PFF1b3Rlc1ZhbHVl
Kj4obGlzdC0+aXRlbShpKSk7CisgICAgICAgICAgICAgICAgcXVvdGVzLT5hZGRMZXZlbCh2YWwt
Pm9wZW5RdW90ZSgpLCB2YWwtPmNsb3NlUXVvdGUoKSk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBtX3N0eWxlLT5zZXRRdW90ZXMocXVvdGVzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm47CisKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udEZhbWlseTogewogICAgICAgICAvLyBsaXN0
IG9mIHN0cmluZ3MgYW5kIGlkcwogICAgICAgICBpZiAoaXNJbmhlcml0KSB7CkBAIC00OTUzLDcg
KzQ5OTcsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0cmV0Y2g6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVBhZ2U6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3RlczoKICAgICBjYXNlIENT
U1Byb3BlcnR5U2Nyb2xsYmFyM2RsaWdodENvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3Jv
bGxiYXJBcnJvd0NvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlTY3JvbGxiYXJEYXJrc2hhZG93
Q29sb3I6CkluZGV4OiBXZWJDb3JlL2Nzcy9Gb250RmFtaWx5VmFsdWUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvY3NzL0ZvbnRGYW1pbHlWYWx1ZS5jcHAJKHJldmlzaW9uIDM3NTI2KQorKysg
V2ViQ29yZS9jc3MvRm9udEZhbWlseVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNDMg
KzIzLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogVGhpcyBhcHBlYXJz
IGlkZW50aWNhbCB0byBpc0NTU1Rva2VuaXplcklkZW50aWZpZXIgZnJvbSBDU1NQcmltaXRpdmVW
YWx1ZS5jcHAsIHdlIHNob3VsZCB1c2UgYSBzaW5nbGUgZnVuY3Rpb24uCi1zdGF0aWMgYm9vbCBp
c1ZhbGlkQ1NTSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIHN0cmluZykKLXsKLSAgICB1bnNpZ25l
ZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Ci0gICAgaWYgKCFsZW5ndGgpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gc3RyaW5nLmNoYXJh
Y3RlcnMoKTsKLSAgICBVQ2hhciBjID0gY2hhcmFjdGVyc1swXTsKLSAgICBpZiAoIShjID09ICdf
JyB8fCAoYyA+PSAnYScgJiYgYyA8PSAneicpIHx8IChjID49ICdBJyAmJiBjIDw9ICdaJykgfHwg
YyA9PSAnLScgfHwgYyA+PSAweDgwKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMTsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGMgPSBjaGFyYWN0
ZXJzW2ldOwotICAgICAgICBpZiAoIShjID09ICdfJyB8fCAoYyA+PSAnYScgJiYgYyA8PSAneicp
IHx8IChjID49ICdBJyAmJiBjIDw9ICdaJykgfHwgKGMgPj0gJzAnICYmIGMgPD0gJzknKSB8fCBj
ID09ICctJyB8fCBjID49IDB4ODApKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LQotICAgIHJldHVybiB0cnVlOwotfQotCi0vLyBRdW90ZXMgdGhlIHN0cmluZyBpZiBpdCBuZWVk
cyBxdW90aW5nLgotLy8gV2UgdXNlIHNpbmdsZSBxdW90ZXMgYmVjYXVzZSBzZXJpYWxpemF0aW9u
IGNvZGUgdXNlcyBkb3VibGUgcXVvdGVzLCBhbmQgaXQncyBuaWNlIHRvCi0vLyBhdm9pZCBoYXZp
bmcgdG8gdHVybiBhbGwgdGhlIHF1b3RlIG1hcmtzIGludG8gJnF1b3Q7IGFzIHdlIHdvdWxkIGhh
dmUgdG8uCi1zdGF0aWMgU3RyaW5nIHF1b3RlU3RyaW5nSWZOZWVkZWQoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCi17Ci0gICAgaWYgKGlzVmFsaWRDU1NJZGVudGlmaWVyKHN0cmluZykpCi0gICAgICAg
IHJldHVybiBzdHJpbmc7Ci0KLSAgICAvLyBGSVhNRTogQWxzbyBuZWVkIHRvIHRyYW5zZm9ybSBj
b250cm9sIGNoYXJhY3RlcnMgKDAwLTFGKSBpbnRvIFwgc2VxdWVuY2VzLgotICAgIC8vIEZJWE1F
OiBUaGlzIGlzIGluZWZmaWNpZW50IC0tIHNob3VsZCB1c2UgYSBWZWN0b3I8VUNoYXI+IGluc3Rl
YWQuCi0gICAgU3RyaW5nIHF1b3RlZFN0cmluZyA9IHN0cmluZzsKLSAgICBxdW90ZWRTdHJpbmcu
cmVwbGFjZSgnXFwnLCAiXFxcXCIpOwotICAgIHF1b3RlZFN0cmluZy5yZXBsYWNlKCdcJycsICJc
XCciKTsKLSAgICByZXR1cm4gIiciICsgcXVvdGVkU3RyaW5nICsgIiciOwotfQotCiBGb250RmFt
aWx5VmFsdWU6OkZvbnRGYW1pbHlWYWx1ZShjb25zdCBTdHJpbmcmIGZhbWlseU5hbWUpCiAgICAg
OiBDU1NQcmltaXRpdmVWYWx1ZShTdHJpbmcoKSwgQ1NTX1NUUklORykKICAgICAsIG1fZmFtaWx5
TmFtZShmYW1pbHlOYW1lKQpJbmRleDogV2ViQ29yZS9jc3MvUXVvdGVzVmFsdWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvY3NzL1F1b3Rlc1ZhbHVlLmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvY3NzL1F1b3Rlc1ZhbHVlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBWaW5jZW50IFJpY2FyZCAobWFnaWNAbWFnaWNuaW5q
YS5vcmcpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUXVvdGVzVmFsdWUuaCIK
KworI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiU3RyaW5nQnVpbGRl
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBRdW90ZXNWYWx1ZTo6Y3NzVGV4
dCgpIGNvbnN0Cit7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisKKyAgICAvLyBGSVhNRTog
U2hvdWxkIHRoaXMgYmUgdXNpbmcgcXVvdGVTdHJpbmdJZk5lZWRlZCBpbnN0ZWFkPworICAgIHJl
c3VsdC5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6OnF1b3RlU3RyaW5nKG1fb3BlblF1b3RlKSk7
CisgICAgcmVzdWx0LmFwcGVuZCgnICcpOworICAgIHJlc3VsdC5hcHBlbmQoQ1NTUHJpbWl0aXZl
VmFsdWU6OnF1b3RlU3RyaW5nKG1fY2xvc2VRdW90ZSkpOworCisgICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOworfQorCit9CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL2Nzcy9RdW90
ZXNWYWx1ZS5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJ
bmRleDogV2ViQ29yZS9jc3MvUXVvdGVzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nz
cy9RdW90ZXNWYWx1ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9jc3MvUXVvdGVzVmFsdWUu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBWaW5jZW50IFJpY2FyZCAobWFnaWNAbWFnaWNuaW5qYS5vcmcpCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFF1b3Rl
c1ZhbHVlX2gKKyNkZWZpbmUgUXVvdGVzVmFsdWVfaAorCisjaW5jbHVkZSAiQXRvbWljU3RyaW5n
LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBRdW90ZXNWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8UXVvdGVzVmFsdWU+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIG9wZW5RdW90
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBjbG9zZVF1b3RlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBRdW90ZXNWYWx1ZShvcGVuUXVvdGUsIGNsb3NlUXVvdGUpKTsKKyAgICB9
CisKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG9wZW5RdW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
b3BlblF1b3RlOyB9CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjbG9zZVF1b3RlKCkgY29uc3Qg
eyByZXR1cm4gbV9jbG9zZVF1b3RlOyB9CisKK3ByaXZhdGU6CisgICAgUXVvdGVzVmFsdWUoY29u
c3QgQXRvbWljU3RyaW5nJiBvcGVuUXVvdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgY2xvc2VRdW90
ZSkKKyAgICAgICAgOiBtX29wZW5RdW90ZShvcGVuUXVvdGUpCisgICAgICAgICwgbV9jbG9zZVF1
b3RlKGNsb3NlUXVvdGUpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgU3RyaW5nIGNzc1Rl
eHQoKSBjb25zdDsKKworICAgIEF0b21pY1N0cmluZyBtX29wZW5RdW90ZTsKKyAgICBBdG9taWNT
dHJpbmcgbV9jbG9zZVF1b3RlOworfTsKKworfSAvLyBuYW1lc3BhY2UKKworI2VuZGlmCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL2Nzcy9RdW90ZXNWYWx1ZS5oCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFt
ZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFdlYkNvcmUvY3NzL2h0bWw0LmNz
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9odG1sNC5jc3MJKHJldmlzaW9uIDM3NTI2KQor
KysgV2ViQ29yZS9jc3MvaHRtbDQuY3NzCSh3b3JraW5nIGNvcHkpCkBAIC05MSwxMyArOTEsMTEg
QEAgcSB7CiB9CiAKIHE6YmVmb3JlIHsKLSAgICBjb250ZW50OiAnIicKLSAgICAvKiBGSVhNRTog
Y29udGVudDogb3Blbi1xdW90ZTsgKi8KKyAgICBjb250ZW50OiBvcGVuLXF1b3RlOwogfQogCiBx
OmFmdGVyIHsKLSAgICBjb250ZW50OiAnIicKLSAgICAvKiBGSVhNRTogY29udGVudDogY2xvc2Ut
cXVvdGU7ICovCisgICAgY29udGVudDogY2xvc2UtcXVvdGU7CiB9CiAKIGNlbnRlciB7CkluZGV4
OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gMzc1MjYpCisrKyBXZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ3Vy
c29yLmgiCisjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmNwcAkocmV2aXNpb24gMzc1MjYpCisrKyBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQg
KzEsNCBAQAotLyoqCisvKgogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xs
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3Rv
QGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtk
ZS5vcmcpCkBAIC0yNywxMSArMjcsMTMgQEAKICNpbmNsdWRlICJSZW5kZXJDb250YWluZXIuaCIK
IAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJDb250ZW50RGF0YS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyQ291bnRlci5oIgogI2luY2x1
ZGUgIlJlbmRlckltYWdlR2VuZXJhdGVkQ29udGVudC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKKyNpbmNsdWRlICJSZW5kZXJRdW90ZS5o
IgogI2luY2x1ZGUgIlJlbmRlclRhYmxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dEZyYWdtZW50
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMzY1LDYgKzM2NywxMCBAQCB2b2lkIFJl
bmRlckNvbnRhaW5lcjo6dXBkYXRlQmVmb3JlQWZ0ZXJDCiAgICAgICAgICAgICAgICAgcmVuZGVy
ZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckNvdW50ZXIoZG9jdW1lbnQoKSwgKmNvbnRl
bnQtPm1fY29udGVudC5tX2NvdW50ZXIpOwogICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRT
dHlsZShwc2V1ZG9FbGVtZW50U3R5bGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3
IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJRdW90ZShkb2N1bWVudCgpLCBjb250ZW50LT5tX2NvbnRl
bnQubV9xdW90ZSk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0Vs
ZW1lbnRTdHlsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVuZGVyZXIpIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2
aXNpb24gMzc1MjYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5o
IgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVk
ZSAiQ29udGVudERhdGEuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1l
bnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCShyZXZpc2lvbiAzNzUyNikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsNiArMjc1LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0xpc3RNYXJrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc01lZGlhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNNZW51TGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29s
IGlzUXVvdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Jl
bmRlckJsb2NrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
UmVuZGVySW5saW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclF1b3RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJRdW90ZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJR
dW90ZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA4IFZpbmNlbnQgUmljYXJkIChtYWdpY0BtYWdpY25pbmphLm9yZykKKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJRdW90ZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlbmRlclF1b3RlOjpSZW5kZXJRdW90ZShEb2N1bWVudCogZG9jdW1lbnQsIFF1
b3RlQ29udGVudCBxdW90ZSkKKyAgICA6IFJlbmRlclRleHQoZG9jdW1lbnQsIFN0cmluZ0ltcGw6
OmVtcHR5KCkpCisgICAgLCBtX3F1b3RlKHF1b3RlKQorICAgICwgbV9uZWVkc0NvbXB1dGVMZXZl
bCh0cnVlKQorICAgICwgbV9sZXZlbCgwKQoreworfQorCitjb25zdCBjaGFyKiBSZW5kZXJRdW90
ZTo6cmVuZGVyTmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJSZW5kZXJRdW90ZSI7Cit9CisK
K2Jvb2wgUmVuZGVyUXVvdGU6OmlzUXVvdGUoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOwor
fQorCitpbmxpbmUgYm9vbCBSZW5kZXJRdW90ZTo6aXNWaXNpYmxlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gKG1fcXVvdGUgPT0gT1BFTl9RVU9URSB8fCBtX3F1b3RlID09IENMT1NFX1FVT1RFKSAm
JiBtX2xldmVsID49IDA7Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OmNvbXB1dGVMZXZlbCgpIGNv
bnN0Cit7CisgICAgaW50IGxldmVsID0gMDsKKworICAgIGNvbnN0IFJlbmRlck9iamVjdCogcHJl
dmlvdXNPYmplY3QgPSB0aGlzOworICAgIHdoaWxlICgocHJldmlvdXNPYmplY3QgPSBwcmV2aW91
c09iamVjdC0+cHJldmlvdXNJblByZU9yZGVyKCkpKSB7CisgICAgICAgIGlmIChwcmV2aW91c09i
amVjdC0+aXNRdW90ZSgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHBy
ZXZpb3VzT2JqZWN0KSB7CisgICAgICAgIGNvbnN0IFJlbmRlclF1b3RlKiBwcmV2aW91c1F1b3Rl
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgUmVuZGVyUXVvdGUqPihwcmV2aW91c09iamVjdCk7CisKKyAg
ICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGJldHRlciB0byBoYXZlIGEgbm9uLXJlY3Vyc2l2
ZSBhbGdvcml0aG0uCisgICAgICAgIC8vIFRoaXMgY291bGQgcnVuIG91dCBvZiBzdGFjayBzcGFj
ZSBpZiB0aGVyZSBhcmUgYSBsb3Qgb2YgUmVuZGVyUXVvdGUgaW4gYSByb3cuCisgICAgICAgIGlm
IChwcmV2aW91c1F1b3RlLT5tX25lZWRzQ29tcHV0ZUxldmVsKQorICAgICAgICAgICAgcHJldmlv
dXNRdW90ZS0+Y29tcHV0ZUxldmVsKCk7CisKKyAgICAgICAgbGV2ZWwgPSBwcmV2aW91c1F1b3Rl
LT5tX2xldmVsOworCisgICAgICAgIHN3aXRjaCAocHJldmlvdXNRdW90ZS0+bV9xdW90ZSkgewor
ICAgICAgICAgICAgY2FzZSBRVU9URV9OT05FOgorICAgICAgICAgICAgY2FzZSBDTE9TRV9RVU9U
RToKKyAgICAgICAgICAgIGNhc2UgTk9fQ0xPU0VfUVVPVEU6CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIE9QRU5fUVVPVEU6CisgICAgICAgICAgICBjYXNlIE5PX09Q
RU5fUVVPVEU6CisgICAgICAgICAgICAgICAgKytsZXZlbDsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIElmIHdlIGFyZSBhICdjbG9zZS1xdW90ZScs
IHdlIGhhdmUgdG8gZGVjcmVtZW50IHRoZSBsZXZlbAorICAgIHN3aXRjaCAobV9xdW90ZSkgewor
ICAgICAgICBjYXNlIFFVT1RFX05PTkU6CisgICAgICAgIGNhc2UgT1BFTl9RVU9URToKKyAgICAg
ICAgY2FzZSBOT19PUEVOX1FVT1RFOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q0xPU0VfUVVPVEU6CisgICAgICAgIGNhc2UgTk9fQ0xPU0VfUVVPVEU6CisgICAgICAgICAgICAt
LWxldmVsOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgbV9sZXZlbCA9IGxldmVs
OworICAgIG1fbmVlZHNDb21wdXRlTGV2ZWwgPSBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxTdHJp
bmdJbXBsPiBSZW5kZXJRdW90ZTo6b3JpZ2luYWxUZXh0KCkgY29uc3QKK3sKKyAgICBpZiAoIXBh
cmVudCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKworICAgIGlmICgh
bV9xdW90ZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7CisKKyAgICAvLyBD
b21wdXRlIGxldmVsCisgICAgaWYgKG1fbmVlZHNDb21wdXRlTGV2ZWwpCisgICAgICAgIGNvbXB1
dGVMZXZlbCgpOworCisgICAgLy8gV2UgbmVlZCB0aGUgbGV2ZWwgdG8gY2hlY2sgdGhlIHZpc2li
aWxpdHkgb2YgdGhlIHF1b3RlCisgICAgaWYgKCFpc1Zpc2libGUoKSkKKyAgICAgICAgcmV0dXJu
IFN0cmluZ0ltcGw6OmVtcHR5KCk7CisKKyAgICBRdW90ZXNEYXRhKiBxdW90ZXMgPSBzdHlsZSgp
LT5xdW90ZXMoKTsKKyAgICBpZiAoIXF1b3RlcykgeworICAgICAgICAvLyBXZSBoYXZlICJxdW90
ZXM6IG5vbmU7Iiwgc28gd2UgTVVTVCBOT1QgcHJvZHVjZSBxdW90YXRpb24gbWFyay4KKyAgICAg
ICAgcmV0dXJuIFN0cmluZ0ltcGw6OmVtcHR5KCk7CisgICAgfQorCisgICAgc3dpdGNoIChtX3F1
b3RlKSB7CisgICAgICAgIGNhc2UgT1BFTl9RVU9URToKKyAgICAgICAgICAgIHJldHVybiBxdW90
ZXMtPm9wZW5RdW90ZShtX2xldmVsKS5pbXBsKCk7CisgICAgICAgIGNhc2UgQ0xPU0VfUVVPVEU6
CisgICAgICAgICAgICByZXR1cm4gcXVvdGVzLT5jbG9zZVF1b3RlKG1fbGV2ZWwpLmltcGwoKTsK
KyAgICAgICAgY2FzZSBRVU9URV9OT05FOgorICAgICAgICBjYXNlIE5PX09QRU5fUVVPVEU6Cisg
ICAgICAgIGNhc2UgTk9fQ0xPU0VfUVVPVEU6CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nSW1wbDo6ZW1wdHko
KTsKK30KKwordm9pZCBSZW5kZXJRdW90ZTo6ZGlydHlMaW5lQm94ZXMoYm9vbCBmdWxsTGF5b3V0
LCBib29sIGR1bW15KQoreworICAgIHNldFRleHRJbnRlcm5hbChvcmlnaW5hbFRleHQoKSk7Cisg
ICAgUmVuZGVyVGV4dDo6ZGlydHlMaW5lQm94ZXMoZnVsbExheW91dCwgZHVtbXkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJRdW90ZS5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsg
bmF0aXZlCgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBWaW5jZW50IFJpY2FyZCAobWFnaWNAbWFnaWNu
aW5qYS5vcmcpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICoKKyAqLworCisjaWZuZGVmIFJlbmRlclF1b3RlX2gKKyNkZWZpbmUgUmVuZGVyUXVvdGVf
aAorCisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFJlbmRlclF1b3RlIDogcHVibGljIFJlbmRlclRleHQgeworcHVibGljOgorICAgIFJlbmRl
clF1b3RlKERvY3VtZW50KiwgUXVvdGVDb250ZW50KTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFs
IGJvb2wgaXNRdW90ZSgpIGNvbnN0OworCisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJO
YW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFs
VGV4dCgpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIGRpcnR5TGluZUJveGVzKGJvb2wsIGJv
b2wpOworCisgICAgYm9vbCBpc1Zpc2libGUoKSBjb25zdDsKKyAgICB2b2lkIGNvbXB1dGVMZXZl
bCgpIGNvbnN0OworCisgICAgUXVvdGVDb250ZW50IG1fcXVvdGU7CisgICAgbXV0YWJsZSBib29s
IG1fbmVlZHNDb21wdXRlTGV2ZWw7CisgICAgbXV0YWJsZSBpbnQgbV9sZXZlbDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclF1b3RlX2gKClByb3BlcnR5
IGNoYW5nZXMgb246IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpO
YW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZS5oCShyZXZpc2lvbiAzNzUyNikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYgUmVuZGVyVGFibGVfaAog
I2RlZmluZSBSZW5kZXJUYWJsZV9oCiAKKyNpbmNsdWRlICJDb2xsYXBzZWRCb3JkZXJWYWx1ZS5o
IgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwCShyZXZpc2lvbiAzNzUy
NikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNiArMzIsNyBAQCB2b2lkIENvbnRlbnREYXRhOjpjbGVhcigpCiB7CiAgICAg
c3dpdGNoIChtX3R5cGUpIHsKICAgICAgICAgY2FzZSBDT05URU5UX05PTkU6CisgICAgICAgIGNh
c2UgQ09OVEVOVF9RVU9URToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENPTlRF
TlRfT0JKRUNUOgogICAgICAgICAgICAgbV9jb250ZW50Lm1faW1hZ2UtPmRlcmVmKCk7CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmgJKHJldmlzaW9uIDM3NTI2KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAt
NTMsNiArNTMsNyBAQCBzdHJ1Y3QgQ29udGVudERhdGEgOiBOb25jb3B5YWJsZSB7CiAgICAgICAg
IFN0eWxlSW1hZ2UqIG1faW1hZ2U7CiAgICAgICAgIFN0cmluZ0ltcGwqIG1fdGV4dDsKICAgICAg
ICAgQ291bnRlckNvbnRlbnQqIG1fY291bnRlcjsKKyAgICAgICAgUXVvdGVDb250ZW50IG1fcXVv
dGU7CiAgICAgfSBtX2NvbnRlbnQ7CiAgICAgQ29udGVudERhdGEqIG1fbmV4dDsKIH07CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordm9pZCBRdW90ZXNEYXRhOjphZGRMZXZlbChjb25zdCBBdG9taWNTdHJp
bmcmIG9wZW4sIGNvbnN0IEF0b21pY1N0cmluZyYgY2xvc2UpCit7CisgICAgbV9vcGVuUXVvdGVz
LmFwcGVuZChvcGVuKTsKKyAgICBtX2Nsb3NlUXVvdGVzLmFwcGVuZChjbG9zZSk7Cit9CisKK2Nv
bnN0IEF0b21pY1N0cmluZyYgUXVvdGVzRGF0YTo6b3BlblF1b3RlKHVuc2lnbmVkIGxldmVsKSBj
b25zdAoreworICAgIHNpemVfdCBzaXplID0gbV9vcGVuUXVvdGVzLnNpemUoKTsKKworICAgIGlm
ICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKKworICAgIGlmIChsZXZlbCA+PSBz
aXplKQorICAgICAgICBsZXZlbCA9IHNpemUgLSAxOworCisgICAgcmV0dXJuIG1fb3BlblF1b3Rl
c1tsZXZlbF07Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgUXVvdGVzRGF0YTo6Y2xvc2VRdW90
ZSh1bnNpZ25lZCBsZXZlbCkgY29uc3QKK3sKKyAgICBzaXplX3Qgc2l6ZSA9IG1fY2xvc2VRdW90
ZXMuc2l6ZSgpOworCisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm4gZW1wdHlBdG9tOwor
CisgICAgaWYgKGxldmVsID49IHNpemUpCisgICAgICAgIGxldmVsID0gc2l6ZSAtIDE7CisKKyAg
ICByZXR1cm4gbV9jbG9zZVF1b3Rlc1tsZXZlbF07Cit9CisKK2Jvb2wgUXVvdGVzRGF0YTo6b3Bl
cmF0b3I9PShjb25zdCBRdW90ZXNEYXRhJiBvKSBjb25zdAoreworICAgIHJldHVybiBtX29wZW5R
dW90ZXMgPT0gby5tX29wZW5RdW90ZXMgJiYgbV9jbG9zZVF1b3RlcyA9PSBvLm1fY2xvc2VRdW90
ZXM7Cit9CisKK30KClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1F1b3Rlc0RhdGEuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2
ZQoKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmgJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBRdW90ZXNEYXRhX2gKKyNkZWZpbmUgUXVvdGVzRGF0YV9oCisKKyNpbmNsdWRl
ICJBdG9taWNTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBRdW90ZXNE
YXRhIHsKK3B1YmxpYzoKKyAgICB2b2lkIGFkZExldmVsKGNvbnN0IEF0b21pY1N0cmluZyYgb3Bl
biwgY29uc3QgQXRvbWljU3RyaW5nJiBjbG9zZSk7CisKKyAgICBjb25zdCBBdG9taWNTdHJpbmcm
IG9wZW5RdW90ZSh1bnNpZ25lZCBsZXZlbCkgY29uc3Q7CisgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBjbG9zZVF1b3RlKHVuc2lnbmVkIGxldmVsKSBjb25zdDsKKworICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBRdW90ZXNEYXRhJiBvKSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3Qg
UXVvdGVzRGF0YSYgbykgY29uc3QgeworICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV9vcGVuUXVvdGVzOwor
ICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IG1fY2xvc2VRdW90ZXM7Cit9OworCit9CisKKyNlbmRp
ZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0
YS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDM3NTI2KQorKysg
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMiw4ICsyMiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclN0
eWxlLmgiCiAKKyNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxl
Y3Rvci5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiQ29udGVudERhdGEu
aCIKICNpbmNsdWRlICJDb3VudGVyQ29udGVudC5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5o
IgogI2luY2x1ZGUgIlJlbmRlckFyZW5hLmgiCkBAIC0zNjksNiArMzcxLDggQEAgUmVuZGVyU3R5
bGU6OkRpZmYgUmVuZGVyU3R5bGU6OmRpZmYoY29ucwogCiAgICAgICAgIGlmICghcmFyZUluaGVy
aXRlZERhdGEtPnNoYWRvd0RhdGFFcXVpdmFsZW50KCpvdGhlci0+cmFyZUluaGVyaXRlZERhdGEu
Z2V0KCkpKQogICAgICAgICAgICAgcmV0dXJuIExheW91dDsKKyAgICAgICAgaWYgKCFyYXJlSW5o
ZXJpdGVkRGF0YS0+cXVvdGVzRGF0YUVxdWl2YWxlbnQoKm90aGVyLT5yYXJlSW5oZXJpdGVkRGF0
YS5nZXQoKSkpCisgICAgICAgICAgICByZXR1cm4gTGF5b3V0OwogCiAgICAgICAgIGlmICh0ZXh0
U3Ryb2tlV2lkdGgoKSAhPSBvdGhlci0+dGV4dFN0cm9rZVdpZHRoKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gTGF5b3V0OwpAQCAtNTQ5LDYgKzU1MywxMCBAQCBib29sIFJlbmRlclN0eWxlOjpjb250
ZW50RGF0YUVxdWl2YWxlbnQoCiAgICAgICAgICAgICAgICAgaWYgKCpjMS0+bV9jb250ZW50Lm1f
Y291bnRlciAhPSAqYzItPm1fY29udGVudC5tX2NvdW50ZXIpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
Q09OVEVOVF9RVU9URToKKyAgICAgICAgICAgICAgICBpZiAoYzEtPm1fY29udGVudC5tX3F1b3Rl
ICE9IGMyLT5tX2NvbnRlbnQubV9xdW90ZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKICAgICAgICAgYzEgPSBj
MS0+bV9uZXh0OwpAQCAtNTY0LDExICs1NzIsOCBAQCB2b2lkIFJlbmRlclN0eWxlOjpjbGVhckNv
bnRlbnQoKQogICAgICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9jb250ZW50LT5jbGVhcigp
OwogfQogCi12b2lkIFJlbmRlclN0eWxlOjpzZXRDb250ZW50KFBhc3NSZWZQdHI8U3R5bGVJbWFn
ZT4gaW1hZ2UsIGJvb2wgYWRkKQorQ29udGVudERhdGEqIFJlbmRlclN0eWxlOjpuZXdDb250ZW50
RGF0YU5vZGUoYm9vbCBhZGQpCiB7Ci0gICAgaWYgKCFpbWFnZSkKLSAgICAgICAgcmV0dXJuOyAv
LyBUaGUgb2JqZWN0IGlzIG51bGwuIE5vdGhpbmcgdG8gZG8uIEp1c3QgYmFpbC4KLQogICAgIE93
blB0cjxDb250ZW50RGF0YT4mIGNvbnRlbnQgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9jb250ZW50OwogICAgIENvbnRlbnREYXRhKiBsYXN0Q29udGVudCA9IGNvbnRlbnQuZ2V0
KCk7CiAgICAgd2hpbGUgKGxhc3RDb250ZW50ICYmIGxhc3RDb250ZW50LT5tX25leHQpCkBAIC01
ODcsNiArNTkyLDE1IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoUGFzc1JlZlB0cjwK
ICAgICBlbHNlCiAgICAgICAgIGNvbnRlbnQuc2V0KG5ld0NvbnRlbnREYXRhKTsKIAorICAgIHJl
dHVybiBuZXdDb250ZW50RGF0YTsKK30KKwordm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29udGVudChQ
YXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGltYWdlLCBib29sIGFkZCkKK3sKKyAgICBpZiAoIWltYWdl
KQorICAgICAgICByZXR1cm47IC8vIFRoZSBvYmplY3QgaXMgbnVsbC4gTm90aGluZyB0byBkby4g
SnVzdCBiYWlsLgorCisgICAgQ29udGVudERhdGEqIG5ld0NvbnRlbnREYXRhID0gbmV3Q29udGVu
dERhdGFOb2RlKGFkZCk7CiAgICAgbmV3Q29udGVudERhdGEtPm1fY29udGVudC5tX2ltYWdlID0g
aW1hZ2UucmVsZWFzZVJlZigpOwogICAgIG5ld0NvbnRlbnREYXRhLT5tX3R5cGUgPSBDT05URU5U
X09CSkVDVDsKIH0KQEAgLTYxNSw3ICs2MjksNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRDb250
ZW50KFN0cmluZ0ltcGwqCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBDb250ZW50RGF0YSogbmV3
Q29udGVudERhdGEgPSAwOworICAgIENvbnRlbnREYXRhKiBuZXdDb250ZW50RGF0YTsKICAgICBp
ZiAocmV1c2VDb250ZW50ICYmIGNvbnRlbnQpIHsKICAgICAgICAgY29udGVudC0+Y2xlYXIoKTsK
ICAgICAgICAgbmV3Q29udGVudERhdGEgPSBjb250ZW50LnJlbGVhc2UoKTsKQEAgLTYzNywyOCAr
NjUxLDIxIEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoQ291bnRlckNvbnQKICAgICBp
ZiAoIWMpCiAgICAgICAgIHJldHVybjsKIAotICAgIE93blB0cjxDb250ZW50RGF0YT4mIGNvbnRl
bnQgPSByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9jb250ZW50OwotICAgIENvbnRl
bnREYXRhKiBsYXN0Q29udGVudCA9IGNvbnRlbnQuZ2V0KCk7Ci0gICAgd2hpbGUgKGxhc3RDb250
ZW50ICYmIGxhc3RDb250ZW50LT5tX25leHQpCi0gICAgICAgIGxhc3RDb250ZW50ID0gbGFzdENv
bnRlbnQtPm1fbmV4dDsKLQotICAgIGJvb2wgcmV1c2VDb250ZW50ID0gIWFkZDsKLSAgICBDb250
ZW50RGF0YSogbmV3Q29udGVudERhdGEgPSAwOwotICAgIGlmIChyZXVzZUNvbnRlbnQgJiYgY29u
dGVudCkgewotICAgICAgICBjb250ZW50LT5jbGVhcigpOwotICAgICAgICBuZXdDb250ZW50RGF0
YSA9IGNvbnRlbnQucmVsZWFzZSgpOwotICAgIH0gZWxzZQotICAgICAgICBuZXdDb250ZW50RGF0
YSA9IG5ldyBDb250ZW50RGF0YTsKLQotICAgIGlmIChsYXN0Q29udGVudCAmJiAhcmV1c2VDb250
ZW50KQotICAgICAgICBsYXN0Q29udGVudC0+bV9uZXh0ID0gbmV3Q29udGVudERhdGE7Ci0gICAg
ZWxzZQotICAgICAgICBjb250ZW50LnNldChuZXdDb250ZW50RGF0YSk7Ci0KKyAgICBDb250ZW50
RGF0YSogbmV3Q29udGVudERhdGEgPSBuZXdDb250ZW50RGF0YU5vZGUoYWRkKTsKICAgICBuZXdD
b250ZW50RGF0YS0+bV9jb250ZW50Lm1fY291bnRlciA9IGM7CiAgICAgbmV3Q29udGVudERhdGEt
Pm1fdHlwZSA9IENPTlRFTlRfQ09VTlRFUjsKIH0KIAordm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29u
dGVudChRdW90ZUNvbnRlbnQgcSwgYm9vbCBhZGQpCit7CisgICAgaWYgKCFxKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBDb250ZW50RGF0YSogbmV3Q29udGVudERhdGEgPSBuZXdDb250ZW50RGF0
YU5vZGUoYWRkKTsKKyAgICBuZXdDb250ZW50RGF0YS0+bV9jb250ZW50Lm1fcXVvdGUgPSBxOwor
ICAgIG5ld0NvbnRlbnREYXRhLT5tX3R5cGUgPSBDT05URU5UX1FVT1RFOworfQorCiB2b2lkIFJl
bmRlclN0eWxlOjphcHBseVRyYW5zZm9ybShBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29u
c3QgSW50U2l6ZSYgYm9yZGVyQm94U2l6ZSwgYm9vbCBpbmNsdWRlVHJhbnNmb3JtT3JpZ2luKSBj
b25zdAogewogICAgIC8vIHRyYW5zZm9ybS1vcmlnaW4gYnJhY2tldHMgdGhlIHRyYW5zZm9ybSB3
aXRoIHRyYW5zbGF0ZSBvcGVyYXRpb25zLgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCShyZXZpc2lvbiAzNzUyNikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDMyICsyNSw5IEBACiAjaWZuZGVmIFJl
bmRlclN0eWxlX2gKICNkZWZpbmUgUmVuZGVyU3R5bGVfaAogCi0jaW5jbHVkZSAiQWZmaW5lVHJh
bnNmb3JtLmgiCiAjaW5jbHVkZSAiQW5pbWF0aW9uTGlzdC5oIgotI2luY2x1ZGUgIkJvcmRlckRh
dGEuaCIKLSNpbmNsdWRlICJCb3JkZXJWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0hlbHBlci5oIgot
I2luY2x1ZGUgIkNTU0ltYWdlR2VuZXJhdG9yVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NQcmltaXRp
dmVWYWx1ZS5oIgotI2luY2x1ZGUgIkNTU1JlZmxlY3Rpb25EaXJlY3Rpb24uaCIKLSNpbmNsdWRl
ICJDU1NWYWx1ZUxpc3QuaCIKLSNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkNv
bGxhcHNlZEJvcmRlclZhbHVlLmgiCi0jaW5jbHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJDb250
ZW50RGF0YS5oIgotI2luY2x1ZGUgIkNvdW50ZXJEaXJlY3RpdmVzLmgiCi0jaW5jbHVkZSAiQ3Vy
c29yTGlzdC5oIgogI2luY2x1ZGUgIkRhdGFSZWYuaCIKLSNpbmNsdWRlICJGaWxsTGF5ZXIuaCIK
LSNpbmNsdWRlICJGbG9hdFBvaW50LmgiCi0jaW5jbHVkZSAiRm9udC5oIgotI2luY2x1ZGUgIkdy
YXBoaWNzVHlwZXMuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiTGVuZ3RoLmgi
Ci0jaW5jbHVkZSAiTmluZVBpZWNlSW1hZ2UuaCIKLSNpbmNsdWRlICJPdXRsaW5lVmFsdWUuaCIK
LSNpbmNsdWRlICJQYWlyLmgiCi0jaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNp
bmNsdWRlICJTaGFkb3dEYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVCYWNrZ3JvdW5kRGF0YS5oIgog
I2luY2x1ZGUgIlN0eWxlQm94RGF0YS5oIgpAQCAtNjUsMTEgKzQyLDYgQEAKICNpbmNsdWRlICJT
dHlsZVRyYW5zZm9ybURhdGEuaCIKICNpbmNsdWRlICJTdHlsZVZpc3VhbERhdGEuaCIKICNpbmNs
dWRlICJUZXh0RGlyZWN0aW9uLmgiCi0jaW5jbHVkZSAiVGltaW5nRnVuY3Rpb24uaCIKLSNpbmNs
dWRlICJUcmFuc2Zvcm1PcGVyYXRpb25zLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYg
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogI2luY2x1ZGUgIlN0eWxlRGFzaGJvYXJkUmVnaW9u
LmgiCkBAIC05Niw2ICs2OCw3IEBAIHVzaW5nIHN0ZDo6bWF4OwogY2xhc3MgQ1NTU3R5bGVTZWxl
Y3RvcjsKIGNsYXNzIENTU1ZhbHVlTGlzdDsKIGNsYXNzIENhY2hlZEltYWdlOworY2xhc3MgQ291
bnRlckNvbnRlbnQ7CiBjbGFzcyBQYWlyOwogY2xhc3MgUmVuZGVyQXJlbmE7CiBjbGFzcyBTdHJp
bmdJbXBsOwpAQCAtNTQ2LDYgKzUxOSw4IEBAIHB1YmxpYzoKICAgICBFRW1wdHlDZWxsIGVtcHR5
Q2VsbHMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRW1wdHlDZWxsPihpbmhlcml0ZWRf
ZmxhZ3MuX2VtcHR5X2NlbGxzKTsgfQogICAgIEVDYXB0aW9uU2lkZSBjYXB0aW9uU2lkZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVDYXB0aW9uU2lkZT4oaW5oZXJpdGVkX2ZsYWdzLl9j
YXB0aW9uX3NpZGUpOyB9CiAKKyAgICBRdW90ZXNEYXRhKiBxdW90ZXMoKSBjb25zdCB7IHJldHVy
biByYXJlSW5oZXJpdGVkRGF0YS0+cXVvdGVzLmdldCgpOyB9CisKICAgICBzaG9ydCBjb3VudGVy
SW5jcmVtZW50KCkgY29uc3QgeyByZXR1cm4gdmlzdWFsLT5jb3VudGVySW5jcmVtZW50OyB9CiAg
ICAgc2hvcnQgY291bnRlclJlc2V0KCkgY29uc3QgeyByZXR1cm4gdmlzdWFsLT5jb3VudGVyUmVz
ZXQ7IH0KIApAQCAtODI4LDYgKzgwMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVtcHR5Q2Vs
bHMoRUVtcHR5Q2VsbCB2KSB7IGluaGVyaXRlZF9mbGFncy5fZW1wdHlfY2VsbHMgPSB2OyB9CiAg
ICAgdm9pZCBzZXRDYXB0aW9uU2lkZShFQ2FwdGlvblNpZGUgdikgeyBpbmhlcml0ZWRfZmxhZ3Mu
X2NhcHRpb25fc2lkZSA9IHY7IH0KIAorICAgIHZvaWQgc2V0UXVvdGVzKFF1b3Rlc0RhdGEqIHYp
IHsgcmFyZUluaGVyaXRlZERhdGEuYWNjZXNzKCktPnF1b3Rlcy5zZXQodik7IH0KKwogICAgIHZv
aWQgc2V0Q291bnRlckluY3JlbWVudChzaG9ydCB2KSB7IFNFVF9WQVIodmlzdWFsLCBjb3VudGVy
SW5jcmVtZW50LCB2KSB9CiAgICAgdm9pZCBzZXRDb3VudGVyUmVzZXQoc2hvcnQgdikgeyBTRVRf
VkFSKHZpc3VhbCwgY291bnRlclJlc2V0LCB2KSB9CiAKQEAgLTk2Miw2ICs5MzksNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRDb250ZW50KFN0cmluZ0ltcGwqLCBib29sIGFkZCA9IGZhbHNlKTsK
ICAgICB2b2lkIHNldENvbnRlbnQoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiwgYm9vbCBhZGQgPSBm
YWxzZSk7CiAgICAgdm9pZCBzZXRDb250ZW50KENvdW50ZXJDb250ZW50KiwgYm9vbCBhZGQgPSBm
YWxzZSk7CisgICAgdm9pZCBzZXRDb250ZW50KFF1b3RlQ29udGVudCwgYm9vbCBhZGQgPSBmYWxz
ZSk7CiAKICAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3VudGVyRGlyZWN0aXZlcygp
IGNvbnN0OwogICAgIENvdW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0NvdW50ZXJEaXJlY3RpdmVz
KCk7CkBAIC0xMTIzLDYgKzExMDEsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFZlY3Rv
cjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIGluaXRpYWxEYXNoYm9hcmRSZWdpb25zKCk7CiAgICAg
c3RhdGljIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIG5vbmVEYXNoYm9hcmRS
ZWdpb25zKCk7CiAjZW5kaWYKKworcHJpdmF0ZToKKyAgICBDb250ZW50RGF0YSogbmV3Q29udGVu
dERhdGFOb2RlKGJvb2wgYWRkKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkocmV2
aXNpb24gMzc1MjYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsOSArMTgwLDkgQEAgZW51bSBFTGlzdFN0eWxl
VHlwZSB7CiAgICAgIEhJUkFHQU5BLCBLQVRBS0FOQSwgSElSQUdBTkFfSVJPSEEsIEtBVEFLQU5B
X0lST0hBLCBMTk9ORQogfTsKIAotZW51bSBDb250ZW50VHlwZSB7Ci0gICAgQ09OVEVOVF9OT05F
LCBDT05URU5UX09CSkVDVCwgQ09OVEVOVF9URVhULCBDT05URU5UX0NPVU5URVIKLX07CitlbnVt
IENvbnRlbnRUeXBlIHsgQ09OVEVOVF9OT05FLCBDT05URU5UX09CSkVDVCwgQ09OVEVOVF9URVhU
LCBDT05URU5UX0NPVU5URVIsIENPTlRFTlRfUVVPVEUgfTsKKworZW51bSBRdW90ZUNvbnRlbnQg
eyBRVU9URV9OT05FLCBPUEVOX1FVT1RFLCBDTE9TRV9RVU9URSwgTk9fT1BFTl9RVU9URSwgTk9f
Q0xPU0VfUVVPVEUgfTsKIAogZW51bSBFQm9yZGVyRml0IHsgQm9yZGVyRml0Qm9yZGVyLCBCb3Jk
ZXJGaXRMaW5lcyB9OwogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVy
aXRlZERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
SW5oZXJpdGVkRGF0YS5jcHAJKHJldmlzaW9uIDM3NTI2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVJbmhlcml0ZWREYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0eWxlUmFyZUluaGVyaXRlZERh
dGEuaCIKIAorI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5o
IgogI2luY2x1ZGUgIlN0eWxlSW1hZ2UuaCIKIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAJKHJldmlzaW9uIDM3NTI2KQor
KysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5
bGVSYXJlSW5oZXJpdAogICAgICwgdGV4dEZpbGxDb2xvcihvLnRleHRGaWxsQ29sb3IpCiAgICAg
LCB0ZXh0U2hhZG93KG8udGV4dFNoYWRvdyA/IG5ldyBTaGFkb3dEYXRhKCpvLnRleHRTaGFkb3cp
IDogMCkKICAgICAsIGhpZ2hsaWdodChvLmhpZ2hsaWdodCkKKyAgICAsIHF1b3RlcyhvLnF1b3Rl
cyA/IG5ldyBRdW90ZXNEYXRhKCpvLnF1b3RlcykgOiAwKQogICAgICwgdGV4dFNlY3VyaXR5KG8u
dGV4dFNlY3VyaXR5KQogICAgICwgdXNlck1vZGlmeShvLnVzZXJNb2RpZnkpCiAgICAgLCB3b3Jk
QnJlYWsoby53b3JkQnJlYWspCkBAIC03Myw2ICs3NCw3IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3I9PSgKICAgICAgICAgJiYgdGV4dEZpbGxDb2xvciA9PSBvLnRleHRG
aWxsQ29sb3IKICAgICAgICAgJiYgc2hhZG93RGF0YUVxdWl2YWxlbnQobykKICAgICAgICAgJiYg
aGlnaGxpZ2h0ID09IG8uaGlnaGxpZ2h0CisgICAgICAgICYmIHF1b3Rlc0RhdGFFcXVpdmFsZW50
KG8pCiAgICAgICAgICYmIHRleHRTZWN1cml0eSA9PSBvLnRleHRTZWN1cml0eQogICAgICAgICAm
JiB1c2VyTW9kaWZ5ID09IG8udXNlck1vZGlmeQogICAgICAgICAmJiB3b3JkQnJlYWsgPT0gby53
b3JkQnJlYWsKQEAgLTkyLDQgKzk0LDExIEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6
c2hhZG93RGF0YUUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBTdHlsZVJhcmVJbmhlcml0
ZWREYXRhOjpxdW90ZXNEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRh
JiBvKSBjb25zdAoreworICAgIGlmIChxdW90ZXMgPT0gby5xdW90ZXMpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIHJldHVybiBxdW90ZXMgJiYgby5xdW90ZXMgJiYgKnF1b3RlcyA9PSAqby5x
dW90ZXM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgJKHJldmlzaW9uIDM3NTI2
KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcu
aCIKICNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKQEAgLTQ4
LDcgKzQ5LDkgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gbyk7
CiAgICAgfQorCiAgICAgYm9vbCBzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhJikgY29uc3Q7CisgICAgYm9vbCBxdW90ZXNEYXRhRXF1aXZhbGVudChjb25z
dCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJikgY29uc3Q7CiAKICAgICBDb2xvciB0ZXh0U3Ryb2tl
Q29sb3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoOwpAQCAtNTYsNiArNTksOCBAQCBwdWJs
aWM6CiAKICAgICBTaGFkb3dEYXRhKiB0ZXh0U2hhZG93OyAvLyBPdXIgdGV4dCBzaGFkb3cgaW5m
b3JtYXRpb24gZm9yIHNoYWRvd2VkIHRleHQgZHJhd2luZy4KICAgICBBdG9taWNTdHJpbmcgaGln
aGxpZ2h0OyAvLyBBcHBsZS1zcGVjaWZpYyBleHRlbnNpb24gZm9yIGN1c3RvbSBoaWdobGlnaHQg
cmVuZGVyaW5nLgorICAgIE93blB0cjxRdW90ZXNEYXRhPiBxdW90ZXM7IC8vIFRoZSBxdW90ZXMg
bGlzdCB1c2VkIGJ5ICdjb250ZW50OiAqLXF1b3RlJworCiAgICAgdW5zaWduZWQgdGV4dFNlY3Vy
aXR5IDogMjsgLy8gRVRleHRTZWN1cml0eQogICAgIHVuc2lnbmVkIHVzZXJNb2RpZnkgOiAyOyAv
LyBFVXNlck1vZGlmeSAoZWRpdGluZykKICAgICB1bnNpZ25lZCB3b3JkQnJlYWsgOiAyOyAvLyBF
V29yZEJyZWFrCkBAIC02NSw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHRleHRTaXplQWRq
dXN0IDogMTsgLy8gQW4gQXBwbGUgZXh0ZW5zaW9uLgogICAgIHVuc2lnbmVkIHJlc2l6ZSA6IDI7
IC8vIEVSZXNpemUKICAgICB1bnNpZ25lZCB1c2VyU2VsZWN0IDogMTsgIC8vIEVVc2VyU2VsZWN0
Ci0gICAgCisKIHByaXZhdGU6CiAgICAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpOwogICAgIFN0
eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYpOwpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5jcHAJKHJldmlzaW9uIDM3NTI2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIz
LDcgQEAKICNpbmNsdWRlICJTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRl
ICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKICNpbmNsdWRl
ICJSZW5kZXJTdHlsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAzNzUyNikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDA4LTEwLTEyICBWaW5jZW50IFJpY2FyZCAgPG1hZ2ljQG1hZ2ljbmluamEu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RjYXNlcyBmb3IKKyAgICAgICAgQnVnIDY1MDM6IGNvbnRlbnQgcHJvcGVydHkgZG9lc24ndCBz
dXBwb3J0IHF1b3RlcworCisgICAgICAgICogZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3Nz
LXF1b3Rlcy0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250
ZW50L2Nzcy1xdW90ZXMtMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0
ZWQtY29udGVudC9jc3MtcXVvdGVzLTMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mt
Z2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy00Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9zeW50YXgtZXJyb3ItaW4tY3NzLXF1b3Rl
cy5odG1sOiBBZGRlZC4KKwogMjAwOC0xMC0xMiAgQnJhZCBHYXJjaWEgIDxiZ2FyY2lhQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVz
LTEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1j
b250ZW50L2Nzcy1xdW90ZXMtMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv
L0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4gCis8aHRtbD4KKzxo
ZWFkPgorPHRpdGxlPk5lc3RlZCBxdW90ZXM8L3RpdGxlPgorPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KKy50ZXN0IHEge3F1b3RlczogIltbWyIgIl1dXSIgIigoIiAiKSkiICIqLSIgIi0qIjt9Citx
OmJlZm9yZSB7Y29udGVudDogb3Blbi1xdW90ZTt9CitxOmFmdGVyICB7Y29udGVudDogY2xvc2Ut
cXVvdGU7fQorc3Bhbi5jaXRlOmJlZm9yZSB7Y29udGVudDogb3Blbi1xdW90ZTt9CitzcGFuLmNp
dGU6YWZ0ZXIgIHtjb250ZW50OiBjbG9zZS1xdW90ZTt9CisucmVmZXJlbmNlIHtjb2xvcjogZ3Jl
ZW47fQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5UZXN0PGJyPgorPHNwYW4gY2xh
c3M9InRlc3QiPgorVGhpcyAncCcgZWxlbWVudCBjb250YWlucyBhIHNldCBvZiBuZXN0ZWQgcXVv
dGVzIHdoaWNoIGFyZTogPHE+V2hlbiBJIGFza2VkIGhpbSBhYm91dCBpdCwgaGUgc2FpZCwgPHNw
YW4gY2xhc3M9ImNpdGUiPkkgZG9uJ3QgcmVtZW1iZXIgYW55b25lIHNheWluZywgPHE+SSBuZWVk
IHNvbWUgaGVscCw8L3E+IG9yIGVsc2UgSSB3b3VsZCBoYXZlIGhlbHBlZC48L3NwYW4+IEkgZGlk
bid0IHJlYWxseSBiZWxpZXZlIGhpbSwgYnV0IHdoYXQgY291bGQgSSBkbz88L3E+Cis8L3NwYW4+
PC9wPgorPHAgY2xhc3M9InJlZmVyZW5jZSI+UmVmZXJlbmNlPGJyPgorPHNwYW4+CitUaGlzICdw
JyBlbGVtZW50IGNvbnRhaW5zIGEgc2V0IG9mIG5lc3RlZCBxdW90ZXMgd2hpY2ggYXJlOiBbW1tX
aGVuIEkgYXNrZWQgaGltIGFib3V0IGl0LCBoZSBzYWlkLCAoKEkgZG9uJ3QgcmVtZW1iZXIgYW55
b25lIHNheWluZywgKi1JIG5lZWQgc29tZSBoZWxwLC0qIG9yIGVsc2UgSSB3b3VsZCBoYXZlIGhl
bHBlZC4pKSBJIGRpZG4ndCByZWFsbHkgYmVsaWV2ZSBoaW0sIGJ1dCB3aGF0IGNvdWxkIEkgZG8/
XV1dCis8L3NwYW4+Cis8cD4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMS5odG1s
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbApOYW1lOiBzdm46
ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJh
dGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0yLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTIu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMu
b3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+IAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5RdW90ZXMg
cGVyIGxhbmc8L3RpdGxlPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKy8q
IFNwZWNpZnkgcGFpcnMgb2YgcXVvdGVzIGZvciB0d28gbGV2ZWxzIGluIHR3byBsYW5ndWFnZXMg
Ki8KK3E6bGFuZyhlbikgeyBxdW90ZXM6ICciJyAnIicgIiciICInIiB9CitxOmxhbmcobm8pIHsg
cXVvdGVzOiAiwqsiICLCuyIgIjwiICI+IiB9CisKK3E6YmVmb3JlIHsgY29udGVudDogb3Blbi1x
dW90ZSB9CitxOmFmdGVyICB7IGNvbnRlbnQ6IGNsb3NlLXF1b3RlIH0KKworLnJlZmVyZW5jZSB7
Y29sb3I6IGdyZWVuO30KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+VGVzdDxicj4K
KzxxIGxhbmc9Im5vIj5UcsO4bmRlcmUgZ3LDpXRlciBuw6VyIDxxPlZpbnNqYW4gcMOlIGthaWE8
L3E+IGJsaXIgZGVrbGFtZXJ0LjwvcT48YnI+Cis8cSBsYW5nPSJlbiI+UXVvdGUgPHE+bWU8L3E+
ITwvcT4KKzwvcD4KKzxwIGNsYXNzPSJyZWZlcmVuY2UiPlJlZmVyZW5jZTxicj4KKzxzcGFuPsKr
VHLDuG5kZXJlIGdyw6V0ZXIgbsOlciAiVmluc2phbiBww6Uga2FpYSIgYmxpciBkZWtsYW1lcnQu
wrs8L3NwYW4+PGJyPgorPHNwYW4+IlF1b3RlICdtZSchIjwvc3Bhbj4KKzxwPgorPC9ib2R5Pgor
PC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJh
dGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0yLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10
eXBlCiAgICsgdGV4dC9odG1sCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9j
c3MtcXVvdGVzLTMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzLWdl
bmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFu
c2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4gCis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPk1vcmUgY2xvc2UtcXVvdGUgdGhhbiBvcGVuLXF1b3RlPC90
aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitxIHsgcXVvdGVzOiAnIicgJyInICInIiAi
JyIgfQorCitxOmJlZm9yZSB7IGNvbnRlbnQ6IG9wZW4tcXVvdGUgfQorcTphZnRlciAgeyBjb250
ZW50OiBjbG9zZS1xdW90ZSB9CitzcGFuLmNsb3NlOmFmdGVyICB7IGNvbnRlbnQ6IGNsb3NlLXF1
b3RlIH0KKworLnJlZmVyZW5jZSB7Y29sb3I6IGdyZWVuO30KKzwvc3R5bGU+Cis8L2hlYWQ+CisK
Kzxib2R5PgorPHA+VGVzdDxicj4KKzxxPk1vcmUgPHE+Y2xvc2UtcXVvdGUgPHNwYW4gY2xhc3M9
ImNsb3NlIj50aGFuPC9zcGFuPiBvcGVuLXF1b3RlPC9xPiBpbiB0aGlzIHNlbnRlbmNlLjwvcT4K
KzwvcD4KKzxwIGNsYXNzPSJyZWZlcmVuY2UiPlJlZmVyZW5jZTxicj4KKzxzcGFuPiJNb3JlICdj
bG9zZS1xdW90ZSB0aGFuJyBvcGVuLXF1b3RlIiBpbiB0aGlzIHNlbnRlbmNlLjwvc3Bhbj4KKzxw
PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0zLmh0bWwKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1l
OiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBu
YXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3Mt
cXVvdGVzLTQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0
ZWQtY29udGVudC9jc3MtcXVvdGVzLTQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhU
TUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9v
c2UuZHRkIj4gCis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPm5vLWNsb3NlLXF1b3RlPC90aXRsZT4K
KzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Citib2R5IHsgcXVvdGVzOiAiJyIgIiciIH0KKworYmxv
Y2txdW90ZS50ZXN0IHA6YmVmb3JlICAgICB7IGNvbnRlbnQ6IG9wZW4tcXVvdGUgfQorYmxvY2tx
dW90ZS50ZXN0IHA6YWZ0ZXIgICAgICB7IGNvbnRlbnQ6IG5vLWNsb3NlLXF1b3RlIH0KK2Jsb2Nr
cXVvdGUudGVzdCBwOmxhc3QtY2hpbGQ6YWZ0ZXIgeyBjb250ZW50OiBjbG9zZS1xdW90ZSB9CisK
Ky5yZWZlcmVuY2Uge2NvbG9yOiBncmVlbjt9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4K
KzxwPlRlc3Q8L3A+Cis8YmxvY2txdW90ZSBjbGFzcz0idGVzdCI+Cis8cD5GaXJzdCBwYXJhZ3Jh
cGg8L3A+Cis8cD5TZWNvbmQgcGFyYWdyYXBoPC9wPgorPHA+VGhpcmQgcGFyYWdyYXBoPC9wPgor
PC9ibG9ja3F1b3RlPgorCis8cCBjbGFzcz0icmVmZXJlbmNlIj5SZWZlcmVuY2U8L3A+Cis8Ymxv
Y2txdW90ZSBjbGFzcz0icmVmZXJlbmNlIj4KKzxwPidGaXJzdCBwYXJhZ3JhcGg8L3A+Cis8cD4n
U2Vjb25kIHBhcmFncmFwaDwvcD4KKzxwPidUaGlyZCBwYXJhZ3JhcGgnPC9wPgorPC9ibG9ja3F1
b3RlPgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
ZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy00Lmh0bWwKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpO
YW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9odG1sCk5hbWU6IHN2bjplb2wtc3R5bGUKICAg
KyBuYXRpdmUKCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9j
c3MtcXVvdGVzLTUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5l
cmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNS5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
bG9vc2UuZHRkIj4gCis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk1vcmUgbmVzdGluZyB0aGFuIGRl
ZmluZWQgcXVvdGVzPC90aXRsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisvKiBTcGVjaWZ5
IG9ubHkgdHdvIGxldmVscywgd2UnbGwgaGF2ZSAzIGxldmVscyBvZiBuZXN0aW5nICovCitxIHsg
cXVvdGVzOiAnIicgJyInICInIiAiJyIgfQorCitxOmJlZm9yZSB7IGNvbnRlbnQ6IG9wZW4tcXVv
dGUgfQorcTphZnRlciAgeyBjb250ZW50OiBjbG9zZS1xdW90ZSB9CisKKy5yZWZlcmVuY2Uge2Nv
bG9yOiBncmVlbjt9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxwPlRlc3Q8YnI+Cis8
cT5Nb3JlIDxxPmxldmVsIG9mIDxxPm5lc3Rpbmc8L3E+IHRoYW4gZGVmaW5lZDwvcT4gcXVvdGVz
PC9xPgorPC9wPgorPHAgY2xhc3M9InJlZmVyZW5jZSI+UmVmZXJlbmNlPGJyPgorPHNwYW4+Ik1v
cmUgJ2xldmVsIG9mICduZXN0aW5nJyB0aGFuIGRlZmluZWQnIHF1b3RlcyI8L3NwYW4+Cis8cD4K
KzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNS5odG1sCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTog
c3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbApOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0
aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvc3ludGF4
LWVycm9yLWluLWNzcy1xdW90ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9zeW50YXgtZXJyb3ItaW4tY3NzLXF1b3Rlcy5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvc3lu
dGF4LWVycm9yLWluLWNzcy1xdW90ZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOSBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlv
bmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+IAorPGh0bWw+
Cis8aGVhZD4KKzx0aXRsZT5TeW50YXggZXJyb3IgaW4gInF1b3RlcyI8L3RpdGxlPgorPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KK3Age3F1b3Rlczogbm9uZX0KKworLyogVGhlIHByb3BlcnR5IGlz
IGEgbGlzdCBvZiBwYWlyIChvZiBzdHJpbmdzKSAqLworcC5lcnJvcjEgeyBxdW90ZXM6ICcqJ30K
KworLyogSWYgb25lIHBhaXIgaXMgaW5jb21wbGV0ZSwgYWxsIHRoZSBwcm9wZXJ0eSBpcyBpbnZh
bGlkICovCitwLmVycm9yMiB7IHF1b3RlczogJyonICcqJyAnLSd9CisKKy8qIFRoZSBwYWlyIE1V
U1QgYmUgc3RyaW5ncyAqLworcC5lcnJvcjMgeyBxdW90ZXM6ICcqJyAxIH0KK3AuZXJyb3I0IHsg
cXVvdGVzOiAxICIqIiB9CisKK3A6YmVmb3JlIHsgY29udGVudDogb3Blbi1xdW90ZSB9CitwOmFm
dGVyICB7IGNvbnRlbnQ6IGNsb3NlLXF1b3RlIH0KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5
PgorPHAgY2xhc3M9ImVycm9yMSI+Tm8gcXVvdGVzITwvcD4KKzxwIGNsYXNzPSJlcnJvcjIiPk5v
IHF1b3RlcyE8L3A+Cis8cCBjbGFzcz0iZXJyb3IzIj5ObyBxdW90ZXMhPC9wPgorPHAgY2xhc3M9
ImVycm9yNCI+Tm8gcXVvdGVzITwvcD4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3N5bnRheC1lcnJv
ci1pbi1jc3MtcXVvdGVzLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsg
dGV4dC9odG1sCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUKCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0x
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0xLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC9jc3MtcXVvdGVzLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1
IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDE1NgorICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTU2CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
MTYpIHNpemUgNzg0eDEyNAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0
eDU0CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI3eDE4CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjc6ICJUZXN0IgorICAgICAgICBSZW5kZXJC
UiB7QlJ9IGF0ICgyNywxNCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDc3NXgzNgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwx
OCkgc2l6ZSAzNjd4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAzNjc6
ICJUaGlzICdwJyBlbGVtZW50IGNvbnRhaW5zIGEgc2V0IG9mIG5lc3RlZCBxdW90ZXMgd2hpY2gg
YXJlOiAiCisgICAgICAgICAgUmVuZGVySW5saW5lIHtRfSBhdCAoMCwwKSBzaXplIDc3NXgzNgor
ICAgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTV4MTgK
KyAgICAgICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDM2NywxOCkgc2l6ZSAxNXgxOAorICAgICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgzNjcsMTgpIHdpZHRoIDE1OiAiW1tbIgorICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzODIsMTgpIHNpemUgMjI2eDE4CisgICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgzODIsMTgpIHdpZHRoIDIyNjogIldoZW4gSSBhc2tlZCBoaW0gYWJv
dXQgaXQsIGhlIHNhaWQsICIKKyAgICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSA3NzV4MzYKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0
ICgwLDApIHNpemUgMTB4MTgKKyAgICAgICAgICAgICAgICBSZW5kZXJRdW90ZSBhdCAoNjA4LDE4
KSBzaXplIDEweDE4CisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjA4LDE4KSB3aWR0
aCAxMDogIigoIgorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDYxOCwxOCkg
c2l6ZSA3NzV4MzYKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjE4LDE4KSB3aWR0aCAx
NTc6ICJJIGRvbid0IHJlbWVtYmVyIGFueW9uZSIKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwzNikgd2lkdGggNDk6ICJzYXlpbmcsICIKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5l
IHtRfSBhdCAoMCwwKSBzaXplIDEzN3gxOAorICAgICAgICAgICAgICAgIFJlbmRlcklubGluZSAo
Z2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4CisgICAgICAgICAgICAgICAgICBSZW5kZXJR
dW90ZSBhdCAoNDksMzYpIHNpemUgMTN4MTgKKyAgICAgICAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDQ5LDM2KSB3aWR0aCAxMzogIiotIgorICAgICAgICAgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoNjIsMzYpIHNpemUgMTExeDE4CisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNjIsMzYpIHdpZHRoIDExMTogIkkgbmVlZCBzb21lIGhlbHAsIgorICAgICAgICAgICAgICAg
IFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4CisgICAgICAgICAg
ICAgICAgICBSZW5kZXJRdW90ZSBhdCAoMTczLDM2KSBzaXplIDEzeDE4CisgICAgICAgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxNzMsMzYpIHdpZHRoIDEzOiAiLSoiCisgICAgICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTg2LDM2KSBzaXplIDE4MngxOAorICAgICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgxODYsMzYpIHdpZHRoIDE4MjogIiBvciBlbHNlIEkgd291bGQgaGF2
ZSBoZWxwZWQuIgorICAgICAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAs
MCkgc2l6ZSAxMHgxOAorICAgICAgICAgICAgICAgIFJlbmRlclF1b3RlIGF0ICgzNjgsMzYpIHNp
emUgMTB4MTgKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzNjgsMzYpIHdpZHRoIDEw
OiAiKSkiCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM3OCwzNikgc2l6ZSAz
MDJ4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM3OCwzNikgd2lkdGggMzAyOiAiIEkg
ZGlkbid0IHJlYWxseSBiZWxpZXZlIGhpbSwgYnV0IHdoYXQgY291bGQgSSBkbz8iCisgICAgICAg
ICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNXgxOAorICAgICAg
ICAgICAgICBSZW5kZXJRdW90ZSBhdCAoNjgwLDM2KSBzaXplIDE1eDE4CisgICAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDY4MCwzNikgd2lkdGggMTU6ICJdXV0iCisgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQg
KDAsNzApIHNpemUgNzg0eDU0IFtjb2xvcj0jMDA4MDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA2NHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDY0OiAiUmVmZXJlbmNlIgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICg2NCwxNCkgc2l6
ZSAweDAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDc3NXgzNgor
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSA3NzV4MzYKKyAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCA3NzU6ICJUaGlzICdwJyBlbGVtZW50IGNv
bnRhaW5zIGEgc2V0IG9mIG5lc3RlZCBxdW90ZXMgd2hpY2ggYXJlOiBbW1tXaGVuIEkgYXNrZWQg
aGltIGFib3V0IGl0LCBoZSBzYWlkLCAoKEkgZG9uJ3QgcmVtZW1iZXIgYW55b25lIgorICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDY5NTogInNheWluZywgKi1JIG5lZWQgc29t
ZSBoZWxwLC0qIG9yIGVsc2UgSSB3b3VsZCBoYXZlIGhlbHBlZC4pKSBJIGRpZG4ndCByZWFsbHkg
YmVsaWV2ZSBoaW0sIGJ1dCB3aGF0IGNvdWxkIEkgZG8/XV1dIgorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwx
NDApIHNpemUgNzg0eDAKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTEtZXhwZWN0ZWQudHh0
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVz
LTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzLWdlbmVyYXRlZC1j
b250ZW50L2Nzcy1xdW90ZXMtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjQgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTU2CisgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxNTYKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCwxNikgc2l6ZSA3ODR4MTI0CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3
ODR4NTQKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjd4MTgKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzogIlRlc3QiCisgICAgICAgIFJlbmRl
ckJSIHtCUn0gYXQgKDI3LDE0KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJJbmxpbmUge1F9IGF0
ICgwLDApIHNpemUgMzUzeDE4CisgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0
ICgwLDApIHNpemUgOHgxOAorICAgICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDAsMTgpIHNpemUg
OHgxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggODogIlx4e0FCfSIK
KyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDgsMTgpIHNpemUgMTI2eDE4CisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoOCwxOCkgd2lkdGggMTI2OiAiVHJceHtGOH1uZGVyZSBnclx4
e0U1fXRlciBuXHh7RTV9ciAiCisgICAgICAgICAgUmVuZGVySW5saW5lIHtRfSBhdCAoMCwwKSBz
aXplIDExNngxOAorICAgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDAp
IHNpemUgOXgxOAorICAgICAgICAgICAgICBSZW5kZXJRdW90ZSBhdCAoMTM0LDE4KSBzaXplIDl4
MTgKKyAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTM0LDE4KSB3aWR0aCA5OiAiPCIKKyAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQzLDE4KSBzaXplIDk4eDE4CisgICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxNDMsMTgpIHdpZHRoIDk4OiAiVmluc2phbiBwXHh7RTV9
IGthaWEiCisgICAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6
ZSA5eDE4CisgICAgICAgICAgICAgIFJlbmRlclF1b3RlIGF0ICgyNDEsMTgpIHNpemUgOXgxOAor
ICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNDEsMTgpIHdpZHRoIDk6ICI+IgorICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjUwLDE4KSBzaXplIDk1eDE4CisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMjUwLDE4KSB3aWR0aCA5NTogIiBibGlyIGRla2xhbWVydC4iCisgICAg
ICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgOHgxOAorICAgICAg
ICAgICAgUmVuZGVyUXVvdGUgYXQgKDM0NSwxOCkgc2l6ZSA4eDE4CisgICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgzNDUsMTgpIHdpZHRoIDg6ICJceHtCQn0iCisgICAgICAgIFJlbmRlckJSIHtC
Un0gYXQgKDM1MywzMikgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVySW5saW5lIHtRfSBhdCAoMCww
KSBzaXplIDg3eDE4CisgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDAp
IHNpemUgN3gxOAorICAgICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDAsMzYpIHNpemUgN3gxOAor
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNikgd2lkdGggNzogIlwiIgorICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNywzNikgc2l6ZSA0M3gxOAorICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDcsMzYpIHdpZHRoIDQzOiAiUXVvdGUgIgorICAgICAgICAgIFJlbmRlcklubGlu
ZSB7UX0gYXQgKDAsMCkgc2l6ZSAyNXgxOAorICAgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5l
cmF0ZWQpIGF0ICgwLDApIHNpemUgM3gxOAorICAgICAgICAgICAgICBSZW5kZXJRdW90ZSBhdCAo
NTAsMzYpIHNpemUgM3gxOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg1MCwzNikgd2lk
dGggMzogIiciCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDUzLDM2KSBzaXpl
IDE5eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg1MywzNikgd2lkdGggMTk6ICJtZSIK
KyAgICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDN4MTgK
KyAgICAgICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDcyLDM2KSBzaXplIDN4MTgKKyAgICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNzIsMzYpIHdpZHRoIDM6ICInIgorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoNzUsMzYpIHNpemUgNXgxOAorICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDc1LDM2KSB3aWR0aCA1OiAiISIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRl
ZCkgYXQgKDAsMCkgc2l6ZSA3eDE4CisgICAgICAgICAgICBSZW5kZXJRdW90ZSBhdCAoODAsMzYp
IHNpemUgN3gxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoODAsMzYpIHdpZHRoIDc6ICJc
IiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBS
ZW5kZXJCbG9jayB7UH0gYXQgKDAsNzApIHNpemUgNzg0eDU0IFtjb2xvcj0jMDA4MDAwXQorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2NHgxOAorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDY0OiAiUmVmZXJlbmNlIgorICAgICAgICBSZW5kZXJCUiB7
QlJ9IGF0ICg2NCwxNCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAo
MCwwKSBzaXplIDM0OXgxOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwxOCkg
c2l6ZSAzNDl4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAzNDk6ICJc
eHtBQn1Uclx4e0Y4fW5kZXJlIGdyXHh7RTV9dGVyIG5ceHtFNX1yIFwiVmluc2phbiBwXHh7RTV9
IGthaWFcIiBibGlyIGRla2xhbWVydC5ceHtCQn0iCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQg
KDM0OSwzMikgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBz
aXplIDg3eDE4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDM2KSBzaXplIDg3
eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNikgd2lkdGggODc6ICJcIlF1b3RlICdt
ZSchXCIiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAg
ICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE0MCkgc2l6ZSA3ODR4MAoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50
L2Nzcy1xdW90ZXMtMi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxl
CiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzLWdl
bmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1x
dW90ZXMtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy0zLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NiBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHgxMjAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDEyMAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHg4OAorICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDM2CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDI3eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
Mjc6ICJUZXN0IgorICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICgyNywxNCkgc2l6ZSAweDAKKyAg
ICAgICAgUmVuZGVySW5saW5lIHtRfSBhdCAoMCwwKSBzaXplIDM0MHgxOAorICAgICAgICAgIFJl
bmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDd4MTgKKyAgICAgICAgICAgIFJl
bmRlclF1b3RlIGF0ICgwLDE4KSBzaXplIDd4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTgpIHdpZHRoIDc6ICJcIiIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDcs
MTgpIHNpemUgMzh4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3LDE4KSB3aWR0aCAzODog
Ik1vcmUgIgorICAgICAgICAgIFJlbmRlcklubGluZSB7UX0gYXQgKDAsMCkgc2l6ZSAxOTF4MTgK
KyAgICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDN4MTgK
KyAgICAgICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDQ1LDE4KSBzaXplIDN4MTgKKyAgICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNDUsMTgpIHdpZHRoIDM6ICInIgorICAgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg0OCwxOCkgc2l6ZSA3NngxOAorICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNDgsMTgpIHdpZHRoIDc2OiAiY2xvc2UtcXVvdGUgIgorICAgICAgICAgICAgUmVu
ZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDMweDE4CisgICAgICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMTI0LDE4KSBzaXplIDI3eDE4CisgICAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDEyNCwxOCkgd2lkdGggMjc6ICJ0aGFuIgorICAgICAgICAgICAgICBSZW5kZXJJ
bmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAzeDE4CisgICAgICAgICAgICAgICAgUmVu
ZGVyUXVvdGUgYXQgKDE1MSwxOCkgc2l6ZSAzeDE4CisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMTUxLDE4KSB3aWR0aCAzOiAiJyIKKyAgICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMTU0LDE4KSBzaXplIDc1eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTQs
MTgpIHdpZHRoIDc1OiAiIG9wZW4tcXVvdGUiCisgICAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdl
bmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSA3eDE4CisgICAgICAgICAgICAgIFJlbmRlclF1b3RlIGF0
ICgyMjksMTgpIHNpemUgN3gxOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMjksMTgp
IHdpZHRoIDc6ICJcIiIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIzNiwxOCkg
c2l6ZSAxMDR4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMzYsMTgpIHdpZHRoIDEwNDog
IiBpbiB0aGlzIHNlbnRlbmNlLiIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkg
YXQgKDAsMCkgc2l6ZSAweDE4CisgICAgICAgICAgICBSZW5kZXJRdW90ZSBhdCAoMCwwKSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAg
IFJlbmRlckJsb2NrIHtQfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MzYgW2NvbG9yPSMwMDgwMDBdCisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDY0eDE4CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNjQ6ICJSZWZlcmVuY2UiCisgICAgICAgIFJlbmRlckJS
IHtCUn0gYXQgKDY0LDE0KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0
ICgwLDApIHNpemUgMzQweDE4CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4
KSBzaXplIDM0MHgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDM0MDog
IlwiTW9yZSAnY2xvc2UtcXVvdGUgdGhhbicgb3Blbi1xdW90ZVwiIGluIHRoaXMgc2VudGVuY2Uu
IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgIFJl
bmRlckJsb2NrIHtQfSBhdCAoMCwxMDQpIHNpemUgNzg0eDAKClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3Mt
cXVvdGVzLTMtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1zdHlsZQogICAr
IG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy1nZW5lcmF0
ZWQtY29udGVudC9jc3MtcXVvdGVzLTQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVz
LTQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L2Nzcy1xdW90ZXMtNC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAor
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4Mjg4CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgyODgKKyAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjU2CisgICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMjd4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzog
IlRlc3QiCisgICAgICBSZW5kZXJCbG9jayB7QkxPQ0tRVU9URX0gYXQgKDQwLDM0KSBzaXplIDcw
NHg4NgorICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3MDR4MTgKKyAgICAg
ICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAzeDE4CisgICAgICAg
ICAgICBSZW5kZXJRdW90ZSBhdCAoMCwwKSBzaXplIDN4MTgKKyAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMzogIiciCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgzLDApIHNpemUgOTV4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDApIHdpZHRoIDk1
OiAiRmlyc3QgcGFyYWdyYXBoIgorICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBh
dCAoMCwwKSBzaXplIDB4MTgKKyAgICAgICAgICAgIFJlbmRlclF1b3RlIGF0ICgwLDApIHNpemUg
MHgwCisgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwzNCkgc2l6ZSA3MDR4MTgKKyAgICAg
ICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAzeDE4CisgICAgICAg
ICAgICBSZW5kZXJRdW90ZSBhdCAoMCwwKSBzaXplIDN4MTgKKyAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMzogIiciCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgzLDApIHNpemUgMTE0eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywwKSB3aWR0aCAx
MTQ6ICJTZWNvbmQgcGFyYWdyYXBoIgorICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVk
KSBhdCAoMCwwKSBzaXplIDB4MTgKKyAgICAgICAgICAgIFJlbmRlclF1b3RlIGF0ICgwLDApIHNp
emUgMHgwCisgICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCw2OCkgc2l6ZSA3MDR4MTgKKyAg
ICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAzeDE4CisgICAg
ICAgICAgICBSZW5kZXJRdW90ZSBhdCAoMCwwKSBzaXplIDN4MTgKKyAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMzogIiciCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgzLDApIHNpemUgMTAyeDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMywwKSB3aWR0
aCAxMDI6ICJUaGlyZCBwYXJhZ3JhcGgiCisgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0
ZWQpIGF0ICgwLDApIHNpemUgM3gxOAorICAgICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDEwNSww
KSBzaXplIDN4MTgKKyAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEwNSwwKSB3aWR0aCAzOiAi
JyIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxMzYpIHNpemUgNzg0eDE4IFtjb2xvcj0j
MDA4MDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2NHgxOAor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDY0OiAiUmVmZXJlbmNlIgorICAgICAg
UmVuZGVyQmxvY2sge0JMT0NLUVVPVEV9IGF0ICg0MCwxNzApIHNpemUgNzA0eDg2IFtjb2xvcj0j
MDA4MDAwXQorICAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3MDR4MTgKKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA5OHgxOAorICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTg6ICInRmlyc3QgcGFyYWdyYXBoIgorICAgICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMzQpIHNpemUgNzA0eDE4CisgICAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMTE3eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCAxMTc6ICInU2Vjb25kIHBhcmFncmFwaCIKKyAgICAgICAgUmVuZGVyQmxv
Y2sge1B9IGF0ICgwLDY4KSBzaXplIDcwNHgxOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDEwOHgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMTA4OiAiJ1RoaXJkIHBhcmFncmFwaCciCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy00
LWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjplb2wtc3R5bGUKICAgKyBuYXRpdmUK
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRl
bnQvY3NzLXF1b3Rlcy01LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvY3NzLXF1b3Rlcy01LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy1nZW5lcmF0ZWQtY29udGVudC9jc3MtcXVvdGVzLTUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDUwIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDEyMAor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTIwCisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDg4CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQg
KDAsMCkgc2l6ZSA3ODR4MzYKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMjd4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzogIlRlc3QiCisg
ICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDI3LDE0KSBzaXplIDB4MAorICAgICAgICBSZW5kZXJJ
bmxpbmUge1F9IGF0ICgwLDApIHNpemUgMjg3eDE4CisgICAgICAgICAgUmVuZGVySW5saW5lIChn
ZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgN3gxOAorICAgICAgICAgICAgUmVuZGVyUXVvdGUgYXQg
KDAsMTgpIHNpemUgN3gxOAorICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGgg
NzogIlwiIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNywxOCkgc2l6ZSAzOHgx
OAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcsMTgpIHdpZHRoIDM4OiAiTW9yZSAiCisgICAg
ICAgICAgUmVuZGVySW5saW5lIHtRfSBhdCAoMCwwKSBzaXplIDE5MHgxOAorICAgICAgICAgICAg
UmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgM3gxOAorICAgICAgICAgICAg
ICBSZW5kZXJRdW90ZSBhdCAoNDUsMTgpIHNpemUgM3gxOAorICAgICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg0NSwxOCkgd2lkdGggMzogIiciCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDQ4LDE4KSBzaXplIDUxeDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg0OCwx
OCkgd2lkdGggNTE6ICJsZXZlbCBvZiAiCisgICAgICAgICAgICBSZW5kZXJJbmxpbmUge1F9IGF0
ICgwLDApIHNpemUgNTF4MTgKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQp
IGF0ICgwLDApIHNpemUgM3gxOAorICAgICAgICAgICAgICAgIFJlbmRlclF1b3RlIGF0ICg5OSwx
OCkgc2l6ZSAzeDE4CisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOTksMTgpIHdpZHRo
IDM6ICInIgorICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwMiwxOCkgc2l6
ZSA0NXgxOAorICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMDIsMTgpIHdpZHRoIDQ1OiAi
bmVzdGluZyIKKyAgICAgICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDAp
IHNpemUgM3gxOAorICAgICAgICAgICAgICAgIFJlbmRlclF1b3RlIGF0ICgxNDcsMTgpIHNpemUg
M3gxOAorICAgICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0NywxOCkgd2lkdGggMzogIici
CisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1MCwxOCkgc2l6ZSA4MngxOAor
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTUwLDE4KSB3aWR0aCA4MjogIiB0aGFuIGRlZmlu
ZWQiCisgICAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAz
eDE4CisgICAgICAgICAgICAgIFJlbmRlclF1b3RlIGF0ICgyMzIsMTgpIHNpemUgM3gxOAorICAg
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMzIsMTgpIHdpZHRoIDM6ICInIgorICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjM1LDE4KSBzaXplIDQ1eDE4CisgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjM1LDE4KSB3aWR0aCA0NTogIiBxdW90ZXMiCisgICAgICAgICAgUmVuZGVy
SW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgN3gxOAorICAgICAgICAgICAgUmVuZGVy
UXVvdGUgYXQgKDI4MCwxOCkgc2l6ZSA3eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgy
ODAsMTgpIHdpZHRoIDc6ICJcIiIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNTIpIHNpemUgNzg0eDM2IFtj
b2xvcj0jMDA4MDAwXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA2
NHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDY0OiAiUmVmZXJlbmNlIgor
ICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0ICg2NCwxNCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDI4N3gxOAorICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAyODd4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDE4KSB3aWR0aCAyODc6ICJcIk1vcmUgJ2xldmVsIG9mICduZXN0aW5nJyB0aGFuIGRlZmluZWQn
IHF1b3Rlc1wiIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
KyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxMDQpIHNpemUgNzg0eDAKClByb3BlcnR5IGNo
YW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC9jc3MtcXVvdGVzLTUtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmVvbC1z
dHlsZQogICArIG5hdGl2ZQoKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy1nZW5lcmF0ZWQtY29udGVudC9uby1vcGVuY2xvc2UtcXVvdGUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC9uby1vcGVuY2xvc2UtcXVvdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzNzUyNikKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9uby1v
cGVuY2xvc2UtcXVvdGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03LDkgKzcsMTEg
QEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlcklubGluZSAoZ2Vu
ZXJhdGVkKSBhdCAoMCwwKSBzaXplIDh4MTgKICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDAp
IHNpemUgOHgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODogIioiCisg
ICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICg4LDApIHNpemUgNDI1eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDgs
MCkgd2lkdGggMTE0OiAiVGhpcyBpcyBzb21lIHRleHQuICIKICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMTIyLDApIHdpZHRoIDMxMTogIkl0IHNob3VsZCBoYXZlIGEgc2luZ2xlIGFzdGVyaXNrIGJl
Zm9yZSBhbmQgYWZ0ZXIgaXQuIgogICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQg
KDAsMCkgc2l6ZSA4eDE4CiAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNDMzLDApIHNpemUgOHgx
OAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQzMywwKSB3aWR0aCA4OiAiKiIKKyAgICAgICAg
ICBSZW5kZXJRdW90ZSBhdCAoMCwwKSBzaXplIDB4MApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3N5bnRheC1lcnJvci1pbi1jc3MtcXVv
dGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvc3ludGF4LWVycm9yLWluLWNzcy1xdW90ZXMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzLWdlbmVyYXRlZC1jb250ZW50L3N5bnRheC1lcnJvci1pbi1jc3MtcXVvdGVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHgxNTIKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE1
MgorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgxMjAKKyAgICAgIFJl
bmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJJbmxpbmUg
KGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAweDE4CisgICAgICAgICAgUmVuZGVyUXVvdGUgYXQg
KDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NzB4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3MDogIk5vIHF1b3RlcyEi
CisgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDB4MTgKKyAg
ICAgICAgICBSZW5kZXJRdW90ZSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sg
e1B9IGF0ICgwLDM0KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRl
ZCkgYXQgKDAsMCkgc2l6ZSAweDE4CisgICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDAsMCkgc2l6
ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzB4MTgKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3MDogIk5vIHF1b3RlcyEiCisgICAgICAg
IFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDB4MTgKKyAgICAgICAgICBS
ZW5kZXJRdW90ZSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgw
LDY4KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAs
MCkgc2l6ZSAweDE4CisgICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDAsMCkgc2l6ZSAweDAKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNzB4MTgKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3MDogIk5vIHF1b3RlcyEiCisgICAgICAgIFJlbmRlcklu
bGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDB4MTgKKyAgICAgICAgICBSZW5kZXJRdW90
ZSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDEwMikgc2l6
ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUg
MHgxOAorICAgICAgICAgIFJlbmRlclF1b3RlIGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDcweDE4CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNzA6ICJObyBxdW90ZXMhIgorICAgICAgICBSZW5kZXJJbmxpbmUgKGdl
bmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAweDE4CisgICAgICAgICAgUmVuZGVyUXVvdGUgYXQgKDAs
MCkgc2l6ZSAweDAKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC9zeW50YXgtZXJyb3ItaW4tY3NzLXF1b3Rlcy1l
eHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81638</attachid>
            <date>2011-02-08 08:42:36 -0800</date>
            <delta_ts>2011-02-14 08:54:39 -0800</delta_ts>
            <desc>Proposed Patch. Similar to Darin&apos;s, but taking advantage of the recent changes to RenderObject</desc>
            <filename>patchFor6503.patch</filename>
            <type>text/plain</type>
            <size>62039</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTM4OWE1Li45MDZiYTBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDIt
MDggIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24n
dCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyBmb3IgcXVvdGVzLCBtb2Rp
ZmllZCBpbnNwZWN0b3IgdGVzdCByZXN1bHRzCisgICAgICAgIHRvIGluY2x1ZGUgdGhlIG5ldyBx
dW90ZXMgcHJvcGVydHkgd2hpY2ggaGFzIGEgZGVmYXVsdCB2YWx1ZQorICAgICAgICBpbmhlcml0
ZWQgZnJvbSBodG1sLgorCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rl
cy0wMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29u
dGVudC1xdW90ZXMtMDEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9j
b250ZW50LXF1b3Rlcy0wMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
L2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90
ZXMtMDUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzLWRlbGV0ZS1p
bmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy1w
YW5lbC1zdHlsZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMtYWRk
LWJsYW5rLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVz
LWRpc2FibGUtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5
bGVzLW5ldy1BUEktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMtc291
cmNlLWxpbmVzLWlubGluZS1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDItMDYgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdW5za2lwIHRo
ZSBodG1sNWxpYiB0ZXN0IGFnYWluIHdoaWNoIGZhaWxzIGZvciBhbm90aGVyIHJlYXNvbi4gKFNl
ZSBCdWcgNTMwMzApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjQxZWM4ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEx
IEBACitUaGUgdGV4dHMgYmV0d2VlbiB0aGUgbWFya2VycyBzaG91bGQgYmUgaWRlbnRpY2FsLgor
Cis9PT09PT09PU1hcmtlcjE9PT09PT09PQorCithYgkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYVdXYldXV1dXV1dXCTEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMQorPT09PT09PT1NYXJrZXIzPT09PT09PT0KKwor
UEFTU0VECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQt
cXVvdGVzLTAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVv
dGVzLTAxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYxY2RkMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDEuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIGJvZHkgeyBxdW90ZXM6ICJX
VyIgIldXV1ciOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
ICAgCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3RDb250YWluZXIiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lk
dGgiKTsKKyAgICAgICAgICAgICAgICByZWZlcmVuY2VXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2UiKSwgbnVsbCkuZ2V0UHJv
cGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFdpZHRoID09IHJl
ZmVyZW5jZVdpZHRoKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJQQVNTRUQiOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lclRleHQgPSAiRkFJTEVEOiB0ZXN0V2lkdGg9IiArIHRlc3RXaWR0aCArIjsgZXhwZWN0ZWQg
IiArIHJlZmVyZW5jZVdpZHRoOworICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4K
KworICAgIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuKCknLCAwKTsiPgorICAgICAgICA8
cCBpZD0ib25seUluQnJvd3NlciI+VGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxk
IGJlIGlkZW50aWNhbC48L3A+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMT09PT09PT09PC9w
PgorICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRk
IGlkPSJ0ZXN0Q29udGFpbmVyIj48cT5hPHE+YjwvcT48L3E+PC90ZD4KKyAgICAgICAgICAgICAg
ICA8dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAg
IDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMj09PT09
PT09PC9wPgorICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAg
ICAgPHRkIGlkPSJyZWZlcmVuY2UiPldXYVdXYldXV1dXV1dXPC90ZD4KKyAgICAgICAgICAgICAg
ICA8dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAxICAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAg
ICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjM9PT09
PT09PTwvcD4KKyAgICAgICAgPHByZSBpZD0iY29uc29sZSIvPgorICAgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90
ZXMtMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZWExNDQ3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorPT09PT09
PT1NYXJrZXIxPT09PT09PT0KKworYWJjZAkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK2FXV1diV1dXV1djV1dkV1dXVwkxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMz09PT09PT09CisKK1BB
U1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1
b3Rlcy0wMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rl
cy0wMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmYmEyZGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVv
dGVzLTAyLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICBib2R5IHsgcXVvdGVzOiAiV1ci
ICJXV1dXIiAiV1dXIiAiV1dXV1ciOyB9CisgICAgICAgICAgICBzcGFuOmJlZm9yZSB7IGNvbnRl
bnQ6IG5vLW9wZW4tcXVvdGU7IH0KKyAgICAgICAgICAgIHNwYW46YWZ0ZXIgeyBjb250ZW50OiBu
by1jbG9zZS1xdW90ZTsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOyAgIAorICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkgeworICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmx5SW5Ccm93c2VyIikuc2V0QXR0
cmlidXRlKCJzdHlsZSIsICJkaXNwbGF5OiBub25lOyIpOyAgIAorICAgICAgICAgICAgICAgIHRl
c3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAg
ICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUo
IndpZHRoIik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0
aCkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0g
IkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVu
Y2VXaWR0aDsKKyAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmx5SW5C
cm93c2VyIikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJkaXNwbGF5OiBub25lOyIpOyAgIAorICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICB9
CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0ic2V0
VGltZW91dCgncnVuKCknLCAwKTsiPgorICAgICAgICA8cCBpZD0ib25seUluQnJvd3NlciI+VGhl
IHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC48L3A+CisgICAg
ICAgIDxwPj09PT09PT09TWFya2VyMT09PT09PT09PC9wPgorICAgICAgICA8dGFibGU+CisgICAg
ICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGlkPSJ0ZXN0Q29udGFpbmVyIj48c3Bh
bj5hPHE+YjwvcT5jPC9zcGFuPjxxPmQ8L3E+PC90ZD4KKyAgICAgICAgICAgICAgICA8dGQ+MSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+Cisg
ICAgICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMj09PT09PT09PC9wPgor
ICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGlk
PSJyZWZlcmVuY2UiPmFXV1diV1dXV1djV1dkV1dXVzwvdGQ+CisgICAgICAgICAgICAgICAgPHRk
PjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90
cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIzPT09PT09PT08
L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90
ZXMtMDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1
MWRlYmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTAzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKz09PT09PT09TWFy
a2VyMT09PT09PT09CisKK2FiCTEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMQorPT09
PT09PT1NYXJrZXIyPT09PT09PT0KKworYVdXV2JXV1dXVwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMz09PT09PT09CisKK1BBU1NFRApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NzJhZTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAzLmh0bWwKQEAg
LTAsMCArMSw0NyBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisgICAgICAgICAgICBib2R5IHsgcXVvdGVzOiAiV1ciICJXV1dXIiAiV1dXIiAi
V1dXV1ciOyB9CisgICAgICAgICAgICBiOmJlZm9yZSB7IGNvbnRlbnQ6IG5vLW9wZW4tcXVvdGU7
IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsgICAKKyAgICAg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1bigpIHsKKyAgICAgICAgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUi
LCAiZGlzcGxheTogbm9uZTsiKTsgICAKKyAgICAgICAgICAgICAgICB0ZXN0V2lkdGggPSB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENvbnRhaW5l
ciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIHJl
ZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAg
ICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNlV2lkdGgpCisgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0g
IlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRlc3RX
aWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVmZXJlbmNlV2lkdGg7CisgICAg
ICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgIH0K
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHkgb25sb2FkPSJzZXRU
aW1lb3V0KCdydW4oKScsIDApOyI+CisgICAgICAgIDxwIGlkPSJvbmx5SW5Ccm93c2VyIj5UaGUg
dGV4dHMgYmV0d2VlbiB0aGUgbWFya2VycyBzaG91bGQgYmUgaWRlbnRpY2FsLjwvcD4KKyAgICAg
ICAgPHA+PT09PT09PT1NYXJrZXIxPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAg
ICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InRlc3RDb250YWluZXIiPjxzcGFu
PjxiPmE8L2I+PC9zcGFuPjxxPmI8L3E+PC90ZD4KKyAgICAgICAgICAgICAgICA8dGQ+MSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAg
ICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMj09PT09PT09PC9wPgorICAg
ICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGlkPSJy
ZWZlcmVuY2UiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZGVyOyI+YTwvc3Bhbj5XV1di
V1dXV1c8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAg
ICAgIDxwPj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJjb25z
b2xlIi8+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDU3YTQwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw5IEBACis9PT09PT09PU1hcmtlcjE9PT09PT09PQorCitiCTEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMQorPT09PT09PT1NYXJrZXIyPT09PT09PT0KKworV1di
V1dXVwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMz09
PT09PT09CisKK1BBU1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVu
dC9jb250ZW50LXF1b3Rlcy0wNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9j
b250ZW50LXF1b3Rlcy0wNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmM5MWM1OTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTA0Lmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICBib2R5IHsg
cXVvdGVzOiAiV1ciICJXV1dXIiAiV1dXIiAiV1dXV1ciOyB9CisgICAgICAgICAgICBiOmJlZm9y
ZSB7IGNvbnRlbnQ6IG5vLW9wZW4tcXVvdGU7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsgICAKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IHJ1bigpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUluQnJv
d3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsgICAKKyAgICAg
ICAgICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b1JlbW92ZSIpOworICAg
ICAgICAgICAgICAgIGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWwpOworICAgICAgICAgICAg
ICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7
CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdldFByb3BlcnR5
VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9PSByZWZlcmVu
Y2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJU
ZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVjdGVkICIgKyBy
ZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAg
ICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9
Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBp
ZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAg
ICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0i
dGVzdENvbnRhaW5lciI+PHNwYW4+PGIgaWQ9InRvUmVtb3ZlIj5hPC9iPjwvc3Bhbj48cT5iPC9x
PjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8
cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAg
ICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5XV2JXV1dXPC90ZD4K
KyAgICAgICAgICAgICAgICA8dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAxICAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwv
dGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09
PT09PU1hcmtlcjM9PT09PT09PTwvcD4KKyAgICAgICAgPHByZSBpZD0iY29uc29sZSIvPgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNDNlYjQ5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOSBAQAorPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYWJjCTEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMQorPT09PT09PT1NYXJrZXIyPT09PT09PT0KKworV1dhV1dXYldXV1dX
Y1dXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9
PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQv
Y29udGVudC1xdW90ZXMtMDUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yY2E3NzZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVu
dC9jb250ZW50LXF1b3Rlcy0wNS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgLm15UXVv
dGVzIHsgcXVvdGVzOiAiV1ciICJXV1dXIiAiV1dXIiAiV1dXV1ciOyB9CisgICAgICAgIDwvc3R5
bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7ICAgCisgICAgICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5vbmU7
Iik7ICAgCisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoImNsYXNz
IiwgIm15UXVvdGVzIik7CisgICAgICAgICAgICAgICAgdGVzdFdpZHRoID0gd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RDb250YWluZXIiKSwgbnVs
bCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAgICByZWZlcmVuY2VX
aWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWZlcmVuY2UiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAg
ICAgICBpZiAodGVzdFdpZHRoID09IHJlZmVyZW5jZVdpZHRoKQorICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJQQVNTRUQi
OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiRkFJTEVEOiB0ZXN0V2lkdGg9IiAr
IHRlc3RXaWR0aCArIjsgZXhwZWN0ZWQgIiArIHJlZmVyZW5jZVdpZHRoOworICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgn
cnVuKCknLCAwKTsiPgorICAgICAgICA8cCBpZD0ib25seUluQnJvd3NlciI+VGhlIHRleHRzIGJl
dHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC48L3A+CisgICAgICAgIDxwPj09
PT09PT09TWFya2VyMT09PT09PT09PC9wPgorICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8
dHI+CisgICAgICAgICAgICAgICAgPHRkIGlkPSJ0ZXN0Q29udGFpbmVyIj48cT5hPHE+YjwvcT5j
PC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAg
ICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAg
ICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5XV2FXV1diV1dX
V1djV1dXVzwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAg
ICAgICAgPHA+PT09PT09PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNv
bnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZWxlbWVudHMtZGVsZXRlLWlubGluZS1zdHlsZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtZGVsZXRlLWlubGluZS1zdHlsZS1leHBlY3RlZC50
eHQKaW5kZXggZDk2M2RhMS4uZWJkYzczYiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzLWRlbGV0ZS1pbmxpbmUtc3R5bGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy1kZWxldGUtaW5saW5lLXN0eWxlLWV4cGVjdGVkLnR4
dApAQCAtOCw2ICs4LDEwIEBAIGNvbG9yOiByZWQ7CiBbZXhwYW5kZWRdIGRpdiB7ICh1c2VyIGFn
ZW50IHN0eWxlc2hlZXQpCiBkaXNwbGF5OiBibG9jazsKIAorPT09PT09PT0gSW5oZXJpdGVkIGZy
b20gaHRtbCA9PT09PT09PQorW2V4cGFuZGVkXSBodG1sIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVl
dCkKK3F1b3RlczogJyInLCAnIicsICdcJycsICdcJyc7CisKIAogQWZ0ZXIgc3R5bGUgcHJvcGVy
dHkgcmVtb3ZhbDoKIFtleHBhbmRlZF0gZWxlbWVudC5zdHlsZSB7ICgpCkBAIC0xNiw1ICsyMCw5
IEBAIEFmdGVyIHN0eWxlIHByb3BlcnR5IHJlbW92YWw6CiBbZXhwYW5kZWRdIGRpdiB7ICh1c2Vy
IGFnZW50IHN0eWxlc2hlZXQpCiBkaXNwbGF5OiBibG9jazsKIAorPT09PT09PT0gSW5oZXJpdGVk
IGZyb20gaHRtbCA9PT09PT09PQorW2V4cGFuZGVkXSBodG1sIHsgKHVzZXIgYWdlbnQgc3R5bGVz
aGVldCkKK3F1b3RlczogJyInLCAnIicsICdcJycsICdcJyc7CisKIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc3R5bGVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zdHlsZXMtZXhwZWN0ZWQudHh0
CmluZGV4IDQxZjM0M2MuLjAzZDQxM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy1wYW5lbC1zdHlsZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zdHlsZXMtZXhwZWN0ZWQudHh0CkBAIC02NCw2ICs2NCwx
MCBAQCBmb250LXNpemU6IDE0cHg7CiBbZXhwYW5kZWRdIGJvZHkgeyAoZWxlbWVudHMtcGFuZWwt
c3R5bGVzLmNzczoxKQogLy0tIG92ZXJsb2FkZWQgLS0vIGZvbnQtc2l6ZTogMTJweDsKIAorPT09
PT09PT0gSW5oZXJpdGVkIGZyb20gaHRtbCA9PT09PT09PQorW2V4cGFuZGVkXSBodG1sIHsgKHVz
ZXIgYWdlbnQgc3R5bGVzaGVldCkKK3F1b3RlczogJyInLCAnIicsICdcJycsICdcJyc7CisKIAog
PT09PT09PT0gUHNldWRvIDo6YmVmb3JlIGVsZW1lbnQgPT09PT09PT0KIFtleHBhbmRlZF0gLmZv
bzo6YmVmb3JlIHsgKGVsZW1lbnRzLXBhbmVsLXN0eWxlcy5jc3M6MzgpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLWFkZC1ibGFuay1wcm9wZXJ0eS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLWFkZC1ibGFuay1wcm9wZXJ0eS1leHBl
Y3RlZC50eHQKaW5kZXggZGViMzViZC4uOGI3MmU2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3N0eWxlcy1hZGQtYmxhbmstcHJvcGVydHktZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtYWRkLWJsYW5rLXByb3BlcnR5LWV4cGVjdGVkLnR4
dApAQCAtOSw2ICs5LDEwIEBAIGZvbnQtc2l6ZTogMTJweDsKIFtleHBhbmRlZF0gZGl2IHsgKHVz
ZXIgYWdlbnQgc3R5bGVzaGVldCkKIGRpc3BsYXk6IGJsb2NrOwogCis9PT09PT09PSBJbmhlcml0
ZWQgZnJvbSBodG1sID09PT09PT09CitbZXhwYW5kZWRdIGh0bWwgeyAodXNlciBhZ2VudCBzdHls
ZXNoZWV0KQorcXVvdGVzOiAnIicsICciJywgJ1wnJywgJ1wnJzsKKwogCiBBZnRlciBhcHBlbmQ6
CiBbZXhwYW5kZWRdIGVsZW1lbnQuc3R5bGUgeyAoKQpAQCAtMTksNSArMjMsOSBAQCBtYXJnaW4t
bGVmdDogM3B4OwogW2V4cGFuZGVkXSBkaXYgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQogZGlz
cGxheTogYmxvY2s7CiAKKz09PT09PT09IEluaGVyaXRlZCBmcm9tIGh0bWwgPT09PT09PT0KK1tl
eHBhbmRlZF0gaHRtbCB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCitxdW90ZXM6ICciJywgJyIn
LCAnXCcnLCAnXCcnOworCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy1kaXNhYmxlLWluaGVyaXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzLWRpc2FibGUtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dAppbmRleCA5YjQ4ZWQ2Li4w
ZmE0MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLWRpc2FibGUt
aW5oZXJpdGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
LWRpc2FibGUtaW5oZXJpdGVkLWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsMTAgQEAgZGlzcGxh
eTogYmxvY2s7CiBbZXhwYW5kZWRdIFN0eWxlIEF0dHJpYnV0ZSB7ICgpCiBmb250LXdlaWdodDog
Ym9sZDsKIAorPT09PT09PT0gSW5oZXJpdGVkIGZyb20gaHRtbCA9PT09PT09PQorW2V4cGFuZGVk
XSBodG1sIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKK3F1b3RlczogJyInLCAnIicsICdcJycs
ICdcJyc7CisKIAogQWZ0ZXIgZGlzYWJsZToKIFtleHBhbmRlZF0gZWxlbWVudC5zdHlsZSB7ICgp
CkBAIC0xOSw1ICsyMyw5IEBAIEFmdGVyIGRpc2FibGU6CiBbZXhwYW5kZWRdIGRpdiB7ICh1c2Vy
IGFnZW50IHN0eWxlc2hlZXQpCiBkaXNwbGF5OiBibG9jazsKIAorPT09PT09PT0gSW5oZXJpdGVk
IGZyb20gaHRtbCA9PT09PT09PQorW2V4cGFuZGVkXSBodG1sIHsgKHVzZXIgYWdlbnQgc3R5bGVz
aGVldCkKK3F1b3RlczogJyInLCAnIicsICdcJycsICdcJyc7CisKIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLW5ldy1BUEktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1uZXctQVBJLWV4cGVjdGVkLnR4dAppbmRleCAzNTRlNTMw
Li5hNWM3MDM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLW5ldy1B
UEktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtbmV3LUFQ
SS1leHBlY3RlZC50eHQKQEAgLTczLDYgKzczLDcgQEAgTGV2ZWw9MQogcnVsZQogaHRtbDogW3Vz
ZXItYWdlbnRdCiBbJ2Rpc3BsYXknOidibG9jayddIEBbdW5kZWZpbmVkLXVuZGVmaW5lZF0gc3R5
bGUKK1sncXVvdGVzJzonJyInLCAnIicsICdcJycsICdcJycnXSBAW3VuZGVmaW5lZC11bmRlZmlu
ZWRdIHN0eWxlCiAKIHJ1bGUKIGh0bWw6IFtdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzLXNvdXJjZS1saW5lcy1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2UtbGluZXMtaW5saW5lLWV4cGVjdGVkLnR4dAppbmRl
eCA1ODIyZjVlLi5iMzQ3ODI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzLXNvdXJjZS1saW5lcy1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMtc291cmNlLWxpbmVzLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTExLDUg
KzExLDkgQEAgY29sb3I6IGJsdWU7CiBbZXhwYW5kZWRdIGRpdiB7ICh1c2VyIGFnZW50IHN0eWxl
c2hlZXQpCiAvLS0gb3ZlcmxvYWRlZCAtLS8gZGlzcGxheTogYmxvY2s7CiAKKz09PT09PT09IElu
aGVyaXRlZCBmcm9tIGh0bWwgPT09PT09PT0KK1tleHBhbmRlZF0gaHRtbCB7ICh1c2VyIGFnZW50
IHN0eWxlc2hlZXQpCitxdW90ZXM6ICciJywgJyInLCAnXCcnLCAnXCcnOworCiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQu
bWsKaW5kZXggYWE5ODNiNC4uMWYyMWQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5k
cm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC02OTcsNiArNjk3LDcg
QEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIFwK
IAlyZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAgXAorCXJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAg
XAogCXJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBs
aWNhLmNwcCBcCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTdmYjRjOS4uZGY2MTRlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzNjMsNiArMTM2Myw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAogICAgIHJlbmRlcmlu
Zy9SZW5kZXJQYXJ0LmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKKyAgICBy
ZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJS
dWJ5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMwMTgwNTAuLjFmZTdmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NSBAQAorMjAxMS0wMi0wOCAgQ2Fyb2wgU3phYm8gIDxjYXJvbC5zemFib0Bub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgY29u
dGVudCBwcm9wZXJ0eSBkb2Vzbid0IHN1cHBvcnQgcXVvdGVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTAzCisKKyAgICAgICAgQWRkZWQgZnVsbCBz
dXBwb3J0IGZvciBxdW90ZXMgYXMgZGVmaW5lZCBieSBDU1MgMi4xLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA0Lmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbAorCisgICAgICAgICogQW5kcm9p
ZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5h
bToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgIEFkZGVkIFJlbmRlclF1b3RlLmNwcC9oIHRvIHRoZSBkZXBlbmRlbmN5IGxpc3Rz
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVF1b3Rl
cyk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICBBZGRlZCBuZWVkZWQgc3R5
bGVzaGVldCBwYXJzaW5nIHN1cHBvcnQgZm9yIHF1b3RlcywKKyAgICAgICAgKG5vLSlvcGVuLXF1
b3RlIGFuZCAobm8tKWNsb3NlLXF1b3RlCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6
CisgICAgICAgIEhhbmRsZWQgc2V0dGluZyBvZiB0aGUgbmV3IHF1b3RlcyBSZW5kZXJTdHlsZSBw
cm9wZXJ0eSBhbmQgYWRkZWQKKyAgICAgICAgaGFuZGxpbmcgb2YgcXVvdGVzIGZvciB0aGUgY29u
dGVudCBwcm9wZXJ0eS4KKyAgICAgICAgKiBjc3MvaHRtbC5jc3M6CisgICAgICAgIChodG1sKToK
KyAgICAgICAgYWRkZWQgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHF1b3RlcyBwcm9wZXJ0eS4KKyAg
ICAgICAgKHE6YmVmb3JlKToKKyAgICAgICAgKHE6YWZ0ZXIpOgorICAgICAgICByZXBsYWNlZCB0
aGUgJyInIHdvcmthcm91bmQgd2l0aCBvcGVuL2Nsb3NlLXF1b3RlCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1F1
b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6cmVtb3ZlQ2hpbGROb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGRO
b2RlKToKKyAgICAgICAgSGFuZGxlZCB1cGRhdGluZyBvZiBxdW90ZSBkZXB0aCB3aGVuIHJlbmRl
cmVycyBhcmUgYWRkZWQgYW5kIHJlbW92ZWQKKyAgICAgICAgZnJvbSB0aGUgdHJlZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250
ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmFkanVzdERlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3Rl
OjpSZW5kZXJRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6flJlbmRlclF1
b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpyZW5kZXJOYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpwbGFjZVF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclF1b3RlOjpvcmlnaW5hbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVv
dGU6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJRdW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUXVvdGU6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UXVvdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6aXNRdW90ZSk6
CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclF1b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyaW5nQWxsSW5PbmUuY3BwOgorICAgICAgICBJbmNsdWRlZCBSZW5kZXJRdW90ZS5jcHAK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudERhdGE6OmRhdGFFcXVpdmFsZW50KToKKyAgICAgICAgQ2hlY2tlZCBmb3Ig
cXVvdGV0eXBlIGlkZW50aXR5LgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0
YS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6OmlzUXVvdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudERhdGE6OnF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRE
YXRhOjpzZXRRdW90ZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDb250ZW50KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkluaGVy
aXRlZEZsYWdzOjpxdW90ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNl
dFF1b3Rlcyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6
CisgICAgICAgIEluY2x1ZGVkIHF1b3RlcyBpbiBlcXVhbGl0eSBjaGVjay4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICBBZGRlZCBx
dW90ZXMKKwogMjAxMS0wMi0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
YmE3ZGYzYi4uZWI0ZTM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI4MTUsNiArMjgxNSw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clBhcnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJRdW90ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KaW5kZXggZjcwNzBlOS4uMWM3OGEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEzNDQsNiArMTM0
NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3Qu
Y3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJQcm9ncmVzcy5jcHAgXAorICAgIHJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAogICAgIHJl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsaWNh
LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwIFwKQEAgLTIzMTgsNiArMjMxOSw3
IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBcCiAgICAgcmVu
ZGVyaW5nL1JlbmRlclBhcnQuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggXAor
ICAgIHJlbmRlcmluZy9SZW5kZXJRdW90ZS5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuaCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclJ1YnkuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IDg1MmNhNDEuLmNjNTE5OGYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zNTA1OCw2ICszNTA1OCw2MiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVy
UXVvdGUuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJv
X0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJRdW90ZS5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyUmVwbGFj
ZWQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZDE4NWRmLi5iYzkw
YWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yOTE5LDYgKzI5MTksOCBAQAogCQk5MzkyRjE0NDBBRDE4NUZFMDA2OTFCRDQg
LyogUmVuZGVyQ291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkyRjE0MzBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5jcHAg
Ki87IH07CiAJCTkzOTJGMTRDMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNEIwQUQxODYx
QjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggKi87IH07CiAJCTkzOTJGMTUwMEFEMTg2MjMwMDY5
MUJENCAvKiBDb3VudGVyTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzkyRjE0RjBBRDE4NjIzMDA2OTFCRDQgLyogQ291bnRlck5vZGUuY3Bw
ICovOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQxMEFEMTg1
RjQwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5oICovOyB9OworCQk5MzkyRjE0NDBBRDE4NUZFMDA2
OTFCRDQgLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNw
cCAqLzsgfTsKIAkJOTM5ODg1QzMwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzEwOEI3
RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuY3BwICovOyB9OwogCQk5Mzk4ODVDNDA4QjdFM0Qx
MDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJF
RTBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyog
V2lkdGhJdGVyYXRvci5jcHAgKi87IH07CkBAIC05MzM2LDYgKzkzMzgsOCBAQAogCQk5MzkyRjE0
MzBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlck5vZGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MkYxNEYwQUQxODYyMzAwNjkxQkQ0IC8qIENvdW50ZXJO
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb3VudGVyTm9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTJGMTQxMEFEMTg1RjQwMDY5
MUJENCAvKiBSZW5kZXJRdW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyUXVvdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5MkYxNDMwQUQx
ODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJRdW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzOTU1QTQxMDNENzI5MzIwMDg2MzVDRSAvKiBSZW5kZXJUcmVlQXNUZXh0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUFz
VGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKIAkJOTM5NTVBNDIwM0Q3MjkzMjAwODYzNUNFIC8qIFJlbmRlclRyZWVBc1RleHQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW5kZXJUcmVlQXNUZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOTg4NUMxMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5h
bWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEV2ZW50TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE4ODQ3LDYgKzE4ODUxLDggQEAKIAkJCQlBODcxREVD
RjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5oICovLAogCQkJCUE0M0JGNTlBMTE0OTI5
MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgKi8sCiAJCQkJQTQzQkY1OUIxMTQ5Mjky
ODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmggKi8sCisJCQkJOTM5MkYxNDMwQUQxODVGRTAw
NjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNwcCAqLywKKwkJCQk5MzkyRjE0MTBBRDE4NUY0MDA2OTFC
RDQgLyogUmVuZGVyUXVvdGUuaCAqLywKIAkJCQlBODcxREZERTBBMTUzNzZCMDBCMTJBNjggLyog
UmVuZGVyUmVwbGFjZWQuY3BwICovLAogCQkJCUE4NzFERkRGMEExNTM3NkIwMEIxMkE2OCAvKiBS
ZW5kZXJSZXBsYWNlZC5oICovLAogCQkJCUJDQTg0NkQ0MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5k
ZXJSZXBsaWNhLmNwcCAqLywKQEAgLTIxNzcyLDYgKzIxNzc4LDcgQEAKIAkJCQlCQ0ZBOTMwODEw
MzMzMTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
NzFERUQ3MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNDNCRjU5RDExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTg3MURGRTMwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlclJlcGxhY2Vk
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E4NDZENzBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVy
UmVwbGljYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3OUZBRUUxMDlBRTM3NTAwREVENjU1IC8q
IFJlbmRlclJ1YnkuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ1ODAsNiArMjQ1ODcsNyBAQAogCQkJ
CUJDNjBFRkI3MEYzM0EwRTcwMDgxMkE5MyAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTg3MURFRDAwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTQzQkY1OUMxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRl
clByb2dyZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzOTJGMTQ0MEFEMTg1RkUwMDY5MUJE
NCAvKiBSZW5kZXJRdW90ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREZFMjBBMTUzNzZC
MDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBODQ2
RDYwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ3OUZBRUQxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnkuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDFhZTQ1ZjUuLmE5MTg0M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MTMsNiArNjEzLDggQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVF1b3RlczogICAgICAgICAgICAgICAvLyBbPHN0cmluZz4gPHN0cmluZz5dKyB8IG5vbmUg
fCBpbmhlcml0CiAgICAgICAgIGlmIChpZCkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlUXVvdGVzKHByb3BJ
ZCwgaW1wb3J0YW50KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVVuaWNv
ZGVCaWRpOiAgICAgICAgIC8vIG5vcm1hbCB8IGVtYmVkIHwgYmlkaS1vdmVycmlkZSB8IGluaGVy
aXQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8CkBAIC0yMzMzLDYgKzIzMzUs
MjggQEAgQ1NTUGFyc2VyOjpTaXplUGFyYW1ldGVyVHlwZSBDU1NQYXJzZXI6OnBhcnNlU2l6ZVBh
cmFtZXRlcihDU1NWYWx1ZUxpc3QqIHBhcnNlZFYKICAgICB9CiB9CiAKKy8vIFsgPHN0cmluZz4g
PHN0cmluZz4gXSsgfCBpbmhlcml0IHwgbm9uZQorLy8gaW5oZXJpdCBhbmQgbm9uZSBhcmUgaGFu
ZGxlZCBpbiBwYXJzZVZhbHVlLgorYm9vbCBDU1NQYXJzZXI6OnBhcnNlUXVvdGVzKGludCBwcm9w
SWQsIGJvb2wgaW1wb3J0YW50KQoreworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHZhbHVlcyA9
IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAgICB3aGlsZSAoQ1NTUGFy
c2VyVmFsdWUqIHZhbCA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCkpIHsKKyAgICAgICAgUmVmUHRy
PENTU1ZhbHVlPiBwYXJzZWRWYWx1ZTsKKyAgICAgICAgaWYgKHZhbC0+dW5pdCA9PSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1NUUklORykKKyAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWwtPnN0cmluZywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19T
VFJJTkcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgdmFsdWVz
LT5hcHBlbmQocGFyc2VkVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgbV92YWx1ZUxpc3QtPm5l
eHQoKTsKKyAgICB9CisgICAgaWYgKHZhbHVlcy0+bGVuZ3RoKCkpIHsKKyAgICAgICAgYWRkUHJv
cGVydHkocHJvcElkLCB2YWx1ZXMucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICBtX3Zh
bHVlTGlzdC0+bmV4dCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiAvLyBbIDxzdHJpbmc+IHwgPHVyaT4gfCA8Y291bnRlcj4gfCBhdHRyKFgp
IHwgb3Blbi1xdW90ZSB8IGNsb3NlLXF1b3RlIHwgbm8tb3Blbi1xdW90ZSB8IG5vLWNsb3NlLXF1
b3RlIF0rIHwgaW5oZXJpdAogLy8gaW4gQ1NTIDIuMSB0aGlzIGdvdCBzb21ld2hhdCByZWR1Y2Vk
OgogLy8gWyA8c3RyaW5nPiB8IGF0dHIoWCkgfCBvcGVuLXF1b3RlIHwgY2xvc2UtcXVvdGUgfCBu
by1vcGVuLXF1b3RlIHwgbm8tY2xvc2UtcXVvdGUgXSsgfCBpbmhlcml0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmgKaW5kZXggZDFiMjA2MS4uMTVlMTJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAt
NzgsNiArNzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgcGFyc2VTaG9y
dGhhbmQoaW50IHByb3BJZCwgY29uc3QgaW50KiBwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVydGll
cywgYm9vbCBpbXBvcnRhbnQpOwogICAgICAgICBib29sIHBhcnNlNFZhbHVlcyhpbnQgcHJvcElk
LCBjb25zdCBpbnQqIHByb3BlcnRpZXMsIGJvb2wgaW1wb3J0YW50KTsKICAgICAgICAgYm9vbCBw
YXJzZUNvbnRlbnQoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOworICAgICAgICBib29sIHBh
cnNlUXVvdGVzKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKIAogICAgICAgICBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBwYXJzZUF0dHIoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDhhNGFjMzguLjdmZWIwNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTQ1MzUsMzYgKzQ1
MzUsNTkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NT
VmFsdWUgKnZhbHVlKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1
ZSogY29udGVudFZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsK
ICAgICAgICAgICAgIHN3aXRjaCAoY29udGVudFZhbHVlLT5wcmltaXRpdmVUeXBlKCkpIHsKLSAg
ICAgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HOgotICAgICAg
ICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNvbnRlbnRWYWx1ZS0+Z2V0U3RyaW5n
VmFsdWUoKS5pbXBsKCksIGRpZFNldCk7CisgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfU1RSSU5HOgorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY29u
dGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLmltcGwoKSwgZGlkU2V0KTsKKyAgICAgICAgICAg
ICAgICBkaWRTZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0FUVFI6IHsKKyAgICAgICAgICAgICAgICAvLyBG
SVhNRTogQ2FuIGEgbmFtZXNwYWNlIGJlIHNwZWNpZmllZCBmb3IgYW4gYXR0cihmb28pPworICAg
ICAgICAgICAgICAgIGlmIChtX3N0eWxlLT5zdHlsZVR5cGUoKSA9PSBOT1BTRVVETykKKyAgICAg
ICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0VW5pcXVlKCk7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBtX3BhcmVudFN0eWxlLT5zZXRVbmlxdWUoKTsKKyAgICAg
ICAgICAgICAgICBRdWFsaWZpZWROYW1lIGF0dHIobnVsbEF0b20sIGNvbnRlbnRWYWx1ZS0+Z2V0
U3RyaW5nVmFsdWUoKS5pbXBsKCksIG51bGxBdG9tKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxl
LT5zZXRDb250ZW50KG1fZWxlbWVudC0+Z2V0QXR0cmlidXRlKGF0dHIpLmltcGwoKSwgZGlkU2V0
KTsKKyAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIC8vIHJl
Z2lzdGVyIHRoZSBmYWN0IHRoYXQgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBhZmZlY3RzIHRoZSBzdHls
ZQorICAgICAgICAgICAgICAgIG1fc2VsZWN0b3JBdHRycy5hZGQoYXR0ci5sb2NhbE5hbWUoKS5p
bXBsKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSTogeworICAgICAgICAgICAgICAgIGlm
ICghY29udGVudFZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChjYWNoZWRPclBlbmRpbmdG
cm9tVmFsdWUoQ1NTUHJvcGVydHlDb250ZW50LCBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4o
Y29udGVudFZhbHVlKSksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2Ug
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DT1VOVEVSOiB7CisgICAgICAgICAgICAgICAgQ291bnRl
ciogY291bnRlclZhbHVlID0gY29udGVudFZhbHVlLT5nZXRDb3VudGVyVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICBPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50ZXIgPSBhZG9wdFB0cihuZXcg
Q291bnRlckNvbnRlbnQoY291bnRlclZhbHVlLT5pZGVudGlmaWVyKCksCisgICAgICAgICAgICAg
ICAgICAgIChFTGlzdFN0eWxlVHlwZSljb3VudGVyVmFsdWUtPmxpc3RTdHlsZU51bWJlcigpLCBj
b3VudGVyVmFsdWUtPnNlcGFyYXRvcigpKSk7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0
Q29udGVudChjb3VudGVyLnJlbGVhc2UoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBkaWRT
ZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UOgorICAgICAgICAgICAgICAg
IHN3aXRjaCAoY29udGVudFZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZU9wZW5RdW90ZToKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29u
dGVudChPUEVOX1FVT1RFLCBkaWRTZXQpOwogICAgICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0
cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfQVRUUjogewotICAgICAgICAgICAgICAgICAgICAvLyBGSVhN
RTogQ2FuIGEgbmFtZXNwYWNlIGJlIHNwZWNpZmllZCBmb3IgYW4gYXR0cihmb28pPwotICAgICAg
ICAgICAgICAgICAgICBpZiAobV9zdHlsZS0+c3R5bGVUeXBlKCkgPT0gTk9QU0VVRE8pCi0gICAg
ICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRVbmlxdWUoKTsKLSAgICAgICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJlbnRTdHlsZS0+c2V0VW5p
cXVlKCk7Ci0gICAgICAgICAgICAgICAgICAgIFF1YWxpZmllZE5hbWUgYXR0cihudWxsQXRvbSwg
Y29udGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLmltcGwoKSwgbnVsbEF0b20pOwotICAgICAg
ICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KG1fZWxlbWVudC0+Z2V0QXR0cmlidXRl
KGF0dHIpLmltcGwoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQ2xv
c2VRdW90ZToKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChDTE9TRV9R
VU9URSwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXIgdGhlIGZhY3QgdGhhdCB0aGUgYXR0cmlidXRlIHZh
bHVlIGFmZmVjdHMgdGhlIHN0eWxlCi0gICAgICAgICAgICAgICAgICAgIG1fc2VsZWN0b3JBdHRy
cy5hZGQoYXR0ci5sb2NhbE5hbWUoKS5pbXBsKCkpOwogICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1VSSTogewotICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRlbnRWYWx1ZS0+
aXNJbWFnZVZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUo
Q1NTUHJvcGVydHlDb250ZW50LCBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4oY29udGVudFZh
bHVlKSksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZU5vT3BlblF1b3Rl
OgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KE5PX09QRU5fUVVPVEUs
IGRpZFNldCk7CiAgICAgICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjYXNl
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ09VTlRFUjogewotICAgICAgICAgICAgICAgICAgICBD
b3VudGVyKiBjb3VudGVyVmFsdWUgPSBjb250ZW50VmFsdWUtPmdldENvdW50ZXJWYWx1ZSgpOwot
ICAgICAgICAgICAgICAgICAgICBPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50ZXIgPSBhZG9w
dFB0cihuZXcgQ291bnRlckNvbnRlbnQoY291bnRlclZhbHVlLT5pZGVudGlmaWVyKCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAoRUxpc3RTdHlsZVR5cGUpY291bnRlclZhbHVlLT5saXN0U3R5
bGVOdW1iZXIoKSwgY291bnRlclZhbHVlLT5zZXBhcmF0b3IoKSkpOwotICAgICAgICAgICAgICAg
ICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNvdW50ZXIucmVsZWFzZSgpLCBkaWRTZXQpOworICAg
ICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVOb0Nsb3NlUXVvdGU6CisgICAgICAgICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldENvbnRlbnQoTk9fQ0xPU0VfUVVPVEUsIGRpZFNldCk7CiAgICAgICAg
ICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbCBh
bmQgbm9uZSBkbyBub3QgaGF2ZSBhbnkgZWZmZWN0LgorICAgICAgICAgICAgICAgICAgICB7fQog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNDU3Miw2ICs0
NTk1LDI2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENT
U1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgIG1fc3R5bGUtPmNsZWFyQ29udGVudCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6CisgICAgICAg
IEhBTkRMRV9JTkhFUklUKHF1b3RlcywgUXVvdGVzKQorICAgICAgICBpZiAodmFsdWUtPmlzVmFs
dWVMaXN0KCkpIHsKKyAgICAgICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0
PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgICAgIGludCBsZW4gPSBsaXN0LT5sZW5n
dGgoKTsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHYobGVuKTsKKyAgICAgICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBDU1NWYWx1ZSog
aXRlbSA9IGxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSk7CisgICAgICAgICAgICAgICAg
QVNTRVJUKGl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcHJpbWl0
aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOworICAgICAg
ICAgICAgICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKTsKKyAgICAgICAgICAgICAgICB2W2ldID0gcHJpbWl0
aXZlVmFsdWUtPmdldFN0cmluZ1ZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBt
X3N0eWxlLT5zZXRRdW90ZXModik7CisgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUp
IHsKKyAgICAgICAgICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpOworICAgICAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRRdW90ZXMoVmVjdG9yPFN0cmluZz4oKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvdW50ZXJJbmNyZW1lbnQ6CiAgICAgICAgIGFw
cGx5Q291bnRlckxpc3Qoc3R5bGUoKSwgdmFsdWUtPmlzVmFsdWVMaXN0KCkgPyBzdGF0aWNfY2Fz
dDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSkgOiAwLCBmYWxzZSk7CkBAIC01ODEzLDcgKzU4NTYsNiBA
QCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAq
dmFsdWUpCiAKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0cmV0Y2g6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVBhZ2U6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3RlczoKICAgICBjYXNlIENTU1By
b3BlcnR5VGV4dExpbmVUaHJvdWdoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGluZVRocm91
Z2hDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoTW9kZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9o
dG1sLmNzcwppbmRleCAwZjEzZmNiLi4yNTVkZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC0yNCw3
ICsyNCw4IEBACiBAbmFtZXNwYWNlICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIjsKIAog
aHRtbCB7Ci0gICAgZGlzcGxheTogYmxvY2sKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBxdW90
ZXM6ICciJyAnIicgIiciICInIjsKIH0KIAogLyogY2hpbGRyZW4gb2YgdGhlIDxoZWFkPiBlbGVt
ZW50IGFsbCBoYXZlIGRpc3BsYXk6bm9uZSAqLwpAQCAtMTEzLDEzICsxMTQsMTEgQEAgcSB7CiB9
CiAKIHE6YmVmb3JlIHsKLSAgICBjb250ZW50OiAnIicKLSAgICAvKiBGSVhNRTogY29udGVudDog
b3Blbi1xdW90ZTsgKi8KKyAgICBjb250ZW50OiBvcGVuLXF1b3RlOwogfQogCiBxOmFmdGVyIHsK
LSAgICBjb250ZW50OiAnIicKLSAgICAvKiBGSVhNRTogY29udGVudDogY2xvc2UtcXVvdGU7ICov
CisgICAgY29udGVudDogY2xvc2UtcXVvdGU7CiB9CiAKIGNlbnRlciB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNDNlNmJlYS4uYTVmMmM0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMjUyLDYgKzI1Miw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNCbG9ja0Zsb3coKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0JveE1vZGVsT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzRGV0YWlscygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzRGV0YWlsc01hcmtlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxk
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
LmNwcAppbmRleCA2YTc3M2RjLi40ZGY3MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGlzdEl0ZW0uaCIKKyNpbmNsdWRlICJSZW5kZXJRdW90ZS5oIgogI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dEZyYWdtZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgpAQCAtMTMwLDYgKzEzMSw3IEBAIFJlbmRlck9iamVjdCogUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0OjpyZW1vdmVDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVu
ZGVyCiAKICAgICBpZiAob2xkQ2hpbGQtPm1faGFzQ291bnRlck5vZGVNYXApCiAgICAgICAgIFJl
bmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9kZXMob2xkQ2hpbGQpOworICAgIFJlbmRlclF1
b3RlOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJlZShvbGRDaGlsZCk7CiAKICAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgb3duZXItPmRvY3VtZW50
KCktPmF4T2JqZWN0Q2FjaGUoKS0+Y2hpbGRyZW5DaGFuZ2VkKG93bmVyKTsKQEAgLTE3Nyw4ICsx
NzksOCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2RlKFJlbmRl
ck9iamVjdCogb3duZXIsIFJlbmRlck9iamVjdCogbgogICAgICAgICBpZiAoIW5ld0NoaWxkLT5p
c0Zsb2F0aW5nT3JQb3NpdGlvbmVkKCkgJiYgb3duZXItPmNoaWxkcmVuSW5saW5lKCkpCiAgICAg
ICAgICAgICBvd25lci0+ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQobmV3Q2hpbGQpOwogICAg
IH0KLQogICAgIFJlbmRlckNvdW50ZXI6OnJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKG5ld0NoaWxk
KTsKKyAgICBSZW5kZXJRdW90ZTo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQobmV3Q2hpbGQpOwog
ICAgIG5ld0NoaWxkLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsgLy8gR29l
cyB1cCB0aGUgY29udGFpbmluZyBibG9jayBoaWVyYXJjaHkuCiAgICAgaWYgKCFvd25lci0+bm9y
bWFsQ2hpbGROZWVkc0xheW91dCgpKQogICAgICAgICBvd25lci0+c2V0Q2hpbGROZWVkc0xheW91
dCh0cnVlKTsgLy8gV2UgbWF5IHN1cHBseSB0aGUgc3RhdGljIHBvc2l0aW9uIGZvciBhbiBhYnNv
bHV0ZSBwb3NpdGlvbmVkIGNoaWxkLgpAQCAtMjM5LDYgKzI0MSw3IEBAIHZvaWQgUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVuZGVy
T2JqZWN0KiBjCiAgICAgfQogCiAgICAgUmVuZGVyQ291bnRlcjo6cmVuZGVyZXJTdWJ0cmVlQXR0
YWNoZWQoY2hpbGQpOworICAgIFJlbmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZChj
aGlsZCk7CiAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwog
ICAgIGlmICghb3duZXItPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSkKICAgICAgICAgb3duZXIt
PnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSk7IC8vIFdlIG1heSBzdXBwbHkgdGhlIHN0YXRpYyBw
b3NpdGlvbiBmb3IgYW4gYWJzb2x1dGUgcG9zaXRpb25lZCBjaGlsZC4KQEAgLTQ2MCwxMCArNDYz
LDE0IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRlckNvbnRl
bnQoUmVuZGVyT2JqZWN0KiBvd25lciwgUHNldWRvCiAgICAgICAgICAgICAgICAgcmVuZGVyZXIg
PSBpbWFnZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgotICAgICAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3
IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihvd25lci0+ZG9jdW1lbnQoKSwg
KmNvbnRlbnQtPmNvdW50ZXIoKSk7Ci0gICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxl
KHBzZXVkb0VsZW1lbnRTdHlsZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ09OVEVOVF9DT1VOVEVSOgorICAgICAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5y
ZW5kZXJBcmVuYSgpKSBSZW5kZXJDb3VudGVyKG93bmVyLT5kb2N1bWVudCgpLCAqY29udGVudC0+
Y291bnRlcigpKTsKKyAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50
U3R5bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ09OVEVOVF9RVU9URToK
KyAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVy
UXVvdGUob3duZXItPmRvY3VtZW50KCksIGNvbnRlbnQtPnF1b3RlKCkpOworICAgICAgICAgICAg
cmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW5kZXJlcikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJRdW90ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOTA2NDQ4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJRdW90ZS5jcHAKQEAgLTAsMCArMSwyMTUgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAy
MDExIE5va2lhIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVuZGVyUXVvdGUuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKworI2RlZmluZSBVTktOT1dOX0RFUFRIIC0xCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3REZXB0aChpbnQgJmRl
cHRoLCBRdW90ZVR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIE9Q
RU5fUVVPVEU6CisgICAgY2FzZSBOT19PUEVOX1FVT1RFOgorICAgICAgICArK2RlcHRoOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENMT1NFX1FVT1RFOgorICAgIGNhc2UgTk9fQ0xPU0VfUVVP
VEU6CisgICAgICAgIGlmIChkZXB0aCkKKyAgICAgICAgICAgIC0tZGVwdGg7CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
K30KKworUmVuZGVyUXVvdGU6OlJlbmRlclF1b3RlKERvY3VtZW50KiBub2RlLCBRdW90ZVR5cGUg
cXVvdGUpCisgICAgOiBSZW5kZXJUZXh0KG5vZGUsIFN0cmluZ0ltcGw6OmVtcHR5KCkpCisgICAg
LCBtX3R5cGUocXVvdGUpCisgICAgLCBtX2RlcHRoKFVOS05PV05fREVQVEgpCisgICAgLCBtX25l
eHQoMCkKKyAgICAsIG1fcHJldmlvdXMoMCkKK3sKK30KKworUmVuZGVyUXVvdGU6On5SZW5kZXJR
dW90ZSgpCit7Cit9CisKK2NvbnN0IGNoYXIqIFJlbmRlclF1b3RlOjpyZW5kZXJOYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIlJlbmRlclF1b3RlIjsKK30KKworLy8gVGhpcyBmdW5jdGlvbiBw
bGFjZXMgYSBsaXN0IG9mIHF1b3RlIHJlbmRlcmVycyBzdGFydGluZyBhdCAidGhpcyIgaW4gdGhl
IGxpc3Qgb2YgcXVvdGUgcmVuZGVyZXJzIGFscmVhZHkKKy8vIGluIHRoZSBkb2N1bWVudCdzIHJl
bmRlcmVyIHRyZWUuCisvLyBUaGUgYXNzdW1wdGlvbnMgYXJlIG1hZGUgKGZvciBwZXJmb3JtYW5j
ZSk6CisvLyAxLiBUaGUgbGlzdCBvZiBxdW90ZXMgYWxyZWFkeSBpbiB0aGUgcmVuZGVyZXJzIHRy
ZWUgb2YgdGhlIGRvY3VtZW50IGlzIGFscmVhZHkgaW4gYSBjb25zaXN0ZW50IHN0YXRlCisvLyAo
QWxsIHF1b3RlIHJlbmRlcmVycyBhcmUgbGlua2VkIGFuZCBoYXZlIHRoZSBjb3JyZWN0IGRlcHRo
IHNldCkKKy8vIDIuIFRoZSBxdW90ZSByZW5kZXJlcnMgb2YgdGhlIGluc2VydGVkIGxpc3QgYXJl
IGluIGEgdHJlZSBvZiByZW5kZXJlcnMgb2YgdGhlaXIgb3duIHdoaWNoIGhhcyBiZWVuIGp1c3QK
Ky8vIGluc2VydGVkIGluIHRoZSBtYWluIHJlbmRlcmVyIHRyZWUgd2l0aCBpdHMgcm9vdCBhcyBj
aGlsZCBvZiBzb21lIHJlbmRlcmVyLgorLy8gMy4gVGhlIHF1b3RlIHJlbmRlcmVycyBpbiB0aGUg
aW5zZXJ0ZWQgbGlzdCBoYXZlIGRlcHRocyBjb25zaXN0ZW50IHdpdGggdGhlaXIgcG9zaXRpb24g
aW4gdGhlIGxpc3QgcmVsYXRpdmUKKy8vIHRvICJ0aGlzIiwgdGh1cyBpZiAidGhpcyIgZG9lcyBu
b3QgbmVlZCB0byBjaGFuZ2UgaXRzIGRlcHRoIHVwb24gaW5zZXJ0aW9uLCB0aGUgb3RoZXIgcmVu
ZGVyZXJzIGluIHRoZSBsaXN0IGRvbid0CisvLyBuZWVkIHRvIGVpdGhlci4KK3ZvaWQgUmVuZGVy
UXVvdGU6OnBsYWNlUXVvdGUoKQoreworICAgIFJlbmRlclF1b3RlKiBoZWFkID0gdGhpczsKKyAg
ICBBU1NFUlQoIWhlYWQtPm1fcHJldmlvdXMpOworICAgIFJlbmRlclF1b3RlKiB0YWlsID0gMDsK
KyAgICBmb3IgKFJlbmRlck9iamVjdCogcHJlZGVjZXNvciA9IGhlYWQtPnByZXZpb3VzSW5QcmVP
cmRlcigpOyBwcmVkZWNlc29yOyBwcmVkZWNlc29yID0gcHJlZGVjZXNvci0+cHJldmlvdXNJblBy
ZU9yZGVyKCkpCisgICAgICAgIGlmIChwcmVkZWNlc29yLT5pc1F1b3RlKCkpIHsKKyAgICAgICAg
ICAgIGhlYWQtPm1fcHJldmlvdXMgPSB0b1JlbmRlclF1b3RlKHByZWRlY2Vzb3IpOworICAgICAg
ICAgICAgaWYgKGhlYWQtPm1fcHJldmlvdXMtPm1fbmV4dCkgeworICAgICAgICAgICAgICAgIC8v
IFdlIG5lZWQgdG8gc3BsaWNlIHRoZSBsaXN0IG9mIHF1b3RlcyBoZWFkZWQgYnkgaGVhZCBpbnRv
IHRoZSBkb2N1bWVudCdzIGxpc3Qgb2YgcXVvdGVzLgorICAgICAgICAgICAgICAgIHRhaWwgPSBo
ZWFkOworICAgICAgICAgICAgICAgIHdoaWxlICh0YWlsLT5tX25leHQpCisgICAgICAgICAgICAg
ICAgICAgIHRhaWwgPSB0YWlsLT5tX25leHQ7CisgICAgICAgICAgICAgICAgdGFpbC0+bV9uZXh0
ID0gaGVhZC0+bV9wcmV2aW91cy0+bV9uZXh0OworICAgICAgICAgICAgICAgIEFTU0VSVCh0YWls
LT5tX25leHQtPm1fcHJldmlvdXMgPT0gaGVhZC0+bV9wcmV2aW91cyk7CisgICAgICAgICAgICAg
ICAgdGFpbC0+bV9uZXh0LT5tX3ByZXZpb3VzID0gIHRhaWw7CisgICAgICAgICAgICAgICAgdGFp
bCA9IHRhaWwtPm1fbmV4dDsgLy8gVGhpcyBtYXJrcyB0aGUgc3BsaWNpbmcgcG9pbnQgaGVyZSB0
aGVyZSBtYXkgYmUgYSBkZXB0aCBkaXNjb250aW51aXR5CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBoZWFkLT5tX3ByZXZpb3VzLT5tX25leHQgPSBoZWFkOworICAgICAgICAgICAgQVNTRVJU
KGhlYWQtPm1fcHJldmlvdXMtPm1fZGVwdGggIT0gVU5LTk9XTl9ERVBUSCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIGludCBuZXdEZXB0aDsKKyAgICBpZiAoIWhlYWQtPm1f
cHJldmlvdXMpIHsKKyAgICAgICAgbmV3RGVwdGggPSAwOworICAgICAgICBnb3RvIHNraXBOZXdE
ZXB0aENhbGM7CisgICAgfQorICAgIG5ld0RlcHRoID0gaGVhZC0+bV9wcmV2aW91cy0+bV9kZXB0
aDsKKyAgICBkbyB7CisgICAgICAgIGFkanVzdERlcHRoKG5ld0RlcHRoLCBoZWFkLT5tX3ByZXZp
b3VzLT5tX3R5cGUpOworc2tpcE5ld0RlcHRoQ2FsYzoKKyAgICAgICAgaWYgKGhlYWQtPm1fZGVw
dGggPT0gbmV3RGVwdGgpIHsgLy8gQWxsIHJlbWFpbmluZyBkZXB0aCBzaG91bGQgYmUgY29ycmVj
dCBleGNlcHQgaWYgc3BsaWNpbmcgd2FzIGRvbmUuCisgICAgICAgICAgICBpZiAoIXRhaWwpIC8v
IFdlJ3ZlIGRvbmUgdGhlIHBvc3Qgc3BsaWNpbmcgc2VjdGlvbiBhbHJlYWR5IG9yIHRoZXJlIHdh
cyBubyBzcGxpY2luZy4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGhlYWQg
PSB0YWlsOyAvLyBDb250aW51ZSBhZnRlciB0aGUgc3BsaWNpbmcgcG9pbnQKKyAgICAgICAgICAg
IHRhaWwgPSAwOyAvLyBNYXJrIHRoZSBwb3NzaWJsZSBzcGxpY2luZyBwb2ludCBkaXNjb250aW51
aXR5IGZpeGVkLgorICAgICAgICAgICAgbmV3RGVwdGggPSBoZWFkLT5tX3ByZXZpb3VzLT5tX2Rl
cHRoOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaGVhZC0+bV9k
ZXB0aCA9IG5ld0RlcHRoOworICAgICAgICAvLyBGSVhNRTogSWYgdGhlIHdpZHRoIGFuZCBoZWln
aHQgb2YgdGhlIHF1b3RhdGlvbiBjaGFyYWN0ZXJzIGRvZXMgbm90IGNoYW5nZSB3ZSBtYXkgb25s
eSBuZWVkIHRvCisgICAgICAgIC8vIEludmFsaWRhdGUgdGhlIHJlbmRlcmVyJ3MgYXJlYSBub3Qg
YSByZWxheW91dC4KKyAgICAgICAgaGVhZC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVj
YWxjKCk7CisgICAgICAgIGhlYWQgPSBoZWFkLT5tX25leHQ7CisgICAgICAgIGlmIChoZWFkID09
IHRhaWwpIC8vIFdlIGFyZSBhdCB0aGUgc3BsaWNpbmcgcG9pbnQKKyAgICAgICAgICAgIHRhaWwg
PSAwOyAvLyBNYXJrIHRoZSBwb3NzaWJsZSBkZXB0aCBkaXNjb250aW51aXR5IGZpeGVkLgorICAg
IH0gd2hpbGUgKGhlYWQpOworfQorCitQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IFJlbmRlclF1b3Rl
OjpvcmlnaW5hbFRleHQoKSBjb25zdAoreworICAgIGlmICghcGFyZW50KCkpCisgICAgICAgIHJl
dHVybiAwOworICAgIEFTU0VSVChtX2RlcHRoICE9IFVOS05PV05fREVQVEgpOworICAgIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBxdW90ZXMgPSBzdHlsZSgpLT5xdW90ZXMoKTsKKyAgICBpZiAoIXF1
b3Rlcy5zaXplKCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoIiIpLmltcGwoKTsKKyAgICBpbnQg
aW5kZXggPSBtX2RlcHRoICogMjsKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgTk9f
T1BFTl9RVU9URToKKyAgICBjYXNlIE5PX0NMT1NFX1FVT1RFOgorICAgICAgICByZXR1cm4gU3Ry
aW5nKCIiKS5pbXBsKCk7CisgICAgY2FzZSBDTE9TRV9RVU9URToKKyAgICAgICAgaWYgKGluZGV4
KQorICAgICAgICAgICAgLS1pbmRleDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgKytpbmRl
eDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPUEVOX1FVT1RFOgorICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIFN0cmluZygiIikuaW1wbCgpOworICAgIH0KKyAgICBpZiAoaW5kZXggPj0gcXVvdGVzLnNp
emUoKSkKKyAgICAgICAgaW5kZXggPSAocXVvdGVzLnNpemUoKS0yKSB8IChpbmRleCAmIDEpOwor
ICAgIGlmIChpbmRleCA8IDApCisgICAgICAgIHJldHVybiBTdHJpbmcoIiIpLmltcGwoKTsKKyAg
ICByZXR1cm4gcXVvdGVzW2luZGV4XS5pbXBsKCk7Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKGludCBsZWFkKQoreworICAgIHNldFRleHRJbnRl
cm5hbChvcmlnaW5hbFRleHQoKSk7CisgICAgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExv
Z2ljYWxXaWR0aHMobGVhZCk7Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OnJlbmRlcmVyU3VidHJl
ZUF0dGFjaGVkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCit7CisgICAgaWYgKHJlbmRlcmVyLT5k
b2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKFJlbmRl
ck9iamVjdCogZGVzY2VuZGFudCA9IHJlbmRlcmVyOyBkZXNjZW5kYW50OyBkZXNjZW5kYW50ID0g
ZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIocmVuZGVyZXIpKQorICAgICAgICBpZiAoZGVzY2Vu
ZGFudC0+aXNRdW90ZSgpKSB7CisgICAgICAgICAgICB0b1JlbmRlclF1b3RlKGRlc2NlbmRhbnQp
LT5wbGFjZVF1b3RlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorfQorCit2b2lk
IFJlbmRlclF1b3RlOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJlZShSZW5kZXJPYmplY3QqIHN1YnRy
ZWVSb290KQoreworICAgIGlmIChzdWJ0cmVlUm9vdC0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgp
KQorICAgICAgICByZXR1cm47CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQgPSBz
dWJ0cmVlUm9vdDsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblBy
ZU9yZGVyKHN1YnRyZWVSb290KSkKKyAgICAgICAgaWYgKGRlc2NlbmRhbnQtPmlzUXVvdGUoKSkg
eworICAgICAgICAgICAgUmVuZGVyUXVvdGUqIHJlbW92ZWRRdW90ZSA9IHRvUmVuZGVyUXVvdGUo
ZGVzY2VuZGFudCk7CisgICAgICAgICAgICBSZW5kZXJRdW90ZSogbGFzdFF1b3RlQmVmb3JlID0g
cmVtb3ZlZFF1b3RlLT5tX3ByZXZpb3VzOworICAgICAgICAgICAgcmVtb3ZlZFF1b3RlLT5tX3By
ZXZpb3VzID0gMDsKKyAgICAgICAgICAgIGludCBkZXB0aCA9IHJlbW92ZWRRdW90ZS0+bV9kZXB0
aDsKKyAgICAgICAgICAgIGZvciAoZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9y
ZGVyKHN1YnRyZWVSb290KTsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5l
eHRJblByZU9yZGVyKHN1YnRyZWVSb290KSkKKyAgICAgICAgICAgICAgICBpZiAoZGVzY2VuZGFu
dC0+aXNRdW90ZSgpKQorICAgICAgICAgICAgICAgICAgICByZW1vdmVkUXVvdGUgPSB0b1JlbmRl
clF1b3RlKGRlc2NlbmRhbnQpOworICAgICAgICAgICAgUmVuZGVyUXVvdGUqIHF1b3RlQWZ0ZXIg
PSByZW1vdmVkUXVvdGUtPm1fbmV4dDsKKyAgICAgICAgICAgIHJlbW92ZWRRdW90ZS0+bV9uZXh0
ID0gMDsKKyAgICAgICAgICAgIGlmIChsYXN0UXVvdGVCZWZvcmUpCisgICAgICAgICAgICAgICAg
bGFzdFF1b3RlQmVmb3JlLT5tX25leHQgPSBxdW90ZUFmdGVyOworICAgICAgICAgICAgaWYgKHF1
b3RlQWZ0ZXIpIHsKKyAgICAgICAgICAgICAgICBxdW90ZUFmdGVyLT5tX3ByZXZpb3VzID0gbGFz
dFF1b3RlQmVmb3JlOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGRlcHRoID09IHF1b3RlQWZ0ZXItPm1fZGVwdGgpCisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVBZnRlci0+bV9kZXB0aCA9IGRlcHRo
OworICAgICAgICAgICAgICAgICAgICBxdW90ZUFmdGVyLT5zZXROZWVkc0xheW91dEFuZFByZWZX
aWR0aHNSZWNhbGMoKTsKKyAgICAgICAgICAgICAgICAgICAgYWRqdXN0RGVwdGgoZGVwdGgsIHF1
b3RlQWZ0ZXItPm1fdHlwZSk7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlQWZ0ZXIgPSBxdW90
ZUFmdGVyLT5tX25leHQ7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocXVvdGVBZnRlcik7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorfQorCit2b2lkIFJl
bmRlclF1b3RlOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVu
ZGVyU3R5bGUqIG9sZFN0eWxlKQoreworICAgIGlmIChvbGRTdHlsZSkgeworICAgICAgICBpZiAo
b2xkU3R5bGUtPnF1b3RlcygpICE9IHN0eWxlKCktPnF1b3RlcygpKQorICAgICAgICAgICAgc2V0
TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CisgICAgfSBlbHNlIGlmIChzdHlsZSgp
LT5xdW90ZXMoKS5zaXplKCkpCisgICAgICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1Jl
Y2FsYygpOworICAgIFJlbmRlclRleHQ6OnN0eWxlRGlkQ2hhbmdlKGRpZmYsIG9sZFN0eWxlKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclF1b3RlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UXVvdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjkzOGJkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFJlbmRlclF1b3RlX2gKKyNkZWZpbmUgUmVuZGVy
UXVvdGVfaAorCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKKyNpbmNsdWRlICJS
ZW5kZXJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyUXVvdGUg
OiBwdWJsaWMgUmVuZGVyVGV4dCB7CitwdWJsaWM6CisgICAgUmVuZGVyUXVvdGUoRG9jdW1lbnQq
LCBjb25zdCBRdW90ZVR5cGUpOworICAgIHZpcnR1YWwgflJlbmRlclF1b3RlKCk7CisKKyAgICBz
dGF0aWMgdm9pZCByZW5kZXJlclN1YnRyZWVBdHRhY2hlZChSZW5kZXJPYmplY3QqKTsKKyAgICBz
dGF0aWMgdm9pZCByZW5kZXJlclJlbW92ZWRGcm9tVHJlZShSZW5kZXJPYmplY3QqKTsKK3Byb3Rl
Y3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNRdW90ZSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH07CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+
IG9yaWdpbmFsVGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocyhpbnQgbGVhZFdpZHRoKTsKKyAgICBRdW90ZVR5cGUgbV90eXBlOworICAg
IGludCBtX2RlcHRoOworICAgIFJlbmRlclF1b3RlKiBtX25leHQ7CisgICAgUmVuZGVyUXVvdGUq
IG1fcHJldmlvdXM7CisgICAgdm9pZCBwbGFjZVF1b3RlKCk7Cit9OworCitpbmxpbmUgUmVuZGVy
UXVvdGUqIHRvUmVuZGVyUXVvdGUoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJU
KCFvYmplY3QgfHwgb2JqZWN0LT5pc1F1b3RlKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxS
ZW5kZXJRdW90ZSo+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9p
bmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5kZXJRdW90ZShjb25zdCBSZW5kZXJR
dW90ZSopOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJRdW90
ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5P
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcApp
bmRleCA3NjBmMDJkLi4xOTVmYTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJpbmdBbGxJbk9uZS5jcHAKQEAgLTc5LDYgKzc5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJP
YmplY3RDaGlsZExpc3QuY3BwIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuY3BwIgogI2luY2x1ZGUg
IlJlbmRlclByb2dyZXNzLmNwcCIKKyNpbmNsdWRlICJSZW5kZXJRdW90ZS5jcHAiCiAjaW5jbHVk
ZSAiUmVuZGVyUmVwbGFjZWQuY3BwIgogI2luY2x1ZGUgIlJlbmRlclJlcGxpY2EuY3BwIgogI2lu
Y2x1ZGUgIlJlbmRlclJ1YnkuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9Db250ZW50RGF0YS5jcHAKaW5kZXggZDE1MGY3Ny4uOGViMjM0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwCkBAIC01MSw2ICs1MSw4IEBA
IGJvb2wgQ29udGVudERhdGE6OmRhdGFFcXVpdmFsZW50KGNvbnN0IENvbnRlbnREYXRhJiBvdGhl
cikgY29uc3QKICAgICAgICAgcmV0dXJuIFN0eWxlSW1hZ2U6OmltYWdlc0VxdWl2YWxlbnQoaW1h
Z2UoKSwgb3RoZXIuaW1hZ2UoKSk7CiAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CiAgICAgICAg
IHJldHVybiAqY291bnRlcigpID09ICpvdGhlci5jb3VudGVyKCk7CisgICAgY2FzZSBDT05URU5U
X1FVT1RFOgorICAgICAgICByZXR1cm4gcXVvdGUoKSA9PSBvdGhlci5xdW90ZSgpOwogICAgIH0K
IAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvQ29udGVudERhdGEuaAppbmRleCAxNWY2OTEyLi5jY2UzNzU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaApAQCAtNTEsNiArNTEsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0NvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ09O
VEVOVF9DT1VOVEVSOyB9CiAgICAgYm9vbCBpc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
ID09IENPTlRFTlRfT0JKRUNUOyB9CiAgICAgYm9vbCBpc05vbmUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gQ09OVEVOVF9OT05FOyB9CisgICAgYm9vbCBpc1F1b3RlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlID09IENPTlRFTlRfUVVPVEU7IH0KICAgICBib29sIGlzVGV4dCgpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZSA9PSBDT05URU5UX1RFWFQ7IH0KIAogICAgIFN0eWxlQ29udGVudFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpAQCAtOTMsNiArOTQsMTggQEAgcHVibGlj
OgogICAgICAgICBtX2NvbnRlbnQubV9jb3VudGVyID0gY291bnRlci5sZWFrUHRyKCk7CiAgICAg
fQogCisgICAgUXVvdGVUeXBlIHF1b3RlKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChp
c1F1b3RlKCkpOworICAgICAgICByZXR1cm4gbV9jb250ZW50Lm1fcXVvdGU7CisgICAgfQorICAg
IHZvaWQgc2V0UXVvdGUoUXVvdGVUeXBlIHR5cGUpCisgICAgeworICAgICAgICBkZWxldGVDb250
ZW50KCk7CisgICAgICAgIG1fdHlwZSA9IENPTlRFTlRfUVVPVEU7CisgICAgICAgIG1fY29udGVu
dC5tX3F1b3RlID0gdHlwZTsKKyAgICB9CisKICAgICBDb250ZW50RGF0YSogbmV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsgfQogICAgIHZvaWQgc2V0TmV4dChQYXNzT3duUHRyPENv
bnRlbnREYXRhPiBuZXh0KSB7IG1fbmV4dCA9IG5leHQ7IH0KIApAQCAtMTA0LDYgKzExNyw3IEBA
IHByaXZhdGU6CiAgICAgICAgIFN0eWxlSW1hZ2UqIG1faW1hZ2U7CiAgICAgICAgIFN0cmluZ0lt
cGwqIG1fdGV4dDsKICAgICAgICAgQ291bnRlckNvbnRlbnQqIG1fY291bnRlcjsKKyAgICAgICAg
UXVvdGVUeXBlIG1fcXVvdGU7CiAgICAgfSBtX2NvbnRlbnQ7CiAgICAgT3duUHRyPENvbnRlbnRE
YXRhPiBtX25leHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKaW5kZXggYjc2YTM1MC4uMzNiZDY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC02NzIsNiArNjcyLDExIEBAIHZv
aWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoUGFzc093blB0cjxDb3VudGVyQ29udGVudD4gY291
bnRlciwgYm9vbCBhZGQpCiAgICAgcHJlcGFyZVRvU2V0Q29udGVudCgwLCBhZGQpLT5zZXRDb3Vu
dGVyKGNvdW50ZXIpOwogfQogCit2b2lkIFJlbmRlclN0eWxlOjpzZXRDb250ZW50KFF1b3RlVHlw
ZSBxdW90ZSwgYm9vbCBhZGQpCit7CisgICAgcHJlcGFyZVRvU2V0Q29udGVudCgwLCBhZGQpLT5z
ZXRRdW90ZShxdW90ZSk7Cit9CisKIHZvaWQgUmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEludFNpemUmIGJvcmRlckJveFNp
emUsIEFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2luKSBjb25zdAogewogICAgIC8vIHRy
YW5zZm9ybS1vcmlnaW4gYnJhY2tldHMgdGhlIHRyYW5zZm9ybSB3aXRoIHRyYW5zbGF0ZSBvcGVy
YXRpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApp
bmRleCBhZTliZGEyLi5kYTYxNGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaApAQCAtMTEyNywxMCArMTEyNywxNCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRDb250ZW50KFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4sIGJvb2wgYWRkID0gZmFsc2UpOwog
ICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+LCBib29sIGFkZCA9IGZh
bHNlKTsKICAgICB2b2lkIHNldENvbnRlbnQoUGFzc093blB0cjxDb3VudGVyQ29udGVudD4sIGJv
b2wgYWRkID0gZmFsc2UpOworICAgIHZvaWQgc2V0Q29udGVudChRdW90ZVR5cGUsIGJvb2wgYWRk
ID0gZmFsc2UpOwogCiAgICAgY29uc3QgQ291bnRlckRpcmVjdGl2ZU1hcCogY291bnRlckRpcmVj
dGl2ZXMoKSBjb25zdDsKICAgICBDb3VudGVyRGlyZWN0aXZlTWFwJiBhY2Nlc3NDb3VudGVyRGly
ZWN0aXZlcygpOwogCisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHF1b3RlcygpIGNvbnN0IHsg
cmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5xdW90ZXM7IH0KKyAgICB2b2lkIHNldFF1b3Rlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcSkgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBxdW90
ZXMsIHEpOyB9CisKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGh5cGhlblN0cmluZygpIGNvbnN0
OwogCiAgICAgYm9vbCBpbmhlcml0ZWROb3RFcXVhbChjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVD
b25zdGFudHMuaAppbmRleCBjOTViZjVhLi44MTRlYWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtMjk4LDcg
KzI5OCwxMSBAQCBlbnVtIEVMaXN0U3R5bGVUeXBlIHsKIH07CiAKIGVudW0gU3R5bGVDb250ZW50
VHlwZSB7Ci0gICAgQ09OVEVOVF9OT05FLCBDT05URU5UX09CSkVDVCwgQ09OVEVOVF9URVhULCBD
T05URU5UX0NPVU5URVIKKyAgICBDT05URU5UX05PTkUsIENPTlRFTlRfT0JKRUNULCBDT05URU5U
X1RFWFQsIENPTlRFTlRfQ09VTlRFUiwgQ09OVEVOVF9RVU9URQorfTsKKworZW51bSBRdW90ZVR5
cGUgeworICAgIE9QRU5fUVVPVEUsIENMT1NFX1FVT1RFLCBOT19PUEVOX1FVT1RFLCBOT19DTE9T
RV9RVU9URQogfTsKIAogZW51bSBFQm9yZGVyRml0IHsgQm9yZGVyRml0Qm9yZGVyLCBCb3JkZXJG
aXRMaW5lcyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDZiOGUwMzkuLjQzY2E0NWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5jcHAKQEAgLTEzMiw3ICsxMzIsOCBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRl
ZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QK
ICAgICAgICAgJiYgdGV4dEVtcGhhc2lzUG9zaXRpb24gPT0gby50ZXh0RW1waGFzaXNQb3NpdGlv
bgogICAgICAgICAmJiBoeXBoZW5hdGlvblN0cmluZyA9PSBvLmh5cGhlbmF0aW9uU3RyaW5nCiAg
ICAgICAgICYmIGh5cGhlbmF0aW9uTG9jYWxlID09IG8uaHlwaGVuYXRpb25Mb2NhbGUKLSAgICAg
ICAgJiYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyayA9PSBvLnRleHRFbXBoYXNpc0N1c3RvbU1hcms7
CisgICAgICAgICYmIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsgPT0gby50ZXh0RW1waGFzaXNDdXN0
b21NYXJrCisgICAgICAgICYmIHF1b3RlcyA9PSBvLnF1b3RlczsKIH0KIAogYm9vbCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhOjpzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhl
cml0ZWREYXRhJiBvKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggZDI2Y2E4My4uYTFhY2M0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICBBdG9taWNTdHJp
bmcgaHlwaGVuYXRpb25Mb2NhbGU7CiAKICAgICBBdG9taWNTdHJpbmcgdGV4dEVtcGhhc2lzQ3Vz
dG9tTWFyazsKKyAgICBWZWN0b3I8U3RyaW5nPiBxdW90ZXM7CiAKIHByaXZhdGU6CiAgICAgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSgpOwo=
</data>
<flag name="review"
          id="73246"
          type_id="1"
          status="-"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="73247"
          type_id="3"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82320</attachid>
            <date>2011-02-14 08:54:39 -0800</date>
            <delta_ts>2011-02-14 10:05:12 -0800</delta_ts>
            <desc>Proposed Patch. Added support for language specific defaults.</desc>
            <filename>patchFor6503-2.patch</filename>
            <type>text/plain</type>
            <size>75963</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1OTM5YmE1Li5kMzdhMGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDIt
MTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24n
dCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyBmb3IgcXVvdGVzLgorCisg
ICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbDogQWRkZWQu
CisKIDIwMTEtMDItMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgc2tpcCBmYWlsaW5nIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L2hpbmRpLXdoaXRlc3BhY2UuaHRtbCB0ZXN0IG9uIEdUSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWVjOGYxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMg
c2hvdWxkIGJlIGlkZW50aWNhbC4KKworPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYWIJMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQor
CitXV2FXV2JXV1dXV1dXVwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09
PT09TWFya2VyMz09PT09PT09CisKK1BBU1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmViOWE0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0
bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAg
ICAgICBib2R5IHsgcXVvdGVzOiAiV1ciICJXV1dXIjsgfQorICAgICAgICA8L3N0eWxlPgorICAg
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rp
b24gcnVuKCkgeworICAgICAgICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdl
dFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGgg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJl
bmNlIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAg
aWYgKHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0
V2lkdGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigp
JywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVu
IHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09
PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgor
ICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+PC9xPjwv
dGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49
PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAg
PHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5XV2FXV2JXV1dXV1dXVzwv
dGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+
PT09PT09PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMTQ0NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDkgQEAKKz09PT09PT09TWFya2VyMT09PT09PT09CisKK2FiY2QJMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQorCithV1dXYldX
V1dXY1dXZFdXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1h
cmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hMWU3ODUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wMi5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAg
Ym9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAg
c3BhbjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgICAgICBzcGFu
OmFmdGVyIHsgY29udGVudDogbm8tY2xvc2UtcXVvdGU7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAg
ICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHJ1bigpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUlu
QnJvd3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3
aWR0aCIpOworICAgICAgICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0g
cmVmZXJlbmNlV2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
LmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3Rl
ZCAiICsgcmVmZXJlbmNlV2lkdGg7CisgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9u
ZTsiKTsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBv
bmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJy
b3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwu
PC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRh
YmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRh
aW5lciI+PHNwYW4+YTxxPmI8L3E+Yzwvc3Bhbj48cT5kPC9xPjwvdGQ+CisgICAgICAgICAgICAg
ICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAg
ICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09
PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAg
ICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5hV1dXYldXV1dXY1dXZFdXV1c8L3RkPgorICAgICAgICAg
ICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAg
ICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2Vy
Mz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yNTFkZWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACis9
PT09PT09PU1hcmtlcjE9PT09PT09PQorCithYgkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK2FXV1diV1dXV1cJMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQQVNTRUQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMt
MDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzFmOWJkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0w
My5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldXIiAiV1dX
VyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgYjpiZWZvcmUgeyBjb250ZW50OiBuby1v
cGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUo
InN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAgICAgICAgICAgICAgdGVzdFdpZHRoID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RDb250
YWluZXIiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAg
ICByZWZlcmVuY2VXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWZlcmVuY2UiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsK
KyAgICAgICAgICAgICAgICBpZiAodGVzdFdpZHRoID09IHJlZmVyZW5jZVdpZHRoKQorICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4
dCA9ICJQQVNTRUQiOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiRkFJTEVEOiB0
ZXN0V2lkdGg9IiArIHRlc3RXaWR0aCArIjsgZXhwZWN0ZWQgIiArIHJlZmVyZW5jZVdpZHRoOwor
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0i
c2V0VGltZW91dCgncnVuKCknLCAwKTsiPgorICAgICAgICA8cCBpZD0ib25seUluQnJvd3NlciI+
VGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC48L3A+Cisg
ICAgICAgIDxwPj09PT09PT09TWFya2VyMT09PT09PT09PC9wPgorICAgICAgICA8dGFibGU+Cisg
ICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGlkPSJ0ZXN0Q29udGFpbmVyIj48
c3Bhbj48Yj5hPC9iPjwvc3Bhbj48cT5iPC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgor
ICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4K
KyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBp
ZD0icmVmZXJlbmNlIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGRlcjsiPmE8L3NwYW4+
V1dXYldXV1dXPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAx
ICAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgor
ICAgICAgICA8cD49PT09PT09PU1hcmtlcjM9PT09PT09PTwvcD4KKyAgICAgICAgPHByZSBpZD0i
Y29uc29sZSIvPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA1N2E0MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYgkxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisK
K1dXYldXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtl
cjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44NzAyOWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9k
eSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgYjpi
ZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAg
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJy
b3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAgICAg
ICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9SZW1vdmUiKTsKKyAgICAg
ICAgICAgICAgICBlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOwor
ICAgICAgICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZh
bHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNl
V2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4
dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVm
ZXJlbmNlV2lkdGg7CisgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAg
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW4oKScsIDApOyI+CisgICAgICAgIDxwIGlkPSJv
bmx5SW5Ccm93c2VyIj5UaGUgdGV4dHMgYmV0d2VlbiB0aGUgbWFya2VycyBzaG91bGQgYmUgaWRl
bnRpY2FsLjwvcD4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIxPT09PT09PT08L3A+CisgICAg
ICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InRl
c3RDb250YWluZXIiPjxzcGFuPjxiIGlkPSJ0b1JlbW92ZSI+YTwvYj48L3NwYW4+PHE+YjwvcT48
L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+
PT09PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAg
IDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1diV1dXVzwvdGQ+Cisg
ICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3Rk
PgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09
PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjQzZWI0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKKz09PT09PT09TWFya2VyMT09PT09PT09CisKK2FiYwkxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYVdXV2JXV1dXV2NX
V1dXCTEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMQorPT09PT09PT1NYXJrZXIzPT09
PT09PT0KKworUEFTU0VECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTA1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NDIyYmUzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQv
Y29udGVudC1xdW90ZXMtMDUuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIC5teVF1b3Rl
cyB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICA8L3N0eWxl
PgorICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gcnVuKCkgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
bmx5SW5Ccm93c2VyIikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJkaXNwbGF5OiBub25lOyIpOwor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJteVF1
b3RlcyIpOworICAgICAgICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFBy
b3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNl
IiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgaWYg
KHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lk
dGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywg
MCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRo
ZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1h
cmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAg
ICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+YzwvcT48L3Rk
PgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8
L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09
PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0
cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1dhV1dXYldXV1dXY1dXV1c8
L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxw
Pj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9p
ZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggNjgyYTcxOC4uNzcxYWFhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9BbmRyb2lkLm1rCkBAIC03MDEsNiArNzAxLDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9D
QUxfU1JDX0ZJTEVTKSBcCiAJcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgXAogCXJlbmRlcmlu
Zy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIFwKIAlyZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAg
XAorCXJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCBcCiAKQEAgLTc5MSw2ICs3OTIs
NyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlyZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmNwcCBcCiAJcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAg
XAogCXJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAgXAorCXJlbmRlcmluZy9zdHls
ZS9RdW90ZXNEYXRhLmNwcCBcCiAJcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBcCiAK
IGlmZXEgKCQoRU5BQkxFX1NWRyksIHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDA2NGJm
MTYuLjFmMzIzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMzY3LDYgKzEzNjcsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAogICAgIHJlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKICAgICBy
ZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKQEAgLTE0MDUsNiArMTQwNiw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUlt
YWdlLmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5j
cHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA3OGRiMTQ4Li4zODczMWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMTEt
MDItMTEgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9l
c24ndCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIGZ1bGwgc3VwcG9ydCBmb3IgcXVvdGVz
IGFzIGRlZmluZWQgYnkgQ1NTIDIuMS4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MvY29udGVu
dC9jb250ZW50LXF1b3Rlcy0wMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL2NvbnRlbnQv
Y29udGVudC1xdW90ZXMtMDMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvY29udGVudC9j
b250ZW50LXF1b3Rlcy0wNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTA1Lmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGRlZCBS
ZW5kZXJRdW90ZS5jcHAvaCBhbmQgUXVvdGVzRGF0YS5jcHAvaCB0byB0aGUgZGVwZW5kZW5jeSBs
aXN0cworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VR
dW90ZXMpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgQWRkZWQgbmVlZGVk
IHN0eWxlc2hlZXQgcGFyc2luZyBzdXBwb3J0IGZvciBxdW90ZXMsCisgICAgICAgIChuby0pb3Bl
bi1xdW90ZSBhbmQgKG5vLSljbG9zZS1xdW90ZQorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVy
dHkpOgorICAgICAgICBIYW5kbGVkIHNldHRpbmcgb2YgdGhlIG5ldyBxdW90ZXMgUmVuZGVyU3R5
bGUgcHJvcGVydHkgYW5kIGFkZGVkCisgICAgICAgIGhhbmRsaW5nIG9mIHF1b3RlcyBmb3IgdGhl
IGNvbnRlbnQgcHJvcGVydHkuCisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAocTpi
ZWZvcmUpOgorICAgICAgICAocTphZnRlcik6CisgICAgICAgIHJlcGxhY2VkIHRoZSAnIicgd29y
a2Fyb3VuZCB3aXRoIG9wZW4vY2xvc2UtcXVvdGUKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpcnR5TGluZUJveGVzRm9y
UmVuZGVyZXIpOgorICAgICAgICBNYWRlIFJlbmRlclF1b3RlIGJlaGF2ZSBsaWtlIFJlbmRlckNv
dW50ZXIuCisgICAgICAgIE5lZWRlZCB0byBlbnN1cmUgdGhhdCB0aGUgUXVvdGUgdGV4dCBpcyBj
YWxjdWxhdGVkIGJlZm9yZSBsYXlvdXQsCisgICAgICAgIGp1c3QgYXMgaXQgaXMgZm9yIFJlbmRl
ckNvdW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1F1b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENo
aWxkTGlzdDo6cmVtb3ZlQ2hpbGROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVj
dENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2RlKToKKyAgICAgICAgSGFuZGxlZCB1cGRhdGlu
ZyBvZiBxdW90ZSBkZXB0aCB3aGVuIHJlbmRlcmVycyBhcmUgYWRkZWQgYW5kIHJlbW92ZWQKKyAg
ICAgICAgZnJvbSB0aGUgdHJlZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxk
TGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUXVvdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdERlcHRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpSZW5kZXJRdW90ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJRdW90ZTo6flJlbmRlclF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clF1b3RlOjpyZW5kZXJOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpwbGFj
ZVF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpvcmlnaW5hbFRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRh
Y2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJv
bVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OnN0eWxlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJRdW90ZTo6aXNRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclF1
b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwOgorICAgICAg
ICBJbmNsdWRlZCBSZW5kZXJRdW90ZS5jcHAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29u
dGVudERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6OmRhdGFFcXVpdmFs
ZW50KToKKyAgICAgICAgQ2hlY2tlZCBmb3IgcXVvdGV0eXBlIGlkZW50aXR5LgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudERhdGE6OmRlbGV0ZUNvbnRlbnQpOgorICAgICAgICBBY2NvdW50ZWQg
Zm9yIHRoZSBuZXcgUVVPVEVfVFlQRS4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29udGVu
dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjppc1F1b3RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjpxdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RGF0YTo6c2V0UXVvdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29udGVudCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6cXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdz
OjpzZXRRdW90ZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0pOgorICAgICAgICBJbmNsdWRlZCBxdW90ZXMgaW4gZXF1YWxpdHkgY2hlY2suCisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgQWRk
ZWQgcXVvdGVzCisKIDIwMTEtMDItMTAgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KaW5kZXggMzZmNzJhYi4uMWMzNmIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
QEAgLTI4MjAsNiArMjgyMCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dy
ZXNzLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxp
Y2EuY3BwIFwKQEAgLTI5MjIsNiArMjkyNCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUXVvdGVzRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBkY2RiN2E1Li4xOTMxOTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bwpAQCAtMTM0NSw2ICsxMzQ1LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
ck9iamVjdENoaWxkTGlzdC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBcCiAg
ICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcCBcCisgICAgcmVuZGVyaW5nL1JlbmRlclF1
b3RlLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBcCiAgICAgcmVuZGVy
aW5nL1JlbmRlclJlcGxpY2EuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAgXApA
QCAtMTM4MSw2ICsxMzgyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0Zp
bGxMYXllci5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwIFwKICAg
ICByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwIFwKKyAgICByZW5kZXJpbmcvc3R5
bGUvUXVvdGVzRGF0YS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAg
XAogICAgIHJlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0
eWxlL1N0eWxlQmFja2dyb3VuZERhdGEuY3BwIFwKQEAgLTIzMjAsNiArMjMyMiw3IEBAIEhFQURF
UlMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclBhcnQuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggXAorICAgIHJlbmRl
cmluZy9SZW5kZXJRdW90ZS5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBcCiAg
ICAgcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJ1Ynku
aCBcCkBAIC0yMzU3LDYgKzIzNjAsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvc3R5
bGUvRmlsbExheWVyLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaCBcCiAg
ICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmggXAorICAgIHJlbmRlcmluZy9zdHls
ZS9RdW90ZXNEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIFwKICAg
ICByZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5
bGVCYWNrZ3JvdW5kRGF0YS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggMGNjNGZkMi4uY2I0YWEzNiAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM1MDc4LDYgKzM1MDc4LDYyIEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmlu
Z1xSZW5kZXJRdW90ZS5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclF1b3RlLmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5k
ZXJSZXBsYWNlZC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMzkwNDcs
NiArMzkxMDMsNjIgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxRdW90ZXNEYXRhLmNwcCIKKwkJCQkJPgorCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJ
CQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9
IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0
eWxlXFF1b3Rlc0RhdGEuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxSZW5kZXJTdHlsZS5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWYzZTI0Ni4uMzRjZGFkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjkw
NCw2ICsyOTA0LDggQEAKIAkJOTM5MkYxNDQwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlckNvdW50
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
MkYxNDMwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuY3BwICovOyB9OwogCQk5Mzky
RjE0QzBBRDE4NjFCMDA2OTFCRDQgLyogQ291bnRlck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBD
b3VudGVyTm9kZS5oICovOyB9OwogCQk5MzkyRjE1MDBBRDE4NjIzMDA2OTFCRDQgLyogQ291bnRl
ck5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5MkYxNEYwQUQxODYyMzAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmNwcCAqLzsgfTsKKwkJOTM5
MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyog
UmVuZGVyUXVvdGUuaCAqLzsgfTsKKwkJOTM5MkYxNDQwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRl
clF1b3RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOTJGMTQzMEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5jcHAgKi87IH07CiAJCTkz
OTg4NUMzMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMxMDhCN0UzRDEwMEU3MDdDNCAv
KiBFdmVudE5hbWVzLmNwcCAqLzsgfTsKIAkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2
ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM5QjAyRUUwRUEyREJDNDAwQzU0
NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3Iu
Y3BwICovOyB9OwpAQCAtNTI2MSw2ICs1MjYzLDggQEAKIAkJQkNFRjQzQ0YwRTY3M0RBMTAwMUMx
Mjg3IC8qIFN0eWxlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRUY0M0NFMEU2NzNEQTEwMDFDMTI4NyAvKiBTdHlsZUltYWdlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNFRjQzREQwRTY3
NDAxMjAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGNDNEQzBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBp
ZWNlSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQ0VGNDNFMDBFNjc0MTEwMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQzREYwRTY3NDEx
MDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCAqLzsgfTsKKwkJOTM5MkYxNDIwQUQxODVG
NDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuaCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdXRvZXNEYXRhLmgg
Ki87IH07CisJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQyMEFEMTg1
RjQwMDY5MUJENCAvKiBRdXRvZXNEYXRhLmNwcCAqLzsgfTsKIAkJQkNFRjQ0NEEwRTY3NDVFMDAw
MUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUY0NDQ5MEU2NzQ1RTAwMDFDMTI4NyAvKiBTdHlsZUdl
bmVyYXRlZEltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkNFRjQ0NEQwRTY3NDYyODAwMUMxMjg3IC8qIFN0eWxlQ2FjaGVkSW1hZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUY0NDRDMEU2
NzQ2MjgwMDFDMTI4NyAvKiBTdHlsZUNhY2hlZEltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNFRjQ0N0EwRTY3NDdEMDAwMUMxMjg3IC8q
IFN0eWxlQ2FjaGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNFRjQ0NzkwRTY3NDdEMDAwMUMxMjg3IC8qIFN0eWxlQ2FjaGVkSW1hZ2Uu
Y3BwICovOyB9OwpAQCAtOTMwOCw2ICs5MzEyLDggQEAKIAkJOTM5MkYxNDMwQUQxODVGRTAwNjkx
QkQ0IC8qIFJlbmRlckNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbmRlckNvdW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzkyRjE0QjBBRDE4NjFCMDA2OTFCRDQgLyogQ291bnRlck5vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZXJOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzOTJGMTRGMEFEMTg2MjMwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ291bnRlck5vZGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVy
UXVvdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclF1b3RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTJGMTQzMEFEMTg1RkUwMDY5MUJENCAv
KiBSZW5kZXJRdW90ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyUXVvdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5Mzk1NUE0MTAz
RDcyOTMyMDA4NjM1Q0UgLyogUmVuZGVyVHJlZUFzVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRyZWVBc1RleHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOTU1
QTQyMDNENzI5MzIwMDg2MzVDRSAvKiBSZW5kZXJUcmVlQXNUZXh0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVHJlZUFzVGV4
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQk5Mzk4ODVDMTA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudE5h
bWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CkBAIC0xMTU5Miw2ICsxMTU5OCw4IEBACiAJCUJDRUY0M0NFMEU2NzNEQTEwMDFDMTI4
NyAvKiBTdHlsZUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxl
SW1hZ2UuaDsgcGF0aCA9IHN0eWxlL1N0eWxlSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNFRjQzREMwRTY3NDAxMjAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5pbmVQaWVjZUltYWdlLmg7IHBhdGggPSBz
dHlsZS9OaW5lUGllY2VJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VG
NDNERjBFNjc0MTEwMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmluZVBpZWNlSW1hZ2UuY3BwOyBwYXRoID0gc3R5bGUv
TmluZVBpZWNlSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzkyRjE0
MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBRdW90ZXNEYXRhLmg7IHBhdGggPSBzdHlsZS9RdW90ZXNEYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90
ZXNEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFF1b3Rlc0Rh
dGEuY3BwOyBwYXRoID0gc3R5bGUvUXVvdGVzRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDRUY0NDQ5MEU2NzQ1RTAwMDFDMTI4NyAvKiBTdHlsZUdlbmVyYXRlZEltYWdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlR2VuZXJhdGVkSW1hZ2Uu
aDsgcGF0aCA9IHN0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkNFRjQ0NEMwRTY3NDYyODAwMUMxMjg3IC8qIFN0eWxlQ2FjaGVkSW1hZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVDYWNoZWRJbWFnZS5oOyBw
YXRoID0gc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0VGNDQ3OTBFNjc0N0QwMDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHlsZUNhY2hlZEltYWdlLmNwcDsg
cGF0aCA9IHN0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTc5OTAsNiArMTc5OTgsOCBAQAogCQkJCUJDRUY0M0RGMEU2NzQxMTAwMDFDMTI4
NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgKi8sCiAJCQkJQkNFRjQzREMwRTY3NDAxMjAwMUMxMjg3
IC8qIE5pbmVQaWVjZUltYWdlLmggKi8sCiAJCQkJQkM1RUI1REMwRTgxQjhERDAwQjI1OTY1IC8q
IE91dGxpbmVWYWx1ZS5oICovLAorCQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90
ZXNEYXRhLmNwcCAqLywKKwkJCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0
YS5oICovLAogCQkJCUJDOEM4RkFCMEREQ0QzMUIwMEI1OTJGNCAvKiBSZW5kZXJTdHlsZS5jcHAg
Ki8sCiAJCQkJQkM4QzhGQUMwRERDRDMxQjAwQjU5MkY0IC8qIFJlbmRlclN0eWxlLmggKi8sCiAJ
CQkJQkM1RUI2NjcwRTgxQ0I3MTAwQjI1OTY1IC8qIFJlbmRlclN0eWxlQ29uc3RhbnRzLmggKi8s
CkBAIC0xODgwOCw2ICsxODgxOCw4IEBACiAJCQkJQTg3MURFQ0YwQTE1MzBDNzAwQjEyQTY4IC8q
IFJlbmRlclBhcnQuaCAqLywKIAkJCQlBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVy
UHJvZ3Jlc3MuY3BwICovLAogCQkJCUE0M0JGNTlCMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQ
cm9ncmVzcy5oICovLAorCQkJCTkzOTJGMTQzMEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJRdW90
ZS5jcHAgKi8sCisJCQkJOTM5MkYxNDEwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmgg
Ki8sCiAJCQkJQTg3MURGREUwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlclJlcGxhY2VkLmNwcCAq
LywKIAkJCQlBODcxREZERjBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCAqLywK
IAkJCQlCQ0E4NDZENDBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVwbGljYS5jcHAgKi8sCkBA
IC0yMTY2Myw2ICsyMTY3NSw3IEBACiAJCQkJRTRENjg3NzkwRUQ3QUU0RjAwNkVBOTc4IC8qIFB1
cmdlYWJsZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0UzM0NEMDExMjdGMzQwRDAwQkU4
RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1MEEwQkNBMDg1RjYw
MzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzkyRjE0
MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
Mjc5NzIwRDAwQkYyMjAwNzFCNzgyIC8qIFJhZGlhbEdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjU1QjNEQ0MxMjUxRjEyRDAwM0VGMjY5IC8qIFJhZGlvSW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTkxODA4MjQ1RTU5MDAxRTlBQkMgLyogUmFuZ2Uu
aCBpbiBIZWFkZXJzICovLApAQCAtMjE3MzMsNiArMjE3NDYsNyBAQAogCQkJCUJDRkE5MzA4MTAz
MzMxOTMwMDdCMjVEMSAvKiBSZW5kZXJPdmVyZmxvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3
MURFRDcwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE0M0JGNTlEMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBODcxREZFMzBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTg0NkQ3MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJS
ZXBsaWNhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc5RkFFRTEwOUFFMzc1MDBERUQ2NTUgLyog
UmVuZGVyUnVieS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDM4Miw2ICsyNDM5Niw3IEBACiAJCQkJ
MUE3RkE2MUIwRERBM0JCRTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBN0ZBNjQ5MEREQTNDQkEwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVO
b3RpZmllck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VGNDNFMDBFNjc0MTEwMDAxQzEy
ODcgLyogTmluZVBpZWNlSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM5MkYxNDIwQUQx
ODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4
MDAwOUQ1NjMyNzAwMDNBQzhEIC8qIE5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3
MzAwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODU0RkU3MzIwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yNDUyMyw2ICsyNDUzOCw3IEBACiAJCQkJQkM2MEVGQjcwRjMzQTBFNzAw
ODEyQTkzIC8qIFJlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
ODcxREVEMDBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNDNCRjU5QzExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTM5MkYxNDQwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFERkUyMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJS
ZXBsYWNlZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E4NDZENjBEQzY3QTM1MDAyNkMzMDkg
LyogUmVuZGVyUmVwbGljYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDc5RkFFRDEwOUFFMzc1
MDBERUQ2NTUgLyogUmVuZGVyUnVieS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKaW5kZXggMWFlNDVmNS4uYTkxODQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKQEAgLTYxMyw2ICs2MTMsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJv
cElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOiAgICAgICAg
ICAgICAgIC8vIFs8c3RyaW5nPiA8c3RyaW5nPl0rIHwgbm9uZSB8IGluaGVyaXQKICAgICAgICAg
aWYgKGlkKQogICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNl
CisgICAgICAgICAgICByZXR1cm4gcGFyc2VRdW90ZXMocHJvcElkLCBpbXBvcnRhbnQpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5VW5pY29kZUJpZGk6ICAgICAgICAgLy8g
bm9ybWFsIHwgZW1iZWQgfCBiaWRpLW92ZXJyaWRlIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQg
PT0gQ1NTVmFsdWVOb3JtYWwgfHwKQEAgLTIzMzMsNiArMjMzNSwyOCBAQCBDU1NQYXJzZXI6OlNp
emVQYXJhbWV0ZXJUeXBlIENTU1BhcnNlcjo6cGFyc2VTaXplUGFyYW1ldGVyKENTU1ZhbHVlTGlz
dCogcGFyc2VkVgogICAgIH0KIH0KIAorLy8gWyA8c3RyaW5nPiA8c3RyaW5nPiBdKyB8IGluaGVy
aXQgfCBub25lCisvLyBpbmhlcml0IGFuZCBub25lIGFyZSBoYW5kbGVkIGluIHBhcnNlVmFsdWUu
Citib29sIENTU1BhcnNlcjo6cGFyc2VRdW90ZXMoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQp
Cit7CisgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVh
dGVDb21tYVNlcGFyYXRlZCgpOworICAgIHdoaWxlIChDU1NQYXJzZXJWYWx1ZSogdmFsID0gbV92
YWx1ZUxpc3QtPmN1cnJlbnQoKSkgeworICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlZFZh
bHVlOworICAgICAgICBpZiAodmFsLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RS
SU5HKQorICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KHZhbC0+c3RyaW5nLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORyk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB2YWx1ZXMtPmFwcGVuZChwYXJzZWRWYWx1
ZS5yZWxlYXNlKCkpOworICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4dCgpOworICAgIH0KKyAgICBp
ZiAodmFsdWVzLT5sZW5ndGgoKSkgeworICAgICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIHZhbHVl
cy5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIC8vIFsg
PHN0cmluZz4gfCA8dXJpPiB8IDxjb3VudGVyPiB8IGF0dHIoWCkgfCBvcGVuLXF1b3RlIHwgY2xv
c2UtcXVvdGUgfCBuby1vcGVuLXF1b3RlIHwgbm8tY2xvc2UtcXVvdGUgXSsgfCBpbmhlcml0CiAv
LyBpbiBDU1MgMi4xIHRoaXMgZ290IHNvbWV3aGF0IHJlZHVjZWQ6CiAvLyBbIDxzdHJpbmc+IHwg
YXR0cihYKSB8IG9wZW4tcXVvdGUgfCBjbG9zZS1xdW90ZSB8IG5vLW9wZW4tcXVvdGUgfCBuby1j
bG9zZS1xdW90ZSBdKyB8IGluaGVyaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBkMWIyMDYx
Li4xNWUxMmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC03OCw2ICs3OCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBwYXJzZVNob3J0aGFuZChpbnQgcHJvcElkLCBj
b25zdCBpbnQqIHByb3BlcnRpZXMsIGludCBudW1Qcm9wZXJ0aWVzLCBib29sIGltcG9ydGFudCk7
CiAgICAgICAgIGJvb2wgcGFyc2U0VmFsdWVzKGludCBwcm9wSWQsIGNvbnN0IGludCogcHJvcGVy
dGllcywgYm9vbCBpbXBvcnRhbnQpOwogICAgICAgICBib29sIHBhcnNlQ29udGVudChpbnQgcHJv
cElkLCBib29sIGltcG9ydGFudCk7CisgICAgICAgIGJvb2wgcGFyc2VRdW90ZXMoaW50IHByb3BJ
ZCwgYm9vbCBpbXBvcnRhbnQpOwogCiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNl
QXR0cihDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAKaW5kZXggNDhhNmZhOC4uZjdiYjhlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtNzAsNiArNzAsNyBAQAogI2luY2x1ZGUgIlBhZ2VH
cm91cC5oIgogI2luY2x1ZGUgIlBhaXIuaCIKICNpbmNsdWRlICJQZXJzcGVjdGl2ZVRyYW5zZm9y
bU9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZWN0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFy
VGhlbWUuaCIKQEAgLTQ2NTEsMzYgKzQ2NTIsNTkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjph
cHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogY29udGVudFZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPihpdGVtKTsKICAgICAgICAgICAgIHN3aXRjaCAoY29udGVudFZhbHVl
LT5wcmltaXRpdmVUeXBlKCkpIHsKLSAgICAgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfU1RSSU5HOgotICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50
KGNvbnRlbnRWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKS5pbXBsKCksIGRpZFNldCk7CisgICAgICAg
ICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HOgorICAgICAgICAgICAgICAg
IG1fc3R5bGUtPnNldENvbnRlbnQoY29udGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLmltcGwo
KSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0FUVFI6
IHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogQ2FuIGEgbmFtZXNwYWNlIGJlIHNwZWNpZmll
ZCBmb3IgYW4gYXR0cihmb28pPworICAgICAgICAgICAgICAgIGlmIChtX3N0eWxlLT5zdHlsZVR5
cGUoKSA9PSBOT1BTRVVETykKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0VW5pcXVl
KCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBtX3BhcmVudFN0
eWxlLT5zZXRVbmlxdWUoKTsKKyAgICAgICAgICAgICAgICBRdWFsaWZpZWROYW1lIGF0dHIobnVs
bEF0b20sIGNvbnRlbnRWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKS5pbXBsKCksIG51bGxBdG9tKTsK
KyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KG1fZWxlbWVudC0+Z2V0QXR0cmli
dXRlKGF0dHIpLmltcGwoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVl
OworICAgICAgICAgICAgICAgIC8vIHJlZ2lzdGVyIHRoZSBmYWN0IHRoYXQgdGhlIGF0dHJpYnV0
ZSB2YWx1ZSBhZmZlY3RzIHRoZSBzdHlsZQorICAgICAgICAgICAgICAgIG1fc2VsZWN0b3JBdHRy
cy5hZGQoYXR0ci5sb2NhbE5hbWUoKS5pbXBsKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VS
STogeworICAgICAgICAgICAgICAgIGlmICghY29udGVudFZhbHVlLT5pc0ltYWdlVmFsdWUoKSkK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0
Q29udGVudChjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlDb250ZW50LCBzdGF0
aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4oY29udGVudFZhbHVlKSksIGRpZFNldCk7CisgICAgICAg
ICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DT1VOVEVSOiB7
CisgICAgICAgICAgICAgICAgQ291bnRlciogY291bnRlclZhbHVlID0gY29udGVudFZhbHVlLT5n
ZXRDb3VudGVyVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBPd25QdHI8Q291bnRlckNvbnRlbnQ+
IGNvdW50ZXIgPSBhZG9wdFB0cihuZXcgQ291bnRlckNvbnRlbnQoY291bnRlclZhbHVlLT5pZGVu
dGlmaWVyKCksCisgICAgICAgICAgICAgICAgICAgIChFTGlzdFN0eWxlVHlwZSljb3VudGVyVmFs
dWUtPmxpc3RTdHlsZU51bWJlcigpLCBjb3VudGVyVmFsdWUtPnNlcGFyYXRvcigpKSk7CisgICAg
ICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChjb3VudGVyLnJlbGVhc2UoKSwgZGlkU2V0
KTsKKyAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0lERU5UOgorICAgICAgICAgICAgICAgIHN3aXRjaCAoY29udGVudFZhbHVlLT5nZXRJZGVudCgp
KSB7CisgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZU9wZW5RdW90ZToKKyAgICAgICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChPUEVOX1FVT1RFLCBkaWRTZXQpOwogICAgICAg
ICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQVRUUjogewotICAg
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogQ2FuIGEgbmFtZXNwYWNlIGJlIHNwZWNpZmllZCBm
b3IgYW4gYXR0cihmb28pPwotICAgICAgICAgICAgICAgICAgICBpZiAobV9zdHlsZS0+c3R5bGVU
eXBlKCkgPT0gTk9QU0VVRE8pCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRV
bmlxdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wYXJlbnRTdHlsZS0+c2V0VW5pcXVlKCk7Ci0gICAgICAgICAgICAgICAgICAgIFF1YWxp
ZmllZE5hbWUgYXR0cihudWxsQXRvbSwgY29udGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLmlt
cGwoKSwgbnVsbEF0b20pOwotICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50
KG1fZWxlbWVudC0+Z2V0QXR0cmlidXRlKGF0dHIpLmltcGwoKSwgZGlkU2V0KTsKKyAgICAgICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlQ2xvc2VRdW90ZToKKyAgICAgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0Q29udGVudChDTE9TRV9RVU9URSwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICAg
ICAgZGlkU2V0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXIgdGhlIGZh
Y3QgdGhhdCB0aGUgYXR0cmlidXRlIHZhbHVlIGFmZmVjdHMgdGhlIHN0eWxlCi0gICAgICAgICAg
ICAgICAgICAgIG1fc2VsZWN0b3JBdHRycy5hZGQoYXR0ci5sb2NhbE5hbWUoKS5pbXBsKCkpOwog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSTogewotICAgICAgICAgICAgICAg
ICAgICBpZiAoIWNvbnRlbnRWYWx1ZS0+aXNJbWFnZVZhbHVlKCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChj
YWNoZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlDb250ZW50LCBzdGF0aWNfY2FzdDxD
U1NJbWFnZVZhbHVlKj4oY29udGVudFZhbHVlKSksIGRpZFNldCk7CisgICAgICAgICAgICAgICAg
Y2FzZSBDU1NWYWx1ZU5vT3BlblF1b3RlOgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5z
ZXRDb250ZW50KE5PX09QRU5fUVVPVEUsIGRpZFNldCk7CiAgICAgICAgICAgICAgICAgICAgIGRp
ZFNldCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ09VTlRFUjog
ewotICAgICAgICAgICAgICAgICAgICBDb3VudGVyKiBjb3VudGVyVmFsdWUgPSBjb250ZW50VmFs
dWUtPmdldENvdW50ZXJWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICBPd25QdHI8Q291bnRl
ckNvbnRlbnQ+IGNvdW50ZXIgPSBhZG9wdFB0cihuZXcgQ291bnRlckNvbnRlbnQoY291bnRlclZh
bHVlLT5pZGVudGlmaWVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAoRUxpc3RTdHlsZVR5
cGUpY291bnRlclZhbHVlLT5saXN0U3R5bGVOdW1iZXIoKSwgY291bnRlclZhbHVlLT5zZXBhcmF0
b3IoKSkpOwotICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNvdW50ZXIu
cmVsZWFzZSgpLCBkaWRTZXQpOworICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVOb0Nsb3Nl
UXVvdGU6CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoTk9fQ0xPU0Vf
UVVPVEUsIGRpZFNldCk7CiAgICAgICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgICAgIC8vIG5vcm1hbCBhbmQgbm9uZSBkbyBub3QgaGF2ZSBhbnkgZWZmZWN0Lgor
ICAgICAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpAQCAtNDY4OCw2ICs0NzEyLDMzIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6
YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAgICAgICAgIG1fc3R5
bGUtPmNsZWFyQ29udGVudCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgQ1NT
UHJvcGVydHlRdW90ZXM6CisgICAgICAgIGlmIChpc0luaGVyaXQpIHsKKyAgICAgICAgICAgIGlm
IChtX3BhcmVudFN0eWxlKQorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFF1b3RlcyhtX3Bh
cmVudFN0eWxlLT5xdW90ZXMoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpKSB7CisgICAgICAgICAgICBDU1NWYWx1ZUxp
c3QqIGxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSk7CisgICAgICAgICAg
ICBpbnQgbGVuZ3RoID0gbGlzdC0+bGVuZ3RoKCk7CisgICAgICAgICAgICBRdW90ZXNEYXRhKiBk
YXRhID0gUXVvdGVzRGF0YTo6Y3JlYXRlKGxlbmd0aCk7CisgICAgICAgICAgICBpZiAoIWRhdGEp
CisgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBPdXQgb2YgbWVtb3J5CisgICAgICAgICAgICBT
dHJpbmcqIHF1b3RlcyA9IGRhdGEtPmRhdGEoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IGxp
c3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGl0
ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcHJpbWl0aXZlVmFsdWUg
PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOworICAgICAgICAgICAgICAg
IEFTU0VSVChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfU1RSSU5HKTsKKyAgICAgICAgICAgICAgICBxdW90ZXNbaV0gPSBwcmltaXRpdmVW
YWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fc3R5
bGUtPnNldFF1b3RlcyhhZG9wdFJlZihkYXRhKSk7CisgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0
aXZlVmFsdWUpIHsKKyAgICAgICAgICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZl
VHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpOworICAgICAgICAgICAgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAg
ICAgICBtX3N0eWxlLT5zZXRRdW90ZXMoYWRvcHRSZWYoUXVvdGVzRGF0YTo6Y3JlYXRlKDApKSk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvdW50
ZXJJbmNyZW1lbnQ6CiAgICAgICAgIGFwcGx5Q291bnRlckxpc3Qoc3R5bGUoKSwgdmFsdWUtPmlz
VmFsdWVMaXN0KCkgPyBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSkgOiAwLCBmYWxz
ZSk7CkBAIC01OTI5LDcgKzU5ODAsNiBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJv
cGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9u
dFN0cmV0Y2g6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZ2U6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eVF1b3RlczoKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoOgogICAgIGNhc2Ug
Q1NTUHJvcGVydHlUZXh0TGluZVRocm91Z2hDb2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4
dExpbmVUaHJvdWdoTW9kZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNz
cyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwppbmRleCAwZjEzZmNiLi45NTRmNWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL2h0bWwuY3NzCkBAIC0xMTMsMTMgKzExMywxMSBAQCBxIHsKIH0KIAogcTpiZWZvcmUg
ewotICAgIGNvbnRlbnQ6ICciJwotICAgIC8qIEZJWE1FOiBjb250ZW50OiBvcGVuLXF1b3RlOyAq
LworICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7CiB9CiAKIHE6YWZ0ZXIgewotICAgIGNvbnRlbnQ6
ICciJwotICAgIC8qIEZJWE1FOiBjb250ZW50OiBjbG9zZS1xdW90ZTsgKi8KKyAgICBjb250ZW50
OiBjbG9zZS1xdW90ZTsKIH0KIAogY2VudGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggODMwZmM2Mi4uNDQ2YTMwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBzdGF0aWMgaW5saW5lIElubGluZUJveCogY3JlYXRl
SW5saW5lQm94Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvYmosIGJvb2wgaXNSbwogc3RhdGlj
IGlubGluZSB2b2lkIGRpcnR5TGluZUJveGVzRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvLCBi
b29sIGZ1bGxMYXlvdXQpCiB7CiAgICAgaWYgKG8tPmlzVGV4dCgpKSB7Ci0gICAgICAgIGlmIChv
LT5wcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoKSAmJiBvLT5pc0NvdW50ZXIoKSkKKyAgICAg
ICAgaWYgKG8tPnByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSgpICYmIChvLT5pc0NvdW50ZXIo
KSB8fCBvLT5pc1F1b3RlKCkpKQogICAgICAgICAgICAgdG9SZW5kZXJUZXh0KG8pLT5jb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocygwKTsgLy8gRklYTUU6IENvdW50ZXJzIGRlcGVuZCBvbiB0
aGlzIGhhY2suIE5vIGNsdWUgd2h5LiBTaG91bGQgYmUgaW52ZXN0aWdhdGVkIGFuZCByZW1vdmVk
LgogICAgICAgICB0b1JlbmRlclRleHQobyktPmRpcnR5TGluZUJveGVzKGZ1bGxMYXlvdXQpOwog
ICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDQz
ZTZiZWEuLmE1ZjJjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgK
QEAgLTI1Miw2ICsyNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQmxvY2tGbG93
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNCb3hNb2RlbE9i
amVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ291bnRl
cigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0RldGFpbHMoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0RldGFpbHNNYXJrZXIoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0VtYmVkZGVkT2JqZWN0
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKaW5kZXggNmE3NzNkYy4uNGRmNzE4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCisjaW5jbHVkZSAi
UmVuZGVyUXVvdGUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRl
clRleHRGcmFnbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTEzMCw2ICsxMzEs
NyBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdENoaWxkTGlzdDo6cmVtb3ZlQ2hpbGROb2Rl
KFJlbmRlck9iamVjdCogb3duZXIsIFJlbmRlcgogCiAgICAgaWYgKG9sZENoaWxkLT5tX2hhc0Nv
dW50ZXJOb2RlTWFwKQogICAgICAgICBSZW5kZXJDb3VudGVyOjpkZXN0cm95Q291bnRlck5vZGVz
KG9sZENoaWxkKTsKKyAgICBSZW5kZXJRdW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJvbVRyZWUob2xk
Q2hpbGQpOwogCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CiAgICAgICAgIG93bmVyLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPmNoaWxkcmVuQ2hh
bmdlZChvd25lcik7CkBAIC0xNzcsOCArMTc5LDggQEAgdm9pZCBSZW5kZXJPYmplY3RDaGlsZExp
c3Q6OmFwcGVuZENoaWxkTm9kZShSZW5kZXJPYmplY3QqIG93bmVyLCBSZW5kZXJPYmplY3QqIG4K
ICAgICAgICAgaWYgKCFuZXdDaGlsZC0+aXNGbG9hdGluZ09yUG9zaXRpb25lZCgpICYmIG93bmVy
LT5jaGlsZHJlbklubGluZSgpKQogICAgICAgICAgICAgb3duZXItPmRpcnR5TGluZXNGcm9tQ2hh
bmdlZENoaWxkKG5ld0NoaWxkKTsKICAgICB9Ci0KICAgICBSZW5kZXJDb3VudGVyOjpyZW5kZXJl
clN1YnRyZWVBdHRhY2hlZChuZXdDaGlsZCk7CisgICAgUmVuZGVyUXVvdGU6OnJlbmRlcmVyU3Vi
dHJlZUF0dGFjaGVkKG5ld0NoaWxkKTsKICAgICBuZXdDaGlsZC0+c2V0TmVlZHNMYXlvdXRBbmRQ
cmVmV2lkdGhzUmVjYWxjKCk7IC8vIEdvZXMgdXAgdGhlIGNvbnRhaW5pbmcgYmxvY2sgaGllcmFy
Y2h5LgogICAgIGlmICghb3duZXItPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSkKICAgICAgICAg
b3duZXItPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSk7IC8vIFdlIG1heSBzdXBwbHkgdGhlIHN0
YXRpYyBwb3NpdGlvbiBmb3IgYW4gYWJzb2x1dGUgcG9zaXRpb25lZCBjaGlsZC4KQEAgLTIzOSw2
ICsyNDEsNyBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2RlKFJl
bmRlck9iamVjdCogb3duZXIsIFJlbmRlck9iamVjdCogYwogICAgIH0KIAogICAgIFJlbmRlckNv
dW50ZXI6OnJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKGNoaWxkKTsKKyAgICBSZW5kZXJRdW90ZTo6
cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQoY2hpbGQpOwogICAgIGNoaWxkLT5zZXROZWVkc0xheW91
dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKICAgICBpZiAoIW93bmVyLT5ub3JtYWxDaGlsZE5lZWRz
TGF5b3V0KCkpCiAgICAgICAgIG93bmVyLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUpOyAvLyBX
ZSBtYXkgc3VwcGx5IHRoZSBzdGF0aWMgcG9zaXRpb24gZm9yIGFuIGFic29sdXRlIHBvc2l0aW9u
ZWQgY2hpbGQuCkBAIC00NjAsMTAgKzQ2MywxNCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlz
dDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlck9iamVjdCogb3duZXIsIFBzZXVkbwog
ICAgICAgICAgICAgICAgIHJlbmRlcmVyID0gaW1hZ2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlIENPTlRFTlRfQ09VTlRFUjoKLSAgICAg
ICAgICAgICAgICByZW5kZXJlciA9IG5ldyAob3duZXItPnJlbmRlckFyZW5hKCkpIFJlbmRlckNv
dW50ZXIob3duZXItPmRvY3VtZW50KCksICpjb250ZW50LT5jb3VudGVyKCkpOwotICAgICAgICAg
ICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50U3R5bGUpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENPTlRFTlRfQ09VTlRFUjoKKyAgICAgICAgICAg
IHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihvd25l
ci0+ZG9jdW1lbnQoKSwgKmNvbnRlbnQtPmNvdW50ZXIoKSk7CisgICAgICAgICAgICByZW5kZXJl
ci0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENPTlRFTlRfUVVPVEU6CisgICAgICAgICAgICByZW5kZXJlciA9IG5ldyAob3du
ZXItPnJlbmRlckFyZW5hKCkpIFJlbmRlclF1b3RlKG93bmVyLT5kb2N1bWVudCgpLCBjb250ZW50
LT5xdW90ZSgpKTsKKyAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50
U3R5bGUpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVu
ZGVyZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzMTI1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwCkBAIC0wLDAgKzEsMzMwIEBA
CisvKioKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclF1b3RlLmgiCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKKyNpbmNsdWRlICJSZW5kZXJT
dHlsZS5oIgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNT
dHJpbmcuaD4KKworI2RlZmluZSBVTktOT1dOX0RFUFRIIC0xCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGp1c3REZXB0aChpbnQgJmRlcHRoLCBRdW90ZVR5cGUg
dHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIE9QRU5fUVVPVEU6CisgICAg
Y2FzZSBOT19PUEVOX1FVT1RFOgorICAgICAgICArK2RlcHRoOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENMT1NFX1FVT1RFOgorICAgIGNhc2UgTk9fQ0xPU0VfUVVPVEU6CisgICAgICAgIGlm
IChkZXB0aCkKKyAgICAgICAgICAgIC0tZGVwdGg7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKworUmVuZGVyUXVv
dGU6OlJlbmRlclF1b3RlKERvY3VtZW50KiBub2RlLCBRdW90ZVR5cGUgcXVvdGUpCisgICAgOiBS
ZW5kZXJUZXh0KG5vZGUsIFN0cmluZ0ltcGw6OmVtcHR5KCkpCisgICAgLCBtX3R5cGUocXVvdGUp
CisgICAgLCBtX2RlcHRoKFVOS05PV05fREVQVEgpCisgICAgLCBtX25leHQoMCkKKyAgICAsIG1f
cHJldmlvdXMoMCkKK3sKK30KKworUmVuZGVyUXVvdGU6On5SZW5kZXJRdW90ZSgpCit7Cit9CisK
K2NvbnN0IGNoYXIqIFJlbmRlclF1b3RlOjpyZW5kZXJOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gIlJlbmRlclF1b3RlIjsKK30KKworLy8gVGhpcyBmdW5jdGlvbiBwbGFjZXMgYSBsaXN0IG9m
IHF1b3RlIHJlbmRlcmVycyBzdGFydGluZyBhdCAidGhpcyIgaW4gdGhlIGxpc3Qgb2YgcXVvdGUg
cmVuZGVyZXJzIGFscmVhZHkKKy8vIGluIHRoZSBkb2N1bWVudCdzIHJlbmRlcmVyIHRyZWUuCisv
LyBUaGUgYXNzdW1wdGlvbnMgYXJlIG1hZGUgKGZvciBwZXJmb3JtYW5jZSk6CisvLyAxLiBUaGUg
bGlzdCBvZiBxdW90ZXMgYWxyZWFkeSBpbiB0aGUgcmVuZGVyZXJzIHRyZWUgb2YgdGhlIGRvY3Vt
ZW50IGlzIGFscmVhZHkgaW4gYSBjb25zaXN0ZW50IHN0YXRlCisvLyAoQWxsIHF1b3RlIHJlbmRl
cmVycyBhcmUgbGlua2VkIGFuZCBoYXZlIHRoZSBjb3JyZWN0IGRlcHRoIHNldCkKKy8vIDIuIFRo
ZSBxdW90ZSByZW5kZXJlcnMgb2YgdGhlIGluc2VydGVkIGxpc3QgYXJlIGluIGEgdHJlZSBvZiBy
ZW5kZXJlcnMgb2YgdGhlaXIgb3duIHdoaWNoIGhhcyBiZWVuIGp1c3QKKy8vIGluc2VydGVkIGlu
IHRoZSBtYWluIHJlbmRlcmVyIHRyZWUgd2l0aCBpdHMgcm9vdCBhcyBjaGlsZCBvZiBzb21lIHJl
bmRlcmVyLgorLy8gMy4gVGhlIHF1b3RlIHJlbmRlcmVycyBpbiB0aGUgaW5zZXJ0ZWQgbGlzdCBo
YXZlIGRlcHRocyBjb25zaXN0ZW50IHdpdGggdGhlaXIgcG9zaXRpb24gaW4gdGhlIGxpc3QgcmVs
YXRpdmUKKy8vIHRvICJ0aGlzIiwgdGh1cyBpZiAidGhpcyIgZG9lcyBub3QgbmVlZCB0byBjaGFu
Z2UgaXRzIGRlcHRoIHVwb24gaW5zZXJ0aW9uLCB0aGUgb3RoZXIgcmVuZGVyZXJzIGluIHRoZSBs
aXN0IGRvbid0CisvLyBuZWVkIHRvIGVpdGhlci4KK3ZvaWQgUmVuZGVyUXVvdGU6OnBsYWNlUXVv
dGUoKQoreworICAgIFJlbmRlclF1b3RlKiBoZWFkID0gdGhpczsKKyAgICBBU1NFUlQoIWhlYWQt
Pm1fcHJldmlvdXMpOworICAgIFJlbmRlclF1b3RlKiB0YWlsID0gMDsKKyAgICBmb3IgKFJlbmRl
ck9iamVjdCogcHJlZGVjZXNzb3IgPSBoZWFkLT5wcmV2aW91c0luUHJlT3JkZXIoKTsgcHJlZGVj
ZXNzb3I7IHByZWRlY2Vzc29yID0gcHJlZGVjZXNzb3ItPnByZXZpb3VzSW5QcmVPcmRlcigpKSB7
CisgICAgICAgIGlmICghcHJlZGVjZXNzb3ItPmlzUXVvdGUoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBoZWFkLT5tX3ByZXZpb3VzID0gdG9SZW5kZXJRdW90ZShwcmVkZWNlc3Nv
cik7CisgICAgICAgIGlmIChoZWFkLT5tX3ByZXZpb3VzLT5tX25leHQpIHsKKyAgICAgICAgICAg
IC8vIFdlIG5lZWQgdG8gc3BsaWNlIHRoZSBsaXN0IG9mIHF1b3RlcyBoZWFkZWQgYnkgaGVhZCBp
bnRvIHRoZSBkb2N1bWVudCdzIGxpc3Qgb2YgcXVvdGVzLgorICAgICAgICAgICAgdGFpbCA9IGhl
YWQ7CisgICAgICAgICAgICB3aGlsZSAodGFpbC0+bV9uZXh0KQorICAgICAgICAgICAgICAgICB0
YWlsID0gdGFpbC0+bV9uZXh0OworICAgICAgICAgICAgdGFpbC0+bV9uZXh0ID0gaGVhZC0+bV9w
cmV2aW91cy0+bV9uZXh0OworICAgICAgICAgICAgQVNTRVJUKHRhaWwtPm1fbmV4dC0+bV9wcmV2
aW91cyA9PSBoZWFkLT5tX3ByZXZpb3VzKTsKKyAgICAgICAgICAgIHRhaWwtPm1fbmV4dC0+bV9w
cmV2aW91cyA9ICB0YWlsOworICAgICAgICAgICAgdGFpbCA9IHRhaWwtPm1fbmV4dDsgLy8gVGhp
cyBtYXJrcyB0aGUgc3BsaWNpbmcgcG9pbnQgaGVyZSB0aGVyZSBtYXkgYmUgYSBkZXB0aCBkaXNj
b250aW51aXR5CisgICAgICAgIH0KKyAgICAgICAgaGVhZC0+bV9wcmV2aW91cy0+bV9uZXh0ID0g
aGVhZDsKKyAgICAgICAgQVNTRVJUKGhlYWQtPm1fcHJldmlvdXMtPm1fZGVwdGggIT0gVU5LTk9X
Tl9ERVBUSCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpbnQgbmV3RGVwdGg7CisgICAg
aWYgKCFoZWFkLT5tX3ByZXZpb3VzKSB7CisgICAgICAgIG5ld0RlcHRoID0gMDsKKyAgICAgICAg
Z290byBza2lwTmV3RGVwdGhDYWxjOworICAgIH0KKyAgICBuZXdEZXB0aCA9IGhlYWQtPm1fcHJl
dmlvdXMtPm1fZGVwdGg7CisgICAgZG8geworICAgICAgICBhZGp1c3REZXB0aChuZXdEZXB0aCwg
aGVhZC0+bV9wcmV2aW91cy0+bV90eXBlKTsKK3NraXBOZXdEZXB0aENhbGM6CisgICAgICAgIGlm
IChoZWFkLT5tX2RlcHRoID09IG5ld0RlcHRoKSB7IC8vIEFsbCByZW1haW5pbmcgZGVwdGggc2hv
dWxkIGJlIGNvcnJlY3QgZXhjZXB0IGlmIHNwbGljaW5nIHdhcyBkb25lLgorICAgICAgICAgICAg
aWYgKCF0YWlsKSAvLyBXZSd2ZSBkb25lIHRoZSBwb3N0IHNwbGljaW5nIHNlY3Rpb24gYWxyZWFk
eSBvciB0aGVyZSB3YXMgbm8gc3BsaWNpbmcuCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBoZWFkID0gdGFpbDsgLy8gQ29udGludWUgYWZ0ZXIgdGhlIHNwbGljaW5nIHBvaW50
CisgICAgICAgICAgICB0YWlsID0gMDsgLy8gTWFyayB0aGUgcG9zc2libGUgc3BsaWNpbmcgcG9p
bnQgZGlzY29udGludWl0eSBmaXhlZC4KKyAgICAgICAgICAgIG5ld0RlcHRoID0gaGVhZC0+bV9w
cmV2aW91cy0+bV9kZXB0aDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAg
ICAgIGhlYWQtPm1fZGVwdGggPSBuZXdEZXB0aDsKKyAgICAgICAgLy8gRklYTUU6IElmIHRoZSB3
aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBxdW90YXRpb24gY2hhcmFjdGVycyBkb2VzIG5vdCBjaGFu
Z2Ugd2UgbWF5IG9ubHkgbmVlZCB0bworICAgICAgICAvLyBJbnZhbGlkYXRlIHRoZSByZW5kZXJl
cidzIGFyZWEgbm90IGEgcmVsYXlvdXQuCisgICAgICAgIGhlYWQtPnNldE5lZWRzTGF5b3V0QW5k
UHJlZldpZHRoc1JlY2FsYygpOworICAgICAgICBoZWFkID0gaGVhZC0+bV9uZXh0OworICAgICAg
ICBpZiAoaGVhZCA9PSB0YWlsKSAvLyBXZSBhcmUgYXQgdGhlIHNwbGljaW5nIHBvaW50CisgICAg
ICAgICAgICB0YWlsID0gMDsgLy8gTWFyayB0aGUgcG9zc2libGUgZGVwdGggZGlzY29udGludWl0
eSBmaXhlZC4KKyAgICB9IHdoaWxlIChoZWFkKTsKK30KKworI2RlZmluZSBBUlJBWV9TSVpFKENh
cnJheSkgKHNpemVvZihDYXJyYXkpIC8gc2l6ZW9mKCpDYXJyYXkpKQorI2RlZmluZSBMQU5HVUFH
RV9EQVRBKG5hbWUsIGxhbmd1YWdlU291cmNlQXJyYXkpIHsgbmFtZSwgbGFuZ3VhZ2VTb3VyY2VB
cnJheSwgQVJSQVlfU0laRShsYW5ndWFnZVNvdXJjZUFycmF5KSB9CisjZGVmaW5lIFUoeCkgKChj
b25zdCBVQ2hhciopTCMjeCkKKworc3RhdGljIGNvbnN0IFVDaGFyKiBzaW1wbGVRdW90ZXNbXSA9
IHtVKCJcIiIpLCBVKCJcIiIpLCBVKCInIiksIFUoIiciKX07CisKK3N0YXRpYyBjb25zdCBVQ2hh
ciogZW5nbGlzaFF1b3Rlc1tdID0ge1UoIlx4MjAxQyIpLCBVKCJceDIwMUQiKSwgVSgiXHgyMDE4
IiksIFUoIlx4MjAxOSIpfTsKK3N0YXRpYyBjb25zdCBVQ2hhciogbm9yd2VnaWFuUXVvdGVzW10g
PSB7IFUoIlx4MDBBQiIpLCBVKCJceDAwQkIiKSwgVSgiXHgyMDM5IiksIFUoIlx4MjAzQSIpIH07
CitzdGF0aWMgY29uc3QgVUNoYXIqIHJvbWFuaWFuUXVvdGVzW10gPSB7IFUoIlx4MjAxRSIpLCBV
KCJceDIwMUQiKX07CitzdGF0aWMgY29uc3QgVUNoYXIqIHJ1c3NpYW5RdW90ZXNbXSA9IHsgVSgi
XHgwMEFCIiksIFUoIlx4MDBCQiIpLCBVKCJceDIwMUUiKSwgVSgiXHgyMDFDIikgfTsKKyN1bmRl
ZiBVCisKK3N0cnVjdCBMYW5ndWFnZURhdGEgeworICAgIGNvbnN0IGNoYXIgKm5hbWU7CisgICAg
Y29uc3QgVUNoYXIqIGNvbnN0KiBjb25zdCBhcnJheTsKKyAgICBjb25zdCBpbnQgYXJyYXlTaXpl
OworICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IExhbmd1YWdlRGF0YSYgY29tcGFyZVRvKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0cmNtcChuYW1lLCBjb21wYXJlVG8ubmFtZSk7Cisg
ICAgfQorfTsKKworLy8gRGF0YSBtYXN0IGJlIGFscGhhYmV0aWNhbGx5IHNvcnRlZCBhbmQgaW4g
YWxsIGxvd2VyIGNhc2UgZm9yIGZhc3QgY29tcGFyaXNvbgorTGFuZ3VhZ2VEYXRhIGxhbmd1YWdl
RGF0YVtdID0geworICAgIExBTkdVQUdFX0RBVEEoImVuIiwgZW5nbGlzaFF1b3RlcyksCisgICAg
TEFOR1VBR0VfREFUQSgibm8iLCBub3J3ZWdpYW5RdW90ZXMpLAorICAgIExBTkdVQUdFX0RBVEEo
InJvIiwgcm9tYW5pYW5RdW90ZXMpLAorICAgIExBTkdVQUdFX0RBVEEoInJ1IiwgcnVzc2lhblF1
b3RlcykKK307CisjdW5kZWYgTEFOR1VBR0VfREFUQQorY29uc3QgTGFuZ3VhZ2VEYXRhKiBjb25z
dCBsYW5ndWFnZURhdGFFbmQgPSBsYW5ndWFnZURhdGEgKyBBUlJBWV9TSVpFKGxhbmd1YWdlRGF0
YSk7CisKKyNkZWZpbmUgZGVmYXVsdExhbmd1YWdlUXVvdGVzU291cmNlIHNpbXBsZVF1b3Rlcwor
I2RlZmluZSBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNDb3VudCBBUlJBWV9TSVpFKGRlZmF1bHRMYW5n
dWFnZVF1b3Rlc1NvdXJjZSkKKworc3RhdGljIFF1b3Rlc0RhdGEqIGRlZmF1bHRMYW5ndWFnZVF1
b3Rlc1ZhbHVlID0gMDsKK3N0YXRpYyBjb25zdCBRdW90ZXNEYXRhKiBkZWZhdWx0TGFuZ3VhZ2VR
dW90ZXMoKQoreworICAgIGlmICghZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUpIHsKKyAgICAg
ICAgZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUgPSBRdW90ZXNEYXRhOjpjcmVhdGUoZGVmYXVs
dExhbmd1YWdlUXVvdGVzQ291bnQpOworICAgICAgICBpZiAoIWRlZmF1bHRMYW5ndWFnZVF1b3Rl
c1ZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIFN0cmluZyogZGF0YSA9IGRl
ZmF1bHRMYW5ndWFnZVF1b3Rlc1ZhbHVlLT5kYXRhKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgZGVmYXVsdExhbmd1YWdlUXVvdGVzQ291bnQ7ICsraSkKKyAgICAgICAgICAgIGRhdGFb
aV0gPSBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNTb3VyY2VbaV07CisgICAgfQorICAgIHJldHVybiBk
ZWZhdWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZTsKK30KKyN1bmRlZiBkZWZhdWx0TGFuZ3VhZ2VRdW90
ZXNTb3VyY2UKKyN1bmRlZiBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNDb3VudAorCit0eXBlZGVmIEhh
c2hNYXA8UmVmUHRyPEF0b21pY1N0cmluZ0ltcGw+LCBRdW90ZXNEYXRhKiA+IFF1b3Rlc01hcDsK
Kworc3RhdGljIFF1b3Rlc01hcCYgcXVvdGVzTWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFF1b3Rlc01hcCwgc3RhdGljUXVvdGVzTWFwLCAoKSk7CisgICAgcmV0dXJuIHN0YXRpY1F1
b3Rlc01hcDsKK30KKworc3RhdGljIGNvbnN0IFF1b3Rlc0RhdGEqIHF1b3Rlc0Zvckxhbmd1YWdl
KEF0b21pY1N0cmluZ0ltcGwqIGxhbmd1YWdlKQoreworICAgIFF1b3Rlc0RhdGEqIHJldHVyblZh
bHVlOworICAgIEF0b21pY1N0cmluZyBsb3dlcihsYW5ndWFnZS0+bG93ZXIoKSk7CisgICAgcmV0
dXJuVmFsdWUgPSBxdW90ZXNNYXAoKS5nZXQobG93ZXIuaW1wbCgpKTsKKyAgICBpZiAocmV0dXJu
VmFsdWUpCisgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsKKyAgICBDU3RyaW5nIHMoc3RhdGlj
X2Nhc3Q8Y29uc3QgU3RyaW5nJj4obG93ZXIpLmFzY2lpKCkpOworICAgIExhbmd1YWdlRGF0YSBy
ZXF1ZXN0ID0geyBzLmJ1ZmZlcigpLT5kYXRhKCksIDAsIDAgfTsKKyAgICBjb25zdCBMYW5ndWFn
ZURhdGEqIGxvd2VyQm91bmQgPSBzdGQ6Omxvd2VyX2JvdW5kPGNvbnN0IExhbmd1YWdlRGF0YSos
IGNvbnN0IExhbmd1YWdlRGF0YT4obGFuZ3VhZ2VEYXRhLCBsYW5ndWFnZURhdGFFbmQsIHJlcXVl
c3QpOworICAgIGlmIChsb3dlckJvdW5kID09IGxhbmd1YWdlRGF0YUVuZCkKKyAgICAgICAgcmV0
dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3RlcygpOworICAgIGlmIChzdHJuY21wKGxvd2VyQm91bmQt
Pm5hbWUsIHJlcXVlc3QubmFtZSwgc3RybGVuKGxvd2VyQm91bmQtPm5hbWUpKSkKKyAgICAgICAg
cmV0dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3RlcygpOworICAgIHJldHVyblZhbHVlID0gUXVvdGVz
RGF0YTo6Y3JlYXRlKGxvd2VyQm91bmQtPmFycmF5U2l6ZSk7CisgICAgaWYgKCFyZXR1cm5WYWx1
ZSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3RlcygpOworICAgIFN0cmluZyog
ZGF0YSA9IHJldHVyblZhbHVlLT5kYXRhKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb3dl
ckJvdW5kLT5hcnJheVNpemU7ICsraSkKKyAgICAgICAgZGF0YVtpXSA9IGxvd2VyQm91bmQtPmFy
cmF5W2ldOworICAgIHF1b3Rlc01hcCgpLnNldChsb3dlci5pbXBsKCksIHJldHVyblZhbHVlKTsK
KyAgICByZXR1cm4gcmV0dXJuVmFsdWU7Cit9CisjdW5kZWYgQVJSQVlfU0laRQorCitzdGF0aWMg
Y29uc3QgUXVvdGVzRGF0YSogZGVmYXVsdFF1b3Rlcyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVj
dCkKK3sKKyAgICBzdGF0aWMgU3RyaW5nIGxhbmdTdHJpbmcgPSAibGFuZyI7CisgICAgTm9kZSog
bm9kZSA9ICBvYmplY3QtPmdlbmVyYXRpbmdOb2RlKCk7CisgICAgRWxlbWVudCogZWxlbWVudDsK
KyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWxlbWVudCA9IG9iamVjdC0+ZG9jdW1lbnQoKS0+
Ym9keSgpOworICAgICAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgICAgICBlbGVtZW50ID0gb2Jq
ZWN0LT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKTsKKyAgICB9IGVsc2UgaWYgKCFub2Rl
LT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgZWxlbWVudCA9IG5vZGUtPnBhcmVudEVsZW1l
bnQoKTsKKyAgICAgICAgaWYgKCFlbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRM
YW5ndWFnZVF1b3RlcygpOworICAgIH0gZWxzZQorICAgICAgZWxlbWVudCA9IHRvRWxlbWVudChu
b2RlKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcqIGxhbmd1YWdlOworICAgIHdoaWxlICgobGFu
Z3VhZ2UgPSAmZWxlbWVudC0+Z2V0QXR0cmlidXRlKGxhbmdTdHJpbmcpKSAmJiBsYW5ndWFnZS0+
aXNOdWxsKCkpIHsKKyAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKTsK
KyAgICAgICAgaWYgKCFlbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFn
ZVF1b3RlcygpOworICAgIH0KKyAgICByZXR1cm4gcXVvdGVzRm9yTGFuZ3VhZ2UobGFuZ3VhZ2Ut
PmltcGwoKSk7Cit9CisKK1Bhc3NSZWZQdHI8U3RyaW5nSW1wbD4gUmVuZGVyUXVvdGU6Om9yaWdp
bmFsVGV4dCgpIGNvbnN0Cit7CisgICAgaWYgKCFwYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgQVNTRVJUKG1fZGVwdGggIT0gVU5LTk9XTl9ERVBUSCk7CisgICAgIGNvbnN0IFF1b3Rl
c0RhdGEqIHF1b3RlcyA9IHN0eWxlKCktPnF1b3RlcygpOworICAgICBpZiAoIXF1b3RlcykKKyAg
ICAgICAgIHF1b3RlcyA9IGRlZmF1bHRRdW90ZXModGhpcyk7CisgICAgaWYgKCFxdW90ZXMtPmxl
bmd0aCkKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbS5pbXBsKCk7CisgICAgaW50IGluZGV4ID0g
bV9kZXB0aCAqIDI7CisgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICBjYXNlIE5PX09QRU5fUVVP
VEU6CisgICAgY2FzZSBOT19DTE9TRV9RVU9URToKKyAgICAgICAgcmV0dXJuIFN0cmluZygiIiku
aW1wbCgpOworICAgIGNhc2UgQ0xPU0VfUVVPVEU6CisgICAgICAgIGlmIChpbmRleCkKKyAgICAg
ICAgICAgIC0taW5kZXg7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICsraW5kZXg7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgT1BFTl9RVU9URToKKyAgICAgICAgYnJlYWs7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBlbXB0
eUF0b20uaW1wbCgpOworICAgIH0KKyAgICBpZiAoaW5kZXggPj0gcXVvdGVzLT5sZW5ndGgpCisg
ICAgICAgIGluZGV4ID0gKHF1b3Rlcy0+bGVuZ3RoLTIpIHwgKGluZGV4ICYgMSk7CisgICAgaWYg
KGluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbS5pbXBsKCk7CisgICAgcmV0dXJu
IHF1b3Rlcy0+ZGF0YSgpW2luZGV4XS5pbXBsKCk7Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKGludCBsZWFkKQoreworICAgIHNldFRleHRJbnRl
cm5hbChvcmlnaW5hbFRleHQoKSk7CisgICAgUmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExv
Z2ljYWxXaWR0aHMobGVhZCk7Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OnJlbmRlcmVyU3VidHJl
ZUF0dGFjaGVkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCit7CisgICAgaWYgKHJlbmRlcmVyLT5k
b2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKFJlbmRl
ck9iamVjdCogZGVzY2VuZGFudCA9IHJlbmRlcmVyOyBkZXNjZW5kYW50OyBkZXNjZW5kYW50ID0g
ZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIocmVuZGVyZXIpKQorICAgICAgICBpZiAoZGVzY2Vu
ZGFudC0+aXNRdW90ZSgpKSB7CisgICAgICAgICAgICB0b1JlbmRlclF1b3RlKGRlc2NlbmRhbnQp
LT5wbGFjZVF1b3RlKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorfQorCit2b2lk
IFJlbmRlclF1b3RlOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJlZShSZW5kZXJPYmplY3QqIHN1YnRy
ZWVSb290KQoreworICAgIGlmIChzdWJ0cmVlUm9vdC0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgp
KQorICAgICAgICByZXR1cm47CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQgPSBz
dWJ0cmVlUm9vdDsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblBy
ZU9yZGVyKHN1YnRyZWVSb290KSkKKyAgICAgICAgaWYgKGRlc2NlbmRhbnQtPmlzUXVvdGUoKSkg
eworICAgICAgICAgICAgUmVuZGVyUXVvdGUqIHJlbW92ZWRRdW90ZSA9IHRvUmVuZGVyUXVvdGUo
ZGVzY2VuZGFudCk7CisgICAgICAgICAgICBSZW5kZXJRdW90ZSogbGFzdFF1b3RlQmVmb3JlID0g
cmVtb3ZlZFF1b3RlLT5tX3ByZXZpb3VzOworICAgICAgICAgICAgcmVtb3ZlZFF1b3RlLT5tX3By
ZXZpb3VzID0gMDsKKyAgICAgICAgICAgIGludCBkZXB0aCA9IHJlbW92ZWRRdW90ZS0+bV9kZXB0
aDsKKyAgICAgICAgICAgIGZvciAoZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9y
ZGVyKHN1YnRyZWVSb290KTsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5l
eHRJblByZU9yZGVyKHN1YnRyZWVSb290KSkKKyAgICAgICAgICAgICAgICBpZiAoZGVzY2VuZGFu
dC0+aXNRdW90ZSgpKQorICAgICAgICAgICAgICAgICAgICByZW1vdmVkUXVvdGUgPSB0b1JlbmRl
clF1b3RlKGRlc2NlbmRhbnQpOworICAgICAgICAgICAgUmVuZGVyUXVvdGUqIHF1b3RlQWZ0ZXIg
PSByZW1vdmVkUXVvdGUtPm1fbmV4dDsKKyAgICAgICAgICAgIHJlbW92ZWRRdW90ZS0+bV9uZXh0
ID0gMDsKKyAgICAgICAgICAgIGlmIChsYXN0UXVvdGVCZWZvcmUpCisgICAgICAgICAgICAgICAg
bGFzdFF1b3RlQmVmb3JlLT5tX25leHQgPSBxdW90ZUFmdGVyOworICAgICAgICAgICAgaWYgKHF1
b3RlQWZ0ZXIpIHsKKyAgICAgICAgICAgICAgICBxdW90ZUFmdGVyLT5tX3ByZXZpb3VzID0gbGFz
dFF1b3RlQmVmb3JlOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGRlcHRoID09IHF1b3RlQWZ0ZXItPm1fZGVwdGgpCisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVBZnRlci0+bV9kZXB0aCA9IGRlcHRo
OworICAgICAgICAgICAgICAgICAgICBxdW90ZUFmdGVyLT5zZXROZWVkc0xheW91dEFuZFByZWZX
aWR0aHNSZWNhbGMoKTsKKyAgICAgICAgICAgICAgICAgICAgYWRqdXN0RGVwdGgoZGVwdGgsIHF1
b3RlQWZ0ZXItPm1fdHlwZSk7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlQWZ0ZXIgPSBxdW90
ZUFmdGVyLT5tX25leHQ7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocXVvdGVBZnRlcik7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorfQorCit2b2lkIFJl
bmRlclF1b3RlOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVu
ZGVyU3R5bGUqIG9sZFN0eWxlKQoreworICAgIGNvbnN0IFF1b3Rlc0RhdGEqIG5ld1F1b3RlcyA9
IHN0eWxlKCktPnF1b3RlcygpOworICAgIGNvbnN0IFF1b3Rlc0RhdGEqIG9sZFF1b3RlcyA9IG9s
ZFN0eWxlID8gb2xkU3R5bGUtPnF1b3RlcygpIDogMDsKKyAgICBpZiAoISgobmV3UXVvdGVzICYm
IG9sZFF1b3RlcyAmJiAoKm5ld1F1b3RlcyA9PSAqb2xkUXVvdGVzKSkgfHwgKCFuZXdRdW90ZXMg
JiYgIW9sZFF1b3RlcykpKQorICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNh
bGMoKTsKKyAgICBSZW5kZXJUZXh0OjpzdHlsZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJRdW90ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1
b3RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI5MzhiZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oCkBAIC0w
LDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBSZW5kZXJRdW90ZV9oCisjZGVmaW5lIFJlbmRlclF1
b3RlX2gKKworI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCisjaW5jbHVkZSAiUmVu
ZGVyVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclF1b3RlIDog
cHVibGljIFJlbmRlclRleHQgeworcHVibGljOgorICAgIFJlbmRlclF1b3RlKERvY3VtZW50Kiwg
Y29uc3QgUXVvdGVUeXBlKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJRdW90ZSgpOworCisgICAgc3Rh
dGljIHZvaWQgcmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQoUmVuZGVyT2JqZWN0Kik7CisgICAgc3Rh
dGljIHZvaWQgcmVuZGVyZXJSZW1vdmVkRnJvbVRyZWUoUmVuZGVyT2JqZWN0Kik7Citwcm90ZWN0
ZWQ6CisgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKK3ByaXZhdGU6CisgICAgdmlydHVhbCBjb25zdCBj
aGFyKiByZW5kZXJOYW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBv
cmlnaW5hbFRleHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExv
Z2ljYWxXaWR0aHMoaW50IGxlYWRXaWR0aCk7CisgICAgUXVvdGVUeXBlIG1fdHlwZTsKKyAgICBp
bnQgbV9kZXB0aDsKKyAgICBSZW5kZXJRdW90ZSogbV9uZXh0OworICAgIFJlbmRlclF1b3RlKiBt
X3ByZXZpb3VzOworICAgIHZvaWQgcGxhY2VRdW90ZSgpOworfTsKKworaW5saW5lIFJlbmRlclF1
b3RlKiB0b1JlbmRlclF1b3RlKFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVCgh
b2JqZWN0IHx8IG9iamVjdC0+aXNRdW90ZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVu
ZGVyUXVvdGUqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5n
IGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyUXVvdGUoY29uc3QgUmVuZGVyUXVv
dGUqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVuZGVyUXVvdGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKaW5k
ZXggNzYwZjAyZC4uMTk1ZmEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcmluZ0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyaW5nQWxsSW5PbmUuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0LmNwcCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0LmNwcCIKICNpbmNsdWRlICJS
ZW5kZXJQcm9ncmVzcy5jcHAiCisjaW5jbHVkZSAiUmVuZGVyUXVvdGUuY3BwIgogI2luY2x1ZGUg
IlJlbmRlclJlcGxhY2VkLmNwcCIKICNpbmNsdWRlICJSZW5kZXJSZXBsaWNhLmNwcCIKICNpbmNs
dWRlICJSZW5kZXJSdWJ5LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9Db250ZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
Q29udGVudERhdGEuY3BwCmluZGV4IGQxNTBmNzcuLmFiNTA0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcApAQCAtNTEsNiArNTEsOCBAQCBi
b29sIENvbnRlbnREYXRhOjpkYXRhRXF1aXZhbGVudChjb25zdCBDb250ZW50RGF0YSYgb3RoZXIp
IGNvbnN0CiAgICAgICAgIHJldHVybiBTdHlsZUltYWdlOjppbWFnZXNFcXVpdmFsZW50KGltYWdl
KCksIG90aGVyLmltYWdlKCkpOwogICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgogICAgICAgICBy
ZXR1cm4gKmNvdW50ZXIoKSA9PSAqb3RoZXIuY291bnRlcigpOworICAgIGNhc2UgQ09OVEVOVF9R
VU9URToKKyAgICAgICAgcmV0dXJuIHF1b3RlKCkgPT0gb3RoZXIucXVvdGUoKTsKICAgICB9CiAK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTcxLDYgKzczLDggQEAgdm9pZCBDb250ZW50
RGF0YTo6ZGVsZXRlQ29udGVudCgpCiAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CiAgICAgICAg
IGRlbGV0ZSBtX2NvbnRlbnQubV9jb3VudGVyOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENP
TlRFTlRfUVVPVEU6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIG1fdHlwZSA9IENPTlRF
TlRfTk9ORTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250
ZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmgK
aW5kZXggMTVmNjkxMi4uY2NlMzc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0NvbnRlbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0NvbnRlbnREYXRhLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXND
b3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IENPTlRFTlRfQ09VTlRFUjsgfQogICAg
IGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDT05URU5UX09CSkVDVDsg
fQogICAgIGJvb2wgaXNOb25lKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IENPTlRFTlRfTk9O
RTsgfQorICAgIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDT05URU5U
X1FVT1RFOyB9CiAgICAgYm9vbCBpc1RleHQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ09O
VEVOVF9URVhUOyB9CiAKICAgICBTdHlsZUNvbnRlbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KQEAgLTkzLDYgKzk0LDE4IEBAIHB1YmxpYzoKICAgICAgICAgbV9jb250ZW50
Lm1fY291bnRlciA9IGNvdW50ZXIubGVha1B0cigpOwogICAgIH0KIAorICAgIFF1b3RlVHlwZSBx
dW90ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNRdW90ZSgpKTsKKyAgICAgICAg
cmV0dXJuIG1fY29udGVudC5tX3F1b3RlOworICAgIH0KKyAgICB2b2lkIHNldFF1b3RlKFF1b3Rl
VHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgZGVsZXRlQ29udGVudCgpOworICAgICAgICBtX3R5
cGUgPSBDT05URU5UX1FVT1RFOworICAgICAgICBtX2NvbnRlbnQubV9xdW90ZSA9IHR5cGU7Cisg
ICAgfQorCiAgICAgQ29udGVudERhdGEqIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQuZ2V0
KCk7IH0KICAgICB2b2lkIHNldE5leHQoUGFzc093blB0cjxDb250ZW50RGF0YT4gbmV4dCkgeyBt
X25leHQgPSBuZXh0OyB9CiAKQEAgLTEwNCw2ICsxMTcsNyBAQCBwcml2YXRlOgogICAgICAgICBT
dHlsZUltYWdlKiBtX2ltYWdlOwogICAgICAgICBTdHJpbmdJbXBsKiBtX3RleHQ7CiAgICAgICAg
IENvdW50ZXJDb250ZW50KiBtX2NvdW50ZXI7CisgICAgICAgIFF1b3RlVHlwZSBtX3F1b3RlOwog
ICAgIH0gbV9jb250ZW50OwogICAgIE93blB0cjxDb250ZW50RGF0YT4gbV9uZXh0OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjlmZTNmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwCkBAIC0wLDAgKzEsNjAg
QEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1F1b3Rlc0RhdGEqIFF1b3Rlc0RhdGE6OmNyZWF0ZShp
bnQgc3RyaW5nQ291bnQpCit7CisgICAgY2hhciogdG1wID0gbmV3IGNoYXJbc2l6ZW9mKFF1b3Rl
c0RhdGEpK3NpemVvZihTdHJpbmcpKnN0cmluZ0NvdW50XTsKKyAgICBpZiAoIXRtcCkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgbmV3ICh0bXApIFF1b3Rlc0RhdGEoc3RyaW5nQ291bnQpOworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgc3RyaW5nQ291bnQ7ICsraSkKKyAgICAgICAgbmV3ICh0bXAg
K3NpemVvZihRdW90ZXNEYXRhKSArIHNpemVvZihTdHJpbmcpKmkpIFN0cmluZygpOworICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PFF1b3Rlc0RhdGEqPih0bXApOworfQorCitib29sIFF1b3Rl
c0RhdGE6Om9wZXJhdG9yPT0oY29uc3QgUXVvdGVzRGF0YSYgb3RoZXIpIGNvbnN0Cit7CisgICAg
aWYgKHRoaXMgPT0gJm90aGVyKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoISZvdGhl
ciB8fCAhdGhpcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChsZW5ndGggIT0gb3Ro
ZXIubGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY29uc3QgU3RyaW5nKiBteURh
dGEgPSBkYXRhKCk7CisgICAgY29uc3QgU3RyaW5nKiBvdGhlckRhdGEgPSBvdGhlci5kYXRhKCk7
CisgICAgZm9yIChpbnQgaSA9IGxlbmd0aC0xOyBpID49IDA7IC0taSkKKyAgICAgICAgaWYgKG15
RGF0YVtpXSAhPSBvdGhlckRhdGFbaV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK1F1b3Rlc0RhdGE6On5RdW90ZXNEYXRhKCkKK3sKKyAgICBTdHJp
bmcqIHAgPSBkYXRhKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAg
ICAgICAgcFtpXS5+U3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmRmOGE2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKwor
I2lmbmRlZiBRdW90ZXNEYXRhX2gKKyNkZWZpbmUgUXVvdGVzRGF0YV9oCisKKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgUXVvdGVzRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFF1b3Rl
c0RhdGE+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5RdW90ZXNEYXRhKCk7CisgICAgc3RhdGlj
IFF1b3Rlc0RhdGEqIGNyZWF0ZShpbnQgc3RyaW5nQ291bnQpOworICAgIFN0cmluZyogZGF0YSgp
IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8U3RyaW5nKj4odGhpcysxKTsgfQorICAgIGNvbnN0
IFN0cmluZyogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgU3Ry
aW5nKj4odGhpcysxKTsgfQorICAgIGludCBsZW5ndGg7CisgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFF1b3Rlc0RhdGEmKSBjb25zdDsKKyAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBw
KSB7IGRlbGV0ZVtdIHN0YXRpY19jYXN0PGNoYXIqPihwKTsgfQorcHJpdmF0ZToKKyAgICBRdW90
ZXNEYXRhKGludCBzdHJpbmdDb3VudCkgOiBsZW5ndGgoc3RyaW5nQ291bnQpIHt9Cit9OworCit9
CisjZW5kaWYgLy8gUXVvdGVzRGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBiNzZhMzUwLi44MWRhNDFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxl
Y3Rvci5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIlF1b3Rlc0RhdGEu
aCIKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgog
I2luY2x1ZGUgIlNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCkBAIC02MDUsNiArNjA2LDEzIEBA
IHZvaWQgUmVuZGVyU3R5bGU6OnNldEN1cnNvckxpc3QoUGFzc1JlZlB0cjxDdXJzb3JMaXN0PiBv
dGhlcikKICAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+Y3Vyc29yRGF0YSA9IG90aGVy
OwogfQogCit2b2lkIFJlbmRlclN0eWxlOjpzZXRRdW90ZXMoUGFzc1JlZlB0cjxRdW90ZXNEYXRh
PiBxKQoreworICAgIGlmICgqcmFyZUluaGVyaXRlZERhdGEtPnF1b3Rlcy5nZXQoKSA9PSAqcS5n
ZXQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpLT5x
dW90ZXMgPSBxOworfQorCiB2b2lkIFJlbmRlclN0eWxlOjpjbGVhckN1cnNvckxpc3QoKQogewog
ICAgIGlmIChyYXJlSW5oZXJpdGVkRGF0YS0+Y3Vyc29yRGF0YSkKQEAgLTY3Miw2ICs2ODAsMTEg
QEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29udGVudChQYXNzT3duUHRyPENvdW50ZXJDb250ZW50
PiBjb3VudGVyLCBib29sIGFkZCkKICAgICBwcmVwYXJlVG9TZXRDb250ZW50KDAsIGFkZCktPnNl
dENvdW50ZXIoY291bnRlcik7CiB9CiAKK3ZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoUXVv
dGVUeXBlIHF1b3RlLCBib29sIGFkZCkKK3sKKyAgICBwcmVwYXJlVG9TZXRDb250ZW50KDAsIGFk
ZCktPnNldFF1b3RlKHF1b3RlKTsKK30KKwogdm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgSW50U2l6ZSYgYm9yZGVy
Qm94U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0CiB7CiAgICAg
Ly8gdHJhbnNmb3JtLW9yaWdpbiBicmFja2V0cyB0aGUgdHJhbnNmb3JtIHdpdGggdHJhbnNsYXRl
IG9wZXJhdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCmluZGV4IGFlOWJkYTIuLjgxNzVhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xMTI3LDEwICsxMTI3LDE0IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldENvbnRlbnQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiwgYm9vbCBhZGQgPSBmYWxz
ZSk7CiAgICAgdm9pZCBzZXRDb250ZW50KFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4sIGJvb2wgYWRk
ID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29udGVudChQYXNzT3duUHRyPENvdW50ZXJDb250ZW50
PiwgYm9vbCBhZGQgPSBmYWxzZSk7CisgICAgdm9pZCBzZXRDb250ZW50KFF1b3RlVHlwZSwgYm9v
bCBhZGQgPSBmYWxzZSk7CiAKICAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3VudGVy
RGlyZWN0aXZlcygpIGNvbnN0OwogICAgIENvdW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0NvdW50
ZXJEaXJlY3RpdmVzKCk7CiAKKyAgICBRdW90ZXNEYXRhKiBxdW90ZXMoKSBjb25zdCB7IHJldHVy
biByYXJlSW5oZXJpdGVkRGF0YS0+cXVvdGVzLmdldCgpOyB9CisgICAgdm9pZCBzZXRRdW90ZXMo
UGFzc1JlZlB0cjxRdW90ZXNEYXRhPik7CisKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGh5cGhl
blN0cmluZygpIGNvbnN0OwogCiAgICAgYm9vbCBpbmhlcml0ZWROb3RFcXVhbChjb25zdCBSZW5k
ZXJTdHlsZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCA0NGNkM2Y1Li4zYzYyZGJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaApAQCAtMjk3LDcgKzI5NywxMSBAQCBlbnVtIEVMaXN0U3R5bGVUeXBlIHsKIH07CiAKIGVu
dW0gU3R5bGVDb250ZW50VHlwZSB7Ci0gICAgQ09OVEVOVF9OT05FLCBDT05URU5UX09CSkVDVCwg
Q09OVEVOVF9URVhULCBDT05URU5UX0NPVU5URVIKKyAgICBDT05URU5UX05PTkUsIENPTlRFTlRf
T0JKRUNULCBDT05URU5UX1RFWFQsIENPTlRFTlRfQ09VTlRFUiwgQ09OVEVOVF9RVU9URQorfTsK
KworZW51bSBRdW90ZVR5cGUgeworICAgIE9QRU5fUVVPVEUsIENMT1NFX1FVT1RFLCBOT19PUEVO
X1FVT1RFLCBOT19DTE9TRV9RVU9URQogfTsKIAogZW51bSBFQm9yZGVyRml0IHsgQm9yZGVyRml0
Qm9yZGVyLCBCb3JkZXJGaXRMaW5lcyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDZiOGUwMzku
LjlkY2Y5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRl
ICJTdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCisj
aW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJTaGFkb3dEYXRhLmgiCkBAIC0x
MzIsNyArMTMzLDggQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNv
bnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CiAgICAgICAgICYmIHRleHRFbXBo
YXNpc1Bvc2l0aW9uID09IG8udGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICAgICAgJiYgaHlwaGVu
YXRpb25TdHJpbmcgPT0gby5oeXBoZW5hdGlvblN0cmluZwogICAgICAgICAmJiBoeXBoZW5hdGlv
bkxvY2FsZSA9PSBvLmh5cGhlbmF0aW9uTG9jYWxlCi0gICAgICAgICYmIHRleHRFbXBoYXNpc0N1
c3RvbU1hcmsgPT0gby50ZXh0RW1waGFzaXNDdXN0b21NYXJrOworICAgICAgICAmJiB0ZXh0RW1w
aGFzaXNDdXN0b21NYXJrID09IG8udGV4dEVtcGhhc2lzQ3VzdG9tTWFyaworICAgICAgICAmJiAq
cXVvdGVzLmdldCgpID09ICpvLnF1b3Rlcy5nZXQoKTsKIH0KIAogYm9vbCBTdHlsZVJhcmVJbmhl
cml0ZWREYXRhOjpzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhJiBvKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggZDI2Y2E4My4uZmM1NmUzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5oCkBAIC0zNCw2ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEN1cnNvckxpc3Q7CitjbGFzcyBRdW90ZXNEYXRhOwogY2xhc3MgU2hhZG93RGF0YTsKIAogLy8g
VGhpcyBzdHJ1Y3QgaXMgZm9yIHJhcmVseSB1c2VkIGluaGVyaXRlZCBDU1MzLCBDU1MyLCBhbmQg
V2ViS2l0LXNwZWNpZmljIHByb3BlcnRpZXMuCkBAIC04OCw2ICs4OSw3IEBAIHB1YmxpYzoKICAg
ICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25Mb2NhbGU7CiAKICAgICBBdG9taWNTdHJpbmcgdGV4
dEVtcGhhc2lzQ3VzdG9tTWFyazsKKyAgICBSZWZQdHI8UXVvdGVzRGF0YT4gcXVvdGVzOwogCiBw
cml2YXRlOgogICAgIFN0eWxlUmFyZUluaGVyaXRlZERhdGEoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82329</attachid>
            <date>2011-02-14 10:05:12 -0800</date>
            <delta_ts>2011-02-14 10:54:44 -0800</delta_ts>
            <desc>Proposed Patch. Fixed problem with Chromium build system.</desc>
            <filename>patchFor6503-3.patch</filename>
            <type>text/plain</type>
            <size>76907</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1OTM5YmE1Li5kMzdhMGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDIt
MTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24n
dCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyBmb3IgcXVvdGVzLgorCisg
ICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbDogQWRkZWQu
CisKIDIwMTEtMDItMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgc2tpcCBmYWlsaW5nIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L2hpbmRpLXdoaXRlc3BhY2UuaHRtbCB0ZXN0IG9uIEdUSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWVjOGYxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMg
c2hvdWxkIGJlIGlkZW50aWNhbC4KKworPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYWIJMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQor
CitXV2FXV2JXV1dXV1dXVwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09
PT09TWFya2VyMz09PT09PT09CisKK1BBU1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmViOWE0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0
bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAg
ICAgICBib2R5IHsgcXVvdGVzOiAiV1ciICJXV1dXIjsgfQorICAgICAgICA8L3N0eWxlPgorICAg
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rp
b24gcnVuKCkgeworICAgICAgICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdl
dFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGgg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJl
bmNlIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAg
aWYgKHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0
V2lkdGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigp
JywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVu
IHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09
PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgor
ICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+PC9xPjwv
dGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49
PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAg
PHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5XV2FXV2JXV1dXV1dXVzwv
dGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+
PT09PT09PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMTQ0NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDkgQEAKKz09PT09PT09TWFya2VyMT09PT09PT09CisKK2FiY2QJMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQorCithV1dXYldX
V1dXY1dXZFdXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1h
cmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hMWU3ODUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wMi5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAg
Ym9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAg
c3BhbjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgICAgICBzcGFu
OmFmdGVyIHsgY29udGVudDogbm8tY2xvc2UtcXVvdGU7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAg
ICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHJ1bigpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUlu
QnJvd3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3
aWR0aCIpOworICAgICAgICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0g
cmVmZXJlbmNlV2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
LmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3Rl
ZCAiICsgcmVmZXJlbmNlV2lkdGg7CisgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9u
ZTsiKTsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBv
bmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJy
b3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwu
PC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRh
YmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRh
aW5lciI+PHNwYW4+YTxxPmI8L3E+Yzwvc3Bhbj48cT5kPC9xPjwvdGQ+CisgICAgICAgICAgICAg
ICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAg
ICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09
PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAg
ICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5hV1dXYldXV1dXY1dXZFdXV1c8L3RkPgorICAgICAgICAg
ICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAg
ICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2Vy
Mz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yNTFkZWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACis9
PT09PT09PU1hcmtlcjE9PT09PT09PQorCithYgkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK2FXV1diV1dXV1cJMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQQVNTRUQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMt
MDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzFmOWJkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0w
My5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldXIiAiV1dX
VyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgYjpiZWZvcmUgeyBjb250ZW50OiBuby1v
cGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUo
InN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAgICAgICAgICAgICAgdGVzdFdpZHRoID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RDb250
YWluZXIiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAg
ICByZWZlcmVuY2VXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWZlcmVuY2UiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsK
KyAgICAgICAgICAgICAgICBpZiAodGVzdFdpZHRoID09IHJlZmVyZW5jZVdpZHRoKQorICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4
dCA9ICJQQVNTRUQiOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiRkFJTEVEOiB0
ZXN0V2lkdGg9IiArIHRlc3RXaWR0aCArIjsgZXhwZWN0ZWQgIiArIHJlZmVyZW5jZVdpZHRoOwor
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0i
c2V0VGltZW91dCgncnVuKCknLCAwKTsiPgorICAgICAgICA8cCBpZD0ib25seUluQnJvd3NlciI+
VGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC48L3A+Cisg
ICAgICAgIDxwPj09PT09PT09TWFya2VyMT09PT09PT09PC9wPgorICAgICAgICA8dGFibGU+Cisg
ICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGlkPSJ0ZXN0Q29udGFpbmVyIj48
c3Bhbj48Yj5hPC9iPjwvc3Bhbj48cT5iPC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgor
ICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4K
KyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBp
ZD0icmVmZXJlbmNlIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGRlcjsiPmE8L3NwYW4+
V1dXYldXV1dXPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAx
ICAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgor
ICAgICAgICA8cD49PT09PT09PU1hcmtlcjM9PT09PT09PTwvcD4KKyAgICAgICAgPHByZSBpZD0i
Y29uc29sZSIvPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA1N2E0MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYgkxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisK
K1dXYldXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtl
cjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44NzAyOWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9k
eSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgYjpi
ZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAg
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJy
b3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAgICAg
ICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9SZW1vdmUiKTsKKyAgICAg
ICAgICAgICAgICBlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOwor
ICAgICAgICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZh
bHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNl
V2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4
dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVm
ZXJlbmNlV2lkdGg7CisgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAg
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW4oKScsIDApOyI+CisgICAgICAgIDxwIGlkPSJv
bmx5SW5Ccm93c2VyIj5UaGUgdGV4dHMgYmV0d2VlbiB0aGUgbWFya2VycyBzaG91bGQgYmUgaWRl
bnRpY2FsLjwvcD4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIxPT09PT09PT08L3A+CisgICAg
ICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InRl
c3RDb250YWluZXIiPjxzcGFuPjxiIGlkPSJ0b1JlbW92ZSI+YTwvYj48L3NwYW4+PHE+YjwvcT48
L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+
PT09PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAg
IDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1diV1dXVzwvdGQ+Cisg
ICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3Rk
PgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09
PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjQzZWI0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKKz09PT09PT09TWFya2VyMT09PT09PT09CisKK2FiYwkxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYVdXV2JXV1dXV2NX
V1dXCTEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMQorPT09PT09PT1NYXJrZXIzPT09
PT09PT0KKworUEFTU0VECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTA1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NDIyYmUzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQv
Y29udGVudC1xdW90ZXMtMDUuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIC5teVF1b3Rl
cyB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICA8L3N0eWxl
PgorICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gcnVuKCkgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
bmx5SW5Ccm93c2VyIikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJkaXNwbGF5OiBub25lOyIpOwor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJteVF1
b3RlcyIpOworICAgICAgICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFBy
b3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNl
IiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgaWYg
KHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lk
dGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywg
MCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRo
ZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1h
cmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAg
ICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+YzwvcT48L3Rk
PgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8
L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09
PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0
cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1dhV1dXYldXV1dXY1dXV1c8
L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxw
Pj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9p
ZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggNjgyYTcxOC4uNzcxYWFhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9BbmRyb2lkLm1rCkBAIC03MDEsNiArNzAxLDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9D
QUxfU1JDX0ZJTEVTKSBcCiAJcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgXAogCXJlbmRlcmlu
Zy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIFwKIAlyZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAg
XAorCXJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCBcCiAKQEAgLTc5MSw2ICs3OTIs
NyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlyZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmNwcCBcCiAJcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAg
XAogCXJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAgXAorCXJlbmRlcmluZy9zdHls
ZS9RdW90ZXNEYXRhLmNwcCBcCiAJcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBcCiAK
IGlmZXEgKCQoRU5BQkxFX1NWRyksIHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDA2NGJm
MTYuLjFmMzIzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMzY3LDYgKzEzNjcsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAogICAgIHJlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKICAgICBy
ZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKQEAgLTE0MDUsNiArMTQwNiw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUlt
YWdlLmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5j
cHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA3OGRiMTQ4Li4zODczMWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMTEt
MDItMTEgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9l
c24ndCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIGZ1bGwgc3VwcG9ydCBmb3IgcXVvdGVz
IGFzIGRlZmluZWQgYnkgQ1NTIDIuMS4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MvY29udGVu
dC9jb250ZW50LXF1b3Rlcy0wMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL2NvbnRlbnQv
Y29udGVudC1xdW90ZXMtMDMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvY29udGVudC9j
b250ZW50LXF1b3Rlcy0wNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTA1Lmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGRlZCBS
ZW5kZXJRdW90ZS5jcHAvaCBhbmQgUXVvdGVzRGF0YS5jcHAvaCB0byB0aGUgZGVwZW5kZW5jeSBs
aXN0cworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VR
dW90ZXMpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgQWRkZWQgbmVlZGVk
IHN0eWxlc2hlZXQgcGFyc2luZyBzdXBwb3J0IGZvciBxdW90ZXMsCisgICAgICAgIChuby0pb3Bl
bi1xdW90ZSBhbmQgKG5vLSljbG9zZS1xdW90ZQorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVy
dHkpOgorICAgICAgICBIYW5kbGVkIHNldHRpbmcgb2YgdGhlIG5ldyBxdW90ZXMgUmVuZGVyU3R5
bGUgcHJvcGVydHkgYW5kIGFkZGVkCisgICAgICAgIGhhbmRsaW5nIG9mIHF1b3RlcyBmb3IgdGhl
IGNvbnRlbnQgcHJvcGVydHkuCisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAocTpi
ZWZvcmUpOgorICAgICAgICAocTphZnRlcik6CisgICAgICAgIHJlcGxhY2VkIHRoZSAnIicgd29y
a2Fyb3VuZCB3aXRoIG9wZW4vY2xvc2UtcXVvdGUKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpcnR5TGluZUJveGVzRm9y
UmVuZGVyZXIpOgorICAgICAgICBNYWRlIFJlbmRlclF1b3RlIGJlaGF2ZSBsaWtlIFJlbmRlckNv
dW50ZXIuCisgICAgICAgIE5lZWRlZCB0byBlbnN1cmUgdGhhdCB0aGUgUXVvdGUgdGV4dCBpcyBj
YWxjdWxhdGVkIGJlZm9yZSBsYXlvdXQsCisgICAgICAgIGp1c3QgYXMgaXQgaXMgZm9yIFJlbmRl
ckNvdW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1F1b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENo
aWxkTGlzdDo6cmVtb3ZlQ2hpbGROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVj
dENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2RlKToKKyAgICAgICAgSGFuZGxlZCB1cGRhdGlu
ZyBvZiBxdW90ZSBkZXB0aCB3aGVuIHJlbmRlcmVycyBhcmUgYWRkZWQgYW5kIHJlbW92ZWQKKyAg
ICAgICAgZnJvbSB0aGUgdHJlZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxk
TGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUXVvdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdERlcHRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpSZW5kZXJRdW90ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJRdW90ZTo6flJlbmRlclF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clF1b3RlOjpyZW5kZXJOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpwbGFj
ZVF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpvcmlnaW5hbFRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRh
Y2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJv
bVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OnN0eWxlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJRdW90ZTo6aXNRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclF1
b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwOgorICAgICAg
ICBJbmNsdWRlZCBSZW5kZXJRdW90ZS5jcHAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29u
dGVudERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6OmRhdGFFcXVpdmFs
ZW50KToKKyAgICAgICAgQ2hlY2tlZCBmb3IgcXVvdGV0eXBlIGlkZW50aXR5LgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudERhdGE6OmRlbGV0ZUNvbnRlbnQpOgorICAgICAgICBBY2NvdW50ZWQg
Zm9yIHRoZSBuZXcgUVVPVEVfVFlQRS4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29udGVu
dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjppc1F1b3RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjpxdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RGF0YTo6c2V0UXVvdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29udGVudCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6cXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdz
OjpzZXRRdW90ZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0pOgorICAgICAgICBJbmNsdWRlZCBxdW90ZXMgaW4gZXF1YWxpdHkgY2hlY2suCisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgQWRk
ZWQgcXVvdGVzCisKIDIwMTEtMDItMTAgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KaW5kZXggMzZmNzJhYi4uMWMzNmIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
QEAgLTI4MjAsNiArMjgyMCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dy
ZXNzLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxp
Y2EuY3BwIFwKQEAgLTI5MjIsNiArMjkyNCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUXVvdGVzRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJhOWUzMTMuLjk1ZjNmZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTM2NTQsNiArMzY1NCw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxl
L05pbmVQaWVjZUltYWdlLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL05pbmVQ
aWVjZUltYWdlLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUu
aCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwJywKKyAgICAg
ICAgICAgICdyZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5oJywKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmgnLApAQCAtMzkwOSw2ICszOTExLDggQEAKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvUmVuZGVyUGFydC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUHJvZ3Jl
c3MuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCcsCisgICAg
ICAgICAgICAncmVuZGVyaW5nL1JlbmRlclF1b3Rlcy5jcHAnLAorICAgICAgICAgICAgJ3JlbmRl
cmluZy9SZW5kZXJRdW90ZXMuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IGRjZGI3YTUuLjE5MzE5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMzQ1LDYgKzEzNDUsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBcCiAg
ICAgcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jl
c3MuY3BwIFwKKyAgICByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwIFwKICAgICByZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAgXAog
ICAgIHJlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcCBcCkBAIC0xMzgxLDYgKzEzODIsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBcCiAgICAgcmVuZGVy
aW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9OaW5lUGll
Y2VJbWFnZS5jcHAgXAorICAgIHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcCBcCiAgICAg
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1No
YWRvd0RhdGEuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5j
cHAgXApAQCAtMjMyMCw2ICsyMzIyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5oIFwKICAgICByZW5kZXJp
bmcvUmVuZGVyUHJvZ3Jlc3MuaCBcCisgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmggXAogICAg
IHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGlj
YS5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUnVieS5oIFwKQEAgLTIzNTcsNiArMjM2MCw3IEBA
IEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvTmluZVBp
ZWNlSW1hZ2UuaCBcCisgICAgcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuaCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TaGFkb3dE
YXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUJhY2tncm91bmREYXRhLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwY2M0ZmQy
Li5jYjRhYTM2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtMzUwNzgsNiArMzUwNzgsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclF1b3RlLmNwcCIKKwkJCQk+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRD
R3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxy
ZW5kZXJpbmdcUmVuZGVyUXVvdGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclJlcGxhY2VkLmNwcCIKIAkJCQk+CiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC0zOTA0Nyw2ICszOTEwMyw2MiBAQAogCQkJCQk+CiAJ
CQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0
eWxlXFF1b3Rlc0RhdGEuY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJ
CQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9
IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
Lz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcUXVvdGVzRGF0YS5oIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5n
XHN0eWxlXFJlbmRlclN0eWxlLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA5ZjNlMjQ2Li4zNGNkYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTA0LDYgKzI5MDQsOCBAQAogCQk5MzkyRjE0
NDBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0MzBBRDE4NUZFMDA2OTFCRDQgLyog
UmVuZGVyQ291bnRlci5jcHAgKi87IH07CiAJCTkzOTJGMTRDMEFEMTg2MUIwMDY5MUJENCAvKiBD
b3VudGVyTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5MkYxNEIwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggKi87IH07CiAJCTkz
OTJGMTUwMEFEMTg2MjMwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0RjBBRDE4NjIzMDA2OTFCRDQg
LyogQ291bnRlck5vZGUuY3BwICovOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyog
UmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTJGMTQxMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5oICovOyB9OworCQk5
MzkyRjE0NDBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0
IC8qIFJlbmRlclF1b3RlLmNwcCAqLzsgfTsKIAkJOTM5ODg1QzMwOEI3RTNEMTAwRTcwN0M0IC8q
IEV2ZW50TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM5ODg1QzEwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuY3BwICovOyB9Owog
CQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0
IC8qIEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5MzlCMDJFRTBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFQzBF
QTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi87IH07CkBAIC01MjYxLDYgKzUy
NjMsOCBAQAogCQlCQ0VGNDNDRjBFNjczREExMDAxQzEyODcgLyogU3R5bGVJbWFnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQzQ0UwRTY3M0RB
MTAwMUMxMjg3IC8qIFN0eWxlSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlCQ0VGNDNERDBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBpZWNl
SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RUY0M0RDMEU2NzQwMTIwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRUY0M0UwMEU2NzQxMTAwMDFD
MTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0VGNDNERjBFNjc0MTEwMDAxQzEyODcgLyogTmluZVBpZWNlSW1h
Z2UuY3BwICovOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5o
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDIw
QUQxODVGNDAwNjkxQkQ0IC8qIFF1dG9lc0RhdGEuaCAqLzsgfTsKKwkJOTM5MkYxNDIwQUQxODVG
NDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1dG9lc0RhdGEu
Y3BwICovOyB9OwogCQlCQ0VGNDQ0QTBFNjc0NUUwMDAxQzEyODcgLyogU3R5bGVHZW5lcmF0ZWRJ
bWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNF
RjQ0NDkwRTY3NDVFMDAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0VGNDQ0RDBFNjc0NjI4
MDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQ0NEMwRTY3NDYyODAwMUMxMjg3IC8qIFN0eWxlQ2Fj
aGVkSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQ0VGNDQ3QTBFNjc0N0QwMDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGNDQ3OTBFNjc0
N0QwMDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5jcHAgKi87IH07CkBAIC05MzA4LDYgKzkz
MTIsOCBAQAogCQk5MzkyRjE0MzBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQ291bnRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAv
KiBDb3VudGVyTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRl
ck5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MkYxNEYwQUQxODYyMzAw
NjkxQkQ0IC8qIENvdW50ZXJOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDb3VudGVyTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
OTJGMTQxMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyUXVvdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJRdW90ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTU1QTQxMDNENzI5MzIwMDg2MzVDRSAvKiBSZW5kZXJU
cmVlQXNUZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyVHJlZUFzVGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5NTVBNDIwM0Q3MjkzMjAwODYzNUNFIC8qIFJl
bmRlclRyZWVBc1RleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQXNUZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOTg4NUMxMDhCN0UzRDEw
MEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTExNTkyLDYgKzExNTk4
LDggQEAKIAkJQkNFRjQzQ0UwRTY3M0RBMTAwMUMxMjg3IC8qIFN0eWxlSW1hZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVJbWFnZS5oOyBwYXRoID0gc3R5bGUvU3R5
bGVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDNEQzBFNjc0MDEy
MDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTmluZVBpZWNlSW1hZ2UuaDsgcGF0aCA9IHN0eWxlL05pbmVQaWVjZUltYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0M0RGMEU2NzQxMTAwMDFDMTI4NyAvKiBO
aW5lUGllY2VJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBO
aW5lUGllY2VJbWFnZS5jcHA7IHBhdGggPSBzdHlsZS9OaW5lUGllY2VJbWFnZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90
ZXNEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFF1b3Rlc0RhdGEuaDsg
cGF0aCA9IHN0eWxlL1F1b3Rlc0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUXVvdGVzRGF0YS5jcHA7IHBhdGggPSBzdHlsZS9RdW90
ZXNEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFRjQ0NDkwRTY3NDVF
MDAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gU3R5bGVHZW5lcmF0ZWRJbWFnZS5oOyBwYXRoID0gc3R5bGUvU3R5bGVHZW5l
cmF0ZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDQ0QzBFNjc0
NjI4MDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBTdHlsZUNhY2hlZEltYWdlLmg7IHBhdGggPSBzdHlsZS9TdHlsZUNhY2hlZElt
YWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0NDc5MEU2NzQ3RDAwMDFD
MTI4NyAvKiBTdHlsZUNhY2hlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFN0eWxlQ2FjaGVkSW1hZ2UuY3BwOyBwYXRoID0gc3R5bGUvU3R5bGVDYWNoZWRJ
bWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzk5MCw2ICsxNzk5OCw4
IEBACiAJCQkJQkNFRjQzREYwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCAq
LywKIAkJCQlCQ0VGNDNEQzBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuaCAqLywK
IAkJCQlCQzVFQjVEQzBFODFCOEREMDBCMjU5NjUgLyogT3V0bGluZVZhbHVlLmggKi8sCisJCQkJ
OTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuY3BwICovLAorCQkJCTkzOTJG
MTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmggKi8sCiAJCQkJQkM4QzhGQUIwRERD
RDMxQjAwQjU5MkY0IC8qIFJlbmRlclN0eWxlLmNwcCAqLywKIAkJCQlCQzhDOEZBQzBERENEMzFC
MDBCNTkyRjQgLyogUmVuZGVyU3R5bGUuaCAqLywKIAkJCQlCQzVFQjY2NzBFODFDQjcxMDBCMjU5
NjUgLyogUmVuZGVyU3R5bGVDb25zdGFudHMuaCAqLywKQEAgLTE4ODA4LDYgKzE4ODE4LDggQEAK
IAkJCQlBODcxREVDRjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5oICovLAogCQkJCUE0
M0JGNTlBMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgKi8sCiAJCQkJQTQz
QkY1OUIxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmggKi8sCisJCQkJOTM5MkYx
NDMwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNwcCAqLywKKwkJCQk5MzkyRjE0MTBB
RDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuaCAqLywKIAkJCQlBODcxREZERTBBMTUzNzZC
MDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuY3BwICovLAogCQkJCUE4NzFERkRGMEExNTM3NkIw
MEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oICovLAogCQkJCUJDQTg0NkQ0MERDNjdBMzUwMDI2
QzMwOSAvKiBSZW5kZXJSZXBsaWNhLmNwcCAqLywKQEAgLTIxNjYzLDYgKzIxNjc1LDcgQEAKIAkJ
CQlFNEQ2ODc3OTBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3RTMzQ0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5h
bWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90
ZXNEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3MjBEMDBCRjIyMDA3MUI3ODIgLyog
UmFkaWFsR3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDQzEy
NTFGMTJEMDAzRUYyNjkgLyogUmFkaW9JbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
RjE5OTE4MDgyNDVFNTkwMDFFOUFCQyAvKiBSYW5nZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTcz
Myw2ICsyMTc0Niw3IEBACiAJCQkJQkNGQTkzMDgxMDMzMzE5MzAwN0IyNUQxIC8qIFJlbmRlck92
ZXJmbG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREVENzBBMTUzMEM3MDBCMTJBNjggLyog
UmVuZGVyUGFydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQzQkY1OUQxMTQ5MjkyODAwQzY0M0NB
IC8qIFJlbmRlclByb2dyZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzkyRjE0MjBBRDE4NUY0
MDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFERkUzMEEx
NTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNB
ODQ2RDcwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0NzlGQUVFMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmggaW4gSGVhZGVycyAq
LywKQEAgLTI0MzgyLDYgKzI0Mzk2LDcgQEAKIAkJCQkxQTdGQTYxQjBEREEzQkJFMDAyOEY4QTUg
LyogTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3RkE2NDkw
RERBM0NCQTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyTWFjLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDRUY0M0UwMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEM0QTgwMDA5RDU2MzI3MDAwM0FDOEQgLyogTm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTRGRTczMDBBMjI5N0JFMDA1OEQ3QUQgLyogTm9k
ZUZpbHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTRGRTczMjBBMjI5N0JFMDA1OEQ3QUQg
LyogTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0NTIzLDYgKzI0
NTM4LDcgQEAKIAkJCQlCQzYwRUZCNzBGMzNBMEU3MDA4MTJBOTMgLyogUmVuZGVyT2JqZWN0Q2hp
bGRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFERUQwMEExNTMwQzcwMEIxMkE2OCAv
KiBSZW5kZXJQYXJ0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE0M0JGNTlDMTE0OTI5MjgwMEM2
NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzkyRjE0NDBB
RDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3
MURGRTIwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlclJlcGxhY2VkLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDQTg0NkQ2MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJSZXBsaWNhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0NzlGQUVEMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxYWU0NWY1Li5h
OTE4NDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjEzLDYgKzYxMyw4IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAg
IGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6ICAgICAgICAgICAgICAgLy8gWzxzdHJpbmc+IDxzdHJp
bmc+XSsgfCBub25lIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQpCiAgICAgICAgICAgICB2YWxp
ZFByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBwYXJz
ZVF1b3Rlcyhwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlVbmljb2RlQmlkaTogICAgICAgICAvLyBub3JtYWwgfCBlbWJlZCB8IGJpZGktb3Zl
cnJpZGUgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fApAQCAt
MjMzMyw2ICsyMzM1LDI4IEBAIENTU1BhcnNlcjo6U2l6ZVBhcmFtZXRlclR5cGUgQ1NTUGFyc2Vy
OjpwYXJzZVNpemVQYXJhbWV0ZXIoQ1NTVmFsdWVMaXN0KiBwYXJzZWRWCiAgICAgfQogfQogCisv
LyBbIDxzdHJpbmc+IDxzdHJpbmc+IF0rIHwgaW5oZXJpdCB8IG5vbmUKKy8vIGluaGVyaXQgYW5k
IG5vbmUgYXJlIGhhbmRsZWQgaW4gcGFyc2VWYWx1ZS4KK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZVF1
b3RlcyhpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKK3sKKyAgICBSZWZQdHI8Q1NTVmFsdWVM
aXN0PiB2YWx1ZXMgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAg
d2hpbGUgKENTU1BhcnNlclZhbHVlKiB2YWwgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSB7Cisg
ICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VkVmFsdWU7CisgICAgICAgIGlmICh2YWwtPnVu
aXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpCisgICAgICAgICAgICBwYXJzZWRW
YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsLT5zdHJpbmcsIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfU1RSSU5HKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIHZhbHVlcy0+YXBwZW5kKHBhcnNlZFZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgIG1f
dmFsdWVMaXN0LT5uZXh0KCk7CisgICAgfQorICAgIGlmICh2YWx1ZXMtPmxlbmd0aCgpKSB7Cisg
ICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgdmFsdWVzLnJlbGVhc2UoKSwgaW1wb3J0YW50KTsK
KyAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKK30KKwogLy8gWyA8c3RyaW5nPiB8IDx1cmk+IHwgPGNvdW50
ZXI+IHwgYXR0cihYKSB8IG9wZW4tcXVvdGUgfCBjbG9zZS1xdW90ZSB8IG5vLW9wZW4tcXVvdGUg
fCBuby1jbG9zZS1xdW90ZSBdKyB8IGluaGVyaXQKIC8vIGluIENTUyAyLjEgdGhpcyBnb3Qgc29t
ZXdoYXQgcmVkdWNlZDoKIC8vIFsgPHN0cmluZz4gfCBhdHRyKFgpIHwgb3Blbi1xdW90ZSB8IGNs
b3NlLXF1b3RlIHwgbm8tb3Blbi1xdW90ZSB8IG5vLWNsb3NlLXF1b3RlIF0rIHwgaW5oZXJpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGQxYjIwNjEuLjE1ZTEyYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmgKQEAgLTc4LDYgKzc4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBi
b29sIHBhcnNlU2hvcnRoYW5kKGludCBwcm9wSWQsIGNvbnN0IGludCogcHJvcGVydGllcywgaW50
IG51bVByb3BlcnRpZXMsIGJvb2wgaW1wb3J0YW50KTsKICAgICAgICAgYm9vbCBwYXJzZTRWYWx1
ZXMoaW50IHByb3BJZCwgY29uc3QgaW50KiBwcm9wZXJ0aWVzLCBib29sIGltcG9ydGFudCk7CiAg
ICAgICAgIGJvb2wgcGFyc2VDb250ZW50KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKKyAg
ICAgICAgYm9vbCBwYXJzZVF1b3RlcyhpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CiAKICAg
ICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBdHRyKENTU1BhcnNlclZhbHVlTGlzdCog
YXJncyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCA0OGE2
ZmE4Li5mN2JiOGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBA
IC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFpci5o
IgogI2luY2x1ZGUgIlBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAi
UXVvdGVzRGF0YS5oIgogI2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxi
YXIuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXJUaGVtZS5oIgpAQCAtNDY1MSwzNiArNDY1
Miw1OSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NW
YWx1ZSAqdmFsdWUpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
KiBjb250ZW50VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwog
ICAgICAgICAgICAgc3dpdGNoIChjb250ZW50VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSkgewotICAg
ICAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkc6Ci0gICAgICAg
ICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY29udGVudFZhbHVlLT5nZXRTdHJpbmdW
YWx1ZSgpLmltcGwoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19TVFJJTkc6CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChjb250
ZW50VmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkuaW1wbCgpLCBkaWRTZXQpOworICAgICAgICAgICAg
ICAgIGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQVRUUjogeworICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBDYW4gYSBuYW1lc3BhY2UgYmUgc3BlY2lmaWVkIGZvciBhbiBhdHRyKGZvbyk/CisgICAg
ICAgICAgICAgICAgaWYgKG1fc3R5bGUtPnN0eWxlVHlwZSgpID09IE5PUFNFVURPKQorICAgICAg
ICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRVbmlxdWUoKTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIG1fcGFyZW50U3R5bGUtPnNldFVuaXF1ZSgpOworICAgICAg
ICAgICAgICAgIFF1YWxpZmllZE5hbWUgYXR0cihudWxsQXRvbSwgY29udGVudFZhbHVlLT5nZXRT
dHJpbmdWYWx1ZSgpLmltcGwoKSwgbnVsbEF0b20pOworICAgICAgICAgICAgICAgIG1fc3R5bGUt
PnNldENvbnRlbnQobV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUoYXR0cikuaW1wbCgpLCBkaWRTZXQp
OworICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAgICAgLy8gcmVn
aXN0ZXIgdGhlIGZhY3QgdGhhdCB0aGUgYXR0cmlidXRlIHZhbHVlIGFmZmVjdHMgdGhlIHN0eWxl
CisgICAgICAgICAgICAgICAgbV9zZWxlY3RvckF0dHJzLmFkZChhdHRyLmxvY2FsTmFtZSgpLmlt
cGwoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJOiB7CisgICAgICAgICAgICAgICAgaWYg
KCFjb250ZW50VmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNhY2hlZE9yUGVuZGluZ0Zy
b21WYWx1ZShDU1NQcm9wZXJ0eUNvbnRlbnQsIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihj
b250ZW50VmFsdWUpKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0NPVU5URVI6IHsKKyAgICAgICAgICAgICAgICBDb3VudGVy
KiBjb3VudGVyVmFsdWUgPSBjb250ZW50VmFsdWUtPmdldENvdW50ZXJWYWx1ZSgpOworICAgICAg
ICAgICAgICAgIE93blB0cjxDb3VudGVyQ29udGVudD4gY291bnRlciA9IGFkb3B0UHRyKG5ldyBD
b3VudGVyQ29udGVudChjb3VudGVyVmFsdWUtPmlkZW50aWZpZXIoKSwKKyAgICAgICAgICAgICAg
ICAgICAgKEVMaXN0U3R5bGVUeXBlKWNvdW50ZXJWYWx1ZS0+bGlzdFN0eWxlTnVtYmVyKCksIGNv
dW50ZXJWYWx1ZS0+c2VwYXJhdG9yKCkpKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRD
b250ZW50KGNvdW50ZXIucmVsZWFzZSgpLCBkaWRTZXQpOworICAgICAgICAgICAgICAgIGRpZFNl
dCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQ6CisgICAgICAgICAgICAgICAg
c3dpdGNoIChjb250ZW50VmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNl
IENTU1ZhbHVlT3BlblF1b3RlOgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250
ZW50KE9QRU5fUVVPVEUsIGRpZFNldCk7CiAgICAgICAgICAgICAgICAgICAgIGRpZFNldCA9IHRy
dWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19BVFRSOiB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBDYW4gYSBuYW1lc3BhY2UgYmUgc3BlY2lmaWVkIGZvciBhbiBhdHRyKGZvbyk/Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChtX3N0eWxlLT5zdHlsZVR5cGUoKSA9PSBOT1BTRVVETykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFVuaXF1ZSgpOwotICAgICAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3BhcmVudFN0eWxlLT5zZXRVbmlx
dWUoKTsKLSAgICAgICAgICAgICAgICAgICAgUXVhbGlmaWVkTmFtZSBhdHRyKG51bGxBdG9tLCBj
b250ZW50VmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkuaW1wbCgpLCBudWxsQXRvbSk7Ci0gICAgICAg
ICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQobV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUo
YXR0cikuaW1wbCgpLCBkaWRTZXQpOworICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVDbG9z
ZVF1b3RlOgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KENMT1NFX1FV
T1RFLCBkaWRTZXQpOwogICAgICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwotICAgICAg
ICAgICAgICAgICAgICAvLyByZWdpc3RlciB0aGUgZmFjdCB0aGF0IHRoZSBhdHRyaWJ1dGUgdmFs
dWUgYWZmZWN0cyB0aGUgc3R5bGUKLSAgICAgICAgICAgICAgICAgICAgbV9zZWxlY3RvckF0dHJz
LmFkZChhdHRyLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfVVJJOiB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghY29udGVudFZhbHVlLT5p
c0ltYWdlVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNhY2hlZE9yUGVuZGluZ0Zyb21WYWx1ZShD
U1NQcm9wZXJ0eUNvbnRlbnQsIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihjb250ZW50VmFs
dWUpKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTm9PcGVuUXVvdGU6
CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoTk9fT1BFTl9RVU9URSwg
ZGlkU2V0KTsKICAgICAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNhc2Ug
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DT1VOVEVSOiB7Ci0gICAgICAgICAgICAgICAgICAgIENv
dW50ZXIqIGNvdW50ZXJWYWx1ZSA9IGNvbnRlbnRWYWx1ZS0+Z2V0Q291bnRlclZhbHVlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIE93blB0cjxDb3VudGVyQ29udGVudD4gY291bnRlciA9IGFkb3B0
UHRyKG5ldyBDb3VudGVyQ29udGVudChjb3VudGVyVmFsdWUtPmlkZW50aWZpZXIoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIChFTGlzdFN0eWxlVHlwZSljb3VudGVyVmFsdWUtPmxpc3RTdHls
ZU51bWJlcigpLCBjb3VudGVyVmFsdWUtPnNlcGFyYXRvcigpKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY291bnRlci5yZWxlYXNlKCksIGRpZFNldCk7CisgICAg
ICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZU5vQ2xvc2VRdW90ZToKKyAgICAgICAgICAgICAgICAg
ICAgbV9zdHlsZS0+c2V0Q29udGVudChOT19DTE9TRV9RVU9URSwgZGlkU2V0KTsKICAgICAgICAg
ICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsIGFu
ZCBub25lIGRvIG5vdCBoYXZlIGFueSBlZmZlY3QuCisgICAgICAgICAgICAgICAgICAgIHt9CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC00Njg4LDYgKzQ3
MTIsMzMgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NT
VmFsdWUgKnZhbHVlKQogICAgICAgICAgICAgbV9zdHlsZS0+Y2xlYXJDb250ZW50KCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3RlczoKKyAgICAgICAg
aWYgKGlzSW5oZXJpdCkgeworICAgICAgICAgICAgaWYgKG1fcGFyZW50U3R5bGUpCisgICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0UXVvdGVzKG1fcGFyZW50U3R5bGUtPnF1b3RlcygpKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodmFsdWUtPmlzVmFsdWVM
aXN0KCkpIHsKKyAgICAgICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0PENT
U1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBsaXN0LT5sZW5n
dGgoKTsKKyAgICAgICAgICAgIFF1b3Rlc0RhdGEqIGRhdGEgPSBRdW90ZXNEYXRhOjpjcmVhdGUo
bGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICghZGF0YSkKKyAgICAgICAgICAgICAgICByZXR1cm47
IC8vIE91dCBvZiBtZW1vcnkKKyAgICAgICAgICAgIFN0cmluZyogcXVvdGVzID0gZGF0YS0+ZGF0
YSgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAg
ICAgICAgICAgICAgIENTU1ZhbHVlKiBpdGVtID0gbGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVj
ayhpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsK
KyAgICAgICAgICAgICAgICBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4oaXRlbSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKHByaW1pdGl2ZVZhbHVlLT5w
cmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpOworICAgICAg
ICAgICAgICAgIHF1b3Rlc1tpXSA9IHByaW1pdGl2ZVZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9zdHlsZS0+c2V0UXVvdGVzKGFkb3B0UmVmKGRh
dGEpKTsKKyAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZSkgeworICAgICAgICAgICAg
QVNTRVJUKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19JREVOVCk7CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFF1b3Rlcyhh
ZG9wdFJlZihRdW90ZXNEYXRhOjpjcmVhdGUoMCkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm47CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Q291bnRlckluY3JlbWVudDoKICAgICAgICAgYXBw
bHlDb3VudGVyTGlzdChzdHlsZSgpLCB2YWx1ZS0+aXNWYWx1ZUxpc3QoKSA/IHN0YXRpY19jYXN0
PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSA6IDAsIGZhbHNlKTsKQEAgLTU5MjksNyArNTk4MCw2IEBA
IHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2
YWx1ZSkKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3RyZXRjaDoKICAgICBjYXNlIENTU1By
b3BlcnR5UGFnZToKLSAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0TGluZVRocm91Z2g6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhyb3Vn
aENvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGluZVRocm91Z2hNb2RlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0
bWwuY3NzCmluZGV4IDBmMTNmY2IuLjk1NGY1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9odG1sLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTExMywx
MyArMTEzLDExIEBAIHEgewogfQogCiBxOmJlZm9yZSB7Ci0gICAgY29udGVudDogJyInCi0gICAg
LyogRklYTUU6IGNvbnRlbnQ6IG9wZW4tcXVvdGU7ICovCisgICAgY29udGVudDogb3Blbi1xdW90
ZTsKIH0KIAogcTphZnRlciB7Ci0gICAgY29udGVudDogJyInCi0gICAgLyogRklYTUU6IGNvbnRl
bnQ6IGNsb3NlLXF1b3RlOyAqLworICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlOwogfQogCiBjZW50
ZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5
b3V0LmNwcAppbmRleCA4MzBmYzYyLi40NDZhMzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBA
IHN0YXRpYyBpbmxpbmUgSW5saW5lQm94KiBjcmVhdGVJbmxpbmVCb3hGb3JSZW5kZXJlcihSZW5k
ZXJPYmplY3QqIG9iaiwgYm9vbCBpc1JvCiBzdGF0aWMgaW5saW5lIHZvaWQgZGlydHlMaW5lQm94
ZXNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqIG8sIGJvb2wgZnVsbExheW91dCkKIHsKICAgICBp
ZiAoby0+aXNUZXh0KCkpIHsKLSAgICAgICAgaWYgKG8tPnByZWZlcnJlZExvZ2ljYWxXaWR0aHNE
aXJ0eSgpICYmIG8tPmlzQ291bnRlcigpKQorICAgICAgICBpZiAoby0+cHJlZmVycmVkTG9naWNh
bFdpZHRoc0RpcnR5KCkgJiYgKG8tPmlzQ291bnRlcigpIHx8IG8tPmlzUXVvdGUoKSkpCiAgICAg
ICAgICAgICB0b1JlbmRlclRleHQobyktPmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKDAp
OyAvLyBGSVhNRTogQ291bnRlcnMgZGVwZW5kIG9uIHRoaXMgaGFjay4gTm8gY2x1ZSB3aHkuIFNo
b3VsZCBiZSBpbnZlc3RpZ2F0ZWQgYW5kIHJlbW92ZWQuCiAgICAgICAgIHRvUmVuZGVyVGV4dChv
KS0+ZGlydHlMaW5lQm94ZXMoZnVsbExheW91dCk7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNDNlNmJlYS4uYTVmMmM0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMjUyLDYgKzI1Miw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNCbG9ja0Zsb3coKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0JveE1vZGVsT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzRGV0YWlscygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBib29sIGlzRGV0YWlsc01hcmtlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxk
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
LmNwcAppbmRleCA2YTc3M2RjLi40ZGY3MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGlzdEl0ZW0uaCIKKyNpbmNsdWRlICJSZW5kZXJRdW90ZS5oIgogI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dEZyYWdtZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgpAQCAtMTMwLDYgKzEzMSw3IEBAIFJlbmRlck9iamVjdCogUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0OjpyZW1vdmVDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVu
ZGVyCiAKICAgICBpZiAob2xkQ2hpbGQtPm1faGFzQ291bnRlck5vZGVNYXApCiAgICAgICAgIFJl
bmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9kZXMob2xkQ2hpbGQpOworICAgIFJlbmRlclF1
b3RlOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJlZShvbGRDaGlsZCk7CiAKICAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgb3duZXItPmRvY3VtZW50
KCktPmF4T2JqZWN0Q2FjaGUoKS0+Y2hpbGRyZW5DaGFuZ2VkKG93bmVyKTsKQEAgLTE3Nyw4ICsx
NzksOCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2RlKFJlbmRl
ck9iamVjdCogb3duZXIsIFJlbmRlck9iamVjdCogbgogICAgICAgICBpZiAoIW5ld0NoaWxkLT5p
c0Zsb2F0aW5nT3JQb3NpdGlvbmVkKCkgJiYgb3duZXItPmNoaWxkcmVuSW5saW5lKCkpCiAgICAg
ICAgICAgICBvd25lci0+ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQobmV3Q2hpbGQpOwogICAg
IH0KLQogICAgIFJlbmRlckNvdW50ZXI6OnJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKG5ld0NoaWxk
KTsKKyAgICBSZW5kZXJRdW90ZTo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQobmV3Q2hpbGQpOwog
ICAgIG5ld0NoaWxkLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsgLy8gR29l
cyB1cCB0aGUgY29udGFpbmluZyBibG9jayBoaWVyYXJjaHkuCiAgICAgaWYgKCFvd25lci0+bm9y
bWFsQ2hpbGROZWVkc0xheW91dCgpKQogICAgICAgICBvd25lci0+c2V0Q2hpbGROZWVkc0xheW91
dCh0cnVlKTsgLy8gV2UgbWF5IHN1cHBseSB0aGUgc3RhdGljIHBvc2l0aW9uIGZvciBhbiBhYnNv
bHV0ZSBwb3NpdGlvbmVkIGNoaWxkLgpAQCAtMjM5LDYgKzI0MSw3IEBAIHZvaWQgUmVuZGVyT2Jq
ZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVuZGVy
T2JqZWN0KiBjCiAgICAgfQogCiAgICAgUmVuZGVyQ291bnRlcjo6cmVuZGVyZXJTdWJ0cmVlQXR0
YWNoZWQoY2hpbGQpOworICAgIFJlbmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZChj
aGlsZCk7CiAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwog
ICAgIGlmICghb3duZXItPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSkKICAgICAgICAgb3duZXIt
PnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSk7IC8vIFdlIG1heSBzdXBwbHkgdGhlIHN0YXRpYyBw
b3NpdGlvbiBmb3IgYW4gYWJzb2x1dGUgcG9zaXRpb25lZCBjaGlsZC4KQEAgLTQ2MCwxMCArNDYz
LDE0IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRlckNvbnRl
bnQoUmVuZGVyT2JqZWN0KiBvd25lciwgUHNldWRvCiAgICAgICAgICAgICAgICAgcmVuZGVyZXIg
PSBpbWFnZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgotICAgICAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3
IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihvd25lci0+ZG9jdW1lbnQoKSwg
KmNvbnRlbnQtPmNvdW50ZXIoKSk7Ci0gICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxl
KHBzZXVkb0VsZW1lbnRTdHlsZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ09OVEVOVF9DT1VOVEVSOgorICAgICAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5y
ZW5kZXJBcmVuYSgpKSBSZW5kZXJDb3VudGVyKG93bmVyLT5kb2N1bWVudCgpLCAqY29udGVudC0+
Y291bnRlcigpKTsKKyAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50
U3R5bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ09OVEVOVF9RVU9URToK
KyAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVy
UXVvdGUob3duZXItPmRvY3VtZW50KCksIGNvbnRlbnQtPnF1b3RlKCkpOworICAgICAgICAgICAg
cmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW5kZXJlcikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJRdW90ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZjMxMjU3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJRdW90ZS5jcHAKQEAgLTAsMCArMSwzMzAgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAy
MDExIE5va2lhIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUmVuZGVyUXVvdGUuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAi
UXVvdGVzRGF0YS5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSA8YWxnb3Jp
dGhtPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCisjZGVmaW5lIFVOS05P
V05fREVQVEggLTEKKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RhdGljIGlubGluZSB2b2lkIGFk
anVzdERlcHRoKGludCAmZGVwdGgsIFF1b3RlVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIGNhc2UgT1BFTl9RVU9URToKKyAgICBjYXNlIE5PX09QRU5fUVVPVEU6CisgICAg
ICAgICsrZGVwdGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0xPU0VfUVVPVEU6CisgICAg
Y2FzZSBOT19DTE9TRV9RVU9URToKKyAgICAgICAgaWYgKGRlcHRoKQorICAgICAgICAgICAgLS1k
ZXB0aDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorfQorCitSZW5kZXJRdW90ZTo6UmVuZGVyUXVvdGUoRG9jdW1lbnQq
IG5vZGUsIFF1b3RlVHlwZSBxdW90ZSkKKyAgICA6IFJlbmRlclRleHQobm9kZSwgU3RyaW5nSW1w
bDo6ZW1wdHkoKSkKKyAgICAsIG1fdHlwZShxdW90ZSkKKyAgICAsIG1fZGVwdGgoVU5LTk9XTl9E
RVBUSCkKKyAgICAsIG1fbmV4dCgwKQorICAgICwgbV9wcmV2aW91cygwKQoreworfQorCitSZW5k
ZXJRdW90ZTo6flJlbmRlclF1b3RlKCkKK3sKK30KKworY29uc3QgY2hhciogUmVuZGVyUXVvdGU6
OnJlbmRlck5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUmVuZGVyUXVvdGUiOworfQorCisv
LyBUaGlzIGZ1bmN0aW9uIHBsYWNlcyBhIGxpc3Qgb2YgcXVvdGUgcmVuZGVyZXJzIHN0YXJ0aW5n
IGF0ICJ0aGlzIiBpbiB0aGUgbGlzdCBvZiBxdW90ZSByZW5kZXJlcnMgYWxyZWFkeQorLy8gaW4g
dGhlIGRvY3VtZW50J3MgcmVuZGVyZXIgdHJlZS4KKy8vIFRoZSBhc3N1bXB0aW9ucyBhcmUgbWFk
ZSAoZm9yIHBlcmZvcm1hbmNlKToKKy8vIDEuIFRoZSBsaXN0IG9mIHF1b3RlcyBhbHJlYWR5IGlu
IHRoZSByZW5kZXJlcnMgdHJlZSBvZiB0aGUgZG9jdW1lbnQgaXMgYWxyZWFkeSBpbiBhIGNvbnNp
c3RlbnQgc3RhdGUKKy8vIChBbGwgcXVvdGUgcmVuZGVyZXJzIGFyZSBsaW5rZWQgYW5kIGhhdmUg
dGhlIGNvcnJlY3QgZGVwdGggc2V0KQorLy8gMi4gVGhlIHF1b3RlIHJlbmRlcmVycyBvZiB0aGUg
aW5zZXJ0ZWQgbGlzdCBhcmUgaW4gYSB0cmVlIG9mIHJlbmRlcmVycyBvZiB0aGVpciBvd24gd2hp
Y2ggaGFzIGJlZW4ganVzdAorLy8gaW5zZXJ0ZWQgaW4gdGhlIG1haW4gcmVuZGVyZXIgdHJlZSB3
aXRoIGl0cyByb290IGFzIGNoaWxkIG9mIHNvbWUgcmVuZGVyZXIuCisvLyAzLiBUaGUgcXVvdGUg
cmVuZGVyZXJzIGluIHRoZSBpbnNlcnRlZCBsaXN0IGhhdmUgZGVwdGhzIGNvbnNpc3RlbnQgd2l0
aCB0aGVpciBwb3NpdGlvbiBpbiB0aGUgbGlzdCByZWxhdGl2ZQorLy8gdG8gInRoaXMiLCB0aHVz
IGlmICJ0aGlzIiBkb2VzIG5vdCBuZWVkIHRvIGNoYW5nZSBpdHMgZGVwdGggdXBvbiBpbnNlcnRp
b24sIHRoZSBvdGhlciByZW5kZXJlcnMgaW4gdGhlIGxpc3QgZG9uJ3QKKy8vIG5lZWQgdG8gZWl0
aGVyLgordm9pZCBSZW5kZXJRdW90ZTo6cGxhY2VRdW90ZSgpCit7CisgICAgUmVuZGVyUXVvdGUq
IGhlYWQgPSB0aGlzOworICAgIEFTU0VSVCghaGVhZC0+bV9wcmV2aW91cyk7CisgICAgUmVuZGVy
UXVvdGUqIHRhaWwgPSAwOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBwcmVkZWNlc3NvciA9IGhl
YWQtPnByZXZpb3VzSW5QcmVPcmRlcigpOyBwcmVkZWNlc3NvcjsgcHJlZGVjZXNzb3IgPSBwcmVk
ZWNlc3Nvci0+cHJldmlvdXNJblByZU9yZGVyKCkpIHsKKyAgICAgICAgaWYgKCFwcmVkZWNlc3Nv
ci0+aXNRdW90ZSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGhlYWQtPm1fcHJl
dmlvdXMgPSB0b1JlbmRlclF1b3RlKHByZWRlY2Vzc29yKTsKKyAgICAgICAgaWYgKGhlYWQtPm1f
cHJldmlvdXMtPm1fbmV4dCkgeworICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBzcGxpY2UgdGhl
IGxpc3Qgb2YgcXVvdGVzIGhlYWRlZCBieSBoZWFkIGludG8gdGhlIGRvY3VtZW50J3MgbGlzdCBv
ZiBxdW90ZXMuCisgICAgICAgICAgICB0YWlsID0gaGVhZDsKKyAgICAgICAgICAgIHdoaWxlICh0
YWlsLT5tX25leHQpCisgICAgICAgICAgICAgICAgIHRhaWwgPSB0YWlsLT5tX25leHQ7CisgICAg
ICAgICAgICB0YWlsLT5tX25leHQgPSBoZWFkLT5tX3ByZXZpb3VzLT5tX25leHQ7CisgICAgICAg
ICAgICBBU1NFUlQodGFpbC0+bV9uZXh0LT5tX3ByZXZpb3VzID09IGhlYWQtPm1fcHJldmlvdXMp
OworICAgICAgICAgICAgdGFpbC0+bV9uZXh0LT5tX3ByZXZpb3VzID0gIHRhaWw7CisgICAgICAg
ICAgICB0YWlsID0gdGFpbC0+bV9uZXh0OyAvLyBUaGlzIG1hcmtzIHRoZSBzcGxpY2luZyBwb2lu
dCBoZXJlIHRoZXJlIG1heSBiZSBhIGRlcHRoIGRpc2NvbnRpbnVpdHkKKyAgICAgICAgfQorICAg
ICAgICBoZWFkLT5tX3ByZXZpb3VzLT5tX25leHQgPSBoZWFkOworICAgICAgICBBU1NFUlQoaGVh
ZC0+bV9wcmV2aW91cy0+bV9kZXB0aCAhPSBVTktOT1dOX0RFUFRIKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGludCBuZXdEZXB0aDsKKyAgICBpZiAoIWhlYWQtPm1fcHJldmlvdXMpIHsK
KyAgICAgICAgbmV3RGVwdGggPSAwOworICAgICAgICBnb3RvIHNraXBOZXdEZXB0aENhbGM7Cisg
ICAgfQorICAgIG5ld0RlcHRoID0gaGVhZC0+bV9wcmV2aW91cy0+bV9kZXB0aDsKKyAgICBkbyB7
CisgICAgICAgIGFkanVzdERlcHRoKG5ld0RlcHRoLCBoZWFkLT5tX3ByZXZpb3VzLT5tX3R5cGUp
Oworc2tpcE5ld0RlcHRoQ2FsYzoKKyAgICAgICAgaWYgKGhlYWQtPm1fZGVwdGggPT0gbmV3RGVw
dGgpIHsgLy8gQWxsIHJlbWFpbmluZyBkZXB0aCBzaG91bGQgYmUgY29ycmVjdCBleGNlcHQgaWYg
c3BsaWNpbmcgd2FzIGRvbmUuCisgICAgICAgICAgICBpZiAoIXRhaWwpIC8vIFdlJ3ZlIGRvbmUg
dGhlIHBvc3Qgc3BsaWNpbmcgc2VjdGlvbiBhbHJlYWR5IG9yIHRoZXJlIHdhcyBubyBzcGxpY2lu
Zy4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGhlYWQgPSB0YWlsOyAvLyBD
b250aW51ZSBhZnRlciB0aGUgc3BsaWNpbmcgcG9pbnQKKyAgICAgICAgICAgIHRhaWwgPSAwOyAv
LyBNYXJrIHRoZSBwb3NzaWJsZSBzcGxpY2luZyBwb2ludCBkaXNjb250aW51aXR5IGZpeGVkLgor
ICAgICAgICAgICAgbmV3RGVwdGggPSBoZWFkLT5tX3ByZXZpb3VzLT5tX2RlcHRoOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaGVhZC0+bV9kZXB0aCA9IG5ld0Rl
cHRoOworICAgICAgICAvLyBGSVhNRTogSWYgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHF1
b3RhdGlvbiBjaGFyYWN0ZXJzIGRvZXMgbm90IGNoYW5nZSB3ZSBtYXkgb25seSBuZWVkIHRvCisg
ICAgICAgIC8vIEludmFsaWRhdGUgdGhlIHJlbmRlcmVyJ3MgYXJlYSBub3QgYSByZWxheW91dC4K
KyAgICAgICAgaGVhZC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CisgICAg
ICAgIGhlYWQgPSBoZWFkLT5tX25leHQ7CisgICAgICAgIGlmIChoZWFkID09IHRhaWwpIC8vIFdl
IGFyZSBhdCB0aGUgc3BsaWNpbmcgcG9pbnQKKyAgICAgICAgICAgIHRhaWwgPSAwOyAvLyBNYXJr
IHRoZSBwb3NzaWJsZSBkZXB0aCBkaXNjb250aW51aXR5IGZpeGVkLgorICAgIH0gd2hpbGUgKGhl
YWQpOworfQorCisjZGVmaW5lIEFSUkFZX1NJWkUoQ2FycmF5KSAoc2l6ZW9mKENhcnJheSkgLyBz
aXplb2YoKkNhcnJheSkpCisjZGVmaW5lIExBTkdVQUdFX0RBVEEobmFtZSwgbGFuZ3VhZ2VTb3Vy
Y2VBcnJheSkgeyBuYW1lLCBsYW5ndWFnZVNvdXJjZUFycmF5LCBBUlJBWV9TSVpFKGxhbmd1YWdl
U291cmNlQXJyYXkpIH0KKyNkZWZpbmUgVSh4KSAoKGNvbnN0IFVDaGFyKilMIyN4KQorCitzdGF0
aWMgY29uc3QgVUNoYXIqIHNpbXBsZVF1b3Rlc1tdID0ge1UoIlwiIiksIFUoIlwiIiksIFUoIici
KSwgVSgiJyIpfTsKKworc3RhdGljIGNvbnN0IFVDaGFyKiBlbmdsaXNoUXVvdGVzW10gPSB7VSgi
XHgyMDFDIiksIFUoIlx4MjAxRCIpLCBVKCJceDIwMTgiKSwgVSgiXHgyMDE5Iil9Oworc3RhdGlj
IGNvbnN0IFVDaGFyKiBub3J3ZWdpYW5RdW90ZXNbXSA9IHsgVSgiXHgwMEFCIiksIFUoIlx4MDBC
QiIpLCBVKCJceDIwMzkiKSwgVSgiXHgyMDNBIikgfTsKK3N0YXRpYyBjb25zdCBVQ2hhciogcm9t
YW5pYW5RdW90ZXNbXSA9IHsgVSgiXHgyMDFFIiksIFUoIlx4MjAxRCIpfTsKK3N0YXRpYyBjb25z
dCBVQ2hhciogcnVzc2lhblF1b3Rlc1tdID0geyBVKCJceDAwQUIiKSwgVSgiXHgwMEJCIiksIFUo
Ilx4MjAxRSIpLCBVKCJceDIwMUMiKSB9OworI3VuZGVmIFUKKworc3RydWN0IExhbmd1YWdlRGF0
YSB7CisgICAgY29uc3QgY2hhciAqbmFtZTsKKyAgICBjb25zdCBVQ2hhciogY29uc3QqIGNvbnN0
IGFycmF5OworICAgIGNvbnN0IGludCBhcnJheVNpemU7CisgICAgYm9vbCBvcGVyYXRvcjwoY29u
c3QgTGFuZ3VhZ2VEYXRhJiBjb21wYXJlVG8pIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
c3RyY21wKG5hbWUsIGNvbXBhcmVUby5uYW1lKTsKKyAgICB9Cit9OworCisvLyBEYXRhIG1hc3Qg
YmUgYWxwaGFiZXRpY2FsbHkgc29ydGVkIGFuZCBpbiBhbGwgbG93ZXIgY2FzZSBmb3IgZmFzdCBj
b21wYXJpc29uCitMYW5ndWFnZURhdGEgbGFuZ3VhZ2VEYXRhW10gPSB7CisgICAgTEFOR1VBR0Vf
REFUQSgiZW4iLCBlbmdsaXNoUXVvdGVzKSwKKyAgICBMQU5HVUFHRV9EQVRBKCJubyIsIG5vcndl
Z2lhblF1b3RlcyksCisgICAgTEFOR1VBR0VfREFUQSgicm8iLCByb21hbmlhblF1b3RlcyksCisg
ICAgTEFOR1VBR0VfREFUQSgicnUiLCBydXNzaWFuUXVvdGVzKQorfTsKKyN1bmRlZiBMQU5HVUFH
RV9EQVRBCitjb25zdCBMYW5ndWFnZURhdGEqIGNvbnN0IGxhbmd1YWdlRGF0YUVuZCA9IGxhbmd1
YWdlRGF0YSArIEFSUkFZX1NJWkUobGFuZ3VhZ2VEYXRhKTsKKworI2RlZmluZSBkZWZhdWx0TGFu
Z3VhZ2VRdW90ZXNTb3VyY2Ugc2ltcGxlUXVvdGVzCisjZGVmaW5lIGRlZmF1bHRMYW5ndWFnZVF1
b3Rlc0NvdW50IEFSUkFZX1NJWkUoZGVmYXVsdExhbmd1YWdlUXVvdGVzU291cmNlKQorCitzdGF0
aWMgUXVvdGVzRGF0YSogZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUgPSAwOworc3RhdGljIGNv
bnN0IFF1b3Rlc0RhdGEqIGRlZmF1bHRMYW5ndWFnZVF1b3RlcygpCit7CisgICAgaWYgKCFkZWZh
dWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZSkgeworICAgICAgICBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNW
YWx1ZSA9IFF1b3Rlc0RhdGE6OmNyZWF0ZShkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNDb3VudCk7Cisg
ICAgICAgIGlmICghZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUpCisgICAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgU3RyaW5nKiBkYXRhID0gZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUt
PmRhdGEoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWZhdWx0TGFuZ3VhZ2VRdW90
ZXNDb3VudDsgKytpKQorICAgICAgICAgICAgZGF0YVtpXSA9IGRlZmF1bHRMYW5ndWFnZVF1b3Rl
c1NvdXJjZVtpXTsKKyAgICB9CisgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1ZhbHVl
OworfQorI3VuZGVmIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1NvdXJjZQorI3VuZGVmIGRlZmF1bHRM
YW5ndWFnZVF1b3Rlc0NvdW50CisKK3R5cGVkZWYgSGFzaE1hcDxSZWZQdHI8QXRvbWljU3RyaW5n
SW1wbD4sIFF1b3Rlc0RhdGEqID4gUXVvdGVzTWFwOworCitzdGF0aWMgUXVvdGVzTWFwJiBxdW90
ZXNNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVvdGVzTWFwLCBzdGF0aWNRdW90
ZXNNYXAsICgpKTsKKyAgICByZXR1cm4gc3RhdGljUXVvdGVzTWFwOworfQorCitzdGF0aWMgY29u
c3QgUXVvdGVzRGF0YSogcXVvdGVzRm9yTGFuZ3VhZ2UoQXRvbWljU3RyaW5nSW1wbCogbGFuZ3Vh
Z2UpCit7CisgICAgUXVvdGVzRGF0YSogcmV0dXJuVmFsdWU7CisgICAgQXRvbWljU3RyaW5nIGxv
d2VyKGxhbmd1YWdlLT5sb3dlcigpKTsKKyAgICByZXR1cm5WYWx1ZSA9IHF1b3Rlc01hcCgpLmdl
dChsb3dlci5pbXBsKCkpOworICAgIGlmIChyZXR1cm5WYWx1ZSkKKyAgICAgICAgcmV0dXJuIHJl
dHVyblZhbHVlOworICAgIENTdHJpbmcgcyhzdGF0aWNfY2FzdDxjb25zdCBTdHJpbmcmPihsb3dl
cikuYXNjaWkoKSk7CisgICAgTGFuZ3VhZ2VEYXRhIHJlcXVlc3QgPSB7IHMuYnVmZmVyKCktPmRh
dGEoKSwgMCwgMCB9OworICAgIGNvbnN0IExhbmd1YWdlRGF0YSogbG93ZXJCb3VuZCA9IHN0ZDo6
bG93ZXJfYm91bmQ8Y29uc3QgTGFuZ3VhZ2VEYXRhKiwgY29uc3QgTGFuZ3VhZ2VEYXRhPihsYW5n
dWFnZURhdGEsIGxhbmd1YWdlRGF0YUVuZCwgcmVxdWVzdCk7CisgICAgaWYgKGxvd2VyQm91bmQg
PT0gbGFuZ3VhZ2VEYXRhRW5kKQorICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVz
KCk7CisgICAgaWYgKHN0cm5jbXAobG93ZXJCb3VuZC0+bmFtZSwgcmVxdWVzdC5uYW1lLCBzdHJs
ZW4obG93ZXJCb3VuZC0+bmFtZSkpKQorICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVv
dGVzKCk7CisgICAgcmV0dXJuVmFsdWUgPSBRdW90ZXNEYXRhOjpjcmVhdGUobG93ZXJCb3VuZC0+
YXJyYXlTaXplKTsKKyAgICBpZiAoIXJldHVyblZhbHVlKQorICAgICAgICByZXR1cm4gZGVmYXVs
dExhbmd1YWdlUXVvdGVzKCk7CisgICAgU3RyaW5nKiBkYXRhID0gcmV0dXJuVmFsdWUtPmRhdGEo
KTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvd2VyQm91bmQtPmFycmF5U2l6ZTsgKytpKQor
ICAgICAgICBkYXRhW2ldID0gbG93ZXJCb3VuZC0+YXJyYXlbaV07CisgICAgcXVvdGVzTWFwKCku
c2V0KGxvd2VyLmltcGwoKSwgcmV0dXJuVmFsdWUpOworICAgIHJldHVybiByZXR1cm5WYWx1ZTsK
K30KKyN1bmRlZiBBUlJBWV9TSVpFCisKK3N0YXRpYyBjb25zdCBRdW90ZXNEYXRhKiBkZWZhdWx0
UXVvdGVzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIHN0YXRpYyBTdHJpbmcg
bGFuZ1N0cmluZyA9ICJsYW5nIjsKKyAgICBOb2RlKiBub2RlID0gIG9iamVjdC0+Z2VuZXJhdGlu
Z05vZGUoKTsKKyAgICBFbGVtZW50KiBlbGVtZW50OworICAgIGlmICghbm9kZSkgeworICAgICAg
ICBlbGVtZW50ID0gb2JqZWN0LT5kb2N1bWVudCgpLT5ib2R5KCk7CisgICAgICAgIGlmICghZWxl
bWVudCkKKyAgICAgICAgICAgIGVsZW1lbnQgPSBvYmplY3QtPmRvY3VtZW50KCktPmRvY3VtZW50
RWxlbWVudCgpOworICAgIH0gZWxzZSBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkgeworICAg
ICAgICBlbGVtZW50ID0gbm9kZS0+cGFyZW50RWxlbWVudCgpOworICAgICAgICBpZiAoIWVsZW1l
bnQpCisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAgfSBl
bHNlCisgICAgICBlbGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOworICAgIGNvbnN0IEF0b21pY1N0
cmluZyogbGFuZ3VhZ2U7CisgICAgd2hpbGUgKChsYW5ndWFnZSA9ICZlbGVtZW50LT5nZXRBdHRy
aWJ1dGUobGFuZ1N0cmluZykpICYmIGxhbmd1YWdlLT5pc051bGwoKSkgeworICAgICAgICBlbGVt
ZW50ID0gZWxlbWVudC0+cGFyZW50RWxlbWVudCgpOworICAgICAgICBpZiAoIWVsZW1lbnQpCisg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAgfQorICAgIHJl
dHVybiBxdW90ZXNGb3JMYW5ndWFnZShsYW5ndWFnZS0+aW1wbCgpKTsKK30KKworUGFzc1JlZlB0
cjxTdHJpbmdJbXBsPiBSZW5kZXJRdW90ZTo6b3JpZ2luYWxUZXh0KCkgY29uc3QKK3sKKyAgICBp
ZiAoIXBhcmVudCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBBU1NFUlQobV9kZXB0aCAhPSBV
TktOT1dOX0RFUFRIKTsKKyAgICAgY29uc3QgUXVvdGVzRGF0YSogcXVvdGVzID0gc3R5bGUoKS0+
cXVvdGVzKCk7CisgICAgIGlmICghcXVvdGVzKQorICAgICAgICAgcXVvdGVzID0gZGVmYXVsdFF1
b3Rlcyh0aGlzKTsKKyAgICBpZiAoIXF1b3Rlcy0+bGVuZ3RoKQorICAgICAgICByZXR1cm4gZW1w
dHlBdG9tLmltcGwoKTsKKyAgICBpbnQgaW5kZXggPSBtX2RlcHRoICogMjsKKyAgICBzd2l0Y2gg
KG1fdHlwZSkgeworICAgIGNhc2UgTk9fT1BFTl9RVU9URToKKyAgICBjYXNlIE5PX0NMT1NFX1FV
T1RFOgorICAgICAgICByZXR1cm4gU3RyaW5nKCIiKS5pbXBsKCk7CisgICAgY2FzZSBDTE9TRV9R
VU9URToKKyAgICAgICAgaWYgKGluZGV4KQorICAgICAgICAgICAgLS1pbmRleDsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgKytpbmRleDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPUEVO
X1FVT1RFOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbS5pbXBsKCk7CisgICAgfQorICAg
IGlmIChpbmRleCA+PSBxdW90ZXMtPmxlbmd0aCkKKyAgICAgICAgaW5kZXggPSAocXVvdGVzLT5s
ZW5ndGgtMikgfCAoaW5kZXggJiAxKTsKKyAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICByZXR1
cm4gZW1wdHlBdG9tLmltcGwoKTsKKyAgICByZXR1cm4gcXVvdGVzLT5kYXRhKClbaW5kZXhdLmlt
cGwoKTsKK30KKwordm9pZCBSZW5kZXJRdW90ZTo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0
aHMoaW50IGxlYWQpCit7CisgICAgc2V0VGV4dEludGVybmFsKG9yaWdpbmFsVGV4dCgpKTsKKyAg
ICBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhsZWFkKTsKK30KKwor
dm9pZCBSZW5kZXJRdW90ZTo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikKK3sKKyAgICBpZiAocmVuZGVyZXItPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gcmVu
ZGVyZXI7IGRlc2NlbmRhbnQ7IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0SW5QcmVPcmRl
cihyZW5kZXJlcikpCisgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1F1b3RlKCkpIHsKKyAgICAg
ICAgICAgIHRvUmVuZGVyUXVvdGUoZGVzY2VuZGFudCktPnBsYWNlUXVvdGUoKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OnJlbmRlcmVyUmVt
b3ZlZEZyb21UcmVlKFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QpCit7CisgICAgaWYgKHN1YnRy
ZWVSb290LT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBm
b3IgKFJlbmRlck9iamVjdCogZGVzY2VuZGFudCA9IHN1YnRyZWVSb290OyBkZXNjZW5kYW50OyBk
ZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3VidHJlZVJvb3QpKQorICAg
ICAgICBpZiAoZGVzY2VuZGFudC0+aXNRdW90ZSgpKSB7CisgICAgICAgICAgICBSZW5kZXJRdW90
ZSogcmVtb3ZlZFF1b3RlID0gdG9SZW5kZXJRdW90ZShkZXNjZW5kYW50KTsKKyAgICAgICAgICAg
IFJlbmRlclF1b3RlKiBsYXN0UXVvdGVCZWZvcmUgPSByZW1vdmVkUXVvdGUtPm1fcHJldmlvdXM7
CisgICAgICAgICAgICByZW1vdmVkUXVvdGUtPm1fcHJldmlvdXMgPSAwOworICAgICAgICAgICAg
aW50IGRlcHRoID0gcmVtb3ZlZFF1b3RlLT5tX2RlcHRoOworICAgICAgICAgICAgZm9yIChkZXNj
ZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3VidHJlZVJvb3QpOyBkZXNjZW5k
YW50OyBkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3VidHJlZVJvb3Qp
KQorICAgICAgICAgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1F1b3RlKCkpCisgICAgICAgICAg
ICAgICAgICAgIHJlbW92ZWRRdW90ZSA9IHRvUmVuZGVyUXVvdGUoZGVzY2VuZGFudCk7CisgICAg
ICAgICAgICBSZW5kZXJRdW90ZSogcXVvdGVBZnRlciA9IHJlbW92ZWRRdW90ZS0+bV9uZXh0Owor
ICAgICAgICAgICAgcmVtb3ZlZFF1b3RlLT5tX25leHQgPSAwOworICAgICAgICAgICAgaWYgKGxh
c3RRdW90ZUJlZm9yZSkKKyAgICAgICAgICAgICAgICBsYXN0UXVvdGVCZWZvcmUtPm1fbmV4dCA9
IHF1b3RlQWZ0ZXI7CisgICAgICAgICAgICBpZiAocXVvdGVBZnRlcikgeworICAgICAgICAgICAg
ICAgIHF1b3RlQWZ0ZXItPm1fcHJldmlvdXMgPSBsYXN0UXVvdGVCZWZvcmU7CisgICAgICAgICAg
ICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBpZiAoZGVwdGggPT0gcXVvdGVBZnRlci0+
bV9kZXB0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICBxdW90ZUFmdGVyLT5tX2RlcHRoID0gZGVwdGg7CisgICAgICAgICAgICAgICAgICAgIHF1
b3RlQWZ0ZXItPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOworICAgICAgICAg
ICAgICAgICAgICBhZGp1c3REZXB0aChkZXB0aCwgcXVvdGVBZnRlci0+bV90eXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgcXVvdGVBZnRlciA9IHF1b3RlQWZ0ZXItPm1fbmV4dDsKKyAgICAgICAg
ICAgICAgICB9IHdoaWxlIChxdW90ZUFmdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OnN0eWxlRGlkQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7Cisg
ICAgY29uc3QgUXVvdGVzRGF0YSogbmV3UXVvdGVzID0gc3R5bGUoKS0+cXVvdGVzKCk7CisgICAg
Y29uc3QgUXVvdGVzRGF0YSogb2xkUXVvdGVzID0gb2xkU3R5bGUgPyBvbGRTdHlsZS0+cXVvdGVz
KCkgOiAwOworICAgIGlmICghKChuZXdRdW90ZXMgJiYgb2xkUXVvdGVzICYmICgqbmV3UXVvdGVz
ID09ICpvbGRRdW90ZXMpKSB8fCAoIW5ld1F1b3RlcyAmJiAhb2xkUXVvdGVzKSkpCisgICAgICAg
IHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOworICAgIFJlbmRlclRleHQ6OnN0
eWxlRGlkQ2hhbmdlKGRpZmYsIG9sZFN0eWxlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jMjkzOGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBOb2tpYSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVm
IFJlbmRlclF1b3RlX2gKKyNkZWZpbmUgUmVuZGVyUXVvdGVfaAorCisjaW5jbHVkZSAiUmVuZGVy
U3R5bGVDb25zdGFudHMuaCIKKyNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyUXVvdGUgOiBwdWJsaWMgUmVuZGVyVGV4dCB7CitwdWJs
aWM6CisgICAgUmVuZGVyUXVvdGUoRG9jdW1lbnQqLCBjb25zdCBRdW90ZVR5cGUpOworICAgIHZp
cnR1YWwgflJlbmRlclF1b3RlKCk7CisKKyAgICBzdGF0aWMgdm9pZCByZW5kZXJlclN1YnRyZWVB
dHRhY2hlZChSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCByZW5kZXJlclJlbW92ZWRG
cm9tVHJlZShSZW5kZXJPYmplY3QqKTsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgc3R5
bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
OworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH07CisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCgpIGNvbnN0OworICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhpbnQgbGVhZFdpZHRo
KTsKKyAgICBRdW90ZVR5cGUgbV90eXBlOworICAgIGludCBtX2RlcHRoOworICAgIFJlbmRlclF1
b3RlKiBtX25leHQ7CisgICAgUmVuZGVyUXVvdGUqIG1fcHJldmlvdXM7CisgICAgdm9pZCBwbGFj
ZVF1b3RlKCk7Cit9OworCitpbmxpbmUgUmVuZGVyUXVvdGUqIHRvUmVuZGVyUXVvdGUoUmVuZGVy
T2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1F1b3Rl
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJRdW90ZSo+KG9iamVjdCk7Cit9CisK
Ky8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3Zv
aWQgdG9SZW5kZXJRdW90ZShjb25zdCBSZW5kZXJRdW90ZSopOworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJRdW90ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAppbmRleCA3NjBmMDJkLi4xOTVmYTNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKQEAgLTc5
LDYgKzc5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIgogI2luY2x1
ZGUgIlJlbmRlclBhcnQuY3BwIgogI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmNwcCIKKyNpbmNs
dWRlICJSZW5kZXJRdW90ZS5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyUmVwbGFjZWQuY3BwIgogI2lu
Y2x1ZGUgIlJlbmRlclJlcGxpY2EuY3BwIgogI2luY2x1ZGUgIlJlbmRlclJ1YnkuY3BwIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKaW5kZXggZDE1
MGY3Ny4uYWI1MDRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0NvbnRlbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29u
dGVudERhdGEuY3BwCkBAIC01MSw2ICs1MSw4IEBAIGJvb2wgQ29udGVudERhdGE6OmRhdGFFcXVp
dmFsZW50KGNvbnN0IENvbnRlbnREYXRhJiBvdGhlcikgY29uc3QKICAgICAgICAgcmV0dXJuIFN0
eWxlSW1hZ2U6OmltYWdlc0VxdWl2YWxlbnQoaW1hZ2UoKSwgb3RoZXIuaW1hZ2UoKSk7CiAgICAg
Y2FzZSBDT05URU5UX0NPVU5URVI6CiAgICAgICAgIHJldHVybiAqY291bnRlcigpID09ICpvdGhl
ci5jb3VudGVyKCk7CisgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICByZXR1cm4gcXVv
dGUoKSA9PSBvdGhlci5xdW90ZSgpOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwpAQCAtNzEsNiArNzMsOCBAQCB2b2lkIENvbnRlbnREYXRhOjpkZWxldGVDb250ZW50KCkKICAg
ICBjYXNlIENPTlRFTlRfQ09VTlRFUjoKICAgICAgICAgZGVsZXRlIG1fY29udGVudC5tX2NvdW50
ZXI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ09OVEVOVF9RVU9URToKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogCiAgICAgbV90eXBlID0gQ09OVEVOVF9OT05FOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAppbmRleCAxNWY2OTEyLi5jY2UzNzU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaApAQCAtNTEs
NiArNTEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NvdW50ZXIoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gQ09OVEVOVF9DT1VOVEVSOyB9CiAgICAgYm9vbCBpc0ltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IENPTlRFTlRfT0JKRUNUOyB9CiAgICAgYm9vbCBpc05vbmUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGUgPT0gQ09OVEVOVF9OT05FOyB9CisgICAgYm9vbCBpc1F1b3RlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlID09IENPTlRFTlRfUVVPVEU7IH0KICAgICBib29sIGlzVGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDT05URU5UX1RFWFQ7IH0KIAogICAgIFN0eWxl
Q29udGVudFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpAQCAtOTMsNiArOTQs
MTggQEAgcHVibGljOgogICAgICAgICBtX2NvbnRlbnQubV9jb3VudGVyID0gY291bnRlci5sZWFr
UHRyKCk7CiAgICAgfQogCisgICAgUXVvdGVUeXBlIHF1b3RlKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIEFTU0VSVChpc1F1b3RlKCkpOworICAgICAgICByZXR1cm4gbV9jb250ZW50Lm1fcXVvdGU7
CisgICAgfQorICAgIHZvaWQgc2V0UXVvdGUoUXVvdGVUeXBlIHR5cGUpCisgICAgeworICAgICAg
ICBkZWxldGVDb250ZW50KCk7CisgICAgICAgIG1fdHlwZSA9IENPTlRFTlRfUVVPVEU7CisgICAg
ICAgIG1fY29udGVudC5tX3F1b3RlID0gdHlwZTsKKyAgICB9CisKICAgICBDb250ZW50RGF0YSog
bmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsgfQogICAgIHZvaWQgc2V0TmV4dChQ
YXNzT3duUHRyPENvbnRlbnREYXRhPiBuZXh0KSB7IG1fbmV4dCA9IG5leHQ7IH0KIApAQCAtMTA0
LDYgKzExNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIFN0eWxlSW1hZ2UqIG1faW1hZ2U7CiAgICAg
ICAgIFN0cmluZ0ltcGwqIG1fdGV4dDsKICAgICAgICAgQ291bnRlckNvbnRlbnQqIG1fY291bnRl
cjsKKyAgICAgICAgUXVvdGVUeXBlIG1fcXVvdGU7CiAgICAgfSBtX2NvbnRlbnQ7CiAgICAgT3du
UHRyPENvbnRlbnREYXRhPiBtX25leHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1F1b3Rlc0RhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjgyOWZlM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUXVvdGVzRGF0YS5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgTm9raWEgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UXVvdGVzRGF0YSogUXVvdGVzRGF0YTo6Y3JlYXRlKGludCBzdHJpbmdDb3VudCkKK3sKKyAgICBj
aGFyKiB0bXAgPSBuZXcgY2hhcltzaXplb2YoUXVvdGVzRGF0YSkrc2l6ZW9mKFN0cmluZykqc3Ry
aW5nQ291bnRdOworICAgIGlmICghdG1wKQorICAgICAgICByZXR1cm4gMDsKKyAgICBuZXcgKHRt
cCkgUXVvdGVzRGF0YShzdHJpbmdDb3VudCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJp
bmdDb3VudDsgKytpKQorICAgICAgICBuZXcgKHRtcCArc2l6ZW9mKFF1b3Rlc0RhdGEpICsgc2l6
ZW9mKFN0cmluZykqaSkgU3RyaW5nKCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXVv
dGVzRGF0YSo+KHRtcCk7Cit9CisKK2Jvb2wgUXVvdGVzRGF0YTo6b3BlcmF0b3I9PShjb25zdCBR
dW90ZXNEYXRhJiBvdGhlcikgY29uc3QKK3sKKyAgICBpZiAodGhpcyA9PSAmb3RoZXIpCisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIGlmICghJm90aGVyIHx8ICF0aGlzKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKGxlbmd0aCAhPSBvdGhlci5sZW5ndGgpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBjb25zdCBTdHJpbmcqIG15RGF0YSA9IGRhdGEoKTsKKyAgICBjb25zdCBT
dHJpbmcqIG90aGVyRGF0YSA9IG90aGVyLmRhdGEoKTsKKyAgICBmb3IgKGludCBpID0gbGVuZ3Ro
LTE7IGkgPj0gMDsgLS1pKQorICAgICAgICBpZiAobXlEYXRhW2ldICE9IG90aGVyRGF0YVtpXSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUXVvdGVz
RGF0YTo6flF1b3Rlc0RhdGEoKQoreworICAgIFN0cmluZyogcCA9IGRhdGEoKTsKKyAgICBmb3Ig
KGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBwW2ldLn5TdHJpbmcoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9RdW90ZXNEYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY4YTZk
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90
ZXNEYXRhLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tp
YSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFF1b3Rlc0RhdGFfaAorI2Rl
ZmluZSBRdW90ZXNEYXRhX2gKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBRdW90
ZXNEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8UXVvdGVzRGF0YT4geworcHVibGljOgorICAgIHZp
cnR1YWwgflF1b3Rlc0RhdGEoKTsKKyAgICBzdGF0aWMgUXVvdGVzRGF0YSogY3JlYXRlKGludCBz
dHJpbmdDb3VudCk7CisgICAgU3RyaW5nKiBkYXRhKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxTdHJpbmcqPih0aGlzKzEpOyB9CisgICAgY29uc3QgU3RyaW5nKiBkYXRhKCkgY29uc3QgeyBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBTdHJpbmcqPih0aGlzKzEpOyB9CisgICAgaW50
IGxlbmd0aDsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUXVvdGVzRGF0YSYpIGNvbnN0Owor
ICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQqIHApIHsgZGVsZXRlW10gc3RhdGljX2Nhc3Q8
Y2hhcio+KHApOyB9Citwcml2YXRlOgorICAgIFF1b3Rlc0RhdGEoaW50IHN0cmluZ0NvdW50KSA6
IGxlbmd0aChzdHJpbmdDb3VudCkge30KK307CisKK30KKyNlbmRpZiAvLyBRdW90ZXNEYXRhX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4
IGI3NmEzNTAuLjgxZGE0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5
TmFtZXMuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRm9udFNl
bGVjdG9yLmgiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1ZGUgIlJlbmRlckFyZW5h
LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NhbGVUcmFuc2Zvcm1P
cGVyYXRpb24uaCIKQEAgLTYwNSw2ICs2MDYsMTMgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q3Vy
c29yTGlzdChQYXNzUmVmUHRyPEN1cnNvckxpc3Q+IG90aGVyKQogICAgIHJhcmVJbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5jdXJzb3JEYXRhID0gb3RoZXI7CiB9CiAKK3ZvaWQgUmVuZGVyU3R5bGU6
OnNldFF1b3RlcyhQYXNzUmVmUHRyPFF1b3Rlc0RhdGE+IHEpCit7CisgICAgaWYgKCpyYXJlSW5o
ZXJpdGVkRGF0YS0+cXVvdGVzLmdldCgpID09ICpxLmdldCgpKQorICAgICAgICByZXR1cm47Cisg
ICAgcmFyZUluaGVyaXRlZERhdGEuYWNjZXNzKCktPnF1b3RlcyA9IHE7Cit9CisKIHZvaWQgUmVu
ZGVyU3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgpCiB7CiAgICAgaWYgKHJhcmVJbmhlcml0ZWREYXRh
LT5jdXJzb3JEYXRhKQpAQCAtNjcyLDYgKzY4MCwxMSBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRD
b250ZW50KFBhc3NPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50ZXIsIGJvb2wgYWRkKQogICAg
IHByZXBhcmVUb1NldENvbnRlbnQoMCwgYWRkKS0+c2V0Q291bnRlcihjb3VudGVyKTsKIH0KIAor
dm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29udGVudChRdW90ZVR5cGUgcXVvdGUsIGJvb2wgYWRkKQor
eworICAgIHByZXBhcmVUb1NldENvbnRlbnQoMCwgYWRkKS0+c2V0UXVvdGUocXVvdGUpOworfQor
CiB2b2lkIFJlbmRlclN0eWxlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dHJhbnNmb3JtLCBjb25zdCBJbnRTaXplJiBib3JkZXJCb3hTaXplLCBBcHBseVRyYW5zZm9ybU9y
aWdpbiBhcHBseU9yaWdpbikgY29uc3QKIHsKICAgICAvLyB0cmFuc2Zvcm0tb3JpZ2luIGJyYWNr
ZXRzIHRoZSB0cmFuc2Zvcm0gd2l0aCB0cmFuc2xhdGUgb3BlcmF0aW9ucy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggYWU5YmRhMi4uODE3NWE5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAg
LTExMjcsMTAgKzExMjcsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVm
UHRyPFN0cmluZ0ltcGw+LCBib29sIGFkZCA9IGZhbHNlKTsKICAgICB2b2lkIHNldENvbnRlbnQo
UGFzc1JlZlB0cjxTdHlsZUltYWdlPiwgYm9vbCBhZGQgPSBmYWxzZSk7CiAgICAgdm9pZCBzZXRD
b250ZW50KFBhc3NPd25QdHI8Q291bnRlckNvbnRlbnQ+LCBib29sIGFkZCA9IGZhbHNlKTsKKyAg
ICB2b2lkIHNldENvbnRlbnQoUXVvdGVUeXBlLCBib29sIGFkZCA9IGZhbHNlKTsKIAogICAgIGNv
bnN0IENvdW50ZXJEaXJlY3RpdmVNYXAqIGNvdW50ZXJEaXJlY3RpdmVzKCkgY29uc3Q7CiAgICAg
Q291bnRlckRpcmVjdGl2ZU1hcCYgYWNjZXNzQ291bnRlckRpcmVjdGl2ZXMoKTsKIAorICAgIFF1
b3Rlc0RhdGEqIHF1b3RlcygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5xdW90
ZXMuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFF1b3RlcyhQYXNzUmVmUHRyPFF1b3Rlc0RhdGE+KTsK
KwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaHlwaGVuU3RyaW5nKCkgY29uc3Q7CiAKICAgICBi
b29sIGluaGVyaXRlZE5vdEVxdWFsKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
CmluZGV4IDQ0Y2QzZjUuLjNjNjJkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC0yOTcsNyArMjk3LDExIEBA
IGVudW0gRUxpc3RTdHlsZVR5cGUgewogfTsKIAogZW51bSBTdHlsZUNvbnRlbnRUeXBlIHsKLSAg
ICBDT05URU5UX05PTkUsIENPTlRFTlRfT0JKRUNULCBDT05URU5UX1RFWFQsIENPTlRFTlRfQ09V
TlRFUgorICAgIENPTlRFTlRfTk9ORSwgQ09OVEVOVF9PQkpFQ1QsIENPTlRFTlRfVEVYVCwgQ09O
VEVOVF9DT1VOVEVSLCBDT05URU5UX1FVT1RFCit9OworCitlbnVtIFF1b3RlVHlwZSB7CisgICAg
T1BFTl9RVU9URSwgQ0xPU0VfUVVPVEUsIE5PX09QRU5fUVVPVEUsIE5PX0NMT1NFX1FVT1RFCiB9
OwogCiBlbnVtIEVCb3JkZXJGaXQgeyBCb3JkZXJGaXRCb3JkZXIsIEJvcmRlckZpdExpbmVzIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggNmI4ZTAzOS4uOWRjZjkxOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmFyZUluaGVyaXRlZERhdGEu
aCIKIAogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKKyNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5o
IgogI2luY2x1ZGUgIlNoYWRvd0RhdGEuaCIKQEAgLTEzMiw3ICsxMzMsOCBAQCBib29sIFN0eWxl
UmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSYgbykgY29uc3QKICAgICAgICAgJiYgdGV4dEVtcGhhc2lzUG9zaXRpb24gPT0gby50ZXh0RW1w
aGFzaXNQb3NpdGlvbgogICAgICAgICAmJiBoeXBoZW5hdGlvblN0cmluZyA9PSBvLmh5cGhlbmF0
aW9uU3RyaW5nCiAgICAgICAgICYmIGh5cGhlbmF0aW9uTG9jYWxlID09IG8uaHlwaGVuYXRpb25M
b2NhbGUKLSAgICAgICAgJiYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyayA9PSBvLnRleHRFbXBoYXNp
c0N1c3RvbU1hcms7CisgICAgICAgICYmIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsgPT0gby50ZXh0
RW1waGFzaXNDdXN0b21NYXJrCisgICAgICAgICYmICpxdW90ZXMuZ2V0KCkgPT0gKm8ucXVvdGVz
LmdldCgpOwogfQogCiBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnNoYWRvd0RhdGFFcXVp
dmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
aAppbmRleCBkMjZjYTgzLi5mYzU2ZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTM0LDYgKzM0LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3Vyc29yTGlzdDsKK2NsYXNzIFF1b3Rl
c0RhdGE7CiBjbGFzcyBTaGFkb3dEYXRhOwogCiAvLyBUaGlzIHN0cnVjdCBpcyBmb3IgcmFyZWx5
IHVzZWQgaW5oZXJpdGVkIENTUzMsIENTUzIsIGFuZCBXZWJLaXQtc3BlY2lmaWMgcHJvcGVydGll
cy4KQEAgLTg4LDYgKzg5LDcgQEAgcHVibGljOgogICAgIEF0b21pY1N0cmluZyBoeXBoZW5hdGlv
bkxvY2FsZTsKIAogICAgIEF0b21pY1N0cmluZyB0ZXh0RW1waGFzaXNDdXN0b21NYXJrOworICAg
IFJlZlB0cjxRdW90ZXNEYXRhPiBxdW90ZXM7CiAKIHByaXZhdGU6CiAgICAgU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82340</attachid>
            <date>2011-02-14 10:54:44 -0800</date>
            <delta_ts>2011-02-16 14:16:53 -0800</delta_ts>
            <desc>Proposed Patch. Fixed problem with Chromium build system.</desc>
            <filename>patchFor6503-3.patch</filename>
            <type>text/plain</type>
            <size>76905</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1OTM5YmE1Li5kMzdhMGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDIt
MTAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24n
dCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyBmb3IgcXVvdGVzLgorCisg
ICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbDogQWRkZWQu
CisKIDIwMTEtMDItMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgc2tpcCBmYWlsaW5nIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L2hpbmRpLXdoaXRlc3BhY2UuaHRtbCB0ZXN0IG9uIEdUSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWVjOGYxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMg
c2hvdWxkIGJlIGlkZW50aWNhbC4KKworPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYWIJMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQor
CitXV2FXV2JXV1dXV1dXVwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09
PT09TWFya2VyMz09PT09PT09CisKK1BBU1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmViOWE0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0
bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAg
ICAgICBib2R5IHsgcXVvdGVzOiAiV1ciICJXV1dXIjsgfQorICAgICAgICA8L3N0eWxlPgorICAg
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rp
b24gcnVuKCkgeworICAgICAgICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdl
dFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGgg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJl
bmNlIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAg
aWYgKHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0
V2lkdGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigp
JywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVu
IHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09
PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgor
ICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+PC9xPjwv
dGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49
PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAg
PHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5XV2FXV2JXV1dXV1dXVzwv
dGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+
PT09PT09PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMTQ0NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDkgQEAKKz09PT09PT09TWFya2VyMT09PT09PT09CisKK2FiY2QJMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQorCithV1dXYldX
V1dXY1dXZFdXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1h
cmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hMWU3ODUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wMi5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAg
Ym9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAg
c3BhbjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgICAgICBzcGFu
OmFmdGVyIHsgY29udGVudDogbm8tY2xvc2UtcXVvdGU7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAg
ICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHJ1bigpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUlu
QnJvd3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3
aWR0aCIpOworICAgICAgICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0g
cmVmZXJlbmNlV2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
LmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3Rl
ZCAiICsgcmVmZXJlbmNlV2lkdGg7CisgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9u
ZTsiKTsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBv
bmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJy
b3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwu
PC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRh
YmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRh
aW5lciI+PHNwYW4+YTxxPmI8L3E+Yzwvc3Bhbj48cT5kPC9xPjwvdGQ+CisgICAgICAgICAgICAg
ICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAg
ICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09
PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAg
ICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5hV1dXYldXV1dXY1dXZFdXV1c8L3RkPgorICAgICAgICAg
ICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAg
ICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2Vy
Mz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yNTFkZWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACis9
PT09PT09PU1hcmtlcjE9PT09PT09PQorCithYgkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK2FXV1diV1dXV1cJMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQQVNTRUQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMt
MDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzFmOWJkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0w
My5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldXIiAiV1dX
VyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgYjpiZWZvcmUgeyBjb250ZW50OiBuby1v
cGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUo
InN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAgICAgICAgICAgICAgdGVzdFdpZHRoID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RDb250
YWluZXIiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAg
ICByZWZlcmVuY2VXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWZlcmVuY2UiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsK
KyAgICAgICAgICAgICAgICBpZiAodGVzdFdpZHRoID09IHJlZmVyZW5jZVdpZHRoKQorICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4
dCA9ICJQQVNTRUQiOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiRkFJTEVEOiB0
ZXN0V2lkdGg9IiArIHRlc3RXaWR0aCArIjsgZXhwZWN0ZWQgIiArIHJlZmVyZW5jZVdpZHRoOwor
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0i
c2V0VGltZW91dCgncnVuKCknLCAwKTsiPgorICAgICAgICA8cCBpZD0ib25seUluQnJvd3NlciI+
VGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC48L3A+Cisg
ICAgICAgIDxwPj09PT09PT09TWFya2VyMT09PT09PT09PC9wPgorICAgICAgICA8dGFibGU+Cisg
ICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGlkPSJ0ZXN0Q29udGFpbmVyIj48
c3Bhbj48Yj5hPC9iPjwvc3Bhbj48cT5iPC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgor
ICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4K
KyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBp
ZD0icmVmZXJlbmNlIj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGRlcjsiPmE8L3NwYW4+
V1dXYldXV1dXPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAx
ICAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgor
ICAgICAgICA8cD49PT09PT09PU1hcmtlcjM9PT09PT09PTwvcD4KKyAgICAgICAgPHByZSBpZD0i
Y29uc29sZSIvPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA1N2E0MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYgkxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisK
K1dXYldXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtl
cjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44NzAyOWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9k
eSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgYjpi
ZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAg
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJy
b3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAgICAg
ICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9SZW1vdmUiKTsKKyAgICAg
ICAgICAgICAgICBlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOwor
ICAgICAgICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZh
bHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNl
V2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4
dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVm
ZXJlbmNlV2lkdGg7CisgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAg
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW4oKScsIDApOyI+CisgICAgICAgIDxwIGlkPSJv
bmx5SW5Ccm93c2VyIj5UaGUgdGV4dHMgYmV0d2VlbiB0aGUgbWFya2VycyBzaG91bGQgYmUgaWRl
bnRpY2FsLjwvcD4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIxPT09PT09PT08L3A+CisgICAg
ICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InRl
c3RDb250YWluZXIiPjxzcGFuPjxiIGlkPSJ0b1JlbW92ZSI+YTwvYj48L3NwYW4+PHE+YjwvcT48
L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+
PT09PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAg
IDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1diV1dXVzwvdGQ+Cisg
ICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3Rk
PgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09
PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjQzZWI0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKKz09PT09PT09TWFya2VyMT09PT09PT09CisKK2FiYwkxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYVdXV2JXV1dXV2NX
V1dXCTEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMQorPT09PT09PT1NYXJrZXIzPT09
PT09PT0KKworUEFTU0VECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTA1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NDIyYmUzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQv
Y29udGVudC1xdW90ZXMtMDUuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIC5teVF1b3Rl
cyB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICA8L3N0eWxl
PgorICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gcnVuKCkgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
bmx5SW5Ccm93c2VyIikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJkaXNwbGF5OiBub25lOyIpOwor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJteVF1
b3RlcyIpOworICAgICAgICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFBy
b3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNl
IiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgaWYg
KHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lk
dGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywg
MCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRo
ZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1h
cmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAg
ICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+YzwvcT48L3Rk
PgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8
L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09
PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0
cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1dhV1dXYldXV1dXY1dXV1c8
L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxw
Pj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9p
ZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggNjgyYTcxOC4uNzcxYWFhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9BbmRyb2lkLm1rCkBAIC03MDEsNiArNzAxLDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9D
QUxfU1JDX0ZJTEVTKSBcCiAJcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgXAogCXJlbmRlcmlu
Zy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIFwKIAlyZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAg
XAorCXJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCBcCiAKQEAgLTc5MSw2ICs3OTIs
NyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlyZW5kZXJpbmcv
c3R5bGUvRmlsbExheWVyLmNwcCBcCiAJcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAg
XAogCXJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAgXAorCXJlbmRlcmluZy9zdHls
ZS9RdW90ZXNEYXRhLmNwcCBcCiAJcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBcCiAK
IGlmZXEgKCQoRU5BQkxFX1NWRyksIHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDA2NGJm
MTYuLjFmMzIzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMzY3LDYgKzEzNjcsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAogICAgIHJlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKICAgICBy
ZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKQEAgLTE0MDUsNiArMTQwNiw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUlt
YWdlLmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5j
cHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA3OGRiMTQ4Li4zODczMWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMTEt
MDItMTEgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9l
c24ndCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIGZ1bGwgc3VwcG9ydCBmb3IgcXVvdGVz
IGFzIGRlZmluZWQgYnkgQ1NTIDIuMS4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MvY29udGVu
dC9jb250ZW50LXF1b3Rlcy0wMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL2NvbnRlbnQv
Y29udGVudC1xdW90ZXMtMDMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvY29udGVudC9j
b250ZW50LXF1b3Rlcy0wNC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTA1Lmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGRlZCBS
ZW5kZXJRdW90ZS5jcHAvaCBhbmQgUXVvdGVzRGF0YS5jcHAvaCB0byB0aGUgZGVwZW5kZW5jeSBs
aXN0cworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VR
dW90ZXMpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgQWRkZWQgbmVlZGVk
IHN0eWxlc2hlZXQgcGFyc2luZyBzdXBwb3J0IGZvciBxdW90ZXMsCisgICAgICAgIChuby0pb3Bl
bi1xdW90ZSBhbmQgKG5vLSljbG9zZS1xdW90ZQorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVy
dHkpOgorICAgICAgICBIYW5kbGVkIHNldHRpbmcgb2YgdGhlIG5ldyBxdW90ZXMgUmVuZGVyU3R5
bGUgcHJvcGVydHkgYW5kIGFkZGVkCisgICAgICAgIGhhbmRsaW5nIG9mIHF1b3RlcyBmb3IgdGhl
IGNvbnRlbnQgcHJvcGVydHkuCisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAocTpi
ZWZvcmUpOgorICAgICAgICAocTphZnRlcik6CisgICAgICAgIHJlcGxhY2VkIHRoZSAnIicgd29y
a2Fyb3VuZCB3aXRoIG9wZW4vY2xvc2UtcXVvdGUKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpcnR5TGluZUJveGVzRm9y
UmVuZGVyZXIpOgorICAgICAgICBNYWRlIFJlbmRlclF1b3RlIGJlaGF2ZSBsaWtlIFJlbmRlckNv
dW50ZXIuCisgICAgICAgIE5lZWRlZCB0byBlbnN1cmUgdGhhdCB0aGUgUXVvdGUgdGV4dCBpcyBj
YWxjdWxhdGVkIGJlZm9yZSBsYXlvdXQsCisgICAgICAgIGp1c3QgYXMgaXQgaXMgZm9yIFJlbmRl
ckNvdW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1F1b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENo
aWxkTGlzdDo6cmVtb3ZlQ2hpbGROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVj
dENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2RlKToKKyAgICAgICAgSGFuZGxlZCB1cGRhdGlu
ZyBvZiBxdW90ZSBkZXB0aCB3aGVuIHJlbmRlcmVycyBhcmUgYWRkZWQgYW5kIHJlbW92ZWQKKyAg
ICAgICAgZnJvbSB0aGUgdHJlZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxk
TGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUXVvdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdERlcHRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpSZW5kZXJRdW90ZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJRdW90ZTo6flJlbmRlclF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clF1b3RlOjpyZW5kZXJOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpwbGFj
ZVF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpvcmlnaW5hbFRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRh
Y2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJv
bVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OnN0eWxlRGlkQ2hhbmdlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJRdW90ZTo6aXNRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclF1
b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwOgorICAgICAg
ICBJbmNsdWRlZCBSZW5kZXJRdW90ZS5jcHAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29u
dGVudERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6OmRhdGFFcXVpdmFs
ZW50KToKKyAgICAgICAgQ2hlY2tlZCBmb3IgcXVvdGV0eXBlIGlkZW50aXR5LgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudERhdGE6OmRlbGV0ZUNvbnRlbnQpOgorICAgICAgICBBY2NvdW50ZWQg
Zm9yIHRoZSBuZXcgUVVPVEVfVFlQRS4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29udGVu
dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjppc1F1b3RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjpxdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RGF0YTo6c2V0UXVvdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29udGVudCk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bmhlcml0ZWRGbGFnczo6cXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdz
OjpzZXRRdW90ZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9y
PT0pOgorICAgICAgICBJbmNsdWRlZCBxdW90ZXMgaW4gZXF1YWxpdHkgY2hlY2suCisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgQWRk
ZWQgcXVvdGVzCisKIDIwMTEtMDItMTAgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KaW5kZXggMzZmNzJhYi4uMWMzNmIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
QEAgLTI4MjAsNiArMjgyMCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclByb2dyZXNzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dy
ZXNzLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxp
Y2EuY3BwIFwKQEAgLTI5MjIsNiArMjkyNCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUuaCBcCisJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUXVvdGVzRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJhOWUzMTMuLjk1ZjNmZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTM2NTQsNiArMzY1NCw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxl
L05pbmVQaWVjZUltYWdlLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL05pbmVQ
aWVjZUltYWdlLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUu
aCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwJywKKyAgICAg
ICAgICAgICdyZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5oJywKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmgnLApAQCAtMzkwOSw2ICszOTExLDggQEAKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvUmVuZGVyUGFydC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUHJvZ3Jl
c3MuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCcsCisgICAg
ICAgICAgICAncmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCcsCisgICAgICAgICAgICAncmVuZGVy
aW5nL1JlbmRlclF1b3RlLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBk
Y2RiN2E1Li4xOTMxOTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTM0NSw2ICsxMzQ1LDcgQEAgU09V
UkNFUyArPSBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgXAogICAg
IHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmNwcCBcCisgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwIFwKICAg
ICByZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAgXApAQCAtMTM4MSw2ICsxMzgyLDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAgXAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNl
SW1hZ2UuY3BwIFwKKyAgICByZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5jcHAgXAogICAgIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9TaGFk
b3dEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQmFja2dyb3VuZERhdGEuY3Bw
IFwKQEAgLTIzMjAsNiArMjMyMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclBhcnQuaCBcCiAgICAgcmVuZGVyaW5n
L1JlbmRlclByb2dyZXNzLmggXAorICAgIHJlbmRlcmluZy9SZW5kZXJRdW90ZS5oIFwKICAgICBy
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxpY2Eu
aCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJ1YnkuaCBcCkBAIC0yMzU3LDYgKzIzNjAsNyBAQCBI
RUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggXAogICAgIHJlbmRl
cmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVj
ZUltYWdlLmggXAorICAgIHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmggXAogICAgIHJlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0
YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMGNjNGZkMi4u
Y2I0YWEzNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTM1MDc4LDYgKzM1MDc4LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJRdW90ZS5jcHAiCisJCQkJPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXFJlbmRlclF1b3RlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJSZXBsYWNlZC5jcHAiCiAJCQkJPgogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMzkwNDcsNiArMzkxMDMsNjIgQEAKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHls
ZVxRdW90ZXNEYXRhLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkv
PgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0Fs
bHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJS
ZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
CT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFF1b3Rlc0RhdGEuaCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xz
dHlsZVxSZW5kZXJTdHlsZS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggOWYzZTI0Ni4uMzRjZGFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjkwNCw2ICsyOTA0LDggQEAKIAkJOTM5MkYxNDQw
QUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0IC8qIFJl
bmRlckNvdW50ZXIuY3BwICovOyB9OwogCQk5MzkyRjE0QzBBRDE4NjFCMDA2OTFCRDQgLyogQ291
bnRlck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oICovOyB9OwogCQk5Mzky
RjE1MDBBRDE4NjIzMDA2OTFCRDQgLyogQ291bnRlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNEYwQUQxODYyMzAwNjkxQkQ0IC8q
IENvdW50ZXJOb2RlLmNwcCAqLzsgfTsKKwkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFJl
bmRlclF1b3RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuaCAqLzsgfTsKKwkJOTM5
MkYxNDQwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQzMEFEMTg1RkUwMDY5MUJENCAv
KiBSZW5kZXJRdW90ZS5jcHAgKi87IH07CiAJCTkzOTg4NUMzMDhCN0UzRDEwMEU3MDdDNCAvKiBF
dmVudE5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTg4NUMxMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCAqLzsgfTsKIAkJ
OTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAv
KiBFdmVudE5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTM5QjAyRUUwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QjAyRUMwRUEy
REJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovOyB9OwpAQCAtNTI2MSw2ICs1MjYz
LDggQEAKIAkJQkNFRjQzQ0YwRTY3M0RBMTAwMUMxMjg3IC8qIFN0eWxlSW1hZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUY0M0NFMEU2NzNEQTEw
MDFDMTI4NyAvKiBTdHlsZUltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQkNFRjQzREQwRTY3NDAxMjAwMUMxMjg3IC8qIE5pbmVQaWVjZUlt
YWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VG
NDNEQzBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0VGNDNFMDBFNjc0MTEwMDAxQzEy
ODcgLyogTmluZVBpZWNlSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNFRjQzREYwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdl
LmNwcCAqLzsgfTsKKwkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuaCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQyMEFE
MTg1RjQwMDY5MUJENCAvKiBRdXRvZXNEYXRhLmggKi87IH07CisJCTkzOTJGMTQyMEFEMTg1RjQw
MDY5MUJENCAvKiBRdW90ZXNEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdXRvZXNEYXRhLmNw
cCAqLzsgfTsKIAkJQkNFRjQ0NEEwRTY3NDVFMDAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1h
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUY0
NDQ5MEU2NzQ1RTAwMDFDMTI4NyAvKiBTdHlsZUdlbmVyYXRlZEltYWdlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNFRjQ0NEQwRTY3NDYyODAw
MUMxMjg3IC8qIFN0eWxlQ2FjaGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUY0NDRDMEU2NzQ2MjgwMDFDMTI4NyAvKiBTdHlsZUNhY2hl
ZEltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkNFRjQ0N0EwRTY3NDdEMDAwMUMxMjg3IC8qIFN0eWxlQ2FjaGVkSW1hZ2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQ0NzkwRTY3NDdE
MDAwMUMxMjg3IC8qIFN0eWxlQ2FjaGVkSW1hZ2UuY3BwICovOyB9OwpAQCAtOTMwOCw2ICs5MzEy
LDggQEAKIAkJOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlckNvdW50ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckNvdW50ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkyRjE0QjBBRDE4NjFCMDA2OTFCRDQgLyog
Q291bnRlck5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvdW50ZXJO
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTJGMTRGMEFEMTg2MjMwMDY5
MUJENCAvKiBDb3VudGVyTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ291bnRlck5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Mzky
RjE0MTBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbmRlclF1b3RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzOTJGMTQzMEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUXVvdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5Mzk1NUE0MTAzRDcyOTMyMDA4NjM1Q0UgLyogUmVuZGVyVHJl
ZUFzVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbmRlclRyZWVBc1RleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOTU1QTQyMDNENzI5MzIwMDg2MzVDRSAvKiBSZW5k
ZXJUcmVlQXNUZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVuZGVyVHJlZUFzVGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5Mzk4ODVDMTA4QjdFM0QxMDBF
NzA3QzQgLyogRXZlbnROYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudE5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xMTU5Miw2ICsxMTU5OCw4
IEBACiAJCUJDRUY0M0NFMEU2NzNEQTEwMDFDMTI4NyAvKiBTdHlsZUltYWdlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlSW1hZ2UuaDsgcGF0aCA9IHN0eWxlL1N0eWxl
SW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFRjQzREMwRTY3NDAxMjAw
MUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IE5pbmVQaWVjZUltYWdlLmg7IHBhdGggPSBzdHlsZS9OaW5lUGllY2VJbWFnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDNERjBFNjc0MTEwMDAxQzEyODcgLyogTmlu
ZVBpZWNlSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmlu
ZVBpZWNlSW1hZ2UuY3BwOyBwYXRoID0gc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVz
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBRdW90ZXNEYXRhLmg7IHBh
dGggPSBzdHlsZS9RdW90ZXNEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkz
OTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFF1b3Rlc0RhdGEuY3BwOyBwYXRoID0gc3R5bGUvUXVvdGVz
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0NDQ5MEU2NzQ1RTAw
MDFDMTI4NyAvKiBTdHlsZUdlbmVyYXRlZEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFN0eWxlR2VuZXJhdGVkSW1hZ2UuaDsgcGF0aCA9IHN0eWxlL1N0eWxlR2VuZXJh
dGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFRjQ0NEMwRTY3NDYy
ODAwMUMxMjg3IC8qIFN0eWxlQ2FjaGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gU3R5bGVDYWNoZWRJbWFnZS5oOyBwYXRoID0gc3R5bGUvU3R5bGVDYWNoZWRJbWFn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDQ3OTBFNjc0N0QwMDAxQzEy
ODcgLyogU3R5bGVDYWNoZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBTdHlsZUNhY2hlZEltYWdlLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlQ2FjaGVkSW1h
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc5OTAsNiArMTc5OTgsOCBA
QAogCQkJCUJDRUY0M0RGMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgKi8s
CiAJCQkJQkNFRjQzREMwRTY3NDAxMjAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggKi8sCiAJ
CQkJQkM1RUI1REMwRTgxQjhERDAwQjI1OTY1IC8qIE91dGxpbmVWYWx1ZS5oICovLAorCQkJCTkz
OTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmNwcCAqLywKKwkJCQk5MzkyRjE0
MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5oICovLAogCQkJCUJDOEM4RkFCMEREQ0Qz
MUIwMEI1OTJGNCAvKiBSZW5kZXJTdHlsZS5jcHAgKi8sCiAJCQkJQkM4QzhGQUMwRERDRDMxQjAw
QjU5MkY0IC8qIFJlbmRlclN0eWxlLmggKi8sCiAJCQkJQkM1RUI2NjcwRTgxQ0I3MTAwQjI1OTY1
IC8qIFJlbmRlclN0eWxlQ29uc3RhbnRzLmggKi8sCkBAIC0xODgwOCw2ICsxODgxOCw4IEBACiAJ
CQkJQTg3MURFQ0YwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuaCAqLywKIAkJCQlBNDNC
RjU5QTExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuY3BwICovLAogCQkJCUE0M0JG
NTlCMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5oICovLAorCQkJCTkzOTJGMTQz
MEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5jcHAgKi8sCisJCQkJOTM5MkYxNDEwQUQx
ODVGNDAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmggKi8sCiAJCQkJQTg3MURGREUwQTE1Mzc2QjAw
QjEyQTY4IC8qIFJlbmRlclJlcGxhY2VkLmNwcCAqLywKIAkJCQlBODcxREZERjBBMTUzNzZCMDBC
MTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCAqLywKIAkJCQlCQ0E4NDZENDBEQzY3QTM1MDAyNkMz
MDkgLyogUmVuZGVyUmVwbGljYS5jcHAgKi8sCkBAIC0yMTY2Myw2ICsyMTY3NSw3IEBACiAJCQkJ
RTRENjg3NzkwRUQ3QUU0RjAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0UzM0NEMDExMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTU1MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1l
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVz
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5NzIwRDAwQkYyMjAwNzFCNzgyIC8qIFJh
ZGlhbEdyYWRpZW50QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQ0MxMjUx
RjEyRDAwM0VGMjY5IC8qIFJhZGlvSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Yx
OTkxODA4MjQ1RTU5MDAxRTlBQkMgLyogUmFuZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjE3MzMs
NiArMjE3NDYsNyBAQAogCQkJCUJDRkE5MzA4MTAzMzMxOTMwMDdCMjVEMSAvKiBSZW5kZXJPdmVy
Zmxvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURFRDcwQTE1MzBDNzAwQjEyQTY4IC8qIFJl
bmRlclBhcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0M0JGNTlEMTE0OTI5MjgwMEM2NDNDQSAv
KiBSZW5kZXJQcm9ncmVzcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5MkYxNDIwQUQxODVGNDAw
NjkxQkQ0IC8qIFJlbmRlclF1b3RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREZFMzBBMTUz
NzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTg0
NkQ3MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJSZXBsaWNhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNDc5RkFFRTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNDM4Miw2ICsyNDM5Niw3IEBACiAJCQkJMUE3RkE2MUIwRERBM0JCRTAwMjhGOEE1IC8q
IE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBN0ZBNjQ5MERE
QTNDQkEwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllck1hYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0VGNDNFMDBFNjc0MTEwMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MDAwOUQ1NjMyNzAwMDNBQzhEIC8qIE5vZGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3MzAwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVG
aWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODU0RkU3MzIwQTIyOTdCRTAwNThEN0FEIC8q
IE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDUyMyw2ICsyNDUz
OCw3IEBACiAJCQkJQkM2MEVGQjcwRjMzQTBFNzAwODEyQTkzIC8qIFJlbmRlck9iamVjdENoaWxk
TGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREVEMDBBMTUzMEM3MDBCMTJBNjggLyog
UmVuZGVyUGFydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNDNCRjU5QzExNDkyOTI4MDBDNjQz
Q0EgLyogUmVuZGVyUHJvZ3Jlc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM5MkYxNDQwQUQx
ODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFE
RkUyMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0E4NDZENjBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVwbGljYS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNDc5RkFFRDEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieS5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMWFlNDVmNS4uYTkx
ODQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTYxMyw2ICs2MTMsOCBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBj
YXNlIENTU1Byb3BlcnR5UXVvdGVzOiAgICAgICAgICAgICAgIC8vIFs8c3RyaW5nPiA8c3RyaW5n
Pl0rIHwgbm9uZSB8IGluaGVyaXQKICAgICAgICAgaWYgKGlkKQogICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gcGFyc2VR
dW90ZXMocHJvcElkLCBpbXBvcnRhbnQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1By
b3BlcnR5VW5pY29kZUJpZGk6ICAgICAgICAgLy8gbm9ybWFsIHwgZW1iZWQgfCBiaWRpLW92ZXJy
aWRlIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwKQEAgLTIz
MzMsNiArMjMzNSwyOCBAQCBDU1NQYXJzZXI6OlNpemVQYXJhbWV0ZXJUeXBlIENTU1BhcnNlcjo6
cGFyc2VTaXplUGFyYW1ldGVyKENTU1ZhbHVlTGlzdCogcGFyc2VkVgogICAgIH0KIH0KIAorLy8g
WyA8c3RyaW5nPiA8c3RyaW5nPiBdKyB8IGluaGVyaXQgfCBub25lCisvLyBpbmhlcml0IGFuZCBu
b25lIGFyZSBoYW5kbGVkIGluIHBhcnNlVmFsdWUuCitib29sIENTU1BhcnNlcjo6cGFyc2VRdW90
ZXMoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCit7CisgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOworICAgIHdo
aWxlIChDU1NQYXJzZXJWYWx1ZSogdmFsID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKSkgeworICAg
ICAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlZFZhbHVlOworICAgICAgICBpZiAodmFsLT51bml0
ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKQorICAgICAgICAgICAgcGFyc2VkVmFs
dWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbC0+c3RyaW5nLCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1NUUklORyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB2YWx1ZXMtPmFwcGVuZChwYXJzZWRWYWx1ZS5yZWxlYXNlKCkpOworICAgICAgICBtX3Zh
bHVlTGlzdC0+bmV4dCgpOworICAgIH0KKyAgICBpZiAodmFsdWVzLT5sZW5ndGgoKSkgeworICAg
ICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIHZhbHVlcy5yZWxlYXNlKCksIGltcG9ydGFudCk7Cisg
ICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIC8vIFsgPHN0cmluZz4gfCA8dXJpPiB8IDxjb3VudGVy
PiB8IGF0dHIoWCkgfCBvcGVuLXF1b3RlIHwgY2xvc2UtcXVvdGUgfCBuby1vcGVuLXF1b3RlIHwg
bm8tY2xvc2UtcXVvdGUgXSsgfCBpbmhlcml0CiAvLyBpbiBDU1MgMi4xIHRoaXMgZ290IHNvbWV3
aGF0IHJlZHVjZWQ6CiAvLyBbIDxzdHJpbmc+IHwgYXR0cihYKSB8IG9wZW4tcXVvdGUgfCBjbG9z
ZS1xdW90ZSB8IG5vLW9wZW4tcXVvdGUgfCBuby1jbG9zZS1xdW90ZSBdKyB8IGluaGVyaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuaAppbmRleCBkMWIyMDYxLi4xNWUxMmJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oCkBAIC03OCw2ICs3OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9v
bCBwYXJzZVNob3J0aGFuZChpbnQgcHJvcElkLCBjb25zdCBpbnQqIHByb3BlcnRpZXMsIGludCBu
dW1Qcm9wZXJ0aWVzLCBib29sIGltcG9ydGFudCk7CiAgICAgICAgIGJvb2wgcGFyc2U0VmFsdWVz
KGludCBwcm9wSWQsIGNvbnN0IGludCogcHJvcGVydGllcywgYm9vbCBpbXBvcnRhbnQpOwogICAg
ICAgICBib29sIHBhcnNlQ29udGVudChpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CisgICAg
ICAgIGJvb2wgcGFyc2VRdW90ZXMoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOwogCiAgICAg
ICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlQXR0cihDU1NQYXJzZXJWYWx1ZUxpc3QqIGFy
Z3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggNDhhNmZh
OC4uZjdiYjhlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAt
NzAsNiArNzAsNyBAQAogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhaXIuaCIK
ICNpbmNsdWRlICJQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIlF1
b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyVGhlbWUuaCIKQEAgLTQ2NTEsMzYgKzQ2NTIs
NTkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFs
dWUgKnZhbHVlKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSog
Y29udGVudFZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsKICAg
ICAgICAgICAgIHN3aXRjaCAoY29udGVudFZhbHVlLT5wcmltaXRpdmVUeXBlKCkpIHsKLSAgICAg
ICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HOgotICAgICAgICAg
ICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNvbnRlbnRWYWx1ZS0+Z2V0U3RyaW5nVmFs
dWUoKS5pbXBsKCksIGRpZFNldCk7CisgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfU1RSSU5HOgorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY29udGVu
dFZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLmltcGwoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAg
ICBkaWRTZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0FUVFI6IHsKKyAgICAgICAgICAgICAgICAvLyBGSVhN
RTogQ2FuIGEgbmFtZXNwYWNlIGJlIHNwZWNpZmllZCBmb3IgYW4gYXR0cihmb28pPworICAgICAg
ICAgICAgICAgIGlmIChtX3N0eWxlLT5zdHlsZVR5cGUoKSA9PSBOT1BTRVVETykKKyAgICAgICAg
ICAgICAgICAgICAgbV9zdHlsZS0+c2V0VW5pcXVlKCk7CisgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICBtX3BhcmVudFN0eWxlLT5zZXRVbmlxdWUoKTsKKyAgICAgICAg
ICAgICAgICBRdWFsaWZpZWROYW1lIGF0dHIobnVsbEF0b20sIGNvbnRlbnRWYWx1ZS0+Z2V0U3Ry
aW5nVmFsdWUoKS5pbXBsKCksIG51bGxBdG9tKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5z
ZXRDb250ZW50KG1fZWxlbWVudC0+Z2V0QXR0cmlidXRlKGF0dHIpLmltcGwoKSwgZGlkU2V0KTsK
KyAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIC8vIHJlZ2lz
dGVyIHRoZSBmYWN0IHRoYXQgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBhZmZlY3RzIHRoZSBzdHlsZQor
ICAgICAgICAgICAgICAgIG1fc2VsZWN0b3JBdHRycy5hZGQoYXR0ci5sb2NhbE5hbWUoKS5pbXBs
KCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
Y2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSTogeworICAgICAgICAgICAgICAgIGlmICgh
Y29udGVudFZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChjYWNoZWRPclBlbmRpbmdGcm9t
VmFsdWUoQ1NTUHJvcGVydHlDb250ZW50LCBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4oY29u
dGVudFZhbHVlKSksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19DT1VOVEVSOiB7CisgICAgICAgICAgICAgICAgQ291bnRlciog
Y291bnRlclZhbHVlID0gY29udGVudFZhbHVlLT5nZXRDb3VudGVyVmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICBPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50ZXIgPSBhZG9wdFB0cihuZXcgQ291
bnRlckNvbnRlbnQoY291bnRlclZhbHVlLT5pZGVudGlmaWVyKCksCisgICAgICAgICAgICAgICAg
ICAgIChFTGlzdFN0eWxlVHlwZSljb3VudGVyVmFsdWUtPmxpc3RTdHlsZU51bWJlcigpLCBjb3Vu
dGVyVmFsdWUtPnNlcGFyYXRvcigpKSk7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29u
dGVudChjb3VudGVyLnJlbGVhc2UoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBkaWRTZXQg
PSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lERU5UOgorICAgICAgICAgICAgICAgIHN3
aXRjaCAoY29udGVudFZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZU9wZW5RdW90ZToKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVu
dChPUEVOX1FVT1RFLCBkaWRTZXQpOwogICAgICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVl
OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfQVRUUjogewotICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
Q2FuIGEgbmFtZXNwYWNlIGJlIHNwZWNpZmllZCBmb3IgYW4gYXR0cihmb28pPwotICAgICAgICAg
ICAgICAgICAgICBpZiAobV9zdHlsZS0+c3R5bGVUeXBlKCkgPT0gTk9QU0VVRE8pCi0gICAgICAg
ICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRVbmlxdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJlbnRTdHlsZS0+c2V0VW5pcXVl
KCk7Ci0gICAgICAgICAgICAgICAgICAgIFF1YWxpZmllZE5hbWUgYXR0cihudWxsQXRvbSwgY29u
dGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLmltcGwoKSwgbnVsbEF0b20pOwotICAgICAgICAg
ICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KG1fZWxlbWVudC0+Z2V0QXR0cmlidXRlKGF0
dHIpLmltcGwoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQ2xvc2VR
dW90ZToKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChDTE9TRV9RVU9U
RSwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgICAgLy8gcmVnaXN0ZXIgdGhlIGZhY3QgdGhhdCB0aGUgYXR0cmlidXRlIHZhbHVl
IGFmZmVjdHMgdGhlIHN0eWxlCi0gICAgICAgICAgICAgICAgICAgIG1fc2VsZWN0b3JBdHRycy5h
ZGQoYXR0ci5sb2NhbE5hbWUoKS5pbXBsKCkpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1VSSTogewotICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRlbnRWYWx1ZS0+aXNJ
bWFnZVZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NT
UHJvcGVydHlDb250ZW50LCBzdGF0aWNfY2FzdDxDU1NJbWFnZVZhbHVlKj4oY29udGVudFZhbHVl
KSksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZU5vT3BlblF1b3RlOgor
ICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KE5PX09QRU5fUVVPVEUsIGRp
ZFNldCk7CiAgICAgICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjYXNlIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ09VTlRFUjogewotICAgICAgICAgICAgICAgICAgICBDb3Vu
dGVyKiBjb3VudGVyVmFsdWUgPSBjb250ZW50VmFsdWUtPmdldENvdW50ZXJWYWx1ZSgpOwotICAg
ICAgICAgICAgICAgICAgICBPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50ZXIgPSBhZG9wdFB0
cihuZXcgQ291bnRlckNvbnRlbnQoY291bnRlclZhbHVlLT5pZGVudGlmaWVyKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAoRUxpc3RTdHlsZVR5cGUpY291bnRlclZhbHVlLT5saXN0U3R5bGVO
dW1iZXIoKSwgY291bnRlclZhbHVlLT5zZXBhcmF0b3IoKSkpOwotICAgICAgICAgICAgICAgICAg
ICBtX3N0eWxlLT5zZXRDb250ZW50KGNvdW50ZXIucmVsZWFzZSgpLCBkaWRTZXQpOworICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVOb0Nsb3NlUXVvdGU6CisgICAgICAgICAgICAgICAgICAg
IG1fc3R5bGUtPnNldENvbnRlbnQoTk9fQ0xPU0VfUVVPVEUsIGRpZFNldCk7CiAgICAgICAgICAg
ICAgICAgICAgIGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbCBhbmQg
bm9uZSBkbyBub3QgaGF2ZSBhbnkgZWZmZWN0LgorICAgICAgICAgICAgICAgICAgICB7fQogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNDY4OCw2ICs0NzEy
LDMzIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1Zh
bHVlICp2YWx1ZSkKICAgICAgICAgICAgIG1fc3R5bGUtPmNsZWFyQ29udGVudCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6CisgICAgICAgIGlm
IChpc0luaGVyaXQpIHsKKyAgICAgICAgICAgIGlmIChtX3BhcmVudFN0eWxlKQorICAgICAgICAg
ICAgICAgIG1fc3R5bGUtPnNldFF1b3RlcyhtX3BhcmVudFN0eWxlLT5xdW90ZXMoKSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKHZhbHVlLT5pc1ZhbHVlTGlz
dCgpKSB7CisgICAgICAgICAgICBDU1NWYWx1ZUxpc3QqIGxpc3QgPSBzdGF0aWNfY2FzdDxDU1NW
YWx1ZUxpc3QqPih2YWx1ZSk7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gbGlzdC0+bGVuZ3Ro
KCk7CisgICAgICAgICAgICBRdW90ZXNEYXRhKiBkYXRhID0gUXVvdGVzRGF0YTo6Y3JlYXRlKGxl
bmd0aCk7CisgICAgICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICAgICAgcmV0dXJuOyAv
LyBPdXQgb2YgbWVtb3J5CisgICAgICAgICAgICBTdHJpbmcqIHF1b3RlcyA9IGRhdGEtPmRhdGEo
KTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgICAgICAgICBDU1NWYWx1ZSogaXRlbSA9IGxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2so
aSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSk7Cisg
ICAgICAgICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KGl0ZW0pOworICAgICAgICAgICAgICAgIEFTU0VSVChwcmltaXRpdmVWYWx1ZS0+cHJp
bWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKTsKKyAgICAgICAg
ICAgICAgICBxdW90ZXNbaV0gPSBwcmltaXRpdmVWYWx1ZS0+Z2V0U3RyaW5nVmFsdWUoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fc3R5bGUtPnNldFF1b3RlcyhhZG9wdFJlZihkYXRh
KSk7CisgICAgICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUpIHsKKyAgICAgICAgICAgIEFT
U0VSVChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpID09IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfSURFTlQpOworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgp
ID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRRdW90ZXMoYWRv
cHRSZWYoUXVvdGVzRGF0YTo6Y3JlYXRlKDApKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
OwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUNvdW50ZXJJbmNyZW1lbnQ6CiAgICAgICAgIGFwcGx5
Q291bnRlckxpc3Qoc3R5bGUoKSwgdmFsdWUtPmlzVmFsdWVMaXN0KCkgPyBzdGF0aWNfY2FzdDxD
U1NWYWx1ZUxpc3QqPih2YWx1ZSkgOiAwLCBmYWxzZSk7CkBAIC01OTI5LDcgKzU5ODAsNiBAQCB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFs
dWUpCiAKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0cmV0Y2g6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVBhZ2U6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3RlczoKICAgICBjYXNlIENTU1Byb3Bl
cnR5VGV4dExpbmVUaHJvdWdoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGluZVRocm91Z2hD
b2xvcjoKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoTW9kZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1s
LmNzcwppbmRleCAwZjEzZmNiLi45NTRmNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvaHRtbC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCkBAIC0xMTMsMTMg
KzExMywxMSBAQCBxIHsKIH0KIAogcTpiZWZvcmUgewotICAgIGNvbnRlbnQ6ICciJwotICAgIC8q
IEZJWE1FOiBjb250ZW50OiBvcGVuLXF1b3RlOyAqLworICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7
CiB9CiAKIHE6YWZ0ZXIgewotICAgIGNvbnRlbnQ6ICciJwotICAgIC8qIEZJWE1FOiBjb250ZW50
OiBjbG9zZS1xdW90ZTsgKi8KKyAgICBjb250ZW50OiBjbG9zZS1xdW90ZTsKIH0KIAogY2VudGVy
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91
dC5jcHAKaW5kZXggODMwZmM2Mi4uNDQ2YTMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBz
dGF0aWMgaW5saW5lIElubGluZUJveCogY3JlYXRlSW5saW5lQm94Rm9yUmVuZGVyZXIoUmVuZGVy
T2JqZWN0KiBvYmosIGJvb2wgaXNSbwogc3RhdGljIGlubGluZSB2b2lkIGRpcnR5TGluZUJveGVz
Rm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvLCBib29sIGZ1bGxMYXlvdXQpCiB7CiAgICAgaWYg
KG8tPmlzVGV4dCgpKSB7Ci0gICAgICAgIGlmIChvLT5wcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGly
dHkoKSAmJiBvLT5pc0NvdW50ZXIoKSkKKyAgICAgICAgaWYgKG8tPnByZWZlcnJlZExvZ2ljYWxX
aWR0aHNEaXJ0eSgpICYmIChvLT5pc0NvdW50ZXIoKSB8fCBvLT5pc1F1b3RlKCkpKQogICAgICAg
ICAgICAgdG9SZW5kZXJUZXh0KG8pLT5jb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygwKTsg
Ly8gRklYTUU6IENvdW50ZXJzIGRlcGVuZCBvbiB0aGlzIGhhY2suIE5vIGNsdWUgd2h5LiBTaG91
bGQgYmUgaW52ZXN0aWdhdGVkIGFuZCByZW1vdmVkLgogICAgICAgICB0b1JlbmRlclRleHQobykt
PmRpcnR5TGluZUJveGVzKGZ1bGxMYXlvdXQpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDQzZTZiZWEuLmE1ZjJjNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTI1Miw2ICsyNTIsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGlzQmxvY2tGbG93KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNCb3hNb2RlbE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIGlzQ291bnRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0RldGFpbHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc0RldGFpbHNNYXJrZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0VtYmVkZGVkT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5j
cHAKaW5kZXggNmE3NzNkYy4uNGRmNzE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNs
dWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUg
IlJlbmRlckxpc3RJdGVtLmgiCisjaW5jbHVkZSAiUmVuZGVyUXVvdGUuaCIKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRGcmFnbWVudC5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKQEAgLTEzMCw2ICsxMzEsNyBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck9i
amVjdENoaWxkTGlzdDo6cmVtb3ZlQ2hpbGROb2RlKFJlbmRlck9iamVjdCogb3duZXIsIFJlbmRl
cgogCiAgICAgaWYgKG9sZENoaWxkLT5tX2hhc0NvdW50ZXJOb2RlTWFwKQogICAgICAgICBSZW5k
ZXJDb3VudGVyOjpkZXN0cm95Q291bnRlck5vZGVzKG9sZENoaWxkKTsKKyAgICBSZW5kZXJRdW90
ZTo6cmVuZGVyZXJSZW1vdmVkRnJvbVRyZWUob2xkQ2hpbGQpOwogCiAgICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCiAgICAgICAgIG93bmVyLT5kb2N1bWVudCgp
LT5heE9iamVjdENhY2hlKCktPmNoaWxkcmVuQ2hhbmdlZChvd25lcik7CkBAIC0xNzcsOCArMTc5
LDggQEAgdm9pZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OmFwcGVuZENoaWxkTm9kZShSZW5kZXJP
YmplY3QqIG93bmVyLCBSZW5kZXJPYmplY3QqIG4KICAgICAgICAgaWYgKCFuZXdDaGlsZC0+aXNG
bG9hdGluZ09yUG9zaXRpb25lZCgpICYmIG93bmVyLT5jaGlsZHJlbklubGluZSgpKQogICAgICAg
ICAgICAgb3duZXItPmRpcnR5TGluZXNGcm9tQ2hhbmdlZENoaWxkKG5ld0NoaWxkKTsKICAgICB9
Ci0KICAgICBSZW5kZXJDb3VudGVyOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZChuZXdDaGlsZCk7
CisgICAgUmVuZGVyUXVvdGU6OnJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKG5ld0NoaWxkKTsKICAg
ICBuZXdDaGlsZC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7IC8vIEdvZXMg
dXAgdGhlIGNvbnRhaW5pbmcgYmxvY2sgaGllcmFyY2h5LgogICAgIGlmICghb3duZXItPm5vcm1h
bENoaWxkTmVlZHNMYXlvdXQoKSkKICAgICAgICAgb3duZXItPnNldENoaWxkTmVlZHNMYXlvdXQo
dHJ1ZSk7IC8vIFdlIG1heSBzdXBwbHkgdGhlIHN0YXRpYyBwb3NpdGlvbiBmb3IgYW4gYWJzb2x1
dGUgcG9zaXRpb25lZCBjaGlsZC4KQEAgLTIzOSw2ICsyNDEsNyBAQCB2b2lkIFJlbmRlck9iamVj
dENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2RlKFJlbmRlck9iamVjdCogb3duZXIsIFJlbmRlck9i
amVjdCogYwogICAgIH0KIAogICAgIFJlbmRlckNvdW50ZXI6OnJlbmRlcmVyU3VidHJlZUF0dGFj
aGVkKGNoaWxkKTsKKyAgICBSZW5kZXJRdW90ZTo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQoY2hp
bGQpOwogICAgIGNoaWxkLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKICAg
ICBpZiAoIW93bmVyLT5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkpCiAgICAgICAgIG93bmVyLT5z
ZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUpOyAvLyBXZSBtYXkgc3VwcGx5IHRoZSBzdGF0aWMgcG9z
aXRpb24gZm9yIGFuIGFic29sdXRlIHBvc2l0aW9uZWQgY2hpbGQuCkBAIC00NjAsMTAgKzQ2Mywx
NCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50
KFJlbmRlck9iamVjdCogb3duZXIsIFBzZXVkbwogICAgICAgICAgICAgICAgIHJlbmRlcmVyID0g
aW1hZ2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBjYXNlIENPTlRFTlRfQ09VTlRFUjoKLSAgICAgICAgICAgICAgICByZW5kZXJlciA9IG5ldyAo
b3duZXItPnJlbmRlckFyZW5hKCkpIFJlbmRlckNvdW50ZXIob3duZXItPmRvY3VtZW50KCksICpj
b250ZW50LT5jb3VudGVyKCkpOwotICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShw
c2V1ZG9FbGVtZW50U3R5bGUpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENPTlRFTlRfQ09VTlRFUjoKKyAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVu
ZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihvd25lci0+ZG9jdW1lbnQoKSwgKmNvbnRlbnQtPmNv
dW50ZXIoKSk7CisgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0
eWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENPTlRFTlRfUVVPVEU6Cisg
ICAgICAgICAgICByZW5kZXJlciA9IG5ldyAob3duZXItPnJlbmRlckFyZW5hKCkpIFJlbmRlclF1
b3RlKG93bmVyLT5kb2N1bWVudCgpLCBjb250ZW50LT5xdW90ZSgpKTsKKyAgICAgICAgICAgIHJl
bmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50U3R5bGUpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVuZGVyZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUXVvdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmYzMTI1NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUXVvdGUuY3BwCkBAIC0wLDAgKzEsMzMwIEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBOb2tpYSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlJlbmRlclF1b3RlLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIlF1
b3Rlc0RhdGEuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgPGFsZ29yaXRo
bT4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworI2RlZmluZSBVTktOT1dO
X0RFUFRIIC0xCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGp1
c3REZXB0aChpbnQgJmRlcHRoLCBRdW90ZVR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUp
IHsKKyAgICBjYXNlIE9QRU5fUVVPVEU6CisgICAgY2FzZSBOT19PUEVOX1FVT1RFOgorICAgICAg
ICArK2RlcHRoOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENMT1NFX1FVT1RFOgorICAgIGNh
c2UgTk9fQ0xPU0VfUVVPVEU6CisgICAgICAgIGlmIChkZXB0aCkKKyAgICAgICAgICAgIC0tZGVw
dGg7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KK30KKworUmVuZGVyUXVvdGU6OlJlbmRlclF1b3RlKERvY3VtZW50KiBu
b2RlLCBRdW90ZVR5cGUgcXVvdGUpCisgICAgOiBSZW5kZXJUZXh0KG5vZGUsIFN0cmluZ0ltcGw6
OmVtcHR5KCkpCisgICAgLCBtX3R5cGUocXVvdGUpCisgICAgLCBtX2RlcHRoKFVOS05PV05fREVQ
VEgpCisgICAgLCBtX25leHQoMCkKKyAgICAsIG1fcHJldmlvdXMoMCkKK3sKK30KKworUmVuZGVy
UXVvdGU6On5SZW5kZXJRdW90ZSgpCit7Cit9CisKK2NvbnN0IGNoYXIqIFJlbmRlclF1b3RlOjpy
ZW5kZXJOYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlJlbmRlclF1b3RlIjsKK30KKworLy8g
VGhpcyBmdW5jdGlvbiBwbGFjZXMgYSBsaXN0IG9mIHF1b3RlIHJlbmRlcmVycyBzdGFydGluZyBh
dCAidGhpcyIgaW4gdGhlIGxpc3Qgb2YgcXVvdGUgcmVuZGVyZXJzIGFscmVhZHkKKy8vIGluIHRo
ZSBkb2N1bWVudCdzIHJlbmRlcmVyIHRyZWUuCisvLyBUaGUgYXNzdW1wdGlvbnMgYXJlIG1hZGUg
KGZvciBwZXJmb3JtYW5jZSk6CisvLyAxLiBUaGUgbGlzdCBvZiBxdW90ZXMgYWxyZWFkeSBpbiB0
aGUgcmVuZGVyZXJzIHRyZWUgb2YgdGhlIGRvY3VtZW50IGlzIGFscmVhZHkgaW4gYSBjb25zaXN0
ZW50IHN0YXRlCisvLyAoQWxsIHF1b3RlIHJlbmRlcmVycyBhcmUgbGlua2VkIGFuZCBoYXZlIHRo
ZSBjb3JyZWN0IGRlcHRoIHNldCkKKy8vIDIuIFRoZSBxdW90ZSByZW5kZXJlcnMgb2YgdGhlIGlu
c2VydGVkIGxpc3QgYXJlIGluIGEgdHJlZSBvZiByZW5kZXJlcnMgb2YgdGhlaXIgb3duIHdoaWNo
IGhhcyBiZWVuIGp1c3QKKy8vIGluc2VydGVkIGluIHRoZSBtYWluIHJlbmRlcmVyIHRyZWUgd2l0
aCBpdHMgcm9vdCBhcyBjaGlsZCBvZiBzb21lIHJlbmRlcmVyLgorLy8gMy4gVGhlIHF1b3RlIHJl
bmRlcmVycyBpbiB0aGUgaW5zZXJ0ZWQgbGlzdCBoYXZlIGRlcHRocyBjb25zaXN0ZW50IHdpdGgg
dGhlaXIgcG9zaXRpb24gaW4gdGhlIGxpc3QgcmVsYXRpdmUKKy8vIHRvICJ0aGlzIiwgdGh1cyBp
ZiAidGhpcyIgZG9lcyBub3QgbmVlZCB0byBjaGFuZ2UgaXRzIGRlcHRoIHVwb24gaW5zZXJ0aW9u
LCB0aGUgb3RoZXIgcmVuZGVyZXJzIGluIHRoZSBsaXN0IGRvbid0CisvLyBuZWVkIHRvIGVpdGhl
ci4KK3ZvaWQgUmVuZGVyUXVvdGU6OnBsYWNlUXVvdGUoKQoreworICAgIFJlbmRlclF1b3RlKiBo
ZWFkID0gdGhpczsKKyAgICBBU1NFUlQoIWhlYWQtPm1fcHJldmlvdXMpOworICAgIFJlbmRlclF1
b3RlKiB0YWlsID0gMDsKKyAgICBmb3IgKFJlbmRlck9iamVjdCogcHJlZGVjZXNzb3IgPSBoZWFk
LT5wcmV2aW91c0luUHJlT3JkZXIoKTsgcHJlZGVjZXNzb3I7IHByZWRlY2Vzc29yID0gcHJlZGVj
ZXNzb3ItPnByZXZpb3VzSW5QcmVPcmRlcigpKSB7CisgICAgICAgIGlmICghcHJlZGVjZXNzb3It
PmlzUXVvdGUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBoZWFkLT5tX3ByZXZp
b3VzID0gdG9SZW5kZXJRdW90ZShwcmVkZWNlc3Nvcik7CisgICAgICAgIGlmIChoZWFkLT5tX3By
ZXZpb3VzLT5tX25leHQpIHsKKyAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gc3BsaWNlIHRoZSBs
aXN0IG9mIHF1b3RlcyBoZWFkZWQgYnkgaGVhZCBpbnRvIHRoZSBkb2N1bWVudCdzIGxpc3Qgb2Yg
cXVvdGVzLgorICAgICAgICAgICAgdGFpbCA9IGhlYWQ7CisgICAgICAgICAgICB3aGlsZSAodGFp
bC0+bV9uZXh0KQorICAgICAgICAgICAgICAgICB0YWlsID0gdGFpbC0+bV9uZXh0OworICAgICAg
ICAgICAgdGFpbC0+bV9uZXh0ID0gaGVhZC0+bV9wcmV2aW91cy0+bV9uZXh0OworICAgICAgICAg
ICAgQVNTRVJUKHRhaWwtPm1fbmV4dC0+bV9wcmV2aW91cyA9PSBoZWFkLT5tX3ByZXZpb3VzKTsK
KyAgICAgICAgICAgIHRhaWwtPm1fbmV4dC0+bV9wcmV2aW91cyA9ICB0YWlsOworICAgICAgICAg
ICAgdGFpbCA9IHRhaWwtPm1fbmV4dDsgLy8gVGhpcyBtYXJrcyB0aGUgc3BsaWNpbmcgcG9pbnQg
aGVyZSB0aGVyZSBtYXkgYmUgYSBkZXB0aCBkaXNjb250aW51aXR5CisgICAgICAgIH0KKyAgICAg
ICAgaGVhZC0+bV9wcmV2aW91cy0+bV9uZXh0ID0gaGVhZDsKKyAgICAgICAgQVNTRVJUKGhlYWQt
Pm1fcHJldmlvdXMtPm1fZGVwdGggIT0gVU5LTk9XTl9ERVBUSCk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICBpbnQgbmV3RGVwdGg7CisgICAgaWYgKCFoZWFkLT5tX3ByZXZpb3VzKSB7Cisg
ICAgICAgIG5ld0RlcHRoID0gMDsKKyAgICAgICAgZ290byBza2lwTmV3RGVwdGhDYWxjOworICAg
IH0KKyAgICBuZXdEZXB0aCA9IGhlYWQtPm1fcHJldmlvdXMtPm1fZGVwdGg7CisgICAgZG8gewor
ICAgICAgICBhZGp1c3REZXB0aChuZXdEZXB0aCwgaGVhZC0+bV9wcmV2aW91cy0+bV90eXBlKTsK
K3NraXBOZXdEZXB0aENhbGM6CisgICAgICAgIGlmIChoZWFkLT5tX2RlcHRoID09IG5ld0RlcHRo
KSB7IC8vIEFsbCByZW1haW5pbmcgZGVwdGggc2hvdWxkIGJlIGNvcnJlY3QgZXhjZXB0IGlmIHNw
bGljaW5nIHdhcyBkb25lLgorICAgICAgICAgICAgaWYgKCF0YWlsKSAvLyBXZSd2ZSBkb25lIHRo
ZSBwb3N0IHNwbGljaW5nIHNlY3Rpb24gYWxyZWFkeSBvciB0aGVyZSB3YXMgbm8gc3BsaWNpbmcu
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBoZWFkID0gdGFpbDsgLy8gQ29u
dGludWUgYWZ0ZXIgdGhlIHNwbGljaW5nIHBvaW50CisgICAgICAgICAgICB0YWlsID0gMDsgLy8g
TWFyayB0aGUgcG9zc2libGUgc3BsaWNpbmcgcG9pbnQgZGlzY29udGludWl0eSBmaXhlZC4KKyAg
ICAgICAgICAgIG5ld0RlcHRoID0gaGVhZC0+bV9wcmV2aW91cy0+bV9kZXB0aDsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGhlYWQtPm1fZGVwdGggPSBuZXdEZXB0
aDsKKyAgICAgICAgLy8gRklYTUU6IElmIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBxdW90
YXRpb24gY2hhcmFjdGVycyBkb2VzIG5vdCBjaGFuZ2Ugd2UgbWF5IG9ubHkgbmVlZCB0bworICAg
ICAgICAvLyBJbnZhbGlkYXRlIHRoZSByZW5kZXJlcidzIGFyZWEgbm90IGEgcmVsYXlvdXQuCisg
ICAgICAgIGhlYWQtPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOworICAgICAg
ICBoZWFkID0gaGVhZC0+bV9uZXh0OworICAgICAgICBpZiAoaGVhZCA9PSB0YWlsKSAvLyBXZSBh
cmUgYXQgdGhlIHNwbGljaW5nIHBvaW50CisgICAgICAgICAgICB0YWlsID0gMDsgLy8gTWFyayB0
aGUgcG9zc2libGUgZGVwdGggZGlzY29udGludWl0eSBmaXhlZC4KKyAgICB9IHdoaWxlIChoZWFk
KTsKK30KKworI2RlZmluZSBBUlJBWV9TSVpFKENhcnJheSkgKHNpemVvZihDYXJyYXkpIC8gc2l6
ZW9mKCpDYXJyYXkpKQorI2RlZmluZSBMQU5HVUFHRV9EQVRBKG5hbWUsIGxhbmd1YWdlU291cmNl
QXJyYXkpIHsgbmFtZSwgbGFuZ3VhZ2VTb3VyY2VBcnJheSwgQVJSQVlfU0laRShsYW5ndWFnZVNv
dXJjZUFycmF5KSB9CisjZGVmaW5lIFUoeCkgKChjb25zdCBVQ2hhciopTCMjeCkKKworc3RhdGlj
IGNvbnN0IFVDaGFyKiBzaW1wbGVRdW90ZXNbXSA9IHtVKCJcIiIpLCBVKCJcIiIpLCBVKCInIiks
IFUoIiciKX07CisKK3N0YXRpYyBjb25zdCBVQ2hhciogZW5nbGlzaFF1b3Rlc1tdID0ge1UoIlx4
MjAxQyIpLCBVKCJceDIwMUQiKSwgVSgiXHgyMDE4IiksIFUoIlx4MjAxOSIpfTsKK3N0YXRpYyBj
b25zdCBVQ2hhciogbm9yd2VnaWFuUXVvdGVzW10gPSB7IFUoIlx4MDBBQiIpLCBVKCJceDAwQkIi
KSwgVSgiXHgyMDM5IiksIFUoIlx4MjAzQSIpIH07CitzdGF0aWMgY29uc3QgVUNoYXIqIHJvbWFu
aWFuUXVvdGVzW10gPSB7IFUoIlx4MjAxRSIpLCBVKCJceDIwMUQiKX07CitzdGF0aWMgY29uc3Qg
VUNoYXIqIHJ1c3NpYW5RdW90ZXNbXSA9IHsgVSgiXHgwMEFCIiksIFUoIlx4MDBCQiIpLCBVKCJc
eDIwMUUiKSwgVSgiXHgyMDFDIikgfTsKKyN1bmRlZiBVCisKK3N0cnVjdCBMYW5ndWFnZURhdGEg
eworICAgIGNvbnN0IGNoYXIgKm5hbWU7CisgICAgY29uc3QgVUNoYXIqIGNvbnN0KiBjb25zdCBh
cnJheTsKKyAgICBjb25zdCBpbnQgYXJyYXlTaXplOworICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0
IExhbmd1YWdlRGF0YSYgY29tcGFyZVRvKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0
cmNtcChuYW1lLCBjb21wYXJlVG8ubmFtZSk7CisgICAgfQorfTsKKworLy8gRGF0YSBtYXN0IGJl
IGFscGhhYmV0aWNhbGx5IHNvcnRlZCBhbmQgaW4gYWxsIGxvd2VyIGNhc2UgZm9yIGZhc3QgY29t
cGFyaXNvbgorTGFuZ3VhZ2VEYXRhIGxhbmd1YWdlRGF0YVtdID0geworICAgIExBTkdVQUdFX0RB
VEEoImVuIiwgZW5nbGlzaFF1b3RlcyksCisgICAgTEFOR1VBR0VfREFUQSgibm8iLCBub3J3ZWdp
YW5RdW90ZXMpLAorICAgIExBTkdVQUdFX0RBVEEoInJvIiwgcm9tYW5pYW5RdW90ZXMpLAorICAg
IExBTkdVQUdFX0RBVEEoInJ1IiwgcnVzc2lhblF1b3RlcykKK307CisjdW5kZWYgTEFOR1VBR0Vf
REFUQQorY29uc3QgTGFuZ3VhZ2VEYXRhKiBjb25zdCBsYW5ndWFnZURhdGFFbmQgPSBsYW5ndWFn
ZURhdGEgKyBBUlJBWV9TSVpFKGxhbmd1YWdlRGF0YSk7CisKKyNkZWZpbmUgZGVmYXVsdExhbmd1
YWdlUXVvdGVzU291cmNlIHNpbXBsZVF1b3RlcworI2RlZmluZSBkZWZhdWx0TGFuZ3VhZ2VRdW90
ZXNDb3VudCBBUlJBWV9TSVpFKGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1NvdXJjZSkKKworc3RhdGlj
IFF1b3Rlc0RhdGEqIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1ZhbHVlID0gMDsKK3N0YXRpYyBjb25z
dCBRdW90ZXNEYXRhKiBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXMoKQoreworICAgIGlmICghZGVmYXVs
dExhbmd1YWdlUXVvdGVzVmFsdWUpIHsKKyAgICAgICAgZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFs
dWUgPSBRdW90ZXNEYXRhOjpjcmVhdGUoZGVmYXVsdExhbmd1YWdlUXVvdGVzQ291bnQpOworICAg
ICAgICBpZiAoIWRlZmF1bHRMYW5ndWFnZVF1b3Rlc1ZhbHVlKQorICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIFN0cmluZyogZGF0YSA9IGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1ZhbHVlLT5k
YXRhKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVmYXVsdExhbmd1YWdlUXVvdGVz
Q291bnQ7ICsraSkKKyAgICAgICAgICAgIGRhdGFbaV0gPSBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNT
b3VyY2VbaV07CisgICAgfQorICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZTsK
K30KKyN1bmRlZiBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNTb3VyY2UKKyN1bmRlZiBkZWZhdWx0TGFu
Z3VhZ2VRdW90ZXNDb3VudAorCit0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPEF0b21pY1N0cmluZ0lt
cGw+LCBRdW90ZXNEYXRhKiA+IFF1b3Rlc01hcDsKKworc3RhdGljIFF1b3Rlc01hcCYgcXVvdGVz
TWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFF1b3Rlc01hcCwgc3RhdGljUXVvdGVz
TWFwLCAoKSk7CisgICAgcmV0dXJuIHN0YXRpY1F1b3Rlc01hcDsKK30KKworc3RhdGljIGNvbnN0
IFF1b3Rlc0RhdGEqIHF1b3Rlc0Zvckxhbmd1YWdlKEF0b21pY1N0cmluZ0ltcGwqIGxhbmd1YWdl
KQoreworICAgIFF1b3Rlc0RhdGEqIHJldHVyblZhbHVlOworICAgIEF0b21pY1N0cmluZyBsb3dl
cihsYW5ndWFnZS0+bG93ZXIoKSk7CisgICAgcmV0dXJuVmFsdWUgPSBxdW90ZXNNYXAoKS5nZXQo
bG93ZXIuaW1wbCgpKTsKKyAgICBpZiAocmV0dXJuVmFsdWUpCisgICAgICAgIHJldHVybiByZXR1
cm5WYWx1ZTsKKyAgICBDU3RyaW5nIHMoc3RhdGljX2Nhc3Q8Y29uc3QgU3RyaW5nJj4obG93ZXIp
LmFzY2lpKCkpOworICAgIExhbmd1YWdlRGF0YSByZXF1ZXN0ID0geyBzLmJ1ZmZlcigpLT5kYXRh
KCksIDAsIDAgfTsKKyAgICBjb25zdCBMYW5ndWFnZURhdGEqIGxvd2VyQm91bmQgPSBzdGQ6Omxv
d2VyX2JvdW5kPGNvbnN0IExhbmd1YWdlRGF0YSosIGNvbnN0IExhbmd1YWdlRGF0YT4obGFuZ3Vh
Z2VEYXRhLCBsYW5ndWFnZURhdGFFbmQsIHJlcXVlc3QpOworICAgIGlmIChsb3dlckJvdW5kID09
IGxhbmd1YWdlRGF0YUVuZCkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3Rlcygp
OworICAgIGlmIChzdHJuY21wKGxvd2VyQm91bmQtPm5hbWUsIHJlcXVlc3QubmFtZSwgc3RybGVu
KGxvd2VyQm91bmQtPm5hbWUpKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3Rl
cygpOworICAgIHJldHVyblZhbHVlID0gUXVvdGVzRGF0YTo6Y3JlYXRlKGxvd2VyQm91bmQtPmFy
cmF5U2l6ZSk7CisgICAgaWYgKCFyZXR1cm5WYWx1ZSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRM
YW5ndWFnZVF1b3RlcygpOworICAgIFN0cmluZyogZGF0YSA9IHJldHVyblZhbHVlLT5kYXRhKCk7
CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb3dlckJvdW5kLT5hcnJheVNpemU7ICsraSkKKyAg
ICAgICAgZGF0YVtpXSA9IGxvd2VyQm91bmQtPmFycmF5W2ldOworICAgIHF1b3Rlc01hcCgpLnNl
dChsb3dlci5pbXBsKCksIHJldHVyblZhbHVlKTsKKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7Cit9
CisjdW5kZWYgQVJSQVlfU0laRQorCitzdGF0aWMgY29uc3QgUXVvdGVzRGF0YSogZGVmYXVsdFF1
b3Rlcyhjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICBzdGF0aWMgU3RyaW5nIGxh
bmdTdHJpbmcgPSAibGFuZyI7CisgICAgTm9kZSogbm9kZSA9ICBvYmplY3QtPmdlbmVyYXRpbmdO
b2RlKCk7CisgICAgRWxlbWVudCogZWxlbWVudDsKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAg
ZWxlbWVudCA9IG9iamVjdC0+ZG9jdW1lbnQoKS0+Ym9keSgpOworICAgICAgICBpZiAoIWVsZW1l
bnQpCisgICAgICAgICAgICBlbGVtZW50ID0gb2JqZWN0LT5kb2N1bWVudCgpLT5kb2N1bWVudEVs
ZW1lbnQoKTsKKyAgICB9IGVsc2UgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAg
ICAgZWxlbWVudCA9IG5vZGUtPnBhcmVudEVsZW1lbnQoKTsKKyAgICAgICAgaWYgKCFlbGVtZW50
KQorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3RlcygpOworICAgIH0gZWxz
ZQorICAgICAgZWxlbWVudCA9IHRvRWxlbWVudChub2RlKTsKKyAgICBjb25zdCBBdG9taWNTdHJp
bmcqIGxhbmd1YWdlOworICAgIHdoaWxlICgobGFuZ3VhZ2UgPSAmZWxlbWVudC0+Z2V0QXR0cmli
dXRlKGxhbmdTdHJpbmcpKSAmJiBsYW5ndWFnZS0+aXNOdWxsKCkpIHsKKyAgICAgICAgZWxlbWVu
dCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKTsKKyAgICAgICAgaWYgKCFlbGVtZW50KQorICAg
ICAgICAgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3RlcygpOworICAgIH0KKyAgICByZXR1
cm4gcXVvdGVzRm9yTGFuZ3VhZ2UobGFuZ3VhZ2UtPmltcGwoKSk7Cit9CisKK1Bhc3NSZWZQdHI8
U3RyaW5nSW1wbD4gUmVuZGVyUXVvdGU6Om9yaWdpbmFsVGV4dCgpIGNvbnN0Cit7CisgICAgaWYg
KCFwYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgQVNTRVJUKG1fZGVwdGggIT0gVU5L
Tk9XTl9ERVBUSCk7CisgICAgIGNvbnN0IFF1b3Rlc0RhdGEqIHF1b3RlcyA9IHN0eWxlKCktPnF1
b3RlcygpOworICAgICBpZiAoIXF1b3RlcykKKyAgICAgICAgIHF1b3RlcyA9IGRlZmF1bHRRdW90
ZXModGhpcyk7CisgICAgaWYgKCFxdW90ZXMtPmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGVtcHR5
QXRvbS5pbXBsKCk7CisgICAgaW50IGluZGV4ID0gbV9kZXB0aCAqIDI7CisgICAgc3dpdGNoICht
X3R5cGUpIHsKKyAgICBjYXNlIE5PX09QRU5fUVVPVEU6CisgICAgY2FzZSBOT19DTE9TRV9RVU9U
RToKKyAgICAgICAgcmV0dXJuIFN0cmluZygiIikuaW1wbCgpOworICAgIGNhc2UgQ0xPU0VfUVVP
VEU6CisgICAgICAgIGlmIChpbmRleCkKKyAgICAgICAgICAgIC0taW5kZXg7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICsraW5kZXg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT1BFTl9R
VU9URToKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybiBlbXB0eUF0b20uaW1wbCgpOworICAgIH0KKyAgICBp
ZiAoaW5kZXggPj0gcXVvdGVzLT5sZW5ndGgpCisgICAgICAgIGluZGV4ID0gKHF1b3Rlcy0+bGVu
Z3RoLTIpIHwgKGluZGV4ICYgMSk7CisgICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJu
IGVtcHR5QXRvbS5pbXBsKCk7CisgICAgcmV0dXJuIHF1b3Rlcy0+ZGF0YSgpW2luZGV4XS5pbXBs
KCk7Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhz
KGludCBsZWFkKQoreworICAgIHNldFRleHRJbnRlcm5hbChvcmlnaW5hbFRleHQoKSk7CisgICAg
UmVuZGVyVGV4dDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMobGVhZCk7Cit9CisKK3Zv
aWQgUmVuZGVyUXVvdGU6OnJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCit7CisgICAgaWYgKHJlbmRlcmVyLT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBmb3IgKFJlbmRlck9iamVjdCogZGVzY2VuZGFudCA9IHJlbmRl
cmVyOyBkZXNjZW5kYW50OyBkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIo
cmVuZGVyZXIpKQorICAgICAgICBpZiAoZGVzY2VuZGFudC0+aXNRdW90ZSgpKSB7CisgICAgICAg
ICAgICB0b1JlbmRlclF1b3RlKGRlc2NlbmRhbnQpLT5wbGFjZVF1b3RlKCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorfQorCit2b2lkIFJlbmRlclF1b3RlOjpyZW5kZXJlclJlbW92
ZWRGcm9tVHJlZShSZW5kZXJPYmplY3QqIHN1YnRyZWVSb290KQoreworICAgIGlmIChzdWJ0cmVl
Um9vdC0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgICAgICByZXR1cm47CisgICAgZm9y
IChSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQgPSBzdWJ0cmVlUm9vdDsgZGVzY2VuZGFudDsgZGVz
Y2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHN1YnRyZWVSb290KSkKKyAgICAg
ICAgaWYgKGRlc2NlbmRhbnQtPmlzUXVvdGUoKSkgeworICAgICAgICAgICAgUmVuZGVyUXVvdGUq
IHJlbW92ZWRRdW90ZSA9IHRvUmVuZGVyUXVvdGUoZGVzY2VuZGFudCk7CisgICAgICAgICAgICBS
ZW5kZXJRdW90ZSogbGFzdFF1b3RlQmVmb3JlID0gcmVtb3ZlZFF1b3RlLT5tX3ByZXZpb3VzOwor
ICAgICAgICAgICAgcmVtb3ZlZFF1b3RlLT5tX3ByZXZpb3VzID0gMDsKKyAgICAgICAgICAgIGlu
dCBkZXB0aCA9IHJlbW92ZWRRdW90ZS0+bV9kZXB0aDsKKyAgICAgICAgICAgIGZvciAoZGVzY2Vu
ZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHN1YnRyZWVSb290KTsgZGVzY2VuZGFu
dDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHN1YnRyZWVSb290KSkK
KyAgICAgICAgICAgICAgICBpZiAoZGVzY2VuZGFudC0+aXNRdW90ZSgpKQorICAgICAgICAgICAg
ICAgICAgICByZW1vdmVkUXVvdGUgPSB0b1JlbmRlclF1b3RlKGRlc2NlbmRhbnQpOworICAgICAg
ICAgICAgUmVuZGVyUXVvdGUqIHF1b3RlQWZ0ZXIgPSByZW1vdmVkUXVvdGUtPm1fbmV4dDsKKyAg
ICAgICAgICAgIHJlbW92ZWRRdW90ZS0+bV9uZXh0ID0gMDsKKyAgICAgICAgICAgIGlmIChsYXN0
UXVvdGVCZWZvcmUpCisgICAgICAgICAgICAgICAgbGFzdFF1b3RlQmVmb3JlLT5tX25leHQgPSBx
dW90ZUFmdGVyOworICAgICAgICAgICAgaWYgKHF1b3RlQWZ0ZXIpIHsKKyAgICAgICAgICAgICAg
ICBxdW90ZUFmdGVyLT5tX3ByZXZpb3VzID0gbGFzdFF1b3RlQmVmb3JlOworICAgICAgICAgICAg
ICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlcHRoID09IHF1b3RlQWZ0ZXItPm1f
ZGVwdGgpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgcXVvdGVBZnRlci0+bV9kZXB0aCA9IGRlcHRoOworICAgICAgICAgICAgICAgICAgICBxdW90
ZUFmdGVyLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKKyAgICAgICAgICAg
ICAgICAgICAgYWRqdXN0RGVwdGgoZGVwdGgsIHF1b3RlQWZ0ZXItPm1fdHlwZSk7CisgICAgICAg
ICAgICAgICAgICAgIHF1b3RlQWZ0ZXIgPSBxdW90ZUFmdGVyLT5tX25leHQ7CisgICAgICAgICAg
ICAgICAgfSB3aGlsZSAocXVvdGVBZnRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorfQorCit2b2lkIFJlbmRlclF1b3RlOjpzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQoreworICAg
IGNvbnN0IFF1b3Rlc0RhdGEqIG5ld1F1b3RlcyA9IHN0eWxlKCktPnF1b3RlcygpOworICAgIGNv
bnN0IFF1b3Rlc0RhdGEqIG9sZFF1b3RlcyA9IG9sZFN0eWxlID8gb2xkU3R5bGUtPnF1b3Rlcygp
IDogMDsKKyAgICBpZiAoISgobmV3UXVvdGVzICYmIG9sZFF1b3RlcyAmJiAoKm5ld1F1b3RlcyA9
PSAqb2xkUXVvdGVzKSkgfHwgKCFuZXdRdW90ZXMgJiYgIW9sZFF1b3RlcykpKQorICAgICAgICBz
ZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKKyAgICBSZW5kZXJUZXh0OjpzdHls
ZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYzI5MzhiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgTm9raWEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBS
ZW5kZXJRdW90ZV9oCisjZGVmaW5lIFJlbmRlclF1b3RlX2gKKworI2luY2x1ZGUgIlJlbmRlclN0
eWxlQ29uc3RhbnRzLmgiCisjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFJlbmRlclF1b3RlIDogcHVibGljIFJlbmRlclRleHQgeworcHVibGlj
OgorICAgIFJlbmRlclF1b3RlKERvY3VtZW50KiwgY29uc3QgUXVvdGVUeXBlKTsKKyAgICB2aXJ0
dWFsIH5SZW5kZXJRdW90ZSgpOworCisgICAgc3RhdGljIHZvaWQgcmVuZGVyZXJTdWJ0cmVlQXR0
YWNoZWQoUmVuZGVyT2JqZWN0Kik7CisgICAgc3RhdGljIHZvaWQgcmVuZGVyZXJSZW1vdmVkRnJv
bVRyZWUoUmVuZGVyT2JqZWN0Kik7Citwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsK
K3ByaXZhdGU6CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9OworICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBvcmlnaW5hbFRleHQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoaW50IGxlYWRXaWR0aCk7
CisgICAgUXVvdGVUeXBlIG1fdHlwZTsKKyAgICBpbnQgbV9kZXB0aDsKKyAgICBSZW5kZXJRdW90
ZSogbV9uZXh0OworICAgIFJlbmRlclF1b3RlKiBtX3ByZXZpb3VzOworICAgIHZvaWQgcGxhY2VR
dW90ZSgpOworfTsKKworaW5saW5lIFJlbmRlclF1b3RlKiB0b1JlbmRlclF1b3RlKFJlbmRlck9i
amVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVCghb2JqZWN0IHx8IG9iamVjdC0+aXNRdW90ZSgp
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUXVvdGUqPihvYmplY3QpOworfQorCisv
LyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lk
IHRvUmVuZGVyUXVvdGUoY29uc3QgUmVuZGVyUXVvdGUqKTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gUmVuZGVyUXVvdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKaW5kZXggNzYwZjAyZC4uMTk1ZmEzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwCkBAIC03OSw2
ICs3OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCIKICNpbmNsdWRl
ICJSZW5kZXJQYXJ0LmNwcCIKICNpbmNsdWRlICJSZW5kZXJQcm9ncmVzcy5jcHAiCisjaW5jbHVk
ZSAiUmVuZGVyUXVvdGUuY3BwIgogI2luY2x1ZGUgIlJlbmRlclJlcGxhY2VkLmNwcCIKICNpbmNs
dWRlICJSZW5kZXJSZXBsaWNhLmNwcCIKICNpbmNsdWRlICJSZW5kZXJSdWJ5LmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwCmluZGV4IGQxNTBm
NzcuLmFiNTA0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9D
b250ZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRl
bnREYXRhLmNwcApAQCAtNTEsNiArNTEsOCBAQCBib29sIENvbnRlbnREYXRhOjpkYXRhRXF1aXZh
bGVudChjb25zdCBDb250ZW50RGF0YSYgb3RoZXIpIGNvbnN0CiAgICAgICAgIHJldHVybiBTdHls
ZUltYWdlOjppbWFnZXNFcXVpdmFsZW50KGltYWdlKCksIG90aGVyLmltYWdlKCkpOwogICAgIGNh
c2UgQ09OVEVOVF9DT1VOVEVSOgogICAgICAgICByZXR1cm4gKmNvdW50ZXIoKSA9PSAqb3RoZXIu
Y291bnRlcigpOworICAgIGNhc2UgQ09OVEVOVF9RVU9URToKKyAgICAgICAgcmV0dXJuIHF1b3Rl
KCkgPT0gb3RoZXIucXVvdGUoKTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTcxLDYgKzczLDggQEAgdm9pZCBDb250ZW50RGF0YTo6ZGVsZXRlQ29udGVudCgpCiAgICAg
Y2FzZSBDT05URU5UX0NPVU5URVI6CiAgICAgICAgIGRlbGV0ZSBtX2NvbnRlbnQubV9jb3VudGVy
OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENPTlRFTlRfUVVPVEU6CisgICAgICAgIGJyZWFr
OwogICAgIH0KIAogICAgIG1fdHlwZSA9IENPTlRFTlRfTk9ORTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmgKaW5kZXggMTVmNjkxMi4uY2NlMzc1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmgKQEAgLTUxLDYg
KzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IENPTlRFTlRfQ09VTlRFUjsgfQogICAgIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZSA9PSBDT05URU5UX09CSkVDVDsgfQogICAgIGJvb2wgaXNOb25lKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IENPTlRFTlRfTk9ORTsgfQorICAgIGJvb2wgaXNRdW90ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDT05URU5UX1FVT1RFOyB9CiAgICAgYm9vbCBpc1RleHQo
KSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ09OVEVOVF9URVhUOyB9CiAKICAgICBTdHlsZUNv
bnRlbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KQEAgLTkzLDYgKzk0LDE4
IEBAIHB1YmxpYzoKICAgICAgICAgbV9jb250ZW50Lm1fY291bnRlciA9IGNvdW50ZXIubGVha1B0
cigpOwogICAgIH0KIAorICAgIFF1b3RlVHlwZSBxdW90ZSgpIGNvbnN0CisgICAgeworICAgICAg
ICBBU1NFUlQoaXNRdW90ZSgpKTsKKyAgICAgICAgcmV0dXJuIG1fY29udGVudC5tX3F1b3RlOwor
ICAgIH0KKyAgICB2b2lkIHNldFF1b3RlKFF1b3RlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAg
ZGVsZXRlQ29udGVudCgpOworICAgICAgICBtX3R5cGUgPSBDT05URU5UX1FVT1RFOworICAgICAg
ICBtX2NvbnRlbnQubV9xdW90ZSA9IHR5cGU7CisgICAgfQorCiAgICAgQ29udGVudERhdGEqIG5l
eHQoKSBjb25zdCB7IHJldHVybiBtX25leHQuZ2V0KCk7IH0KICAgICB2b2lkIHNldE5leHQoUGFz
c093blB0cjxDb250ZW50RGF0YT4gbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CiAKQEAgLTEwNCw2
ICsxMTcsNyBAQCBwcml2YXRlOgogICAgICAgICBTdHlsZUltYWdlKiBtX2ltYWdlOwogICAgICAg
ICBTdHJpbmdJbXBsKiBtX3RleHQ7CiAgICAgICAgIENvdW50ZXJDb250ZW50KiBtX2NvdW50ZXI7
CisgICAgICAgIFF1b3RlVHlwZSBtX3F1b3RlOwogICAgIH0gbV9jb250ZW50OwogICAgIE93blB0
cjxDb250ZW50RGF0YT4gbV9uZXh0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9RdW90ZXNEYXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44
MjlmZTNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1F1b3Rlc0RhdGEuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAy
MDExIE5va2lhIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1F1
b3Rlc0RhdGEqIFF1b3Rlc0RhdGE6OmNyZWF0ZShpbnQgc3RyaW5nQ291bnQpCit7CisgICAgY2hh
ciogdG1wID0gbmV3IGNoYXJbc2l6ZW9mKFF1b3Rlc0RhdGEpK3NpemVvZihTdHJpbmcpKnN0cmlu
Z0NvdW50XTsKKyAgICBpZiAoIXRtcCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgbmV3ICh0bXAp
IFF1b3Rlc0RhdGEoc3RyaW5nQ291bnQpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RyaW5n
Q291bnQ7ICsraSkKKyAgICAgICAgbmV3ICh0bXAgK3NpemVvZihRdW90ZXNEYXRhKSArIHNpemVv
ZihTdHJpbmcpKmkpIFN0cmluZygpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFF1b3Rl
c0RhdGEqPih0bXApOworfQorCitib29sIFF1b3Rlc0RhdGE6Om9wZXJhdG9yPT0oY29uc3QgUXVv
dGVzRGF0YSYgb3RoZXIpIGNvbnN0Cit7CisgICAgaWYgKHRoaXMgPT0gJm90aGVyKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoISZvdGhlciB8fCAhdGhpcykKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmIChsZW5ndGggIT0gb3RoZXIubGVuZ3RoKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgY29uc3QgU3RyaW5nKiBteURhdGEgPSBkYXRhKCk7CisgICAgY29uc3QgU3Ry
aW5nKiBvdGhlckRhdGEgPSBvdGhlci5kYXRhKCk7CisgICAgZm9yIChpbnQgaSA9IGxlbmd0aC0x
OyBpID49IDA7IC0taSkKKyAgICAgICAgaWYgKG15RGF0YVtpXSAhPSBvdGhlckRhdGFbaV0pCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1F1b3Rlc0Rh
dGE6On5RdW90ZXNEYXRhKCkKK3sKKyAgICBTdHJpbmcqIHAgPSBkYXRhKCk7CisgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgcFtpXS5+U3RyaW5nKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9RdW90ZXNEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UXVvdGVzRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmOGE2ZGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUXVvdGVz
RGF0YS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBRdW90ZXNEYXRhX2gKKyNkZWZp
bmUgUXVvdGVzRGF0YV9oCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUXVvdGVz
RGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFF1b3Rlc0RhdGE+IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5RdW90ZXNEYXRhKCk7CisgICAgc3RhdGljIFF1b3Rlc0RhdGEqIGNyZWF0ZShpbnQgc3Ry
aW5nQ291bnQpOworICAgIFN0cmluZyogZGF0YSgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
U3RyaW5nKj4odGhpcysxKTsgfQorICAgIGNvbnN0IFN0cmluZyogZGF0YSgpIGNvbnN0IHsgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgU3RyaW5nKj4odGhpcysxKTsgfQorICAgIGludCBs
ZW5ndGg7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFF1b3Rlc0RhdGEmKSBjb25zdDsKKyAg
ICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiBwKSB7IGRlbGV0ZVtdIHN0YXRpY19jYXN0PGNo
YXIqPihwKTsgfQorcHJpdmF0ZToKKyAgICBRdW90ZXNEYXRhKGludCBzdHJpbmdDb3VudCkgOiBs
ZW5ndGgoc3RyaW5nQ291bnQpIHt9Cit9OworCit9CisjZW5kaWYgLy8gUXVvdGVzRGF0YV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBi
NzZhMzUwLi44MWRhNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5h
bWVzLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkZvbnRTZWxl
Y3Rvci5oIgorI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5o
IgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNjYWxlVHJhbnNmb3JtT3Bl
cmF0aW9uLmgiCkBAIC02MDUsNiArNjA2LDEzIEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEN1cnNv
ckxpc3QoUGFzc1JlZlB0cjxDdXJzb3JMaXN0PiBvdGhlcikKICAgICByYXJlSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+Y3Vyc29yRGF0YSA9IG90aGVyOwogfQogCit2b2lkIFJlbmRlclN0eWxlOjpz
ZXRRdW90ZXMoUGFzc1JlZlB0cjxRdW90ZXNEYXRhPiBxKQoreworICAgIGlmICgqcmFyZUluaGVy
aXRlZERhdGEtPnF1b3Rlcy5nZXQoKSA9PSAqcS5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IHJhcmVJbmhlcml0ZWREYXRhLmFjY2VzcygpLT5xdW90ZXMgPSBxOworfQorCiB2b2lkIFJlbmRl
clN0eWxlOjpjbGVhckN1cnNvckxpc3QoKQogewogICAgIGlmIChyYXJlSW5oZXJpdGVkRGF0YS0+
Y3Vyc29yRGF0YSkKQEAgLTY3Miw2ICs2ODAsMTEgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29u
dGVudChQYXNzT3duUHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyLCBib29sIGFkZCkKICAgICBw
cmVwYXJlVG9TZXRDb250ZW50KDAsIGFkZCktPnNldENvdW50ZXIoY291bnRlcik7CiB9CiAKK3Zv
aWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQoUXVvdGVUeXBlIHF1b3RlLCBib29sIGFkZCkKK3sK
KyAgICBwcmVwYXJlVG9TZXRDb250ZW50KDAsIGFkZCktPnNldFF1b3RlKHF1b3RlKTsKK30KKwog
dm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRy
YW5zZm9ybSwgY29uc3QgSW50U2l6ZSYgYm9yZGVyQm94U2l6ZSwgQXBwbHlUcmFuc2Zvcm1Pcmln
aW4gYXBwbHlPcmlnaW4pIGNvbnN0CiB7CiAgICAgLy8gdHJhbnNmb3JtLW9yaWdpbiBicmFja2V0
cyB0aGUgdHJhbnNmb3JtIHdpdGggdHJhbnNsYXRlIG9wZXJhdGlvbnMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGFlOWJkYTIuLjgxNzVhOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0x
MTI3LDEwICsxMTI3LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvbnRlbnQoUGFzc1JlZlB0
cjxTdHJpbmdJbXBsPiwgYm9vbCBhZGQgPSBmYWxzZSk7CiAgICAgdm9pZCBzZXRDb250ZW50KFBh
c3NSZWZQdHI8U3R5bGVJbWFnZT4sIGJvb2wgYWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29u
dGVudChQYXNzT3duUHRyPENvdW50ZXJDb250ZW50PiwgYm9vbCBhZGQgPSBmYWxzZSk7CisgICAg
dm9pZCBzZXRDb250ZW50KFF1b3RlVHlwZSwgYm9vbCBhZGQgPSBmYWxzZSk7CiAKICAgICBjb25z
dCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3VudGVyRGlyZWN0aXZlcygpIGNvbnN0OwogICAgIENv
dW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0NvdW50ZXJEaXJlY3RpdmVzKCk7CiAKKyAgICBRdW90
ZXNEYXRhKiBxdW90ZXMoKSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+cXVvdGVz
LmdldCgpOyB9CisgICAgdm9pZCBzZXRRdW90ZXMoUGFzc1JlZlB0cjxRdW90ZXNEYXRhPik7CisK
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGh5cGhlblN0cmluZygpIGNvbnN0OwogCiAgICAgYm9v
bCBpbmhlcml0ZWROb3RFcXVhbChjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApp
bmRleCA0NGNkM2Y1Li4zYzYyZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtMjk3LDcgKzI5NywxMSBAQCBl
bnVtIEVMaXN0U3R5bGVUeXBlIHsKIH07CiAKIGVudW0gU3R5bGVDb250ZW50VHlwZSB7Ci0gICAg
Q09OVEVOVF9OT05FLCBDT05URU5UX09CSkVDVCwgQ09OVEVOVF9URVhULCBDT05URU5UX0NPVU5U
RVIKKyAgICBDT05URU5UX05PTkUsIENPTlRFTlRfT0JKRUNULCBDT05URU5UX1RFWFQsIENPTlRF
TlRfQ09VTlRFUiwgQ09OVEVOVF9RVU9URQorfTsKKworZW51bSBRdW90ZVR5cGUgeworICAgIE9Q
RU5fUVVPVEUsIENMT1NFX1FVT1RFLCBOT19PUEVOX1FVT1RFLCBOT19DTE9TRV9RVU9URQogfTsK
IAogZW51bSBFQm9yZGVyRml0IHsgQm9yZGVyRml0Qm9yZGVyLCBCb3JkZXJGaXRMaW5lcyB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuY3BwCmluZGV4IDZiOGUwMzkuLjlkY2Y5MTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5j
cHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgi
CiAKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIK
ICNpbmNsdWRlICJTaGFkb3dEYXRhLmgiCkBAIC0xMzIsNyArMTMzLDggQEAgYm9vbCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEm
IG8pIGNvbnN0CiAgICAgICAgICYmIHRleHRFbXBoYXNpc1Bvc2l0aW9uID09IG8udGV4dEVtcGhh
c2lzUG9zaXRpb24KICAgICAgICAgJiYgaHlwaGVuYXRpb25TdHJpbmcgPT0gby5oeXBoZW5hdGlv
blN0cmluZwogICAgICAgICAmJiBoeXBoZW5hdGlvbkxvY2FsZSA9PSBvLmh5cGhlbmF0aW9uTG9j
YWxlCi0gICAgICAgICYmIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsgPT0gby50ZXh0RW1waGFzaXND
dXN0b21NYXJrOworICAgICAgICAmJiB0ZXh0RW1waGFzaXNDdXN0b21NYXJrID09IG8udGV4dEVt
cGhhc2lzQ3VzdG9tTWFyaworICAgICAgICAmJiAqcXVvdGVzLmdldCgpID09ICpvLnF1b3Rlcy5n
ZXQoKTsKIH0KIAogYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpzaGFkb3dEYXRhRXF1aXZh
bGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgK
aW5kZXggZDI2Y2E4My4uZmM1NmUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0zNCw2ICszNCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1cnNvckxpc3Q7CitjbGFzcyBRdW90ZXNE
YXRhOwogY2xhc3MgU2hhZG93RGF0YTsKIAogLy8gVGhpcyBzdHJ1Y3QgaXMgZm9yIHJhcmVseSB1
c2VkIGluaGVyaXRlZCBDU1MzLCBDU1MyLCBhbmQgV2ViS2l0LXNwZWNpZmljIHByb3BlcnRpZXMu
CkBAIC04OCw2ICs4OSw3IEBAIHB1YmxpYzoKICAgICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25M
b2NhbGU7CiAKICAgICBBdG9taWNTdHJpbmcgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyazsKKyAgICBS
ZWZQdHI8UXVvdGVzRGF0YT4gcXVvdGVzOwogCiBwcml2YXRlOgogICAgIFN0eWxlUmFyZUluaGVy
aXRlZERhdGEoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82693</attachid>
            <date>2011-02-16 14:16:53 -0800</date>
            <delta_ts>2011-02-16 15:05:31 -0800</delta_ts>
            <desc>Proposed Patch. Rebased and fixed typing warning for some indexes.</desc>
            <filename>patchFor6503-4.patch</filename>
            <type>text/plain</type>
            <size>77014</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwM2IwYTYxLi5mM2VhZWQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIwMTEtMDIt
MTYgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgogCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24n
dCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyBmb3IgcXVvdGVzLgorCisg
ICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbDogQWRkZWQu
CisKKzIwMTEtMDItMTYgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgogCiAgICAgICAgIFJFR1JFU1NJT046IFVz
ZSBhZnRlciBmcmVlIGluIFdlYkNvcmU6OlJlbmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9k
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rl
cy0wMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQt
cXVvdGVzLTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li40MWVjOGYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVu
dC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlIHRl
eHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC4KKworPT09PT09PT1N
YXJrZXIxPT09PT09PT0KKworYWIJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9
PT09PT09PU1hcmtlcjI9PT09PT09PQorCitXV2FXV2JXV1dXV1dXVwkxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMz09PT09PT09CisKK1BBU1NFRApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViOWE0MGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLmh0
bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICBib2R5IHsgcXVvdGVzOiAiV1ciICJXV1dXIjsg
fQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkgeworICAgICAgICAgICAgICAgIHRlc3RX
aWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAg
ICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndp
ZHRoIik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkK
KyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZB
SUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VX
aWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBv
bmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJy
b3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwu
PC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRh
YmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRh
aW5lciI+PHE+YTxxPmI8L3E+PC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAg
ICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAg
ICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVm
ZXJlbmNlIj5XV2FXV2JXV1dXV1dXVzwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAg
ICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAg
ICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMTQ0NzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVv
dGVzLTAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKz09PT09PT09TWFya2VyMT09PT09
PT09CisKK2FiY2QJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1h
cmtlcjI9PT09PT09PQorCithV1dXYldXV1dXY1dXZFdXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWU3ODUxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMi5odG1sCkBA
IC0wLDAgKzEsNDkgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIg
IldXV1dXIjsgfQorICAgICAgICAgICAgc3BhbjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1
b3RlOyB9CisgICAgICAgICAgICBzcGFuOmFmdGVyIHsgY29udGVudDogbm8tY2xvc2UtcXVvdGU7
IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1bigpIHsKKyAgICAgICAgICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAi
ZGlzcGxheTogbm9uZTsiKTsKKyAgICAgICAgICAgICAgICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENvbnRhaW5lciIpLCBu
dWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIHJlZmVyZW5j
ZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAg
ICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNlV2lkdGgpCisgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIlBBU1NF
RCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0i
ICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVmZXJlbmNlV2lkdGg7CisgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0dHJpYnV0
ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4K
KyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJr
ZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9
PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAg
ICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHNwYW4+YTxxPmI8L3E+Yzwvc3Bhbj48cT5k
PC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAg
ICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAg
ICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5hV1dXYldXV1dX
Y1dXZFdXV1c8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEg
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+Cisg
ICAgICAgIDxwPj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJj
b25zb2xlIi8+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTFkZWJhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw5IEBACis9PT09PT09PU1hcmtlcjE9PT09PT09PQorCithYgkxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisK
K2FXV1diV1dXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1h
cmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43YzFmOWJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wMy5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAg
Ym9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAg
YjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5j
dGlvbiBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJ
bkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAg
ICAgICAgICAgICAgdGVzdFdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRlc3RDb250YWluZXIiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgi
d2lkdGgiKTsKKyAgICAgICAgICAgICAgICByZWZlcmVuY2VXaWR0aCA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2UiKSwgbnVsbCkuZ2V0
UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFdpZHRoID09
IHJlZmVyZW5jZVdpZHRoKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJQQVNTRUQiOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5pbm5lclRleHQgPSAiRkFJTEVEOiB0ZXN0V2lkdGg9IiArIHRlc3RXaWR0aCArIjsgZXhwZWN0
ZWQgIiArIHJlZmVyZW5jZVdpZHRoOworICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKworICAgIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuKCknLCAwKTsiPgorICAgICAg
ICA8cCBpZD0ib25seUluQnJvd3NlciI+VGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hv
dWxkIGJlIGlkZW50aWNhbC48L3A+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMT09PT09PT09
PC9wPgorICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAg
PHRkIGlkPSJ0ZXN0Q29udGFpbmVyIj48c3Bhbj48Yj5hPC9iPjwvc3Bhbj48cT5iPC9xPjwvdGQ+
CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwv
dGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09
PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRy
PgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj48c3BhbiBzdHlsZT0iZm9udC13
ZWlnaHQ6IGJvbGRlcjsiPmE8L3NwYW4+V1dXYldXV1dXPC90ZD4KKyAgICAgICAgICAgICAgICA8
dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAxICAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8
L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjM9PT09PT09
PTwvcD4KKyAgICAgICAgPHByZSBpZD0iY29uc29sZSIvPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMt
MDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1
b3Rlcy0wNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MjA1N2E0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQv
Y29udGVudC1xdW90ZXMtMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorPT09PT09PT1N
YXJrZXIxPT09PT09PT0KKworYgkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09
PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYldXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzAyOWQ3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC5odG1sCkBAIC0w
LDAgKzEsNDkgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldX
V1dXIjsgfQorICAgICAgICAgICAgYjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRp
c3BsYXk6IG5vbmU7Iik7CisgICAgICAgICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidG9SZW1vdmUiKTsKKyAgICAgICAgICAgICAgICBlbC5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGVsKTsKKyAgICAgICAgICAgICAgICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5j
ZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIGlm
ICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNlV2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdp
ZHRoICsiOyBleHBlY3RlZCAiICsgcmVmZXJlbmNlV2lkdGg7CisgICAgICAgICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW4oKScs
IDApOyI+CisgICAgICAgIDxwIGlkPSJvbmx5SW5Ccm93c2VyIj5UaGUgdGV4dHMgYmV0d2VlbiB0
aGUgbWFya2VycyBzaG91bGQgYmUgaWRlbnRpY2FsLjwvcD4KKyAgICAgICAgPHA+PT09PT09PT1N
YXJrZXIxPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAg
ICAgICAgICAgICAgICA8dGQgaWQ9InRlc3RDb250YWluZXIiPjxzcGFuPjxiIGlkPSJ0b1JlbW92
ZSI+YTwvYj48L3NwYW4+PHE+YjwvcT48L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAg
ICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAg
ICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJl
ZmVyZW5jZSI+V1diV1dXVzwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90
YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAgICAgIDxw
cmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzZWI0OTcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKz09PT09PT09TWFya2VyMT09PT09PT09CisK
K2FiYwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09
PT09PT09CisKK1dXYVdXV2JXV1dXV2NXV1dXCTEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMQorPT09PT09PT1NYXJrZXIzPT09PT09PT0KKworUEFTU0VECmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDIyYmUzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbApAQCAtMCwwICsx
LDQ3IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KKyAgICAgICAgICAgIC5teVF1b3RlcyB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldX
V1dXIjsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkgeworICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmx5SW5Ccm93c2VyIikuc2V0QXR0cmlidXRlKCJzdHls
ZSIsICJkaXNwbGF5OiBub25lOyIpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2V0
QXR0cmlidXRlKCJjbGFzcyIsICJteVF1b3RlcyIpOworICAgICAgICAgICAgICAgIHRlc3RXaWR0
aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAg
ICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRo
Iik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5l
clRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZBSUxF
RDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VXaWR0
aDsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxv
YWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dz
ZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9w
PgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxl
PgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5l
ciI+PHE+YTxxPmI8L3E+YzwvcT48L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAg
PC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAgICAg
IDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJlZmVy
ZW5jZSI+V1dhV1dXYldXV1dXY1dXV1c8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAx
IDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAg
ICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgorICAg
ICAgICA8cHJlIGlkPSJjb25zb2xlIi8+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsK
aW5kZXggOWNkMzAyMi4uY2MwZmE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9p
ZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC03MDIsNiArNzAyLDcgQEAg
TE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIFwKIAly
ZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAgXAorCXJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAog
CXJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBsaWNh
LmNwcCBcCiAKQEAgLTc5Miw2ICs3OTMsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9T
UkNfRklMRVMpIFwKIAlyZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBcCiAJcmVuZGVyaW5n
L3N0eWxlL0tleWZyYW1lTGlzdC5jcHAgXAogCXJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFn
ZS5jcHAgXAorCXJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcCBcCiAJcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcCBcCiAKIGlmZXEgKCQoRU5BQkxFX1NWRyksIHRydWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IGMwYTJjNGUuLmQ1YjI5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMzg1LDYgKzEzODUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAK
ICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlclF1
b3RlLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKICAgICByZW5kZXJpbmcv
UmVuZGVyUmVwbGljYS5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKQEAgLTE0MjMs
NiArMTQyNCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvRmls
bExheWVyLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9RdW90
ZXNEYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKICAgICByZW5k
ZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNr
Z3JvdW5kRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NmViMDRlLi5iOWM5YjY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsOTIgQEAKIDIwMTEtMDItMTYgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9A
bm9raWEuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24ndCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVk
IGZ1bGwgc3VwcG9ydCBmb3IgcXVvdGVzIGFzIGRlZmluZWQgYnkgQ1NTIDIuMS4KKworICAgICAg
ICBUZXN0czogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1Lmh0bWwKKworICAgICAgICAq
IEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICBBZGRlZCBSZW5kZXJRdW90ZS5jcHAvaCBhbmQgUXVvdGVzRGF0YS5j
cHAvaCB0byB0aGUgZGVwZW5kZW5jeSBsaXN0cworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VRdW90ZXMpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIu
aDoKKyAgICAgICAgQWRkZWQgbmVlZGVkIHN0eWxlc2hlZXQgcGFyc2luZyBzdXBwb3J0IGZvciBx
dW90ZXMsCisgICAgICAgIChuby0pb3Blbi1xdW90ZSBhbmQgKG5vLSljbG9zZS1xdW90ZQorICAg
ICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICBIYW5kbGVkIHNldHRpbmcgb2Yg
dGhlIG5ldyBxdW90ZXMgUmVuZGVyU3R5bGUgcHJvcGVydHkgYW5kIGFkZGVkCisgICAgICAgIGhh
bmRsaW5nIG9mIHF1b3RlcyBmb3IgdGhlIGNvbnRlbnQgcHJvcGVydHkuCisgICAgICAgICogY3Nz
L2h0bWwuY3NzOgorICAgICAgICAocTpiZWZvcmUpOgorICAgICAgICAocTphZnRlcik6CisgICAg
ICAgIHJlcGxhY2VkIHRoZSAnIicgd29ya2Fyb3VuZCB3aXRoIG9wZW4vY2xvc2UtcXVvdGUKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmRpcnR5TGluZUJveGVzRm9yUmVuZGVyZXIpOgorICAgICAgICBNYWRlIFJlbmRlclF1
b3RlIGJlaGF2ZSBsaWtlIFJlbmRlckNvdW50ZXIuCisgICAgICAgIE5lZWRlZCB0byBlbnN1cmUg
dGhhdCB0aGUgUXVvdGUgdGV4dCBpcyBjYWxjdWxhdGVkIGJlZm9yZSBsYXlvdXQsCisgICAgICAg
IGp1c3QgYXMgaXQgaXMgZm9yIFJlbmRlckNvdW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1F1b3RlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6cmVtb3ZlQ2hpbGROb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2RlKToK
KyAgICAgICAgSGFuZGxlZCB1cGRhdGluZyBvZiBxdW90ZSBkZXB0aCB3aGVuIHJlbmRlcmVycyBh
cmUgYWRkZWQgYW5kIHJlbW92ZWQKKyAgICAgICAgZnJvbSB0aGUgdHJlZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmFkanVzdERlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpSZW5k
ZXJRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6flJlbmRlclF1b3RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpyZW5kZXJOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclF1b3RlOjpwbGFjZVF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clF1b3RlOjpvcmlnaW5hbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1
b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJR
dW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
UXVvdGU6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6aXNRdW90ZSk6CisgICAg
ICAgIChXZWJDb3JlOjp0b1JlbmRlclF1b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICBJbmNsdWRlZCBSZW5kZXJRdW90ZS5jcHAKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudERhdGE6OmRhdGFFcXVpdmFsZW50KToKKyAgICAgICAgQ2hlY2tlZCBmb3IgcXVvdGV0
eXBlIGlkZW50aXR5LgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6OmRlbGV0ZUNvbnRl
bnQpOgorICAgICAgICBBY2NvdW50ZWQgZm9yIHRoZSBuZXcgUVVPVEVfVFlQRS4KKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnREYXRhOjppc1F1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjpxdW90ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RGF0YTo6c2V0UXVvdGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6c2V0Q29udGVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6cXVvdGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRRdW90ZXMpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFy
ZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICBJbmNsdWRlZCBxdW90ZXMgaW4g
ZXF1YWxpdHkgY2hlY2suCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuaDoKKyAgICAgICAgQWRkZWQgcXVvdGVzCisKKzIwMTEtMDItMTYgIENhcm9sIFN6
YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlk
IEh5YXR0LgogCiAgICAgICAgIFJFR1JFU1NJT046IFVzZSBhZnRlciBmcmVlIGluIFdlYkNvcmU6
OlJlbmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRl
eCBhYjFhMjYwLi42MTE4OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjgyNCw2ICsyODI0
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUGFydC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCBcCisJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclF1b3RlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAgXApAQCAtMjky
Niw2ICsyOTI4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL091dGxpbmVWYWx1ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUXVv
dGVzRGF0YS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRh
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggNzZhYmMwOC4uNzFjMzgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzY1Niw2
ICszNjU2LDggQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2Uu
Y3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCcsCiAg
ICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5oJywKKyAgICAgICAgICAg
ICdyZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9RdW90ZXNEYXRhLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
JywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCcs
CkBAIC0zOTExLDYgKzM5MTMsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQYXJ0
LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oJywKKyAgICAgICAgICAgICdyZW5kZXJp
bmcvUmVuZGVyUXVvdGVzLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclF1b3Rl
cy5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCcsCiAgICAgICAgICAgICAncmVuZGVy
aW5nL1JlbmRlclJlcGxpY2EuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNWM4MjA0MC4uZTJhOTFi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEyMzAsNiArMTIzMCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIFwKICAgICByZW5kZXJpbmcvUmVu
ZGVyUGFydC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAgXAorICAgIHJl
bmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclJ1YnkuY3BwIFwKQEAgLTEyNjYsNiArMTI2Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJl
bmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvS2V5ZnJh
bWVMaXN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcCBcCisg
ICAgcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5jcHAgXAog
ICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUJhY2tncm91bmREYXRhLmNwcCBcCkBAIC0yMjE3LDYg
KzIyMTksNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggXAog
ICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVz
cy5oIFwKKyAgICByZW5kZXJpbmcvUmVuZGVyUXVvdGUuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmggXAogICAgIHJlbmRl
cmluZy9SZW5kZXJSdWJ5LmggXApAQCAtMjI1NCw2ICsyMjU3LDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvS2V5
ZnJhbWVMaXN0LmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oIFwKKyAg
ICByZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuaCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlQmFja2dyb3VuZERhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDI3YzNjNWMuLmU3M2MzZTMgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zNTAzNCw2
ICszNTAzNCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyUXVvdGUuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJR
dW90ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcUmVuZGVyUmVwbGFjZWQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KQEAgLTM5MDAzLDYgKzM5MDU5LDYyIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcUXVvdGVzRGF0YS5j
cHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRv
b2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxl
YXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJ
CQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9
IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdp
bjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9v
bAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHJlbmRlcmluZ1xzdHlsZVxRdW90ZXNEYXRhLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcUmVuZGVyU3R5
bGUuY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVkNmUzMDYuLjQ4
YmVjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI5MDMsNiArMjkwMyw4IEBACiAJCTkzOTJGMTQ0MEFEMTg1RkUwMDY5MUJE
NCAvKiBSZW5kZXJDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzOTJGMTQzMEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmNw
cCAqLzsgfTsKIAkJOTM5MkYxNEMwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0QjBBRDE4
NjFCMDA2OTFCRDQgLyogQ291bnRlck5vZGUuaCAqLzsgfTsKIAkJOTM5MkYxNTAwQUQxODYyMzAw
NjkxQkQ0IC8qIENvdW50ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzOTJGMTRGMEFEMTg2MjMwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5j
cHAgKi87IH07CisJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDEwQUQx
ODVGNDAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmggKi87IH07CisJCTkzOTJGMTQ0MEFEMTg1RkUw
MDY5MUJENCAvKiBSZW5kZXJRdW90ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0MzBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyUXVvdGUu
Y3BwICovOyB9OwogCQk5Mzk4ODVDMzA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMTA4
QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5jcHAgKi87IH07CiAJCTkzOTg4NUM0MDhCN0Uz
RDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOUIw
MkVFMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAv
KiBXaWR0aEl0ZXJhdG9yLmNwcCAqLzsgfTsKQEAgLTUyNjksNiArNTI3MSw4IEBACiAJCUJDRUY0
M0NGMEU2NzNEQTEwMDFDMTI4NyAvKiBTdHlsZUltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGNDNDRTBFNjczREExMDAxQzEyODcgLyogU3R5
bGVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUJDRUY0M0REMEU2NzQwMTIwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQzREMwRTY3NDAxMjAw
MUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNFRjQzRTAwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVj
ZUltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRUY0M0RGMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgKi87IH07CisJ
CTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmggaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQg
LyogUXV0b2VzRGF0YS5oICovOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVv
dGVzRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXV0b2VzRGF0YS5jcHAgKi87IH07CiAJCUJD
RUY0NDRBMEU2NzQ1RTAwMDFDMTI4NyAvKiBTdHlsZUdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGNDQ0OTBFNjc0NUUwMDAx
QzEyODcgLyogU3R5bGVHZW5lcmF0ZWRJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRUY0NDREMEU2NzQ2MjgwMDFDMTI4NyAvKiBTdHls
ZUNhY2hlZEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0VGNDQ0QzBFNjc0NjI4MDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRUY0NDdBMEU2
NzQ3RDAwMDFDMTI4NyAvKiBTdHlsZUNhY2hlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUY0NDc5MEU2NzQ3RDAwMDFDMTI4NyAvKiBT
dHlsZUNhY2hlZEltYWdlLmNwcCAqLzsgfTsKQEAgLTkzMDMsNiArOTMwNyw4IEBACiAJCTkzOTJG
MTQzMEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJDb3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTM5MkYxNEIwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3VudGVyTm9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkyRjE0RjBBRDE4NjIzMDA2OTFCRDQgLyogQ291bnRl
ck5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvdW50ZXJO
b2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5MkYxNDEwQUQxODVGNDAw
NjkxQkQ0IC8qIFJlbmRlclF1b3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW5kZXJRdW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzkyRjE0MzBB
RDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbmRlclF1b3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTM5NTVBNDEwM0Q3MjkzMjAwODYzNUNFIC8qIFJlbmRlclRyZWVBc1RleHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVl
QXNUZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwogCQk5Mzk1NUE0MjAzRDcyOTMyMDA4NjM1Q0UgLyogUmVuZGVyVHJlZUFzVGV4dC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbmRlclRyZWVBc1RleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5ODg1QzEwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50
TmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRXZlbnROYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTE1OTcsNiArMTE2MDMsOCBAQAogCQlCQ0VGNDND
RTBFNjczREExMDAxQzEyODcgLyogU3R5bGVJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBTdHlsZUltYWdlLmg7IHBhdGggPSBzdHlsZS9TdHlsZUltYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0M0RDMEU2NzQwMTIwMDFDMTI4NyAvKiBOaW5l
UGllY2VJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOaW5lUGllY2VJ
bWFnZS5oOyBwYXRoID0gc3R5bGUvTmluZVBpZWNlSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkNFRjQzREYwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5pbmVQaWVjZUltYWdlLmNw
cDsgcGF0aCA9IHN0eWxlL05pbmVQaWVjZUltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUXVvdGVzRGF0YS5oOyBwYXRoID0gc3R5bGUvUXVv
dGVzRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0
MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBRdW90ZXNEYXRhLmNwcDsgcGF0aCA9IHN0eWxlL1F1b3Rlc0RhdGEuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDQ0OTBFNjc0NUUwMDAxQzEyODcgLyogU3R5
bGVHZW5lcmF0ZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHls
ZUdlbmVyYXRlZEltYWdlLmg7IHBhdGggPSBzdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0NDRDMEU2NzQ2MjgwMDFDMTI4NyAvKiBT
dHlsZUNhY2hlZEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxl
Q2FjaGVkSW1hZ2UuaDsgcGF0aCA9IHN0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFRjQ0NzkwRTY3NDdEMDAwMUMxMjg3IC8qIFN0eWxlQ2Fj
aGVkSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVD
YWNoZWRJbWFnZS5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3OTcyLDYgKzE3OTgwLDggQEAKIAkJCQlCQ0VGNDNE
RjBFNjc0MTEwMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuY3BwICovLAogCQkJCUJDRUY0M0RD
MEU2NzQwMTIwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5oICovLAogCQkJCUJDNUVCNURDMEU4
MUI4REQwMEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCAqLywKKwkJCQk5MzkyRjE0MjBBRDE4NUY0
MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5jcHAgKi8sCisJCQkJOTM5MkYxNDIwQUQxODVGNDAwNjkx
QkQ0IC8qIFF1b3Rlc0RhdGEuaCAqLywKIAkJCQlCQzhDOEZBQjBERENEMzFCMDBCNTkyRjQgLyog
UmVuZGVyU3R5bGUuY3BwICovLAogCQkJCUJDOEM4RkFDMEREQ0QzMUIwMEI1OTJGNCAvKiBSZW5k
ZXJTdHlsZS5oICovLAogCQkJCUJDNUVCNjY3MEU4MUNCNzEwMEIyNTk2NSAvKiBSZW5kZXJTdHls
ZUNvbnN0YW50cy5oICovLApAQCAtMTg3OTIsNiArMTg4MDIsOCBAQAogCQkJCUE4NzFERUNGMEEx
NTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggKi8sCiAJCQkJQTQzQkY1OUExMTQ5MjkyODAw
QzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCAqLywKIAkJCQlBNDNCRjU5QjExNDkyOTI4MDBD
NjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuaCAqLywKKwkJCQk5MzkyRjE0MzBBRDE4NUZFMDA2OTFC
RDQgLyogUmVuZGVyUXVvdGUuY3BwICovLAorCQkJCTkzOTJGMTQxMEFEMTg1RjQwMDY5MUJENCAv
KiBSZW5kZXJRdW90ZS5oICovLAogCQkJCUE4NzFERkRFMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5k
ZXJSZXBsYWNlZC5jcHAgKi8sCiAJCQkJQTg3MURGREYwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRl
clJlcGxhY2VkLmggKi8sCiAJCQkJQkNBODQ2RDQwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJl
cGxpY2EuY3BwICovLApAQCAtMjE2NDAsNiArMjE2NTIsNyBAQAogCQkJCUU0RDY4Nzc5MEVEN0FF
NEYwMDZFQTk3OCAvKiBQdXJnZWFibGVCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFMzND
RDAxMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3OTcyMEQwMEJGMjIwMDcxQjc4MiAvKiBSYWRpYWxHcmFkaWVudEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzRENDMTI1MUYxMkQwMDNFRjI2OSAv
KiBSYWRpb0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5MTgwODI0NUU1OTAw
MUU5QUJDIC8qIFJhbmdlLmggaW4gSGVhZGVycyAqLywKQEAgLTIxNzEwLDYgKzIxNzIzLDcgQEAK
IAkJCQlCQ0ZBOTMwODEwMzMzMTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4NzFERUQ3MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNDNCRjU5RDExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jl
c3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5k
ZXJRdW90ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURGRTMwQTE1Mzc2QjAwQjEyQTY4IC8q
IFJlbmRlclJlcGxhY2VkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E4NDZENzBEQzY3QTM1MDAy
NkMzMDkgLyogUmVuZGVyUmVwbGljYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3OUZBRUUxMDlB
RTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnkuaCBpbiBIZWFkZXJzICovLApAQCAtMjQzNTgsNiAr
MjQzNzIsNyBAQAogCQkJCTFBN0ZBNjFCMEREQTNCQkUwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVO
b3RpZmllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTdGQTY0OTBEREEzQ0JBMDAyOEY4QTUg
LyogTmV0d29ya1N0YXRlTm90aWZpZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRjQz
RTAwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QzRBODAwMDlENTYzMjcwMDAzQUM4RCAvKiBOb2RlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg1NEZFNzMwMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTg1NEZFNzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ0OTksNiArMjQ1MTQsNyBAQAogCQkJCUJD
NjBFRkI3MEYzM0EwRTcwMDgxMkE5MyAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTg3MURFRDAwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTQzQkY1OUMxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclBy
b2dyZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzOTJGMTQ0MEFEMTg1RkUwMDY5MUJENCAv
KiBSZW5kZXJRdW90ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREZFMjBBMTUzNzZCMDBC
MTJBNjggLyogUmVuZGVyUmVwbGFjZWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBODQ2RDYw
REM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ3OUZBRUQxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnkuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGU0OWY3OTIuLmNlMGMwMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC02MzQsNiArNjM0LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVF1b3RlczogICAgICAgICAgICAgICAvLyBbPHN0cmluZz4gPHN0cmluZz5dKyB8IG5vbmUgfCBp
bmhlcml0CiAgICAgICAgIGlmIChpZCkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlUXVvdGVzKHByb3BJZCwg
aW1wb3J0YW50KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVVuaWNvZGVC
aWRpOiAgICAgICAgIC8vIG5vcm1hbCB8IGVtYmVkIHwgYmlkaS1vdmVycmlkZSB8IGluaGVyaXQK
ICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8CkBAIC0yMzU0LDYgKzIzNTYsMjgg
QEAgQ1NTUGFyc2VyOjpTaXplUGFyYW1ldGVyVHlwZSBDU1NQYXJzZXI6OnBhcnNlU2l6ZVBhcmFt
ZXRlcihDU1NWYWx1ZUxpc3QqIHBhcnNlZFYKICAgICB9CiB9CiAKKy8vIFsgPHN0cmluZz4gPHN0
cmluZz4gXSsgfCBpbmhlcml0IHwgbm9uZQorLy8gaW5oZXJpdCBhbmQgbm9uZSBhcmUgaGFuZGxl
ZCBpbiBwYXJzZVZhbHVlLgorYm9vbCBDU1NQYXJzZXI6OnBhcnNlUXVvdGVzKGludCBwcm9wSWQs
IGJvb2wgaW1wb3J0YW50KQoreworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHZhbHVlcyA9IENT
U1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAgICB3aGlsZSAoQ1NTUGFyc2Vy
VmFsdWUqIHZhbCA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCkpIHsKKyAgICAgICAgUmVmUHRyPENT
U1ZhbHVlPiBwYXJzZWRWYWx1ZTsKKyAgICAgICAgaWYgKHZhbC0+dW5pdCA9PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1NUUklORykKKyAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZSh2YWwtPnN0cmluZywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJ
TkcpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgdmFsdWVzLT5h
cHBlbmQocGFyc2VkVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQo
KTsKKyAgICB9CisgICAgaWYgKHZhbHVlcy0+bGVuZ3RoKCkpIHsKKyAgICAgICAgYWRkUHJvcGVy
dHkocHJvcElkLCB2YWx1ZXMucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICBtX3ZhbHVl
TGlzdC0+bmV4dCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZh
bHNlOworfQorCiAvLyBbIDxzdHJpbmc+IHwgPHVyaT4gfCA8Y291bnRlcj4gfCBhdHRyKFgpIHwg
b3Blbi1xdW90ZSB8IGNsb3NlLXF1b3RlIHwgbm8tb3Blbi1xdW90ZSB8IG5vLWNsb3NlLXF1b3Rl
IF0rIHwgaW5oZXJpdAogLy8gaW4gQ1NTIDIuMSB0aGlzIGdvdCBzb21ld2hhdCByZWR1Y2VkOgog
Ly8gWyA8c3RyaW5nPiB8IGF0dHIoWCkgfCBvcGVuLXF1b3RlIHwgY2xvc2UtcXVvdGUgfCBuby1v
cGVuLXF1b3RlIHwgbm8tY2xvc2UtcXVvdGUgXSsgfCBpbmhlcml0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmgKaW5kZXggNmNjZmJlMi4uOTliOWM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtNzks
NiArNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgcGFyc2VTaG9ydGhh
bmQoaW50IHByb3BJZCwgY29uc3QgaW50KiBwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVydGllcywg
Ym9vbCBpbXBvcnRhbnQpOwogICAgICAgICBib29sIHBhcnNlNFZhbHVlcyhpbnQgcHJvcElkLCBj
b25zdCBpbnQqIHByb3BlcnRpZXMsIGJvb2wgaW1wb3J0YW50KTsKICAgICAgICAgYm9vbCBwYXJz
ZUNvbnRlbnQoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOworICAgICAgICBib29sIHBhcnNl
UXVvdGVzKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKIAogICAgICAgICBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBwYXJzZUF0dHIoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IGMwMmU4ZWYuLjU4MzBjY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTcwLDYgKzcwLDcgQEAK
ICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWlyLmgiCiAjaW5jbHVkZSAiUGVy
c3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKKyNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAj
aW5jbHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUg
IlJlbmRlclNjcm9sbGJhclRoZW1lLmgiCkBAIC00NjU2LDM2ICs0NjU3LDU5IEBAIHZvaWQgQ1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIGNvbnRlbnRWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7CiAgICAgICAgICAgICBzd2l0
Y2ggKGNvbnRlbnRWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORzoKLSAgICAgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0Q29udGVudChjb250ZW50VmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkuaW1wbCgpLCBk
aWRTZXQpOworICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORzoK
KyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNvbnRlbnRWYWx1ZS0+Z2V0U3Ry
aW5nVmFsdWUoKS5pbXBsKCksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19BVFRSOiB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IENhbiBhIG5hbWVz
cGFjZSBiZSBzcGVjaWZpZWQgZm9yIGFuIGF0dHIoZm9vKT8KKyAgICAgICAgICAgICAgICBpZiAo
bV9zdHlsZS0+c3R5bGVUeXBlKCkgPT0gTk9QU0VVRE8pCisgICAgICAgICAgICAgICAgICAgIG1f
c3R5bGUtPnNldFVuaXF1ZSgpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgbV9wYXJlbnRTdHlsZS0+c2V0VW5pcXVlKCk7CisgICAgICAgICAgICAgICAgUXVhbGlm
aWVkTmFtZSBhdHRyKG51bGxBdG9tLCBjb250ZW50VmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkuaW1w
bCgpLCBudWxsQXRvbSk7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChtX2Vs
ZW1lbnQtPmdldEF0dHJpYnV0ZShhdHRyKS5pbXBsKCksIGRpZFNldCk7CisgICAgICAgICAgICAg
ICAgZGlkU2V0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAvLyByZWdpc3RlciB0aGUgZmFjdCB0
aGF0IHRoZSBhdHRyaWJ1dGUgdmFsdWUgYWZmZWN0cyB0aGUgc3R5bGUKKyAgICAgICAgICAgICAg
ICBtX3NlbGVjdG9yQXR0cnMuYWRkKGF0dHIubG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19VUkk6IHsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnRlbnRWYWx1ZS0+
aXNJbWFnZVZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3Bl
cnR5Q29udGVudCwgc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KGNvbnRlbnRWYWx1ZSkpLCBk
aWRTZXQpOworICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfQ09VTlRFUjogeworICAgICAgICAgICAgICAgIENvdW50ZXIqIGNvdW50ZXJWYWx1ZSA9
IGNvbnRlbnRWYWx1ZS0+Z2V0Q291bnRlclZhbHVlKCk7CisgICAgICAgICAgICAgICAgT3duUHRy
PENvdW50ZXJDb250ZW50PiBjb3VudGVyID0gYWRvcHRQdHIobmV3IENvdW50ZXJDb250ZW50KGNv
dW50ZXJWYWx1ZS0+aWRlbnRpZmllcigpLAorICAgICAgICAgICAgICAgICAgICAoRUxpc3RTdHls
ZVR5cGUpY291bnRlclZhbHVlLT5saXN0U3R5bGVOdW1iZXIoKSwgY291bnRlclZhbHVlLT5zZXBh
cmF0b3IoKSkpOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY291bnRlci5y
ZWxlYXNlKCksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19JREVOVDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbnRlbnRW
YWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVPcGVuUXVv
dGU6CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoT1BFTl9RVU9URSwg
ZGlkU2V0KTsKICAgICAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX0FUVFI6IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IENhbiBhIG5hbWVzcGFj
ZSBiZSBzcGVjaWZpZWQgZm9yIGFuIGF0dHIoZm9vKT8KLSAgICAgICAgICAgICAgICAgICAgaWYg
KG1fc3R5bGUtPnN0eWxlVHlwZSgpID09IE5PUFNFVURPKQotICAgICAgICAgICAgICAgICAgICAg
ICAgbV9zdHlsZS0+c2V0VW5pcXVlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcGFyZW50U3R5bGUtPnNldFVuaXF1ZSgpOwotICAgICAgICAg
ICAgICAgICAgICBRdWFsaWZpZWROYW1lIGF0dHIobnVsbEF0b20sIGNvbnRlbnRWYWx1ZS0+Z2V0
U3RyaW5nVmFsdWUoKS5pbXBsKCksIG51bGxBdG9tKTsKLSAgICAgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0Q29udGVudChtX2VsZW1lbnQtPmdldEF0dHJpYnV0ZShhdHRyKS5pbXBsKCksIGRp
ZFNldCk7CisgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUNsb3NlUXVvdGU6CisgICAgICAg
ICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoQ0xPU0VfUVVPVEUsIGRpZFNldCk7CiAg
ICAgICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIC8v
IHJlZ2lzdGVyIHRoZSBmYWN0IHRoYXQgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBhZmZlY3RzIHRoZSBz
dHlsZQotICAgICAgICAgICAgICAgICAgICBtX3NlbGVjdG9yQXR0cnMuYWRkKGF0dHIubG9jYWxO
YW1lKCkuaW1wbCgpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkk6IHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKCFjb250ZW50VmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3R5
bGUtPnNldENvbnRlbnQoY2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5Q29udGVu
dCwgc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KGNvbnRlbnRWYWx1ZSkpLCBkaWRTZXQpOwor
ICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVOb09wZW5RdW90ZToKKyAgICAgICAgICAgICAg
ICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChOT19PUEVOX1FVT1RFLCBkaWRTZXQpOwogICAgICAg
ICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX0NPVU5URVI6IHsKLSAgICAgICAgICAgICAgICAgICAgQ291bnRlciogY291bnRlclZh
bHVlID0gY29udGVudFZhbHVlLT5nZXRDb3VudGVyVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgT3duUHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyID0gYWRvcHRQdHIobmV3IENvdW50ZXJD
b250ZW50KGNvdW50ZXJWYWx1ZS0+aWRlbnRpZmllcigpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgKEVMaXN0U3R5bGVUeXBlKWNvdW50ZXJWYWx1ZS0+bGlzdFN0eWxlTnVtYmVyKCksIGNvdW50
ZXJWYWx1ZS0+c2VwYXJhdG9yKCkpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0
Q29udGVudChjb3VudGVyLnJlbGVhc2UoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBjYXNl
IENTU1ZhbHVlTm9DbG9zZVF1b3RlOgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRD
b250ZW50KE5PX0NMT1NFX1FVT1RFLCBkaWRTZXQpOwogICAgICAgICAgICAgICAgICAgICBkaWRT
ZXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWwgYW5kIG5vbmUgZG8gbm90IGhh
dmUgYW55IGVmZmVjdC4KKyAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTQ2OTMsNiArNDcxNywzMyBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAg
ICAgICAgICAgICBtX3N0eWxlLT5jbGVhckNvbnRlbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KKyAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOgorICAgICAgICBpZiAoaXNJbmhlcml0KSB7
CisgICAgICAgICAgICBpZiAobV9wYXJlbnRTdHlsZSkKKyAgICAgICAgICAgICAgICBtX3N0eWxl
LT5zZXRRdW90ZXMobV9wYXJlbnRTdHlsZS0+cXVvdGVzKCkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkgeworICAgICAg
ICAgICAgQ1NTVmFsdWVMaXN0KiBsaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFs
dWUpOworICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCA9IGxpc3QtPmxlbmd0aCgpOworICAgICAg
ICAgICAgUXVvdGVzRGF0YSogZGF0YSA9IFF1b3Rlc0RhdGE6OmNyZWF0ZShsZW5ndGgpOworICAg
ICAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAgICAgICAgIHJldHVybjsgLy8gT3V0IG9mIG1l
bW9yeQorICAgICAgICAgICAgU3RyaW5nKiBxdW90ZXMgPSBkYXRhLT5kYXRhKCk7CisgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAg
ICAgQ1NTVmFsdWUqIGl0ZW0gPSBsaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpOworICAg
ICAgICAgICAgICAgIEFTU0VSVChpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkpOworICAgICAgICAg
ICAgICAgIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihp
dGVtKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5
cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORyk7CisgICAgICAgICAgICAgICAg
cXVvdGVzW2ldID0gcHJpbWl0aXZlVmFsdWUtPmdldFN0cmluZ1ZhbHVlKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBtX3N0eWxlLT5zZXRRdW90ZXMoYWRvcHRSZWYoZGF0YSkpOworICAg
ICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlKSB7CisgICAgICAgICAgICBBU1NFUlQocHJp
bWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lE
RU5UKTsKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NW
YWx1ZU5vbmUpCisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0UXVvdGVzKGFkb3B0UmVmKFF1
b3Rlc0RhdGE6OmNyZWF0ZSgwKSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlDb3VudGVySW5jcmVtZW50OgogICAgICAgICBhcHBseUNvdW50ZXJM
aXN0KHN0eWxlKCksIHZhbHVlLT5pc1ZhbHVlTGlzdCgpID8gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVM
aXN0Kj4odmFsdWUpIDogMCwgZmFsc2UpOwpAQCAtNTkzNCw3ICs1OTg1LDYgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogCiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHJldGNoOgogICAgIGNhc2UgQ1NTUHJvcGVydHlQYWdl
OgotICAgIGNhc2UgQ1NTUHJvcGVydHlRdW90ZXM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRM
aW5lVGhyb3VnaDoKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dExpbmVUaHJvdWdoQ29sb3I6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhyb3VnaE1vZGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKaW5k
ZXggMGYxM2ZjYi4uOTU0ZjVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwu
Y3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcwpAQCAtMTEzLDEzICsxMTMsMTEg
QEAgcSB7CiB9CiAKIHE6YmVmb3JlIHsKLSAgICBjb250ZW50OiAnIicKLSAgICAvKiBGSVhNRTog
Y29udGVudDogb3Blbi1xdW90ZTsgKi8KKyAgICBjb250ZW50OiBvcGVuLXF1b3RlOwogfQogCiBx
OmFmdGVyIHsKLSAgICBjb250ZW50OiAnIicKLSAgICAvKiBGSVhNRTogY29udGVudDogY2xvc2Ut
cXVvdGU7ICovCisgICAgY29udGVudDogY2xvc2UtcXVvdGU7CiB9CiAKIGNlbnRlciB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmlu
ZGV4IDk0NWEwZDEuLmZjNGE0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0xNzcsNyArMTc3LDcgQEAgc3RhdGljIGlu
bGluZSBJbmxpbmVCb3gqIGNyZWF0ZUlubGluZUJveEZvclJlbmRlcmVyKFJlbmRlck9iamVjdCog
b2JqLCBib29sIGlzUm8KIHN0YXRpYyBpbmxpbmUgdm9pZCBkaXJ0eUxpbmVCb3hlc0ZvclJlbmRl
cmVyKFJlbmRlck9iamVjdCogbywgYm9vbCBmdWxsTGF5b3V0KQogewogICAgIGlmIChvLT5pc1Rl
eHQoKSkgewotICAgICAgICBpZiAoby0+cHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KCkgJiYg
by0+aXNDb3VudGVyKCkpCisgICAgICAgIGlmIChvLT5wcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGly
dHkoKSAmJiAoby0+aXNDb3VudGVyKCkgfHwgby0+aXNRdW90ZSgpKSkKICAgICAgICAgICAgIHRv
UmVuZGVyVGV4dChvKS0+Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoMCk7IC8vIEZJWE1F
OiBDb3VudGVycyBkZXBlbmQgb24gdGhpcyBoYWNrLiBObyBjbHVlIHdoeS4gU2hvdWxkIGJlIGlu
dmVzdGlnYXRlZCBhbmQgcmVtb3ZlZC4KICAgICAgICAgdG9SZW5kZXJUZXh0KG8pLT5kaXJ0eUxp
bmVCb3hlcyhmdWxsTGF5b3V0KTsKICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAppbmRleCA0M2U2YmVhLi5hNWYyYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0yNTIsNiArMjUyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc0Jsb2NrRmxvdygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzQm94TW9kZWxPYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc0NvdW50ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1F1b3RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNEZXRhaWxzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgaXNEZXRhaWxzTWFya2VyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNFbWJlZGRlZE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCmluZGV4
IDZhNzczZGMuLjRkZjcxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUmVu
ZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJM
aXN0SXRlbS5oIgorI2luY2x1ZGUgIlJlbmRlclF1b3RlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5
bGUuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0RnJhZ21lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJW
aWV3LmgiCkBAIC0xMzAsNiArMTMxLDcgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmplY3RDaGls
ZExpc3Q6OnJlbW92ZUNoaWxkTm9kZShSZW5kZXJPYmplY3QqIG93bmVyLCBSZW5kZXIKIAogICAg
IGlmIChvbGRDaGlsZC0+bV9oYXNDb3VudGVyTm9kZU1hcCkKICAgICAgICAgUmVuZGVyQ291bnRl
cjo6ZGVzdHJveUNvdW50ZXJOb2RlcyhvbGRDaGlsZCk7CisgICAgUmVuZGVyUXVvdGU6OnJlbmRl
cmVyUmVtb3ZlZEZyb21UcmVlKG9sZENoaWxkKTsKIAogICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQogICAgICAgICBvd25lci0+ZG9jdW1lbnQoKS0+YXhPYmpl
Y3RDYWNoZSgpLT5jaGlsZHJlbkNoYW5nZWQob3duZXIpOwpAQCAtMTc3LDggKzE3OSw4IEBAIHZv
aWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjphcHBlbmRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBv
d25lciwgUmVuZGVyT2JqZWN0KiBuCiAgICAgICAgIGlmICghbmV3Q2hpbGQtPmlzRmxvYXRpbmdP
clBvc2l0aW9uZWQoKSAmJiBvd25lci0+Y2hpbGRyZW5JbmxpbmUoKSkKICAgICAgICAgICAgIG93
bmVyLT5kaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZChuZXdDaGlsZCk7CiAgICAgfQotCiAgICAg
UmVuZGVyQ291bnRlcjo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQobmV3Q2hpbGQpOworICAgIFJl
bmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZChuZXdDaGlsZCk7CiAgICAgbmV3Q2hp
bGQtPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOyAvLyBHb2VzIHVwIHRoZSBj
b250YWluaW5nIGJsb2NrIGhpZXJhcmNoeS4KICAgICBpZiAoIW93bmVyLT5ub3JtYWxDaGlsZE5l
ZWRzTGF5b3V0KCkpCiAgICAgICAgIG93bmVyLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUpOyAv
LyBXZSBtYXkgc3VwcGx5IHRoZSBzdGF0aWMgcG9zaXRpb24gZm9yIGFuIGFic29sdXRlIHBvc2l0
aW9uZWQgY2hpbGQuCkBAIC0yMzksNiArMjQxLDcgQEAgdm9pZCBSZW5kZXJPYmplY3RDaGlsZExp
c3Q6Omluc2VydENoaWxkTm9kZShSZW5kZXJPYmplY3QqIG93bmVyLCBSZW5kZXJPYmplY3QqIGMK
ICAgICB9CiAKICAgICBSZW5kZXJDb3VudGVyOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZChjaGls
ZCk7CisgICAgUmVuZGVyUXVvdGU6OnJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKGNoaWxkKTsKICAg
ICBjaGlsZC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAgICAgaWYgKCFv
d25lci0+bm9ybWFsQ2hpbGROZWVkc0xheW91dCgpKQogICAgICAgICBvd25lci0+c2V0Q2hpbGRO
ZWVkc0xheW91dCh0cnVlKTsgLy8gV2UgbWF5IHN1cHBseSB0aGUgc3RhdGljIHBvc2l0aW9uIGZv
ciBhbiBhYnNvbHV0ZSBwb3NpdGlvbmVkIGNoaWxkLgpAQCAtNDYwLDEwICs0NjMsMTQgQEAgdm9p
ZCBSZW5kZXJPYmplY3RDaGlsZExpc3Q6OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudChSZW5kZXJP
YmplY3QqIG93bmVyLCBQc2V1ZG8KICAgICAgICAgICAgICAgICByZW5kZXJlciA9IGltYWdlOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSBD
T05URU5UX0NPVU5URVI6Ci0gICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5y
ZW5kZXJBcmVuYSgpKSBSZW5kZXJDb3VudGVyKG93bmVyLT5kb2N1bWVudCgpLCAqY29udGVudC0+
Y291bnRlcigpKTsKLSAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxl
bWVudFN0eWxlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDT05URU5U
X0NPVU5URVI6CisgICAgICAgICAgICByZW5kZXJlciA9IG5ldyAob3duZXItPnJlbmRlckFyZW5h
KCkpIFJlbmRlckNvdW50ZXIob3duZXItPmRvY3VtZW50KCksICpjb250ZW50LT5jb3VudGVyKCkp
OworICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICAg
ICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJRdW90ZShvd25l
ci0+ZG9jdW1lbnQoKSwgY29udGVudC0+cXVvdGUoKSk7CisgICAgICAgICAgICByZW5kZXJlci0+
c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclF1b3RlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTlhNGVl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3Rl
LmNwcApAQCAtMCwwICsxLDMzMCBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW5kZXJRdW90ZS5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJRdW90ZXNEYXRh
LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5j
bHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKKyNkZWZpbmUgVU5LTk9XTl9ERVBUSCAt
MQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0RGVwdGgo
aW50ICZkZXB0aCwgUXVvdGVUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAg
Y2FzZSBPUEVOX1FVT1RFOgorICAgIGNhc2UgTk9fT1BFTl9RVU9URToKKyAgICAgICAgKytkZXB0
aDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDTE9TRV9RVU9URToKKyAgICBjYXNlIE5PX0NM
T1NFX1FVT1RFOgorICAgICAgICBpZiAoZGVwdGgpCisgICAgICAgICAgICAtLWRlcHRoOworICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9Cit9CisKK1JlbmRlclF1b3RlOjpSZW5kZXJRdW90ZShEb2N1bWVudCogbm9kZSwgUXVv
dGVUeXBlIHF1b3RlKQorICAgIDogUmVuZGVyVGV4dChub2RlLCBTdHJpbmdJbXBsOjplbXB0eSgp
KQorICAgICwgbV90eXBlKHF1b3RlKQorICAgICwgbV9kZXB0aChVTktOT1dOX0RFUFRIKQorICAg
ICwgbV9uZXh0KDApCisgICAgLCBtX3ByZXZpb3VzKDApCit7Cit9CisKK1JlbmRlclF1b3RlOjp+
UmVuZGVyUXVvdGUoKQoreworfQorCitjb25zdCBjaGFyKiBSZW5kZXJRdW90ZTo6cmVuZGVyTmFt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJSZW5kZXJRdW90ZSI7Cit9CisKKy8vIFRoaXMgZnVu
Y3Rpb24gcGxhY2VzIGEgbGlzdCBvZiBxdW90ZSByZW5kZXJlcnMgc3RhcnRpbmcgYXQgInRoaXMi
IGluIHRoZSBsaXN0IG9mIHF1b3RlIHJlbmRlcmVycyBhbHJlYWR5CisvLyBpbiB0aGUgZG9jdW1l
bnQncyByZW5kZXJlciB0cmVlLgorLy8gVGhlIGFzc3VtcHRpb25zIGFyZSBtYWRlIChmb3IgcGVy
Zm9ybWFuY2UpOgorLy8gMS4gVGhlIGxpc3Qgb2YgcXVvdGVzIGFscmVhZHkgaW4gdGhlIHJlbmRl
cmVycyB0cmVlIG9mIHRoZSBkb2N1bWVudCBpcyBhbHJlYWR5IGluIGEgY29uc2lzdGVudCBzdGF0
ZQorLy8gKEFsbCBxdW90ZSByZW5kZXJlcnMgYXJlIGxpbmtlZCBhbmQgaGF2ZSB0aGUgY29ycmVj
dCBkZXB0aCBzZXQpCisvLyAyLiBUaGUgcXVvdGUgcmVuZGVyZXJzIG9mIHRoZSBpbnNlcnRlZCBs
aXN0IGFyZSBpbiBhIHRyZWUgb2YgcmVuZGVyZXJzIG9mIHRoZWlyIG93biB3aGljaCBoYXMgYmVl
biBqdXN0CisvLyBpbnNlcnRlZCBpbiB0aGUgbWFpbiByZW5kZXJlciB0cmVlIHdpdGggaXRzIHJv
b3QgYXMgY2hpbGQgb2Ygc29tZSByZW5kZXJlci4KKy8vIDMuIFRoZSBxdW90ZSByZW5kZXJlcnMg
aW4gdGhlIGluc2VydGVkIGxpc3QgaGF2ZSBkZXB0aHMgY29uc2lzdGVudCB3aXRoIHRoZWlyIHBv
c2l0aW9uIGluIHRoZSBsaXN0IHJlbGF0aXZlCisvLyB0byAidGhpcyIsIHRodXMgaWYgInRoaXMi
IGRvZXMgbm90IG5lZWQgdG8gY2hhbmdlIGl0cyBkZXB0aCB1cG9uIGluc2VydGlvbiwgdGhlIG90
aGVyIHJlbmRlcmVycyBpbiB0aGUgbGlzdCBkb24ndAorLy8gbmVlZCB0byBlaXRoZXIuCit2b2lk
IFJlbmRlclF1b3RlOjpwbGFjZVF1b3RlKCkKK3sKKyAgICBSZW5kZXJRdW90ZSogaGVhZCA9IHRo
aXM7CisgICAgQVNTRVJUKCFoZWFkLT5tX3ByZXZpb3VzKTsKKyAgICBSZW5kZXJRdW90ZSogdGFp
bCA9IDA7CisgICAgZm9yIChSZW5kZXJPYmplY3QqIHByZWRlY2Vzc29yID0gaGVhZC0+cHJldmlv
dXNJblByZU9yZGVyKCk7IHByZWRlY2Vzc29yOyBwcmVkZWNlc3NvciA9IHByZWRlY2Vzc29yLT5w
cmV2aW91c0luUHJlT3JkZXIoKSkgeworICAgICAgICBpZiAoIXByZWRlY2Vzc29yLT5pc1F1b3Rl
KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaGVhZC0+bV9wcmV2aW91cyA9IHRv
UmVuZGVyUXVvdGUocHJlZGVjZXNzb3IpOworICAgICAgICBpZiAoaGVhZC0+bV9wcmV2aW91cy0+
bV9uZXh0KSB7CisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHNwbGljZSB0aGUgbGlzdCBvZiBx
dW90ZXMgaGVhZGVkIGJ5IGhlYWQgaW50byB0aGUgZG9jdW1lbnQncyBsaXN0IG9mIHF1b3Rlcy4K
KyAgICAgICAgICAgIHRhaWwgPSBoZWFkOworICAgICAgICAgICAgd2hpbGUgKHRhaWwtPm1fbmV4
dCkKKyAgICAgICAgICAgICAgICAgdGFpbCA9IHRhaWwtPm1fbmV4dDsKKyAgICAgICAgICAgIHRh
aWwtPm1fbmV4dCA9IGhlYWQtPm1fcHJldmlvdXMtPm1fbmV4dDsKKyAgICAgICAgICAgIEFTU0VS
VCh0YWlsLT5tX25leHQtPm1fcHJldmlvdXMgPT0gaGVhZC0+bV9wcmV2aW91cyk7CisgICAgICAg
ICAgICB0YWlsLT5tX25leHQtPm1fcHJldmlvdXMgPSAgdGFpbDsKKyAgICAgICAgICAgIHRhaWwg
PSB0YWlsLT5tX25leHQ7IC8vIFRoaXMgbWFya3MgdGhlIHNwbGljaW5nIHBvaW50IGhlcmUgdGhl
cmUgbWF5IGJlIGEgZGVwdGggZGlzY29udGludWl0eQorICAgICAgICB9CisgICAgICAgIGhlYWQt
Pm1fcHJldmlvdXMtPm1fbmV4dCA9IGhlYWQ7CisgICAgICAgIEFTU0VSVChoZWFkLT5tX3ByZXZp
b3VzLT5tX2RlcHRoICE9IFVOS05PV05fREVQVEgpOworICAgICAgICBicmVhazsKKyAgICB9Cisg
ICAgaW50IG5ld0RlcHRoOworICAgIGlmICghaGVhZC0+bV9wcmV2aW91cykgeworICAgICAgICBu
ZXdEZXB0aCA9IDA7CisgICAgICAgIGdvdG8gc2tpcE5ld0RlcHRoQ2FsYzsKKyAgICB9CisgICAg
bmV3RGVwdGggPSBoZWFkLT5tX3ByZXZpb3VzLT5tX2RlcHRoOworICAgIGRvIHsKKyAgICAgICAg
YWRqdXN0RGVwdGgobmV3RGVwdGgsIGhlYWQtPm1fcHJldmlvdXMtPm1fdHlwZSk7Citza2lwTmV3
RGVwdGhDYWxjOgorICAgICAgICBpZiAoaGVhZC0+bV9kZXB0aCA9PSBuZXdEZXB0aCkgeyAvLyBB
bGwgcmVtYWluaW5nIGRlcHRoIHNob3VsZCBiZSBjb3JyZWN0IGV4Y2VwdCBpZiBzcGxpY2luZyB3
YXMgZG9uZS4KKyAgICAgICAgICAgIGlmICghdGFpbCkgLy8gV2UndmUgZG9uZSB0aGUgcG9zdCBz
cGxpY2luZyBzZWN0aW9uIGFscmVhZHkgb3IgdGhlcmUgd2FzIG5vIHNwbGljaW5nLgorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaGVhZCA9IHRhaWw7IC8vIENvbnRpbnVlIGFm
dGVyIHRoZSBzcGxpY2luZyBwb2ludAorICAgICAgICAgICAgdGFpbCA9IDA7IC8vIE1hcmsgdGhl
IHBvc3NpYmxlIHNwbGljaW5nIHBvaW50IGRpc2NvbnRpbnVpdHkgZml4ZWQuCisgICAgICAgICAg
ICBuZXdEZXB0aCA9IGhlYWQtPm1fcHJldmlvdXMtPm1fZGVwdGg7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorICAgICAgICBoZWFkLT5tX2RlcHRoID0gbmV3RGVwdGg7CisgICAg
ICAgIC8vIEZJWE1FOiBJZiB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgcXVvdGF0aW9uIGNo
YXJhY3RlcnMgZG9lcyBub3QgY2hhbmdlIHdlIG1heSBvbmx5IG5lZWQgdG8KKyAgICAgICAgLy8g
SW52YWxpZGF0ZSB0aGUgcmVuZGVyZXIncyBhcmVhIG5vdCBhIHJlbGF5b3V0LgorICAgICAgICBo
ZWFkLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKKyAgICAgICAgaGVhZCA9
IGhlYWQtPm1fbmV4dDsKKyAgICAgICAgaWYgKGhlYWQgPT0gdGFpbCkgLy8gV2UgYXJlIGF0IHRo
ZSBzcGxpY2luZyBwb2ludAorICAgICAgICAgICAgdGFpbCA9IDA7IC8vIE1hcmsgdGhlIHBvc3Np
YmxlIGRlcHRoIGRpc2NvbnRpbnVpdHkgZml4ZWQuCisgICAgfSB3aGlsZSAoaGVhZCk7Cit9CisK
KyNkZWZpbmUgQVJSQVlfU0laRShDYXJyYXkpIChzaXplb2YoQ2FycmF5KSAvIHNpemVvZigqQ2Fy
cmF5KSkKKyNkZWZpbmUgTEFOR1VBR0VfREFUQShuYW1lLCBsYW5ndWFnZVNvdXJjZUFycmF5KSB7
IG5hbWUsIGxhbmd1YWdlU291cmNlQXJyYXksIEFSUkFZX1NJWkUobGFuZ3VhZ2VTb3VyY2VBcnJh
eSkgfQorI2RlZmluZSBVKHgpICgoY29uc3QgVUNoYXIqKUwjI3gpCisKK3N0YXRpYyBjb25zdCBV
Q2hhciogc2ltcGxlUXVvdGVzW10gPSB7VSgiXCIiKSwgVSgiXCIiKSwgVSgiJyIpLCBVKCInIil9
OworCitzdGF0aWMgY29uc3QgVUNoYXIqIGVuZ2xpc2hRdW90ZXNbXSA9IHtVKCJceDIwMUMiKSwg
VSgiXHgyMDFEIiksIFUoIlx4MjAxOCIpLCBVKCJceDIwMTkiKX07CitzdGF0aWMgY29uc3QgVUNo
YXIqIG5vcndlZ2lhblF1b3Rlc1tdID0geyBVKCJceDAwQUIiKSwgVSgiXHgwMEJCIiksIFUoIlx4
MjAzOSIpLCBVKCJceDIwM0EiKSB9Oworc3RhdGljIGNvbnN0IFVDaGFyKiByb21hbmlhblF1b3Rl
c1tdID0geyBVKCJceDIwMUUiKSwgVSgiXHgyMDFEIil9Oworc3RhdGljIGNvbnN0IFVDaGFyKiBy
dXNzaWFuUXVvdGVzW10gPSB7IFUoIlx4MDBBQiIpLCBVKCJceDAwQkIiKSwgVSgiXHgyMDFFIiks
IFUoIlx4MjAxQyIpIH07CisjdW5kZWYgVQorCitzdHJ1Y3QgTGFuZ3VhZ2VEYXRhIHsKKyAgICBj
b25zdCBjaGFyICpuYW1lOworICAgIGNvbnN0IFVDaGFyKiBjb25zdCogY29uc3QgYXJyYXk7Cisg
ICAgY29uc3QgaW50IGFycmF5U2l6ZTsKKyAgICBib29sIG9wZXJhdG9yPChjb25zdCBMYW5ndWFn
ZURhdGEmIGNvbXBhcmVUbykgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzdHJjbXAobmFt
ZSwgY29tcGFyZVRvLm5hbWUpOworICAgIH0KK307CisKKy8vIERhdGEgbWFzdCBiZSBhbHBoYWJl
dGljYWxseSBzb3J0ZWQgYW5kIGluIGFsbCBsb3dlciBjYXNlIGZvciBmYXN0IGNvbXBhcmlzb24K
K0xhbmd1YWdlRGF0YSBsYW5ndWFnZURhdGFbXSA9IHsKKyAgICBMQU5HVUFHRV9EQVRBKCJlbiIs
IGVuZ2xpc2hRdW90ZXMpLAorICAgIExBTkdVQUdFX0RBVEEoIm5vIiwgbm9yd2VnaWFuUXVvdGVz
KSwKKyAgICBMQU5HVUFHRV9EQVRBKCJybyIsIHJvbWFuaWFuUXVvdGVzKSwKKyAgICBMQU5HVUFH
RV9EQVRBKCJydSIsIHJ1c3NpYW5RdW90ZXMpCit9OworI3VuZGVmIExBTkdVQUdFX0RBVEEKK2Nv
bnN0IExhbmd1YWdlRGF0YSogY29uc3QgbGFuZ3VhZ2VEYXRhRW5kID0gbGFuZ3VhZ2VEYXRhICsg
QVJSQVlfU0laRShsYW5ndWFnZURhdGEpOworCisjZGVmaW5lIGRlZmF1bHRMYW5ndWFnZVF1b3Rl
c1NvdXJjZSBzaW1wbGVRdW90ZXMKKyNkZWZpbmUgZGVmYXVsdExhbmd1YWdlUXVvdGVzQ291bnQg
QVJSQVlfU0laRShkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNTb3VyY2UpCisKK3N0YXRpYyBRdW90ZXNE
YXRhKiBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZSA9IDA7CitzdGF0aWMgY29uc3QgUXVvdGVz
RGF0YSogZGVmYXVsdExhbmd1YWdlUXVvdGVzKCkKK3sKKyAgICBpZiAoIWRlZmF1bHRMYW5ndWFn
ZVF1b3Rlc1ZhbHVlKSB7CisgICAgICAgIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1ZhbHVlID0gUXVv
dGVzRGF0YTo6Y3JlYXRlKGRlZmF1bHRMYW5ndWFnZVF1b3Rlc0NvdW50KTsKKyAgICAgICAgaWYg
KCFkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAg
ICAgICBTdHJpbmcqIGRhdGEgPSBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZS0+ZGF0YSgpOwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRlZmF1bHRMYW5ndWFnZVF1b3Rlc0NvdW50
OyArK2kpCisgICAgICAgICAgICBkYXRhW2ldID0gZGVmYXVsdExhbmd1YWdlUXVvdGVzU291cmNl
W2ldOworICAgIH0KKyAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWU7Cit9Cisj
dW5kZWYgZGVmYXVsdExhbmd1YWdlUXVvdGVzU291cmNlCisjdW5kZWYgZGVmYXVsdExhbmd1YWdl
UXVvdGVzQ291bnQKKwordHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxBdG9taWNTdHJpbmdJbXBsPiwg
UXVvdGVzRGF0YSogPiBRdW90ZXNNYXA7CisKK3N0YXRpYyBRdW90ZXNNYXAmIHF1b3Rlc01hcCgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChRdW90ZXNNYXAsIHN0YXRpY1F1b3Rlc01hcCwg
KCkpOworICAgIHJldHVybiBzdGF0aWNRdW90ZXNNYXA7Cit9CisKK3N0YXRpYyBjb25zdCBRdW90
ZXNEYXRhKiBxdW90ZXNGb3JMYW5ndWFnZShBdG9taWNTdHJpbmdJbXBsKiBsYW5ndWFnZSkKK3sK
KyAgICBRdW90ZXNEYXRhKiByZXR1cm5WYWx1ZTsKKyAgICBBdG9taWNTdHJpbmcgbG93ZXIobGFu
Z3VhZ2UtPmxvd2VyKCkpOworICAgIHJldHVyblZhbHVlID0gcXVvdGVzTWFwKCkuZ2V0KGxvd2Vy
LmltcGwoKSk7CisgICAgaWYgKHJldHVyblZhbHVlKQorICAgICAgICByZXR1cm4gcmV0dXJuVmFs
dWU7CisgICAgQ1N0cmluZyBzKHN0YXRpY19jYXN0PGNvbnN0IFN0cmluZyY+KGxvd2VyKS5hc2Np
aSgpKTsKKyAgICBMYW5ndWFnZURhdGEgcmVxdWVzdCA9IHsgcy5idWZmZXIoKS0+ZGF0YSgpLCAw
LCAwIH07CisgICAgY29uc3QgTGFuZ3VhZ2VEYXRhKiBsb3dlckJvdW5kID0gc3RkOjpsb3dlcl9i
b3VuZDxjb25zdCBMYW5ndWFnZURhdGEqLCBjb25zdCBMYW5ndWFnZURhdGE+KGxhbmd1YWdlRGF0
YSwgbGFuZ3VhZ2VEYXRhRW5kLCByZXF1ZXN0KTsKKyAgICBpZiAobG93ZXJCb3VuZCA9PSBsYW5n
dWFnZURhdGFFbmQpCisgICAgICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXMoKTsKKyAg
ICBpZiAoc3RybmNtcChsb3dlckJvdW5kLT5uYW1lLCByZXF1ZXN0Lm5hbWUsIHN0cmxlbihsb3dl
ckJvdW5kLT5uYW1lKSkpCisgICAgICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXMoKTsK
KyAgICByZXR1cm5WYWx1ZSA9IFF1b3Rlc0RhdGE6OmNyZWF0ZShsb3dlckJvdW5kLT5hcnJheVNp
emUpOworICAgIGlmICghcmV0dXJuVmFsdWUpCisgICAgICAgIHJldHVybiBkZWZhdWx0TGFuZ3Vh
Z2VRdW90ZXMoKTsKKyAgICBTdHJpbmcqIGRhdGEgPSByZXR1cm5WYWx1ZS0+ZGF0YSgpOworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbG93ZXJCb3VuZC0+YXJyYXlTaXplOyArK2kpCisgICAgICAg
IGRhdGFbaV0gPSBsb3dlckJvdW5kLT5hcnJheVtpXTsKKyAgICBxdW90ZXNNYXAoKS5zZXQobG93
ZXIuaW1wbCgpLCByZXR1cm5WYWx1ZSk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorI3Vu
ZGVmIEFSUkFZX1NJWkUKKworc3RhdGljIGNvbnN0IFF1b3Rlc0RhdGEqIGRlZmF1bHRRdW90ZXMo
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgc3RhdGljIFN0cmluZyBsYW5nU3Ry
aW5nID0gImxhbmciOworICAgIE5vZGUqIG5vZGUgPSAgb2JqZWN0LT5nZW5lcmF0aW5nTm9kZSgp
OworICAgIEVsZW1lbnQqIGVsZW1lbnQ7CisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVsZW1l
bnQgPSBvYmplY3QtPmRvY3VtZW50KCktPmJvZHkoKTsKKyAgICAgICAgaWYgKCFlbGVtZW50KQor
ICAgICAgICAgICAgZWxlbWVudCA9IG9iamVjdC0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50
KCk7CisgICAgfSBlbHNlIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIGVs
ZW1lbnQgPSBub2RlLT5wYXJlbnRFbGVtZW50KCk7CisgICAgICAgIGlmICghZWxlbWVudCkKKyAg
ICAgICAgICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXMoKTsKKyAgICB9IGVsc2UKKyAg
ICAgIGVsZW1lbnQgPSB0b0VsZW1lbnQobm9kZSk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nKiBs
YW5ndWFnZTsKKyAgICB3aGlsZSAoKGxhbmd1YWdlID0gJmVsZW1lbnQtPmdldEF0dHJpYnV0ZShs
YW5nU3RyaW5nKSkgJiYgbGFuZ3VhZ2UtPmlzTnVsbCgpKSB7CisgICAgICAgIGVsZW1lbnQgPSBl
bGVtZW50LT5wYXJlbnRFbGVtZW50KCk7CisgICAgICAgIGlmICghZWxlbWVudCkKKyAgICAgICAg
ICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXMoKTsKKyAgICB9CisgICAgcmV0dXJuIHF1
b3Rlc0Zvckxhbmd1YWdlKGxhbmd1YWdlLT5pbXBsKCkpOworfQorCitQYXNzUmVmUHRyPFN0cmlu
Z0ltcGw+IFJlbmRlclF1b3RlOjpvcmlnaW5hbFRleHQoKSBjb25zdAoreworICAgIGlmICghcGFy
ZW50KCkpCisgICAgICAgIHJldHVybiAwOworICAgIEFTU0VSVChtX2RlcHRoICE9IFVOS05PV05f
REVQVEgpOworICAgICBjb25zdCBRdW90ZXNEYXRhKiBxdW90ZXMgPSBzdHlsZSgpLT5xdW90ZXMo
KTsKKyAgICAgaWYgKCFxdW90ZXMpCisgICAgICAgICBxdW90ZXMgPSBkZWZhdWx0UXVvdGVzKHRo
aXMpOworICAgIGlmICghcXVvdGVzLT5sZW5ndGgpCisgICAgICAgIHJldHVybiBlbXB0eUF0b20u
aW1wbCgpOworICAgIGludCBpbmRleCA9IG1fZGVwdGggKiAyOworICAgIHN3aXRjaCAobV90eXBl
KSB7CisgICAgY2FzZSBOT19PUEVOX1FVT1RFOgorICAgIGNhc2UgTk9fQ0xPU0VfUVVPVEU6Cisg
ICAgICAgIHJldHVybiBTdHJpbmcoIiIpLmltcGwoKTsKKyAgICBjYXNlIENMT1NFX1FVT1RFOgor
ICAgICAgICBpZiAoaW5kZXgpCisgICAgICAgICAgICAtLWluZGV4OworICAgICAgICBlbHNlCisg
ICAgICAgICAgICArK2luZGV4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9QRU5fUVVPVEU6
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm4gZW1wdHlBdG9tLmltcGwoKTsKKyAgICB9CisgICAgaWYgKGlu
ZGV4ID49IHF1b3Rlcy0+bGVuZ3RoKQorICAgICAgICBpbmRleCA9IChxdW90ZXMtPmxlbmd0aC0y
KSB8IChpbmRleCAmIDEpOworICAgIGlmIChpbmRleCA8IDApCisgICAgICAgIHJldHVybiBlbXB0
eUF0b20uaW1wbCgpOworICAgIHJldHVybiBxdW90ZXMtPmRhdGEoKVtpbmRleF0uaW1wbCgpOwor
fQorCit2b2lkIFJlbmRlclF1b3RlOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhpbnQg
bGVhZCkKK3sKKyAgICBzZXRUZXh0SW50ZXJuYWwob3JpZ2luYWxUZXh0KCkpOworICAgIFJlbmRl
clRleHQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKGxlYWQpOworfQorCit2b2lkIFJl
bmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KQoreworICAgIGlmIChyZW5kZXJlci0+ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgICAg
ICByZXR1cm47CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGRlc2NlbmRhbnQgPSByZW5kZXJlcjsg
ZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHJlbmRl
cmVyKSkKKyAgICAgICAgaWYgKGRlc2NlbmRhbnQtPmlzUXVvdGUoKSkgeworICAgICAgICAgICAg
dG9SZW5kZXJRdW90ZShkZXNjZW5kYW50KS0+cGxhY2VRdW90ZSgpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KK30KKwordm9pZCBSZW5kZXJRdW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJv
bVRyZWUoUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUm9vdCkKK3sKKyAgICBpZiAoc3VidHJlZVJvb3Qt
PmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGZvciAoUmVu
ZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gc3VidHJlZVJvb3Q7IGRlc2NlbmRhbnQ7IGRlc2NlbmRh
bnQgPSBkZXNjZW5kYW50LT5uZXh0SW5QcmVPcmRlcihzdWJ0cmVlUm9vdCkpCisgICAgICAgIGlm
IChkZXNjZW5kYW50LT5pc1F1b3RlKCkpIHsKKyAgICAgICAgICAgIFJlbmRlclF1b3RlKiByZW1v
dmVkUXVvdGUgPSB0b1JlbmRlclF1b3RlKGRlc2NlbmRhbnQpOworICAgICAgICAgICAgUmVuZGVy
UXVvdGUqIGxhc3RRdW90ZUJlZm9yZSA9IHJlbW92ZWRRdW90ZS0+bV9wcmV2aW91czsKKyAgICAg
ICAgICAgIHJlbW92ZWRRdW90ZS0+bV9wcmV2aW91cyA9IDA7CisgICAgICAgICAgICBpbnQgZGVw
dGggPSByZW1vdmVkUXVvdGUtPm1fZGVwdGg7CisgICAgICAgICAgICBmb3IgKGRlc2NlbmRhbnQg
PSBkZXNjZW5kYW50LT5uZXh0SW5QcmVPcmRlcihzdWJ0cmVlUm9vdCk7IGRlc2NlbmRhbnQ7IGRl
c2NlbmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0SW5QcmVPcmRlcihzdWJ0cmVlUm9vdCkpCisgICAg
ICAgICAgICAgICAgaWYgKGRlc2NlbmRhbnQtPmlzUXVvdGUoKSkKKyAgICAgICAgICAgICAgICAg
ICAgcmVtb3ZlZFF1b3RlID0gdG9SZW5kZXJRdW90ZShkZXNjZW5kYW50KTsKKyAgICAgICAgICAg
IFJlbmRlclF1b3RlKiBxdW90ZUFmdGVyID0gcmVtb3ZlZFF1b3RlLT5tX25leHQ7CisgICAgICAg
ICAgICByZW1vdmVkUXVvdGUtPm1fbmV4dCA9IDA7CisgICAgICAgICAgICBpZiAobGFzdFF1b3Rl
QmVmb3JlKQorICAgICAgICAgICAgICAgIGxhc3RRdW90ZUJlZm9yZS0+bV9uZXh0ID0gcXVvdGVB
ZnRlcjsKKyAgICAgICAgICAgIGlmIChxdW90ZUFmdGVyKSB7CisgICAgICAgICAgICAgICAgcXVv
dGVBZnRlci0+bV9wcmV2aW91cyA9IGxhc3RRdW90ZUJlZm9yZTsKKyAgICAgICAgICAgICAgICBk
byB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkZXB0aCA9PSBxdW90ZUFmdGVyLT5tX2RlcHRo
KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIHF1
b3RlQWZ0ZXItPm1fZGVwdGggPSBkZXB0aDsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVBZnRl
ci0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CisgICAgICAgICAgICAgICAg
ICAgIGFkanVzdERlcHRoKGRlcHRoLCBxdW90ZUFmdGVyLT5tX3R5cGUpOworICAgICAgICAgICAg
ICAgICAgICBxdW90ZUFmdGVyID0gcXVvdGVBZnRlci0+bV9uZXh0OworICAgICAgICAgICAgICAg
IH0gd2hpbGUgKHF1b3RlQWZ0ZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KK30KKwordm9pZCBSZW5kZXJRdW90ZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVE
aWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBjb25z
dCBRdW90ZXNEYXRhKiBuZXdRdW90ZXMgPSBzdHlsZSgpLT5xdW90ZXMoKTsKKyAgICBjb25zdCBR
dW90ZXNEYXRhKiBvbGRRdW90ZXMgPSBvbGRTdHlsZSA/IG9sZFN0eWxlLT5xdW90ZXMoKSA6IDA7
CisgICAgaWYgKCEoKG5ld1F1b3RlcyAmJiBvbGRRdW90ZXMgJiYgKCpuZXdRdW90ZXMgPT0gKm9s
ZFF1b3RlcykpIHx8ICghbmV3UXVvdGVzICYmICFvbGRRdW90ZXMpKSkKKyAgICAgICAgc2V0TmVl
ZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CisgICAgUmVuZGVyVGV4dDo6c3R5bGVEaWRD
aGFuZ2UoZGlmZiwgb2xkU3R5bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmMyOTM4YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUXVvdGUuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIE5va2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUmVuZGVy
UXVvdGVfaAorI2RlZmluZSBSZW5kZXJRdW90ZV9oCisKKyNpbmNsdWRlICJSZW5kZXJTdHlsZUNv
bnN0YW50cy5oIgorI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBSZW5kZXJRdW90ZSA6IHB1YmxpYyBSZW5kZXJUZXh0IHsKK3B1YmxpYzoKKyAg
ICBSZW5kZXJRdW90ZShEb2N1bWVudCosIGNvbnN0IFF1b3RlVHlwZSk7CisgICAgdmlydHVhbCB+
UmVuZGVyUXVvdGUoKTsKKworICAgIHN0YXRpYyB2b2lkIHJlbmRlcmVyU3VidHJlZUF0dGFjaGVk
KFJlbmRlck9iamVjdCopOworICAgIHN0YXRpYyB2b2lkIHJlbmRlcmVyUmVtb3ZlZEZyb21UcmVl
KFJlbmRlck9iamVjdCopOworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENo
YW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7Citwcml2
YXRlOgorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc1F1b3RlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfTsKKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gb3JpZ2luYWxUZXh0KCkgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKGludCBsZWFkV2lkdGgpOworICAg
IFF1b3RlVHlwZSBtX3R5cGU7CisgICAgaW50IG1fZGVwdGg7CisgICAgUmVuZGVyUXVvdGUqIG1f
bmV4dDsKKyAgICBSZW5kZXJRdW90ZSogbV9wcmV2aW91czsKKyAgICB2b2lkIHBsYWNlUXVvdGUo
KTsKK307CisKK2lubGluZSBSZW5kZXJRdW90ZSogdG9SZW5kZXJRdW90ZShSZW5kZXJPYmplY3Qq
IG9iamVjdCkKK3sKKyAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzUXVvdGUoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclF1b3RlKj4ob2JqZWN0KTsKK30KKworLy8gVGhp
cyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgordm9pZCB0b1Jl
bmRlclF1b3RlKGNvbnN0IFJlbmRlclF1b3RlKik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFJlbmRlclF1b3RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyaW5nQWxsSW5PbmUuY3BwCmluZGV4IDc2MGYwMmQuLjE5NWZhM2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcApAQCAtNzksNiArNzks
NyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVjdENoaWxkTGlzdC5jcHAiCiAjaW5jbHVkZSAiUmVu
ZGVyUGFydC5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuY3BwIgorI2luY2x1ZGUgIlJl
bmRlclF1b3RlLmNwcCIKICNpbmNsdWRlICJSZW5kZXJSZXBsYWNlZC5jcHAiCiAjaW5jbHVkZSAi
UmVuZGVyUmVwbGljYS5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyUnVieS5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAppbmRleCBkMTUwZjc3Li5h
YjUwNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVu
dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0
YS5jcHAKQEAgLTUxLDYgKzUxLDggQEAgYm9vbCBDb250ZW50RGF0YTo6ZGF0YUVxdWl2YWxlbnQo
Y29uc3QgQ29udGVudERhdGEmIG90aGVyKSBjb25zdAogICAgICAgICByZXR1cm4gU3R5bGVJbWFn
ZTo6aW1hZ2VzRXF1aXZhbGVudChpbWFnZSgpLCBvdGhlci5pbWFnZSgpKTsKICAgICBjYXNlIENP
TlRFTlRfQ09VTlRFUjoKICAgICAgICAgcmV0dXJuICpjb3VudGVyKCkgPT0gKm90aGVyLmNvdW50
ZXIoKTsKKyAgICBjYXNlIENPTlRFTlRfUVVPVEU6CisgICAgICAgIHJldHVybiBxdW90ZSgpID09
IG90aGVyLnF1b3RlKCk7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC03
MSw2ICs3Myw4IEBAIHZvaWQgQ29udGVudERhdGE6OmRlbGV0ZUNvbnRlbnQoKQogICAgIGNhc2Ug
Q09OVEVOVF9DT1VOVEVSOgogICAgICAgICBkZWxldGUgbV9jb250ZW50Lm1fY291bnRlcjsKICAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICBicmVhazsKICAg
ICB9CiAKICAgICBtX3R5cGUgPSBDT05URU5UX05PTkU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9Db250ZW50RGF0YS5oCmluZGV4IDE1ZjY5MTIuLmNjZTM3NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5oCkBAIC01MSw2ICs1MSw3
IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ291bnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9
PSBDT05URU5UX0NPVU5URVI7IH0KICAgICBib29sIGlzSW1hZ2UoKSBjb25zdCB7IHJldHVybiBt
X3R5cGUgPT0gQ09OVEVOVF9PQkpFQ1Q7IH0KICAgICBib29sIGlzTm9uZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZSA9PSBDT05URU5UX05PTkU7IH0KKyAgICBib29sIGlzUXVvdGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gQ09OVEVOVF9RVU9URTsgfQogICAgIGJvb2wgaXNUZXh0KCkgY29u
c3QgeyByZXR1cm4gbV90eXBlID09IENPTlRFTlRfVEVYVDsgfQogCiAgICAgU3R5bGVDb250ZW50
VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CkBAIC05Myw2ICs5NCwxOCBAQCBw
dWJsaWM6CiAgICAgICAgIG1fY29udGVudC5tX2NvdW50ZXIgPSBjb3VudGVyLmxlYWtQdHIoKTsK
ICAgICB9CiAKKyAgICBRdW90ZVR5cGUgcXVvdGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKGlzUXVvdGUoKSk7CisgICAgICAgIHJldHVybiBtX2NvbnRlbnQubV9xdW90ZTsKKyAgICB9
CisgICAgdm9pZCBzZXRRdW90ZShRdW90ZVR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIGRlbGV0
ZUNvbnRlbnQoKTsKKyAgICAgICAgbV90eXBlID0gQ09OVEVOVF9RVU9URTsKKyAgICAgICAgbV9j
b250ZW50Lm1fcXVvdGUgPSB0eXBlOworICAgIH0KKwogICAgIENvbnRlbnREYXRhKiBuZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV9uZXh0LmdldCgpOyB9CiAgICAgdm9pZCBzZXROZXh0KFBhc3NPd25Q
dHI8Q29udGVudERhdGE+IG5leHQpIHsgbV9uZXh0ID0gbmV4dDsgfQogCkBAIC0xMDQsNiArMTE3
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgU3R5bGVJbWFnZSogbV9pbWFnZTsKICAgICAgICAgU3Ry
aW5nSW1wbCogbV90ZXh0OwogICAgICAgICBDb3VudGVyQ29udGVudCogbV9jb3VudGVyOworICAg
ICAgICBRdW90ZVR5cGUgbV9xdW90ZTsKICAgICB9IG1fY29udGVudDsKICAgICBPd25QdHI8Q29u
dGVudERhdGE+IG1fbmV4dDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUXVvdGVzRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UXVvdGVzRGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI5ZmUz
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90
ZXNEYXRhLmNwcApAQCAtMCwwICsxLDYwIEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAxMSBO
b2tpYSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitRdW90ZXNE
YXRhKiBRdW90ZXNEYXRhOjpjcmVhdGUoaW50IHN0cmluZ0NvdW50KQoreworICAgIGNoYXIqIHRt
cCA9IG5ldyBjaGFyW3NpemVvZihRdW90ZXNEYXRhKStzaXplb2YoU3RyaW5nKSpzdHJpbmdDb3Vu
dF07CisgICAgaWYgKCF0bXApCisgICAgICAgIHJldHVybiAwOworICAgIG5ldyAodG1wKSBRdW90
ZXNEYXRhKHN0cmluZ0NvdW50KTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0cmluZ0NvdW50
OyArK2kpCisgICAgICAgIG5ldyAodG1wICtzaXplb2YoUXVvdGVzRGF0YSkgKyBzaXplb2YoU3Ry
aW5nKSppKSBTdHJpbmcoKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxRdW90ZXNEYXRh
Kj4odG1wKTsKK30KKworYm9vbCBRdW90ZXNEYXRhOjpvcGVyYXRvcj09KGNvbnN0IFF1b3Rlc0Rh
dGEmIG90aGVyKSBjb25zdAoreworICAgIGlmICh0aGlzID09ICZvdGhlcikKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgaWYgKCEmb3RoZXIgfHwgIXRoaXMpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAobGVuZ3RoICE9IG90aGVyLmxlbmd0aCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGNvbnN0IFN0cmluZyogbXlEYXRhID0gZGF0YSgpOworICAgIGNvbnN0IFN0cmluZyog
b3RoZXJEYXRhID0gb3RoZXIuZGF0YSgpOworICAgIGZvciAoaW50IGkgPSBsZW5ndGgtMTsgaSA+
PSAwOyAtLWkpCisgICAgICAgIGlmIChteURhdGFbaV0gIT0gb3RoZXJEYXRhW2ldKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitRdW90ZXNEYXRhOjp+
UXVvdGVzRGF0YSgpCit7CisgICAgU3RyaW5nKiBwID0gZGF0YSgpOworICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgIHBbaV0uflN0cmluZygpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUXVvdGVzRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1F1b3Rl
c0RhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjhhNmRkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEu
aApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUXVvdGVzRGF0YV9oCisjZGVmaW5lIFF1
b3Rlc0RhdGFfaAorCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFF1b3Rlc0RhdGEg
OiBwdWJsaWMgUmVmQ291bnRlZDxRdW90ZXNEYXRhPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
UXVvdGVzRGF0YSgpOworICAgIHN0YXRpYyBRdW90ZXNEYXRhKiBjcmVhdGUoaW50IHN0cmluZ0Nv
dW50KTsKKyAgICBTdHJpbmcqIGRhdGEoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PFN0cmlu
Zyo+KHRoaXMrMSk7IH0KKyAgICBjb25zdCBTdHJpbmcqIGRhdGEoKSBjb25zdCB7IHJldHVybiBy
ZWludGVycHJldF9jYXN0PGNvbnN0IFN0cmluZyo+KHRoaXMrMSk7IH0KKyAgICBpbnQgbGVuZ3Ro
OworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBRdW90ZXNEYXRhJikgY29uc3Q7CisgICAgdm9p
ZCBvcGVyYXRvciBkZWxldGUodm9pZCogcCkgeyBkZWxldGVbXSBzdGF0aWNfY2FzdDxjaGFyKj4o
cCk7IH0KK3ByaXZhdGU6CisgICAgUXVvdGVzRGF0YShpbnQgc3RyaW5nQ291bnQpIDogbGVuZ3Ro
KHN0cmluZ0NvdW50KSB7fQorfTsKKworfQorI2VuZGlmIC8vIFF1b3Rlc0RhdGFfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggYjc2YTM1
MC4uODFkYTQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5o
IgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJGb250U2VsZWN0b3Iu
aCIKKyNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTY2FsZVRyYW5zZm9ybU9wZXJhdGlv
bi5oIgpAQCAtNjA1LDYgKzYwNiwxMyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRDdXJzb3JMaXN0
KFBhc3NSZWZQdHI8Q3Vyc29yTGlzdD4gb3RoZXIpCiAgICAgcmFyZUluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPmN1cnNvckRhdGEgPSBvdGhlcjsKIH0KIAordm9pZCBSZW5kZXJTdHlsZTo6c2V0UXVv
dGVzKFBhc3NSZWZQdHI8UXVvdGVzRGF0YT4gcSkKK3sKKyAgICBpZiAoKnJhcmVJbmhlcml0ZWRE
YXRhLT5xdW90ZXMuZ2V0KCkgPT0gKnEuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKyAgICByYXJl
SW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+cXVvdGVzID0gcTsKK30KKwogdm9pZCBSZW5kZXJTdHls
ZTo6Y2xlYXJDdXJzb3JMaXN0KCkKIHsKICAgICBpZiAocmFyZUluaGVyaXRlZERhdGEtPmN1cnNv
ckRhdGEpCkBAIC02NzIsNiArNjgwLDExIEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQo
UGFzc093blB0cjxDb3VudGVyQ29udGVudD4gY291bnRlciwgYm9vbCBhZGQpCiAgICAgcHJlcGFy
ZVRvU2V0Q29udGVudCgwLCBhZGQpLT5zZXRDb3VudGVyKGNvdW50ZXIpOwogfQogCit2b2lkIFJl
bmRlclN0eWxlOjpzZXRDb250ZW50KFF1b3RlVHlwZSBxdW90ZSwgYm9vbCBhZGQpCit7CisgICAg
cHJlcGFyZVRvU2V0Q29udGVudCgwLCBhZGQpLT5zZXRRdW90ZShxdW90ZSk7Cit9CisKIHZvaWQg
UmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zv
cm0sIGNvbnN0IEludFNpemUmIGJvcmRlckJveFNpemUsIEFwcGx5VHJhbnNmb3JtT3JpZ2luIGFw
cGx5T3JpZ2luKSBjb25zdAogewogICAgIC8vIHRyYW5zZm9ybS1vcmlnaW4gYnJhY2tldHMgdGhl
IHRyYW5zZm9ybSB3aXRoIHRyYW5zbGF0ZSBvcGVyYXRpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA1NTg1ODBiLi42NGFmMzA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTEyNiwx
MCArMTEyNiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb250ZW50KFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4sIGJvb2wgYWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVm
UHRyPFN0eWxlSW1hZ2U+LCBib29sIGFkZCA9IGZhbHNlKTsKICAgICB2b2lkIHNldENvbnRlbnQo
UGFzc093blB0cjxDb3VudGVyQ29udGVudD4sIGJvb2wgYWRkID0gZmFsc2UpOworICAgIHZvaWQg
c2V0Q29udGVudChRdW90ZVR5cGUsIGJvb2wgYWRkID0gZmFsc2UpOwogCiAgICAgY29uc3QgQ291
bnRlckRpcmVjdGl2ZU1hcCogY291bnRlckRpcmVjdGl2ZXMoKSBjb25zdDsKICAgICBDb3VudGVy
RGlyZWN0aXZlTWFwJiBhY2Nlc3NDb3VudGVyRGlyZWN0aXZlcygpOwogCisgICAgUXVvdGVzRGF0
YSogcXVvdGVzKCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPnF1b3Rlcy5nZXQo
KTsgfQorICAgIHZvaWQgc2V0UXVvdGVzKFBhc3NSZWZQdHI8UXVvdGVzRGF0YT4pOworCiAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBoeXBoZW5TdHJpbmcoKSBjb25zdDsKIAogICAgIGJvb2wgaW5o
ZXJpdGVkTm90RXF1YWwoY29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXgg
NDRjZDNmNS4uM2M2MmRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTI5Nyw3ICsyOTcsMTEgQEAgZW51bSBF
TGlzdFN0eWxlVHlwZSB7CiB9OwogCiBlbnVtIFN0eWxlQ29udGVudFR5cGUgewotICAgIENPTlRF
TlRfTk9ORSwgQ09OVEVOVF9PQkpFQ1QsIENPTlRFTlRfVEVYVCwgQ09OVEVOVF9DT1VOVEVSCisg
ICAgQ09OVEVOVF9OT05FLCBDT05URU5UX09CSkVDVCwgQ09OVEVOVF9URVhULCBDT05URU5UX0NP
VU5URVIsIENPTlRFTlRfUVVPVEUKK307CisKK2VudW0gUXVvdGVUeXBlIHsKKyAgICBPUEVOX1FV
T1RFLCBDTE9TRV9RVU9URSwgTk9fT1BFTl9RVU9URSwgTk9fQ0xPU0VfUVVPVEUKIH07CiAKIGVu
dW0gRUJvcmRlckZpdCB7IEJvcmRlckZpdEJvcmRlciwgQm9yZGVyRml0TGluZXMgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0
ZWREYXRhLmNwcAppbmRleCA2YjhlMDM5Li45ZGNmOTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBA
IC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIgogCiAj
aW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRl
ICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5j
bHVkZSAiU2hhZG93RGF0YS5oIgpAQCAtMTMyLDcgKzEzMyw4IEBAIGJvb2wgU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBj
b25zdAogICAgICAgICAmJiB0ZXh0RW1waGFzaXNQb3NpdGlvbiA9PSBvLnRleHRFbXBoYXNpc1Bv
c2l0aW9uCiAgICAgICAgICYmIGh5cGhlbmF0aW9uU3RyaW5nID09IG8uaHlwaGVuYXRpb25TdHJp
bmcKICAgICAgICAgJiYgaHlwaGVuYXRpb25Mb2NhbGUgPT0gby5oeXBoZW5hdGlvbkxvY2FsZQot
ICAgICAgICAmJiB0ZXh0RW1waGFzaXNDdXN0b21NYXJrID09IG8udGV4dEVtcGhhc2lzQ3VzdG9t
TWFyazsKKyAgICAgICAgJiYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyayA9PSBvLnRleHRFbXBoYXNp
c0N1c3RvbU1hcmsKKyAgICAgICAgJiYgKnF1b3Rlcy5nZXQoKSA9PSAqby5xdW90ZXMuZ2V0KCk7
CiB9CiAKIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6c2hhZG93RGF0YUVxdWl2YWxlbnQo
Y29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4
IGQyNmNhODMuLmZjNTZlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMzQsNiArMzQsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdXJzb3JMaXN0OworY2xhc3MgUXVvdGVzRGF0YTsK
IGNsYXNzIFNoYWRvd0RhdGE7CiAKIC8vIFRoaXMgc3RydWN0IGlzIGZvciByYXJlbHkgdXNlZCBp
bmhlcml0ZWQgQ1NTMywgQ1NTMiwgYW5kIFdlYktpdC1zcGVjaWZpYyBwcm9wZXJ0aWVzLgpAQCAt
ODgsNiArODksNyBAQCBwdWJsaWM6CiAgICAgQXRvbWljU3RyaW5nIGh5cGhlbmF0aW9uTG9jYWxl
OwogCiAgICAgQXRvbWljU3RyaW5nIHRleHRFbXBoYXNpc0N1c3RvbU1hcms7CisgICAgUmVmUHRy
PFF1b3Rlc0RhdGE+IHF1b3RlczsKIAogcHJpdmF0ZToKICAgICBTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82706</attachid>
            <date>2011-02-16 15:05:31 -0800</date>
            <delta_ts>2011-02-18 11:14:17 -0800</delta_ts>
            <desc>Proposed Patch. Fixed typo in WebCore.gypi</desc>
            <filename>patchFor6503-4.patch</filename>
            <type>text/plain</type>
            <size>77012</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwM2IwYTYxLi5mM2VhZWQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIwMTEtMDIt
MTYgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgogCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24n
dCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyBmb3IgcXVvdGVzLgorCisg
ICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbDogQWRkZWQu
CisKKzIwMTEtMDItMTYgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgogCiAgICAgICAgIFJFR1JFU1NJT046IFVz
ZSBhZnRlciBmcmVlIGluIFdlYkNvcmU6OlJlbmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9k
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rl
cy0wMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQt
cXVvdGVzLTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li40MWVjOGYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVu
dC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlIHRl
eHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC4KKworPT09PT09PT1N
YXJrZXIxPT09PT09PT0KKworYWIJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9
PT09PT09PU1hcmtlcjI9PT09PT09PQorCitXV2FXV2JXV1dXV1dXVwkxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMz09PT09PT09CisKK1BBU1NFRApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViOWE0MGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLmh0
bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICBib2R5IHsgcXVvdGVzOiAiV1ciICJXV1dXIjsg
fQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkgeworICAgICAgICAgICAgICAgIHRlc3RX
aWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAg
ICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndp
ZHRoIik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkK
KyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZB
SUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VX
aWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBv
bmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJy
b3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwu
PC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRh
YmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRh
aW5lciI+PHE+YTxxPmI8L3E+PC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAg
ICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAg
ICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVm
ZXJlbmNlIj5XV2FXV2JXV1dXV1dXVzwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAg
ICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAg
ICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMTQ0NzYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVv
dGVzLTAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKz09PT09PT09TWFya2VyMT09PT09
PT09CisKK2FiY2QJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1h
cmtlcjI9PT09PT09PQorCithV1dXYldXV1dXY1dXZFdXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWU3ODUxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMi5odG1sCkBA
IC0wLDAgKzEsNDkgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIg
IldXV1dXIjsgfQorICAgICAgICAgICAgc3BhbjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1
b3RlOyB9CisgICAgICAgICAgICBzcGFuOmFmdGVyIHsgY29udGVudDogbm8tY2xvc2UtcXVvdGU7
IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1bigpIHsKKyAgICAgICAgICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAi
ZGlzcGxheTogbm9uZTsiKTsKKyAgICAgICAgICAgICAgICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENvbnRhaW5lciIpLCBu
dWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIHJlZmVyZW5j
ZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAg
ICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNlV2lkdGgpCisgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIlBBU1NF
RCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0i
ICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVmZXJlbmNlV2lkdGg7CisgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0dHJpYnV0
ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4K
KyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJr
ZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9
PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAg
ICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHNwYW4+YTxxPmI8L3E+Yzwvc3Bhbj48cT5k
PC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAg
ICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAg
ICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5hV1dXYldXV1dX
Y1dXZFdXV1c8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEg
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+Cisg
ICAgICAgIDxwPj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJj
b25zb2xlIi8+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTFkZWJhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw5IEBACis9PT09PT09PU1hcmtlcjE9PT09PT09PQorCithYgkxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisK
K2FXV1diV1dXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1h
cmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
bnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43YzFmOWJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wMy5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAg
Ym9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAg
YjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5j
dGlvbiBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJ
bkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAg
ICAgICAgICAgICAgdGVzdFdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRlc3RDb250YWluZXIiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgi
d2lkdGgiKTsKKyAgICAgICAgICAgICAgICByZWZlcmVuY2VXaWR0aCA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2UiKSwgbnVsbCkuZ2V0
UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFdpZHRoID09
IHJlZmVyZW5jZVdpZHRoKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJQQVNTRUQiOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5pbm5lclRleHQgPSAiRkFJTEVEOiB0ZXN0V2lkdGg9IiArIHRlc3RXaWR0aCArIjsgZXhwZWN0
ZWQgIiArIHJlZmVyZW5jZVdpZHRoOworICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKworICAgIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuKCknLCAwKTsiPgorICAgICAg
ICA8cCBpZD0ib25seUluQnJvd3NlciI+VGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hv
dWxkIGJlIGlkZW50aWNhbC48L3A+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMT09PT09PT09
PC9wPgorICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAg
PHRkIGlkPSJ0ZXN0Q29udGFpbmVyIj48c3Bhbj48Yj5hPC9iPjwvc3Bhbj48cT5iPC9xPjwvdGQ+
CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwv
dGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09
PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRy
PgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj48c3BhbiBzdHlsZT0iZm9udC13
ZWlnaHQ6IGJvbGRlcjsiPmE8L3NwYW4+V1dXYldXV1dXPC90ZD4KKyAgICAgICAgICAgICAgICA8
dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAxICAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8
L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjM9PT09PT09
PTwvcD4KKyAgICAgICAgPHByZSBpZD0iY29uc29sZSIvPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMt
MDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1
b3Rlcy0wNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MjA1N2E0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQv
Y29udGVudC1xdW90ZXMtMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorPT09PT09PT1N
YXJrZXIxPT09PT09PT0KKworYgkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09
PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYldXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzAyOWQ3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC5odG1sCkBAIC0w
LDAgKzEsNDkgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldX
V1dXIjsgfQorICAgICAgICAgICAgYjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRp
c3BsYXk6IG5vbmU7Iik7CisgICAgICAgICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidG9SZW1vdmUiKTsKKyAgICAgICAgICAgICAgICBlbC5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGVsKTsKKyAgICAgICAgICAgICAgICB0ZXN0V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0g
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5j
ZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAgIGlm
ICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNlV2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdp
ZHRoICsiOyBleHBlY3RlZCAiICsgcmVmZXJlbmNlV2lkdGg7CisgICAgICAgICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW4oKScs
IDApOyI+CisgICAgICAgIDxwIGlkPSJvbmx5SW5Ccm93c2VyIj5UaGUgdGV4dHMgYmV0d2VlbiB0
aGUgbWFya2VycyBzaG91bGQgYmUgaWRlbnRpY2FsLjwvcD4KKyAgICAgICAgPHA+PT09PT09PT1N
YXJrZXIxPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAg
ICAgICAgICAgICAgICA8dGQgaWQ9InRlc3RDb250YWluZXIiPjxzcGFuPjxiIGlkPSJ0b1JlbW92
ZSI+YTwvYj48L3NwYW4+PHE+YjwvcT48L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAg
ICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAg
ICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJl
ZmVyZW5jZSI+V1diV1dXVzwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90
YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIzPT09PT09PT08L3A+CisgICAgICAgIDxw
cmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzZWI0OTcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKz09PT09PT09TWFya2VyMT09PT09PT09CisK
K2FiYwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09
PT09PT09CisKK1dXYVdXV2JXV1dXV2NXV1dXCTEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMQorPT09PT09PT1NYXJrZXIzPT09PT09PT0KKworUEFTU0VECmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDIyYmUzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbApAQCAtMCwwICsx
LDQ3IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KKyAgICAgICAgICAgIC5teVF1b3RlcyB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldX
V1dXIjsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkgeworICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmx5SW5Ccm93c2VyIikuc2V0QXR0cmlidXRlKCJzdHls
ZSIsICJkaXNwbGF5OiBub25lOyIpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2V0
QXR0cmlidXRlKCJjbGFzcyIsICJteVF1b3RlcyIpOworICAgICAgICAgICAgICAgIHRlc3RXaWR0
aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAg
ICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndpZHRo
Iik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9PSByZWZlcmVuY2VXaWR0aCkKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5l
clRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIkZBSUxF
RDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVjdGVkICIgKyByZWZlcmVuY2VXaWR0
aDsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxv
YWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dz
ZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9w
PgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxl
PgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5l
ciI+PHE+YTxxPmI8L3E+YzwvcT48L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAg
PC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIyPT09PT09PT08L3A+CisgICAgICAg
IDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InJlZmVy
ZW5jZSI+V1dhV1dXYldXV1dXY1dXV1c8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEgMSAx
IDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAg
ICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgorICAg
ICAgICA8cHJlIGlkPSJjb25zb2xlIi8+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsK
aW5kZXggOWNkMzAyMi4uY2MwZmE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9p
ZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC03MDIsNiArNzAyLDcgQEAg
TE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIFwKIAly
ZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAgXAorCXJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAgXAog
CXJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBsaWNh
LmNwcCBcCiAKQEAgLTc5Miw2ICs3OTMsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9T
UkNfRklMRVMpIFwKIAlyZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBcCiAJcmVuZGVyaW5n
L3N0eWxlL0tleWZyYW1lTGlzdC5jcHAgXAogCXJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFn
ZS5jcHAgXAorCXJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcCBcCiAJcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcCBcCiAKIGlmZXEgKCQoRU5BQkxFX1NWRyksIHRydWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IGMwYTJjNGUuLmQ1YjI5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0xMzg1LDYgKzEzODUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5n
L1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAK
ICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCisgICAgcmVuZGVyaW5nL1JlbmRlclF1
b3RlLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKICAgICByZW5kZXJpbmcv
UmVuZGVyUmVwbGljYS5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKQEAgLTE0MjMs
NiArMTQyNCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvRmls
bExheWVyLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9RdW90
ZXNEYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKICAgICByZW5k
ZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNr
Z3JvdW5kRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3NmViMDRlLi5iOWM5YjY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsOTIgQEAKIDIwMTEtMDItMTYgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9A
bm9raWEuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24ndCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVk
IGZ1bGwgc3VwcG9ydCBmb3IgcXVvdGVzIGFzIGRlZmluZWQgYnkgQ1NTIDIuMS4KKworICAgICAg
ICBUZXN0czogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNC5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1Lmh0bWwKKworICAgICAgICAq
IEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICBBZGRlZCBSZW5kZXJRdW90ZS5jcHAvaCBhbmQgUXVvdGVzRGF0YS5j
cHAvaCB0byB0aGUgZGVwZW5kZW5jeSBsaXN0cworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VRdW90ZXMpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIu
aDoKKyAgICAgICAgQWRkZWQgbmVlZGVkIHN0eWxlc2hlZXQgcGFyc2luZyBzdXBwb3J0IGZvciBx
dW90ZXMsCisgICAgICAgIChuby0pb3Blbi1xdW90ZSBhbmQgKG5vLSljbG9zZS1xdW90ZQorICAg
ICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICBIYW5kbGVkIHNldHRpbmcgb2Yg
dGhlIG5ldyBxdW90ZXMgUmVuZGVyU3R5bGUgcHJvcGVydHkgYW5kIGFkZGVkCisgICAgICAgIGhh
bmRsaW5nIG9mIHF1b3RlcyBmb3IgdGhlIGNvbnRlbnQgcHJvcGVydHkuCisgICAgICAgICogY3Nz
L2h0bWwuY3NzOgorICAgICAgICAocTpiZWZvcmUpOgorICAgICAgICAocTphZnRlcik6CisgICAg
ICAgIHJlcGxhY2VkIHRoZSAnIicgd29ya2Fyb3VuZCB3aXRoIG9wZW4vY2xvc2UtcXVvdGUKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmRpcnR5TGluZUJveGVzRm9yUmVuZGVyZXIpOgorICAgICAgICBNYWRlIFJlbmRlclF1
b3RlIGJlaGF2ZSBsaWtlIFJlbmRlckNvdW50ZXIuCisgICAgICAgIE5lZWRlZCB0byBlbnN1cmUg
dGhhdCB0aGUgUXVvdGUgdGV4dCBpcyBjYWxjdWxhdGVkIGJlZm9yZSBsYXlvdXQsCisgICAgICAg
IGp1c3QgYXMgaXQgaXMgZm9yIFJlbmRlckNvdW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1F1b3RlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6cmVtb3ZlQ2hpbGROb2RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6aW5zZXJ0Q2hpbGROb2RlKToK
KyAgICAgICAgSGFuZGxlZCB1cGRhdGluZyBvZiBxdW90ZSBkZXB0aCB3aGVuIHJlbmRlcmVycyBh
cmUgYWRkZWQgYW5kIHJlbW92ZWQKKyAgICAgICAgZnJvbSB0aGUgdHJlZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmFkanVzdERlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpSZW5k
ZXJRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6flJlbmRlclF1b3RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpyZW5kZXJOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclF1b3RlOjpwbGFjZVF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clF1b3RlOjpvcmlnaW5hbFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1
b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJR
dW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJvbVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
UXVvdGU6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6aXNRdW90ZSk6CisgICAg
ICAgIChXZWJDb3JlOjp0b1JlbmRlclF1b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
aW5nQWxsSW5PbmUuY3BwOgorICAgICAgICBJbmNsdWRlZCBSZW5kZXJRdW90ZS5jcHAKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudERhdGE6OmRhdGFFcXVpdmFsZW50KToKKyAgICAgICAgQ2hlY2tlZCBmb3IgcXVvdGV0
eXBlIGlkZW50aXR5LgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6OmRlbGV0ZUNvbnRl
bnQpOgorICAgICAgICBBY2NvdW50ZWQgZm9yIHRoZSBuZXcgUVVPVEVfVFlQRS4KKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnREYXRhOjppc1F1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjpxdW90ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RGF0YTo6c2V0UXVvdGUpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6c2V0Q29udGVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6cXVvdGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRRdW90ZXMpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFy
ZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICBJbmNsdWRlZCBxdW90ZXMgaW4g
ZXF1YWxpdHkgY2hlY2suCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuaDoKKyAgICAgICAgQWRkZWQgcXVvdGVzCisKKzIwMTEtMDItMTYgIENhcm9sIFN6
YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlk
IEh5YXR0LgogCiAgICAgICAgIFJFR1JFU1NJT046IFVzZSBhZnRlciBmcmVlIGluIFdlYkNvcmU6
OlJlbmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRl
eCBhYjFhMjYwLi42MTE4OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjgyNCw2ICsyODI0
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUGFydC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCBcCisJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclF1b3RlLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAgXApAQCAtMjky
Niw2ICsyOTI4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL091dGxpbmVWYWx1ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUXVv
dGVzRGF0YS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRh
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggNzZhYmMwOC4uN2M2ZDkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzY1Niw2
ICszNjU2LDggQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2Uu
Y3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCcsCiAg
ICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5oJywKKyAgICAgICAgICAg
ICdyZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9RdW90ZXNEYXRhLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
JywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCcs
CkBAIC0zOTExLDYgKzM5MTMsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQYXJ0
LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oJywKKyAgICAgICAgICAgICdyZW5kZXJp
bmcvUmVuZGVyUXVvdGUuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUXVvdGUu
aCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCcsCiAgICAgICAg
ICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9SZW5kZXJSZXBsaWNhLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDVjODIwNDAuLmUyYTkxYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC0xMjMwLDYgKzEyMzAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBy
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
clBhcnQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIFwKKyAgICByZW5k
ZXJpbmcvUmVuZGVyUXVvdGUuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3Bw
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJSdWJ5LmNwcCBcCkBAIC0xMjY2LDYgKzEyNjcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1l
TGlzdC5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAgXAorICAg
IHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuY3BwIFwKICAg
ICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5jcHAgXApAQCAtMjIxNyw2ICsy
MjE5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIFwKICAg
ICByZW5kZXJpbmcvUmVuZGVyUGFydC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
aCBcCisgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oIFwKICAgICByZW5kZXJp
bmcvUmVuZGVyUnVieS5oIFwKQEAgLTIyNTQsNiArMjI1Nyw3IEBAIEhFQURFUlMgKz0gXAogICAg
IHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0tleWZy
YW1lTGlzdC5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCBcCisgICAg
cmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmggXAogICAgIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUJhY2tncm91bmREYXRhLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAyN2MzYzVjLi5lNzNjM2UzIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzUwMzQsNiAr
MzUwMzQsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccmVuZGVyaW5nXFJlbmRlclF1b3RlLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyUXVv
dGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cmVuZGVyaW5nXFJlbmRlclJlcGxhY2VkLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0
aW9uCkBAIC0zOTAwMyw2ICszOTA1OSw2MiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxG
aWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFF1b3Rlc0RhdGEuY3Bw
IgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4z
MiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wK
KwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcc3R5bGVcUXVvdGVzRGF0YS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFJlbmRlclN0eWxl
LmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1ZDZlMzA2Li40OGJl
Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yOTAzLDYgKzI5MDMsOCBAQAogCQk5MzkyRjE0NDBBRDE4NUZFMDA2OTFCRDQg
LyogUmVuZGVyQ291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzkyRjE0MzBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5jcHAg
Ki87IH07CiAJCTkzOTJGMTRDMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNEIwQUQxODYx
QjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggKi87IH07CiAJCTkzOTJGMTUwMEFEMTg2MjMwMDY5
MUJENCAvKiBDb3VudGVyTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzkyRjE0RjBBRDE4NjIzMDA2OTFCRDQgLyogQ291bnRlck5vZGUuY3Bw
ICovOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTJGMTQxMEFEMTg1
RjQwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5oICovOyB9OworCQk5MzkyRjE0NDBBRDE4NUZFMDA2
OTFCRDQgLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNw
cCAqLzsgfTsKIAkJOTM5ODg1QzMwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzEwOEI3
RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuY3BwICovOyB9OwogCQk5Mzk4ODVDNDA4QjdFM0Qx
MDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzlCMDJF
RTBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyog
V2lkdGhJdGVyYXRvci5jcHAgKi87IH07CkBAIC01MjY5LDYgKzUyNzEsOCBAQAogCQlCQ0VGNDND
RjBFNjczREExMDAxQzEyODcgLyogU3R5bGVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQzQ0UwRTY3M0RBMTAwMUMxMjg3IC8qIFN0eWxl
SW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQ0VGNDNERDBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUY0M0RDMEU2NzQwMTIwMDFD
MTI4NyAvKiBOaW5lUGllY2VJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUJDRUY0M0UwMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJ
bWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0VGNDNERjBFNjc0MTEwMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuY3BwICovOyB9OworCQk5
MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5oIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8q
IFF1dG9lc0RhdGEuaCAqLzsgfTsKKwkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rl
c0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1dG9lc0RhdGEuY3BwICovOyB9OwogCQlCQ0VG
NDQ0QTBFNjc0NUUwMDAxQzEyODcgLyogU3R5bGVHZW5lcmF0ZWRJbWFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQ0NDkwRTY3NDVFMDAwMUMx
Mjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0VGNDQ0RDBFNjc0NjI4MDAxQzEyODcgLyogU3R5bGVD
YWNoZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNFRjQ0NEMwRTY3NDYyODAwMUMxMjg3IC8qIFN0eWxlQ2FjaGVkSW1hZ2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0VGNDQ3QTBFNjc0
N0QwMDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGNDQ3OTBFNjc0N0QwMDAxQzEyODcgLyogU3R5
bGVDYWNoZWRJbWFnZS5jcHAgKi87IH07CkBAIC05MzAzLDYgKzkzMDcsOCBAQAogCQk5MzkyRjE0
MzBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlck5vZGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MkYxNEYwQUQxODYyMzAwNjkxQkQ0IC8qIENvdW50ZXJO
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb3VudGVyTm9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTJGMTQxMEFEMTg1RjQwMDY5
MUJENCAvKiBSZW5kZXJRdW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyUXVvdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5MkYxNDMwQUQx
ODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJRdW90ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzOTU1QTQxMDNENzI5MzIwMDg2MzVDRSAvKiBSZW5kZXJUcmVlQXNUZXh0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUFz
VGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0g
MDsgfTsKIAkJOTM5NTVBNDIwM0Q3MjkzMjAwODYzNUNFIC8qIFJlbmRlclRyZWVBc1RleHQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW5kZXJUcmVlQXNUZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOTg4NUMxMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5h
bWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEV2ZW50TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTExNTk3LDYgKzExNjAzLDggQEAKIAkJQkNFRjQzQ0Uw
RTY3M0RBMTAwMUMxMjg3IC8qIFN0eWxlSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gU3R5bGVJbWFnZS5oOyBwYXRoID0gc3R5bGUvU3R5bGVJbWFnZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDNEQzBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBp
ZWNlSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmluZVBpZWNlSW1h
Z2UuaDsgcGF0aCA9IHN0eWxlL05pbmVQaWVjZUltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDRUY0M0RGMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOaW5lUGllY2VJbWFnZS5jcHA7
IHBhdGggPSBzdHlsZS9OaW5lUGllY2VJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFF1b3Rlc0RhdGEuaDsgcGF0aCA9IHN0eWxlL1F1b3Rl
c0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5MkYxNDIwQUQxODVGNDAw
NjkxQkQ0IC8qIFF1b3Rlc0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gUXVvdGVzRGF0YS5jcHA7IHBhdGggPSBzdHlsZS9RdW90ZXNEYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFRjQ0NDkwRTY3NDVFMDAwMUMxMjg3IC8qIFN0eWxl
R2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5oOyBwYXRoID0gc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDQ0QzBFNjc0NjI4MDAxQzEyODcgLyogU3R5
bGVDYWNoZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZUNh
Y2hlZEltYWdlLmg7IHBhdGggPSBzdHlsZS9TdHlsZUNhY2hlZEltYWdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0NDc5MEU2NzQ3RDAwMDFDMTI4NyAvKiBTdHlsZUNhY2hl
ZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlQ2Fj
aGVkSW1hZ2UuY3BwOyBwYXRoID0gc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzk3Miw2ICsxNzk4MCw4IEBACiAJCQkJQkNFRjQzREYw
RTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCAqLywKIAkJCQlCQ0VGNDNEQzBF
Njc0MDEyMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuaCAqLywKIAkJCQlCQzVFQjVEQzBFODFC
OEREMDBCMjU5NjUgLyogT3V0bGluZVZhbHVlLmggKi8sCisJCQkJOTM5MkYxNDIwQUQxODVGNDAw
NjkxQkQ0IC8qIFF1b3Rlc0RhdGEuY3BwICovLAorCQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJE
NCAvKiBRdW90ZXNEYXRhLmggKi8sCiAJCQkJQkM4QzhGQUIwRERDRDMxQjAwQjU5MkY0IC8qIFJl
bmRlclN0eWxlLmNwcCAqLywKIAkJCQlCQzhDOEZBQzBERENEMzFCMDBCNTkyRjQgLyogUmVuZGVy
U3R5bGUuaCAqLywKIAkJCQlCQzVFQjY2NzBFODFDQjcxMDBCMjU5NjUgLyogUmVuZGVyU3R5bGVD
b25zdGFudHMuaCAqLywKQEAgLTE4NzkyLDYgKzE4ODAyLDggQEAKIAkJCQlBODcxREVDRjBBMTUz
MEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5oICovLAogCQkJCUE0M0JGNTlBMTE0OTI5MjgwMEM2
NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgKi8sCiAJCQkJQTQzQkY1OUIxMTQ5MjkyODAwQzY0
M0NBIC8qIFJlbmRlclByb2dyZXNzLmggKi8sCisJCQkJOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0
IC8qIFJlbmRlclF1b3RlLmNwcCAqLywKKwkJCQk5MzkyRjE0MTBBRDE4NUY0MDA2OTFCRDQgLyog
UmVuZGVyUXVvdGUuaCAqLywKIAkJCQlBODcxREZERTBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVy
UmVwbGFjZWQuY3BwICovLAogCQkJCUE4NzFERkRGMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJS
ZXBsYWNlZC5oICovLAogCQkJCUJDQTg0NkQ0MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJSZXBs
aWNhLmNwcCAqLywKQEAgLTIxNjQwLDYgKzIxNjUyLDcgQEAKIAkJCQlFNEQ2ODc3OTBFRDdBRTRG
MDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTMzQ0Qw
MTEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMjIyNzk3MjBEMDBCRjIyMDA3MUI3ODIgLyogUmFkaWFsR3JhZGllbnRBdHRy
aWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDQzEyNTFGMTJEMDAzRUYyNjkgLyog
UmFkaW9JbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTE4MDgyNDVFNTkwMDFF
OUFCQyAvKiBSYW5nZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTcxMCw2ICsyMTcyMyw3IEBACiAJ
CQkJQkNGQTkzMDgxMDMzMzE5MzAwN0IyNUQxIC8qIFJlbmRlck92ZXJmbG93LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODcxREVENzBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTQzQkY1OUQxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNz
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUmVuZGVy
UXVvdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFERkUzMEExNTM3NkIwMEIxMkE2OCAvKiBS
ZW5kZXJSZXBsYWNlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBODQ2RDcwREM2N0EzNTAwMjZD
MzA5IC8qIFJlbmRlclJlcGxpY2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NzlGQUVFMTA5QUUz
NzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTI0MzU4LDYgKzI0
MzcyLDcgQEAKIAkJCQkxQTdGQTYxQjBEREEzQkJFMDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90
aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3RkE2NDkwRERBM0NCQTAwMjhGOEE1IC8q
IE5ldHdvcmtTdGF0ZU5vdGlmaWVyTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUY0M0Uw
MEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEM0QTgwMDA5RDU2MzI3MDAwM0FDOEQgLyogTm9kZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NTRGRTczMDBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NTRGRTczMjBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZpbHRlckNvbmRp
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0NDk5LDYgKzI0NTE0LDcgQEAKIAkJCQlCQzYw
RUZCNzBGMzNBMEU3MDA4MTJBOTMgLyogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4NzFERUQwMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE0M0JGNTlDMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9n
cmVzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzkyRjE0NDBBRDE4NUZFMDA2OTFCRDQgLyog
UmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURGRTIwQTE1Mzc2QjAwQjEy
QTY4IC8qIFJlbmRlclJlcGxhY2VkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTg0NkQ2MERD
NjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJSZXBsaWNhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0
NzlGQUVEMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBlNDlmNzkyLi5jZTBjMDM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcApAQCAtNjM0LDYgKzYzNCw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNhc2UgQ1NTUHJvcGVydHlR
dW90ZXM6ICAgICAgICAgICAgICAgLy8gWzxzdHJpbmc+IDxzdHJpbmc+XSsgfCBub25lIHwgaW5o
ZXJpdAogICAgICAgICBpZiAoaWQpCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBwYXJzZVF1b3Rlcyhwcm9wSWQsIGlt
cG9ydGFudCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlVbmljb2RlQmlk
aTogICAgICAgICAvLyBub3JtYWwgfCBlbWJlZCB8IGJpZGktb3ZlcnJpZGUgfCBpbmhlcml0CiAg
ICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fApAQCAtMjM1NCw2ICsyMzU2LDI4IEBA
IENTU1BhcnNlcjo6U2l6ZVBhcmFtZXRlclR5cGUgQ1NTUGFyc2VyOjpwYXJzZVNpemVQYXJhbWV0
ZXIoQ1NTVmFsdWVMaXN0KiBwYXJzZWRWCiAgICAgfQogfQogCisvLyBbIDxzdHJpbmc+IDxzdHJp
bmc+IF0rIHwgaW5oZXJpdCB8IG5vbmUKKy8vIGluaGVyaXQgYW5kIG5vbmUgYXJlIGhhbmRsZWQg
aW4gcGFyc2VWYWx1ZS4KK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZVF1b3RlcyhpbnQgcHJvcElkLCBi
b29sIGltcG9ydGFudCkKK3sKKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiB2YWx1ZXMgPSBDU1NW
YWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgd2hpbGUgKENTU1BhcnNlclZh
bHVlKiB2YWwgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSB7CisgICAgICAgIFJlZlB0cjxDU1NW
YWx1ZT4gcGFyc2VkVmFsdWU7CisgICAgICAgIGlmICh2YWwtPnVuaXQgPT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19TVFJJTkcpCisgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGUodmFsLT5zdHJpbmcsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5H
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHZhbHVlcy0+YXBw
ZW5kKHBhcnNlZFZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7
CisgICAgfQorICAgIGlmICh2YWx1ZXMtPmxlbmd0aCgpKSB7CisgICAgICAgIGFkZFByb3BlcnR5
KHByb3BJZCwgdmFsdWVzLnJlbGVhc2UoKSwgaW1wb3J0YW50KTsKKyAgICAgICAgbV92YWx1ZUxp
c3QtPm5leHQoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxz
ZTsKK30KKwogLy8gWyA8c3RyaW5nPiB8IDx1cmk+IHwgPGNvdW50ZXI+IHwgYXR0cihYKSB8IG9w
ZW4tcXVvdGUgfCBjbG9zZS1xdW90ZSB8IG5vLW9wZW4tcXVvdGUgfCBuby1jbG9zZS1xdW90ZSBd
KyB8IGluaGVyaXQKIC8vIGluIENTUyAyLjEgdGhpcyBnb3Qgc29tZXdoYXQgcmVkdWNlZDoKIC8v
IFsgPHN0cmluZz4gfCBhdHRyKFgpIHwgb3Blbi1xdW90ZSB8IGNsb3NlLXF1b3RlIHwgbm8tb3Bl
bi1xdW90ZSB8IG5vLWNsb3NlLXF1b3RlIF0rIHwgaW5oZXJpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5o
CmluZGV4IDZjY2ZiZTIuLjk5YjljNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTc5LDYg
Kzc5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHBhcnNlU2hvcnRoYW5k
KGludCBwcm9wSWQsIGNvbnN0IGludCogcHJvcGVydGllcywgaW50IG51bVByb3BlcnRpZXMsIGJv
b2wgaW1wb3J0YW50KTsKICAgICAgICAgYm9vbCBwYXJzZTRWYWx1ZXMoaW50IHByb3BJZCwgY29u
c3QgaW50KiBwcm9wZXJ0aWVzLCBib29sIGltcG9ydGFudCk7CiAgICAgICAgIGJvb2wgcGFyc2VD
b250ZW50KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKKyAgICAgICAgYm9vbCBwYXJzZVF1
b3RlcyhpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CiAKICAgICAgICAgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gcGFyc2VBdHRyKENTU1BhcnNlclZhbHVlTGlzdCogYXJncyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBjMDJlOGVmLi41ODMwY2NhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC03MCw2ICs3MCw3IEBACiAj
aW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgogI2luY2x1ZGUgIlBlcnNw
ZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2lu
Y2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJS
ZW5kZXJTY3JvbGxiYXJUaGVtZS5oIgpAQCAtNDY1NiwzNiArNDY1Nyw1OSBAQCB2b2lkIENTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBjb250ZW50VmFsdWUgPSBz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwogICAgICAgICAgICAgc3dpdGNo
IChjb250ZW50VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSkgewotICAgICAgICAgICAgICAgIGNhc2Ug
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkc6Ci0gICAgICAgICAgICAgICAgICAgIG1fc3R5
bGUtPnNldENvbnRlbnQoY29udGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLmltcGwoKSwgZGlk
U2V0KTsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkc6Cisg
ICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChjb250ZW50VmFsdWUtPmdldFN0cmlu
Z1ZhbHVlKCkuaW1wbCgpLCBkaWRTZXQpOworICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfQVRUUjogeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gYSBuYW1lc3Bh
Y2UgYmUgc3BlY2lmaWVkIGZvciBhbiBhdHRyKGZvbyk/CisgICAgICAgICAgICAgICAgaWYgKG1f
c3R5bGUtPnN0eWxlVHlwZSgpID09IE5PUFNFVURPKQorICAgICAgICAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRVbmlxdWUoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIG1fcGFyZW50U3R5bGUtPnNldFVuaXF1ZSgpOworICAgICAgICAgICAgICAgIFF1YWxpZmll
ZE5hbWUgYXR0cihudWxsQXRvbSwgY29udGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpLmltcGwo
KSwgbnVsbEF0b20pOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQobV9lbGVt
ZW50LT5nZXRBdHRyaWJ1dGUoYXR0cikuaW1wbCgpLCBkaWRTZXQpOworICAgICAgICAgICAgICAg
IGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXIgdGhlIGZhY3QgdGhh
dCB0aGUgYXR0cmlidXRlIHZhbHVlIGFmZmVjdHMgdGhlIHN0eWxlCisgICAgICAgICAgICAgICAg
bV9zZWxlY3RvckF0dHJzLmFkZChhdHRyLmxvY2FsTmFtZSgpLmltcGwoKSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfVVJJOiB7CisgICAgICAgICAgICAgICAgaWYgKCFjb250ZW50VmFsdWUtPmlz
SW1hZ2VWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICBtX3N0eWxlLT5zZXRDb250ZW50KGNhY2hlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0
eUNvbnRlbnQsIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihjb250ZW50VmFsdWUpKSwgZGlk
U2V0KTsKKyAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX0NPVU5URVI6IHsKKyAgICAgICAgICAgICAgICBDb3VudGVyKiBjb3VudGVyVmFsdWUgPSBj
b250ZW50VmFsdWUtPmdldENvdW50ZXJWYWx1ZSgpOworICAgICAgICAgICAgICAgIE93blB0cjxD
b3VudGVyQ29udGVudD4gY291bnRlciA9IGFkb3B0UHRyKG5ldyBDb3VudGVyQ29udGVudChjb3Vu
dGVyVmFsdWUtPmlkZW50aWZpZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgKEVMaXN0U3R5bGVU
eXBlKWNvdW50ZXJWYWx1ZS0+bGlzdFN0eWxlTnVtYmVyKCksIGNvdW50ZXJWYWx1ZS0+c2VwYXJh
dG9yKCkpKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNvdW50ZXIucmVs
ZWFzZSgpLCBkaWRTZXQpOworICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfSURFTlQ6CisgICAgICAgICAgICAgICAgc3dpdGNoIChjb250ZW50VmFs
dWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlT3BlblF1b3Rl
OgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KE9QRU5fUVVPVEUsIGRp
ZFNldCk7CiAgICAgICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19BVFRSOiB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gYSBuYW1lc3BhY2Ug
YmUgc3BlY2lmaWVkIGZvciBhbiBhdHRyKGZvbyk/Ci0gICAgICAgICAgICAgICAgICAgIGlmICht
X3N0eWxlLT5zdHlsZVR5cGUoKSA9PSBOT1BTRVVETykKLSAgICAgICAgICAgICAgICAgICAgICAg
IG1fc3R5bGUtPnNldFVuaXF1ZSgpOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgICAgICBtX3BhcmVudFN0eWxlLT5zZXRVbmlxdWUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgUXVhbGlmaWVkTmFtZSBhdHRyKG51bGxBdG9tLCBjb250ZW50VmFsdWUtPmdldFN0
cmluZ1ZhbHVlKCkuaW1wbCgpLCBudWxsQXRvbSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3R5
bGUtPnNldENvbnRlbnQobV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUoYXR0cikuaW1wbCgpLCBkaWRT
ZXQpOworICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVDbG9zZVF1b3RlOgorICAgICAgICAg
ICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KENMT1NFX1FVT1RFLCBkaWRTZXQpOwogICAg
ICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAvLyBy
ZWdpc3RlciB0aGUgZmFjdCB0aGF0IHRoZSBhdHRyaWJ1dGUgdmFsdWUgYWZmZWN0cyB0aGUgc3R5
bGUKLSAgICAgICAgICAgICAgICAgICAgbV9zZWxlY3RvckF0dHJzLmFkZChhdHRyLmxvY2FsTmFt
ZSgpLmltcGwoKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJOiB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICghY29udGVudFZhbHVlLT5pc0ltYWdlVmFsdWUoKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBtX3N0eWxl
LT5zZXRDb250ZW50KGNhY2hlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUNvbnRlbnQs
IHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihjb250ZW50VmFsdWUpKSwgZGlkU2V0KTsKKyAg
ICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTm9PcGVuUXVvdGU6CisgICAgICAgICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldENvbnRlbnQoTk9fT1BFTl9RVU9URSwgZGlkU2V0KTsKICAgICAgICAg
ICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19DT1VOVEVSOiB7Ci0gICAgICAgICAgICAgICAgICAgIENvdW50ZXIqIGNvdW50ZXJWYWx1
ZSA9IGNvbnRlbnRWYWx1ZS0+Z2V0Q291bnRlclZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAg
IE93blB0cjxDb3VudGVyQ29udGVudD4gY291bnRlciA9IGFkb3B0UHRyKG5ldyBDb3VudGVyQ29u
dGVudChjb3VudGVyVmFsdWUtPmlkZW50aWZpZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IChFTGlzdFN0eWxlVHlwZSljb3VudGVyVmFsdWUtPmxpc3RTdHlsZU51bWJlcigpLCBjb3VudGVy
VmFsdWUtPnNlcGFyYXRvcigpKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENv
bnRlbnQoY291bnRlci5yZWxlYXNlKCksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZU5vQ2xvc2VRdW90ZToKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29u
dGVudChOT19DTE9TRV9RVU9URSwgZGlkU2V0KTsKICAgICAgICAgICAgICAgICAgICAgZGlkU2V0
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsIGFuZCBub25lIGRvIG5vdCBoYXZl
IGFueSBlZmZlY3QuCisgICAgICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC00NjkzLDYgKzQ3MTcsMzMgQEAgdm9pZCBDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFsdWUgKnZhbHVlKQogICAg
ICAgICAgICAgbV9zdHlsZS0+Y2xlYXJDb250ZW50KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3RlczoKKyAgICAgICAgaWYgKGlzSW5oZXJpdCkgewor
ICAgICAgICAgICAgaWYgKG1fcGFyZW50U3R5bGUpCisgICAgICAgICAgICAgICAgbV9zdHlsZS0+
c2V0UXVvdGVzKG1fcGFyZW50U3R5bGUtPnF1b3RlcygpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpIHsKKyAgICAgICAg
ICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVl
KTsKKyAgICAgICAgICAgIHNpemVfdCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKKyAgICAgICAg
ICAgIFF1b3Rlc0RhdGEqIGRhdGEgPSBRdW90ZXNEYXRhOjpjcmVhdGUobGVuZ3RoKTsKKyAgICAg
ICAgICAgIGlmICghZGF0YSkKKyAgICAgICAgICAgICAgICByZXR1cm47IC8vIE91dCBvZiBtZW1v
cnkKKyAgICAgICAgICAgIFN0cmluZyogcXVvdGVzID0gZGF0YS0+ZGF0YSgpOworICAgICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAg
IENTU1ZhbHVlKiBpdGVtID0gbGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQoaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKKyAgICAgICAgICAg
ICAgICBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRl
bSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBl
KCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpOworICAgICAgICAgICAgICAgIHF1
b3Rlc1tpXSA9IHByaW1pdGl2ZVZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgbV9zdHlsZS0+c2V0UXVvdGVzKGFkb3B0UmVmKGRhdGEpKTsKKyAgICAg
ICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZSkgeworICAgICAgICAgICAgQVNTRVJUKHByaW1p
dGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVO
VCk7CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFs
dWVOb25lKQorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFF1b3RlcyhhZG9wdFJlZihRdW90
ZXNEYXRhOjpjcmVhdGUoMCkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CiAKICAgICBj
YXNlIENTU1Byb3BlcnR5Q291bnRlckluY3JlbWVudDoKICAgICAgICAgYXBwbHlDb3VudGVyTGlz
dChzdHlsZSgpLCB2YWx1ZS0+aXNWYWx1ZUxpc3QoKSA/IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlz
dCo+KHZhbHVlKSA6IDAsIGZhbHNlKTsKQEAgLTU5MzQsNyArNTk4NSw2IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlGb250U3RyZXRjaDoKICAgICBjYXNlIENTU1Byb3BlcnR5UGFnZToK
LSAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGlu
ZVRocm91Z2g6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhyb3VnaENvbG9yOgogICAg
IGNhc2UgQ1NTUHJvcGVydHlUZXh0TGluZVRocm91Z2hNb2RlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCmluZGV4
IDBmMTNmY2IuLjk1NGY1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNz
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTExMywxMyArMTEzLDExIEBA
IHEgewogfQogCiBxOmJlZm9yZSB7Ci0gICAgY29udGVudDogJyInCi0gICAgLyogRklYTUU6IGNv
bnRlbnQ6IG9wZW4tcXVvdGU7ICovCisgICAgY29udGVudDogb3Blbi1xdW90ZTsKIH0KIAogcTph
ZnRlciB7Ci0gICAgY29udGVudDogJyInCi0gICAgLyogRklYTUU6IGNvbnRlbnQ6IGNsb3NlLXF1
b3RlOyAqLworICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlOwogfQogCiBjZW50ZXIgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRl
eCA5NDVhMGQxLi5mYzRhNGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIHN0YXRpYyBpbmxp
bmUgSW5saW5lQm94KiBjcmVhdGVJbmxpbmVCb3hGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqIG9i
aiwgYm9vbCBpc1JvCiBzdGF0aWMgaW5saW5lIHZvaWQgZGlydHlMaW5lQm94ZXNGb3JSZW5kZXJl
cihSZW5kZXJPYmplY3QqIG8sIGJvb2wgZnVsbExheW91dCkKIHsKICAgICBpZiAoby0+aXNUZXh0
KCkpIHsKLSAgICAgICAgaWYgKG8tPnByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSgpICYmIG8t
PmlzQ291bnRlcigpKQorICAgICAgICBpZiAoby0+cHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5
KCkgJiYgKG8tPmlzQ291bnRlcigpIHx8IG8tPmlzUXVvdGUoKSkpCiAgICAgICAgICAgICB0b1Jl
bmRlclRleHQobyktPmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKDApOyAvLyBGSVhNRTog
Q291bnRlcnMgZGVwZW5kIG9uIHRoaXMgaGFjay4gTm8gY2x1ZSB3aHkuIFNob3VsZCBiZSBpbnZl
c3RpZ2F0ZWQgYW5kIHJlbW92ZWQuCiAgICAgICAgIHRvUmVuZGVyVGV4dChvKS0+ZGlydHlMaW5l
Qm94ZXMoZnVsbExheW91dCk7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgKaW5kZXggNDNlNmJlYS4uYTVmMmM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaApAQCAtMjUyLDYgKzI1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgaXNCbG9ja0Zsb3coKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0JveE1vZGVsT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzRGV0YWlscygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzRGV0YWlsc01hcmtlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAppbmRleCA2
YTc3M2RjLi40ZGY3MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJlbmRl
cklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlz
dEl0ZW0uaCIKKyNpbmNsdWRlICJSZW5kZXJRdW90ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgpAQCAtMTMwLDYgKzEzMSw3IEBAIFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0OjpyZW1vdmVDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVuZGVyCiAKICAgICBp
ZiAob2xkQ2hpbGQtPm1faGFzQ291bnRlck5vZGVNYXApCiAgICAgICAgIFJlbmRlckNvdW50ZXI6
OmRlc3Ryb3lDb3VudGVyTm9kZXMob2xkQ2hpbGQpOworICAgIFJlbmRlclF1b3RlOjpyZW5kZXJl
clJlbW92ZWRGcm9tVHJlZShvbGRDaGlsZCk7CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgb3duZXItPmRvY3VtZW50KCktPmF4T2JqZWN0
Q2FjaGUoKS0+Y2hpbGRyZW5DaGFuZ2VkKG93bmVyKTsKQEAgLTE3Nyw4ICsxNzksOCBAQCB2b2lk
IFJlbmRlck9iamVjdENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2RlKFJlbmRlck9iamVjdCogb3du
ZXIsIFJlbmRlck9iamVjdCogbgogICAgICAgICBpZiAoIW5ld0NoaWxkLT5pc0Zsb2F0aW5nT3JQ
b3NpdGlvbmVkKCkgJiYgb3duZXItPmNoaWxkcmVuSW5saW5lKCkpCiAgICAgICAgICAgICBvd25l
ci0+ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQobmV3Q2hpbGQpOwogICAgIH0KLQogICAgIFJl
bmRlckNvdW50ZXI6OnJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKG5ld0NoaWxkKTsKKyAgICBSZW5k
ZXJRdW90ZTo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQobmV3Q2hpbGQpOwogICAgIG5ld0NoaWxk
LT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsgLy8gR29lcyB1cCB0aGUgY29u
dGFpbmluZyBibG9jayBoaWVyYXJjaHkuCiAgICAgaWYgKCFvd25lci0+bm9ybWFsQ2hpbGROZWVk
c0xheW91dCgpKQogICAgICAgICBvd25lci0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlKTsgLy8g
V2UgbWF5IHN1cHBseSB0aGUgc3RhdGljIHBvc2l0aW9uIGZvciBhbiBhYnNvbHV0ZSBwb3NpdGlv
bmVkIGNoaWxkLgpAQCAtMjM5LDYgKzI0MSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
OjppbnNlcnRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVuZGVyT2JqZWN0KiBjCiAg
ICAgfQogCiAgICAgUmVuZGVyQ291bnRlcjo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQoY2hpbGQp
OworICAgIFJlbmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZChjaGlsZCk7CiAgICAg
Y2hpbGQtPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogICAgIGlmICghb3du
ZXItPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSkKICAgICAgICAgb3duZXItPnNldENoaWxkTmVl
ZHNMYXlvdXQodHJ1ZSk7IC8vIFdlIG1heSBzdXBwbHkgdGhlIHN0YXRpYyBwb3NpdGlvbiBmb3Ig
YW4gYWJzb2x1dGUgcG9zaXRpb25lZCBjaGlsZC4KQEAgLTQ2MCwxMCArNDYzLDE0IEBAIHZvaWQg
UmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyT2Jq
ZWN0KiBvd25lciwgUHNldWRvCiAgICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBpbWFnZTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgQ09O
VEVOVF9DT1VOVEVSOgotICAgICAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVu
ZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihvd25lci0+ZG9jdW1lbnQoKSwgKmNvbnRlbnQtPmNv
dW50ZXIoKSk7Ci0gICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1l
bnRTdHlsZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ09OVEVOVF9D
T1VOVEVSOgorICAgICAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgp
KSBSZW5kZXJDb3VudGVyKG93bmVyLT5kb2N1bWVudCgpLCAqY29udGVudC0+Y291bnRlcigpKTsK
KyAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50U3R5bGUpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ09OVEVOVF9RVU9URToKKyAgICAgICAgICAg
IHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyUXVvdGUob3duZXIt
PmRvY3VtZW50KCksIGNvbnRlbnQtPnF1b3RlKCkpOworICAgICAgICAgICAgcmVuZGVyZXItPnNl
dFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCiAgICAgICAgIGlmIChyZW5kZXJlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJRdW90ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E5YTRlZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5j
cHAKQEAgLTAsMCArMSwzMzAgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVuZGVyUXVvdGUuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5o
IgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCisjZGVmaW5lIFVOS05PV05fREVQVEggLTEK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RhdGljIGlubGluZSB2b2lkIGFkanVzdERlcHRoKGlu
dCAmZGVwdGgsIFF1b3RlVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNh
c2UgT1BFTl9RVU9URToKKyAgICBjYXNlIE5PX09QRU5fUVVPVEU6CisgICAgICAgICsrZGVwdGg7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0xPU0VfUVVPVEU6CisgICAgY2FzZSBOT19DTE9T
RV9RVU9URToKKyAgICAgICAgaWYgKGRlcHRoKQorICAgICAgICAgICAgLS1kZXB0aDsKKyAgICAg
ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorfQorCitSZW5kZXJRdW90ZTo6UmVuZGVyUXVvdGUoRG9jdW1lbnQqIG5vZGUsIFF1b3Rl
VHlwZSBxdW90ZSkKKyAgICA6IFJlbmRlclRleHQobm9kZSwgU3RyaW5nSW1wbDo6ZW1wdHkoKSkK
KyAgICAsIG1fdHlwZShxdW90ZSkKKyAgICAsIG1fZGVwdGgoVU5LTk9XTl9ERVBUSCkKKyAgICAs
IG1fbmV4dCgwKQorICAgICwgbV9wcmV2aW91cygwKQoreworfQorCitSZW5kZXJRdW90ZTo6flJl
bmRlclF1b3RlKCkKK3sKK30KKworY29uc3QgY2hhciogUmVuZGVyUXVvdGU6OnJlbmRlck5hbWUo
KSBjb25zdAoreworICAgIHJldHVybiAiUmVuZGVyUXVvdGUiOworfQorCisvLyBUaGlzIGZ1bmN0
aW9uIHBsYWNlcyBhIGxpc3Qgb2YgcXVvdGUgcmVuZGVyZXJzIHN0YXJ0aW5nIGF0ICJ0aGlzIiBp
biB0aGUgbGlzdCBvZiBxdW90ZSByZW5kZXJlcnMgYWxyZWFkeQorLy8gaW4gdGhlIGRvY3VtZW50
J3MgcmVuZGVyZXIgdHJlZS4KKy8vIFRoZSBhc3N1bXB0aW9ucyBhcmUgbWFkZSAoZm9yIHBlcmZv
cm1hbmNlKToKKy8vIDEuIFRoZSBsaXN0IG9mIHF1b3RlcyBhbHJlYWR5IGluIHRoZSByZW5kZXJl
cnMgdHJlZSBvZiB0aGUgZG9jdW1lbnQgaXMgYWxyZWFkeSBpbiBhIGNvbnNpc3RlbnQgc3RhdGUK
Ky8vIChBbGwgcXVvdGUgcmVuZGVyZXJzIGFyZSBsaW5rZWQgYW5kIGhhdmUgdGhlIGNvcnJlY3Qg
ZGVwdGggc2V0KQorLy8gMi4gVGhlIHF1b3RlIHJlbmRlcmVycyBvZiB0aGUgaW5zZXJ0ZWQgbGlz
dCBhcmUgaW4gYSB0cmVlIG9mIHJlbmRlcmVycyBvZiB0aGVpciBvd24gd2hpY2ggaGFzIGJlZW4g
anVzdAorLy8gaW5zZXJ0ZWQgaW4gdGhlIG1haW4gcmVuZGVyZXIgdHJlZSB3aXRoIGl0cyByb290
IGFzIGNoaWxkIG9mIHNvbWUgcmVuZGVyZXIuCisvLyAzLiBUaGUgcXVvdGUgcmVuZGVyZXJzIGlu
IHRoZSBpbnNlcnRlZCBsaXN0IGhhdmUgZGVwdGhzIGNvbnNpc3RlbnQgd2l0aCB0aGVpciBwb3Np
dGlvbiBpbiB0aGUgbGlzdCByZWxhdGl2ZQorLy8gdG8gInRoaXMiLCB0aHVzIGlmICJ0aGlzIiBk
b2VzIG5vdCBuZWVkIHRvIGNoYW5nZSBpdHMgZGVwdGggdXBvbiBpbnNlcnRpb24sIHRoZSBvdGhl
ciByZW5kZXJlcnMgaW4gdGhlIGxpc3QgZG9uJ3QKKy8vIG5lZWQgdG8gZWl0aGVyLgordm9pZCBS
ZW5kZXJRdW90ZTo6cGxhY2VRdW90ZSgpCit7CisgICAgUmVuZGVyUXVvdGUqIGhlYWQgPSB0aGlz
OworICAgIEFTU0VSVCghaGVhZC0+bV9wcmV2aW91cyk7CisgICAgUmVuZGVyUXVvdGUqIHRhaWwg
PSAwOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBwcmVkZWNlc3NvciA9IGhlYWQtPnByZXZpb3Vz
SW5QcmVPcmRlcigpOyBwcmVkZWNlc3NvcjsgcHJlZGVjZXNzb3IgPSBwcmVkZWNlc3Nvci0+cHJl
dmlvdXNJblByZU9yZGVyKCkpIHsKKyAgICAgICAgaWYgKCFwcmVkZWNlc3Nvci0+aXNRdW90ZSgp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGhlYWQtPm1fcHJldmlvdXMgPSB0b1Jl
bmRlclF1b3RlKHByZWRlY2Vzc29yKTsKKyAgICAgICAgaWYgKGhlYWQtPm1fcHJldmlvdXMtPm1f
bmV4dCkgeworICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBzcGxpY2UgdGhlIGxpc3Qgb2YgcXVv
dGVzIGhlYWRlZCBieSBoZWFkIGludG8gdGhlIGRvY3VtZW50J3MgbGlzdCBvZiBxdW90ZXMuCisg
ICAgICAgICAgICB0YWlsID0gaGVhZDsKKyAgICAgICAgICAgIHdoaWxlICh0YWlsLT5tX25leHQp
CisgICAgICAgICAgICAgICAgIHRhaWwgPSB0YWlsLT5tX25leHQ7CisgICAgICAgICAgICB0YWls
LT5tX25leHQgPSBoZWFkLT5tX3ByZXZpb3VzLT5tX25leHQ7CisgICAgICAgICAgICBBU1NFUlQo
dGFpbC0+bV9uZXh0LT5tX3ByZXZpb3VzID09IGhlYWQtPm1fcHJldmlvdXMpOworICAgICAgICAg
ICAgdGFpbC0+bV9uZXh0LT5tX3ByZXZpb3VzID0gIHRhaWw7CisgICAgICAgICAgICB0YWlsID0g
dGFpbC0+bV9uZXh0OyAvLyBUaGlzIG1hcmtzIHRoZSBzcGxpY2luZyBwb2ludCBoZXJlIHRoZXJl
IG1heSBiZSBhIGRlcHRoIGRpc2NvbnRpbnVpdHkKKyAgICAgICAgfQorICAgICAgICBoZWFkLT5t
X3ByZXZpb3VzLT5tX25leHQgPSBoZWFkOworICAgICAgICBBU1NFUlQoaGVhZC0+bV9wcmV2aW91
cy0+bV9kZXB0aCAhPSBVTktOT1dOX0RFUFRIKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAg
IGludCBuZXdEZXB0aDsKKyAgICBpZiAoIWhlYWQtPm1fcHJldmlvdXMpIHsKKyAgICAgICAgbmV3
RGVwdGggPSAwOworICAgICAgICBnb3RvIHNraXBOZXdEZXB0aENhbGM7CisgICAgfQorICAgIG5l
d0RlcHRoID0gaGVhZC0+bV9wcmV2aW91cy0+bV9kZXB0aDsKKyAgICBkbyB7CisgICAgICAgIGFk
anVzdERlcHRoKG5ld0RlcHRoLCBoZWFkLT5tX3ByZXZpb3VzLT5tX3R5cGUpOworc2tpcE5ld0Rl
cHRoQ2FsYzoKKyAgICAgICAgaWYgKGhlYWQtPm1fZGVwdGggPT0gbmV3RGVwdGgpIHsgLy8gQWxs
IHJlbWFpbmluZyBkZXB0aCBzaG91bGQgYmUgY29ycmVjdCBleGNlcHQgaWYgc3BsaWNpbmcgd2Fz
IGRvbmUuCisgICAgICAgICAgICBpZiAoIXRhaWwpIC8vIFdlJ3ZlIGRvbmUgdGhlIHBvc3Qgc3Bs
aWNpbmcgc2VjdGlvbiBhbHJlYWR5IG9yIHRoZXJlIHdhcyBubyBzcGxpY2luZy4KKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGhlYWQgPSB0YWlsOyAvLyBDb250aW51ZSBhZnRl
ciB0aGUgc3BsaWNpbmcgcG9pbnQKKyAgICAgICAgICAgIHRhaWwgPSAwOyAvLyBNYXJrIHRoZSBw
b3NzaWJsZSBzcGxpY2luZyBwb2ludCBkaXNjb250aW51aXR5IGZpeGVkLgorICAgICAgICAgICAg
bmV3RGVwdGggPSBoZWFkLT5tX3ByZXZpb3VzLT5tX2RlcHRoOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKyAgICAgICAgaGVhZC0+bV9kZXB0aCA9IG5ld0RlcHRoOworICAgICAg
ICAvLyBGSVhNRTogSWYgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHF1b3RhdGlvbiBjaGFy
YWN0ZXJzIGRvZXMgbm90IGNoYW5nZSB3ZSBtYXkgb25seSBuZWVkIHRvCisgICAgICAgIC8vIElu
dmFsaWRhdGUgdGhlIHJlbmRlcmVyJ3MgYXJlYSBub3QgYSByZWxheW91dC4KKyAgICAgICAgaGVh
ZC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CisgICAgICAgIGhlYWQgPSBo
ZWFkLT5tX25leHQ7CisgICAgICAgIGlmIChoZWFkID09IHRhaWwpIC8vIFdlIGFyZSBhdCB0aGUg
c3BsaWNpbmcgcG9pbnQKKyAgICAgICAgICAgIHRhaWwgPSAwOyAvLyBNYXJrIHRoZSBwb3NzaWJs
ZSBkZXB0aCBkaXNjb250aW51aXR5IGZpeGVkLgorICAgIH0gd2hpbGUgKGhlYWQpOworfQorCisj
ZGVmaW5lIEFSUkFZX1NJWkUoQ2FycmF5KSAoc2l6ZW9mKENhcnJheSkgLyBzaXplb2YoKkNhcnJh
eSkpCisjZGVmaW5lIExBTkdVQUdFX0RBVEEobmFtZSwgbGFuZ3VhZ2VTb3VyY2VBcnJheSkgeyBu
YW1lLCBsYW5ndWFnZVNvdXJjZUFycmF5LCBBUlJBWV9TSVpFKGxhbmd1YWdlU291cmNlQXJyYXkp
IH0KKyNkZWZpbmUgVSh4KSAoKGNvbnN0IFVDaGFyKilMIyN4KQorCitzdGF0aWMgY29uc3QgVUNo
YXIqIHNpbXBsZVF1b3Rlc1tdID0ge1UoIlwiIiksIFUoIlwiIiksIFUoIiciKSwgVSgiJyIpfTsK
Kworc3RhdGljIGNvbnN0IFVDaGFyKiBlbmdsaXNoUXVvdGVzW10gPSB7VSgiXHgyMDFDIiksIFUo
Ilx4MjAxRCIpLCBVKCJceDIwMTgiKSwgVSgiXHgyMDE5Iil9Oworc3RhdGljIGNvbnN0IFVDaGFy
KiBub3J3ZWdpYW5RdW90ZXNbXSA9IHsgVSgiXHgwMEFCIiksIFUoIlx4MDBCQiIpLCBVKCJceDIw
MzkiKSwgVSgiXHgyMDNBIikgfTsKK3N0YXRpYyBjb25zdCBVQ2hhciogcm9tYW5pYW5RdW90ZXNb
XSA9IHsgVSgiXHgyMDFFIiksIFUoIlx4MjAxRCIpfTsKK3N0YXRpYyBjb25zdCBVQ2hhciogcnVz
c2lhblF1b3Rlc1tdID0geyBVKCJceDAwQUIiKSwgVSgiXHgwMEJCIiksIFUoIlx4MjAxRSIpLCBV
KCJceDIwMUMiKSB9OworI3VuZGVmIFUKKworc3RydWN0IExhbmd1YWdlRGF0YSB7CisgICAgY29u
c3QgY2hhciAqbmFtZTsKKyAgICBjb25zdCBVQ2hhciogY29uc3QqIGNvbnN0IGFycmF5OworICAg
IGNvbnN0IGludCBhcnJheVNpemU7CisgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgTGFuZ3VhZ2VE
YXRhJiBjb21wYXJlVG8pIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3RyY21wKG5hbWUs
IGNvbXBhcmVUby5uYW1lKTsKKyAgICB9Cit9OworCisvLyBEYXRhIG1hc3QgYmUgYWxwaGFiZXRp
Y2FsbHkgc29ydGVkIGFuZCBpbiBhbGwgbG93ZXIgY2FzZSBmb3IgZmFzdCBjb21wYXJpc29uCitM
YW5ndWFnZURhdGEgbGFuZ3VhZ2VEYXRhW10gPSB7CisgICAgTEFOR1VBR0VfREFUQSgiZW4iLCBl
bmdsaXNoUXVvdGVzKSwKKyAgICBMQU5HVUFHRV9EQVRBKCJubyIsIG5vcndlZ2lhblF1b3Rlcyks
CisgICAgTEFOR1VBR0VfREFUQSgicm8iLCByb21hbmlhblF1b3RlcyksCisgICAgTEFOR1VBR0Vf
REFUQSgicnUiLCBydXNzaWFuUXVvdGVzKQorfTsKKyN1bmRlZiBMQU5HVUFHRV9EQVRBCitjb25z
dCBMYW5ndWFnZURhdGEqIGNvbnN0IGxhbmd1YWdlRGF0YUVuZCA9IGxhbmd1YWdlRGF0YSArIEFS
UkFZX1NJWkUobGFuZ3VhZ2VEYXRhKTsKKworI2RlZmluZSBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNT
b3VyY2Ugc2ltcGxlUXVvdGVzCisjZGVmaW5lIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc0NvdW50IEFS
UkFZX1NJWkUoZGVmYXVsdExhbmd1YWdlUXVvdGVzU291cmNlKQorCitzdGF0aWMgUXVvdGVzRGF0
YSogZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUgPSAwOworc3RhdGljIGNvbnN0IFF1b3Rlc0Rh
dGEqIGRlZmF1bHRMYW5ndWFnZVF1b3RlcygpCit7CisgICAgaWYgKCFkZWZhdWx0TGFuZ3VhZ2VR
dW90ZXNWYWx1ZSkgeworICAgICAgICBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZSA9IFF1b3Rl
c0RhdGE6OmNyZWF0ZShkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNDb3VudCk7CisgICAgICAgIGlmICgh
ZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgU3RyaW5nKiBkYXRhID0gZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUtPmRhdGEoKTsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNDb3VudDsg
KytpKQorICAgICAgICAgICAgZGF0YVtpXSA9IGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1NvdXJjZVtp
XTsKKyAgICB9CisgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1ZhbHVlOworfQorI3Vu
ZGVmIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1NvdXJjZQorI3VuZGVmIGRlZmF1bHRMYW5ndWFnZVF1
b3Rlc0NvdW50CisKK3R5cGVkZWYgSGFzaE1hcDxSZWZQdHI8QXRvbWljU3RyaW5nSW1wbD4sIFF1
b3Rlc0RhdGEqID4gUXVvdGVzTWFwOworCitzdGF0aWMgUXVvdGVzTWFwJiBxdW90ZXNNYXAoKQor
eworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVvdGVzTWFwLCBzdGF0aWNRdW90ZXNNYXAsICgp
KTsKKyAgICByZXR1cm4gc3RhdGljUXVvdGVzTWFwOworfQorCitzdGF0aWMgY29uc3QgUXVvdGVz
RGF0YSogcXVvdGVzRm9yTGFuZ3VhZ2UoQXRvbWljU3RyaW5nSW1wbCogbGFuZ3VhZ2UpCit7Cisg
ICAgUXVvdGVzRGF0YSogcmV0dXJuVmFsdWU7CisgICAgQXRvbWljU3RyaW5nIGxvd2VyKGxhbmd1
YWdlLT5sb3dlcigpKTsKKyAgICByZXR1cm5WYWx1ZSA9IHF1b3Rlc01hcCgpLmdldChsb3dlci5p
bXBsKCkpOworICAgIGlmIChyZXR1cm5WYWx1ZSkKKyAgICAgICAgcmV0dXJuIHJldHVyblZhbHVl
OworICAgIENTdHJpbmcgcyhzdGF0aWNfY2FzdDxjb25zdCBTdHJpbmcmPihsb3dlcikuYXNjaWko
KSk7CisgICAgTGFuZ3VhZ2VEYXRhIHJlcXVlc3QgPSB7IHMuYnVmZmVyKCktPmRhdGEoKSwgMCwg
MCB9OworICAgIGNvbnN0IExhbmd1YWdlRGF0YSogbG93ZXJCb3VuZCA9IHN0ZDo6bG93ZXJfYm91
bmQ8Y29uc3QgTGFuZ3VhZ2VEYXRhKiwgY29uc3QgTGFuZ3VhZ2VEYXRhPihsYW5ndWFnZURhdGEs
IGxhbmd1YWdlRGF0YUVuZCwgcmVxdWVzdCk7CisgICAgaWYgKGxvd2VyQm91bmQgPT0gbGFuZ3Vh
Z2VEYXRhRW5kKQorICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAg
aWYgKHN0cm5jbXAobG93ZXJCb3VuZC0+bmFtZSwgcmVxdWVzdC5uYW1lLCBzdHJsZW4obG93ZXJC
b3VuZC0+bmFtZSkpKQorICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7Cisg
ICAgcmV0dXJuVmFsdWUgPSBRdW90ZXNEYXRhOjpjcmVhdGUobG93ZXJCb3VuZC0+YXJyYXlTaXpl
KTsKKyAgICBpZiAoIXJldHVyblZhbHVlKQorICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdl
UXVvdGVzKCk7CisgICAgU3RyaW5nKiBkYXRhID0gcmV0dXJuVmFsdWUtPmRhdGEoKTsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IGxvd2VyQm91bmQtPmFycmF5U2l6ZTsgKytpKQorICAgICAgICBk
YXRhW2ldID0gbG93ZXJCb3VuZC0+YXJyYXlbaV07CisgICAgcXVvdGVzTWFwKCkuc2V0KGxvd2Vy
LmltcGwoKSwgcmV0dXJuVmFsdWUpOworICAgIHJldHVybiByZXR1cm5WYWx1ZTsKK30KKyN1bmRl
ZiBBUlJBWV9TSVpFCisKK3N0YXRpYyBjb25zdCBRdW90ZXNEYXRhKiBkZWZhdWx0UXVvdGVzKGNv
bnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIHN0YXRpYyBTdHJpbmcgbGFuZ1N0cmlu
ZyA9ICJsYW5nIjsKKyAgICBOb2RlKiBub2RlID0gIG9iamVjdC0+Z2VuZXJhdGluZ05vZGUoKTsK
KyAgICBFbGVtZW50KiBlbGVtZW50OworICAgIGlmICghbm9kZSkgeworICAgICAgICBlbGVtZW50
ID0gb2JqZWN0LT5kb2N1bWVudCgpLT5ib2R5KCk7CisgICAgICAgIGlmICghZWxlbWVudCkKKyAg
ICAgICAgICAgIGVsZW1lbnQgPSBvYmplY3QtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgp
OworICAgIH0gZWxzZSBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICBlbGVt
ZW50ID0gbm9kZS0+cGFyZW50RWxlbWVudCgpOworICAgICAgICBpZiAoIWVsZW1lbnQpCisgICAg
ICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAgfSBlbHNlCisgICAg
ICBlbGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyogbGFu
Z3VhZ2U7CisgICAgd2hpbGUgKChsYW5ndWFnZSA9ICZlbGVtZW50LT5nZXRBdHRyaWJ1dGUobGFu
Z1N0cmluZykpICYmIGxhbmd1YWdlLT5pc051bGwoKSkgeworICAgICAgICBlbGVtZW50ID0gZWxl
bWVudC0+cGFyZW50RWxlbWVudCgpOworICAgICAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgICAg
ICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAgfQorICAgIHJldHVybiBxdW90
ZXNGb3JMYW5ndWFnZShsYW5ndWFnZS0+aW1wbCgpKTsKK30KKworUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPiBSZW5kZXJRdW90ZTo6b3JpZ2luYWxUZXh0KCkgY29uc3QKK3sKKyAgICBpZiAoIXBhcmVu
dCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBBU1NFUlQobV9kZXB0aCAhPSBVTktOT1dOX0RF
UFRIKTsKKyAgICAgY29uc3QgUXVvdGVzRGF0YSogcXVvdGVzID0gc3R5bGUoKS0+cXVvdGVzKCk7
CisgICAgIGlmICghcXVvdGVzKQorICAgICAgICAgcXVvdGVzID0gZGVmYXVsdFF1b3Rlcyh0aGlz
KTsKKyAgICBpZiAoIXF1b3Rlcy0+bGVuZ3RoKQorICAgICAgICByZXR1cm4gZW1wdHlBdG9tLmlt
cGwoKTsKKyAgICBpbnQgaW5kZXggPSBtX2RlcHRoICogMjsKKyAgICBzd2l0Y2ggKG1fdHlwZSkg
eworICAgIGNhc2UgTk9fT1BFTl9RVU9URToKKyAgICBjYXNlIE5PX0NMT1NFX1FVT1RFOgorICAg
ICAgICByZXR1cm4gU3RyaW5nKCIiKS5pbXBsKCk7CisgICAgY2FzZSBDTE9TRV9RVU9URToKKyAg
ICAgICAgaWYgKGluZGV4KQorICAgICAgICAgICAgLS1pbmRleDsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgKytpbmRleDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPUEVOX1FVT1RFOgor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbS5pbXBsKCk7CisgICAgfQorICAgIGlmIChpbmRl
eCA+PSBxdW90ZXMtPmxlbmd0aCkKKyAgICAgICAgaW5kZXggPSAocXVvdGVzLT5sZW5ndGgtMikg
fCAoaW5kZXggJiAxKTsKKyAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICByZXR1cm4gZW1wdHlB
dG9tLmltcGwoKTsKKyAgICByZXR1cm4gcXVvdGVzLT5kYXRhKClbaW5kZXhdLmltcGwoKTsKK30K
Kwordm9pZCBSZW5kZXJRdW90ZTo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoaW50IGxl
YWQpCit7CisgICAgc2V0VGV4dEludGVybmFsKG9yaWdpbmFsVGV4dCgpKTsKKyAgICBSZW5kZXJU
ZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhsZWFkKTsKK30KKwordm9pZCBSZW5k
ZXJRdW90ZTo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
K3sKKyAgICBpZiAocmVuZGVyZXItPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQoKSkKKyAgICAgICAg
cmV0dXJuOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0gcmVuZGVyZXI7IGRl
c2NlbmRhbnQ7IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0SW5QcmVPcmRlcihyZW5kZXJl
cikpCisgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1F1b3RlKCkpIHsKKyAgICAgICAgICAgIHRv
UmVuZGVyUXVvdGUoZGVzY2VuZGFudCktPnBsYWNlUXVvdGUoKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OnJlbmRlcmVyUmVtb3ZlZEZyb21U
cmVlKFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QpCit7CisgICAgaWYgKHN1YnRyZWVSb290LT5k
b2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKFJlbmRl
ck9iamVjdCogZGVzY2VuZGFudCA9IHN1YnRyZWVSb290OyBkZXNjZW5kYW50OyBkZXNjZW5kYW50
ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3VidHJlZVJvb3QpKQorICAgICAgICBpZiAo
ZGVzY2VuZGFudC0+aXNRdW90ZSgpKSB7CisgICAgICAgICAgICBSZW5kZXJRdW90ZSogcmVtb3Zl
ZFF1b3RlID0gdG9SZW5kZXJRdW90ZShkZXNjZW5kYW50KTsKKyAgICAgICAgICAgIFJlbmRlclF1
b3RlKiBsYXN0UXVvdGVCZWZvcmUgPSByZW1vdmVkUXVvdGUtPm1fcHJldmlvdXM7CisgICAgICAg
ICAgICByZW1vdmVkUXVvdGUtPm1fcHJldmlvdXMgPSAwOworICAgICAgICAgICAgaW50IGRlcHRo
ID0gcmVtb3ZlZFF1b3RlLT5tX2RlcHRoOworICAgICAgICAgICAgZm9yIChkZXNjZW5kYW50ID0g
ZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3VidHJlZVJvb3QpOyBkZXNjZW5kYW50OyBkZXNj
ZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3VidHJlZVJvb3QpKQorICAgICAg
ICAgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1F1b3RlKCkpCisgICAgICAgICAgICAgICAgICAg
IHJlbW92ZWRRdW90ZSA9IHRvUmVuZGVyUXVvdGUoZGVzY2VuZGFudCk7CisgICAgICAgICAgICBS
ZW5kZXJRdW90ZSogcXVvdGVBZnRlciA9IHJlbW92ZWRRdW90ZS0+bV9uZXh0OworICAgICAgICAg
ICAgcmVtb3ZlZFF1b3RlLT5tX25leHQgPSAwOworICAgICAgICAgICAgaWYgKGxhc3RRdW90ZUJl
Zm9yZSkKKyAgICAgICAgICAgICAgICBsYXN0UXVvdGVCZWZvcmUtPm1fbmV4dCA9IHF1b3RlQWZ0
ZXI7CisgICAgICAgICAgICBpZiAocXVvdGVBZnRlcikgeworICAgICAgICAgICAgICAgIHF1b3Rl
QWZ0ZXItPm1fcHJldmlvdXMgPSBsYXN0UXVvdGVCZWZvcmU7CisgICAgICAgICAgICAgICAgZG8g
eworICAgICAgICAgICAgICAgICAgICBpZiAoZGVwdGggPT0gcXVvdGVBZnRlci0+bV9kZXB0aCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBxdW90
ZUFmdGVyLT5tX2RlcHRoID0gZGVwdGg7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlQWZ0ZXIt
PnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOworICAgICAgICAgICAgICAgICAg
ICBhZGp1c3REZXB0aChkZXB0aCwgcXVvdGVBZnRlci0+bV90eXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgcXVvdGVBZnRlciA9IHF1b3RlQWZ0ZXItPm1fbmV4dDsKKyAgICAgICAgICAgICAgICB9
IHdoaWxlIChxdW90ZUFmdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgY29uc3Qg
UXVvdGVzRGF0YSogbmV3UXVvdGVzID0gc3R5bGUoKS0+cXVvdGVzKCk7CisgICAgY29uc3QgUXVv
dGVzRGF0YSogb2xkUXVvdGVzID0gb2xkU3R5bGUgPyBvbGRTdHlsZS0+cXVvdGVzKCkgOiAwOwor
ICAgIGlmICghKChuZXdRdW90ZXMgJiYgb2xkUXVvdGVzICYmICgqbmV3UXVvdGVzID09ICpvbGRR
dW90ZXMpKSB8fCAoIW5ld1F1b3RlcyAmJiAhb2xkUXVvdGVzKSkpCisgICAgICAgIHNldE5lZWRz
TGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOworICAgIFJlbmRlclRleHQ6OnN0eWxlRGlkQ2hh
bmdlKGRpZmYsIG9sZFN0eWxlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jMjkzOGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclF1b3RlLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBOb2tpYSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFJlbmRlclF1
b3RlX2gKKyNkZWZpbmUgUmVuZGVyUXVvdGVfaAorCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25z
dGFudHMuaCIKKyNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUmVuZGVyUXVvdGUgOiBwdWJsaWMgUmVuZGVyVGV4dCB7CitwdWJsaWM6CisgICAg
UmVuZGVyUXVvdGUoRG9jdW1lbnQqLCBjb25zdCBRdW90ZVR5cGUpOworICAgIHZpcnR1YWwgflJl
bmRlclF1b3RlKCk7CisKKyAgICBzdGF0aWMgdm9pZCByZW5kZXJlclN1YnRyZWVBdHRhY2hlZChS
ZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCByZW5kZXJlclJlbW92ZWRGcm9tVHJlZShS
ZW5kZXJPYmplY3QqKTsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOworcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH07CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCgpIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhpbnQgbGVhZFdpZHRoKTsKKyAgICBR
dW90ZVR5cGUgbV90eXBlOworICAgIGludCBtX2RlcHRoOworICAgIFJlbmRlclF1b3RlKiBtX25l
eHQ7CisgICAgUmVuZGVyUXVvdGUqIG1fcHJldmlvdXM7CisgICAgdm9pZCBwbGFjZVF1b3RlKCk7
Cit9OworCitpbmxpbmUgUmVuZGVyUXVvdGUqIHRvUmVuZGVyUXVvdGUoUmVuZGVyT2JqZWN0KiBv
YmplY3QpCit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1F1b3RlKCkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJRdW90ZSo+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMg
d2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5k
ZXJRdW90ZShjb25zdCBSZW5kZXJRdW90ZSopOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBSZW5kZXJRdW90ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcmluZ0FsbEluT25lLmNwcAppbmRleCA3NjBmMDJkLi4xOTVmYTNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKQEAgLTc5LDYgKzc5LDcg
QEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIgogI2luY2x1ZGUgIlJlbmRl
clBhcnQuY3BwIgogI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmNwcCIKKyNpbmNsdWRlICJSZW5k
ZXJRdW90ZS5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyUmVwbGFjZWQuY3BwIgogI2luY2x1ZGUgIlJl
bmRlclJlcGxpY2EuY3BwIgogI2luY2x1ZGUgIlJlbmRlclJ1YnkuY3BwIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKaW5kZXggZDE1MGY3Ny4uYWI1
MDRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnRE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEu
Y3BwCkBAIC01MSw2ICs1MSw4IEBAIGJvb2wgQ29udGVudERhdGE6OmRhdGFFcXVpdmFsZW50KGNv
bnN0IENvbnRlbnREYXRhJiBvdGhlcikgY29uc3QKICAgICAgICAgcmV0dXJuIFN0eWxlSW1hZ2U6
OmltYWdlc0VxdWl2YWxlbnQoaW1hZ2UoKSwgb3RoZXIuaW1hZ2UoKSk7CiAgICAgY2FzZSBDT05U
RU5UX0NPVU5URVI6CiAgICAgICAgIHJldHVybiAqY291bnRlcigpID09ICpvdGhlci5jb3VudGVy
KCk7CisgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICByZXR1cm4gcXVvdGUoKSA9PSBv
dGhlci5xdW90ZSgpOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzEs
NiArNzMsOCBAQCB2b2lkIENvbnRlbnREYXRhOjpkZWxldGVDb250ZW50KCkKICAgICBjYXNlIENP
TlRFTlRfQ09VTlRFUjoKICAgICAgICAgZGVsZXRlIG1fY29udGVudC5tX2NvdW50ZXI7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ09OVEVOVF9RVU9URToKKyAgICAgICAgYnJlYWs7CiAgICAg
fQogCiAgICAgbV90eXBlID0gQ09OVEVOVF9OT05FOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvQ29udGVudERhdGEuaAppbmRleCAxNWY2OTEyLi5jY2UzNzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaApAQCAtNTEsNiArNTEsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0NvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
Q09OVEVOVF9DT1VOVEVSOyB9CiAgICAgYm9vbCBpc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IENPTlRFTlRfT0JKRUNUOyB9CiAgICAgYm9vbCBpc05vbmUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGUgPT0gQ09OVEVOVF9OT05FOyB9CisgICAgYm9vbCBpc1F1b3RlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IENPTlRFTlRfUVVPVEU7IH0KICAgICBib29sIGlzVGV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBDT05URU5UX1RFWFQ7IH0KIAogICAgIFN0eWxlQ29udGVudFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpAQCAtOTMsNiArOTQsMTggQEAgcHVi
bGljOgogICAgICAgICBtX2NvbnRlbnQubV9jb3VudGVyID0gY291bnRlci5sZWFrUHRyKCk7CiAg
ICAgfQogCisgICAgUXVvdGVUeXBlIHF1b3RlKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VS
VChpc1F1b3RlKCkpOworICAgICAgICByZXR1cm4gbV9jb250ZW50Lm1fcXVvdGU7CisgICAgfQor
ICAgIHZvaWQgc2V0UXVvdGUoUXVvdGVUeXBlIHR5cGUpCisgICAgeworICAgICAgICBkZWxldGVD
b250ZW50KCk7CisgICAgICAgIG1fdHlwZSA9IENPTlRFTlRfUVVPVEU7CisgICAgICAgIG1fY29u
dGVudC5tX3F1b3RlID0gdHlwZTsKKyAgICB9CisKICAgICBDb250ZW50RGF0YSogbmV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsgfQogICAgIHZvaWQgc2V0TmV4dChQYXNzT3duUHRy
PENvbnRlbnREYXRhPiBuZXh0KSB7IG1fbmV4dCA9IG5leHQ7IH0KIApAQCAtMTA0LDYgKzExNyw3
IEBAIHByaXZhdGU6CiAgICAgICAgIFN0eWxlSW1hZ2UqIG1faW1hZ2U7CiAgICAgICAgIFN0cmlu
Z0ltcGwqIG1fdGV4dDsKICAgICAgICAgQ291bnRlckNvbnRlbnQqIG1fY291bnRlcjsKKyAgICAg
ICAgUXVvdGVUeXBlIG1fcXVvdGU7CiAgICAgfSBtX2NvbnRlbnQ7CiAgICAgT3duUHRyPENvbnRl
bnREYXRhPiBtX25leHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1F1b3Rlc0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1F1
b3Rlc0RhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyOWZlM2YK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUXVvdGVz
RGF0YS5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9r
aWEgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJRdW90ZXNEYXRhLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUXVvdGVzRGF0
YSogUXVvdGVzRGF0YTo6Y3JlYXRlKGludCBzdHJpbmdDb3VudCkKK3sKKyAgICBjaGFyKiB0bXAg
PSBuZXcgY2hhcltzaXplb2YoUXVvdGVzRGF0YSkrc2l6ZW9mKFN0cmluZykqc3RyaW5nQ291bnRd
OworICAgIGlmICghdG1wKQorICAgICAgICByZXR1cm4gMDsKKyAgICBuZXcgKHRtcCkgUXVvdGVz
RGF0YShzdHJpbmdDb3VudCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmdDb3VudDsg
KytpKQorICAgICAgICBuZXcgKHRtcCArc2l6ZW9mKFF1b3Rlc0RhdGEpICsgc2l6ZW9mKFN0cmlu
ZykqaSkgU3RyaW5nKCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXVvdGVzRGF0YSo+
KHRtcCk7Cit9CisKK2Jvb2wgUXVvdGVzRGF0YTo6b3BlcmF0b3I9PShjb25zdCBRdW90ZXNEYXRh
JiBvdGhlcikgY29uc3QKK3sKKyAgICBpZiAodGhpcyA9PSAmb3RoZXIpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIGlmICghJm90aGVyIHx8ICF0aGlzKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKGxlbmd0aCAhPSBvdGhlci5sZW5ndGgpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBjb25zdCBTdHJpbmcqIG15RGF0YSA9IGRhdGEoKTsKKyAgICBjb25zdCBTdHJpbmcqIG90
aGVyRGF0YSA9IG90aGVyLmRhdGEoKTsKKyAgICBmb3IgKGludCBpID0gbGVuZ3RoLTE7IGkgPj0g
MDsgLS1pKQorICAgICAgICBpZiAobXlEYXRhW2ldICE9IG90aGVyRGF0YVtpXSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUXVvdGVzRGF0YTo6flF1
b3Rlc0RhdGEoKQoreworICAgIFN0cmluZyogcCA9IGRhdGEoKTsKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBwW2ldLn5TdHJpbmcoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1F1b3Rlc0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNE
YXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY4YTZkZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmgK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFF1b3Rlc0RhdGFfaAorI2RlZmluZSBRdW90
ZXNEYXRhX2gKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBRdW90ZXNEYXRhIDog
cHVibGljIFJlZkNvdW50ZWQ8UXVvdGVzRGF0YT4geworcHVibGljOgorICAgIHZpcnR1YWwgflF1
b3Rlc0RhdGEoKTsKKyAgICBzdGF0aWMgUXVvdGVzRGF0YSogY3JlYXRlKGludCBzdHJpbmdDb3Vu
dCk7CisgICAgU3RyaW5nKiBkYXRhKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxTdHJpbmcq
Pih0aGlzKzEpOyB9CisgICAgY29uc3QgU3RyaW5nKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBTdHJpbmcqPih0aGlzKzEpOyB9CisgICAgaW50IGxlbmd0aDsK
KyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUXVvdGVzRGF0YSYpIGNvbnN0OworICAgIHZvaWQg
b3BlcmF0b3IgZGVsZXRlKHZvaWQqIHApIHsgZGVsZXRlW10gc3RhdGljX2Nhc3Q8Y2hhcio+KHAp
OyB9Citwcml2YXRlOgorICAgIFF1b3Rlc0RhdGEoaW50IHN0cmluZ0NvdW50KSA6IGxlbmd0aChz
dHJpbmdDb3VudCkge30KK307CisKK30KKyNlbmRpZiAvLyBRdW90ZXNEYXRhX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGI3NmEzNTAu
LjgxZGE0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgi
CisjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1ZGUgIlJlbmRlckFyZW5hLmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24u
aCIKQEAgLTYwNSw2ICs2MDYsMTMgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q3Vyc29yTGlzdChQ
YXNzUmVmUHRyPEN1cnNvckxpc3Q+IG90aGVyKQogICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2Vz
cygpLT5jdXJzb3JEYXRhID0gb3RoZXI7CiB9CiAKK3ZvaWQgUmVuZGVyU3R5bGU6OnNldFF1b3Rl
cyhQYXNzUmVmUHRyPFF1b3Rlc0RhdGE+IHEpCit7CisgICAgaWYgKCpyYXJlSW5oZXJpdGVkRGF0
YS0+cXVvdGVzLmdldCgpID09ICpxLmdldCgpKQorICAgICAgICByZXR1cm47CisgICAgcmFyZUlu
aGVyaXRlZERhdGEuYWNjZXNzKCktPnF1b3RlcyA9IHE7Cit9CisKIHZvaWQgUmVuZGVyU3R5bGU6
OmNsZWFyQ3Vyc29yTGlzdCgpCiB7CiAgICAgaWYgKHJhcmVJbmhlcml0ZWREYXRhLT5jdXJzb3JE
YXRhKQpAQCAtNjcyLDYgKzY4MCwxMSBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRDb250ZW50KFBh
c3NPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50ZXIsIGJvb2wgYWRkKQogICAgIHByZXBhcmVU
b1NldENvbnRlbnQoMCwgYWRkKS0+c2V0Q291bnRlcihjb3VudGVyKTsKIH0KIAordm9pZCBSZW5k
ZXJTdHlsZTo6c2V0Q29udGVudChRdW90ZVR5cGUgcXVvdGUsIGJvb2wgYWRkKQoreworICAgIHBy
ZXBhcmVUb1NldENvbnRlbnQoMCwgYWRkKS0+c2V0UXVvdGUocXVvdGUpOworfQorCiB2b2lkIFJl
bmRlclN0eWxlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3Jt
LCBjb25zdCBJbnRTaXplJiBib3JkZXJCb3hTaXplLCBBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBs
eU9yaWdpbikgY29uc3QKIHsKICAgICAvLyB0cmFuc2Zvcm0tb3JpZ2luIGJyYWNrZXRzIHRoZSB0
cmFuc2Zvcm0gd2l0aCB0cmFuc2xhdGUgb3BlcmF0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNTU4NTgwYi4uNjRhZjMwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTExMjYsMTAg
KzExMjYsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGVudChQYXNzUmVmUHRyPFN0cmlu
Z0ltcGw+LCBib29sIGFkZCA9IGZhbHNlKTsKICAgICB2b2lkIHNldENvbnRlbnQoUGFzc1JlZlB0
cjxTdHlsZUltYWdlPiwgYm9vbCBhZGQgPSBmYWxzZSk7CiAgICAgdm9pZCBzZXRDb250ZW50KFBh
c3NPd25QdHI8Q291bnRlckNvbnRlbnQ+LCBib29sIGFkZCA9IGZhbHNlKTsKKyAgICB2b2lkIHNl
dENvbnRlbnQoUXVvdGVUeXBlLCBib29sIGFkZCA9IGZhbHNlKTsKIAogICAgIGNvbnN0IENvdW50
ZXJEaXJlY3RpdmVNYXAqIGNvdW50ZXJEaXJlY3RpdmVzKCkgY29uc3Q7CiAgICAgQ291bnRlckRp
cmVjdGl2ZU1hcCYgYWNjZXNzQ291bnRlckRpcmVjdGl2ZXMoKTsKIAorICAgIFF1b3Rlc0RhdGEq
IHF1b3RlcygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5xdW90ZXMuZ2V0KCk7
IH0KKyAgICB2b2lkIHNldFF1b3RlcyhQYXNzUmVmUHRyPFF1b3Rlc0RhdGE+KTsKKwogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgaHlwaGVuU3RyaW5nKCkgY29uc3Q7CiAKICAgICBib29sIGluaGVy
aXRlZE5vdEVxdWFsKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDQ0
Y2QzZjUuLjNjNjJkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC0yOTcsNyArMjk3LDExIEBAIGVudW0gRUxp
c3RTdHlsZVR5cGUgewogfTsKIAogZW51bSBTdHlsZUNvbnRlbnRUeXBlIHsKLSAgICBDT05URU5U
X05PTkUsIENPTlRFTlRfT0JKRUNULCBDT05URU5UX1RFWFQsIENPTlRFTlRfQ09VTlRFUgorICAg
IENPTlRFTlRfTk9ORSwgQ09OVEVOVF9PQkpFQ1QsIENPTlRFTlRfVEVYVCwgQ09OVEVOVF9DT1VO
VEVSLCBDT05URU5UX1FVT1RFCit9OworCitlbnVtIFF1b3RlVHlwZSB7CisgICAgT1BFTl9RVU9U
RSwgQ0xPU0VfUVVPVEUsIE5PX09QRU5fUVVPVEUsIE5PX0NMT1NFX1FVT1RFCiB9OwogCiBlbnVt
IEVCb3JkZXJGaXQgeyBCb3JkZXJGaXRCb3JkZXIsIEJvcmRlckZpdExpbmVzIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAKaW5kZXggNmI4ZTAzOS4uOWRjZjkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAt
MjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmFyZUluaGVyaXRlZERhdGEuaCIKIAogI2lu
Y2x1ZGUgIkN1cnNvckxpc3QuaCIKKyNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1
ZGUgIlNoYWRvd0RhdGEuaCIKQEAgLTEzMiw3ICsxMzMsOCBAQCBib29sIFN0eWxlUmFyZUluaGVy
aXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29u
c3QKICAgICAgICAgJiYgdGV4dEVtcGhhc2lzUG9zaXRpb24gPT0gby50ZXh0RW1waGFzaXNQb3Np
dGlvbgogICAgICAgICAmJiBoeXBoZW5hdGlvblN0cmluZyA9PSBvLmh5cGhlbmF0aW9uU3RyaW5n
CiAgICAgICAgICYmIGh5cGhlbmF0aW9uTG9jYWxlID09IG8uaHlwaGVuYXRpb25Mb2NhbGUKLSAg
ICAgICAgJiYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyayA9PSBvLnRleHRFbXBoYXNpc0N1c3RvbU1h
cms7CisgICAgICAgICYmIHRleHRFbXBoYXNpc0N1c3RvbU1hcmsgPT0gby50ZXh0RW1waGFzaXND
dXN0b21NYXJrCisgICAgICAgICYmICpxdW90ZXMuZ2V0KCkgPT0gKm8ucXVvdGVzLmdldCgpOwog
fQogCiBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNv
bnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBk
MjZjYTgzLi5mYzU2ZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTM0LDYgKzM0LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3Vyc29yTGlzdDsKK2NsYXNzIFF1b3Rlc0RhdGE7CiBj
bGFzcyBTaGFkb3dEYXRhOwogCiAvLyBUaGlzIHN0cnVjdCBpcyBmb3IgcmFyZWx5IHVzZWQgaW5o
ZXJpdGVkIENTUzMsIENTUzIsIGFuZCBXZWJLaXQtc3BlY2lmaWMgcHJvcGVydGllcy4KQEAgLTg4
LDYgKzg5LDcgQEAgcHVibGljOgogICAgIEF0b21pY1N0cmluZyBoeXBoZW5hdGlvbkxvY2FsZTsK
IAogICAgIEF0b21pY1N0cmluZyB0ZXh0RW1waGFzaXNDdXN0b21NYXJrOworICAgIFJlZlB0cjxR
dW90ZXNEYXRhPiBxdW90ZXM7CiAKIHByaXZhdGU6CiAgICAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82985</attachid>
            <date>2011-02-18 11:14:17 -0800</date>
            <delta_ts>2011-02-18 15:41:04 -0800</delta_ts>
            <desc>Proposed Patch. Fixed problem with Windows build.</desc>
            <filename>patchFor6503-5.patch</filename>
            <type>text/plain</type>
            <size>77391</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODBjZDY3Li5hNWFmZWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDIt
MTggIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24n
dCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyBmb3IgcXVvdGVzLgorCisg
ICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbDogQWRkZWQu
CisKIDIwMTEtMDItMTggIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi40MWVjOGYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50
aWNhbC4KKworPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYWIJMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQorCitXV2FXV2JXV1dXV1dX
VwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMz09PT09
PT09CisKK1BBU1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9j
b250ZW50LXF1b3Rlcy0wMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250
ZW50LXF1b3Rlcy0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVi
OWE0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTAxLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICBib2R5IHsgcXVv
dGVzOiAiV1ciICJXV1dXIjsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkgeworICAg
ICAgICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUo
IndpZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdl
dFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9
PSByZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuaW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVj
dGVkICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAg
ICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNo
b3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09
PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAg
IDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+PC9xPjwvdGQ+CisgICAgICAgICAg
ICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAg
ICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9
PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAg
ICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5XV2FXV2JXV1dXV1dXVzwvdGQ+CisgICAgICAgICAg
ICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAg
ICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIz
PT09PT09PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQt
cXVvdGVzLTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29u
dGVudC1xdW90ZXMtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmVhMTQ0NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKz09
PT09PT09TWFya2VyMT09PT09PT09CisKK2FiY2QJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQorCithV1dXYldXV1dXY1dXZFdXV1cJMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQor
CitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVu
dC1xdW90ZXMtMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWU3ODUx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMi5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3Rlczog
IldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgc3BhbjpiZWZvcmUgeyBj
b250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgICAgICBzcGFuOmFmdGVyIHsgY29udGVu
dDogbm8tY2xvc2UtcXVvdGU7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1bigpIHsKKyAg
ICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0
dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKKyAgICAgICAgICAgICAgICB0ZXN0
V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAg
ICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3
aWR0aCIpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNlV2lkdGgp
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJG
QUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVmZXJlbmNl
V2lkdGg7CisgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUluQnJv
d3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKKyAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVv
dXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0
cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8
cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAg
ICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHNwYW4+YTxx
PmI8L3E+Yzwvc3Bhbj48cT5kPC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAg
ICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAg
ICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVm
ZXJlbmNlIj5hV1dXYldXV1dXY1dXZFdXV1c8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEg
MSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+Cisg
ICAgICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgor
ICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTFkZWJh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACis9PT09PT09PU1hcmtlcjE9
PT09PT09PQorCithYgkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09
TWFya2VyMj09PT09PT09CisKK2FXV1diV1dXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzFmOWJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy5odG1sCkBAIC0wLDAg
KzEsNDcgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dX
IjsgfQorICAgICAgICAgICAgYjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3Bs
YXk6IG5vbmU7Iik7CisgICAgICAgICAgICAgICAgdGVzdFdpZHRoID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RDb250YWluZXIiKSwgbnVsbCku
Z2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAgICByZWZlcmVuY2VXaWR0
aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZl
cmVuY2UiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAg
ICBpZiAodGVzdFdpZHRoID09IHJlZmVyZW5jZVdpZHRoKQorICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJQQVNTRUQiOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiRkFJTEVEOiB0ZXN0V2lkdGg9IiArIHRl
c3RXaWR0aCArIjsgZXhwZWN0ZWQgIiArIHJlZmVyZW5jZVdpZHRoOworICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICB9CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVu
KCknLCAwKTsiPgorICAgICAgICA8cCBpZD0ib25seUluQnJvd3NlciI+VGhlIHRleHRzIGJldHdl
ZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC48L3A+CisgICAgICAgIDxwPj09PT09
PT09TWFya2VyMT09PT09PT09PC9wPgorICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHI+
CisgICAgICAgICAgICAgICAgPHRkIGlkPSJ0ZXN0Q29udGFpbmVyIj48c3Bhbj48Yj5hPC9iPjwv
c3Bhbj48cT5iPC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxl
PgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxl
PgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj48
c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGRlcjsiPmE8L3NwYW4+V1dXYldXV1dXPC90ZD4K
KyAgICAgICAgICAgICAgICA8dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAxICAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwv
dGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09
PT09PU1hcmtlcjM9PT09PT09PTwvcD4KKyAgICAgICAgPHByZSBpZD0iY29uc29sZSIvPgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjA1N2E0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOSBAQAorPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYgkxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYldXV1cJMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQ
QVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90
ZXMtMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzAyOWQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1
b3Rlcy0wNC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldX
IiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgYjpiZWZvcmUgeyBjb250ZW50
OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRy
aWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAgICAgICAgICAgICAgZWwgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9SZW1vdmUiKTsKKyAgICAgICAgICAgICAgICBlbC5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsKKyAgICAgICAgICAgICAgICB0ZXN0V2lkdGggPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENvbnRh
aW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAg
IHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOwor
ICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNlV2lkdGgpCisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0
ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRl
c3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVmZXJlbmNlV2lkdGg7Cisg
ICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
IH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KCdydW4oKScsIDApOyI+CisgICAgICAgIDxwIGlkPSJvbmx5SW5Ccm93c2VyIj5U
aGUgdGV4dHMgYmV0d2VlbiB0aGUgbWFya2VycyBzaG91bGQgYmUgaWRlbnRpY2FsLjwvcD4KKyAg
ICAgICAgPHA+PT09PT09PT1NYXJrZXIxPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAg
ICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InRlc3RDb250YWluZXIiPjxz
cGFuPjxiIGlkPSJ0b1JlbW92ZSI+YTwvYj48L3NwYW4+PHE+YjwvcT48L3RkPgorICAgICAgICAg
ICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAg
ICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIy
PT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAg
ICAgICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1diV1dXVzwvdGQ+CisgICAgICAgICAgICAgICAg
PHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAg
PC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIzPT09PT09
PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVz
LTA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjQzZWI0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKz09PT09PT09
TWFya2VyMT09PT09PT09CisKK2FiYwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEK
Kz09PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYVdXV2JXV1dXV2NXV1dXCTEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMQorPT09PT09PT1NYXJrZXIzPT09PT09PT0KKworUEFTU0VE
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVz
LTA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDIyYmUzYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMt
MDUuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIC5teVF1b3RlcyB7IHF1b3RlczogIldX
IiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkg
eworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmx5SW5Ccm93c2VyIiku
c2V0QXR0cmlidXRlKCJzdHlsZSIsICJkaXNwbGF5OiBub25lOyIpOworICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJteVF1b3RlcyIpOworICAgICAg
ICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndp
ZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdldFBy
b3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9PSBy
ZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVjdGVk
ICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+
CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAg
PHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3Vs
ZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwv
cD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0
ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+YzwvcT48L3RkPgorICAgICAgICAgICAg
ICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAg
ICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIyPT09
PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAg
ICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1dhV1dXYldXV1dXY1dXV1c8L3RkPgorICAgICAgICAg
ICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAg
ICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2Vy
Mz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggOWNkMzAyMi4uY2MwZmE4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBA
IC03MDIsNiArNzAyLDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBc
CiAJcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJPYmplY3RD
aGlsZExpc3QuY3BwIFwKIAlyZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAgXAorCXJlbmRlcmluZy9S
ZW5kZXJRdW90ZS5jcHAgXAogCXJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgXAogCXJlbmRl
cmluZy9SZW5kZXJSZXBsaWNhLmNwcCBcCiAKQEAgLTc5Miw2ICs3OTMsNyBAQCBMT0NBTF9TUkNf
RklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlyZW5kZXJpbmcvc3R5bGUvRmlsbExheWVy
LmNwcCBcCiAJcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAgXAogCXJlbmRlcmluZy9z
dHlsZS9OaW5lUGllY2VJbWFnZS5jcHAgXAorCXJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNw
cCBcCiAJcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBcCiAKIGlmZXEgKCQoRU5BQkxF
X1NWRyksIHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDVhMzZhMDguLjNjZjI4N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMzg2LDYgKzEzODYsNyBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKICAgICByZW5kZXJp
bmcvUmVuZGVyUGFydC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCisgICAg
cmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVy
UnVieS5jcHAKQEAgLTE0MjQsNiArMTQyNSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBy
ZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFt
ZUxpc3QuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcAorICAgIHJl
bmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5jcHAKICAgICByZW5kZXJp
bmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NTQ5MjkxLi5h
Y2RlMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTEtMDItMTggIENhcm9sIFN6
YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24ndCBzdXBwb3J0IHF1
b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUw
MworCisgICAgICAgIEFkZGVkIGZ1bGwgc3VwcG9ydCBmb3IgcXVvdGVzIGFzIGRlZmluZWQgYnkg
Q1NTIDIuMS4KKworICAgICAgICBUZXN0czogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rl
cy0wMS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVz
LTAyLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMt
MDMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0w
NC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1
Lmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGRlZCBSZW5kZXJRdW90ZS5jcHAv
aCBhbmQgUXVvdGVzRGF0YS5jcHAvaCB0byB0aGUgZGVwZW5kZW5jeSBsaXN0cworICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VRdW90ZXMpOgorICAgICAg
ICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgQWRkZWQgbmVlZGVkIHN0eWxlc2hlZXQgcGFy
c2luZyBzdXBwb3J0IGZvciBxdW90ZXMsCisgICAgICAgIChuby0pb3Blbi1xdW90ZSBhbmQgKG5v
LSljbG9zZS1xdW90ZQorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICBI
YW5kbGVkIHNldHRpbmcgb2YgdGhlIG5ldyBxdW90ZXMgUmVuZGVyU3R5bGUgcHJvcGVydHkgYW5k
IGFkZGVkCisgICAgICAgIGhhbmRsaW5nIG9mIHF1b3RlcyBmb3IgdGhlIGNvbnRlbnQgcHJvcGVy
dHkuCisgICAgICAgICogY3NzL2h0bWwuY3NzOgorICAgICAgICAocTpiZWZvcmUpOgorICAgICAg
ICAocTphZnRlcik6CisgICAgICAgIHJlcGxhY2VkIHRoZSAnIicgd29ya2Fyb3VuZCB3aXRoIG9w
ZW4vY2xvc2UtcXVvdGUKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpcnR5TGluZUJveGVzRm9yUmVuZGVyZXIpOgorICAg
ICAgICBNYWRlIFJlbmRlclF1b3RlIGJlaGF2ZSBsaWtlIFJlbmRlckNvdW50ZXIuCisgICAgICAg
IE5lZWRlZCB0byBlbnN1cmUgdGhhdCB0aGUgUXVvdGUgdGV4dCBpcyBjYWxjdWxhdGVkIGJlZm9y
ZSBsYXlvdXQsCisgICAgICAgIGp1c3QgYXMgaXQgaXMgZm9yIFJlbmRlckNvdW50ZXIuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0Ojppc1F1b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6cmVtb3Zl
Q2hpbGROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6YXBw
ZW5kQ2hpbGROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6
aW5zZXJ0Q2hpbGROb2RlKToKKyAgICAgICAgSGFuZGxlZCB1cGRhdGluZyBvZiBxdW90ZSBkZXB0
aCB3aGVuIHJlbmRlcmVycyBhcmUgYWRkZWQgYW5kIHJlbW92ZWQKKyAgICAgICAgZnJvbSB0aGUg
dHJlZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdENoaWxkTGlzdDo6dXBkYXRlQmVm
b3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdERlcHRoKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclF1b3RlOjpSZW5kZXJRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90
ZTo6flJlbmRlclF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpyZW5kZXJO
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpwbGFjZVF1b3RlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjpvcmlnaW5hbFRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUXVvdGU6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hlZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJvbVRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUXVvdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90
ZTo6aXNRdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlclF1b3RlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwOgorICAgICAgICBJbmNsdWRlZCBSZW5k
ZXJRdW90ZS5jcHAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5jcHA6
CisgICAgICAgIEluY2x1ZGVkIFF1b3Rlc0RhdGEuY3BwCisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL0NvbnRlbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjpkYXRh
RXF1aXZhbGVudCk6CisgICAgICAgIENoZWNrZWQgZm9yIHF1b3RldHlwZSBpZGVudGl0eS4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjpkZWxldGVDb250ZW50KToKKyAgICAgICAgQWNj
b3VudGVkIGZvciB0aGUgbmV3IFFVT1RFX1RZUEUuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L0NvbnRlbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RGF0YTo6aXNRdW90ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RGF0YTo6cXVvdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudERhdGE6OnNldFF1b3RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldENvbnRlbnQp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5oZXJpdGVkRmxhZ3M6OnF1b3Rlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0
ZWRGbGFnczo6c2V0UXVvdGVzKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpv
cGVyYXRvcj09KToKKyAgICAgICAgSW5jbHVkZWQgcXVvdGVzIGluIGVxdWFsaXR5IGNoZWNrLgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmg6CisgICAg
ICAgIEFkZGVkIHF1b3RlcworCiAyMDExLTAyLTE4ICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCAzZDJlNzcyLi5kMDYwZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpA
QCAtMjgyNiw2ICsyODI2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jl
c3MuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBcCisJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGlj
YS5jcHAgXApAQCAtMjkyOCw2ICsyOTMwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCBcCiAJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9RdW90ZXNEYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzBhN2JkNC4uNzQyZjc2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMzY3Nyw2ICszNjc3LDggQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUv
TmluZVBpZWNlSW1hZ2UuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvTmluZVBp
ZWNlSW1hZ2UuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5o
JywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5jcHAnLAorICAgICAg
ICAgICAgJ3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmgnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaCcsCkBAIC0zOTMyLDYgKzM5MzQsOCBAQAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9SZW5kZXJQYXJ0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQcm9ncmVz
cy5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oJywKKyAgICAg
ICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJp
bmcvUmVuZGVyUXVvdGUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDNi
OGQ0YWEuLjBmOWUwNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMjMxLDYgKzEyMzEsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3Mu
Y3BwIFwKKyAgICByZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwIFwKICAgICByZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAgXAogICAg
IHJlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcCBcCkBAIC0xMjY3LDYgKzEyNjgsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcCBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL0tleWZyYW1lTGlzdC5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJ
bWFnZS5jcHAgXAorICAgIHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1NoYWRv
d0RhdGEuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5jcHAg
XApAQCAtMjIxOSw2ICsyMjIxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5oIFwKICAgICByZW5kZXJpbmcv
UmVuZGVyUHJvZ3Jlc3MuaCBcCisgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmggXAogICAgIHJl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5o
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyUnVieS5oIFwKQEAgLTIyNTYsNiArMjI1OSw3IEBAIEhF
QURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuaCBcCiAgICAgcmVuZGVy
aW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNl
SW1hZ2UuaCBcCisgICAgcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuaCBcCiAgICAgcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TaGFkb3dEYXRh
LmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUJhY2tncm91bmREYXRhLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1NjkxMzQxLi42
YTU3NmI4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtMzUwMzQsNiArMzUwMzQsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclF1b3RlLmNwcCIKKwkJCQk+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2lu
MzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcUmVuZGVyUXVvdGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclJlcGxhY2VkLmNwcCIKIAkJCQk+CiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCkBAIC0zOTAwMyw2ICszOTA1OSw2MiBAQAogCQkJCQk+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxl
XFF1b3Rlc0RhdGEuY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
CT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJl
bGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJ
PgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcUXVvdGVzRGF0YS5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0
eWxlXFJlbmRlclN0eWxlLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAwY2M1YmY5Li40MjA2ZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTAzLDYgKzI5MDMsOCBAQAogCQk5MzkyRjE0NDBB
RDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0MzBBRDE4NUZFMDA2OTFCRDQgLyogUmVu
ZGVyQ291bnRlci5jcHAgKi87IH07CiAJCTkzOTJGMTRDMEFEMTg2MUIwMDY5MUJENCAvKiBDb3Vu
dGVyTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5MkYxNEIwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggKi87IH07CiAJCTkzOTJG
MTUwMEFEMTg2MjMwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0RjBBRDE4NjIzMDA2OTFCRDQgLyog
Q291bnRlck5vZGUuY3BwICovOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUmVu
ZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOTJGMTQxMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5oICovOyB9OworCQk5Mzky
RjE0NDBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0IC8q
IFJlbmRlclF1b3RlLmNwcCAqLzsgfTsKIAkJOTM5ODg1QzMwOEI3RTNEMTAwRTcwN0M0IC8qIEV2
ZW50TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5ODg1QzEwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuY3BwICovOyB9OwogCQk5
Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5ODg1QzIwOEI3RTNEMTAwRTcwN0M0IC8q
IEV2ZW50TmFtZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MzlCMDJFRTBFQTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCMDJFQzBFQTJE
QkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5jcHAgKi87IH07CkBAIC01MjY5LDYgKzUyNzEs
OCBAQAogCQlCQ0VGNDNDRjBFNjczREExMDAxQzEyODcgLyogU3R5bGVJbWFnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQzQ0UwRTY3M0RBMTAw
MUMxMjg3IC8qIFN0eWxlSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlCQ0VGNDNERDBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBpZWNlSW1h
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUY0
M0RDMEU2NzQwMTIwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRUY0M0UwMEU2NzQxMTAwMDFDMTI4
NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0VGNDNERjBFNjc0MTEwMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2Uu
Y3BwICovOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5oIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDIwQUQx
ODVGNDAwNjkxQkQ0IC8qIFF1dG9lc0RhdGEuaCAqLzsgfTsKKwkJOTM5MkYxNDIwQUQxODVGNDAw
NjkxQkQ0IC8qIFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1dG9lc0RhdGEuY3Bw
ICovOyB9OwogCQlCQ0VGNDQ0QTBFNjc0NUUwMDAxQzEyODcgLyogU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQ0
NDkwRTY3NDVFMDAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0VGNDQ0RDBFNjc0NjI4MDAx
QzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNFRjQ0NEMwRTY3NDYyODAwMUMxMjg3IC8qIFN0eWxlQ2FjaGVk
SW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQ0VGNDQ3QTBFNjc0N0QwMDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGNDQ3OTBFNjc0N0Qw
MDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5jcHAgKi87IH07CkBAIC05MzA1LDYgKzkzMDks
OCBAQAogCQk5MzkyRjE0MzBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyQ291bnRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyQ291bnRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBD
b3VudGVyTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ291bnRlck5v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MkYxNEYwQUQxODYyMzAwNjkx
QkQ0IC8qIENvdW50ZXJOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDb3VudGVyTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTJG
MTQxMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVuZGVyUXVvdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM5MkYxNDMwQUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJRdW90ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzOTU1QTQxMDNENzI5MzIwMDg2MzVDRSAvKiBSZW5kZXJUcmVl
QXNUZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVyVHJlZUFzVGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5NTVBNDIwM0Q3MjkzMjAwODYzNUNFIC8qIFJlbmRl
clRyZWVBc1RleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQXNUZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTkzOTg4NUMxMDhCN0UzRDEwMEU3
MDdDNCAvKiBFdmVudE5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTExNTk5LDYgKzExNjA1LDgg
QEAKIAkJQkNFRjQzQ0UwRTY3M0RBMTAwMUMxMjg3IC8qIFN0eWxlSW1hZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVJbWFnZS5oOyBwYXRoID0gc3R5bGUvU3R5bGVJ
bWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDNEQzBFNjc0MDEyMDAx
QzEyODcgLyogTmluZVBpZWNlSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gTmluZVBpZWNlSW1hZ2UuaDsgcGF0aCA9IHN0eWxlL05pbmVQaWVjZUltYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0M0RGMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5l
UGllY2VJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOaW5l
UGllY2VJbWFnZS5jcHA7IHBhdGggPSBzdHlsZS9OaW5lUGllY2VJbWFnZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNE
YXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFF1b3Rlc0RhdGEuaDsgcGF0
aCA9IHN0eWxlL1F1b3Rlc0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5
MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gUXVvdGVzRGF0YS5jcHA7IHBhdGggPSBzdHlsZS9RdW90ZXNE
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFRjQ0NDkwRTY3NDVFMDAw
MUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gU3R5bGVHZW5lcmF0ZWRJbWFnZS5oOyBwYXRoID0gc3R5bGUvU3R5bGVHZW5lcmF0
ZWRJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDQ0QzBFNjc0NjI4
MDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBTdHlsZUNhY2hlZEltYWdlLmg7IHBhdGggPSBzdHlsZS9TdHlsZUNhY2hlZEltYWdl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0NDc5MEU2NzQ3RDAwMDFDMTI4
NyAvKiBTdHlsZUNhY2hlZEltYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFN0eWxlQ2FjaGVkSW1hZ2UuY3BwOyBwYXRoID0gc3R5bGUvU3R5bGVDYWNoZWRJbWFn
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzk3OCw2ICsxNzk4Niw4IEBA
CiAJCQkJQkNFRjQzREYwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCAqLywK
IAkJCQlCQ0VGNDNEQzBFNjc0MDEyMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuaCAqLywKIAkJ
CQlCQzVFQjVEQzBFODFCOEREMDBCMjU5NjUgLyogT3V0bGluZVZhbHVlLmggKi8sCisJCQkJOTM5
MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuY3BwICovLAorCQkJCTkzOTJGMTQy
MEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmggKi8sCiAJCQkJQkM4QzhGQUIwRERDRDMx
QjAwQjU5MkY0IC8qIFJlbmRlclN0eWxlLmNwcCAqLywKIAkJCQlCQzhDOEZBQzBERENEMzFCMDBC
NTkyRjQgLyogUmVuZGVyU3R5bGUuaCAqLywKIAkJCQlCQzVFQjY2NzBFODFDQjcxMDBCMjU5NjUg
LyogUmVuZGVyU3R5bGVDb25zdGFudHMuaCAqLywKQEAgLTE4Nzk4LDYgKzE4ODA4LDggQEAKIAkJ
CQlBODcxREVDRjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5oICovLAogCQkJCUE0M0JG
NTlBMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgKi8sCiAJCQkJQTQzQkY1
OUIxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmggKi8sCisJCQkJOTM5MkYxNDMw
QUQxODVGRTAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmNwcCAqLywKKwkJCQk5MzkyRjE0MTBBRDE4
NUY0MDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuaCAqLywKIAkJCQlBODcxREZERTBBMTUzNzZCMDBC
MTJBNjggLyogUmVuZGVyUmVwbGFjZWQuY3BwICovLAogCQkJCUE4NzFERkRGMEExNTM3NkIwMEIx
MkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oICovLAogCQkJCUJDQTg0NkQ0MERDNjdBMzUwMDI2QzMw
OSAvKiBSZW5kZXJSZXBsaWNhLmNwcCAqLywKQEAgLTIxNjQ2LDYgKzIxNjU4LDcgQEAKIAkJCQlF
NEQ2ODc3OTBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3RTMzQ0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNE
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3MjBEMDBCRjIyMDA3MUI3ODIgLyogUmFk
aWFsR3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDQzEyNTFG
MTJEMDAzRUYyNjkgLyogUmFkaW9JbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5
OTE4MDgyNDVFNTkwMDFFOUFCQyAvKiBSYW5nZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTcxNiw2
ICsyMTcyOSw3IEBACiAJCQkJQkNGQTkzMDgxMDMzMzE5MzAwN0IyNUQxIC8qIFJlbmRlck92ZXJm
bG93LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREVENzBBMTUzMEM3MDBCMTJBNjggLyogUmVu
ZGVyUGFydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQzQkY1OUQxMTQ5MjkyODAwQzY0M0NBIC8q
IFJlbmRlclByb2dyZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzkyRjE0MjBBRDE4NUY0MDA2
OTFCRDQgLyogUmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFERkUzMEExNTM3
NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBODQ2
RDcwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTE0NzlGQUVFMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmggaW4gSGVhZGVycyAqLywK
QEAgLTI0MzY1LDYgKzI0Mzc5LDcgQEAKIAkJCQkxQTdGQTYxQjBEREEzQkJFMDAyOEY4QTUgLyog
TmV0d29ya1N0YXRlTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3RkE2NDkwRERB
M0NCQTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyTWFjLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDRUY0M0UwMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVzRGF0YS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEM0QTgwMDA5RDU2MzI3MDAwM0FDOEQgLyogTm9kZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTRGRTczMDBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUZp
bHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTRGRTczMjBBMjI5N0JFMDA1OEQ3QUQgLyog
Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0NTA2LDYgKzI0NTIx
LDcgQEAKIAkJCQlCQzYwRUZCNzBGMzNBMEU3MDA4MTJBOTMgLyogUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NzFERUQwMEExNTMwQzcwMEIxMkE2OCAvKiBS
ZW5kZXJQYXJ0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE0M0JGNTlDMTE0OTI5MjgwMEM2NDND
QSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzkyRjE0NDBBRDE4
NUZFMDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURG
RTIwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlclJlcGxhY2VkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDQTg0NkQ2MERDNjdBMzUwMDI2QzMwOSAvKiBSZW5kZXJSZXBsaWNhLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0NzlGQUVEMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBlNDlmNzkyLi5jZTBj
MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjM0LDYgKzYzNCw4IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGNh
c2UgQ1NTUHJvcGVydHlRdW90ZXM6ICAgICAgICAgICAgICAgLy8gWzxzdHJpbmc+IDxzdHJpbmc+
XSsgfCBub25lIHwgaW5oZXJpdAogICAgICAgICBpZiAoaWQpCiAgICAgICAgICAgICB2YWxpZFBy
aW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBwYXJzZVF1
b3Rlcyhwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlVbmljb2RlQmlkaTogICAgICAgICAvLyBub3JtYWwgfCBlbWJlZCB8IGJpZGktb3ZlcnJp
ZGUgfCBpbmhlcml0CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fApAQCAtMjM1
NCw2ICsyMzU2LDI4IEBAIENTU1BhcnNlcjo6U2l6ZVBhcmFtZXRlclR5cGUgQ1NTUGFyc2VyOjpw
YXJzZVNpemVQYXJhbWV0ZXIoQ1NTVmFsdWVMaXN0KiBwYXJzZWRWCiAgICAgfQogfQogCisvLyBb
IDxzdHJpbmc+IDxzdHJpbmc+IF0rIHwgaW5oZXJpdCB8IG5vbmUKKy8vIGluaGVyaXQgYW5kIG5v
bmUgYXJlIGhhbmRsZWQgaW4gcGFyc2VWYWx1ZS4KK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZVF1b3Rl
cyhpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKK3sKKyAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0
PiB2YWx1ZXMgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgd2hp
bGUgKENTU1BhcnNlclZhbHVlKiB2YWwgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSB7CisgICAg
ICAgIFJlZlB0cjxDU1NWYWx1ZT4gcGFyc2VkVmFsdWU7CisgICAgICAgIGlmICh2YWwtPnVuaXQg
PT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpCisgICAgICAgICAgICBwYXJzZWRWYWx1
ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsLT5zdHJpbmcsIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfU1RSSU5HKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIHZhbHVlcy0+YXBwZW5kKHBhcnNlZFZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgIG1fdmFs
dWVMaXN0LT5uZXh0KCk7CisgICAgfQorICAgIGlmICh2YWx1ZXMtPmxlbmd0aCgpKSB7CisgICAg
ICAgIGFkZFByb3BlcnR5KHByb3BJZCwgdmFsdWVzLnJlbGVhc2UoKSwgaW1wb3J0YW50KTsKKyAg
ICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
ICAgIHJldHVybiBmYWxzZTsKK30KKwogLy8gWyA8c3RyaW5nPiB8IDx1cmk+IHwgPGNvdW50ZXI+
IHwgYXR0cihYKSB8IG9wZW4tcXVvdGUgfCBjbG9zZS1xdW90ZSB8IG5vLW9wZW4tcXVvdGUgfCBu
by1jbG9zZS1xdW90ZSBdKyB8IGluaGVyaXQKIC8vIGluIENTUyAyLjEgdGhpcyBnb3Qgc29tZXdo
YXQgcmVkdWNlZDoKIC8vIFsgPHN0cmluZz4gfCBhdHRyKFgpIHwgb3Blbi1xdW90ZSB8IGNsb3Nl
LXF1b3RlIHwgbm8tb3Blbi1xdW90ZSB8IG5vLWNsb3NlLXF1b3RlIF0rIHwgaW5oZXJpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCmluZGV4IDZjY2ZiZTIuLjk5YjljNDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmgKQEAgLTc5LDYgKzc5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29s
IHBhcnNlU2hvcnRoYW5kKGludCBwcm9wSWQsIGNvbnN0IGludCogcHJvcGVydGllcywgaW50IG51
bVByb3BlcnRpZXMsIGJvb2wgaW1wb3J0YW50KTsKICAgICAgICAgYm9vbCBwYXJzZTRWYWx1ZXMo
aW50IHByb3BJZCwgY29uc3QgaW50KiBwcm9wZXJ0aWVzLCBib29sIGltcG9ydGFudCk7CiAgICAg
ICAgIGJvb2wgcGFyc2VDb250ZW50KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKKyAgICAg
ICAgYm9vbCBwYXJzZVF1b3RlcyhpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CiAKICAgICAg
ICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBdHRyKENTU1BhcnNlclZhbHVlTGlzdCogYXJn
cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAzYTY1ODYw
Li40YjA5NWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC03
MCw2ICs3MCw3IEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFpci5oIgog
I2luY2x1ZGUgIlBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiUXVv
dGVzRGF0YS5oIgogI2luY2x1ZGUgIlJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXIu
aCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXJUaGVtZS5oIgpAQCAtNDY2MCwzNiArNDY2MSw1
OSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1
ZSAqdmFsdWUpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBj
b250ZW50VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwogICAg
ICAgICAgICAgc3dpdGNoIChjb250ZW50VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSkgewotICAgICAg
ICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkc6Ci0gICAgICAgICAg
ICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY29udGVudFZhbHVlLT5nZXRTdHJpbmdWYWx1
ZSgpLmltcGwoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19TVFJJTkc6CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChjb250ZW50
VmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkuaW1wbCgpLCBkaWRTZXQpOworICAgICAgICAgICAgICAg
IGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQVRUUjogeworICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBDYW4gYSBuYW1lc3BhY2UgYmUgc3BlY2lmaWVkIGZvciBhbiBhdHRyKGZvbyk/CisgICAgICAg
ICAgICAgICAgaWYgKG1fc3R5bGUtPnN0eWxlVHlwZSgpID09IE5PUFNFVURPKQorICAgICAgICAg
ICAgICAgICAgICBtX3N0eWxlLT5zZXRVbmlxdWUoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIG1fcGFyZW50U3R5bGUtPnNldFVuaXF1ZSgpOworICAgICAgICAg
ICAgICAgIFF1YWxpZmllZE5hbWUgYXR0cihudWxsQXRvbSwgY29udGVudFZhbHVlLT5nZXRTdHJp
bmdWYWx1ZSgpLmltcGwoKSwgbnVsbEF0b20pOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNl
dENvbnRlbnQobV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUoYXR0cikuaW1wbCgpLCBkaWRTZXQpOwor
ICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAgICAgLy8gcmVnaXN0
ZXIgdGhlIGZhY3QgdGhhdCB0aGUgYXR0cmlidXRlIHZhbHVlIGFmZmVjdHMgdGhlIHN0eWxlCisg
ICAgICAgICAgICAgICAgbV9zZWxlY3RvckF0dHJzLmFkZChhdHRyLmxvY2FsTmFtZSgpLmltcGwo
KSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBj
YXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJOiB7CisgICAgICAgICAgICAgICAgaWYgKCFj
b250ZW50VmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNhY2hlZE9yUGVuZGluZ0Zyb21W
YWx1ZShDU1NQcm9wZXJ0eUNvbnRlbnQsIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihjb250
ZW50VmFsdWUpKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX0NPVU5URVI6IHsKKyAgICAgICAgICAgICAgICBDb3VudGVyKiBj
b3VudGVyVmFsdWUgPSBjb250ZW50VmFsdWUtPmdldENvdW50ZXJWYWx1ZSgpOworICAgICAgICAg
ICAgICAgIE93blB0cjxDb3VudGVyQ29udGVudD4gY291bnRlciA9IGFkb3B0UHRyKG5ldyBDb3Vu
dGVyQ29udGVudChjb3VudGVyVmFsdWUtPmlkZW50aWZpZXIoKSwKKyAgICAgICAgICAgICAgICAg
ICAgKEVMaXN0U3R5bGVUeXBlKWNvdW50ZXJWYWx1ZS0+bGlzdFN0eWxlTnVtYmVyKCksIGNvdW50
ZXJWYWx1ZS0+c2VwYXJhdG9yKCkpKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250
ZW50KGNvdW50ZXIucmVsZWFzZSgpLCBkaWRTZXQpOworICAgICAgICAgICAgICAgIGRpZFNldCA9
IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQ6CisgICAgICAgICAgICAgICAgc3dp
dGNoIChjb250ZW50VmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENT
U1ZhbHVlT3BlblF1b3RlOgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50
KE9QRU5fUVVPVEUsIGRpZFNldCk7CiAgICAgICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19BVFRSOiB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBD
YW4gYSBuYW1lc3BhY2UgYmUgc3BlY2lmaWVkIGZvciBhbiBhdHRyKGZvbyk/Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChtX3N0eWxlLT5zdHlsZVR5cGUoKSA9PSBOT1BTRVVETykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFVuaXF1ZSgpOwotICAgICAgICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3BhcmVudFN0eWxlLT5zZXRVbmlxdWUo
KTsKLSAgICAgICAgICAgICAgICAgICAgUXVhbGlmaWVkTmFtZSBhdHRyKG51bGxBdG9tLCBjb250
ZW50VmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkuaW1wbCgpLCBudWxsQXRvbSk7Ci0gICAgICAgICAg
ICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQobV9lbGVtZW50LT5nZXRBdHRyaWJ1dGUoYXR0
cikuaW1wbCgpLCBkaWRTZXQpOworICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVDbG9zZVF1
b3RlOgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KENMT1NFX1FVT1RF
LCBkaWRTZXQpOwogICAgICAgICAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwotICAgICAgICAg
ICAgICAgICAgICAvLyByZWdpc3RlciB0aGUgZmFjdCB0aGF0IHRoZSBhdHRyaWJ1dGUgdmFsdWUg
YWZmZWN0cyB0aGUgc3R5bGUKLSAgICAgICAgICAgICAgICAgICAgbV9zZWxlY3RvckF0dHJzLmFk
ZChhdHRyLmxvY2FsTmFtZSgpLmltcGwoKSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfVVJJOiB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghY29udGVudFZhbHVlLT5pc0lt
YWdlVmFsdWUoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNhY2hlZE9yUGVuZGluZ0Zyb21WYWx1ZShDU1NQ
cm9wZXJ0eUNvbnRlbnQsIHN0YXRpY19jYXN0PENTU0ltYWdlVmFsdWUqPihjb250ZW50VmFsdWUp
KSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlTm9PcGVuUXVvdGU6Cisg
ICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoTk9fT1BFTl9RVU9URSwgZGlk
U2V0KTsKICAgICAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNhc2UgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19DT1VOVEVSOiB7Ci0gICAgICAgICAgICAgICAgICAgIENvdW50
ZXIqIGNvdW50ZXJWYWx1ZSA9IGNvbnRlbnRWYWx1ZS0+Z2V0Q291bnRlclZhbHVlKCk7Ci0gICAg
ICAgICAgICAgICAgICAgIE93blB0cjxDb3VudGVyQ29udGVudD4gY291bnRlciA9IGFkb3B0UHRy
KG5ldyBDb3VudGVyQ29udGVudChjb3VudGVyVmFsdWUtPmlkZW50aWZpZXIoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIChFTGlzdFN0eWxlVHlwZSljb3VudGVyVmFsdWUtPmxpc3RTdHlsZU51
bWJlcigpLCBjb3VudGVyVmFsdWUtPnNlcGFyYXRvcigpKSk7Ci0gICAgICAgICAgICAgICAgICAg
IG1fc3R5bGUtPnNldENvbnRlbnQoY291bnRlci5yZWxlYXNlKCksIGRpZFNldCk7CisgICAgICAg
ICAgICAgICAgY2FzZSBDU1NWYWx1ZU5vQ2xvc2VRdW90ZToKKyAgICAgICAgICAgICAgICAgICAg
bV9zdHlsZS0+c2V0Q29udGVudChOT19DTE9TRV9RVU9URSwgZGlkU2V0KTsKICAgICAgICAgICAg
ICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsIGFuZCBu
b25lIGRvIG5vdCBoYXZlIGFueSBlZmZlY3QuCisgICAgICAgICAgICAgICAgICAgIHt9CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC00Njk3LDYgKzQ3MjEs
MzMgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludCBpZCwgQ1NTVmFs
dWUgKnZhbHVlKQogICAgICAgICAgICAgbV9zdHlsZS0+Y2xlYXJDb250ZW50KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CisgICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3RlczoKKyAgICAgICAgaWYg
KGlzSW5oZXJpdCkgeworICAgICAgICAgICAgaWYgKG1fcGFyZW50U3R5bGUpCisgICAgICAgICAg
ICAgICAgbV9zdHlsZS0+c2V0UXVvdGVzKG1fcGFyZW50U3R5bGUtPnF1b3RlcygpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0
KCkpIHsKKyAgICAgICAgICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0PENTU1Zh
bHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgICAgIHNpemVfdCBsZW5ndGggPSBsaXN0LT5sZW5n
dGgoKTsKKyAgICAgICAgICAgIFF1b3Rlc0RhdGEqIGRhdGEgPSBRdW90ZXNEYXRhOjpjcmVhdGUo
bGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICghZGF0YSkKKyAgICAgICAgICAgICAgICByZXR1cm47
IC8vIE91dCBvZiBtZW1vcnkKKyAgICAgICAgICAgIFN0cmluZyogcXVvdGVzID0gZGF0YS0+ZGF0
YSgpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewor
ICAgICAgICAgICAgICAgIENTU1ZhbHVlKiBpdGVtID0gbGlzdC0+aXRlbVdpdGhvdXRCb3VuZHND
aGVjayhpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgp
KTsKKyAgICAgICAgICAgICAgICBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4oaXRlbSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKHByaW1pdGl2ZVZhbHVl
LT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpOworICAg
ICAgICAgICAgICAgIHF1b3Rlc1tpXSA9IHByaW1pdGl2ZVZhbHVlLT5nZXRTdHJpbmdWYWx1ZSgp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9zdHlsZS0+c2V0UXVvdGVzKGFkb3B0UmVm
KGRhdGEpKTsKKyAgICAgICAgfSBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZSkgeworICAgICAgICAg
ICAgQVNTRVJUKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19JREVOVCk7CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFF1b3Rl
cyhhZG9wdFJlZihRdW90ZXNEYXRhOjpjcmVhdGUoMCkpKTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm47CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Q291bnRlckluY3JlbWVudDoKICAgICAgICAg
YXBwbHlDb3VudGVyTGlzdChzdHlsZSgpLCB2YWx1ZS0+aXNWYWx1ZUxpc3QoKSA/IHN0YXRpY19j
YXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSA6IDAsIGZhbHNlKTsKQEAgLTU5MzgsNyArNTk4OSw2
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVl
ICp2YWx1ZSkKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3RyZXRjaDoKICAgICBjYXNlIENT
U1Byb3BlcnR5UGFnZToKLSAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlUZXh0TGluZVRocm91Z2g6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRMaW5lVGhy
b3VnaENvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGluZVRocm91Z2hNb2RlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzIGIvU291cmNlL1dlYkNvcmUvY3Nz
L2h0bWwuY3NzCmluZGV4IDBmMTNmY2IuLjk1NGY1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9odG1sLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvaHRtbC5jc3MKQEAgLTEx
MywxMyArMTEzLDExIEBAIHEgewogfQogCiBxOmJlZm9yZSB7Ci0gICAgY29udGVudDogJyInCi0g
ICAgLyogRklYTUU6IGNvbnRlbnQ6IG9wZW4tcXVvdGU7ICovCisgICAgY29udGVudDogb3Blbi1x
dW90ZTsKIH0KIAogcTphZnRlciB7Ci0gICAgY29udGVudDogJyInCi0gICAgLyogRklYTUU6IGNv
bnRlbnQ6IGNsb3NlLXF1b3RlOyAqLworICAgIGNvbnRlbnQ6IGNsb3NlLXF1b3RlOwogfQogCiBj
ZW50ZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcAppbmRleCA0NWI4NWRkLi5iMDEwNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtMTc3LDcgKzE3Nyw3
IEBAIHN0YXRpYyBpbmxpbmUgSW5saW5lQm94KiBjcmVhdGVJbmxpbmVCb3hGb3JSZW5kZXJlcihS
ZW5kZXJPYmplY3QqIG9iaiwgYm9vbCBpc1JvCiBzdGF0aWMgaW5saW5lIHZvaWQgZGlydHlMaW5l
Qm94ZXNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqIG8sIGJvb2wgZnVsbExheW91dCkKIHsKICAg
ICBpZiAoby0+aXNUZXh0KCkpIHsKLSAgICAgICAgaWYgKG8tPnByZWZlcnJlZExvZ2ljYWxXaWR0
aHNEaXJ0eSgpICYmIG8tPmlzQ291bnRlcigpKQorICAgICAgICBpZiAoby0+cHJlZmVycmVkTG9n
aWNhbFdpZHRoc0RpcnR5KCkgJiYgKG8tPmlzQ291bnRlcigpIHx8IG8tPmlzUXVvdGUoKSkpCiAg
ICAgICAgICAgICB0b1JlbmRlclRleHQobyktPmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhz
KDApOyAvLyBGSVhNRTogQ291bnRlcnMgZGVwZW5kIG9uIHRoaXMgaGFjay4gTm8gY2x1ZSB3aHku
IFNob3VsZCBiZSBpbnZlc3RpZ2F0ZWQgYW5kIHJlbW92ZWQuCiAgICAgICAgIHRvUmVuZGVyVGV4
dChvKS0+ZGlydHlMaW5lQm94ZXMoZnVsbExheW91dCk7CiAgICAgfSBlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNDNlNmJlYS4uYTVmMmM0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMjUyLDYgKzI1Miw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNCbG9ja0Zsb3coKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0JveE1vZGVsT2JqZWN0KCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzRGV0YWlscygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzRGV0YWlsc01hcmtlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdENo
aWxkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRM
aXN0LmNwcAppbmRleCA2YTc3M2RjLi40ZGY3MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKKyNpbmNsdWRlICJSZW5kZXJRdW90ZS5oIgogI2luY2x1
ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dEZyYWdtZW50LmgiCiAjaW5j
bHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMTMwLDYgKzEzMSw3IEBAIFJlbmRlck9iamVjdCogUmVu
ZGVyT2JqZWN0Q2hpbGRMaXN0OjpyZW1vdmVDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwg
UmVuZGVyCiAKICAgICBpZiAob2xkQ2hpbGQtPm1faGFzQ291bnRlck5vZGVNYXApCiAgICAgICAg
IFJlbmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9kZXMob2xkQ2hpbGQpOworICAgIFJlbmRl
clF1b3RlOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJlZShvbGRDaGlsZCk7CiAKICAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKICAgICAgICAgb3duZXItPmRvY3Vt
ZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+Y2hpbGRyZW5DaGFuZ2VkKG93bmVyKTsKQEAgLTE3Nyw4
ICsxNzksOCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlzdDo6YXBwZW5kQ2hpbGROb2RlKFJl
bmRlck9iamVjdCogb3duZXIsIFJlbmRlck9iamVjdCogbgogICAgICAgICBpZiAoIW5ld0NoaWxk
LT5pc0Zsb2F0aW5nT3JQb3NpdGlvbmVkKCkgJiYgb3duZXItPmNoaWxkcmVuSW5saW5lKCkpCiAg
ICAgICAgICAgICBvd25lci0+ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQobmV3Q2hpbGQpOwog
ICAgIH0KLQogICAgIFJlbmRlckNvdW50ZXI6OnJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKG5ld0No
aWxkKTsKKyAgICBSZW5kZXJRdW90ZTo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQobmV3Q2hpbGQp
OwogICAgIG5ld0NoaWxkLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsgLy8g
R29lcyB1cCB0aGUgY29udGFpbmluZyBibG9jayBoaWVyYXJjaHkuCiAgICAgaWYgKCFvd25lci0+
bm9ybWFsQ2hpbGROZWVkc0xheW91dCgpKQogICAgICAgICBvd25lci0+c2V0Q2hpbGROZWVkc0xh
eW91dCh0cnVlKTsgLy8gV2UgbWF5IHN1cHBseSB0aGUgc3RhdGljIHBvc2l0aW9uIGZvciBhbiBh
YnNvbHV0ZSBwb3NpdGlvbmVkIGNoaWxkLgpAQCAtMjM5LDYgKzI0MSw3IEBAIHZvaWQgUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBvd25lciwgUmVu
ZGVyT2JqZWN0KiBjCiAgICAgfQogCiAgICAgUmVuZGVyQ291bnRlcjo6cmVuZGVyZXJTdWJ0cmVl
QXR0YWNoZWQoY2hpbGQpOworICAgIFJlbmRlclF1b3RlOjpyZW5kZXJlclN1YnRyZWVBdHRhY2hl
ZChjaGlsZCk7CiAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygp
OwogICAgIGlmICghb3duZXItPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSkKICAgICAgICAgb3du
ZXItPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSk7IC8vIFdlIG1heSBzdXBwbHkgdGhlIHN0YXRp
YyBwb3NpdGlvbiBmb3IgYW4gYWJzb2x1dGUgcG9zaXRpb25lZCBjaGlsZC4KQEAgLTQ2MCwxMCAr
NDYzLDE0IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRlckNv
bnRlbnQoUmVuZGVyT2JqZWN0KiBvd25lciwgUHNldWRvCiAgICAgICAgICAgICAgICAgcmVuZGVy
ZXIgPSBpbWFnZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgotICAgICAgICAgICAgICAgIHJlbmRlcmVyID0g
bmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihvd25lci0+ZG9jdW1lbnQo
KSwgKmNvbnRlbnQtPmNvdW50ZXIoKSk7Ci0gICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0
eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQ09OVEVOVF9DT1VOVEVSOgorICAgICAgICAgICAgcmVuZGVyZXIgPSBuZXcgKG93bmVy
LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJDb3VudGVyKG93bmVyLT5kb2N1bWVudCgpLCAqY29udGVu
dC0+Y291bnRlcigpKTsKKyAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZShwc2V1ZG9FbGVt
ZW50U3R5bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ09OVEVOVF9RVU9U
RToKKyAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVu
ZGVyUXVvdGUob3duZXItPmRvY3VtZW50KCksIGNvbnRlbnQtPnF1b3RlKCkpOworICAgICAgICAg
ICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW5kZXJlcikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uY2E5YTRlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJRdW90ZS5jcHAKQEAgLTAsMCArMSwzMzAgQEAKKy8qKgorICogQ29weXJpZ2h0IChD
KSAyMDExIE5va2lhIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyUXVvdGUuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVk
ZSAiUXVvdGVzRGF0YS5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSA8YWxn
b3JpdGhtPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCisjZGVmaW5lIFVO
S05PV05fREVQVEggLTEKKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RhdGljIGlubGluZSB2b2lk
IGFkanVzdERlcHRoKGludCAmZGVwdGgsIFF1b3RlVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAo
dHlwZSkgeworICAgIGNhc2UgT1BFTl9RVU9URToKKyAgICBjYXNlIE5PX09QRU5fUVVPVEU6Cisg
ICAgICAgICsrZGVwdGg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ0xPU0VfUVVPVEU6Cisg
ICAgY2FzZSBOT19DTE9TRV9RVU9URToKKyAgICAgICAgaWYgKGRlcHRoKQorICAgICAgICAgICAg
LS1kZXB0aDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgfQorfQorCitSZW5kZXJRdW90ZTo6UmVuZGVyUXVvdGUoRG9jdW1l
bnQqIG5vZGUsIFF1b3RlVHlwZSBxdW90ZSkKKyAgICA6IFJlbmRlclRleHQobm9kZSwgU3RyaW5n
SW1wbDo6ZW1wdHkoKSkKKyAgICAsIG1fdHlwZShxdW90ZSkKKyAgICAsIG1fZGVwdGgoVU5LTk9X
Tl9ERVBUSCkKKyAgICAsIG1fbmV4dCgwKQorICAgICwgbV9wcmV2aW91cygwKQoreworfQorCitS
ZW5kZXJRdW90ZTo6flJlbmRlclF1b3RlKCkKK3sKK30KKworY29uc3QgY2hhciogUmVuZGVyUXVv
dGU6OnJlbmRlck5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiUmVuZGVyUXVvdGUiOworfQor
CisvLyBUaGlzIGZ1bmN0aW9uIHBsYWNlcyBhIGxpc3Qgb2YgcXVvdGUgcmVuZGVyZXJzIHN0YXJ0
aW5nIGF0ICJ0aGlzIiBpbiB0aGUgbGlzdCBvZiBxdW90ZSByZW5kZXJlcnMgYWxyZWFkeQorLy8g
aW4gdGhlIGRvY3VtZW50J3MgcmVuZGVyZXIgdHJlZS4KKy8vIFRoZSBhc3N1bXB0aW9ucyBhcmUg
bWFkZSAoZm9yIHBlcmZvcm1hbmNlKToKKy8vIDEuIFRoZSBsaXN0IG9mIHF1b3RlcyBhbHJlYWR5
IGluIHRoZSByZW5kZXJlcnMgdHJlZSBvZiB0aGUgZG9jdW1lbnQgaXMgYWxyZWFkeSBpbiBhIGNv
bnNpc3RlbnQgc3RhdGUKKy8vIChBbGwgcXVvdGUgcmVuZGVyZXJzIGFyZSBsaW5rZWQgYW5kIGhh
dmUgdGhlIGNvcnJlY3QgZGVwdGggc2V0KQorLy8gMi4gVGhlIHF1b3RlIHJlbmRlcmVycyBvZiB0
aGUgaW5zZXJ0ZWQgbGlzdCBhcmUgaW4gYSB0cmVlIG9mIHJlbmRlcmVycyBvZiB0aGVpciBvd24g
d2hpY2ggaGFzIGJlZW4ganVzdAorLy8gaW5zZXJ0ZWQgaW4gdGhlIG1haW4gcmVuZGVyZXIgdHJl
ZSB3aXRoIGl0cyByb290IGFzIGNoaWxkIG9mIHNvbWUgcmVuZGVyZXIuCisvLyAzLiBUaGUgcXVv
dGUgcmVuZGVyZXJzIGluIHRoZSBpbnNlcnRlZCBsaXN0IGhhdmUgZGVwdGhzIGNvbnNpc3RlbnQg
d2l0aCB0aGVpciBwb3NpdGlvbiBpbiB0aGUgbGlzdCByZWxhdGl2ZQorLy8gdG8gInRoaXMiLCB0
aHVzIGlmICJ0aGlzIiBkb2VzIG5vdCBuZWVkIHRvIGNoYW5nZSBpdHMgZGVwdGggdXBvbiBpbnNl
cnRpb24sIHRoZSBvdGhlciByZW5kZXJlcnMgaW4gdGhlIGxpc3QgZG9uJ3QKKy8vIG5lZWQgdG8g
ZWl0aGVyLgordm9pZCBSZW5kZXJRdW90ZTo6cGxhY2VRdW90ZSgpCit7CisgICAgUmVuZGVyUXVv
dGUqIGhlYWQgPSB0aGlzOworICAgIEFTU0VSVCghaGVhZC0+bV9wcmV2aW91cyk7CisgICAgUmVu
ZGVyUXVvdGUqIHRhaWwgPSAwOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBwcmVkZWNlc3NvciA9
IGhlYWQtPnByZXZpb3VzSW5QcmVPcmRlcigpOyBwcmVkZWNlc3NvcjsgcHJlZGVjZXNzb3IgPSBw
cmVkZWNlc3Nvci0+cHJldmlvdXNJblByZU9yZGVyKCkpIHsKKyAgICAgICAgaWYgKCFwcmVkZWNl
c3Nvci0+aXNRdW90ZSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGhlYWQtPm1f
cHJldmlvdXMgPSB0b1JlbmRlclF1b3RlKHByZWRlY2Vzc29yKTsKKyAgICAgICAgaWYgKGhlYWQt
Pm1fcHJldmlvdXMtPm1fbmV4dCkgeworICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBzcGxpY2Ug
dGhlIGxpc3Qgb2YgcXVvdGVzIGhlYWRlZCBieSBoZWFkIGludG8gdGhlIGRvY3VtZW50J3MgbGlz
dCBvZiBxdW90ZXMuCisgICAgICAgICAgICB0YWlsID0gaGVhZDsKKyAgICAgICAgICAgIHdoaWxl
ICh0YWlsLT5tX25leHQpCisgICAgICAgICAgICAgICAgIHRhaWwgPSB0YWlsLT5tX25leHQ7Cisg
ICAgICAgICAgICB0YWlsLT5tX25leHQgPSBoZWFkLT5tX3ByZXZpb3VzLT5tX25leHQ7CisgICAg
ICAgICAgICBBU1NFUlQodGFpbC0+bV9uZXh0LT5tX3ByZXZpb3VzID09IGhlYWQtPm1fcHJldmlv
dXMpOworICAgICAgICAgICAgdGFpbC0+bV9uZXh0LT5tX3ByZXZpb3VzID0gIHRhaWw7CisgICAg
ICAgICAgICB0YWlsID0gdGFpbC0+bV9uZXh0OyAvLyBUaGlzIG1hcmtzIHRoZSBzcGxpY2luZyBw
b2ludCBoZXJlIHRoZXJlIG1heSBiZSBhIGRlcHRoIGRpc2NvbnRpbnVpdHkKKyAgICAgICAgfQor
ICAgICAgICBoZWFkLT5tX3ByZXZpb3VzLT5tX25leHQgPSBoZWFkOworICAgICAgICBBU1NFUlQo
aGVhZC0+bV9wcmV2aW91cy0+bV9kZXB0aCAhPSBVTktOT1dOX0RFUFRIKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGludCBuZXdEZXB0aDsKKyAgICBpZiAoIWhlYWQtPm1fcHJldmlvdXMp
IHsKKyAgICAgICAgbmV3RGVwdGggPSAwOworICAgICAgICBnb3RvIHNraXBOZXdEZXB0aENhbGM7
CisgICAgfQorICAgIG5ld0RlcHRoID0gaGVhZC0+bV9wcmV2aW91cy0+bV9kZXB0aDsKKyAgICBk
byB7CisgICAgICAgIGFkanVzdERlcHRoKG5ld0RlcHRoLCBoZWFkLT5tX3ByZXZpb3VzLT5tX3R5
cGUpOworc2tpcE5ld0RlcHRoQ2FsYzoKKyAgICAgICAgaWYgKGhlYWQtPm1fZGVwdGggPT0gbmV3
RGVwdGgpIHsgLy8gQWxsIHJlbWFpbmluZyBkZXB0aCBzaG91bGQgYmUgY29ycmVjdCBleGNlcHQg
aWYgc3BsaWNpbmcgd2FzIGRvbmUuCisgICAgICAgICAgICBpZiAoIXRhaWwpIC8vIFdlJ3ZlIGRv
bmUgdGhlIHBvc3Qgc3BsaWNpbmcgc2VjdGlvbiBhbHJlYWR5IG9yIHRoZXJlIHdhcyBubyBzcGxp
Y2luZy4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGhlYWQgPSB0YWlsOyAv
LyBDb250aW51ZSBhZnRlciB0aGUgc3BsaWNpbmcgcG9pbnQKKyAgICAgICAgICAgIHRhaWwgPSAw
OyAvLyBNYXJrIHRoZSBwb3NzaWJsZSBzcGxpY2luZyBwb2ludCBkaXNjb250aW51aXR5IGZpeGVk
LgorICAgICAgICAgICAgbmV3RGVwdGggPSBoZWFkLT5tX3ByZXZpb3VzLT5tX2RlcHRoOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaGVhZC0+bV9kZXB0aCA9IG5l
d0RlcHRoOworICAgICAgICAvLyBGSVhNRTogSWYgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhl
IHF1b3RhdGlvbiBjaGFyYWN0ZXJzIGRvZXMgbm90IGNoYW5nZSB3ZSBtYXkgb25seSBuZWVkIHRv
CisgICAgICAgIC8vIEludmFsaWRhdGUgdGhlIHJlbmRlcmVyJ3MgYXJlYSBub3QgYSByZWxheW91
dC4KKyAgICAgICAgaGVhZC0+c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7Cisg
ICAgICAgIGhlYWQgPSBoZWFkLT5tX25leHQ7CisgICAgICAgIGlmIChoZWFkID09IHRhaWwpIC8v
IFdlIGFyZSBhdCB0aGUgc3BsaWNpbmcgcG9pbnQKKyAgICAgICAgICAgIHRhaWwgPSAwOyAvLyBN
YXJrIHRoZSBwb3NzaWJsZSBkZXB0aCBkaXNjb250aW51aXR5IGZpeGVkLgorICAgIH0gd2hpbGUg
KGhlYWQpOworfQorCisjZGVmaW5lIEFSUkFZX1NJWkUoQ2FycmF5KSAoc2l6ZW9mKENhcnJheSkg
LyBzaXplb2YoKkNhcnJheSkpCisjZGVmaW5lIExBTkdVQUdFX0RBVEEobmFtZSwgbGFuZ3VhZ2VT
b3VyY2VBcnJheSkgeyBuYW1lLCBsYW5ndWFnZVNvdXJjZUFycmF5LCBBUlJBWV9TSVpFKGxhbmd1
YWdlU291cmNlQXJyYXkpIH0KKyNkZWZpbmUgVSh4KSAoKGNvbnN0IFVDaGFyKilMIyN4KQorCitz
dGF0aWMgY29uc3QgVUNoYXIqIHNpbXBsZVF1b3Rlc1tdID0ge1UoIlwiIiksIFUoIlwiIiksIFUo
IiciKSwgVSgiJyIpfTsKKworc3RhdGljIGNvbnN0IFVDaGFyKiBlbmdsaXNoUXVvdGVzW10gPSB7
VSgiXHgyMDFDIiksIFUoIlx4MjAxRCIpLCBVKCJceDIwMTgiKSwgVSgiXHgyMDE5Iil9Oworc3Rh
dGljIGNvbnN0IFVDaGFyKiBub3J3ZWdpYW5RdW90ZXNbXSA9IHsgVSgiXHgwMEFCIiksIFUoIlx4
MDBCQiIpLCBVKCJceDIwMzkiKSwgVSgiXHgyMDNBIikgfTsKK3N0YXRpYyBjb25zdCBVQ2hhciog
cm9tYW5pYW5RdW90ZXNbXSA9IHsgVSgiXHgyMDFFIiksIFUoIlx4MjAxRCIpfTsKK3N0YXRpYyBj
b25zdCBVQ2hhciogcnVzc2lhblF1b3Rlc1tdID0geyBVKCJceDAwQUIiKSwgVSgiXHgwMEJCIiks
IFUoIlx4MjAxRSIpLCBVKCJceDIwMUMiKSB9OworI3VuZGVmIFUKKworc3RydWN0IExhbmd1YWdl
RGF0YSB7CisgICAgY29uc3QgY2hhciAqbmFtZTsKKyAgICBjb25zdCBVQ2hhciogY29uc3QqIGNv
bnN0IGFycmF5OworICAgIGNvbnN0IGludCBhcnJheVNpemU7CisgICAgYm9vbCBvcGVyYXRvcjwo
Y29uc3QgTGFuZ3VhZ2VEYXRhJiBjb21wYXJlVG8pIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gc3RyY21wKG5hbWUsIGNvbXBhcmVUby5uYW1lKTsKKyAgICB9Cit9OworCisvLyBEYXRhIG1h
c3QgYmUgYWxwaGFiZXRpY2FsbHkgc29ydGVkIGFuZCBpbiBhbGwgbG93ZXIgY2FzZSBmb3IgZmFz
dCBjb21wYXJpc29uCitMYW5ndWFnZURhdGEgbGFuZ3VhZ2VEYXRhW10gPSB7CisgICAgTEFOR1VB
R0VfREFUQSgiZW4iLCBlbmdsaXNoUXVvdGVzKSwKKyAgICBMQU5HVUFHRV9EQVRBKCJubyIsIG5v
cndlZ2lhblF1b3RlcyksCisgICAgTEFOR1VBR0VfREFUQSgicm8iLCByb21hbmlhblF1b3Rlcyks
CisgICAgTEFOR1VBR0VfREFUQSgicnUiLCBydXNzaWFuUXVvdGVzKQorfTsKKyN1bmRlZiBMQU5H
VUFHRV9EQVRBCitjb25zdCBMYW5ndWFnZURhdGEqIGNvbnN0IGxhbmd1YWdlRGF0YUVuZCA9IGxh
bmd1YWdlRGF0YSArIEFSUkFZX1NJWkUobGFuZ3VhZ2VEYXRhKTsKKworI2RlZmluZSBkZWZhdWx0
TGFuZ3VhZ2VRdW90ZXNTb3VyY2Ugc2ltcGxlUXVvdGVzCisjZGVmaW5lIGRlZmF1bHRMYW5ndWFn
ZVF1b3Rlc0NvdW50IEFSUkFZX1NJWkUoZGVmYXVsdExhbmd1YWdlUXVvdGVzU291cmNlKQorCitz
dGF0aWMgUXVvdGVzRGF0YSogZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUgPSAwOworc3RhdGlj
IGNvbnN0IFF1b3Rlc0RhdGEqIGRlZmF1bHRMYW5ndWFnZVF1b3RlcygpCit7CisgICAgaWYgKCFk
ZWZhdWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZSkgeworICAgICAgICBkZWZhdWx0TGFuZ3VhZ2VRdW90
ZXNWYWx1ZSA9IFF1b3Rlc0RhdGE6OmNyZWF0ZShkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNDb3VudCk7
CisgICAgICAgIGlmICghZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFsdWUpCisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgU3RyaW5nKiBkYXRhID0gZGVmYXVsdExhbmd1YWdlUXVvdGVzVmFs
dWUtPmRhdGEoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkZWZhdWx0TGFuZ3Vh
Z2VRdW90ZXNDb3VudDsgKytpKQorICAgICAgICAgICAgZGF0YVtpXSA9IGRlZmF1bHRMYW5ndWFn
ZVF1b3Rlc1NvdXJjZVtpXTsKKyAgICB9CisgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZVF1b3Rl
c1ZhbHVlOworfQorI3VuZGVmIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1NvdXJjZQorI3VuZGVmIGRl
ZmF1bHRMYW5ndWFnZVF1b3Rlc0NvdW50CisKK3R5cGVkZWYgSGFzaE1hcDxSZWZQdHI8QXRvbWlj
U3RyaW5nSW1wbD4sIFF1b3Rlc0RhdGEqID4gUXVvdGVzTWFwOworCitzdGF0aWMgUXVvdGVzTWFw
JiBxdW90ZXNNYXAoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUXVvdGVzTWFwLCBzdGF0
aWNRdW90ZXNNYXAsICgpKTsKKyAgICByZXR1cm4gc3RhdGljUXVvdGVzTWFwOworfQorCitzdGF0
aWMgY29uc3QgUXVvdGVzRGF0YSogcXVvdGVzRm9yTGFuZ3VhZ2UoQXRvbWljU3RyaW5nSW1wbCog
bGFuZ3VhZ2UpCit7CisgICAgUXVvdGVzRGF0YSogcmV0dXJuVmFsdWU7CisgICAgQXRvbWljU3Ry
aW5nIGxvd2VyKGxhbmd1YWdlLT5sb3dlcigpKTsKKyAgICByZXR1cm5WYWx1ZSA9IHF1b3Rlc01h
cCgpLmdldChsb3dlci5pbXBsKCkpOworICAgIGlmIChyZXR1cm5WYWx1ZSkKKyAgICAgICAgcmV0
dXJuIHJldHVyblZhbHVlOworICAgIENTdHJpbmcgcyhzdGF0aWNfY2FzdDxjb25zdCBTdHJpbmcm
Pihsb3dlcikuYXNjaWkoKSk7CisgICAgTGFuZ3VhZ2VEYXRhIHJlcXVlc3QgPSB7IHMuYnVmZmVy
KCktPmRhdGEoKSwgMCwgMCB9OworICAgIGNvbnN0IExhbmd1YWdlRGF0YSogbG93ZXJCb3VuZCA9
IHN0ZDo6bG93ZXJfYm91bmQ8Y29uc3QgTGFuZ3VhZ2VEYXRhKiwgY29uc3QgTGFuZ3VhZ2VEYXRh
PihsYW5ndWFnZURhdGEsIGxhbmd1YWdlRGF0YUVuZCwgcmVxdWVzdCk7CisgICAgaWYgKGxvd2Vy
Qm91bmQgPT0gbGFuZ3VhZ2VEYXRhRW5kKQorICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdl
UXVvdGVzKCk7CisgICAgaWYgKHN0cm5jbXAobG93ZXJCb3VuZC0+bmFtZSwgcmVxdWVzdC5uYW1l
LCBzdHJsZW4obG93ZXJCb3VuZC0+bmFtZSkpKQorICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1
YWdlUXVvdGVzKCk7CisgICAgcmV0dXJuVmFsdWUgPSBRdW90ZXNEYXRhOjpjcmVhdGUobG93ZXJC
b3VuZC0+YXJyYXlTaXplKTsKKyAgICBpZiAoIXJldHVyblZhbHVlKQorICAgICAgICByZXR1cm4g
ZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAgU3RyaW5nKiBkYXRhID0gcmV0dXJuVmFsdWUt
PmRhdGEoKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvd2VyQm91bmQtPmFycmF5U2l6ZTsg
KytpKQorICAgICAgICBkYXRhW2ldID0gbG93ZXJCb3VuZC0+YXJyYXlbaV07CisgICAgcXVvdGVz
TWFwKCkuc2V0KGxvd2VyLmltcGwoKSwgcmV0dXJuVmFsdWUpOworICAgIHJldHVybiByZXR1cm5W
YWx1ZTsKK30KKyN1bmRlZiBBUlJBWV9TSVpFCisKK3N0YXRpYyBjb25zdCBRdW90ZXNEYXRhKiBk
ZWZhdWx0UXVvdGVzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIHN0YXRpYyBT
dHJpbmcgbGFuZ1N0cmluZyA9ICJsYW5nIjsKKyAgICBOb2RlKiBub2RlID0gIG9iamVjdC0+Z2Vu
ZXJhdGluZ05vZGUoKTsKKyAgICBFbGVtZW50KiBlbGVtZW50OworICAgIGlmICghbm9kZSkgewor
ICAgICAgICBlbGVtZW50ID0gb2JqZWN0LT5kb2N1bWVudCgpLT5ib2R5KCk7CisgICAgICAgIGlm
ICghZWxlbWVudCkKKyAgICAgICAgICAgIGVsZW1lbnQgPSBvYmplY3QtPmRvY3VtZW50KCktPmRv
Y3VtZW50RWxlbWVudCgpOworICAgIH0gZWxzZSBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkg
eworICAgICAgICBlbGVtZW50ID0gbm9kZS0+cGFyZW50RWxlbWVudCgpOworICAgICAgICBpZiAo
IWVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7Cisg
ICAgfSBlbHNlCisgICAgICBlbGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOworICAgIGNvbnN0IEF0
b21pY1N0cmluZyogbGFuZ3VhZ2U7CisgICAgd2hpbGUgKChsYW5ndWFnZSA9ICZlbGVtZW50LT5n
ZXRBdHRyaWJ1dGUobGFuZ1N0cmluZykpICYmIGxhbmd1YWdlLT5pc051bGwoKSkgeworICAgICAg
ICBlbGVtZW50ID0gZWxlbWVudC0+cGFyZW50RWxlbWVudCgpOworICAgICAgICBpZiAoIWVsZW1l
bnQpCisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAgfQor
ICAgIHJldHVybiBxdW90ZXNGb3JMYW5ndWFnZShsYW5ndWFnZS0+aW1wbCgpKTsKK30KKworUGFz
c1JlZlB0cjxTdHJpbmdJbXBsPiBSZW5kZXJRdW90ZTo6b3JpZ2luYWxUZXh0KCkgY29uc3QKK3sK
KyAgICBpZiAoIXBhcmVudCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBBU1NFUlQobV9kZXB0
aCAhPSBVTktOT1dOX0RFUFRIKTsKKyAgICAgY29uc3QgUXVvdGVzRGF0YSogcXVvdGVzID0gc3R5
bGUoKS0+cXVvdGVzKCk7CisgICAgIGlmICghcXVvdGVzKQorICAgICAgICAgcXVvdGVzID0gZGVm
YXVsdFF1b3Rlcyh0aGlzKTsKKyAgICBpZiAoIXF1b3Rlcy0+bGVuZ3RoKQorICAgICAgICByZXR1
cm4gZW1wdHlBdG9tLmltcGwoKTsKKyAgICBpbnQgaW5kZXggPSBtX2RlcHRoICogMjsKKyAgICBz
d2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgTk9fT1BFTl9RVU9URToKKyAgICBjYXNlIE5PX0NM
T1NFX1FVT1RFOgorICAgICAgICByZXR1cm4gU3RyaW5nKCIiKS5pbXBsKCk7CisgICAgY2FzZSBD
TE9TRV9RVU9URToKKyAgICAgICAgaWYgKGluZGV4KQorICAgICAgICAgICAgLS1pbmRleDsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgKytpbmRleDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBPUEVOX1FVT1RFOgorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbS5pbXBsKCk7CisgICAg
fQorICAgIGlmIChpbmRleCA+PSBxdW90ZXMtPmxlbmd0aCkKKyAgICAgICAgaW5kZXggPSAocXVv
dGVzLT5sZW5ndGgtMikgfCAoaW5kZXggJiAxKTsKKyAgICBpZiAoaW5kZXggPCAwKQorICAgICAg
ICByZXR1cm4gZW1wdHlBdG9tLmltcGwoKTsKKyAgICByZXR1cm4gcXVvdGVzLT5kYXRhKClbaW5k
ZXhdLmltcGwoKTsKK30KKwordm9pZCBSZW5kZXJRdW90ZTo6Y29tcHV0ZVByZWZlcnJlZExvZ2lj
YWxXaWR0aHMoaW50IGxlYWQpCit7CisgICAgc2V0VGV4dEludGVybmFsKG9yaWdpbmFsVGV4dCgp
KTsKKyAgICBSZW5kZXJUZXh0Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhsZWFkKTsK
K30KKwordm9pZCBSZW5kZXJRdW90ZTo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKK3sKKyAgICBpZiAocmVuZGVyZXItPmRvY3VtZW50QmVpbmdEZXN0cm95
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50
ID0gcmVuZGVyZXI7IGRlc2NlbmRhbnQ7IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0SW5Q
cmVPcmRlcihyZW5kZXJlcikpCisgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1F1b3RlKCkpIHsK
KyAgICAgICAgICAgIHRvUmVuZGVyUXVvdGUoZGVzY2VuZGFudCktPnBsYWNlUXVvdGUoKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OnJlbmRl
cmVyUmVtb3ZlZEZyb21UcmVlKFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QpCit7CisgICAgaWYg
KHN1YnRyZWVSb290LT5kb2N1bWVudEJlaW5nRGVzdHJveWVkKCkpCisgICAgICAgIHJldHVybjsK
KyAgICBmb3IgKFJlbmRlck9iamVjdCogZGVzY2VuZGFudCA9IHN1YnRyZWVSb290OyBkZXNjZW5k
YW50OyBkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3VidHJlZVJvb3Qp
KQorICAgICAgICBpZiAoZGVzY2VuZGFudC0+aXNRdW90ZSgpKSB7CisgICAgICAgICAgICBSZW5k
ZXJRdW90ZSogcmVtb3ZlZFF1b3RlID0gdG9SZW5kZXJRdW90ZShkZXNjZW5kYW50KTsKKyAgICAg
ICAgICAgIFJlbmRlclF1b3RlKiBsYXN0UXVvdGVCZWZvcmUgPSByZW1vdmVkUXVvdGUtPm1fcHJl
dmlvdXM7CisgICAgICAgICAgICByZW1vdmVkUXVvdGUtPm1fcHJldmlvdXMgPSAwOworICAgICAg
ICAgICAgaW50IGRlcHRoID0gcmVtb3ZlZFF1b3RlLT5tX2RlcHRoOworICAgICAgICAgICAgZm9y
IChkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3VidHJlZVJvb3QpOyBk
ZXNjZW5kYW50OyBkZXNjZW5kYW50ID0gZGVzY2VuZGFudC0+bmV4dEluUHJlT3JkZXIoc3VidHJl
ZVJvb3QpKQorICAgICAgICAgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1F1b3RlKCkpCisgICAg
ICAgICAgICAgICAgICAgIHJlbW92ZWRRdW90ZSA9IHRvUmVuZGVyUXVvdGUoZGVzY2VuZGFudCk7
CisgICAgICAgICAgICBSZW5kZXJRdW90ZSogcXVvdGVBZnRlciA9IHJlbW92ZWRRdW90ZS0+bV9u
ZXh0OworICAgICAgICAgICAgcmVtb3ZlZFF1b3RlLT5tX25leHQgPSAwOworICAgICAgICAgICAg
aWYgKGxhc3RRdW90ZUJlZm9yZSkKKyAgICAgICAgICAgICAgICBsYXN0UXVvdGVCZWZvcmUtPm1f
bmV4dCA9IHF1b3RlQWZ0ZXI7CisgICAgICAgICAgICBpZiAocXVvdGVBZnRlcikgeworICAgICAg
ICAgICAgICAgIHF1b3RlQWZ0ZXItPm1fcHJldmlvdXMgPSBsYXN0UXVvdGVCZWZvcmU7CisgICAg
ICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBpZiAoZGVwdGggPT0gcXVvdGVB
ZnRlci0+bV9kZXB0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICBxdW90ZUFmdGVyLT5tX2RlcHRoID0gZGVwdGg7CisgICAgICAgICAgICAgICAg
ICAgIHF1b3RlQWZ0ZXItPnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOworICAg
ICAgICAgICAgICAgICAgICBhZGp1c3REZXB0aChkZXB0aCwgcXVvdGVBZnRlci0+bV90eXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgcXVvdGVBZnRlciA9IHF1b3RlQWZ0ZXItPm1fbmV4dDsKKyAg
ICAgICAgICAgICAgICB9IHdoaWxlIChxdW90ZUFmdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9Cit9CisKK3ZvaWQgUmVuZGVyUXVvdGU6OnN0eWxlRGlk
Q2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
Cit7CisgICAgY29uc3QgUXVvdGVzRGF0YSogbmV3UXVvdGVzID0gc3R5bGUoKS0+cXVvdGVzKCk7
CisgICAgY29uc3QgUXVvdGVzRGF0YSogb2xkUXVvdGVzID0gb2xkU3R5bGUgPyBvbGRTdHlsZS0+
cXVvdGVzKCkgOiAwOworICAgIGlmICghKChuZXdRdW90ZXMgJiYgb2xkUXVvdGVzICYmICgqbmV3
UXVvdGVzID09ICpvbGRRdW90ZXMpKSB8fCAoIW5ld1F1b3RlcyAmJiAhb2xkUXVvdGVzKSkpCisg
ICAgICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOworICAgIFJlbmRlclRl
eHQ6OnN0eWxlRGlkQ2hhbmdlKGRpZmYsIG9sZFN0eWxlKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjkzOGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisj
aWZuZGVmIFJlbmRlclF1b3RlX2gKKyNkZWZpbmUgUmVuZGVyUXVvdGVfaAorCisjaW5jbHVkZSAi
UmVuZGVyU3R5bGVDb25zdGFudHMuaCIKKyNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyUXVvdGUgOiBwdWJsaWMgUmVuZGVyVGV4dCB7
CitwdWJsaWM6CisgICAgUmVuZGVyUXVvdGUoRG9jdW1lbnQqLCBjb25zdCBRdW90ZVR5cGUpOwor
ICAgIHZpcnR1YWwgflJlbmRlclF1b3RlKCk7CisKKyAgICBzdGF0aWMgdm9pZCByZW5kZXJlclN1
YnRyZWVBdHRhY2hlZChSZW5kZXJPYmplY3QqKTsKKyAgICBzdGF0aWMgdm9pZCByZW5kZXJlclJl
bW92ZWRGcm9tVHJlZShSZW5kZXJPYmplY3QqKTsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZv
aWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUpOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH07
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG9yaWdpbmFsVGV4dCgpIGNvbnN0
OworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhpbnQgbGVh
ZFdpZHRoKTsKKyAgICBRdW90ZVR5cGUgbV90eXBlOworICAgIGludCBtX2RlcHRoOworICAgIFJl
bmRlclF1b3RlKiBtX25leHQ7CisgICAgUmVuZGVyUXVvdGUqIG1fcHJldmlvdXM7CisgICAgdm9p
ZCBwbGFjZVF1b3RlKCk7Cit9OworCitpbmxpbmUgUmVuZGVyUXVvdGUqIHRvUmVuZGVyUXVvdGUo
UmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5p
c1F1b3RlKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJRdW90ZSo+KG9iamVjdCk7
Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2Fz
dC4KK3ZvaWQgdG9SZW5kZXJRdW90ZShjb25zdCBSZW5kZXJRdW90ZSopOworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJRdW90ZV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAppbmRleCA3NjBmMDJkLi4xOTVmYTNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAK
QEAgLTc5LDYgKzc5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIgog
I2luY2x1ZGUgIlJlbmRlclBhcnQuY3BwIgogI2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmNwcCIK
KyNpbmNsdWRlICJSZW5kZXJRdW90ZS5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyUmVwbGFjZWQuY3Bw
IgogI2luY2x1ZGUgIlJlbmRlclJlcGxpY2EuY3BwIgogI2luY2x1ZGUgIlJlbmRlclJ1YnkuY3Bw
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKaW5k
ZXggZDE1MGY3Ny4uYWI1MDRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0NvbnRlbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvQ29udGVudERhdGEuY3BwCkBAIC01MSw2ICs1MSw4IEBAIGJvb2wgQ29udGVudERhdGE6OmRh
dGFFcXVpdmFsZW50KGNvbnN0IENvbnRlbnREYXRhJiBvdGhlcikgY29uc3QKICAgICAgICAgcmV0
dXJuIFN0eWxlSW1hZ2U6OmltYWdlc0VxdWl2YWxlbnQoaW1hZ2UoKSwgb3RoZXIuaW1hZ2UoKSk7
CiAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CiAgICAgICAgIHJldHVybiAqY291bnRlcigpID09
ICpvdGhlci5jb3VudGVyKCk7CisgICAgY2FzZSBDT05URU5UX1FVT1RFOgorICAgICAgICByZXR1
cm4gcXVvdGUoKSA9PSBvdGhlci5xdW90ZSgpOwogICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtNzEsNiArNzMsOCBAQCB2b2lkIENvbnRlbnREYXRhOjpkZWxldGVDb250ZW50
KCkKICAgICBjYXNlIENPTlRFTlRfQ09VTlRFUjoKICAgICAgICAgZGVsZXRlIG1fY29udGVudC5t
X2NvdW50ZXI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ09OVEVOVF9RVU9URToKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCiAgICAgbV90eXBlID0gQ09OVEVOVF9OT05FOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaAppbmRleCAxNWY2OTEyLi5jY2Uz
NzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaApA
QCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NvdW50ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGUgPT0gQ09OVEVOVF9DT1VOVEVSOyB9CiAgICAgYm9vbCBpc0ltYWdlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlID09IENPTlRFTlRfT0JKRUNUOyB9CiAgICAgYm9vbCBpc05vbmUo
KSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ09OVEVOVF9OT05FOyB9CisgICAgYm9vbCBpc1F1
b3RlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IENPTlRFTlRfUVVPVEU7IH0KICAgICBib29s
IGlzVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDT05URU5UX1RFWFQ7IH0KIAogICAg
IFN0eWxlQ29udGVudFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpAQCAtOTMs
NiArOTQsMTggQEAgcHVibGljOgogICAgICAgICBtX2NvbnRlbnQubV9jb3VudGVyID0gY291bnRl
ci5sZWFrUHRyKCk7CiAgICAgfQogCisgICAgUXVvdGVUeXBlIHF1b3RlKCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpc1F1b3RlKCkpOworICAgICAgICByZXR1cm4gbV9jb250ZW50Lm1f
cXVvdGU7CisgICAgfQorICAgIHZvaWQgc2V0UXVvdGUoUXVvdGVUeXBlIHR5cGUpCisgICAgewor
ICAgICAgICBkZWxldGVDb250ZW50KCk7CisgICAgICAgIG1fdHlwZSA9IENPTlRFTlRfUVVPVEU7
CisgICAgICAgIG1fY29udGVudC5tX3F1b3RlID0gdHlwZTsKKyAgICB9CisKICAgICBDb250ZW50
RGF0YSogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsgfQogICAgIHZvaWQgc2V0
TmV4dChQYXNzT3duUHRyPENvbnRlbnREYXRhPiBuZXh0KSB7IG1fbmV4dCA9IG5leHQ7IH0KIApA
QCAtMTA0LDYgKzExNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIFN0eWxlSW1hZ2UqIG1faW1hZ2U7
CiAgICAgICAgIFN0cmluZ0ltcGwqIG1fdGV4dDsKICAgICAgICAgQ291bnRlckNvbnRlbnQqIG1f
Y291bnRlcjsKKyAgICAgICAgUXVvdGVUeXBlIG1fcXVvdGU7CiAgICAgfSBtX2NvbnRlbnQ7CiAg
ICAgT3duUHRyPENvbnRlbnREYXRhPiBtX25leHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjgyOWZlM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUXVvdGVzRGF0YS5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoqCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgTm9raWEgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUXVvdGVzRGF0YSogUXVvdGVzRGF0YTo6Y3JlYXRlKGludCBzdHJpbmdDb3VudCkKK3sK
KyAgICBjaGFyKiB0bXAgPSBuZXcgY2hhcltzaXplb2YoUXVvdGVzRGF0YSkrc2l6ZW9mKFN0cmlu
Zykqc3RyaW5nQ291bnRdOworICAgIGlmICghdG1wKQorICAgICAgICByZXR1cm4gMDsKKyAgICBu
ZXcgKHRtcCkgUXVvdGVzRGF0YShzdHJpbmdDb3VudCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBzdHJpbmdDb3VudDsgKytpKQorICAgICAgICBuZXcgKHRtcCArc2l6ZW9mKFF1b3Rlc0RhdGEp
ICsgc2l6ZW9mKFN0cmluZykqaSkgU3RyaW5nKCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8UXVvdGVzRGF0YSo+KHRtcCk7Cit9CisKK2Jvb2wgUXVvdGVzRGF0YTo6b3BlcmF0b3I9PShj
b25zdCBRdW90ZXNEYXRhJiBvdGhlcikgY29uc3QKK3sKKyAgICBpZiAodGhpcyA9PSAmb3RoZXIp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICghJm90aGVyIHx8ICF0aGlzKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGxlbmd0aCAhPSBvdGhlci5sZW5ndGgpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBjb25zdCBTdHJpbmcqIG15RGF0YSA9IGRhdGEoKTsKKyAgICBj
b25zdCBTdHJpbmcqIG90aGVyRGF0YSA9IG90aGVyLmRhdGEoKTsKKyAgICBmb3IgKGludCBpID0g
bGVuZ3RoLTE7IGkgPj0gMDsgLS1pKQorICAgICAgICBpZiAobXlEYXRhW2ldICE9IG90aGVyRGF0
YVtpXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
UXVvdGVzRGF0YTo6flF1b3Rlc0RhdGEoKQoreworICAgIFN0cmluZyogcCA9IGRhdGEoKTsKKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICBwW2ldLn5TdHJpbmco
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9RdW90ZXNEYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZGY4YTZkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9RdW90ZXNEYXRhLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBOb2tpYSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFF1b3Rlc0RhdGFf
aAorI2RlZmluZSBRdW90ZXNEYXRhX2gKKworI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBRdW90ZXNEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8UXVvdGVzRGF0YT4geworcHVibGljOgor
ICAgIHZpcnR1YWwgflF1b3Rlc0RhdGEoKTsKKyAgICBzdGF0aWMgUXVvdGVzRGF0YSogY3JlYXRl
KGludCBzdHJpbmdDb3VudCk7CisgICAgU3RyaW5nKiBkYXRhKCkgeyByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxTdHJpbmcqPih0aGlzKzEpOyB9CisgICAgY29uc3QgU3RyaW5nKiBkYXRhKCkgY29u
c3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBTdHJpbmcqPih0aGlzKzEpOyB9Cisg
ICAgaW50IGxlbmd0aDsKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUXVvdGVzRGF0YSYpIGNv
bnN0OworICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQqIHApIHsgZGVsZXRlW10gc3RhdGlj
X2Nhc3Q8Y2hhcio+KHApOyB9Citwcml2YXRlOgorICAgIFF1b3Rlc0RhdGEoaW50IHN0cmluZ0Nv
dW50KSA6IGxlbmd0aChzdHJpbmdDb3VudCkge30KK307CisKK30KKyNlbmRpZiAvLyBRdW90ZXNE
YXRhX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CmluZGV4IGI3NmEzNTAuLjgxZGE0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkNTU1By
b3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAi
Rm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1ZGUgIlJlbmRl
ckFyZW5hLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NhbGVUcmFu
c2Zvcm1PcGVyYXRpb24uaCIKQEAgLTYwNSw2ICs2MDYsMTMgQEAgdm9pZCBSZW5kZXJTdHlsZTo6
c2V0Q3Vyc29yTGlzdChQYXNzUmVmUHRyPEN1cnNvckxpc3Q+IG90aGVyKQogICAgIHJhcmVJbmhl
cml0ZWREYXRhLmFjY2VzcygpLT5jdXJzb3JEYXRhID0gb3RoZXI7CiB9CiAKK3ZvaWQgUmVuZGVy
U3R5bGU6OnNldFF1b3RlcyhQYXNzUmVmUHRyPFF1b3Rlc0RhdGE+IHEpCit7CisgICAgaWYgKCpy
YXJlSW5oZXJpdGVkRGF0YS0+cXVvdGVzLmdldCgpID09ICpxLmdldCgpKQorICAgICAgICByZXR1
cm47CisgICAgcmFyZUluaGVyaXRlZERhdGEuYWNjZXNzKCktPnF1b3RlcyA9IHE7Cit9CisKIHZv
aWQgUmVuZGVyU3R5bGU6OmNsZWFyQ3Vyc29yTGlzdCgpCiB7CiAgICAgaWYgKHJhcmVJbmhlcml0
ZWREYXRhLT5jdXJzb3JEYXRhKQpAQCAtNjcyLDYgKzY4MCwxMSBAQCB2b2lkIFJlbmRlclN0eWxl
OjpzZXRDb250ZW50KFBhc3NPd25QdHI8Q291bnRlckNvbnRlbnQ+IGNvdW50ZXIsIGJvb2wgYWRk
KQogICAgIHByZXBhcmVUb1NldENvbnRlbnQoMCwgYWRkKS0+c2V0Q291bnRlcihjb3VudGVyKTsK
IH0KIAordm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29udGVudChRdW90ZVR5cGUgcXVvdGUsIGJvb2wg
YWRkKQoreworICAgIHByZXBhcmVUb1NldENvbnRlbnQoMCwgYWRkKS0+c2V0UXVvdGUocXVvdGUp
OworfQorCiB2b2lkIFJlbmRlclN0eWxlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgdHJhbnNmb3JtLCBjb25zdCBJbnRTaXplJiBib3JkZXJCb3hTaXplLCBBcHBseVRyYW5z
Zm9ybU9yaWdpbiBhcHBseU9yaWdpbikgY29uc3QKIHsKICAgICAvLyB0cmFuc2Zvcm0tb3JpZ2lu
IGJyYWNrZXRzIHRoZSB0cmFuc2Zvcm0gd2l0aCB0cmFuc2xhdGUgb3BlcmF0aW9ucy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNTU4NTgwYi4u
NjRhZjMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKQEAgLTExMjYsMTAgKzExMjYsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29udGVudChQ
YXNzUmVmUHRyPFN0cmluZ0ltcGw+LCBib29sIGFkZCA9IGZhbHNlKTsKICAgICB2b2lkIHNldENv
bnRlbnQoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiwgYm9vbCBhZGQgPSBmYWxzZSk7CiAgICAgdm9p
ZCBzZXRDb250ZW50KFBhc3NPd25QdHI8Q291bnRlckNvbnRlbnQ+LCBib29sIGFkZCA9IGZhbHNl
KTsKKyAgICB2b2lkIHNldENvbnRlbnQoUXVvdGVUeXBlLCBib29sIGFkZCA9IGZhbHNlKTsKIAog
ICAgIGNvbnN0IENvdW50ZXJEaXJlY3RpdmVNYXAqIGNvdW50ZXJEaXJlY3RpdmVzKCkgY29uc3Q7
CiAgICAgQ291bnRlckRpcmVjdGl2ZU1hcCYgYWNjZXNzQ291bnRlckRpcmVjdGl2ZXMoKTsKIAor
ICAgIFF1b3Rlc0RhdGEqIHF1b3RlcygpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRh
LT5xdW90ZXMuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFF1b3RlcyhQYXNzUmVmUHRyPFF1b3Rlc0Rh
dGE+KTsKKwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaHlwaGVuU3RyaW5nKCkgY29uc3Q7CiAK
ICAgICBib29sIGluaGVyaXRlZE5vdEVxdWFsKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oCmluZGV4IDQ0Y2QzZjUuLjNjNjJkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC0yOTcsNyArMjk3
LDExIEBAIGVudW0gRUxpc3RTdHlsZVR5cGUgewogfTsKIAogZW51bSBTdHlsZUNvbnRlbnRUeXBl
IHsKLSAgICBDT05URU5UX05PTkUsIENPTlRFTlRfT0JKRUNULCBDT05URU5UX1RFWFQsIENPTlRF
TlRfQ09VTlRFUgorICAgIENPTlRFTlRfTk9ORSwgQ09OVEVOVF9PQkpFQ1QsIENPTlRFTlRfVEVY
VCwgQ09OVEVOVF9DT1VOVEVSLCBDT05URU5UX1FVT1RFCit9OworCitlbnVtIFF1b3RlVHlwZSB7
CisgICAgT1BFTl9RVU9URSwgQ0xPU0VfUVVPVEUsIE5PX09QRU5fUVVPVEUsIE5PX0NMT1NFX1FV
T1RFCiB9OwogCiBlbnVtIEVCb3JkZXJGaXQgeyBCb3JkZXJGaXRCb3JkZXIsIEJvcmRlckZpdExp
bmVzIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVB
bGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9u
ZS5jcHAKaW5kZXggMjViNTM5Zi4uOTY3ZmEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUFsbEluT25lLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkZpbGxMYXllci5jcHAiCiAjaW5jbHVkZSAiS2V5ZnJhbWVMaXN0LmNwcCIKICNpbmNsdWRl
ICJOaW5lUGllY2VJbWFnZS5jcHAiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5jcHAiCiAjaW5jbHVk
ZSAiUmVuZGVyU3R5bGUuY3BwIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmNwcCIKICNpbmNs
dWRlICJTVkdSZW5kZXJTdHlsZURlZnMuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDZiOGUw
MzkuLjlkY2Y5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNs
dWRlICJTdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRlICJDdXJzb3JMaXN0Lmgi
CisjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJTaGFkb3dEYXRhLmgiCkBA
IC0xMzIsNyArMTMzLDggQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09
KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CiAgICAgICAgICYmIHRleHRF
bXBoYXNpc1Bvc2l0aW9uID09IG8udGV4dEVtcGhhc2lzUG9zaXRpb24KICAgICAgICAgJiYgaHlw
aGVuYXRpb25TdHJpbmcgPT0gby5oeXBoZW5hdGlvblN0cmluZwogICAgICAgICAmJiBoeXBoZW5h
dGlvbkxvY2FsZSA9PSBvLmh5cGhlbmF0aW9uTG9jYWxlCi0gICAgICAgICYmIHRleHRFbXBoYXNp
c0N1c3RvbU1hcmsgPT0gby50ZXh0RW1waGFzaXNDdXN0b21NYXJrOworICAgICAgICAmJiB0ZXh0
RW1waGFzaXNDdXN0b21NYXJrID09IG8udGV4dEVtcGhhc2lzQ3VzdG9tTWFyaworICAgICAgICAm
JiAqcXVvdGVzLmdldCgpID09ICpvLnF1b3Rlcy5nZXQoKTsKIH0KIAogYm9vbCBTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhOjpzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0
ZWREYXRhJiBvKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggZDI2Y2E4My4uZmM1NmUzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oCkBAIC0zNCw2ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEN1cnNvckxpc3Q7CitjbGFzcyBRdW90ZXNEYXRhOwogY2xhc3MgU2hhZG93RGF0YTsKIAog
Ly8gVGhpcyBzdHJ1Y3QgaXMgZm9yIHJhcmVseSB1c2VkIGluaGVyaXRlZCBDU1MzLCBDU1MyLCBh
bmQgV2ViS2l0LXNwZWNpZmljIHByb3BlcnRpZXMuCkBAIC04OCw2ICs4OSw3IEBAIHB1YmxpYzoK
ICAgICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25Mb2NhbGU7CiAKICAgICBBdG9taWNTdHJpbmcg
dGV4dEVtcGhhc2lzQ3VzdG9tTWFyazsKKyAgICBSZWZQdHI8UXVvdGVzRGF0YT4gcXVvdGVzOwog
CiBwcml2YXRlOgogICAgIFN0eWxlUmFyZUluaGVyaXRlZERhdGEoKTsK
</data>
<flag name="review"
          id="74712"
          type_id="1"
          status="-"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="74713"
          type_id="3"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83029</attachid>
            <date>2011-02-18 15:41:04 -0800</date>
            <delta_ts>2011-03-01 14:09:09 -0800</delta_ts>
            <desc>Proposed Patch. Addressed DHyatt&apos;s concerns.</desc>
            <filename>patchFor6503-6.patch</filename>
            <type>text/plain</type>
            <size>80605</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ODBjZDY3Li5hNWFmZWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDIt
MTggIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbnRlbnQgcHJvcGVydHkgZG9lc24n
dCBzdXBwb3J0IHF1b3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjUwMworCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyBmb3IgcXVvdGVzLgorCisg
ICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDEuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbDogQWRkZWQu
CisKIDIwMTEtMDItMTggIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29u
dGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi40MWVjOGYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGhlIHRleHRzIGJldHdlZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50
aWNhbC4KKworPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYWIJMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQorCitXV2FXV2JXV1dXV1dX
VwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMz09PT09
PT09CisKK1BBU1NFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9j
b250ZW50LXF1b3Rlcy0wMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250
ZW50LXF1b3Rlcy0wMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVi
OWE0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTAxLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICBib2R5IHsgcXVv
dGVzOiAiV1ciICJXV1dXIjsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkgeworICAg
ICAgICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUo
IndpZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdl
dFByb3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9
PSByZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuaW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVj
dGVkICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAg
ICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNo
b3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09
PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAg
IDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+PC9xPjwvdGQ+CisgICAgICAgICAg
ICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAg
ICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9
PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAg
ICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj5XV2FXV2JXV1dXV1dXVzwvdGQ+CisgICAgICAgICAg
ICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAg
ICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIz
PT09PT09PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQt
cXVvdGVzLTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29u
dGVudC1xdW90ZXMtMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmVhMTQ0NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b250ZW50L2NvbnRlbnQtcXVvdGVzLTAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKz09
PT09PT09TWFya2VyMT09PT09PT09CisKK2FiY2QJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQorCithV1dXYldXV1dXY1dXZFdXV1cJMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQor
CitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVu
dC1xdW90ZXMtMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWU3ODUx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMi5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3Rlczog
IldXIiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgc3BhbjpiZWZvcmUgeyBj
b250ZW50OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgICAgICBzcGFuOmFmdGVyIHsgY29udGVu
dDogbm8tY2xvc2UtcXVvdGU7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1bigpIHsKKyAg
ICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUluQnJvd3NlciIpLnNldEF0
dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKKyAgICAgICAgICAgICAgICB0ZXN0
V2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdENvbnRhaW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAg
ICAgICAgICAgIHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3
aWR0aCIpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNlV2lkdGgp
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJUZXh0ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJG
QUlMRUQ6IHRlc3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVmZXJlbmNl
V2lkdGg7CisgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib25seUluQnJv
d3NlciIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiZGlzcGxheTogbm9uZTsiKTsKKyAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVv
dXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAgPHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0
cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3VsZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8
cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAg
ICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0idGVzdENvbnRhaW5lciI+PHNwYW4+YTxx
PmI8L3E+Yzwvc3Bhbj48cT5kPC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAg
ICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAg
ICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVm
ZXJlbmNlIj5hV1dXYldXV1dXY1dXZFdXV1c8L3RkPgorICAgICAgICAgICAgICAgIDx0ZD4xIDEg
MSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAgICAgICAgIDwvdHI+Cisg
ICAgICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2VyMz09PT09PT09PC9wPgor
ICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTFkZWJh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACis9PT09PT09PU1hcmtlcjE9
PT09PT09PQorCithYgkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09
TWFya2VyMj09PT09PT09CisKK2FXV1diV1dXV1cJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQQVNTRUQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzFmOWJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy5odG1sCkBAIC0wLDAg
KzEsNDcgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldXIiAiV1dXVyIgIldXVyIgIldXV1dX
IjsgfQorICAgICAgICAgICAgYjpiZWZvcmUgeyBjb250ZW50OiBuby1vcGVuLXF1b3RlOyB9Cisg
ICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3Bs
YXk6IG5vbmU7Iik7CisgICAgICAgICAgICAgICAgdGVzdFdpZHRoID0gd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RDb250YWluZXIiKSwgbnVsbCku
Z2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAgICByZWZlcmVuY2VXaWR0
aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZl
cmVuY2UiKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAg
ICBpZiAodGVzdFdpZHRoID09IHJlZmVyZW5jZVdpZHRoKQorICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJQQVNTRUQiOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiRkFJTEVEOiB0ZXN0V2lkdGg9IiArIHRl
c3RXaWR0aCArIjsgZXhwZWN0ZWQgIiArIHJlZmVyZW5jZVdpZHRoOworICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICB9CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVu
KCknLCAwKTsiPgorICAgICAgICA8cCBpZD0ib25seUluQnJvd3NlciI+VGhlIHRleHRzIGJldHdl
ZW4gdGhlIG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC48L3A+CisgICAgICAgIDxwPj09PT09
PT09TWFya2VyMT09PT09PT09PC9wPgorICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHI+
CisgICAgICAgICAgICAgICAgPHRkIGlkPSJ0ZXN0Q29udGFpbmVyIj48c3Bhbj48Yj5hPC9iPjwv
c3Bhbj48cT5iPC9xPjwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxl
PgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09PTwvcD4KKyAgICAgICAgPHRhYmxl
PgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBpZD0icmVmZXJlbmNlIj48
c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGRlcjsiPmE8L3NwYW4+V1dXYldXV1dXPC90ZD4K
KyAgICAgICAgICAgICAgICA8dGQ+MSAxIDEgMSAxIDEgMSAxIDEgMSAxICAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwv
dGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09
PT09PU1hcmtlcjM9PT09PT09PTwvcD4KKyAgICAgICAgPHByZSBpZD0iY29uc29sZSIvPgorICAg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRl
bnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMjA1N2E0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOSBAQAorPT09PT09PT1NYXJrZXIxPT09PT09PT0KKworYgkxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYldXV1cJMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxCis9PT09PT09PU1hcmtlcjM9PT09PT09PQorCitQ
QVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90
ZXMtMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzAyOWQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1
b3Rlcy0wNC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgYm9keSB7IHF1b3RlczogIldX
IiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICAgICAgYjpiZWZvcmUgeyBjb250ZW50
OiBuby1vcGVuLXF1b3RlOyB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRy
aWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5vbmU7Iik7CisgICAgICAgICAgICAgICAgZWwgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9SZW1vdmUiKTsKKyAgICAgICAgICAgICAgICBlbC5w
YXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKTsKKyAgICAgICAgICAgICAgICB0ZXN0V2lkdGggPSB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENvbnRh
aW5lciIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOworICAgICAgICAgICAgICAg
IHJlZmVyZW5jZVdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZmVyZW5jZSIpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOwor
ICAgICAgICAgICAgICAgIGlmICh0ZXN0V2lkdGggPT0gcmVmZXJlbmNlV2lkdGgpCisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0
ID0gIlBBU1NFRCI7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJGQUlMRUQ6IHRl
c3RXaWR0aD0iICsgdGVzdFdpZHRoICsiOyBleHBlY3RlZCAiICsgcmVmZXJlbmNlV2lkdGg7Cisg
ICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
IH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KCdydW4oKScsIDApOyI+CisgICAgICAgIDxwIGlkPSJvbmx5SW5Ccm93c2VyIj5U
aGUgdGV4dHMgYmV0d2VlbiB0aGUgbWFya2VycyBzaG91bGQgYmUgaWRlbnRpY2FsLjwvcD4KKyAg
ICAgICAgPHA+PT09PT09PT1NYXJrZXIxPT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAg
ICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgaWQ9InRlc3RDb250YWluZXIiPjxz
cGFuPjxiIGlkPSJ0b1JlbW92ZSI+YTwvYj48L3NwYW4+PHE+YjwvcT48L3RkPgorICAgICAgICAg
ICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAg
ICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIy
PT09PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAg
ICAgICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1diV1dXVzwvdGQ+CisgICAgICAgICAgICAgICAg
PHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAg
PC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIzPT09PT09
PT08L3A+CisgICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVz
LTA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1x
dW90ZXMtMDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjQzZWI0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50
L2NvbnRlbnQtcXVvdGVzLTA1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKz09PT09PT09
TWFya2VyMT09PT09PT09CisKK2FiYwkxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEK
Kz09PT09PT09TWFya2VyMj09PT09PT09CisKK1dXYVdXV2JXV1dXV2NXV1dXCTEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMQorPT09PT09PT1NYXJrZXIzPT09PT09PT0KKworUEFTU0VE
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVz
LTA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA1
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDIyYmUzYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMt
MDUuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgICAgICAgIC5teVF1b3RlcyB7IHF1b3RlczogIldX
IiAiV1dXVyIgIldXVyIgIldXV1dXIjsgfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcnVuKCkg
eworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvbmx5SW5Ccm93c2VyIiku
c2V0QXR0cmlidXRlKCJzdHlsZSIsICJkaXNwbGF5OiBub25lOyIpOworICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJteVF1b3RlcyIpOworICAgICAg
ICAgICAgICAgIHRlc3RXaWR0aCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXN0Q29udGFpbmVyIiksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoIndp
ZHRoIik7CisgICAgICAgICAgICAgICAgcmVmZXJlbmNlV2lkdGggPSB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVmZXJlbmNlIiksIG51bGwpLmdldFBy
b3BlcnR5VmFsdWUoIndpZHRoIik7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RXaWR0aCA9PSBy
ZWZlcmVuY2VXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTU0VEIjsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJUZXh0ID0gIkZBSUxFRDogdGVzdFdpZHRoPSIgKyB0ZXN0V2lkdGggKyI7IGV4cGVjdGVk
ICIgKyByZWZlcmVuY2VXaWR0aDsKKyAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+
CisKKyAgICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCk7Ij4KKyAgICAgICAg
PHAgaWQ9Im9ubHlJbkJyb3dzZXIiPlRoZSB0ZXh0cyBiZXR3ZWVuIHRoZSBtYXJrZXJzIHNob3Vs
ZCBiZSBpZGVudGljYWwuPC9wPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjE9PT09PT09PTwv
cD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0
ZCBpZD0idGVzdENvbnRhaW5lciI+PHE+YTxxPmI8L3E+YzwvcT48L3RkPgorICAgICAgICAgICAg
ICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAg
ICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIyPT09
PT09PT08L3A+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAg
ICAgICA8dGQgaWQ9InJlZmVyZW5jZSI+V1dhV1dXYldXV1dXY1dXV1c8L3RkPgorICAgICAgICAg
ICAgICAgIDx0ZD4xIDEgMSAxIDEgMSAxIDEgMSAxIDEgIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxPC90ZD4KKyAgICAg
ICAgICAgIDwvdHI+CisgICAgICAgIDwvdGFibGU+CisgICAgICAgIDxwPj09PT09PT09TWFya2Vy
Mz09PT09PT09PC9wPgorICAgICAgICA8cHJlIGlkPSJjb25zb2xlIi8+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50
LXF1b3Rlcy0wNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2Nv
bnRlbnQtcXVvdGVzLTA2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41NzY0NGVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y29udGVudC9jb250ZW50LXF1b3Rlcy0wNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACis9
PT09PT09PU1hcmtlcjE9PT09PT09PQorCithYmMJMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxCis9PT09PT09PU1hcmtlcjI9PT09PT09PQorCithJ2InYwkxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEKKz09PT09PT09TWFya2VyMz09PT09PT09CisKK1BBU1NFRApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wNi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyNWE2NTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA2Lmh0
bWwKQEAgLTAsMCArMSw0NyBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICAuaW5pdGlhbFF1b3RlcyB7IHF1b3RlczogaW5p
dGlhbDsgfQorICAgICAgICAgICAgLm5vUXVvdGVzIHsgcXVvdGVzOiBub25lOyB9CisgICAgICAg
IDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm9ubHlJbkJyb3dzZXIiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImRpc3BsYXk6IG5v
bmU7Iik7CisgICAgICAgICAgICAgICAgdGVzdFdpZHRoID0gd2luZG93LmdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RDb250YWluZXIiKSwgbnVsbCkuZ2V0UHJv
cGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAgICByZWZlcmVuY2VXaWR0aCA9IHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2Ui
KSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsKKyAgICAgICAgICAgICAgICBpZiAo
dGVzdFdpZHRoID09IHJlZmVyZW5jZVdpZHRoKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJQQVNTRUQiOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS5pbm5lclRleHQgPSAiRkFJTEVEOiB0ZXN0V2lkdGg9IiArIHRlc3RXaWR0
aCArIjsgZXhwZWN0ZWQgIiArIHJlZmVyZW5jZVdpZHRoOworICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuKCknLCAw
KTsiPgorICAgICAgICA8cCBpZD0ib25seUluQnJvd3NlciI+VGhlIHRleHRzIGJldHdlZW4gdGhl
IG1hcmtlcnMgc2hvdWxkIGJlIGlkZW50aWNhbC48L3A+CisgICAgICAgIDxwPj09PT09PT09TWFy
a2VyMT09PT09PT09PC9wPgorICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHI+CisgICAg
ICAgICAgICAgICAgPHRkIGlkPSJ0ZXN0Q29udGFpbmVyIiBjbGFzcz0ibm9RdW90ZXMiPjxxPmE8
cSBjbGFzcz0iaW5pdGlhbFF1b3RlcyI+YjwvcT5jPC9xPjwvdGQ+CisgICAgICAgICAgICAgICAg
PHRkPjEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMTwvdGQ+CisgICAgICAgICAgICA8
L3RyPgorICAgICAgICA8L3RhYmxlPgorICAgICAgICA8cD49PT09PT09PU1hcmtlcjI9PT09PT09
PTwvcD4KKyAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAg
IDx0ZCBpZD0icmVmZXJlbmNlIj5hJ2InYzwvdGQ+CisgICAgICAgICAgICAgICAgPHRkPjEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAx
IDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEg
MSAxIDEgMSAxIDEgMSAxIDEgMSAxIDEgMSAxIDE8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAg
ICAgICAgPC90YWJsZT4KKyAgICAgICAgPHA+PT09PT09PT1NYXJrZXIzPT09PT09PT08L3A+Cisg
ICAgICAgIDxwcmUgaWQ9ImNvbnNvbGUiLz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5t
awppbmRleCA5Y2QzMDIyLi5jYzBmYTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRy
b2lkLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTcwMiw2ICs3MDIsNyBA
QCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlyZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcCBcCiAJcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgXAog
CXJlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBcCisJcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBc
CiAJcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBcCiAJcmVuZGVyaW5nL1JlbmRlclJlcGxp
Y2EuY3BwIFwKIApAQCAtNzkyLDYgKzc5Myw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FM
X1NSQ19GSUxFUykgXAogCXJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwIFwKIAlyZW5kZXJp
bmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNwcCBcCiAJcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUlt
YWdlLmNwcCBcCisJcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwIFwKIAlyZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwIFwKIAogaWZlcSAoJChFTkFCTEVfU1ZHKSwgdHJ1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNWEzNmEwOC4uM2NmMjg3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTEzODYsNiArMTM4Niw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJp
bmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNw
cAogICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKKyAgICByZW5kZXJpbmcvUmVuZGVy
UXVvdGUuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAogICAgIHJlbmRlcmlu
Zy9SZW5kZXJSZXBsaWNhLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcApAQCAtMTQy
NCw2ICsxNDI1LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9zdHlsZS9G
aWxsTGF5ZXIuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKICAgICBy
ZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwCisgICAgcmVuZGVyaW5nL3N0eWxlL1F1
b3Rlc0RhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAogICAgIHJl
bmRlcmluZy9zdHlsZS9TaGFkb3dEYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUJh
Y2tncm91bmREYXRhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU1NDkyOTEuLmFjZGUyN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw5MiBAQAorMjAxMS0wMi0xOCAgQ2Fyb2wgU3phYm8gIDxjYXJvbC5zemFi
b0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgY29udGVudCBwcm9wZXJ0eSBkb2Vzbid0IHN1cHBvcnQgcXVvdGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTAzCisKKyAgICAgICAgQWRk
ZWQgZnVsbCBzdXBwb3J0IGZvciBxdW90ZXMgYXMgZGVmaW5lZCBieSBDU1MgMi4xLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTAxLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDIuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9jc3MvY29udGVudC9jb250ZW50LXF1b3Rlcy0wMy5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Nzcy9jb250ZW50L2NvbnRlbnQtcXVvdGVzLTA0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvY3NzL2NvbnRlbnQvY29udGVudC1xdW90ZXMtMDUuaHRtbAorCisgICAgICAg
ICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgIEFkZGVkIFJlbmRlclF1b3RlLmNwcC9oIGFuZCBRdW90ZXNEYXRh
LmNwcC9oIHRvIHRoZSBkZXBlbmRlbmN5IGxpc3RzCisgICAgICAgICogY3NzL0NTU1BhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVF1b3Rlcyk6CisgICAgICAgICogY3NzL0NTU1BhcnNl
ci5oOgorICAgICAgICBBZGRlZCBuZWVkZWQgc3R5bGVzaGVldCBwYXJzaW5nIHN1cHBvcnQgZm9y
IHF1b3RlcywKKyAgICAgICAgKG5vLSlvcGVuLXF1b3RlIGFuZCAobm8tKWNsb3NlLXF1b3RlCisg
ICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgIEhhbmRsZWQgc2V0dGluZyBv
ZiB0aGUgbmV3IHF1b3RlcyBSZW5kZXJTdHlsZSBwcm9wZXJ0eSBhbmQgYWRkZWQKKyAgICAgICAg
aGFuZGxpbmcgb2YgcXVvdGVzIGZvciB0aGUgY29udGVudCBwcm9wZXJ0eS4KKyAgICAgICAgKiBj
c3MvaHRtbC5jc3M6CisgICAgICAgIChxOmJlZm9yZSk6CisgICAgICAgIChxOmFmdGVyKToKKyAg
ICAgICAgcmVwbGFjZWQgdGhlICciJyB3b3JrYXJvdW5kIHdpdGggb3Blbi9jbG9zZS1xdW90ZQor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6ZGlydHlMaW5lQm94ZXNGb3JSZW5kZXJlcik6CisgICAgICAgIE1hZGUgUmVuZGVy
UXVvdGUgYmVoYXZlIGxpa2UgUmVuZGVyQ291bnRlci4KKyAgICAgICAgTmVlZGVkIHRvIGVuc3Vy
ZSB0aGF0IHRoZSBRdW90ZSB0ZXh0IGlzIGNhbGN1bGF0ZWQgYmVmb3JlIGxheW91dCwKKyAgICAg
ICAganVzdCBhcyBpdCBpcyBmb3IgUmVuZGVyQ291bnRlci4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUXVvdGUp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjpyZW1vdmVDaGlsZE5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjphcHBlbmRDaGlsZE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUp
OgorICAgICAgICBIYW5kbGVkIHVwZGF0aW5nIG9mIHF1b3RlIGRlcHRoIHdoZW4gcmVuZGVyZXJz
IGFyZSBhZGRlZCBhbmQgcmVtb3ZlZAorICAgICAgICBmcm9tIHRoZSB0cmVlLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0Q2hpbGRMaXN0Ojp1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6YWRqdXN0RGVwdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OlJl
bmRlclF1b3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjp+UmVuZGVyUXVvdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUXVvdGU6OnJlbmRlck5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUXVvdGU6OnBsYWNlUXVvdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUXVvdGU6Om9yaWdpbmFsVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJRdW90ZTo6
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
UXVvdGU6OnJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clF1b3RlOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJRdW90ZTo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJRdW90
ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclF1b3RlOjppc1F1b3RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyUXVvdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJpbmdBbGxJbk9uZS5jcHA6CisgICAgICAgIEluY2x1ZGVkIFJlbmRlclF1b3RlLmNwcAorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUFsbEluT25lLmNwcDoKKyAgICAgICAgSW5jbHVk
ZWQgUXVvdGVzRGF0YS5jcHAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERhdGE6OmRhdGFFcXVpdmFsZW50KToKKyAg
ICAgICAgQ2hlY2tlZCBmb3IgcXVvdGV0eXBlIGlkZW50aXR5LgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudERhdGE6OmRlbGV0ZUNvbnRlbnQpOgorICAgICAgICBBY2NvdW50ZWQgZm9yIHRoZSBu
ZXcgUVVPVEVfVFlQRS4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREYXRhOjppc1F1b3RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnREYXRhOjpxdW90ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RGF0YTo6
c2V0UXVvdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2V0Q29udGVudCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRG
bGFnczo6cXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRRdW90
ZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAg
ICAgICBJbmNsdWRlZCBxdW90ZXMgaW4gZXF1YWxpdHkgY2hlY2suCisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgQWRkZWQgcXVvdGVz
CisKIDIwMTEtMDItMTggIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4
IDNkMmU3NzIuLmQwNjBlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yODI2LDYgKzI4MjYs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQYXJ0LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUXVvdGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCBcCkBAIC0yOTI4
LDYgKzI5MzAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvT3V0bGluZVZhbHVlLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90
ZXNEYXRhLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEu
aCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCBjMGE3YmQ0Li43NDJmNzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNjc3LDYg
KzM2NzcsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5j
cHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvT3V0bGluZVZhbHVlLmgnLAorICAgICAgICAgICAg
J3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5n
L3N0eWxlL1F1b3Rlc0RhdGEuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oJywK
QEAgLTM5MzIsNiArMzkzNCw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclBhcnQu
aCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcCcsCiAgICAgICAg
ICAgICAncmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9SZW5kZXJRdW90ZS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJRdW90ZS5o
JywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwJywKICAgICAgICAg
ICAgICdyZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5n
L1JlbmRlclJlcGxpY2EuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggM2I4ZDRhYS4uMGY5ZTA2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8KQEAgLTEyMzEsNiArMTIzMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJl
bmRlcmluZy9SZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVy
UGFydC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAgXAorICAgIHJlbmRl
cmluZy9SZW5kZXJRdW90ZS5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAg
XAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
clJ1YnkuY3BwIFwKQEAgLTEyNjcsNiArMTI2OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRl
cmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVM
aXN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcCBcCisgICAg
cmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU2hhZG93RGF0YS5jcHAgXAogICAg
IHJlbmRlcmluZy9zdHlsZS9TdHlsZUJhY2tncm91bmREYXRhLmNwcCBcCkBAIC0yMjE5LDYgKzIy
MjEsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggXAogICAg
IHJlbmRlcmluZy9SZW5kZXJQYXJ0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5o
IFwKKyAgICByZW5kZXJpbmcvUmVuZGVyUXVvdGUuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmggXAogICAgIHJlbmRlcmlu
Zy9SZW5kZXJSdWJ5LmggXApAQCAtMjI1Niw2ICsyMjU5LDcgQEAgSEVBREVSUyArPSBcCiAgICAg
cmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvS2V5ZnJh
bWVMaXN0LmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oIFwKKyAgICBy
ZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1NoYWRvd0RhdGEuaCBcCiAgICAgcmVuZGVy
aW5nL3N0eWxlL1N0eWxlQmFja2dyb3VuZERhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDU2OTEzNDEuLjZhNTc2YjggMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zNTAzNCw2ICsz
NTAzNCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxyZW5kZXJpbmdcUmVuZGVyUXVvdGUuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xSZW5kZXJRdW90
ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxy
ZW5kZXJpbmdcUmVuZGVyUmVwbGFjZWQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KQEAgLTM5MDAzLDYgKzM5MDU5LDYyIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcUXVvdGVzRGF0YS5jcHAi
CisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wK
KwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMy
IgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xzdHlsZVxRdW90ZXNEYXRhLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJ
PEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcUmVuZGVyU3R5bGUu
Y3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBjYzViZjkuLjQyMDZm
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI5MDMsNiArMjkwMyw4IEBACiAJCTkzOTJGMTQ0MEFEMTg1RkUwMDY5MUJENCAv
KiBSZW5kZXJDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzOTJGMTQzMEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmNwcCAq
LzsgfTsKIAkJOTM5MkYxNEMwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0QjBBRDE4NjFC
MDA2OTFCRDQgLyogQ291bnRlck5vZGUuaCAqLzsgfTsKIAkJOTM5MkYxNTAwQUQxODYyMzAwNjkx
QkQ0IC8qIENvdW50ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzOTJGMTRGMEFEMTg2MjMwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5jcHAg
Ki87IH07CisJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJRdW90ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MkYxNDEwQUQxODVG
NDAwNjkxQkQ0IC8qIFJlbmRlclF1b3RlLmggKi87IH07CisJCTkzOTJGMTQ0MEFEMTg1RkUwMDY5
MUJENCAvKiBSZW5kZXJRdW90ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzkyRjE0MzBBRDE4NUZFMDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuY3Bw
ICovOyB9OwogCQk5Mzk4ODVDMzA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk4ODVDMTA4QjdF
M0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5jcHAgKi87IH07CiAJCTkzOTg4NUM0MDhCN0UzRDEw
MEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzOUIwMkVF
MEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUIwMkVDMEVBMkRCQzQwMEM1NDU3MCAvKiBX
aWR0aEl0ZXJhdG9yLmNwcCAqLzsgfTsKQEAgLTUyNjksNiArNTI3MSw4IEBACiAJCUJDRUY0M0NG
MEU2NzNEQTEwMDFDMTI4NyAvKiBTdHlsZUltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGNDNDRTBFNjczREExMDAxQzEyODcgLyogU3R5bGVJ
bWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUJDRUY0M0REMEU2NzQwMTIwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFRjQzREMwRTY3NDAxMjAwMUMx
Mjg3IC8qIE5pbmVQaWVjZUltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQkNFRjQzRTAwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUlt
YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RUY0M0RGMEU2NzQxMTAwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5jcHAgKi87IH07CisJCTkz
OTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmggaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyog
UXV0b2VzRGF0YS5oICovOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXVvdGVz
RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzkyRjE0MjBBRDE4NUY0MDA2OTFCRDQgLyogUXV0b2VzRGF0YS5jcHAgKi87IH07CiAJCUJDRUY0
NDRBMEU2NzQ1RTAwMDFDMTI4NyAvKiBTdHlsZUdlbmVyYXRlZEltYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGNDQ0OTBFNjc0NUUwMDAxQzEy
ODcgLyogU3R5bGVHZW5lcmF0ZWRJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDRUY0NDREMEU2NzQ2MjgwMDFDMTI4NyAvKiBTdHlsZUNh
Y2hlZEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0VGNDQ0QzBFNjc0NjI4MDAxQzEyODcgLyogU3R5bGVDYWNoZWRJbWFnZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDRUY0NDdBMEU2NzQ3
RDAwMDFDMTI4NyAvKiBTdHlsZUNhY2hlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUY0NDc5MEU2NzQ3RDAwMDFDMTI4NyAvKiBTdHls
ZUNhY2hlZEltYWdlLmNwcCAqLzsgfTsKQEAgLTkzMDUsNiArOTMwOSw4IEBACiAJCTkzOTJGMTQz
MEFEMTg1RkUwMDY5MUJENCAvKiBSZW5kZXJDb3VudGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJDb3VudGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM5MkYxNEIwQUQxODYxQjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3VudGVyTm9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzkyRjE0RjBBRDE4NjIzMDA2OTFCRDQgLyogQ291bnRlck5v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvdW50ZXJOb2Rl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5MkYxNDEwQUQxODVGNDAwNjkx
QkQ0IC8qIFJlbmRlclF1b3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJRdW90ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzkyRjE0MzBBRDE4
NUZFMDA2OTFCRDQgLyogUmVuZGVyUXVvdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlclF1b3RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM5NTVBNDEwM0Q3MjkzMjAwODYzNUNFIC8qIFJlbmRlclRyZWVBc1RleHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVlQXNU
ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQk5Mzk1NUE0MjAzRDcyOTMyMDA4NjM1Q0UgLyogUmVuZGVyVHJlZUFzVGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlclRyZWVBc1RleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJOTM5ODg1QzEwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFt
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRXZlbnROYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTE1OTksNiArMTE2MDUsOCBAQAogCQlCQ0VGNDNDRTBF
NjczREExMDAxQzEyODcgLyogU3R5bGVJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBTdHlsZUltYWdlLmg7IHBhdGggPSBzdHlsZS9TdHlsZUltYWdlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0M0RDMEU2NzQwMTIwMDFDMTI4NyAvKiBOaW5lUGll
Y2VJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOaW5lUGllY2VJbWFn
ZS5oOyBwYXRoID0gc3R5bGUvTmluZVBpZWNlSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNFRjQzREYwRTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5pbmVQaWVjZUltYWdlLmNwcDsg
cGF0aCA9IHN0eWxlL05pbmVQaWVjZUltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUXVvdGVzRGF0YS5oOyBwYXRoID0gc3R5bGUvUXVvdGVz
RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzkyRjE0MjBBRDE4NUY0MDA2
OTFCRDQgLyogUXVvdGVzRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBRdW90ZXNEYXRhLmNwcDsgcGF0aCA9IHN0eWxlL1F1b3Rlc0RhdGEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGNDQ0OTBFNjc0NUUwMDAxQzEyODcgLyogU3R5bGVH
ZW5lcmF0ZWRJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZUdl
bmVyYXRlZEltYWdlLmg7IHBhdGggPSBzdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRUY0NDRDMEU2NzQ2MjgwMDFDMTI4NyAvKiBTdHls
ZUNhY2hlZEltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlQ2Fj
aGVkSW1hZ2UuaDsgcGF0aCA9IHN0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNFRjQ0NzkwRTY3NDdEMDAwMUMxMjg3IC8qIFN0eWxlQ2FjaGVk
SW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3R5bGVDYWNo
ZWRJbWFnZS5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3OTc4LDYgKzE3OTg2LDggQEAKIAkJCQlCQ0VGNDNERjBF
Njc0MTEwMDAxQzEyODcgLyogTmluZVBpZWNlSW1hZ2UuY3BwICovLAogCQkJCUJDRUY0M0RDMEU2
NzQwMTIwMDFDMTI4NyAvKiBOaW5lUGllY2VJbWFnZS5oICovLAogCQkJCUJDNUVCNURDMEU4MUI4
REQwMEIyNTk2NSAvKiBPdXRsaW5lVmFsdWUuaCAqLywKKwkJCQk5MzkyRjE0MjBBRDE4NUY0MDA2
OTFCRDQgLyogUXVvdGVzRGF0YS5jcHAgKi8sCisJCQkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0
IC8qIFF1b3Rlc0RhdGEuaCAqLywKIAkJCQlCQzhDOEZBQjBERENEMzFCMDBCNTkyRjQgLyogUmVu
ZGVyU3R5bGUuY3BwICovLAogCQkJCUJDOEM4RkFDMEREQ0QzMUIwMEI1OTJGNCAvKiBSZW5kZXJT
dHlsZS5oICovLAogCQkJCUJDNUVCNjY3MEU4MUNCNzEwMEIyNTk2NSAvKiBSZW5kZXJTdHlsZUNv
bnN0YW50cy5oICovLApAQCAtMTg3OTgsNiArMTg4MDgsOCBAQAogCQkJCUE4NzFERUNGMEExNTMw
QzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggKi8sCiAJCQkJQTQzQkY1OUExMTQ5MjkyODAwQzY0
M0NBIC8qIFJlbmRlclByb2dyZXNzLmNwcCAqLywKIAkJCQlBNDNCRjU5QjExNDkyOTI4MDBDNjQz
Q0EgLyogUmVuZGVyUHJvZ3Jlc3MuaCAqLywKKwkJCQk5MzkyRjE0MzBBRDE4NUZFMDA2OTFCRDQg
LyogUmVuZGVyUXVvdGUuY3BwICovLAorCQkJCTkzOTJGMTQxMEFEMTg1RjQwMDY5MUJENCAvKiBS
ZW5kZXJRdW90ZS5oICovLAogCQkJCUE4NzFERkRFMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJS
ZXBsYWNlZC5jcHAgKi8sCiAJCQkJQTg3MURGREYwQTE1Mzc2QjAwQjEyQTY4IC8qIFJlbmRlclJl
cGxhY2VkLmggKi8sCiAJCQkJQkNBODQ2RDQwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxp
Y2EuY3BwICovLApAQCAtMjE2NDYsNiArMjE2NTgsNyBAQAogCQkJCUU0RDY4Nzc5MEVEN0FFNEYw
MDZFQTk3OCAvKiBQdXJnZWFibGVCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFMzNDRDAx
MTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM5MkYxNDIwQUQxODVGNDAwNjkxQkQ0IC8qIFF1b3Rlc0RhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3OTcyMEQwMEJGMjIwMDcxQjc4MiAvKiBSYWRpYWxHcmFkaWVudEF0dHJp
YnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzRENDMTI1MUYxMkQwMDNFRjI2OSAvKiBS
YWRpb0lucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5MTgwODI0NUU1OTAwMUU5
QUJDIC8qIFJhbmdlLmggaW4gSGVhZGVycyAqLywKQEAgLTIxNzE2LDYgKzIxNzI5LDcgQEAKIAkJ
CQlCQ0ZBOTMwODEwMzMzMTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4NzFERUQ3MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNDNCRjU5RDExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3Mu
aCBpbiBIZWFkZXJzICovLAorCQkJCTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBSZW5kZXJR
dW90ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURGRTMwQTE1Mzc2QjAwQjEyQTY4IC8qIFJl
bmRlclJlcGxhY2VkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E4NDZENzBEQzY3QTM1MDAyNkMz
MDkgLyogUmVuZGVyUmVwbGljYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ3OUZBRUUxMDlBRTM3
NTAwREVENjU1IC8qIFJlbmRlclJ1YnkuaCBpbiBIZWFkZXJzICovLApAQCAtMjQzNjUsNiArMjQz
NzksNyBAQAogCQkJCTFBN0ZBNjFCMEREQTNCQkUwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3Rp
Zmllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTdGQTY0OTBEREEzQ0JBMDAyOEY4QTUgLyog
TmV0d29ya1N0YXRlTm90aWZpZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFRjQzRTAw
RTY3NDExMDAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTkzOTJGMTQyMEFEMTg1RjQwMDY5MUJENCAvKiBRdW90ZXNEYXRhLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QzRBODAwMDlENTYzMjcwMDAzQUM4RCAvKiBOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg1NEZFNzMwMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1NEZFNzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0
aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ1MDYsNiArMjQ1MjEsNyBAQAogCQkJCUJDNjBF
RkI3MEYzM0EwRTcwMDgxMkE5MyAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTg3MURFRDAwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTQzQkY1OUMxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dy
ZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzOTJGMTQ0MEFEMTg1RkUwMDY5MUJENCAvKiBS
ZW5kZXJRdW90ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREZFMjBBMTUzNzZCMDBCMTJB
NjggLyogUmVuZGVyUmVwbGFjZWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBODQ2RDYwREM2
N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3
OUZBRUQxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnkuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGU0OWY3OTIuLmNlMGMwMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuY3BwCkBAIC02MzQsNiArNjM0LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
VmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVF1
b3RlczogICAgICAgICAgICAgICAvLyBbPHN0cmluZz4gPHN0cmluZz5dKyB8IG5vbmUgfCBpbmhl
cml0CiAgICAgICAgIGlmIChpZCkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gdHJ1ZTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHBhcnNlUXVvdGVzKHByb3BJZCwgaW1w
b3J0YW50KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRp
OiAgICAgICAgIC8vIG5vcm1hbCB8IGVtYmVkIHwgYmlkaS1vdmVycmlkZSB8IGluaGVyaXQKICAg
ICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8CkBAIC0yMzU0LDYgKzIzNTYsMjggQEAg
Q1NTUGFyc2VyOjpTaXplUGFyYW1ldGVyVHlwZSBDU1NQYXJzZXI6OnBhcnNlU2l6ZVBhcmFtZXRl
cihDU1NWYWx1ZUxpc3QqIHBhcnNlZFYKICAgICB9CiB9CiAKKy8vIFsgPHN0cmluZz4gPHN0cmlu
Zz4gXSsgfCBpbmhlcml0IHwgbm9uZQorLy8gaW5oZXJpdCBhbmQgbm9uZSBhcmUgaGFuZGxlZCBp
biBwYXJzZVZhbHVlLgorYm9vbCBDU1NQYXJzZXI6OnBhcnNlUXVvdGVzKGludCBwcm9wSWQsIGJv
b2wgaW1wb3J0YW50KQoreworICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHZhbHVlcyA9IENTU1Zh
bHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKKyAgICB3aGlsZSAoQ1NTUGFyc2VyVmFs
dWUqIHZhbCA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCkpIHsKKyAgICAgICAgUmVmUHRyPENTU1Zh
bHVlPiBwYXJzZWRWYWx1ZTsKKyAgICAgICAgaWYgKHZhbC0+dW5pdCA9PSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1NUUklORykKKyAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gQ1NTUHJpbWl0aXZl
VmFsdWU6OmNyZWF0ZSh2YWwtPnN0cmluZywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgdmFsdWVzLT5hcHBl
bmQocGFyc2VkVmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsK
KyAgICB9CisgICAgaWYgKHZhbHVlcy0+bGVuZ3RoKCkpIHsKKyAgICAgICAgYWRkUHJvcGVydHko
cHJvcElkLCB2YWx1ZXMucmVsZWFzZSgpLCBpbXBvcnRhbnQpOworICAgICAgICBtX3ZhbHVlTGlz
dC0+bmV4dCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNl
OworfQorCiAvLyBbIDxzdHJpbmc+IHwgPHVyaT4gfCA8Y291bnRlcj4gfCBhdHRyKFgpIHwgb3Bl
bi1xdW90ZSB8IGNsb3NlLXF1b3RlIHwgbm8tb3Blbi1xdW90ZSB8IG5vLWNsb3NlLXF1b3RlIF0r
IHwgaW5oZXJpdAogLy8gaW4gQ1NTIDIuMSB0aGlzIGdvdCBzb21ld2hhdCByZWR1Y2VkOgogLy8g
WyA8c3RyaW5nPiB8IGF0dHIoWCkgfCBvcGVuLXF1b3RlIHwgY2xvc2UtcXVvdGUgfCBuby1vcGVu
LXF1b3RlIHwgbm8tY2xvc2UtcXVvdGUgXSsgfCBpbmhlcml0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgK
aW5kZXggNmNjZmJlMi4uOTliOWM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtNzksNiAr
NzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgcGFyc2VTaG9ydGhhbmQo
aW50IHByb3BJZCwgY29uc3QgaW50KiBwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVydGllcywgYm9v
bCBpbXBvcnRhbnQpOwogICAgICAgICBib29sIHBhcnNlNFZhbHVlcyhpbnQgcHJvcElkLCBjb25z
dCBpbnQqIHByb3BlcnRpZXMsIGJvb2wgaW1wb3J0YW50KTsKICAgICAgICAgYm9vbCBwYXJzZUNv
bnRlbnQoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOworICAgICAgICBib29sIHBhcnNlUXVv
dGVzKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKIAogICAgICAgICBQYXNzUmVmUHRyPENT
U1ZhbHVlPiBwYXJzZUF0dHIoQ1NTUGFyc2VyVmFsdWVMaXN0KiBhcmdzKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDNhNjU4NjAuLjdkYWE2OTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTcwLDYgKzcwLDcgQEAKICNp
bmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWlyLmgiCiAjaW5jbHVkZSAiUGVyc3Bl
Y3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKKyNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAjaW5j
bHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlJl
bmRlclNjcm9sbGJhclRoZW1lLmgiCkBAIC00NjYwLDM2ICs0NjYxLDU5IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIGNvbnRlbnRWYWx1ZSA9IHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7CiAgICAgICAgICAgICBzd2l0Y2gg
KGNvbnRlbnRWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORzoKLSAgICAgICAgICAgICAgICAgICAgbV9zdHls
ZS0+c2V0Q29udGVudChjb250ZW50VmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkuaW1wbCgpLCBkaWRT
ZXQpOworICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORzoKKyAg
ICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250ZW50KGNvbnRlbnRWYWx1ZS0+Z2V0U3RyaW5n
VmFsdWUoKS5pbXBsKCksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19BVFRSOiB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IENhbiBhIG5hbWVzcGFj
ZSBiZSBzcGVjaWZpZWQgZm9yIGFuIGF0dHIoZm9vKT8KKyAgICAgICAgICAgICAgICBpZiAobV9z
dHlsZS0+c3R5bGVUeXBlKCkgPT0gTk9QU0VVRE8pCisgICAgICAgICAgICAgICAgICAgIG1fc3R5
bGUtPnNldFVuaXF1ZSgpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgbV9wYXJlbnRTdHlsZS0+c2V0VW5pcXVlKCk7CisgICAgICAgICAgICAgICAgUXVhbGlmaWVk
TmFtZSBhdHRyKG51bGxBdG9tLCBjb250ZW50VmFsdWUtPmdldFN0cmluZ1ZhbHVlKCkuaW1wbCgp
LCBudWxsQXRvbSk7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29udGVudChtX2VsZW1l
bnQtPmdldEF0dHJpYnV0ZShhdHRyKS5pbXBsKCksIGRpZFNldCk7CisgICAgICAgICAgICAgICAg
ZGlkU2V0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAvLyByZWdpc3RlciB0aGUgZmFjdCB0aGF0
IHRoZSBhdHRyaWJ1dGUgdmFsdWUgYWZmZWN0cyB0aGUgc3R5bGUKKyAgICAgICAgICAgICAgICBt
X3NlbGVjdG9yQXR0cnMuYWRkKGF0dHIubG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19VUkk6IHsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnRlbnRWYWx1ZS0+aXNJ
bWFnZVZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IG1fc3R5bGUtPnNldENvbnRlbnQoY2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5
Q29udGVudCwgc3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KGNvbnRlbnRWYWx1ZSkpLCBkaWRT
ZXQpOworICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfQ09VTlRFUjogeworICAgICAgICAgICAgICAgIENvdW50ZXIqIGNvdW50ZXJWYWx1ZSA9IGNv
bnRlbnRWYWx1ZS0+Z2V0Q291bnRlclZhbHVlKCk7CisgICAgICAgICAgICAgICAgT3duUHRyPENv
dW50ZXJDb250ZW50PiBjb3VudGVyID0gYWRvcHRQdHIobmV3IENvdW50ZXJDb250ZW50KGNvdW50
ZXJWYWx1ZS0+aWRlbnRpZmllcigpLAorICAgICAgICAgICAgICAgICAgICAoRUxpc3RTdHlsZVR5
cGUpY291bnRlclZhbHVlLT5saXN0U3R5bGVOdW1iZXIoKSwgY291bnRlclZhbHVlLT5zZXBhcmF0
b3IoKSkpOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoY291bnRlci5yZWxl
YXNlKCksIGRpZFNldCk7CisgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19JREVOVDoKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbnRlbnRWYWx1
ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVPcGVuUXVvdGU6
CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoT1BFTl9RVU9URSwgZGlk
U2V0KTsKICAgICAgICAgICAgICAgICAgICAgZGlkU2V0ID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0FUVFI6IHsKLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IENhbiBhIG5hbWVzcGFjZSBi
ZSBzcGVjaWZpZWQgZm9yIGFuIGF0dHIoZm9vKT8KLSAgICAgICAgICAgICAgICAgICAgaWYgKG1f
c3R5bGUtPnN0eWxlVHlwZSgpID09IE5PUFNFVURPKQotICAgICAgICAgICAgICAgICAgICAgICAg
bV9zdHlsZS0+c2V0VW5pcXVlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG1fcGFyZW50U3R5bGUtPnNldFVuaXF1ZSgpOwotICAgICAgICAgICAg
ICAgICAgICBRdWFsaWZpZWROYW1lIGF0dHIobnVsbEF0b20sIGNvbnRlbnRWYWx1ZS0+Z2V0U3Ry
aW5nVmFsdWUoKS5pbXBsKCksIG51bGxBdG9tKTsKLSAgICAgICAgICAgICAgICAgICAgbV9zdHls
ZS0+c2V0Q29udGVudChtX2VsZW1lbnQtPmdldEF0dHJpYnV0ZShhdHRyKS5pbXBsKCksIGRpZFNl
dCk7CisgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUNsb3NlUXVvdGU6CisgICAgICAgICAg
ICAgICAgICAgIG1fc3R5bGUtPnNldENvbnRlbnQoQ0xPU0VfUVVPVEUsIGRpZFNldCk7CiAgICAg
ICAgICAgICAgICAgICAgIGRpZFNldCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIC8vIHJl
Z2lzdGVyIHRoZSBmYWN0IHRoYXQgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBhZmZlY3RzIHRoZSBzdHls
ZQotICAgICAgICAgICAgICAgICAgICBtX3NlbGVjdG9yQXR0cnMuYWRkKGF0dHIubG9jYWxOYW1l
KCkuaW1wbCgpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkk6IHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKCFjb250ZW50VmFsdWUtPmlzSW1hZ2VWYWx1ZSgpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3R5bGUt
PnNldENvbnRlbnQoY2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKENTU1Byb3BlcnR5Q29udGVudCwg
c3RhdGljX2Nhc3Q8Q1NTSW1hZ2VWYWx1ZSo+KGNvbnRlbnRWYWx1ZSkpLCBkaWRTZXQpOworICAg
ICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVOb09wZW5RdW90ZToKKyAgICAgICAgICAgICAgICAg
ICAgbV9zdHlsZS0+c2V0Q29udGVudChOT19PUEVOX1FVT1RFLCBkaWRTZXQpOwogICAgICAgICAg
ICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX0NPVU5URVI6IHsKLSAgICAgICAgICAgICAgICAgICAgQ291bnRlciogY291bnRlclZhbHVl
ID0gY29udGVudFZhbHVlLT5nZXRDb3VudGVyVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAg
T3duUHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyID0gYWRvcHRQdHIobmV3IENvdW50ZXJDb250
ZW50KGNvdW50ZXJWYWx1ZS0+aWRlbnRpZmllcigpLAotICAgICAgICAgICAgICAgICAgICAgICAg
KEVMaXN0U3R5bGVUeXBlKWNvdW50ZXJWYWx1ZS0+bGlzdFN0eWxlTnVtYmVyKCksIGNvdW50ZXJW
YWx1ZS0+c2VwYXJhdG9yKCkpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0Q29u
dGVudChjb3VudGVyLnJlbGVhc2UoKSwgZGlkU2V0KTsKKyAgICAgICAgICAgICAgICBjYXNlIENT
U1ZhbHVlTm9DbG9zZVF1b3RlOgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRDb250
ZW50KE5PX0NMT1NFX1FVT1RFLCBkaWRTZXQpOwogICAgICAgICAgICAgICAgICAgICBkaWRTZXQg
PSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWwgYW5kIG5vbmUgZG8gbm90IGhhdmUg
YW55IGVmZmVjdC4KKyAgICAgICAgICAgICAgICAgICAge30KICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTQ2OTcsNiArNDcyMSwzNyBAQCB2b2lkIENTU1N0
eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAg
ICAgICAgICBtX3N0eWxlLT5jbGVhckNvbnRlbnQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyAgICBjYXNlIENTU1Byb3BlcnR5UXVvdGVzOgorICAgICAgICBpZiAoaXNJbmhlcml0KSB7Cisg
ICAgICAgICAgICBpZiAobV9wYXJlbnRTdHlsZSkKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5z
ZXRRdW90ZXMobV9wYXJlbnRTdHlsZS0+cXVvdGVzKCkpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIGlmIChpc0luaXRpYWwpIHsKKyAgICAgICAgICAgIG1fc3R5bGUt
PnNldFF1b3RlcygwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBp
ZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpIHsKKyAgICAgICAgICAgIENTU1ZhbHVlTGlzdCogbGlz
dCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgICAgIHNpemVf
dCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKKyAgICAgICAgICAgIFF1b3Rlc0RhdGEqIGRhdGEg
PSBRdW90ZXNEYXRhOjpjcmVhdGUobGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICghZGF0YSkKKyAg
ICAgICAgICAgICAgICByZXR1cm47IC8vIE91dCBvZiBtZW1vcnkKKyAgICAgICAgICAgIFN0cmlu
ZyogcXVvdGVzID0gZGF0YS0+ZGF0YSgpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIENTU1ZhbHVlKiBpdGVtID0gbGlz
dC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoaXRl
bS0+aXNQcmltaXRpdmVWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBwcmltaXRpdmVWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7CisgICAgICAgICAgICAgICAg
QVNTRVJUKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19TVFJJTkcpOworICAgICAgICAgICAgICAgIHF1b3Rlc1tpXSA9IHByaW1pdGl2ZVZh
bHVlLT5nZXRTdHJpbmdWYWx1ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9zdHls
ZS0+c2V0UXVvdGVzKGFkb3B0UmVmKGRhdGEpKTsKKyAgICAgICAgfSBlbHNlIGlmIChwcmltaXRp
dmVWYWx1ZSkgeworICAgICAgICAgICAgQVNTRVJUKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVU
eXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCk7CisgICAgICAgICAgICBpZiAo
cHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKQorICAgICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldFF1b3RlcyhhZG9wdFJlZihRdW90ZXNEYXRhOjpjcmVhdGUoMCkpKTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIENTU1Byb3BlcnR5Q291bnRl
ckluY3JlbWVudDoKICAgICAgICAgYXBwbHlDb3VudGVyTGlzdChzdHlsZSgpLCB2YWx1ZS0+aXNW
YWx1ZUxpc3QoKSA/IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSA6IDAsIGZhbHNl
KTsKQEAgLTU5MzgsNyArNTk5Myw2IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9w
ZXJ0eShpbnQgaWQsIENTU1ZhbHVlICp2YWx1ZSkKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250
U3RyZXRjaDoKICAgICBjYXNlIENTU1Byb3BlcnR5UGFnZToKLSAgICBjYXNlIENTU1Byb3BlcnR5
UXVvdGVzOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0TGluZVRocm91Z2g6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVRleHRMaW5lVGhyb3VnaENvbG9yOgogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0
TGluZVRocm91Z2hNb2RlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3Nz
IGIvU291cmNlL1dlYkNvcmUvY3NzL2h0bWwuY3NzCmluZGV4IDBmMTNmY2IuLjk1NGY1Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9odG1sLmNzcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvaHRtbC5jc3MKQEAgLTExMywxMyArMTEzLDExIEBAIHEgewogfQogCiBxOmJlZm9yZSB7
Ci0gICAgY29udGVudDogJyInCi0gICAgLyogRklYTUU6IGNvbnRlbnQ6IG9wZW4tcXVvdGU7ICov
CisgICAgY29udGVudDogb3Blbi1xdW90ZTsKIH0KIAogcTphZnRlciB7Ci0gICAgY29udGVudDog
JyInCi0gICAgLyogRklYTUU6IGNvbnRlbnQ6IGNsb3NlLXF1b3RlOyAqLworICAgIGNvbnRlbnQ6
IGNsb3NlLXF1b3RlOwogfQogCiBjZW50ZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCA0NWI4NWRkLi5iMDEwNzc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSW5saW5lQm94KiBjcmVhdGVJ
bmxpbmVCb3hGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqIG9iaiwgYm9vbCBpc1JvCiBzdGF0aWMg
aW5saW5lIHZvaWQgZGlydHlMaW5lQm94ZXNGb3JSZW5kZXJlcihSZW5kZXJPYmplY3QqIG8sIGJv
b2wgZnVsbExheW91dCkKIHsKICAgICBpZiAoby0+aXNUZXh0KCkpIHsKLSAgICAgICAgaWYgKG8t
PnByZWZlcnJlZExvZ2ljYWxXaWR0aHNEaXJ0eSgpICYmIG8tPmlzQ291bnRlcigpKQorICAgICAg
ICBpZiAoby0+cHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KCkgJiYgKG8tPmlzQ291bnRlcigp
IHx8IG8tPmlzUXVvdGUoKSkpCiAgICAgICAgICAgICB0b1JlbmRlclRleHQobyktPmNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKDApOyAvLyBGSVhNRTogQ291bnRlcnMgZGVwZW5kIG9uIHRo
aXMgaGFjay4gTm8gY2x1ZSB3aHkuIFNob3VsZCBiZSBpbnZlc3RpZ2F0ZWQgYW5kIHJlbW92ZWQu
CiAgICAgICAgIHRvUmVuZGVyVGV4dChvKS0+ZGlydHlMaW5lQm94ZXMoZnVsbExheW91dCk7CiAg
ICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNDNl
NmJlYS4uYTVmMmM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApA
QCAtMjUyLDYgKzI1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNCbG9ja0Zsb3co
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0JveE1vZGVsT2Jq
ZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDb3VudGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNRdW90ZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRGV0YWlscygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRGV0YWlsc01hcmtlcigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3Qo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcAppbmRleCA2YTc3M2RjLi40ZGY3MTgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNw
cApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUg
IlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKKyNpbmNsdWRlICJS
ZW5kZXJRdW90ZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGV4dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMTMwLDYgKzEzMSw3
IEBAIFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjpyZW1vdmVDaGlsZE5vZGUo
UmVuZGVyT2JqZWN0KiBvd25lciwgUmVuZGVyCiAKICAgICBpZiAob2xkQ2hpbGQtPm1faGFzQ291
bnRlck5vZGVNYXApCiAgICAgICAgIFJlbmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVyTm9kZXMo
b2xkQ2hpbGQpOworICAgIFJlbmRlclF1b3RlOjpyZW5kZXJlclJlbW92ZWRGcm9tVHJlZShvbGRD
aGlsZCk7CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkK
ICAgICAgICAgb3duZXItPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUoKS0+Y2hpbGRyZW5DaGFu
Z2VkKG93bmVyKTsKQEAgLTE3Nyw4ICsxNzksOCBAQCB2b2lkIFJlbmRlck9iamVjdENoaWxkTGlz
dDo6YXBwZW5kQ2hpbGROb2RlKFJlbmRlck9iamVjdCogb3duZXIsIFJlbmRlck9iamVjdCogbgog
ICAgICAgICBpZiAoIW5ld0NoaWxkLT5pc0Zsb2F0aW5nT3JQb3NpdGlvbmVkKCkgJiYgb3duZXIt
PmNoaWxkcmVuSW5saW5lKCkpCiAgICAgICAgICAgICBvd25lci0+ZGlydHlMaW5lc0Zyb21DaGFu
Z2VkQ2hpbGQobmV3Q2hpbGQpOwogICAgIH0KLQogICAgIFJlbmRlckNvdW50ZXI6OnJlbmRlcmVy
U3VidHJlZUF0dGFjaGVkKG5ld0NoaWxkKTsKKyAgICBSZW5kZXJRdW90ZTo6cmVuZGVyZXJTdWJ0
cmVlQXR0YWNoZWQobmV3Q2hpbGQpOwogICAgIG5ld0NoaWxkLT5zZXROZWVkc0xheW91dEFuZFBy
ZWZXaWR0aHNSZWNhbGMoKTsgLy8gR29lcyB1cCB0aGUgY29udGFpbmluZyBibG9jayBoaWVyYXJj
aHkuCiAgICAgaWYgKCFvd25lci0+bm9ybWFsQ2hpbGROZWVkc0xheW91dCgpKQogICAgICAgICBv
d25lci0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlKTsgLy8gV2UgbWF5IHN1cHBseSB0aGUgc3Rh
dGljIHBvc2l0aW9uIGZvciBhbiBhYnNvbHV0ZSBwb3NpdGlvbmVkIGNoaWxkLgpAQCAtMjM5LDYg
KzI0MSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0OjppbnNlcnRDaGlsZE5vZGUoUmVu
ZGVyT2JqZWN0KiBvd25lciwgUmVuZGVyT2JqZWN0KiBjCiAgICAgfQogCiAgICAgUmVuZGVyQ291
bnRlcjo6cmVuZGVyZXJTdWJ0cmVlQXR0YWNoZWQoY2hpbGQpOworICAgIFJlbmRlclF1b3RlOjpy
ZW5kZXJlclN1YnRyZWVBdHRhY2hlZChjaGlsZCk7CiAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0
QW5kUHJlZldpZHRoc1JlY2FsYygpOwogICAgIGlmICghb3duZXItPm5vcm1hbENoaWxkTmVlZHNM
YXlvdXQoKSkKICAgICAgICAgb3duZXItPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSk7IC8vIFdl
IG1heSBzdXBwbHkgdGhlIHN0YXRpYyBwb3NpdGlvbiBmb3IgYW4gYWJzb2x1dGUgcG9zaXRpb25l
ZCBjaGlsZC4KQEAgLTQ2MCwxMCArNDYzLDE0IEBAIHZvaWQgUmVuZGVyT2JqZWN0Q2hpbGRMaXN0
Ojp1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyT2JqZWN0KiBvd25lciwgUHNldWRvCiAg
ICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBpbWFnZTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgotICAgICAg
ICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25lci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291
bnRlcihvd25lci0+ZG9jdW1lbnQoKSwgKmNvbnRlbnQtPmNvdW50ZXIoKSk7Ci0gICAgICAgICAg
ICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgorICAgICAgICAgICAg
cmVuZGVyZXIgPSBuZXcgKG93bmVyLT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJDb3VudGVyKG93bmVy
LT5kb2N1bWVudCgpLCAqY29udGVudC0+Y291bnRlcigpKTsKKyAgICAgICAgICAgIHJlbmRlcmVy
LT5zZXRTdHlsZShwc2V1ZG9FbGVtZW50U3R5bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ09OVEVOVF9RVU9URToKKyAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChvd25l
ci0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyUXVvdGUob3duZXItPmRvY3VtZW50KCksIGNvbnRlbnQt
PnF1b3RlKCkpOworICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRT
dHlsZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZW5k
ZXJlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYzOTU4MgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJRdW90ZS5jcHAKQEAgLTAsMCArMSwzMzAgQEAK
Ky8qKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyUXVvdGUuaCIKKwor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgorI2luY2x1ZGUgIlJlbmRlclN0
eWxlLmgiCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0
cmluZy5oPgorCisjZGVmaW5lIFVOS05PV05fREVQVEggLTEKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworc3RhdGljIGlubGluZSB2b2lkIGFkanVzdERlcHRoKGludCAmZGVwdGgsIFF1b3RlVHlwZSB0
eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgT1BFTl9RVU9URToKKyAgICBj
YXNlIE5PX09QRU5fUVVPVEU6CisgICAgICAgICsrZGVwdGg7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ0xPU0VfUVVPVEU6CisgICAgY2FzZSBOT19DTE9TRV9RVU9URToKKyAgICAgICAgaWYg
KGRlcHRoKQorICAgICAgICAgICAgLS1kZXB0aDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCitSZW5kZXJRdW90
ZTo6UmVuZGVyUXVvdGUoRG9jdW1lbnQqIG5vZGUsIFF1b3RlVHlwZSBxdW90ZSkKKyAgICA6IFJl
bmRlclRleHQobm9kZSwgU3RyaW5nSW1wbDo6ZW1wdHkoKSkKKyAgICAsIG1fdHlwZShxdW90ZSkK
KyAgICAsIG1fZGVwdGgoVU5LTk9XTl9ERVBUSCkKKyAgICAsIG1fbmV4dCgwKQorICAgICwgbV9w
cmV2aW91cygwKQoreworfQorCitSZW5kZXJRdW90ZTo6flJlbmRlclF1b3RlKCkKK3sKK30KKwor
Y29uc3QgY2hhciogUmVuZGVyUXVvdGU6OnJlbmRlck5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biAiUmVuZGVyUXVvdGUiOworfQorCisvLyBUaGlzIGZ1bmN0aW9uIHBsYWNlcyBhIGxpc3Qgb2Yg
cXVvdGUgcmVuZGVyZXJzIHN0YXJ0aW5nIGF0ICJ0aGlzIiBpbiB0aGUgbGlzdCBvZiBxdW90ZSBy
ZW5kZXJlcnMgYWxyZWFkeQorLy8gaW4gdGhlIGRvY3VtZW50J3MgcmVuZGVyZXIgdHJlZS4KKy8v
IFRoZSBhc3N1bXB0aW9ucyBhcmUgbWFkZSAoZm9yIHBlcmZvcm1hbmNlKToKKy8vIDEuIFRoZSBs
aXN0IG9mIHF1b3RlcyBhbHJlYWR5IGluIHRoZSByZW5kZXJlcnMgdHJlZSBvZiB0aGUgZG9jdW1l
bnQgaXMgYWxyZWFkeSBpbiBhIGNvbnNpc3RlbnQgc3RhdGUKKy8vIChBbGwgcXVvdGUgcmVuZGVy
ZXJzIGFyZSBsaW5rZWQgYW5kIGhhdmUgdGhlIGNvcnJlY3QgZGVwdGggc2V0KQorLy8gMi4gVGhl
IHF1b3RlIHJlbmRlcmVycyBvZiB0aGUgaW5zZXJ0ZWQgbGlzdCBhcmUgaW4gYSB0cmVlIG9mIHJl
bmRlcmVycyBvZiB0aGVpciBvd24gd2hpY2ggaGFzIGJlZW4ganVzdAorLy8gaW5zZXJ0ZWQgaW4g
dGhlIG1haW4gcmVuZGVyZXIgdHJlZSB3aXRoIGl0cyByb290IGFzIGNoaWxkIG9mIHNvbWUgcmVu
ZGVyZXIuCisvLyAzLiBUaGUgcXVvdGUgcmVuZGVyZXJzIGluIHRoZSBpbnNlcnRlZCBsaXN0IGhh
dmUgZGVwdGhzIGNvbnNpc3RlbnQgd2l0aCB0aGVpciBwb3NpdGlvbiBpbiB0aGUgbGlzdCByZWxh
dGl2ZQorLy8gdG8gInRoaXMiLCB0aHVzIGlmICJ0aGlzIiBkb2VzIG5vdCBuZWVkIHRvIGNoYW5n
ZSBpdHMgZGVwdGggdXBvbiBpbnNlcnRpb24sIHRoZSBvdGhlciByZW5kZXJlcnMgaW4gdGhlIGxp
c3QgZG9uJ3QKKy8vIG5lZWQgdG8gZWl0aGVyLgordm9pZCBSZW5kZXJRdW90ZTo6cGxhY2VRdW90
ZSgpCit7CisgICAgUmVuZGVyUXVvdGUqIGhlYWQgPSB0aGlzOworICAgIEFTU0VSVCghaGVhZC0+
bV9wcmV2aW91cyk7CisgICAgUmVuZGVyUXVvdGUqIHRhaWwgPSAwOworICAgIGZvciAoUmVuZGVy
T2JqZWN0KiBwcmVkZWNlc3NvciA9IGhlYWQtPnByZXZpb3VzSW5QcmVPcmRlcigpOyBwcmVkZWNl
c3NvcjsgcHJlZGVjZXNzb3IgPSBwcmVkZWNlc3Nvci0+cHJldmlvdXNJblByZU9yZGVyKCkpIHsK
KyAgICAgICAgaWYgKCFwcmVkZWNlc3Nvci0+aXNRdW90ZSgpKQorICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIGhlYWQtPm1fcHJldmlvdXMgPSB0b1JlbmRlclF1b3RlKHByZWRlY2Vzc29y
KTsKKyAgICAgICAgaWYgKGhlYWQtPm1fcHJldmlvdXMtPm1fbmV4dCkgeworICAgICAgICAgICAg
Ly8gV2UgbmVlZCB0byBzcGxpY2UgdGhlIGxpc3Qgb2YgcXVvdGVzIGhlYWRlZCBieSBoZWFkIGlu
dG8gdGhlIGRvY3VtZW50J3MgbGlzdCBvZiBxdW90ZXMuCisgICAgICAgICAgICB0YWlsID0gaGVh
ZDsKKyAgICAgICAgICAgIHdoaWxlICh0YWlsLT5tX25leHQpCisgICAgICAgICAgICAgICAgIHRh
aWwgPSB0YWlsLT5tX25leHQ7CisgICAgICAgICAgICB0YWlsLT5tX25leHQgPSBoZWFkLT5tX3By
ZXZpb3VzLT5tX25leHQ7CisgICAgICAgICAgICBBU1NFUlQodGFpbC0+bV9uZXh0LT5tX3ByZXZp
b3VzID09IGhlYWQtPm1fcHJldmlvdXMpOworICAgICAgICAgICAgdGFpbC0+bV9uZXh0LT5tX3By
ZXZpb3VzID0gIHRhaWw7CisgICAgICAgICAgICB0YWlsID0gdGFpbC0+bV9uZXh0OyAvLyBUaGlz
IG1hcmtzIHRoZSBzcGxpY2luZyBwb2ludCBoZXJlIHRoZXJlIG1heSBiZSBhIGRlcHRoIGRpc2Nv
bnRpbnVpdHkKKyAgICAgICAgfQorICAgICAgICBoZWFkLT5tX3ByZXZpb3VzLT5tX25leHQgPSBo
ZWFkOworICAgICAgICBBU1NFUlQoaGVhZC0+bV9wcmV2aW91cy0+bV9kZXB0aCAhPSBVTktOT1dO
X0RFUFRIKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGludCBuZXdEZXB0aDsKKyAgICBp
ZiAoIWhlYWQtPm1fcHJldmlvdXMpIHsKKyAgICAgICAgbmV3RGVwdGggPSAwOworICAgICAgICBn
b3RvIHNraXBOZXdEZXB0aENhbGM7CisgICAgfQorICAgIG5ld0RlcHRoID0gaGVhZC0+bV9wcmV2
aW91cy0+bV9kZXB0aDsKKyAgICBkbyB7CisgICAgICAgIGFkanVzdERlcHRoKG5ld0RlcHRoLCBo
ZWFkLT5tX3ByZXZpb3VzLT5tX3R5cGUpOworc2tpcE5ld0RlcHRoQ2FsYzoKKyAgICAgICAgaWYg
KGhlYWQtPm1fZGVwdGggPT0gbmV3RGVwdGgpIHsgLy8gQWxsIHJlbWFpbmluZyBkZXB0aCBzaG91
bGQgYmUgY29ycmVjdCBleGNlcHQgaWYgc3BsaWNpbmcgd2FzIGRvbmUuCisgICAgICAgICAgICBp
ZiAoIXRhaWwpIC8vIFdlJ3ZlIGRvbmUgdGhlIHBvc3Qgc3BsaWNpbmcgc2VjdGlvbiBhbHJlYWR5
IG9yIHRoZXJlIHdhcyBubyBzcGxpY2luZy4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGhlYWQgPSB0YWlsOyAvLyBDb250aW51ZSBhZnRlciB0aGUgc3BsaWNpbmcgcG9pbnQK
KyAgICAgICAgICAgIHRhaWwgPSAwOyAvLyBNYXJrIHRoZSBwb3NzaWJsZSBzcGxpY2luZyBwb2lu
dCBkaXNjb250aW51aXR5IGZpeGVkLgorICAgICAgICAgICAgbmV3RGVwdGggPSBoZWFkLT5tX3By
ZXZpb3VzLT5tX2RlcHRoOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAg
ICAgaGVhZC0+bV9kZXB0aCA9IG5ld0RlcHRoOworICAgICAgICAvLyBGSVhNRTogSWYgdGhlIHdp
ZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHF1b3RhdGlvbiBjaGFyYWN0ZXJzIGRvZXMgbm90IGNoYW5n
ZSB3ZSBtYXkgb25seSBuZWVkIHRvCisgICAgICAgIC8vIEludmFsaWRhdGUgdGhlIHJlbmRlcmVy
J3MgYXJlYSBub3QgYSByZWxheW91dC4KKyAgICAgICAgaGVhZC0+c2V0TmVlZHNMYXlvdXRBbmRQ
cmVmV2lkdGhzUmVjYWxjKCk7CisgICAgICAgIGhlYWQgPSBoZWFkLT5tX25leHQ7CisgICAgICAg
IGlmIChoZWFkID09IHRhaWwpIC8vIFdlIGFyZSBhdCB0aGUgc3BsaWNpbmcgcG9pbnQKKyAgICAg
ICAgICAgIHRhaWwgPSAwOyAvLyBNYXJrIHRoZSBwb3NzaWJsZSBkZXB0aCBkaXNjb250aW51aXR5
IGZpeGVkLgorICAgIH0gd2hpbGUgKGhlYWQpOworfQorCisjZGVmaW5lIEFSUkFZX1NJWkUoQ2Fy
cmF5KSAoc2l6ZW9mKENhcnJheSkgLyBzaXplb2YoKkNhcnJheSkpCisjZGVmaW5lIExBTkdVQUdF
X0RBVEEobmFtZSwgbGFuZ3VhZ2VTb3VyY2VBcnJheSkgeyBuYW1lLCBsYW5ndWFnZVNvdXJjZUFy
cmF5LCBBUlJBWV9TSVpFKGxhbmd1YWdlU291cmNlQXJyYXkpIH0KKyNkZWZpbmUgVSh4KSAoKGNv
bnN0IFVDaGFyKilMIyN4KQorCitzdGF0aWMgY29uc3QgVUNoYXIqIHNpbXBsZVF1b3Rlc1tdID0g
e1UoIlwiIiksIFUoIlwiIiksIFUoIiciKSwgVSgiJyIpfTsKKworc3RhdGljIGNvbnN0IFVDaGFy
KiBlbmdsaXNoUXVvdGVzW10gPSB7VSgiXHgyMDFDIiksIFUoIlx4MjAxRCIpLCBVKCJceDIwMTgi
KSwgVSgiXHgyMDE5Iil9Oworc3RhdGljIGNvbnN0IFVDaGFyKiBub3J3ZWdpYW5RdW90ZXNbXSA9
IHsgVSgiXHgwMEFCIiksIFUoIlx4MDBCQiIpLCBVKCJceDIwMzkiKSwgVSgiXHgyMDNBIikgfTsK
K3N0YXRpYyBjb25zdCBVQ2hhciogcm9tYW5pYW5RdW90ZXNbXSA9IHsgVSgiXHgyMDFFIiksIFUo
Ilx4MjAxRCIpfTsKK3N0YXRpYyBjb25zdCBVQ2hhciogcnVzc2lhblF1b3Rlc1tdID0geyBVKCJc
eDAwQUIiKSwgVSgiXHgwMEJCIiksIFUoIlx4MjAxRSIpLCBVKCJceDIwMUMiKSB9OworI3VuZGVm
IFUKKworc3RydWN0IExhbmd1YWdlRGF0YSB7CisgICAgY29uc3QgY2hhciAqbmFtZTsKKyAgICBj
b25zdCBVQ2hhciogY29uc3QqIGNvbnN0IGFycmF5OworICAgIGNvbnN0IGludCBhcnJheVNpemU7
CisgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgTGFuZ3VhZ2VEYXRhJiBjb21wYXJlVG8pIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gc3RyY21wKG5hbWUsIGNvbXBhcmVUby5uYW1lKTsKKyAg
ICB9Cit9OworCisvLyBEYXRhIG1hc3QgYmUgYWxwaGFiZXRpY2FsbHkgc29ydGVkIGFuZCBpbiBh
bGwgbG93ZXIgY2FzZSBmb3IgZmFzdCBjb21wYXJpc29uCitMYW5ndWFnZURhdGEgbGFuZ3VhZ2VE
YXRhW10gPSB7CisgICAgTEFOR1VBR0VfREFUQSgiZW4iLCBlbmdsaXNoUXVvdGVzKSwKKyAgICBM
QU5HVUFHRV9EQVRBKCJubyIsIG5vcndlZ2lhblF1b3RlcyksCisgICAgTEFOR1VBR0VfREFUQSgi
cm8iLCByb21hbmlhblF1b3RlcyksCisgICAgTEFOR1VBR0VfREFUQSgicnUiLCBydXNzaWFuUXVv
dGVzKQorfTsKKyN1bmRlZiBMQU5HVUFHRV9EQVRBCitjb25zdCBMYW5ndWFnZURhdGEqIGNvbnN0
IGxhbmd1YWdlRGF0YUVuZCA9IGxhbmd1YWdlRGF0YSArIEFSUkFZX1NJWkUobGFuZ3VhZ2VEYXRh
KTsKKworI2RlZmluZSBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNTb3VyY2Ugc2ltcGxlUXVvdGVzCisj
ZGVmaW5lIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc0NvdW50IEFSUkFZX1NJWkUoZGVmYXVsdExhbmd1
YWdlUXVvdGVzU291cmNlKQorCitzdGF0aWMgUXVvdGVzRGF0YSogZGVmYXVsdExhbmd1YWdlUXVv
dGVzVmFsdWUgPSAwOworc3RhdGljIGNvbnN0IFF1b3Rlc0RhdGEqIGRlZmF1bHRMYW5ndWFnZVF1
b3RlcygpCit7CisgICAgaWYgKCFkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZSkgeworICAgICAg
ICBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNWYWx1ZSA9IFF1b3Rlc0RhdGE6OmNyZWF0ZShkZWZhdWx0
TGFuZ3VhZ2VRdW90ZXNDb3VudCk7CisgICAgICAgIGlmICghZGVmYXVsdExhbmd1YWdlUXVvdGVz
VmFsdWUpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgU3RyaW5nKiBkYXRhID0gZGVm
YXVsdExhbmd1YWdlUXVvdGVzVmFsdWUtPmRhdGEoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBkZWZhdWx0TGFuZ3VhZ2VRdW90ZXNDb3VudDsgKytpKQorICAgICAgICAgICAgZGF0
YVtpXSA9IGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1NvdXJjZVtpXTsKKyAgICB9CisgICAgcmV0dXJu
IGRlZmF1bHRMYW5ndWFnZVF1b3Rlc1ZhbHVlOworfQorI3VuZGVmIGRlZmF1bHRMYW5ndWFnZVF1
b3Rlc1NvdXJjZQorI3VuZGVmIGRlZmF1bHRMYW5ndWFnZVF1b3Rlc0NvdW50CisKK3R5cGVkZWYg
SGFzaE1hcDxSZWZQdHI8QXRvbWljU3RyaW5nSW1wbD4sIFF1b3Rlc0RhdGEqID4gUXVvdGVzTWFw
OworCitzdGF0aWMgUXVvdGVzTWFwJiBxdW90ZXNNYXAoKQoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoUXVvdGVzTWFwLCBzdGF0aWNRdW90ZXNNYXAsICgpKTsKKyAgICByZXR1cm4gc3RhdGlj
UXVvdGVzTWFwOworfQorCitzdGF0aWMgY29uc3QgUXVvdGVzRGF0YSogcXVvdGVzRm9yTGFuZ3Vh
Z2UoQXRvbWljU3RyaW5nSW1wbCogbGFuZ3VhZ2UpCit7CisgICAgUXVvdGVzRGF0YSogcmV0dXJu
VmFsdWU7CisgICAgQXRvbWljU3RyaW5nIGxvd2VyKGxhbmd1YWdlLT5sb3dlcigpKTsKKyAgICBy
ZXR1cm5WYWx1ZSA9IHF1b3Rlc01hcCgpLmdldChsb3dlci5pbXBsKCkpOworICAgIGlmIChyZXR1
cm5WYWx1ZSkKKyAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOworICAgIENTdHJpbmcgcyhzdGF0
aWNfY2FzdDxjb25zdCBTdHJpbmcmPihsb3dlcikuYXNjaWkoKSk7CisgICAgTGFuZ3VhZ2VEYXRh
IHJlcXVlc3QgPSB7IHMuYnVmZmVyKCktPmRhdGEoKSwgMCwgMCB9OworICAgIGNvbnN0IExhbmd1
YWdlRGF0YSogbG93ZXJCb3VuZCA9IHN0ZDo6bG93ZXJfYm91bmQ8Y29uc3QgTGFuZ3VhZ2VEYXRh
KiwgY29uc3QgTGFuZ3VhZ2VEYXRhPihsYW5ndWFnZURhdGEsIGxhbmd1YWdlRGF0YUVuZCwgcmVx
dWVzdCk7CisgICAgaWYgKGxvd2VyQm91bmQgPT0gbGFuZ3VhZ2VEYXRhRW5kKQorICAgICAgICBy
ZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAgaWYgKHN0cm5jbXAobG93ZXJCb3Vu
ZC0+bmFtZSwgcmVxdWVzdC5uYW1lLCBzdHJsZW4obG93ZXJCb3VuZC0+bmFtZSkpKQorICAgICAg
ICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAgcmV0dXJuVmFsdWUgPSBRdW90
ZXNEYXRhOjpjcmVhdGUobG93ZXJCb3VuZC0+YXJyYXlTaXplKTsKKyAgICBpZiAoIXJldHVyblZh
bHVlKQorICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlUXVvdGVzKCk7CisgICAgU3RyaW5n
KiBkYXRhID0gcmV0dXJuVmFsdWUtPmRhdGEoKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGxv
d2VyQm91bmQtPmFycmF5U2l6ZTsgKytpKQorICAgICAgICBkYXRhW2ldID0gbG93ZXJCb3VuZC0+
YXJyYXlbaV07CisgICAgcXVvdGVzTWFwKCkuc2V0KGxvd2VyLmltcGwoKSwgcmV0dXJuVmFsdWUp
OworICAgIHJldHVybiByZXR1cm5WYWx1ZTsKK30KKyN1bmRlZiBBUlJBWV9TSVpFCisKK3N0YXRp
YyBjb25zdCBRdW90ZXNEYXRhKiBkZWZhdWx0UXVvdGVzKGNvbnN0IFJlbmRlck9iamVjdCogb2Jq
ZWN0KQoreworICAgIHN0YXRpYyBTdHJpbmcgbGFuZ1N0cmluZyA9ICJsYW5nIjsKKyAgICBOb2Rl
KiBub2RlID0gIG9iamVjdC0+Z2VuZXJhdGluZ05vZGUoKTsKKyAgICBFbGVtZW50KiBlbGVtZW50
OworICAgIGlmICghbm9kZSkgeworICAgICAgICBlbGVtZW50ID0gb2JqZWN0LT5kb2N1bWVudCgp
LT5ib2R5KCk7CisgICAgICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgICAgIGVsZW1lbnQgPSBv
YmplY3QtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpOworICAgIH0gZWxzZSBpZiAoIW5v
ZGUtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICBlbGVtZW50ID0gbm9kZS0+cGFyZW50RWxl
bWVudCgpOworICAgICAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZGVmYXVs
dExhbmd1YWdlUXVvdGVzKCk7CisgICAgfSBlbHNlCisgICAgICBlbGVtZW50ID0gdG9FbGVtZW50
KG5vZGUpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyogbGFuZ3VhZ2U7CisgICAgd2hpbGUgKChs
YW5ndWFnZSA9ICZlbGVtZW50LT5nZXRBdHRyaWJ1dGUobGFuZ1N0cmluZykpICYmIGxhbmd1YWdl
LT5pc051bGwoKSkgeworICAgICAgICBlbGVtZW50ID0gZWxlbWVudC0+cGFyZW50RWxlbWVudCgp
OworICAgICAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdExhbmd1
YWdlUXVvdGVzKCk7CisgICAgfQorICAgIHJldHVybiBxdW90ZXNGb3JMYW5ndWFnZShsYW5ndWFn
ZS0+aW1wbCgpKTsKK30KKworUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBSZW5kZXJRdW90ZTo6b3Jp
Z2luYWxUZXh0KCkgY29uc3QKK3sKKyAgICBpZiAoIXBhcmVudCgpKQorICAgICAgICByZXR1cm4g
MDsKKyAgICBBU1NFUlQobV9kZXB0aCAhPSBVTktOT1dOX0RFUFRIKTsKKyAgICBjb25zdCBRdW90
ZXNEYXRhKiBxdW90ZXMgPSBzdHlsZSgpLT5xdW90ZXMoKTsKKyAgICBpZiAoIXF1b3RlcykKKyAg
ICAgICAgcXVvdGVzID0gZGVmYXVsdFF1b3Rlcyh0aGlzKTsKKyAgICBpZiAoIXF1b3Rlcy0+bGVu
Z3RoKQorICAgICAgICByZXR1cm4gZW1wdHlBdG9tLmltcGwoKTsKKyAgICBpbnQgaW5kZXggPSBt
X2RlcHRoICogMjsKKyAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgTk9fT1BFTl9RVU9U
RToKKyAgICBjYXNlIE5PX0NMT1NFX1FVT1RFOgorICAgICAgICByZXR1cm4gU3RyaW5nKCIiKS5p
bXBsKCk7CisgICAgY2FzZSBDTE9TRV9RVU9URToKKyAgICAgICAgaWYgKGluZGV4KQorICAgICAg
ICAgICAgLS1pbmRleDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgKytpbmRleDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBPUEVOX1FVT1RFOgorICAgICAgICBicmVhazsKKyAgICBkZWZh
dWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGVtcHR5
QXRvbS5pbXBsKCk7CisgICAgfQorICAgIGlmIChpbmRleCA+PSBxdW90ZXMtPmxlbmd0aCkKKyAg
ICAgICAgaW5kZXggPSAocXVvdGVzLT5sZW5ndGgtMikgfCAoaW5kZXggJiAxKTsKKyAgICBpZiAo
aW5kZXggPCAwKQorICAgICAgICByZXR1cm4gZW1wdHlBdG9tLmltcGwoKTsKKyAgICByZXR1cm4g
cXVvdGVzLT5kYXRhKClbaW5kZXhdLmltcGwoKTsKK30KKwordm9pZCBSZW5kZXJRdW90ZTo6Y29t
cHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoZmxvYXQgbGVhZCkKK3sKKyAgICBzZXRUZXh0SW50
ZXJuYWwob3JpZ2luYWxUZXh0KCkpOworICAgIFJlbmRlclRleHQ6OmNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKGxlYWQpOworfQorCit2b2lkIFJlbmRlclF1b3RlOjpyZW5kZXJlclN1YnRy
ZWVBdHRhY2hlZChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQoreworICAgIGlmIChyZW5kZXJlci0+
ZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQorICAgICAgICByZXR1cm47CisgICAgZm9yIChSZW5k
ZXJPYmplY3QqIGRlc2NlbmRhbnQgPSByZW5kZXJlcjsgZGVzY2VuZGFudDsgZGVzY2VuZGFudCA9
IGRlc2NlbmRhbnQtPm5leHRJblByZU9yZGVyKHJlbmRlcmVyKSkKKyAgICAgICAgaWYgKGRlc2Nl
bmRhbnQtPmlzUXVvdGUoKSkgeworICAgICAgICAgICAgdG9SZW5kZXJRdW90ZShkZXNjZW5kYW50
KS0+cGxhY2VRdW90ZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KK30KKwordm9p
ZCBSZW5kZXJRdW90ZTo6cmVuZGVyZXJSZW1vdmVkRnJvbVRyZWUoUmVuZGVyT2JqZWN0KiBzdWJ0
cmVlUm9vdCkKK3sKKyAgICBpZiAoc3VidHJlZVJvb3QtPmRvY3VtZW50QmVpbmdEZXN0cm95ZWQo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBkZXNjZW5kYW50ID0g
c3VidHJlZVJvb3Q7IGRlc2NlbmRhbnQ7IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0SW5Q
cmVPcmRlcihzdWJ0cmVlUm9vdCkpCisgICAgICAgIGlmIChkZXNjZW5kYW50LT5pc1F1b3RlKCkp
IHsKKyAgICAgICAgICAgIFJlbmRlclF1b3RlKiByZW1vdmVkUXVvdGUgPSB0b1JlbmRlclF1b3Rl
KGRlc2NlbmRhbnQpOworICAgICAgICAgICAgUmVuZGVyUXVvdGUqIGxhc3RRdW90ZUJlZm9yZSA9
IHJlbW92ZWRRdW90ZS0+bV9wcmV2aW91czsKKyAgICAgICAgICAgIHJlbW92ZWRRdW90ZS0+bV9w
cmV2aW91cyA9IDA7CisgICAgICAgICAgICBpbnQgZGVwdGggPSByZW1vdmVkUXVvdGUtPm1fZGVw
dGg7CisgICAgICAgICAgICBmb3IgKGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT5uZXh0SW5QcmVP
cmRlcihzdWJ0cmVlUm9vdCk7IGRlc2NlbmRhbnQ7IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT5u
ZXh0SW5QcmVPcmRlcihzdWJ0cmVlUm9vdCkpCisgICAgICAgICAgICAgICAgaWYgKGRlc2NlbmRh
bnQtPmlzUXVvdGUoKSkKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlZFF1b3RlID0gdG9SZW5k
ZXJRdW90ZShkZXNjZW5kYW50KTsKKyAgICAgICAgICAgIFJlbmRlclF1b3RlKiBxdW90ZUFmdGVy
ID0gcmVtb3ZlZFF1b3RlLT5tX25leHQ7CisgICAgICAgICAgICByZW1vdmVkUXVvdGUtPm1fbmV4
dCA9IDA7CisgICAgICAgICAgICBpZiAobGFzdFF1b3RlQmVmb3JlKQorICAgICAgICAgICAgICAg
IGxhc3RRdW90ZUJlZm9yZS0+bV9uZXh0ID0gcXVvdGVBZnRlcjsKKyAgICAgICAgICAgIGlmIChx
dW90ZUFmdGVyKSB7CisgICAgICAgICAgICAgICAgcXVvdGVBZnRlci0+bV9wcmV2aW91cyA9IGxh
c3RRdW90ZUJlZm9yZTsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChkZXB0aCA9PSBxdW90ZUFmdGVyLT5tX2RlcHRoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIHF1b3RlQWZ0ZXItPm1fZGVwdGggPSBkZXB0
aDsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVBZnRlci0+c2V0TmVlZHNMYXlvdXRBbmRQcmVm
V2lkdGhzUmVjYWxjKCk7CisgICAgICAgICAgICAgICAgICAgIGFkanVzdERlcHRoKGRlcHRoLCBx
dW90ZUFmdGVyLT5tX3R5cGUpOworICAgICAgICAgICAgICAgICAgICBxdW90ZUFmdGVyID0gcXVv
dGVBZnRlci0+bV9uZXh0OworICAgICAgICAgICAgICAgIH0gd2hpbGUgKHF1b3RlQWZ0ZXIpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KK30KKwordm9pZCBS
ZW5kZXJRdW90ZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBjb25zdCBRdW90ZXNEYXRhKiBuZXdRdW90ZXMg
PSBzdHlsZSgpLT5xdW90ZXMoKTsKKyAgICBjb25zdCBRdW90ZXNEYXRhKiBvbGRRdW90ZXMgPSBv
bGRTdHlsZSA/IG9sZFN0eWxlLT5xdW90ZXMoKSA6IDA7CisgICAgaWYgKCEoKG5ld1F1b3RlcyAm
JiBvbGRRdW90ZXMgJiYgKCpuZXdRdW90ZXMgPT0gKm9sZFF1b3RlcykpIHx8ICghbmV3UXVvdGVz
ICYmICFvbGRRdW90ZXMpKSkKKyAgICAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVj
YWxjKCk7CisgICAgUmVuZGVyVGV4dDo6c3R5bGVEaWRDaGFuZ2UoZGlmZiwgb2xkU3R5bGUpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUXVvdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJR
dW90ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ZTU0MzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUXVvdGUuaApAQCAt
MCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgUmVuZGVyUXVvdGVfaAorI2RlZmluZSBSZW5kZXJR
dW90ZV9oCisKKyNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgorI2luY2x1ZGUgIlJl
bmRlclRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJRdW90ZSA6
IHB1YmxpYyBSZW5kZXJUZXh0IHsKK3B1YmxpYzoKKyAgICBSZW5kZXJRdW90ZShEb2N1bWVudCos
IGNvbnN0IFF1b3RlVHlwZSk7CisgICAgdmlydHVhbCB+UmVuZGVyUXVvdGUoKTsKKworICAgIHN0
YXRpYyB2b2lkIHJlbmRlcmVyU3VidHJlZUF0dGFjaGVkKFJlbmRlck9iamVjdCopOworICAgIHN0
YXRpYyB2b2lkIHJlbmRlcmVyUmVtb3ZlZEZyb21UcmVlKFJlbmRlck9iamVjdCopOworcHJvdGVj
dGVkOgorICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7Citwcml2YXRlOgorICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciogcmVuZGVyTmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1F1b3RlKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4g
b3JpZ2luYWxUZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKGZsb2F0IGxlYWRXaWR0aCk7CisgICAgUXVvdGVUeXBlIG1fdHlwZTsKKyAg
ICBpbnQgbV9kZXB0aDsKKyAgICBSZW5kZXJRdW90ZSogbV9uZXh0OworICAgIFJlbmRlclF1b3Rl
KiBtX3ByZXZpb3VzOworICAgIHZvaWQgcGxhY2VRdW90ZSgpOworfTsKKworaW5saW5lIFJlbmRl
clF1b3RlKiB0b1JlbmRlclF1b3RlKFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIEFTU0VS
VCghb2JqZWN0IHx8IG9iamVjdC0+aXNRdW90ZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
UmVuZGVyUXVvdGUqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRv
aW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyUXVvdGUoY29uc3QgUmVuZGVy
UXVvdGUqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVuZGVyUXVv
dGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbElu
T25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAK
aW5kZXggNzYwZjAyZC4uMTk1ZmEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyaW5nQWxsSW5PbmUuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
T2JqZWN0Q2hpbGRMaXN0LmNwcCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0LmNwcCIKICNpbmNsdWRl
ICJSZW5kZXJQcm9ncmVzcy5jcHAiCisjaW5jbHVkZSAiUmVuZGVyUXVvdGUuY3BwIgogI2luY2x1
ZGUgIlJlbmRlclJlcGxhY2VkLmNwcCIKICNpbmNsdWRlICJSZW5kZXJSZXBsaWNhLmNwcCIKICNp
bmNsdWRlICJSZW5kZXJSdWJ5LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvQ29udGVudERhdGEuY3BwCmluZGV4IGQxNTBmNzcuLmFiNTA0ZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcApAQCAtNTEsNiArNTEsOCBA
QCBib29sIENvbnRlbnREYXRhOjpkYXRhRXF1aXZhbGVudChjb25zdCBDb250ZW50RGF0YSYgb3Ro
ZXIpIGNvbnN0CiAgICAgICAgIHJldHVybiBTdHlsZUltYWdlOjppbWFnZXNFcXVpdmFsZW50KGlt
YWdlKCksIG90aGVyLmltYWdlKCkpOwogICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgogICAgICAg
ICByZXR1cm4gKmNvdW50ZXIoKSA9PSAqb3RoZXIuY291bnRlcigpOworICAgIGNhc2UgQ09OVEVO
VF9RVU9URToKKyAgICAgICAgcmV0dXJuIHF1b3RlKCkgPT0gb3RoZXIucXVvdGUoKTsKICAgICB9
CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTcxLDYgKzczLDggQEAgdm9pZCBDb250
ZW50RGF0YTo6ZGVsZXRlQ29udGVudCgpCiAgICAgY2FzZSBDT05URU5UX0NPVU5URVI6CiAgICAg
ICAgIGRlbGV0ZSBtX2NvbnRlbnQubV9jb3VudGVyOwogICAgICAgICBicmVhazsKKyAgICBjYXNl
IENPTlRFTlRfUVVPVEU6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIG1fdHlwZSA9IENP
TlRFTlRfTk9ORTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9D
b250ZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRh
LmgKaW5kZXggMTVmNjkxMi4uY2NlMzc1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0NvbnRlbnREYXRhLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNDb3VudGVyKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IENPTlRFTlRfQ09VTlRFUjsgfQog
ICAgIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDT05URU5UX09CSkVD
VDsgfQogICAgIGJvb2wgaXNOb25lKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IENPTlRFTlRf
Tk9ORTsgfQorICAgIGJvb2wgaXNRdW90ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBDT05U
RU5UX1FVT1RFOyB9CiAgICAgYm9vbCBpc1RleHQoKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0g
Q09OVEVOVF9URVhUOyB9CiAKICAgICBTdHlsZUNvbnRlbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KQEAgLTkzLDYgKzk0LDE4IEBAIHB1YmxpYzoKICAgICAgICAgbV9jb250
ZW50Lm1fY291bnRlciA9IGNvdW50ZXIubGVha1B0cigpOwogICAgIH0KIAorICAgIFF1b3RlVHlw
ZSBxdW90ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNRdW90ZSgpKTsKKyAgICAg
ICAgcmV0dXJuIG1fY29udGVudC5tX3F1b3RlOworICAgIH0KKyAgICB2b2lkIHNldFF1b3RlKFF1
b3RlVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgZGVsZXRlQ29udGVudCgpOworICAgICAgICBt
X3R5cGUgPSBDT05URU5UX1FVT1RFOworICAgICAgICBtX2NvbnRlbnQubV9xdW90ZSA9IHR5cGU7
CisgICAgfQorCiAgICAgQ29udGVudERhdGEqIG5leHQoKSBjb25zdCB7IHJldHVybiBtX25leHQu
Z2V0KCk7IH0KICAgICB2b2lkIHNldE5leHQoUGFzc093blB0cjxDb250ZW50RGF0YT4gbmV4dCkg
eyBtX25leHQgPSBuZXh0OyB9CiAKQEAgLTEwNCw2ICsxMTcsNyBAQCBwcml2YXRlOgogICAgICAg
ICBTdHlsZUltYWdlKiBtX2ltYWdlOwogICAgICAgICBTdHJpbmdJbXBsKiBtX3RleHQ7CiAgICAg
ICAgIENvdW50ZXJDb250ZW50KiBtX2NvdW50ZXI7CisgICAgICAgIFF1b3RlVHlwZSBtX3F1b3Rl
OwogICAgIH0gbV9jb250ZW50OwogICAgIE93blB0cjxDb250ZW50RGF0YT4gbV9uZXh0OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjlmZTNmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwCkBAIC0wLDAgKzEs
NjAgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUXVvdGVzRGF0YS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1F1b3Rlc0RhdGEqIFF1b3Rlc0RhdGE6OmNyZWF0
ZShpbnQgc3RyaW5nQ291bnQpCit7CisgICAgY2hhciogdG1wID0gbmV3IGNoYXJbc2l6ZW9mKFF1
b3Rlc0RhdGEpK3NpemVvZihTdHJpbmcpKnN0cmluZ0NvdW50XTsKKyAgICBpZiAoIXRtcCkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgbmV3ICh0bXApIFF1b3Rlc0RhdGEoc3RyaW5nQ291bnQpOwor
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RyaW5nQ291bnQ7ICsraSkKKyAgICAgICAgbmV3ICh0
bXAgK3NpemVvZihRdW90ZXNEYXRhKSArIHNpemVvZihTdHJpbmcpKmkpIFN0cmluZygpOworICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PFF1b3Rlc0RhdGEqPih0bXApOworfQorCitib29sIFF1
b3Rlc0RhdGE6Om9wZXJhdG9yPT0oY29uc3QgUXVvdGVzRGF0YSYgb3RoZXIpIGNvbnN0Cit7Cisg
ICAgaWYgKHRoaXMgPT0gJm90aGVyKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoISZv
dGhlciB8fCAhdGhpcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChsZW5ndGggIT0g
b3RoZXIubGVuZ3RoKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY29uc3QgU3RyaW5nKiBt
eURhdGEgPSBkYXRhKCk7CisgICAgY29uc3QgU3RyaW5nKiBvdGhlckRhdGEgPSBvdGhlci5kYXRh
KCk7CisgICAgZm9yIChpbnQgaSA9IGxlbmd0aC0xOyBpID49IDA7IC0taSkKKyAgICAgICAgaWYg
KG15RGF0YVtpXSAhPSBvdGhlckRhdGFbaV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK1F1b3Rlc0RhdGE6On5RdW90ZXNEYXRhKCkKK3sKKyAgICBT
dHJpbmcqIHAgPSBkYXRhKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkK
KyAgICAgICAgcFtpXS5+U3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmOGE2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KworI2lmbmRlZiBRdW90ZXNEYXRhX2gKKyNkZWZpbmUgUXVvdGVzRGF0YV9oCisKKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUXVvdGVzRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFF1
b3Rlc0RhdGE+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5RdW90ZXNEYXRhKCk7CisgICAgc3Rh
dGljIFF1b3Rlc0RhdGEqIGNyZWF0ZShpbnQgc3RyaW5nQ291bnQpOworICAgIFN0cmluZyogZGF0
YSgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8U3RyaW5nKj4odGhpcysxKTsgfQorICAgIGNv
bnN0IFN0cmluZyogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
U3RyaW5nKj4odGhpcysxKTsgfQorICAgIGludCBsZW5ndGg7CisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFF1b3Rlc0RhdGEmKSBjb25zdDsKKyAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lk
KiBwKSB7IGRlbGV0ZVtdIHN0YXRpY19jYXN0PGNoYXIqPihwKTsgfQorcHJpdmF0ZToKKyAgICBR
dW90ZXNEYXRhKGludCBzdHJpbmdDb3VudCkgOiBsZW5ndGgoc3RyaW5nQ291bnQpIHt9Cit9Owor
Cit9CisjZW5kaWYgLy8gUXVvdGVzRGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBiNzZhMzUwLi44MWRhNDFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVT
ZWxlY3Rvci5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIlF1b3Rlc0Rh
dGEuaCIKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgogI2luY2x1ZGUgIlNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCkBAIC02MDUsNiArNjA2LDEz
IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEN1cnNvckxpc3QoUGFzc1JlZlB0cjxDdXJzb3JMaXN0
PiBvdGhlcikKICAgICByYXJlSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+Y3Vyc29yRGF0YSA9IG90
aGVyOwogfQogCit2b2lkIFJlbmRlclN0eWxlOjpzZXRRdW90ZXMoUGFzc1JlZlB0cjxRdW90ZXNE
YXRhPiBxKQoreworICAgIGlmICgqcmFyZUluaGVyaXRlZERhdGEtPnF1b3Rlcy5nZXQoKSA9PSAq
cS5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJhcmVJbmhlcml0ZWREYXRhLmFjY2Vzcygp
LT5xdW90ZXMgPSBxOworfQorCiB2b2lkIFJlbmRlclN0eWxlOjpjbGVhckN1cnNvckxpc3QoKQog
ewogICAgIGlmIChyYXJlSW5oZXJpdGVkRGF0YS0+Y3Vyc29yRGF0YSkKQEAgLTY3Miw2ICs2ODAs
MTEgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0Q29udGVudChQYXNzT3duUHRyPENvdW50ZXJDb250
ZW50PiBjb3VudGVyLCBib29sIGFkZCkKICAgICBwcmVwYXJlVG9TZXRDb250ZW50KDAsIGFkZCkt
PnNldENvdW50ZXIoY291bnRlcik7CiB9CiAKK3ZvaWQgUmVuZGVyU3R5bGU6OnNldENvbnRlbnQo
UXVvdGVUeXBlIHF1b3RlLCBib29sIGFkZCkKK3sKKyAgICBwcmVwYXJlVG9TZXRDb250ZW50KDAs
IGFkZCktPnNldFF1b3RlKHF1b3RlKTsKK30KKwogdm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFu
c2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgSW50U2l6ZSYgYm9y
ZGVyQm94U2l6ZSwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0CiB7CiAg
ICAgLy8gdHJhbnNmb3JtLW9yaWdpbiBicmFja2V0cyB0aGUgdHJhbnNmb3JtIHdpdGggdHJhbnNs
YXRlIG9wZXJhdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCmluZGV4IDU1ODU4MGIuLjY0YWYzMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xMTI2LDEwICsxMTI2LDE0IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldENvbnRlbnQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiwgYm9vbCBhZGQgPSBm
YWxzZSk7CiAgICAgdm9pZCBzZXRDb250ZW50KFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4sIGJvb2wg
YWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0Q29udGVudChQYXNzT3duUHRyPENvdW50ZXJDb250
ZW50PiwgYm9vbCBhZGQgPSBmYWxzZSk7CisgICAgdm9pZCBzZXRDb250ZW50KFF1b3RlVHlwZSwg
Ym9vbCBhZGQgPSBmYWxzZSk7CiAKICAgICBjb25zdCBDb3VudGVyRGlyZWN0aXZlTWFwKiBjb3Vu
dGVyRGlyZWN0aXZlcygpIGNvbnN0OwogICAgIENvdW50ZXJEaXJlY3RpdmVNYXAmIGFjY2Vzc0Nv
dW50ZXJEaXJlY3RpdmVzKCk7CiAKKyAgICBRdW90ZXNEYXRhKiBxdW90ZXMoKSBjb25zdCB7IHJl
dHVybiByYXJlSW5oZXJpdGVkRGF0YS0+cXVvdGVzLmdldCgpOyB9CisgICAgdm9pZCBzZXRRdW90
ZXMoUGFzc1JlZlB0cjxRdW90ZXNEYXRhPik7CisKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGh5
cGhlblN0cmluZygpIGNvbnN0OwogCiAgICAgYm9vbCBpbmhlcml0ZWROb3RFcXVhbChjb25zdCBS
ZW5kZXJTdHlsZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCA0NGNkM2Y1Li4zYzYyZGJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuaApAQCAtMjk3LDcgKzI5NywxMSBAQCBlbnVtIEVMaXN0U3R5bGVUeXBlIHsKIH07CiAK
IGVudW0gU3R5bGVDb250ZW50VHlwZSB7Ci0gICAgQ09OVEVOVF9OT05FLCBDT05URU5UX09CSkVD
VCwgQ09OVEVOVF9URVhULCBDT05URU5UX0NPVU5URVIKKyAgICBDT05URU5UX05PTkUsIENPTlRF
TlRfT0JKRUNULCBDT05URU5UX1RFWFQsIENPTlRFTlRfQ09VTlRFUiwgQ09OVEVOVF9RVU9URQor
fTsKKworZW51bSBRdW90ZVR5cGUgeworICAgIE9QRU5fUVVPVEUsIENMT1NFX1FVT1RFLCBOT19P
UEVOX1FVT1RFLCBOT19DTE9TRV9RVU9URQogfTsKIAogZW51bSBFQm9yZGVyRml0IHsgQm9yZGVy
Rml0Qm9yZGVyLCBCb3JkZXJGaXRMaW5lcyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlQWxsSW5PbmUuY3BwCmluZGV4IDI1YjUzOWYuLjk2N2ZhMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUFsbEluT25lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJGaWxsTGF5ZXIuY3BwIgogI2luY2x1ZGUgIktleWZy
YW1lTGlzdC5jcHAiCiAjaW5jbHVkZSAiTmluZVBpZWNlSW1hZ2UuY3BwIgorI2luY2x1ZGUgIlF1
b3Rlc0RhdGEuY3BwIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmNwcCIKICNpbmNsdWRlICJTVkdS
ZW5kZXJTdHlsZS5jcHAiCiAjaW5jbHVkZSAiU1ZHUmVuZGVyU3R5bGVEZWZzLmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0
ZWREYXRhLmNwcAppbmRleCA2YjhlMDM5Li45ZGNmOTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBA
IC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIgogCiAj
aW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRl
ICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5j
bHVkZSAiU2hhZG93RGF0YS5oIgpAQCAtMTMyLDcgKzEzMyw4IEBAIGJvb2wgU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKSBj
b25zdAogICAgICAgICAmJiB0ZXh0RW1waGFzaXNQb3NpdGlvbiA9PSBvLnRleHRFbXBoYXNpc1Bv
c2l0aW9uCiAgICAgICAgICYmIGh5cGhlbmF0aW9uU3RyaW5nID09IG8uaHlwaGVuYXRpb25TdHJp
bmcKICAgICAgICAgJiYgaHlwaGVuYXRpb25Mb2NhbGUgPT0gby5oeXBoZW5hdGlvbkxvY2FsZQot
ICAgICAgICAmJiB0ZXh0RW1waGFzaXNDdXN0b21NYXJrID09IG8udGV4dEVtcGhhc2lzQ3VzdG9t
TWFyazsKKyAgICAgICAgJiYgdGV4dEVtcGhhc2lzQ3VzdG9tTWFyayA9PSBvLnRleHRFbXBoYXNp
c0N1c3RvbU1hcmsKKyAgICAgICAgJiYgKnF1b3Rlcy5nZXQoKSA9PSAqby5xdW90ZXMuZ2V0KCk7
CiB9CiAKIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6c2hhZG93RGF0YUVxdWl2YWxlbnQo
Y29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4
IGQyNmNhODMuLmZjNTZlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMzQsNiArMzQsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdXJzb3JMaXN0OworY2xhc3MgUXVvdGVzRGF0YTsK
IGNsYXNzIFNoYWRvd0RhdGE7CiAKIC8vIFRoaXMgc3RydWN0IGlzIGZvciByYXJlbHkgdXNlZCBp
bmhlcml0ZWQgQ1NTMywgQ1NTMiwgYW5kIFdlYktpdC1zcGVjaWZpYyBwcm9wZXJ0aWVzLgpAQCAt
ODgsNiArODksNyBAQCBwdWJsaWM6CiAgICAgQXRvbWljU3RyaW5nIGh5cGhlbmF0aW9uTG9jYWxl
OwogCiAgICAgQXRvbWljU3RyaW5nIHRleHRFbXBoYXNpc0N1c3RvbU1hcms7CisgICAgUmVmUHRy
PFF1b3Rlc0RhdGE+IHF1b3RlczsKIAogcHJpdmF0ZToKICAgICBTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>