<?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>142691</bug_id>
          
          <creation_ts>2015-03-14 00:48:58 -0700</creation_ts>
          <short_desc>[ES6] Implement ES6 template literals</short_desc>
          <delta_ts>2015-04-27 03:21:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>144257</dependson>
          <blocked>143183</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>joepeck</cc>
    
    <cc>joethomas</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1077130</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-14 00:48:58 -0700</bug_when>
    <thetext>[ES6] Implement ES6 template literals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079058</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-21 02:26:31 -0700</bug_when>
    <thetext>See examples on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings.

I think this will be mostly a parser change with an additional node for tagged template.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080275</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-26 06:28:11 -0700</bug_when>
    <thetext>I&apos;m working on this :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080411</commentid>
    <comment_count>3</comment_count>
      <attachid>249514</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-26 14:42:45 -0700</bug_when>
    <thetext>Created attachment 249514
WIP

WIP. Not supporting tagged template literals yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080929</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-28 02:31:51 -0700</bug_when>
    <thetext>tagged templates require some global states and it makes the patch larger.
So in this bug, I&apos;ll implement template literals. And later, in subsequent patches, I&apos;ll implement tagged templates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080967</commentid>
    <comment_count>5</comment_count>
      <attachid>249671</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-28 13:45:34 -0700</bug_when>
    <thetext>Created attachment 249671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080968</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-28 13:47:03 -0700</bug_when>
    <thetext>Attachment 249671 did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/ParserTokens.h:99:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080969</commentid>
    <comment_count>7</comment_count>
      <attachid>249672</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-28 13:56:31 -0700</bug_when>
    <thetext>Created attachment 249672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080970</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-28 13:58:36 -0700</bug_when>
    <thetext>Attachment 249672 did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/ParserTokens.h:99:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080992</commentid>
    <comment_count>9</comment_count>
      <attachid>249672</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-28 23:12:14 -0700</bug_when>
    <thetext>Comment on attachment 249672
Patch

Can we guard this feature inside an if-def or runtime flag so that we can disable if we need to just in the case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080998</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-29 02:32:11 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 249672 [details]
&gt; Patch
&gt; 
&gt; Can we guard this feature inside an if-def or runtime flag so that we can
&gt; disable if we need to just in the case?

Sure! So I&apos;ll make it behind the runtime flag, exposing only to inspector, JSC shell and test runner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081005</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-29 08:02:53 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Sure! So I&apos;ll make it behind the runtime flag, exposing only to inspector,
&gt; JSC shell and test runner.

After investigating about this, I&apos;ve found that runtime flags belong to JSGlobalObject, but parser belongs to VM.
For example,
1. To create JSScriptRef in JSC API, we pass JSContextGroupRef, that can be casted to VM.
2. CodeCache belongs to VM

So we cannot use runtime flags for this case. I&apos;ll use compile time flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081010</commentid>
    <comment_count>12</comment_count>
      <attachid>249685</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-03-29 08:47:06 -0700</bug_when>
    <thetext>Created attachment 249685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081011</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-29 08:48:58 -0700</bug_when>
    <thetext>Attachment 249685 did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/ParserTokens.h:99:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081830</commentid>
    <comment_count>14</comment_count>
      <attachid>249685</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-31 16:46:17 -0700</bug_when>
    <thetext>Comment on attachment 249685
Patch

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

This patch looks good to me, but I think we need to find a way to share code before this lands.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:241
&gt; +    TemplateElementListNode* templateElementsTail = m_templateElements;
&gt; +    for (auto templateExpressionsTail = m_templateExpressions; templateExpressionsTail; templateExpressionsTail = templateExpressionsTail-&gt;next(), templateElementsTail = templateElementsTail-&gt;next()) {

&quot;templateExpressionsTail-&gt;next&quot; is duplicated here.

By calling this value &quot;tail&quot;, you imply that you&apos;re iterating in last-to-first order. But I think you intend to iterate in first-to-last order. So, I would just call this value &quot;templateExpression&quot;.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1226
&gt; +// While JavaScriptCore&apos;s lexer accepts &lt;LF&gt;&lt;CR&gt; (not &lt;CR&gt;&lt;LF&gt;) sequence

I would just call this &quot;the lexer&quot;. Comments in JavaScriptCore are about JavaScriptCore.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1227
&gt; +// as one line terminator and increment one line number,

increment =&gt; increments.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1239
&gt; +// However, line number saved in the lexer should be increment only once for &lt;LF&gt;&lt;CR&gt;.

&quot;...the line number saved in the lexer should increment only once...&quot;

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1242
&gt; +// When TemplateLiteral lexer encounters a line terminator, it notify to LineNumberAdder.

notify =&gt; notifies.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1243
&gt; +// LineNumberAdder maintains the status and increments line number when it&apos;s necessary.

line number =&gt; the line number

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1244
&gt; +// For example, LineNumberAdder increments line number only once for &lt;LF&gt;&lt;CR&gt; and &lt;CR&gt;&lt;LF&gt;.

line number =&gt; the line number

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1347
&gt; +            } else if (UNLIKELY(isLineTerminator(m_current))) {
&gt; +                if (m_current == &apos;\r&apos;) {
&gt; +                    lineNumberAdder.add(m_current);
&gt; +                    shift();
&gt; +                    if (m_current == &apos;\n&apos;) {
&gt; +                        lineNumberAdder.add(m_current);
&gt; +                        shift();
&gt; +                    }
&gt; +                } else {
&gt; +                    lineNumberAdder.add(m_current);
&gt; +                    shift();
&gt; +                }
&gt; +            } else if (m_current == &apos;x&apos;) {
&gt; +                shift();
&gt; +                if (!isASCIIHexDigit(m_current) || !isASCIIHexDigit(peek(1))) {
&gt; +                    m_lexErrorMessage = ASCIILiteral(&quot;\\x can only be followed by a hex character sequence&quot;);
&gt; +                    return StringCannotBeParsed;
&gt; +                }
&gt; +                T prev = m_current;
&gt; +                shift();
&gt; +                if (shouldBuildStrings)
&gt; +                    record16(convertHex(prev, m_current));
&gt; +                shift();
&gt; +            } else if (m_current == &apos;u&apos;) {
&gt; +                shift();
&gt; +                UnicodeHexValue character = parseFourDigitUnicodeHex();
&gt; +                if (character.isValid()) {
&gt; +                    if (shouldBuildStrings)
&gt; +                        record16(character.value());
&gt; +                } else {
&gt; +                    m_lexErrorMessage = ASCIILiteral(&quot;\\u can only be followed by a Unicode character sequence&quot;);
&gt; +                    return character.valueType() == UnicodeHexValue::IncompleteHex ? StringUnterminated : StringCannotBeParsed;
&gt; +                }
&gt; +            } else if (isASCIIDigit(m_current)) {
&gt; +                // The only valid numeric escape in strict mode is &apos;\0&apos;, and this must not be followed by a decimal digit.
&gt; +                int character1 = m_current;
&gt; +                shift();
&gt; +                if (character1 != &apos;0&apos; || isASCIIDigit(m_current)) {
&gt; +                    m_lexErrorMessage = ASCIILiteral(&quot;The only valid numeric escape in strict mode is &apos;\\0&apos;&quot;);
&gt; +                    return StringCannotBeParsed;
&gt; +                }
&gt; +                if (shouldBuildStrings)
&gt; +                    record16(0);
&gt; +            } else if (!atEnd()) {
&gt; +                if (shouldBuildStrings)
&gt; +                    record16(m_current);
&gt; +                shift();
&gt; +            } else {
&gt; +                m_lexErrorMessage = ASCIILiteral(&quot;Unterminated string constant&quot;);
&gt; +                return StringUnterminated;
&gt; +            }

Can you write a helper function to share this code with parseString? This is a lot of code to duplicate, and it looks like the only difference we want is the line numbering difference, which is already pretty well factored out into the LineNumberAdder class.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1403
&gt; +        // TODO: raw is not implemented correctly yet.
&gt; +        // Line terminator normalization is not done for raw.
&gt; +        // When implementing TaggedTemplate which uses raw value, it should be fixed.

What is the consequence of the missing raw implementation? This comment should specify what happens when you parse a raw value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082205</commentid>
    <comment_count>15</comment_count>
      <attachid>249685</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-02 05:03:30 -0700</bug_when>
    <thetext>Comment on attachment 249685
Patch

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

Thank you for your review. I&apos;ve commented. And I&apos;ll updated the patch.

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:241
&gt;&gt; +    for (auto templateExpressionsTail = m_templateExpressions; templateExpressionsTail; templateExpressionsTail = templateExpressionsTail-&gt;next(), templateElementsTail = templateElementsTail-&gt;next()) {
&gt; 
&gt; &quot;templateExpressionsTail-&gt;next&quot; is duplicated here.
&gt; 
&gt; By calling this value &quot;tail&quot;, you imply that you&apos;re iterating in last-to-first order. But I think you intend to iterate in first-to-last order. So, I would just call this value &quot;templateExpression&quot;.

Ah, not duplicated. `templateExpressionsTail-&gt;next` and `templateElementsTail-&gt;next`. expressions and elements.
But, maybe it&apos;s confusing. I&apos;ll rename TemplateElement to TemplateString. It&apos;s clearer.

And agree to your suggestion about &quot;tail&quot;. OK, I&apos;ll simply use &quot;templateExpression&quot; :D

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1226
&gt;&gt; +// While JavaScriptCore&apos;s lexer accepts &lt;LF&gt;&lt;CR&gt; (not &lt;CR&gt;&lt;LF&gt;) sequence
&gt; 
&gt; I would just call this &quot;the lexer&quot;. Comments in JavaScriptCore are about JavaScriptCore.

Thx! I&apos;ve fixed it.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1227
&gt;&gt; +// as one line terminator and increment one line number,
&gt; 
&gt; increment =&gt; increments.

Done.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1239
&gt;&gt; +// However, line number saved in the lexer should be increment only once for &lt;LF&gt;&lt;CR&gt;.
&gt; 
&gt; &quot;...the line number saved in the lexer should increment only once...&quot;

Done.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1242
&gt;&gt; +// When TemplateLiteral lexer encounters a line terminator, it notify to LineNumberAdder.
&gt; 
&gt; notify =&gt; notifies.

Done.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1243
&gt;&gt; +// LineNumberAdder maintains the status and increments line number when it&apos;s necessary.
&gt; 
&gt; line number =&gt; the line number

Done.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1244
&gt;&gt; +// For example, LineNumberAdder increments line number only once for &lt;LF&gt;&lt;CR&gt; and &lt;CR&gt;&lt;LF&gt;.
&gt; 
&gt; line number =&gt; the line number

Done.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1347
&gt;&gt; +            }
&gt; 
&gt; Can you write a helper function to share this code with parseString? This is a lot of code to duplicate, and it looks like the only difference we want is the line numbering difference, which is already pretty well factored out into the LineNumberAdder class.

Yes! I&apos;ve extracted complicated escape code for \u, \x and \0 to parseComplexEscape.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1403
&gt;&gt; +        // When implementing TaggedTemplate which uses raw value, it should be fixed.
&gt; 
&gt; What is the consequence of the missing raw implementation? This comment should specify what happens when you parse a raw value.

Line terminator normalization (e.g. &lt;CR&gt; =&gt; &lt;LF&gt;) should be applied to both the raw and cooked representations.
But it doesn&apos;t do that for the raw representation.
So when parsing `&lt;CR&gt;`, &lt;CR&gt; appears in the raw representation of the result.

While non-tagged template literals don&apos;t use the raw representation, tagged templates use it.
So when implementing tagged templates, we should apply line terminator normalization to the raw representation.

OK! I&apos;ve noted the above description here :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082206</commentid>
    <comment_count>16</comment_count>
      <attachid>249969</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-02 05:06:53 -0700</bug_when>
    <thetext>Created attachment 249969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082207</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-02 05:10:20 -0700</bug_when>
    <thetext>Attachment 249969 did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/ParserTokens.h:99:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082434</commentid>
    <comment_count>18</comment_count>
      <attachid>250029</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-02 19:11:50 -0700</bug_when>
    <thetext>Created attachment 250029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082435</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-02 19:14:46 -0700</bug_when>
    <thetext>Attachment 250029 did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/ParserTokens.h:99:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083642</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-08 10:02:04 -0700</bug_when>
    <thetext>Hi, the patch becomes ready for review.
Could you review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084989</commentid>
    <comment_count>21</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-13 15:55:37 -0700</bug_when>
    <thetext>could you review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086545</commentid>
    <comment_count>22</comment_count>
      <attachid>251090</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-18 06:58:29 -0700</bug_when>
    <thetext>Created attachment 251090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086546</commentid>
    <comment_count>23</comment_count>
      <attachid>251090</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-18 07:00:16 -0700</bug_when>
    <thetext>Comment on attachment 251090
Patch

Could anyone review this patch? Just rebased the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086547</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-18 07:01:26 -0700</bug_when>
    <thetext>Attachment 251090 did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/ParserTokens.h:99:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087470</commentid>
    <comment_count>25</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-22 11:20:49 -0700</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087965</commentid>
    <comment_count>26</comment_count>
      <attachid>251090</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-23 13:28:52 -0700</bug_when>
    <thetext>Comment on attachment 251090
Patch

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

Very cool! I don&apos;t think I&apos;m fully qualified to review this but I added some comments.

&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:896
&gt; +    linkSlowCase(iter);
&gt; +    linkSlowCase(iter);

Should this only be called once?

&gt; Source/JavaScriptCore/jit/JITOpcodes32_64.cpp:802
&gt; +    linkSlowCase(iter);
&gt; +    linkSlowCase(iter);

Should this only be called once?

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1320
&gt; +            // Most common escape sequences first

Style: Comments should be sentences that end with a period.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1399
&gt; +        // While non-tagged template literals don&apos;t use the raw representation, tagged templates use the raw representaion.

Typo: &quot;representaion&quot; =&gt; &quot;representation&quot;.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1400
&gt; +        // So line terminator nomralization should be applied to the raw representation when implementing tagged templates.

Typo: &quot;nomralization&quot; =&gt; &quot;normalization&quot;

&gt; Source/JavaScriptCore/tests/stress/template-literal-syntax.js:51
&gt; +testSyntaxError(&quot;`Hello${}&quot;, &quot;SyntaxError: Unexpected token &apos;}&apos;&quot;);

I wonder if we can provide a better error message here. Something like: &quot;SyntaxError: Template literal expression cannot be empty&quot; may be more informative to users.

&gt; Source/JavaScriptCore/tests/stress/template-literal.js:15
&gt; +test(`Hello World`, &quot;Hello World&quot;);

Tests I&apos;d like to see but don&apos;t:

Empty template!

    test(``, &quot;&quot;);

Nested templates:

    test(`Hello ${ `Cocoa` }`, &quot;Hello Cocoa&quot;);
    test(`Hello ${ `Co${`c`}oa` }`, &quot;Hello Cocoa&quot;);

Immediately adjacent template expressions, with empty intermediate template strings:

    test(`${&quot;C&quot;}${&quot;o&quot;}${&quot;c&quot;}${&quot;o&quot;}${&quot;a&quot;}`, &quot;Cocoa&quot;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087978</commentid>
    <comment_count>27</comment_count>
      <attachid>251090</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-23 13:43:36 -0700</bug_when>
    <thetext>Comment on attachment 251090
Patch

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

Thank you for your comment! Very helpful.

&gt;&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:896
&gt;&gt; +    linkSlowCase(iter);
&gt; 
&gt; Should this only be called once?

In the JIT emitSlow op case, we need to call `linkSlowCase` the same times as times of calling `addSlowCase` in the fast op emitting function.
In this case, we called `addSlowCase` twice, so we need to call `linkSlowCase` twice.

But right. The current code is not good for readability. So I&apos;ll add comments about which `addSlowCase` is corresponding to the specific `linkSlowCase`.

&gt;&gt; Source/JavaScriptCore/jit/JITOpcodes32_64.cpp:802
&gt;&gt; +    linkSlowCase(iter);
&gt; 
&gt; Should this only be called once?

same as above.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1320
&gt;&gt; +            // Most common escape sequences first
&gt; 
&gt; Style: Comments should be sentences that end with a period.

Fixed! Thank you!

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1399
&gt;&gt; +        // While non-tagged template literals don&apos;t use the raw representation, tagged templates use the raw representaion.
&gt; 
&gt; Typo: &quot;representaion&quot; =&gt; &quot;representation&quot;.

Oops. Thank you. Fixed.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1400
&gt;&gt; +        // So line terminator nomralization should be applied to the raw representation when implementing tagged templates.
&gt; 
&gt; Typo: &quot;nomralization&quot; =&gt; &quot;normalization&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/tests/stress/template-literal-syntax.js:51
&gt;&gt; +testSyntaxError(&quot;`Hello${}&quot;, &quot;SyntaxError: Unexpected token &apos;}&apos;&quot;);
&gt; 
&gt; I wonder if we can provide a better error message here. Something like: &quot;SyntaxError: Template literal expression cannot be empty&quot; may be more informative to users.

Sounds really nice!

&gt;&gt; Source/JavaScriptCore/tests/stress/template-literal.js:15
&gt;&gt; +test(`Hello World`, &quot;Hello World&quot;);
&gt; 
&gt; Tests I&apos;d like to see but don&apos;t:
&gt; 
&gt; Empty template!
&gt; 
&gt;     test(``, &quot;&quot;);
&gt; 
&gt; Nested templates:
&gt; 
&gt;     test(`Hello ${ `Cocoa` }`, &quot;Hello Cocoa&quot;);
&gt;     test(`Hello ${ `Co${`c`}oa` }`, &quot;Hello Cocoa&quot;);
&gt; 
&gt; Immediately adjacent template expressions, with empty intermediate template strings:
&gt; 
&gt;     test(`${&quot;C&quot;}${&quot;o&quot;}${&quot;c&quot;}${&quot;o&quot;}${&quot;a&quot;}`, &quot;Cocoa&quot;);

That&apos;s really nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088001</commentid>
    <comment_count>28</comment_count>
      <attachid>251490</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-23 14:27:54 -0700</bug_when>
    <thetext>Created attachment 251490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088005</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-23 14:31:26 -0700</bug_when>
    <thetext>Attachment 251490 did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/ParserTokens.h:99:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 1 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088811</commentid>
    <comment_count>30</comment_count>
      <attachid>251490</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-26 12:22:19 -0700</bug_when>
    <thetext>Comment on attachment 251490
Patch

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

&gt; Source/JavaScriptCore/parser/Lexer.cpp:76
&gt; +#if ENABLE(ES6_TEMPLATE_LITERAL_SYNTAX)
&gt; +    CharacterBackQuote,
&gt; +#endif

I would have made this unconditional; I think it does little harm to add one more character enum value even when this feature is off.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1249
&gt; +    m_buffer16.resize(0);

Always more efficient, I think, to use shrink(0) rather than resize(0).

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1273
&gt; +template&lt;typename T&gt;

I would call these types CharacterType instead of T everywhere.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1278
&gt; +        , m_previous(0)

I would initialize this below rather than in the constructor.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1290
&gt; +        if ((character + m_previous) == &apos;\n&apos; + &apos;\r&apos;)

Strange to use parentheses on one side of the expression and to on the other. If they are helpful on one side they are equally helpful on the other side. I would leave both sets out.

&gt; Source/JavaScriptCore/parser/Lexer.cpp:1300
&gt; +    T m_previous;

I’d initialize here in one of these two ways:

    T m_previous { };
    T m_previous { 0 };

&gt; Source/JavaScriptCore/parser/Lexer.h:212
&gt; +    enum class EscapeParseMode {
&gt; +        Template,
&gt; +        String
&gt; +    };

I’d format this on a single line, not vertically.

&gt; Source/JavaScriptCore/parser/NodeConstructors.h:105
&gt; +        : m_next(nullptr)

Better to initialize m_next below instead of in all these constructors.

&gt; Source/JavaScriptCore/parser/NodeConstructors.h:130
&gt; +    inline TemplateStringListNode::TemplateStringListNode(TemplateStringListNode* prev, TemplateStringNode* node)

Why not write out the word “previous” instead of the abbreviation “prev”?

&gt; Source/JavaScriptCore/parser/Nodes.h:440
&gt; +        TemplateExpressionListNode* m_next;

Should initialize in one of these two ways:

    TemplateExpressionListNode* m_next { nullptr };
    TemplateExpressionListNode* m_next { };

I’d even do the same for fields like m_node that are always initialized “just in case”.

&gt; ChangeLog:22
&gt; +2015-04-23  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
&gt; +
&gt; +        [ES6] Implement ES6 template literals
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=142691
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * Source/cmake/WebKitFeatures.cmake:
&gt; +        * Source/cmakeconfig.h.cmake:
&gt; +
&gt; +2015-04-18  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
&gt; +
&gt; +        [ES6] Implement ES6 template literals
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=142691
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Add ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX compile time flag.
&gt; +
&gt; +        * Source/cmake/WebKitFeatures.cmake:
&gt; +        * Source/cmakeconfig.h.cmake:
&gt; +

Double change log here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088874</commentid>
    <comment_count>31</comment_count>
      <attachid>251490</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-26 17:07:52 -0700</bug_when>
    <thetext>Comment on attachment 251490
Patch

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

Thank you for your review!

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:76
&gt;&gt; +#endif
&gt; 
&gt; I would have made this unconditional; I think it does little harm to add one more character enum value even when this feature is off.

Right. I&apos;ve dropped it.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1249
&gt;&gt; +    m_buffer16.resize(0);
&gt; 
&gt; Always more efficient, I think, to use shrink(0) rather than resize(0).

Changed resize(0) =&gt; shrink(0) in Lexer.cpp.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1273
&gt;&gt; +template&lt;typename T&gt;
&gt; 
&gt; I would call these types CharacterType instead of T everywhere.

Nice. Changed.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1290
&gt;&gt; +        if ((character + m_previous) == &apos;\n&apos; + &apos;\r&apos;)
&gt; 
&gt; Strange to use parentheses on one side of the expression and to on the other. If they are helpful on one side they are equally helpful on the other side. I would leave both sets out.

Thanks! I&apos;ve changed to use parentheses in both side.

&gt;&gt; Source/JavaScriptCore/parser/Lexer.cpp:1300
&gt;&gt; +    T m_previous;
&gt; 
&gt; I’d initialize here in one of these two ways:
&gt; 
&gt;     T m_previous { };
&gt;     T m_previous { 0 };

Very nice C++11 feature!

&gt;&gt; Source/JavaScriptCore/parser/Lexer.h:212
&gt;&gt; +    };
&gt; 
&gt; I’d format this on a single line, not vertically.

Done.

&gt;&gt; Source/JavaScriptCore/parser/NodeConstructors.h:105
&gt;&gt; +        : m_next(nullptr)
&gt; 
&gt; Better to initialize m_next below instead of in all these constructors.

OK, use C++11 feature.

&gt;&gt; Source/JavaScriptCore/parser/NodeConstructors.h:130
&gt;&gt; +    inline TemplateStringListNode::TemplateStringListNode(TemplateStringListNode* prev, TemplateStringNode* node)
&gt; 
&gt; Why not write out the word “previous” instead of the abbreviation “prev”?

Fixed. Use &quot;previous&quot;.

&gt;&gt; Source/JavaScriptCore/parser/Nodes.h:440
&gt;&gt; +        TemplateExpressionListNode* m_next;
&gt; 
&gt; Should initialize in one of these two ways:
&gt; 
&gt;     TemplateExpressionListNode* m_next { nullptr };
&gt;     TemplateExpressionListNode* m_next { };
&gt; 
&gt; I’d even do the same for fields like m_node that are always initialized “just in case”.

ok, changed to `m_next { nullptr };`. And `m_node { nullptr }` &quot;just in case&quot;.

&gt;&gt; ChangeLog:22
&gt;&gt; +
&gt; 
&gt; Double change log here.

Oops! Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088876</commentid>
    <comment_count>32</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-26 17:28:44 -0700</bug_when>
    <thetext>Committed r183373: &lt;http://trac.webkit.org/changeset/183373&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088970</commentid>
    <comment_count>33</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-04-27 02:54:34 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; Committed r183373: &lt;http://trac.webkit.org/changeset/183373&gt;

The new stress/template-literal-syntax.js test asserts everywhere,
see https://build.webkit.org/waterfall for details and please fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088972</commentid>
    <comment_count>34</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-27 03:00:00 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; Committed r183373: &lt;http://trac.webkit.org/changeset/183373&gt;
&gt; 
&gt; The new stress/template-literal-syntax.js test asserts everywhere,
&gt; see https://build.webkit.org/waterfall for details and please fix.

Thank you. I&apos;ll investigate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088982</commentid>
    <comment_count>35</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-27 03:11:47 -0700</bug_when>
    <thetext>Opened. https://bugs.webkit.org/show_bug.cgi?id=144257</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249514</attachid>
            <date>2015-03-26 14:42:45 -0700</date>
            <delta_ts>2015-03-28 13:45:29 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-142691-20150327064206.patch</filename>
            <type>text/plain</type>
            <size>31577</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NjNlMTU1ZjI3Y2ExOTMyNTY2MzYxNjkyYmIzNGEzYzkyZWM3YzljLi45ZDY3YWJmOWRjMGZiNmVh
YjY4OTcwNDc4YjQ4ZWQ5NDZkMTUzZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxNS0wMy0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxpdGVyYWxzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ5dGVjb21w
aWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUVsZW1lbnROb2Rl
OjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUxpdGVyYWxOb2RlOjplbWl0
Qnl0ZWNvZGUpOgorICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAgIChKU0M6
OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChKU0M6OkFTVEJ1
aWxkZXI6OmNyZWF0ZVRlbXBsYXRlRWxlbWVudExpc3QpOgorICAgICAgICAoSlNDOjpBU1RCdWls
ZGVyOjpjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KToKKyAgICAgICAgKEpTQzo6QVNUQnVp
bGRlcjo6Y3JlYXRlVGVtcGxhdGVMaXRlcmFsKToKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3Bw
OgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6TGV4ZXIpOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6cGFyc2VUZW1wbGF0ZUxpdGVyYWwpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4KToK
KyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OnNjYW5UcmFpbGluZ1RlbXBsYXRlRWxlbWVudCk6Cisg
ICAgICAgICogcGFyc2VyL0xleGVyLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3Rv
cnMuaDoKKyAgICAgICAgKEpTQzo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6OlRlbXBsYXRl
RXhwcmVzc2lvbkxpc3ROb2RlKToKKyAgICAgICAgKEpTQzo6VGVtcGxhdGVFbGVtZW50Tm9kZTo6
VGVtcGxhdGVFbGVtZW50Tm9kZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudExpc3RO
b2RlOjpUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlTGl0
ZXJhbE5vZGU6OlRlbXBsYXRlTGl0ZXJhbE5vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5o
OgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZTo6dmFsdWUpOgorICAg
ICAgICAoSlNDOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZTo6bmV4dCk6CisgICAgICAgIChK
U0M6OlRlbXBsYXRlRWxlbWVudE5vZGU6OmNvb2tlZCk6CisgICAgICAgIChKU0M6OlRlbXBsYXRl
RWxlbWVudE5vZGU6OnJhdyk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudExpc3ROb2Rl
Ojp2YWx1ZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudExpc3ROb2RlOjpuZXh0KToK
KyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVy
VHlwZT46OnBhcnNlVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVy
VHlwZT46OnBhcnNlVGVtcGxhdGVMaXRlcmFsKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVy
VHlwZT46OnBhcnNlUHJpbWFyeUV4cHJlc3Npb24pOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIu
aDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyVG9rZW5zLmg6CisgICAgICAgICogcGFyc2VyL1N5
bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlVGVtcGxh
dGVFbGVtZW50KToKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVF
bGVtZW50TGlzdCk6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRl
RXhwcmVzc2lvbkxpc3QpOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVhdGVUZW1w
bGF0ZUxpdGVyYWwpOgorCiAyMDE1LTAzLTI2ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcsIHNraXAgZmFpbGluZyB0
ZXN0cyBvbiBBQXJjaDY0IExpbnV4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDFjNzU3M2FkNGUzMjhiMmE3NGE5NWZi
OTNiYjIwNzY4ODJiMmY3YjkuLmM3MDEwZDI0YTJiMGIzYTQzNWYxMDMxZGQ1YjNlMjIxYWRlNzFm
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKQEAgLTIxNSw2ICsyMTUsNDkgQEAgUmVnaXN0ZXJJRCogUmVzb2x2ZU5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKgog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBUZW1wbGF0ZUVsZW1lbnROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKK1JlZ2lzdGVySUQqIFRlbXBsYXRlRWxlbWVudE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgaWYgKGRzdCA9
PSBnZW5lcmF0b3IuaWdub3JlZFJlc3VsdCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRMb2FkKGRzdCwgSlNWYWx1ZShnZW5lcmF0b3IuYWRkU3Ry
aW5nQ29uc3RhbnQoY29va2VkKCkpKSk7Cit9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBUZW1wbGF0ZUxpdGVyYWxOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKK1JlZ2lzdGVySUQqIFRlbXBsYXRlTGl0ZXJhbE5vZGU6OmVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgaWYg
KCFtX3RlbXBsYXRlRXhwcmVzc2lvbnMpIHsKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50Tm9kZSog
dGVtcGxhdGVFbGVtZW50ID0gbV90ZW1wbGF0ZUVsZW1lbnRzLT52YWx1ZSgpOworICAgICAgICBB
U1NFUlRfV0lUSF9NRVNTQUdFKCFtX3RlbXBsYXRlRWxlbWVudHMtPm5leHQoKSwgIk9ubHkgb25l
IHRlbXBsYXRlIGVsZW1lbnQgZXhpc3RzIGJlY2F1c2UgdGhlcmUncyBubyBleHByZXNzaW9uIGlu
IGEgZ2l2ZW4gdGVtcGxhdGUgbGl0ZXJhbC4iKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5l
bWl0Tm9kZShkc3QsIHRlbXBsYXRlRWxlbWVudCk7CisgICAgfQorCisgICAgVmVjdG9yPFJlZlB0
cjxSZWdpc3RlcklEPiwgMTY+IHRlbXBvcmFyeVJlZ2lzdGVyczsKKworICAgIFRlbXBsYXRlRWxl
bWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRzVGFpbCA9IG1fdGVtcGxhdGVFbGVtZW50czsK
KyAgICBmb3IgKGF1dG8gdGVtcGxhdGVFeHByZXNzaW9uc1RhaWwgPSBtX3RlbXBsYXRlRXhwcmVz
c2lvbnM7IHRlbXBsYXRlRXhwcmVzc2lvbnNUYWlsOyB0ZW1wbGF0ZUV4cHJlc3Npb25zVGFpbCA9
IHRlbXBsYXRlRXhwcmVzc2lvbnNUYWlsLT5uZXh0KCksIHRlbXBsYXRlRWxlbWVudHNUYWlsID0g
dGVtcGxhdGVFbGVtZW50c1RhaWwtPm5leHQoKSkgeworICAgICAgICAvLyBFdmFsdWF0ZSBUZW1w
bGF0ZUVsZW1lbnQuCisgICAgICAgIGlmICghdGVtcGxhdGVFbGVtZW50c1RhaWwtPnZhbHVlKCkt
PmNvb2tlZCgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgdGVtcG9yYXJ5UmVnaXN0ZXJzLmFw
cGVuZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVt
aXROb2RlKHRlbXBvcmFyeVJlZ2lzdGVycy5sYXN0KCkuZ2V0KCksIHRlbXBsYXRlRWxlbWVudHNU
YWlsLT52YWx1ZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEV2YWx1YXRlIEV4cHJlc3Np
b24uCisgICAgICAgIHRlbXBvcmFyeVJlZ2lzdGVycy5hcHBlbmQoZ2VuZXJhdG9yLm5ld1RlbXBv
cmFyeSgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKHRlbXBvcmFyeVJlZ2lzdGVycy5s
YXN0KCkuZ2V0KCksIHRlbXBsYXRlRXhwcmVzc2lvbnNUYWlsLT52YWx1ZSgpKTsKKyAgICB9CisK
KyAgICAvLyBFdmFsdWF0ZSB0YWlsIFRlbXBsYXRlRWxlbWVudC4KKyAgICBpZiAoIXRlbXBsYXRl
RWxlbWVudHNUYWlsLT52YWx1ZSgpLT5jb29rZWQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgdGVt
cG9yYXJ5UmVnaXN0ZXJzLmFwcGVuZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCkpOworICAgICAg
ICBnZW5lcmF0b3IuZW1pdE5vZGUodGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSwgdGVt
cGxhdGVFbGVtZW50c1RhaWwtPnZhbHVlKCkpOworICAgIH0KKworICAgIHJldHVybiBnZW5lcmF0
b3IuZW1pdFN0cmNhdChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHRlbXBvcmFyeVJl
Z2lzdGVyc1swXS5nZXQoKSksIHRlbXBvcmFyeVJlZ2lzdGVyc1swXS5nZXQoKSwgdGVtcG9yYXJ5
UmVnaXN0ZXJzLnNpemUoKSk7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBBcnJheU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJlZ2lz
dGVySUQqIEFycmF5Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0
b3IsIFJlZ2lzdGVySUQqIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWls
ZGVyLmgKaW5kZXggYzQ4ZTQxYzU4NjVkZmQ1MDA3NGY0OWRiYTEzZGM3NDYyOTY2M2VkMS4uODg4
MGJmYTVjYTRmMjFkOTY2YmY3Y2M5YTQ3OGQ3ZWNkMTY5NzMxOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTEwMiw2ICsxMDIsOSBAQCBjbGFzcyBBU1RC
dWlsZGVyIHsKICAgICB0eXBlZGVmIFByb3BlcnR5TGlzdE5vZGUqIFByb3BlcnR5TGlzdDsKICAg
ICB0eXBlZGVmIEVsZW1lbnROb2RlKiBFbGVtZW50TGlzdDsKICAgICB0eXBlZGVmIEFyZ3VtZW50
TGlzdE5vZGUqIEFyZ3VtZW50c0xpc3Q7CisgICAgdHlwZWRlZiBUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0Tm9kZSogVGVtcGxhdGVFeHByZXNzaW9uTGlzdDsKKyAgICB0eXBlZGVmIFRlbXBsYXRlRWxl
bWVudE5vZGUqIFRlbXBsYXRlRWxlbWVudDsKKyAgICB0eXBlZGVmIFRlbXBsYXRlRWxlbWVudExp
c3ROb2RlKiBUZW1wbGF0ZUVsZW1lbnRMaXN0OwogICAgIHR5cGVkZWYgUGFyYW1ldGVyTm9kZSog
Rm9ybWFsUGFyYW1ldGVyTGlzdDsKICAgICB0eXBlZGVmIEZ1bmN0aW9uQm9keU5vZGUqIEZ1bmN0
aW9uQm9keTsKICNpZiBFTkFCTEUoRVM2X0NMQVNTX1NZTlRBWCkKQEAgLTI0Niw2ICsyNDksNDEg
QEAgY2xhc3MgQVNUQnVpbGRlciB7CiAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0KIAorICAg
IFRlbXBsYXRlRWxlbWVudE5vZGUqIGNyZWF0ZVRlbXBsYXRlRWxlbWVudChjb25zdCBKU1Rva2Vu
TG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBjb29rZWQsIGNvbnN0IElkZW50
aWZpZXImIHJhdykKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFRl
bXBsYXRlRWxlbWVudE5vZGUobG9jYXRpb24sIGNvb2tlZCwgcmF3KTsKKyAgICB9CisKKyAgICBU
ZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogY3JlYXRlVGVtcGxhdGVFbGVtZW50TGlzdChUZW1wbGF0
ZUVsZW1lbnROb2RlKiB0ZW1wbGF0ZUVsZW1lbnQpCisgICAgeworICAgICAgICByZXR1cm4gbmV3
IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSh0ZW1wbGF0ZUVsZW1lbnQp
OworICAgIH0KKworICAgIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZUVs
ZW1lbnRMaXN0KFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRMaXN0LCBU
ZW1wbGF0ZUVsZW1lbnROb2RlKiB0ZW1wbGF0ZUVsZW1lbnQpCisgICAgeworICAgICAgICByZXR1
cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSh0ZW1wbGF0ZUVs
ZW1lbnRMaXN0LCB0ZW1wbGF0ZUVsZW1lbnQpOworICAgIH0KKworICAgIFRlbXBsYXRlRXhwcmVz
c2lvbkxpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KEV4cHJlc3Npb25Ob2Rl
KiBleHByZXNzaW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkg
VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUoZXhwcmVzc2lvbik7CisgICAgfQorCisgICAgVGVt
cGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIGNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QoVGVt
cGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlLCBFeHBy
ZXNzaW9uTm9kZSogZXhwcmVzc2lvbikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFy
c2VyQXJlbmEpIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKHRlbXBsYXRlRXhwcmVzc2lvbkxp
c3ROb2RlLCBleHByZXNzaW9uKTsKKyAgICB9CisKKyAgICBFeHByZXNzaW9uTm9kZSogY3JlYXRl
VGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFRlbXBsYXRl
RWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRMaXN0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVMaXRlcmFsTm9kZShsb2NhdGlvbiwgdGVt
cGxhdGVFbGVtZW50TGlzdCk7CisgICAgfQorCisgICAgRXhwcmVzc2lvbk5vZGUqIGNyZWF0ZVRl
bXBsYXRlTGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBUZW1wbGF0ZUVs
ZW1lbnRMaXN0Tm9kZSogdGVtcGxhdGVFbGVtZW50TGlzdCwgVGVtcGxhdGVFeHByZXNzaW9uTGlz
dE5vZGUqIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpCisgICAgeworICAgICAgICByZXR1cm4gbmV3
IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUxpdGVyYWxOb2RlKGxvY2F0aW9uLCB0ZW1wbGF0ZUVs
ZW1lbnRMaXN0LCB0ZW1wbGF0ZUV4cHJlc3Npb25MaXN0KTsKKyAgICB9CisKICAgICBFeHByZXNz
aW9uTm9kZSogY3JlYXRlUmVnRXhwKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNv
bnN0IElkZW50aWZpZXImIHBhdHRlcm4sIGNvbnN0IElkZW50aWZpZXImIGZsYWdzLCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgc3RhcnQpCiAgICAgewogICAgICAgICBpZiAoWWFycjo6Y2hlY2tTeW50
YXgocGF0dGVybi5zdHJpbmcoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL0xleGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3Bw
CmluZGV4IDdkZTE0MjIwYmJkYTcyNzM4YjU3M2E0Yjk3ODhjZTBiMzJjYzdjZTMuLjJiOTA1YmJh
ZmVlOWMxNTk1YTI2OGIwMDk0YzBiNjJhY2RlM2QxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTGV4ZXIuY3BwCkBAIC03MSw2ICs3MSw3IEBAIGVudW0gQ2hhcmFjdGVyVHlwZSB7CiAg
ICAgQ2hhcmFjdGVyUXVlc3Rpb24sCiAgICAgQ2hhcmFjdGVyVGlsZGUsCiAgICAgQ2hhcmFjdGVy
UXVvdGUsCisgICAgQ2hhcmFjdGVyQmFja1F1b3RlLAogICAgIENoYXJhY3RlckRvdCwKICAgICBD
aGFyYWN0ZXJTbGFzaCwKICAgICBDaGFyYWN0ZXJCYWNrU2xhc2gsCkBAIC0xOTIsNyArMTkzLDcg
QEAgZW51bSBDaGFyYWN0ZXJUeXBlIHsKIC8qICA5MyAtIF0gICAgICAgICAgICAgICAgICAqLyBD
aGFyYWN0ZXJDbG9zZUJyYWNrZXQsCiAvKiAgOTQgLSBeICAgICAgICAgICAgICAgICAgKi8gQ2hh
cmFjdGVyWG9yLAogLyogIDk1IC0gXyAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlcklkZW50
aWZpZXJTdGFydCwKLS8qICA5NiAtIGAgICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJJbnZh
bGlkLAorLyogIDk2IC0gYCAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlckJhY2tRdW90ZSwK
IC8qICA5NyAtIGEgICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJJZGVudGlmaWVyU3RhcnQs
CiAvKiAgOTggLSBiICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVySWRlbnRpZmllclN0YXJ0
LAogLyogIDk5IC0gYyAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlcklkZW50aWZpZXJTdGFy
dCwKQEAgLTEyMTYsNiArMTIxNywxMTQgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBjaGFy
YWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hhcmFjdGVyKQogfQogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3RlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4g
dHlwZW5hbWUgTGV4ZXI8VD46OlN0cmluZ1BhcnNlUmVzdWx0IExleGVyPFQ+OjpwYXJzZVRlbXBs
YXRlTGl0ZXJhbChKU1Rva2VuRGF0YSogdG9rZW5EYXRhKQoreworICAgIGNvbnN0IFQqIHN0cmlu
Z1N0YXJ0ID0gY3VycmVudFNvdXJjZVB0cigpOworICAgIGNvbnN0IFQqIHJhd1N0cmluZ1N0YXJ0
ID0gc3RyaW5nU3RhcnQ7CisKKyAgICB3aGlsZSAobV9jdXJyZW50ICE9ICdgJykgeworICAgICAg
ICBpZiAoVU5MSUtFTFkobV9jdXJyZW50ID09ICdcXCcpKSB7CisgICAgICAgICAgICBpZiAoc3Ry
aW5nU3RhcnQgIT0gY3VycmVudFNvdXJjZVB0cigpICYmIHNob3VsZEJ1aWxkU3RyaW5ncykKKyAg
ICAgICAgICAgICAgICBhcHBlbmQxNihzdHJpbmdTdGFydCwgY3VycmVudFNvdXJjZVB0cigpIC0g
c3RyaW5nU3RhcnQpOworICAgICAgICAgICAgc2hpZnQoKTsKKworICAgICAgICAgICAgTENoYXIg
ZXNjYXBlID0gc2luZ2xlRXNjYXBlKG1fY3VycmVudCk7CisKKyAgICAgICAgICAgIC8vIE1vc3Qg
Y29tbW9uIGVzY2FwZSBzZXF1ZW5jZXMgZmlyc3QKKyAgICAgICAgICAgIGlmIChlc2NhcGUpIHsK
KyAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgICAg
ICAgICByZWNvcmQxNihlc2NhcGUpOworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAg
ICAgICB9IGVsc2UgaWYgKFVOTElLRUxZKGlzTGluZVRlcm1pbmF0b3IobV9jdXJyZW50KSkpCisg
ICAgICAgICAgICAgICAgc2hpZnRMaW5lVGVybWluYXRvcigpOworICAgICAgICAgICAgZWxzZSBp
ZiAobV9jdXJyZW50ID09ICd4JykgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAg
ICAgICAgICAgaWYgKCFpc0FTQ0lJSGV4RGlnaXQobV9jdXJyZW50KSB8fCAhaXNBU0NJSUhleERp
Z2l0KHBlZWsoMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0g
QVNDSUlMaXRlcmFsKCJcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVy
IHNlcXVlbmNlIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdDYW5ub3RCZVBh
cnNlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVCBwcmV2ID0gbV9jdXJy
ZW50OworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKHNob3Vs
ZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoY29udmVydEhleChw
cmV2LCBtX2N1cnJlbnQpKTsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAg
fSBlbHNlIGlmIChtX2N1cnJlbnQgPT0gJ3UnKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsK
KyAgICAgICAgICAgICAgICBVbmljb2RlSGV4VmFsdWUgY2hhcmFjdGVyID0gcGFyc2VGb3VyRGln
aXRVbmljb2RlSGV4KCk7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3Rlci5pc1ZhbGlkKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY29yZDE2KGNoYXJhY3Rlci52YWx1ZSgpKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgaWYgKG1fY3VycmVudCA9PSAnYCcpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2
KCd1Jyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9s
ZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBi
eSBhIFVuaWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNlIik7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBjaGFyYWN0ZXIudmFsdWVUeXBlKCkgPT0gVW5pY29kZUhleFZhbHVlOjpJbmNvbXBsZXRl
SGV4ID8gU3RyaW5nVW50ZXJtaW5hdGVkIDogU3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChpc0FTQ0lJRGlnaXQobV9jdXJyZW50
KSkgeworICAgICAgICAgICAgICAgIC8vIFRoZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGlu
IHN0cmljdCBtb2RlIGlzICdcMCcsIGFuZCB0aGlzIG11c3Qgbm90IGJlIGZvbGxvd2VkIGJ5IGEg
ZGVjaW1hbCBkaWdpdC4KKyAgICAgICAgICAgICAgICBpbnQgY2hhcmFjdGVyMSA9IG1fY3VycmVu
dDsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIGlmIChjaGFyYWN0
ZXIxICE9ICcwJyB8fCBpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkgeworICAgICAgICAgICAgICAg
ICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiVGhlIG9ubHkgdmFsaWQgbnVt
ZXJpYyBlc2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1xcMCciKTsKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgICAgICAgICBy
ZWNvcmQxNigwKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIWF0RW5kKCkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgICAgICAgICByZWNv
cmQxNihtX2N1cnJlbnQpOworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFs
KCJVbnRlcm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50Iik7CisgICAgICAgICAgICAgICAgcmV0dXJu
IFN0cmluZ1VudGVybWluYXRlZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RyaW5n
U3RhcnQgPSBjdXJyZW50U291cmNlUHRyKCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJyQnICYmIHBlZWsoMSkgPT0gJ3snKQor
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8gRW5kIG9mIGlucHV0IGlzIG5vdCBhbGxv
d2VkLgorICAgICAgICAvLyBVbmxpa2UgU3RyaW5nLCBsaW5lIHRlcm1pbmF0b3IgaXMgYWxsb3dl
ZC4KKyAgICAgICAgaWYgKGF0RW5kKCkpIHsKKyAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdl
ID0gQVNDSUlMaXRlcmFsKCJVbmV4cGVjdGVkIEVPRiIpOworICAgICAgICAgICAgcmV0dXJuIGF0
RW5kKCkgPyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAg
ICAgfQorICAgICAgICBzaGlmdCgpOworICAgIH0KKworICAgIGJvb2wgaXNUYWlsID0gbV9jdXJy
ZW50ID09ICdgJzsKKworICAgIGlmIChjdXJyZW50U291cmNlUHRyKCkgIT0gc3RyaW5nU3RhcnQg
JiYgc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICBhcHBlbmQxNihzdHJpbmdTdGFydCwgY3Vy
cmVudFNvdXJjZVB0cigpIC0gc3RyaW5nU3RhcnQpOworCisgICAgaWYgKHNob3VsZEJ1aWxkU3Ry
aW5ncykgeworICAgICAgICB0b2tlbkRhdGEtPmNvb2tlZCA9IG1ha2VJZGVudGlmaWVyKG1fYnVm
ZmVyMTYuZGF0YSgpLCBtX2J1ZmZlcjE2LnNpemUoKSk7CisgICAgICAgIHRva2VuRGF0YS0+cmF3
ID0gbWFrZUlkZW50aWZpZXIocmF3U3RyaW5nU3RhcnQsIGN1cnJlbnRTb3VyY2VQdHIoKSAtIHJh
d1N0cmluZ1N0YXJ0KTsKKyAgICB9IGVsc2UgeworICAgICAgICB0b2tlbkRhdGEtPmNvb2tlZCA9
IG51bGxwdHI7CisgICAgICAgIHRva2VuRGF0YS0+cmF3ID0gbnVsbHB0cjsKKyAgICB9CisgICAg
dG9rZW5EYXRhLT5pc1RhaWwgPSBpc1RhaWw7CisKKyAgICBtX2J1ZmZlcjE2LnJlc2l6ZSgwKTsK
KworICAgIGlmIChpc1RhaWwpIHsKKyAgICAgICAgLy8gU2tpcCBgCisgICAgICAgIHNoaWZ0KCk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU2tpcCAkIGFuZCB7CisgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgIHNoaWZ0KCk7CisgICAgfQorCisgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nl
c3NmdWxseTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTFdBWVNfSU5MSU5FIHZvaWQg
TGV4ZXI8VD46OnBhcnNlSGV4KGRvdWJsZSYgcmV0dXJuVmFsdWUpCiB7CiAgICAgLy8gT3B0aW1p
emF0aW9uOiBtb3N0IGhleGFkZWNpbWFsIHZhbHVlcyBmaXQgaW50byA0IGJ5dGVzLgpAQCAtMTgy
NiwyMyArMTkzNSwzNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGNoYXJhY3RlclJlcXVp
cmVzUGFyc2VTdHJpbmdTbG93Q2FzZShVQ2hhciBjaGFyYWN0ZXIpCiAgICAgICAgIH0KICAgICAg
ICAgbV9idWZmZXI4LnJlc2l6ZSgwKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDaGFyYWN0
ZXJRdW90ZToKLSAgICAgICAgaWYgKGxleGVyRmxhZ3MgJiBMZXhlckZsYWdzRG9udEJ1aWxkU3Ry
aW5ncykgewotICAgICAgICAgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VTdHJp
bmc8ZmFsc2U+KHRva2VuRGF0YSwgc3RyaWN0TW9kZSk7Ci0gICAgICAgICAgICBpZiAoVU5MSUtF
TFkocmVzdWx0ICE9IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkpIHsKLSAgICAgICAgICAgICAg
ICB0b2tlbiA9IHJlc3VsdCA9PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfU1RS
SU5HX0xJVEVSQUxfRVJST1JUT0sgOiBJTlZBTElEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LOwot
ICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuRXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBTdHJpbmdQYXJzZVJlc3VsdCByZXN1bHQgPSBwYXJzZVN0
cmluZzx0cnVlPih0b2tlbkRhdGEsIHN0cmljdE1vZGUpOwotICAgICAgICAgICAgaWYgKFVOTElL
RUxZKHJlc3VsdCAhPSBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHkpKSB7Ci0gICAgICAgICAgICAg
ICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5hdGVkID8gVU5URVJNSU5BVEVEX1NU
UklOR19MSVRFUkFMX0VSUk9SVE9LIDogSU5WQUxJRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSzsK
LSAgICAgICAgICAgICAgICBnb3RvIHJldHVybkVycm9yOwotICAgICAgICAgICAgfQorICAgIGNh
c2UgQ2hhcmFjdGVyUXVvdGU6IHsKKyAgICAgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0g
U3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAgICAgIGlmIChsZXhlckZsYWdzICYgTGV4ZXJGbGFn
c0RvbnRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICByZXN1bHQgPSBwYXJzZVN0cmluZzxmYWxz
ZT4odG9rZW5EYXRhLCBzdHJpY3RNb2RlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVz
dWx0ID0gcGFyc2VTdHJpbmc8dHJ1ZT4odG9rZW5EYXRhLCBzdHJpY3RNb2RlKTsKKworICAgICAg
ICBpZiAoVU5MSUtFTFkocmVzdWx0ICE9IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkpIHsKKyAg
ICAgICAgICAgIHRva2VuID0gcmVzdWx0ID09IFN0cmluZ1VudGVybWluYXRlZCA/IFVOVEVSTUlO
QVRFRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSyA6IElOVkFMSURfU1RSSU5HX0xJVEVSQUxfRVJS
T1JUT0s7CisgICAgICAgICAgICBnb3RvIHJldHVybkVycm9yOwogICAgICAgICB9CiAgICAgICAg
IHNoaWZ0KCk7CiAgICAgICAgIHRva2VuID0gU1RSSU5HOwogICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIGNhc2UgQ2hhcmFjdGVyQmFja1F1b3RlOiB7CisgICAgICAgIC8vIFNraXAgYmFj
a3F1b3RlLgorICAgICAgICBzaGlmdCgpOworICAgICAgICBTdHJpbmdQYXJzZVJlc3VsdCByZXN1
bHQgPSBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgaWYgKGxleGVyRmxhZ3MgJiBMZXhl
ckZsYWdzRG9udEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlVGVtcGxh
dGVMaXRlcmFsPGZhbHNlPih0b2tlbkRhdGEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBy
ZXN1bHQgPSBwYXJzZVRlbXBsYXRlTGl0ZXJhbDx0cnVlPih0b2tlbkRhdGEpOworCisgICAgICAg
IGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KSkgeworICAg
ICAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5hdGVkID8gVU5URVJNSU5B
VEVEX1RFTVBMQVRFX0xJVEVSQUxfRVJST1JUT0sgOiBJTlZBTElEX1RFTVBMQVRFX0xJVEVSQUxf
RVJST1JUT0s7CisgICAgICAgICAgICBnb3RvIHJldHVybkVycm9yOworICAgICAgICB9CisgICAg
ICAgIHRva2VuID0gVEVNUExBVEU7CisgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgY2Fz
ZSBDaGFyYWN0ZXJJZGVudGlmaWVyU3RhcnQ6CiAgICAgICAgIEFTU0VSVChpc0lkZW50U3RhcnQo
bV9jdXJyZW50KSk7CiAgICAgICAgIEZBTExUSFJPVUdIOwpAQCAtMjAzNiw2ICsyMTU5LDM4IEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgY2hhcmFjdGVyUmVxdWlyZXNQYXJzZVN0cmluZ1Ns
b3dDYXNlKFVDaGFyIGNoYXJhY3RlcikKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitKU1Rv
a2VuVHlwZSBMZXhlcjxUPjo6c2NhblRyYWlsaW5nVGVtcGxhdGVFbGVtZW50KEpTVG9rZW4qIHRv
a2VuUmVjb3JkKQoreworICAgIEpTVG9rZW5EYXRhKiB0b2tlbkRhdGEgPSAmdG9rZW5SZWNvcmQt
Pm1fZGF0YTsKKyAgICBKU1Rva2VuTG9jYXRpb24qIHRva2VuTG9jYXRpb24gPSAmdG9rZW5SZWNv
cmQtPm1fbG9jYXRpb247CisgICAgQVNTRVJUKCFtX2Vycm9yKTsKKyAgICBBU1NFUlQobV9idWZm
ZXIxNi5pc0VtcHR5KCkpOworCisgICAgLy8gTGVhZGluZyBjbG9zaW5nIGJyYWNlIH0gaXMgYWxy
ZWFkeSBzaGlmdGVkIGluIHRoZSBwcmV2aW91cyB0b2tlbiBzY2FuLgorICAgIC8vIFNvIGluIHRo
aXMgcmUtc2NhbiBwaGFzZSwgc2hpZnQoKSBpcyBub3QgbmVlZGVkIGhlcmUuCisgICAgU3RyaW5n
UGFyc2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWw8dHJ1ZT4odG9rZW5EYXRh
KTsKKyAgICBKU1Rva2VuVHlwZSB0b2tlbiA9IEVSUk9SVE9LOworICAgIGlmIChVTkxJS0VMWShy
ZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KSkgeworICAgICAgICB0b2tlbiA9IHJl
c3VsdCA9PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfVEVNUExBVEVfTElURVJB
TF9FUlJPUlRPSyA6IElOVkFMSURfVEVNUExBVEVfTElURVJBTF9FUlJPUlRPSzsKKyAgICAgICAg
bV9lcnJvciA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdG9rZW4gPSBURU1QTEFURTsK
KyAgICAgICAgbV9sYXN0VG9rZW4gPSB0b2tlbjsKKyAgICB9CisKKyAgICAvLyBTaW5jZSBUZW1w
bGF0ZUVsZW1lbnQgYWx3YXlzIGVuZHMgd2l0aCBgIG9yIH0sIG1fYXRMaW5lU3RhcnQgYWx3YXlz
IGJlY29tZXMgZmFsc2UuCisgICAgbV9hdExpbmVTdGFydCA9IGZhbHNlOworCisgICAgLy8gQWRq
dXN0IGN1cnJlbnQgdG9rZW5Mb2NhdGlvbiBkYXRhIGZvciBUZW1wbGF0ZUVsZW1lbnQuCisgICAg
dG9rZW5Mb2NhdGlvbi0+bGluZSA9IG1fbGluZU51bWJlcjsKKyAgICB0b2tlbkxvY2F0aW9uLT5l
bmRPZmZzZXQgPSBjdXJyZW50T2Zmc2V0KCk7CisgICAgdG9rZW5Mb2NhdGlvbi0+bGluZVN0YXJ0
T2Zmc2V0ID0gY3VycmVudExpbmVTdGFydE9mZnNldCgpOworICAgIEFTU0VSVCh0b2tlbkxvY2F0
aW9uLT5lbmRPZmZzZXQgPj0gdG9rZW5Mb2NhdGlvbi0+bGluZVN0YXJ0T2Zmc2V0KTsKKyAgICB0
b2tlblJlY29yZC0+bV9lbmRQb3NpdGlvbiA9IGN1cnJlbnRQb3NpdGlvbigpOworICAgIHJldHVy
biB0b2tlbjsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiB2b2lkIExleGVyPFQ+OjpjbGVh
cigpCiB7CiAgICAgbV9hcmVuYSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0xleGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgK
aW5kZXggMmRmNTIxMzk5NTc4MjAwNzg1YTE2NmUyMmE3MzI3NWUwZWE2MzA0ZC4uODU1NjAwNjdh
N2I4ZDFkYTRmZjBjMDdjZmU0ZDM5MjRlNDkzM2YzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTGV4ZXIuaApAQCAtOTksNiArOTksNyBAQCBjbGFzcyBMZXhlciB7CiAgICAgaW50IGxhc3RM
aW5lTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TGluZU51bWJlcjsgfQogICAgIGJvb2wg
cHJldlRlcm1pbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX3Rlcm1pbmF0b3I7IH0KICAgICBib29s
IHNjYW5SZWdFeHAoY29uc3QgSWRlbnRpZmllciomIHBhdHRlcm4sIGNvbnN0IElkZW50aWZpZXIq
JiBmbGFncywgVUNoYXIgcGF0dGVyblByZWZpeCA9IDApOworICAgIEpTVG9rZW5UeXBlIHNjYW5U
cmFpbGluZ1RlbXBsYXRlRWxlbWVudChKU1Rva2VuKik7CiAgICAgYm9vbCBza2lwUmVnRXhwKCk7
CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIHVzZSBhZnRlciBwYXJzaW5nLgpAQCAtMjAyLDYgKzIw
Myw3IEBAIGNsYXNzIExleGVyIHsKICAgICB9OwogICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1
aWxkU3RyaW5ncz4gQUxXQVlTX0lOTElORSBTdHJpbmdQYXJzZVJlc3VsdCBwYXJzZVN0cmluZyhK
U1Rva2VuRGF0YSosIGJvb2wgc3RyaWN0TW9kZSk7CiAgICAgdGVtcGxhdGUgPGJvb2wgc2hvdWxk
QnVpbGRTdHJpbmdzPiBORVZFUl9JTkxJTkUgU3RyaW5nUGFyc2VSZXN1bHQgcGFyc2VTdHJpbmdT
bG93Q2FzZShKU1Rva2VuRGF0YSosIGJvb2wgc3RyaWN0TW9kZSk7CisgICAgdGVtcGxhdGUgPGJv
b2wgc2hvdWxkQnVpbGRTdHJpbmdzPiBBTFdBWVNfSU5MSU5FIFN0cmluZ1BhcnNlUmVzdWx0IHBh
cnNlVGVtcGxhdGVMaXRlcmFsKEpTVG9rZW5EYXRhKik7CiAgICAgQUxXQVlTX0lOTElORSB2b2lk
IHBhcnNlSGV4KGRvdWJsZSYgcmV0dXJuVmFsdWUpOwogICAgIEFMV0FZU19JTkxJTkUgYm9vbCBw
YXJzZUJpbmFyeShkb3VibGUmIHJldHVyblZhbHVlKTsKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wg
cGFyc2VPY3RhbChkb3VibGUmIHJldHVyblZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggMDU3YmMzZDkyODA5ZjQ2YjA2Mjcx
YWMwMTJhYmVjZDZjODhhNjg0YS4uYWIxYzM5OGI1NzM0Zjg2N2FiZTEwNDY5MGUxNWYxOWI2ZThk
ODJjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3Ry
dWN0b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0
b3JzLmgKQEAgLTEwMCw2ICsxMDAsNTMgQEAKICAgICB7CiAgICAgfQogCisgICAgaW5saW5lIFRl
bXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZShFeHBy
ZXNzaW9uTm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAgICAgICAgLCBt
X25vZGUobm9kZSkKKyAgICB7CisgICAgfQorCisgICAgaW5saW5lIFRlbXBsYXRlRXhwcmVzc2lv
bkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZShUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0Tm9kZSogcHJldiwgRXhwcmVzc2lvbk5vZGUqIG5vZGUpCisgICAgICAgIDogbV9uZXh0KG51
bGxwdHIpCisgICAgICAgICwgbV9ub2RlKG5vZGUpCisgICAgeworICAgICAgICBwcmV2LT5tX25l
eHQgPSB0aGlzOworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZUVsZW1lbnROb2RlOjpUZW1w
bGF0ZUVsZW1lbnROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElk
ZW50aWZpZXImIGNvb2tlZCwgY29uc3QgSWRlbnRpZmllciYgcmF3KQorICAgICAgICA6IEV4cHJl
c3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1fY29va2VkKGNvb2tlZCkKKyAgICAgICAg
LCBtX3JhdyhyYXcpCisgICAgeworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZUVsZW1lbnRM
aXN0Tm9kZTo6VGVtcGxhdGVFbGVtZW50TGlzdE5vZGUoVGVtcGxhdGVFbGVtZW50Tm9kZSogbm9k
ZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAgICAgICAgLCBtX25vZGUobm9kZSkKKyAg
ICB7CisgICAgfQorCisgICAgaW5saW5lIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlOjpUZW1wbGF0
ZUVsZW1lbnRMaXN0Tm9kZShUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogcHJldiwgVGVtcGxhdGVF
bGVtZW50Tm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAgICAgICAgLCBt
X25vZGUobm9kZSkKKyAgICB7CisgICAgICAgIHByZXYtPm1fbmV4dCA9IHRoaXM7CisgICAgfQor
CisgICAgaW5saW5lIFRlbXBsYXRlTGl0ZXJhbE5vZGU6OlRlbXBsYXRlTGl0ZXJhbE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqIHRl
bXBsYXRlRWxlbWVudHMpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAg
ICAgICwgbV90ZW1wbGF0ZUVsZW1lbnRzKHRlbXBsYXRlRWxlbWVudHMpCisgICAgICAgICwgbV90
ZW1wbGF0ZUV4cHJlc3Npb25zKG51bGxwdHIpCisgICAgeworICAgIH0KKworICAgIGlubGluZSBU
ZW1wbGF0ZUxpdGVyYWxOb2RlOjpUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRz
LCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogdGVtcGxhdGVFeHByZXNzaW9ucykKKyAgICAg
ICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBtX3RlbXBsYXRlRWxlbWVu
dHModGVtcGxhdGVFbGVtZW50cykKKyAgICAgICAgLCBtX3RlbXBsYXRlRXhwcmVzc2lvbnModGVt
cGxhdGVFeHByZXNzaW9ucykKKyAgICB7CisgICAgfQorCiAgICAgaW5saW5lIFJlZ0V4cE5vZGU6
OlJlZ0V4cE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRp
ZmllciYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmllciYgZmxhZ3MpCiAgICAgICAgIDogRXhwcmVz
c2lvbk5vZGUobG9jYXRpb24pCiAgICAgICAgICwgbV9wYXR0ZXJuKHBhdHRlcm4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggMzY5NDEyMGIwNjhmN2M5MmY2OThlYTdkNWVh
MjNjMDI5NzY3OWJlZS4uMzFhNDkyZDJmMTEyMWM5ZGMwOWVmZWNhMTZhZjhlMDk2MjJmNDk5NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMjc1LDcgKzI3NSw3IEBACiAK
ICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV92YWx1ZTsKICAgICB9OwotICAgIAorCiAgICAg
Y2xhc3MgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgVGhy
b3dhYmxlRXhwcmVzc2lvbkRhdGEoKQpAQCAtNDI4LDYgKzQyOCw2NSBAQAogICAgICAgICB1aW50
MTZfdCBtX3N1YmV4cHJlc3Npb25MaW5lU3RhcnRPZmZzZXQ7CiAgICAgfTsKIAorICAgIGNsYXNz
IFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlIDogcHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUg
eworICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUoRXhwcmVz
c2lvbk5vZGUqKTsKKyAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUoVGVtcGxhdGVF
eHByZXNzaW9uTGlzdE5vZGUqLCBFeHByZXNzaW9uTm9kZSopOworCisgICAgICAgIEV4cHJlc3Np
b25Ob2RlKiB2YWx1ZSgpIHsgcmV0dXJuIG1fbm9kZTsgfQorICAgICAgICBUZW1wbGF0ZUV4cHJl
c3Npb25MaXN0Tm9kZSogbmV4dCgpIHsgcmV0dXJuIG1fbmV4dDsgfQorCisgICAgcHJpdmF0ZToK
KyAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIG1fbmV4dDsKKyAgICAgICAgRXhw
cmVzc2lvbk5vZGUqIG1fbm9kZTsKKyAgICB9OworCisgICAgY2xhc3MgVGVtcGxhdGVFbGVtZW50
Tm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CisgICAgcHVibGljOgorICAgICAgICBUZW1w
bGF0ZUVsZW1lbnROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXIm
IGNvb2tlZCwgY29uc3QgSWRlbnRpZmllciYgcmF3KTsKKworICAgICAgICBjb25zdCBJZGVudGlm
aWVyJiBjb29rZWQoKSB7IHJldHVybiBtX2Nvb2tlZDsgfQorICAgICAgICBjb25zdCBJZGVudGlm
aWVyJiByYXcoKSB7IHJldHVybiBtX3JhdzsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApIG92ZXJyaWRlOworCisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fY29va2Vk
OworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX3JhdzsKKyAgICB9OworCisgICAgY2xhc3Mg
VGVtcGxhdGVFbGVtZW50TGlzdE5vZGUgOiBwdWJsaWMgUGFyc2VyQXJlbmFGcmVlYWJsZSB7Cisg
ICAgcHVibGljOgorICAgICAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZShUZW1wbGF0ZUVsZW1l
bnROb2RlKik7CisgICAgICAgIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKFRlbXBsYXRlRWxlbWVu
dExpc3ROb2RlKiwgVGVtcGxhdGVFbGVtZW50Tm9kZSopOworCisgICAgICAgIFRlbXBsYXRlRWxl
bWVudE5vZGUqIHZhbHVlKCkgeyByZXR1cm4gbV9ub2RlOyB9CisgICAgICAgIFRlbXBsYXRlRWxl
bWVudExpc3ROb2RlKiBuZXh0KCkgeyByZXR1cm4gbV9uZXh0OyB9CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogbV9uZXh0OworICAgICAgICBUZW1wbGF0
ZUVsZW1lbnROb2RlKiBtX25vZGU7CisgICAgfTsKKworICAgIGNsYXNzIFRlbXBsYXRlTGl0ZXJh
bE5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGVt
cGxhdGVMaXRlcmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBUZW1wbGF0ZUVsZW1lbnRM
aXN0Tm9kZSopOworICAgICAgICBUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKiwgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5v
ZGUqKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKwor
ICAgICAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogbV90ZW1wbGF0ZUVsZW1lbnRzOworICAg
ICAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogbV90ZW1wbGF0ZUV4cHJlc3Npb25zOwor
ICAgIH07CisKKyAgICBjbGFzcyBUYWdnZWRUZW1wbGF0ZUxpdGVyYWxOb2RlIDogcHVibGljIEV4
cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgeworICAgIHB1Ymxp
YzoKKyAgICBwcml2YXRlOgorICAgICAgICBFeHByZXNzaW9uTm9kZSogbV90YWc7CisgICAgICAg
IFRlbXBsYXRlTGl0ZXJhbE5vZGUqIG1fdGVtcGxhdGVMaXRlcmFsOworICAgIH07CisKICAgICBj
bGFzcyBSZWdFeHBOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxl
RXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgUmVnRXhwTm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0ZXJuLCBjb25zdCBJZGVudGlm
aWVyJiBmbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXgg
NWY1MWRhMjRiNDM4NTM5YjdkNWIwZjQ5NTQxNDkwOTU0NjI3MjcyNi4uN2EwODkwNDAzOGMwOGVm
ZjJkOTNkNjQwNTNlYzVhOTExZWJkODYyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyLmNwcApAQCAtMjI1Nyw2ICsyMjU3LDYxIEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIGJv
b2wgaXNVbmFyeU9wKEpTVG9rZW5UeXBlIHRva2VuKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
TGV4ZXJUeXBlPgordGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiB0eXBlbmFtZSBUcmVlQnVp
bGRlcjo6VGVtcGxhdGVFbGVtZW50IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVRlbXBsYXRlRWxl
bWVudChUcmVlQnVpbGRlciYgY29udGV4dCwgYm9vbCBpc1RlbXBsYXRlSGVhZCwgYm9vbCYgZWxl
bWVudElzVGFpbCkKK3sKKyAgICBpZiAoIWlzVGVtcGxhdGVIZWFkKSB7CisgICAgICAgIG1hdGNo
T3JGYWlsKENMT1NFQlJBQ0UsICJFeHBlY3RlZCBhIGNsb3NpbmcgJ30nIGZvbGxvd2luZyBhbiBl
eHByZXNzaW9uIGluIHRlbXBsYXRlIGxpdGVyYWwiKTsKKyAgICAgICAgLy8gUmUtc2NhbiB0aGUg
dG9rZW4gdG8gcmVjb2duaXplIGl0IGFzIFRlbXBsYXRlIEVsZW1lbnQuCisgICAgICAgIG1fdG9r
ZW4ubV90eXBlID0gbV9sZXhlci0+c2NhblRyYWlsaW5nVGVtcGxhdGVFbGVtZW50KCZtX3Rva2Vu
KTsKKyAgICB9CisgICAgbWF0Y2hPckZhaWwoVEVNUExBVEUsICJFeHBlY3RlZCBhbiB0ZW1wbGF0
ZSBlbGVtZW50Iik7CisgICAgY29uc3QgSWRlbnRpZmllciogY29va2VkID0gbV90b2tlbi5tX2Rh
dGEuY29va2VkOworICAgIGNvbnN0IElkZW50aWZpZXIqIHJhdyA9IG1fdG9rZW4ubV9kYXRhLnJh
dzsKKyAgICBlbGVtZW50SXNUYWlsID0gbV90b2tlbi5tX2RhdGEuaXNUYWlsOworICAgIEpTVG9r
ZW5Mb2NhdGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgIG5leHQoKTsKKyAgICBy
ZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUVsZW1lbnQobG9jYXRpb24sICpjb29rZWQsICpy
YXcpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgordGVtcGxhdGUgPGNsYXNz
IFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1w
bGF0ZUxpdGVyYWwoVHJlZUJ1aWxkZXImIGNvbnRleHQpCit7CisgICAgSlNUb2tlbkxvY2F0aW9u
IGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CisgICAgYm9vbCBlbGVtZW50SXNUYWlsID0gZmFs
c2U7CisKKyAgICBhdXRvIGhlYWRUZW1wbGF0ZUVsZW1lbnQgPSBwYXJzZVRlbXBsYXRlRWxlbWVu
dChjb250ZXh0LCB0cnVlLCBlbGVtZW50SXNUYWlsKTsKKyAgICBmYWlsSWZGYWxzZShoZWFkVGVt
cGxhdGVFbGVtZW50LCAiQ2Fubm90IHBhcnNlIGhlYWQgdGVtcGxhdGUgZWxlbWVudCIpOworCisg
ICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlRWxlbWVudExpc3QgdGVtcGxhdGVFbGVt
ZW50TGlzdCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFbGVtZW50TGlzdChoZWFkVGVtcGxhdGVF
bGVtZW50KTsKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFbGVtZW50TGlzdCB0
ZW1wbGF0ZUVsZW1lbnRUYWlsID0gdGVtcGxhdGVFbGVtZW50TGlzdDsKKworICAgIGlmIChlbGVt
ZW50SXNUYWlsKQorICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxpdGVyYWwo
bG9jYXRpb24sIHRlbXBsYXRlRWxlbWVudExpc3QpOworCisgICAgVHJlZUV4cHJlc3Npb24gZXhw
cmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICBmYWlsSWZGYWxzZShleHBy
ZXNzaW9uLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gaW4gdGVtcGxhdGUgbGl0ZXJhbCIpOwor
CisgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3QgdGVtcGxh
dGVFeHByZXNzaW9uTGlzdCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChl
eHByZXNzaW9uKTsKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFeHByZXNzaW9u
TGlzdCB0ZW1wbGF0ZUV4cHJlc3Npb25UYWlsID0gdGVtcGxhdGVFeHByZXNzaW9uTGlzdDsKKwor
ICAgIGF1dG8gdGVtcGxhdGVFbGVtZW50ID0gcGFyc2VUZW1wbGF0ZUVsZW1lbnQoY29udGV4dCwg
ZmFsc2UsIGVsZW1lbnRJc1RhaWwpOworICAgIGZhaWxJZkZhbHNlKHRlbXBsYXRlRWxlbWVudCwg
IkNhbm5vdCBwYXJzZSB0ZW1wbGF0ZSBlbGVtZW50Iik7CisgICAgdGVtcGxhdGVFbGVtZW50VGFp
bCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFbGVtZW50TGlzdCh0ZW1wbGF0ZUVsZW1lbnRUYWls
LCB0ZW1wbGF0ZUVsZW1lbnQpOworCisgICAgd2hpbGUgKCFlbGVtZW50SXNUYWlsKSB7CisgICAg
ICAgIFRyZWVFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb24oY29udGV4dCk7
CisgICAgICAgIGZhaWxJZkZhbHNlKGV4cHJlc3Npb24sICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lv
biBpbiB0ZW1wbGF0ZSBsaXRlcmFsIik7CisgICAgICAgIHRlbXBsYXRlRXhwcmVzc2lvblRhaWwg
PSBjb250ZXh0LmNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QodGVtcGxhdGVFeHByZXNzaW9u
VGFpbCwgZXhwcmVzc2lvbik7CisKKyAgICAgICAgYXV0byB0ZW1wbGF0ZUVsZW1lbnQgPSBwYXJz
ZVRlbXBsYXRlRWxlbWVudChjb250ZXh0LCBmYWxzZSwgZWxlbWVudElzVGFpbCk7CisgICAgICAg
IGZhaWxJZkZhbHNlKHRlbXBsYXRlRWxlbWVudCwgIkNhbm5vdCBwYXJzZSB0ZW1wbGF0ZSBlbGVt
ZW50Iik7CisgICAgICAgIHRlbXBsYXRlRWxlbWVudFRhaWwgPSBjb250ZXh0LmNyZWF0ZVRlbXBs
YXRlRWxlbWVudExpc3QodGVtcGxhdGVFbGVtZW50VGFpbCwgdGVtcGxhdGVFbGVtZW50KTsKKyAg
ICB9CisKKyAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxpdGVyYWwobG9jYXRpb24s
IHRlbXBsYXRlRWxlbWVudExpc3QsIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpOworfQorCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgogdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBU
cmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcmltYXJ5RXhwcmVzc2lvbihU
cmVlQnVpbGRlciYgY29udGV4dCkKIHsKICAgICBmYWlsSWZTdGFja092ZXJmbG93KCk7CkBAIC0y
MzU3LDYgKzI0MTIsOCBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzVW5hcnlPcChKU1Rv
a2VuVHlwZSB0b2tlbikKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcmU7CiAgICAgfQorICAg
IGNhc2UgVEVNUExBVEU6CisgICAgICAgIHJldHVybiBwYXJzZVRlbXBsYXRlTGl0ZXJhbChjb250
ZXh0KTsKICAgICBkZWZhdWx0OgogICAgICAgICBmYWlsRHVlVG9VbmV4cGVjdGVkVG9rZW4oKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCA4NjNmOWMxNTYw
ODQyYTk4NTZkOGU5Nzc1MWNkOGJlZGM4YWJkODdhLi45YjEzZWUwMTJjZTNjNWZlZDA3ODEzMzZk
ZTExNjIyYTRjZTk0OGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKQEAg
LTY5LDYgKzY5LDcgQEAKICNkZWZpbmUgVHJlZUNvbnN0RGVjbExpc3QgdHlwZW5hbWUgVHJlZUJ1
aWxkZXI6OkNvbnN0RGVjbExpc3QKICNkZWZpbmUgVHJlZUFyZ3VtZW50cyB0eXBlbmFtZSBUcmVl
QnVpbGRlcjo6QXJndW1lbnRzCiAjZGVmaW5lIFRyZWVBcmd1bWVudHNMaXN0IHR5cGVuYW1lIFRy
ZWVCdWlsZGVyOjpBcmd1bWVudHNMaXN0CisjZGVmaW5lIFRyZWVUZW1wbGF0ZUVsZW1lbnRMaXN0
IHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZUVsZW1lbnRMaXN0CiAjZGVmaW5lIFRyZWVG
dW5jdGlvbkJvZHkgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkZ1bmN0aW9uQm9keQogI2lmIEVOQUJM
RShFUzZfQ0xBU1NfU1lOVEFYKQogI2RlZmluZSBUcmVlQ2xhc3NFeHByZXNzaW9uIHR5cGVuYW1l
IFRyZWVCdWlsZGVyOjpDbGFzc0V4cHJlc3Npb24KQEAgLTc3Niw2ICs3NzcsOCBAQCBjbGFzcyBQ
YXJzZXIgewogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIHRlbXBsYXRlIDxjbGFz
cyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIFRyZWVDbGFzc0V4cHJlc3Npb24gcGFyc2VDbGFz
cyhUcmVlQnVpbGRlciYsIEZ1bmN0aW9uUmVxdWlyZW1lbnRzLCBQYXJzZXJDbGFzc0luZm88VHJl
ZUJ1aWxkZXI+Jik7CiAjZW5kaWYKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5F
VkVSX0lOTElORSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFbGVtZW50IHBhcnNlVGVt
cGxhdGVFbGVtZW50KFRyZWVCdWlsZGVyJiBjb250ZXh0LCBib29sIGlzVGVtcGxhdGVIZWFkLCBi
b29sJiBlbGVtZW50SXNUYWlsKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5F
VkVSX0lOTElORSBUcmVlRXhwcmVzc2lvbiBwYXJzZVRlbXBsYXRlTGl0ZXJhbChUcmVlQnVpbGRl
ciYpOwogCiAgICAgQUxXQVlTX0lOTElORSBpbnQgaXNCaW5hcnlPcGVyYXRvcihKU1Rva2VuVHlw
ZSk7CiAgICAgYm9vbCBhbGxvd0F1dG9tYXRpY1NlbWljb2xvbigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggODMyOWY4MmE5YjJmZjkxNWQxZjI0
MWMxZjhiZmZhZDQyNDdhNWYwYi4uMDI2ZTRmODBmNDM3ZDhiZmU0YTYxOWMzMGQxMWRjOWZjNjFl
MjY0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tl
bnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCkBA
IC05Niw2ICs5Niw3IEBAIGVudW0gSlNUb2tlblR5cGUgewogICAgIERPVUJMRSwKICAgICBJREVO
VCwKICAgICBTVFJJTkcsCisgICAgVEVNUExBVEUsCiAgICAgU0VNSUNPTE9OLAogICAgIENPTE9O
LAogICAgIERPVCwKQEAgLTE2MSw3ICsxNjIsOSBAQCBlbnVtIEpTVG9rZW5UeXBlIHsKICAgICBJ
TlZBTElEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LID0gOSB8IEVycm9yVG9rZW5GbGFnLAogICAg
IElOVkFMSURfUFJJVkFURV9OQU1FX0VSUk9SVE9LID0gMTAgfCBFcnJvclRva2VuRmxhZywKICAg
ICBJTlZBTElEX0hFWF9OVU1CRVJfRVJST1JUT0sgPSAxMSB8IEVycm9yVG9rZW5GbGFnLAotICAg
IElOVkFMSURfQklOQVJZX05VTUJFUl9FUlJPUlRPSyA9IDEyIHwgRXJyb3JUb2tlbkZsYWcKKyAg
ICBJTlZBTElEX0JJTkFSWV9OVU1CRVJfRVJST1JUT0sgPSAxMiB8IEVycm9yVG9rZW5GbGFnLAor
ICAgIFVOVEVSTUlOQVRFRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LID0gMTMgfCBFcnJvclRv
a2VuRmxhZyB8IFVudGVybWluYXRlZEVycm9yVG9rZW5GbGFnLAorICAgIElOVkFMSURfVEVNUExB
VEVfTElURVJBTF9FUlJPUlRPSyA9IDE0IHwgRXJyb3JUb2tlbkZsYWcsCiB9OwogCiBzdHJ1Y3Qg
SlNUZXh0UG9zaXRpb24gewpAQCAtMTg5LDYgKzE5MiwxMSBAQCBzdHJ1Y3QgSlNUZXh0UG9zaXRp
b24gewogICAgIH07CiAgICAgZG91YmxlIGRvdWJsZVZhbHVlOwogICAgIGNvbnN0IElkZW50aWZp
ZXIqIGlkZW50OworICAgIHN0cnVjdCB7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIGNvb2tl
ZDsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciogcmF3OworICAgICAgICBib29sIGlzVGFpbDsK
KyAgICB9OwogfTsKIAogc3RydWN0IEpTVG9rZW5Mb2NhdGlvbiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCmluZGV4IDhiNDc1ODRiYTdiN2E0ZjI5YzBm
MGUwZWFkNTdlMDczNGZhYmZlMmYuLjlkNTUxNWU0YjQzYTVmODk4YjQ1YzQzYzEzODA3NmZmMWZh
ZWM5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hl
Y2tlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5o
CkBAIC04MSw3ICs4MSw4IEBAIGNsYXNzIFN5bnRheENoZWNrZXIgewogICAgICAgICBGdW5jdGlv
bkJvZHlSZXN1bHQsIFNwcmVhZEV4cHIsIEFyZ3VtZW50c1Jlc3VsdCwKICAgICAgICAgUHJvcGVy
dHlMaXN0UmVzdWx0LCBBcmd1bWVudHNMaXN0UmVzdWx0LCBFbGVtZW50c0xpc3RSZXN1bHQsCiAg
ICAgICAgIFN0YXRlbWVudFJlc3VsdCwgRm9ybWFsUGFyYW1ldGVyTGlzdFJlc3VsdCwgQ2xhdXNl
UmVzdWx0LAotICAgICAgICBDbGF1c2VMaXN0UmVzdWx0LCBDb21tYUV4cHIsIERlY29uc3RydWN0
aW5nQXNzaWdubWVudAorICAgICAgICBDbGF1c2VMaXN0UmVzdWx0LCBDb21tYUV4cHIsIERlY29u
c3RydWN0aW5nQXNzaWdubWVudCwKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50UmVzdWx0LCBUZW1w
bGF0ZUVsZW1lbnRMaXN0UmVzdWx0LCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0LCBUZW1w
bGF0ZUV4cHIKICAgICB9OwogICAgIHR5cGVkZWYgaW50IEV4cHJlc3Npb25UeXBlOwogCkBAIC0x
MTEsNiArMTEyLDkgQEAgY2xhc3MgU3ludGF4Q2hlY2tlciB7CiAgICAgdHlwZWRlZiBpbnQgUHJv
cGVydHlMaXN0OwogICAgIHR5cGVkZWYgaW50IEVsZW1lbnRMaXN0OwogICAgIHR5cGVkZWYgaW50
IEFyZ3VtZW50c0xpc3Q7CisgICAgdHlwZWRlZiBpbnQgVGVtcGxhdGVFeHByZXNzaW9uTGlzdDsK
KyAgICB0eXBlZGVmIGludCBUZW1wbGF0ZUVsZW1lbnQ7CisgICAgdHlwZWRlZiBpbnQgVGVtcGxh
dGVFbGVtZW50TGlzdDsKICAgICB0eXBlZGVmIGludCBGb3JtYWxQYXJhbWV0ZXJMaXN0OwogICAg
IHR5cGVkZWYgaW50IEZ1bmN0aW9uQm9keTsKICNpZiBFTkFCTEUoRVM2X0NMQVNTX1NZTlRBWCkK
QEAgLTE3Myw2ICsxNzcsMTQgQEAgY2xhc3MgU3ludGF4Q2hlY2tlciB7CiAgICAgaW50IGNyZWF0
ZUFyZ3VtZW50cygpIHsgcmV0dXJuIEFyZ3VtZW50c1Jlc3VsdDsgfQogICAgIGludCBjcmVhdGVB
cmd1bWVudHMoaW50KSB7IHJldHVybiBBcmd1bWVudHNSZXN1bHQ7IH0KICAgICBFeHByZXNzaW9u
VHlwZSBjcmVhdGVTcHJlYWRFeHByZXNzaW9uKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJl
c3Npb25UeXBlLCBpbnQsIGludCwgaW50KSB7IHJldHVybiBTcHJlYWRFeHByOyB9CisgICAgVGVt
cGxhdGVFbGVtZW50IGNyZWF0ZVRlbXBsYXRlRWxlbWVudChjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSWRlbnRpZmllciYpIHsgcmV0dXJuIFRlbXBsYXRl
RWxlbWVudFJlc3VsdDsgfQorICAgIFRlbXBsYXRlRWxlbWVudExpc3QgY3JlYXRlVGVtcGxhdGVF
bGVtZW50TGlzdChUZW1wbGF0ZUVsZW1lbnQpIHsgcmV0dXJuIFRlbXBsYXRlRWxlbWVudExpc3RS
ZXN1bHQ7IH0KKyAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0IGNyZWF0ZVRlbXBsYXRlRWxlbWVudExp
c3QoVGVtcGxhdGVFbGVtZW50TGlzdCwgVGVtcGxhdGVFbGVtZW50KSB7IHJldHVybiBUZW1wbGF0
ZUVsZW1lbnRMaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdCBjcmVhdGVU
ZW1wbGF0ZUV4cHJlc3Npb25MaXN0KEV4cHJlc3Npb24pIHsgcmV0dXJuIFRlbXBsYXRlRXhwcmVz
c2lvbkxpc3RSZXN1bHQ7IH0KKyAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0IGNyZWF0ZVRlbXBs
YXRlRXhwcmVzc2lvbkxpc3QoVGVtcGxhdGVFeHByZXNzaW9uTGlzdCwgRXhwcmVzc2lvbikgeyBy
ZXR1cm4gVGVtcGxhdGVFeHByZXNzaW9uTGlzdFJlc3VsdDsgfQorICAgIEV4cHJlc3Npb24gY3Jl
YXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFRlbXBsYXRlRWxlbWVu
dExpc3QpIHsgcmV0dXJuIFRlbXBsYXRlRXhwcjsgfQorICAgIEV4cHJlc3Npb24gY3JlYXRlVGVt
cGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFRlbXBsYXRlRWxlbWVudExpc3Qs
IFRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpIHsgcmV0dXJuIFRlbXBsYXRlRXhwcjsgfQorCiAgICAg
aW50IGNyZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50KSB7IHJl
dHVybiBBcmd1bWVudHNMaXN0UmVzdWx0OyB9CiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50c0xpc3Qo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBpbnQpIHsgcmV0dXJuIEFyZ3VtZW50c0xpc3RS
ZXN1bHQ7IH0KICAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyKiBu
YW1lLCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUs
IGJvb2wgY29tcGxldGUsIFN1cGVyQmluZGluZyA9IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249671</attachid>
            <date>2015-03-28 13:45:34 -0700</date>
            <delta_ts>2015-03-28 13:56:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142691-20150329054453.patch</filename>
            <type>text/plain</type>
            <size>58062</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MDNiMDY3YmVkM2RmMzc2ZWNjOTQ0NzcyZjJiNWQxNjQ3YzYzY2JjLi44Zjk0YTFjYTFiMTlmOTU0
MDdjYWEyOTI3NzVjZjNlNzg5M2Y3ZDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTMgQEAKKzIwMTUtMDMtMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIFRlbXBsYXRlTGl0ZXJhbC4KKyAgICAgICAgU2luY2UgVGFnZ2VkVGVtcGxh
dGUgcmVxdWlyZXMgc29tZSBnbG9iYWwgc3RhdGVzIGFuZAorICAgICAgICBwcmltaXRpdmUgb3Bl
cmF0aW9ucyBsaWtlIEdldFRlbXBsYXRlT2JqZWN0LAorICAgICAgICB3ZSBzZXBhcmF0ZSB0aGUg
cGF0Y2guIEl0IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisg
ICAgICAgIFRvIGltcGxlbWVudCB0ZW1wbGF0ZSBsaXRlcmFscywgaW4gdGhpcyBwYXRjaCwKKyAg
ICAgICAgd2UgbmV3bHkgaW50cm9kdWNlcyBieXRlY29kZSBvcF90b19zdHJpbmcuCisgICAgICAg
IEluIHRlbXBsYXRlIGxpdGVyYWxzLCB3ZSBhbHRlcm5hdGVseSBldmFsdWF0ZSB0aGUgZXhwcmVz
c2lvbiBhbmQKKyAgICAgICAgcGVyZm9ybSBUb1N0cmluZyBvbnRvIHRoZSByZXN1bHQgb2YgZXZh
bHVhdGlvbi4KKyAgICAgICAgRm9yIGV4YW1wbGUsCisKKyAgICAgICAgYCR7ZjEoKX0gJHtmMigp
fWAKKworICAgICAgICBJbiB0aGlzIHRlbXBsYXRlIGxpdGVyYWwsIGV4ZWN1dGlvbiBvcmRlciBp
cyB0aGUgZm9sbG93aW5nLAorICAgICAgICAxLiBjYWxsaW5nIGYxKCkKKyAgICAgICAgMi4gVG9T
dHJpbmcodGhlIHJlc3VsdCBvZiBmMSgpKQorICAgICAgICAzLiBjYWxsaW5nIGYyKCkKKyAgICAg
ICAgNC4gVG9TdHJpbmcodGhlIHJlc3VsdCBvZiBmMigpKQorCisgICAgICAgIG9wX3N0cmNhdCBh
bHNvIHBlcmZvcm1zIFRvU3RyaW5nLiBIb3dldmVyLCBwZXJmb3JtaW5nIFRvU3RyaW5nCisgICAg
ICAgIG9udG8gZXhwcmVzc2lvbnMgYXJlIGJhdGNoZWQgaW4gb3Bfc3RyY2F0LCBpdCdzIG5vdCB0
aGUgc2FtZSB0byB0aGUKKyAgICAgICAgdGVtcGxhdGUgbGl0ZXJhbCBzcGVjLiBJbiB0aGUgYWJv
dmUgZXhhbXBsZSwKKyAgICAgICAgVG9TdHJpbmcoZjEoKSkgc2hvdWxkIGJlIGNhbGxlZCBiZWZv
cmUgY2FsbGluZyBmMigpLgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246
CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29t
cHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKiBieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRUb1N0cmluZyk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6
CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAg
ICAgIChKU0M6OlRlbXBsYXRlTGl0ZXJhbE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgICog
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAg
KEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcyk6CisgICAgICAgICogaml0L0pJVC5o
OgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX3RvX3N0cmluZyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfdG9fc3RyaW5n
KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX3RvX3N0cmluZyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfdG9f
c3RyaW5nKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcGFy
c2VyL0FTVEJ1aWxkZXIuaDoKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxh
dGVFbGVtZW50KToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxhdGVFbGVt
ZW50TGlzdCk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlRXhwcmVz
c2lvbkxpc3QpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVUZW1wbGF0ZUxpdGVy
YWwpOgorICAgICAgICAqIHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6OkxleGVyPFQ+
OjpMZXhlcik6CisgICAgICAgIChKU0M6OkxpbmVOdW1iZXJBZGRlcjo6TGluZU51bWJlckFkZGVy
KToKKyAgICAgICAgKEpTQzo6TGluZU51bWJlckFkZGVyOjpjbGVhcik6CisgICAgICAgIChKU0M6
OkxpbmVOdW1iZXJBZGRlcjo6YWRkKToKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OnBhcnNlVGVt
cGxhdGVMaXRlcmFsKToKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OmxleCk6CisgICAgICAgIChK
U0M6OkxleGVyPFQ+OjpzY2FuVHJhaWxpbmdUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIHBh
cnNlci9MZXhlci5oOgorICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAg
ICAgIChKU0M6OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0Tm9kZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudE5vZGU6OlRlbXBsYXRlRWxl
bWVudE5vZGUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZTo6VGVtcGxh
dGVFbGVtZW50TGlzdE5vZGUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUxpdGVyYWxOb2RlOjpU
ZW1wbGF0ZUxpdGVyYWxOb2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAg
KEpTQzo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6OnZhbHVlKToKKyAgICAgICAgKEpTQzo6
VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6Om5leHQpOgorICAgICAgICAoSlNDOjpUZW1wbGF0
ZUVsZW1lbnROb2RlOjpjb29rZWQpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUVsZW1lbnROb2Rl
OjpyYXcpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZTo6dmFsdWUpOgor
ICAgICAgICAoSlNDOjpUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZTo6bmV4dCk6CisgICAgICAgICog
cGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJz
ZVRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJz
ZVRlbXBsYXRlTGl0ZXJhbCk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJz
ZVByaW1hcnlFeHByZXNzaW9uKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAg
ICogcGFyc2VyL1BhcnNlclRva2Vucy5oOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2Vy
Lmg6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlRWxlbWVudCk6
CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlRWxlbWVudExpc3Qp
OgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0KToKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVMaXRlcmFs
KToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6
OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLWxpbmUtdGVybWluYXRvcnMu
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICh0ZXN0RXZhbCk6CisgICAgICAg
ICh0ZXN0RXZhbExpbmVOdW1iZXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90ZW1wbGF0ZS1s
aXRlcmFsLXN5bnRheC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0U3ludGF4KToKKyAgICAgICAg
KHRlc3RTeW50YXhFcnJvcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVy
YWwuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICh0ZXN0RXZhbCk6CisgICAg
ICAgICh0ZXN0RW1iZWRkZWQpOgorCiAyMDE1LTAzLTI3ICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJh
dGkxQGdtYWlsLmNvbT4KIAogICAgICAgICBEZWNvbnN0cnVjdGlvbiBwYXJhbWV0ZXJzIGFyZSBi
b3VuZCB0b28gbGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlTGlzdC5qc29uCmluZGV4IDZiMjQzOTE1NmFiM2FmYWU2YjU1OGFiOTA2NmQyMjI1MTVkNTll
NDUuLjFkOTRhMGUxN2ZkOTE0Mjc2NWEyNzIyNjQ2OGI2ZDZjMzQ0Y2MxMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTMzLDYg
KzMzLDcgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2luYyIsICJsZW5ndGgiIDogMiB9
LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGVjIiwgImxlbmd0aCIgOiAyIH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF90b19udW1iZXIiLCAibGVuZ3RoIiA6IDMgfSwKKyAgICAg
ICAgICAgIHsgIm5hbWUiIDogIm9wX3RvX3N0cmluZyIsICJsZW5ndGgiIDogMyB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfbmVnYXRlIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9hZGQiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogIm9wX211bCIsICJsZW5ndGgiIDogNSB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCA4NWYyOTE1YzdlOGY2MDFhZDNlYzE3
OGJmNjllMzU0NGY3NTRjMmNmLi5iYTRhMzg3NTBmM2ZjNTBiMDY4YThhOTE5MTFlM2MyZTRjYTk3
MGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VE
ZWYuaApAQCAtMTM2LDYgKzEzNiw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNl
dCgKICAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9udWxsOgogICAgIGNhc2Ugb3BfaXNfZnVuY3Rp
b246CiAgICAgY2FzZSBvcF90b19udW1iZXI6CisgICAgY2FzZSBvcF90b19zdHJpbmc6CiAgICAg
Y2FzZSBvcF9uZWdhdGU6CiAgICAgY2FzZSBvcF9uZXFfbnVsbDoKICAgICBjYXNlIG9wX2VxX251
bGw6CkBAIC0zMzAsNiArMzMxLDcgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0
KENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBieXRlY29kZU9mZnNldCwKICAgICBjYXNl
IG9wX2lzX2Z1bmN0aW9uOgogICAgIGNhc2Ugb3BfaW46CiAgICAgY2FzZSBvcF90b19udW1iZXI6
CisgICAgY2FzZSBvcF90b19zdHJpbmc6CiAgICAgY2FzZSBvcF9uZWdhdGU6CiAgICAgY2FzZSBv
cF9hZGQ6CiAgICAgY2FzZSBvcF9tdWw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCmluZGV4IDllOTUxN2U3ODFiZTU1N2YwNGYxN2Y5M2RlYzcxYjkxNmNj
OWEyYWQuLjdjZDRiZmQxYmI2YjBmOGUyMTYyNDJhMmI0NmNhYzY3ODE5MWYzN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC05MTYsNiArOTE2
LDEwIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBwcmludFVu
YXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0b19udW1iZXIiKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CisgICAgICAgIGNhc2Ugb3BfdG9fc3RyaW5nOiB7CisgICAgICAg
ICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0b19zdHJpbmciKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmVnYXRlOiB7
CiAgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJuZWdh
dGUiKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDRmZmVmNmI0MDk3ZjAy
NDZkYzFiYWU4OWVlOGFhYjhlYzk1YzYwZmEuLjc4ZjJiYTdkMDRjYmMxMTNiYTNjYjlmN2M0NWI2
MDJmNzY2NTllYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTQ2MCw2ICs0NjAsNyBAQAogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0TW92ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYyk7CiAK
ICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFRvTnVtYmVyKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0VW5hcnlPcChvcF90b19udW1iZXIsIGRzdCwgc3JjKTsg
fQorICAgICAgICBSZWdpc3RlcklEKiBlbWl0VG9TdHJpbmcoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRVbmFyeU9wKG9wX3RvX3N0cmluZywgZHN0LCBzcmMp
OyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbmMoUmVnaXN0ZXJJRCogc3JjRHN0KTsKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdERlYyhSZWdpc3RlcklEKiBzcmNEc3QpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5k
ZXggNjE1OWM3OWM5OTMxZWNkNDU4NWYxYTdkZWZiMWE3NjExNTczZThhMy4uODc0MjdlN2Y4NTVk
MTdlZTg4YWI5ZjBlYjE1ZDU5ZmZkNGNhZjdlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMjE1LDYgKzIxNSw1MCBA
QCBSZWdpc3RlcklEKiBSZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRlbXBsYXRlRWxlbWVudE5vZGUgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogVGVtcGxhdGVFbGVtZW50
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqIGRzdCkKK3sKKyAgICBpZiAoZHN0ID09IGdlbmVyYXRvci5pZ25vcmVkUmVzdWx0KCkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExvYWQoZHN0
LCBKU1ZhbHVlKGdlbmVyYXRvci5hZGRTdHJpbmdDb25zdGFudChjb29rZWQoKSkpKTsKK30KKwor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRlbXBsYXRlTGl0ZXJhbE5vZGUgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogVGVtcGxhdGVM
aXRlcmFsTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJl
Z2lzdGVySUQqIGRzdCkKK3sKKyAgICBpZiAoIW1fdGVtcGxhdGVFeHByZXNzaW9ucykgeworICAg
ICAgICBUZW1wbGF0ZUVsZW1lbnROb2RlKiB0ZW1wbGF0ZUVsZW1lbnQgPSBtX3RlbXBsYXRlRWxl
bWVudHMtPnZhbHVlKCk7CisgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1fdGVtcGxhdGVF
bGVtZW50cy0+bmV4dCgpLCAiT25seSBvbmUgdGVtcGxhdGUgZWxlbWVudCBleGlzdHMgYmVjYXVz
ZSB0aGVyZSdzIG5vIGV4cHJlc3Npb24gaW4gYSBnaXZlbiB0ZW1wbGF0ZSBsaXRlcmFsLiIpOwor
ICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgdGVtcGxhdGVFbGVtZW50KTsK
KyAgICB9CisKKyAgICBWZWN0b3I8UmVmUHRyPFJlZ2lzdGVySUQ+LCAxNj4gdGVtcG9yYXJ5UmVn
aXN0ZXJzOworCisgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqIHRlbXBsYXRlRWxlbWVudHNU
YWlsID0gbV90ZW1wbGF0ZUVsZW1lbnRzOworICAgIGZvciAoYXV0byB0ZW1wbGF0ZUV4cHJlc3Np
b25zVGFpbCA9IG1fdGVtcGxhdGVFeHByZXNzaW9uczsgdGVtcGxhdGVFeHByZXNzaW9uc1RhaWw7
IHRlbXBsYXRlRXhwcmVzc2lvbnNUYWlsID0gdGVtcGxhdGVFeHByZXNzaW9uc1RhaWwtPm5leHQo
KSwgdGVtcGxhdGVFbGVtZW50c1RhaWwgPSB0ZW1wbGF0ZUVsZW1lbnRzVGFpbC0+bmV4dCgpKSB7
CisgICAgICAgIC8vIEV2YWx1YXRlIFRlbXBsYXRlRWxlbWVudC4KKyAgICAgICAgaWYgKCF0ZW1w
bGF0ZUVsZW1lbnRzVGFpbC0+dmFsdWUoKS0+Y29va2VkKCkuaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICB0ZW1wb3JhcnlSZWdpc3RlcnMuYXBwZW5kKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSk7
CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUodGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3Qo
KS5nZXQoKSwgdGVtcGxhdGVFbGVtZW50c1RhaWwtPnZhbHVlKCkpOworICAgICAgICB9CisKKyAg
ICAgICAgLy8gRXZhbHVhdGUgRXhwcmVzc2lvbi4KKyAgICAgICAgdGVtcG9yYXJ5UmVnaXN0ZXJz
LmFwcGVuZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1p
dE5vZGUodGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSwgdGVtcGxhdGVFeHByZXNzaW9u
c1RhaWwtPnZhbHVlKCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFRvU3RyaW5nKHRlbXBvcmFy
eVJlZ2lzdGVycy5sYXN0KCkuZ2V0KCksIHRlbXBvcmFyeVJlZ2lzdGVycy5sYXN0KCkuZ2V0KCkp
OworICAgIH0KKworICAgIC8vIEV2YWx1YXRlIHRhaWwgVGVtcGxhdGVFbGVtZW50LgorICAgIGlm
ICghdGVtcGxhdGVFbGVtZW50c1RhaWwtPnZhbHVlKCktPmNvb2tlZCgpLmlzRW1wdHkoKSkgewor
ICAgICAgICB0ZW1wb3JhcnlSZWdpc3RlcnMuYXBwZW5kKGdlbmVyYXRvci5uZXdUZW1wb3Jhcnko
KSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZSh0ZW1wb3JhcnlSZWdpc3RlcnMubGFzdCgp
LmdldCgpLCB0ZW1wbGF0ZUVsZW1lbnRzVGFpbC0+dmFsdWUoKSk7CisgICAgfQorCisgICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0U3RyY2F0KGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwg
dGVtcG9yYXJ5UmVnaXN0ZXJzWzBdLmdldCgpKSwgdGVtcG9yYXJ5UmVnaXN0ZXJzWzBdLmdldCgp
LCB0ZW1wb3JhcnlSZWdpc3RlcnMuc2l6ZSgpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEFycmF5Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAogUmVnaXN0ZXJJRCogQXJyYXlOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2OWZkNGFkMTU5NTRiNTcwZTBjOTQw
NzA0MTYzZWE2MGI4MTRmOTljLi42NmE2MTU1YWM2OTE2ZmM3MTY2NTBlMzFkZmViN2ExZTc5OGE1
ZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcApAQCAtMzY3NCw3ICszNjc0LDEzIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxv
Y2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBub2RlKTsKICAgICAgICAgICAgIE5FWFRfT1BD
T0RFKG9wX3RvX251bWJlcik7CiAgICAgICAgIH0KLSAgICAgICAgICAgIAorCisgICAgICAgIGNh
c2Ugb3BfdG9fc3RyaW5nOiB7CisgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAgICAgICAgICAg
c2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRk
VG9HcmFwaChUb1N0cmluZywgdmFsdWUpKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3Rv
X3N0cmluZyk7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIG9wX2luOiB7CiAgICAgICAgICAg
ICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLAog
ICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoSW4sIGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDhlZjRkY2YxNTY4YmQ1ZWRhNGI4OTdlNzY4NGE4
Y2JiOTFiZjZlMDguLmZlMDkzNzM1YjBmYTAzOWViNzRjYmQ0NTRhMmI2MDIwMmQ0OThiNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE5
MSw2ICsxOTEsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9w
Y29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3Bfam5lcV9w
dHI6CiAgICAgY2FzZSBvcF90eXBlb2Y6CiAgICAgY2FzZSBvcF90b19udW1iZXI6CisgICAgY2Fz
ZSBvcF90b19zdHJpbmc6CiAgICAgY2FzZSBvcF9zd2l0Y2hfaW1tOgogICAgIGNhc2Ugb3Bfc3dp
dGNoX2NoYXI6CiAgICAgY2FzZSBvcF9pbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRl
eCA0MmE4MmQ0Mzk0NjE2MmY5NWZhNDc0Njc1NjcxMzlkNGFhZjIzODZiLi5kMWJmZGU3OTRiZjBl
MjE1MjQ4ODY3NTdmMjUyNzkxMDkzODkyZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3Bw
CkBAIC0yOTMsNiArMjkzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQog
ICAgICAgICBERUZJTkVfT1Aob3BfdGhyb3cpCiAgICAgICAgIERFRklORV9PUChvcF90aHJvd19z
dGF0aWNfZXJyb3IpCiAgICAgICAgIERFRklORV9PUChvcF90b19udW1iZXIpCisgICAgICAgIERF
RklORV9PUChvcF90b19zdHJpbmcpCiAgICAgICAgIERFRklORV9PUChvcF90b19wcmltaXRpdmUp
CiAKICAgICAgICAgREVGSU5FX09QKG9wX3Jlc29sdmVfc2NvcGUpCkBAIC00MjIsNiArNDIzLDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgREVGSU5FX1NM
T1dDQVNFX09QKG9wX3N0cmljdGVxKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bfc3Vi
KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfdG9fbnVtYmVyKQorICAgICAgICBERUZJ
TkVfU0xPV0NBU0VfT1Aob3BfdG9fc3RyaW5nKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Ao
b3BfdG9fcHJpbWl0aXZlKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaGFzX2luZGV4
ZWRfcHJvcGVydHkpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9oYXNfc3RydWN0dXJl
X3Byb3BlcnR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggZWU0ODU1ZGMyZTc4YjU1YWNj
NDU5OWViZGI5OWEwZDhlMDhiZTdjYy4uYTA4ZGJlMmYzYTlhZGY0MjE1OGJjMDQxNjQxYWQwZmZm
MDI2YjJjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC01NTIsNiArNTUyLDcgQEAKICAg
ICAgICAgdm9pZCBlbWl0X29wX3Rocm93KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1p
dF9vcF90aHJvd19zdGF0aWNfZXJyb3IoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3BfdG9fc3Ry
aW5nKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF90b19wcmltaXRpdmUoSW5z
dHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3VuZXhwZWN0ZWRfbG9hZChJbnN0cnVj
dGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfdW5zaWduZWQoSW5zdHJ1Y3Rpb24qKTsKQEAg
LTYxNCw2ICs2MTUsNyBAQAogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3N0cmljdGVxKEluc3Ry
dWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lk
IGVtaXRTbG93X29wX3N1YihJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24q
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgZW1pdFNs
b3dfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVy
YXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3RvX3ByaW1pdGl2ZShJbnN0cnVjdGlv
biosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0
U2xvd19vcF91bnNpZ25lZChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF91cnNoaWZ0KEluc3RydWN0aW9uKiwg
VmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggZDNkNTgwZTllMjYwMDg1M2I2NjQ5ZTI4NTkxOGY4NTM4
YmU2OTQ0Yy4uZGQ1YmJmNThiNjVkZTJmNmQ5YzliMzgxN2QyMjIwMDdhYTU1YWFmZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC00ODgsNiArNDg4LDE3IEBA
IHZvaWQgSklUOjplbWl0X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX3RvX3N0cmluZyhJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQoreworICAgIGludCBzcmNWUmVnID0gY3VycmVudEluc3RydWN0
aW9uWzJdLnUub3BlcmFuZDsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHNyY1ZSZWcsIHJl
Z1QwKTsKKworICAgIGFkZFNsb3dDYXNlKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDApKTsKKyAg
ICBhZGRTbG93Q2FzZShicmFuY2g4KE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5
cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ1R5cGUpKSk7CisKKyAgICBl
bWl0UHV0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwor
fQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXNoX25hbWVfc2NvcGUoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKQEAgLTg3Nyw2ICs4ODgsMTUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX251
bWJlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAg
ICBzbG93UGF0aENhbGwuY2FsbCgpOwogfQogCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fc3Ry
aW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5
Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworICAgIGxpbmtT
bG93Q2FzZShpdGVyKTsKKworICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywg
Y3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfdG9fc3RyaW5nKTsKKyAgICBzbG93UGF0aENh
bGwuY2FsbCgpOworfQorCiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAogdm9pZCBKSVQ6OmVt
aXRfb3BfdG91Y2hfZW50cnkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA2ODM1ZWVi
ZjkzNWMwMzU4YzUzMmJhODljMDQwYTMwMTY4MzBlYTA3Li41YTA4OTVhZDNmMzg3ZWQ1ZjYzOGNm
MTg4MGEwOGFmNTczZjk4OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzMzJfNjQuY3BwCkBAIC03ODIsNiArNzgyLDI5IEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlCiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfdG9f
c3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgaW50IGRzdCA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IHNyYyA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisKKyAgICBlbWl0TG9hZChzcmMsIHJlZ1QxLCByZWdU
MCk7CisKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgoTm90RXF1
YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVk
SW1tMzIoU3RyaW5nVHlwZSkpKTsKKworICAgIGlmIChzcmMgIT0gZHN0KQorICAgICAgICBlbWl0
U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOworfQorCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9f
c3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsKKworICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhp
cywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfdG9fc3RyaW5nKTsKKyAgICBzbG93UGF0
aENhbGwuY2FsbCgpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXNoX25hbWVfc2NvcGUoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggY2E5MWU4ZDY3MmJh
OWQ2YmU0NTA4OTMyN2FmZTIyYTE1ODcyNGUyYy4uZDgzMjRlN2I4YWY2YWViNzdmZDBiYTJiMTc5
MTE0NTljYjVkZWQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTEwMDAsNiArMTAwMCwyMyBAQCBf
bGxpbnRfb3BfdG9fbnVtYmVyOgogICAgIGRpc3BhdGNoKDMpCiAKIAorX2xsaW50X29wX3RvX3N0
cmluZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQ10sIHQwCisgICAgbG9h
ZGkgNFtQQ10sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIsIHQzKQorICAg
IGJpbmVxIHQyLCBDZWxsVGFnLCAub3BUb1N0cmluZ1Nsb3cKKyAgICBiYm5lcSBKU0NlbGw6Om1f
dHlwZVt0M10sIFN0cmluZ1R5cGUsIC5vcFRvU3RyaW5nU2xvdworLm9wVG9TdHJpbmdJc1N0cmlu
ZzoKKyAgICBzdG9yZWkgdDIsIFRhZ09mZnNldFtjZnIsIHQxLCA4XQorICAgIHN0b3JlaSB0Mywg
UGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcFRvU3RyaW5n
U2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19zdHJpbmcpCisgICAgZGlzcGF0
Y2goMykKKworCiBfbGxpbnRfb3BfbmVnYXRlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBs
b2FkaSA4W1BDXSwgdDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggZGU1NzA2MmY2ZDEwNGYyYzc1NzJiNGNhZjYy
NDRlODdkNTBmNTBiYS4uYjQ2MDcxYjZkZjFiNTBjZDM1MjhiY2RiMWM5ZjBiN2NkNjQ5MTcwYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXI2NC5hc20KQEAgLTg2MCw2ICs4NjAsMjIgQEAgX2xsaW50X29wX3RvX251bWJlcjoKICAg
ICBkaXNwYXRjaCgzKQogCiAKK19sbGludF9vcF90b19zdHJpbmc6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MSkKKyAgICBsb2FkaXNGcm9tSW5z
dHJ1Y3Rpb24oMSwgdDIpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAg
YnRxbnogdDAsIHRhZ01hc2ssIC5vcFRvU3RyaW5nU2xvdworICAgIGJibmVxIEpTQ2VsbDo6bV90
eXBlW3QwXSwgU3RyaW5nVHlwZSwgLm9wVG9TdHJpbmdTbG93Cisub3BUb1N0cmluZ0lzU3RyaW5n
OgorICAgIHN0b3JlcSB0MCwgW2NmciwgdDIsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wVG9T
dHJpbmdTbG93OgorICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX3N0cmluZykKKyAgICBk
aXNwYXRjaCgzKQorCisKIF9sbGludF9vcF9uZWdhdGU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQog
ICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9BU1RCdWlsZGVyLmgKaW5kZXggYzQ4ZTQxYzU4NjVkZmQ1MDA3NGY0OWRiYTEzZGM3NDYy
OTY2M2VkMS4uMDgxMzBhNzk2NDc5ZTc4NTIwYjg3YzcxZjNlZTFiNzY0YWVmNzhhZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTEwMiw2ICsxMDIsMTAg
QEAgY2xhc3MgQVNUQnVpbGRlciB7CiAgICAgdHlwZWRlZiBQcm9wZXJ0eUxpc3ROb2RlKiBQcm9w
ZXJ0eUxpc3Q7CiAgICAgdHlwZWRlZiBFbGVtZW50Tm9kZSogRWxlbWVudExpc3Q7CiAgICAgdHlw
ZWRlZiBBcmd1bWVudExpc3ROb2RlKiBBcmd1bWVudHNMaXN0OworICAgIHR5cGVkZWYgVGVtcGxh
dGVFeHByZXNzaW9uTGlzdE5vZGUqIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3Q7CisgICAgdHlwZWRl
ZiBUZW1wbGF0ZUVsZW1lbnROb2RlKiBUZW1wbGF0ZUVsZW1lbnQ7CisgICAgdHlwZWRlZiBUZW1w
bGF0ZUVsZW1lbnRMaXN0Tm9kZSogVGVtcGxhdGVFbGVtZW50TGlzdDsKKyAgICB0eXBlZGVmIFRl
bXBsYXRlTGl0ZXJhbE5vZGUqIFRlbXBsYXRlTGl0ZXJhbDsKICAgICB0eXBlZGVmIFBhcmFtZXRl
ck5vZGUqIEZvcm1hbFBhcmFtZXRlckxpc3Q7CiAgICAgdHlwZWRlZiBGdW5jdGlvbkJvZHlOb2Rl
KiBGdW5jdGlvbkJvZHk7CiAjaWYgRU5BQkxFKEVTNl9DTEFTU19TWU5UQVgpCkBAIC0yNDYsNiAr
MjUwLDQxIEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9
CiAKKyAgICBUZW1wbGF0ZUVsZW1lbnROb2RlKiBjcmVhdGVUZW1wbGF0ZUVsZW1lbnQoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgY29va2VkLCBjb25z
dCBJZGVudGlmaWVyJiByYXcpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFy
ZW5hKSBUZW1wbGF0ZUVsZW1lbnROb2RlKGxvY2F0aW9uLCBjb29rZWQsIHJhdyk7CisgICAgfQor
CisgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqIGNyZWF0ZVRlbXBsYXRlRWxlbWVudExpc3Qo
VGVtcGxhdGVFbGVtZW50Tm9kZSogdGVtcGxhdGVFbGVtZW50KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUodGVtcGxhdGVF
bGVtZW50KTsKKyAgICB9CisKKyAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogY3JlYXRlVGVt
cGxhdGVFbGVtZW50TGlzdChUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogdGVtcGxhdGVFbGVtZW50
TGlzdCwgVGVtcGxhdGVFbGVtZW50Tm9kZSogdGVtcGxhdGVFbGVtZW50KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUodGVt
cGxhdGVFbGVtZW50TGlzdCwgdGVtcGxhdGVFbGVtZW50KTsKKyAgICB9CisKKyAgICBUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0Tm9kZSogY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChFeHByZXNz
aW9uTm9kZSogZXhwcmVzc2lvbikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2Vy
QXJlbmEpIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKGV4cHJlc3Npb24pOworICAgIH0KKwor
ICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0KFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiB0ZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9k
ZSwgRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Npb24pCisgICAgeworICAgICAgICByZXR1cm4gbmV3
IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSh0ZW1wbGF0ZUV4cHJl
c3Npb25MaXN0Tm9kZSwgZXhwcmVzc2lvbik7CisgICAgfQorCisgICAgVGVtcGxhdGVMaXRlcmFs
Tm9kZSogY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRp
b24sIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRMaXN0KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVMaXRlcmFsTm9kZShs
b2NhdGlvbiwgdGVtcGxhdGVFbGVtZW50TGlzdCk7CisgICAgfQorCisgICAgVGVtcGxhdGVMaXRl
cmFsTm9kZSogY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9j
YXRpb24sIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRMaXN0LCBUZW1w
bGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogdGVtcGxhdGVFeHByZXNzaW9uTGlzdCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRlTGl0ZXJhbE5vZGUobG9j
YXRpb24sIHRlbXBsYXRlRWxlbWVudExpc3QsIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpOworICAg
IH0KKwogICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVSZWdFeHAoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmll
ciYgZmxhZ3MsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCkKICAgICB7CiAgICAgICAgIGlm
IChZYXJyOjpjaGVja1N5bnRheChwYXR0ZXJuLnN0cmluZygpKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9MZXhlci5jcHAKaW5kZXggN2RlMTQyMjBiYmRhNzI3MzhiNTczYTRiOTc4OGNlMGIz
MmNjN2NlMy4uODc4YjNiN2RmOTAwYzY5NDcyM2YxMDg2ZDAzOGEyMjAxYmIwZjBmNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTcxLDYgKzcxLDcgQEAgZW51bSBD
aGFyYWN0ZXJUeXBlIHsKICAgICBDaGFyYWN0ZXJRdWVzdGlvbiwKICAgICBDaGFyYWN0ZXJUaWxk
ZSwKICAgICBDaGFyYWN0ZXJRdW90ZSwKKyAgICBDaGFyYWN0ZXJCYWNrUXVvdGUsCiAgICAgQ2hh
cmFjdGVyRG90LAogICAgIENoYXJhY3RlclNsYXNoLAogICAgIENoYXJhY3RlckJhY2tTbGFzaCwK
QEAgLTE5Miw3ICsxOTMsNyBAQCBlbnVtIENoYXJhY3RlclR5cGUgewogLyogIDkzIC0gXSAgICAg
ICAgICAgICAgICAgICovIENoYXJhY3RlckNsb3NlQnJhY2tldCwKIC8qICA5NCAtIF4gICAgICAg
ICAgICAgICAgICAqLyBDaGFyYWN0ZXJYb3IsCiAvKiAgOTUgLSBfICAgICAgICAgICAgICAgICAg
Ki8gQ2hhcmFjdGVySWRlbnRpZmllclN0YXJ0LAotLyogIDk2IC0gYCAgICAgICAgICAgICAgICAg
ICovIENoYXJhY3RlckludmFsaWQsCisvKiAgOTYgLSBgICAgICAgICAgICAgICAgICAgKi8gQ2hh
cmFjdGVyQmFja1F1b3RlLAogLyogIDk3IC0gYSAgICAgICAgICAgICAgICAgICovIENoYXJhY3Rl
cklkZW50aWZpZXJTdGFydCwKIC8qICA5OCAtIGIgICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0
ZXJJZGVudGlmaWVyU3RhcnQsCiAvKiAgOTkgLSBjICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFj
dGVySWRlbnRpZmllclN0YXJ0LApAQCAtMTIxNSw2ICsxMjE2LDIwNSBAQCBzdGF0aWMgQUxXQVlT
X0lOTElORSBib29sIGNoYXJhY3RlclJlcXVpcmVzUGFyc2VTdHJpbmdTbG93Q2FzZShVQ2hhciBj
aGFyYWN0ZXIpCiAgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseTsKIH0KIAorLy8g
V2hpbGUgSmF2YVNjcmlwdENvcmUncyBsZXhlciBhY2NlcHRzIDxMRj48Q1I+IChub3QgPENSPjxM
Rj4pIHNlcXVlbmNlCisvLyBhcyBvbmUgbGluZSB0ZXJtaW5hdG9yIGFuZCBpbmNyZW1lbnQgb25l
IGxpbmUgbnVtYmVyLAorLy8gVGVtcGxhdGVMaXRlcmFsIGNvbnNpZGVycyBpdCBhcyB0d28gbGlu
ZSB0ZXJtaW5hdG9ycyA8TEY+IGFuZCA8Q1I+LgorLy8KKy8vIFRlbXBsYXRlTGl0ZXJhbCBub3Jt
YWxpemVzIGxpbmUgdGVybWluYXRvcnMgYXMgZm9sbG93cy4KKy8vCisvLyA8TEY+ID0+IDxMRj4K
Ky8vIDxDUj4gPT4gPExGPgorLy8gPENSPjxMRj4gPT4gPExGPgorLy8gPFx1MjAyOD4gPT4gPFx1
MjAyOD4KKy8vIDxcdTIwMjk+ID0+IDxcdTIwMjk+CisvLworLy8gU28sIDxMRj48Q1I+IHNob3Vs
ZCBiZSBub3JtYWxpemVkIHRvIDxMRj48TEY+LgorLy8gSG93ZXZlciwgbGluZSBudW1iZXIgc2F2
ZWQgaW4gdGhlIGxleGVyIHNob3VsZCBiZSBpbmNyZW1lbnQgb25seSBvbmNlIGZvciA8TEY+PENS
Pi4KKy8vCisvLyBUbyBhY2hpZXZlIHRoaXMsIExpbmVOdW1iZXJBZGRlciBob2xkcyB0aGUgY3Vy
cmVudCBzdGF0dXMgb2YgbGluZSB0ZXJtaW5hdG9yIHNlcXVlbmNlLgorLy8gV2hlbiBUZW1wbGF0
ZUxpdGVyYWwgbGV4ZXIgZW5jb3VudGVycyBhIGxpbmUgdGVybWluYXRvciwgaXQgbm90aWZ5IHRv
IExpbmVOdW1iZXJBZGRlci4KKy8vIExpbmVOdW1iZXJBZGRlciBtYWludGFpbnMgdGhlIHN0YXR1
cyBhbmQgaW5jcmVtZW50cyBsaW5lIG51bWJlciB3aGVuIGl0J3MgbmVjZXNzYXJ5LgorLy8gRm9y
IGV4YW1wbGUsIExpbmVOdW1iZXJBZGRlciBpbmNyZW1lbnRzIGxpbmUgbnVtYmVyIG9ubHkgb25j
ZSBmb3IgPExGPjxDUj4gYW5kIDxDUj48TEY+LgordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNz
IExpbmVOdW1iZXJBZGRlciB7CitwdWJsaWM6CisgICAgTGluZU51bWJlckFkZGVyKGludCYgbGlu
ZU51bWJlcikKKyAgICAgICAgOiBtX2xpbmVOdW1iZXIobGluZU51bWJlcikKKyAgICAgICAgLCBt
X3ByZXZpb3VzKDApCisgICAgeworICAgIH0KKworICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAg
ICAgICAgbV9wcmV2aW91cyA9IDA7CisgICAgfQorCisgICAgdm9pZCBhZGQoVCBjaGFyYWN0ZXIp
CisgICAgeworICAgICAgICBBU1NFUlQoTGV4ZXI8VD46OmlzTGluZVRlcm1pbmF0b3IoY2hhcmFj
dGVyKSk7CisgICAgICAgIGlmICgoY2hhcmFjdGVyICsgbV9wcmV2aW91cykgPT0gJ1xuJyArICdc
cicpCisgICAgICAgICAgICBtX3ByZXZpb3VzID0gMDsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICArK21fbGluZU51bWJlcjsKKyAgICAgICAgICAgIG1fcHJldmlvdXMgPSBjaGFyYWN0ZXI7
CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgaW50JiBtX2xpbmVOdW1iZXI7Cisg
ICAgVCBtX3ByZXZpb3VzOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit0ZW1wbGF0ZSA8
Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IHR5cGVuYW1lIExleGVyPFQ+OjpTdHJpbmdQYXJzZVJl
c3VsdCBMZXhlcjxUPjo6cGFyc2VUZW1wbGF0ZUxpdGVyYWwoSlNUb2tlbkRhdGEqIHRva2VuRGF0
YSkKK3sKKyAgICBjb25zdCBUKiBzdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsKKyAg
ICBjb25zdCBUKiByYXdTdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsKKworICAgIExp
bmVOdW1iZXJBZGRlcjxUPiBsaW5lTnVtYmVyQWRkZXIobV9saW5lTnVtYmVyKTsKKworICAgIHdo
aWxlIChtX2N1cnJlbnQgIT0gJ2AnKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShtX2N1cnJlbnQg
PT0gJ1xcJykpIHsKKyAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5jbGVhcigpOworICAgICAg
ICAgICAgaWYgKHN0cmluZ1N0YXJ0ICE9IGN1cnJlbnRTb3VyY2VQdHIoKSAmJiBzaG91bGRCdWls
ZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgYXBwZW5kMTYoc3RyaW5nU3RhcnQsIGN1cnJlbnRT
b3VyY2VQdHIoKSAtIHN0cmluZ1N0YXJ0KTsKKyAgICAgICAgICAgIHNoaWZ0KCk7CisKKyAgICAg
ICAgICAgIExDaGFyIGVzY2FwZSA9IHNpbmdsZUVzY2FwZShtX2N1cnJlbnQpOworCisgICAgICAg
ICAgICAvLyBNb3N0IGNvbW1vbiBlc2NhcGUgc2VxdWVuY2VzIGZpcnN0CisgICAgICAgICAgICBp
ZiAoZXNjYXBlKSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAg
ICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoZXNjYXBlKTsKKyAgICAgICAgICAgICAgICBzaGlm
dCgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChVTkxJS0VMWShpc0xpbmVUZXJtaW5hdG9yKG1f
Y3VycmVudCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXHInKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9jdXJyZW50KTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVu
dCA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyQWRkZXIuYWRk
KG1fY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9jdXJy
ZW50ID09ICd4JykgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAg
aWYgKCFpc0FTQ0lJSGV4RGlnaXQobV9jdXJyZW50KSB8fCAhaXNBU0NJSUhleERpZ2l0KHBlZWso
MSkpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRl
cmFsKCJcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVlbmNl
Iik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVCBwcmV2ID0gbV9jdXJyZW50OworICAg
ICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3Ry
aW5ncykKKyAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoY29udmVydEhleChwcmV2LCBtX2N1
cnJlbnQpKTsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgfSBlbHNlIGlm
IChtX2N1cnJlbnQgPT0gJ3UnKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgICAgICBVbmljb2RlSGV4VmFsdWUgY2hhcmFjdGVyID0gcGFyc2VGb3VyRGlnaXRVbmljb2Rl
SGV4KCk7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3Rlci5pc1ZhbGlkKCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlY29yZDE2KGNoYXJhY3Rlci52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJh
bCgiXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgVW5pY29kZSBjaGFyYWN0ZXIgc2VxdWVu
Y2UiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoYXJhY3Rlci52YWx1ZVR5cGUoKSA9
PSBVbmljb2RlSGV4VmFsdWU6OkluY29tcGxldGVIZXggPyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBT
dHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs
c2UgaWYgKGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhl
IG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1wwJywgYW5kIHRo
aXMgbXVzdCBub3QgYmUgZm9sbG93ZWQgYnkgYSBkZWNpbWFsIGRpZ2l0LgorICAgICAgICAgICAg
ICAgIGludCBjaGFyYWN0ZXIxID0gbV9jdXJyZW50OworICAgICAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3RlcjEgIT0gJzAnIHx8IGlzQVNDSUlEaWdpdCht
X2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVND
SUlMaXRlcmFsKCJUaGUgb25seSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBp
cyAnXFwwJyIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nQ2Fubm90QmVQYXJz
ZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0
cmluZ3MpCisgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KDApOworICAgICAgICAgICAgfSBl
bHNlIGlmICghYXRFbmQoKSkgeworICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmlu
Z3MpCisgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KG1fY3VycmVudCk7CisgICAgICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9s
ZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlVudGVybWluYXRlZCBzdHJpbmcgY29uc3Rh
bnQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nVW50ZXJtaW5hdGVkOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBzdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fY3VycmVu
dCA9PSAnJCcgJiYgcGVlaygxKSA9PSAneycpCisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAvLyBGYXN0IGNoZWNrIGZvciBjaGFyYWN0ZXJzIHRoYXQgcmVxdWlyZSBzcGVjaWFsIGhhbmRs
aW5nLgorICAgICAgICAvLyBDYXRjaGVzIDAsIFxuLCBcciwgMHgyMDI4LCBhbmQgMHgyMDI5IGFz
IGVmZmljaWVudGx5CisgICAgICAgIC8vIGFzIHBvc3NpYmxlLCBhbmQgbGV0cyB0aHJvdWdoIGFs
bCBjb21tb24gQVNDSUkgY2hhcmFjdGVycy4KKyAgICAgICAgaWYgKFVOTElLRUxZKCgoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KG1fY3VycmVudCkgLSAweEUpICYgMHgyMDAwKSkpIHsKKyAgICAgICAg
ICAgIC8vIEVuZCBvZiBpbnB1dCBpcyBub3QgYWxsb3dlZC4KKyAgICAgICAgICAgIC8vIFVubGlr
ZSBTdHJpbmcsIGxpbmUgdGVybWluYXRvciBpcyBhbGxvd2VkLgorICAgICAgICAgICAgaWYgKGF0
RW5kKCkpIHsKKyAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJh
bCgiVW5leHBlY3RlZCBFT0YiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYXRFbmQoKSA/IFN0
cmluZ1VudGVybWluYXRlZCA6IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZiAoaXNMaW5lVGVybWluYXRvcihtX2N1cnJlbnQpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXHInKSB7CisgICAgICAgICAgICAgICAgICAgIC8v
IE5vcm1hbGl6ZSA8Q1I+LCA8Q1I+PExGPiB0byA8TEY+LgorICAgICAgICAgICAgICAgICAgICBp
ZiAoc3RyaW5nU3RhcnQgIT0gY3VycmVudFNvdXJjZVB0cigpICYmIHNob3VsZEJ1aWxkU3RyaW5n
cykKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZDE2KHN0cmluZ1N0YXJ0LCBjdXJyZW50
U291cmNlUHRyKCkgLSBzdHJpbmdTdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91
bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNignXG4nKTsK
KyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAg
ICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9jdXJy
ZW50ID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5h
ZGQobV9jdXJyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nU3RhcnQgPSBjdXJyZW50
U291cmNlUHRyKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEFueXRoaW5nIGVsc2UgaXMganVzdCBhIG5vcm1h
bCBjaGFyYWN0ZXIKKyAgICAgICAgfQorCisgICAgICAgIGxpbmVOdW1iZXJBZGRlci5jbGVhcigp
OworICAgICAgICBzaGlmdCgpOworICAgIH0KKworICAgIGJvb2wgaXNUYWlsID0gbV9jdXJyZW50
ID09ICdgJzsKKworICAgIGlmIChjdXJyZW50U291cmNlUHRyKCkgIT0gc3RyaW5nU3RhcnQgJiYg
c2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICBhcHBlbmQxNihzdHJpbmdTdGFydCwgY3VycmVu
dFNvdXJjZVB0cigpIC0gc3RyaW5nU3RhcnQpOworCisgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5n
cykgeworICAgICAgICB0b2tlbkRhdGEtPmNvb2tlZCA9IG1ha2VJZGVudGlmaWVyKG1fYnVmZmVy
MTYuZGF0YSgpLCBtX2J1ZmZlcjE2LnNpemUoKSk7CisgICAgICAgIC8vIFRPRE86IHJhdyBpcyBu
b3QgaW1wbGVtZW50ZWQgY29ycmVjdGx5IHlldC4KKyAgICAgICAgLy8gTGluZSB0ZXJtaW5hdG9y
IG5vcm1hbGl6YXRpb24gaXMgbm90IGRvbmUgZm9yIHJhdy4KKyAgICAgICAgLy8gV2hlbiBpbXBs
ZW1lbnRpbmcgVGFnZ2VkVGVtcGxhdGUgd2hpY2ggdXNlcyByYXcgdmFsdWUsIGl0IHNob3VsZCBi
ZSBmaXhlZC4KKyAgICAgICAgdG9rZW5EYXRhLT5yYXcgPSBtYWtlSWRlbnRpZmllcihyYXdTdHJp
bmdTdGFydCwgY3VycmVudFNvdXJjZVB0cigpIC0gcmF3U3RyaW5nU3RhcnQpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHRva2VuRGF0YS0+Y29va2VkID0gbnVsbHB0cjsKKyAgICAgICAgdG9rZW5E
YXRhLT5yYXcgPSBudWxscHRyOworICAgIH0KKyAgICB0b2tlbkRhdGEtPmlzVGFpbCA9IGlzVGFp
bDsKKworICAgIG1fYnVmZmVyMTYucmVzaXplKDApOworCisgICAgaWYgKGlzVGFpbCkgeworICAg
ICAgICAvLyBTa2lwIGAKKyAgICAgICAgc2hpZnQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAv
LyBTa2lwICQgYW5kIHsKKyAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgc2hpZnQoKTsKKyAgICB9
CisKKyAgICByZXR1cm4gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5OworfQorCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KIEFMV0FZU19JTkxJTkUgdm9pZCBMZXhlcjxUPjo6cGFyc2VIZXgoZG91Ymxl
JiByZXR1cm5WYWx1ZSkKIHsKQEAgLTE4MjYsMjMgKzIwMjYsMzcgQEAgc3RhdGljIEFMV0FZU19J
TkxJTkUgYm9vbCBjaGFyYWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hh
cmFjdGVyKQogICAgICAgICB9CiAgICAgICAgIG1fYnVmZmVyOC5yZXNpemUoMCk7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQ2hhcmFjdGVyUXVvdGU6Ci0gICAgICAgIGlmIChsZXhlckZsYWdz
ICYgTGV4ZXJGbGFnc0RvbnRCdWlsZFN0cmluZ3MpIHsKLSAgICAgICAgICAgIFN0cmluZ1BhcnNl
UmVzdWx0IHJlc3VsdCA9IHBhcnNlU3RyaW5nPGZhbHNlPih0b2tlbkRhdGEsIHN0cmljdE1vZGUp
OwotICAgICAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBTdHJpbmdQYXJzZWRTdWNjZXNz
ZnVsbHkpKSB7Ci0gICAgICAgICAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJt
aW5hdGVkID8gVU5URVJNSU5BVEVEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LIDogSU5WQUxJRF9T
VFJJTkdfTElURVJBTF9FUlJPUlRPSzsKLSAgICAgICAgICAgICAgICBnb3RvIHJldHVybkVycm9y
OwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU3RyaW5nUGFy
c2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VTdHJpbmc8dHJ1ZT4odG9rZW5EYXRhLCBzdHJpY3RNb2Rl
KTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vz
c2Z1bGx5KSkgewotICAgICAgICAgICAgICAgIHRva2VuID0gcmVzdWx0ID09IFN0cmluZ1VudGVy
bWluYXRlZCA/IFVOVEVSTUlOQVRFRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSyA6IElOVkFMSURf
U1RSSU5HX0xJVEVSQUxfRVJST1JUT0s7Ci0gICAgICAgICAgICAgICAgZ290byByZXR1cm5FcnJv
cjsKLSAgICAgICAgICAgIH0KKyAgICBjYXNlIENoYXJhY3RlclF1b3RlOiB7CisgICAgICAgIFN0
cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAgICAgICBp
ZiAobGV4ZXJGbGFncyAmIExleGVyRmxhZ3NEb250QnVpbGRTdHJpbmdzKQorICAgICAgICAgICAg
cmVzdWx0ID0gcGFyc2VTdHJpbmc8ZmFsc2U+KHRva2VuRGF0YSwgc3RyaWN0TW9kZSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlU3RyaW5nPHRydWU+KHRva2VuRGF0
YSwgc3RyaWN0TW9kZSk7CisKKyAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBTdHJpbmdQ
YXJzZWRTdWNjZXNzZnVsbHkpKSB7CisgICAgICAgICAgICB0b2tlbiA9IHJlc3VsdCA9PSBTdHJp
bmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfU1RSSU5HX0xJVEVSQUxfRVJST1JUT0sgOiBJ
TlZBTElEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LOworICAgICAgICAgICAgZ290byByZXR1cm5F
cnJvcjsKICAgICAgICAgfQogICAgICAgICBzaGlmdCgpOwogICAgICAgICB0b2tlbiA9IFNUUklO
RzsKICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICBjYXNlIENoYXJhY3RlckJhY2tRdW90
ZTogeworICAgICAgICAvLyBTa2lwIGJhY2txdW90ZS4KKyAgICAgICAgc2hpZnQoKTsKKyAgICAg
ICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gU3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAg
ICAgIGlmIChsZXhlckZsYWdzICYgTGV4ZXJGbGFnc0RvbnRCdWlsZFN0cmluZ3MpCisgICAgICAg
ICAgICByZXN1bHQgPSBwYXJzZVRlbXBsYXRlTGl0ZXJhbDxmYWxzZT4odG9rZW5EYXRhKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWw8dHJ1
ZT4odG9rZW5EYXRhKTsKKworICAgICAgICBpZiAoVU5MSUtFTFkocmVzdWx0ICE9IFN0cmluZ1Bh
cnNlZFN1Y2Nlc3NmdWxseSkpIHsKKyAgICAgICAgICAgIHRva2VuID0gcmVzdWx0ID09IFN0cmlu
Z1VudGVybWluYXRlZCA/IFVOVEVSTUlOQVRFRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LIDog
SU5WQUxJRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LOworICAgICAgICAgICAgZ290byByZXR1
cm5FcnJvcjsKKyAgICAgICAgfQorICAgICAgICB0b2tlbiA9IFRFTVBMQVRFOworICAgICAgICBi
cmVhazsKKyAgICAgICAgfQogICAgIGNhc2UgQ2hhcmFjdGVySWRlbnRpZmllclN0YXJ0OgogICAg
ICAgICBBU1NFUlQoaXNJZGVudFN0YXJ0KG1fY3VycmVudCkpOwogICAgICAgICBGQUxMVEhST1VH
SDsKQEAgLTIwMzYsNiArMjI1MCwzOCBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGNoYXJh
Y3RlclJlcXVpcmVzUGFyc2VTdHJpbmdTbG93Q2FzZShVQ2hhciBjaGFyYWN0ZXIpCiB9CiAKIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgorSlNUb2tlblR5cGUgTGV4ZXI8VD46OnNjYW5UcmFpbGluZ1Rl
bXBsYXRlRWxlbWVudChKU1Rva2VuKiB0b2tlblJlY29yZCkKK3sKKyAgICBKU1Rva2VuRGF0YSog
dG9rZW5EYXRhID0gJnRva2VuUmVjb3JkLT5tX2RhdGE7CisgICAgSlNUb2tlbkxvY2F0aW9uKiB0
b2tlbkxvY2F0aW9uID0gJnRva2VuUmVjb3JkLT5tX2xvY2F0aW9uOworICAgIEFTU0VSVCghbV9l
cnJvcik7CisgICAgQVNTRVJUKG1fYnVmZmVyMTYuaXNFbXB0eSgpKTsKKworICAgIC8vIExlYWRp
bmcgY2xvc2luZyBicmFjZSB9IGlzIGFscmVhZHkgc2hpZnRlZCBpbiB0aGUgcHJldmlvdXMgdG9r
ZW4gc2Nhbi4KKyAgICAvLyBTbyBpbiB0aGlzIHJlLXNjYW4gcGhhc2UsIHNoaWZ0KCkgaXMgbm90
IG5lZWRlZCBoZXJlLgorICAgIFN0cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IHBhcnNlVGVtcGxh
dGVMaXRlcmFsPHRydWU+KHRva2VuRGF0YSk7CisgICAgSlNUb2tlblR5cGUgdG9rZW4gPSBFUlJP
UlRPSzsKKyAgICBpZiAoVU5MSUtFTFkocmVzdWx0ICE9IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxs
eSkpIHsKKyAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5hdGVkID8gVU5U
RVJNSU5BVEVEX1RFTVBMQVRFX0xJVEVSQUxfRVJST1JUT0sgOiBJTlZBTElEX1RFTVBMQVRFX0xJ
VEVSQUxfRVJST1JUT0s7CisgICAgICAgIG1fZXJyb3IgPSB0cnVlOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHRva2VuID0gVEVNUExBVEU7CisgICAgICAgIG1fbGFzdFRva2VuID0gdG9rZW47Cisg
ICAgfQorCisgICAgLy8gU2luY2UgVGVtcGxhdGVFbGVtZW50IGFsd2F5cyBlbmRzIHdpdGggYCBv
ciB9LCBtX2F0TGluZVN0YXJ0IGFsd2F5cyBiZWNvbWVzIGZhbHNlLgorICAgIG1fYXRMaW5lU3Rh
cnQgPSBmYWxzZTsKKworICAgIC8vIEFkanVzdCBjdXJyZW50IHRva2VuTG9jYXRpb24gZGF0YSBm
b3IgVGVtcGxhdGVFbGVtZW50LgorICAgIHRva2VuTG9jYXRpb24tPmxpbmUgPSBtX2xpbmVOdW1i
ZXI7CisgICAgdG9rZW5Mb2NhdGlvbi0+ZW5kT2Zmc2V0ID0gY3VycmVudE9mZnNldCgpOworICAg
IHRva2VuTG9jYXRpb24tPmxpbmVTdGFydE9mZnNldCA9IGN1cnJlbnRMaW5lU3RhcnRPZmZzZXQo
KTsKKyAgICBBU1NFUlQodG9rZW5Mb2NhdGlvbi0+ZW5kT2Zmc2V0ID49IHRva2VuTG9jYXRpb24t
PmxpbmVTdGFydE9mZnNldCk7CisgICAgdG9rZW5SZWNvcmQtPm1fZW5kUG9zaXRpb24gPSBjdXJy
ZW50UG9zaXRpb24oKTsKKyAgICByZXR1cm4gdG9rZW47Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogdm9pZCBMZXhlcjxUPjo6Y2xlYXIoKQogewogICAgIG1fYXJlbmEgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCmluZGV4IDJkZjUyMTM5OTU3ODIwMDc4NWExNjZlMjJh
NzMyNzVlMGVhNjMwNGQuLjg1NTYwMDY3YTdiOGQxZGE0ZmYwYzA3Y2ZlNGQzOTI0ZTQ5MzNmM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKQEAgLTk5LDYgKzk5LDcgQEAgY2xh
c3MgTGV4ZXIgewogICAgIGludCBsYXN0TGluZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fbGFz
dExpbmVOdW1iZXI7IH0KICAgICBib29sIHByZXZUZXJtaW5hdG9yKCkgY29uc3QgeyByZXR1cm4g
bV90ZXJtaW5hdG9yOyB9CiAgICAgYm9vbCBzY2FuUmVnRXhwKGNvbnN0IElkZW50aWZpZXIqJiBw
YXR0ZXJuLCBjb25zdCBJZGVudGlmaWVyKiYgZmxhZ3MsIFVDaGFyIHBhdHRlcm5QcmVmaXggPSAw
KTsKKyAgICBKU1Rva2VuVHlwZSBzY2FuVHJhaWxpbmdUZW1wbGF0ZUVsZW1lbnQoSlNUb2tlbiop
OwogICAgIGJvb2wgc2tpcFJlZ0V4cCgpOwogCiAgICAgLy8gRnVuY3Rpb25zIGZvciB1c2UgYWZ0
ZXIgcGFyc2luZy4KQEAgLTIwMiw2ICsyMDMsNyBAQCBjbGFzcyBMZXhlciB7CiAgICAgfTsKICAg
ICB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IEFMV0FZU19JTkxJTkUgU3RyaW5n
UGFyc2VSZXN1bHQgcGFyc2VTdHJpbmcoSlNUb2tlbkRhdGEqLCBib29sIHN0cmljdE1vZGUpOwog
ICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gTkVWRVJfSU5MSU5FIFN0cmlu
Z1BhcnNlUmVzdWx0IHBhcnNlU3RyaW5nU2xvd0Nhc2UoSlNUb2tlbkRhdGEqLCBib29sIHN0cmlj
dE1vZGUpOworICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gQUxXQVlTX0lO
TElORSBTdHJpbmdQYXJzZVJlc3VsdCBwYXJzZVRlbXBsYXRlTGl0ZXJhbChKU1Rva2VuRGF0YSop
OwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwYXJzZUhleChkb3VibGUmIHJldHVyblZhbHVlKTsK
ICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGFyc2VCaW5hcnkoZG91YmxlJiByZXR1cm5WYWx1ZSk7
CiAgICAgQUxXQVlTX0lOTElORSBib29sIHBhcnNlT2N0YWwoZG91YmxlJiByZXR1cm5WYWx1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3Rv
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmlu
ZGV4IDA1N2JjM2Q5MjgwOWY0NmIwNjI3MWFjMDEyYWJlY2Q2Yzg4YTY4NGEuLmFiMWMzOThiNTcz
NGY4NjdhYmUxMDQ2OTBlMTVmMTliNmU4ZDgyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC0xMDAsNiArMTAwLDUzIEBACiAgICAg
ewogICAgIH0KIAorICAgIGlubGluZSBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZTo6VGVtcGxh
dGVFeHByZXNzaW9uTGlzdE5vZGUoRXhwcmVzc2lvbk5vZGUqIG5vZGUpCisgICAgICAgIDogbV9u
ZXh0KG51bGxwdHIpCisgICAgICAgICwgbV9ub2RlKG5vZGUpCisgICAgeworICAgIH0KKworICAg
IGlubGluZSBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZTo6VGVtcGxhdGVFeHByZXNzaW9uTGlz
dE5vZGUoVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHByZXYsIEV4cHJlc3Npb25Ob2RlKiBu
b2RlKQorICAgICAgICA6IG1fbmV4dChudWxscHRyKQorICAgICAgICAsIG1fbm9kZShub2RlKQor
ICAgIHsKKyAgICAgICAgcHJldi0+bV9uZXh0ID0gdGhpczsKKyAgICB9CisKKyAgICBpbmxpbmUg
VGVtcGxhdGVFbGVtZW50Tm9kZTo6VGVtcGxhdGVFbGVtZW50Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBjb29rZWQsIGNvbnN0IElkZW50aWZp
ZXImIHJhdykKKyAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBt
X2Nvb2tlZChjb29rZWQpCisgICAgICAgICwgbV9yYXcocmF3KQorICAgIHsKKyAgICB9CisKKyAg
ICBpbmxpbmUgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGU6OlRlbXBsYXRlRWxlbWVudExpc3ROb2Rl
KFRlbXBsYXRlRWxlbWVudE5vZGUqIG5vZGUpCisgICAgICAgIDogbV9uZXh0KG51bGxwdHIpCisg
ICAgICAgICwgbV9ub2RlKG5vZGUpCisgICAgeworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0
ZUVsZW1lbnRMaXN0Tm9kZTo6VGVtcGxhdGVFbGVtZW50TGlzdE5vZGUoVGVtcGxhdGVFbGVtZW50
TGlzdE5vZGUqIHByZXYsIFRlbXBsYXRlRWxlbWVudE5vZGUqIG5vZGUpCisgICAgICAgIDogbV9u
ZXh0KG51bGxwdHIpCisgICAgICAgICwgbV9ub2RlKG5vZGUpCisgICAgeworICAgICAgICBwcmV2
LT5tX25leHQgPSB0aGlzOworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZUxpdGVyYWxOb2Rl
OjpUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFRl
bXBsYXRlRWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRzKQorICAgICAgICA6IEV4cHJl
c3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1fdGVtcGxhdGVFbGVtZW50cyh0ZW1wbGF0
ZUVsZW1lbnRzKQorICAgICAgICAsIG1fdGVtcGxhdGVFeHByZXNzaW9ucyhudWxscHRyKQorICAg
IHsKKyAgICB9CisKKyAgICBpbmxpbmUgVGVtcGxhdGVMaXRlcmFsTm9kZTo6VGVtcGxhdGVMaXRl
cmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBUZW1wbGF0ZUVsZW1lbnRM
aXN0Tm9kZSogdGVtcGxhdGVFbGVtZW50cywgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRl
bXBsYXRlRXhwcmVzc2lvbnMpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisg
ICAgICAgICwgbV90ZW1wbGF0ZUVsZW1lbnRzKHRlbXBsYXRlRWxlbWVudHMpCisgICAgICAgICwg
bV90ZW1wbGF0ZUV4cHJlc3Npb25zKHRlbXBsYXRlRXhwcmVzc2lvbnMpCisgICAgeworICAgIH0K
KwogICAgIGlubGluZSBSZWdFeHBOb2RlOjpSZWdFeHBOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIHBhdHRlcm4sIGNvbnN0IElkZW50aWZpZXIm
IGZsYWdzKQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1f
cGF0dGVybihwYXR0ZXJuKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDlj
NTE0MTZlMDgzOGQzZmUxODQ5MmRlODY0ZmZhMWM1Y2U4Mzc4ZGYuLjNlZjMwYjgzMzcyNDgwM2Zh
MWI3NjRjMzQwMWY0MDA4ZmU5MDcxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmgKQEAgLTI3NCw3ICsyNzQsNyBAQAogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fdmFs
dWU7CiAgICAgfTsKLSAgICAKKwogICAgIGNsYXNzIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKCkKQEAgLTQyNyw2
ICs0MjcsNTggQEAKICAgICAgICAgdWludDE2X3QgbV9zdWJleHByZXNzaW9uTGluZVN0YXJ0T2Zm
c2V0OwogICAgIH07CiAKKyAgICBjbGFzcyBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSA6IHB1
YmxpYyBQYXJzZXJBcmVuYUZyZWVhYmxlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRlbXBsYXRl
RXhwcmVzc2lvbkxpc3ROb2RlKEV4cHJlc3Npb25Ob2RlKik7CisgICAgICAgIFRlbXBsYXRlRXhw
cmVzc2lvbkxpc3ROb2RlKFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiwgRXhwcmVzc2lvbk5v
ZGUqKTsKKworICAgICAgICBFeHByZXNzaW9uTm9kZSogdmFsdWUoKSB7IHJldHVybiBtX25vZGU7
IH0KKyAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIG5leHQoKSB7IHJldHVybiBt
X25leHQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3RO
b2RlKiBtX25leHQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX25vZGU7CisgICAgfTsKKwor
ICAgIGNsYXNzIFRlbXBsYXRlRWxlbWVudE5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiBjb29rZWQsIGNvbnN0IElkZW50aWZpZXImIHJhdyk7
CisKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgY29va2VkKCkgeyByZXR1cm4gbV9jb29rZWQ7
IH0KKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgcmF3KCkgeyByZXR1cm4gbV9yYXc7IH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBj
b25zdCBJZGVudGlmaWVyJiBtX2Nvb2tlZDsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9y
YXc7CisgICAgfTsKKworICAgIGNsYXNzIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlIDogcHVibGlj
IFBhcnNlckFyZW5hRnJlZWFibGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxhdGVFbGVt
ZW50TGlzdE5vZGUoVGVtcGxhdGVFbGVtZW50Tm9kZSopOworICAgICAgICBUZW1wbGF0ZUVsZW1l
bnRMaXN0Tm9kZShUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSosIFRlbXBsYXRlRWxlbWVudE5vZGUq
KTsKKworICAgICAgICBUZW1wbGF0ZUVsZW1lbnROb2RlKiB2YWx1ZSgpIHsgcmV0dXJuIG1fbm9k
ZTsgfQorICAgICAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogbmV4dCgpIHsgcmV0dXJuIG1f
bmV4dDsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUq
IG1fbmV4dDsKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50Tm9kZSogbV9ub2RlOworICAgIH07CisK
KyAgICBjbGFzcyBUZW1wbGF0ZUxpdGVyYWxOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIFRlbXBsYXRlTGl0ZXJhbE5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqKTsKKyAgICAgICAgVGVtcGxhdGVMaXRl
cmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSos
IFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKik7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2
aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUq
IG1fdGVtcGxhdGVFbGVtZW50czsKKyAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUq
IG1fdGVtcGxhdGVFeHByZXNzaW9uczsKKyAgICB9OworCiAgICAgY2xhc3MgUmVnRXhwTm9kZSA6
IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIFJlZ0V4cE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
Y29uc3QgSWRlbnRpZmllciYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmllciYgZmxhZ3MpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IDVmNTFkYTI0YjQzODUzOWI3
ZDViMGY0OTU0MTQ5MDk1NDYyNzI3MjYuLmExNTY3ZmVlN2NlZDRjMzMxNjczODZiYTRkMTdhYWNi
OTQwOTQ5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTIy
NTcsNiArMjI1Nyw2MSBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzVW5hcnlPcChKU1Rv
a2VuVHlwZSB0b2tlbikKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KK3RlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlRWxl
bWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1wbGF0ZUVsZW1lbnQoVHJlZUJ1aWxkZXIm
IGNvbnRleHQsIGJvb2wgaXNUZW1wbGF0ZUhlYWQsIGJvb2wmIGVsZW1lbnRJc1RhaWwpCit7Cisg
ICAgaWYgKCFpc1RlbXBsYXRlSGVhZCkgeworICAgICAgICBtYXRjaE9yRmFpbChDTE9TRUJSQUNF
LCAiRXhwZWN0ZWQgYSBjbG9zaW5nICd9JyBmb2xsb3dpbmcgYW4gZXhwcmVzc2lvbiBpbiB0ZW1w
bGF0ZSBsaXRlcmFsIik7CisgICAgICAgIC8vIFJlLXNjYW4gdGhlIHRva2VuIHRvIHJlY29nbml6
ZSBpdCBhcyBUZW1wbGF0ZSBFbGVtZW50LgorICAgICAgICBtX3Rva2VuLm1fdHlwZSA9IG1fbGV4
ZXItPnNjYW5UcmFpbGluZ1RlbXBsYXRlRWxlbWVudCgmbV90b2tlbik7CisgICAgfQorICAgIG1h
dGNoT3JGYWlsKFRFTVBMQVRFLCAiRXhwZWN0ZWQgYW4gdGVtcGxhdGUgZWxlbWVudCIpOworICAg
IGNvbnN0IElkZW50aWZpZXIqIGNvb2tlZCA9IG1fdG9rZW4ubV9kYXRhLmNvb2tlZDsKKyAgICBj
b25zdCBJZGVudGlmaWVyKiByYXcgPSBtX3Rva2VuLm1fZGF0YS5yYXc7CisgICAgZWxlbWVudElz
VGFpbCA9IG1fdG9rZW4ubV9kYXRhLmlzVGFpbDsKKyAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRp
b24odG9rZW5Mb2NhdGlvbigpKTsKKyAgICBuZXh0KCk7CisgICAgcmV0dXJuIGNvbnRleHQuY3Jl
YXRlVGVtcGxhdGVFbGVtZW50KGxvY2F0aW9uLCAqY29va2VkLCAqcmF3KTsKK30KKwordGVtcGxh
dGUgPHR5cGVuYW1lIExleGVyVHlwZT4KK3RlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gdHlw
ZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlTGl0ZXJhbCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VUZW1wbGF0ZUxpdGVyYWwoVHJlZUJ1aWxkZXImIGNvbnRleHQpCit7CisgICAgSlNUb2tlbkxv
Y2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CisgICAgYm9vbCBlbGVtZW50SXNUYWls
ID0gZmFsc2U7CisKKyAgICBhdXRvIGhlYWRUZW1wbGF0ZUVsZW1lbnQgPSBwYXJzZVRlbXBsYXRl
RWxlbWVudChjb250ZXh0LCB0cnVlLCBlbGVtZW50SXNUYWlsKTsKKyAgICBmYWlsSWZGYWxzZSho
ZWFkVGVtcGxhdGVFbGVtZW50LCAiQ2Fubm90IHBhcnNlIGhlYWQgdGVtcGxhdGUgZWxlbWVudCIp
OworCisgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlRWxlbWVudExpc3QgdGVtcGxh
dGVFbGVtZW50TGlzdCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFbGVtZW50TGlzdChoZWFkVGVt
cGxhdGVFbGVtZW50KTsKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFbGVtZW50
TGlzdCB0ZW1wbGF0ZUVsZW1lbnRUYWlsID0gdGVtcGxhdGVFbGVtZW50TGlzdDsKKworICAgIGlm
IChlbGVtZW50SXNUYWlsKQorICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxp
dGVyYWwobG9jYXRpb24sIHRlbXBsYXRlRWxlbWVudExpc3QpOworCisgICAgVHJlZUV4cHJlc3Np
b24gZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICBmYWlsSWZGYWxz
ZShleHByZXNzaW9uLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gaW4gdGVtcGxhdGUgbGl0ZXJh
bCIpOworCisgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3Qg
dGVtcGxhdGVFeHByZXNzaW9uTGlzdCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9u
TGlzdChleHByZXNzaW9uKTsKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFeHBy
ZXNzaW9uTGlzdCB0ZW1wbGF0ZUV4cHJlc3Npb25UYWlsID0gdGVtcGxhdGVFeHByZXNzaW9uTGlz
dDsKKworICAgIGF1dG8gdGVtcGxhdGVFbGVtZW50ID0gcGFyc2VUZW1wbGF0ZUVsZW1lbnQoY29u
dGV4dCwgZmFsc2UsIGVsZW1lbnRJc1RhaWwpOworICAgIGZhaWxJZkZhbHNlKHRlbXBsYXRlRWxl
bWVudCwgIkNhbm5vdCBwYXJzZSB0ZW1wbGF0ZSBlbGVtZW50Iik7CisgICAgdGVtcGxhdGVFbGVt
ZW50VGFpbCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFbGVtZW50TGlzdCh0ZW1wbGF0ZUVsZW1l
bnRUYWlsLCB0ZW1wbGF0ZUVsZW1lbnQpOworCisgICAgd2hpbGUgKCFlbGVtZW50SXNUYWlsKSB7
CisgICAgICAgIFRyZWVFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb24oY29u
dGV4dCk7CisgICAgICAgIGZhaWxJZkZhbHNlKGV4cHJlc3Npb24sICJDYW5ub3QgcGFyc2UgZXhw
cmVzc2lvbiBpbiB0ZW1wbGF0ZSBsaXRlcmFsIik7CisgICAgICAgIHRlbXBsYXRlRXhwcmVzc2lv
blRhaWwgPSBjb250ZXh0LmNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QodGVtcGxhdGVFeHBy
ZXNzaW9uVGFpbCwgZXhwcmVzc2lvbik7CisKKyAgICAgICAgYXV0byB0ZW1wbGF0ZUVsZW1lbnQg
PSBwYXJzZVRlbXBsYXRlRWxlbWVudChjb250ZXh0LCBmYWxzZSwgZWxlbWVudElzVGFpbCk7Cisg
ICAgICAgIGZhaWxJZkZhbHNlKHRlbXBsYXRlRWxlbWVudCwgIkNhbm5vdCBwYXJzZSB0ZW1wbGF0
ZSBlbGVtZW50Iik7CisgICAgICAgIHRlbXBsYXRlRWxlbWVudFRhaWwgPSBjb250ZXh0LmNyZWF0
ZVRlbXBsYXRlRWxlbWVudExpc3QodGVtcGxhdGVFbGVtZW50VGFpbCwgdGVtcGxhdGVFbGVtZW50
KTsKKyAgICB9CisKKyAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxpdGVyYWwobG9j
YXRpb24sIHRlbXBsYXRlRWxlbWVudExpc3QsIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpOworfQor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgogdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWls
ZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcmltYXJ5RXhwcmVz
c2lvbihUcmVlQnVpbGRlciYgY29udGV4dCkKIHsKICAgICBmYWlsSWZTdGFja092ZXJmbG93KCk7
CkBAIC0yMzU3LDYgKzI0MTIsOCBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzVW5hcnlP
cChKU1Rva2VuVHlwZSB0b2tlbikKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcmU7CiAgICAg
fQorICAgIGNhc2UgVEVNUExBVEU6CisgICAgICAgIHJldHVybiBwYXJzZVRlbXBsYXRlTGl0ZXJh
bChjb250ZXh0KTsKICAgICBkZWZhdWx0OgogICAgICAgICBmYWlsRHVlVG9VbmV4cGVjdGVkVG9r
ZW4oKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCBkY2Vj
NTBhZjYwZjFlZjcxZjFhYTllNGY4OGQ4ZmM3ZDdmNTZhNzRhLi5kNjhhNzcyZGI5YzQ1NTlmYjA4
NGIxYWZkMzZhNTNlMzM0ZDdkZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmgKQEAgLTY5LDYgKzY5LDcgQEAKICNkZWZpbmUgVHJlZUNvbnN0RGVjbExpc3QgdHlwZW5hbWUg
VHJlZUJ1aWxkZXI6OkNvbnN0RGVjbExpc3QKICNkZWZpbmUgVHJlZUFyZ3VtZW50cyB0eXBlbmFt
ZSBUcmVlQnVpbGRlcjo6QXJndW1lbnRzCiAjZGVmaW5lIFRyZWVBcmd1bWVudHNMaXN0IHR5cGVu
YW1lIFRyZWVCdWlsZGVyOjpBcmd1bWVudHNMaXN0CisjZGVmaW5lIFRyZWVUZW1wbGF0ZUVsZW1l
bnRMaXN0IHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZUVsZW1lbnRMaXN0CiAjZGVmaW5l
IFRyZWVGdW5jdGlvbkJvZHkgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkZ1bmN0aW9uQm9keQogI2lm
IEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogI2RlZmluZSBUcmVlQ2xhc3NFeHByZXNzaW9uIHR5
cGVuYW1lIFRyZWVCdWlsZGVyOjpDbGFzc0V4cHJlc3Npb24KQEAgLTc3Niw2ICs3NzcsOCBAQCBj
bGFzcyBQYXJzZXIgewogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIFRyZWVDbGFzc0V4cHJlc3Npb24gcGFy
c2VDbGFzcyhUcmVlQnVpbGRlciYsIEZ1bmN0aW9uUmVxdWlyZW1lbnRzLCBQYXJzZXJDbGFzc0lu
Zm88VHJlZUJ1aWxkZXI+Jik7CiAjZW5kaWYKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IE5FVkVSX0lOTElORSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFbGVtZW50IHBh
cnNlVGVtcGxhdGVFbGVtZW50KFRyZWVCdWlsZGVyJiBjb250ZXh0LCBib29sIGlzVGVtcGxhdGVI
ZWFkLCBib29sJiBlbGVtZW50SXNUYWlsKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IE5FVkVSX0lOTElORSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVMaXRlcmFsIHBh
cnNlVGVtcGxhdGVMaXRlcmFsKFRyZWVCdWlsZGVyJik7CiAKICAgICBBTFdBWVNfSU5MSU5FIGlu
dCBpc0JpbmFyeU9wZXJhdG9yKEpTVG9rZW5UeXBlKTsKICAgICBib29sIGFsbG93QXV0b21hdGlj
U2VtaWNvbG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlclRva2Vucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMu
aAppbmRleCA4MzI5ZjgyYTliMmZmOTE1ZDFmMjQxYzFmOGJmZmFkNDI0N2E1ZjBiLi4wMjZlNGY4
MGY0MzdkOGJmZTRhNjE5YzMwZDExZGM5ZmM2MWUyNjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKQEAgLTk2LDYgKzk2LDcgQEAgZW51bSBKU1Rva2Vu
VHlwZSB7CiAgICAgRE9VQkxFLAogICAgIElERU5ULAogICAgIFNUUklORywKKyAgICBURU1QTEFU
RSwKICAgICBTRU1JQ09MT04sCiAgICAgQ09MT04sCiAgICAgRE9ULApAQCAtMTYxLDcgKzE2Miw5
IEBAIGVudW0gSlNUb2tlblR5cGUgewogICAgIElOVkFMSURfU1RSSU5HX0xJVEVSQUxfRVJST1JU
T0sgPSA5IHwgRXJyb3JUb2tlbkZsYWcsCiAgICAgSU5WQUxJRF9QUklWQVRFX05BTUVfRVJST1JU
T0sgPSAxMCB8IEVycm9yVG9rZW5GbGFnLAogICAgIElOVkFMSURfSEVYX05VTUJFUl9FUlJPUlRP
SyA9IDExIHwgRXJyb3JUb2tlbkZsYWcsCi0gICAgSU5WQUxJRF9CSU5BUllfTlVNQkVSX0VSUk9S
VE9LID0gMTIgfCBFcnJvclRva2VuRmxhZworICAgIElOVkFMSURfQklOQVJZX05VTUJFUl9FUlJP
UlRPSyA9IDEyIHwgRXJyb3JUb2tlbkZsYWcsCisgICAgVU5URVJNSU5BVEVEX1RFTVBMQVRFX0xJ
VEVSQUxfRVJST1JUT0sgPSAxMyB8IEVycm9yVG9rZW5GbGFnIHwgVW50ZXJtaW5hdGVkRXJyb3JU
b2tlbkZsYWcsCisgICAgSU5WQUxJRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LID0gMTQgfCBF
cnJvclRva2VuRmxhZywKIH07CiAKIHN0cnVjdCBKU1RleHRQb3NpdGlvbiB7CkBAIC0xODksNiAr
MTkyLDExIEBAIHN0cnVjdCBKU1RleHRQb3NpdGlvbiB7CiAgICAgfTsKICAgICBkb3VibGUgZG91
YmxlVmFsdWU7CiAgICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQ7CisgICAgc3RydWN0IHsKKyAg
ICAgICAgY29uc3QgSWRlbnRpZmllciogY29va2VkOworICAgICAgICBjb25zdCBJZGVudGlmaWVy
KiByYXc7CisgICAgICAgIGJvb2wgaXNUYWlsOworICAgIH07CiB9OwogCiBzdHJ1Y3QgSlNUb2tl
bkxvY2F0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3lu
dGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2Vy
LmgKaW5kZXggOGI0NzU4NGJhN2I3YTRmMjljMGYwZTBlYWQ1N2UwNzM0ZmFiZmUyZi4uMzEwNWUx
YWExZWY2ZGQwZWYyZDRiYTI4MGFlZGM2NTI0NTU0NzQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTgxLDcgKzgxLDggQEAgY2xhc3MgU3lu
dGF4Q2hlY2tlciB7CiAgICAgICAgIEZ1bmN0aW9uQm9keVJlc3VsdCwgU3ByZWFkRXhwciwgQXJn
dW1lbnRzUmVzdWx0LAogICAgICAgICBQcm9wZXJ0eUxpc3RSZXN1bHQsIEFyZ3VtZW50c0xpc3RS
ZXN1bHQsIEVsZW1lbnRzTGlzdFJlc3VsdCwKICAgICAgICAgU3RhdGVtZW50UmVzdWx0LCBGb3Jt
YWxQYXJhbWV0ZXJMaXN0UmVzdWx0LCBDbGF1c2VSZXN1bHQsCi0gICAgICAgIENsYXVzZUxpc3RS
ZXN1bHQsIENvbW1hRXhwciwgRGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50CisgICAgICAgIENsYXVz
ZUxpc3RSZXN1bHQsIENvbW1hRXhwciwgRGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50LAorICAgICAg
ICBUZW1wbGF0ZUVsZW1lbnRSZXN1bHQsIFRlbXBsYXRlRWxlbWVudExpc3RSZXN1bHQsIFRlbXBs
YXRlRXhwcmVzc2lvbkxpc3RSZXN1bHQsIFRlbXBsYXRlRXhwcgogICAgIH07CiAgICAgdHlwZWRl
ZiBpbnQgRXhwcmVzc2lvblR5cGU7CiAKQEAgLTExMSw2ICsxMTIsMTAgQEAgY2xhc3MgU3ludGF4
Q2hlY2tlciB7CiAgICAgdHlwZWRlZiBpbnQgUHJvcGVydHlMaXN0OwogICAgIHR5cGVkZWYgaW50
IEVsZW1lbnRMaXN0OwogICAgIHR5cGVkZWYgaW50IEFyZ3VtZW50c0xpc3Q7CisgICAgdHlwZWRl
ZiBpbnQgVGVtcGxhdGVFeHByZXNzaW9uTGlzdDsKKyAgICB0eXBlZGVmIGludCBUZW1wbGF0ZUVs
ZW1lbnQ7CisgICAgdHlwZWRlZiBpbnQgVGVtcGxhdGVFbGVtZW50TGlzdDsKKyAgICB0eXBlZGVm
IGludCBUZW1wbGF0ZUxpdGVyYWw7CiAgICAgdHlwZWRlZiBpbnQgRm9ybWFsUGFyYW1ldGVyTGlz
dDsKICAgICB0eXBlZGVmIGludCBGdW5jdGlvbkJvZHk7CiAjaWYgRU5BQkxFKEVTNl9DTEFTU19T
WU5UQVgpCkBAIC0xNzMsNiArMTc4LDE0IEBAIGNsYXNzIFN5bnRheENoZWNrZXIgewogICAgIGlu
dCBjcmVhdGVBcmd1bWVudHMoKSB7IHJldHVybiBBcmd1bWVudHNSZXN1bHQ7IH0KICAgICBpbnQg
Y3JlYXRlQXJndW1lbnRzKGludCkgeyByZXR1cm4gQXJndW1lbnRzUmVzdWx0OyB9CiAgICAgRXhw
cmVzc2lvblR5cGUgY3JlYXRlU3ByZWFkRXhwcmVzc2lvbihjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBFeHByZXNzaW9uVHlwZSwgaW50LCBpbnQsIGludCkgeyByZXR1cm4gU3ByZWFkRXhwcjsgfQor
ICAgIFRlbXBsYXRlRWxlbWVudCBjcmVhdGVUZW1wbGF0ZUVsZW1lbnQoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IElkZW50aWZpZXImKSB7IHJldHVybiBU
ZW1wbGF0ZUVsZW1lbnRSZXN1bHQ7IH0KKyAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0IGNyZWF0ZVRl
bXBsYXRlRWxlbWVudExpc3QoVGVtcGxhdGVFbGVtZW50KSB7IHJldHVybiBUZW1wbGF0ZUVsZW1l
bnRMaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVFbGVtZW50TGlzdCBjcmVhdGVUZW1wbGF0ZUVs
ZW1lbnRMaXN0KFRlbXBsYXRlRWxlbWVudExpc3QsIFRlbXBsYXRlRWxlbWVudCkgeyByZXR1cm4g
VGVtcGxhdGVFbGVtZW50TGlzdFJlc3VsdDsgfQorICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3Qg
Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChFeHByZXNzaW9uKSB7IHJldHVybiBUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdCBjcmVh
dGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KFRlbXBsYXRlRXhwcmVzc2lvbkxpc3QsIEV4cHJlc3Np
b24pIHsgcmV0dXJuIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3RSZXN1bHQ7IH0KKyAgICBUZW1wbGF0
ZUxpdGVyYWwgY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFRl
bXBsYXRlRWxlbWVudExpc3QpIHsgcmV0dXJuIFRlbXBsYXRlRXhwcjsgfQorICAgIFRlbXBsYXRl
TGl0ZXJhbCBjcmVhdGVUZW1wbGF0ZUxpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgVGVt
cGxhdGVFbGVtZW50TGlzdCwgVGVtcGxhdGVFeHByZXNzaW9uTGlzdCkgeyByZXR1cm4gVGVtcGxh
dGVFeHByOyB9CisKICAgICBpbnQgY3JlYXRlQXJndW1lbnRzTGlzdChjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBpbnQpIHsgcmV0dXJuIEFyZ3VtZW50c0xpc3RSZXN1bHQ7IH0KICAgICBpbnQgY3Jl
YXRlQXJndW1lbnRzTGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQsIGludCkgeyByZXR1
cm4gQXJndW1lbnRzTGlzdFJlc3VsdDsgfQogICAgIFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KGNv
bnN0IElkZW50aWZpZXIqIG5hbWUsIGludCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3Bl
cnR5Tm9kZTo6UHV0VHlwZSwgYm9vbCBjb21wbGV0ZSwgU3VwZXJCaW5kaW5nID0gU3VwZXJCaW5k
aW5nOjpOb3ROZWVkZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcAppbmRleCA2NTNlYmRiODRmYWE2ZGM1ZmEwNDA1Mjc2OTI4ZGJlYTcz
MzljYzY0Li5kY2ZkZGRkMDc1NmFjNmMyMTQ2ZWNkODRhNTI0M2IwNDZlMTQyNTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAg
LTM0NSw2ICszNDUsMTIgQEAgc3RhdGljIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGEq
IHNldHVwQXJpdHlDaGVja0RhdGEoVk0mIHZtLCBpbnQgc2xvdHNUb0EKICAgICBSRVRVUk4oanNO
dW1iZXIoT1BfQygyKS5qc1ZhbHVlKCkudG9OdW1iZXIoZXhlYykpKTsKIH0KIAorU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX3RvX3N0cmluZykKK3sKKyAgICBCRUdJTigpOworICAgIFJFVFVSTihP
UF9DKDIpLmpzVmFsdWUoKS50b1N0cmluZyhleGVjKSk7Cit9CisKIFNMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF9uZWdhdGUpCiB7CiAgICAgQkVHSU4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXggZjYwYmJjODRlZjFhNDU5N2ViMDVj
NWFiYjNmYWUzMTlkMjNhMWY2OC4uZDI0YWNiNWU1M2FiN2IxMjhlY2Y4MGI2MDQ1Njc3ZDE0ZWYw
ZWZkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmgKQEAgLTIwMiw2ICsyMDIsNyBAQCBpbmxpbmUgdm9pZCBkZWNvZGVSZXN1bHQoU2xvd1Bh
dGhSZXR1cm5UeXBlIHJlc3VsdCwgdm9pZComIGEsIHZvaWQqJiBiKQogU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9pbmMpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9k
ZWMpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90b19udW1iZXIpOworU0xPV19Q
QVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90b19zdHJpbmcpOwogU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9uZWdhdGUpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9h
ZGQpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9tdWwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLWxpbmUt
dGVybWluYXRvcnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBs
YXRlLWxpdGVyYWwtbGluZS10ZXJtaW5hdG9ycy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDUwNGJlZmJlOWQx
NDYzZmE2ZmMwY2Y5ZDkzZmEyYzFlNzU0ZGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLWxpbmUtdGVybWluYXRv
cnMuanMKQEAgLTAsMCArMSw1NiBAQAorZnVuY3Rpb24gdGVzdChhY3R1YWwsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
YmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdEV2YWwoc2NyaXB0LCBl
eHBlY3RlZCkgeworICAgIHRlc3QoZXZhbChzY3JpcHQpLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RFdmFsTGluZU51bWJlcihzY3JpcHQsIGV4cGVjdGVkLCBsaW5lTnVtKSB7CisgICAg
dGVzdEV2YWwoc2NyaXB0LCBleHBlY3RlZCk7CisKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAg
IHZhciBhY3R1YWxMaW5lOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0ICsgJzt0aHJv
dyBuZXcgRXJyb3IoImxpbmUiKTsnKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBh
Y3R1YWxMaW5lID0gZXJyb3IubGluZTsKKyAgICB9CisgICAgdGVzdChhY3R1YWxMaW5lLCBsaW5l
TnVtKTsKK30KKwordGVzdChgSGVsbG9gLCAiSGVsbG8iKTsKK3Rlc3QoYEhlbGxvIFdvcmxkYCwg
IkhlbGxvIFdvcmxkIik7Cit0ZXN0KGAKK2AsICJcbiIpOwordGVzdChgSGVsbG8KK1dvcmxkYCwg
IkhlbGxvXG5Xb3JsZCIpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsbyBXb3JsZGAiLCAi
SGVsbG8gV29ybGQiLCAxKTsKKwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9ccldvcmxkYCIs
ICJIZWxsb1xuV29ybGQiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5Xb3JsZGAi
LCAiSGVsbG9cbldvcmxkIiwgMik7CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXHJccldv
cmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9c
clxuV29ybGRgIiwgIkhlbGxvXG5Xb3JsZCIsIDIpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVs
bG9cblxuV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7Cit0ZXN0RXZhbExpbmVOdW1iZXIo
ImBIZWxsb1xuXHJXb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAyKTsKKwordGVzdEV2YWxMaW5l
TnVtYmVyKCJgSGVsbG9cblxyXG5Xb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKK3Rlc3RF
dmFsTGluZU51bWJlcigiYEhlbGxvXHJcblxyV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7
Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuXG5cbldvcmxkYCIsICJIZWxsb1xuXG5cbldv
cmxkIiwgNCk7CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5cclxuXHJXb3JsZGAiLCAi
SGVsbG9cblxuXG5Xb3JsZCIsIDMpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cblxyXG5c
bldvcmxkYCIsICJIZWxsb1xuXG5cbldvcmxkIiwgNCk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBI
ZWxsb1xyXG5cblxuV29ybGRgIiwgIkhlbGxvXG5cblxuV29ybGQiLCA0KTsKKwordGVzdEV2YWxM
aW5lTnVtYmVyKCJgSGVsbG9cXFxuXHJccldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwor
dGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cXFxyXG5cblxuV29ybGRgIiwgIkhlbGxvXG5cbldv
cmxkIiwgNCk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xcXG5cclxuXG5Xb3JsZGAiLCAi
SGVsbG9cblxuV29ybGQiLCA0KTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXFxcblxyXHJc
bldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBc
dTIwMjhgIiwgIlx1MjAyOCIsIDIpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgXHUyMDI5YCIsICJc
dTIwMjkiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYFxcdTIwMjhgIiwgIlx1MjAyOCIsIDEp
OwordGVzdEV2YWxMaW5lTnVtYmVyKCJgXFx1MjAyOWAiLCAiXHUyMDI5IiwgMSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwt
c3ludGF4LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1s
aXRlcmFsLXN5bnRheC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTIxNjZkYWRkNGFiNjNmNjE4YWYyMjA4MzBh
OGQ2ZjUyZGY2NzJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLXN5bnRheC5qcwpAQCAtMCwwICsxLDY0IEBACisK
K2Z1bmN0aW9uIHRlc3RTeW50YXgoc2NyaXB0KSB7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChz
Y3JpcHQpOworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGlmIChlcnJvciBpbnN0YW5j
ZW9mIFN5bnRheEVycm9yKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgZXJyb3I6
ICIgKyBTdHJpbmcoZXJyb3IpKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RTeW50YXhFcnJv
cihzY3JpcHQsIG1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7Cisg
ICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0g
ZTsKKyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBl
Y3RlZCBzeW50YXggZXJyb3Igbm90IHRocm93biIpOworCisgICAgaWYgKFN0cmluZyhlcnJvcikg
IT09IG1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGVycm9yOiAiICsgU3Ry
aW5nKGVycm9yKSk7Cit9CisKK3Rlc3RTeW50YXgoImBIZWxsb2AiKTsKK3Rlc3RTeW50YXgoIihg
SGVsbG9gKSIpOwordGVzdFN5bnRheCgiKGBIZWxsb2ApICsgNDIiKTsKK3Rlc3RTeW50YXgoImBc
bkhlbGxvXG5Xb3JsZGAiKTsKK3Rlc3RTeW50YXgoImBcbkhlbGxvXG4ke1dvcmxkfWAiKTsKK3Rl
c3RTeW50YXgoImAke1dvcmxkfWAiKTsKK3Rlc3RTeW50YXgoImAke1dvcmxkfSBIZWxsb2AiKTsK
K3Rlc3RTeW50YXgoImAkIHtXb3JsZH0gSGVsbG9gIik7Cit0ZXN0U3ludGF4KCJgXFx1RkVGRnRl
c3RgIik7Cit0ZXN0U3ludGF4KCJgXHJcbmAiKTsKK3Rlc3RTeW50YXgoImBcXHJcXG5gIik7Cit0
ZXN0U3ludGF4KCJgXG5gIik7Cit0ZXN0U3ludGF4KCJgXFxuYCIpOwordGVzdFN5bnRheCgiYFx1
MjAyOGAiKTsKK3Rlc3RTeW50YXgoImBcXHUyMDI4YCIpOwordGVzdFN5bnRheCgiYFx1MjAyOWAi
KTsKK3Rlc3RTeW50YXgoImBcXHUyMDI5YCIpOwordGVzdFN5bnRheCgiYFxcMGAiKTsKK3Rlc3RT
eW50YXgoImBcMGAiKTsKK3Rlc3RTeW50YXgoImBcXHg3ZmAiKTsKK3Rlc3RTeW50YXgoIihgSGVs
bG9gKSArIDQyIik7Cit0ZXN0U3ludGF4KCJgXFxcbmAiKTsKK3Rlc3RTeW50YXgoImBcXFxyXG5g
Iik7Cit0ZXN0U3ludGF4KCJgXFxccmAiKTsKKwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8iLCAi
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgRU9GIik7Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxsbyR7
fSIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnfSciKTsKK3Rlc3RTeW50YXhFcnJv
cigiYEhlbGxvJHtleHByfSIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBFT0YiKTsKK3Rlc3RT
eW50YXhFcnJvcigiYEhlbGxvJHtleHByYCIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBFT0Yi
KTsKK3Rlc3RTeW50YXhFcnJvcigiYEhlbGxvIGV4cHIke2AiLCAiU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgRU9GIik7Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxsbyAke31gIiwgIlN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHRva2VuICd9JyIpOwordGVzdFN5bnRheEVycm9yKCJgXFwwN2AiLCAiU3lu
dGF4RXJyb3I6IFRoZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmljdCBtb2RlIGlz
ICdcXDAnIik7Citmb3IgKHZhciBpID0gMTsgaSA8IDc7ICsraSkKKyAgICB0ZXN0U3ludGF4RXJy
b3IoImBcXCIgKyBpICsgImAiLCAiU3ludGF4RXJyb3I6IFRoZSBvbmx5IHZhbGlkIG51bWVyaWMg
ZXNjYXBlIGluIHN0cmljdCBtb2RlIGlzICdcXDAnIik7CisvLyBcOCBhbmQgXDkgYXJlIG5vdCBh
bGxvd2VkLgorZm9yICh2YXIgaSA9IDg7IGkgPCA5OyArK2kpCisgICAgdGVzdFN5bnRheEVycm9y
KCJgXFwiICsgaSArICJgIiwgIlN5bnRheEVycm9yOiBUaGUgb25seSB2YWxpZCBudW1lcmljIGVz
Y2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXFwwJyIpOwordGVzdFN5bnRheEVycm9yKCJgXFx4N2Ai
LCAiU3ludGF4RXJyb3I6IFxceCBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIGhleCBjaGFyYWN0
ZXIgc2VxdWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxceGAiLCAiU3ludGF4RXJyb3I6IFxc
eCBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIGhleCBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKK3Rl
c3RTeW50YXhFcnJvcigiYFxcdWAiLCAiU3ludGF4RXJyb3I6IFxcdSBjYW4gb25seSBiZSBmb2xs
b3dlZCBieSBhIFVuaWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNlIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDA0Y2IxMzhhMWM3MzM1NzUwYWZmMTlkZjU5NTNiY2ZkMGEyZGIyNgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0
ZXJhbC5qcwpAQCAtMCwwICsxLDEyNSBAQAorZnVuY3Rpb24gdGVzdChhY3R1YWwsIGV4cGVjdGVk
KSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdEV2YWwoc2NyaXB0
LCBleHBlY3RlZCkgeworICAgIHRlc3QoZXZhbChzY3JpcHQpLCBleHBlY3RlZCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RFbWJlZGRlZCh2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgdGVtcGxhdGUg
PSBgSGVsbG8gJHt2YWx1ZX0gV29ybGRgOworICAgIHRlc3QodGVtcGxhdGUsIGV4cGVjdGVkKTsK
K30KKwordGVzdChgSGVsbG8gV29ybGRgLCAiSGVsbG8gV29ybGQiKTsKK3Rlc3QoYEhlbGxvCisg
ICAgICAgIFdvcmxkYCwgIkhlbGxvXG4gICAgICAgIFdvcmxkIik7CisKK3Rlc3QoYFx1RkVGRmAs
ICJcdUZFRkYiKTsKK3Rlc3RFdmFsKCJgXHVGRUZGYCIsICJcdUZFRkYiKTsKKwordGVzdEVtYmVk
ZGVkKDQyLCAiSGVsbG8gNDIgV29ybGQiKTsKK3Rlc3RFbWJlZGRlZCgiSVNVQ0EiLCAiSGVsbG8g
SVNVQ0EgV29ybGQiKTsKK3Rlc3RFbWJlZGRlZChudWxsLCAiSGVsbG8gbnVsbCBXb3JsZCIpOwor
dGVzdEVtYmVkZGVkKHVuZGVmaW5lZCwgIkhlbGxvIHVuZGVmaW5lZCBXb3JsZCIpOwordGVzdEVt
YmVkZGVkKHt9LCAiSGVsbG8gW29iamVjdCBPYmplY3RdIFdvcmxkIik7CisKKyhmdW5jdGlvbiAo
KSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgbmFtZTogIkNvY29hIiwKKyAgICB9Owor
ICAgIHZhciBhcnJheSA9IFsKKyAgICAgICAgIkNhcHB1Y2Npbm8iCisgICAgXQorICAgIHRlc3Qo
YEhlbGxvICR7b2JqZWN0Lm5hbWV9IGFuZCAke2FycmF5WzBdfSA6RGAsICJIZWxsbyBDb2NvYSBh
bmQgQ2FwcHVjY2lubyA6RCIpOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBmdW5jdGlv
biBvaygpIHsKKyAgICAgICAgcmV0dXJuICJDb2NvYSI7CisgICAgfQorICAgIHRlc3QoYEhlbGxv
ICR7IG9rKCkgfWAsICJIZWxsbyBDb2NvYSIpOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAg
ICB2YXIgb2JqZWN0ID0geworICAgICAgICB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVy
biAnQ29jb2EnOworICAgICAgICB9CisgICAgfTsKKyAgICB0ZXN0KGBIZWxsbyAke29iamVjdH0g
OkRgLCAiSGVsbG8gQ29jb2EgOkQiKTsKK30oKSk7CisKKy8vIEV4Y2VwdGlvbnMKKworKGZ1bmN0
aW9uICgpIHsKKyAgICBmdW5jdGlvbiBnZW4obnVtKSB7CisgICAgICAgIHJldHVybiB7CisgICAg
ICAgICAgICB0b1N0cmluZygpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobnVt
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICB2YXIgZXJyb3IgPSBu
dWxsOworICAgIHRyeSB7CisgICAgICAgIHZhciB0ZW1wbGF0ZSA9IGAke2dlbigwKX0gJHtnZW4o
MSl9ICR7Z2VuKDIpfWA7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7Cisg
ICAgfQorICAgIGlmICghZXJyb3IpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm8gZXJyb3Ig
dGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09ICdFcnJvcjogMCcpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigiYmFkIGVycm9yOiAiICsgU3RyaW5nKGVycm9yKSk7CisKKyAgICB2
YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIHZhciB0ZW1wbGF0ZSA9IGAkezUy
fSAke2dlbigwKX0gJHtnZW4oMSl9YDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9y
ID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdu
byBlcnJvciB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gJ0Vycm9yOiAwJykK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsK
K30oKSk7CisKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgc3RhdD0geworICAgICAgICBjb3Vu
dDogMAorICAgIH07CisgICAgZnVuY3Rpb24gZ2VuKG51bSkgeworICAgICAgICBzdGF0W251bV0g
PSB7CisgICAgICAgICAgICBjYWxsZWQ6IHRydWUsCisgICAgICAgICAgICBjb3VudDogc3RhdC5j
b3VudCsrLAorICAgICAgICAgICAgdG9TdHJpbmc6IG51bGwKKyAgICAgICAgfTsKKyAgICAgICAg
cmV0dXJuIHsKKyAgICAgICAgICAgIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgICAgIHN0YXRb
bnVtXS50b1N0cmluZyA9IHsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGVkOiB0cnVlLAorICAg
ICAgICAgICAgICAgICAgICBjb3VudDogc3RhdC5jb3VudCsrLAorICAgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG51bSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH07CisgICAgfQorCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAg
ICAgICB2YXIgdGVtcGxhdGUgPSBgJHtnZW4oMCl9ICR7Z2VuKDEpfSAke2dlbigyKX1gOworICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9y
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGVycm9yIHRocm93bicpOworICAgIGlmIChT
dHJpbmcoZXJyb3IpICE9PSAnRXJyb3I6IDAnKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJh
ZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworICAgIHRlc3Qoc3RhdFswXS5jb3VudCwgMCk7
CisgICAgdGVzdChzdGF0WzBdLnRvU3RyaW5nLmNhbGxlZCwgdHJ1ZSk7CisgICAgdGVzdChzdGF0
WzBdLnRvU3RyaW5nLmNvdW50LCAxKTsKKyAgICB0ZXN0KHN0YXRbMV0sIHVuZGVmaW5lZCk7Cisg
ICAgdGVzdChzdGF0WzJdLCB1bmRlZmluZWQpOworfSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249672</attachid>
            <date>2015-03-28 13:56:31 -0700</date>
            <delta_ts>2015-03-29 08:47:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142691-20150329055550.patch</filename>
            <type>text/plain</type>
            <size>58767</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
MDNiMDY3YmVkM2RmMzc2ZWNjOTQ0NzcyZjJiNWQxNjQ3YzYzY2JjLi44Zjk0YTFjYTFiMTlmOTU0
MDdjYWEyOTI3NzVjZjNlNzg5M2Y3ZDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTMgQEAKKzIwMTUtMDMtMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIFRlbXBsYXRlTGl0ZXJhbC4KKyAgICAgICAgU2luY2UgVGFnZ2VkVGVtcGxh
dGUgcmVxdWlyZXMgc29tZSBnbG9iYWwgc3RhdGVzIGFuZAorICAgICAgICBwcmltaXRpdmUgb3Bl
cmF0aW9ucyBsaWtlIEdldFRlbXBsYXRlT2JqZWN0LAorICAgICAgICB3ZSBzZXBhcmF0ZSB0aGUg
cGF0Y2guIEl0IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisg
ICAgICAgIFRvIGltcGxlbWVudCB0ZW1wbGF0ZSBsaXRlcmFscywgaW4gdGhpcyBwYXRjaCwKKyAg
ICAgICAgd2UgbmV3bHkgaW50cm9kdWNlcyBieXRlY29kZSBvcF90b19zdHJpbmcuCisgICAgICAg
IEluIHRlbXBsYXRlIGxpdGVyYWxzLCB3ZSBhbHRlcm5hdGVseSBldmFsdWF0ZSB0aGUgZXhwcmVz
c2lvbiBhbmQKKyAgICAgICAgcGVyZm9ybSBUb1N0cmluZyBvbnRvIHRoZSByZXN1bHQgb2YgZXZh
bHVhdGlvbi4KKyAgICAgICAgRm9yIGV4YW1wbGUsCisKKyAgICAgICAgYCR7ZjEoKX0gJHtmMigp
fWAKKworICAgICAgICBJbiB0aGlzIHRlbXBsYXRlIGxpdGVyYWwsIGV4ZWN1dGlvbiBvcmRlciBp
cyB0aGUgZm9sbG93aW5nLAorICAgICAgICAxLiBjYWxsaW5nIGYxKCkKKyAgICAgICAgMi4gVG9T
dHJpbmcodGhlIHJlc3VsdCBvZiBmMSgpKQorICAgICAgICAzLiBjYWxsaW5nIGYyKCkKKyAgICAg
ICAgNC4gVG9TdHJpbmcodGhlIHJlc3VsdCBvZiBmMigpKQorCisgICAgICAgIG9wX3N0cmNhdCBh
bHNvIHBlcmZvcm1zIFRvU3RyaW5nLiBIb3dldmVyLCBwZXJmb3JtaW5nIFRvU3RyaW5nCisgICAg
ICAgIG9udG8gZXhwcmVzc2lvbnMgYXJlIGJhdGNoZWQgaW4gb3Bfc3RyY2F0LCBpdCdzIG5vdCB0
aGUgc2FtZSB0byB0aGUKKyAgICAgICAgdGVtcGxhdGUgbGl0ZXJhbCBzcGVjLiBJbiB0aGUgYWJv
dmUgZXhhbXBsZSwKKyAgICAgICAgVG9TdHJpbmcoZjEoKSkgc2hvdWxkIGJlIGNhbGxlZCBiZWZv
cmUgY2FsbGluZyBmMigpLgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246
CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29t
cHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAg
ICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKiBieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRUb1N0cmluZyk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6
CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAg
ICAgIChKU0M6OlRlbXBsYXRlTGl0ZXJhbE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgICog
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAg
KEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcyk6CisgICAgICAgICogaml0L0pJVC5o
OgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX3RvX3N0cmluZyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfdG9fc3RyaW5n
KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX3RvX3N0cmluZyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfdG9f
c3RyaW5nKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgor
ICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcGFy
c2VyL0FTVEJ1aWxkZXIuaDoKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxh
dGVFbGVtZW50KToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxhdGVFbGVt
ZW50TGlzdCk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlRXhwcmVz
c2lvbkxpc3QpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVUZW1wbGF0ZUxpdGVy
YWwpOgorICAgICAgICAqIHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6OkxleGVyPFQ+
OjpMZXhlcik6CisgICAgICAgIChKU0M6OkxpbmVOdW1iZXJBZGRlcjo6TGluZU51bWJlckFkZGVy
KToKKyAgICAgICAgKEpTQzo6TGluZU51bWJlckFkZGVyOjpjbGVhcik6CisgICAgICAgIChKU0M6
OkxpbmVOdW1iZXJBZGRlcjo6YWRkKToKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OnBhcnNlVGVt
cGxhdGVMaXRlcmFsKToKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OmxleCk6CisgICAgICAgIChK
U0M6OkxleGVyPFQ+OjpzY2FuVHJhaWxpbmdUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIHBh
cnNlci9MZXhlci5oOgorICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAg
ICAgIChKU0M6OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0Tm9kZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudE5vZGU6OlRlbXBsYXRlRWxl
bWVudE5vZGUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZTo6VGVtcGxh
dGVFbGVtZW50TGlzdE5vZGUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUxpdGVyYWxOb2RlOjpU
ZW1wbGF0ZUxpdGVyYWxOb2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAg
KEpTQzo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6OnZhbHVlKToKKyAgICAgICAgKEpTQzo6
VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6Om5leHQpOgorICAgICAgICAoSlNDOjpUZW1wbGF0
ZUVsZW1lbnROb2RlOjpjb29rZWQpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUVsZW1lbnROb2Rl
OjpyYXcpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZTo6dmFsdWUpOgor
ICAgICAgICAoSlNDOjpUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZTo6bmV4dCk6CisgICAgICAgICog
cGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJz
ZVRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJz
ZVRlbXBsYXRlTGl0ZXJhbCk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJz
ZVByaW1hcnlFeHByZXNzaW9uKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAg
ICogcGFyc2VyL1BhcnNlclRva2Vucy5oOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2Vy
Lmg6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlRWxlbWVudCk6
CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlRWxlbWVudExpc3Qp
OgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0KToKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVMaXRlcmFs
KToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6
OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLWxpbmUtdGVybWluYXRvcnMu
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICh0ZXN0RXZhbCk6CisgICAgICAg
ICh0ZXN0RXZhbExpbmVOdW1iZXIpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90ZW1wbGF0ZS1s
aXRlcmFsLXN5bnRheC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0U3ludGF4KToKKyAgICAgICAg
KHRlc3RTeW50YXhFcnJvcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVy
YWwuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICh0ZXN0RXZhbCk6CisgICAg
ICAgICh0ZXN0RW1iZWRkZWQpOgorCiAyMDE1LTAzLTI3ICBTYWFtIEJhcmF0aSAgPHNhYW1iYXJh
dGkxQGdtYWlsLmNvbT4KIAogICAgICAgICBEZWNvbnN0cnVjdGlvbiBwYXJhbWV0ZXJzIGFyZSBi
b3VuZCB0b28gbGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlTGlzdC5qc29uCmluZGV4IDZiMjQzOTE1NmFiM2FmYWU2YjU1OGFiOTA2NmQyMjI1MTVkNTll
NDUuLjFkOTRhMGUxN2ZkOTE0Mjc2NWEyNzIyNjQ2OGI2ZDZjMzQ0Y2MxMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTMzLDYg
KzMzLDcgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2luYyIsICJsZW5ndGgiIDogMiB9
LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGVjIiwgImxlbmd0aCIgOiAyIH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF90b19udW1iZXIiLCAibGVuZ3RoIiA6IDMgfSwKKyAgICAg
ICAgICAgIHsgIm5hbWUiIDogIm9wX3RvX3N0cmluZyIsICJsZW5ndGgiIDogMyB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfbmVnYXRlIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9hZGQiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogIm9wX211bCIsICJsZW5ndGgiIDogNSB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCA4NWYyOTE1YzdlOGY2MDFhZDNlYzE3
OGJmNjllMzU0NGY3NTRjMmNmLi5iYTRhMzg3NTBmM2ZjNTBiMDY4YThhOTE5MTFlM2MyZTRjYTk3
MGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VE
ZWYuaApAQCAtMTM2LDYgKzEzNiw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNl
dCgKICAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9udWxsOgogICAgIGNhc2Ugb3BfaXNfZnVuY3Rp
b246CiAgICAgY2FzZSBvcF90b19udW1iZXI6CisgICAgY2FzZSBvcF90b19zdHJpbmc6CiAgICAg
Y2FzZSBvcF9uZWdhdGU6CiAgICAgY2FzZSBvcF9uZXFfbnVsbDoKICAgICBjYXNlIG9wX2VxX251
bGw6CkBAIC0zMzAsNiArMzMxLDcgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0
KENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBieXRlY29kZU9mZnNldCwKICAgICBjYXNl
IG9wX2lzX2Z1bmN0aW9uOgogICAgIGNhc2Ugb3BfaW46CiAgICAgY2FzZSBvcF90b19udW1iZXI6
CisgICAgY2FzZSBvcF90b19zdHJpbmc6CiAgICAgY2FzZSBvcF9uZWdhdGU6CiAgICAgY2FzZSBv
cF9hZGQ6CiAgICAgY2FzZSBvcF9tdWw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCmluZGV4IDllOTUxN2U3ODFiZTU1N2YwNGYxN2Y5M2RlYzcxYjkxNmNj
OWEyYWQuLjdjZDRiZmQxYmI2YjBmOGUyMTYyNDJhMmI0NmNhYzY3ODE5MWYzN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC05MTYsNiArOTE2
LDEwIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBwcmludFVu
YXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0b19udW1iZXIiKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CisgICAgICAgIGNhc2Ugb3BfdG9fc3RyaW5nOiB7CisgICAgICAg
ICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0b19zdHJpbmciKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmVnYXRlOiB7
CiAgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJuZWdh
dGUiKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDRmZmVmNmI0MDk3ZjAy
NDZkYzFiYWU4OWVlOGFhYjhlYzk1YzYwZmEuLjc4ZjJiYTdkMDRjYmMxMTNiYTNjYjlmN2M0NWI2
MDJmNzY2NTllYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTQ2MCw2ICs0NjAsNyBAQAogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0TW92ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYyk7CiAK
ICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFRvTnVtYmVyKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0VW5hcnlPcChvcF90b19udW1iZXIsIGRzdCwgc3JjKTsg
fQorICAgICAgICBSZWdpc3RlcklEKiBlbWl0VG9TdHJpbmcoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRVbmFyeU9wKG9wX3RvX3N0cmluZywgZHN0LCBzcmMp
OyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbmMoUmVnaXN0ZXJJRCogc3JjRHN0KTsKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdERlYyhSZWdpc3RlcklEKiBzcmNEc3QpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5k
ZXggNjE1OWM3OWM5OTMxZWNkNDU4NWYxYTdkZWZiMWE3NjExNTczZThhMy4uODc0MjdlN2Y4NTVk
MTdlZTg4YWI5ZjBlYjE1ZDU5ZmZkNGNhZjdlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMjE1LDYgKzIxNSw1MCBA
QCBSZWdpc3RlcklEKiBSZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRlbXBsYXRlRWxlbWVudE5vZGUgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogVGVtcGxhdGVFbGVtZW50
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqIGRzdCkKK3sKKyAgICBpZiAoZHN0ID09IGdlbmVyYXRvci5pZ25vcmVkUmVzdWx0KCkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExvYWQoZHN0
LCBKU1ZhbHVlKGdlbmVyYXRvci5hZGRTdHJpbmdDb25zdGFudChjb29rZWQoKSkpKTsKK30KKwor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRlbXBsYXRlTGl0ZXJhbE5vZGUgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogVGVtcGxhdGVM
aXRlcmFsTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJl
Z2lzdGVySUQqIGRzdCkKK3sKKyAgICBpZiAoIW1fdGVtcGxhdGVFeHByZXNzaW9ucykgeworICAg
ICAgICBUZW1wbGF0ZUVsZW1lbnROb2RlKiB0ZW1wbGF0ZUVsZW1lbnQgPSBtX3RlbXBsYXRlRWxl
bWVudHMtPnZhbHVlKCk7CisgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1fdGVtcGxhdGVF
bGVtZW50cy0+bmV4dCgpLCAiT25seSBvbmUgdGVtcGxhdGUgZWxlbWVudCBleGlzdHMgYmVjYXVz
ZSB0aGVyZSdzIG5vIGV4cHJlc3Npb24gaW4gYSBnaXZlbiB0ZW1wbGF0ZSBsaXRlcmFsLiIpOwor
ICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgdGVtcGxhdGVFbGVtZW50KTsK
KyAgICB9CisKKyAgICBWZWN0b3I8UmVmUHRyPFJlZ2lzdGVySUQ+LCAxNj4gdGVtcG9yYXJ5UmVn
aXN0ZXJzOworCisgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqIHRlbXBsYXRlRWxlbWVudHNU
YWlsID0gbV90ZW1wbGF0ZUVsZW1lbnRzOworICAgIGZvciAoYXV0byB0ZW1wbGF0ZUV4cHJlc3Np
b25zVGFpbCA9IG1fdGVtcGxhdGVFeHByZXNzaW9uczsgdGVtcGxhdGVFeHByZXNzaW9uc1RhaWw7
IHRlbXBsYXRlRXhwcmVzc2lvbnNUYWlsID0gdGVtcGxhdGVFeHByZXNzaW9uc1RhaWwtPm5leHQo
KSwgdGVtcGxhdGVFbGVtZW50c1RhaWwgPSB0ZW1wbGF0ZUVsZW1lbnRzVGFpbC0+bmV4dCgpKSB7
CisgICAgICAgIC8vIEV2YWx1YXRlIFRlbXBsYXRlRWxlbWVudC4KKyAgICAgICAgaWYgKCF0ZW1w
bGF0ZUVsZW1lbnRzVGFpbC0+dmFsdWUoKS0+Y29va2VkKCkuaXNFbXB0eSgpKSB7CisgICAgICAg
ICAgICB0ZW1wb3JhcnlSZWdpc3RlcnMuYXBwZW5kKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSk7
CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUodGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3Qo
KS5nZXQoKSwgdGVtcGxhdGVFbGVtZW50c1RhaWwtPnZhbHVlKCkpOworICAgICAgICB9CisKKyAg
ICAgICAgLy8gRXZhbHVhdGUgRXhwcmVzc2lvbi4KKyAgICAgICAgdGVtcG9yYXJ5UmVnaXN0ZXJz
LmFwcGVuZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1p
dE5vZGUodGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSwgdGVtcGxhdGVFeHByZXNzaW9u
c1RhaWwtPnZhbHVlKCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFRvU3RyaW5nKHRlbXBvcmFy
eVJlZ2lzdGVycy5sYXN0KCkuZ2V0KCksIHRlbXBvcmFyeVJlZ2lzdGVycy5sYXN0KCkuZ2V0KCkp
OworICAgIH0KKworICAgIC8vIEV2YWx1YXRlIHRhaWwgVGVtcGxhdGVFbGVtZW50LgorICAgIGlm
ICghdGVtcGxhdGVFbGVtZW50c1RhaWwtPnZhbHVlKCktPmNvb2tlZCgpLmlzRW1wdHkoKSkgewor
ICAgICAgICB0ZW1wb3JhcnlSZWdpc3RlcnMuYXBwZW5kKGdlbmVyYXRvci5uZXdUZW1wb3Jhcnko
KSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZSh0ZW1wb3JhcnlSZWdpc3RlcnMubGFzdCgp
LmdldCgpLCB0ZW1wbGF0ZUVsZW1lbnRzVGFpbC0+dmFsdWUoKSk7CisgICAgfQorCisgICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0U3RyY2F0KGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwg
dGVtcG9yYXJ5UmVnaXN0ZXJzWzBdLmdldCgpKSwgdGVtcG9yYXJ5UmVnaXN0ZXJzWzBdLmdldCgp
LCB0ZW1wb3JhcnlSZWdpc3RlcnMuc2l6ZSgpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEFycmF5Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAogUmVnaXN0ZXJJRCogQXJyYXlOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2OWZkNGFkMTU5NTRiNTcwZTBjOTQw
NzA0MTYzZWE2MGI4MTRmOTljLi42NmE2MTU1YWM2OTE2ZmM3MTY2NTBlMzFkZmViN2ExZTc5OGE1
ZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcApAQCAtMzY3NCw3ICszNjc0LDEzIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxv
Y2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBub2RlKTsKICAgICAgICAgICAgIE5FWFRfT1BD
T0RFKG9wX3RvX251bWJlcik7CiAgICAgICAgIH0KLSAgICAgICAgICAgIAorCisgICAgICAgIGNh
c2Ugb3BfdG9fc3RyaW5nOiB7CisgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAgICAgICAgICAg
c2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRk
VG9HcmFwaChUb1N0cmluZywgdmFsdWUpKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3Rv
X3N0cmluZyk7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIG9wX2luOiB7CiAgICAgICAgICAg
ICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLAog
ICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoSW4sIGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDhlZjRkY2YxNTY4YmQ1ZWRhNGI4OTdlNzY4NGE4
Y2JiOTFiZjZlMDguLmZlMDkzNzM1YjBmYTAzOWViNzRjYmQ0NTRhMmI2MDIwMmQ0OThiNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE5
MSw2ICsxOTEsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9w
Y29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3Bfam5lcV9w
dHI6CiAgICAgY2FzZSBvcF90eXBlb2Y6CiAgICAgY2FzZSBvcF90b19udW1iZXI6CisgICAgY2Fz
ZSBvcF90b19zdHJpbmc6CiAgICAgY2FzZSBvcF9zd2l0Y2hfaW1tOgogICAgIGNhc2Ugb3Bfc3dp
dGNoX2NoYXI6CiAgICAgY2FzZSBvcF9pbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRl
eCA0MmE4MmQ0Mzk0NjE2MmY5NWZhNDc0Njc1NjcxMzlkNGFhZjIzODZiLi5kMWJmZGU3OTRiZjBl
MjE1MjQ4ODY3NTdmMjUyNzkxMDkzODkyZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3Bw
CkBAIC0yOTMsNiArMjkzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQog
ICAgICAgICBERUZJTkVfT1Aob3BfdGhyb3cpCiAgICAgICAgIERFRklORV9PUChvcF90aHJvd19z
dGF0aWNfZXJyb3IpCiAgICAgICAgIERFRklORV9PUChvcF90b19udW1iZXIpCisgICAgICAgIERF
RklORV9PUChvcF90b19zdHJpbmcpCiAgICAgICAgIERFRklORV9PUChvcF90b19wcmltaXRpdmUp
CiAKICAgICAgICAgREVGSU5FX09QKG9wX3Jlc29sdmVfc2NvcGUpCkBAIC00MjIsNiArNDIzLDcg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgREVGSU5FX1NM
T1dDQVNFX09QKG9wX3N0cmljdGVxKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bfc3Vi
KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfdG9fbnVtYmVyKQorICAgICAgICBERUZJ
TkVfU0xPV0NBU0VfT1Aob3BfdG9fc3RyaW5nKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Ao
b3BfdG9fcHJpbWl0aXZlKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaGFzX2luZGV4
ZWRfcHJvcGVydHkpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9oYXNfc3RydWN0dXJl
X3Byb3BlcnR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggZWU0ODU1ZGMyZTc4YjU1YWNj
NDU5OWViZGI5OWEwZDhlMDhiZTdjYy4uYTA4ZGJlMmYzYTlhZGY0MjE1OGJjMDQxNjQxYWQwZmZm
MDI2YjJjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC01NTIsNiArNTUyLDcgQEAKICAg
ICAgICAgdm9pZCBlbWl0X29wX3Rocm93KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1p
dF9vcF90aHJvd19zdGF0aWNfZXJyb3IoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3BfdG9fc3Ry
aW5nKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF90b19wcmltaXRpdmUoSW5z
dHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3VuZXhwZWN0ZWRfbG9hZChJbnN0cnVj
dGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfdW5zaWduZWQoSW5zdHJ1Y3Rpb24qKTsKQEAg
LTYxNCw2ICs2MTUsNyBAQAogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3N0cmljdGVxKEluc3Ry
dWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lk
IGVtaXRTbG93X29wX3N1YihJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24q
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgZW1pdFNs
b3dfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVy
YXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3RvX3ByaW1pdGl2ZShJbnN0cnVjdGlv
biosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0
U2xvd19vcF91bnNpZ25lZChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF91cnNoaWZ0KEluc3RydWN0aW9uKiwg
VmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggZDNkNTgwZTllMjYwMDg1M2I2NjQ5ZTI4NTkxOGY4NTM4
YmU2OTQ0Yy4uZGQ1YmJmNThiNjVkZTJmNmQ5YzliMzgxN2QyMjIwMDdhYTU1YWFmZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC00ODgsNiArNDg4LDE3IEBA
IHZvaWQgSklUOjplbWl0X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX3RvX3N0cmluZyhJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQoreworICAgIGludCBzcmNWUmVnID0gY3VycmVudEluc3RydWN0
aW9uWzJdLnUub3BlcmFuZDsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHNyY1ZSZWcsIHJl
Z1QwKTsKKworICAgIGFkZFNsb3dDYXNlKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDApKTsKKyAg
ICBhZGRTbG93Q2FzZShicmFuY2g4KE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5
cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0cmluZ1R5cGUpKSk7CisKKyAgICBl
bWl0UHV0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwor
fQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXNoX25hbWVfc2NvcGUoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKQEAgLTg3Nyw2ICs4ODgsMTUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX251
bWJlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAg
ICBzbG93UGF0aENhbGwuY2FsbCgpOwogfQogCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fc3Ry
aW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5
Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworICAgIGxpbmtT
bG93Q2FzZShpdGVyKTsKKworICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywg
Y3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfdG9fc3RyaW5nKTsKKyAgICBzbG93UGF0aENh
bGwuY2FsbCgpOworfQorCiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkKIAogdm9pZCBKSVQ6OmVt
aXRfb3BfdG91Y2hfZW50cnkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA2ODM1ZWVi
ZjkzNWMwMzU4YzUzMmJhODljMDQwYTMwMTY4MzBlYTA3Li41YTA4OTVhZDNmMzg3ZWQ1ZjYzOGNm
MTg4MGEwOGFmNTczZjk4OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzMzJfNjQuY3BwCkBAIC03ODIsNiArNzgyLDI5IEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlCiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfdG9f
c3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgaW50IGRzdCA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IHNyYyA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisKKyAgICBlbWl0TG9hZChzcmMsIHJlZ1QxLCByZWdU
MCk7CisKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgoTm90RXF1
YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVk
SW1tMzIoU3RyaW5nVHlwZSkpKTsKKworICAgIGlmIChzcmMgIT0gZHN0KQorICAgICAgICBlbWl0
U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOworfQorCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9f
c3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsKKworICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhp
cywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfdG9fc3RyaW5nKTsKKyAgICBzbG93UGF0
aENhbGwuY2FsbCgpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXNoX25hbWVfc2NvcGUoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggY2E5MWU4ZDY3MmJh
OWQ2YmU0NTA4OTMyN2FmZTIyYTE1ODcyNGUyYy4uZDgzMjRlN2I4YWY2YWViNzdmZDBiYTJiMTc5
MTE0NTljYjVkZWQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTEwMDAsNiArMTAwMCwyMyBAQCBf
bGxpbnRfb3BfdG9fbnVtYmVyOgogICAgIGRpc3BhdGNoKDMpCiAKIAorX2xsaW50X29wX3RvX3N0
cmluZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQ10sIHQwCisgICAgbG9h
ZGkgNFtQQ10sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIsIHQzKQorICAg
IGJpbmVxIHQyLCBDZWxsVGFnLCAub3BUb1N0cmluZ1Nsb3cKKyAgICBiYm5lcSBKU0NlbGw6Om1f
dHlwZVt0M10sIFN0cmluZ1R5cGUsIC5vcFRvU3RyaW5nU2xvdworLm9wVG9TdHJpbmdJc1N0cmlu
ZzoKKyAgICBzdG9yZWkgdDIsIFRhZ09mZnNldFtjZnIsIHQxLCA4XQorICAgIHN0b3JlaSB0Mywg
UGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcFRvU3RyaW5n
U2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19zdHJpbmcpCisgICAgZGlzcGF0
Y2goMykKKworCiBfbGxpbnRfb3BfbmVnYXRlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBs
b2FkaSA4W1BDXSwgdDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggZGU1NzA2MmY2ZDEwNGYyYzc1NzJiNGNhZjYy
NDRlODdkNTBmNTBiYS4uYjQ2MDcxYjZkZjFiNTBjZDM1MjhiY2RiMWM5ZjBiN2NkNjQ5MTcwYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXI2NC5hc20KQEAgLTg2MCw2ICs4NjAsMjIgQEAgX2xsaW50X29wX3RvX251bWJlcjoKICAg
ICBkaXNwYXRjaCgzKQogCiAKK19sbGludF9vcF90b19zdHJpbmc6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MSkKKyAgICBsb2FkaXNGcm9tSW5z
dHJ1Y3Rpb24oMSwgdDIpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAg
YnRxbnogdDAsIHRhZ01hc2ssIC5vcFRvU3RyaW5nU2xvdworICAgIGJibmVxIEpTQ2VsbDo6bV90
eXBlW3QwXSwgU3RyaW5nVHlwZSwgLm9wVG9TdHJpbmdTbG93Cisub3BUb1N0cmluZ0lzU3RyaW5n
OgorICAgIHN0b3JlcSB0MCwgW2NmciwgdDIsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wVG9T
dHJpbmdTbG93OgorICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX3N0cmluZykKKyAgICBk
aXNwYXRjaCgzKQorCisKIF9sbGludF9vcF9uZWdhdGU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQog
ICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9BU1RCdWlsZGVyLmgKaW5kZXggYzQ4ZTQxYzU4NjVkZmQ1MDA3NGY0OWRiYTEzZGM3NDYy
OTY2M2VkMS4uMDgxMzBhNzk2NDc5ZTc4NTIwYjg3YzcxZjNlZTFiNzY0YWVmNzhhZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTEwMiw2ICsxMDIsMTAg
QEAgY2xhc3MgQVNUQnVpbGRlciB7CiAgICAgdHlwZWRlZiBQcm9wZXJ0eUxpc3ROb2RlKiBQcm9w
ZXJ0eUxpc3Q7CiAgICAgdHlwZWRlZiBFbGVtZW50Tm9kZSogRWxlbWVudExpc3Q7CiAgICAgdHlw
ZWRlZiBBcmd1bWVudExpc3ROb2RlKiBBcmd1bWVudHNMaXN0OworICAgIHR5cGVkZWYgVGVtcGxh
dGVFeHByZXNzaW9uTGlzdE5vZGUqIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3Q7CisgICAgdHlwZWRl
ZiBUZW1wbGF0ZUVsZW1lbnROb2RlKiBUZW1wbGF0ZUVsZW1lbnQ7CisgICAgdHlwZWRlZiBUZW1w
bGF0ZUVsZW1lbnRMaXN0Tm9kZSogVGVtcGxhdGVFbGVtZW50TGlzdDsKKyAgICB0eXBlZGVmIFRl
bXBsYXRlTGl0ZXJhbE5vZGUqIFRlbXBsYXRlTGl0ZXJhbDsKICAgICB0eXBlZGVmIFBhcmFtZXRl
ck5vZGUqIEZvcm1hbFBhcmFtZXRlckxpc3Q7CiAgICAgdHlwZWRlZiBGdW5jdGlvbkJvZHlOb2Rl
KiBGdW5jdGlvbkJvZHk7CiAjaWYgRU5BQkxFKEVTNl9DTEFTU19TWU5UQVgpCkBAIC0yNDYsNiAr
MjUwLDQxIEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9
CiAKKyAgICBUZW1wbGF0ZUVsZW1lbnROb2RlKiBjcmVhdGVUZW1wbGF0ZUVsZW1lbnQoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgY29va2VkLCBjb25z
dCBJZGVudGlmaWVyJiByYXcpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFy
ZW5hKSBUZW1wbGF0ZUVsZW1lbnROb2RlKGxvY2F0aW9uLCBjb29rZWQsIHJhdyk7CisgICAgfQor
CisgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqIGNyZWF0ZVRlbXBsYXRlRWxlbWVudExpc3Qo
VGVtcGxhdGVFbGVtZW50Tm9kZSogdGVtcGxhdGVFbGVtZW50KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUodGVtcGxhdGVF
bGVtZW50KTsKKyAgICB9CisKKyAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogY3JlYXRlVGVt
cGxhdGVFbGVtZW50TGlzdChUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogdGVtcGxhdGVFbGVtZW50
TGlzdCwgVGVtcGxhdGVFbGVtZW50Tm9kZSogdGVtcGxhdGVFbGVtZW50KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUodGVt
cGxhdGVFbGVtZW50TGlzdCwgdGVtcGxhdGVFbGVtZW50KTsKKyAgICB9CisKKyAgICBUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0Tm9kZSogY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChFeHByZXNz
aW9uTm9kZSogZXhwcmVzc2lvbikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2Vy
QXJlbmEpIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKGV4cHJlc3Npb24pOworICAgIH0KKwor
ICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0KFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiB0ZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9k
ZSwgRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Npb24pCisgICAgeworICAgICAgICByZXR1cm4gbmV3
IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSh0ZW1wbGF0ZUV4cHJl
c3Npb25MaXN0Tm9kZSwgZXhwcmVzc2lvbik7CisgICAgfQorCisgICAgVGVtcGxhdGVMaXRlcmFs
Tm9kZSogY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRp
b24sIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRMaXN0KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVMaXRlcmFsTm9kZShs
b2NhdGlvbiwgdGVtcGxhdGVFbGVtZW50TGlzdCk7CisgICAgfQorCisgICAgVGVtcGxhdGVMaXRl
cmFsTm9kZSogY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9j
YXRpb24sIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRMaXN0LCBUZW1w
bGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogdGVtcGxhdGVFeHByZXNzaW9uTGlzdCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRlTGl0ZXJhbE5vZGUobG9j
YXRpb24sIHRlbXBsYXRlRWxlbWVudExpc3QsIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpOworICAg
IH0KKwogICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVSZWdFeHAoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmll
ciYgZmxhZ3MsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCkKICAgICB7CiAgICAgICAgIGlm
IChZYXJyOjpjaGVja1N5bnRheChwYXR0ZXJuLnN0cmluZygpKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9MZXhlci5jcHAKaW5kZXggN2RlMTQyMjBiYmRhNzI3MzhiNTczYTRiOTc4OGNlMGIz
MmNjN2NlMy4uODc4YjNiN2RmOTAwYzY5NDcyM2YxMDg2ZDAzOGEyMjAxYmIwZjBmNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTcxLDYgKzcxLDcgQEAgZW51bSBD
aGFyYWN0ZXJUeXBlIHsKICAgICBDaGFyYWN0ZXJRdWVzdGlvbiwKICAgICBDaGFyYWN0ZXJUaWxk
ZSwKICAgICBDaGFyYWN0ZXJRdW90ZSwKKyAgICBDaGFyYWN0ZXJCYWNrUXVvdGUsCiAgICAgQ2hh
cmFjdGVyRG90LAogICAgIENoYXJhY3RlclNsYXNoLAogICAgIENoYXJhY3RlckJhY2tTbGFzaCwK
QEAgLTE5Miw3ICsxOTMsNyBAQCBlbnVtIENoYXJhY3RlclR5cGUgewogLyogIDkzIC0gXSAgICAg
ICAgICAgICAgICAgICovIENoYXJhY3RlckNsb3NlQnJhY2tldCwKIC8qICA5NCAtIF4gICAgICAg
ICAgICAgICAgICAqLyBDaGFyYWN0ZXJYb3IsCiAvKiAgOTUgLSBfICAgICAgICAgICAgICAgICAg
Ki8gQ2hhcmFjdGVySWRlbnRpZmllclN0YXJ0LAotLyogIDk2IC0gYCAgICAgICAgICAgICAgICAg
ICovIENoYXJhY3RlckludmFsaWQsCisvKiAgOTYgLSBgICAgICAgICAgICAgICAgICAgKi8gQ2hh
cmFjdGVyQmFja1F1b3RlLAogLyogIDk3IC0gYSAgICAgICAgICAgICAgICAgICovIENoYXJhY3Rl
cklkZW50aWZpZXJTdGFydCwKIC8qICA5OCAtIGIgICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0
ZXJJZGVudGlmaWVyU3RhcnQsCiAvKiAgOTkgLSBjICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFj
dGVySWRlbnRpZmllclN0YXJ0LApAQCAtMTIxNSw2ICsxMjE2LDIwNSBAQCBzdGF0aWMgQUxXQVlT
X0lOTElORSBib29sIGNoYXJhY3RlclJlcXVpcmVzUGFyc2VTdHJpbmdTbG93Q2FzZShVQ2hhciBj
aGFyYWN0ZXIpCiAgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseTsKIH0KIAorLy8g
V2hpbGUgSmF2YVNjcmlwdENvcmUncyBsZXhlciBhY2NlcHRzIDxMRj48Q1I+IChub3QgPENSPjxM
Rj4pIHNlcXVlbmNlCisvLyBhcyBvbmUgbGluZSB0ZXJtaW5hdG9yIGFuZCBpbmNyZW1lbnQgb25l
IGxpbmUgbnVtYmVyLAorLy8gVGVtcGxhdGVMaXRlcmFsIGNvbnNpZGVycyBpdCBhcyB0d28gbGlu
ZSB0ZXJtaW5hdG9ycyA8TEY+IGFuZCA8Q1I+LgorLy8KKy8vIFRlbXBsYXRlTGl0ZXJhbCBub3Jt
YWxpemVzIGxpbmUgdGVybWluYXRvcnMgYXMgZm9sbG93cy4KKy8vCisvLyA8TEY+ID0+IDxMRj4K
Ky8vIDxDUj4gPT4gPExGPgorLy8gPENSPjxMRj4gPT4gPExGPgorLy8gPFx1MjAyOD4gPT4gPFx1
MjAyOD4KKy8vIDxcdTIwMjk+ID0+IDxcdTIwMjk+CisvLworLy8gU28sIDxMRj48Q1I+IHNob3Vs
ZCBiZSBub3JtYWxpemVkIHRvIDxMRj48TEY+LgorLy8gSG93ZXZlciwgbGluZSBudW1iZXIgc2F2
ZWQgaW4gdGhlIGxleGVyIHNob3VsZCBiZSBpbmNyZW1lbnQgb25seSBvbmNlIGZvciA8TEY+PENS
Pi4KKy8vCisvLyBUbyBhY2hpZXZlIHRoaXMsIExpbmVOdW1iZXJBZGRlciBob2xkcyB0aGUgY3Vy
cmVudCBzdGF0dXMgb2YgbGluZSB0ZXJtaW5hdG9yIHNlcXVlbmNlLgorLy8gV2hlbiBUZW1wbGF0
ZUxpdGVyYWwgbGV4ZXIgZW5jb3VudGVycyBhIGxpbmUgdGVybWluYXRvciwgaXQgbm90aWZ5IHRv
IExpbmVOdW1iZXJBZGRlci4KKy8vIExpbmVOdW1iZXJBZGRlciBtYWludGFpbnMgdGhlIHN0YXR1
cyBhbmQgaW5jcmVtZW50cyBsaW5lIG51bWJlciB3aGVuIGl0J3MgbmVjZXNzYXJ5LgorLy8gRm9y
IGV4YW1wbGUsIExpbmVOdW1iZXJBZGRlciBpbmNyZW1lbnRzIGxpbmUgbnVtYmVyIG9ubHkgb25j
ZSBmb3IgPExGPjxDUj4gYW5kIDxDUj48TEY+LgordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNz
IExpbmVOdW1iZXJBZGRlciB7CitwdWJsaWM6CisgICAgTGluZU51bWJlckFkZGVyKGludCYgbGlu
ZU51bWJlcikKKyAgICAgICAgOiBtX2xpbmVOdW1iZXIobGluZU51bWJlcikKKyAgICAgICAgLCBt
X3ByZXZpb3VzKDApCisgICAgeworICAgIH0KKworICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAg
ICAgICAgbV9wcmV2aW91cyA9IDA7CisgICAgfQorCisgICAgdm9pZCBhZGQoVCBjaGFyYWN0ZXIp
CisgICAgeworICAgICAgICBBU1NFUlQoTGV4ZXI8VD46OmlzTGluZVRlcm1pbmF0b3IoY2hhcmFj
dGVyKSk7CisgICAgICAgIGlmICgoY2hhcmFjdGVyICsgbV9wcmV2aW91cykgPT0gJ1xuJyArICdc
cicpCisgICAgICAgICAgICBtX3ByZXZpb3VzID0gMDsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICArK21fbGluZU51bWJlcjsKKyAgICAgICAgICAgIG1fcHJldmlvdXMgPSBjaGFyYWN0ZXI7
CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgaW50JiBtX2xpbmVOdW1iZXI7Cisg
ICAgVCBtX3ByZXZpb3VzOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit0ZW1wbGF0ZSA8
Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IHR5cGVuYW1lIExleGVyPFQ+OjpTdHJpbmdQYXJzZVJl
c3VsdCBMZXhlcjxUPjo6cGFyc2VUZW1wbGF0ZUxpdGVyYWwoSlNUb2tlbkRhdGEqIHRva2VuRGF0
YSkKK3sKKyAgICBjb25zdCBUKiBzdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsKKyAg
ICBjb25zdCBUKiByYXdTdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsKKworICAgIExp
bmVOdW1iZXJBZGRlcjxUPiBsaW5lTnVtYmVyQWRkZXIobV9saW5lTnVtYmVyKTsKKworICAgIHdo
aWxlIChtX2N1cnJlbnQgIT0gJ2AnKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShtX2N1cnJlbnQg
PT0gJ1xcJykpIHsKKyAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5jbGVhcigpOworICAgICAg
ICAgICAgaWYgKHN0cmluZ1N0YXJ0ICE9IGN1cnJlbnRTb3VyY2VQdHIoKSAmJiBzaG91bGRCdWls
ZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgYXBwZW5kMTYoc3RyaW5nU3RhcnQsIGN1cnJlbnRT
b3VyY2VQdHIoKSAtIHN0cmluZ1N0YXJ0KTsKKyAgICAgICAgICAgIHNoaWZ0KCk7CisKKyAgICAg
ICAgICAgIExDaGFyIGVzY2FwZSA9IHNpbmdsZUVzY2FwZShtX2N1cnJlbnQpOworCisgICAgICAg
ICAgICAvLyBNb3N0IGNvbW1vbiBlc2NhcGUgc2VxdWVuY2VzIGZpcnN0CisgICAgICAgICAgICBp
ZiAoZXNjYXBlKSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAg
ICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoZXNjYXBlKTsKKyAgICAgICAgICAgICAgICBzaGlm
dCgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChVTkxJS0VMWShpc0xpbmVUZXJtaW5hdG9yKG1f
Y3VycmVudCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXHInKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9jdXJyZW50KTsKKyAgICAg
ICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVu
dCA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyQWRkZXIuYWRk
KG1fY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9jdXJy
ZW50ID09ICd4JykgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAg
aWYgKCFpc0FTQ0lJSGV4RGlnaXQobV9jdXJyZW50KSB8fCAhaXNBU0NJSUhleERpZ2l0KHBlZWso
MSkpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRl
cmFsKCJcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVlbmNl
Iik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVCBwcmV2ID0gbV9jdXJyZW50OworICAg
ICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3Ry
aW5ncykKKyAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoY29udmVydEhleChwcmV2LCBtX2N1
cnJlbnQpKTsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgfSBlbHNlIGlm
IChtX2N1cnJlbnQgPT0gJ3UnKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgICAgICBVbmljb2RlSGV4VmFsdWUgY2hhcmFjdGVyID0gcGFyc2VGb3VyRGlnaXRVbmljb2Rl
SGV4KCk7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3Rlci5pc1ZhbGlkKCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlY29yZDE2KGNoYXJhY3Rlci52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJh
bCgiXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgVW5pY29kZSBjaGFyYWN0ZXIgc2VxdWVu
Y2UiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoYXJhY3Rlci52YWx1ZVR5cGUoKSA9
PSBVbmljb2RlSGV4VmFsdWU6OkluY29tcGxldGVIZXggPyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBT
dHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs
c2UgaWYgKGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhl
IG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1wwJywgYW5kIHRo
aXMgbXVzdCBub3QgYmUgZm9sbG93ZWQgYnkgYSBkZWNpbWFsIGRpZ2l0LgorICAgICAgICAgICAg
ICAgIGludCBjaGFyYWN0ZXIxID0gbV9jdXJyZW50OworICAgICAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3RlcjEgIT0gJzAnIHx8IGlzQVNDSUlEaWdpdCht
X2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVND
SUlMaXRlcmFsKCJUaGUgb25seSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBp
cyAnXFwwJyIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nQ2Fubm90QmVQYXJz
ZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0
cmluZ3MpCisgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KDApOworICAgICAgICAgICAgfSBl
bHNlIGlmICghYXRFbmQoKSkgeworICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmlu
Z3MpCisgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KG1fY3VycmVudCk7CisgICAgICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9s
ZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlVudGVybWluYXRlZCBzdHJpbmcgY29uc3Rh
bnQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nVW50ZXJtaW5hdGVkOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBzdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fY3VycmVu
dCA9PSAnJCcgJiYgcGVlaygxKSA9PSAneycpCisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAvLyBGYXN0IGNoZWNrIGZvciBjaGFyYWN0ZXJzIHRoYXQgcmVxdWlyZSBzcGVjaWFsIGhhbmRs
aW5nLgorICAgICAgICAvLyBDYXRjaGVzIDAsIFxuLCBcciwgMHgyMDI4LCBhbmQgMHgyMDI5IGFz
IGVmZmljaWVudGx5CisgICAgICAgIC8vIGFzIHBvc3NpYmxlLCBhbmQgbGV0cyB0aHJvdWdoIGFs
bCBjb21tb24gQVNDSUkgY2hhcmFjdGVycy4KKyAgICAgICAgaWYgKFVOTElLRUxZKCgoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KG1fY3VycmVudCkgLSAweEUpICYgMHgyMDAwKSkpIHsKKyAgICAgICAg
ICAgIC8vIEVuZCBvZiBpbnB1dCBpcyBub3QgYWxsb3dlZC4KKyAgICAgICAgICAgIC8vIFVubGlr
ZSBTdHJpbmcsIGxpbmUgdGVybWluYXRvciBpcyBhbGxvd2VkLgorICAgICAgICAgICAgaWYgKGF0
RW5kKCkpIHsKKyAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJh
bCgiVW5leHBlY3RlZCBFT0YiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYXRFbmQoKSA/IFN0
cmluZ1VudGVybWluYXRlZCA6IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZiAoaXNMaW5lVGVybWluYXRvcihtX2N1cnJlbnQpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXHInKSB7CisgICAgICAgICAgICAgICAgICAgIC8v
IE5vcm1hbGl6ZSA8Q1I+LCA8Q1I+PExGPiB0byA8TEY+LgorICAgICAgICAgICAgICAgICAgICBp
ZiAoc3RyaW5nU3RhcnQgIT0gY3VycmVudFNvdXJjZVB0cigpICYmIHNob3VsZEJ1aWxkU3RyaW5n
cykKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZDE2KHN0cmluZ1N0YXJ0LCBjdXJyZW50
U291cmNlUHRyKCkgLSBzdHJpbmdTdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91
bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNignXG4nKTsK
KyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAg
ICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9jdXJy
ZW50ID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5h
ZGQobV9jdXJyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nU3RhcnQgPSBjdXJyZW50
U291cmNlUHRyKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEFueXRoaW5nIGVsc2UgaXMganVzdCBhIG5vcm1h
bCBjaGFyYWN0ZXIKKyAgICAgICAgfQorCisgICAgICAgIGxpbmVOdW1iZXJBZGRlci5jbGVhcigp
OworICAgICAgICBzaGlmdCgpOworICAgIH0KKworICAgIGJvb2wgaXNUYWlsID0gbV9jdXJyZW50
ID09ICdgJzsKKworICAgIGlmIChjdXJyZW50U291cmNlUHRyKCkgIT0gc3RyaW5nU3RhcnQgJiYg
c2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICBhcHBlbmQxNihzdHJpbmdTdGFydCwgY3VycmVu
dFNvdXJjZVB0cigpIC0gc3RyaW5nU3RhcnQpOworCisgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5n
cykgeworICAgICAgICB0b2tlbkRhdGEtPmNvb2tlZCA9IG1ha2VJZGVudGlmaWVyKG1fYnVmZmVy
MTYuZGF0YSgpLCBtX2J1ZmZlcjE2LnNpemUoKSk7CisgICAgICAgIC8vIFRPRE86IHJhdyBpcyBu
b3QgaW1wbGVtZW50ZWQgY29ycmVjdGx5IHlldC4KKyAgICAgICAgLy8gTGluZSB0ZXJtaW5hdG9y
IG5vcm1hbGl6YXRpb24gaXMgbm90IGRvbmUgZm9yIHJhdy4KKyAgICAgICAgLy8gV2hlbiBpbXBs
ZW1lbnRpbmcgVGFnZ2VkVGVtcGxhdGUgd2hpY2ggdXNlcyByYXcgdmFsdWUsIGl0IHNob3VsZCBi
ZSBmaXhlZC4KKyAgICAgICAgdG9rZW5EYXRhLT5yYXcgPSBtYWtlSWRlbnRpZmllcihyYXdTdHJp
bmdTdGFydCwgY3VycmVudFNvdXJjZVB0cigpIC0gcmF3U3RyaW5nU3RhcnQpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHRva2VuRGF0YS0+Y29va2VkID0gbnVsbHB0cjsKKyAgICAgICAgdG9rZW5E
YXRhLT5yYXcgPSBudWxscHRyOworICAgIH0KKyAgICB0b2tlbkRhdGEtPmlzVGFpbCA9IGlzVGFp
bDsKKworICAgIG1fYnVmZmVyMTYucmVzaXplKDApOworCisgICAgaWYgKGlzVGFpbCkgeworICAg
ICAgICAvLyBTa2lwIGAKKyAgICAgICAgc2hpZnQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAv
LyBTa2lwICQgYW5kIHsKKyAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgc2hpZnQoKTsKKyAgICB9
CisKKyAgICByZXR1cm4gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5OworfQorCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KIEFMV0FZU19JTkxJTkUgdm9pZCBMZXhlcjxUPjo6cGFyc2VIZXgoZG91Ymxl
JiByZXR1cm5WYWx1ZSkKIHsKQEAgLTE4MjYsMjMgKzIwMjYsMzcgQEAgc3RhdGljIEFMV0FZU19J
TkxJTkUgYm9vbCBjaGFyYWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hh
cmFjdGVyKQogICAgICAgICB9CiAgICAgICAgIG1fYnVmZmVyOC5yZXNpemUoMCk7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQ2hhcmFjdGVyUXVvdGU6Ci0gICAgICAgIGlmIChsZXhlckZsYWdz
ICYgTGV4ZXJGbGFnc0RvbnRCdWlsZFN0cmluZ3MpIHsKLSAgICAgICAgICAgIFN0cmluZ1BhcnNl
UmVzdWx0IHJlc3VsdCA9IHBhcnNlU3RyaW5nPGZhbHNlPih0b2tlbkRhdGEsIHN0cmljdE1vZGUp
OwotICAgICAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBTdHJpbmdQYXJzZWRTdWNjZXNz
ZnVsbHkpKSB7Ci0gICAgICAgICAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJt
aW5hdGVkID8gVU5URVJNSU5BVEVEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LIDogSU5WQUxJRF9T
VFJJTkdfTElURVJBTF9FUlJPUlRPSzsKLSAgICAgICAgICAgICAgICBnb3RvIHJldHVybkVycm9y
OwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU3RyaW5nUGFy
c2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VTdHJpbmc8dHJ1ZT4odG9rZW5EYXRhLCBzdHJpY3RNb2Rl
KTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vz
c2Z1bGx5KSkgewotICAgICAgICAgICAgICAgIHRva2VuID0gcmVzdWx0ID09IFN0cmluZ1VudGVy
bWluYXRlZCA/IFVOVEVSTUlOQVRFRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSyA6IElOVkFMSURf
U1RSSU5HX0xJVEVSQUxfRVJST1JUT0s7Ci0gICAgICAgICAgICAgICAgZ290byByZXR1cm5FcnJv
cjsKLSAgICAgICAgICAgIH0KKyAgICBjYXNlIENoYXJhY3RlclF1b3RlOiB7CisgICAgICAgIFN0
cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAgICAgICBp
ZiAobGV4ZXJGbGFncyAmIExleGVyRmxhZ3NEb250QnVpbGRTdHJpbmdzKQorICAgICAgICAgICAg
cmVzdWx0ID0gcGFyc2VTdHJpbmc8ZmFsc2U+KHRva2VuRGF0YSwgc3RyaWN0TW9kZSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlU3RyaW5nPHRydWU+KHRva2VuRGF0
YSwgc3RyaWN0TW9kZSk7CisKKyAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBTdHJpbmdQ
YXJzZWRTdWNjZXNzZnVsbHkpKSB7CisgICAgICAgICAgICB0b2tlbiA9IHJlc3VsdCA9PSBTdHJp
bmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfU1RSSU5HX0xJVEVSQUxfRVJST1JUT0sgOiBJ
TlZBTElEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LOworICAgICAgICAgICAgZ290byByZXR1cm5F
cnJvcjsKICAgICAgICAgfQogICAgICAgICBzaGlmdCgpOwogICAgICAgICB0b2tlbiA9IFNUUklO
RzsKICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICBjYXNlIENoYXJhY3RlckJhY2tRdW90
ZTogeworICAgICAgICAvLyBTa2lwIGJhY2txdW90ZS4KKyAgICAgICAgc2hpZnQoKTsKKyAgICAg
ICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gU3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAg
ICAgIGlmIChsZXhlckZsYWdzICYgTGV4ZXJGbGFnc0RvbnRCdWlsZFN0cmluZ3MpCisgICAgICAg
ICAgICByZXN1bHQgPSBwYXJzZVRlbXBsYXRlTGl0ZXJhbDxmYWxzZT4odG9rZW5EYXRhKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWw8dHJ1
ZT4odG9rZW5EYXRhKTsKKworICAgICAgICBpZiAoVU5MSUtFTFkocmVzdWx0ICE9IFN0cmluZ1Bh
cnNlZFN1Y2Nlc3NmdWxseSkpIHsKKyAgICAgICAgICAgIHRva2VuID0gcmVzdWx0ID09IFN0cmlu
Z1VudGVybWluYXRlZCA/IFVOVEVSTUlOQVRFRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LIDog
SU5WQUxJRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LOworICAgICAgICAgICAgZ290byByZXR1
cm5FcnJvcjsKKyAgICAgICAgfQorICAgICAgICB0b2tlbiA9IFRFTVBMQVRFOworICAgICAgICBi
cmVhazsKKyAgICAgICAgfQogICAgIGNhc2UgQ2hhcmFjdGVySWRlbnRpZmllclN0YXJ0OgogICAg
ICAgICBBU1NFUlQoaXNJZGVudFN0YXJ0KG1fY3VycmVudCkpOwogICAgICAgICBGQUxMVEhST1VH
SDsKQEAgLTIwMzYsNiArMjI1MCwzOCBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGNoYXJh
Y3RlclJlcXVpcmVzUGFyc2VTdHJpbmdTbG93Q2FzZShVQ2hhciBjaGFyYWN0ZXIpCiB9CiAKIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgorSlNUb2tlblR5cGUgTGV4ZXI8VD46OnNjYW5UcmFpbGluZ1Rl
bXBsYXRlRWxlbWVudChKU1Rva2VuKiB0b2tlblJlY29yZCkKK3sKKyAgICBKU1Rva2VuRGF0YSog
dG9rZW5EYXRhID0gJnRva2VuUmVjb3JkLT5tX2RhdGE7CisgICAgSlNUb2tlbkxvY2F0aW9uKiB0
b2tlbkxvY2F0aW9uID0gJnRva2VuUmVjb3JkLT5tX2xvY2F0aW9uOworICAgIEFTU0VSVCghbV9l
cnJvcik7CisgICAgQVNTRVJUKG1fYnVmZmVyMTYuaXNFbXB0eSgpKTsKKworICAgIC8vIExlYWRp
bmcgY2xvc2luZyBicmFjZSB9IGlzIGFscmVhZHkgc2hpZnRlZCBpbiB0aGUgcHJldmlvdXMgdG9r
ZW4gc2Nhbi4KKyAgICAvLyBTbyBpbiB0aGlzIHJlLXNjYW4gcGhhc2UsIHNoaWZ0KCkgaXMgbm90
IG5lZWRlZCBoZXJlLgorICAgIFN0cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IHBhcnNlVGVtcGxh
dGVMaXRlcmFsPHRydWU+KHRva2VuRGF0YSk7CisgICAgSlNUb2tlblR5cGUgdG9rZW4gPSBFUlJP
UlRPSzsKKyAgICBpZiAoVU5MSUtFTFkocmVzdWx0ICE9IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxs
eSkpIHsKKyAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5hdGVkID8gVU5U
RVJNSU5BVEVEX1RFTVBMQVRFX0xJVEVSQUxfRVJST1JUT0sgOiBJTlZBTElEX1RFTVBMQVRFX0xJ
VEVSQUxfRVJST1JUT0s7CisgICAgICAgIG1fZXJyb3IgPSB0cnVlOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHRva2VuID0gVEVNUExBVEU7CisgICAgICAgIG1fbGFzdFRva2VuID0gdG9rZW47Cisg
ICAgfQorCisgICAgLy8gU2luY2UgVGVtcGxhdGVFbGVtZW50IGFsd2F5cyBlbmRzIHdpdGggYCBv
ciB9LCBtX2F0TGluZVN0YXJ0IGFsd2F5cyBiZWNvbWVzIGZhbHNlLgorICAgIG1fYXRMaW5lU3Rh
cnQgPSBmYWxzZTsKKworICAgIC8vIEFkanVzdCBjdXJyZW50IHRva2VuTG9jYXRpb24gZGF0YSBm
b3IgVGVtcGxhdGVFbGVtZW50LgorICAgIHRva2VuTG9jYXRpb24tPmxpbmUgPSBtX2xpbmVOdW1i
ZXI7CisgICAgdG9rZW5Mb2NhdGlvbi0+ZW5kT2Zmc2V0ID0gY3VycmVudE9mZnNldCgpOworICAg
IHRva2VuTG9jYXRpb24tPmxpbmVTdGFydE9mZnNldCA9IGN1cnJlbnRMaW5lU3RhcnRPZmZzZXQo
KTsKKyAgICBBU1NFUlQodG9rZW5Mb2NhdGlvbi0+ZW5kT2Zmc2V0ID49IHRva2VuTG9jYXRpb24t
PmxpbmVTdGFydE9mZnNldCk7CisgICAgdG9rZW5SZWNvcmQtPm1fZW5kUG9zaXRpb24gPSBjdXJy
ZW50UG9zaXRpb24oKTsKKyAgICByZXR1cm4gdG9rZW47Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogdm9pZCBMZXhlcjxUPjo6Y2xlYXIoKQogewogICAgIG1fYXJlbmEgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCmluZGV4IDJkZjUyMTM5OTU3ODIwMDc4NWExNjZlMjJh
NzMyNzVlMGVhNjMwNGQuLjg1NTYwMDY3YTdiOGQxZGE0ZmYwYzA3Y2ZlNGQzOTI0ZTQ5MzNmM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKQEAgLTk5LDYgKzk5LDcgQEAgY2xh
c3MgTGV4ZXIgewogICAgIGludCBsYXN0TGluZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fbGFz
dExpbmVOdW1iZXI7IH0KICAgICBib29sIHByZXZUZXJtaW5hdG9yKCkgY29uc3QgeyByZXR1cm4g
bV90ZXJtaW5hdG9yOyB9CiAgICAgYm9vbCBzY2FuUmVnRXhwKGNvbnN0IElkZW50aWZpZXIqJiBw
YXR0ZXJuLCBjb25zdCBJZGVudGlmaWVyKiYgZmxhZ3MsIFVDaGFyIHBhdHRlcm5QcmVmaXggPSAw
KTsKKyAgICBKU1Rva2VuVHlwZSBzY2FuVHJhaWxpbmdUZW1wbGF0ZUVsZW1lbnQoSlNUb2tlbiop
OwogICAgIGJvb2wgc2tpcFJlZ0V4cCgpOwogCiAgICAgLy8gRnVuY3Rpb25zIGZvciB1c2UgYWZ0
ZXIgcGFyc2luZy4KQEAgLTIwMiw2ICsyMDMsNyBAQCBjbGFzcyBMZXhlciB7CiAgICAgfTsKICAg
ICB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IEFMV0FZU19JTkxJTkUgU3RyaW5n
UGFyc2VSZXN1bHQgcGFyc2VTdHJpbmcoSlNUb2tlbkRhdGEqLCBib29sIHN0cmljdE1vZGUpOwog
ICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gTkVWRVJfSU5MSU5FIFN0cmlu
Z1BhcnNlUmVzdWx0IHBhcnNlU3RyaW5nU2xvd0Nhc2UoSlNUb2tlbkRhdGEqLCBib29sIHN0cmlj
dE1vZGUpOworICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gQUxXQVlTX0lO
TElORSBTdHJpbmdQYXJzZVJlc3VsdCBwYXJzZVRlbXBsYXRlTGl0ZXJhbChKU1Rva2VuRGF0YSop
OwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwYXJzZUhleChkb3VibGUmIHJldHVyblZhbHVlKTsK
ICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGFyc2VCaW5hcnkoZG91YmxlJiByZXR1cm5WYWx1ZSk7
CiAgICAgQUxXQVlTX0lOTElORSBib29sIHBhcnNlT2N0YWwoZG91YmxlJiByZXR1cm5WYWx1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3Rv
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmlu
ZGV4IDA1N2JjM2Q5MjgwOWY0NmIwNjI3MWFjMDEyYWJlY2Q2Yzg4YTY4NGEuLmFiMWMzOThiNTcz
NGY4NjdhYmUxMDQ2OTBlMTVmMTliNmU4ZDgyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC0xMDAsNiArMTAwLDUzIEBACiAgICAg
ewogICAgIH0KIAorICAgIGlubGluZSBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZTo6VGVtcGxh
dGVFeHByZXNzaW9uTGlzdE5vZGUoRXhwcmVzc2lvbk5vZGUqIG5vZGUpCisgICAgICAgIDogbV9u
ZXh0KG51bGxwdHIpCisgICAgICAgICwgbV9ub2RlKG5vZGUpCisgICAgeworICAgIH0KKworICAg
IGlubGluZSBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZTo6VGVtcGxhdGVFeHByZXNzaW9uTGlz
dE5vZGUoVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHByZXYsIEV4cHJlc3Npb25Ob2RlKiBu
b2RlKQorICAgICAgICA6IG1fbmV4dChudWxscHRyKQorICAgICAgICAsIG1fbm9kZShub2RlKQor
ICAgIHsKKyAgICAgICAgcHJldi0+bV9uZXh0ID0gdGhpczsKKyAgICB9CisKKyAgICBpbmxpbmUg
VGVtcGxhdGVFbGVtZW50Tm9kZTo6VGVtcGxhdGVFbGVtZW50Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBjb29rZWQsIGNvbnN0IElkZW50aWZp
ZXImIHJhdykKKyAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBt
X2Nvb2tlZChjb29rZWQpCisgICAgICAgICwgbV9yYXcocmF3KQorICAgIHsKKyAgICB9CisKKyAg
ICBpbmxpbmUgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGU6OlRlbXBsYXRlRWxlbWVudExpc3ROb2Rl
KFRlbXBsYXRlRWxlbWVudE5vZGUqIG5vZGUpCisgICAgICAgIDogbV9uZXh0KG51bGxwdHIpCisg
ICAgICAgICwgbV9ub2RlKG5vZGUpCisgICAgeworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0
ZUVsZW1lbnRMaXN0Tm9kZTo6VGVtcGxhdGVFbGVtZW50TGlzdE5vZGUoVGVtcGxhdGVFbGVtZW50
TGlzdE5vZGUqIHByZXYsIFRlbXBsYXRlRWxlbWVudE5vZGUqIG5vZGUpCisgICAgICAgIDogbV9u
ZXh0KG51bGxwdHIpCisgICAgICAgICwgbV9ub2RlKG5vZGUpCisgICAgeworICAgICAgICBwcmV2
LT5tX25leHQgPSB0aGlzOworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZUxpdGVyYWxOb2Rl
OjpUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFRl
bXBsYXRlRWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0ZUVsZW1lbnRzKQorICAgICAgICA6IEV4cHJl
c3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1fdGVtcGxhdGVFbGVtZW50cyh0ZW1wbGF0
ZUVsZW1lbnRzKQorICAgICAgICAsIG1fdGVtcGxhdGVFeHByZXNzaW9ucyhudWxscHRyKQorICAg
IHsKKyAgICB9CisKKyAgICBpbmxpbmUgVGVtcGxhdGVMaXRlcmFsTm9kZTo6VGVtcGxhdGVMaXRl
cmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBUZW1wbGF0ZUVsZW1lbnRM
aXN0Tm9kZSogdGVtcGxhdGVFbGVtZW50cywgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRl
bXBsYXRlRXhwcmVzc2lvbnMpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisg
ICAgICAgICwgbV90ZW1wbGF0ZUVsZW1lbnRzKHRlbXBsYXRlRWxlbWVudHMpCisgICAgICAgICwg
bV90ZW1wbGF0ZUV4cHJlc3Npb25zKHRlbXBsYXRlRXhwcmVzc2lvbnMpCisgICAgeworICAgIH0K
KwogICAgIGlubGluZSBSZWdFeHBOb2RlOjpSZWdFeHBOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIHBhdHRlcm4sIGNvbnN0IElkZW50aWZpZXIm
IGZsYWdzKQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1f
cGF0dGVybihwYXR0ZXJuKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDlj
NTE0MTZlMDgzOGQzZmUxODQ5MmRlODY0ZmZhMWM1Y2U4Mzc4ZGYuLjNlZjMwYjgzMzcyNDgwM2Zh
MWI3NjRjMzQwMWY0MDA4ZmU5MDcxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmgKQEAgLTI3NCw3ICsyNzQsNyBAQAogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fdmFs
dWU7CiAgICAgfTsKLSAgICAKKwogICAgIGNsYXNzIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKCkKQEAgLTQyNyw2
ICs0MjcsNTggQEAKICAgICAgICAgdWludDE2X3QgbV9zdWJleHByZXNzaW9uTGluZVN0YXJ0T2Zm
c2V0OwogICAgIH07CiAKKyAgICBjbGFzcyBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSA6IHB1
YmxpYyBQYXJzZXJBcmVuYUZyZWVhYmxlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRlbXBsYXRl
RXhwcmVzc2lvbkxpc3ROb2RlKEV4cHJlc3Npb25Ob2RlKik7CisgICAgICAgIFRlbXBsYXRlRXhw
cmVzc2lvbkxpc3ROb2RlKFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiwgRXhwcmVzc2lvbk5v
ZGUqKTsKKworICAgICAgICBFeHByZXNzaW9uTm9kZSogdmFsdWUoKSB7IHJldHVybiBtX25vZGU7
IH0KKyAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIG5leHQoKSB7IHJldHVybiBt
X25leHQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3RO
b2RlKiBtX25leHQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX25vZGU7CisgICAgfTsKKwor
ICAgIGNsYXNzIFRlbXBsYXRlRWxlbWVudE5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiBjb29rZWQsIGNvbnN0IElkZW50aWZpZXImIHJhdyk7
CisKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgY29va2VkKCkgeyByZXR1cm4gbV9jb29rZWQ7
IH0KKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgcmF3KCkgeyByZXR1cm4gbV9yYXc7IH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBj
b25zdCBJZGVudGlmaWVyJiBtX2Nvb2tlZDsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9y
YXc7CisgICAgfTsKKworICAgIGNsYXNzIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlIDogcHVibGlj
IFBhcnNlckFyZW5hRnJlZWFibGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxhdGVFbGVt
ZW50TGlzdE5vZGUoVGVtcGxhdGVFbGVtZW50Tm9kZSopOworICAgICAgICBUZW1wbGF0ZUVsZW1l
bnRMaXN0Tm9kZShUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSosIFRlbXBsYXRlRWxlbWVudE5vZGUq
KTsKKworICAgICAgICBUZW1wbGF0ZUVsZW1lbnROb2RlKiB2YWx1ZSgpIHsgcmV0dXJuIG1fbm9k
ZTsgfQorICAgICAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogbmV4dCgpIHsgcmV0dXJuIG1f
bmV4dDsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUq
IG1fbmV4dDsKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50Tm9kZSogbV9ub2RlOworICAgIH07CisK
KyAgICBjbGFzcyBUZW1wbGF0ZUxpdGVyYWxOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIFRlbXBsYXRlTGl0ZXJhbE5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqKTsKKyAgICAgICAgVGVtcGxhdGVMaXRl
cmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSos
IFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKik7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2
aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUq
IG1fdGVtcGxhdGVFbGVtZW50czsKKyAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUq
IG1fdGVtcGxhdGVFeHByZXNzaW9uczsKKyAgICB9OworCiAgICAgY2xhc3MgUmVnRXhwTm9kZSA6
IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIFJlZ0V4cE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
Y29uc3QgSWRlbnRpZmllciYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmllciYgZmxhZ3MpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IDVmNTFkYTI0YjQzODUzOWI3
ZDViMGY0OTU0MTQ5MDk1NDYyNzI3MjYuLmExNTY3ZmVlN2NlZDRjMzMxNjczODZiYTRkMTdhYWNi
OTQwOTQ5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTIy
NTcsNiArMjI1Nyw2MSBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzVW5hcnlPcChKU1Rv
a2VuVHlwZSB0b2tlbikKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KK3RlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlRWxl
bWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1wbGF0ZUVsZW1lbnQoVHJlZUJ1aWxkZXIm
IGNvbnRleHQsIGJvb2wgaXNUZW1wbGF0ZUhlYWQsIGJvb2wmIGVsZW1lbnRJc1RhaWwpCit7Cisg
ICAgaWYgKCFpc1RlbXBsYXRlSGVhZCkgeworICAgICAgICBtYXRjaE9yRmFpbChDTE9TRUJSQUNF
LCAiRXhwZWN0ZWQgYSBjbG9zaW5nICd9JyBmb2xsb3dpbmcgYW4gZXhwcmVzc2lvbiBpbiB0ZW1w
bGF0ZSBsaXRlcmFsIik7CisgICAgICAgIC8vIFJlLXNjYW4gdGhlIHRva2VuIHRvIHJlY29nbml6
ZSBpdCBhcyBUZW1wbGF0ZSBFbGVtZW50LgorICAgICAgICBtX3Rva2VuLm1fdHlwZSA9IG1fbGV4
ZXItPnNjYW5UcmFpbGluZ1RlbXBsYXRlRWxlbWVudCgmbV90b2tlbik7CisgICAgfQorICAgIG1h
dGNoT3JGYWlsKFRFTVBMQVRFLCAiRXhwZWN0ZWQgYW4gdGVtcGxhdGUgZWxlbWVudCIpOworICAg
IGNvbnN0IElkZW50aWZpZXIqIGNvb2tlZCA9IG1fdG9rZW4ubV9kYXRhLmNvb2tlZDsKKyAgICBj
b25zdCBJZGVudGlmaWVyKiByYXcgPSBtX3Rva2VuLm1fZGF0YS5yYXc7CisgICAgZWxlbWVudElz
VGFpbCA9IG1fdG9rZW4ubV9kYXRhLmlzVGFpbDsKKyAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRp
b24odG9rZW5Mb2NhdGlvbigpKTsKKyAgICBuZXh0KCk7CisgICAgcmV0dXJuIGNvbnRleHQuY3Jl
YXRlVGVtcGxhdGVFbGVtZW50KGxvY2F0aW9uLCAqY29va2VkLCAqcmF3KTsKK30KKwordGVtcGxh
dGUgPHR5cGVuYW1lIExleGVyVHlwZT4KK3RlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gdHlw
ZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlTGl0ZXJhbCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFy
c2VUZW1wbGF0ZUxpdGVyYWwoVHJlZUJ1aWxkZXImIGNvbnRleHQpCit7CisgICAgSlNUb2tlbkxv
Y2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CisgICAgYm9vbCBlbGVtZW50SXNUYWls
ID0gZmFsc2U7CisKKyAgICBhdXRvIGhlYWRUZW1wbGF0ZUVsZW1lbnQgPSBwYXJzZVRlbXBsYXRl
RWxlbWVudChjb250ZXh0LCB0cnVlLCBlbGVtZW50SXNUYWlsKTsKKyAgICBmYWlsSWZGYWxzZSho
ZWFkVGVtcGxhdGVFbGVtZW50LCAiQ2Fubm90IHBhcnNlIGhlYWQgdGVtcGxhdGUgZWxlbWVudCIp
OworCisgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlRWxlbWVudExpc3QgdGVtcGxh
dGVFbGVtZW50TGlzdCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFbGVtZW50TGlzdChoZWFkVGVt
cGxhdGVFbGVtZW50KTsKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFbGVtZW50
TGlzdCB0ZW1wbGF0ZUVsZW1lbnRUYWlsID0gdGVtcGxhdGVFbGVtZW50TGlzdDsKKworICAgIGlm
IChlbGVtZW50SXNUYWlsKQorICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxp
dGVyYWwobG9jYXRpb24sIHRlbXBsYXRlRWxlbWVudExpc3QpOworCisgICAgVHJlZUV4cHJlc3Np
b24gZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICBmYWlsSWZGYWxz
ZShleHByZXNzaW9uLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gaW4gdGVtcGxhdGUgbGl0ZXJh
bCIpOworCisgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3Qg
dGVtcGxhdGVFeHByZXNzaW9uTGlzdCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9u
TGlzdChleHByZXNzaW9uKTsKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFeHBy
ZXNzaW9uTGlzdCB0ZW1wbGF0ZUV4cHJlc3Npb25UYWlsID0gdGVtcGxhdGVFeHByZXNzaW9uTGlz
dDsKKworICAgIGF1dG8gdGVtcGxhdGVFbGVtZW50ID0gcGFyc2VUZW1wbGF0ZUVsZW1lbnQoY29u
dGV4dCwgZmFsc2UsIGVsZW1lbnRJc1RhaWwpOworICAgIGZhaWxJZkZhbHNlKHRlbXBsYXRlRWxl
bWVudCwgIkNhbm5vdCBwYXJzZSB0ZW1wbGF0ZSBlbGVtZW50Iik7CisgICAgdGVtcGxhdGVFbGVt
ZW50VGFpbCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFbGVtZW50TGlzdCh0ZW1wbGF0ZUVsZW1l
bnRUYWlsLCB0ZW1wbGF0ZUVsZW1lbnQpOworCisgICAgd2hpbGUgKCFlbGVtZW50SXNUYWlsKSB7
CisgICAgICAgIFRyZWVFeHByZXNzaW9uIGV4cHJlc3Npb24gPSBwYXJzZUV4cHJlc3Npb24oY29u
dGV4dCk7CisgICAgICAgIGZhaWxJZkZhbHNlKGV4cHJlc3Npb24sICJDYW5ub3QgcGFyc2UgZXhw
cmVzc2lvbiBpbiB0ZW1wbGF0ZSBsaXRlcmFsIik7CisgICAgICAgIHRlbXBsYXRlRXhwcmVzc2lv
blRhaWwgPSBjb250ZXh0LmNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QodGVtcGxhdGVFeHBy
ZXNzaW9uVGFpbCwgZXhwcmVzc2lvbik7CisKKyAgICAgICAgYXV0byB0ZW1wbGF0ZUVsZW1lbnQg
PSBwYXJzZVRlbXBsYXRlRWxlbWVudChjb250ZXh0LCBmYWxzZSwgZWxlbWVudElzVGFpbCk7Cisg
ICAgICAgIGZhaWxJZkZhbHNlKHRlbXBsYXRlRWxlbWVudCwgIkNhbm5vdCBwYXJzZSB0ZW1wbGF0
ZSBlbGVtZW50Iik7CisgICAgICAgIHRlbXBsYXRlRWxlbWVudFRhaWwgPSBjb250ZXh0LmNyZWF0
ZVRlbXBsYXRlRWxlbWVudExpc3QodGVtcGxhdGVFbGVtZW50VGFpbCwgdGVtcGxhdGVFbGVtZW50
KTsKKyAgICB9CisKKyAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxpdGVyYWwobG9j
YXRpb24sIHRlbXBsYXRlRWxlbWVudExpc3QsIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpOworfQor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgogdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWls
ZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcmltYXJ5RXhwcmVz
c2lvbihUcmVlQnVpbGRlciYgY29udGV4dCkKIHsKICAgICBmYWlsSWZTdGFja092ZXJmbG93KCk7
CkBAIC0yMzU3LDYgKzI0MTIsOCBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzVW5hcnlP
cChKU1Rva2VuVHlwZSB0b2tlbikKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcmU7CiAgICAg
fQorICAgIGNhc2UgVEVNUExBVEU6CisgICAgICAgIHJldHVybiBwYXJzZVRlbXBsYXRlTGl0ZXJh
bChjb250ZXh0KTsKICAgICBkZWZhdWx0OgogICAgICAgICBmYWlsRHVlVG9VbmV4cGVjdGVkVG9r
ZW4oKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCBkY2Vj
NTBhZjYwZjFlZjcxZjFhYTllNGY4OGQ4ZmM3ZDdmNTZhNzRhLi5kNjhhNzcyZGI5YzQ1NTlmYjA4
NGIxYWZkMzZhNTNlMzM0ZDdkZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmgKQEAgLTY5LDYgKzY5LDcgQEAKICNkZWZpbmUgVHJlZUNvbnN0RGVjbExpc3QgdHlwZW5hbWUg
VHJlZUJ1aWxkZXI6OkNvbnN0RGVjbExpc3QKICNkZWZpbmUgVHJlZUFyZ3VtZW50cyB0eXBlbmFt
ZSBUcmVlQnVpbGRlcjo6QXJndW1lbnRzCiAjZGVmaW5lIFRyZWVBcmd1bWVudHNMaXN0IHR5cGVu
YW1lIFRyZWVCdWlsZGVyOjpBcmd1bWVudHNMaXN0CisjZGVmaW5lIFRyZWVUZW1wbGF0ZUVsZW1l
bnRMaXN0IHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZUVsZW1lbnRMaXN0CiAjZGVmaW5l
IFRyZWVGdW5jdGlvbkJvZHkgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkZ1bmN0aW9uQm9keQogI2lm
IEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogI2RlZmluZSBUcmVlQ2xhc3NFeHByZXNzaW9uIHR5
cGVuYW1lIFRyZWVCdWlsZGVyOjpDbGFzc0V4cHJlc3Npb24KQEAgLTc3Niw2ICs3NzcsOCBAQCBj
bGFzcyBQYXJzZXIgewogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIFRyZWVDbGFzc0V4cHJlc3Npb24gcGFy
c2VDbGFzcyhUcmVlQnVpbGRlciYsIEZ1bmN0aW9uUmVxdWlyZW1lbnRzLCBQYXJzZXJDbGFzc0lu
Zm88VHJlZUJ1aWxkZXI+Jik7CiAjZW5kaWYKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IE5FVkVSX0lOTElORSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFbGVtZW50IHBh
cnNlVGVtcGxhdGVFbGVtZW50KFRyZWVCdWlsZGVyJiBjb250ZXh0LCBib29sIGlzVGVtcGxhdGVI
ZWFkLCBib29sJiBlbGVtZW50SXNUYWlsKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IE5FVkVSX0lOTElORSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVMaXRlcmFsIHBh
cnNlVGVtcGxhdGVMaXRlcmFsKFRyZWVCdWlsZGVyJik7CiAKICAgICBBTFdBWVNfSU5MSU5FIGlu
dCBpc0JpbmFyeU9wZXJhdG9yKEpTVG9rZW5UeXBlKTsKICAgICBib29sIGFsbG93QXV0b21hdGlj
U2VtaWNvbG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlclRva2Vucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMu
aAppbmRleCA4MzI5ZjgyYTliMmZmOTE1ZDFmMjQxYzFmOGJmZmFkNDI0N2E1ZjBiLi4wMjZlNGY4
MGY0MzdkOGJmZTRhNjE5YzMwZDExZGM5ZmM2MWUyNjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKQEAgLTk2LDYgKzk2LDcgQEAgZW51bSBKU1Rva2Vu
VHlwZSB7CiAgICAgRE9VQkxFLAogICAgIElERU5ULAogICAgIFNUUklORywKKyAgICBURU1QTEFU
RSwKICAgICBTRU1JQ09MT04sCiAgICAgQ09MT04sCiAgICAgRE9ULApAQCAtMTYxLDcgKzE2Miw5
IEBAIGVudW0gSlNUb2tlblR5cGUgewogICAgIElOVkFMSURfU1RSSU5HX0xJVEVSQUxfRVJST1JU
T0sgPSA5IHwgRXJyb3JUb2tlbkZsYWcsCiAgICAgSU5WQUxJRF9QUklWQVRFX05BTUVfRVJST1JU
T0sgPSAxMCB8IEVycm9yVG9rZW5GbGFnLAogICAgIElOVkFMSURfSEVYX05VTUJFUl9FUlJPUlRP
SyA9IDExIHwgRXJyb3JUb2tlbkZsYWcsCi0gICAgSU5WQUxJRF9CSU5BUllfTlVNQkVSX0VSUk9S
VE9LID0gMTIgfCBFcnJvclRva2VuRmxhZworICAgIElOVkFMSURfQklOQVJZX05VTUJFUl9FUlJP
UlRPSyA9IDEyIHwgRXJyb3JUb2tlbkZsYWcsCisgICAgVU5URVJNSU5BVEVEX1RFTVBMQVRFX0xJ
VEVSQUxfRVJST1JUT0sgPSAxMyB8IEVycm9yVG9rZW5GbGFnIHwgVW50ZXJtaW5hdGVkRXJyb3JU
b2tlbkZsYWcsCisgICAgSU5WQUxJRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LID0gMTQgfCBF
cnJvclRva2VuRmxhZywKIH07CiAKIHN0cnVjdCBKU1RleHRQb3NpdGlvbiB7CkBAIC0xODksNiAr
MTkyLDExIEBAIHN0cnVjdCBKU1RleHRQb3NpdGlvbiB7CiAgICAgfTsKICAgICBkb3VibGUgZG91
YmxlVmFsdWU7CiAgICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQ7CisgICAgc3RydWN0IHsKKyAg
ICAgICAgY29uc3QgSWRlbnRpZmllciogY29va2VkOworICAgICAgICBjb25zdCBJZGVudGlmaWVy
KiByYXc7CisgICAgICAgIGJvb2wgaXNUYWlsOworICAgIH07CiB9OwogCiBzdHJ1Y3QgSlNUb2tl
bkxvY2F0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3lu
dGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2Vy
LmgKaW5kZXggOGI0NzU4NGJhN2I3YTRmMjljMGYwZTBlYWQ1N2UwNzM0ZmFiZmUyZi4uMzEwNWUx
YWExZWY2ZGQwZWYyZDRiYTI4MGFlZGM2NTI0NTU0NzQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTgxLDcgKzgxLDggQEAgY2xhc3MgU3lu
dGF4Q2hlY2tlciB7CiAgICAgICAgIEZ1bmN0aW9uQm9keVJlc3VsdCwgU3ByZWFkRXhwciwgQXJn
dW1lbnRzUmVzdWx0LAogICAgICAgICBQcm9wZXJ0eUxpc3RSZXN1bHQsIEFyZ3VtZW50c0xpc3RS
ZXN1bHQsIEVsZW1lbnRzTGlzdFJlc3VsdCwKICAgICAgICAgU3RhdGVtZW50UmVzdWx0LCBGb3Jt
YWxQYXJhbWV0ZXJMaXN0UmVzdWx0LCBDbGF1c2VSZXN1bHQsCi0gICAgICAgIENsYXVzZUxpc3RS
ZXN1bHQsIENvbW1hRXhwciwgRGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50CisgICAgICAgIENsYXVz
ZUxpc3RSZXN1bHQsIENvbW1hRXhwciwgRGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50LAorICAgICAg
ICBUZW1wbGF0ZUVsZW1lbnRSZXN1bHQsIFRlbXBsYXRlRWxlbWVudExpc3RSZXN1bHQsIFRlbXBs
YXRlRXhwcmVzc2lvbkxpc3RSZXN1bHQsIFRlbXBsYXRlRXhwcgogICAgIH07CiAgICAgdHlwZWRl
ZiBpbnQgRXhwcmVzc2lvblR5cGU7CiAKQEAgLTExMSw2ICsxMTIsMTAgQEAgY2xhc3MgU3ludGF4
Q2hlY2tlciB7CiAgICAgdHlwZWRlZiBpbnQgUHJvcGVydHlMaXN0OwogICAgIHR5cGVkZWYgaW50
IEVsZW1lbnRMaXN0OwogICAgIHR5cGVkZWYgaW50IEFyZ3VtZW50c0xpc3Q7CisgICAgdHlwZWRl
ZiBpbnQgVGVtcGxhdGVFeHByZXNzaW9uTGlzdDsKKyAgICB0eXBlZGVmIGludCBUZW1wbGF0ZUVs
ZW1lbnQ7CisgICAgdHlwZWRlZiBpbnQgVGVtcGxhdGVFbGVtZW50TGlzdDsKKyAgICB0eXBlZGVm
IGludCBUZW1wbGF0ZUxpdGVyYWw7CiAgICAgdHlwZWRlZiBpbnQgRm9ybWFsUGFyYW1ldGVyTGlz
dDsKICAgICB0eXBlZGVmIGludCBGdW5jdGlvbkJvZHk7CiAjaWYgRU5BQkxFKEVTNl9DTEFTU19T
WU5UQVgpCkBAIC0xNzMsNiArMTc4LDE0IEBAIGNsYXNzIFN5bnRheENoZWNrZXIgewogICAgIGlu
dCBjcmVhdGVBcmd1bWVudHMoKSB7IHJldHVybiBBcmd1bWVudHNSZXN1bHQ7IH0KICAgICBpbnQg
Y3JlYXRlQXJndW1lbnRzKGludCkgeyByZXR1cm4gQXJndW1lbnRzUmVzdWx0OyB9CiAgICAgRXhw
cmVzc2lvblR5cGUgY3JlYXRlU3ByZWFkRXhwcmVzc2lvbihjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBFeHByZXNzaW9uVHlwZSwgaW50LCBpbnQsIGludCkgeyByZXR1cm4gU3ByZWFkRXhwcjsgfQor
ICAgIFRlbXBsYXRlRWxlbWVudCBjcmVhdGVUZW1wbGF0ZUVsZW1lbnQoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IElkZW50aWZpZXImKSB7IHJldHVybiBU
ZW1wbGF0ZUVsZW1lbnRSZXN1bHQ7IH0KKyAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0IGNyZWF0ZVRl
bXBsYXRlRWxlbWVudExpc3QoVGVtcGxhdGVFbGVtZW50KSB7IHJldHVybiBUZW1wbGF0ZUVsZW1l
bnRMaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVFbGVtZW50TGlzdCBjcmVhdGVUZW1wbGF0ZUVs
ZW1lbnRMaXN0KFRlbXBsYXRlRWxlbWVudExpc3QsIFRlbXBsYXRlRWxlbWVudCkgeyByZXR1cm4g
VGVtcGxhdGVFbGVtZW50TGlzdFJlc3VsdDsgfQorICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3Qg
Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChFeHByZXNzaW9uKSB7IHJldHVybiBUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdCBjcmVh
dGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KFRlbXBsYXRlRXhwcmVzc2lvbkxpc3QsIEV4cHJlc3Np
b24pIHsgcmV0dXJuIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3RSZXN1bHQ7IH0KKyAgICBUZW1wbGF0
ZUxpdGVyYWwgY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFRl
bXBsYXRlRWxlbWVudExpc3QpIHsgcmV0dXJuIFRlbXBsYXRlRXhwcjsgfQorICAgIFRlbXBsYXRl
TGl0ZXJhbCBjcmVhdGVUZW1wbGF0ZUxpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgVGVt
cGxhdGVFbGVtZW50TGlzdCwgVGVtcGxhdGVFeHByZXNzaW9uTGlzdCkgeyByZXR1cm4gVGVtcGxh
dGVFeHByOyB9CisKICAgICBpbnQgY3JlYXRlQXJndW1lbnRzTGlzdChjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBpbnQpIHsgcmV0dXJuIEFyZ3VtZW50c0xpc3RSZXN1bHQ7IH0KICAgICBpbnQgY3Jl
YXRlQXJndW1lbnRzTGlzdChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQsIGludCkgeyByZXR1
cm4gQXJndW1lbnRzTGlzdFJlc3VsdDsgfQogICAgIFByb3BlcnR5IGNyZWF0ZVByb3BlcnR5KGNv
bnN0IElkZW50aWZpZXIqIG5hbWUsIGludCwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIFByb3Bl
cnR5Tm9kZTo6UHV0VHlwZSwgYm9vbCBjb21wbGV0ZSwgU3VwZXJCaW5kaW5nID0gU3VwZXJCaW5k
aW5nOjpOb3ROZWVkZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcAppbmRleCA2NTNlYmRiODRmYWE2ZGM1ZmEwNDA1Mjc2OTI4ZGJlYTcz
MzljYzY0Li5kY2ZkZGRkMDc1NmFjNmMyMTQ2ZWNkODRhNTI0M2IwNDZlMTQyNTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAg
LTM0NSw2ICszNDUsMTIgQEAgc3RhdGljIENvbW1vblNsb3dQYXRoczo6QXJpdHlDaGVja0RhdGEq
IHNldHVwQXJpdHlDaGVja0RhdGEoVk0mIHZtLCBpbnQgc2xvdHNUb0EKICAgICBSRVRVUk4oanNO
dW1iZXIoT1BfQygyKS5qc1ZhbHVlKCkudG9OdW1iZXIoZXhlYykpKTsKIH0KIAorU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX3RvX3N0cmluZykKK3sKKyAgICBCRUdJTigpOworICAgIFJFVFVSTihP
UF9DKDIpLmpzVmFsdWUoKS50b1N0cmluZyhleGVjKSk7Cit9CisKIFNMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF9uZWdhdGUpCiB7CiAgICAgQkVHSU4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXggZjYwYmJjODRlZjFhNDU5N2ViMDVj
NWFiYjNmYWUzMTlkMjNhMWY2OC4uZDI0YWNiNWU1M2FiN2IxMjhlY2Y4MGI2MDQ1Njc3ZDE0ZWYw
ZWZkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmgKQEAgLTIwMiw2ICsyMDIsNyBAQCBpbmxpbmUgdm9pZCBkZWNvZGVSZXN1bHQoU2xvd1Bh
dGhSZXR1cm5UeXBlIHJlc3VsdCwgdm9pZComIGEsIHZvaWQqJiBiKQogU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9pbmMpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9k
ZWMpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90b19udW1iZXIpOworU0xPV19Q
QVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90b19zdHJpbmcpOwogU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9uZWdhdGUpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9h
ZGQpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9tdWwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLWxpbmUt
dGVybWluYXRvcnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBs
YXRlLWxpdGVyYWwtbGluZS10ZXJtaW5hdG9ycy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDUwNGJlZmJlOWQx
NDYzZmE2ZmMwY2Y5ZDkzZmEyYzFlNzU0ZGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLWxpbmUtdGVybWluYXRv
cnMuanMKQEAgLTAsMCArMSw1NiBAQAorZnVuY3Rpb24gdGVzdChhY3R1YWwsIGV4cGVjdGVkKSB7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
YmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdEV2YWwoc2NyaXB0LCBl
eHBlY3RlZCkgeworICAgIHRlc3QoZXZhbChzY3JpcHQpLCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RFdmFsTGluZU51bWJlcihzY3JpcHQsIGV4cGVjdGVkLCBsaW5lTnVtKSB7CisgICAg
dGVzdEV2YWwoc2NyaXB0LCBleHBlY3RlZCk7CisKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAg
IHZhciBhY3R1YWxMaW5lOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0ICsgJzt0aHJv
dyBuZXcgRXJyb3IoImxpbmUiKTsnKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBh
Y3R1YWxMaW5lID0gZXJyb3IubGluZTsKKyAgICB9CisgICAgdGVzdChhY3R1YWxMaW5lLCBsaW5l
TnVtKTsKK30KKwordGVzdChgSGVsbG9gLCAiSGVsbG8iKTsKK3Rlc3QoYEhlbGxvIFdvcmxkYCwg
IkhlbGxvIFdvcmxkIik7Cit0ZXN0KGAKK2AsICJcbiIpOwordGVzdChgSGVsbG8KK1dvcmxkYCwg
IkhlbGxvXG5Xb3JsZCIpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsbyBXb3JsZGAiLCAi
SGVsbG8gV29ybGQiLCAxKTsKKwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9ccldvcmxkYCIs
ICJIZWxsb1xuV29ybGQiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5Xb3JsZGAi
LCAiSGVsbG9cbldvcmxkIiwgMik7CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXHJccldv
cmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9c
clxuV29ybGRgIiwgIkhlbGxvXG5Xb3JsZCIsIDIpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVs
bG9cblxuV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7Cit0ZXN0RXZhbExpbmVOdW1iZXIo
ImBIZWxsb1xuXHJXb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAyKTsKKwordGVzdEV2YWxMaW5l
TnVtYmVyKCJgSGVsbG9cblxyXG5Xb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKK3Rlc3RF
dmFsTGluZU51bWJlcigiYEhlbGxvXHJcblxyV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7
Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuXG5cbldvcmxkYCIsICJIZWxsb1xuXG5cbldv
cmxkIiwgNCk7CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5cclxuXHJXb3JsZGAiLCAi
SGVsbG9cblxuXG5Xb3JsZCIsIDMpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cblxyXG5c
bldvcmxkYCIsICJIZWxsb1xuXG5cbldvcmxkIiwgNCk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBI
ZWxsb1xyXG5cblxuV29ybGRgIiwgIkhlbGxvXG5cblxuV29ybGQiLCA0KTsKKwordGVzdEV2YWxM
aW5lTnVtYmVyKCJgSGVsbG9cXFxuXHJccldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwor
dGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cXFxyXG5cblxuV29ybGRgIiwgIkhlbGxvXG5cbldv
cmxkIiwgNCk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xcXG5cclxuXG5Xb3JsZGAiLCAi
SGVsbG9cblxuV29ybGQiLCA0KTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXFxcblxyXHJc
bldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBc
dTIwMjhgIiwgIlx1MjAyOCIsIDIpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgXHUyMDI5YCIsICJc
dTIwMjkiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYFxcdTIwMjhgIiwgIlx1MjAyOCIsIDEp
OwordGVzdEV2YWxMaW5lTnVtYmVyKCJgXFx1MjAyOWAiLCAiXHUyMDI5IiwgMSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwt
c3ludGF4LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1s
aXRlcmFsLXN5bnRheC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDc5Yzk3ZTg4MjNkMDk4MWQyYTVkMGUwMTJm
ZjM5MzNhZDdlZTBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLXN5bnRheC5qcwpAQCAtMCwwICsxLDY3IEBACisK
K2Z1bmN0aW9uIHRlc3RTeW50YXgoc2NyaXB0KSB7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChz
Y3JpcHQpOworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGlmIChlcnJvciBpbnN0YW5j
ZW9mIFN5bnRheEVycm9yKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgZXJyb3I6
ICIgKyBTdHJpbmcoZXJyb3IpKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RTeW50YXhFcnJv
cihzY3JpcHQsIG1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7Cisg
ICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0g
ZTsKKyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBl
Y3RlZCBzeW50YXggZXJyb3Igbm90IHRocm93biIpOworCisgICAgaWYgKFN0cmluZyhlcnJvcikg
IT09IG1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGVycm9yOiAiICsgU3Ry
aW5nKGVycm9yKSk7Cit9CisKK3Rlc3RTeW50YXgoImBIZWxsb2AiKTsKK3Rlc3RTeW50YXgoIihg
SGVsbG9gKSIpOwordGVzdFN5bnRheCgiKGBIZWxsb2ApICsgNDIiKTsKK3Rlc3RTeW50YXgoImBc
bkhlbGxvXG5Xb3JsZGAiKTsKK3Rlc3RTeW50YXgoImBcbkhlbGxvXG4ke1dvcmxkfWAiKTsKK3Rl
c3RTeW50YXgoImAke1dvcmxkfWAiKTsKK3Rlc3RTeW50YXgoImAke1dvcmxkfSBIZWxsb2AiKTsK
K3Rlc3RTeW50YXgoImAkIHtXb3JsZH0gSGVsbG9gIik7Cit0ZXN0U3ludGF4KCJgXFx1RkVGRnRl
c3RgIik7Cit0ZXN0U3ludGF4KCJgXHJcbmAiKTsKK3Rlc3RTeW50YXgoImBcXHJcXG5gIik7Cit0
ZXN0U3ludGF4KCJgXG5gIik7Cit0ZXN0U3ludGF4KCJgXFxuYCIpOwordGVzdFN5bnRheCgiYFx1
MjAyOGAiKTsKK3Rlc3RTeW50YXgoImBcXHUyMDI4YCIpOwordGVzdFN5bnRheCgiYFx1MjAyOWAi
KTsKK3Rlc3RTeW50YXgoImBcXHUyMDI5YCIpOwordGVzdFN5bnRheCgiYFxcMGAiKTsKK3Rlc3RT
eW50YXgoImBcMGAiKTsKK3Rlc3RTeW50YXgoImBcXHg3ZmAiKTsKK3Rlc3RTeW50YXgoIihgSGVs
bG9gKSArIDQyIik7Cit0ZXN0U3ludGF4KCJgXFxcbmAiKTsKK3Rlc3RTeW50YXgoImBcXFxyXG5g
Iik7Cit0ZXN0U3ludGF4KCJgXFxccmAiKTsKKwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8iLCAi
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgRU9GIik7Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxsbyR7
fSIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnfSciKTsKK3Rlc3RTeW50YXhFcnJv
cigiYEhlbGxvJHtleHByfSIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBFT0YiKTsKK3Rlc3RT
eW50YXhFcnJvcigiYEhlbGxvJHtleHByYCIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBFT0Yi
KTsKK3Rlc3RTeW50YXhFcnJvcigiYEhlbGxvIGV4cHIke2AiLCAiU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgRU9GIik7Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxsbyAke31gIiwgIlN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIHRva2VuICd9JyIpOwordGVzdFN5bnRheEVycm9yKCJgXFwwN2AiLCAiU3lu
dGF4RXJyb3I6IFRoZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmljdCBtb2RlIGlz
ICdcXDAnIik7Citmb3IgKHZhciBpID0gMTsgaSA8IDc7ICsraSkKKyAgICB0ZXN0U3ludGF4RXJy
b3IoImBcXCIgKyBpICsgImAiLCAiU3ludGF4RXJyb3I6IFRoZSBvbmx5IHZhbGlkIG51bWVyaWMg
ZXNjYXBlIGluIHN0cmljdCBtb2RlIGlzICdcXDAnIik7CisvLyBcOCBhbmQgXDkgYXJlIG5vdCBh
bGxvd2VkLgorZm9yICh2YXIgaSA9IDg7IGkgPCA5OyArK2kpCisgICAgdGVzdFN5bnRheEVycm9y
KCJgXFwiICsgaSArICJgIiwgIlN5bnRheEVycm9yOiBUaGUgb25seSB2YWxpZCBudW1lcmljIGVz
Y2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXFwwJyIpOwordGVzdFN5bnRheEVycm9yKCJgXFx4N2Ai
LCAiU3ludGF4RXJyb3I6IFxceCBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIGhleCBjaGFyYWN0
ZXIgc2VxdWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxceGAiLCAiU3ludGF4RXJyb3I6IFxc
eCBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIGhleCBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKK3Rl
c3RTeW50YXhFcnJvcigiYFxcdWAiLCAiU3ludGF4RXJyb3I6IFxcdSBjYW4gb25seSBiZSBmb2xs
b3dlZCBieSBhIFVuaWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJyb3Io
ImBcXHUyYCIsICJTeW50YXhFcnJvcjogXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgVW5p
Y29kZSBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxcdTIwYCIsICJT
eW50YXhFcnJvcjogXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgVW5pY29kZSBjaGFyYWN0
ZXIgc2VxdWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxcdTIwMmAiLCAiU3ludGF4RXJyb3I6
IFxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVuaWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNl
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBs
YXRlLWxpdGVyYWwuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBs
YXRlLWxpdGVyYWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y2NDI0MGFkOGY3MGJiMmI1ODU5NzMxZDFjYzZj
NjZlZDA1YzljNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC5qcwpAQCAtMCwwICsxLDE0MiBAQAorZnVuY3Rpb24g
dGVzdChhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVu
Y3Rpb24gdGVzdEV2YWwoc2NyaXB0LCBleHBlY3RlZCkgeworICAgIHRlc3QoZXZhbChzY3JpcHQp
LCBleHBlY3RlZCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RFbWJlZGRlZCh2YWx1ZSwgZXhwZWN0ZWQp
IHsKKyAgICB2YXIgdGVtcGxhdGUgPSBgSGVsbG8gJHt2YWx1ZX0gV29ybGRgOworICAgIHRlc3Qo
dGVtcGxhdGUsIGV4cGVjdGVkKTsKK30KKwordGVzdChgSGVsbG8gV29ybGRgLCAiSGVsbG8gV29y
bGQiKTsKK3Rlc3QoYEhlbGxvCisgICAgICAgIFdvcmxkYCwgIkhlbGxvXG4gICAgICAgIFdvcmxk
Iik7CisKK3Rlc3QoYFx1RkVGRmAsICJcdUZFRkYiKTsKK3Rlc3RFdmFsKCJgXHVGRUZGYCIsICJc
dUZFRkYiKTsKKwordGVzdChgXHgyMGAsICJceDIwIik7Cit0ZXN0KGBceDIwMjBgLCAiXHgyMDIw
Iik7CisKK2ZvciAodmFyIGNoIG9mIFsgJ1wnJywgJyInLCAnXFwnLCAnYicsICdmJywgJ24nLCAn
cicsICd0JywgJ3YnIF0pCisgICAgdGVzdEV2YWwoImBcXCIgKyBjaCArICJgIiwgZXZhbCgiJ1xc
IiArIGNoICsgIiciKSk7CisKK3Rlc3QoYFwKK0hlbGxvIFdvcmxkYCwgIkhlbGxvIFdvcmxkIik7
CisKK3Rlc3QoYFwKKworSGVsbG8gV29ybGRgLCAiXG5IZWxsbyBXb3JsZCIpOworCit0ZXN0KGBc
dTIwMjhcdTIwMjlcclxuYCwgIlx1MjAyOFx1MjAyOVxyXG4iKTsKK3Rlc3QoYFx1MjAyOFx1MjAy
OVxuXHJcbmAsICJcdTIwMjhcdTIwMjlcblxyXG4iKTsKK3Rlc3QoYFx1MjAyODIwMGAsICJcdTIw
MjgyMDAiKTsKKwordGVzdEVtYmVkZGVkKDQyLCAiSGVsbG8gNDIgV29ybGQiKTsKK3Rlc3RFbWJl
ZGRlZCgiSVNVQ0EiLCAiSGVsbG8gSVNVQ0EgV29ybGQiKTsKK3Rlc3RFbWJlZGRlZChudWxsLCAi
SGVsbG8gbnVsbCBXb3JsZCIpOwordGVzdEVtYmVkZGVkKHVuZGVmaW5lZCwgIkhlbGxvIHVuZGVm
aW5lZCBXb3JsZCIpOwordGVzdEVtYmVkZGVkKHt9LCAiSGVsbG8gW29iamVjdCBPYmplY3RdIFdv
cmxkIik7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgbmFt
ZTogIkNvY29hIiwKKyAgICB9OworICAgIHZhciBhcnJheSA9IFsKKyAgICAgICAgIkNhcHB1Y2Np
bm8iCisgICAgXQorICAgIHRlc3QoYEhlbGxvICR7b2JqZWN0Lm5hbWV9IGFuZCAke2FycmF5WzBd
fSA6RGAsICJIZWxsbyBDb2NvYSBhbmQgQ2FwcHVjY2lubyA6RCIpOworfSgpKTsKKworKGZ1bmN0
aW9uICgpIHsKKyAgICBmdW5jdGlvbiBvaygpIHsKKyAgICAgICAgcmV0dXJuICJDb2NvYSI7Cisg
ICAgfQorICAgIHRlc3QoYEhlbGxvICR7IG9rKCkgfWAsICJIZWxsbyBDb2NvYSIpOworfSgpKTsK
KworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2JqZWN0ID0geworICAgICAgICB0b1N0cmluZygp
IHsKKyAgICAgICAgICAgIHJldHVybiAnQ29jb2EnOworICAgICAgICB9CisgICAgfTsKKyAgICB0
ZXN0KGBIZWxsbyAke29iamVjdH0gOkRgLCAiSGVsbG8gQ29jb2EgOkQiKTsKK30oKSk7CisKKy8v
IEV4Y2VwdGlvbnMKKworKGZ1bmN0aW9uICgpIHsKKyAgICBmdW5jdGlvbiBnZW4obnVtKSB7Cisg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB0b1N0cmluZygpIHsKKyAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IobnVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9
CisKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIHZhciB0ZW1wbGF0
ZSA9IGAke2dlbigwKX0gJHtnZW4oMSl9ICR7Z2VuKDIpfWA7CisgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignbm8gZXJyb3IgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09
ICdFcnJvcjogMCcpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGVycm9yOiAiICsgU3Ry
aW5nKGVycm9yKSk7CisKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAg
IHZhciB0ZW1wbGF0ZSA9IGAkezUyfSAke2dlbigwKX0gJHtnZW4oMSl9YDsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdubyBlcnJvciB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVy
cm9yKSAhPT0gJ0Vycm9yOiAwJykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgZXJyb3I6
ICIgKyBTdHJpbmcoZXJyb3IpKTsKK30oKSk7CisKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIg
c3RhdD0geworICAgICAgICBjb3VudDogMAorICAgIH07CisgICAgZnVuY3Rpb24gZ2VuKG51bSkg
eworICAgICAgICBzdGF0W251bV0gPSB7CisgICAgICAgICAgICBjYWxsZWQ6IHRydWUsCisgICAg
ICAgICAgICBjb3VudDogc3RhdC5jb3VudCsrLAorICAgICAgICAgICAgdG9TdHJpbmc6IG51bGwK
KyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHRvU3RyaW5nKCkgewor
ICAgICAgICAgICAgICAgIHN0YXRbbnVtXS50b1N0cmluZyA9IHsKKyAgICAgICAgICAgICAgICAg
ICAgY2FsbGVkOiB0cnVlLAorICAgICAgICAgICAgICAgICAgICBjb3VudDogc3RhdC5jb3VudCsr
LAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG51
bSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgdmFyIGVycm9yID0g
bnVsbDsKKyAgICB0cnkgeworICAgICAgICB2YXIgdGVtcGxhdGUgPSBgJHtnZW4oMCl9ICR7Z2Vu
KDEpfSAke2dlbigyKX1gOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOwor
ICAgIH0KKyAgICBpZiAoIWVycm9yKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGVycm9y
IHRocm93bicpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSAnRXJyb3I6IDAnKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworICAgIHRl
c3Qoc3RhdFswXS5jb3VudCwgMCk7CisgICAgdGVzdChzdGF0WzBdLnRvU3RyaW5nLmNhbGxlZCwg
dHJ1ZSk7CisgICAgdGVzdChzdGF0WzBdLnRvU3RyaW5nLmNvdW50LCAxKTsKKyAgICB0ZXN0KHN0
YXRbMV0sIHVuZGVmaW5lZCk7CisgICAgdGVzdChzdGF0WzJdLCB1bmRlZmluZWQpOworfSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249685</attachid>
            <date>2015-03-29 08:47:06 -0700</date>
            <delta_ts>2015-04-02 05:06:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142691-20150330004624.patch</filename>
            <type>text/plain</type>
            <size>93867</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NDNjNDdjOTBmYTk0YWU1ODY0YmVmNjEzYjhlMThkZjUyMjNiNDZiLi44Y2U5ZjBiN2JlMWI1MDY0
ZWVkN2RiYTMxM2IwNWI1YjI2MWRjN2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTcgQEAKKzIwMTUtMDMtMjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIFRlbXBsYXRlTGl0ZXJhbC4KKyAgICAgICAgU2luY2UgVGFnZ2VkVGVtcGxh
dGUgcmVxdWlyZXMgc29tZSBnbG9iYWwgc3RhdGVzIGFuZAorICAgICAgICBwcmltaXRpdmUgb3Bl
cmF0aW9ucyBsaWtlIEdldFRlbXBsYXRlT2JqZWN0LAorICAgICAgICB3ZSBzZXBhcmF0ZSB0aGUg
cGF0Y2guIEl0IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisg
ICAgICAgIFRlbXBsYXRlIExpdGVyYWwgU3ludGF4IGlzIGd1YXJkZWQgYnkgRU5BQkxFX0VTNl9U
RU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKyAgICAgICAgQnkgZGlz
YWJsaW5nIGl0LCB3ZSBjYW4gZGlzYWJsZSBUZW1wbGF0ZSBMaXRlcmFsIHN1cHBvcnQuCisKKyAg
ICAgICAgVG8gaW1wbGVtZW50IHRlbXBsYXRlIGxpdGVyYWxzLCBpbiB0aGlzIHBhdGNoLAorICAg
ICAgICB3ZSBuZXdseSBpbnRyb2R1Y2VzIGJ5dGVjb2RlIG9wX3RvX3N0cmluZy4KKyAgICAgICAg
SW4gdGVtcGxhdGUgbGl0ZXJhbHMsIHdlIGFsdGVybmF0ZWx5IGV2YWx1YXRlIHRoZSBleHByZXNz
aW9uIGFuZAorICAgICAgICBwZXJmb3JtIFRvU3RyaW5nIG9udG8gdGhlIHJlc3VsdCBvZiBldmFs
dWF0aW9uLgorICAgICAgICBGb3IgZXhhbXBsZSwKKworICAgICAgICBgJHtmMSgpfSAke2YyKCl9
YAorCisgICAgICAgIEluIHRoaXMgdGVtcGxhdGUgbGl0ZXJhbCwgZXhlY3V0aW9uIG9yZGVyIGlz
IHRoZSBmb2xsb3dpbmcsCisgICAgICAgIDEuIGNhbGxpbmcgZjEoKQorICAgICAgICAyLiBUb1N0
cmluZyh0aGUgcmVzdWx0IG9mIGYxKCkpCisgICAgICAgIDMuIGNhbGxpbmcgZjIoKQorICAgICAg
ICA0LiBUb1N0cmluZyh0aGUgcmVzdWx0IG9mIGYyKCkpCisKKyAgICAgICAgb3Bfc3RyY2F0IGFs
c28gcGVyZm9ybXMgVG9TdHJpbmcuIEhvd2V2ZXIsIHBlcmZvcm1pbmcgVG9TdHJpbmcKKyAgICAg
ICAgb250byBleHByZXNzaW9ucyBhcmUgYmF0Y2hlZCBpbiBvcF9zdHJjYXQsIGl0J3Mgbm90IHRo
ZSBzYW1lIHRvIHRoZQorICAgICAgICB0ZW1wbGF0ZSBsaXRlcmFsIHNwZWMuIEluIHRoZSBhYm92
ZSBleGFtcGxlLAorICAgICAgICBUb1N0cmluZyhmMSgpKSBzaG91bGQgYmUgY2FsbGVkIGJlZm9y
ZSBjYWxsaW5nIGYyKCkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAg
ICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNl
c0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29k
ZU9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRv
U3RyaW5nKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAg
ICAgKEpTQzo6VGVtcGxhdGVFbGVtZW50Tm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpT
Qzo6VGVtcGxhdGVMaXRlcmFsTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBkZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlNDOjpK
SVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdG9f
c3RyaW5nKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF90b19zdHJpbmcpOgorICAg
ICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfdG9fc3RyaW5nKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF90b19zdHJpbmcp
OgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAg
ICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBwYXJzZXIvQVNU
QnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVUZW1wbGF0ZUVsZW1l
bnQpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVUZW1wbGF0ZUVsZW1lbnRMaXN0
KToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlz
dCk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbCk6Cisg
ICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OkxleGVy
KToKKyAgICAgICAgKEpTQzo6TGluZU51bWJlckFkZGVyOjpMaW5lTnVtYmVyQWRkZXIpOgorICAg
ICAgICAoSlNDOjpMaW5lTnVtYmVyQWRkZXI6OmNsZWFyKToKKyAgICAgICAgKEpTQzo6TGluZU51
bWJlckFkZGVyOjphZGQpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6cGFyc2VUZW1wbGF0ZUxp
dGVyYWwpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4KToKKyAgICAgICAgKEpTQzo6TGV4
ZXI8VD46OnNjYW5UcmFpbGluZ1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICogcGFyc2VyL0xl
eGVyLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2Rl
KToKKyAgICAgICAgKEpTQzo6VGVtcGxhdGVFbGVtZW50Tm9kZTo6VGVtcGxhdGVFbGVtZW50Tm9k
ZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudExpc3ROb2RlOjpUZW1wbGF0ZUVsZW1l
bnRMaXN0Tm9kZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlTGl0ZXJhbE5vZGU6OlRlbXBsYXRl
TGl0ZXJhbE5vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpU
ZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZTo6dmFsdWUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0Tm9kZTo6bmV4dCk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVu
dE5vZGU6OmNvb2tlZCk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudE5vZGU6OnJhdyk6
CisgICAgICAgIChKU0M6OlRlbXBsYXRlRWxlbWVudExpc3ROb2RlOjp2YWx1ZSk6CisgICAgICAg
IChKU0M6OlRlbXBsYXRlRWxlbWVudExpc3ROb2RlOjpuZXh0KToKKyAgICAgICAgKiBwYXJzZXIv
UGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlVGVtcGxh
dGVFbGVtZW50KToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlVGVtcGxh
dGVMaXRlcmFsKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJpbWFy
eUV4cHJlc3Npb24pOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuaDoKKyAgICAgICAgKiBwYXJz
ZXIvUGFyc2VyVG9rZW5zLmg6CisgICAgICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAg
ICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVFbGVtZW50KToKKyAgICAg
ICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVFbGVtZW50TGlzdCk6CisgICAg
ICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpOgor
ICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVhdGVUZW1wbGF0ZUxpdGVyYWwpOgorICAg
ICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19Q
QVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmg6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwtbGluZS10ZXJtaW5hdG9ycy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKHRlc3RFdmFsKToKKyAgICAgICAgKHRlc3RF
dmFsTGluZU51bWJlcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwt
c3ludGF4LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RTeW50YXgpOgorICAgICAgICAodGVzdFN5
bnRheEVycm9yKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKHRlc3RFdmFsKToKKyAgICAgICAgKHRl
c3RFbWJlZGRlZCk6CisKIDIwMTUtMDMtMjggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBKYXZhU2NyaXB0Q29yZS9idWlsdGlucwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDE0YWE0ZjhhN2Y5ODkxYWE2NTQ0ZGU2MzAzYzg4Mzc0ZmFlZDIyYzUuLjg1ZThj
YzQ0ZTg0NTJhN2ZiZDc3MjZkNGNkMTIyNTI0ZjQ3NTYxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxNS0wMy0yOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNv
bT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxpdGVyYWxzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5BQkxFX0VT
Nl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKworICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE1LTAzLTI4ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFVw
ZGF0ZSBmb3Igb3V0cHV0IGRldmljZSBBUEkgY2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOTE2
MjliNmJiODBmM2RkYWVhODMzMmY5ZTAwOTdlNTE4YmZjZTg1ZC4uNTY5NWE1MGI1NTk4YTg5NDZk
Y2RjYmI5M2UyZWEwNjExYzA0NTAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDE1LTAzLTI5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisg
ICAgICAgIFtFUzZdIEltcGxlbWVudCBFUzYgdGVtcGxhdGUgbGl0ZXJhbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY5MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBFTkFCTEVfRVM2X1RFTVBM
QVRFX0xJVEVSQUxfU1lOVEFYIGNvbXBpbGUgdGltZSBmbGFnLgorCisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTUtMDMtMjggIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYW4gdW51c2Vk
IFNQSSBtZXRob2QgZnJvbSBXZWJLaXRMZWdhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmYTIyZDQ4OGYzYzQ2
NWJkY2ExZTFjZjg0NWRlNzIyMjY1Yjc5MTdiLi45ZGMyYTNkZDUwMGQxYjE0ZWIxMTg0NWUyNWIx
NDQ1MTJhMGE0YWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDMtMjkgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1w
bGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5U
QVggY29tcGlsZSB0aW1lIGZsYWcuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxNS0wMy0yNyAgR3dhbmcgWW9vbiBId2FuZyAgPHlvb25A
aWdhbGlhLmNvbT4KIAogICAgICAgICBbVGV4TWFwXSBTZXBlcmF0ZSBCaXRtYXBUZXh0dXJlIHJl
bGF0ZWQgY2xhc3NlcyBpbXBsZW1lbnRhdGlvbnMgZnJvbSBUZXh0dXJlTWFwcGVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKaW5kZXggOGIxMTJmYWU0NWI5NTdkZDI2NDFmZGI2ZjQ2ODk4ODA1ODlh
Zjg2MC4uMjlkZGNjNGZhNzYwZDllZmE3ZjYyZWI1ZmZiNzI0ODY2MzNkNWQzMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwpAQCAtNDUsNiArNDUsNyBAQCBFTkFCTEVfQ0FOVkFTX1BBVEggPSBF
TkFCTEVfQ0FOVkFTX1BBVEg7CiBFTkFCTEVfQ0FOVkFTX1BST1hZID0gOwogRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HID0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0VTNl9DTEFT
U19TWU5UQVggPSBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWDsKK0VOQUJMRV9FUzZfVEVNUExBVEVf
TElURVJBTF9TWU5UQVggPSBFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYOwogRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxF
X0NTUF9ORVhUID0gOwogRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIgPSBFTkFCTEVfQ1NT
X0FOSU1BVElPTlNfTEVWRUxfMjsKQEAgLTIxNCw0ICsyMTUsNCBAQCBFTkFCTEVfTExJTlRfQ19M
T09QID0gOwogCiBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDID0gRU5BQkxFX1NB
VFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQzsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVf
M0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVO
QUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChF
TkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkcpICQoRU5BQkxFX0VTNl9DTEFTU19TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRf
RklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVW
RUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09N
UE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dS
SURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChF
TkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAk
KEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JU
KSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1T
KSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikg
JChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJ
QSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIp
ICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFC
TEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5B
QkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVU
T1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9M
RUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJM
RV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChF
TkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVf
TUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJM
RV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JF
TU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxF
X1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVD
SF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRP
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJM
RV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkg
JChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxF
X1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxF
X1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5B
QkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElN
SU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5B
QkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFC
TEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJ
T05fTU9ERSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1df
U0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxF
TUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkg
JChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFY
KSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxF
X0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJ
T04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMp
ICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVO
QUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9D
VVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJM
RV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFC
TEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9G
VUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNB
VEVEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVS
X1RIUk9UVExJTkcpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05U
Uk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
UikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVf
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQo
RU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZ
X1dFQl9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gp
ICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJM
RV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVS
X0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQo
RU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05D
VVJSRU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikg
JChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElN
SVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NP
TVBMRVRFKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01F
RElBX1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1NDUk9MTF9T
TkFQKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChF
TkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RG
X0NPTlZFUlRFUikgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxF
X1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9V
Q0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NTU19UUkFJ
TElOR19XT1JEKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5B
QkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01P
REVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpF
UykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxF
X1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9M
TElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChFTkFC
TEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCmluZGV4IDZiMjQzOTE1NmFiM2FmYWU2YjU1OGFi
OTA2NmQyMjI1MTVkNTllNDUuLjFkOTRhMGUxN2ZkOTE0Mjc2NWEyNzIyNjQ2OGI2ZDZjMzQ0Y2Mx
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0
Lmpzb24KQEAgLTMzLDYgKzMzLDcgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2luYyIs
ICJsZW5ndGgiIDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGVjIiwgImxlbmd0
aCIgOiAyIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90b19udW1iZXIiLCAibGVuZ3Ro
IiA6IDMgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3RvX3N0cmluZyIsICJsZW5ndGgi
IDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfbmVnYXRlIiwgImxlbmd0aCIgOiAz
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9hZGQiLCAibGVuZ3RoIiA6IDUgfSwKICAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX211bCIsICJsZW5ndGgiIDogNSB9LApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCA4NWYyOTE1
YzdlOGY2MDFhZDNlYzE3OGJmNjllMzU0NGY3NTRjMmNmLi5iYTRhMzg3NTBmM2ZjNTBiMDY4YThh
OTE5MTFlM2MyZTRjYTk3MGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVVc2VEZWYuaApAQCAtMTM2LDYgKzEzNiw3IEBAIHZvaWQgY29tcHV0ZVVzZXNG
b3JCeXRlY29kZU9mZnNldCgKICAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9udWxsOgogICAgIGNh
c2Ugb3BfaXNfZnVuY3Rpb246CiAgICAgY2FzZSBvcF90b19udW1iZXI6CisgICAgY2FzZSBvcF90
b19zdHJpbmc6CiAgICAgY2FzZSBvcF9uZWdhdGU6CiAgICAgY2FzZSBvcF9uZXFfbnVsbDoKICAg
ICBjYXNlIG9wX2VxX251bGw6CkBAIC0zMzAsNiArMzMxLDcgQEAgdm9pZCBjb21wdXRlRGVmc0Zv
ckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBieXRlY29kZU9m
ZnNldCwKICAgICBjYXNlIG9wX2lzX2Z1bmN0aW9uOgogICAgIGNhc2Ugb3BfaW46CiAgICAgY2Fz
ZSBvcF90b19udW1iZXI6CisgICAgY2FzZSBvcF90b19zdHJpbmc6CiAgICAgY2FzZSBvcF9uZWdh
dGU6CiAgICAgY2FzZSBvcF9hZGQ6CiAgICAgY2FzZSBvcF9tdWw6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDllOTUxN2U3ODFiZTU1N2YwNGYx
N2Y5M2RlYzcxYjkxNmNjOWEyYWQuLjdjZDRiZmQxYmI2YjBmOGUyMTYyNDJhMmI0NmNhYzY3ODE5
MWYzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CkBAIC05MTYsNiArOTE2LDEwIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAg
ICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0b19udW1iZXIi
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIGNhc2Ugb3BfdG9fc3Ry
aW5nOiB7CisgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQs
ICJ0b19zdHJpbmciKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfbmVnYXRlOiB7CiAgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2Nh
dGlvbiwgaXQsICJuZWdhdGUiKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4
IDRmZmVmNmI0MDk3ZjAyNDZkYzFiYWU4OWVlOGFhYjhlYzk1YzYwZmEuLjc4ZjJiYTdkMDRjYmMx
MTNiYTNjYjlmN2M0NWI2MDJmNzY2NTllYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTQ2MCw2ICs0NjAs
NyBAQAogICAgICAgICBSZWdpc3RlcklEKiBlbWl0TW92ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lz
dGVySUQqIHNyYyk7CiAKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFRvTnVtYmVyKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKSB7IHJldHVybiBlbWl0VW5hcnlPcChvcF90b19udW1i
ZXIsIGRzdCwgc3JjKTsgfQorICAgICAgICBSZWdpc3RlcklEKiBlbWl0VG9TdHJpbmcoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRVbmFyeU9wKG9wX3RvX3N0
cmluZywgZHN0LCBzcmMpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbmMoUmVnaXN0ZXJJ
RCogc3JjRHN0KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdERlYyhSZWdpc3RlcklEKiBzcmNE
c3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKaW5kZXggNjE1OWM3OWM5OTMxZWNkNDU4NWYxYTdkZWZiMWE3NjExNTczZThh
My4uNGM4OGQ0YjljOGRkNDI4MTI1ZWY0ZDAyZDg1NjcwZDEwZTIwNWJiZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAt
MjE1LDYgKzIxNSw1MiBAQCBSZWdpc3RlcklEKiBSZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGVtcGxhdGVFbGVtZW50Tm9kZSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBUZW1wbGF0ZUVsZW1lbnRO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCogZHN0KQoreworICAgIGlmIChkc3QgPT0gZ2VuZXJhdG9yLmlnbm9yZWRSZXN1bHQoKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0TG9hZChkc3Qs
IEpTVmFsdWUoZ2VuZXJhdG9yLmFkZFN0cmluZ0NvbnN0YW50KGNvb2tlZCgpKSkpOworfQorCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGVtcGxhdGVMaXRlcmFsTm9kZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBUZW1wbGF0ZUxp
dGVyYWxOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJRCogZHN0KQoreworICAgIGlmICghbV90ZW1wbGF0ZUV4cHJlc3Npb25zKSB7CisgICAg
ICAgIFRlbXBsYXRlRWxlbWVudE5vZGUqIHRlbXBsYXRlRWxlbWVudCA9IG1fdGVtcGxhdGVFbGVt
ZW50cy0+dmFsdWUoKTsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV90ZW1wbGF0ZUVs
ZW1lbnRzLT5uZXh0KCksICJPbmx5IG9uZSB0ZW1wbGF0ZSBlbGVtZW50IGV4aXN0cyBiZWNhdXNl
IHRoZXJlJ3Mgbm8gZXhwcmVzc2lvbiBpbiBhIGdpdmVuIHRlbXBsYXRlIGxpdGVyYWwuIik7Cisg
ICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCB0ZW1wbGF0ZUVsZW1lbnQpOwor
ICAgIH0KKworICAgIFZlY3RvcjxSZWZQdHI8UmVnaXN0ZXJJRD4sIDE2PiB0ZW1wb3JhcnlSZWdp
c3RlcnM7CisKKyAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogdGVtcGxhdGVFbGVtZW50c1Rh
aWwgPSBtX3RlbXBsYXRlRWxlbWVudHM7CisgICAgZm9yIChhdXRvIHRlbXBsYXRlRXhwcmVzc2lv
bnNUYWlsID0gbV90ZW1wbGF0ZUV4cHJlc3Npb25zOyB0ZW1wbGF0ZUV4cHJlc3Npb25zVGFpbDsg
dGVtcGxhdGVFeHByZXNzaW9uc1RhaWwgPSB0ZW1wbGF0ZUV4cHJlc3Npb25zVGFpbC0+bmV4dCgp
LCB0ZW1wbGF0ZUVsZW1lbnRzVGFpbCA9IHRlbXBsYXRlRWxlbWVudHNUYWlsLT5uZXh0KCkpIHsK
KyAgICAgICAgLy8gRXZhbHVhdGUgVGVtcGxhdGVFbGVtZW50LgorICAgICAgICBpZiAoIXRlbXBs
YXRlRWxlbWVudHNUYWlsLT52YWx1ZSgpLT5jb29rZWQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgIHRlbXBvcmFyeVJlZ2lzdGVycy5hcHBlbmQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpKTsK
KyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZSh0ZW1wb3JhcnlSZWdpc3RlcnMubGFzdCgp
LmdldCgpLCB0ZW1wbGF0ZUVsZW1lbnRzVGFpbC0+dmFsdWUoKSk7CisgICAgICAgIH0KKworICAg
ICAgICAvLyBFdmFsdWF0ZSBFeHByZXNzaW9uLgorICAgICAgICB0ZW1wb3JhcnlSZWdpc3RlcnMu
YXBwZW5kKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0
Tm9kZSh0ZW1wb3JhcnlSZWdpc3RlcnMubGFzdCgpLmdldCgpLCB0ZW1wbGF0ZUV4cHJlc3Npb25z
VGFpbC0+dmFsdWUoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0VG9TdHJpbmcodGVtcG9yYXJ5
UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSwgdGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSk7
CisgICAgfQorCisgICAgLy8gRXZhbHVhdGUgdGFpbCBUZW1wbGF0ZUVsZW1lbnQuCisgICAgaWYg
KCF0ZW1wbGF0ZUVsZW1lbnRzVGFpbC0+dmFsdWUoKS0+Y29va2VkKCkuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIHRlbXBvcmFyeVJlZ2lzdGVycy5hcHBlbmQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgp
KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKHRlbXBvcmFyeVJlZ2lzdGVycy5sYXN0KCku
Z2V0KCksIHRlbXBsYXRlRWxlbWVudHNUYWlsLT52YWx1ZSgpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gZ2VuZXJhdG9yLmVtaXRTdHJjYXQoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0LCB0
ZW1wb3JhcnlSZWdpc3RlcnNbMF0uZ2V0KCkpLCB0ZW1wb3JhcnlSZWdpc3RlcnNbMF0uZ2V0KCks
IHRlbXBvcmFyeVJlZ2lzdGVycy5zaXplKCkpOworfQorI2VuZGlmCisKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBBcnJheU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKIFJlZ2lzdGVySUQqIEFycmF5Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNjlmZDRhZDE1OTU0YjU3
MGUwYzk0MDcwNDE2M2VhNjBiODE0Zjk5Yy4uNjZhNjE1NWFjNjkxNmZjNzE2NjUwZTMxZGZlYjdh
MWU3OThhNWU0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTM2NzQsNyArMzY3NCwxMyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgbm9kZSk7CiAgICAgICAgICAgICBO
RVhUX09QQ09ERShvcF90b19udW1iZXIpOwogICAgICAgICB9Ci0gICAgICAgICAgICAKKworICAg
ICAgICBjYXNlIG9wX3RvX3N0cmluZzogeworICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQo
VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICAg
ICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZCksIGFkZFRvR3JhcGgoVG9TdHJpbmcsIHZhbHVlKSk7CisgICAgICAgICAgICBORVhUX09QQ09E
RShvcF90b19zdHJpbmcpOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBvcF9pbjogewogICAg
ICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kKSwKICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKEluLCBnZXQoVmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKSwgZ2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA4ZWY0ZGNmMTU2OGJkNWVkYTRiODk3
ZTc2ODRhOGNiYjkxYmY2ZTA4Li5mZTA5MzczNWIwZmEwMzllYjc0Y2JkNDU0YTJiNjAyMDJkNDk4
YjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGll
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3Bw
CkBAIC0xOTEsNiArMTkxLDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNv
ZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9w
X2puZXFfcHRyOgogICAgIGNhc2Ugb3BfdHlwZW9mOgogICAgIGNhc2Ugb3BfdG9fbnVtYmVyOgor
ICAgIGNhc2Ugb3BfdG9fc3RyaW5nOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbToKICAgICBjYXNl
IG9wX3N3aXRjaF9jaGFyOgogICAgIGNhc2Ugb3BfaW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKaW5kZXggNDJhODJkNDM5NDYxNjJmOTVmYTQ3NDY3NTY3MTM5ZDRhYWYyMzg2Yi4uZDFiZmRl
Nzk0YmYwZTIxNTI0ODg2NzU3ZjI1Mjc5MTA5Mzg5MmRjZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcApAQCAtMjkzLDYgKzI5Myw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5Q
YXNzKCkKICAgICAgICAgREVGSU5FX09QKG9wX3Rocm93KQogICAgICAgICBERUZJTkVfT1Aob3Bf
dGhyb3dfc3RhdGljX2Vycm9yKQogICAgICAgICBERUZJTkVfT1Aob3BfdG9fbnVtYmVyKQorICAg
ICAgICBERUZJTkVfT1Aob3BfdG9fc3RyaW5nKQogICAgICAgICBERUZJTkVfT1Aob3BfdG9fcHJp
bWl0aXZlKQogCiAgICAgICAgIERFRklORV9PUChvcF9yZXNvbHZlX3Njb3BlKQpAQCAtNDIyLDYg
KzQyMyw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIERF
RklORV9TTE9XQ0FTRV9PUChvcF9zdHJpY3RlcSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09Q
KG9wX3N1YikKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX3RvX251bWJlcikKKyAgICAg
ICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX3RvX3N0cmluZykKICAgICAgICAgREVGSU5FX1NMT1dD
QVNFX09QKG9wX3RvX3ByaW1pdGl2ZSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2hh
c19pbmRleGVkX3Byb3BlcnR5KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaGFzX3N0
cnVjdHVyZV9wcm9wZXJ0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IGVlNDg1NWRjMmU3
OGI1NWFjYzQ1OTllYmRiOTlhMGQ4ZTA4YmU3Y2MuLmEwOGRiZTJmM2E5YWRmNDIxNThiYzA0MTY0
MWFkMGZmZjAyNmIyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNTUyLDYgKzU1Miw3
IEBACiAgICAgICAgIHZvaWQgZW1pdF9vcF90aHJvdyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2
b2lkIGVtaXRfb3BfdGhyb3dfc3RhdGljX2Vycm9yKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZv
aWQgZW1pdF9vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29w
X3RvX3N0cmluZyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfdG9fcHJpbWl0
aXZlKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF91bmV4cGVjdGVkX2xvYWQo
SW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3Vuc2lnbmVkKEluc3RydWN0aW9u
Kik7CkBAIC02MTQsNiArNjE1LDcgQEAKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9zdHJpY3Rl
cShJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAg
ICAgdm9pZCBlbWl0U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfdG9fbnVtYmVyKEluc3Ry
dWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOworICAgICAgICB2b2lk
IGVtaXRTbG93X29wX3RvX3N0cmluZyhJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5
Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF90b19wcmltaXRpdmUoSW5z
dHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZv
aWQgZW1pdFNsb3dfb3BfdW5zaWduZWQoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfdXJzaGlmdChJbnN0cnVj
dGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGQzZDU4MGU5ZTI2MDA4NTNiNjY0OWUyODU5
MThmODUzOGJlNjk0NGMuLmRkNWJiZjU4YjY1ZGUyZjZkOWM5YjM4MTdkMjIyMDA3YWE1NWFhZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtNDg4LDYgKzQ4
OCwxNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQpOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF90b19zdHJpbmcoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBpbnQgc3JjVlJlZyA9IGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihzcmNW
UmVnLCByZWdUMCk7CisKKyAgICBhZGRTbG93Q2FzZShlbWl0SnVtcElmTm90SlNDZWxsKHJlZ1Qw
KSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoOChOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCwgSlND
ZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdUeXBlKSkpOwor
CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfcHVzaF9uYW1lX3Njb3BlKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7CkBAIC04NzcsNiArODg4LDE1IEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlCiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRTbG93X29w
X3RvX3N0cmluZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nh
c2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQoreworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7CisKKyAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxs
KHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3RvX3N0cmluZyk7CisgICAgc2xv
d1BhdGhDYWxsLmNhbGwoKTsKK30KKwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKIHZvaWQg
SklUOjplbWl0X29wX3RvdWNoX2VudHJ5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXgg
NjgzNWVlYmY5MzVjMDM1OGM1MzJiYTg5YzA0MGEzMDE2ODMwZWEwNy4uNWEwODk1YWQzZjM4N2Vk
NWY2MzhjZjE4ODBhMDhhZjU3M2Y5ODlmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtNzgyLDYgKzc4MiwyOSBAQCB2b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfdG9fbnVtYmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzZQogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0
X29wX3RvX3N0cmluZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGlu
dCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBzcmMgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworCisgICAgZW1pdExvYWQoc3JjLCByZWdU
MSwgcmVnVDApOworCisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2g4
KE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwg
VHJ1c3RlZEltbTMyKFN0cmluZ1R5cGUpKSk7CisKKyAgICBpZiAoc3JjICE9IGRzdCkKKyAgICAg
ICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKK30KKwordm9pZCBKSVQ6OmVtaXRTbG93
X29wX3RvX3N0cmluZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQoreworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsK
KyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisKKyAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhD
YWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3RvX3N0cmluZyk7CisgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfcHVzaF9uYW1lX3Nj
b3BlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IGNhOTFl
OGQ2NzJiYTlkNmJlNDUwODkzMjdhZmUyMmExNTg3MjRlMmMuLmQ4MzI0ZTdiOGFmNmFlYjc3ZmQw
YmEyYjE3OTExNDU5Y2I1ZGVkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0xMDAwLDYgKzEwMDAs
MjMgQEAgX2xsaW50X29wX3RvX251bWJlcjoKICAgICBkaXNwYXRjaCgzKQogCiAKK19sbGludF9v
cF90b19zdHJpbmc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MAor
ICAgIGxvYWRpIDRbUENdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyLCB0
MykKKyAgICBiaW5lcSB0MiwgQ2VsbFRhZywgLm9wVG9TdHJpbmdTbG93CisgICAgYmJuZXEgSlND
ZWxsOjptX3R5cGVbdDNdLCBTdHJpbmdUeXBlLCAub3BUb1N0cmluZ1Nsb3cKKy5vcFRvU3RyaW5n
SXNTdHJpbmc6CisgICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBzdG9y
ZWkgdDMsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisub3BU
b1N0cmluZ1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9fc3RyaW5nKQorICAg
IGRpc3BhdGNoKDMpCisKKwogX2xsaW50X29wX25lZ2F0ZToKICAgICB0cmFjZUV4ZWN1dGlvbigp
CiAgICAgbG9hZGkgOFtQQ10sIHQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IGRlNTcwNjJmNmQxMDRmMmM3NTcy
YjRjYWY2MjQ0ZTg3ZDUwZjUwYmEuLmI0NjA3MWI2ZGYxYjUwY2QzNTI4YmNkYjFjOWYwYjdjZDY0
OTE3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtCkBAIC04NjAsNiArODYwLDIyIEBAIF9sbGludF9vcF90b19udW1i
ZXI6CiAgICAgZGlzcGF0Y2goMykKIAogCitfbGxpbnRfb3BfdG9fc3RyaW5nOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDEpCisgICAgbG9hZGlz
RnJvbUluc3RydWN0aW9uKDEsIHQyKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQw
KQorICAgIGJ0cW56IHQwLCB0YWdNYXNrLCAub3BUb1N0cmluZ1Nsb3cKKyAgICBiYm5lcSBKU0Nl
bGw6Om1fdHlwZVt0MF0sIFN0cmluZ1R5cGUsIC5vcFRvU3RyaW5nU2xvdworLm9wVG9TdHJpbmdJ
c1N0cmluZzoKKyAgICBzdG9yZXEgdDAsIFtjZnIsIHQyLCA4XQorICAgIGRpc3BhdGNoKDMpCisK
Ky5vcFRvU3RyaW5nU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19zdHJpbmcp
CisgICAgZGlzcGF0Y2goMykKKworCiBfbGxpbnRfb3BfbmVnYXRlOgogICAgIHRyYWNlRXhlY3V0
aW9uKCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IGM0OGU0MWM1ODY1ZGZkNTAwNzRmNDlkYmEx
M2RjNzQ2Mjk2NjNlZDEuLmJiNmI2MTFiNzlmN2IzYjEyMTZkNzliNjU1MjBjNmQ5NDA5MDIwZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0xMDIsNiAr
MTAyLDEyIEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAgIHR5cGVkZWYgUHJvcGVydHlMaXN0Tm9k
ZSogUHJvcGVydHlMaXN0OwogICAgIHR5cGVkZWYgRWxlbWVudE5vZGUqIEVsZW1lbnRMaXN0Owog
ICAgIHR5cGVkZWYgQXJndW1lbnRMaXN0Tm9kZSogQXJndW1lbnRzTGlzdDsKKyNpZiBFTkFCTEUo
RVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIHR5cGVkZWYgVGVtcGxhdGVFeHByZXNz
aW9uTGlzdE5vZGUqIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3Q7CisgICAgdHlwZWRlZiBUZW1wbGF0
ZUVsZW1lbnROb2RlKiBUZW1wbGF0ZUVsZW1lbnQ7CisgICAgdHlwZWRlZiBUZW1wbGF0ZUVsZW1l
bnRMaXN0Tm9kZSogVGVtcGxhdGVFbGVtZW50TGlzdDsKKyAgICB0eXBlZGVmIFRlbXBsYXRlTGl0
ZXJhbE5vZGUqIFRlbXBsYXRlTGl0ZXJhbDsKKyNlbmRpZgogICAgIHR5cGVkZWYgUGFyYW1ldGVy
Tm9kZSogRm9ybWFsUGFyYW1ldGVyTGlzdDsKICAgICB0eXBlZGVmIEZ1bmN0aW9uQm9keU5vZGUq
IEZ1bmN0aW9uQm9keTsKICNpZiBFTkFCTEUoRVM2X0NMQVNTX1NZTlRBWCkKQEAgLTI0Niw2ICsy
NTIsNDMgQEAgY2xhc3MgQVNUQnVpbGRlciB7CiAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0K
IAorI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgVGVtcGxhdGVF
bGVtZW50Tm9kZSogY3JlYXRlVGVtcGxhdGVFbGVtZW50KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYg
bG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGNvb2tlZCwgY29uc3QgSWRlbnRpZmllciYgcmF3
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVFbGVt
ZW50Tm9kZShsb2NhdGlvbiwgY29va2VkLCByYXcpOworICAgIH0KKworICAgIFRlbXBsYXRlRWxl
bWVudExpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZUVsZW1lbnRMaXN0KFRlbXBsYXRlRWxlbWVudE5v
ZGUqIHRlbXBsYXRlRWxlbWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2Vy
QXJlbmEpIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKHRlbXBsYXRlRWxlbWVudCk7CisgICAgfQor
CisgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqIGNyZWF0ZVRlbXBsYXRlRWxlbWVudExpc3Qo
VGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqIHRlbXBsYXRlRWxlbWVudExpc3QsIFRlbXBsYXRlRWxl
bWVudE5vZGUqIHRlbXBsYXRlRWxlbWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1f
cGFyc2VyQXJlbmEpIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKHRlbXBsYXRlRWxlbWVudExpc3Qs
IHRlbXBsYXRlRWxlbWVudCk7CisgICAgfQorCisgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5v
ZGUqIGNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QoRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Np
b24pCisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUV4
cHJlc3Npb25MaXN0Tm9kZShleHByZXNzaW9uKTsKKyAgICB9CisKKyAgICBUZW1wbGF0ZUV4cHJl
c3Npb25MaXN0Tm9kZSogY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChUZW1wbGF0ZUV4cHJl
c3Npb25MaXN0Tm9kZSogdGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUsIEV4cHJlc3Npb25Ob2Rl
KiBleHByZXNzaW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkg
VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUodGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUsIGV4
cHJlc3Npb24pOworICAgIH0KKworICAgIFRlbXBsYXRlTGl0ZXJhbE5vZGUqIGNyZWF0ZVRlbXBs
YXRlTGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBUZW1wbGF0ZUVsZW1l
bnRMaXN0Tm9kZSogdGVtcGxhdGVFbGVtZW50TGlzdCkKKyAgICB7CisgICAgICAgIHJldHVybiBu
ZXcgKG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRlTGl0ZXJhbE5vZGUobG9jYXRpb24sIHRlbXBsYXRl
RWxlbWVudExpc3QpOworICAgIH0KKworICAgIFRlbXBsYXRlTGl0ZXJhbE5vZGUqIGNyZWF0ZVRl
bXBsYXRlTGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBUZW1wbGF0ZUVs
ZW1lbnRMaXN0Tm9kZSogdGVtcGxhdGVFbGVtZW50TGlzdCwgVGVtcGxhdGVFeHByZXNzaW9uTGlz
dE5vZGUqIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpCisgICAgeworICAgICAgICByZXR1cm4gbmV3
IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUxpdGVyYWxOb2RlKGxvY2F0aW9uLCB0ZW1wbGF0ZUVs
ZW1lbnRMaXN0LCB0ZW1wbGF0ZUV4cHJlc3Npb25MaXN0KTsKKyAgICB9CisjZW5kaWYKKwogICAg
IEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVSZWdFeHAoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2Nh
dGlvbiwgY29uc3QgSWRlbnRpZmllciYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmllciYgZmxhZ3Ms
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCkKICAgICB7CiAgICAgICAgIGlmIChZYXJyOjpj
aGVja1N5bnRheChwYXR0ZXJuLnN0cmluZygpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9M
ZXhlci5jcHAKaW5kZXggN2RlMTQyMjBiYmRhNzI3MzhiNTczYTRiOTc4OGNlMGIzMmNjN2NlMy4u
MWI4YTFjZTBlNGJiZmMyNTQ5MjlhY2Y2YWE3MTBlNWRiMzRlY2Y1MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTcxLDYgKzcxLDkgQEAgZW51bSBDaGFyYWN0ZXJU
eXBlIHsKICAgICBDaGFyYWN0ZXJRdWVzdGlvbiwKICAgICBDaGFyYWN0ZXJUaWxkZSwKICAgICBD
aGFyYWN0ZXJRdW90ZSwKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQor
ICAgIENoYXJhY3RlckJhY2tRdW90ZSwKKyNlbmRpZgogICAgIENoYXJhY3RlckRvdCwKICAgICBD
aGFyYWN0ZXJTbGFzaCwKICAgICBDaGFyYWN0ZXJCYWNrU2xhc2gsCkBAIC0xOTIsNyArMTk1LDEx
IEBAIGVudW0gQ2hhcmFjdGVyVHlwZSB7CiAvKiAgOTMgLSBdICAgICAgICAgICAgICAgICAgKi8g
Q2hhcmFjdGVyQ2xvc2VCcmFja2V0LAogLyogIDk0IC0gXiAgICAgICAgICAgICAgICAgICovIENo
YXJhY3RlclhvciwKIC8qICA5NSAtIF8gICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJJZGVu
dGlmaWVyU3RhcnQsCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKy8q
ICA5NiAtIGAgICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJCYWNrUXVvdGUsCisjZWxzZQog
LyogIDk2IC0gYCAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlckludmFsaWQsCisjZW5kaWYK
IC8qICA5NyAtIGEgICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJJZGVudGlmaWVyU3RhcnQs
CiAvKiAgOTggLSBiICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVySWRlbnRpZmllclN0YXJ0
LAogLyogIDk5IC0gYyAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlcklkZW50aWZpZXJTdGFy
dCwKQEAgLTEyMTUsNiArMTIyMiwyMDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBjaGFy
YWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hhcmFjdGVyKQogICAgIHJl
dHVybiBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHk7CiB9CiAKKyNpZiBFTkFCTEUoRVM2X1RFTVBM
QVRFX0xJVEVSQUxfU1lOVEFYKQorLy8gV2hpbGUgSmF2YVNjcmlwdENvcmUncyBsZXhlciBhY2Nl
cHRzIDxMRj48Q1I+IChub3QgPENSPjxMRj4pIHNlcXVlbmNlCisvLyBhcyBvbmUgbGluZSB0ZXJt
aW5hdG9yIGFuZCBpbmNyZW1lbnQgb25lIGxpbmUgbnVtYmVyLAorLy8gVGVtcGxhdGVMaXRlcmFs
IGNvbnNpZGVycyBpdCBhcyB0d28gbGluZSB0ZXJtaW5hdG9ycyA8TEY+IGFuZCA8Q1I+LgorLy8K
Ky8vIFRlbXBsYXRlTGl0ZXJhbCBub3JtYWxpemVzIGxpbmUgdGVybWluYXRvcnMgYXMgZm9sbG93
cy4KKy8vCisvLyA8TEY+ID0+IDxMRj4KKy8vIDxDUj4gPT4gPExGPgorLy8gPENSPjxMRj4gPT4g
PExGPgorLy8gPFx1MjAyOD4gPT4gPFx1MjAyOD4KKy8vIDxcdTIwMjk+ID0+IDxcdTIwMjk+Cisv
LworLy8gU28sIDxMRj48Q1I+IHNob3VsZCBiZSBub3JtYWxpemVkIHRvIDxMRj48TEY+LgorLy8g
SG93ZXZlciwgbGluZSBudW1iZXIgc2F2ZWQgaW4gdGhlIGxleGVyIHNob3VsZCBiZSBpbmNyZW1l
bnQgb25seSBvbmNlIGZvciA8TEY+PENSPi4KKy8vCisvLyBUbyBhY2hpZXZlIHRoaXMsIExpbmVO
dW1iZXJBZGRlciBob2xkcyB0aGUgY3VycmVudCBzdGF0dXMgb2YgbGluZSB0ZXJtaW5hdG9yIHNl
cXVlbmNlLgorLy8gV2hlbiBUZW1wbGF0ZUxpdGVyYWwgbGV4ZXIgZW5jb3VudGVycyBhIGxpbmUg
dGVybWluYXRvciwgaXQgbm90aWZ5IHRvIExpbmVOdW1iZXJBZGRlci4KKy8vIExpbmVOdW1iZXJB
ZGRlciBtYWludGFpbnMgdGhlIHN0YXR1cyBhbmQgaW5jcmVtZW50cyBsaW5lIG51bWJlciB3aGVu
IGl0J3MgbmVjZXNzYXJ5LgorLy8gRm9yIGV4YW1wbGUsIExpbmVOdW1iZXJBZGRlciBpbmNyZW1l
bnRzIGxpbmUgbnVtYmVyIG9ubHkgb25jZSBmb3IgPExGPjxDUj4gYW5kIDxDUj48TEY+LgordGVt
cGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIExpbmVOdW1iZXJBZGRlciB7CitwdWJsaWM6CisgICAg
TGluZU51bWJlckFkZGVyKGludCYgbGluZU51bWJlcikKKyAgICAgICAgOiBtX2xpbmVOdW1iZXIo
bGluZU51bWJlcikKKyAgICAgICAgLCBtX3ByZXZpb3VzKDApCisgICAgeworICAgIH0KKworICAg
IHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgbV9wcmV2aW91cyA9IDA7CisgICAgfQorCisg
ICAgdm9pZCBhZGQoVCBjaGFyYWN0ZXIpCisgICAgeworICAgICAgICBBU1NFUlQoTGV4ZXI8VD46
OmlzTGluZVRlcm1pbmF0b3IoY2hhcmFjdGVyKSk7CisgICAgICAgIGlmICgoY2hhcmFjdGVyICsg
bV9wcmV2aW91cykgPT0gJ1xuJyArICdccicpCisgICAgICAgICAgICBtX3ByZXZpb3VzID0gMDsK
KyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICArK21fbGluZU51bWJlcjsKKyAgICAgICAgICAg
IG1fcHJldmlvdXMgPSBjaGFyYWN0ZXI7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgaW50JiBtX2xpbmVOdW1iZXI7CisgICAgVCBtX3ByZXZpb3VzOworfTsKKwordGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Cit0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IHR5cGVuYW1l
IExleGVyPFQ+OjpTdHJpbmdQYXJzZVJlc3VsdCBMZXhlcjxUPjo6cGFyc2VUZW1wbGF0ZUxpdGVy
YWwoSlNUb2tlbkRhdGEqIHRva2VuRGF0YSkKK3sKKyAgICBjb25zdCBUKiBzdHJpbmdTdGFydCA9
IGN1cnJlbnRTb3VyY2VQdHIoKTsKKyAgICBjb25zdCBUKiByYXdTdHJpbmdTdGFydCA9IGN1cnJl
bnRTb3VyY2VQdHIoKTsKKworICAgIExpbmVOdW1iZXJBZGRlcjxUPiBsaW5lTnVtYmVyQWRkZXIo
bV9saW5lTnVtYmVyKTsKKworICAgIHdoaWxlIChtX2N1cnJlbnQgIT0gJ2AnKSB7CisgICAgICAg
IGlmIChVTkxJS0VMWShtX2N1cnJlbnQgPT0gJ1xcJykpIHsKKyAgICAgICAgICAgIGxpbmVOdW1i
ZXJBZGRlci5jbGVhcigpOworICAgICAgICAgICAgaWYgKHN0cmluZ1N0YXJ0ICE9IGN1cnJlbnRT
b3VyY2VQdHIoKSAmJiBzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgYXBwZW5k
MTYoc3RyaW5nU3RhcnQsIGN1cnJlbnRTb3VyY2VQdHIoKSAtIHN0cmluZ1N0YXJ0KTsKKyAgICAg
ICAgICAgIHNoaWZ0KCk7CisKKyAgICAgICAgICAgIExDaGFyIGVzY2FwZSA9IHNpbmdsZUVzY2Fw
ZShtX2N1cnJlbnQpOworCisgICAgICAgICAgICAvLyBNb3N0IGNvbW1vbiBlc2NhcGUgc2VxdWVu
Y2VzIGZpcnN0CisgICAgICAgICAgICBpZiAoZXNjYXBlKSB7CisgICAgICAgICAgICAgICAgaWYg
KHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoZXNjYXBl
KTsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChVTkxJ
S0VMWShpc0xpbmVUZXJtaW5hdG9yKG1fY3VycmVudCkpKSB7CisgICAgICAgICAgICAgICAgaWYg
KG1fY3VycmVudCA9PSAnXHInKSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRl
ci5hZGQobV9jdXJyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lTnVtYmVyQWRkZXIuYWRkKG1fY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQp
OworICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAobV9jdXJyZW50ID09ICd4JykgeworICAgICAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFpc0FTQ0lJSGV4RGlnaXQobV9jdXJyZW50KSB8
fCAhaXNBU0NJSUhleERpZ2l0KHBlZWsoMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGV4
RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkg
YSBoZXggY2hhcmFjdGVyIHNlcXVlbmNlIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBT
dHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
VCBwcmV2ID0gbV9jdXJyZW50OworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAg
ICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICAgICAgcmVjb3Jk
MTYoY29udmVydEhleChwcmV2LCBtX2N1cnJlbnQpKTsKKyAgICAgICAgICAgICAgICBzaGlmdCgp
OworICAgICAgICAgICAgfSBlbHNlIGlmIChtX2N1cnJlbnQgPT0gJ3UnKSB7CisgICAgICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlSGV4VmFsdWUgY2hhcmFjdGVy
ID0gcGFyc2VGb3VyRGlnaXRVbmljb2RlSGV4KCk7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJh
Y3Rlci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3Ry
aW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KGNoYXJhY3Rlci52YWx1ZSgp
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX2xleEVy
cm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEg
VW5pY29kZSBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGNoYXJhY3Rlci52YWx1ZVR5cGUoKSA9PSBVbmljb2RlSGV4VmFsdWU6OkluY29tcGxldGVIZXgg
PyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKSB7
CisgICAgICAgICAgICAgICAgLy8gVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4gc3Ry
aWN0IG1vZGUgaXMgJ1wwJywgYW5kIHRoaXMgbXVzdCBub3QgYmUgZm9sbG93ZWQgYnkgYSBkZWNp
bWFsIGRpZ2l0LgorICAgICAgICAgICAgICAgIGludCBjaGFyYWN0ZXIxID0gbV9jdXJyZW50Owor
ICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3RlcjEg
IT0gJzAnIHx8IGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgICAg
IG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJUaGUgb25seSB2YWxpZCBudW1lcmlj
IGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXFwwJyIpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgIHJlY29y
ZDE2KDApOworICAgICAgICAgICAgfSBlbHNlIGlmICghYXRFbmQoKSkgeworICAgICAgICAgICAg
ICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2
KG1fY3VycmVudCk7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlVu
dGVybWluYXRlZCBzdHJpbmcgY29uc3RhbnQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3Ry
aW5nVW50ZXJtaW5hdGVkOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdHJpbmdTdGFy
dCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnJCcgJiYgcGVlaygxKSA9PSAneycpCisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAvLyBGYXN0IGNoZWNrIGZvciBjaGFyYWN0ZXJzIHRo
YXQgcmVxdWlyZSBzcGVjaWFsIGhhbmRsaW5nLgorICAgICAgICAvLyBDYXRjaGVzIDAsIFxuLCBc
ciwgMHgyMDI4LCBhbmQgMHgyMDI5IGFzIGVmZmljaWVudGx5CisgICAgICAgIC8vIGFzIHBvc3Np
YmxlLCBhbmQgbGV0cyB0aHJvdWdoIGFsbCBjb21tb24gQVNDSUkgY2hhcmFjdGVycy4KKyAgICAg
ICAgaWYgKFVOTElLRUxZKCgoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fY3VycmVudCkgLSAweEUp
ICYgMHgyMDAwKSkpIHsKKyAgICAgICAgICAgIC8vIEVuZCBvZiBpbnB1dCBpcyBub3QgYWxsb3dl
ZC4KKyAgICAgICAgICAgIC8vIFVubGlrZSBTdHJpbmcsIGxpbmUgdGVybWluYXRvciBpcyBhbGxv
d2VkLgorICAgICAgICAgICAgaWYgKGF0RW5kKCkpIHsKKyAgICAgICAgICAgICAgICBtX2xleEVy
cm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiVW5leHBlY3RlZCBFT0YiKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gYXRFbmQoKSA/IFN0cmluZ1VudGVybWluYXRlZCA6IFN0cmluZ0Nhbm5vdEJl
UGFyc2VkOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaXNMaW5lVGVybWluYXRv
cihtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXHInKSB7
CisgICAgICAgICAgICAgICAgICAgIC8vIE5vcm1hbGl6ZSA8Q1I+LCA8Q1I+PExGPiB0byA8TEY+
LgorICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nU3RhcnQgIT0gY3VycmVudFNvdXJjZVB0
cigpICYmIHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVu
ZDE2KHN0cmluZ1N0YXJ0LCBjdXJyZW50U291cmNlUHRyKCkgLSBzdHJpbmdTdGFydCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAg
ICAgICAgICByZWNvcmQxNignXG4nKTsKKyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlckFk
ZGVyLmFkZChtX2N1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAg
ICAgICAgICAgICAgICBpZiAobV9jdXJyZW50ID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9jdXJyZW50KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgc3RyaW5nU3RhcnQgPSBjdXJyZW50U291cmNlUHRyKCk7CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQp
OworICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEFueXRo
aW5nIGVsc2UgaXMganVzdCBhIG5vcm1hbCBjaGFyYWN0ZXIKKyAgICAgICAgfQorCisgICAgICAg
IGxpbmVOdW1iZXJBZGRlci5jbGVhcigpOworICAgICAgICBzaGlmdCgpOworICAgIH0KKworICAg
IGJvb2wgaXNUYWlsID0gbV9jdXJyZW50ID09ICdgJzsKKworICAgIGlmIChjdXJyZW50U291cmNl
UHRyKCkgIT0gc3RyaW5nU3RhcnQgJiYgc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICBhcHBl
bmQxNihzdHJpbmdTdGFydCwgY3VycmVudFNvdXJjZVB0cigpIC0gc3RyaW5nU3RhcnQpOworCisg
ICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykgeworICAgICAgICB0b2tlbkRhdGEtPmNvb2tlZCA9
IG1ha2VJZGVudGlmaWVyKG1fYnVmZmVyMTYuZGF0YSgpLCBtX2J1ZmZlcjE2LnNpemUoKSk7Cisg
ICAgICAgIC8vIFRPRE86IHJhdyBpcyBub3QgaW1wbGVtZW50ZWQgY29ycmVjdGx5IHlldC4KKyAg
ICAgICAgLy8gTGluZSB0ZXJtaW5hdG9yIG5vcm1hbGl6YXRpb24gaXMgbm90IGRvbmUgZm9yIHJh
dy4KKyAgICAgICAgLy8gV2hlbiBpbXBsZW1lbnRpbmcgVGFnZ2VkVGVtcGxhdGUgd2hpY2ggdXNl
cyByYXcgdmFsdWUsIGl0IHNob3VsZCBiZSBmaXhlZC4KKyAgICAgICAgdG9rZW5EYXRhLT5yYXcg
PSBtYWtlSWRlbnRpZmllcihyYXdTdHJpbmdTdGFydCwgY3VycmVudFNvdXJjZVB0cigpIC0gcmF3
U3RyaW5nU3RhcnQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRva2VuRGF0YS0+Y29va2VkID0g
bnVsbHB0cjsKKyAgICAgICAgdG9rZW5EYXRhLT5yYXcgPSBudWxscHRyOworICAgIH0KKyAgICB0
b2tlbkRhdGEtPmlzVGFpbCA9IGlzVGFpbDsKKworICAgIG1fYnVmZmVyMTYucmVzaXplKDApOwor
CisgICAgaWYgKGlzVGFpbCkgeworICAgICAgICAvLyBTa2lwIGAKKyAgICAgICAgc2hpZnQoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBTa2lwICQgYW5kIHsKKyAgICAgICAgc2hpZnQoKTsK
KyAgICAgICAgc2hpZnQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gU3RyaW5nUGFyc2VkU3VjY2Vz
c2Z1bGx5OworfQorI2VuZGlmCisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogQUxXQVlTX0lOTElO
RSB2b2lkIExleGVyPFQ+OjpwYXJzZUhleChkb3VibGUmIHJldHVyblZhbHVlKQogewpAQCAtMTgy
NiwyMyArMjAzNCwzOSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGNoYXJhY3RlclJlcXVp
cmVzUGFyc2VTdHJpbmdTbG93Q2FzZShVQ2hhciBjaGFyYWN0ZXIpCiAgICAgICAgIH0KICAgICAg
ICAgbV9idWZmZXI4LnJlc2l6ZSgwKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDaGFyYWN0
ZXJRdW90ZToKLSAgICAgICAgaWYgKGxleGVyRmxhZ3MgJiBMZXhlckZsYWdzRG9udEJ1aWxkU3Ry
aW5ncykgewotICAgICAgICAgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VTdHJp
bmc8ZmFsc2U+KHRva2VuRGF0YSwgc3RyaWN0TW9kZSk7Ci0gICAgICAgICAgICBpZiAoVU5MSUtF
TFkocmVzdWx0ICE9IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkpIHsKLSAgICAgICAgICAgICAg
ICB0b2tlbiA9IHJlc3VsdCA9PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfU1RS
SU5HX0xJVEVSQUxfRVJST1JUT0sgOiBJTlZBTElEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LOwot
ICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuRXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBTdHJpbmdQYXJzZVJlc3VsdCByZXN1bHQgPSBwYXJzZVN0
cmluZzx0cnVlPih0b2tlbkRhdGEsIHN0cmljdE1vZGUpOwotICAgICAgICAgICAgaWYgKFVOTElL
RUxZKHJlc3VsdCAhPSBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHkpKSB7Ci0gICAgICAgICAgICAg
ICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5hdGVkID8gVU5URVJNSU5BVEVEX1NU
UklOR19MSVRFUkFMX0VSUk9SVE9LIDogSU5WQUxJRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSzsK
LSAgICAgICAgICAgICAgICBnb3RvIHJldHVybkVycm9yOwotICAgICAgICAgICAgfQorICAgIGNh
c2UgQ2hhcmFjdGVyUXVvdGU6IHsKKyAgICAgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0g
U3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAgICAgIGlmIChsZXhlckZsYWdzICYgTGV4ZXJGbGFn
c0RvbnRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICByZXN1bHQgPSBwYXJzZVN0cmluZzxmYWxz
ZT4odG9rZW5EYXRhLCBzdHJpY3RNb2RlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVz
dWx0ID0gcGFyc2VTdHJpbmc8dHJ1ZT4odG9rZW5EYXRhLCBzdHJpY3RNb2RlKTsKKworICAgICAg
ICBpZiAoVU5MSUtFTFkocmVzdWx0ICE9IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkpIHsKKyAg
ICAgICAgICAgIHRva2VuID0gcmVzdWx0ID09IFN0cmluZ1VudGVybWluYXRlZCA/IFVOVEVSTUlO
QVRFRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSyA6IElOVkFMSURfU1RSSU5HX0xJVEVSQUxfRVJS
T1JUT0s7CisgICAgICAgICAgICBnb3RvIHJldHVybkVycm9yOwogICAgICAgICB9CiAgICAgICAg
IHNoaWZ0KCk7CiAgICAgICAgIHRva2VuID0gU1RSSU5HOwogICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgY2FzZSBD
aGFyYWN0ZXJCYWNrUXVvdGU6IHsKKyAgICAgICAgLy8gU2tpcCBiYWNrcXVvdGUuCisgICAgICAg
IHNoaWZ0KCk7CisgICAgICAgIFN0cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IFN0cmluZ0Nhbm5v
dEJlUGFyc2VkOworICAgICAgICBpZiAobGV4ZXJGbGFncyAmIExleGVyRmxhZ3NEb250QnVpbGRT
dHJpbmdzKQorICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWw8ZmFsc2U+
KHRva2VuRGF0YSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlVGVt
cGxhdGVMaXRlcmFsPHRydWU+KHRva2VuRGF0YSk7CisKKyAgICAgICAgaWYgKFVOTElLRUxZKHJl
c3VsdCAhPSBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHkpKSB7CisgICAgICAgICAgICB0b2tlbiA9
IHJlc3VsdCA9PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfVEVNUExBVEVfTElU
RVJBTF9FUlJPUlRPSyA6IElOVkFMSURfVEVNUExBVEVfTElURVJBTF9FUlJPUlRPSzsKKyAgICAg
ICAgICAgIGdvdG8gcmV0dXJuRXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgdG9rZW4gPSBURU1Q
TEFURTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyNlbmRpZgogICAgIGNhc2UgQ2hhcmFj
dGVySWRlbnRpZmllclN0YXJ0OgogICAgICAgICBBU1NFUlQoaXNJZGVudFN0YXJ0KG1fY3VycmVu
dCkpOwogICAgICAgICBGQUxMVEhST1VHSDsKQEAgLTIwMzUsNiArMjI1OSw0MCBAQCBzdGF0aWMg
QUxXQVlTX0lOTElORSBib29sIGNoYXJhY3RlclJlcXVpcmVzUGFyc2VTdHJpbmdTbG93Q2FzZShV
Q2hhciBjaGFyYWN0ZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoRVM2X1RF
TVBMQVRFX0xJVEVSQUxfU1lOVEFYKQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitKU1Rva2VuVHlw
ZSBMZXhlcjxUPjo6c2NhblRyYWlsaW5nVGVtcGxhdGVFbGVtZW50KEpTVG9rZW4qIHRva2VuUmVj
b3JkKQoreworICAgIEpTVG9rZW5EYXRhKiB0b2tlbkRhdGEgPSAmdG9rZW5SZWNvcmQtPm1fZGF0
YTsKKyAgICBKU1Rva2VuTG9jYXRpb24qIHRva2VuTG9jYXRpb24gPSAmdG9rZW5SZWNvcmQtPm1f
bG9jYXRpb247CisgICAgQVNTRVJUKCFtX2Vycm9yKTsKKyAgICBBU1NFUlQobV9idWZmZXIxNi5p
c0VtcHR5KCkpOworCisgICAgLy8gTGVhZGluZyBjbG9zaW5nIGJyYWNlIH0gaXMgYWxyZWFkeSBz
aGlmdGVkIGluIHRoZSBwcmV2aW91cyB0b2tlbiBzY2FuLgorICAgIC8vIFNvIGluIHRoaXMgcmUt
c2NhbiBwaGFzZSwgc2hpZnQoKSBpcyBub3QgbmVlZGVkIGhlcmUuCisgICAgU3RyaW5nUGFyc2VS
ZXN1bHQgcmVzdWx0ID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWw8dHJ1ZT4odG9rZW5EYXRhKTsKKyAg
ICBKU1Rva2VuVHlwZSB0b2tlbiA9IEVSUk9SVE9LOworICAgIGlmIChVTkxJS0VMWShyZXN1bHQg
IT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KSkgeworICAgICAgICB0b2tlbiA9IHJlc3VsdCA9
PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfVEVNUExBVEVfTElURVJBTF9FUlJP
UlRPSyA6IElOVkFMSURfVEVNUExBVEVfTElURVJBTF9FUlJPUlRPSzsKKyAgICAgICAgbV9lcnJv
ciA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdG9rZW4gPSBURU1QTEFURTsKKyAgICAg
ICAgbV9sYXN0VG9rZW4gPSB0b2tlbjsKKyAgICB9CisKKyAgICAvLyBTaW5jZSBUZW1wbGF0ZUVs
ZW1lbnQgYWx3YXlzIGVuZHMgd2l0aCBgIG9yIH0sIG1fYXRMaW5lU3RhcnQgYWx3YXlzIGJlY29t
ZXMgZmFsc2UuCisgICAgbV9hdExpbmVTdGFydCA9IGZhbHNlOworCisgICAgLy8gQWRqdXN0IGN1
cnJlbnQgdG9rZW5Mb2NhdGlvbiBkYXRhIGZvciBUZW1wbGF0ZUVsZW1lbnQuCisgICAgdG9rZW5M
b2NhdGlvbi0+bGluZSA9IG1fbGluZU51bWJlcjsKKyAgICB0b2tlbkxvY2F0aW9uLT5lbmRPZmZz
ZXQgPSBjdXJyZW50T2Zmc2V0KCk7CisgICAgdG9rZW5Mb2NhdGlvbi0+bGluZVN0YXJ0T2Zmc2V0
ID0gY3VycmVudExpbmVTdGFydE9mZnNldCgpOworICAgIEFTU0VSVCh0b2tlbkxvY2F0aW9uLT5l
bmRPZmZzZXQgPj0gdG9rZW5Mb2NhdGlvbi0+bGluZVN0YXJ0T2Zmc2V0KTsKKyAgICB0b2tlblJl
Y29yZC0+bV9lbmRQb3NpdGlvbiA9IGN1cnJlbnRQb3NpdGlvbigpOworICAgIHJldHVybiB0b2tl
bjsKK30KKyNlbmRpZgorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIHZvaWQgTGV4ZXI8VD46OmNs
ZWFyKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaAppbmRleCAyZGY1MjEzOTk1
NzgyMDA3ODVhMTY2ZTIyYTczMjc1ZTBlYTYzMDRkLi4zMTkwYWYyNWE2MmFlMmExMjk4OGQ3ZThi
Y2U0ZWQxMTFkMjU3MWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0xleGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCkBAIC05
OSw2ICs5OSw5IEBAIGNsYXNzIExleGVyIHsKICAgICBpbnQgbGFzdExpbmVOdW1iZXIoKSBjb25z
dCB7IHJldHVybiBtX2xhc3RMaW5lTnVtYmVyOyB9CiAgICAgYm9vbCBwcmV2VGVybWluYXRvcigp
IGNvbnN0IHsgcmV0dXJuIG1fdGVybWluYXRvcjsgfQogICAgIGJvb2wgc2NhblJlZ0V4cChjb25z
dCBJZGVudGlmaWVyKiYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmllciomIGZsYWdzLCBVQ2hhciBw
YXR0ZXJuUHJlZml4ID0gMCk7CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRB
WCkKKyAgICBKU1Rva2VuVHlwZSBzY2FuVHJhaWxpbmdUZW1wbGF0ZUVsZW1lbnQoSlNUb2tlbiop
OworI2VuZGlmCiAgICAgYm9vbCBza2lwUmVnRXhwKCk7CiAKICAgICAvLyBGdW5jdGlvbnMgZm9y
IHVzZSBhZnRlciBwYXJzaW5nLgpAQCAtMjAyLDYgKzIwNSw5IEBAIGNsYXNzIExleGVyIHsKICAg
ICB9OwogICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gQUxXQVlTX0lOTElO
RSBTdHJpbmdQYXJzZVJlc3VsdCBwYXJzZVN0cmluZyhKU1Rva2VuRGF0YSosIGJvb2wgc3RyaWN0
TW9kZSk7CiAgICAgdGVtcGxhdGUgPGJvb2wgc2hvdWxkQnVpbGRTdHJpbmdzPiBORVZFUl9JTkxJ
TkUgU3RyaW5nUGFyc2VSZXN1bHQgcGFyc2VTdHJpbmdTbG93Q2FzZShKU1Rva2VuRGF0YSosIGJv
b2wgc3RyaWN0TW9kZSk7CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkK
KyAgICB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IEFMV0FZU19JTkxJTkUgU3Ry
aW5nUGFyc2VSZXN1bHQgcGFyc2VUZW1wbGF0ZUxpdGVyYWwoSlNUb2tlbkRhdGEqKTsKKyNlbmRp
ZgogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwYXJzZUhleChkb3VibGUmIHJldHVyblZhbHVlKTsK
ICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGFyc2VCaW5hcnkoZG91YmxlJiByZXR1cm5WYWx1ZSk7
CiAgICAgQUxXQVlTX0lOTElORSBib29sIHBhcnNlT2N0YWwoZG91YmxlJiByZXR1cm5WYWx1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3Rv
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmlu
ZGV4IDA1N2JjM2Q5MjgwOWY0NmIwNjI3MWFjMDEyYWJlY2Q2Yzg4YTY4NGEuLjA1ZmE5OTQwYjlh
MDViM2UxNzAxMzlhNWZjYmFjYzM2ZTg1NGM5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC0xMDAsNiArMTAwLDU1IEBACiAgICAg
ewogICAgIH0KIAorI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAg
aW5saW5lIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0
Tm9kZShFeHByZXNzaW9uTm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAg
ICAgICAgLCBtX25vZGUobm9kZSkKKyAgICB7CisgICAgfQorCisgICAgaW5saW5lIFRlbXBsYXRl
RXhwcmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZShUZW1wbGF0ZUV4
cHJlc3Npb25MaXN0Tm9kZSogcHJldiwgRXhwcmVzc2lvbk5vZGUqIG5vZGUpCisgICAgICAgIDog
bV9uZXh0KG51bGxwdHIpCisgICAgICAgICwgbV9ub2RlKG5vZGUpCisgICAgeworICAgICAgICBw
cmV2LT5tX25leHQgPSB0aGlzOworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZUVsZW1lbnRO
b2RlOjpUZW1wbGF0ZUVsZW1lbnROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24s
IGNvbnN0IElkZW50aWZpZXImIGNvb2tlZCwgY29uc3QgSWRlbnRpZmllciYgcmF3KQorICAgICAg
ICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1fY29va2VkKGNvb2tlZCkK
KyAgICAgICAgLCBtX3JhdyhyYXcpCisgICAgeworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0
ZUVsZW1lbnRMaXN0Tm9kZTo6VGVtcGxhdGVFbGVtZW50TGlzdE5vZGUoVGVtcGxhdGVFbGVtZW50
Tm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAgICAgICAgLCBtX25vZGUo
bm9kZSkKKyAgICB7CisgICAgfQorCisgICAgaW5saW5lIFRlbXBsYXRlRWxlbWVudExpc3ROb2Rl
OjpUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZShUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSogcHJldiwg
VGVtcGxhdGVFbGVtZW50Tm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAg
ICAgICAgLCBtX25vZGUobm9kZSkKKyAgICB7CisgICAgICAgIHByZXYtPm1fbmV4dCA9IHRoaXM7
CisgICAgfQorCisgICAgaW5saW5lIFRlbXBsYXRlTGl0ZXJhbE5vZGU6OlRlbXBsYXRlTGl0ZXJh
bE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgVGVtcGxhdGVFbGVtZW50TGlz
dE5vZGUqIHRlbXBsYXRlRWxlbWVudHMpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRp
b24pCisgICAgICAgICwgbV90ZW1wbGF0ZUVsZW1lbnRzKHRlbXBsYXRlRWxlbWVudHMpCisgICAg
ICAgICwgbV90ZW1wbGF0ZUV4cHJlc3Npb25zKG51bGxwdHIpCisgICAgeworICAgIH0KKworICAg
IGlubGluZSBUZW1wbGF0ZUxpdGVyYWxOb2RlOjpUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFRlbXBsYXRlRWxlbWVudExpc3ROb2RlKiB0ZW1wbGF0
ZUVsZW1lbnRzLCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogdGVtcGxhdGVFeHByZXNzaW9u
cykKKyAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBtX3RlbXBs
YXRlRWxlbWVudHModGVtcGxhdGVFbGVtZW50cykKKyAgICAgICAgLCBtX3RlbXBsYXRlRXhwcmVz
c2lvbnModGVtcGxhdGVFeHByZXNzaW9ucykKKyAgICB7CisgICAgfQorI2VuZGlmCisKICAgICBp
bmxpbmUgUmVnRXhwTm9kZTo6UmVnRXhwTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0
aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0ZXJuLCBjb25zdCBJZGVudGlmaWVyJiBmbGFncykK
ICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX3BhdHRlcm4o
cGF0dGVybikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCA5YzUxNDE2ZTA4
MzhkM2ZlMTg0OTJkZTg2NGZmYTFjNWNlODM3OGRmLi4zNjg2YmFhZGZjMzVkZDkxNTQzNzJhNTcz
ZTcwNWRiYTcxNTA4NmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0y
NzQsNyArMjc0LDcgQEAKIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX3ZhbHVlOwogICAg
IH07Ci0gICAgCisKICAgICBjbGFzcyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVi
bGljOgogICAgICAgICBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSgpCkBAIC00MjcsNiArNDI3LDYw
IEBACiAgICAgICAgIHVpbnQxNl90IG1fc3ViZXhwcmVzc2lvbkxpbmVTdGFydE9mZnNldDsKICAg
ICB9OwogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBjbGFz
cyBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSA6IHB1YmxpYyBQYXJzZXJBcmVuYUZyZWVhYmxl
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKEV4cHJl
c3Npb25Ob2RlKik7CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKFRlbXBsYXRl
RXhwcmVzc2lvbkxpc3ROb2RlKiwgRXhwcmVzc2lvbk5vZGUqKTsKKworICAgICAgICBFeHByZXNz
aW9uTm9kZSogdmFsdWUoKSB7IHJldHVybiBtX25vZGU7IH0KKyAgICAgICAgVGVtcGxhdGVFeHBy
ZXNzaW9uTGlzdE5vZGUqIG5leHQoKSB7IHJldHVybiBtX25leHQ7IH0KKworICAgIHByaXZhdGU6
CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBtX25leHQ7CisgICAgICAgIEV4
cHJlc3Npb25Ob2RlKiBtX25vZGU7CisgICAgfTsKKworICAgIGNsYXNzIFRlbXBsYXRlRWxlbWVu
dE5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGVt
cGxhdGVFbGVtZW50Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVy
JiBjb29rZWQsIGNvbnN0IElkZW50aWZpZXImIHJhdyk7CisKKyAgICAgICAgY29uc3QgSWRlbnRp
ZmllciYgY29va2VkKCkgeyByZXR1cm4gbV9jb29rZWQ7IH0KKyAgICAgICAgY29uc3QgSWRlbnRp
ZmllciYgcmF3KCkgeyByZXR1cm4gbV9yYXc7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZp
cnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2Nvb2tl
ZDsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9yYXc7CisgICAgfTsKKworICAgIGNsYXNz
IFRlbXBsYXRlRWxlbWVudExpc3ROb2RlIDogcHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUoVGVtcGxhdGVFbGVt
ZW50Tm9kZSopOworICAgICAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZShUZW1wbGF0ZUVsZW1l
bnRMaXN0Tm9kZSosIFRlbXBsYXRlRWxlbWVudE5vZGUqKTsKKworICAgICAgICBUZW1wbGF0ZUVs
ZW1lbnROb2RlKiB2YWx1ZSgpIHsgcmV0dXJuIG1fbm9kZTsgfQorICAgICAgICBUZW1wbGF0ZUVs
ZW1lbnRMaXN0Tm9kZSogbmV4dCgpIHsgcmV0dXJuIG1fbmV4dDsgfQorCisgICAgcHJpdmF0ZToK
KyAgICAgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqIG1fbmV4dDsKKyAgICAgICAgVGVtcGxh
dGVFbGVtZW50Tm9kZSogbV9ub2RlOworICAgIH07CisKKyAgICBjbGFzcyBUZW1wbGF0ZUxpdGVy
YWxOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRl
bXBsYXRlTGl0ZXJhbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgVGVtcGxhdGVFbGVtZW50
TGlzdE5vZGUqKTsKKyAgICAgICAgVGVtcGxhdGVMaXRlcmFsTm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBUZW1wbGF0ZUVsZW1lbnRMaXN0Tm9kZSosIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3RO
b2RlKik7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisK
KyAgICAgICAgVGVtcGxhdGVFbGVtZW50TGlzdE5vZGUqIG1fdGVtcGxhdGVFbGVtZW50czsKKyAg
ICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIG1fdGVtcGxhdGVFeHByZXNzaW9uczsK
KyAgICB9OworI2VuZGlmCisKICAgICBjbGFzcyBSZWdFeHBOb2RlIDogcHVibGljIEV4cHJlc3Np
b25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAg
ICAgICAgUmVnRXhwTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVy
JiBwYXR0ZXJuLCBjb25zdCBJZGVudGlmaWVyJiBmbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNWY1MWRhMjRiNDM4NTM5YjdkNWIwZjQ5NTQxNDkwOTU0
NjI3MjcyNi4uNjY4NGNkODBkMTI4ZjJlZWNhY2E5ODA1MDVlZjBkMDg5MDQzODE4NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMjI1Niw2ICsyMjU2LDYzIEBA
IEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaXNVbmFyeU9wKEpTVG9rZW5UeXBlIHRva2VuKQog
ICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUFycmF5KGxvY2F0aW9uLCBlbGVtZW50TGlzdCk7CiB9
CiAKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQordGVtcGxhdGUgPHR5
cGVuYW1lIExleGVyVHlwZT4KK3RlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gdHlwZW5hbWUg
VHJlZUJ1aWxkZXI6OlRlbXBsYXRlRWxlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1w
bGF0ZUVsZW1lbnQoVHJlZUJ1aWxkZXImIGNvbnRleHQsIGJvb2wgaXNUZW1wbGF0ZUhlYWQsIGJv
b2wmIGVsZW1lbnRJc1RhaWwpCit7CisgICAgaWYgKCFpc1RlbXBsYXRlSGVhZCkgeworICAgICAg
ICBtYXRjaE9yRmFpbChDTE9TRUJSQUNFLCAiRXhwZWN0ZWQgYSBjbG9zaW5nICd9JyBmb2xsb3dp
bmcgYW4gZXhwcmVzc2lvbiBpbiB0ZW1wbGF0ZSBsaXRlcmFsIik7CisgICAgICAgIC8vIFJlLXNj
YW4gdGhlIHRva2VuIHRvIHJlY29nbml6ZSBpdCBhcyBUZW1wbGF0ZSBFbGVtZW50LgorICAgICAg
ICBtX3Rva2VuLm1fdHlwZSA9IG1fbGV4ZXItPnNjYW5UcmFpbGluZ1RlbXBsYXRlRWxlbWVudCgm
bV90b2tlbik7CisgICAgfQorICAgIG1hdGNoT3JGYWlsKFRFTVBMQVRFLCAiRXhwZWN0ZWQgYW4g
dGVtcGxhdGUgZWxlbWVudCIpOworICAgIGNvbnN0IElkZW50aWZpZXIqIGNvb2tlZCA9IG1fdG9r
ZW4ubV9kYXRhLmNvb2tlZDsKKyAgICBjb25zdCBJZGVudGlmaWVyKiByYXcgPSBtX3Rva2VuLm1f
ZGF0YS5yYXc7CisgICAgZWxlbWVudElzVGFpbCA9IG1fdG9rZW4ubV9kYXRhLmlzVGFpbDsKKyAg
ICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9rZW5Mb2NhdGlvbigpKTsKKyAgICBuZXh0KCk7
CisgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFbGVtZW50KGxvY2F0aW9uLCAqY29v
a2VkLCAqcmF3KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KK3RlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlTGl0ZXJh
bCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1wbGF0ZUxpdGVyYWwoVHJlZUJ1aWxkZXImIGNv
bnRleHQpCit7CisgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7
CisgICAgYm9vbCBlbGVtZW50SXNUYWlsID0gZmFsc2U7CisKKyAgICBhdXRvIGhlYWRUZW1wbGF0
ZUVsZW1lbnQgPSBwYXJzZVRlbXBsYXRlRWxlbWVudChjb250ZXh0LCB0cnVlLCBlbGVtZW50SXNU
YWlsKTsKKyAgICBmYWlsSWZGYWxzZShoZWFkVGVtcGxhdGVFbGVtZW50LCAiQ2Fubm90IHBhcnNl
IGhlYWQgdGVtcGxhdGUgZWxlbWVudCIpOworCisgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRl
bXBsYXRlRWxlbWVudExpc3QgdGVtcGxhdGVFbGVtZW50TGlzdCA9IGNvbnRleHQuY3JlYXRlVGVt
cGxhdGVFbGVtZW50TGlzdChoZWFkVGVtcGxhdGVFbGVtZW50KTsKKyAgICB0eXBlbmFtZSBUcmVl
QnVpbGRlcjo6VGVtcGxhdGVFbGVtZW50TGlzdCB0ZW1wbGF0ZUVsZW1lbnRUYWlsID0gdGVtcGxh
dGVFbGVtZW50TGlzdDsKKworICAgIGlmIChlbGVtZW50SXNUYWlsKQorICAgICAgICByZXR1cm4g
Y29udGV4dC5jcmVhdGVUZW1wbGF0ZUxpdGVyYWwobG9jYXRpb24sIHRlbXBsYXRlRWxlbWVudExp
c3QpOworCisgICAgVHJlZUV4cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVzc2lvbihj
b250ZXh0KTsKKyAgICBmYWlsSWZGYWxzZShleHByZXNzaW9uLCAiQ2Fubm90IHBhcnNlIGV4cHJl
c3Npb24gaW4gdGVtcGxhdGUgbGl0ZXJhbCIpOworCisgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6
OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3QgdGVtcGxhdGVFeHByZXNzaW9uTGlzdCA9IGNvbnRleHQu
Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChleHByZXNzaW9uKTsKKyAgICB0eXBlbmFtZSBU
cmVlQnVpbGRlcjo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdCB0ZW1wbGF0ZUV4cHJlc3Npb25UYWls
ID0gdGVtcGxhdGVFeHByZXNzaW9uTGlzdDsKKworICAgIGF1dG8gdGVtcGxhdGVFbGVtZW50ID0g
cGFyc2VUZW1wbGF0ZUVsZW1lbnQoY29udGV4dCwgZmFsc2UsIGVsZW1lbnRJc1RhaWwpOworICAg
IGZhaWxJZkZhbHNlKHRlbXBsYXRlRWxlbWVudCwgIkNhbm5vdCBwYXJzZSB0ZW1wbGF0ZSBlbGVt
ZW50Iik7CisgICAgdGVtcGxhdGVFbGVtZW50VGFpbCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVF
bGVtZW50TGlzdCh0ZW1wbGF0ZUVsZW1lbnRUYWlsLCB0ZW1wbGF0ZUVsZW1lbnQpOworCisgICAg
d2hpbGUgKCFlbGVtZW50SXNUYWlsKSB7CisgICAgICAgIFRyZWVFeHByZXNzaW9uIGV4cHJlc3Np
b24gPSBwYXJzZUV4cHJlc3Npb24oY29udGV4dCk7CisgICAgICAgIGZhaWxJZkZhbHNlKGV4cHJl
c3Npb24sICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiBpbiB0ZW1wbGF0ZSBsaXRlcmFsIik7Cisg
ICAgICAgIHRlbXBsYXRlRXhwcmVzc2lvblRhaWwgPSBjb250ZXh0LmNyZWF0ZVRlbXBsYXRlRXhw
cmVzc2lvbkxpc3QodGVtcGxhdGVFeHByZXNzaW9uVGFpbCwgZXhwcmVzc2lvbik7CisKKyAgICAg
ICAgYXV0byB0ZW1wbGF0ZUVsZW1lbnQgPSBwYXJzZVRlbXBsYXRlRWxlbWVudChjb250ZXh0LCBm
YWxzZSwgZWxlbWVudElzVGFpbCk7CisgICAgICAgIGZhaWxJZkZhbHNlKHRlbXBsYXRlRWxlbWVu
dCwgIkNhbm5vdCBwYXJzZSB0ZW1wbGF0ZSBlbGVtZW50Iik7CisgICAgICAgIHRlbXBsYXRlRWxl
bWVudFRhaWwgPSBjb250ZXh0LmNyZWF0ZVRlbXBsYXRlRWxlbWVudExpc3QodGVtcGxhdGVFbGVt
ZW50VGFpbCwgdGVtcGxhdGVFbGVtZW50KTsKKyAgICB9CisKKyAgICByZXR1cm4gY29udGV4dC5j
cmVhdGVUZW1wbGF0ZUxpdGVyYWwobG9jYXRpb24sIHRlbXBsYXRlRWxlbWVudExpc3QsIHRlbXBs
YXRlRXhwcmVzc2lvbkxpc3QpOworfQorI2VuZGlmCisKIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhl
clR5cGU+CiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKFRyZWVCdWlsZGVyJiBjb250ZXh0
KQogewpAQCAtMjM1Nyw2ICsyNDE0LDEwIEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaXNV
bmFyeU9wKEpTVG9rZW5UeXBlIHRva2VuKQogICAgICAgICB9CiAgICAgICAgIHJldHVybiByZTsK
ICAgICB9CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBjYXNl
IFRFTVBMQVRFOgorICAgICAgICByZXR1cm4gcGFyc2VUZW1wbGF0ZUxpdGVyYWwoY29udGV4dCk7
CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICBmYWlsRHVlVG9VbmV4cGVjdGVkVG9rZW4o
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCBkY2VjNTBh
ZjYwZjFlZjcxZjFhYTllNGY4OGQ4ZmM3ZDdmNTZhNzRhLi5mZjQzNGM1NzM4OGVlZTYwNWZhZjZh
ZjUxOWUyMTAzNjUzZGNhMzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgK
QEAgLTc3Niw2ICs3NzYsMTAgQEAgY2xhc3MgUGFyc2VyIHsKICNpZiBFTkFCTEUoRVM2X0NMQVNT
X1NZTlRBWCkKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElORSBU
cmVlQ2xhc3NFeHByZXNzaW9uIHBhcnNlQ2xhc3MoVHJlZUJ1aWxkZXImLCBGdW5jdGlvblJlcXVp
cmVtZW50cywgUGFyc2VyQ2xhc3NJbmZvPFRyZWVCdWlsZGVyPiYpOwogI2VuZGlmCisjaWYgRU5B
QkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJl
ZUJ1aWxkZXI+IE5FVkVSX0lOTElORSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFbGVt
ZW50IHBhcnNlVGVtcGxhdGVFbGVtZW50KFRyZWVCdWlsZGVyJiBjb250ZXh0LCBib29sIGlzVGVt
cGxhdGVIZWFkLCBib29sJiBlbGVtZW50SXNUYWlsKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJl
ZUJ1aWxkZXI+IE5FVkVSX0lOTElORSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVMaXRl
cmFsIHBhcnNlVGVtcGxhdGVMaXRlcmFsKFRyZWVCdWlsZGVyJik7CisjZW5kaWYKIAogICAgIEFM
V0FZU19JTkxJTkUgaW50IGlzQmluYXJ5T3BlcmF0b3IoSlNUb2tlblR5cGUpOwogICAgIGJvb2wg
YWxsb3dBdXRvbWF0aWNTZW1pY29sb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlclRva2Vucy5oCmluZGV4IDgzMjlmODJhOWIyZmY5MTVkMWYyNDFjMWY4YmZmYWQ0MjQ3
YTVmMGIuLjAyNmU0ZjgwZjQzN2Q4YmZlNGE2MTljMzBkMTFkYzlmYzYxZTI2NDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaApAQCAtOTYsNiArOTYsNyBA
QCBlbnVtIEpTVG9rZW5UeXBlIHsKICAgICBET1VCTEUsCiAgICAgSURFTlQsCiAgICAgU1RSSU5H
LAorICAgIFRFTVBMQVRFLAogICAgIFNFTUlDT0xPTiwKICAgICBDT0xPTiwKICAgICBET1QsCkBA
IC0xNjEsNyArMTYyLDkgQEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgSU5WQUxJRF9TVFJJTkdf
TElURVJBTF9FUlJPUlRPSyA9IDkgfCBFcnJvclRva2VuRmxhZywKICAgICBJTlZBTElEX1BSSVZB
VEVfTkFNRV9FUlJPUlRPSyA9IDEwIHwgRXJyb3JUb2tlbkZsYWcsCiAgICAgSU5WQUxJRF9IRVhf
TlVNQkVSX0VSUk9SVE9LID0gMTEgfCBFcnJvclRva2VuRmxhZywKLSAgICBJTlZBTElEX0JJTkFS
WV9OVU1CRVJfRVJST1JUT0sgPSAxMiB8IEVycm9yVG9rZW5GbGFnCisgICAgSU5WQUxJRF9CSU5B
UllfTlVNQkVSX0VSUk9SVE9LID0gMTIgfCBFcnJvclRva2VuRmxhZywKKyAgICBVTlRFUk1JTkFU
RURfVEVNUExBVEVfTElURVJBTF9FUlJPUlRPSyA9IDEzIHwgRXJyb3JUb2tlbkZsYWcgfCBVbnRl
cm1pbmF0ZWRFcnJvclRva2VuRmxhZywKKyAgICBJTlZBTElEX1RFTVBMQVRFX0xJVEVSQUxfRVJS
T1JUT0sgPSAxNCB8IEVycm9yVG9rZW5GbGFnLAogfTsKIAogc3RydWN0IEpTVGV4dFBvc2l0aW9u
IHsKQEAgLTE4OSw2ICsxOTIsMTEgQEAgc3RydWN0IEpTVGV4dFBvc2l0aW9uIHsKICAgICB9Owog
ICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKICAgICBjb25zdCBJZGVudGlmaWVyKiBpZGVudDsKKyAg
ICBzdHJ1Y3QgeworICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBjb29rZWQ7CisgICAgICAgIGNv
bnN0IElkZW50aWZpZXIqIHJhdzsKKyAgICAgICAgYm9vbCBpc1RhaWw7CisgICAgfTsKIH07CiAK
IHN0cnVjdCBKU1Rva2VuTG9jYXRpb24gewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1N5bnRheENoZWNrZXIuaAppbmRleCA4YjQ3NTg0YmE3YjdhNGYyOWMwZjBlMGVhZDU3ZTA3MzRm
YWJmZTJmLi45ZjNjMTE2YzhmMzdiZDQwOTQxYWUyOTM1NTM3OGI5YTNlMTA2MGFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaApAQCAtODEsNyArODEs
OCBAQCBjbGFzcyBTeW50YXhDaGVja2VyIHsKICAgICAgICAgRnVuY3Rpb25Cb2R5UmVzdWx0LCBT
cHJlYWRFeHByLCBBcmd1bWVudHNSZXN1bHQsCiAgICAgICAgIFByb3BlcnR5TGlzdFJlc3VsdCwg
QXJndW1lbnRzTGlzdFJlc3VsdCwgRWxlbWVudHNMaXN0UmVzdWx0LAogICAgICAgICBTdGF0ZW1l
bnRSZXN1bHQsIEZvcm1hbFBhcmFtZXRlckxpc3RSZXN1bHQsIENsYXVzZVJlc3VsdCwKLSAgICAg
ICAgQ2xhdXNlTGlzdFJlc3VsdCwgQ29tbWFFeHByLCBEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnQK
KyAgICAgICAgQ2xhdXNlTGlzdFJlc3VsdCwgQ29tbWFFeHByLCBEZWNvbnN0cnVjdGluZ0Fzc2ln
bm1lbnQsCisgICAgICAgIFRlbXBsYXRlRWxlbWVudFJlc3VsdCwgVGVtcGxhdGVFbGVtZW50TGlz
dFJlc3VsdCwgVGVtcGxhdGVFeHByZXNzaW9uTGlzdFJlc3VsdCwgVGVtcGxhdGVFeHByCiAgICAg
fTsKICAgICB0eXBlZGVmIGludCBFeHByZXNzaW9uVHlwZTsKIApAQCAtMTExLDYgKzExMiwxMiBA
QCBjbGFzcyBTeW50YXhDaGVja2VyIHsKICAgICB0eXBlZGVmIGludCBQcm9wZXJ0eUxpc3Q7CiAg
ICAgdHlwZWRlZiBpbnQgRWxlbWVudExpc3Q7CiAgICAgdHlwZWRlZiBpbnQgQXJndW1lbnRzTGlz
dDsKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIHR5cGVkZWYg
aW50IFRlbXBsYXRlRXhwcmVzc2lvbkxpc3Q7CisgICAgdHlwZWRlZiBpbnQgVGVtcGxhdGVFbGVt
ZW50OworICAgIHR5cGVkZWYgaW50IFRlbXBsYXRlRWxlbWVudExpc3Q7CisgICAgdHlwZWRlZiBp
bnQgVGVtcGxhdGVMaXRlcmFsOworI2VuZGlmCiAgICAgdHlwZWRlZiBpbnQgRm9ybWFsUGFyYW1l
dGVyTGlzdDsKICAgICB0eXBlZGVmIGludCBGdW5jdGlvbkJvZHk7CiAjaWYgRU5BQkxFKEVTNl9D
TEFTU19TWU5UQVgpCkBAIC0xNzMsNiArMTgwLDE2IEBAIGNsYXNzIFN5bnRheENoZWNrZXIgewog
ICAgIGludCBjcmVhdGVBcmd1bWVudHMoKSB7IHJldHVybiBBcmd1bWVudHNSZXN1bHQ7IH0KICAg
ICBpbnQgY3JlYXRlQXJndW1lbnRzKGludCkgeyByZXR1cm4gQXJndW1lbnRzUmVzdWx0OyB9CiAg
ICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlU3ByZWFkRXhwcmVzc2lvbihjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBFeHByZXNzaW9uVHlwZSwgaW50LCBpbnQsIGludCkgeyByZXR1cm4gU3ByZWFkRXhw
cjsgfQorI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgVGVtcGxh
dGVFbGVtZW50IGNyZWF0ZVRlbXBsYXRlRWxlbWVudChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgSWRlbnRpZmllciYpIHsgcmV0dXJuIFRlbXBsYXRlRWxl
bWVudFJlc3VsdDsgfQorICAgIFRlbXBsYXRlRWxlbWVudExpc3QgY3JlYXRlVGVtcGxhdGVFbGVt
ZW50TGlzdChUZW1wbGF0ZUVsZW1lbnQpIHsgcmV0dXJuIFRlbXBsYXRlRWxlbWVudExpc3RSZXN1
bHQ7IH0KKyAgICBUZW1wbGF0ZUVsZW1lbnRMaXN0IGNyZWF0ZVRlbXBsYXRlRWxlbWVudExpc3Qo
VGVtcGxhdGVFbGVtZW50TGlzdCwgVGVtcGxhdGVFbGVtZW50KSB7IHJldHVybiBUZW1wbGF0ZUVs
ZW1lbnRMaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdCBjcmVhdGVUZW1w
bGF0ZUV4cHJlc3Npb25MaXN0KEV4cHJlc3Npb24pIHsgcmV0dXJuIFRlbXBsYXRlRXhwcmVzc2lv
bkxpc3RSZXN1bHQ7IH0KKyAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0IGNyZWF0ZVRlbXBsYXRl
RXhwcmVzc2lvbkxpc3QoVGVtcGxhdGVFeHByZXNzaW9uTGlzdCwgRXhwcmVzc2lvbikgeyByZXR1
cm4gVGVtcGxhdGVFeHByZXNzaW9uTGlzdFJlc3VsdDsgfQorICAgIFRlbXBsYXRlTGl0ZXJhbCBj
cmVhdGVUZW1wbGF0ZUxpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgVGVtcGxhdGVFbGVt
ZW50TGlzdCkgeyByZXR1cm4gVGVtcGxhdGVFeHByOyB9CisgICAgVGVtcGxhdGVMaXRlcmFsIGNy
ZWF0ZVRlbXBsYXRlTGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBUZW1wbGF0ZUVsZW1l
bnRMaXN0LCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KSB7IHJldHVybiBUZW1wbGF0ZUV4cHI7IH0K
KyNlbmRpZgorCiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgaW50KSB7IHJldHVybiBBcmd1bWVudHNMaXN0UmVzdWx0OyB9CiAgICAgaW50IGNyZWF0
ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBpbnQpIHsgcmV0dXJu
IEFyZ3VtZW50c0xpc3RSZXN1bHQ7IH0KICAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShjb25z
dCBJZGVudGlmaWVyKiBuYW1lLCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0
eU5vZGU6OlB1dFR5cGUsIGJvb2wgY29tcGxldGUsIFN1cGVyQmluZGluZyA9IFN1cGVyQmluZGlu
Zzo6Tm90TmVlZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
blNsb3dQYXRocy5jcHAKaW5kZXggNjUzZWJkYjg0ZmFhNmRjNWZhMDQwNTI3NjkyOGRiZWE3MzM5
Y2M2NC4uZGNmZGRkZDA3NTZhYzZjMjE0NmVjZDg0YTUyNDNiMDQ2ZTE0MjU5YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC0z
NDUsNiArMzQ1LDEyIEBAIHN0YXRpYyBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhKiBz
ZXR1cEFyaXR5Q2hlY2tEYXRhKFZNJiB2bSwgaW50IHNsb3RzVG9BCiAgICAgUkVUVVJOKGpzTnVt
YmVyKE9QX0MoMikuanNWYWx1ZSgpLnRvTnVtYmVyKGV4ZWMpKSk7CiB9CiAKK1NMT1dfUEFUSF9E
RUNMKHNsb3dfcGF0aF90b19zdHJpbmcpCit7CisgICAgQkVHSU4oKTsKKyAgICBSRVRVUk4oT1Bf
QygyKS5qc1ZhbHVlKCkudG9TdHJpbmcoZXhlYykpOworfQorCiBTTE9XX1BBVEhfREVDTChzbG93
X3BhdGhfbmVnYXRlKQogewogICAgIEJFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGY2MGJiYzg0ZWYxYTQ1OTdlYjA1YzVh
YmIzZmFlMzE5ZDIzYTFmNjguLmQyNGFjYjVlNTNhYjdiMTI4ZWNmODBiNjA0NTY3N2QxNGVmMGVm
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5oCkBAIC0yMDIsNiArMjAyLDcgQEAgaW5saW5lIHZvaWQgZGVjb2RlUmVzdWx0KFNsb3dQYXRo
UmV0dXJuVHlwZSByZXN1bHQsIHZvaWQqJiBhLCB2b2lkKiYgYikKIFNMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfaW5jKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZGVj
KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdG9fbnVtYmVyKTsKK1NMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfdG9fc3RyaW5nKTsKIFNMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfbmVnYXRlKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfYWRk
KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbXVsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1saW5lLXRl
cm1pbmF0b3JzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0
ZS1saXRlcmFsLWxpbmUtdGVybWluYXRvcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ1MDRiZWZiZTlkMTQ2
M2ZhNmZjMGNmOWQ5M2ZhMmMxZTc1NGRkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1saW5lLXRlcm1pbmF0b3Jz
LmpzCkBAIC0wLDAgKzEsNTYgQEAKK2Z1bmN0aW9uIHRlc3QoYWN0dWFsLCBleHBlY3RlZCkgewor
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJh
ZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RFdmFsKHNjcmlwdCwgZXhw
ZWN0ZWQpIHsKKyAgICB0ZXN0KGV2YWwoc2NyaXB0KSwgZXhwZWN0ZWQpOworfQorCitmdW5jdGlv
biB0ZXN0RXZhbExpbmVOdW1iZXIoc2NyaXB0LCBleHBlY3RlZCwgbGluZU51bSkgeworICAgIHRl
c3RFdmFsKHNjcmlwdCwgZXhwZWN0ZWQpOworCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB2
YXIgYWN0dWFsTGluZTsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCArICc7dGhyb3cg
bmV3IEVycm9yKCJsaW5lIik7Jyk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgYWN0
dWFsTGluZSA9IGVycm9yLmxpbmU7CisgICAgfQorICAgIHRlc3QoYWN0dWFsTGluZSwgbGluZU51
bSk7Cit9CisKK3Rlc3QoYEhlbGxvYCwgIkhlbGxvIik7Cit0ZXN0KGBIZWxsbyBXb3JsZGAsICJI
ZWxsbyBXb3JsZCIpOwordGVzdChgCitgLCAiXG4iKTsKK3Rlc3QoYEhlbGxvCitXb3JsZGAsICJI
ZWxsb1xuV29ybGQiKTsKKwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG8gV29ybGRgIiwgIkhl
bGxvIFdvcmxkIiwgMSk7CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXHJXb3JsZGAiLCAi
SGVsbG9cbldvcmxkIiwgMik7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuV29ybGRgIiwg
IkhlbGxvXG5Xb3JsZCIsIDIpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xyXHJXb3Js
ZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXHJc
bldvcmxkYCIsICJIZWxsb1xuV29ybGQiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxv
XG5cbldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJg
SGVsbG9cblxyV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMik7CisKK3Rlc3RFdmFsTGluZU51
bWJlcigiYEhlbGxvXG5cclxuV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7Cit0ZXN0RXZh
bExpbmVOdW1iZXIoImBIZWxsb1xyXG5ccldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwor
dGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cblxuXG5Xb3JsZGAiLCAiSGVsbG9cblxuXG5Xb3Js
ZCIsIDQpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuXHJcblxyV29ybGRgIiwgIkhl
bGxvXG5cblxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5cclxuXG5X
b3JsZGAiLCAiSGVsbG9cblxuXG5Xb3JsZCIsIDQpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVs
bG9cclxuXG5cbldvcmxkYCIsICJIZWxsb1xuXG5cbldvcmxkIiwgNCk7CisKK3Rlc3RFdmFsTGlu
ZU51bWJlcigiYEhlbGxvXFxcblxyXHJXb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKK3Rl
c3RFdmFsTGluZU51bWJlcigiYEhlbGxvXFxcclxuXG5cbldvcmxkYCIsICJIZWxsb1xuXG5Xb3Js
ZCIsIDQpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cXFxuXHJcblxuV29ybGRgIiwgIkhl
bGxvXG5cbldvcmxkIiwgNCk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xcXG5cclxyXG5X
b3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKKwordGVzdEV2YWxMaW5lTnVtYmVyKCJgXHUy
MDI4YCIsICJcdTIwMjgiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYFx1MjAyOWAiLCAiXHUy
MDI5IiwgMik7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBcXHUyMDI4YCIsICJcdTIwMjgiLCAxKTsK
K3Rlc3RFdmFsTGluZU51bWJlcigiYFxcdTIwMjlgIiwgIlx1MjAyOSIsIDEpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLXN5
bnRheC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0
ZXJhbC1zeW50YXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA3OWM5N2U4ODIzZDA5ODFkMmE1ZDBlMDEyZmYz
OTMzYWQ3ZWUwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1zeW50YXguanMKQEAgLTAsMCArMSw2NyBAQAorCitm
dW5jdGlvbiB0ZXN0U3ludGF4KHNjcmlwdCkgeworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2Ny
aXB0KTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2Vv
ZiBTeW50YXhFcnJvcikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGVycm9yOiAi
ICsgU3RyaW5nKGVycm9yKSk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0U3ludGF4RXJyb3Io
c2NyaXB0LCBtZXNzYWdlKSB7CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAg
ICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7
CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhwZWN0
ZWQgc3ludGF4IGVycm9yIG5vdCB0aHJvd24iKTsKKworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9
PSBtZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBlcnJvcjogIiArIFN0cmlu
ZyhlcnJvcikpOworfQorCit0ZXN0U3ludGF4KCJgSGVsbG9gIik7Cit0ZXN0U3ludGF4KCIoYEhl
bGxvYCkiKTsKK3Rlc3RTeW50YXgoIihgSGVsbG9gKSArIDQyIik7Cit0ZXN0U3ludGF4KCJgXG5I
ZWxsb1xuV29ybGRgIik7Cit0ZXN0U3ludGF4KCJgXG5IZWxsb1xuJHtXb3JsZH1gIik7Cit0ZXN0
U3ludGF4KCJgJHtXb3JsZH1gIik7Cit0ZXN0U3ludGF4KCJgJHtXb3JsZH0gSGVsbG9gIik7Cit0
ZXN0U3ludGF4KCJgJCB7V29ybGR9IEhlbGxvYCIpOwordGVzdFN5bnRheCgiYFxcdUZFRkZ0ZXN0
YCIpOwordGVzdFN5bnRheCgiYFxyXG5gIik7Cit0ZXN0U3ludGF4KCJgXFxyXFxuYCIpOwordGVz
dFN5bnRheCgiYFxuYCIpOwordGVzdFN5bnRheCgiYFxcbmAiKTsKK3Rlc3RTeW50YXgoImBcdTIw
MjhgIik7Cit0ZXN0U3ludGF4KCJgXFx1MjAyOGAiKTsKK3Rlc3RTeW50YXgoImBcdTIwMjlgIik7
Cit0ZXN0U3ludGF4KCJgXFx1MjAyOWAiKTsKK3Rlc3RTeW50YXgoImBcXDBgIik7Cit0ZXN0U3lu
dGF4KCJgXDBgIik7Cit0ZXN0U3ludGF4KCJgXFx4N2ZgIik7Cit0ZXN0U3ludGF4KCIoYEhlbGxv
YCkgKyA0MiIpOwordGVzdFN5bnRheCgiYFxcXG5gIik7Cit0ZXN0U3ludGF4KCJgXFxcclxuYCIp
OwordGVzdFN5bnRheCgiYFxcXHJgIik7CisKK3Rlc3RTeW50YXhFcnJvcigiYEhlbGxvIiwgIlN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIEVPRiIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8ke30i
LCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nIik7Cit0ZXN0U3ludGF4RXJyb3Io
ImBIZWxsbyR7ZXhwcn0iLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgRU9GIik7Cit0ZXN0U3lu
dGF4RXJyb3IoImBIZWxsbyR7ZXhwcmAiLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgRU9GIik7
Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxsbyBleHByJHtgIiwgIlN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIEVPRiIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8gJHt9YCIsICJTeW50YXhFcnJvcjog
VW5leHBlY3RlZCB0b2tlbiAnfSciKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxcMDdgIiwgIlN5bnRh
eEVycm9yOiBUaGUgb25seSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAn
XFwwJyIpOworZm9yICh2YXIgaSA9IDE7IGkgPCA3OyArK2kpCisgICAgdGVzdFN5bnRheEVycm9y
KCJgXFwiICsgaSArICJgIiwgIlN5bnRheEVycm9yOiBUaGUgb25seSB2YWxpZCBudW1lcmljIGVz
Y2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXFwwJyIpOworLy8gXDggYW5kIFw5IGFyZSBub3QgYWxs
b3dlZC4KK2ZvciAodmFyIGkgPSA4OyBpIDwgOTsgKytpKQorICAgIHRlc3RTeW50YXhFcnJvcigi
YFxcIiArIGkgKyAiYCIsICJTeW50YXhFcnJvcjogVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBlc2Nh
cGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1xcMCciKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxceDdgIiwg
IlN5bnRheEVycm9yOiBcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVy
IHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHhgIiwgIlN5bnRheEVycm9yOiBcXHgg
Y2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVlbmNlIik7Cit0ZXN0
U3ludGF4RXJyb3IoImBcXHVgIiwgIlN5bnRheEVycm9yOiBcXHUgY2FuIG9ubHkgYmUgZm9sbG93
ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIpOwordGVzdFN5bnRheEVycm9yKCJg
XFx1MmAiLCAiU3ludGF4RXJyb3I6IFxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVuaWNv
ZGUgY2hhcmFjdGVyIHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHUyMGAiLCAiU3lu
dGF4RXJyb3I6IFxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVuaWNvZGUgY2hhcmFjdGVy
IHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHUyMDJgIiwgIlN5bnRheEVycm9yOiBc
XHUgY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0
ZS1saXRlcmFsLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0
ZS1saXRlcmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNjQyNDBhZDhmNzBiYjJiNTg1OTczMWQxY2M2YzY2
ZWQwNWM5YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwuanMKQEAgLTAsMCArMSwxNDIgQEAKK2Z1bmN0aW9uIHRl
c3QoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0
aW9uIHRlc3RFdmFsKHNjcmlwdCwgZXhwZWN0ZWQpIHsKKyAgICB0ZXN0KGV2YWwoc2NyaXB0KSwg
ZXhwZWN0ZWQpOworfQorCitmdW5jdGlvbiB0ZXN0RW1iZWRkZWQodmFsdWUsIGV4cGVjdGVkKSB7
CisgICAgdmFyIHRlbXBsYXRlID0gYEhlbGxvICR7dmFsdWV9IFdvcmxkYDsKKyAgICB0ZXN0KHRl
bXBsYXRlLCBleHBlY3RlZCk7Cit9CisKK3Rlc3QoYEhlbGxvIFdvcmxkYCwgIkhlbGxvIFdvcmxk
Iik7Cit0ZXN0KGBIZWxsbworICAgICAgICBXb3JsZGAsICJIZWxsb1xuICAgICAgICBXb3JsZCIp
OworCit0ZXN0KGBcdUZFRkZgLCAiXHVGRUZGIik7Cit0ZXN0RXZhbCgiYFx1RkVGRmAiLCAiXHVG
RUZGIik7CisKK3Rlc3QoYFx4MjBgLCAiXHgyMCIpOwordGVzdChgXHgyMDIwYCwgIlx4MjAyMCIp
OworCitmb3IgKHZhciBjaCBvZiBbICdcJycsICciJywgJ1xcJywgJ2InLCAnZicsICduJywgJ3In
LCAndCcsICd2JyBdKQorICAgIHRlc3RFdmFsKCJgXFwiICsgY2ggKyAiYCIsIGV2YWwoIidcXCIg
KyBjaCArICInIikpOworCit0ZXN0KGBcCitIZWxsbyBXb3JsZGAsICJIZWxsbyBXb3JsZCIpOwor
Cit0ZXN0KGBcCisKK0hlbGxvIFdvcmxkYCwgIlxuSGVsbG8gV29ybGQiKTsKKwordGVzdChgXHUy
MDI4XHUyMDI5XHJcbmAsICJcdTIwMjhcdTIwMjlcclxuIik7Cit0ZXN0KGBcdTIwMjhcdTIwMjlc
blxyXG5gLCAiXHUyMDI4XHUyMDI5XG5cclxuIik7Cit0ZXN0KGBcdTIwMjgyMDBgLCAiXHUyMDI4
MjAwIik7CisKK3Rlc3RFbWJlZGRlZCg0MiwgIkhlbGxvIDQyIFdvcmxkIik7Cit0ZXN0RW1iZWRk
ZWQoIklTVUNBIiwgIkhlbGxvIElTVUNBIFdvcmxkIik7Cit0ZXN0RW1iZWRkZWQobnVsbCwgIkhl
bGxvIG51bGwgV29ybGQiKTsKK3Rlc3RFbWJlZGRlZCh1bmRlZmluZWQsICJIZWxsbyB1bmRlZmlu
ZWQgV29ybGQiKTsKK3Rlc3RFbWJlZGRlZCh7fSwgIkhlbGxvIFtvYmplY3QgT2JqZWN0XSBXb3Js
ZCIpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZhciBvYmplY3QgPSB7CisgICAgICAgIG5hbWU6
ICJDb2NvYSIsCisgICAgfTsKKyAgICB2YXIgYXJyYXkgPSBbCisgICAgICAgICJDYXBwdWNjaW5v
IgorICAgIF0KKyAgICB0ZXN0KGBIZWxsbyAke29iamVjdC5uYW1lfSBhbmQgJHthcnJheVswXX0g
OkRgLCAiSGVsbG8gQ29jb2EgYW5kIENhcHB1Y2Npbm8gOkQiKTsKK30oKSk7CisKKyhmdW5jdGlv
biAoKSB7CisgICAgZnVuY3Rpb24gb2soKSB7CisgICAgICAgIHJldHVybiAiQ29jb2EiOworICAg
IH0KKyAgICB0ZXN0KGBIZWxsbyAkeyBvaygpIH1gLCAiSGVsbG8gQ29jb2EiKTsKK30oKSk7CisK
KyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgdG9TdHJpbmcoKSB7
CisgICAgICAgICAgICByZXR1cm4gJ0NvY29hJzsKKyAgICAgICAgfQorICAgIH07CisgICAgdGVz
dChgSGVsbG8gJHtvYmplY3R9IDpEYCwgIkhlbGxvIENvY29hIDpEIik7Cit9KCkpOworCisvLyBF
eGNlcHRpb25zCisKKyhmdW5jdGlvbiAoKSB7CisgICAgZnVuY3Rpb24gZ2VuKG51bSkgeworICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKG51bSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQor
CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB2YXIgdGVtcGxhdGUg
PSBgJHtnZW4oMCl9ICR7Z2VuKDEpfSAke2dlbigyKX1gOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoJ25vIGVycm9yIHRocm93bicpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSAn
RXJyb3I6IDAnKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0cmlu
ZyhlcnJvcikpOworCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB2
YXIgdGVtcGxhdGUgPSBgJHs1Mn0gJHtnZW4oMCl9ICR7Z2VuKDEpfWA7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcignbm8gZXJyb3IgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJv
cikgIT09ICdFcnJvcjogMCcpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGVycm9yOiAi
ICsgU3RyaW5nKGVycm9yKSk7Cit9KCkpOworCisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHN0
YXQ9IHsKKyAgICAgICAgY291bnQ6IDAKKyAgICB9OworICAgIGZ1bmN0aW9uIGdlbihudW0pIHsK
KyAgICAgICAgc3RhdFtudW1dID0geworICAgICAgICAgICAgY2FsbGVkOiB0cnVlLAorICAgICAg
ICAgICAgY291bnQ6IHN0YXQuY291bnQrKywKKyAgICAgICAgICAgIHRvU3RyaW5nOiBudWxsCisg
ICAgICAgIH07CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB0b1N0cmluZygpIHsKKyAg
ICAgICAgICAgICAgICBzdGF0W251bV0udG9TdHJpbmcgPSB7CisgICAgICAgICAgICAgICAgICAg
IGNhbGxlZDogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgY291bnQ6IHN0YXQuY291bnQrKywK
KyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihudW0p
OworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIHZhciBlcnJvciA9IG51
bGw7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHRlbXBsYXRlID0gYCR7Z2VuKDApfSAke2dlbigx
KX0gJHtnZW4oMil9YDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAg
ICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBlcnJvciB0
aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gJ0Vycm9yOiAwJykKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJiYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKKyAgICB0ZXN0
KHN0YXRbMF0uY291bnQsIDApOworICAgIHRlc3Qoc3RhdFswXS50b1N0cmluZy5jYWxsZWQsIHRy
dWUpOworICAgIHRlc3Qoc3RhdFswXS50b1N0cmluZy5jb3VudCwgMSk7CisgICAgdGVzdChzdGF0
WzFdLCB1bmRlZmluZWQpOworICAgIHRlc3Qoc3RhdFsyXSwgdW5kZWZpbmVkKTsKK30oKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCmluZGV4IDhiMTEyZmFlNDViOTU3ZGQyNjQxZmRiNmY0Njg5ODgwNTg5YWY4NjAuLjI5
ZGRjYzRmYTc2MGQ5ZWZhN2Y2MmViNWZmYjcyNDg2NjMzZDVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00
NSw2ICs0NSw3IEBAIEVOQUJMRV9DQU5WQVNfUEFUSCA9IEVOQUJMRV9DQU5WQVNfUEFUSDsKIEVO
QUJMRV9DQU5WQVNfUFJPWFkgPSA7CiBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgPSBFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkc7CiBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCA9IEVOQUJMRV9FUzZf
Q0xBU1NfU1lOVEFYOworRU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCA9IEVOQUJM
RV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVg7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcg
PSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ1NQX05FWFQgPSA7CiBFTkFCTEVf
Q1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9IEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yOwpA
QCAtMjE0LDQgKzIxNSw0IEBAIEVOQUJMRV9MTElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRV
UkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1F
VElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NS
T0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVO
VCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChF
TkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
RVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NT
UF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9Y
X0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NT
X0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NT
U19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5B
QkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVf
Q1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9C
UkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVf
SEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VM
RU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxF
TUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19D
T05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRk9OVF9MT0FEX0VW
RU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxF
X0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERF
Tl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5B
QkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09N
UExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X1dFRUspICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfSU9TX0dF
U1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1Nf
VE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMp
ICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xT
X1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
TkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMp
ICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJM
RV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFC
TEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5B
QkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVf
U1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfU1ZHX09URl9DT05WRVJURVIpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVU
RUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJ
TkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAk
KEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5B
QkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkg
JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5B
QkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9S
RUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRM
X0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FS
SVRITUVUSUMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKTsKK0ZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FW
Rl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9DQUNIRV9Q
QVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkp
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSAk
KEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxf
MikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9T
SVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURf
TEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFH
RV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9S
U19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFC
TEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVO
QUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAk
KEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAk
KEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkg
JChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQo
RU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVf
SUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxF
X0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJ
WklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5E
T1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdB
Q1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9M
RVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVO
QUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhU
TUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRF
TlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0sp
ICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9Q
VUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9U
RV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JV
QkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9U
RUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChF
TkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RP
VUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VT
RVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5B
QkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxF
X1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxF
X1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVf
U0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05f
TU9ERSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDhiMTEyZmFlNDViOTU3ZGQyNjQxZmRiNmY0Njg5
ODgwNTg5YWY4NjAuLjI5ZGRjYzRmYTc2MGQ5ZWZhN2Y2MmViNWZmYjcyNDg2NjMzZDVkMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCkBAIC00NSw2ICs0NSw3IEBAIEVOQUJMRV9DQU5WQVNfUEFUSCA9IEVO
QUJMRV9DQU5WQVNfUEFUSDsKIEVOQUJMRV9DQU5WQVNfUFJPWFkgPSA7CiBFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkcgPSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc7CiBFTkFCTEVfRVM2X0NMQVNT
X1NZTlRBWCA9IEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYOworRU5BQkxFX0VTNl9URU1QTEFURV9M
SVRFUkFMX1NZTlRBWCA9IEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVg7CiBFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVf
Q1NQX05FWFQgPSA7CiBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9IEVOQUJMRV9DU1Nf
QU5JTUFUSU9OU19MRVZFTF8yOwpAQCAtMjE0LDQgKzIxNSw0IEBAIEVOQUJMRV9MTElOVF9DX0xP
T1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBFTkFCTEVfU0FU
VVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8z
RF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUND
RUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5B
QkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVO
QUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfQ09OVEVOVF9G
SUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZF
TF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01Q
T1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfR1JJ
RF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lN
QUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNU
T1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVO
QUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQo
RU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQp
ICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMp
ICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElB
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikg
JChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJM
RV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFC
TEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVM
T0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1F
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRP
U0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZF
TkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xF
R0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxF
X0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQo
RU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9N
SFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09O
VEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9D
SykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxF
X1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVN
T1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVf
UlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNI
X1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8p
ICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJURVIpICQoRU5BQkxF
X1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAk
KEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVf
VE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVf
VVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFC
TEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFC
TEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1J
TkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFC
TEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJM
RV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19T
Q1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVN
RU5UKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAk
KEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJM
RV9FUzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgp
ICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVf
Q1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
KSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElP
TikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJ
T04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykg
JChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5B
QkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NV
UlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxF
X0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5B
QkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJM
RV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FU
RUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJf
VEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRS
T0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
X0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5B
QkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9X
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChF
TkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChF
TkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lf
V0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkg
JChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxF
X01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJf
RUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChF
TkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNV
UlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAk
KEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1J
VFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAk
KEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09N
UExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NO
QVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVO
QUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19PVEZf
Q09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVf
VEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VD
SF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RSQUlM
SU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9E
RV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxF
X1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVT
KSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVf
WEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xM
SU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVOQUJM
RV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQyL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDhiMTEyZmFlNDViOTU3
ZGQyNjQxZmRiNmY0Njg5ODgwNTg5YWY4NjAuLjI5ZGRjYzRmYTc2MGQ5ZWZhN2Y2MmViNWZmYjcy
NDg2NjMzZDVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00NSw2ICs0NSw3IEBAIEVOQUJMRV9DQU5WQVNf
UEFUSCA9IEVOQUJMRV9DQU5WQVNfUEFUSDsKIEVOQUJMRV9DQU5WQVNfUFJPWFkgPSA7CiBFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcgPSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc7CiBFTkFCTEVf
RVM2X0NMQVNTX1NZTlRBWCA9IEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYOworRU5BQkxFX0VTNl9U
RU1QTEFURV9MSVRFUkFMX1NZTlRBWCA9IEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5U
QVg7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7
CiBFTkFCTEVfQ1NQX05FWFQgPSA7CiBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9IEVO
QUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yOwpAQCAtMjE0LDQgKzIxNSw0IEBAIEVOQUJMRV9M
TElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBF
TkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElP
TlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9O
SU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVf
Q09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFU
SU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxF
X0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJM
RV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFC
TEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9D
U1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19U
RVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lC
SUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJE
X1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNG
RVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlNf
TEVWRUxfMikgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFC
TEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5H
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VS
UykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1Nf
VEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdB
Q1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8p
ICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09V
UkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAk
KEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQo
RU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BP
SU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMp
ICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChF
TkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkg
JChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFC
TEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRM
RV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJURVIp
ICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9F
TEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkg
JChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJ
QSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExB
WSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxF
X1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9V
VCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09Q
KSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklO
RykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9P
VkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNI
TUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZB
U19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
KSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJB
TF9TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkg
JChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFU
SU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0Vf
QURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQ
RVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQo
RU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIp
ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAk
KEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNU
T1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1Yy
KSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFE
X0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9E
T01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJW
SUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAk
KEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VW
RU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FD
WV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJM
RV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19Q
UkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQp
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9T
Q0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRP
Ul9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRf
UExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJM
RV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxF
X1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVT
VF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09M
VVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1Nf
U0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNf
QVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxF
X1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikg
JChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVO
QUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVf
Q1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURF
TykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxF
X1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNU
VVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykg
JChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQo
RU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElD
KSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Y21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMu
Y21ha2UKaW5kZXggMzJjMjM1ZDk4YjVhNDIwZWJlMzM0ODM0YzdiNmE0MTgyYjIyMjIwYS4uYTM0
MzA4MmZmNDNlMmZhYTA0N2NlODNlY2E1ZGY1MjNkNzFlZGVkMSAxMDA2NDQKLS0tIGEvU291cmNl
L2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0
dXJlcy5jbWFrZQpAQCAtMjgsNiArMjgsNyBAQCBtYWNybyhXRUJLSVRfT1BUSU9OX0JFR0lOKQog
ICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9DQU5WQVNfUFJPWFkgIlRvZ2dsZSBDYW52
YXNQcm94eSBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HICJUb2dnbGUgTWVzc2FnZUNoYW5uZWwgYW5kIE1lc3NhZ2VQb3J0IHN1
cHBvcnQiIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9FUzZfQ0xBU1NfU1lO
VEFYICJUb2dnbGUgRVM2IGNsYXNzIHN5bnRheCBzdXBwb3J0IiBPTikKKyAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYICJUb2dnbGUgRVM2
IHRlbXBsYXRlIGxpdGVyYWwgc3ludGF4IHN1cHBvcnQiIE9OKQogICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORyAiVG9nZ2xlIGNvbnRlbnQgZmlsdGVyaW5n
IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfQ09OVEVYVF9N
RU5VUyAiVG9nZ2xlIENvbnRleHQgTWVudSBzdXBwb3J0IiBPTikKICAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfQ1NQX05FWFQgIlRvZ2dsZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAx
LjEgc3VwcG9ydCIgT0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2Ug
Yi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCAyMWQzZmNjNWQ5ODNmOTU5NWRlZjM1
MTA1NjhjZGM5ODk2NTI0NmVkLi5iOWMxZWE4ZDEyYzI1MzY5OWNiNzNmNDFkODA2Y2MxN2JmNGNj
MDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2Uv
Y21ha2Vjb25maWcuaC5jbWFrZQpAQCAtMTMsNiArMTMsNyBAQAogI2NtYWtlZGVmaW5lMDEgRU5B
QkxFX0NBTlZBU19QUk9YWQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
CiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWAorI2NtYWtlZGVmaW5lMDEg
RU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWAogI2NtYWtlZGVmaW5lMDEgRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ09OVEVYVF9NRU5VUwog
I2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NSRURFTlRJQUxfU1RPUkFHRQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ5NDU3ZmE3MTljYjg4NWI2OTBj
NDU2NjUzZGQwZDVmNmExYmJiNGIuLjU0MGQyOGFkZmZjYjVlMDU0ODU4OTZmNGQ4OGZjZjZjMzg1
OTYxZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAxNS0wMy0yOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxpdGVy
YWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2
OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
RU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwogMjAxNS0wMy0y
NyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtD
TWFrZV0gUmVtb3ZlIHVubmVjZXNzYXJ5IElOQ0xVREVfSUZfRVhJU1RTIG1hY3JvIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IDE2ZmQ2NDljNjhkNmIzZDQzZDBi
MzFlMzM1NzkwNGZjODcyNGE3ZWIuLjAwMjNjM2U1YThmMDI3OWE4YWU2MTEwNDFmZDliZTQ5NDg1
OTBhNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5w
bQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTQ5LDYg
KzQ5LDcgQEAgQkVHSU4KICAgICAkY2FudmFzUHJveHlTdXBwb3J0LAogICAgICRjaGFubmVsTWVz
c2FnaW5nU3VwcG9ydCwKICAgICAkY2xhc3NTeW50YXgsCisgICAgJHRlbXBsYXRlTGl0ZXJhbFN5
bnRheCwKICAgICAkY3NwTmV4dFN1cHBvcnQsCiAgICAgJGNzczNDb25kaXRpb25hbFJ1bGVzU3Vw
cG9ydCwKICAgICAkY3NzM1RleHRTdXBwb3J0LApAQCAtMTY5LDYgKzE3MCw5IEBAIEJFR0lOCiAg
ICAgeyBvcHRpb24gPT4gImNsYXNzLXN5bnRheCIsIGRlc2MgPT4gIlRvZ2dsZSBFUzYgY2xhc3Mg
c3ludGF4IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRVM2X0NMQVNTX1NZTlRB
WCIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRjbGFzc1N5bnRheCB9LAogCisgICAgeyBvcHRp
b24gPT4gInRlbXBsYXRlLWxpdGVyYWwtc3ludGF4IiwgZGVzYyA9PiAiVG9nZ2xlIEVTNiB0ZW1w
bGF0ZSBsaXRlcmFsIHN5bnRheCBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0VT
Nl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR0ZW1w
bGF0ZUxpdGVyYWxTeW50YXggfSwKKwogICAgIHsgb3B0aW9uID0+ICJjc3AtbmV4dCIsIGRlc2Mg
PT4gIlRvZ2dsZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAxLjEgc3VwcG9ydCIsCiAgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9DU1BfTkVYVCIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4g
XCRjc3BOZXh0U3VwcG9ydCB9LAogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cK
aW5kZXggYmE1OTExYmU4ZjUyYTRhYWM1Njg5ZWUzNzdmYTIxYzUxZjVkMGNmZC4uNWM5ZDkxNjc4
NTgyMTNhZjkyMjM1YmZiZGVlODE1YmMyZmVlNzNhZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisr
KyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTAzLTI5ICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEltcGxlbWVudCBFUzYg
dGVtcGxhdGUgbGl0ZXJhbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MjY5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYIGNvbXBpbGUg
dGltZSBmbGFnLgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtl
OgorICAgICAgICAqIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlOgorCiAyMDE1LTAzLTI3ICBH
eXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0NNYWtl
XSBSZW1vdmUgdW5uZWNlc3NhcnkgSU5DTFVERV9JRl9FWElTVFMgbWFjcm8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249969</attachid>
            <date>2015-04-02 05:06:53 -0700</date>
            <delta_ts>2015-04-02 19:11:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142691-20150402210607.patch</filename>
            <type>text/plain</type>
            <size>101057</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NjcyYThiYjExNWJmYmU4MmE1NWRkMjJiNWJmMzZhYzRjMDZhMjc5Li4wMDc2MTRmMzc5NDhlOTZm
MGIxYWM3NDU0ODNmOGFjZDAxMjU3MzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTggQEAKKzIwMTUtMDQtMDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIFRlbXBsYXRlTGl0ZXJhbC4KKyAgICAgICAgU2luY2UgVGFnZ2VkVGVtcGxh
dGUgcmVxdWlyZXMgc29tZSBnbG9iYWwgc3RhdGVzIGFuZAorICAgICAgICBwcmltaXRpdmUgb3Bl
cmF0aW9ucyBsaWtlIEdldFRlbXBsYXRlT2JqZWN0LAorICAgICAgICB3ZSBzZXBhcmF0ZSB0aGUg
cGF0Y2guIEl0IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisg
ICAgICAgIFRlbXBsYXRlIExpdGVyYWwgU3ludGF4IGlzIGd1YXJkZWQgYnkgRU5BQkxFX0VTNl9U
RU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKyAgICAgICAgQnkgZGlz
YWJsaW5nIGl0LCB3ZSBjYW4gZGlzYWJsZSBUZW1wbGF0ZSBMaXRlcmFsIHN1cHBvcnQuCisKKyAg
ICAgICAgVG8gaW1wbGVtZW50IHRlbXBsYXRlIGxpdGVyYWxzLCBpbiB0aGlzIHBhdGNoLAorICAg
ICAgICB3ZSBuZXdseSBpbnRyb2R1Y2VzIGJ5dGVjb2RlIG9wX3RvX3N0cmluZy4KKyAgICAgICAg
SW4gdGVtcGxhdGUgbGl0ZXJhbHMsIHdlIGFsdGVybmF0ZWx5IGV2YWx1YXRlIHRoZSBleHByZXNz
aW9uIGFuZAorICAgICAgICBwZXJmb3JtIFRvU3RyaW5nIG9udG8gdGhlIHJlc3VsdCBvZiBldmFs
dWF0aW9uLgorICAgICAgICBGb3IgZXhhbXBsZSwKKworICAgICAgICBgJHtmMSgpfSAke2YyKCl9
YAorCisgICAgICAgIEluIHRoaXMgdGVtcGxhdGUgbGl0ZXJhbCwgZXhlY3V0aW9uIG9yZGVyIGlz
IHRoZSBmb2xsb3dpbmcsCisgICAgICAgIDEuIGNhbGxpbmcgZjEoKQorICAgICAgICAyLiBUb1N0
cmluZyh0aGUgcmVzdWx0IG9mIGYxKCkpCisgICAgICAgIDMuIGNhbGxpbmcgZjIoKQorICAgICAg
ICA0LiBUb1N0cmluZyh0aGUgcmVzdWx0IG9mIGYyKCkpCisKKyAgICAgICAgb3Bfc3RyY2F0IGFs
c28gcGVyZm9ybXMgVG9TdHJpbmcuIEhvd2V2ZXIsIHBlcmZvcm1pbmcgVG9TdHJpbmcKKyAgICAg
ICAgb250byBleHByZXNzaW9ucyBhcmUgYmF0Y2hlZCBpbiBvcF9zdHJjYXQsIGl0J3Mgbm90IHRo
ZSBzYW1lIHRvIHRoZQorICAgICAgICB0ZW1wbGF0ZSBsaXRlcmFsIHNwZWMuIEluIHRoZSBhYm92
ZSBleGFtcGxlLAorICAgICAgICBUb1N0cmluZyhmMSgpKSBzaG91bGQgYmUgY2FsbGVkIGJlZm9y
ZSBjYWxsaW5nIGYyKCkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAg
ICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNl
c0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29k
ZU9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRv
U3RyaW5nKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAg
ICAgKEpTQzo6VGVtcGxhdGVTdHJpbmdOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlND
OjpUZW1wbGF0ZUxpdGVyYWxOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGRmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBh
cnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJ
VDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAg
ICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90b19z
dHJpbmcpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3RvX3N0cmluZyk6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF90b19zdHJpbmcpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3RvX3N0cmluZyk6
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHBhcnNlci9BU1RC
dWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxhdGVTdHJpbmdMaXN0KToK
KyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdCk6
CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbCk6CisgICAg
ICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OkxleGVyKToK
KyAgICAgICAgKEpTQzo6TGluZU51bWJlckFkZGVyOjpMaW5lTnVtYmVyQWRkZXIpOgorICAgICAg
ICAoSlNDOjpMaW5lTnVtYmVyQWRkZXI6OmNsZWFyKToKKyAgICAgICAgKEpTQzo6TGluZU51bWJl
ckFkZGVyOjphZGQpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6cGFyc2VUZW1wbGF0ZUxpdGVy
YWwpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4KToKKyAgICAgICAgKEpTQzo6TGV4ZXI8
VD46OnNjYW5UcmFpbGluZ1RlbXBsYXRlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46
OnBhcnNlU3RyaW5nU2xvd0Nhc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9MZXhlci5o
OgorICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OlRl
bXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSk6Cisg
ICAgICAgIChKU0M6OlRlbXBsYXRlU3RyaW5nTm9kZTo6VGVtcGxhdGVTdHJpbmdOb2RlKToKKyAg
ICAgICAgKEpTQzo6VGVtcGxhdGVTdHJpbmdMaXN0Tm9kZTo6VGVtcGxhdGVTdHJpbmdMaXN0Tm9k
ZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlTGl0ZXJhbE5vZGU6OlRlbXBsYXRlTGl0ZXJhbE5v
ZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUV4
cHJlc3Npb25MaXN0Tm9kZTo6dmFsdWUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUV4cHJlc3Np
b25MaXN0Tm9kZTo6bmV4dCk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlU3RyaW5nTm9kZTo6Y29v
a2VkKToKKyAgICAgICAgKEpTQzo6VGVtcGxhdGVTdHJpbmdOb2RlOjpyYXcpOgorICAgICAgICAo
SlNDOjpUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlOjp2YWx1ZSk6CisgICAgICAgIChKU0M6OlRlbXBs
YXRlU3RyaW5nTGlzdE5vZGU6Om5leHQpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1wbGF0ZVN0cmluZyk6Cisg
ICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVRlbXBsYXRlTGl0ZXJhbCk6Cisg
ICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToK
KyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAgICogcGFyc2VyL1BhcnNlclRva2Vu
cy5oOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAgIChKU0M6OlN5
bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6U3ludGF4
Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVTdHJpbmdMaXN0KToKKyAgICAgICAgKEpTQzo6U3ludGF4
Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdCk6CisgICAgICAgIChKU0M6OlN5
bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbCk6CisgICAgICAgICogcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAg
ICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
dGVtcGxhdGUtbGl0ZXJhbC1saW5lLXRlcm1pbmF0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAodGVzdEV2YWwpOgorICAgICAgICAodGVzdEV2YWxMaW5lTnVtYmVyKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1zeW50YXguanM6IEFkZGVk
LgorICAgICAgICAodGVzdFN5bnRheCk6CisgICAgICAgICh0ZXN0U3ludGF4RXJyb3IpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAodGVzdEV2YWwpOgorICAgICAgICAodGVzdEVtYmVkZGVkKToKKwog
MjAxNS0wNC0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFByb2dyZXNzIHRvd2FyZHMgQ01ha2Ugb24gV2luZG93cyBhbmQgTWFjLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGVjNDY5N2NiNTA4MmMwOWUwZmU1YWUzNGU0ZDc3Yjk5MDc3MzM0YzMuLmM3YWRm
NGY1MDQzYmY3MmQwMjYwMGJiNWVjYmRhMjEyYjkxYjM3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxNS0wNC0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNv
bT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxpdGVyYWxzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5BQkxFX0VT
Nl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKworICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE1LTA0LTAxICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTgyMjQ3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDVjMzM1YTlmYTVk
YThkZDliZmIzMDg2OGMxNzQxMzA2MmI5YTEyMDguLjViMDg0ZjgyNGM0NGRlY2EyNzA2ZGM2MzJi
NDdkODI5MTMzY2IwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0w
NC0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBb
RVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxpdGVyYWxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5BQkxFX0VTNl9URU1QTEFURV9MSVRF
UkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE1LTAzLTMxICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzY3JvbGxpbmcgdHJlZSBk
ZXBlbmRlbmN5IG9uIHdoZWVsIGV2ZW50IGhhbmRsZXIgY291bnRzLCBhbmQgdXNlIGZhc3Qgc2Ny
b2xsaW5nIGV2ZW4gd2hlbiB0aGVyZSBhcmUgd2hlZWwgaGFuZGxlcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBh
ODlhNGUwMTBmNGQwYjEyZDE0N2Q4ZWFmNzFkZmY4NjhlZGU3NDcwLi5hM2Q5ZDYzY2M2YTkyMzQ5
NzgzMDAyYmNkMDU3YjEyZTM3M2MzZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTUtMDQtMDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVOQUJMRV9FUzZfVEVNUExBVEVf
TElURVJBTF9TWU5UQVggY29tcGlsZSB0aW1lIGZsYWcuCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxNS0wNC0wMSAgRW5yaWNhIENhc3Vj
Y2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEluamVjdGVkIGJ1bmRsZSBtZXNzYWdl
cyBzaG91bGQgYmUgYXQgdGhlIHBhZ2UgbGV2ZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggOGIxMTJmYWU0NWI5NTdkZDI2NDFmZGI2ZjQ2ODk4ODA1ODlhZjg2MC4uMjlkZGNjNGZhNzYw
ZDllZmE3ZjYyZWI1ZmZiNzI0ODY2MzNkNWQzMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpA
QCAtNDUsNiArNDUsNyBAQCBFTkFCTEVfQ0FOVkFTX1BBVEggPSBFTkFCTEVfQ0FOVkFTX1BBVEg7
CiBFTkFCTEVfQ0FOVkFTX1BST1hZID0gOwogRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HID0gRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0VTNl9DTEFTU19TWU5UQVggPSBFTkFCTEVf
RVM2X0NMQVNTX1NZTlRBWDsKK0VOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVggPSBF
TkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYOwogRU5BQkxFX0NPTlRFTlRfRklMVEVS
SU5HID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NTUF9ORVhUID0gOwogRU5B
QkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIgPSBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxf
MjsKQEAgLTIxNCw0ICsyMTUsNCBAQCBFTkFCTEVfTExJTlRfQ19MT09QID0gOwogCiBFTkFCTEVf
U0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDID0gRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJ
VEhNRVRJQzsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9X
X1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VM
RU1FTlQpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgp
ICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0VTNl9DTEFTU19TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJM
RV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxF
X0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJM
RV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAk
KEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5B
QkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJ
TkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NI
RU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxT
X0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVO
VFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9B
RF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVO
QUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9J
TkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lP
U19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
SU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChF
TkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05U
Uk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElT
VElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5B
QkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01J
U0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJ
U1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChF
TkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQo
RU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAk
KEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVS
X0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRP
U0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFM
VUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJM
RV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJW
VFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxF
X0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9V
VF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CitGRUFUVVJF
X0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJM
RV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FD
SEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BS
T1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRB
WCkgJChFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKSAkKEVOQUJMRV9DT05URU5U
X0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xF
VkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19H
UklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1Nf
SU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxF
Q1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQo
RU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkg
JChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9S
VCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
UykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSU19MRVZFTF8y
KSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HRU9M
T0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5B
QkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVO
QUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19URVhUX0FV
VE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FDWV9DU1Nf
VkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
TEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFC
TEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxF
X01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9D
T05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9M
T0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFC
TEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9S
RU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJM
RV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9TUEVF
Q0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBU
TykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RGX0NPTlZFUlRFUikgJChFTkFC
TEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQp
ICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJM
RV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJM
RV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVO
QUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVO
QUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVO
QUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5B
QkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFU
SU9OX01PREUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5qc29uCmluZGV4IDZiMjQzOTE1NmFiM2FmYWU2YjU1OGFiOTA2NmQyMjI1MTVkNTllNDUu
LjFkOTRhMGUxN2ZkOTE0Mjc2NWEyNzIyNjQ2OGI2ZDZjMzQ0Y2MxMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTMzLDYgKzMz
LDcgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2luYyIsICJsZW5ndGgiIDogMiB9LAog
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGVjIiwgImxlbmd0aCIgOiAyIH0sCiAgICAgICAg
ICAgICB7ICJuYW1lIiA6ICJvcF90b19udW1iZXIiLCAibGVuZ3RoIiA6IDMgfSwKKyAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX3RvX3N0cmluZyIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3BfbmVnYXRlIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7
ICJuYW1lIiA6ICJvcF9hZGQiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX211bCIsICJsZW5ndGgiIDogNSB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCA4NWYyOTE1YzdlOGY2MDFhZDNlYzE3OGJm
NjllMzU0NGY3NTRjMmNmLi5iYTRhMzg3NTBmM2ZjNTBiMDY4YThhOTE5MTFlM2MyZTRjYTk3MGUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VE
ZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYu
aApAQCAtMTM2LDYgKzEzNiw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCgK
ICAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9udWxsOgogICAgIGNhc2Ugb3BfaXNfZnVuY3Rpb246
CiAgICAgY2FzZSBvcF90b19udW1iZXI6CisgICAgY2FzZSBvcF90b19zdHJpbmc6CiAgICAgY2Fz
ZSBvcF9uZWdhdGU6CiAgICAgY2FzZSBvcF9uZXFfbnVsbDoKICAgICBjYXNlIG9wX2VxX251bGw6
CkBAIC0zMzAsNiArMzMxLDcgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENv
ZGVCbG9jayogY29kZUJsb2NrLCB1bnNpZ25lZCBieXRlY29kZU9mZnNldCwKICAgICBjYXNlIG9w
X2lzX2Z1bmN0aW9uOgogICAgIGNhc2Ugb3BfaW46CiAgICAgY2FzZSBvcF90b19udW1iZXI6Cisg
ICAgY2FzZSBvcF90b19zdHJpbmc6CiAgICAgY2FzZSBvcF9uZWdhdGU6CiAgICAgY2FzZSBvcF9h
ZGQ6CiAgICAgY2FzZSBvcF9tdWw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCmluZGV4IDllOTUxN2U3ODFiZTU1N2YwNGYxN2Y5M2RlYzcxYjkxNmNjOWEy
YWQuLjdjZDRiZmQxYmI2YjBmOGUyMTYyNDJhMmI0NmNhYzY3ODE5MWYzN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC05MTYsNiArOTE2LDEw
IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBwcmludFVuYXJ5
T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0b19udW1iZXIiKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CisgICAgICAgIGNhc2Ugb3BfdG9fc3RyaW5nOiB7CisgICAgICAgICAg
ICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ0b19zdHJpbmciKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmVnYXRlOiB7CiAg
ICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJuZWdhdGUi
KTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDJlNTkwMzlkM2E0ODRhMzQ3
MjgxNDQwZWVmOWMxYjgxOWY3MjY1ZGIuLjMwYTgwMTdjMmIyZTgxNjE5M2M2NzQzOWFlNGM4NmFl
NjkwYmJiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTQ2Miw2ICs0NjIsNyBAQAogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0TW92ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYyk7CiAKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdFRvTnVtYmVyKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogc3JjKSB7IHJldHVybiBlbWl0VW5hcnlPcChvcF90b19udW1iZXIsIGRzdCwgc3JjKTsgfQor
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0VG9TdHJpbmcoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3Rl
cklEKiBzcmMpIHsgcmV0dXJuIGVtaXRVbmFyeU9wKG9wX3RvX3N0cmluZywgZHN0LCBzcmMpOyB9
CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbmMoUmVnaXN0ZXJJRCogc3JjRHN0KTsKICAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdERlYyhSZWdpc3RlcklEKiBzcmNEc3QpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXgg
MTE0MzJhZjIzYmJiNjFlODE1NDI1MjNiN2MxMWFhN2JkY2I1ZjNiZi4uOGQ5MDk0NzI4MzBjOTlm
MmU3N2E5ZmI5OTI5MDEzMzA5ZTEwMDA0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMjE1LDYgKzIxNSw1MyBAQCBS
ZWdpc3RlcklEKiBSZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBn
ZW5lcmF0b3IsIFJlZ2lzdGVySUQqCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lmIEVOQUJM
RShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gVGVtcGxhdGVTdHJpbmdOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKK1JlZ2lzdGVySUQqIFRlbXBsYXRlU3RyaW5nTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBpZiAo
ZHN0ID09IGdlbmVyYXRvci5pZ25vcmVkUmVzdWx0KCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExvYWQoZHN0LCBKU1ZhbHVlKGdlbmVyYXRvci5h
ZGRTdHJpbmdDb25zdGFudChjb29rZWQoKSkpKTsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIFRlbXBsYXRlTGl0ZXJhbE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogVGVtcGxhdGVMaXRlcmFsTm9kZTo6ZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAg
ICBpZiAoIW1fdGVtcGxhdGVFeHByZXNzaW9ucykgeworICAgICAgICBUZW1wbGF0ZVN0cmluZ05v
ZGUqIHRlbXBsYXRlU3RyaW5nID0gbV90ZW1wbGF0ZVN0cmluZ3MtPnZhbHVlKCk7CisgICAgICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UoIW1fdGVtcGxhdGVTdHJpbmdzLT5uZXh0KCksICJPbmx5IG9u
ZSB0ZW1wbGF0ZSBlbGVtZW50IGV4aXN0cyBiZWNhdXNlIHRoZXJlJ3Mgbm8gZXhwcmVzc2lvbiBp
biBhIGdpdmVuIHRlbXBsYXRlIGxpdGVyYWwuIik7CisgICAgICAgIHJldHVybiBnZW5lcmF0b3Iu
ZW1pdE5vZGUoZHN0LCB0ZW1wbGF0ZVN0cmluZyk7CisgICAgfQorCisgICAgVmVjdG9yPFJlZlB0
cjxSZWdpc3RlcklEPiwgMTY+IHRlbXBvcmFyeVJlZ2lzdGVyczsKKworICAgIFRlbXBsYXRlU3Ry
aW5nTGlzdE5vZGUqIHRlbXBsYXRlU3RyaW5nID0gbV90ZW1wbGF0ZVN0cmluZ3M7CisgICAgVGVt
cGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBsYXRlRXhwcmVzc2lvbiA9IG1fdGVtcGxhdGVF
eHByZXNzaW9uczsKKyAgICBmb3IgKDsgdGVtcGxhdGVFeHByZXNzaW9uOyB0ZW1wbGF0ZUV4cHJl
c3Npb24gPSB0ZW1wbGF0ZUV4cHJlc3Npb24tPm5leHQoKSwgdGVtcGxhdGVTdHJpbmcgPSB0ZW1w
bGF0ZVN0cmluZy0+bmV4dCgpKSB7CisgICAgICAgIC8vIEV2YWx1YXRlIFRlbXBsYXRlU3RyaW5n
LgorICAgICAgICBpZiAoIXRlbXBsYXRlU3RyaW5nLT52YWx1ZSgpLT5jb29rZWQoKS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgICAgIHRlbXBvcmFyeVJlZ2lzdGVycy5hcHBlbmQoZ2VuZXJhdG9yLm5l
d1RlbXBvcmFyeSgpKTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0Tm9kZSh0ZW1wb3JhcnlS
ZWdpc3RlcnMubGFzdCgpLmdldCgpLCB0ZW1wbGF0ZVN0cmluZy0+dmFsdWUoKSk7CisgICAgICAg
IH0KKworICAgICAgICAvLyBFdmFsdWF0ZSBFeHByZXNzaW9uLgorICAgICAgICB0ZW1wb3JhcnlS
ZWdpc3RlcnMuYXBwZW5kKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSk7CisgICAgICAgIGdlbmVy
YXRvci5lbWl0Tm9kZSh0ZW1wb3JhcnlSZWdpc3RlcnMubGFzdCgpLmdldCgpLCB0ZW1wbGF0ZUV4
cHJlc3Npb24tPnZhbHVlKCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFRvU3RyaW5nKHRlbXBv
cmFyeVJlZ2lzdGVycy5sYXN0KCkuZ2V0KCksIHRlbXBvcmFyeVJlZ2lzdGVycy5sYXN0KCkuZ2V0
KCkpOworICAgIH0KKworICAgIC8vIEV2YWx1YXRlIHRhaWwgVGVtcGxhdGVTdHJpbmcuCisgICAg
aWYgKCF0ZW1wbGF0ZVN0cmluZy0+dmFsdWUoKS0+Y29va2VkKCkuaXNFbXB0eSgpKSB7CisgICAg
ICAgIHRlbXBvcmFyeVJlZ2lzdGVycy5hcHBlbmQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpKTsK
KyAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKHRlbXBvcmFyeVJlZ2lzdGVycy5sYXN0KCkuZ2V0
KCksIHRlbXBsYXRlU3RyaW5nLT52YWx1ZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZ2VuZXJh
dG9yLmVtaXRTdHJjYXQoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0LCB0ZW1wb3JhcnlS
ZWdpc3RlcnNbMF0uZ2V0KCkpLCB0ZW1wb3JhcnlSZWdpc3RlcnNbMF0uZ2V0KCksIHRlbXBvcmFy
eVJlZ2lzdGVycy5zaXplKCkpOworfQorI2VuZGlmCisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBBcnJheU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIFJlZ2lzdGVySUQqIEFycmF5Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNTNhYzE3NzQ2MTk2OWVlZmI2NmFkZjYw
OTA2ODFlNmU1Yjc2YjAzMi4uZjE1MDQzNGY5ZTg1MDgzZjc1YWI2OTE1OWJiZjJjZGI1M2QwOGJi
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKQEAgLTM2ODcsNyArMzY4NywxMyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2Nr
KHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgbm9kZSk7CiAgICAgICAgICAgICBORVhUX09QQ09E
RShvcF90b19udW1iZXIpOwogICAgICAgICB9Ci0gICAgICAgICAgICAKKworICAgICAgICBjYXNl
IG9wX3RvX3N0cmluZzogeworICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIHNl
dChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGFkZFRv
R3JhcGgoVG9TdHJpbmcsIHZhbHVlKSk7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF90b19z
dHJpbmcpOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBvcF9pbjogewogICAgICAgICAgICAg
c2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwKICAg
ICAgICAgICAgICAgICBhZGRUb0dyYXBoKEluLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKSwgZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA4ZWY0ZGNmMTU2OGJkNWVkYTRiODk3ZTc2ODRhOGNi
YjkxYmY2ZTA4Li5mZTA5MzczNWIwZmEwMzllYjc0Y2JkNDU0YTJiNjAyMDJkNDk4YjU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0xOTEs
NiArMTkxLDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNv
ZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9wX2puZXFfcHRy
OgogICAgIGNhc2Ugb3BfdHlwZW9mOgogICAgIGNhc2Ugb3BfdG9fbnVtYmVyOgorICAgIGNhc2Ug
b3BfdG9fc3RyaW5nOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbToKICAgICBjYXNlIG9wX3N3aXRj
aF9jaGFyOgogICAgIGNhc2Ugb3BfaW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXgg
NDJhODJkNDM5NDYxNjJmOTVmYTQ3NDY3NTY3MTM5ZDRhYWYyMzg2Yi4uZDFiZmRlNzk0YmYwZTIx
NTI0ODg2NzU3ZjI1Mjc5MTA5Mzg5MmRjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApA
QCAtMjkzLDYgKzI5Myw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAg
ICAgICAgREVGSU5FX09QKG9wX3Rocm93KQogICAgICAgICBERUZJTkVfT1Aob3BfdGhyb3dfc3Rh
dGljX2Vycm9yKQogICAgICAgICBERUZJTkVfT1Aob3BfdG9fbnVtYmVyKQorICAgICAgICBERUZJ
TkVfT1Aob3BfdG9fc3RyaW5nKQogICAgICAgICBERUZJTkVfT1Aob3BfdG9fcHJpbWl0aXZlKQog
CiAgICAgICAgIERFRklORV9PUChvcF9yZXNvbHZlX3Njb3BlKQpAQCAtNDIyLDYgKzQyMyw3IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIERFRklORV9TTE9X
Q0FTRV9PUChvcF9zdHJpY3RlcSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX3N1YikK
ICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX3RvX251bWJlcikKKyAgICAgICAgREVGSU5F
X1NMT1dDQVNFX09QKG9wX3RvX3N0cmluZykKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9w
X3RvX3ByaW1pdGl2ZSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2hhc19pbmRleGVk
X3Byb3BlcnR5KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaGFzX3N0cnVjdHVyZV9w
cm9wZXJ0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IGVlNDg1NWRjMmU3OGI1NWFjYzQ1
OTllYmRiOTlhMGQ4ZTA4YmU3Y2MuLmEwOGRiZTJmM2E5YWRmNDIxNThiYzA0MTY0MWFkMGZmZjAy
NmIyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNTUyLDYgKzU1Miw3IEBACiAgICAg
ICAgIHZvaWQgZW1pdF9vcF90aHJvdyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfdGhyb3dfc3RhdGljX2Vycm9yKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9v
cF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX3RvX3N0cmlu
ZyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfdG9fcHJpbWl0aXZlKEluc3Ry
dWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF91bmV4cGVjdGVkX2xvYWQoSW5zdHJ1Y3Rp
b24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3Vuc2lnbmVkKEluc3RydWN0aW9uKik7CkBAIC02
MTQsNiArNjE1LDcgQEAKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9zdHJpY3RlcShJbnN0cnVj
dGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBl
bWl0U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfdG9fbnVtYmVyKEluc3RydWN0aW9uKiwg
VmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOworICAgICAgICB2b2lkIGVtaXRTbG93
X29wX3RvX3N0cmluZyhJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0
b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24q
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNs
b3dfb3BfdW5zaWduZWQoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfdXJzaGlmdChJbnN0cnVjdGlvbiosIFZl
Y3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCmluZGV4IGQzZDU4MGU5ZTI2MDA4NTNiNjY0OWUyODU5MThmODUzOGJl
Njk0NGMuLmRkNWJiZjU4YjY1ZGUyZjZkOWM5YjM4MTdkMjIyMDA3YWE1NWFhZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtNDg4LDYgKzQ4OCwxNyBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQpOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF90b19zdHJpbmcoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBpbnQgc3JjVlJlZyA9IGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQ7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihzcmNWUmVnLCByZWdU
MCk7CisKKyAgICBhZGRTbG93Q2FzZShlbWl0SnVtcElmTm90SlNDZWxsKHJlZ1QwKSk7CisgICAg
YWRkU2xvd0Nhc2UoYnJhbmNoOChOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBl
SW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihTdHJpbmdUeXBlKSkpOworCisgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKK30K
Kwogdm9pZCBKSVQ6OmVtaXRfb3BfcHVzaF9uYW1lX3Njb3BlKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQ7CkBAIC04NzcsNiArODg4LDE1IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF90b19udW1i
ZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlCiAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX3N0cmlu
ZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJiBpdGVyKQoreworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7CisKKyAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMsIGN1
cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3RvX3N0cmluZyk7CisgICAgc2xvd1BhdGhDYWxs
LmNhbGwoKTsKK30KKwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAKIHZvaWQgSklUOjplbWl0
X29wX3RvdWNoX2VudHJ5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggNjgzNWVlYmY5
MzVjMDM1OGM1MzJiYTg5YzA0MGEzMDE2ODMwZWEwNy4uNWEwODk1YWQzZjM4N2VkNWY2MzhjZjE4
ODBhMDhhZjU3M2Y5ODlmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcApAQCAtNzgyLDYgKzc4MiwyOSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
dG9fbnVtYmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2Fz
ZQogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX3RvX3N0
cmluZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGludCBkc3QgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBzcmMgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworCisgICAgZW1pdExvYWQoc3JjLCByZWdUMSwgcmVnVDAp
OworCisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2g4KE5vdEVxdWFs
LCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZElt
bTMyKFN0cmluZ1R5cGUpKSk7CisKKyAgICBpZiAoc3JjICE9IGRzdCkKKyAgICAgICAgZW1pdFN0
b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKK30KKwordm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX3N0
cmluZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiBpdGVyKQoreworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7CisKKyAgICBKSVRTbG93UGF0aENhbGwgc2xvd1BhdGhDYWxsKHRoaXMs
IGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3RvX3N0cmluZyk7CisgICAgc2xvd1BhdGhD
YWxsLmNhbGwoKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfcHVzaF9uYW1lX3Njb3BlKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IGNhOTFlOGQ2NzJiYTlk
NmJlNDUwODkzMjdhZmUyMmExNTg3MjRlMmMuLmQ4MzI0ZTdiOGFmNmFlYjc3ZmQwYmEyYjE3OTEx
NDU5Y2I1ZGVkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0xMDAwLDYgKzEwMDAsMjMgQEAgX2xs
aW50X29wX3RvX251bWJlcjoKICAgICBkaXNwYXRjaCgzKQogCiAKK19sbGludF9vcF90b19zdHJp
bmc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MAorICAgIGxvYWRp
IDRbUENdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyLCB0MykKKyAgICBi
aW5lcSB0MiwgQ2VsbFRhZywgLm9wVG9TdHJpbmdTbG93CisgICAgYmJuZXEgSlNDZWxsOjptX3R5
cGVbdDNdLCBTdHJpbmdUeXBlLCAub3BUb1N0cmluZ1Nsb3cKKy5vcFRvU3RyaW5nSXNTdHJpbmc6
CisgICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBzdG9yZWkgdDMsIFBh
eWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisub3BUb1N0cmluZ1Ns
b3c6CisgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9fc3RyaW5nKQorICAgIGRpc3BhdGNo
KDMpCisKKwogX2xsaW50X29wX25lZ2F0ZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9h
ZGkgOFtQQ10sIHQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IGRlNTcwNjJmNmQxMDRmMmM3NTcyYjRjYWY2MjQ0
ZTg3ZDUwZjUwYmEuLmI0NjA3MWI2ZGYxYjUwY2QzNTI4YmNkYjFjOWYwYjdjZDY0OTE3MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
NjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCkBAIC04NjAsNiArODYwLDIyIEBAIF9sbGludF9vcF90b19udW1iZXI6CiAgICAg
ZGlzcGF0Y2goMykKIAogCitfbGxpbnRfb3BfdG9fc3RyaW5nOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDEpCisgICAgbG9hZGlzRnJvbUluc3Ry
dWN0aW9uKDEsIHQyKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAgIGJ0
cW56IHQwLCB0YWdNYXNrLCAub3BUb1N0cmluZ1Nsb3cKKyAgICBiYm5lcSBKU0NlbGw6Om1fdHlw
ZVt0MF0sIFN0cmluZ1R5cGUsIC5vcFRvU3RyaW5nU2xvdworLm9wVG9TdHJpbmdJc1N0cmluZzoK
KyAgICBzdG9yZXEgdDAsIFtjZnIsIHQyLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcFRvU3Ry
aW5nU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19zdHJpbmcpCisgICAgZGlz
cGF0Y2goMykKKworCiBfbGxpbnRfb3BfbmVnYXRlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAg
ICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvQVNUQnVpbGRlci5oCmluZGV4IGI4ZmU0Yjg0ODVhMDk3Njg4ZjVjNjMwYmQ4YzNjOTY3NjRm
YzQ2NDkuLjQxZWQ4NDVmY2ExZjM2ZDIyMjNjYzEyOGZhYzQ3MDFjZTA5NDY1M2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0xMDIsNiArMTAyLDEyIEBA
IGNsYXNzIEFTVEJ1aWxkZXIgewogICAgIHR5cGVkZWYgUHJvcGVydHlMaXN0Tm9kZSogUHJvcGVy
dHlMaXN0OwogICAgIHR5cGVkZWYgRWxlbWVudE5vZGUqIEVsZW1lbnRMaXN0OwogICAgIHR5cGVk
ZWYgQXJndW1lbnRMaXN0Tm9kZSogQXJndW1lbnRzTGlzdDsKKyNpZiBFTkFCTEUoRVM2X1RFTVBM
QVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIHR5cGVkZWYgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5v
ZGUqIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3Q7CisgICAgdHlwZWRlZiBUZW1wbGF0ZVN0cmluZ05v
ZGUqIFRlbXBsYXRlU3RyaW5nOworICAgIHR5cGVkZWYgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSog
VGVtcGxhdGVTdHJpbmdMaXN0OworICAgIHR5cGVkZWYgVGVtcGxhdGVMaXRlcmFsTm9kZSogVGVt
cGxhdGVMaXRlcmFsOworI2VuZGlmCiAgICAgdHlwZWRlZiBQYXJhbWV0ZXJOb2RlKiBGb3JtYWxQ
YXJhbWV0ZXJMaXN0OwogICAgIHR5cGVkZWYgRnVuY3Rpb25Cb2R5Tm9kZSogRnVuY3Rpb25Cb2R5
OwogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQpAQCAtMjQ2LDYgKzI1Miw0MyBAQCBjbGFz
cyBBU1RCdWlsZGVyIHsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQogCisjaWYgRU5BQkxF
KEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBUZW1wbGF0ZVN0cmluZ05vZGUqIGNy
ZWF0ZVRlbXBsYXRlU3RyaW5nKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0
IElkZW50aWZpZXImIGNvb2tlZCwgY29uc3QgSWRlbnRpZmllciYgcmF3KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVTdHJpbmdOb2RlKGxvY2F0aW9u
LCBjb29rZWQsIHJhdyk7CisgICAgfQorCisgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogY3Jl
YXRlVGVtcGxhdGVTdHJpbmdMaXN0KFRlbXBsYXRlU3RyaW5nTm9kZSogdGVtcGxhdGVTdHJpbmcp
CisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZVN0cmlu
Z0xpc3ROb2RlKHRlbXBsYXRlU3RyaW5nKTsKKyAgICB9CisKKyAgICBUZW1wbGF0ZVN0cmluZ0xp
c3ROb2RlKiBjcmVhdGVUZW1wbGF0ZVN0cmluZ0xpc3QoVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSog
dGVtcGxhdGVTdHJpbmdMaXN0LCBUZW1wbGF0ZVN0cmluZ05vZGUqIHRlbXBsYXRlU3RyaW5nKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVTdHJpbmdM
aXN0Tm9kZSh0ZW1wbGF0ZVN0cmluZ0xpc3QsIHRlbXBsYXRlU3RyaW5nKTsKKyAgICB9CisKKyAg
ICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlz
dChFeHByZXNzaW9uTm9kZSogZXhwcmVzc2lvbikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcg
KG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKGV4cHJlc3Npb24pOwor
ICAgIH0KKworICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZUV4
cHJlc3Npb25MaXN0KFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiB0ZW1wbGF0ZUV4cHJlc3Np
b25MaXN0Tm9kZSwgRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Npb24pCisgICAgeworICAgICAgICBy
ZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSh0ZW1w
bGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSwgZXhwcmVzc2lvbik7CisgICAgfQorCisgICAgVGVtcGxh
dGVMaXRlcmFsTm9kZSogY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIHRlbXBsYXRlU3RyaW5nTGlzdCkK
KyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRlTGl0ZXJh
bE5vZGUobG9jYXRpb24sIHRlbXBsYXRlU3RyaW5nTGlzdCk7CisgICAgfQorCisgICAgVGVtcGxh
dGVMaXRlcmFsTm9kZSogY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIHRlbXBsYXRlU3RyaW5nTGlzdCwg
VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUxpdGVyYWxOb2Rl
KGxvY2F0aW9uLCB0ZW1wbGF0ZVN0cmluZ0xpc3QsIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3QpOwor
ICAgIH0KKyNlbmRpZgorCiAgICAgRXhwcmVzc2lvbk5vZGUqIGNyZWF0ZVJlZ0V4cChjb25zdCBK
U1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0ZXJuLCBjb25z
dCBJZGVudGlmaWVyJiBmbGFncywgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0KQogICAgIHsK
ICAgICAgICAgaWYgKFlhcnI6OmNoZWNrU3ludGF4KHBhdHRlcm4uc3RyaW5nKCkpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCA3ZGUxNDIyMGJiZGE3MjczOGI1NzNh
NGI5Nzg4Y2UwYjMyY2M3Y2UzLi42OTlkNmNkNTlhOTlkZDhhODMzM2ZjNzY4MmU2MmNjODcxZDNj
ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAtNzEsNiArNzEs
OSBAQCBlbnVtIENoYXJhY3RlclR5cGUgewogICAgIENoYXJhY3RlclF1ZXN0aW9uLAogICAgIENo
YXJhY3RlclRpbGRlLAogICAgIENoYXJhY3RlclF1b3RlLAorI2lmIEVOQUJMRShFUzZfVEVNUExB
VEVfTElURVJBTF9TWU5UQVgpCisgICAgQ2hhcmFjdGVyQmFja1F1b3RlLAorI2VuZGlmCiAgICAg
Q2hhcmFjdGVyRG90LAogICAgIENoYXJhY3RlclNsYXNoLAogICAgIENoYXJhY3RlckJhY2tTbGFz
aCwKQEAgLTE5Miw3ICsxOTUsMTEgQEAgZW51bSBDaGFyYWN0ZXJUeXBlIHsKIC8qICA5MyAtIF0g
ICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJDbG9zZUJyYWNrZXQsCiAvKiAgOTQgLSBeICAg
ICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyWG9yLAogLyogIDk1IC0gXyAgICAgICAgICAgICAg
ICAgICovIENoYXJhY3RlcklkZW50aWZpZXJTdGFydCwKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRF
X0xJVEVSQUxfU1lOVEFYKQorLyogIDk2IC0gYCAgICAgICAgICAgICAgICAgICovIENoYXJhY3Rl
ckJhY2tRdW90ZSwKKyNlbHNlCiAvKiAgOTYgLSBgICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFj
dGVySW52YWxpZCwKKyNlbmRpZgogLyogIDk3IC0gYSAgICAgICAgICAgICAgICAgICovIENoYXJh
Y3RlcklkZW50aWZpZXJTdGFydCwKIC8qICA5OCAtIGIgICAgICAgICAgICAgICAgICAqLyBDaGFy
YWN0ZXJJZGVudGlmaWVyU3RhcnQsCiAvKiAgOTkgLSBjICAgICAgICAgICAgICAgICAgKi8gQ2hh
cmFjdGVySWRlbnRpZmllclN0YXJ0LApAQCAtMTEwMiw3ICsxMTA5LDkyIEBAIHN0YXRpYyBBTFdB
WVNfSU5MSU5FIGJvb2wgY2hhcmFjdGVyUmVxdWlyZXNQYXJzZVN0cmluZ1Nsb3dDYXNlKFVDaGFy
IGNoYXJhY3RlcikKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci10ZW1wbGF0ZSA8Ym9vbCBz
aG91bGRCdWlsZFN0cmluZ3M+IHR5cGVuYW1lIExleGVyPFQ+OjpTdHJpbmdQYXJzZVJlc3VsdCBM
ZXhlcjxUPjo6cGFyc2VTdHJpbmdTbG93Q2FzZShKU1Rva2VuRGF0YSogdG9rZW5EYXRhLCBib29s
IHN0cmljdE1vZGUpCit0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3MsIHR5cGVuYW1l
IExleGVyPFQ+OjpFc2NhcGVQYXJzZU1vZGUgZXNjYXBlUGFyc2VNb2RlPiBBTFdBWVNfSU5MSU5F
IGF1dG8gTGV4ZXI8VD46OnBhcnNlQ29tcGxleEVzY2FwZShib29sIHN0cmljdE1vZGUsIFQgc3Ry
aW5nUXVvdGVDaGFyYWN0ZXIpIC0+IFN0cmluZ1BhcnNlUmVzdWx0Cit7CisgICAgaWYgKG1fY3Vy
cmVudCA9PSAneCcpIHsKKyAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgaWYgKCFpc0FTQ0lJSGV4
RGlnaXQobV9jdXJyZW50KSB8fCAhaXNBU0NJSUhleERpZ2l0KHBlZWsoMSkpKSB7CisgICAgICAg
ICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiXFx4IGNhbiBvbmx5IGJlIGZv
bGxvd2VkIGJ5IGEgaGV4IGNoYXJhY3RlciBzZXF1ZW5jZSIpOworICAgICAgICAgICAgcmV0dXJu
IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAgICAgICB9CisgICAgICAgIFQgcHJldiA9IG1fY3Vy
cmVudDsKKyAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykK
KyAgICAgICAgICAgIHJlY29yZDE2KGNvbnZlcnRIZXgocHJldiwgbV9jdXJyZW50KSk7CisgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgIHJldHVybiBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHk7Cisg
ICAgfQorCisgICAgaWYgKG1fY3VycmVudCA9PSAndScpIHsKKyAgICAgICAgc2hpZnQoKTsKKyAg
ICAgICAgVW5pY29kZUhleFZhbHVlIGNoYXJhY3RlciA9IHBhcnNlRm91ckRpZ2l0VW5pY29kZUhl
eCgpOworICAgICAgICBpZiAoY2hhcmFjdGVyLmlzVmFsaWQoKSkgeworICAgICAgICAgICAgaWYg
KHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICByZWNvcmQxNihjaGFyYWN0ZXIu
dmFsdWUoKSk7CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5Owor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKGVzY2FwZVBhcnNlTW9kZSA9PSBFc2NhcGVQYXJzZU1v
ZGU6OlN0cmluZyAmJiBtX2N1cnJlbnQgPT0gc3RyaW5nUXVvdGVDaGFyYWN0ZXIpIHsKKyAgICAg
ICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgcmVjb3JkMTYo
J3UnKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHk7CisgICAg
ICAgIH0KKworICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiXFx1IGNh
biBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgVW5pY29kZSBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKKyAg
ICAgICAgcmV0dXJuIGNoYXJhY3Rlci52YWx1ZVR5cGUoKSA9PSBVbmljb2RlSGV4VmFsdWU6Oklu
Y29tcGxldGVIZXggPyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsK
KyAgICB9CisKKyAgICBpZiAoc3RyaWN0TW9kZSkgeworICAgICAgICBpZiAoaXNBU0NJSURpZ2l0
KG1fY3VycmVudCkpIHsKKyAgICAgICAgICAgIC8vIFRoZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNj
YXBlIGluIHN0cmljdCBtb2RlIGlzICdcMCcsIGFuZCB0aGlzIG11c3Qgbm90IGJlIGZvbGxvd2Vk
IGJ5IGEgZGVjaW1hbCBkaWdpdC4KKyAgICAgICAgICAgIGludCBjaGFyYWN0ZXIxID0gbV9jdXJy
ZW50OworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChjaGFyYWN0ZXIxICE9
ICcwJyB8fCBpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkgeworICAgICAgICAgICAgICAgIG1fbGV4
RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJUaGUgb25seSB2YWxpZCBudW1lcmljIGVzY2Fw
ZSBpbiBzdHJpY3QgbW9kZSBpcyAnXFwwJyIpOworICAgICAgICAgICAgICAgIHJldHVybiBTdHJp
bmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzaG91bGRC
dWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgcmVjb3JkMTYoMCk7CisgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5OworICAgICAgICB9CisgICAgfSBlbHNlIHsK
KyAgICAgICAgaWYgKGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpIHsKKyAgICAgICAgICAg
IC8vIE9jdGFsIGNoYXJhY3RlciBzZXF1ZW5jZXMKKyAgICAgICAgICAgIFQgY2hhcmFjdGVyMSA9
IG1fY3VycmVudDsKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoaXNBU0NJ
SU9jdGFsRGlnaXQobV9jdXJyZW50KSkgeworICAgICAgICAgICAgICAgIC8vIFR3byBvY3RhbCBj
aGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgVCBjaGFyYWN0ZXIyID0gbV9jdXJyZW50OworICAg
ICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3RlcjEgPj0g
JzAnICYmIGNoYXJhY3RlcjEgPD0gJzMnICYmIGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY29yZDE2KChjaGFyYWN0ZXIxIC0gJzAnKSAqIDY0ICsgKGNoYXJh
Y3RlcjIgLSAnMCcpICogOCArIG1fY3VycmVudCAtICcwJyk7CisgICAgICAgICAgICAgICAgICAg
IHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2
KChjaGFyYWN0ZXIxIC0gJzAnKSAqIDggKyBjaGFyYWN0ZXIyIC0gJzAnKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChzaG91bGRC
dWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KGNoYXJhY3RlcjEgLSAn
MCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nl
c3NmdWxseTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghYXRFbmQoKSkgeworICAgICAg
ICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgcmVjb3JkMTYobV9jdXJyZW50
KTsKKyAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3Nm
dWxseTsKKyAgICB9CisKKyAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiVW50
ZXJtaW5hdGVkIHN0cmluZyBjb25zdGFudCIpOworICAgIHJldHVybiBTdHJpbmdVbnRlcm1pbmF0
ZWQ7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordGVtcGxhdGUgPGJvb2wgc2hvdWxkQnVp
bGRTdHJpbmdzPiBhdXRvIExleGVyPFQ+OjpwYXJzZVN0cmluZ1Nsb3dDYXNlKEpTVG9rZW5EYXRh
KiB0b2tlbkRhdGEsIGJvb2wgc3RyaWN0TW9kZSkgLT4gU3RyaW5nUGFyc2VSZXN1bHQKIHsKICAg
ICBUIHN0cmluZ1F1b3RlQ2hhcmFjdGVyID0gbV9jdXJyZW50OwogICAgIHNoaWZ0KCk7CkBAIC0x
MTI0LDk2ICsxMjE2LDIwOCBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGNoYXJhY3RlclJl
cXVpcmVzUGFyc2VTdHJpbmdTbG93Q2FzZShVQ2hhciBjaGFyYWN0ZXIpCiAgICAgICAgICAgICAg
ICAgc2hpZnQoKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoVU5MSUtFTFkoaXNMaW5lVGVybWlu
YXRvcihtX2N1cnJlbnQpKSkKICAgICAgICAgICAgICAgICBzaGlmdExpbmVUZXJtaW5hdG9yKCk7
Ci0gICAgICAgICAgICBlbHNlIGlmIChtX2N1cnJlbnQgPT0gJ3gnKSB7Ci0gICAgICAgICAgICAg
ICAgc2hpZnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoIWlzQVNDSUlIZXhEaWdpdChtX2N1cnJl
bnQpIHx8ICFpc0FTQ0lJSGV4RGlnaXQocGVlaygxKSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
bV9sZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlxceCBjYW4gb25seSBiZSBmb2xsb3dl
ZCBieSBhIGhleCBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFN0cmluZ0Nhbm5vdEJlUGFyc2VkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBUIHByZXYgPSBtX2N1cnJlbnQ7Ci0gICAgICAgICAgICAgICAgc2hpZnQoKTsKLSAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICBy
ZWNvcmQxNihjb252ZXJ0SGV4KHByZXYsIG1fY3VycmVudCkpOwotICAgICAgICAgICAgICAgIHNo
aWZ0KCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG1fY3VycmVudCA9PSAndScpIHsKLSAgICAg
ICAgICAgICAgICBzaGlmdCgpOwotICAgICAgICAgICAgICAgIFVuaWNvZGVIZXhWYWx1ZSBjaGFy
YWN0ZXIgPSBwYXJzZUZvdXJEaWdpdFVuaWNvZGVIZXgoKTsKLSAgICAgICAgICAgICAgICBpZiAo
Y2hhcmFjdGVyLmlzVmFsaWQoKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQnVp
bGRTdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoY2hhcmFjdGVyLnZh
bHVlKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobV9jdXJyZW50ID09IHN0cmluZ1F1
b3RlQ2hhcmFjdGVyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmlu
Z3MpCi0gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNigndScpOwotICAgICAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVND
SUlMaXRlcmFsKCJcXHUgY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3Rl
ciBzZXF1ZW5jZSIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hhcmFjdGVyLnZhbHVl
VHlwZSgpID09IFVuaWNvZGVIZXhWYWx1ZTo6SW5jb21wbGV0ZUhleCA/IFN0cmluZ1VudGVybWlu
YXRlZCA6IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0gZWxzZSBpZiAoc3RyaWN0TW9kZSAmJiBpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkgewot
ICAgICAgICAgICAgICAgIC8vIFRoZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmlj
dCBtb2RlIGlzICdcMCcsIGFuZCB0aGlzIG11c3Qgbm90IGJlIGZvbGxvd2VkIGJ5IGEgZGVjaW1h
bCBkaWdpdC4KLSAgICAgICAgICAgICAgICBpbnQgY2hhcmFjdGVyMSA9IG1fY3VycmVudDsKLSAg
ICAgICAgICAgICAgICBzaGlmdCgpOwotICAgICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXIxICE9
ICcwJyB8fCBpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkgewotICAgICAgICAgICAgICAgICAgICBt
X2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBl
c2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1xcMCciKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFN0cmluZ0Nhbm5vdEJlUGFyc2VkOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IHBhcnNl
Q29tcGxleEVzY2FwZTxzaG91bGRCdWlsZFN0cmluZ3MsIEVzY2FwZVBhcnNlTW9kZTo6U3RyaW5n
PihzdHJpY3RNb2RlLCBzdHJpbmdRdW90ZUNoYXJhY3Rlcik7CisgICAgICAgICAgICAgICAgaWYg
KHJlc3VsdCAhPSBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHkpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0cmluZ1N0YXJ0
ID0gY3VycmVudFNvdXJjZVB0cigpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0K
KyAgICAgICAgLy8gRmFzdCBjaGVjayBmb3IgY2hhcmFjdGVycyB0aGF0IHJlcXVpcmUgc3BlY2lh
bCBoYW5kbGluZy4KKyAgICAgICAgLy8gQ2F0Y2hlcyAwLCBcbiwgXHIsIDB4MjAyOCwgYW5kIDB4
MjAyOSBhcyBlZmZpY2llbnRseQorICAgICAgICAvLyBhcyBwb3NzaWJsZSwgYW5kIGxldHMgdGhy
b3VnaCBhbGwgY29tbW9uIEFTQ0lJIGNoYXJhY3RlcnMuCisgICAgICAgIGlmIChVTkxJS0VMWSgo
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2N1cnJlbnQpIC0gMHhFKSAmIDB4MjAwMCkpKSB7Cisg
ICAgICAgICAgICAvLyBOZXctbGluZSBvciBlbmQgb2YgaW5wdXQgaXMgbm90IGFsbG93ZWQKKyAg
ICAgICAgICAgIGlmIChhdEVuZCgpIHx8IGlzTGluZVRlcm1pbmF0b3IobV9jdXJyZW50KSkgewor
ICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJVbmV4cGVj
dGVkIEVPRiIpOworICAgICAgICAgICAgICAgIHJldHVybiBhdEVuZCgpID8gU3RyaW5nVW50ZXJt
aW5hdGVkIDogU3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAvLyBBbnl0aGluZyBlbHNlIGlzIGp1c3QgYSBub3JtYWwgY2hhcmFjdGVyCisgICAgICAgIH0K
KyAgICAgICAgc2hpZnQoKTsKKyAgICB9CisKKyAgICBpZiAoY3VycmVudFNvdXJjZVB0cigpICE9
IHN0cmluZ1N0YXJ0ICYmIHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgYXBwZW5kMTYoc3Ry
aW5nU3RhcnQsIGN1cnJlbnRTb3VyY2VQdHIoKSAtIHN0cmluZ1N0YXJ0KTsKKyAgICBpZiAoc2hv
dWxkQnVpbGRTdHJpbmdzKQorICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gbWFrZUlkZW50aWZp
ZXIobV9idWZmZXIxNi5kYXRhKCksIG1fYnVmZmVyMTYuc2l6ZSgpKTsKKyAgICBlbHNlCisgICAg
ICAgIHRva2VuRGF0YS0+aWRlbnQgPSAwOworCisgICAgbV9idWZmZXIxNi5yZXNpemUoMCk7Cisg
ICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseTsKK30KKworI2lmIEVOQUJMRShFUzZf
VEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisvLyBXaGlsZSB0aGUgbGV4ZXIgYWNjZXB0cyA8TEY+
PENSPiAobm90IDxDUj48TEY+KSBzZXF1ZW5jZQorLy8gYXMgb25lIGxpbmUgdGVybWluYXRvciBh
bmQgaW5jcmVtZW50cyBvbmUgbGluZSBudW1iZXIsCisvLyBUZW1wbGF0ZUxpdGVyYWwgY29uc2lk
ZXJzIGl0IGFzIHR3byBsaW5lIHRlcm1pbmF0b3JzIDxMRj4gYW5kIDxDUj4uCisvLworLy8gVGVt
cGxhdGVMaXRlcmFsIG5vcm1hbGl6ZXMgbGluZSB0ZXJtaW5hdG9ycyBhcyBmb2xsb3dzLgorLy8K
Ky8vIDxMRj4gPT4gPExGPgorLy8gPENSPiA9PiA8TEY+CisvLyA8Q1I+PExGPiA9PiA8TEY+Cisv
LyA8XHUyMDI4PiA9PiA8XHUyMDI4PgorLy8gPFx1MjAyOT4gPT4gPFx1MjAyOT4KKy8vCisvLyBT
bywgPExGPjxDUj4gc2hvdWxkIGJlIG5vcm1hbGl6ZWQgdG8gPExGPjxMRj4uCisvLyBIb3dldmVy
LCB0aGUgbGV4ZXIgc2hvdWxkIGluY3JlbWVudCB0aGUgbGluZSBudW1iZXIgb25seSBvbmNlIGZv
ciA8TEY+PENSPi4KKy8vCisvLyBUbyBhY2hpZXZlIHRoaXMsIExpbmVOdW1iZXJBZGRlciBob2xk
cyB0aGUgY3VycmVudCBzdGF0dXMgb2YgbGluZSB0ZXJtaW5hdG9yIHNlcXVlbmNlLgorLy8gV2hl
biBUZW1wbGF0ZUxpdGVyYWwgbGV4ZXIgZW5jb3VudGVycyBhIGxpbmUgdGVybWluYXRvciwgaXQg
bm90aWZpZXMgdG8gTGluZU51bWJlckFkZGVyLgorLy8gTGluZU51bWJlckFkZGVyIG1haW50YWlu
cyB0aGUgc3RhdHVzIGFuZCBpbmNyZW1lbnRzIHRoZSBsaW5lIG51bWJlciB3aGVuIGl0J3MgbmVj
ZXNzYXJ5LgorLy8gRm9yIGV4YW1wbGUsIExpbmVOdW1iZXJBZGRlciBpbmNyZW1lbnRzIHRoZSBs
aW5lIG51bWJlciBvbmx5IG9uY2UgZm9yIDxMRj48Q1I+IGFuZCA8Q1I+PExGPi4KK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+CitjbGFzcyBMaW5lTnVtYmVyQWRkZXIgeworcHVibGljOgorICAgIExpbmVO
dW1iZXJBZGRlcihpbnQmIGxpbmVOdW1iZXIpCisgICAgICAgIDogbV9saW5lTnVtYmVyKGxpbmVO
dW1iZXIpCisgICAgICAgICwgbV9wcmV2aW91cygwKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lk
IGNsZWFyKCkKKyAgICB7CisgICAgICAgIG1fcHJldmlvdXMgPSAwOworICAgIH0KKworICAgIHZv
aWQgYWRkKFQgY2hhcmFjdGVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKExleGVyPFQ+Ojppc0xp
bmVUZXJtaW5hdG9yKGNoYXJhY3RlcikpOworICAgICAgICBpZiAoKGNoYXJhY3RlciArIG1fcHJl
dmlvdXMpID09ICdcbicgKyAnXHInKQorICAgICAgICAgICAgbV9wcmV2aW91cyA9IDA7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgKyttX2xpbmVOdW1iZXI7CisgICAgICAgICAgICBtX3By
ZXZpb3VzID0gY2hhcmFjdGVyOworICAgICAgICB9CisgICAgfQorCitwcml2YXRlOgorICAgIGlu
dCYgbV9saW5lTnVtYmVyOworICAgIFQgbV9wcmV2aW91czsKK307CisKK3RlbXBsYXRlIDx0eXBl
bmFtZSBUPgordGVtcGxhdGUgPGJvb2wgc2hvdWxkQnVpbGRTdHJpbmdzPiB0eXBlbmFtZSBMZXhl
cjxUPjo6U3RyaW5nUGFyc2VSZXN1bHQgTGV4ZXI8VD46OnBhcnNlVGVtcGxhdGVMaXRlcmFsKEpT
VG9rZW5EYXRhKiB0b2tlbkRhdGEpCit7CisgICAgY29uc3QgVCogc3RyaW5nU3RhcnQgPSBjdXJy
ZW50U291cmNlUHRyKCk7CisgICAgY29uc3QgVCogcmF3U3RyaW5nU3RhcnQgPSBjdXJyZW50U291
cmNlUHRyKCk7CisKKyAgICBMaW5lTnVtYmVyQWRkZXI8VD4gbGluZU51bWJlckFkZGVyKG1fbGlu
ZU51bWJlcik7CisKKyAgICB3aGlsZSAobV9jdXJyZW50ICE9ICdgJykgeworICAgICAgICBpZiAo
VU5MSUtFTFkobV9jdXJyZW50ID09ICdcXCcpKSB7CisgICAgICAgICAgICBsaW5lTnVtYmVyQWRk
ZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmIChzdHJpbmdTdGFydCAhPSBjdXJyZW50U291cmNl
UHRyKCkgJiYgc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgICAgIGFwcGVuZDE2KHN0
cmluZ1N0YXJ0LCBjdXJyZW50U291cmNlUHRyKCkgLSBzdHJpbmdTdGFydCk7CisgICAgICAgICAg
ICBzaGlmdCgpOworCisgICAgICAgICAgICBMQ2hhciBlc2NhcGUgPSBzaW5nbGVFc2NhcGUobV9j
dXJyZW50KTsKKworICAgICAgICAgICAgLy8gTW9zdCBjb21tb24gZXNjYXBlIHNlcXVlbmNlcyBm
aXJzdAorICAgICAgICAgICAgaWYgKGVzY2FwZSkgewogICAgICAgICAgICAgICAgIGlmIChzaG91
bGRCdWlsZFN0cmluZ3MpCi0gICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KDApOwotICAgICAg
ICAgICAgfSBlbHNlIGlmICghc3RyaWN0TW9kZSAmJiBpc0FTQ0lJT2N0YWxEaWdpdChtX2N1cnJl
bnQpKSB7Ci0gICAgICAgICAgICAgICAgLy8gT2N0YWwgY2hhcmFjdGVyIHNlcXVlbmNlcwotICAg
ICAgICAgICAgICAgIFQgY2hhcmFjdGVyMSA9IG1fY3VycmVudDsKKyAgICAgICAgICAgICAgICAg
ICAgcmVjb3JkMTYoZXNjYXBlKTsKICAgICAgICAgICAgICAgICBzaGlmdCgpOwotICAgICAgICAg
ICAgICAgIGlmIChpc0FTQ0lJT2N0YWxEaWdpdChtX2N1cnJlbnQpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIC8vIFR3byBvY3RhbCBjaGFyYWN0ZXJzCi0gICAgICAgICAgICAgICAgICAgIFQgY2hh
cmFjdGVyMiA9IG1fY3VycmVudDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoVU5MSUtFTFkoaXNM
aW5lVGVybWluYXRvcihtX2N1cnJlbnQpKSkgeworICAgICAgICAgICAgICAgIGlmIChtX2N1cnJl
bnQgPT0gJ1xyJykgeworICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyQWRkZXIuYWRkKG1f
Y3VycmVudCk7CiAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIChjaGFyYWN0ZXIxID49ICcwJyAmJiBjaGFyYWN0ZXIxIDw9ICczJyAmJiBpc0FTQ0lJ
T2N0YWxEaWdpdChtX2N1cnJlbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hv
dWxkQnVpbGRTdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KChj
aGFyYWN0ZXIxIC0gJzAnKSAqIDY0ICsgKGNoYXJhY3RlcjIgLSAnMCcpICogOCArIG1fY3VycmVu
dCAtICcwJyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJ1xuJykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKLSAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoKGNoYXJhY3RlcjEgLSAnMCcpICog
OCArIGNoYXJhY3RlcjIgLSAnMCcpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5n
cykKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KGNoYXJhY3RlcjEgLSAnMCcpOwor
ICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyQWRkZXIuYWRkKG1fY3VycmVudCk7CisgICAg
ICAgICAgICAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fSBlbHNlIGlmICghYXRFbmQoKSkgewotICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0
cmluZ3MpCi0gICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KG1fY3VycmVudCk7Ci0gICAgICAg
ICAgICAgICAgc2hpZnQoKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
bV9sZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlVudGVybWluYXRlZCBzdHJpbmcgY29u
c3RhbnQiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nVW50ZXJtaW5hdGVkOworICAg
ICAgICAgICAgICAgIFN0cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IHBhcnNlQ29tcGxleEVzY2Fw
ZTxzaG91bGRCdWlsZFN0cmluZ3MsIEVzY2FwZVBhcnNlTW9kZTo6VGVtcGxhdGU+KHRydWUsICdg
Jyk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBTdHJpbmdQYXJzZWRTdWNjZXNzZnVs
bHkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIHN0cmluZ1N0YXJ0ID0gY3VycmVudFNvdXJjZVB0cigpOwogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KKworICAgICAgICBpZiAobV9jdXJyZW50ID09ICckJyAm
JiBwZWVrKDEpID09ICd7JykKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIC8vIEZhc3Qg
Y2hlY2sgZm9yIGNoYXJhY3RlcnMgdGhhdCByZXF1aXJlIHNwZWNpYWwgaGFuZGxpbmcuCiAgICAg
ICAgIC8vIENhdGNoZXMgMCwgXG4sIFxyLCAweDIwMjgsIGFuZCAweDIwMjkgYXMgZWZmaWNpZW50
bHkKICAgICAgICAgLy8gYXMgcG9zc2libGUsIGFuZCBsZXRzIHRocm91Z2ggYWxsIGNvbW1vbiBB
U0NJSSBjaGFyYWN0ZXJzLgogICAgICAgICBpZiAoVU5MSUtFTFkoKChzdGF0aWNfY2FzdDx1bnNp
Z25lZD4obV9jdXJyZW50KSAtIDB4RSkgJiAweDIwMDApKSkgewotICAgICAgICAgICAgLy8gTmV3
LWxpbmUgb3IgZW5kIG9mIGlucHV0IGlzIG5vdCBhbGxvd2VkCi0gICAgICAgICAgICBpZiAoYXRF
bmQoKSB8fCBpc0xpbmVUZXJtaW5hdG9yKG1fY3VycmVudCkpIHsKKyAgICAgICAgICAgIC8vIEVu
ZCBvZiBpbnB1dCBpcyBub3QgYWxsb3dlZC4KKyAgICAgICAgICAgIC8vIFVubGlrZSBTdHJpbmcs
IGxpbmUgdGVybWluYXRvciBpcyBhbGxvd2VkLgorICAgICAgICAgICAgaWYgKGF0RW5kKCkpIHsK
ICAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiVW5leHBl
Y3RlZCBFT0YiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gYXRFbmQoKSA/IFN0cmluZ1VudGVy
bWluYXRlZCA6IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOwogICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBpZiAoaXNMaW5lVGVybWluYXRvcihtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAg
aWYgKG1fY3VycmVudCA9PSAnXHInKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vcm1hbGl6
ZSA8Q1I+LCA8Q1I+PExGPiB0byA8TEY+LgorICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5n
U3RhcnQgIT0gY3VycmVudFNvdXJjZVB0cigpICYmIHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFwcGVuZDE2KHN0cmluZ1N0YXJ0LCBjdXJyZW50U291cmNlUHRy
KCkgLSBzdHJpbmdTdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0
cmluZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNignXG4nKTsKKyAgICAgICAg
ICAgICAgICAgICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAgICAgICAgICAg
ICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9jdXJyZW50ID09ICdc
bicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9jdXJy
ZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nU3RhcnQgPSBjdXJyZW50U291cmNlUHRy
KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZU51
bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgICAgIC8vIEFueXRoaW5nIGVsc2UgaXMganVzdCBhIG5vcm1hbCBjaGFyYWN0
ZXIKICAgICAgICAgfQorCisgICAgICAgIGxpbmVOdW1iZXJBZGRlci5jbGVhcigpOwogICAgICAg
ICBzaGlmdCgpOwogICAgIH0KIAorICAgIGJvb2wgaXNUYWlsID0gbV9jdXJyZW50ID09ICdgJzsK
KwogICAgIGlmIChjdXJyZW50U291cmNlUHRyKCkgIT0gc3RyaW5nU3RhcnQgJiYgc2hvdWxkQnVp
bGRTdHJpbmdzKQogICAgICAgICBhcHBlbmQxNihzdHJpbmdTdGFydCwgY3VycmVudFNvdXJjZVB0
cigpIC0gc3RyaW5nU3RhcnQpOwotICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCi0gICAgICAg
IHRva2VuRGF0YS0+aWRlbnQgPSBtYWtlSWRlbnRpZmllcihtX2J1ZmZlcjE2LmRhdGEoKSwgbV9i
dWZmZXIxNi5zaXplKCkpOwotICAgIGVsc2UKLSAgICAgICAgdG9rZW5EYXRhLT5pZGVudCA9IDA7
CisKKyAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKSB7CisgICAgICAgIHRva2VuRGF0YS0+Y29v
a2VkID0gbWFrZUlkZW50aWZpZXIobV9idWZmZXIxNi5kYXRhKCksIG1fYnVmZmVyMTYuc2l6ZSgp
KTsKKyAgICAgICAgLy8gVE9ETzogV2hpbGUgbGluZSB0ZXJtaW5hdG9yIG5vcm1hbGl6YXRpb24g
KGUuZy4gPENSPiA9PiA8TEY+KSBzaG91bGQgYmUgYXBwbGllZCB0byBib3RoIHRoZSByYXcgYW5k
IGNvb2tlZCByZXByZXNlbnRhdGlvbnMsCisgICAgICAgIC8vIHRoaXMgcmF3IGltcGxlbWVudGF0
aW9uIGp1c3Qgc2xpY2VzIHRoZSBzb3VyY2Ugc3RyaW5nLiBBcyBhIHJlc3VsdCwgbGluZSB0ZXJt
aW5hdG9ycyBhcHBlYXIgaW4gdGhlIHJhdyByZXByZXNlbnRhdGlvbiB3aXRob3V0IG5vcm1hbGl6
YXRpb24uCisgICAgICAgIC8vIEZvciBleGFtcGxlLCB3aGVuIHBhcnNpbmcgYDxDUj5gLCA8Q1I+
IGFwcGVhcnMgaW4gdGhlIHJhdyByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgLy8gV2hpbGUgbm9u
LXRhZ2dlZCB0ZW1wbGF0ZSBsaXRlcmFscyBkb24ndCB1c2UgdGhlIHJhdyByZXByZXNlbnRhdGlv
biwgdGFnZ2VkIHRlbXBsYXRlcyB1c2UgdGhlIHJhdyByZXByZXNlbnRhaW9uLgorICAgICAgICAv
LyBTbyBsaW5lIHRlcm1pbmF0b3Igbm9tcmFsaXphdGlvbiBzaG91bGQgYmUgYXBwbGllZCB0byB0
aGUgcmF3IHJlcHJlc2VudGF0aW9uIHdoZW4gaW1wbGVtZW50aW5nIHRhZ2dlZCB0ZW1wbGF0ZXMu
CisgICAgICAgIHRva2VuRGF0YS0+cmF3ID0gbWFrZUlkZW50aWZpZXIocmF3U3RyaW5nU3RhcnQs
IGN1cnJlbnRTb3VyY2VQdHIoKSAtIHJhd1N0cmluZ1N0YXJ0KTsKKyAgICB9IGVsc2UgeworICAg
ICAgICB0b2tlbkRhdGEtPmNvb2tlZCA9IG51bGxwdHI7CisgICAgICAgIHRva2VuRGF0YS0+cmF3
ID0gbnVsbHB0cjsKKyAgICB9CisgICAgdG9rZW5EYXRhLT5pc1RhaWwgPSBpc1RhaWw7CiAKICAg
ICBtX2J1ZmZlcjE2LnJlc2l6ZSgwKTsKKworICAgIGlmIChpc1RhaWwpIHsKKyAgICAgICAgLy8g
U2tpcCBgCisgICAgICAgIHNoaWZ0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU2tpcCAk
IGFuZCB7CisgICAgICAgIHNoaWZ0KCk7CisgICAgICAgIHNoaWZ0KCk7CisgICAgfQorCiAgICAg
cmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseTsKIH0KKyNlbmRpZgogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4KIEFMV0FZU19JTkxJTkUgdm9pZCBMZXhlcjxUPjo6cGFyc2VIZXgoZG91Ymxl
JiByZXR1cm5WYWx1ZSkKQEAgLTE4MjYsMjMgKzIwMzAsMzkgQEAgc3RhdGljIEFMV0FZU19JTkxJ
TkUgYm9vbCBjaGFyYWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hhcmFj
dGVyKQogICAgICAgICB9CiAgICAgICAgIG1fYnVmZmVyOC5yZXNpemUoMCk7CiAgICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgQ2hhcmFjdGVyUXVvdGU6Ci0gICAgICAgIGlmIChsZXhlckZsYWdzICYg
TGV4ZXJGbGFnc0RvbnRCdWlsZFN0cmluZ3MpIHsKLSAgICAgICAgICAgIFN0cmluZ1BhcnNlUmVz
dWx0IHJlc3VsdCA9IHBhcnNlU3RyaW5nPGZhbHNlPih0b2tlbkRhdGEsIHN0cmljdE1vZGUpOwot
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBTdHJpbmdQYXJzZWRTdWNjZXNzZnVs
bHkpKSB7Ci0gICAgICAgICAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5h
dGVkID8gVU5URVJNSU5BVEVEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LIDogSU5WQUxJRF9TVFJJ
TkdfTElURVJBTF9FUlJPUlRPSzsKLSAgICAgICAgICAgICAgICBnb3RvIHJldHVybkVycm9yOwot
ICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU3RyaW5nUGFyc2VS
ZXN1bHQgcmVzdWx0ID0gcGFyc2VTdHJpbmc8dHJ1ZT4odG9rZW5EYXRhLCBzdHJpY3RNb2RlKTsK
LSAgICAgICAgICAgIGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1
bGx5KSkgewotICAgICAgICAgICAgICAgIHRva2VuID0gcmVzdWx0ID09IFN0cmluZ1VudGVybWlu
YXRlZCA/IFVOVEVSTUlOQVRFRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSyA6IElOVkFMSURfU1RS
SU5HX0xJVEVSQUxfRVJST1JUT0s7Ci0gICAgICAgICAgICAgICAgZ290byByZXR1cm5FcnJvcjsK
LSAgICAgICAgICAgIH0KKyAgICBjYXNlIENoYXJhY3RlclF1b3RlOiB7CisgICAgICAgIFN0cmlu
Z1BhcnNlUmVzdWx0IHJlc3VsdCA9IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAgICAgICBpZiAo
bGV4ZXJGbGFncyAmIExleGVyRmxhZ3NEb250QnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgcmVz
dWx0ID0gcGFyc2VTdHJpbmc8ZmFsc2U+KHRva2VuRGF0YSwgc3RyaWN0TW9kZSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlU3RyaW5nPHRydWU+KHRva2VuRGF0YSwg
c3RyaWN0TW9kZSk7CisKKyAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBTdHJpbmdQYXJz
ZWRTdWNjZXNzZnVsbHkpKSB7CisgICAgICAgICAgICB0b2tlbiA9IHJlc3VsdCA9PSBTdHJpbmdV
bnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfU1RSSU5HX0xJVEVSQUxfRVJST1JUT0sgOiBJTlZB
TElEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LOworICAgICAgICAgICAgZ290byByZXR1cm5FcnJv
cjsKICAgICAgICAgfQogICAgICAgICBzaGlmdCgpOwogICAgICAgICB0b2tlbiA9IFNUUklORzsK
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVS
QUxfU1lOVEFYKQorICAgIGNhc2UgQ2hhcmFjdGVyQmFja1F1b3RlOiB7CisgICAgICAgIC8vIFNr
aXAgYmFja3F1b3RlLgorICAgICAgICBzaGlmdCgpOworICAgICAgICBTdHJpbmdQYXJzZVJlc3Vs
dCByZXN1bHQgPSBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgaWYgKGxleGVyRmxhZ3Mg
JiBMZXhlckZsYWdzRG9udEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNl
VGVtcGxhdGVMaXRlcmFsPGZhbHNlPih0b2tlbkRhdGEpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICByZXN1bHQgPSBwYXJzZVRlbXBsYXRlTGl0ZXJhbDx0cnVlPih0b2tlbkRhdGEpOworCisg
ICAgICAgIGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KSkg
eworICAgICAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5hdGVkID8gVU5U
RVJNSU5BVEVEX1RFTVBMQVRFX0xJVEVSQUxfRVJST1JUT0sgOiBJTlZBTElEX1RFTVBMQVRFX0xJ
VEVSQUxfRVJST1JUT0s7CisgICAgICAgICAgICBnb3RvIHJldHVybkVycm9yOworICAgICAgICB9
CisgICAgICAgIHRva2VuID0gVEVNUExBVEU7CisgICAgICAgIGJyZWFrOworICAgICAgICB9Cisj
ZW5kaWYKICAgICBjYXNlIENoYXJhY3RlcklkZW50aWZpZXJTdGFydDoKICAgICAgICAgQVNTRVJU
KGlzSWRlbnRTdGFydChtX2N1cnJlbnQpKTsKICAgICAgICAgRkFMTFRIUk9VR0g7CkBAIC0yMDM1
LDYgKzIyNTUsNDAgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBjaGFyYWN0ZXJSZXF1aXJl
c1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hhcmFjdGVyKQogICAgIHJldHVybiB0cnVlOwog
fQogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKK3RlbXBsYXRlIDx0
eXBlbmFtZSBUPgorSlNUb2tlblR5cGUgTGV4ZXI8VD46OnNjYW5UcmFpbGluZ1RlbXBsYXRlU3Ry
aW5nKEpTVG9rZW4qIHRva2VuUmVjb3JkKQoreworICAgIEpTVG9rZW5EYXRhKiB0b2tlbkRhdGEg
PSAmdG9rZW5SZWNvcmQtPm1fZGF0YTsKKyAgICBKU1Rva2VuTG9jYXRpb24qIHRva2VuTG9jYXRp
b24gPSAmdG9rZW5SZWNvcmQtPm1fbG9jYXRpb247CisgICAgQVNTRVJUKCFtX2Vycm9yKTsKKyAg
ICBBU1NFUlQobV9idWZmZXIxNi5pc0VtcHR5KCkpOworCisgICAgLy8gTGVhZGluZyBjbG9zaW5n
IGJyYWNlIH0gaXMgYWxyZWFkeSBzaGlmdGVkIGluIHRoZSBwcmV2aW91cyB0b2tlbiBzY2FuLgor
ICAgIC8vIFNvIGluIHRoaXMgcmUtc2NhbiBwaGFzZSwgc2hpZnQoKSBpcyBub3QgbmVlZGVkIGhl
cmUuCisgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWw8
dHJ1ZT4odG9rZW5EYXRhKTsKKyAgICBKU1Rva2VuVHlwZSB0b2tlbiA9IEVSUk9SVE9LOworICAg
IGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KSkgeworICAg
ICAgICB0b2tlbiA9IHJlc3VsdCA9PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURf
VEVNUExBVEVfTElURVJBTF9FUlJPUlRPSyA6IElOVkFMSURfVEVNUExBVEVfTElURVJBTF9FUlJP
UlRPSzsKKyAgICAgICAgbV9lcnJvciA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdG9r
ZW4gPSBURU1QTEFURTsKKyAgICAgICAgbV9sYXN0VG9rZW4gPSB0b2tlbjsKKyAgICB9CisKKyAg
ICAvLyBTaW5jZSBUZW1wbGF0ZVN0cmluZyBhbHdheXMgZW5kcyB3aXRoIGAgb3IgfSwgbV9hdExp
bmVTdGFydCBhbHdheXMgYmVjb21lcyBmYWxzZS4KKyAgICBtX2F0TGluZVN0YXJ0ID0gZmFsc2U7
CisKKyAgICAvLyBBZGp1c3QgY3VycmVudCB0b2tlbkxvY2F0aW9uIGRhdGEgZm9yIFRlbXBsYXRl
U3RyaW5nLgorICAgIHRva2VuTG9jYXRpb24tPmxpbmUgPSBtX2xpbmVOdW1iZXI7CisgICAgdG9r
ZW5Mb2NhdGlvbi0+ZW5kT2Zmc2V0ID0gY3VycmVudE9mZnNldCgpOworICAgIHRva2VuTG9jYXRp
b24tPmxpbmVTdGFydE9mZnNldCA9IGN1cnJlbnRMaW5lU3RhcnRPZmZzZXQoKTsKKyAgICBBU1NF
UlQodG9rZW5Mb2NhdGlvbi0+ZW5kT2Zmc2V0ID49IHRva2VuTG9jYXRpb24tPmxpbmVTdGFydE9m
ZnNldCk7CisgICAgdG9rZW5SZWNvcmQtPm1fZW5kUG9zaXRpb24gPSBjdXJyZW50UG9zaXRpb24o
KTsKKyAgICByZXR1cm4gdG9rZW47Cit9CisjZW5kaWYKKwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiB2b2lkIExleGVyPFQ+OjpjbGVhcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0xleGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVy
LmgKaW5kZXggMmRmNTIxMzk5NTc4MjAwNzg1YTE2NmUyMmE3MzI3NWUwZWE2MzA0ZC4uNmY3OWRi
ODRhNTg2Zjg4YTk5OTY3ZGRmNzFjNWE4M2ZmZWRkZDQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTGV4ZXIuaApAQCAtOTksNiArOTksOSBAQCBjbGFzcyBMZXhlciB7CiAgICAgaW50IGxh
c3RMaW5lTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TGluZU51bWJlcjsgfQogICAgIGJv
b2wgcHJldlRlcm1pbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX3Rlcm1pbmF0b3I7IH0KICAgICBi
b29sIHNjYW5SZWdFeHAoY29uc3QgSWRlbnRpZmllciomIHBhdHRlcm4sIGNvbnN0IElkZW50aWZp
ZXIqJiBmbGFncywgVUNoYXIgcGF0dGVyblByZWZpeCA9IDApOworI2lmIEVOQUJMRShFUzZfVEVN
UExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgSlNUb2tlblR5cGUgc2NhblRyYWlsaW5nVGVtcGxh
dGVTdHJpbmcoSlNUb2tlbiopOworI2VuZGlmCiAgICAgYm9vbCBza2lwUmVnRXhwKCk7CiAKICAg
ICAvLyBGdW5jdGlvbnMgZm9yIHVzZSBhZnRlciBwYXJzaW5nLgpAQCAtMjAyLDYgKzIwNSwxNSBA
QCBjbGFzcyBMZXhlciB7CiAgICAgfTsKICAgICB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0
cmluZ3M+IEFMV0FZU19JTkxJTkUgU3RyaW5nUGFyc2VSZXN1bHQgcGFyc2VTdHJpbmcoSlNUb2tl
bkRhdGEqLCBib29sIHN0cmljdE1vZGUpOwogICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxk
U3RyaW5ncz4gTkVWRVJfSU5MSU5FIFN0cmluZ1BhcnNlUmVzdWx0IHBhcnNlU3RyaW5nU2xvd0Nh
c2UoSlNUb2tlbkRhdGEqLCBib29sIHN0cmljdE1vZGUpOworCisgICAgZW51bSBjbGFzcyBFc2Nh
cGVQYXJzZU1vZGUgeworICAgICAgICBUZW1wbGF0ZSwKKyAgICAgICAgU3RyaW5nCisgICAgfTsK
KyAgICB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3MsIEVzY2FwZVBhcnNlTW9kZT4g
QUxXQVlTX0lOTElORSBTdHJpbmdQYXJzZVJlc3VsdCBwYXJzZUNvbXBsZXhFc2NhcGUoYm9vbCBz
dHJpY3RNb2RlLCBUIHN0cmluZ1F1b3RlQ2hhcmFjdGVyKTsKKyNpZiBFTkFCTEUoRVM2X1RFTVBM
QVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5n
cz4gQUxXQVlTX0lOTElORSBTdHJpbmdQYXJzZVJlc3VsdCBwYXJzZVRlbXBsYXRlTGl0ZXJhbChK
U1Rva2VuRGF0YSopOworI2VuZGlmCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHBhcnNlSGV4KGRv
dWJsZSYgcmV0dXJuVmFsdWUpOwogICAgIEFMV0FZU19JTkxJTkUgYm9vbCBwYXJzZUJpbmFyeShk
b3VibGUmIHJldHVyblZhbHVlKTsKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGFyc2VPY3RhbChk
b3VibGUmIHJldHVyblZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2RlQ29uc3RydWN0b3JzLmgKaW5kZXggM2JkYWI2MWE1MjJlMGNlMmMzMzk3ZjgwZjRmYTE4NGQx
ZDQyMTYwZS4uNjY4Y2JjMzAwZGE0ZmYzMjg2YWE2MzQyMmNlMjU4N2IxY2FkODdiMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTEw
MCw2ICsxMDAsNTUgQEAKICAgICB7CiAgICAgfQogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9M
SVRFUkFMX1NZTlRBWCkKKyAgICBpbmxpbmUgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6OlRl
bXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKEV4cHJlc3Npb25Ob2RlKiBub2RlKQorICAgICAgICA6
IG1fbmV4dChudWxscHRyKQorICAgICAgICAsIG1fbm9kZShub2RlKQorICAgIHsKKyAgICB9CisK
KyAgICBpbmxpbmUgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6OlRlbXBsYXRlRXhwcmVzc2lv
bkxpc3ROb2RlKFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBwcmV2LCBFeHByZXNzaW9uTm9k
ZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAgICAgICAgLCBtX25vZGUobm9k
ZSkKKyAgICB7CisgICAgICAgIHByZXYtPm1fbmV4dCA9IHRoaXM7CisgICAgfQorCisgICAgaW5s
aW5lIFRlbXBsYXRlU3RyaW5nTm9kZTo6VGVtcGxhdGVTdHJpbmdOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGNvb2tlZCwgY29uc3QgSWRlbnRp
ZmllciYgcmF3KQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAs
IG1fY29va2VkKGNvb2tlZCkKKyAgICAgICAgLCBtX3JhdyhyYXcpCisgICAgeworICAgIH0KKwor
ICAgIGlubGluZSBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlOjpUZW1wbGF0ZVN0cmluZ0xpc3ROb2Rl
KFRlbXBsYXRlU3RyaW5nTm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAg
ICAgICAgLCBtX25vZGUobm9kZSkKKyAgICB7CisgICAgfQorCisgICAgaW5saW5lIFRlbXBsYXRl
U3RyaW5nTGlzdE5vZGU6OlRlbXBsYXRlU3RyaW5nTGlzdE5vZGUoVGVtcGxhdGVTdHJpbmdMaXN0
Tm9kZSogcHJldiwgVGVtcGxhdGVTdHJpbmdOb2RlKiBub2RlKQorICAgICAgICA6IG1fbmV4dChu
dWxscHRyKQorICAgICAgICAsIG1fbm9kZShub2RlKQorICAgIHsKKyAgICAgICAgcHJldi0+bV9u
ZXh0ID0gdGhpczsKKyAgICB9CisKKyAgICBpbmxpbmUgVGVtcGxhdGVMaXRlcmFsTm9kZTo6VGVt
cGxhdGVMaXRlcmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBUZW1wbGF0
ZVN0cmluZ0xpc3ROb2RlKiB0ZW1wbGF0ZVN0cmluZ3MpCisgICAgICAgIDogRXhwcmVzc2lvbk5v
ZGUobG9jYXRpb24pCisgICAgICAgICwgbV90ZW1wbGF0ZVN0cmluZ3ModGVtcGxhdGVTdHJpbmdz
KQorICAgICAgICAsIG1fdGVtcGxhdGVFeHByZXNzaW9ucyhudWxscHRyKQorICAgIHsKKyAgICB9
CisKKyAgICBpbmxpbmUgVGVtcGxhdGVMaXRlcmFsTm9kZTo6VGVtcGxhdGVMaXRlcmFsTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiB0
ZW1wbGF0ZVN0cmluZ3MsIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiB0ZW1wbGF0ZUV4cHJl
c3Npb25zKQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1f
dGVtcGxhdGVTdHJpbmdzKHRlbXBsYXRlU3RyaW5ncykKKyAgICAgICAgLCBtX3RlbXBsYXRlRXhw
cmVzc2lvbnModGVtcGxhdGVFeHByZXNzaW9ucykKKyAgICB7CisgICAgfQorI2VuZGlmCisKICAg
ICBpbmxpbmUgUmVnRXhwTm9kZTo6UmVnRXhwTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxv
Y2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0ZXJuLCBjb25zdCBJZGVudGlmaWVyJiBmbGFn
cykKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX3BhdHRl
cm4ocGF0dGVybikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCA2YjM3MzI5
YzA5YmZjNDJiZWNjYzNjYWE5ODM1OTdjMzU0MDJiNmM5Li5jNjM3YTAzMDUxMzlhZDQ4N2M1NjYz
MTA1N2ZlOGEwOTg1MjE4NzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBA
IC0yNzQsNyArMjc0LDcgQEAKIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX3ZhbHVlOwog
ICAgIH07Ci0gICAgCisKICAgICBjbGFzcyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAg
cHVibGljOgogICAgICAgICBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSgpCkBAIC00MjcsNiArNDI3
LDYwIEBACiAgICAgICAgIHVpbnQxNl90IG1fc3ViZXhwcmVzc2lvbkxpbmVTdGFydE9mZnNldDsK
ICAgICB9OwogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBj
bGFzcyBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSA6IHB1YmxpYyBQYXJzZXJBcmVuYUZyZWVh
YmxlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKEV4
cHJlc3Npb25Ob2RlKik7CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKFRlbXBs
YXRlRXhwcmVzc2lvbkxpc3ROb2RlKiwgRXhwcmVzc2lvbk5vZGUqKTsKKworICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogdmFsdWUoKSB7IHJldHVybiBtX25vZGU7IH0KKyAgICAgICAgVGVtcGxhdGVF
eHByZXNzaW9uTGlzdE5vZGUqIG5leHQoKSB7IHJldHVybiBtX25leHQ7IH0KKworICAgIHByaXZh
dGU6CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBtX25leHQ7CisgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX25vZGU7CisgICAgfTsKKworICAgIGNsYXNzIFRlbXBsYXRlU3Ry
aW5nTm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CisgICAgcHVibGljOgorICAgICAgICBU
ZW1wbGF0ZVN0cmluZ05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmll
ciYgY29va2VkLCBjb25zdCBJZGVudGlmaWVyJiByYXcpOworCisgICAgICAgIGNvbnN0IElkZW50
aWZpZXImIGNvb2tlZCgpIHsgcmV0dXJuIG1fY29va2VkOyB9CisgICAgICAgIGNvbnN0IElkZW50
aWZpZXImIHJhdygpIHsgcmV0dXJuIG1fcmF3OyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICB2
aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9jb29r
ZWQ7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fcmF3OworICAgIH07CisKKyAgICBjbGFz
cyBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlIDogcHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZShUZW1wbGF0ZVN0cmlu
Z05vZGUqKTsKKyAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZShUZW1wbGF0ZVN0cmluZ0xp
c3ROb2RlKiwgVGVtcGxhdGVTdHJpbmdOb2RlKik7CisKKyAgICAgICAgVGVtcGxhdGVTdHJpbmdO
b2RlKiB2YWx1ZSgpIHsgcmV0dXJuIG1fbm9kZTsgfQorICAgICAgICBUZW1wbGF0ZVN0cmluZ0xp
c3ROb2RlKiBuZXh0KCkgeyByZXR1cm4gbV9uZXh0OyB9CisKKyAgICBwcml2YXRlOgorICAgICAg
ICBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiBtX25leHQ7CisgICAgICAgIFRlbXBsYXRlU3RyaW5n
Tm9kZSogbV9ub2RlOworICAgIH07CisKKyAgICBjbGFzcyBUZW1wbGF0ZUxpdGVyYWxOb2RlIDog
cHVibGljIEV4cHJlc3Npb25Ob2RlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRlbXBsYXRlTGl0
ZXJhbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSop
OworICAgICAgICBUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFRl
bXBsYXRlU3RyaW5nTGlzdE5vZGUqLCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSopOworCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworCisgICAgICAgIFRl
bXBsYXRlU3RyaW5nTGlzdE5vZGUqIG1fdGVtcGxhdGVTdHJpbmdzOworICAgICAgICBUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0Tm9kZSogbV90ZW1wbGF0ZUV4cHJlc3Npb25zOworICAgIH07CisjZW5k
aWYKKwogICAgIGNsYXNzIFJlZ0V4cE5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1Ymxp
YyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBSZWdFeHBO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImIHBhdHRlcm4sIGNv
bnN0IElkZW50aWZpZXImIGZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmNwcAppbmRleCAzMmQyNTBjYTdjYzUzZjRiZWE2MWY2MWI2ZGFiZmU2NGJjYmM2ODQ2Li45OWM1
NGExYjFlNmRlOTQ2Y2I5ZGI1ODc1OTc5MzM1YzUwZDc0ZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yMjU2LDYgKzIyNTYsNjMgQEAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCiAgICAgcmV0dXJuIGNv
bnRleHQuY3JlYXRlQXJyYXkobG9jYXRpb24sIGVsZW1lbnRMaXN0KTsKIH0KIAorI2lmIEVOQUJM
RShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJU
eXBlPgordGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6
VGVtcGxhdGVTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlVGVtcGxhdGVTdHJpbmcoVHJl
ZUJ1aWxkZXImIGNvbnRleHQsIGJvb2wgaXNUZW1wbGF0ZUhlYWQsIGJvb2wmIGVsZW1lbnRJc1Rh
aWwpCit7CisgICAgaWYgKCFpc1RlbXBsYXRlSGVhZCkgeworICAgICAgICBtYXRjaE9yRmFpbChD
TE9TRUJSQUNFLCAiRXhwZWN0ZWQgYSBjbG9zaW5nICd9JyBmb2xsb3dpbmcgYW4gZXhwcmVzc2lv
biBpbiB0ZW1wbGF0ZSBsaXRlcmFsIik7CisgICAgICAgIC8vIFJlLXNjYW4gdGhlIHRva2VuIHRv
IHJlY29nbml6ZSBpdCBhcyBUZW1wbGF0ZSBFbGVtZW50LgorICAgICAgICBtX3Rva2VuLm1fdHlw
ZSA9IG1fbGV4ZXItPnNjYW5UcmFpbGluZ1RlbXBsYXRlU3RyaW5nKCZtX3Rva2VuKTsKKyAgICB9
CisgICAgbWF0Y2hPckZhaWwoVEVNUExBVEUsICJFeHBlY3RlZCBhbiB0ZW1wbGF0ZSBlbGVtZW50
Iik7CisgICAgY29uc3QgSWRlbnRpZmllciogY29va2VkID0gbV90b2tlbi5tX2RhdGEuY29va2Vk
OworICAgIGNvbnN0IElkZW50aWZpZXIqIHJhdyA9IG1fdG9rZW4ubV9kYXRhLnJhdzsKKyAgICBl
bGVtZW50SXNUYWlsID0gbV90b2tlbi5tX2RhdGEuaXNUYWlsOworICAgIEpTVG9rZW5Mb2NhdGlv
biBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgIG5leHQoKTsKKyAgICByZXR1cm4gY29u
dGV4dC5jcmVhdGVUZW1wbGF0ZVN0cmluZyhsb2NhdGlvbiwgKmNvb2tlZCwgKnJhdyk7Cit9CisK
K3RlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Cit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZUxpdGVyYWwgUGFyc2VyPExleGVyVHlw
ZT46OnBhcnNlVGVtcGxhdGVMaXRlcmFsKFRyZWVCdWlsZGVyJiBjb250ZXh0KQoreworICAgIEpT
VG9rZW5Mb2NhdGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgIGJvb2wgZWxlbWVu
dElzVGFpbCA9IGZhbHNlOworCisgICAgYXV0byBoZWFkVGVtcGxhdGVTdHJpbmcgPSBwYXJzZVRl
bXBsYXRlU3RyaW5nKGNvbnRleHQsIHRydWUsIGVsZW1lbnRJc1RhaWwpOworICAgIGZhaWxJZkZh
bHNlKGhlYWRUZW1wbGF0ZVN0cmluZywgIkNhbm5vdCBwYXJzZSBoZWFkIHRlbXBsYXRlIGVsZW1l
bnQiKTsKKworICAgIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZVN0cmluZ0xpc3QgdGVt
cGxhdGVTdHJpbmdMaXN0ID0gY29udGV4dC5jcmVhdGVUZW1wbGF0ZVN0cmluZ0xpc3QoaGVhZFRl
bXBsYXRlU3RyaW5nKTsKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVTdHJpbmdM
aXN0IHRlbXBsYXRlU3RyaW5nVGFpbCA9IHRlbXBsYXRlU3RyaW5nTGlzdDsKKworICAgIGlmIChl
bGVtZW50SXNUYWlsKQorICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxpdGVy
YWwobG9jYXRpb24sIHRlbXBsYXRlU3RyaW5nTGlzdCk7CisKKyAgICBUcmVlRXhwcmVzc2lvbiBl
eHByZXNzaW9uID0gcGFyc2VFeHByZXNzaW9uKGNvbnRleHQpOworICAgIGZhaWxJZkZhbHNlKGV4
cHJlc3Npb24sICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiBpbiB0ZW1wbGF0ZSBsaXRlcmFsIik7
CisKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdCB0ZW1w
bGF0ZUV4cHJlc3Npb25MaXN0ID0gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0
KGV4cHJlc3Npb24pOworICAgIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZUV4cHJlc3Np
b25MaXN0IHRlbXBsYXRlRXhwcmVzc2lvblRhaWwgPSB0ZW1wbGF0ZUV4cHJlc3Npb25MaXN0Owor
CisgICAgYXV0byB0ZW1wbGF0ZVN0cmluZyA9IHBhcnNlVGVtcGxhdGVTdHJpbmcoY29udGV4dCwg
ZmFsc2UsIGVsZW1lbnRJc1RhaWwpOworICAgIGZhaWxJZkZhbHNlKHRlbXBsYXRlU3RyaW5nLCAi
Q2Fubm90IHBhcnNlIHRlbXBsYXRlIGVsZW1lbnQiKTsKKyAgICB0ZW1wbGF0ZVN0cmluZ1RhaWwg
PSBjb250ZXh0LmNyZWF0ZVRlbXBsYXRlU3RyaW5nTGlzdCh0ZW1wbGF0ZVN0cmluZ1RhaWwsIHRl
bXBsYXRlU3RyaW5nKTsKKworICAgIHdoaWxlICghZWxlbWVudElzVGFpbCkgeworICAgICAgICBU
cmVlRXhwcmVzc2lvbiBleHByZXNzaW9uID0gcGFyc2VFeHByZXNzaW9uKGNvbnRleHQpOworICAg
ICAgICBmYWlsSWZGYWxzZShleHByZXNzaW9uLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gaW4g
dGVtcGxhdGUgbGl0ZXJhbCIpOworICAgICAgICB0ZW1wbGF0ZUV4cHJlc3Npb25UYWlsID0gY29u
dGV4dC5jcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KHRlbXBsYXRlRXhwcmVzc2lvblRhaWws
IGV4cHJlc3Npb24pOworCisgICAgICAgIGF1dG8gdGVtcGxhdGVTdHJpbmcgPSBwYXJzZVRlbXBs
YXRlU3RyaW5nKGNvbnRleHQsIGZhbHNlLCBlbGVtZW50SXNUYWlsKTsKKyAgICAgICAgZmFpbElm
RmFsc2UodGVtcGxhdGVTdHJpbmcsICJDYW5ub3QgcGFyc2UgdGVtcGxhdGUgZWxlbWVudCIpOwor
ICAgICAgICB0ZW1wbGF0ZVN0cmluZ1RhaWwgPSBjb250ZXh0LmNyZWF0ZVRlbXBsYXRlU3RyaW5n
TGlzdCh0ZW1wbGF0ZVN0cmluZ1RhaWwsIHRlbXBsYXRlU3RyaW5nKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxpdGVyYWwobG9jYXRpb24sIHRlbXBsYXRlU3Ry
aW5nTGlzdCwgdGVtcGxhdGVFeHByZXNzaW9uTGlzdCk7Cit9CisjZW5kaWYKKwogdGVtcGxhdGUg
PHR5cGVuYW1lIExleGVyVHlwZT4KIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4
cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJpbWFyeUV4cHJlc3Npb24oVHJlZUJ1
aWxkZXImIGNvbnRleHQpCiB7CkBAIC0yMzU3LDYgKzI0MTQsMTAgQEAgQUxXQVlTX0lOTElORSBz
dGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIHJlOwogICAgIH0KKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lO
VEFYKQorICAgIGNhc2UgVEVNUExBVEU6CisgICAgICAgIHJldHVybiBwYXJzZVRlbXBsYXRlTGl0
ZXJhbChjb250ZXh0KTsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGZhaWxEdWVUb1Vu
ZXhwZWN0ZWRUb2tlbigpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5o
CmluZGV4IDBmMjcyOGY4NjIxZjgwMTBjNDEwYmY3OTg3NjE5YmYyM2U1MGFmOGIuLmJkZTRiMGVl
MTI4M2VjMGExZDMzM2Y5Y2VmNWNkZTA4M2EwOWY1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuaApAQCAtNzc2LDYgKzc3NiwxMCBAQCBjbGFzcyBQYXJzZXIgewogI2lmIEVO
QUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
TkVWRVJfSU5MSU5FIFRyZWVDbGFzc0V4cHJlc3Npb24gcGFyc2VDbGFzcyhUcmVlQnVpbGRlciYs
IEZ1bmN0aW9uUmVxdWlyZW1lbnRzLCBQYXJzZXJDbGFzc0luZm88VHJlZUJ1aWxkZXI+Jik7CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIHR5cGVuYW1lIFRyZWVCdWlsZGVy
OjpUZW1wbGF0ZVN0cmluZyBwYXJzZVRlbXBsYXRlU3RyaW5nKFRyZWVCdWlsZGVyJiBjb250ZXh0
LCBib29sIGlzVGVtcGxhdGVIZWFkLCBib29sJiBlbGVtZW50SXNUYWlsKTsKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElORSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6
VGVtcGxhdGVMaXRlcmFsIHBhcnNlVGVtcGxhdGVMaXRlcmFsKFRyZWVCdWlsZGVyJik7CisjZW5k
aWYKIAogICAgIEFMV0FZU19JTkxJTkUgaW50IGlzQmluYXJ5T3BlcmF0b3IoSlNUb2tlblR5cGUp
OwogICAgIGJvb2wgYWxsb3dBdXRvbWF0aWNTZW1pY29sb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCmluZGV4IDgzMjlmODJhOWIyZmY5MTVkMWYyNDFj
MWY4YmZmYWQ0MjQ3YTVmMGIuLjAyNmU0ZjgwZjQzN2Q4YmZlNGE2MTljMzBkMTFkYzlmYzYxZTI2
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5z
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaApAQCAt
OTYsNiArOTYsNyBAQCBlbnVtIEpTVG9rZW5UeXBlIHsKICAgICBET1VCTEUsCiAgICAgSURFTlQs
CiAgICAgU1RSSU5HLAorICAgIFRFTVBMQVRFLAogICAgIFNFTUlDT0xPTiwKICAgICBDT0xPTiwK
ICAgICBET1QsCkBAIC0xNjEsNyArMTYyLDkgQEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgSU5W
QUxJRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSyA9IDkgfCBFcnJvclRva2VuRmxhZywKICAgICBJ
TlZBTElEX1BSSVZBVEVfTkFNRV9FUlJPUlRPSyA9IDEwIHwgRXJyb3JUb2tlbkZsYWcsCiAgICAg
SU5WQUxJRF9IRVhfTlVNQkVSX0VSUk9SVE9LID0gMTEgfCBFcnJvclRva2VuRmxhZywKLSAgICBJ
TlZBTElEX0JJTkFSWV9OVU1CRVJfRVJST1JUT0sgPSAxMiB8IEVycm9yVG9rZW5GbGFnCisgICAg
SU5WQUxJRF9CSU5BUllfTlVNQkVSX0VSUk9SVE9LID0gMTIgfCBFcnJvclRva2VuRmxhZywKKyAg
ICBVTlRFUk1JTkFURURfVEVNUExBVEVfTElURVJBTF9FUlJPUlRPSyA9IDEzIHwgRXJyb3JUb2tl
bkZsYWcgfCBVbnRlcm1pbmF0ZWRFcnJvclRva2VuRmxhZywKKyAgICBJTlZBTElEX1RFTVBMQVRF
X0xJVEVSQUxfRVJST1JUT0sgPSAxNCB8IEVycm9yVG9rZW5GbGFnLAogfTsKIAogc3RydWN0IEpT
VGV4dFBvc2l0aW9uIHsKQEAgLTE4OSw2ICsxOTIsMTEgQEAgc3RydWN0IEpTVGV4dFBvc2l0aW9u
IHsKICAgICB9OwogICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKICAgICBjb25zdCBJZGVudGlmaWVy
KiBpZGVudDsKKyAgICBzdHJ1Y3QgeworICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBjb29rZWQ7
CisgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIHJhdzsKKyAgICAgICAgYm9vbCBpc1RhaWw7Cisg
ICAgfTsKIH07CiAKIHN0cnVjdCBKU1Rva2VuTG9jYXRpb24gewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAppbmRleCA4ZTRmNjFiOTQ5ODkwYjliZjU0MDI5
ZTk2NjYxZWVmNTNhMTdiNTg0Li41NTRlNWRmNjRhNzIxZjQ0NjJkMGQ4OWFiMDIzYWZkZDc1M2M1
NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNr
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaApA
QCAtODEsNyArODEsOCBAQCBjbGFzcyBTeW50YXhDaGVja2VyIHsKICAgICAgICAgRnVuY3Rpb25C
b2R5UmVzdWx0LCBTcHJlYWRFeHByLCBBcmd1bWVudHNSZXN1bHQsCiAgICAgICAgIFByb3BlcnR5
TGlzdFJlc3VsdCwgQXJndW1lbnRzTGlzdFJlc3VsdCwgRWxlbWVudHNMaXN0UmVzdWx0LAogICAg
ICAgICBTdGF0ZW1lbnRSZXN1bHQsIEZvcm1hbFBhcmFtZXRlckxpc3RSZXN1bHQsIENsYXVzZVJl
c3VsdCwKLSAgICAgICAgQ2xhdXNlTGlzdFJlc3VsdCwgQ29tbWFFeHByLCBEZWNvbnN0cnVjdGlu
Z0Fzc2lnbm1lbnQKKyAgICAgICAgQ2xhdXNlTGlzdFJlc3VsdCwgQ29tbWFFeHByLCBEZWNvbnN0
cnVjdGluZ0Fzc2lnbm1lbnQsCisgICAgICAgIFRlbXBsYXRlU3RyaW5nUmVzdWx0LCBUZW1wbGF0
ZVN0cmluZ0xpc3RSZXN1bHQsIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3RSZXN1bHQsIFRlbXBsYXRl
RXhwcgogICAgIH07CiAgICAgdHlwZWRlZiBpbnQgRXhwcmVzc2lvblR5cGU7CiAKQEAgLTExMSw2
ICsxMTIsMTIgQEAgY2xhc3MgU3ludGF4Q2hlY2tlciB7CiAgICAgdHlwZWRlZiBpbnQgUHJvcGVy
dHlMaXN0OwogICAgIHR5cGVkZWYgaW50IEVsZW1lbnRMaXN0OwogICAgIHR5cGVkZWYgaW50IEFy
Z3VtZW50c0xpc3Q7CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAg
ICB0eXBlZGVmIGludCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0OworICAgIHR5cGVkZWYgaW50IFRl
bXBsYXRlU3RyaW5nOworICAgIHR5cGVkZWYgaW50IFRlbXBsYXRlU3RyaW5nTGlzdDsKKyAgICB0
eXBlZGVmIGludCBUZW1wbGF0ZUxpdGVyYWw7CisjZW5kaWYKICAgICB0eXBlZGVmIGludCBGb3Jt
YWxQYXJhbWV0ZXJMaXN0OwogICAgIHR5cGVkZWYgaW50IEZ1bmN0aW9uQm9keTsKICNpZiBFTkFC
TEUoRVM2X0NMQVNTX1NZTlRBWCkKQEAgLTE3Myw2ICsxODAsMTYgQEAgY2xhc3MgU3ludGF4Q2hl
Y2tlciB7CiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50cygpIHsgcmV0dXJuIEFyZ3VtZW50c1Jlc3Vs
dDsgfQogICAgIGludCBjcmVhdGVBcmd1bWVudHMoaW50KSB7IHJldHVybiBBcmd1bWVudHNSZXN1
bHQ7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVTcHJlYWRFeHByZXNzaW9uKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25UeXBlLCBpbnQsIGludCwgaW50KSB7IHJldHVybiBT
cHJlYWRFeHByOyB9CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAg
ICBUZW1wbGF0ZVN0cmluZyBjcmVhdGVUZW1wbGF0ZVN0cmluZyhjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSWRlbnRpZmllciYpIHsgcmV0dXJuIFRlbXBs
YXRlU3RyaW5nUmVzdWx0OyB9CisgICAgVGVtcGxhdGVTdHJpbmdMaXN0IGNyZWF0ZVRlbXBsYXRl
U3RyaW5nTGlzdChUZW1wbGF0ZVN0cmluZykgeyByZXR1cm4gVGVtcGxhdGVTdHJpbmdMaXN0UmVz
dWx0OyB9CisgICAgVGVtcGxhdGVTdHJpbmdMaXN0IGNyZWF0ZVRlbXBsYXRlU3RyaW5nTGlzdChU
ZW1wbGF0ZVN0cmluZ0xpc3QsIFRlbXBsYXRlU3RyaW5nKSB7IHJldHVybiBUZW1wbGF0ZVN0cmlu
Z0xpc3RSZXN1bHQ7IH0KKyAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0IGNyZWF0ZVRlbXBsYXRl
RXhwcmVzc2lvbkxpc3QoRXhwcmVzc2lvbikgeyByZXR1cm4gVGVtcGxhdGVFeHByZXNzaW9uTGlz
dFJlc3VsdDsgfQorICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3QgY3JlYXRlVGVtcGxhdGVFeHBy
ZXNzaW9uTGlzdChUZW1wbGF0ZUV4cHJlc3Npb25MaXN0LCBFeHByZXNzaW9uKSB7IHJldHVybiBU
ZW1wbGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVMaXRlcmFsIGNyZWF0
ZVRlbXBsYXRlTGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBUZW1wbGF0ZVN0cmluZ0xp
c3QpIHsgcmV0dXJuIFRlbXBsYXRlRXhwcjsgfQorICAgIFRlbXBsYXRlTGl0ZXJhbCBjcmVhdGVU
ZW1wbGF0ZUxpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgVGVtcGxhdGVTdHJpbmdMaXN0
LCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KSB7IHJldHVybiBUZW1wbGF0ZUV4cHI7IH0KKyNlbmRp
ZgorCiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
aW50KSB7IHJldHVybiBBcmd1bWVudHNMaXN0UmVzdWx0OyB9CiAgICAgaW50IGNyZWF0ZUFyZ3Vt
ZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBpbnQpIHsgcmV0dXJuIEFyZ3Vt
ZW50c0xpc3RSZXN1bHQ7IH0KICAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShjb25zdCBJZGVu
dGlmaWVyKiBuYW1lLCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6
OlB1dFR5cGUsIGJvb2wgY29tcGxldGUsIFN1cGVyQmluZGluZyA9IFN1cGVyQmluZGluZzo6Tm90
TmVlZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5jcHAKaW5kZXggNjUzZWJkYjg0ZmFhNmRjNWZhMDQwNTI3NjkyOGRiZWE3MzM5Y2M2NC4u
ZGNmZGRkZDA3NTZhYzZjMjE0NmVjZDg0YTUyNDNiMDQ2ZTE0MjU5YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC0zNDUsNiAr
MzQ1LDEyIEBAIHN0YXRpYyBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhKiBzZXR1cEFy
aXR5Q2hlY2tEYXRhKFZNJiB2bSwgaW50IHNsb3RzVG9BCiAgICAgUkVUVVJOKGpzTnVtYmVyKE9Q
X0MoMikuanNWYWx1ZSgpLnRvTnVtYmVyKGV4ZWMpKSk7CiB9CiAKK1NMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF90b19zdHJpbmcpCit7CisgICAgQkVHSU4oKTsKKyAgICBSRVRVUk4oT1BfQygyKS5q
c1ZhbHVlKCkudG9TdHJpbmcoZXhlYykpOworfQorCiBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
bmVnYXRlKQogewogICAgIEJFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGY2MGJiYzg0ZWYxYTQ1OTdlYjA1YzVhYmIzZmFl
MzE5ZDIzYTFmNjguLmQyNGFjYjVlNTNhYjdiMTI4ZWNmODBiNjA0NTY3N2QxNGVmMGVmZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCkBA
IC0yMDIsNiArMjAyLDcgQEAgaW5saW5lIHZvaWQgZGVjb2RlUmVzdWx0KFNsb3dQYXRoUmV0dXJu
VHlwZSByZXN1bHQsIHZvaWQqJiBhLCB2b2lkKiYgYikKIFNMT1dfUEFUSF9ISURERU5fREVDTChz
bG93X3BhdGhfaW5jKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZGVjKTsKIFNM
T1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdG9fbnVtYmVyKTsKK1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfdG9fc3RyaW5nKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfbmVnYXRlKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfYWRkKTsKIFNM
T1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbXVsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1saW5lLXRlcm1pbmF0
b3JzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRl
cmFsLWxpbmUtdGVybWluYXRvcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ1MDRiZWZiZTlkMTQ2M2ZhNmZj
MGNmOWQ5M2ZhMmMxZTc1NGRkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1saW5lLXRlcm1pbmF0b3JzLmpzCkBA
IC0wLDAgKzEsNTYgQEAKK2Z1bmN0aW9uIHRlc3QoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlm
IChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1
ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RFdmFsKHNjcmlwdCwgZXhwZWN0ZWQp
IHsKKyAgICB0ZXN0KGV2YWwoc2NyaXB0KSwgZXhwZWN0ZWQpOworfQorCitmdW5jdGlvbiB0ZXN0
RXZhbExpbmVOdW1iZXIoc2NyaXB0LCBleHBlY3RlZCwgbGluZU51bSkgeworICAgIHRlc3RFdmFs
KHNjcmlwdCwgZXhwZWN0ZWQpOworCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB2YXIgYWN0
dWFsTGluZTsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCArICc7dGhyb3cgbmV3IEVy
cm9yKCJsaW5lIik7Jyk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgYWN0dWFsTGlu
ZSA9IGVycm9yLmxpbmU7CisgICAgfQorICAgIHRlc3QoYWN0dWFsTGluZSwgbGluZU51bSk7Cit9
CisKK3Rlc3QoYEhlbGxvYCwgIkhlbGxvIik7Cit0ZXN0KGBIZWxsbyBXb3JsZGAsICJIZWxsbyBX
b3JsZCIpOwordGVzdChgCitgLCAiXG4iKTsKK3Rlc3QoYEhlbGxvCitXb3JsZGAsICJIZWxsb1xu
V29ybGQiKTsKKwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG8gV29ybGRgIiwgIkhlbGxvIFdv
cmxkIiwgMSk7CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXHJXb3JsZGAiLCAiSGVsbG9c
bldvcmxkIiwgMik7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuV29ybGRgIiwgIkhlbGxv
XG5Xb3JsZCIsIDIpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xyXHJXb3JsZGAiLCAi
SGVsbG9cblxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXHJcbldvcmxk
YCIsICJIZWxsb1xuV29ybGQiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5cbldv
cmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9c
blxyV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMik7CisKK3Rlc3RFdmFsTGluZU51bWJlcigi
YEhlbGxvXG5cclxuV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7Cit0ZXN0RXZhbExpbmVO
dW1iZXIoImBIZWxsb1xyXG5ccldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwordGVzdEV2
YWxMaW5lTnVtYmVyKCJgSGVsbG9cblxuXG5Xb3JsZGAiLCAiSGVsbG9cblxuXG5Xb3JsZCIsIDQp
OworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuXHJcblxyV29ybGRgIiwgIkhlbGxvXG5c
blxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5cclxuXG5Xb3JsZGAi
LCAiSGVsbG9cblxuXG5Xb3JsZCIsIDQpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cclxu
XG5cbldvcmxkYCIsICJIZWxsb1xuXG5cbldvcmxkIiwgNCk7CisKK3Rlc3RFdmFsTGluZU51bWJl
cigiYEhlbGxvXFxcblxyXHJXb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKK3Rlc3RFdmFs
TGluZU51bWJlcigiYEhlbGxvXFxcclxuXG5cbldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDQp
OwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cXFxuXHJcblxuV29ybGRgIiwgIkhlbGxvXG5c
bldvcmxkIiwgNCk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xcXG5cclxyXG5Xb3JsZGAi
LCAiSGVsbG9cblxuV29ybGQiLCAzKTsKKwordGVzdEV2YWxMaW5lTnVtYmVyKCJgXHUyMDI4YCIs
ICJcdTIwMjgiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYFx1MjAyOWAiLCAiXHUyMDI5Iiwg
Mik7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBcXHUyMDI4YCIsICJcdTIwMjgiLCAxKTsKK3Rlc3RF
dmFsTGluZU51bWJlcigiYFxcdTIwMjlgIiwgIlx1MjAyOSIsIDEpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLXN5bnRheC5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1z
eW50YXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA3OWM5N2U4ODIzZDA5ODFkMmE1ZDBlMDEyZmYzOTMzYWQ3
ZWUwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvdGVtcGxhdGUtbGl0ZXJhbC1zeW50YXguanMKQEAgLTAsMCArMSw2NyBAQAorCitmdW5jdGlv
biB0ZXN0U3ludGF4KHNjcmlwdCkgeworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsK
KyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBTeW50
YXhFcnJvcikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGVycm9yOiAiICsgU3Ry
aW5nKGVycm9yKSk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0U3ludGF4RXJyb3Ioc2NyaXB0
LCBtZXNzYWdlKSB7CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICBl
dmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAg
fQorICAgIGlmICghZXJyb3IpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgc3lu
dGF4IGVycm9yIG5vdCB0aHJvd24iKTsKKworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBtZXNz
YWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJv
cikpOworfQorCit0ZXN0U3ludGF4KCJgSGVsbG9gIik7Cit0ZXN0U3ludGF4KCIoYEhlbGxvYCki
KTsKK3Rlc3RTeW50YXgoIihgSGVsbG9gKSArIDQyIik7Cit0ZXN0U3ludGF4KCJgXG5IZWxsb1xu
V29ybGRgIik7Cit0ZXN0U3ludGF4KCJgXG5IZWxsb1xuJHtXb3JsZH1gIik7Cit0ZXN0U3ludGF4
KCJgJHtXb3JsZH1gIik7Cit0ZXN0U3ludGF4KCJgJHtXb3JsZH0gSGVsbG9gIik7Cit0ZXN0U3lu
dGF4KCJgJCB7V29ybGR9IEhlbGxvYCIpOwordGVzdFN5bnRheCgiYFxcdUZFRkZ0ZXN0YCIpOwor
dGVzdFN5bnRheCgiYFxyXG5gIik7Cit0ZXN0U3ludGF4KCJgXFxyXFxuYCIpOwordGVzdFN5bnRh
eCgiYFxuYCIpOwordGVzdFN5bnRheCgiYFxcbmAiKTsKK3Rlc3RTeW50YXgoImBcdTIwMjhgIik7
Cit0ZXN0U3ludGF4KCJgXFx1MjAyOGAiKTsKK3Rlc3RTeW50YXgoImBcdTIwMjlgIik7Cit0ZXN0
U3ludGF4KCJgXFx1MjAyOWAiKTsKK3Rlc3RTeW50YXgoImBcXDBgIik7Cit0ZXN0U3ludGF4KCJg
XDBgIik7Cit0ZXN0U3ludGF4KCJgXFx4N2ZgIik7Cit0ZXN0U3ludGF4KCIoYEhlbGxvYCkgKyA0
MiIpOwordGVzdFN5bnRheCgiYFxcXG5gIik7Cit0ZXN0U3ludGF4KCJgXFxcclxuYCIpOwordGVz
dFN5bnRheCgiYFxcXHJgIik7CisKK3Rlc3RTeW50YXhFcnJvcigiYEhlbGxvIiwgIlN5bnRheEVy
cm9yOiBVbmV4cGVjdGVkIEVPRiIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8ke30iLCAiU3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nIik7Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxs
byR7ZXhwcn0iLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgRU9GIik7Cit0ZXN0U3ludGF4RXJy
b3IoImBIZWxsbyR7ZXhwcmAiLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgRU9GIik7Cit0ZXN0
U3ludGF4RXJyb3IoImBIZWxsbyBleHByJHtgIiwgIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIEVP
RiIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8gJHt9YCIsICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiAnfSciKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxcMDdgIiwgIlN5bnRheEVycm9y
OiBUaGUgb25seSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXFwwJyIp
OworZm9yICh2YXIgaSA9IDE7IGkgPCA3OyArK2kpCisgICAgdGVzdFN5bnRheEVycm9yKCJgXFwi
ICsgaSArICJgIiwgIlN5bnRheEVycm9yOiBUaGUgb25seSB2YWxpZCBudW1lcmljIGVzY2FwZSBp
biBzdHJpY3QgbW9kZSBpcyAnXFwwJyIpOworLy8gXDggYW5kIFw5IGFyZSBub3QgYWxsb3dlZC4K
K2ZvciAodmFyIGkgPSA4OyBpIDwgOTsgKytpKQorICAgIHRlc3RTeW50YXhFcnJvcigiYFxcIiAr
IGkgKyAiYCIsICJTeW50YXhFcnJvcjogVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4g
c3RyaWN0IG1vZGUgaXMgJ1xcMCciKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxceDdgIiwgIlN5bnRh
eEVycm9yOiBcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVl
bmNlIik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHhgIiwgIlN5bnRheEVycm9yOiBcXHggY2FuIG9u
bHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4
RXJyb3IoImBcXHVgIiwgIlN5bnRheEVycm9yOiBcXHUgY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkg
YSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIpOwordGVzdFN5bnRheEVycm9yKCJgXFx1MmAi
LCAiU3ludGF4RXJyb3I6IFxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVuaWNvZGUgY2hh
cmFjdGVyIHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHUyMGAiLCAiU3ludGF4RXJy
b3I6IFxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVuaWNvZGUgY2hhcmFjdGVyIHNlcXVl
bmNlIik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHUyMDJgIiwgIlN5bnRheEVycm9yOiBcXHUgY2Fu
IG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRl
cmFsLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRl
cmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNmNjQyNDBhZDhmNzBiYjJiNTg1OTczMWQxY2M2YzY2ZWQwNWM5
YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3RlbXBsYXRlLWxpdGVyYWwuanMKQEAgLTAsMCArMSwxNDIgQEAKK2Z1bmN0aW9uIHRlc3QoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RFdmFsKHNjcmlwdCwgZXhwZWN0ZWQpIHsKKyAgICB0ZXN0KGV2YWwoc2NyaXB0KSwgZXhwZWN0
ZWQpOworfQorCitmdW5jdGlvbiB0ZXN0RW1iZWRkZWQodmFsdWUsIGV4cGVjdGVkKSB7CisgICAg
dmFyIHRlbXBsYXRlID0gYEhlbGxvICR7dmFsdWV9IFdvcmxkYDsKKyAgICB0ZXN0KHRlbXBsYXRl
LCBleHBlY3RlZCk7Cit9CisKK3Rlc3QoYEhlbGxvIFdvcmxkYCwgIkhlbGxvIFdvcmxkIik7Cit0
ZXN0KGBIZWxsbworICAgICAgICBXb3JsZGAsICJIZWxsb1xuICAgICAgICBXb3JsZCIpOworCit0
ZXN0KGBcdUZFRkZgLCAiXHVGRUZGIik7Cit0ZXN0RXZhbCgiYFx1RkVGRmAiLCAiXHVGRUZGIik7
CisKK3Rlc3QoYFx4MjBgLCAiXHgyMCIpOwordGVzdChgXHgyMDIwYCwgIlx4MjAyMCIpOworCitm
b3IgKHZhciBjaCBvZiBbICdcJycsICciJywgJ1xcJywgJ2InLCAnZicsICduJywgJ3InLCAndCcs
ICd2JyBdKQorICAgIHRlc3RFdmFsKCJgXFwiICsgY2ggKyAiYCIsIGV2YWwoIidcXCIgKyBjaCAr
ICInIikpOworCit0ZXN0KGBcCitIZWxsbyBXb3JsZGAsICJIZWxsbyBXb3JsZCIpOworCit0ZXN0
KGBcCisKK0hlbGxvIFdvcmxkYCwgIlxuSGVsbG8gV29ybGQiKTsKKwordGVzdChgXHUyMDI4XHUy
MDI5XHJcbmAsICJcdTIwMjhcdTIwMjlcclxuIik7Cit0ZXN0KGBcdTIwMjhcdTIwMjlcblxyXG5g
LCAiXHUyMDI4XHUyMDI5XG5cclxuIik7Cit0ZXN0KGBcdTIwMjgyMDBgLCAiXHUyMDI4MjAwIik7
CisKK3Rlc3RFbWJlZGRlZCg0MiwgIkhlbGxvIDQyIFdvcmxkIik7Cit0ZXN0RW1iZWRkZWQoIklT
VUNBIiwgIkhlbGxvIElTVUNBIFdvcmxkIik7Cit0ZXN0RW1iZWRkZWQobnVsbCwgIkhlbGxvIG51
bGwgV29ybGQiKTsKK3Rlc3RFbWJlZGRlZCh1bmRlZmluZWQsICJIZWxsbyB1bmRlZmluZWQgV29y
bGQiKTsKK3Rlc3RFbWJlZGRlZCh7fSwgIkhlbGxvIFtvYmplY3QgT2JqZWN0XSBXb3JsZCIpOwor
CisoZnVuY3Rpb24gKCkgeworICAgIHZhciBvYmplY3QgPSB7CisgICAgICAgIG5hbWU6ICJDb2Nv
YSIsCisgICAgfTsKKyAgICB2YXIgYXJyYXkgPSBbCisgICAgICAgICJDYXBwdWNjaW5vIgorICAg
IF0KKyAgICB0ZXN0KGBIZWxsbyAke29iamVjdC5uYW1lfSBhbmQgJHthcnJheVswXX0gOkRgLCAi
SGVsbG8gQ29jb2EgYW5kIENhcHB1Y2Npbm8gOkQiKTsKK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7
CisgICAgZnVuY3Rpb24gb2soKSB7CisgICAgICAgIHJldHVybiAiQ29jb2EiOworICAgIH0KKyAg
ICB0ZXN0KGBIZWxsbyAkeyBvaygpIH1gLCAiSGVsbG8gQ29jb2EiKTsKK30oKSk7CisKKyhmdW5j
dGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgdG9TdHJpbmcoKSB7CisgICAg
ICAgICAgICByZXR1cm4gJ0NvY29hJzsKKyAgICAgICAgfQorICAgIH07CisgICAgdGVzdChgSGVs
bG8gJHtvYmplY3R9IDpEYCwgIkhlbGxvIENvY29hIDpEIik7Cit9KCkpOworCisvLyBFeGNlcHRp
b25zCisKKyhmdW5jdGlvbiAoKSB7CisgICAgZnVuY3Rpb24gZ2VuKG51bSkgeworICAgICAgICBy
ZXR1cm4geworICAgICAgICAgICAgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKG51bSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAg
dmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB2YXIgdGVtcGxhdGUgPSBgJHtn
ZW4oMCl9ICR7Z2VuKDEpfSAke2dlbigyKX1gOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ25vIGVycm9yIHRocm93bicpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSAnRXJyb3I6
IDAnKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJv
cikpOworCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB2YXIgdGVt
cGxhdGUgPSBgJHs1Mn0gJHtnZW4oMCl9ICR7Z2VuKDEpfWA7CisgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignbm8gZXJyb3IgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09
ICdFcnJvcjogMCcpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGVycm9yOiAiICsgU3Ry
aW5nKGVycm9yKSk7Cit9KCkpOworCisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIHN0YXQ9IHsK
KyAgICAgICAgY291bnQ6IDAKKyAgICB9OworICAgIGZ1bmN0aW9uIGdlbihudW0pIHsKKyAgICAg
ICAgc3RhdFtudW1dID0geworICAgICAgICAgICAgY2FsbGVkOiB0cnVlLAorICAgICAgICAgICAg
Y291bnQ6IHN0YXQuY291bnQrKywKKyAgICAgICAgICAgIHRvU3RyaW5nOiBudWxsCisgICAgICAg
IH07CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB0b1N0cmluZygpIHsKKyAgICAgICAg
ICAgICAgICBzdGF0W251bV0udG9TdHJpbmcgPSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGxl
ZDogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgY291bnQ6IHN0YXQuY291bnQrKywKKyAgICAg
ICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihudW0pOworICAg
ICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIHZhciBlcnJvciA9IG51bGw7Cisg
ICAgdHJ5IHsKKyAgICAgICAgdmFyIHRlbXBsYXRlID0gYCR7Z2VuKDApfSAke2dlbigxKX0gJHtn
ZW4oMil9YDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9Cisg
ICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBlcnJvciB0aHJvd24n
KTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gJ0Vycm9yOiAwJykKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJiYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKKyAgICB0ZXN0KHN0YXRb
MF0uY291bnQsIDApOworICAgIHRlc3Qoc3RhdFswXS50b1N0cmluZy5jYWxsZWQsIHRydWUpOwor
ICAgIHRlc3Qoc3RhdFswXS50b1N0cmluZy5jb3VudCwgMSk7CisgICAgdGVzdChzdGF0WzFdLCB1
bmRlZmluZWQpOworICAgIHRlc3Qoc3RhdFsyXSwgdW5kZWZpbmVkKTsKK30oKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CmluZGV4IDhiMTEyZmFlNDViOTU3ZGQyNjQxZmRiNmY0Njg5ODgwNTg5YWY4NjAuLjI5ZGRjYzRm
YTc2MGQ5ZWZhN2Y2MmViNWZmYjcyNDg2NjMzZDVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00NSw2ICs0
NSw3IEBAIEVOQUJMRV9DQU5WQVNfUEFUSCA9IEVOQUJMRV9DQU5WQVNfUEFUSDsKIEVOQUJMRV9D
QU5WQVNfUFJPWFkgPSA7CiBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgPSBFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkc7CiBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCA9IEVOQUJMRV9FUzZfQ0xBU1Nf
U1lOVEFYOworRU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCA9IEVOQUJMRV9FUzZf
VEVNUExBVEVfTElURVJBTF9TWU5UQVg7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcgPSBFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ1NQX05FWFQgPSA7CiBFTkFCTEVfQ1NTX0FO
SU1BVElPTlNfTEVWRUxfMiA9IEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yOwpAQCAtMjE0
LDQgKzIxNSw0IEBAIEVOQUJMRV9MTElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURf
TEFZT1VUX0FSSVRITUVUSUMgPSBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwog
Ci1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VM
RVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5H
KSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChF
TkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVf
Q0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NM
QVNTX1NZTlRBWCkgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhU
KSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklD
RV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFH
RV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NT
U19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NI
QVBFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykg
JChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExF
UikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQp
ICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkg
JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJV
Q1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFf
VjIpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQ
QURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdF
X0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NF
UlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9N
T05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsp
ICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfSU9TX0dFU1RVUkVf
RVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hf
RVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVH
QUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5B
QkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5L
X1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQ
VCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09S
X1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdB
VE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJ
VF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5B
QkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFC
TEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVFV
RVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVT
T0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX0NT
U19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFN
U19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfU1ZHX09URl9DT05WRVJURVIpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9O
KSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQo
RU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJM
RV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFC
TEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJ
TykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJ
Q1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05T
KSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkg
JChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVU
SUMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKTsKK0ZFQVRVUkVfREVGSU5FUyA9
ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBU
SU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJ
T05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJM
RV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5H
KSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChF
TkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcp
ICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VU
KSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNP
TFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZF
TDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NT
M19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9D
VVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxF
X0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1F
UEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRB
VEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElF
X1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
X1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQo
RU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQo
RU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykg
JChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQ
UkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9N
RURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQo
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5B
QkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNf
U1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9G
UkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQ
RUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9C
QU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVT
SVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhP
TkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVf
VEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lD
T05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxF
Q1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RB
VEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdM
KSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9T
T0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVO
QUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQp
ICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJB
VEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCmluZGV4IDhiMTEyZmFlNDViOTU3ZGQyNjQxZmRiNmY0Njg5ODgwNTg5
YWY4NjAuLjI5ZGRjYzRmYTc2MGQ5ZWZhN2Y2MmViNWZmYjcyNDg2NjMzZDVkMzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCkBAIC00NSw2ICs0NSw3IEBAIEVOQUJMRV9DQU5WQVNfUEFUSCA9IEVOQUJMRV9D
QU5WQVNfUEFUSDsKIEVOQUJMRV9DQU5WQVNfUFJPWFkgPSA7CiBFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcgPSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc7CiBFTkFCTEVfRVM2X0NMQVNTX1NZTlRB
WCA9IEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYOworRU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFM
X1NZTlRBWCA9IEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVg7CiBFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ1NQX05F
WFQgPSA7CiBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9IEVOQUJMRV9DU1NfQU5JTUFU
SU9OU19MRVZFTF8yOwpAQCAtMjE0LDQgKzIxNSw0IEBAIEVOQUJMRV9MTElOVF9DX0xPT1AgPSA7
CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBFTkFCTEVfU0FUVVJBVEVE
X0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5E
RVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFU
RURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FU
VEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9D
QU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
TkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAk
KEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElO
RykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlP
VVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JF
U09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xF
VkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9D
U1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxF
X0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5B
QkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFC
TEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dB
TUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09O
REFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5E
SUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09M
T1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkg
JChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5H
KSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRF
UlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkg
JChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9V
VElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNB
VElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChF
TkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJ
Q19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVNT1RFX0lO
U1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVS
X0JBTkRJTkcpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRI
RVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5B
QkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJURVIpICQoRU5BQkxFX1RFTEVQ
SE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJM
RV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hf
SUNPTl9MT0FESU5HKSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfVVNFUlNF
TEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVf
REFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VC
R0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VC
X1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQo
RU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNM
VCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRV
UkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJ
TkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAk
KEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJM
RV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9FUzZf
Q0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpICQoRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FO
SU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVO
QUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChF
TkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFC
TEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NT
UzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9W
SVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hC
T0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RS
QU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VO
Q1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxU
RVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQo
RU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RU
TElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dP
UktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lO
UFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVf
SU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FV
RElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFC
TEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElB
X1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVO
VCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVf
TkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZ
KSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJM
RV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZF
TlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJM
RV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUp
ICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVF
UlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQo
RU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9T
VUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVS
VEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExB
VEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVO
VFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dP
UkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklE
RU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1Nf
TUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9S
RVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVO
QUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJ
TUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0Nf
TE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURF
T19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDhiMTEyZmFlNDViOTU3ZGQyNjQx
ZmRiNmY0Njg5ODgwNTg5YWY4NjAuLjI5ZGRjYzRmYTc2MGQ5ZWZhN2Y2MmViNWZmYjcyNDg2NjMz
ZDVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00NSw2ICs0NSw3IEBAIEVOQUJMRV9DQU5WQVNfUEFUSCA9
IEVOQUJMRV9DQU5WQVNfUEFUSDsKIEVOQUJMRV9DQU5WQVNfUFJPWFkgPSA7CiBFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcgPSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc7CiBFTkFCTEVfRVM2X0NM
QVNTX1NZTlRBWCA9IEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYOworRU5BQkxFX0VTNl9URU1QTEFU
RV9MSVRFUkFMX1NZTlRBWCA9IEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVg7CiBF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFC
TEVfQ1NQX05FWFQgPSA7CiBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9IEVOQUJMRV9D
U1NfQU5JTUFUSU9OU19MRVZFTF8yOwpAQCAtMjE0LDQgKzIxNSw0IEBAIEVOQUJMRV9MTElOVF9D
X0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBFTkFCTEVf
U0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQo
RU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAk
KEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19M
RVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19D
T01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1Nf
R1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NT
X0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VM
RUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19URVhUKSAk
KEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkp
ICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBP
UlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRF
TVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxf
MikgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChF
TkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9U
SU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9B
VVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NT
X1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5B
QkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
Q09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxF
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJf
TE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5B
QkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFC
TEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BF
RUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQ
VE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJURVIpICQoRU5B
QkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5U
KSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChF
TkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChF
TkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9U
SU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChF
TkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVO
QUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxP
V19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9F
TEVNRU5UKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRI
KSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5U
QVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFC
TEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRB
VElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9O
UykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQo
RU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJM
RV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQo
RU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVO
QUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJF
Q0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElN
RVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NP
TlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykg
JChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRD
SCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5B
QkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVU
RVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkg
JChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NP
TkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lO
KSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9Y
SU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RB
KSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRP
Q09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05f
TUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xM
X1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAk
KEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19P
VEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFC
TEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RS
QUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChF
TkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdf
TU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJ
WkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFC
TEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxF
X0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVO
QUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
V2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UK
aW5kZXggMzJjMjM1ZDk4YjVhNDIwZWJlMzM0ODM0YzdiNmE0MTgyYjIyMjIwYS4uYTM0MzA4MmZm
NDNlMmZhYTA0N2NlODNlY2E1ZGY1MjNkNzFlZGVkMSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
L1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5j
bWFrZQpAQCAtMjgsNiArMjgsNyBAQCBtYWNybyhXRUJLSVRfT1BUSU9OX0JFR0lOKQogICAgIFdF
QktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9DQU5WQVNfUFJPWFkgIlRvZ2dsZSBDYW52YXNQcm94
eSBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HICJUb2dnbGUgTWVzc2FnZUNoYW5uZWwgYW5kIE1lc3NhZ2VQb3J0IHN1cHBvcnQi
IE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYICJU
b2dnbGUgRVM2IGNsYXNzIHN5bnRheCBzdXBwb3J0IiBPTikKKyAgICBXRUJLSVRfT1BUSU9OX0RF
RklORShFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYICJUb2dnbGUgRVM2IHRlbXBs
YXRlIGxpdGVyYWwgc3ludGF4IHN1cHBvcnQiIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5F
KEVOQUJMRV9DT05URU5UX0ZJTFRFUklORyAiVG9nZ2xlIGNvbnRlbnQgZmlsdGVyaW5nIHN1cHBv
cnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfQ09OVEVYVF9NRU5VUyAi
VG9nZ2xlIENvbnRleHQgTWVudSBzdXBwb3J0IiBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklO
RShFTkFCTEVfQ1NQX05FWFQgIlRvZ2dsZSBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAxLjEgc3Vw
cG9ydCIgT0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UgYi9Tb3Vy
Y2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCAyMWQzZmNjNWQ5ODNmOTU5NWRlZjM1MTA1Njhj
ZGM5ODk2NTI0NmVkLi5iOWMxZWE4ZDEyYzI1MzY5OWNiNzNmNDFkODA2Y2MxN2JmNGNjMDQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Vj
b25maWcuaC5jbWFrZQpAQCAtMTMsNiArMTMsNyBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NB
TlZBU19QUk9YWQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HCiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWAorI2NtYWtlZGVmaW5lMDEgRU5BQkxF
X0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NPTlRF
TlRfRklMVEVSSU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ09OVEVYVF9NRU5VUwogI2NtYWtl
ZGVmaW5lMDEgRU5BQkxFX0NSRURFTlRJQUxfU1RPUkFHRQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDllOTdkMGE4YzMwNWRlOTNiODRiNTYyNzI1
NzViZmJhMzAzNjEzZDQuLmZhZDBiNzlmZGY0NjJjN2ZiYjZkN2E2MmQ1NThiMjY1ZjdlMzAzYTUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNS0wNC0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxpdGVyYWxzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5BQkxF
X0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwogMjAxNS0wNC0wMSAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBSdW4gdGVz
dC13ZWJraXRweSBhcyBwYXJ0IG9mIEVXUyAoanVzdCBsaWtlIHdlIGRvIG9uIG90aGVyIHBsYXRm
b3JtcykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5w
bSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCAxNmZkNjQ5
YzY4ZDZiM2Q0M2QwYjMxZTMzNTc5MDRmYzg3MjRhN2ViLi4wMDIzYzNlNWE4ZjAyNzlhOGFlNjEx
MDQxZmQ5YmU0OTQ4NTkwYTVjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
RmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0
LnBtCkBAIC00OSw2ICs0OSw3IEBAIEJFR0lOCiAgICAgJGNhbnZhc1Byb3h5U3VwcG9ydCwKICAg
ICAkY2hhbm5lbE1lc3NhZ2luZ1N1cHBvcnQsCiAgICAgJGNsYXNzU3ludGF4LAorICAgICR0ZW1w
bGF0ZUxpdGVyYWxTeW50YXgsCiAgICAgJGNzcE5leHRTdXBwb3J0LAogICAgICRjc3MzQ29uZGl0
aW9uYWxSdWxlc1N1cHBvcnQsCiAgICAgJGNzczNUZXh0U3VwcG9ydCwKQEAgLTE2OSw2ICsxNzAs
OSBAQCBCRUdJTgogICAgIHsgb3B0aW9uID0+ICJjbGFzcy1zeW50YXgiLCBkZXNjID0+ICJUb2dn
bGUgRVM2IGNsYXNzIHN5bnRheCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0VT
Nl9DTEFTU19TWU5UQVgiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkY2xhc3NTeW50YXggfSwK
IAorICAgIHsgb3B0aW9uID0+ICJ0ZW1wbGF0ZS1saXRlcmFsLXN5bnRheCIsIGRlc2MgPT4gIlRv
Z2dsZSBFUzYgdGVtcGxhdGUgbGl0ZXJhbCBzeW50YXggc3VwcG9ydCIsCisgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgiLCBkZWZhdWx0ID0+IDEsIHZh
bHVlID0+IFwkdGVtcGxhdGVMaXRlcmFsU3ludGF4IH0sCisKICAgICB7IG9wdGlvbiA9PiAiY3Nw
LW5leHQiLCBkZXNjID0+ICJUb2dnbGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgMS4xIHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NQX05FWFQiLCBkZWZhdWx0ID0+IGlzR3Rr
KCksIHZhbHVlID0+IFwkY3NwTmV4dFN1cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9n
IGIvQ2hhbmdlTG9nCmluZGV4IDZhMTc0YTY4N2MxNjM2NGZkMzE3YmIwOWIzNTFjNTdjNjQ4NTVj
N2MuLjRlN2M4YTkzMjFhZDE0OGI2N2U3NjJkZDJiYjJlZjg1YjljYzcxZDEgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNS0wNC0wMiAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJ
bXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxpdGVyYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZ
TlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRG
ZWF0dXJlcy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZToKKwog
MjAxNS0wNC0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFByb2dyZXNzIHRvd2FyZHMgQ01ha2Ugb24gV2luZG93cyBhbmQgTWFjLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250029</attachid>
            <date>2015-04-02 19:11:50 -0700</date>
            <delta_ts>2015-04-18 06:58:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142691-20150403111104.patch</filename>
            <type>text/plain</type>
            <size>101029</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NWQ5YWMyZTI3MDM0YWJkOGZmYTM2MTUzMjdjODZiZDc4MTlmYjRkLi42MTFiY2QwZTFjMjc5MTUz
NjZjNTJmZTI2MGE3ZmIwMTRlZjYwMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTggQEAKKzIwMTUtMDQtMDIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIFRlbXBsYXRlTGl0ZXJhbC4KKyAgICAgICAgU2luY2UgVGFnZ2VkVGVtcGxh
dGUgcmVxdWlyZXMgc29tZSBnbG9iYWwgc3RhdGVzIGFuZAorICAgICAgICBwcmltaXRpdmUgb3Bl
cmF0aW9ucyBsaWtlIEdldFRlbXBsYXRlT2JqZWN0LAorICAgICAgICB3ZSBzZXBhcmF0ZSB0aGUg
cGF0Y2guIEl0IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisg
ICAgICAgIFRlbXBsYXRlIExpdGVyYWwgU3ludGF4IGlzIGd1YXJkZWQgYnkgRU5BQkxFX0VTNl9U
RU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKyAgICAgICAgQnkgZGlz
YWJsaW5nIGl0LCB3ZSBjYW4gZGlzYWJsZSBUZW1wbGF0ZSBMaXRlcmFsIHN1cHBvcnQuCisKKyAg
ICAgICAgVG8gaW1wbGVtZW50IHRlbXBsYXRlIGxpdGVyYWxzLCBpbiB0aGlzIHBhdGNoLAorICAg
ICAgICB3ZSBuZXdseSBpbnRyb2R1Y2VzIGJ5dGVjb2RlIG9wX3RvX3N0cmluZy4KKyAgICAgICAg
SW4gdGVtcGxhdGUgbGl0ZXJhbHMsIHdlIGFsdGVybmF0ZWx5IGV2YWx1YXRlIHRoZSBleHByZXNz
aW9uIGFuZAorICAgICAgICBwZXJmb3JtIFRvU3RyaW5nIG9udG8gdGhlIHJlc3VsdCBvZiBldmFs
dWF0aW9uLgorICAgICAgICBGb3IgZXhhbXBsZSwKKworICAgICAgICBgJHtmMSgpfSAke2YyKCl9
YAorCisgICAgICAgIEluIHRoaXMgdGVtcGxhdGUgbGl0ZXJhbCwgZXhlY3V0aW9uIG9yZGVyIGlz
IHRoZSBmb2xsb3dpbmcsCisgICAgICAgIDEuIGNhbGxpbmcgZjEoKQorICAgICAgICAyLiBUb1N0
cmluZyh0aGUgcmVzdWx0IG9mIGYxKCkpCisgICAgICAgIDMuIGNhbGxpbmcgZjIoKQorICAgICAg
ICA0LiBUb1N0cmluZyh0aGUgcmVzdWx0IG9mIGYyKCkpCisKKyAgICAgICAgb3Bfc3RyY2F0IGFs
c28gcGVyZm9ybXMgVG9TdHJpbmcuIEhvd2V2ZXIsIHBlcmZvcm1pbmcgVG9TdHJpbmcKKyAgICAg
ICAgb250byBleHByZXNzaW9ucyBhcmUgYmF0Y2hlZCBpbiBvcF9zdHJjYXQsIGl0J3Mgbm90IHRo
ZSBzYW1lIHRvIHRoZQorICAgICAgICB0ZW1wbGF0ZSBsaXRlcmFsIHNwZWMuIEluIHRoZSBhYm92
ZSBleGFtcGxlLAorICAgICAgICBUb1N0cmluZyhmMSgpKSBzaG91bGQgYmUgY2FsbGVkIGJlZm9y
ZSBjYWxsaW5nIGYyKCkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAg
ICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNl
c0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29k
ZU9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRv
U3RyaW5nKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAg
ICAgKEpTQzo6VGVtcGxhdGVTdHJpbmdOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlND
OjpUZW1wbGF0ZUxpdGVyYWxOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGRmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBh
cnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJ
VDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAg
ICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90b19z
dHJpbmcpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3RvX3N0cmluZyk6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF90b19zdHJpbmcpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3RvX3N0cmluZyk6
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHBhcnNlci9BU1RC
dWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxhdGVTdHJpbmdMaXN0KToK
KyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdCk6
CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbCk6CisgICAg
ICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OkxleGVyKToK
KyAgICAgICAgKEpTQzo6TGluZU51bWJlckFkZGVyOjpMaW5lTnVtYmVyQWRkZXIpOgorICAgICAg
ICAoSlNDOjpMaW5lTnVtYmVyQWRkZXI6OmNsZWFyKToKKyAgICAgICAgKEpTQzo6TGluZU51bWJl
ckFkZGVyOjphZGQpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6cGFyc2VUZW1wbGF0ZUxpdGVy
YWwpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4KToKKyAgICAgICAgKEpTQzo6TGV4ZXI8
VD46OnNjYW5UcmFpbGluZ1RlbXBsYXRlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46
OnBhcnNlU3RyaW5nU2xvd0Nhc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9MZXhlci5o
OgorICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OlRl
bXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSk6Cisg
ICAgICAgIChKU0M6OlRlbXBsYXRlU3RyaW5nTm9kZTo6VGVtcGxhdGVTdHJpbmdOb2RlKToKKyAg
ICAgICAgKEpTQzo6VGVtcGxhdGVTdHJpbmdMaXN0Tm9kZTo6VGVtcGxhdGVTdHJpbmdMaXN0Tm9k
ZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlTGl0ZXJhbE5vZGU6OlRlbXBsYXRlTGl0ZXJhbE5v
ZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUV4
cHJlc3Npb25MaXN0Tm9kZTo6dmFsdWUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUV4cHJlc3Np
b25MaXN0Tm9kZTo6bmV4dCk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlU3RyaW5nTm9kZTo6Y29v
a2VkKToKKyAgICAgICAgKEpTQzo6VGVtcGxhdGVTdHJpbmdOb2RlOjpyYXcpOgorICAgICAgICAo
SlNDOjpUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlOjp2YWx1ZSk6CisgICAgICAgIChKU0M6OlRlbXBs
YXRlU3RyaW5nTGlzdE5vZGU6Om5leHQpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1wbGF0ZVN0cmluZyk6Cisg
ICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVRlbXBsYXRlTGl0ZXJhbCk6Cisg
ICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToK
KyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAgICogcGFyc2VyL1BhcnNlclRva2Vu
cy5oOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAgIChKU0M6OlN5
bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6U3ludGF4
Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVTdHJpbmdMaXN0KToKKyAgICAgICAgKEpTQzo6U3ludGF4
Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdCk6CisgICAgICAgIChKU0M6OlN5
bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbCk6CisgICAgICAgICogcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAg
ICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
dGVtcGxhdGUtbGl0ZXJhbC1saW5lLXRlcm1pbmF0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAodGVzdEV2YWwpOgorICAgICAgICAodGVzdEV2YWxMaW5lTnVtYmVyKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1zeW50YXguanM6IEFkZGVk
LgorICAgICAgICAodGVzdFN5bnRheCk6CisgICAgICAgICh0ZXN0U3ludGF4RXJyb3IpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAodGVzdEV2YWwpOgorICAgICAgICAodGVzdEVtYmVkZGVkKToKKwog
MjAxNS0wNC0wMiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEphdmFTY3JpcHRDb3JlIEFQSSBzaG91bGQgc3VwcG9ydCB0eXBlIGNoZWNraW5nIGZvciBBcnJh
eSBhbmQgRGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM4NDk2YTgzNGVjYTI5YzY2NDgyZjAxZDUxMTZmZjZk
YTM2ZWM4ZWIuLmE4ZThkYTVhMTcxMmRiZWUwMzUwODhkMDFmMzI1NjAwY2ZmMDZlNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wNC0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRl
IGxpdGVyYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDI2OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgRU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxh
Zy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgor
CiAyMDE1LTA0LTAyICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkOiBSZWFwcGxpZWQgQ2hhbmdlIGFmdGVyIHJvbGxvdXQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggNjE2NGM5NDliYzI2MjI0N2Q4NWYxMzYwNGM1YTYyMTU1MDM5ZGFmYi4uYTBiNTIw
ZWM0MWUxOTcxZGIzNDg1YjkyMjBjYjU0YTliM2U5MGVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDE1LTA0LTAyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorCisgICAgICAgIFtFUzZdIEltcGxlbWVudCBFUzYgdGVtcGxhdGUgbGl0ZXJhbHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY5MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBFTkFC
TEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYIGNvbXBpbGUgdGltZSBmbGFnLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTUtMDQt
MDIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQ6IFJlbGFuZCBjaGFuZ2UgYWZ0ZXIgcm9sbG91dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwYWUxMjJiNmZm
NmRiNmM2MzU3NGQ5ZDMzZTUzNThlODgyMWFhMTZhLi44Yjg2NjMwMTNjNzA2ZDk2ZmU5OGIzNzc1
MWI3ZmI0YWI5NDU1NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDQtMDIg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0g
SW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9T
WU5UQVggY29tcGlsZSB0aW1lIGZsYWcuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxNS0wNC0wMiAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZDogUmUtYXBwbGllZCBjaGFuZ2UgYWZ0
ZXIgcm9sbG91dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4YjExMmZhZTQ1Yjk1N2Rk
MjY0MWZkYjZmNDY4OTg4MDU4OWFmODYwLi4yOWRkY2M0ZmE3NjBkOWVmYTdmNjJlYjVmZmI3MjQ4
NjYzM2Q1ZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00NSw2ICs0NSw3IEBAIEVO
QUJMRV9DQU5WQVNfUEFUSCA9IEVOQUJMRV9DQU5WQVNfUEFUSDsKIEVOQUJMRV9DQU5WQVNfUFJP
WFkgPSA7CiBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgPSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
Tkc7CiBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCA9IEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYOwor
RU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCA9IEVOQUJMRV9FUzZfVEVNUExBVEVf
TElURVJBTF9TWU5UQVg7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcgPSBFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkc7CiBFTkFCTEVfQ1NQX05FWFQgPSA7CiBFTkFCTEVfQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMiA9IEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yOwpAQCAtMjE0LDQgKzIxNSw0
IEBAIEVOQUJMRV9MTElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FS
SVRITUVUSUMgPSBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJF
X0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJM
RV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FD
SEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BS
T1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRB
WCkgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJM
RV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJF
QUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFU
SU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChF
TkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVf
Q1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxF
X0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChF
TkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5B
QkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVD
QVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1F
Ul9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09O
VFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09M
T1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChF
TkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxF
X1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAk
KEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FD
WV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENI
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFC
TEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRF
Ul9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAk
KEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09O
Q1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4p
ICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJ
TUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9D
T01QTEVURSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9N
RURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX0NTU19TQ1JPTExf
U05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQo
RU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX09U
Rl9DT05WRVJURVIpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJM
RV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RP
VUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9DU1NfVFJB
SUxJTkdfV09SRCkgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVO
QUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19N
T0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0la
RVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJM
RV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVf
TExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRU5B
QkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
XzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9B
Q0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChF
TkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQo
RU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9FUzZfVEVN
UExBVEVfTElURVJBTF9TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJM
RV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxF
X0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJM
RV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAk
KEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5B
QkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJ
TkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NI
RU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxT
X0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVO
VFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9B
RF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVO
QUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9J
TkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lP
U19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
SU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChF
TkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05U
Uk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElT
VElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5B
QkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01J
U0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJ
U1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChF
TkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQo
RU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAk
KEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVS
X0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRP
U0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFM
VUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJM
RV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJW
VFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxF
X0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9V
VF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggNmIy
NDM5MTU2YWIzYWZhZTZiNTU4YWI5MDY2ZDIyMjUxNWQ1OWU0NS4uMWQ5NGEwZTE3ZmQ5MTQyNzY1
YTI3MjI2NDY4YjZkNmMzNDRjYzExMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtMzMsNiArMzMsNyBAQAogICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfaW5jIiwgImxlbmd0aCIgOiAyIH0sCiAgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF9kZWMiLCAibGVuZ3RoIiA6IDIgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9w
X3RvX251bWJlciIsICJsZW5ndGgiIDogMyB9LAorICAgICAgICAgICAgeyAibmFtZSIgOiAib3Bf
dG9fc3RyaW5nIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9u
ZWdhdGUiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2FkZCIs
ICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfbXVsIiwgImxlbmd0
aCIgOiA1IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVz
ZURlZi5oCmluZGV4IDg1ZjI5MTVjN2U4ZjYwMWFkM2VjMTc4YmY2OWUzNTQ0Zjc1NGMyY2YuLmJh
NGEzODc1MGYzZmM1MGIwNjhhOGE5MTkxMWUzYzJlNGNhOTcwZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC0xMzYsNiArMTM2LDcg
QEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfaXNfb2Jq
ZWN0X29yX251bGw6CiAgICAgY2FzZSBvcF9pc19mdW5jdGlvbjoKICAgICBjYXNlIG9wX3RvX251
bWJlcjoKKyAgICBjYXNlIG9wX3RvX3N0cmluZzoKICAgICBjYXNlIG9wX25lZ2F0ZToKICAgICBj
YXNlIG9wX25lcV9udWxsOgogICAgIGNhc2Ugb3BfZXFfbnVsbDoKQEAgLTMzMCw2ICszMzEsNyBA
QCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQoQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LAogICAgIGNhc2Ugb3BfaXNfZnVuY3Rpb246CiAgICAg
Y2FzZSBvcF9pbjoKICAgICBjYXNlIG9wX3RvX251bWJlcjoKKyAgICBjYXNlIG9wX3RvX3N0cmlu
ZzoKICAgICBjYXNlIG9wX25lZ2F0ZToKICAgICBjYXNlIG9wX2FkZDoKICAgICBjYXNlIG9wX211
bDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXgg
MDZlNDlmZWQ2NWRhZTg3NzBkN2NkYzk4M2I3NjhkNGFkZWU5YzhmMS4uZmRiZjI0MmM4NjZiNDcx
YTEyN2IzNTZkOTAyOTdhNTIzMGNiMDA5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTk0MSw2ICs5NDEsMTAgQEAgdm9pZCBDb2RlQmxvY2s6
OmR1bXBCeXRlY29kZSgKICAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0
aW9uLCBpdCwgInRvX251bWJlciIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAg
ICAgICAgY2FzZSBvcF90b19zdHJpbmc6IHsKKyAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQs
IGV4ZWMsIGxvY2F0aW9uLCBpdCwgInRvX3N0cmluZyIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9uZWdhdGU6IHsKICAgICAgICAgICAgIHByaW50VW5h
cnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgIm5lZ2F0ZSIpOwogICAgICAgICAgICAgYnJl
YWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmgKaW5kZXggMmU1OTAzOWQzYTQ4NGEzNDcyODE0NDBlZWY5YzFiODE5Zjcy
NjVkYi4uMzBhODAxN2MyYjJlODE2MTkzYzY3NDM5YWU0Yzg2YWU2OTBiYmJhNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaApAQCAtNDYyLDYgKzQ2Miw3IEBACiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRNb3ZlKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKIAogICAgICAgICBSZWdpc3RlcklEKiBl
bWl0VG9OdW1iZXIoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVt
aXRVbmFyeU9wKG9wX3RvX251bWJlciwgZHN0LCBzcmMpOyB9CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRUb1N0cmluZyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4g
ZW1pdFVuYXJ5T3Aob3BfdG9fc3RyaW5nLCBkc3QsIHNyYyk7IH0KICAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEluYyhSZWdpc3RlcklEKiBzcmNEc3QpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
RGVjKFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCAxMTQzMmFmMjNiYmI2MWU4MTU0
MjUyM2I3YzExYWE3YmRjYjVmM2JmLi44ZDkwOTQ3MjgzMGM5OWYyZTc3YTlmYjk5MjkwMTMzMDll
MTAwMDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCkBAIC0yMTUsNiArMjE1LDUzIEBAIFJlZ2lzdGVySUQqIFJlc29sdmVO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCoKICAgICByZXR1cm4gcmVzdWx0OwogfQogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRF
UkFMX1NZTlRBWCkKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUZW1wbGF0ZVN0
cmluZ05vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJ
RCogVGVtcGxhdGVTdHJpbmdOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdl
bmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIGlmIChkc3QgPT0gZ2VuZXJhdG9yLmln
bm9yZWRSZXN1bHQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGdlbmVy
YXRvci5lbWl0TG9hZChkc3QsIEpTVmFsdWUoZ2VuZXJhdG9yLmFkZFN0cmluZ0NvbnN0YW50KGNv
b2tlZCgpKSkpOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGVtcGxh
dGVMaXRlcmFsTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdp
c3RlcklEKiBUZW1wbGF0ZUxpdGVyYWxOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIGlmICghbV90ZW1wbGF0ZUV4
cHJlc3Npb25zKSB7CisgICAgICAgIFRlbXBsYXRlU3RyaW5nTm9kZSogdGVtcGxhdGVTdHJpbmcg
PSBtX3RlbXBsYXRlU3RyaW5ncy0+dmFsdWUoKTsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghbV90ZW1wbGF0ZVN0cmluZ3MtPm5leHQoKSwgIk9ubHkgb25lIHRlbXBsYXRlIGVsZW1lbnQg
ZXhpc3RzIGJlY2F1c2UgdGhlcmUncyBubyBleHByZXNzaW9uIGluIGEgZ2l2ZW4gdGVtcGxhdGUg
bGl0ZXJhbC4iKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIHRlbXBs
YXRlU3RyaW5nKTsKKyAgICB9CisKKyAgICBWZWN0b3I8UmVmUHRyPFJlZ2lzdGVySUQ+LCAxNj4g
dGVtcG9yYXJ5UmVnaXN0ZXJzOworCisgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogdGVtcGxh
dGVTdHJpbmcgPSBtX3RlbXBsYXRlU3RyaW5nczsKKyAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0
Tm9kZSogdGVtcGxhdGVFeHByZXNzaW9uID0gbV90ZW1wbGF0ZUV4cHJlc3Npb25zOworICAgIGZv
ciAoOyB0ZW1wbGF0ZUV4cHJlc3Npb247IHRlbXBsYXRlRXhwcmVzc2lvbiA9IHRlbXBsYXRlRXhw
cmVzc2lvbi0+bmV4dCgpLCB0ZW1wbGF0ZVN0cmluZyA9IHRlbXBsYXRlU3RyaW5nLT5uZXh0KCkp
IHsKKyAgICAgICAgLy8gRXZhbHVhdGUgVGVtcGxhdGVTdHJpbmcuCisgICAgICAgIGlmICghdGVt
cGxhdGVTdHJpbmctPnZhbHVlKCktPmNvb2tlZCgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
dGVtcG9yYXJ5UmVnaXN0ZXJzLmFwcGVuZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCkpOworICAg
ICAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKHRlbXBvcmFyeVJlZ2lzdGVycy5sYXN0KCkuZ2V0
KCksIHRlbXBsYXRlU3RyaW5nLT52YWx1ZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEV2
YWx1YXRlIEV4cHJlc3Npb24uCisgICAgICAgIHRlbXBvcmFyeVJlZ2lzdGVycy5hcHBlbmQoZ2Vu
ZXJhdG9yLm5ld1RlbXBvcmFyeSgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKHRlbXBv
cmFyeVJlZ2lzdGVycy5sYXN0KCkuZ2V0KCksIHRlbXBsYXRlRXhwcmVzc2lvbi0+dmFsdWUoKSk7
CisgICAgICAgIGdlbmVyYXRvci5lbWl0VG9TdHJpbmcodGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3Qo
KS5nZXQoKSwgdGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSk7CisgICAgfQorCisgICAg
Ly8gRXZhbHVhdGUgdGFpbCBUZW1wbGF0ZVN0cmluZy4KKyAgICBpZiAoIXRlbXBsYXRlU3RyaW5n
LT52YWx1ZSgpLT5jb29rZWQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgdGVtcG9yYXJ5UmVnaXN0
ZXJzLmFwcGVuZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCkpOworICAgICAgICBnZW5lcmF0b3Iu
ZW1pdE5vZGUodGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSwgdGVtcGxhdGVTdHJpbmct
PnZhbHVlKCkpOworICAgIH0KKworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdFN0cmNhdChnZW5l
cmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHRlbXBvcmFyeVJlZ2lzdGVyc1swXS5nZXQoKSks
IHRlbXBvcmFyeVJlZ2lzdGVyc1swXS5nZXQoKSwgdGVtcG9yYXJ5UmVnaXN0ZXJzLnNpemUoKSk7
Cit9CisjZW5kaWYKKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFycmF5Tm9k
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUmVnaXN0ZXJJRCogQXJy
YXlOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0
ZXJJRCogZHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAppbmRleCBiZTQ5NGM2ZmEyY2EzZjYxODRkMDc2MjM5YzBkMjg4ZGEyZGUyNDI5Li5h
ZGNlOWIwOWM5ZWZiOGFhZmQ4OTYwZmIxM2VhNmRkNWRkODc1NjA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMzY4Nyw3ICszNjg3
LDEzIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAg
ICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9w
ZXJhbmQpLCBub2RlKTsKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3RvX251bWJlcik7CiAg
ICAgICAgIH0KLSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2Ugb3BfdG9fc3RyaW5nOiB7Cisg
ICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rlcihj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFwaChUb1N0cmluZywgdmFs
dWUpKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3RvX3N0cmluZyk7CisgICAgICAgIH0K
KwogICAgICAgICBjYXNlIG9wX2luOiB7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLAogICAgICAgICAgICAgICAgIGFkZFRv
R3JhcGgoSW4sIGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3Bl
cmFuZCkpLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQpKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3Bw
CmluZGV4IDhlZjRkY2YxNTY4YmQ1ZWRhNGI4OTdlNzY4NGE4Y2JiOTFiZjZlMDguLmZlMDkzNzM1
YjBmYTAzOWViNzRjYmQ0NTRhMmI2MDIwMmQ0OThiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE5MSw2ICsxOTEsNyBAQCBDYXBhYmls
aXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3Bfam5lcV9wdHI6CiAgICAgY2FzZSBvcF90eXBl
b2Y6CiAgICAgY2FzZSBvcF90b19udW1iZXI6CisgICAgY2FzZSBvcF90b19zdHJpbmc6CiAgICAg
Y2FzZSBvcF9zd2l0Y2hfaW1tOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAgY2FzZSBv
cF9pbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCA0MmE4MmQ0Mzk0NjE2MmY5NWZh
NDc0Njc1NjcxMzlkNGFhZjIzODZiLi5kMWJmZGU3OTRiZjBlMjE1MjQ4ODY3NTdmMjUyNzkxMDkz
ODkyZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0yOTMsNiArMjkzLDcgQEAg
dm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3Bf
dGhyb3cpCiAgICAgICAgIERFRklORV9PUChvcF90aHJvd19zdGF0aWNfZXJyb3IpCiAgICAgICAg
IERFRklORV9PUChvcF90b19udW1iZXIpCisgICAgICAgIERFRklORV9PUChvcF90b19zdHJpbmcp
CiAgICAgICAgIERFRklORV9PUChvcF90b19wcmltaXRpdmUpCiAKICAgICAgICAgREVGSU5FX09Q
KG9wX3Jlc29sdmVfc2NvcGUpCkBAIC00MjIsNiArNDIzLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVD
b21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX3N0cmljdGVx
KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bfc3ViKQogICAgICAgICBERUZJTkVfU0xP
V0NBU0VfT1Aob3BfdG9fbnVtYmVyKQorICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfdG9f
c3RyaW5nKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfdG9fcHJpbWl0aXZlKQogICAg
ICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpCiAgICAgICAg
IERFRklORV9TTE9XQ0FTRV9PUChvcF9oYXNfc3RydWN0dXJlX3Byb3BlcnR5KQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKaW5kZXggZWU0ODU1ZGMyZTc4YjU1YWNjNDU5OWViZGI5OWEwZDhlMDhiZTdj
Yy4uYTA4ZGJlMmYzYTlhZGY0MjE1OGJjMDQxNjQxYWQwZmZmMDI2YjJjMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5oCkBAIC01NTIsNiArNTUyLDcgQEAKICAgICAgICAgdm9pZCBlbWl0X29wX3Ro
cm93KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF90aHJvd19zdGF0aWNfZXJy
b3IoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3RvX251bWJlcihJbnN0cnVj
dGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKik7CiAg
ICAgICAgIHZvaWQgZW1pdF9vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAg
dm9pZCBlbWl0X29wX3VuZXhwZWN0ZWRfbG9hZChJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfdW5zaWduZWQoSW5zdHJ1Y3Rpb24qKTsKQEAgLTYxNCw2ICs2MTUsNyBAQAogICAg
ICAgICB2b2lkIGVtaXRTbG93X29wX3N0cmljdGVxKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3N1YihJbnN0
cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9p
ZCBlbWl0U2xvd19vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfdG9fc3RyaW5nKEluc3Ry
dWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lk
IGVtaXRTbG93X29wX3RvX3ByaW1pdGl2ZShJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF91bnNpZ25lZChJbnN0
cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9p
ZCBlbWl0U2xvd19vcF91cnNoaWZ0KEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5k
ZXggZDNkNTgwZTllMjYwMDg1M2I2NjQ5ZTI4NTkxOGY4NTM4YmU2OTQ0Yy4uZGQ1YmJmNThiNjVk
ZTJmNmQ5YzliMzgxN2QyMjIwMDdhYTU1YWFmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCkBAIC00ODgsNiArNDg4LDE3IEBAIHZvaWQgSklUOjplbWl0X29wX3Rv
X251bWJlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRQdXRWaXJ0
dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAKK3ZvaWQg
SklUOjplbWl0X29wX3RvX3N0cmluZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQor
eworICAgIGludCBzcmNWUmVnID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHNyY1ZSZWcsIHJlZ1QwKTsKKworICAgIGFkZFNsb3dD
YXNlKGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDApKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2g4
KE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwg
VHJ1c3RlZEltbTMyKFN0cmluZ1R5cGUpKSk7CisKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9v
cF9wdXNoX25hbWVfc2NvcGUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAg
ICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKQEAgLTg3Nyw2ICs4
ODgsMTUgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAgICBzbG93UGF0aENhbGwuY2FsbCgp
OwogfQogCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7
CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKworICAg
IEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBz
bG93X3BhdGhfdG9fc3RyaW5nKTsKKyAgICBzbG93UGF0aENhbGwuY2FsbCgpOworfQorCiAjZW5k
aWYgLy8gVVNFKEpTVkFMVUU2NCkKIAogdm9pZCBKSVQ6OmVtaXRfb3BfdG91Y2hfZW50cnkoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA2ODM1ZWViZjkzNWMwMzU4YzUzMmJhODljMDQw
YTMwMTY4MzBlYTA3Li41YTA4OTVhZDNmMzg3ZWQ1ZjYzOGNmMTg4MGEwOGFmNTczZjk4OWY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC03
ODIsNiArNzgyLDI5IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF90b19udW1iZXIoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlCiAgICAgc2xvd1BhdGhDYWxs
LmNhbGwoKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7CisgICAgaW50IHNyYyA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQ7CisKKyAgICBlbWl0TG9hZChzcmMsIHJlZ1QxLCByZWdUMCk7CisKKyAgICBhZGRTbG93Q2Fz
ZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpT
Q2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoU3RyaW5nVHlwZSkpKTsK
KworICAgIGlmIChzcmMgIT0gZHN0KQorICAgICAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVn
VDApOworfQorCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIp
Cit7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKwor
ICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9u
LCBzbG93X3BhdGhfdG9fc3RyaW5nKTsKKyAgICBzbG93UGF0aENhbGwuY2FsbCgpOworfQorCiB2
b2lkIEpJVDo6ZW1pdF9vcF9wdXNoX25hbWVfc2NvcGUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggY2E5MWU4ZDY3MmJhOWQ2YmU0NTA4OTMyN2FmZTIyYTE1
ODcyNGUyYy4uZDgzMjRlN2I4YWY2YWViNzdmZDBiYTJiMTc5MTE0NTljYjVkZWQ5NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20KQEAgLTEwMDAsNiArMTAwMCwyMyBAQCBfbGxpbnRfb3BfdG9fbnVtYmVyOgog
ICAgIGRpc3BhdGNoKDMpCiAKIAorX2xsaW50X29wX3RvX3N0cmluZzoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgbG9hZGkgOFtQQ10sIHQwCisgICAgbG9hZGkgNFtQQ10sIHQxCisgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIsIHQzKQorICAgIGJpbmVxIHQyLCBDZWxsVGFnLCAu
b3BUb1N0cmluZ1Nsb3cKKyAgICBiYm5lcSBKU0NlbGw6Om1fdHlwZVt0M10sIFN0cmluZ1R5cGUs
IC5vcFRvU3RyaW5nU2xvdworLm9wVG9TdHJpbmdJc1N0cmluZzoKKyAgICBzdG9yZWkgdDIsIFRh
Z09mZnNldFtjZnIsIHQxLCA4XQorICAgIHN0b3JlaSB0MywgUGF5bG9hZE9mZnNldFtjZnIsIHQx
LCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcFRvU3RyaW5nU2xvdzoKKyAgICBjYWxsU2xvd1Bh
dGgoX3Nsb3dfcGF0aF90b19zdHJpbmcpCisgICAgZGlzcGF0Y2goMykKKworCiBfbGxpbnRfb3Bf
bmVnYXRlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4W1BDXSwgdDAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20KaW5kZXggZGU1NzA2MmY2ZDEwNGYyYzc1NzJiNGNhZjYyNDRlODdkNTBmNTBiYS4uYjQ2MDcx
YjZkZjFiNTBjZDM1MjhiY2RiMWM5ZjBiN2NkNjQ5MTcwYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTg2MCw2
ICs4NjAsMjIgQEAgX2xsaW50X29wX3RvX251bWJlcjoKICAgICBkaXNwYXRjaCgzKQogCiAKK19s
bGludF9vcF90b19zdHJpbmc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpc0Zyb21J
bnN0cnVjdGlvbigyLCB0MSkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDIpCisgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgYnRxbnogdDAsIHRhZ01hc2ssIC5v
cFRvU3RyaW5nU2xvdworICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgU3RyaW5nVHlwZSwg
Lm9wVG9TdHJpbmdTbG93Cisub3BUb1N0cmluZ0lzU3RyaW5nOgorICAgIHN0b3JlcSB0MCwgW2Nm
ciwgdDIsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wVG9TdHJpbmdTbG93OgorICAgIGNhbGxT
bG93UGF0aChfc2xvd19wYXRoX3RvX3N0cmluZykKKyAgICBkaXNwYXRjaCgzKQorCisKIF9sbGlu
dF9vcF9uZWdhdGU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpc0Zyb21JbnN0cnVj
dGlvbigyLCB0MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNU
QnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5k
ZXggYjhmZTRiODQ4NWEwOTc2ODhmNWM2MzBiZDhjM2M5Njc2NGZjNDY0OS4uNDFlZDg0NWZjYTFm
MzZkMjIyM2NjMTI4ZmFjNDcwMWNlMDk0NjUzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9BU1RCdWlsZGVyLmgKQEAgLTEwMiw2ICsxMDIsMTIgQEAgY2xhc3MgQVNUQnVpbGRlciB7
CiAgICAgdHlwZWRlZiBQcm9wZXJ0eUxpc3ROb2RlKiBQcm9wZXJ0eUxpc3Q7CiAgICAgdHlwZWRl
ZiBFbGVtZW50Tm9kZSogRWxlbWVudExpc3Q7CiAgICAgdHlwZWRlZiBBcmd1bWVudExpc3ROb2Rl
KiBBcmd1bWVudHNMaXN0OworI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgp
CisgICAgdHlwZWRlZiBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogVGVtcGxhdGVFeHByZXNz
aW9uTGlzdDsKKyAgICB0eXBlZGVmIFRlbXBsYXRlU3RyaW5nTm9kZSogVGVtcGxhdGVTdHJpbmc7
CisgICAgdHlwZWRlZiBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiBUZW1wbGF0ZVN0cmluZ0xpc3Q7
CisgICAgdHlwZWRlZiBUZW1wbGF0ZUxpdGVyYWxOb2RlKiBUZW1wbGF0ZUxpdGVyYWw7CisjZW5k
aWYKICAgICB0eXBlZGVmIFBhcmFtZXRlck5vZGUqIEZvcm1hbFBhcmFtZXRlckxpc3Q7CiAgICAg
dHlwZWRlZiBGdW5jdGlvbkJvZHlOb2RlKiBGdW5jdGlvbkJvZHk7CiAjaWYgRU5BQkxFKEVTNl9D
TEFTU19TWU5UQVgpCkBAIC0yNDYsNiArMjUyLDQzIEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAg
ICAgICByZXR1cm4gbm9kZTsKICAgICB9CiAKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVS
QUxfU1lOVEFYKQorICAgIFRlbXBsYXRlU3RyaW5nTm9kZSogY3JlYXRlVGVtcGxhdGVTdHJpbmco
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgY29va2Vk
LCBjb25zdCBJZGVudGlmaWVyJiByYXcpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3Bh
cnNlckFyZW5hKSBUZW1wbGF0ZVN0cmluZ05vZGUobG9jYXRpb24sIGNvb2tlZCwgcmF3KTsKKyAg
ICB9CisKKyAgICBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZVN0cmluZ0xp
c3QoVGVtcGxhdGVTdHJpbmdOb2RlKiB0ZW1wbGF0ZVN0cmluZykKKyAgICB7CisgICAgICAgIHJl
dHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUodGVtcGxhdGVT
dHJpbmcpOworICAgIH0KKworICAgIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIGNyZWF0ZVRlbXBs
YXRlU3RyaW5nTGlzdChUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiB0ZW1wbGF0ZVN0cmluZ0xpc3Qs
IFRlbXBsYXRlU3RyaW5nTm9kZSogdGVtcGxhdGVTdHJpbmcpCisgICAgeworICAgICAgICByZXR1
cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKHRlbXBsYXRlU3Ry
aW5nTGlzdCwgdGVtcGxhdGVTdHJpbmcpOworICAgIH0KKworICAgIFRlbXBsYXRlRXhwcmVzc2lv
bkxpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KEV4cHJlc3Npb25Ob2RlKiBl
eHByZXNzaW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVt
cGxhdGVFeHByZXNzaW9uTGlzdE5vZGUoZXhwcmVzc2lvbik7CisgICAgfQorCisgICAgVGVtcGxh
dGVFeHByZXNzaW9uTGlzdE5vZGUqIGNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QoVGVtcGxh
dGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlLCBFeHByZXNz
aW9uTm9kZSogZXhwcmVzc2lvbikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2Vy
QXJlbmEpIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKHRlbXBsYXRlRXhwcmVzc2lvbkxpc3RO
b2RlLCBleHByZXNzaW9uKTsKKyAgICB9CisKKyAgICBUZW1wbGF0ZUxpdGVyYWxOb2RlKiBjcmVh
dGVUZW1wbGF0ZUxpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgVGVtcGxh
dGVTdHJpbmdMaXN0Tm9kZSogdGVtcGxhdGVTdHJpbmdMaXN0KQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVMaXRlcmFsTm9kZShsb2NhdGlvbiwgdGVt
cGxhdGVTdHJpbmdMaXN0KTsKKyAgICB9CisKKyAgICBUZW1wbGF0ZUxpdGVyYWxOb2RlKiBjcmVh
dGVUZW1wbGF0ZUxpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgVGVtcGxh
dGVTdHJpbmdMaXN0Tm9kZSogdGVtcGxhdGVTdHJpbmdMaXN0LCBUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0Tm9kZSogdGVtcGxhdGVFeHByZXNzaW9uTGlzdCkKKyAgICB7CisgICAgICAgIHJldHVybiBu
ZXcgKG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRlTGl0ZXJhbE5vZGUobG9jYXRpb24sIHRlbXBsYXRl
U3RyaW5nTGlzdCwgdGVtcGxhdGVFeHByZXNzaW9uTGlzdCk7CisgICAgfQorI2VuZGlmCisKICAg
ICBFeHByZXNzaW9uTm9kZSogY3JlYXRlUmVnRXhwKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9j
YXRpb24sIGNvbnN0IElkZW50aWZpZXImIHBhdHRlcm4sIGNvbnN0IElkZW50aWZpZXImIGZsYWdz
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQpCiAgICAgewogICAgICAgICBpZiAoWWFycjo6
Y2hlY2tTeW50YXgocGF0dGVybi5zdHJpbmcoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
TGV4ZXIuY3BwCmluZGV4IDdkZTE0MjIwYmJkYTcyNzM4YjU3M2E0Yjk3ODhjZTBiMzJjYzdjZTMu
LjMxZTg0YTU0NzRlNmY4YTAxNjYzNGE0MzQ0YzJiNGYwNjBhYTgyMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC03MSw2ICs3MSw5IEBAIGVudW0gQ2hhcmFjdGVy
VHlwZSB7CiAgICAgQ2hhcmFjdGVyUXVlc3Rpb24sCiAgICAgQ2hhcmFjdGVyVGlsZGUsCiAgICAg
Q2hhcmFjdGVyUXVvdGUsCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkK
KyAgICBDaGFyYWN0ZXJCYWNrUXVvdGUsCisjZW5kaWYKICAgICBDaGFyYWN0ZXJEb3QsCiAgICAg
Q2hhcmFjdGVyU2xhc2gsCiAgICAgQ2hhcmFjdGVyQmFja1NsYXNoLApAQCAtMTkyLDcgKzE5NSwx
MSBAQCBlbnVtIENoYXJhY3RlclR5cGUgewogLyogIDkzIC0gXSAgICAgICAgICAgICAgICAgICov
IENoYXJhY3RlckNsb3NlQnJhY2tldCwKIC8qICA5NCAtIF4gICAgICAgICAgICAgICAgICAqLyBD
aGFyYWN0ZXJYb3IsCiAvKiAgOTUgLSBfICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVySWRl
bnRpZmllclN0YXJ0LAorI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisv
KiAgOTYgLSBgICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyQmFja1F1b3RlLAorI2Vsc2UK
IC8qICA5NiAtIGAgICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJJbnZhbGlkLAorI2VuZGlm
CiAvKiAgOTcgLSBhICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVySWRlbnRpZmllclN0YXJ0
LAogLyogIDk4IC0gYiAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlcklkZW50aWZpZXJTdGFy
dCwKIC8qICA5OSAtIGMgICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJJZGVudGlmaWVyU3Rh
cnQsCkBAIC0xMTAyLDcgKzExMDksOTIgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBjaGFy
YWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hhcmFjdGVyKQogfQogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4g
dHlwZW5hbWUgTGV4ZXI8VD46OlN0cmluZ1BhcnNlUmVzdWx0IExleGVyPFQ+OjpwYXJzZVN0cmlu
Z1Nsb3dDYXNlKEpTVG9rZW5EYXRhKiB0b2tlbkRhdGEsIGJvb2wgc3RyaWN0TW9kZSkKK3RlbXBs
YXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gQUxXQVlTX0lOTElORSBhdXRvIExleGVyPFQ+
OjpwYXJzZUNvbXBsZXhFc2NhcGUoRXNjYXBlUGFyc2VNb2RlIGVzY2FwZVBhcnNlTW9kZSwgYm9v
bCBzdHJpY3RNb2RlLCBUIHN0cmluZ1F1b3RlQ2hhcmFjdGVyKSAtPiBTdHJpbmdQYXJzZVJlc3Vs
dAoreworICAgIGlmIChtX2N1cnJlbnQgPT0gJ3gnKSB7CisgICAgICAgIHNoaWZ0KCk7CisgICAg
ICAgIGlmICghaXNBU0NJSUhleERpZ2l0KG1fY3VycmVudCkgfHwgIWlzQVNDSUlIZXhEaWdpdChw
ZWVrKDEpKSkgeworICAgICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwo
IlxceCBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIGhleCBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsK
KyAgICAgICAgICAgIHJldHVybiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgfQorICAg
ICAgICBUIHByZXYgPSBtX2N1cnJlbnQ7CisgICAgICAgIHNoaWZ0KCk7CisgICAgICAgIGlmIChz
aG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICByZWNvcmQxNihjb252ZXJ0SGV4KHByZXYs
IG1fY3VycmVudCkpOworICAgICAgICBzaGlmdCgpOworICAgICAgICByZXR1cm4gU3RyaW5nUGFy
c2VkU3VjY2Vzc2Z1bGx5OworICAgIH0KKworICAgIGlmIChtX2N1cnJlbnQgPT0gJ3UnKSB7Cisg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgIFVuaWNvZGVIZXhWYWx1ZSBjaGFyYWN0ZXIgPSBwYXJz
ZUZvdXJEaWdpdFVuaWNvZGVIZXgoKTsKKyAgICAgICAgaWYgKGNoYXJhY3Rlci5pc1ZhbGlkKCkp
IHsKKyAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAg
cmVjb3JkMTYoY2hhcmFjdGVyLnZhbHVlKCkpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZ1Bh
cnNlZFN1Y2Nlc3NmdWxseTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlc2NhcGVQYXJzZU1v
ZGUgPT0gRXNjYXBlUGFyc2VNb2RlOjpTdHJpbmcgJiYgbV9jdXJyZW50ID09IHN0cmluZ1F1b3Rl
Q2hhcmFjdGVyKSB7CisgICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAg
ICAgICAgICAgIHJlY29yZDE2KCd1Jyk7CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nUGFyc2Vk
U3VjY2Vzc2Z1bGx5OworICAgICAgICB9CisKKyAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBB
U0NJSUxpdGVyYWwoIlxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVuaWNvZGUgY2hhcmFj
dGVyIHNlcXVlbmNlIik7CisgICAgICAgIHJldHVybiBjaGFyYWN0ZXIudmFsdWVUeXBlKCkgPT0g
VW5pY29kZUhleFZhbHVlOjpJbmNvbXBsZXRlSGV4ID8gU3RyaW5nVW50ZXJtaW5hdGVkIDogU3Ry
aW5nQ2Fubm90QmVQYXJzZWQ7CisgICAgfQorCisgICAgaWYgKHN0cmljdE1vZGUpIHsKKyAgICAg
ICAgaWYgKGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAvLyBUaGUgb25s
eSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXDAnLCBhbmQgdGhpcyBt
dXN0IG5vdCBiZSBmb2xsb3dlZCBieSBhIGRlY2ltYWwgZGlnaXQuCisgICAgICAgICAgICBpbnQg
Y2hhcmFjdGVyMSA9IG1fY3VycmVudDsKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAg
ICBpZiAoY2hhcmFjdGVyMSAhPSAnMCcgfHwgaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpIHsKKyAg
ICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiVGhlIG9ubHkg
dmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1xcMCciKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gU3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgICAgIHJlY29yZDE2
KDApOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChpc0FTQ0lJT2N0YWxEaWdpdChtX2N1cnJl
bnQpKSB7CisgICAgICAgICAgICAvLyBPY3RhbCBjaGFyYWN0ZXIgc2VxdWVuY2VzCisgICAgICAg
ICAgICBUIGNoYXJhY3RlcjEgPSBtX2N1cnJlbnQ7CisgICAgICAgICAgICBzaGlmdCgpOworICAg
ICAgICAgICAgaWYgKGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpIHsKKyAgICAgICAgICAg
ICAgICAvLyBUd28gb2N0YWwgY2hhcmFjdGVycworICAgICAgICAgICAgICAgIFQgY2hhcmFjdGVy
MiA9IG1fY3VycmVudDsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAg
IGlmIChjaGFyYWN0ZXIxID49ICcwJyAmJiBjaGFyYWN0ZXIxIDw9ICczJyAmJiBpc0FTQ0lJT2N0
YWxEaWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWls
ZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNigoY2hhcmFjdGVyMSAt
ICcwJykgKiA2NCArIChjaGFyYWN0ZXIyIC0gJzAnKSAqIDggKyBtX2N1cnJlbnQgLSAnMCcpOwor
ICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAg
ICAgICAgICAgICByZWNvcmQxNigoY2hhcmFjdGVyMSAtICcwJykgKiA4ICsgY2hhcmFjdGVyMiAt
ICcwJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgICAgICAgICByZWNv
cmQxNihjaGFyYWN0ZXIxIC0gJzAnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy
biBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
IWF0RW5kKCkpIHsKKyAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAg
IHJlY29yZDE2KG1fY3VycmVudCk7CisgICAgICAgIHNoaWZ0KCk7CisgICAgICAgIHJldHVybiBT
dHJpbmdQYXJzZWRTdWNjZXNzZnVsbHk7CisgICAgfQorCisgICAgbV9sZXhFcnJvck1lc3NhZ2Ug
PSBBU0NJSUxpdGVyYWwoIlVudGVybWluYXRlZCBzdHJpbmcgY29uc3RhbnQiKTsKKyAgICByZXR1
cm4gU3RyaW5nVW50ZXJtaW5hdGVkOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3RlbXBs
YXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gYXV0byBMZXhlcjxUPjo6cGFyc2VTdHJpbmdT
bG93Q2FzZShKU1Rva2VuRGF0YSogdG9rZW5EYXRhLCBib29sIHN0cmljdE1vZGUpIC0+IFN0cmlu
Z1BhcnNlUmVzdWx0CiB7CiAgICAgVCBzdHJpbmdRdW90ZUNoYXJhY3RlciA9IG1fY3VycmVudDsK
ICAgICBzaGlmdCgpOwpAQCAtMTEyNCw5NiArMTIxNiwyMDkgQEAgc3RhdGljIEFMV0FZU19JTkxJ
TkUgYm9vbCBjaGFyYWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hhcmFj
dGVyKQogICAgICAgICAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKFVO
TElLRUxZKGlzTGluZVRlcm1pbmF0b3IobV9jdXJyZW50KSkpCiAgICAgICAgICAgICAgICAgc2hp
ZnRMaW5lVGVybWluYXRvcigpOwotICAgICAgICAgICAgZWxzZSBpZiAobV9jdXJyZW50ID09ICd4
JykgewotICAgICAgICAgICAgICAgIHNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFpc0FT
Q0lJSGV4RGlnaXQobV9jdXJyZW50KSB8fCAhaXNBU0NJSUhleERpZ2l0KHBlZWsoMSkpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJcXHgg
Y2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVlbmNlIik7Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgVCBwcmV2ID0gbV9jdXJyZW50OwotICAgICAgICAgICAg
ICAgIHNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAg
ICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoY29udmVydEhleChwcmV2LCBtX2N1cnJlbnQpKTsK
LSAgICAgICAgICAgICAgICBzaGlmdCgpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChtX2N1cnJl
bnQgPT0gJ3UnKSB7Ci0gICAgICAgICAgICAgICAgc2hpZnQoKTsKLSAgICAgICAgICAgICAgICBV
bmljb2RlSGV4VmFsdWUgY2hhcmFjdGVyID0gcGFyc2VGb3VyRGlnaXRVbmljb2RlSGV4KCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKGNoYXJhY3Rlci5pc1ZhbGlkKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
Y29yZDE2KGNoYXJhY3Rlci52YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1f
Y3VycmVudCA9PSBzdHJpbmdRdW90ZUNoYXJhY3RlcikgewotICAgICAgICAgICAgICAgICAgICBp
ZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYo
J3UnKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBtX2xl
eEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5
IGEgVW5pY29kZSBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGNoYXJhY3Rlci52YWx1ZVR5cGUoKSA9PSBVbmljb2RlSGV4VmFsdWU6OkluY29tcGxldGVI
ZXggPyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdE1vZGUgJiYgaXNBU0NJSURp
Z2l0KG1fY3VycmVudCkpIHsKLSAgICAgICAgICAgICAgICAvLyBUaGUgb25seSB2YWxpZCBudW1l
cmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXDAnLCBhbmQgdGhpcyBtdXN0IG5vdCBiZSBm
b2xsb3dlZCBieSBhIGRlY2ltYWwgZGlnaXQuCi0gICAgICAgICAgICAgICAgaW50IGNoYXJhY3Rl
cjEgPSBtX2N1cnJlbnQ7Ci0gICAgICAgICAgICAgICAgc2hpZnQoKTsKLSAgICAgICAgICAgICAg
ICBpZiAoY2hhcmFjdGVyMSAhPSAnMCcgfHwgaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlRoZSBv
bmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmljdCBtb2RlIGlzICdcXDAnIik7Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKLSAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdQYXJzZVJl
c3VsdCByZXN1bHQgPSBwYXJzZUNvbXBsZXhFc2NhcGU8c2hvdWxkQnVpbGRTdHJpbmdzPihFc2Nh
cGVQYXJzZU1vZGU6OlN0cmluZywgc3RyaWN0TW9kZSwgc3RyaW5nUXVvdGVDaGFyYWN0ZXIpOwor
ICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBzdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisgICAgICAgIC8vIEZhc3QgY2hlY2sgZm9yIGNoYXJhY3RlcnMg
dGhhdCByZXF1aXJlIHNwZWNpYWwgaGFuZGxpbmcuCisgICAgICAgIC8vIENhdGNoZXMgMCwgXG4s
IFxyLCAweDIwMjgsIGFuZCAweDIwMjkgYXMgZWZmaWNpZW50bHkKKyAgICAgICAgLy8gYXMgcG9z
c2libGUsIGFuZCBsZXRzIHRocm91Z2ggYWxsIGNvbW1vbiBBU0NJSSBjaGFyYWN0ZXJzLgorICAg
ICAgICBpZiAoVU5MSUtFTFkoKChzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9jdXJyZW50KSAtIDB4
RSkgJiAweDIwMDApKSkgeworICAgICAgICAgICAgLy8gTmV3LWxpbmUgb3IgZW5kIG9mIGlucHV0
IGlzIG5vdCBhbGxvd2VkCisgICAgICAgICAgICBpZiAoYXRFbmQoKSB8fCBpc0xpbmVUZXJtaW5h
dG9yKG1fY3VycmVudCkpIHsKKyAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFT
Q0lJTGl0ZXJhbCgiVW5leHBlY3RlZCBFT0YiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYXRF
bmQoKSA/IFN0cmluZ1VudGVybWluYXRlZCA6IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgLy8gQW55dGhpbmcgZWxzZSBpcyBqdXN0IGEgbm9ybWFsIGNo
YXJhY3RlcgorICAgICAgICB9CisgICAgICAgIHNoaWZ0KCk7CisgICAgfQorCisgICAgaWYgKGN1
cnJlbnRTb3VyY2VQdHIoKSAhPSBzdHJpbmdTdGFydCAmJiBzaG91bGRCdWlsZFN0cmluZ3MpCisg
ICAgICAgIGFwcGVuZDE2KHN0cmluZ1N0YXJ0LCBjdXJyZW50U291cmNlUHRyKCkgLSBzdHJpbmdT
dGFydCk7CisgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgdG9rZW5EYXRhLT5p
ZGVudCA9IG1ha2VJZGVudGlmaWVyKG1fYnVmZmVyMTYuZGF0YSgpLCBtX2J1ZmZlcjE2LnNpemUo
KSk7CisgICAgZWxzZQorICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gMDsKKworICAgIG1fYnVm
ZmVyMTYucmVzaXplKDApOworICAgIHJldHVybiBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHk7Cit9
CisKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorLy8gV2hpbGUgdGhl
IGxleGVyIGFjY2VwdHMgPExGPjxDUj4gKG5vdCA8Q1I+PExGPikgc2VxdWVuY2UKKy8vIGFzIG9u
ZSBsaW5lIHRlcm1pbmF0b3IgYW5kIGluY3JlbWVudHMgb25lIGxpbmUgbnVtYmVyLAorLy8gVGVt
cGxhdGVMaXRlcmFsIGNvbnNpZGVycyBpdCBhcyB0d28gbGluZSB0ZXJtaW5hdG9ycyA8TEY+IGFu
ZCA8Q1I+LgorLy8KKy8vIFRlbXBsYXRlTGl0ZXJhbCBub3JtYWxpemVzIGxpbmUgdGVybWluYXRv
cnMgYXMgZm9sbG93cy4KKy8vCisvLyA8TEY+ID0+IDxMRj4KKy8vIDxDUj4gPT4gPExGPgorLy8g
PENSPjxMRj4gPT4gPExGPgorLy8gPFx1MjAyOD4gPT4gPFx1MjAyOD4KKy8vIDxcdTIwMjk+ID0+
IDxcdTIwMjk+CisvLworLy8gU28sIDxMRj48Q1I+IHNob3VsZCBiZSBub3JtYWxpemVkIHRvIDxM
Rj48TEY+LgorLy8gSG93ZXZlciwgdGhlIGxleGVyIHNob3VsZCBpbmNyZW1lbnQgdGhlIGxpbmUg
bnVtYmVyIG9ubHkgb25jZSBmb3IgPExGPjxDUj4uCisvLworLy8gVG8gYWNoaWV2ZSB0aGlzLCBM
aW5lTnVtYmVyQWRkZXIgaG9sZHMgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIGxpbmUgdGVybWluYXRv
ciBzZXF1ZW5jZS4KKy8vIFdoZW4gVGVtcGxhdGVMaXRlcmFsIGxleGVyIGVuY291bnRlcnMgYSBs
aW5lIHRlcm1pbmF0b3IsIGl0IG5vdGlmaWVzIHRvIExpbmVOdW1iZXJBZGRlci4KKy8vIExpbmVO
dW1iZXJBZGRlciBtYWludGFpbnMgdGhlIHN0YXR1cyBhbmQgaW5jcmVtZW50cyB0aGUgbGluZSBu
dW1iZXIgd2hlbiBpdCdzIG5lY2Vzc2FyeS4KKy8vIEZvciBleGFtcGxlLCBMaW5lTnVtYmVyQWRk
ZXIgaW5jcmVtZW50cyB0aGUgbGluZSBudW1iZXIgb25seSBvbmNlIGZvciA8TEY+PENSPiBhbmQg
PENSPjxMRj4uCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgTGluZU51bWJlckFkZGVyIHsK
K3B1YmxpYzoKKyAgICBMaW5lTnVtYmVyQWRkZXIoaW50JiBsaW5lTnVtYmVyKQorICAgICAgICA6
IG1fbGluZU51bWJlcihsaW5lTnVtYmVyKQorICAgICAgICAsIG1fcHJldmlvdXMoMCkKKyAgICB7
CisgICAgfQorCisgICAgdm9pZCBjbGVhcigpCisgICAgeworICAgICAgICBtX3ByZXZpb3VzID0g
MDsKKyAgICB9CisKKyAgICB2b2lkIGFkZChUIGNoYXJhY3RlcikKKyAgICB7CisgICAgICAgIEFT
U0VSVChMZXhlcjxUPjo6aXNMaW5lVGVybWluYXRvcihjaGFyYWN0ZXIpKTsKKyAgICAgICAgaWYg
KChjaGFyYWN0ZXIgKyBtX3ByZXZpb3VzKSA9PSAnXG4nICsgJ1xyJykKKyAgICAgICAgICAgIG1f
cHJldmlvdXMgPSAwOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICsrbV9saW5lTnVtYmVy
OworICAgICAgICAgICAgbV9wcmV2aW91cyA9IGNoYXJhY3RlcjsKKyAgICAgICAgfQorICAgIH0K
KworcHJpdmF0ZToKKyAgICBpbnQmIG1fbGluZU51bWJlcjsKKyAgICBUIG1fcHJldmlvdXM7Cit9
OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3RlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3Ry
aW5ncz4gdHlwZW5hbWUgTGV4ZXI8VD46OlN0cmluZ1BhcnNlUmVzdWx0IExleGVyPFQ+OjpwYXJz
ZVRlbXBsYXRlTGl0ZXJhbChKU1Rva2VuRGF0YSogdG9rZW5EYXRhKQoreworICAgIGNvbnN0IFQq
IHN0cmluZ1N0YXJ0ID0gY3VycmVudFNvdXJjZVB0cigpOworICAgIGNvbnN0IFQqIHJhd1N0cmlu
Z1N0YXJ0ID0gY3VycmVudFNvdXJjZVB0cigpOworCisgICAgTGluZU51bWJlckFkZGVyPFQ+IGxp
bmVOdW1iZXJBZGRlcihtX2xpbmVOdW1iZXIpOworCisgICAgd2hpbGUgKG1fY3VycmVudCAhPSAn
YCcpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKG1fY3VycmVudCA9PSAnXFwnKSkgeworICAgICAg
ICAgICAgbGluZU51bWJlckFkZGVyLmNsZWFyKCk7CisgICAgICAgICAgICBpZiAoc3RyaW5nU3Rh
cnQgIT0gY3VycmVudFNvdXJjZVB0cigpICYmIHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAg
ICAgICAgICBhcHBlbmQxNihzdHJpbmdTdGFydCwgY3VycmVudFNvdXJjZVB0cigpIC0gc3RyaW5n
U3RhcnQpOworICAgICAgICAgICAgc2hpZnQoKTsKKworICAgICAgICAgICAgTENoYXIgZXNjYXBl
ID0gc2luZ2xlRXNjYXBlKG1fY3VycmVudCk7CisKKyAgICAgICAgICAgIC8vIE1vc3QgY29tbW9u
IGVzY2FwZSBzZXF1ZW5jZXMgZmlyc3QKKyAgICAgICAgICAgIGlmIChlc2NhcGUpIHsKICAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICBy
ZWNvcmQxNigwKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmljdE1vZGUgJiYgaXNBU0NJ
SU9jdGFsRGlnaXQobV9jdXJyZW50KSkgewotICAgICAgICAgICAgICAgIC8vIE9jdGFsIGNoYXJh
Y3RlciBzZXF1ZW5jZXMKLSAgICAgICAgICAgICAgICBUIGNoYXJhY3RlcjEgPSBtX2N1cnJlbnQ7
CisgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KGVzY2FwZSk7CiAgICAgICAgICAgICAgICAg
c2hpZnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoaXNBU0NJSU9jdGFsRGlnaXQobV9jdXJyZW50
KSkgewotICAgICAgICAgICAgICAgICAgICAvLyBUd28gb2N0YWwgY2hhcmFjdGVycwotICAgICAg
ICAgICAgICAgICAgICBUIGNoYXJhY3RlcjIgPSBtX2N1cnJlbnQ7CisgICAgICAgICAgICB9IGVs
c2UgaWYgKFVOTElLRUxZKGlzTGluZVRlcm1pbmF0b3IobV9jdXJyZW50KSkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAobV9jdXJyZW50ID09ICdccicpIHsKKyAgICAgICAgICAgICAgICAgICAgbGlu
ZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOwogICAgICAgICAgICAgICAgICAgICBzaGlmdCgp
OwotICAgICAgICAgICAgICAgICAgICBpZiAoY2hhcmFjdGVyMSA+PSAnMCcgJiYgY2hhcmFjdGVy
MSA8PSAnMycgJiYgaXNBU0NJSU9jdGFsRGlnaXQobV9jdXJyZW50KSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZWNvcmQxNigoY2hhcmFjdGVyMSAtICcwJykgKiA2NCArIChjaGFyYWN0ZXIyIC0g
JzAnKSAqIDggKyBtX2N1cnJlbnQgLSAnMCcpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9j
dXJyZW50ID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRl
ci5hZGQobV9jdXJyZW50KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KCk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hv
dWxkQnVpbGRTdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KChj
aGFyYWN0ZXIxIC0gJzAnKSAqIDggKyBjaGFyYWN0ZXIyIC0gJzAnKTsKICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChzaG91bGRCdWlsZFN0cmluZ3MpCi0gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNihj
aGFyYWN0ZXIxIC0gJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlckFkZGVyLmFk
ZChtX2N1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOwogICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAoIWF0RW5kKCkpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICByZWNvcmQxNiht
X2N1cnJlbnQpOwotICAgICAgICAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJVbnRl
cm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50Iik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmlu
Z1VudGVybWluYXRlZDsKKyAgICAgICAgICAgICAgICBib29sIHN0cmljdE1vZGUgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIFN0cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IHBhcnNlQ29tcGxleEVz
Y2FwZTxzaG91bGRCdWlsZFN0cmluZ3M+KEVzY2FwZVBhcnNlTW9kZTo6VGVtcGxhdGUsIHN0cmlj
dE1vZGUsICdgJyk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBTdHJpbmdQYXJzZWRT
dWNjZXNzZnVsbHkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIHN0cmluZ1N0YXJ0ID0gY3VycmVudFNvdXJjZVB0cigpOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKworICAgICAgICBpZiAobV9jdXJyZW50
ID09ICckJyAmJiBwZWVrKDEpID09ICd7JykKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAg
IC8vIEZhc3QgY2hlY2sgZm9yIGNoYXJhY3RlcnMgdGhhdCByZXF1aXJlIHNwZWNpYWwgaGFuZGxp
bmcuCiAgICAgICAgIC8vIENhdGNoZXMgMCwgXG4sIFxyLCAweDIwMjgsIGFuZCAweDIwMjkgYXMg
ZWZmaWNpZW50bHkKICAgICAgICAgLy8gYXMgcG9zc2libGUsIGFuZCBsZXRzIHRocm91Z2ggYWxs
IGNvbW1vbiBBU0NJSSBjaGFyYWN0ZXJzLgogICAgICAgICBpZiAoVU5MSUtFTFkoKChzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4obV9jdXJyZW50KSAtIDB4RSkgJiAweDIwMDApKSkgewotICAgICAgICAg
ICAgLy8gTmV3LWxpbmUgb3IgZW5kIG9mIGlucHV0IGlzIG5vdCBhbGxvd2VkCi0gICAgICAgICAg
ICBpZiAoYXRFbmQoKSB8fCBpc0xpbmVUZXJtaW5hdG9yKG1fY3VycmVudCkpIHsKKyAgICAgICAg
ICAgIC8vIEVuZCBvZiBpbnB1dCBpcyBub3QgYWxsb3dlZC4KKyAgICAgICAgICAgIC8vIFVubGlr
ZSBTdHJpbmcsIGxpbmUgdGVybWluYXRvciBpcyBhbGxvd2VkLgorICAgICAgICAgICAgaWYgKGF0
RW5kKCkpIHsKICAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJh
bCgiVW5leHBlY3RlZCBFT0YiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gYXRFbmQoKSA/IFN0
cmluZ1VudGVybWluYXRlZCA6IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOwogICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZiAoaXNMaW5lVGVybWluYXRvcihtX2N1cnJlbnQpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXHInKSB7CisgICAgICAgICAgICAgICAgICAgIC8v
IE5vcm1hbGl6ZSA8Q1I+LCA8Q1I+PExGPiB0byA8TEY+LgorICAgICAgICAgICAgICAgICAgICBp
ZiAoc3RyaW5nU3RhcnQgIT0gY3VycmVudFNvdXJjZVB0cigpICYmIHNob3VsZEJ1aWxkU3RyaW5n
cykKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZDE2KHN0cmluZ1N0YXJ0LCBjdXJyZW50
U291cmNlUHRyKCkgLSBzdHJpbmdTdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91
bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNignXG4nKTsK
KyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAg
ICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9jdXJy
ZW50ID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5h
ZGQobV9jdXJyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nU3RhcnQgPSBjdXJyZW50
U291cmNlUHRyKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgbGluZU51bWJlckFkZGVyLmFkZChtX2N1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIC8vIEFueXRoaW5nIGVsc2UgaXMganVzdCBhIG5vcm1h
bCBjaGFyYWN0ZXIKICAgICAgICAgfQorCisgICAgICAgIGxpbmVOdW1iZXJBZGRlci5jbGVhcigp
OwogICAgICAgICBzaGlmdCgpOwogICAgIH0KIAorICAgIGJvb2wgaXNUYWlsID0gbV9jdXJyZW50
ID09ICdgJzsKKwogICAgIGlmIChjdXJyZW50U291cmNlUHRyKCkgIT0gc3RyaW5nU3RhcnQgJiYg
c2hvdWxkQnVpbGRTdHJpbmdzKQogICAgICAgICBhcHBlbmQxNihzdHJpbmdTdGFydCwgY3VycmVu
dFNvdXJjZVB0cigpIC0gc3RyaW5nU3RhcnQpOwotICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3Mp
Ci0gICAgICAgIHRva2VuRGF0YS0+aWRlbnQgPSBtYWtlSWRlbnRpZmllcihtX2J1ZmZlcjE2LmRh
dGEoKSwgbV9idWZmZXIxNi5zaXplKCkpOwotICAgIGVsc2UKLSAgICAgICAgdG9rZW5EYXRhLT5p
ZGVudCA9IDA7CisKKyAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKSB7CisgICAgICAgIHRva2Vu
RGF0YS0+Y29va2VkID0gbWFrZUlkZW50aWZpZXIobV9idWZmZXIxNi5kYXRhKCksIG1fYnVmZmVy
MTYuc2l6ZSgpKTsKKyAgICAgICAgLy8gVE9ETzogV2hpbGUgbGluZSB0ZXJtaW5hdG9yIG5vcm1h
bGl6YXRpb24gKGUuZy4gPENSPiA9PiA8TEY+KSBzaG91bGQgYmUgYXBwbGllZCB0byBib3RoIHRo
ZSByYXcgYW5kIGNvb2tlZCByZXByZXNlbnRhdGlvbnMsCisgICAgICAgIC8vIHRoaXMgcmF3IGlt
cGxlbWVudGF0aW9uIGp1c3Qgc2xpY2VzIHRoZSBzb3VyY2Ugc3RyaW5nLiBBcyBhIHJlc3VsdCwg
bGluZSB0ZXJtaW5hdG9ycyBhcHBlYXIgaW4gdGhlIHJhdyByZXByZXNlbnRhdGlvbiB3aXRob3V0
IG5vcm1hbGl6YXRpb24uCisgICAgICAgIC8vIEZvciBleGFtcGxlLCB3aGVuIHBhcnNpbmcgYDxD
Uj5gLCA8Q1I+IGFwcGVhcnMgaW4gdGhlIHJhdyByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgLy8g
V2hpbGUgbm9uLXRhZ2dlZCB0ZW1wbGF0ZSBsaXRlcmFscyBkb24ndCB1c2UgdGhlIHJhdyByZXBy
ZXNlbnRhdGlvbiwgdGFnZ2VkIHRlbXBsYXRlcyB1c2UgdGhlIHJhdyByZXByZXNlbnRhaW9uLgor
ICAgICAgICAvLyBTbyBsaW5lIHRlcm1pbmF0b3Igbm9tcmFsaXphdGlvbiBzaG91bGQgYmUgYXBw
bGllZCB0byB0aGUgcmF3IHJlcHJlc2VudGF0aW9uIHdoZW4gaW1wbGVtZW50aW5nIHRhZ2dlZCB0
ZW1wbGF0ZXMuCisgICAgICAgIHRva2VuRGF0YS0+cmF3ID0gbWFrZUlkZW50aWZpZXIocmF3U3Ry
aW5nU3RhcnQsIGN1cnJlbnRTb3VyY2VQdHIoKSAtIHJhd1N0cmluZ1N0YXJ0KTsKKyAgICB9IGVs
c2UgeworICAgICAgICB0b2tlbkRhdGEtPmNvb2tlZCA9IG51bGxwdHI7CisgICAgICAgIHRva2Vu
RGF0YS0+cmF3ID0gbnVsbHB0cjsKKyAgICB9CisgICAgdG9rZW5EYXRhLT5pc1RhaWwgPSBpc1Rh
aWw7CiAKICAgICBtX2J1ZmZlcjE2LnJlc2l6ZSgwKTsKKworICAgIGlmIChpc1RhaWwpIHsKKyAg
ICAgICAgLy8gU2tpcCBgCisgICAgICAgIHNoaWZ0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Ly8gU2tpcCAkIGFuZCB7CisgICAgICAgIHNoaWZ0KCk7CisgICAgICAgIHNoaWZ0KCk7CisgICAg
fQorCiAgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseTsKIH0KKyNlbmRpZgogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFMV0FZU19JTkxJTkUgdm9pZCBMZXhlcjxUPjo6cGFyc2VI
ZXgoZG91YmxlJiByZXR1cm5WYWx1ZSkKQEAgLTE4MjYsMjMgKzIwMzEsMzkgQEAgc3RhdGljIEFM
V0FZU19JTkxJTkUgYm9vbCBjaGFyYWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNo
YXIgY2hhcmFjdGVyKQogICAgICAgICB9CiAgICAgICAgIG1fYnVmZmVyOC5yZXNpemUoMCk7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ2hhcmFjdGVyUXVvdGU6Ci0gICAgICAgIGlmIChsZXhl
ckZsYWdzICYgTGV4ZXJGbGFnc0RvbnRCdWlsZFN0cmluZ3MpIHsKLSAgICAgICAgICAgIFN0cmlu
Z1BhcnNlUmVzdWx0IHJlc3VsdCA9IHBhcnNlU3RyaW5nPGZhbHNlPih0b2tlbkRhdGEsIHN0cmlj
dE1vZGUpOwotICAgICAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBTdHJpbmdQYXJzZWRT
dWNjZXNzZnVsbHkpKSB7Ci0gICAgICAgICAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5n
VW50ZXJtaW5hdGVkID8gVU5URVJNSU5BVEVEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LIDogSU5W
QUxJRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSzsKLSAgICAgICAgICAgICAgICBnb3RvIHJldHVy
bkVycm9yOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgU3Ry
aW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VTdHJpbmc8dHJ1ZT4odG9rZW5EYXRhLCBzdHJp
Y3RNb2RlKTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2Vk
U3VjY2Vzc2Z1bGx5KSkgewotICAgICAgICAgICAgICAgIHRva2VuID0gcmVzdWx0ID09IFN0cmlu
Z1VudGVybWluYXRlZCA/IFVOVEVSTUlOQVRFRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSyA6IElO
VkFMSURfU1RSSU5HX0xJVEVSQUxfRVJST1JUT0s7Ci0gICAgICAgICAgICAgICAgZ290byByZXR1
cm5FcnJvcjsKLSAgICAgICAgICAgIH0KKyAgICBjYXNlIENoYXJhY3RlclF1b3RlOiB7CisgICAg
ICAgIFN0cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAg
ICAgICBpZiAobGV4ZXJGbGFncyAmIExleGVyRmxhZ3NEb250QnVpbGRTdHJpbmdzKQorICAgICAg
ICAgICAgcmVzdWx0ID0gcGFyc2VTdHJpbmc8ZmFsc2U+KHRva2VuRGF0YSwgc3RyaWN0TW9kZSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlU3RyaW5nPHRydWU+KHRv
a2VuRGF0YSwgc3RyaWN0TW9kZSk7CisKKyAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBT
dHJpbmdQYXJzZWRTdWNjZXNzZnVsbHkpKSB7CisgICAgICAgICAgICB0b2tlbiA9IHJlc3VsdCA9
PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfU1RSSU5HX0xJVEVSQUxfRVJST1JU
T0sgOiBJTlZBTElEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LOworICAgICAgICAgICAgZ290byBy
ZXR1cm5FcnJvcjsKICAgICAgICAgfQogICAgICAgICBzaGlmdCgpOwogICAgICAgICB0b2tlbiA9
IFNUUklORzsKICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyNpZiBFTkFCTEUoRVM2X1RFTVBM
QVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIGNhc2UgQ2hhcmFjdGVyQmFja1F1b3RlOiB7CisgICAg
ICAgIC8vIFNraXAgYmFja3F1b3RlLgorICAgICAgICBzaGlmdCgpOworICAgICAgICBTdHJpbmdQ
YXJzZVJlc3VsdCByZXN1bHQgPSBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgaWYgKGxl
eGVyRmxhZ3MgJiBMZXhlckZsYWdzRG9udEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgIHJlc3Vs
dCA9IHBhcnNlVGVtcGxhdGVMaXRlcmFsPGZhbHNlPih0b2tlbkRhdGEpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICByZXN1bHQgPSBwYXJzZVRlbXBsYXRlTGl0ZXJhbDx0cnVlPih0b2tlbkRh
dGEpOworCisgICAgICAgIGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vz
c2Z1bGx5KSkgeworICAgICAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5h
dGVkID8gVU5URVJNSU5BVEVEX1RFTVBMQVRFX0xJVEVSQUxfRVJST1JUT0sgOiBJTlZBTElEX1RF
TVBMQVRFX0xJVEVSQUxfRVJST1JUT0s7CisgICAgICAgICAgICBnb3RvIHJldHVybkVycm9yOwor
ICAgICAgICB9CisgICAgICAgIHRva2VuID0gVEVNUExBVEU7CisgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisjZW5kaWYKICAgICBjYXNlIENoYXJhY3RlcklkZW50aWZpZXJTdGFydDoKICAgICAg
ICAgQVNTRVJUKGlzSWRlbnRTdGFydChtX2N1cnJlbnQpKTsKICAgICAgICAgRkFMTFRIUk9VR0g7
CkBAIC0yMDM1LDYgKzIyNTYsNDAgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBjaGFyYWN0
ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hhcmFjdGVyKQogICAgIHJldHVy
biB0cnVlOwogfQogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPgorSlNUb2tlblR5cGUgTGV4ZXI8VD46OnNjYW5UcmFpbGluZ1Rl
bXBsYXRlU3RyaW5nKEpTVG9rZW4qIHRva2VuUmVjb3JkKQoreworICAgIEpTVG9rZW5EYXRhKiB0
b2tlbkRhdGEgPSAmdG9rZW5SZWNvcmQtPm1fZGF0YTsKKyAgICBKU1Rva2VuTG9jYXRpb24qIHRv
a2VuTG9jYXRpb24gPSAmdG9rZW5SZWNvcmQtPm1fbG9jYXRpb247CisgICAgQVNTRVJUKCFtX2Vy
cm9yKTsKKyAgICBBU1NFUlQobV9idWZmZXIxNi5pc0VtcHR5KCkpOworCisgICAgLy8gTGVhZGlu
ZyBjbG9zaW5nIGJyYWNlIH0gaXMgYWxyZWFkeSBzaGlmdGVkIGluIHRoZSBwcmV2aW91cyB0b2tl
biBzY2FuLgorICAgIC8vIFNvIGluIHRoaXMgcmUtc2NhbiBwaGFzZSwgc2hpZnQoKSBpcyBub3Qg
bmVlZGVkIGhlcmUuCisgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VUZW1wbGF0
ZUxpdGVyYWw8dHJ1ZT4odG9rZW5EYXRhKTsKKyAgICBKU1Rva2VuVHlwZSB0b2tlbiA9IEVSUk9S
VE9LOworICAgIGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5
KSkgeworICAgICAgICB0b2tlbiA9IHJlc3VsdCA9PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRF
Uk1JTkFURURfVEVNUExBVEVfTElURVJBTF9FUlJPUlRPSyA6IElOVkFMSURfVEVNUExBVEVfTElU
RVJBTF9FUlJPUlRPSzsKKyAgICAgICAgbV9lcnJvciA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgdG9rZW4gPSBURU1QTEFURTsKKyAgICAgICAgbV9sYXN0VG9rZW4gPSB0b2tlbjsKKyAg
ICB9CisKKyAgICAvLyBTaW5jZSBUZW1wbGF0ZVN0cmluZyBhbHdheXMgZW5kcyB3aXRoIGAgb3Ig
fSwgbV9hdExpbmVTdGFydCBhbHdheXMgYmVjb21lcyBmYWxzZS4KKyAgICBtX2F0TGluZVN0YXJ0
ID0gZmFsc2U7CisKKyAgICAvLyBBZGp1c3QgY3VycmVudCB0b2tlbkxvY2F0aW9uIGRhdGEgZm9y
IFRlbXBsYXRlU3RyaW5nLgorICAgIHRva2VuTG9jYXRpb24tPmxpbmUgPSBtX2xpbmVOdW1iZXI7
CisgICAgdG9rZW5Mb2NhdGlvbi0+ZW5kT2Zmc2V0ID0gY3VycmVudE9mZnNldCgpOworICAgIHRv
a2VuTG9jYXRpb24tPmxpbmVTdGFydE9mZnNldCA9IGN1cnJlbnRMaW5lU3RhcnRPZmZzZXQoKTsK
KyAgICBBU1NFUlQodG9rZW5Mb2NhdGlvbi0+ZW5kT2Zmc2V0ID49IHRva2VuTG9jYXRpb24tPmxp
bmVTdGFydE9mZnNldCk7CisgICAgdG9rZW5SZWNvcmQtPm1fZW5kUG9zaXRpb24gPSBjdXJyZW50
UG9zaXRpb24oKTsKKyAgICByZXR1cm4gdG9rZW47Cit9CisjZW5kaWYKKwogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiB2b2lkIExleGVyPFQ+OjpjbGVhcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL0xleGVyLmgKaW5kZXggMmRmNTIxMzk5NTc4MjAwNzg1YTE2NmUyMmE3MzI3NWUwZWE2MzA0
ZC4uYjMzNDBjODdmNWY1Yjc2NzU3N2E4NjNiZTk2Y2JlMDgyMWZmMzc1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTGV4ZXIuaApAQCAtOTksNiArOTksOSBAQCBjbGFzcyBMZXhlciB7CiAg
ICAgaW50IGxhc3RMaW5lTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TGluZU51bWJlcjsg
fQogICAgIGJvb2wgcHJldlRlcm1pbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX3Rlcm1pbmF0b3I7
IH0KICAgICBib29sIHNjYW5SZWdFeHAoY29uc3QgSWRlbnRpZmllciomIHBhdHRlcm4sIGNvbnN0
IElkZW50aWZpZXIqJiBmbGFncywgVUNoYXIgcGF0dGVyblByZWZpeCA9IDApOworI2lmIEVOQUJM
RShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgSlNUb2tlblR5cGUgc2NhblRyYWls
aW5nVGVtcGxhdGVTdHJpbmcoSlNUb2tlbiopOworI2VuZGlmCiAgICAgYm9vbCBza2lwUmVnRXhw
KCk7CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIHVzZSBhZnRlciBwYXJzaW5nLgpAQCAtMjAyLDYg
KzIwNSwxNSBAQCBjbGFzcyBMZXhlciB7CiAgICAgfTsKICAgICB0ZW1wbGF0ZSA8Ym9vbCBzaG91
bGRCdWlsZFN0cmluZ3M+IEFMV0FZU19JTkxJTkUgU3RyaW5nUGFyc2VSZXN1bHQgcGFyc2VTdHJp
bmcoSlNUb2tlbkRhdGEqLCBib29sIHN0cmljdE1vZGUpOwogICAgIHRlbXBsYXRlIDxib29sIHNo
b3VsZEJ1aWxkU3RyaW5ncz4gTkVWRVJfSU5MSU5FIFN0cmluZ1BhcnNlUmVzdWx0IHBhcnNlU3Ry
aW5nU2xvd0Nhc2UoSlNUb2tlbkRhdGEqLCBib29sIHN0cmljdE1vZGUpOworCisgICAgZW51bSBj
bGFzcyBFc2NhcGVQYXJzZU1vZGUgeworICAgICAgICBUZW1wbGF0ZSwKKyAgICAgICAgU3RyaW5n
CisgICAgfTsKKyAgICB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IEFMV0FZU19J
TkxJTkUgU3RyaW5nUGFyc2VSZXN1bHQgcGFyc2VDb21wbGV4RXNjYXBlKEVzY2FwZVBhcnNlTW9k
ZSwgYm9vbCBzdHJpY3RNb2RlLCBUIHN0cmluZ1F1b3RlQ2hhcmFjdGVyKTsKKyNpZiBFTkFCTEUo
RVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1
aWxkU3RyaW5ncz4gQUxXQVlTX0lOTElORSBTdHJpbmdQYXJzZVJlc3VsdCBwYXJzZVRlbXBsYXRl
TGl0ZXJhbChKU1Rva2VuRGF0YSopOworI2VuZGlmCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHBh
cnNlSGV4KGRvdWJsZSYgcmV0dXJuVmFsdWUpOwogICAgIEFMV0FZU19JTkxJTkUgYm9vbCBwYXJz
ZUJpbmFyeShkb3VibGUmIHJldHVyblZhbHVlKTsKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGFy
c2VPY3RhbChkb3VibGUmIHJldHVyblZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggM2JkYWI2MWE1MjJlMGNlMmMzMzk3Zjgw
ZjRmYTE4NGQxZDQyMTYwZS4uNjY4Y2JjMzAwZGE0ZmYzMjg2YWE2MzQyMmNlMjU4N2IxY2FkODdi
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0
b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3Jz
LmgKQEAgLTEwMCw2ICsxMDAsNTUgQEAKICAgICB7CiAgICAgfQogCisjaWYgRU5BQkxFKEVTNl9U
RU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBpbmxpbmUgVGVtcGxhdGVFeHByZXNzaW9uTGlz
dE5vZGU6OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKEV4cHJlc3Npb25Ob2RlKiBub2RlKQor
ICAgICAgICA6IG1fbmV4dChudWxscHRyKQorICAgICAgICAsIG1fbm9kZShub2RlKQorICAgIHsK
KyAgICB9CisKKyAgICBpbmxpbmUgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6OlRlbXBsYXRl
RXhwcmVzc2lvbkxpc3ROb2RlKFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBwcmV2LCBFeHBy
ZXNzaW9uTm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAgICAgICAgLCBt
X25vZGUobm9kZSkKKyAgICB7CisgICAgICAgIHByZXYtPm1fbmV4dCA9IHRoaXM7CisgICAgfQor
CisgICAgaW5saW5lIFRlbXBsYXRlU3RyaW5nTm9kZTo6VGVtcGxhdGVTdHJpbmdOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGNvb2tlZCwgY29u
c3QgSWRlbnRpZmllciYgcmF3KQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQor
ICAgICAgICAsIG1fY29va2VkKGNvb2tlZCkKKyAgICAgICAgLCBtX3JhdyhyYXcpCisgICAgewor
ICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlOjpUZW1wbGF0ZVN0cmlu
Z0xpc3ROb2RlKFRlbXBsYXRlU3RyaW5nTm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVs
bHB0cikKKyAgICAgICAgLCBtX25vZGUobm9kZSkKKyAgICB7CisgICAgfQorCisgICAgaW5saW5l
IFRlbXBsYXRlU3RyaW5nTGlzdE5vZGU6OlRlbXBsYXRlU3RyaW5nTGlzdE5vZGUoVGVtcGxhdGVT
dHJpbmdMaXN0Tm9kZSogcHJldiwgVGVtcGxhdGVTdHJpbmdOb2RlKiBub2RlKQorICAgICAgICA6
IG1fbmV4dChudWxscHRyKQorICAgICAgICAsIG1fbm9kZShub2RlKQorICAgIHsKKyAgICAgICAg
cHJldi0+bV9uZXh0ID0gdGhpczsKKyAgICB9CisKKyAgICBpbmxpbmUgVGVtcGxhdGVMaXRlcmFs
Tm9kZTo6VGVtcGxhdGVMaXRlcmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9u
LCBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiB0ZW1wbGF0ZVN0cmluZ3MpCisgICAgICAgIDogRXhw
cmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAgICAgICwgbV90ZW1wbGF0ZVN0cmluZ3ModGVtcGxh
dGVTdHJpbmdzKQorICAgICAgICAsIG1fdGVtcGxhdGVFeHByZXNzaW9ucyhudWxscHRyKQorICAg
IHsKKyAgICB9CisKKyAgICBpbmxpbmUgVGVtcGxhdGVMaXRlcmFsTm9kZTo6VGVtcGxhdGVMaXRl
cmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBUZW1wbGF0ZVN0cmluZ0xp
c3ROb2RlKiB0ZW1wbGF0ZVN0cmluZ3MsIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiB0ZW1w
bGF0ZUV4cHJlc3Npb25zKQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAg
ICAgICAsIG1fdGVtcGxhdGVTdHJpbmdzKHRlbXBsYXRlU3RyaW5ncykKKyAgICAgICAgLCBtX3Rl
bXBsYXRlRXhwcmVzc2lvbnModGVtcGxhdGVFeHByZXNzaW9ucykKKyAgICB7CisgICAgfQorI2Vu
ZGlmCisKICAgICBpbmxpbmUgUmVnRXhwTm9kZTo6UmVnRXhwTm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0ZXJuLCBjb25zdCBJZGVudGlm
aWVyJiBmbGFncykKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAg
LCBtX3BhdHRlcm4ocGF0dGVybikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRl
eCA2YjM3MzI5YzA5YmZjNDJiZWNjYzNjYWE5ODM1OTdjMzU0MDJiNmM5Li5jNjM3YTAzMDUxMzlh
ZDQ4N2M1NjYzMTA1N2ZlOGEwOTg1MjE4NzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCkBAIC0yNzQsNyArMjc0LDcgQEAKIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBt
X3ZhbHVlOwogICAgIH07Ci0gICAgCisKICAgICBjbGFzcyBUaHJvd2FibGVFeHByZXNzaW9uRGF0
YSB7CiAgICAgcHVibGljOgogICAgICAgICBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSgpCkBAIC00
MjcsNiArNDI3LDYwIEBACiAgICAgICAgIHVpbnQxNl90IG1fc3ViZXhwcmVzc2lvbkxpbmVTdGFy
dE9mZnNldDsKICAgICB9OwogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRB
WCkKKyAgICBjbGFzcyBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSA6IHB1YmxpYyBQYXJzZXJB
cmVuYUZyZWVhYmxlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxp
c3ROb2RlKEV4cHJlc3Npb25Ob2RlKik7CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3RO
b2RlKFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiwgRXhwcmVzc2lvbk5vZGUqKTsKKworICAg
ICAgICBFeHByZXNzaW9uTm9kZSogdmFsdWUoKSB7IHJldHVybiBtX25vZGU7IH0KKyAgICAgICAg
VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIG5leHQoKSB7IHJldHVybiBtX25leHQ7IH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBtX25leHQ7
CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX25vZGU7CisgICAgfTsKKworICAgIGNsYXNzIFRl
bXBsYXRlU3RyaW5nTm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CisgICAgcHVibGljOgor
ICAgICAgICBUZW1wbGF0ZVN0cmluZ05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3Qg
SWRlbnRpZmllciYgY29va2VkLCBjb25zdCBJZGVudGlmaWVyJiByYXcpOworCisgICAgICAgIGNv
bnN0IElkZW50aWZpZXImIGNvb2tlZCgpIHsgcmV0dXJuIG1fY29va2VkOyB9CisgICAgICAgIGNv
bnN0IElkZW50aWZpZXImIHJhdygpIHsgcmV0dXJuIG1fcmF3OyB9CisKKyAgICBwcml2YXRlOgor
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAgY29uc3QgSWRlbnRpZmll
ciYgbV9jb29rZWQ7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fcmF3OworICAgIH07CisK
KyAgICBjbGFzcyBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlIDogcHVibGljIFBhcnNlckFyZW5hRnJl
ZWFibGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZShUZW1w
bGF0ZVN0cmluZ05vZGUqKTsKKyAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZShUZW1wbGF0
ZVN0cmluZ0xpc3ROb2RlKiwgVGVtcGxhdGVTdHJpbmdOb2RlKik7CisKKyAgICAgICAgVGVtcGxh
dGVTdHJpbmdOb2RlKiB2YWx1ZSgpIHsgcmV0dXJuIG1fbm9kZTsgfQorICAgICAgICBUZW1wbGF0
ZVN0cmluZ0xpc3ROb2RlKiBuZXh0KCkgeyByZXR1cm4gbV9uZXh0OyB9CisKKyAgICBwcml2YXRl
OgorICAgICAgICBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiBtX25leHQ7CisgICAgICAgIFRlbXBs
YXRlU3RyaW5nTm9kZSogbV9ub2RlOworICAgIH07CisKKyAgICBjbGFzcyBUZW1wbGF0ZUxpdGVy
YWxOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRl
bXBsYXRlTGl0ZXJhbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgVGVtcGxhdGVTdHJpbmdM
aXN0Tm9kZSopOworICAgICAgICBUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqLCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9k
ZSopOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworCisg
ICAgICAgIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIG1fdGVtcGxhdGVTdHJpbmdzOworICAgICAg
ICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogbV90ZW1wbGF0ZUV4cHJlc3Npb25zOworICAg
IH07CisjZW5kaWYKKwogICAgIGNsYXNzIFJlZ0V4cE5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5v
ZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAg
ICBSZWdFeHBOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImIHBh
dHRlcm4sIGNvbnN0IElkZW50aWZpZXImIGZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyLmNwcAppbmRleCAzMmQyNTBjYTdjYzUzZjRiZWE2MWY2MWI2ZGFiZmU2NGJjYmM2
ODQ2Li45OWM1NGExYjFlNmRlOTQ2Y2I5ZGI1ODc1OTc5MzM1YzUwZDc0ZGMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yMjU2LDYgKzIyNTYsNjMgQEAgQUxX
QVlTX0lOTElORSBzdGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCiAgICAg
cmV0dXJuIGNvbnRleHQuY3JlYXRlQXJyYXkobG9jYXRpb24sIGVsZW1lbnRMaXN0KTsKIH0KIAor
I2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgTGV4ZXJUeXBlPgordGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiB0eXBlbmFtZSBUcmVl
QnVpbGRlcjo6VGVtcGxhdGVTdHJpbmcgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlVGVtcGxhdGVT
dHJpbmcoVHJlZUJ1aWxkZXImIGNvbnRleHQsIGJvb2wgaXNUZW1wbGF0ZUhlYWQsIGJvb2wmIGVs
ZW1lbnRJc1RhaWwpCit7CisgICAgaWYgKCFpc1RlbXBsYXRlSGVhZCkgeworICAgICAgICBtYXRj
aE9yRmFpbChDTE9TRUJSQUNFLCAiRXhwZWN0ZWQgYSBjbG9zaW5nICd9JyBmb2xsb3dpbmcgYW4g
ZXhwcmVzc2lvbiBpbiB0ZW1wbGF0ZSBsaXRlcmFsIik7CisgICAgICAgIC8vIFJlLXNjYW4gdGhl
IHRva2VuIHRvIHJlY29nbml6ZSBpdCBhcyBUZW1wbGF0ZSBFbGVtZW50LgorICAgICAgICBtX3Rv
a2VuLm1fdHlwZSA9IG1fbGV4ZXItPnNjYW5UcmFpbGluZ1RlbXBsYXRlU3RyaW5nKCZtX3Rva2Vu
KTsKKyAgICB9CisgICAgbWF0Y2hPckZhaWwoVEVNUExBVEUsICJFeHBlY3RlZCBhbiB0ZW1wbGF0
ZSBlbGVtZW50Iik7CisgICAgY29uc3QgSWRlbnRpZmllciogY29va2VkID0gbV90b2tlbi5tX2Rh
dGEuY29va2VkOworICAgIGNvbnN0IElkZW50aWZpZXIqIHJhdyA9IG1fdG9rZW4ubV9kYXRhLnJh
dzsKKyAgICBlbGVtZW50SXNUYWlsID0gbV90b2tlbi5tX2RhdGEuaXNUYWlsOworICAgIEpTVG9r
ZW5Mb2NhdGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgIG5leHQoKTsKKyAgICBy
ZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZVN0cmluZyhsb2NhdGlvbiwgKmNvb2tlZCwgKnJh
dyk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Cit0ZW1wbGF0ZSA8Y2xhc3Mg
VHJlZUJ1aWxkZXI+IHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZUxpdGVyYWwgUGFyc2Vy
PExleGVyVHlwZT46OnBhcnNlVGVtcGxhdGVMaXRlcmFsKFRyZWVCdWlsZGVyJiBjb250ZXh0KQor
eworICAgIEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbih0b2tlbkxvY2F0aW9uKCkpOworICAgIGJv
b2wgZWxlbWVudElzVGFpbCA9IGZhbHNlOworCisgICAgYXV0byBoZWFkVGVtcGxhdGVTdHJpbmcg
PSBwYXJzZVRlbXBsYXRlU3RyaW5nKGNvbnRleHQsIHRydWUsIGVsZW1lbnRJc1RhaWwpOworICAg
IGZhaWxJZkZhbHNlKGhlYWRUZW1wbGF0ZVN0cmluZywgIkNhbm5vdCBwYXJzZSBoZWFkIHRlbXBs
YXRlIGVsZW1lbnQiKTsKKworICAgIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZVN0cmlu
Z0xpc3QgdGVtcGxhdGVTdHJpbmdMaXN0ID0gY29udGV4dC5jcmVhdGVUZW1wbGF0ZVN0cmluZ0xp
c3QoaGVhZFRlbXBsYXRlU3RyaW5nKTsKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxh
dGVTdHJpbmdMaXN0IHRlbXBsYXRlU3RyaW5nVGFpbCA9IHRlbXBsYXRlU3RyaW5nTGlzdDsKKwor
ICAgIGlmIChlbGVtZW50SXNUYWlsKQorICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1w
bGF0ZUxpdGVyYWwobG9jYXRpb24sIHRlbXBsYXRlU3RyaW5nTGlzdCk7CisKKyAgICBUcmVlRXhw
cmVzc2lvbiBleHByZXNzaW9uID0gcGFyc2VFeHByZXNzaW9uKGNvbnRleHQpOworICAgIGZhaWxJ
ZkZhbHNlKGV4cHJlc3Npb24sICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiBpbiB0ZW1wbGF0ZSBs
aXRlcmFsIik7CisKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFeHByZXNzaW9u
TGlzdCB0ZW1wbGF0ZUV4cHJlc3Npb25MaXN0ID0gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUV4cHJl
c3Npb25MaXN0KGV4cHJlc3Npb24pOworICAgIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0IHRlbXBsYXRlRXhwcmVzc2lvblRhaWwgPSB0ZW1wbGF0ZUV4cHJlc3Np
b25MaXN0OworCisgICAgYXV0byB0ZW1wbGF0ZVN0cmluZyA9IHBhcnNlVGVtcGxhdGVTdHJpbmco
Y29udGV4dCwgZmFsc2UsIGVsZW1lbnRJc1RhaWwpOworICAgIGZhaWxJZkZhbHNlKHRlbXBsYXRl
U3RyaW5nLCAiQ2Fubm90IHBhcnNlIHRlbXBsYXRlIGVsZW1lbnQiKTsKKyAgICB0ZW1wbGF0ZVN0
cmluZ1RhaWwgPSBjb250ZXh0LmNyZWF0ZVRlbXBsYXRlU3RyaW5nTGlzdCh0ZW1wbGF0ZVN0cmlu
Z1RhaWwsIHRlbXBsYXRlU3RyaW5nKTsKKworICAgIHdoaWxlICghZWxlbWVudElzVGFpbCkgewor
ICAgICAgICBUcmVlRXhwcmVzc2lvbiBleHByZXNzaW9uID0gcGFyc2VFeHByZXNzaW9uKGNvbnRl
eHQpOworICAgICAgICBmYWlsSWZGYWxzZShleHByZXNzaW9uLCAiQ2Fubm90IHBhcnNlIGV4cHJl
c3Npb24gaW4gdGVtcGxhdGUgbGl0ZXJhbCIpOworICAgICAgICB0ZW1wbGF0ZUV4cHJlc3Npb25U
YWlsID0gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KHRlbXBsYXRlRXhwcmVz
c2lvblRhaWwsIGV4cHJlc3Npb24pOworCisgICAgICAgIGF1dG8gdGVtcGxhdGVTdHJpbmcgPSBw
YXJzZVRlbXBsYXRlU3RyaW5nKGNvbnRleHQsIGZhbHNlLCBlbGVtZW50SXNUYWlsKTsKKyAgICAg
ICAgZmFpbElmRmFsc2UodGVtcGxhdGVTdHJpbmcsICJDYW5ub3QgcGFyc2UgdGVtcGxhdGUgZWxl
bWVudCIpOworICAgICAgICB0ZW1wbGF0ZVN0cmluZ1RhaWwgPSBjb250ZXh0LmNyZWF0ZVRlbXBs
YXRlU3RyaW5nTGlzdCh0ZW1wbGF0ZVN0cmluZ1RhaWwsIHRlbXBsYXRlU3RyaW5nKTsKKyAgICB9
CisKKyAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxpdGVyYWwobG9jYXRpb24sIHRl
bXBsYXRlU3RyaW5nTGlzdCwgdGVtcGxhdGVFeHByZXNzaW9uTGlzdCk7Cit9CisjZW5kaWYKKwog
dGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRl
cj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJpbWFyeUV4cHJlc3Np
b24oVHJlZUJ1aWxkZXImIGNvbnRleHQpCiB7CkBAIC0yMzU3LDYgKzI0MTQsMTAgQEAgQUxXQVlT
X0lOTElORSBzdGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIHJlOwogICAgIH0KKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJ
VEVSQUxfU1lOVEFYKQorICAgIGNhc2UgVEVNUExBVEU6CisgICAgICAgIHJldHVybiBwYXJzZVRl
bXBsYXRlTGl0ZXJhbChjb250ZXh0KTsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGZh
aWxEdWVUb1VuZXhwZWN0ZWRUb2tlbigpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlci5oCmluZGV4IDBmMjcyOGY4NjIxZjgwMTBjNDEwYmY3OTg3NjE5YmYyM2U1MGFmOGIu
LmJkZTRiMGVlMTI4M2VjMGExZDMzM2Y5Y2VmNWNkZTA4M2EwOWY1YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuaApAQCAtNzc2LDYgKzc3NiwxMCBAQCBjbGFzcyBQYXJzZXIg
ewogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVl
QnVpbGRlcj4gTkVWRVJfSU5MSU5FIFRyZWVDbGFzc0V4cHJlc3Npb24gcGFyc2VDbGFzcyhUcmVl
QnVpbGRlciYsIEZ1bmN0aW9uUmVxdWlyZW1lbnRzLCBQYXJzZXJDbGFzc0luZm88VHJlZUJ1aWxk
ZXI+Jik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQor
ICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIHR5cGVuYW1lIFRy
ZWVCdWlsZGVyOjpUZW1wbGF0ZVN0cmluZyBwYXJzZVRlbXBsYXRlU3RyaW5nKFRyZWVCdWlsZGVy
JiBjb250ZXh0LCBib29sIGlzVGVtcGxhdGVIZWFkLCBib29sJiBlbGVtZW50SXNUYWlsKTsKKyAg
ICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElORSB0eXBlbmFtZSBUcmVl
QnVpbGRlcjo6VGVtcGxhdGVMaXRlcmFsIHBhcnNlVGVtcGxhdGVMaXRlcmFsKFRyZWVCdWlsZGVy
Jik7CisjZW5kaWYKIAogICAgIEFMV0FZU19JTkxJTkUgaW50IGlzQmluYXJ5T3BlcmF0b3IoSlNU
b2tlblR5cGUpOwogICAgIGJvb2wgYWxsb3dBdXRvbWF0aWNTZW1pY29sb24oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCmluZGV4IDgzMjlmODJhOWIyZmY5
MTVkMWYyNDFjMWY4YmZmYWQ0MjQ3YTVmMGIuLjAyNmU0ZjgwZjQzN2Q4YmZlNGE2MTljMzBkMTFk
YzlmYzYxZTI2NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyVG9rZW5zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tl
bnMuaApAQCAtOTYsNiArOTYsNyBAQCBlbnVtIEpTVG9rZW5UeXBlIHsKICAgICBET1VCTEUsCiAg
ICAgSURFTlQsCiAgICAgU1RSSU5HLAorICAgIFRFTVBMQVRFLAogICAgIFNFTUlDT0xPTiwKICAg
ICBDT0xPTiwKICAgICBET1QsCkBAIC0xNjEsNyArMTYyLDkgQEAgZW51bSBKU1Rva2VuVHlwZSB7
CiAgICAgSU5WQUxJRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSyA9IDkgfCBFcnJvclRva2VuRmxh
ZywKICAgICBJTlZBTElEX1BSSVZBVEVfTkFNRV9FUlJPUlRPSyA9IDEwIHwgRXJyb3JUb2tlbkZs
YWcsCiAgICAgSU5WQUxJRF9IRVhfTlVNQkVSX0VSUk9SVE9LID0gMTEgfCBFcnJvclRva2VuRmxh
ZywKLSAgICBJTlZBTElEX0JJTkFSWV9OVU1CRVJfRVJST1JUT0sgPSAxMiB8IEVycm9yVG9rZW5G
bGFnCisgICAgSU5WQUxJRF9CSU5BUllfTlVNQkVSX0VSUk9SVE9LID0gMTIgfCBFcnJvclRva2Vu
RmxhZywKKyAgICBVTlRFUk1JTkFURURfVEVNUExBVEVfTElURVJBTF9FUlJPUlRPSyA9IDEzIHwg
RXJyb3JUb2tlbkZsYWcgfCBVbnRlcm1pbmF0ZWRFcnJvclRva2VuRmxhZywKKyAgICBJTlZBTElE
X1RFTVBMQVRFX0xJVEVSQUxfRVJST1JUT0sgPSAxNCB8IEVycm9yVG9rZW5GbGFnLAogfTsKIAog
c3RydWN0IEpTVGV4dFBvc2l0aW9uIHsKQEAgLTE4OSw2ICsxOTIsMTEgQEAgc3RydWN0IEpTVGV4
dFBvc2l0aW9uIHsKICAgICB9OwogICAgIGRvdWJsZSBkb3VibGVWYWx1ZTsKICAgICBjb25zdCBJ
ZGVudGlmaWVyKiBpZGVudDsKKyAgICBzdHJ1Y3QgeworICAgICAgICBjb25zdCBJZGVudGlmaWVy
KiBjb29rZWQ7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIHJhdzsKKyAgICAgICAgYm9vbCBp
c1RhaWw7CisgICAgfTsKIH07CiAKIHN0cnVjdCBKU1Rva2VuTG9jYXRpb24gewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAppbmRleCA4ZTRmNjFiOTQ5ODkw
YjliZjU0MDI5ZTk2NjYxZWVmNTNhMTdiNTg0Li41NTRlNWRmNjRhNzIxZjQ0NjJkMGQ4OWFiMDIz
YWZkZDc1M2M1NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5
bnRheENoZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENo
ZWNrZXIuaApAQCAtODEsNyArODEsOCBAQCBjbGFzcyBTeW50YXhDaGVja2VyIHsKICAgICAgICAg
RnVuY3Rpb25Cb2R5UmVzdWx0LCBTcHJlYWRFeHByLCBBcmd1bWVudHNSZXN1bHQsCiAgICAgICAg
IFByb3BlcnR5TGlzdFJlc3VsdCwgQXJndW1lbnRzTGlzdFJlc3VsdCwgRWxlbWVudHNMaXN0UmVz
dWx0LAogICAgICAgICBTdGF0ZW1lbnRSZXN1bHQsIEZvcm1hbFBhcmFtZXRlckxpc3RSZXN1bHQs
IENsYXVzZVJlc3VsdCwKLSAgICAgICAgQ2xhdXNlTGlzdFJlc3VsdCwgQ29tbWFFeHByLCBEZWNv
bnN0cnVjdGluZ0Fzc2lnbm1lbnQKKyAgICAgICAgQ2xhdXNlTGlzdFJlc3VsdCwgQ29tbWFFeHBy
LCBEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnQsCisgICAgICAgIFRlbXBsYXRlU3RyaW5nUmVzdWx0
LCBUZW1wbGF0ZVN0cmluZ0xpc3RSZXN1bHQsIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3RSZXN1bHQs
IFRlbXBsYXRlRXhwcgogICAgIH07CiAgICAgdHlwZWRlZiBpbnQgRXhwcmVzc2lvblR5cGU7CiAK
QEAgLTExMSw2ICsxMTIsMTIgQEAgY2xhc3MgU3ludGF4Q2hlY2tlciB7CiAgICAgdHlwZWRlZiBp
bnQgUHJvcGVydHlMaXN0OwogICAgIHR5cGVkZWYgaW50IEVsZW1lbnRMaXN0OwogICAgIHR5cGVk
ZWYgaW50IEFyZ3VtZW50c0xpc3Q7CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZ
TlRBWCkKKyAgICB0eXBlZGVmIGludCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0OworICAgIHR5cGVk
ZWYgaW50IFRlbXBsYXRlU3RyaW5nOworICAgIHR5cGVkZWYgaW50IFRlbXBsYXRlU3RyaW5nTGlz
dDsKKyAgICB0eXBlZGVmIGludCBUZW1wbGF0ZUxpdGVyYWw7CisjZW5kaWYKICAgICB0eXBlZGVm
IGludCBGb3JtYWxQYXJhbWV0ZXJMaXN0OwogICAgIHR5cGVkZWYgaW50IEZ1bmN0aW9uQm9keTsK
ICNpZiBFTkFCTEUoRVM2X0NMQVNTX1NZTlRBWCkKQEAgLTE3Myw2ICsxODAsMTYgQEAgY2xhc3Mg
U3ludGF4Q2hlY2tlciB7CiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50cygpIHsgcmV0dXJuIEFyZ3Vt
ZW50c1Jlc3VsdDsgfQogICAgIGludCBjcmVhdGVBcmd1bWVudHMoaW50KSB7IHJldHVybiBBcmd1
bWVudHNSZXN1bHQ7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVTcHJlYWRFeHByZXNzaW9u
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25UeXBlLCBpbnQsIGludCwgaW50KSB7
IHJldHVybiBTcHJlYWRFeHByOyB9CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZ
TlRBWCkKKyAgICBUZW1wbGF0ZVN0cmluZyBjcmVhdGVUZW1wbGF0ZVN0cmluZyhjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSWRlbnRpZmllciYpIHsgcmV0
dXJuIFRlbXBsYXRlU3RyaW5nUmVzdWx0OyB9CisgICAgVGVtcGxhdGVTdHJpbmdMaXN0IGNyZWF0
ZVRlbXBsYXRlU3RyaW5nTGlzdChUZW1wbGF0ZVN0cmluZykgeyByZXR1cm4gVGVtcGxhdGVTdHJp
bmdMaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVTdHJpbmdMaXN0IGNyZWF0ZVRlbXBsYXRlU3Ry
aW5nTGlzdChUZW1wbGF0ZVN0cmluZ0xpc3QsIFRlbXBsYXRlU3RyaW5nKSB7IHJldHVybiBUZW1w
bGF0ZVN0cmluZ0xpc3RSZXN1bHQ7IH0KKyAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0IGNyZWF0
ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QoRXhwcmVzc2lvbikgeyByZXR1cm4gVGVtcGxhdGVFeHBy
ZXNzaW9uTGlzdFJlc3VsdDsgfQorICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3QgY3JlYXRlVGVt
cGxhdGVFeHByZXNzaW9uTGlzdChUZW1wbGF0ZUV4cHJlc3Npb25MaXN0LCBFeHByZXNzaW9uKSB7
IHJldHVybiBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVMaXRl
cmFsIGNyZWF0ZVRlbXBsYXRlTGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBUZW1wbGF0
ZVN0cmluZ0xpc3QpIHsgcmV0dXJuIFRlbXBsYXRlRXhwcjsgfQorICAgIFRlbXBsYXRlTGl0ZXJh
bCBjcmVhdGVUZW1wbGF0ZUxpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgVGVtcGxhdGVT
dHJpbmdMaXN0LCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KSB7IHJldHVybiBUZW1wbGF0ZUV4cHI7
IH0KKyNlbmRpZgorCiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgaW50KSB7IHJldHVybiBBcmd1bWVudHNMaXN0UmVzdWx0OyB9CiAgICAgaW50IGNy
ZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBpbnQpIHsgcmV0
dXJuIEFyZ3VtZW50c0xpc3RSZXN1bHQ7IH0KICAgICBQcm9wZXJ0eSBjcmVhdGVQcm9wZXJ0eShj
b25zdCBJZGVudGlmaWVyKiBuYW1lLCBpbnQsIFByb3BlcnR5Tm9kZTo6VHlwZSB0eXBlLCBQcm9w
ZXJ0eU5vZGU6OlB1dFR5cGUsIGJvb2wgY29tcGxldGUsIFN1cGVyQmluZGluZyA9IFN1cGVyQmlu
ZGluZzo6Tm90TmVlZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAKaW5kZXggNjUzZWJkYjg0ZmFhNmRjNWZhMDQwNTI3NjkyOGRiZWE3
MzM5Y2M2NC4uZGNmZGRkZDA3NTZhYzZjMjE0NmVjZDg0YTUyNDNiMDQ2ZTE0MjU5YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBA
IC0zNDUsNiArMzQ1LDEyIEBAIHN0YXRpYyBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRh
KiBzZXR1cEFyaXR5Q2hlY2tEYXRhKFZNJiB2bSwgaW50IHNsb3RzVG9BCiAgICAgUkVUVVJOKGpz
TnVtYmVyKE9QX0MoMikuanNWYWx1ZSgpLnRvTnVtYmVyKGV4ZWMpKSk7CiB9CiAKK1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF90b19zdHJpbmcpCit7CisgICAgQkVHSU4oKTsKKyAgICBSRVRVUk4o
T1BfQygyKS5qc1ZhbHVlKCkudG9TdHJpbmcoZXhlYykpOworfQorCiBTTE9XX1BBVEhfREVDTChz
bG93X3BhdGhfbmVnYXRlKQogewogICAgIEJFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGY2MGJiYzg0ZWYxYTQ1OTdlYjA1
YzVhYmIzZmFlMzE5ZDIzYTFmNjguLmQyNGFjYjVlNTNhYjdiMTI4ZWNmODBiNjA0NTY3N2QxNGVm
MGVmZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5oCkBAIC0yMDIsNiArMjAyLDcgQEAgaW5saW5lIHZvaWQgZGVjb2RlUmVzdWx0KFNsb3dQ
YXRoUmV0dXJuVHlwZSByZXN1bHQsIHZvaWQqJiBhLCB2b2lkKiYgYikKIFNMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfaW5jKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
ZGVjKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdG9fbnVtYmVyKTsKK1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdG9fc3RyaW5nKTsKIFNMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfbmVnYXRlKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
YWRkKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbXVsKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1saW5l
LXRlcm1pbmF0b3JzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1w
bGF0ZS1saXRlcmFsLWxpbmUtdGVybWluYXRvcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ1MDRiZWZiZTlk
MTQ2M2ZhNmZjMGNmOWQ5M2ZhMmMxZTc1NGRkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1saW5lLXRlcm1pbmF0
b3JzLmpzCkBAIC0wLDAgKzEsNTYgQEAKK2Z1bmN0aW9uIHRlc3QoYWN0dWFsLCBleHBlY3RlZCkg
eworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
ImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RFdmFsKHNjcmlwdCwg
ZXhwZWN0ZWQpIHsKKyAgICB0ZXN0KGV2YWwoc2NyaXB0KSwgZXhwZWN0ZWQpOworfQorCitmdW5j
dGlvbiB0ZXN0RXZhbExpbmVOdW1iZXIoc2NyaXB0LCBleHBlY3RlZCwgbGluZU51bSkgeworICAg
IHRlc3RFdmFsKHNjcmlwdCwgZXhwZWN0ZWQpOworCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAg
ICB2YXIgYWN0dWFsTGluZTsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCArICc7dGhy
b3cgbmV3IEVycm9yKCJsaW5lIik7Jyk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAg
YWN0dWFsTGluZSA9IGVycm9yLmxpbmU7CisgICAgfQorICAgIHRlc3QoYWN0dWFsTGluZSwgbGlu
ZU51bSk7Cit9CisKK3Rlc3QoYEhlbGxvYCwgIkhlbGxvIik7Cit0ZXN0KGBIZWxsbyBXb3JsZGAs
ICJIZWxsbyBXb3JsZCIpOwordGVzdChgCitgLCAiXG4iKTsKK3Rlc3QoYEhlbGxvCitXb3JsZGAs
ICJIZWxsb1xuV29ybGQiKTsKKwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG8gV29ybGRgIiwg
IkhlbGxvIFdvcmxkIiwgMSk7CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXHJXb3JsZGAi
LCAiSGVsbG9cbldvcmxkIiwgMik7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuV29ybGRg
IiwgIkhlbGxvXG5Xb3JsZCIsIDIpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xyXHJX
b3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxv
XHJcbldvcmxkYCIsICJIZWxsb1xuV29ybGQiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhl
bGxvXG5cbldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwordGVzdEV2YWxMaW5lTnVtYmVy
KCJgSGVsbG9cblxyV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMik7CisKK3Rlc3RFdmFsTGlu
ZU51bWJlcigiYEhlbGxvXG5cclxuV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7Cit0ZXN0
RXZhbExpbmVOdW1iZXIoImBIZWxsb1xyXG5ccldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMp
OwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cblxuXG5Xb3JsZGAiLCAiSGVsbG9cblxuXG5X
b3JsZCIsIDQpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuXHJcblxyV29ybGRgIiwg
IkhlbGxvXG5cblxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5cclxu
XG5Xb3JsZGAiLCAiSGVsbG9cblxuXG5Xb3JsZCIsIDQpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJg
SGVsbG9cclxuXG5cbldvcmxkYCIsICJIZWxsb1xuXG5cbldvcmxkIiwgNCk7CisKK3Rlc3RFdmFs
TGluZU51bWJlcigiYEhlbGxvXFxcblxyXHJXb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsK
K3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXFxcclxuXG5cbldvcmxkYCIsICJIZWxsb1xuXG5X
b3JsZCIsIDQpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cXFxuXHJcblxuV29ybGRgIiwg
IkhlbGxvXG5cbldvcmxkIiwgNCk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xcXG5cclxy
XG5Xb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKKwordGVzdEV2YWxMaW5lTnVtYmVyKCJg
XHUyMDI4YCIsICJcdTIwMjgiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYFx1MjAyOWAiLCAi
XHUyMDI5IiwgMik7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBcXHUyMDI4YCIsICJcdTIwMjgiLCAx
KTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYFxcdTIwMjlgIiwgIlx1MjAyOSIsIDEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFs
LXN5bnRheC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUt
bGl0ZXJhbC1zeW50YXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA3OWM5N2U4ODIzZDA5ODFkMmE1ZDBlMDEy
ZmYzOTMzYWQ3ZWUwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1zeW50YXguanMKQEAgLTAsMCArMSw2NyBAQAor
CitmdW5jdGlvbiB0ZXN0U3ludGF4KHNjcmlwdCkgeworICAgIHRyeSB7CisgICAgICAgIGV2YWwo
c2NyaXB0KTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBpZiAoZXJyb3IgaW5zdGFu
Y2VvZiBTeW50YXhFcnJvcikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGVycm9y
OiAiICsgU3RyaW5nKGVycm9yKSk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0U3ludGF4RXJy
b3Ioc2NyaXB0LCBtZXNzYWdlKSB7CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgewor
ICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9
IGU7CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhw
ZWN0ZWQgc3ludGF4IGVycm9yIG5vdCB0aHJvd24iKTsKKworICAgIGlmIChTdHJpbmcoZXJyb3Ip
ICE9PSBtZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBlcnJvcjogIiArIFN0
cmluZyhlcnJvcikpOworfQorCit0ZXN0U3ludGF4KCJgSGVsbG9gIik7Cit0ZXN0U3ludGF4KCIo
YEhlbGxvYCkiKTsKK3Rlc3RTeW50YXgoIihgSGVsbG9gKSArIDQyIik7Cit0ZXN0U3ludGF4KCJg
XG5IZWxsb1xuV29ybGRgIik7Cit0ZXN0U3ludGF4KCJgXG5IZWxsb1xuJHtXb3JsZH1gIik7Cit0
ZXN0U3ludGF4KCJgJHtXb3JsZH1gIik7Cit0ZXN0U3ludGF4KCJgJHtXb3JsZH0gSGVsbG9gIik7
Cit0ZXN0U3ludGF4KCJgJCB7V29ybGR9IEhlbGxvYCIpOwordGVzdFN5bnRheCgiYFxcdUZFRkZ0
ZXN0YCIpOwordGVzdFN5bnRheCgiYFxyXG5gIik7Cit0ZXN0U3ludGF4KCJgXFxyXFxuYCIpOwor
dGVzdFN5bnRheCgiYFxuYCIpOwordGVzdFN5bnRheCgiYFxcbmAiKTsKK3Rlc3RTeW50YXgoImBc
dTIwMjhgIik7Cit0ZXN0U3ludGF4KCJgXFx1MjAyOGAiKTsKK3Rlc3RTeW50YXgoImBcdTIwMjlg
Iik7Cit0ZXN0U3ludGF4KCJgXFx1MjAyOWAiKTsKK3Rlc3RTeW50YXgoImBcXDBgIik7Cit0ZXN0
U3ludGF4KCJgXDBgIik7Cit0ZXN0U3ludGF4KCJgXFx4N2ZgIik7Cit0ZXN0U3ludGF4KCIoYEhl
bGxvYCkgKyA0MiIpOwordGVzdFN5bnRheCgiYFxcXG5gIik7Cit0ZXN0U3ludGF4KCJgXFxcclxu
YCIpOwordGVzdFN5bnRheCgiYFxcXHJgIik7CisKK3Rlc3RTeW50YXhFcnJvcigiYEhlbGxvIiwg
IlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIEVPRiIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8k
e30iLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nIik7Cit0ZXN0U3ludGF4RXJy
b3IoImBIZWxsbyR7ZXhwcn0iLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgRU9GIik7Cit0ZXN0
U3ludGF4RXJyb3IoImBIZWxsbyR7ZXhwcmAiLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgRU9G
Iik7Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxsbyBleHByJHtgIiwgIlN5bnRheEVycm9yOiBVbmV4
cGVjdGVkIEVPRiIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8gJHt9YCIsICJTeW50YXhFcnJv
cjogVW5leHBlY3RlZCB0b2tlbiAnfSciKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxcMDdgIiwgIlN5
bnRheEVycm9yOiBUaGUgb25seSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBp
cyAnXFwwJyIpOworZm9yICh2YXIgaSA9IDE7IGkgPCA3OyArK2kpCisgICAgdGVzdFN5bnRheEVy
cm9yKCJgXFwiICsgaSArICJgIiwgIlN5bnRheEVycm9yOiBUaGUgb25seSB2YWxpZCBudW1lcmlj
IGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXFwwJyIpOworLy8gXDggYW5kIFw5IGFyZSBub3Qg
YWxsb3dlZC4KK2ZvciAodmFyIGkgPSA4OyBpIDwgOTsgKytpKQorICAgIHRlc3RTeW50YXhFcnJv
cigiYFxcIiArIGkgKyAiYCIsICJTeW50YXhFcnJvcjogVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBl
c2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1xcMCciKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxceDdg
IiwgIlN5bnRheEVycm9yOiBcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFj
dGVyIHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHhgIiwgIlN5bnRheEVycm9yOiBc
XHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVlbmNlIik7Cit0
ZXN0U3ludGF4RXJyb3IoImBcXHVgIiwgIlN5bnRheEVycm9yOiBcXHUgY2FuIG9ubHkgYmUgZm9s
bG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIpOwordGVzdFN5bnRheEVycm9y
KCJgXFx1MmAiLCAiU3ludGF4RXJyb3I6IFxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVu
aWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHUyMGAiLCAi
U3ludGF4RXJyb3I6IFxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVuaWNvZGUgY2hhcmFj
dGVyIHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHUyMDJgIiwgIlN5bnRheEVycm9y
OiBcXHUgY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5j
ZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1w
bGF0ZS1saXRlcmFsLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1w
bGF0ZS1saXRlcmFsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmNjQyNDBhZDhmNzBiYjJiNTg1OTczMWQxY2M2
YzY2ZWQwNWM5YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwuanMKQEAgLTAsMCArMSwxNDIgQEAKK2Z1bmN0aW9u
IHRlc3QoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RFdmFsKHNjcmlwdCwgZXhwZWN0ZWQpIHsKKyAgICB0ZXN0KGV2YWwoc2NyaXB0
KSwgZXhwZWN0ZWQpOworfQorCitmdW5jdGlvbiB0ZXN0RW1iZWRkZWQodmFsdWUsIGV4cGVjdGVk
KSB7CisgICAgdmFyIHRlbXBsYXRlID0gYEhlbGxvICR7dmFsdWV9IFdvcmxkYDsKKyAgICB0ZXN0
KHRlbXBsYXRlLCBleHBlY3RlZCk7Cit9CisKK3Rlc3QoYEhlbGxvIFdvcmxkYCwgIkhlbGxvIFdv
cmxkIik7Cit0ZXN0KGBIZWxsbworICAgICAgICBXb3JsZGAsICJIZWxsb1xuICAgICAgICBXb3Js
ZCIpOworCit0ZXN0KGBcdUZFRkZgLCAiXHVGRUZGIik7Cit0ZXN0RXZhbCgiYFx1RkVGRmAiLCAi
XHVGRUZGIik7CisKK3Rlc3QoYFx4MjBgLCAiXHgyMCIpOwordGVzdChgXHgyMDIwYCwgIlx4MjAy
MCIpOworCitmb3IgKHZhciBjaCBvZiBbICdcJycsICciJywgJ1xcJywgJ2InLCAnZicsICduJywg
J3InLCAndCcsICd2JyBdKQorICAgIHRlc3RFdmFsKCJgXFwiICsgY2ggKyAiYCIsIGV2YWwoIidc
XCIgKyBjaCArICInIikpOworCit0ZXN0KGBcCitIZWxsbyBXb3JsZGAsICJIZWxsbyBXb3JsZCIp
OworCit0ZXN0KGBcCisKK0hlbGxvIFdvcmxkYCwgIlxuSGVsbG8gV29ybGQiKTsKKwordGVzdChg
XHUyMDI4XHUyMDI5XHJcbmAsICJcdTIwMjhcdTIwMjlcclxuIik7Cit0ZXN0KGBcdTIwMjhcdTIw
MjlcblxyXG5gLCAiXHUyMDI4XHUyMDI5XG5cclxuIik7Cit0ZXN0KGBcdTIwMjgyMDBgLCAiXHUy
MDI4MjAwIik7CisKK3Rlc3RFbWJlZGRlZCg0MiwgIkhlbGxvIDQyIFdvcmxkIik7Cit0ZXN0RW1i
ZWRkZWQoIklTVUNBIiwgIkhlbGxvIElTVUNBIFdvcmxkIik7Cit0ZXN0RW1iZWRkZWQobnVsbCwg
IkhlbGxvIG51bGwgV29ybGQiKTsKK3Rlc3RFbWJlZGRlZCh1bmRlZmluZWQsICJIZWxsbyB1bmRl
ZmluZWQgV29ybGQiKTsKK3Rlc3RFbWJlZGRlZCh7fSwgIkhlbGxvIFtvYmplY3QgT2JqZWN0XSBX
b3JsZCIpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZhciBvYmplY3QgPSB7CisgICAgICAgIG5h
bWU6ICJDb2NvYSIsCisgICAgfTsKKyAgICB2YXIgYXJyYXkgPSBbCisgICAgICAgICJDYXBwdWNj
aW5vIgorICAgIF0KKyAgICB0ZXN0KGBIZWxsbyAke29iamVjdC5uYW1lfSBhbmQgJHthcnJheVsw
XX0gOkRgLCAiSGVsbG8gQ29jb2EgYW5kIENhcHB1Y2Npbm8gOkQiKTsKK30oKSk7CisKKyhmdW5j
dGlvbiAoKSB7CisgICAgZnVuY3Rpb24gb2soKSB7CisgICAgICAgIHJldHVybiAiQ29jb2EiOwor
ICAgIH0KKyAgICB0ZXN0KGBIZWxsbyAkeyBvaygpIH1gLCAiSGVsbG8gQ29jb2EiKTsKK30oKSk7
CisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFyIG9iamVjdCA9IHsKKyAgICAgICAgdG9TdHJpbmco
KSB7CisgICAgICAgICAgICByZXR1cm4gJ0NvY29hJzsKKyAgICAgICAgfQorICAgIH07CisgICAg
dGVzdChgSGVsbG8gJHtvYmplY3R9IDpEYCwgIkhlbGxvIENvY29hIDpEIik7Cit9KCkpOworCisv
LyBFeGNlcHRpb25zCisKKyhmdW5jdGlvbiAoKSB7CisgICAgZnVuY3Rpb24gZ2VuKG51bSkgewor
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKG51bSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAg
fQorCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB2YXIgdGVtcGxh
dGUgPSBgJHtnZW4oMCl9ICR7Z2VuKDEpfSAke2dlbigyKX1gOworICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoJ25vIGVycm9yIHRocm93bicpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9
PSAnRXJyb3I6IDAnKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0
cmluZyhlcnJvcikpOworCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAg
ICB2YXIgdGVtcGxhdGUgPSBgJHs1Mn0gJHtnZW4oMCl9ICR7Z2VuKDEpfWA7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcignbm8gZXJyb3IgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhl
cnJvcikgIT09ICdFcnJvcjogMCcpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGVycm9y
OiAiICsgU3RyaW5nKGVycm9yKSk7Cit9KCkpOworCisKKyhmdW5jdGlvbiAoKSB7CisgICAgdmFy
IHN0YXQ9IHsKKyAgICAgICAgY291bnQ6IDAKKyAgICB9OworICAgIGZ1bmN0aW9uIGdlbihudW0p
IHsKKyAgICAgICAgc3RhdFtudW1dID0geworICAgICAgICAgICAgY2FsbGVkOiB0cnVlLAorICAg
ICAgICAgICAgY291bnQ6IHN0YXQuY291bnQrKywKKyAgICAgICAgICAgIHRvU3RyaW5nOiBudWxs
CisgICAgICAgIH07CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB0b1N0cmluZygpIHsK
KyAgICAgICAgICAgICAgICBzdGF0W251bV0udG9TdHJpbmcgPSB7CisgICAgICAgICAgICAgICAg
ICAgIGNhbGxlZDogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgY291bnQ6IHN0YXQuY291bnQr
KywKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihu
dW0pOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIHZhciBlcnJvciA9
IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHRlbXBsYXRlID0gYCR7Z2VuKDApfSAke2dl
bigxKX0gJHtnZW4oMil9YDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsK
KyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBlcnJv
ciB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gJ0Vycm9yOiAwJykKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKKyAgICB0
ZXN0KHN0YXRbMF0uY291bnQsIDApOworICAgIHRlc3Qoc3RhdFswXS50b1N0cmluZy5jYWxsZWQs
IHRydWUpOworICAgIHRlc3Qoc3RhdFswXS50b1N0cmluZy5jb3VudCwgMSk7CisgICAgdGVzdChz
dGF0WzFdLCB1bmRlZmluZWQpOworICAgIHRlc3Qoc3RhdFsyXSwgdW5kZWZpbmVkKTsKK30oKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCmluZGV4IDhiMTEyZmFlNDViOTU3ZGQyNjQxZmRiNmY0Njg5ODgwNTg5YWY4NjAu
LjI5ZGRjYzRmYTc2MGQ5ZWZhN2Y2MmViNWZmYjcyNDg2NjMzZDVkMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBA
IC00NSw2ICs0NSw3IEBAIEVOQUJMRV9DQU5WQVNfUEFUSCA9IEVOQUJMRV9DQU5WQVNfUEFUSDsK
IEVOQUJMRV9DQU5WQVNfUFJPWFkgPSA7CiBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgPSBFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkc7CiBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCA9IEVOQUJMRV9F
UzZfQ0xBU1NfU1lOVEFYOworRU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCA9IEVO
QUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVg7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
TkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFCTEVfQ1NQX05FWFQgPSA7CiBFTkFC
TEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9IEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8y
OwpAQCAtMjE0LDQgKzIxNSw0IEBAIEVOQUJMRV9MTElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9T
QVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklU
SE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1df
U0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxF
TUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkg
JChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxF
X0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1Nf
Qk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVf
Q1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxF
X0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQo
RU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFC
TEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElO
RV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hF
TUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNU
X0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNf
RUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5U
U19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBU
RURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRk9OVF9MT0FE
X0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5B
QkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJ
RERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQo
RU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5B
QkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lO
Q09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfSU9T
X0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9J
T1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChF
TkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklY
RVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVO
QUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRS
T0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNU
SUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9V
U0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFC
TEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlT
RVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElT
VCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVO
QUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChF
TkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQo
RU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFC
TEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05U
UykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJURVIpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJf
REVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9T
SVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5H
KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQo
RU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxV
RSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxF
X1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQo
RU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZU
VF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVf
RlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VU
X0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKTsKK0ZFQVRVUkVf
REVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxF
X0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9DQUNI
RV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJP
WFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFY
KSAkKEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRf
RklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVW
RUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09N
UE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dS
SURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19J
TUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChF
TkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAk
KEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JU
KSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1T
KSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikg
JChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJ
QSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIp
ICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFC
TEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5B
QkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVU
T1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19W
RU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9M
RUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJM
RV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChF
TkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVf
TUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJM
RV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JF
TU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxF
X1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVD
SF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRP
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJM
RV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkg
JChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxF
X1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxF
X1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5B
QkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElN
SU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5B
QkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFC
TEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJ
T05fTU9ERSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDhiMTEyZmFlNDViOTU3ZGQyNjQxZmRiNmY0
Njg5ODgwNTg5YWY4NjAuLjI5ZGRjYzRmYTc2MGQ5ZWZhN2Y2MmViNWZmYjcyNDg2NjMzZDVkMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00NSw2ICs0NSw3IEBAIEVOQUJMRV9DQU5WQVNfUEFUSCA9
IEVOQUJMRV9DQU5WQVNfUEFUSDsKIEVOQUJMRV9DQU5WQVNfUFJPWFkgPSA7CiBFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcgPSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc7CiBFTkFCTEVfRVM2X0NM
QVNTX1NZTlRBWCA9IEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYOworRU5BQkxFX0VTNl9URU1QTEFU
RV9MSVRFUkFMX1NZTlRBWCA9IEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVg7CiBF
TkFCTEVfQ09OVEVOVF9GSUxURVJJTkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkc7CiBFTkFC
TEVfQ1NQX05FWFQgPSA7CiBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9IEVOQUJMRV9D
U1NfQU5JTUFUSU9OU19MRVZFTF8yOwpAQCAtMjE0LDQgKzIxNSw0IEBAIEVOQUJMRV9MTElOVF9D
X0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMgPSBFTkFCTEVf
U0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQo
RU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAk
KEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19M
RVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19D
T01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1Nf
R1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NT
X0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VM
RUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19URVhUKSAk
KEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkp
ICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBP
UlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRF
TVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxf
MikgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChF
TkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9U
SU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9B
VVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NT
X1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5B
QkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
Q09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxF
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJf
TE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5B
QkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVf
UkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFC
TEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BF
RUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQ
VE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJURVIpICQoRU5B
QkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5U
KSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChF
TkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChF
TkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9U
SU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChF
TkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVO
QUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxP
V19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9F
TEVNRU5UKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRI
KSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5U
QVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFC
TEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRB
VElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9O
UykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQo
RU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxF
X0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJM
RV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQo
RU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVO
QUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJF
Q0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElN
RVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NP
TlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykg
JChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykg
JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRD
SCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5B
QkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVU
RVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkg
JChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NP
TkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lO
KSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9Y
SU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RB
KSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRP
Q09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05f
TUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xM
X1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAk
KEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19P
VEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFC
TEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9U
T1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RS
QUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChF
TkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdf
TU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJ
WkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFC
TEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxF
X0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVO
QUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDhiMTEyZmFlNDVi
OTU3ZGQyNjQxZmRiNmY0Njg5ODgwNTg5YWY4NjAuLjI5ZGRjYzRmYTc2MGQ5ZWZhN2Y2MmViNWZm
YjcyNDg2NjMzZDVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00NSw2ICs0NSw3IEBAIEVOQUJMRV9DQU5W
QVNfUEFUSCA9IEVOQUJMRV9DQU5WQVNfUEFUSDsKIEVOQUJMRV9DQU5WQVNfUFJPWFkgPSA7CiBF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgPSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc7CiBFTkFC
TEVfRVM2X0NMQVNTX1NZTlRBWCA9IEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYOworRU5BQkxFX0VT
Nl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCA9IEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9T
WU5UQVg7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
Tkc7CiBFTkFCTEVfQ1NQX05FWFQgPSA7CiBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9
IEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yOwpAQCAtMjE0LDQgKzIxNSw0IEBAIEVOQUJM
RV9MTElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMg
PSBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQ
VElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElU
SU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5J
TUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5B
QkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVO
QUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NT
M19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJ
U0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5D
UllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMikgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRM
SU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09S
S0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5B
QkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9J
T1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9M
RUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMp
ICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVE
SU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5U
KSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9O
QVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kp
ICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxF
X1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVO
VFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkg
JChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVS
WSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChF
TkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NV
QlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJU
RVIpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFU
RV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5U
UykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09S
RCkgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JF
UExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5B
QkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElN
RU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19M
T09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRF
UklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRU
QUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NB
TlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9FUzZfVEVNUExBVEVfTElU
RVJBTF9TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVY
VCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJ
Q0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1B
R0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9D
U1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19T
SEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUsp
ICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRM
RVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RS
VUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElB
X1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMp
ICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1F
UEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFH
RV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9T
RVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJF
X0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNI
X0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVO
QUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElO
S19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJ
UFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChF
TkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNP
Ul9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklH
QVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZL
SVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVO
QUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVR
VUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JF
U09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9D
U1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVB
TVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElP
TikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5B
QkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9Q
SUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9O
UykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQp
ICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1F
VElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVy
ZXMuY21ha2UKaW5kZXggMzJjMjM1ZDk4YjVhNDIwZWJlMzM0ODM0YzdiNmE0MTgyYjIyMjIwYS4u
YTM0MzA4MmZmNDNlMmZhYTA0N2NlODNlY2E1ZGY1MjNkNzFlZGVkMSAxMDA2NDQKLS0tIGEvU291
cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRG
ZWF0dXJlcy5jbWFrZQpAQCAtMjgsNiArMjgsNyBAQCBtYWNybyhXRUJLSVRfT1BUSU9OX0JFR0lO
KQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9DQU5WQVNfUFJPWFkgIlRvZ2dsZSBD
YW52YXNQcm94eSBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HICJUb2dnbGUgTWVzc2FnZUNoYW5uZWwgYW5kIE1lc3NhZ2VQb3J0
IHN1cHBvcnQiIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9FUzZfQ0xBU1Nf
U1lOVEFYICJUb2dnbGUgRVM2IGNsYXNzIHN5bnRheCBzdXBwb3J0IiBPTikKKyAgICBXRUJLSVRf
T1BUSU9OX0RFRklORShFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYICJUb2dnbGUg
RVM2IHRlbXBsYXRlIGxpdGVyYWwgc3ludGF4IHN1cHBvcnQiIE9OKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORyAiVG9nZ2xlIGNvbnRlbnQgZmlsdGVy
aW5nIHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfQ09OVEVY
VF9NRU5VUyAiVG9nZ2xlIENvbnRleHQgTWVudSBzdXBwb3J0IiBPTikKICAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfQ1NQX05FWFQgIlRvZ2dsZSBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eSAxLjEgc3VwcG9ydCIgT0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21h
a2UgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCAyMWQzZmNjNWQ5ODNmOTU5NWRl
ZjM1MTA1NjhjZGM5ODk2NTI0NmVkLi5iOWMxZWE4ZDEyYzI1MzY5OWNiNzNmNDFkODA2Y2MxN2Jm
NGNjMDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3Vy
Y2UvY21ha2Vjb25maWcuaC5jbWFrZQpAQCAtMTMsNiArMTMsNyBAQAogI2NtYWtlZGVmaW5lMDEg
RU5BQkxFX0NBTlZBU19QUk9YWQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWAorI2NtYWtlZGVmaW5l
MDEgRU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWAogI2NtYWtlZGVmaW5lMDEgRU5B
QkxFX0NPTlRFTlRfRklMVEVSSU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ09OVEVYVF9NRU5V
UwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NSRURFTlRJQUxfU1RPUkFHRQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ3MDg3YzFjNjE1ZWY2YzY5
ZmNhOTBmZGMyYTY5Y2I3Y2Y5OWZmOTguLmU5OTUyMzlmOWZjNmViYWMwN2ZkOTRlMTQwZGViNzYx
NjBkMjYzZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wNC0wMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUu
dGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxp
dGVyYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDI2OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgRU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwogMjAxNS0w
NC0wMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBmaWx0
ZXItd2Via2l0LWJ1aWxkIHNob3VsZCBmaWx0ZXIgb3V0ICJjcmVhdGVkIGJ5IGFuIHVuc3VwcG9y
dGVkIFhDRGVwZW5kZW5jeUdyYXBoIGJ1aWxkIiBsaW5lcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L0ZlYXR1cmVMaXN0LnBtCmluZGV4IDE2ZmQ2NDljNjhkNmIzZDQzZDBiMzFlMzM1NzkwNGZjODcy
NGE3ZWIuLjAwMjNjM2U1YThmMDI3OWE4YWU2MTEwNDFmZDliZTQ5NDg1OTBhNWMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAgLTQ5LDYgKzQ5LDcgQEAgQkVHSU4K
ICAgICAkY2FudmFzUHJveHlTdXBwb3J0LAogICAgICRjaGFubmVsTWVzc2FnaW5nU3VwcG9ydCwK
ICAgICAkY2xhc3NTeW50YXgsCisgICAgJHRlbXBsYXRlTGl0ZXJhbFN5bnRheCwKICAgICAkY3Nw
TmV4dFN1cHBvcnQsCiAgICAgJGNzczNDb25kaXRpb25hbFJ1bGVzU3VwcG9ydCwKICAgICAkY3Nz
M1RleHRTdXBwb3J0LApAQCAtMTY5LDYgKzE3MCw5IEBAIEJFR0lOCiAgICAgeyBvcHRpb24gPT4g
ImNsYXNzLXN5bnRheCIsIGRlc2MgPT4gIlRvZ2dsZSBFUzYgY2xhc3Mgc3ludGF4IHN1cHBvcnQi
LAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCIsIGRlZmF1bHQgPT4g
MSwgdmFsdWUgPT4gXCRjbGFzc1N5bnRheCB9LAogCisgICAgeyBvcHRpb24gPT4gInRlbXBsYXRl
LWxpdGVyYWwtc3ludGF4IiwgZGVzYyA9PiAiVG9nZ2xlIEVTNiB0ZW1wbGF0ZSBsaXRlcmFsIHN5
bnRheCBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0VTNl9URU1QTEFURV9MSVRF
UkFMX1NZTlRBWCIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR0ZW1wbGF0ZUxpdGVyYWxTeW50
YXggfSwKKwogICAgIHsgb3B0aW9uID0+ICJjc3AtbmV4dCIsIGRlc2MgPT4gIlRvZ2dsZSBDb250
ZW50IFNlY3VyaXR5IFBvbGljeSAxLjEgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9DU1BfTkVYVCIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3BOZXh0U3VwcG9y
dCB9LAogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNmExNzRhNjg3
YzE2MzY0ZmQzMTdiYjA5YjM1MWM1N2M2NDg1NWM3Yy4uNGU3YzhhOTMyMWFkMTQ4YjY3ZTc2MmRk
MmJiMmVmODViOWNjNzFkMSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE1LTA0LTAyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEltcGxlbWVudCBFUzYgdGVtcGxhdGUgbGl0ZXJh
bHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY5
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBF
TkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYIGNvbXBpbGUgdGltZSBmbGFnLgorCisg
ICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlOgorICAgICAgICAqIFNv
dXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlOgorCiAyMDE1LTA0LTAxICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUHJvZ3Jlc3MgdG93YXJkcyBD
TWFrZSBvbiBXaW5kb3dzIGFuZCBNYWMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251090</attachid>
            <date>2015-04-18 06:58:29 -0700</date>
            <delta_ts>2015-04-23 14:27:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142691-20150418225728.patch</filename>
            <type>text/plain</type>
            <size>101033</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyOTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZjgxNmY4OTBjZmYxZmViOTNiZGMyYzY4NGI4MjJiZDRlMDVmZGY4Li40Y2YzMGI1ZWZhYjY2NGNh
ZGVlMTJiMDBlYTViMDllMGMzZGQ1YWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTggQEAKKzIwMTUtMDQtMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIFRlbXBsYXRlTGl0ZXJhbC4KKyAgICAgICAgU2luY2UgVGFnZ2VkVGVtcGxh
dGUgcmVxdWlyZXMgc29tZSBnbG9iYWwgc3RhdGVzIGFuZAorICAgICAgICBwcmltaXRpdmUgb3Bl
cmF0aW9ucyBsaWtlIEdldFRlbXBsYXRlT2JqZWN0LAorICAgICAgICB3ZSBzZXBhcmF0ZSB0aGUg
cGF0Y2guIEl0IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisg
ICAgICAgIFRlbXBsYXRlIExpdGVyYWwgU3ludGF4IGlzIGd1YXJkZWQgYnkgRU5BQkxFX0VTNl9U
RU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKyAgICAgICAgQnkgZGlz
YWJsaW5nIGl0LCB3ZSBjYW4gZGlzYWJsZSBUZW1wbGF0ZSBMaXRlcmFsIHN1cHBvcnQuCisKKyAg
ICAgICAgVG8gaW1wbGVtZW50IHRlbXBsYXRlIGxpdGVyYWxzLCBpbiB0aGlzIHBhdGNoLAorICAg
ICAgICB3ZSBuZXdseSBpbnRyb2R1Y2VzIGJ5dGVjb2RlIG9wX3RvX3N0cmluZy4KKyAgICAgICAg
SW4gdGVtcGxhdGUgbGl0ZXJhbHMsIHdlIGFsdGVybmF0ZWx5IGV2YWx1YXRlIHRoZSBleHByZXNz
aW9uIGFuZAorICAgICAgICBwZXJmb3JtIFRvU3RyaW5nIG9udG8gdGhlIHJlc3VsdCBvZiBldmFs
dWF0aW9uLgorICAgICAgICBGb3IgZXhhbXBsZSwKKworICAgICAgICBgJHtmMSgpfSAke2YyKCl9
YAorCisgICAgICAgIEluIHRoaXMgdGVtcGxhdGUgbGl0ZXJhbCwgZXhlY3V0aW9uIG9yZGVyIGlz
IHRoZSBmb2xsb3dpbmcsCisgICAgICAgIDEuIGNhbGxpbmcgZjEoKQorICAgICAgICAyLiBUb1N0
cmluZyh0aGUgcmVzdWx0IG9mIGYxKCkpCisgICAgICAgIDMuIGNhbGxpbmcgZjIoKQorICAgICAg
ICA0LiBUb1N0cmluZyh0aGUgcmVzdWx0IG9mIGYyKCkpCisKKyAgICAgICAgb3Bfc3RyY2F0IGFs
c28gcGVyZm9ybXMgVG9TdHJpbmcuIEhvd2V2ZXIsIHBlcmZvcm1pbmcgVG9TdHJpbmcKKyAgICAg
ICAgb250byBleHByZXNzaW9ucyBhcmUgYmF0Y2hlZCBpbiBvcF9zdHJjYXQsIGl0J3Mgbm90IHRo
ZSBzYW1lIHRvIHRoZQorICAgICAgICB0ZW1wbGF0ZSBsaXRlcmFsIHNwZWMuIEluIHRoZSBhYm92
ZSBleGFtcGxlLAorICAgICAgICBUb1N0cmluZyhmMSgpKSBzaG91bGQgYmUgY2FsbGVkIGJlZm9y
ZSBjYWxsaW5nIGYyKCkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAg
ICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNl
c0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29k
ZU9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRv
U3RyaW5nKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAg
ICAgKEpTQzo6VGVtcGxhdGVTdHJpbmdOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlND
OjpUZW1wbGF0ZUxpdGVyYWxOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGRmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBh
cnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJ
VDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAg
ICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF90b19z
dHJpbmcpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3RvX3N0cmluZyk6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF90b19zdHJpbmcpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3RvX3N0cmluZyk6
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHBhcnNlci9BU1RC
dWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxhdGVTdHJpbmdMaXN0KToK
KyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdCk6
CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbCk6CisgICAg
ICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OkxleGVyKToK
KyAgICAgICAgKEpTQzo6TGluZU51bWJlckFkZGVyOjpMaW5lTnVtYmVyQWRkZXIpOgorICAgICAg
ICAoSlNDOjpMaW5lTnVtYmVyQWRkZXI6OmNsZWFyKToKKyAgICAgICAgKEpTQzo6TGluZU51bWJl
ckFkZGVyOjphZGQpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6cGFyc2VUZW1wbGF0ZUxpdGVy
YWwpOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4KToKKyAgICAgICAgKEpTQzo6TGV4ZXI8
VD46OnNjYW5UcmFpbGluZ1RlbXBsYXRlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46
OnBhcnNlU3RyaW5nU2xvd0Nhc2UpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9MZXhlci5o
OgorICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OlRl
bXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSk6Cisg
ICAgICAgIChKU0M6OlRlbXBsYXRlU3RyaW5nTm9kZTo6VGVtcGxhdGVTdHJpbmdOb2RlKToKKyAg
ICAgICAgKEpTQzo6VGVtcGxhdGVTdHJpbmdMaXN0Tm9kZTo6VGVtcGxhdGVTdHJpbmdMaXN0Tm9k
ZSk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlTGl0ZXJhbE5vZGU6OlRlbXBsYXRlTGl0ZXJhbE5v
ZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUV4
cHJlc3Npb25MaXN0Tm9kZTo6dmFsdWUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUV4cHJlc3Np
b25MaXN0Tm9kZTo6bmV4dCk6CisgICAgICAgIChKU0M6OlRlbXBsYXRlU3RyaW5nTm9kZTo6Y29v
a2VkKToKKyAgICAgICAgKEpTQzo6VGVtcGxhdGVTdHJpbmdOb2RlOjpyYXcpOgorICAgICAgICAo
SlNDOjpUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlOjp2YWx1ZSk6CisgICAgICAgIChKU0M6OlRlbXBs
YXRlU3RyaW5nTGlzdE5vZGU6Om5leHQpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1wbGF0ZVN0cmluZyk6Cisg
ICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVRlbXBsYXRlTGl0ZXJhbCk6Cisg
ICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToK
KyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAgICogcGFyc2VyL1BhcnNlclRva2Vu
cy5oOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAgIChKU0M6OlN5
bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6U3ludGF4
Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVTdHJpbmdMaXN0KToKKyAgICAgICAgKEpTQzo6U3ludGF4
Q2hlY2tlcjo6Y3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdCk6CisgICAgICAgIChKU0M6OlN5
bnRheENoZWNrZXI6OmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbCk6CisgICAgICAgICogcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAg
ICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
dGVtcGxhdGUtbGl0ZXJhbC1saW5lLXRlcm1pbmF0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAodGVzdEV2YWwpOgorICAgICAgICAodGVzdEV2YWxMaW5lTnVtYmVyKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1zeW50YXguanM6IEFkZGVk
LgorICAgICAgICAodGVzdFN5bnRheCk6CisgICAgICAgICh0ZXN0U3ludGF4RXJyb3IpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAodGVzdEV2YWwpOgorICAgICAgICAodGVzdEVtYmVkZGVkKToKKwog
MjAxNS0wNC0xNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgdW51c2VkIEJvdW5kc0NoZWNrZWRQb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODM4ZTg2
Y2FlYTFlM2U5MGMzOTZjOTQzMDlkYTY3ZDMzNjdmMTg4ZS4uNDBmMzFmMzI0MzIyYmFkOGFkNzYy
M2VjZmM2YmRlMjAyYjMxYmJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA0
LTE4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtF
UzZdIEltcGxlbWVudCBFUzYgdGVtcGxhdGUgbGl0ZXJhbHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY5MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVS
QUxfU1lOVEFYIGNvbXBpbGUgdGltZSBmbGFnLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTUtMDQtMTcgIEJlbSBKb25lcy1CZXkgIDxi
am9uZXNiZUBhZG9iZS5jb20+CiAKICAgICAgICAgTGFyZ2UgdmFsdWVzIGZvciBsaW5lLWhlaWdo
dCBjYXVzZSBpbnRlZ2VyIG92ZXJmbG93IGluIFJlbmRlclN0eWxlOjpjb21wdXRlZExpbmVIZWln
aHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBhMTMwNTk2OWM5ODFmYTZiYzYyZTI5NjA2ZDg2YjQ1YWU2
MGY2ODlhLi5lN2I4Mzk2ZWExNWNjM2M2YjlmYzZhMTk4NDQwOTBmNDdmNzIxNDQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDQtMTggIFl1c3VrZSBTdXp1a2kgIDx1
dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1w
bGF0ZSBsaXRlcmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQyNjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVggY29tcGlsZSB0aW1l
IGZsYWcuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZzoKKwogMjAxNS0wNC0xNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTjogU1ZHIGRvZXMgbm90IHN1cHBvcnQgbGluayBkcmFnZ2luZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDUwZDY3YzFlOWRkZTViNTBkNGFlZjRjNGYwOTM4NDZjOWNkMjdhNzIuLmUwNmQ0
MDRhOGE2Njg2ZGY1OWQ2YWNmMTVhYTYzM2M5MzYxNmY2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxNS0wNC0xOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNv
bT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxpdGVyYWxzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5BQkxFX0VT
Nl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKworICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDE1LTA0LTE3ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIENsaWVudHMg
c29tZXRpbWVzIGJsb2NrIGZvciA1MDBtcyBpbiB3YWl0Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4YjExMmZhZTQ1Yjk1N2RkMjY0MWZkYjZm
NDY4OTg4MDU4OWFmODYwLi4yOWRkY2M0ZmE3NjBkOWVmYTdmNjJlYjVmZmI3MjQ4NjYzM2Q1ZDMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC00NSw2ICs0NSw3IEBAIEVOQUJMRV9DQU5W
QVNfUEFUSCA9IEVOQUJMRV9DQU5WQVNfUEFUSDsKIEVOQUJMRV9DQU5WQVNfUFJPWFkgPSA7CiBF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgPSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc7CiBFTkFC
TEVfRVM2X0NMQVNTX1NZTlRBWCA9IEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYOworRU5BQkxFX0VT
Nl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCA9IEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9T
WU5UQVg7CiBFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcgPSBFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
Tkc7CiBFTkFCTEVfQ1NQX05FWFQgPSA7CiBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMiA9
IEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yOwpAQCAtMjE0LDQgKzIxNSw0IEBAIEVOQUJM
RV9MTElOVF9DX0xPT1AgPSA7CiAKIEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMg
PSBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDOwogCi1GRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQ
VElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElU
SU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5J
TUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5B
QkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVO
QUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NT
M19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJ
U0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJB
TlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5D
UllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMikgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRM
SU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09S
S0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5B
QkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9J
T1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9M
RUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMp
ICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVE
SU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5U
KSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9O
QVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kp
ICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxF
X1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJPTUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVO
VFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkg
JChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVS
WSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChF
TkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NV
QlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJU
RVIpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFU
RV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5U
UykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09S
RCkgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JF
UExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5B
QkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElN
RU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19M
T09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVP
X1BSRVNFTlRBVElPTl9NT0RFKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRF
UklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRU
QUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NB
TlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYKSAkKEVOQUJMRV9FUzZfVEVNUExBVEVfTElU
RVJBTF9TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVY
VCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJ
Q0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1B
R0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9D
U1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19T
SEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUsp
ICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRM
RVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RS
VUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElB
X1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMp
ICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1F
UEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFH
RV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9T
RVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRF
WEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJF
X0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNI
X0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
R0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVO
QUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElO
S19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJ
UFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChF
TkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNP
Ul9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklH
QVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZL
SVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVO
QUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVR
VUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JF
U09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9D
U1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVB
TVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElP
TikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5B
QkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9Q
SUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9O
UykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQp
ICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1F
VElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggMjUxNDEyNjNlMzhk
MGViMmQxODQ0MWY0ZTZmZmNlMzZlZThmN2NmMi4uZTNlZDFkY2RhNGUwM2E1ZjExZWY5MWU1NjEx
OWViOTMwNTFmYjdmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUxpc3QuanNvbgpAQCAtMzIsNiArMzIsNyBAQAogICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfaW5jIiwgImxlbmd0aCIgOiAyIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9k
ZWMiLCAibGVuZ3RoIiA6IDIgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3RvX251bWJl
ciIsICJsZW5ndGgiIDogMyB9LAorICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfdG9fc3RyaW5n
IiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9uZWdhdGUiLCAi
bGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2FkZCIsICJsZW5ndGgi
IDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfbXVsIiwgImxlbmd0aCIgOiA1IH0s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VE
ZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmlu
ZGV4IGYyMDcxMzkyMzI5MDY0NTNiN2E1NGY1NjFiOWI2NDIzZTJlOGNmMjcuLjc2NjdlNjgzZTQ1
NGE0OTk5ODZlZGFjZDkwYjY0OTE3MjQyMDM3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC0xMzUsNiArMTM1LDcgQEAgdm9pZCBj
b21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfaXNfb2JqZWN0X29yX251
bGw6CiAgICAgY2FzZSBvcF9pc19mdW5jdGlvbjoKICAgICBjYXNlIG9wX3RvX251bWJlcjoKKyAg
ICBjYXNlIG9wX3RvX3N0cmluZzoKICAgICBjYXNlIG9wX25lZ2F0ZToKICAgICBjYXNlIG9wX25l
cV9udWxsOgogICAgIGNhc2Ugb3BfZXFfbnVsbDoKQEAgLTMyOCw2ICszMjksNyBAQCB2b2lkIGNv
bXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVk
IGJ5dGVjb2RlT2Zmc2V0LAogICAgIGNhc2Ugb3BfaXNfZnVuY3Rpb246CiAgICAgY2FzZSBvcF9p
bjoKICAgICBjYXNlIG9wX3RvX251bWJlcjoKKyAgICBjYXNlIG9wX3RvX3N0cmluZzoKICAgICBj
YXNlIG9wX25lZ2F0ZToKICAgICBjYXNlIG9wX2FkZDoKICAgICBjYXNlIG9wX211bDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggMWQ4MjM4NzI4
NzhhYzM0MzdjYzUzYTA4N2YxYzBmOGEyMGJiNjBmYi4uOTgwMTIyMDE0N2JjZWI1M2M4NDcyZTk1
NDExZTMyOTFjMjE2OTNiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAKQEAgLTkzOSw2ICs5MzksMTAgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRl
Y29kZSgKICAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwg
InRvX251bWJlciIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2Fz
ZSBvcF90b19zdHJpbmc6IHsKKyAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxv
Y2F0aW9uLCBpdCwgInRvX3N0cmluZyIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9uZWdhdGU6IHsKICAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQs
IGV4ZWMsIGxvY2F0aW9uLCBpdCwgIm5lZ2F0ZSIpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmgKaW5kZXggMmU1OTAzOWQzYTQ4NGEzNDcyODE0NDBlZWY5YzFiODE5ZjcyNjVkYi4uMzBh
ODAxN2MyYjJlODE2MTkzYzY3NDM5YWU0Yzg2YWU2OTBiYmJhNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAt
NDYyLDYgKzQ2Miw3IEBACiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRNb3ZlKFJlZ2lzdGVySUQq
IGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKIAogICAgICAgICBSZWdpc3RlcklEKiBlbWl0VG9OdW1i
ZXIoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRVbmFyeU9w
KG9wX3RvX251bWJlciwgZHN0LCBzcmMpOyB9CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRUb1N0
cmluZyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdFVuYXJ5
T3Aob3BfdG9fc3RyaW5nLCBkc3QsIHNyYyk7IH0KICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElu
YyhSZWdpc3RlcklEKiBzcmNEc3QpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0RGVjKFJlZ2lz
dGVySUQqIHNyY0RzdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCAxMTQzMmFmMjNiYmI2MWU4MTU0MjUyM2I3YzEx
YWE3YmRjYjVmM2JmLi44ZDkwOTQ3MjgzMGM5OWYyZTc3YTlmYjk5MjkwMTMzMDllMTAwMDQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwCkBAIC0yMTUsNiArMjE1LDUzIEBAIFJlZ2lzdGVySUQqIFJlc29sdmVOb2RlOjplbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCoKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRB
WCkKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUZW1wbGF0ZVN0cmluZ05vZGUg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogVGVtcGxh
dGVTdHJpbmdOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXN0ZXJJRCogZHN0KQoreworICAgIGlmIChkc3QgPT0gZ2VuZXJhdG9yLmlnbm9yZWRSZXN1
bHQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0
TG9hZChkc3QsIEpTVmFsdWUoZ2VuZXJhdG9yLmFkZFN0cmluZ0NvbnN0YW50KGNvb2tlZCgpKSkp
OworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGVtcGxhdGVMaXRlcmFs
Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBU
ZW1wbGF0ZUxpdGVyYWxOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVy
YXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIGlmICghbV90ZW1wbGF0ZUV4cHJlc3Npb25z
KSB7CisgICAgICAgIFRlbXBsYXRlU3RyaW5nTm9kZSogdGVtcGxhdGVTdHJpbmcgPSBtX3RlbXBs
YXRlU3RyaW5ncy0+dmFsdWUoKTsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV90ZW1w
bGF0ZVN0cmluZ3MtPm5leHQoKSwgIk9ubHkgb25lIHRlbXBsYXRlIGVsZW1lbnQgZXhpc3RzIGJl
Y2F1c2UgdGhlcmUncyBubyBleHByZXNzaW9uIGluIGEgZ2l2ZW4gdGVtcGxhdGUgbGl0ZXJhbC4i
KTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIHRlbXBsYXRlU3RyaW5n
KTsKKyAgICB9CisKKyAgICBWZWN0b3I8UmVmUHRyPFJlZ2lzdGVySUQ+LCAxNj4gdGVtcG9yYXJ5
UmVnaXN0ZXJzOworCisgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogdGVtcGxhdGVTdHJpbmcg
PSBtX3RlbXBsYXRlU3RyaW5nczsKKyAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogdGVt
cGxhdGVFeHByZXNzaW9uID0gbV90ZW1wbGF0ZUV4cHJlc3Npb25zOworICAgIGZvciAoOyB0ZW1w
bGF0ZUV4cHJlc3Npb247IHRlbXBsYXRlRXhwcmVzc2lvbiA9IHRlbXBsYXRlRXhwcmVzc2lvbi0+
bmV4dCgpLCB0ZW1wbGF0ZVN0cmluZyA9IHRlbXBsYXRlU3RyaW5nLT5uZXh0KCkpIHsKKyAgICAg
ICAgLy8gRXZhbHVhdGUgVGVtcGxhdGVTdHJpbmcuCisgICAgICAgIGlmICghdGVtcGxhdGVTdHJp
bmctPnZhbHVlKCktPmNvb2tlZCgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgdGVtcG9yYXJ5
UmVnaXN0ZXJzLmFwcGVuZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCkpOworICAgICAgICAgICAg
Z2VuZXJhdG9yLmVtaXROb2RlKHRlbXBvcmFyeVJlZ2lzdGVycy5sYXN0KCkuZ2V0KCksIHRlbXBs
YXRlU3RyaW5nLT52YWx1ZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEV2YWx1YXRlIEV4
cHJlc3Npb24uCisgICAgICAgIHRlbXBvcmFyeVJlZ2lzdGVycy5hcHBlbmQoZ2VuZXJhdG9yLm5l
d1RlbXBvcmFyeSgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKHRlbXBvcmFyeVJlZ2lz
dGVycy5sYXN0KCkuZ2V0KCksIHRlbXBsYXRlRXhwcmVzc2lvbi0+dmFsdWUoKSk7CisgICAgICAg
IGdlbmVyYXRvci5lbWl0VG9TdHJpbmcodGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSwg
dGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSk7CisgICAgfQorCisgICAgLy8gRXZhbHVh
dGUgdGFpbCBUZW1wbGF0ZVN0cmluZy4KKyAgICBpZiAoIXRlbXBsYXRlU3RyaW5nLT52YWx1ZSgp
LT5jb29rZWQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgdGVtcG9yYXJ5UmVnaXN0ZXJzLmFwcGVu
ZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUo
dGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSwgdGVtcGxhdGVTdHJpbmctPnZhbHVlKCkp
OworICAgIH0KKworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdFN0cmNhdChnZW5lcmF0b3IuZmlu
YWxEZXN0aW5hdGlvbihkc3QsIHRlbXBvcmFyeVJlZ2lzdGVyc1swXS5nZXQoKSksIHRlbXBvcmFy
eVJlZ2lzdGVyc1swXS5nZXQoKSwgdGVtcG9yYXJ5UmVnaXN0ZXJzLnNpemUoKSk7Cit9CisjZW5k
aWYKKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFycmF5Tm9kZSAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUmVnaXN0ZXJJRCogQXJyYXlOb2RlOjpl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApp
bmRleCBkOTczODg1YzFjYTMyYTNjNmUyMDYwZjkwMWQ3MmEyODFiMTg3Yjc4Li4xYTI5MDBlNTRi
Y2FhYjVkYzZmZTJmYjE3NjMzZDhlYmE3Y2Y2MWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMzc1Niw3ICszNzU2LDEzIEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAg
ICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBu
b2RlKTsKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3RvX251bWJlcik7CiAgICAgICAgIH0K
LSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2Ugb3BfdG9fc3RyaW5nOiB7CisgICAgICAgICAg
ICBOb2RlKiB2YWx1ZSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZCkpOworICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFwaChUb1N0cmluZywgdmFsdWUpKTsKKyAg
ICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3RvX3N0cmluZyk7CisgICAgICAgIH0KKwogICAgICAg
ICBjYXNlIG9wX2luOiB7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLAogICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoSW4s
IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpLCBn
ZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDMy
MjIwZGQyYmE1YWY1ZDZhYjgxNzUzZWRlNzM4MmU5NTdkNmZhYTguLmVmNGMyNDc0OWI3OGZhNmUw
OWE0YzNkOWMyOTAxM2VhYTY1ZGFhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTE5MCw2ICsxOTAsNyBAQCBDYXBhYmlsaXR5TGV2ZWwg
Y2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
SW5zdHJ1YwogICAgIGNhc2Ugb3Bfam5lcV9wdHI6CiAgICAgY2FzZSBvcF90eXBlb2Y6CiAgICAg
Y2FzZSBvcF90b19udW1iZXI6CisgICAgY2FzZSBvcF90b19zdHJpbmc6CiAgICAgY2FzZSBvcF9z
d2l0Y2hfaW1tOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAgY2FzZSBvcF9pbjoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCA4Y2Q5ZmIxMmU4YmY0YjBjNjg3MzhlZjhlZmE3
N2M2NWYwODRhZmU4Li5iNDExM2M0NWU3MmM3ZTE1OGVjMWYxOTIzY2JmZTI5YzVlZjU0MjgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0zMDAsNiArMzAwLDcgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfdGhyb3cpCiAg
ICAgICAgIERFRklORV9PUChvcF90aHJvd19zdGF0aWNfZXJyb3IpCiAgICAgICAgIERFRklORV9P
UChvcF90b19udW1iZXIpCisgICAgICAgIERFRklORV9PUChvcF90b19zdHJpbmcpCiAgICAgICAg
IERFRklORV9PUChvcF90b19wcmltaXRpdmUpCiAKICAgICAgICAgREVGSU5FX09QKG9wX3Jlc29s
dmVfc2NvcGUpCkBAIC00MjksNiArNDMwLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xv
d0Nhc2VzKCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX3N0cmljdGVxKQogICAgICAg
ICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bfc3ViKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Ao
b3BfdG9fbnVtYmVyKQorICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfdG9fc3RyaW5nKQog
ICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfdG9fcHJpbWl0aXZlKQogICAgICAgICBERUZJ
TkVfU0xPV0NBU0VfT1Aob3BfaGFzX2luZGV4ZWRfcHJvcGVydHkpCiAgICAgICAgIERFRklORV9T
TE9XQ0FTRV9PUChvcF9oYXNfc3RydWN0dXJlX3Byb3BlcnR5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmgKaW5kZXggMDFhNDEyOTYzY2U1OTgzMzJhZjExNmI2MmM3NmNhYjI5MmZmYTE3OC4uZDcyMjVl
YTRiMmFlNTQzMTg3ODQ0YzIwNzZlYzZlYjhkNjVkMjFjOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCkBAIC01NTEsNiArNTUxLDcgQEAKICAgICAgICAgdm9pZCBlbWl0X29wX3Rocm93KEluc3Ry
dWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF90aHJvd19zdGF0aWNfZXJyb3IoSW5zdHJ1
Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiopOwor
ICAgICAgICB2b2lkIGVtaXRfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZv
aWQgZW1pdF9vcF90b19wcmltaXRpdmUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX3VuZXhwZWN0ZWRfbG9hZChJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bf
dW5zaWduZWQoSW5zdHJ1Y3Rpb24qKTsKQEAgLTYxMyw2ICs2MTQsNyBAQAogICAgICAgICB2b2lk
IGVtaXRTbG93X29wX3N0cmljdGVxKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3N1YihJbnN0cnVjdGlvbios
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xv
d19vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJik7CisgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiwg
VmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93
X29wX3RvX3ByaW1pdGl2ZShJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF91bnNpZ25lZChJbnN0cnVjdGlvbios
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xv
d19vcF91cnNoaWZ0KEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggNGU4MjFk
MGMzZDVhM2M1ZTY1ODBkMTAzOTZlYzI4ODk2Mzg4NmI1Ni4uOTY1MWEyZDZlNTViZjMxOTRiZGFk
YjcwYjJiYTljNDQ5NDRkOTAxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCkBAIC00ODgsNiArNDg4LDE3IEBAIHZvaWQgSklUOjplbWl0X29wX3RvX251bWJlcihJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0
X29wX3RvX3N0cmluZyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGlu
dCBzcmNWUmVnID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBlbWl0R2V0
VmlydHVhbFJlZ2lzdGVyKHNyY1ZSZWcsIHJlZ1QwKTsKKworICAgIGFkZFNsb3dDYXNlKGVtaXRK
dW1wSWZOb3RKU0NlbGwocmVnVDApKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2g4KE5vdEVxdWFs
LCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZElt
bTMyKFN0cmluZ1R5cGUpKSk7CisKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXNoX25h
bWVfc2NvcGUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0
ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKQEAgLTg3OSw2ICs4OTAsMTUgQEAg
dm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAgICBzbG93UGF0aENhbGwuY2FsbCgpOwogfQogCit2
b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgbGlu
a1Nsb3dDYXNlKGl0ZXIpOworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKworICAgIEpJVFNsb3dQ
YXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhf
dG9fc3RyaW5nKTsKKyAgICBzbG93UGF0aENhbGwuY2FsbCgpOworfQorCiAjZW5kaWYgLy8gVVNF
KEpTVkFMVUU2NCkKIAogdm9pZCBKSVQ6OmVtaXRfb3BfbG9vcF9oaW50KEluc3RydWN0aW9uKikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA0
NzYxNjU3MjVhMzZlMjRiYjJhNzIzM2FjMzFkNTJlYTI2YjliNmY1Li4wYzYxOWM3ZmRiMDk3N2Fh
YTU2ZTE1ZjcwZTkwYjJkNzQwMDliNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC03ODIsNiArNzgyLDI5IEBAIHZvaWQgSklUOjplbWl0
U2xvd19vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9y
PFNsb3dDYXNlCiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRf
b3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgaW50
IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IHNyYyA9IGN1
cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisKKyAgICBlbWl0TG9hZChzcmMsIHJlZ1Qx
LCByZWdUMCk7CisKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIFRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaDgo
Tm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBU
cnVzdGVkSW1tMzIoU3RyaW5nVHlwZSkpKTsKKworICAgIGlmIChzcmMgIT0gZHN0KQorICAgICAg
ICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOworfQorCit2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93
Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwor
ICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKworICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENh
bGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfdG9fc3RyaW5nKTsKKyAgICBz
bG93UGF0aENhbGwuY2FsbCgpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXNoX25hbWVfc2Nv
cGUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggMzkwYzFj
MDY0ZDcxODQzZTVmODZjZDVmNjRlMWE1Y2NjY2ViZWQwOC4uMjQ0ODlkNGQ4NjdlZjAwOTBhOGQ5
YzA3YzQyY2ZmZGU5YjNmYTU1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KQEAgLTk5Myw2ICs5OTMsMjMg
QEAgX2xsaW50X29wX3RvX251bWJlcjoKICAgICBkaXNwYXRjaCgzKQogCiAKK19sbGludF9vcF90
b19zdHJpbmc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MAorICAg
IGxvYWRpIDRbUENdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyLCB0MykK
KyAgICBiaW5lcSB0MiwgQ2VsbFRhZywgLm9wVG9TdHJpbmdTbG93CisgICAgYmJuZXEgSlNDZWxs
OjptX3R5cGVbdDNdLCBTdHJpbmdUeXBlLCAub3BUb1N0cmluZ1Nsb3cKKy5vcFRvU3RyaW5nSXNT
dHJpbmc6CisgICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBzdG9yZWkg
dDMsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisub3BUb1N0
cmluZ1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9fc3RyaW5nKQorICAgIGRp
c3BhdGNoKDMpCisKKwogX2xsaW50X29wX25lZ2F0ZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAg
ICAgbG9hZGkgOFtQQ10sIHQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IDkwMzVlMGY5NTVlZWU3NzYxNzY4NmFk
N2E2Mjk1ODhmZWJmMDQ2MDEuLjg4Mjc0ZDQwOWU0ZmE2YjMyYjBlMDZkNGVlZmM0YjE5YjA4MGY2
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtCkBAIC04NTQsNiArODU0LDIyIEBAIF9sbGludF9vcF90b19udW1iZXI6
CiAgICAgZGlzcGF0Y2goMykKIAogCitfbGxpbnRfb3BfdG9fc3RyaW5nOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDEpCisgICAgbG9hZGlzRnJv
bUluc3RydWN0aW9uKDEsIHQyKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQor
ICAgIGJ0cW56IHQwLCB0YWdNYXNrLCAub3BUb1N0cmluZ1Nsb3cKKyAgICBiYm5lcSBKU0NlbGw6
Om1fdHlwZVt0MF0sIFN0cmluZ1R5cGUsIC5vcFRvU3RyaW5nU2xvdworLm9wVG9TdHJpbmdJc1N0
cmluZzoKKyAgICBzdG9yZXEgdDAsIFtjZnIsIHQyLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5v
cFRvU3RyaW5nU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19zdHJpbmcpCisg
ICAgZGlzcGF0Y2goMykKKworCiBfbGxpbnRfb3BfbmVnYXRlOgogICAgIHRyYWNlRXhlY3V0aW9u
KCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IGI4ZmU0Yjg0ODVhMDk3Njg4ZjVjNjMwYmQ4YzNj
OTY3NjRmYzQ2NDkuLjQxZWQ4NDVmY2ExZjM2ZDIyMjNjYzEyOGZhYzQ3MDFjZTA5NDY1M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0xMDIsNiArMTAy
LDEyIEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAgIHR5cGVkZWYgUHJvcGVydHlMaXN0Tm9kZSog
UHJvcGVydHlMaXN0OwogICAgIHR5cGVkZWYgRWxlbWVudE5vZGUqIEVsZW1lbnRMaXN0OwogICAg
IHR5cGVkZWYgQXJndW1lbnRMaXN0Tm9kZSogQXJndW1lbnRzTGlzdDsKKyNpZiBFTkFCTEUoRVM2
X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIHR5cGVkZWYgVGVtcGxhdGVFeHByZXNzaW9u
TGlzdE5vZGUqIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3Q7CisgICAgdHlwZWRlZiBUZW1wbGF0ZVN0
cmluZ05vZGUqIFRlbXBsYXRlU3RyaW5nOworICAgIHR5cGVkZWYgVGVtcGxhdGVTdHJpbmdMaXN0
Tm9kZSogVGVtcGxhdGVTdHJpbmdMaXN0OworICAgIHR5cGVkZWYgVGVtcGxhdGVMaXRlcmFsTm9k
ZSogVGVtcGxhdGVMaXRlcmFsOworI2VuZGlmCiAgICAgdHlwZWRlZiBQYXJhbWV0ZXJOb2RlKiBG
b3JtYWxQYXJhbWV0ZXJMaXN0OwogICAgIHR5cGVkZWYgRnVuY3Rpb25Cb2R5Tm9kZSogRnVuY3Rp
b25Cb2R5OwogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQpAQCAtMjQ2LDYgKzI1Miw0MyBA
QCBjbGFzcyBBU1RCdWlsZGVyIHsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQogCisjaWYg
RU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBUZW1wbGF0ZVN0cmluZ05v
ZGUqIGNyZWF0ZVRlbXBsYXRlU3RyaW5nKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24s
IGNvbnN0IElkZW50aWZpZXImIGNvb2tlZCwgY29uc3QgSWRlbnRpZmllciYgcmF3KQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVTdHJpbmdOb2RlKGxv
Y2F0aW9uLCBjb29rZWQsIHJhdyk7CisgICAgfQorCisgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9k
ZSogY3JlYXRlVGVtcGxhdGVTdHJpbmdMaXN0KFRlbXBsYXRlU3RyaW5nTm9kZSogdGVtcGxhdGVT
dHJpbmcpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0
ZVN0cmluZ0xpc3ROb2RlKHRlbXBsYXRlU3RyaW5nKTsKKyAgICB9CisKKyAgICBUZW1wbGF0ZVN0
cmluZ0xpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZVN0cmluZ0xpc3QoVGVtcGxhdGVTdHJpbmdMaXN0
Tm9kZSogdGVtcGxhdGVTdHJpbmdMaXN0LCBUZW1wbGF0ZVN0cmluZ05vZGUqIHRlbXBsYXRlU3Ry
aW5nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVtcGxhdGVT
dHJpbmdMaXN0Tm9kZSh0ZW1wbGF0ZVN0cmluZ0xpc3QsIHRlbXBsYXRlU3RyaW5nKTsKKyAgICB9
CisKKyAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogY3JlYXRlVGVtcGxhdGVFeHByZXNz
aW9uTGlzdChFeHByZXNzaW9uTm9kZSogZXhwcmVzc2lvbikKKyAgICB7CisgICAgICAgIHJldHVy
biBuZXcgKG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKGV4cHJlc3Np
b24pOworICAgIH0KKworICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBjcmVhdGVUZW1w
bGF0ZUV4cHJlc3Npb25MaXN0KFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiB0ZW1wbGF0ZUV4
cHJlc3Npb25MaXN0Tm9kZSwgRXhwcmVzc2lvbk5vZGUqIGV4cHJlc3Npb24pCisgICAgeworICAg
ICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9k
ZSh0ZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSwgZXhwcmVzc2lvbik7CisgICAgfQorCisgICAg
VGVtcGxhdGVMaXRlcmFsTm9kZSogY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIHRlbXBsYXRlU3RyaW5n
TGlzdCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRl
TGl0ZXJhbE5vZGUobG9jYXRpb24sIHRlbXBsYXRlU3RyaW5nTGlzdCk7CisgICAgfQorCisgICAg
VGVtcGxhdGVMaXRlcmFsTm9kZSogY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIHRlbXBsYXRlU3RyaW5n
TGlzdCwgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBsYXRlRXhwcmVzc2lvbkxpc3Qp
CisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0ZUxpdGVy
YWxOb2RlKGxvY2F0aW9uLCB0ZW1wbGF0ZVN0cmluZ0xpc3QsIHRlbXBsYXRlRXhwcmVzc2lvbkxp
c3QpOworICAgIH0KKyNlbmRpZgorCiAgICAgRXhwcmVzc2lvbk5vZGUqIGNyZWF0ZVJlZ0V4cChj
b25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0ZXJu
LCBjb25zdCBJZGVudGlmaWVyJiBmbGFncywgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0KQog
ICAgIHsKICAgICAgICAgaWYgKFlhcnI6OmNoZWNrU3ludGF4KHBhdHRlcm4uc3RyaW5nKCkpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCA3ZGUxNDIyMGJiZGE3Mjcz
OGI1NzNhNGI5Nzg4Y2UwYjMyY2M3Y2UzLi4zMWU4NGE1NDc0ZTZmOGEwMTY2MzRhNDM0NGMyYjRm
MDYwYWE4MjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAtNzEs
NiArNzEsOSBAQCBlbnVtIENoYXJhY3RlclR5cGUgewogICAgIENoYXJhY3RlclF1ZXN0aW9uLAog
ICAgIENoYXJhY3RlclRpbGRlLAogICAgIENoYXJhY3RlclF1b3RlLAorI2lmIEVOQUJMRShFUzZf
VEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgQ2hhcmFjdGVyQmFja1F1b3RlLAorI2VuZGlm
CiAgICAgQ2hhcmFjdGVyRG90LAogICAgIENoYXJhY3RlclNsYXNoLAogICAgIENoYXJhY3RlckJh
Y2tTbGFzaCwKQEAgLTE5Miw3ICsxOTUsMTEgQEAgZW51bSBDaGFyYWN0ZXJUeXBlIHsKIC8qICA5
MyAtIF0gICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJDbG9zZUJyYWNrZXQsCiAvKiAgOTQg
LSBeICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyWG9yLAogLyogIDk1IC0gXyAgICAgICAg
ICAgICAgICAgICovIENoYXJhY3RlcklkZW50aWZpZXJTdGFydCwKKyNpZiBFTkFCTEUoRVM2X1RF
TVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorLyogIDk2IC0gYCAgICAgICAgICAgICAgICAgICovIENo
YXJhY3RlckJhY2tRdW90ZSwKKyNlbHNlCiAvKiAgOTYgLSBgICAgICAgICAgICAgICAgICAgKi8g
Q2hhcmFjdGVySW52YWxpZCwKKyNlbmRpZgogLyogIDk3IC0gYSAgICAgICAgICAgICAgICAgICov
IENoYXJhY3RlcklkZW50aWZpZXJTdGFydCwKIC8qICA5OCAtIGIgICAgICAgICAgICAgICAgICAq
LyBDaGFyYWN0ZXJJZGVudGlmaWVyU3RhcnQsCiAvKiAgOTkgLSBjICAgICAgICAgICAgICAgICAg
Ki8gQ2hhcmFjdGVySWRlbnRpZmllclN0YXJ0LApAQCAtMTEwMiw3ICsxMTA5LDkyIEBAIHN0YXRp
YyBBTFdBWVNfSU5MSU5FIGJvb2wgY2hhcmFjdGVyUmVxdWlyZXNQYXJzZVN0cmluZ1Nsb3dDYXNl
KFVDaGFyIGNoYXJhY3RlcikKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci10ZW1wbGF0ZSA8
Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IHR5cGVuYW1lIExleGVyPFQ+OjpTdHJpbmdQYXJzZVJl
c3VsdCBMZXhlcjxUPjo6cGFyc2VTdHJpbmdTbG93Q2FzZShKU1Rva2VuRGF0YSogdG9rZW5EYXRh
LCBib29sIHN0cmljdE1vZGUpCit0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IEFM
V0FZU19JTkxJTkUgYXV0byBMZXhlcjxUPjo6cGFyc2VDb21wbGV4RXNjYXBlKEVzY2FwZVBhcnNl
TW9kZSBlc2NhcGVQYXJzZU1vZGUsIGJvb2wgc3RyaWN0TW9kZSwgVCBzdHJpbmdRdW90ZUNoYXJh
Y3RlcikgLT4gU3RyaW5nUGFyc2VSZXN1bHQKK3sKKyAgICBpZiAobV9jdXJyZW50ID09ICd4Jykg
eworICAgICAgICBzaGlmdCgpOworICAgICAgICBpZiAoIWlzQVNDSUlIZXhEaWdpdChtX2N1cnJl
bnQpIHx8ICFpc0FTQ0lJSGV4RGlnaXQocGVlaygxKSkpIHsKKyAgICAgICAgICAgIG1fbGV4RXJy
b3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBo
ZXggY2hhcmFjdGVyIHNlcXVlbmNlIik7CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nQ2Fubm90
QmVQYXJzZWQ7CisgICAgICAgIH0KKyAgICAgICAgVCBwcmV2ID0gbV9jdXJyZW50OworICAgICAg
ICBzaGlmdCgpOworICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAg
cmVjb3JkMTYoY29udmVydEhleChwcmV2LCBtX2N1cnJlbnQpKTsKKyAgICAgICAgc2hpZnQoKTsK
KyAgICAgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseTsKKyAgICB9CisKKyAgICBp
ZiAobV9jdXJyZW50ID09ICd1JykgeworICAgICAgICBzaGlmdCgpOworICAgICAgICBVbmljb2Rl
SGV4VmFsdWUgY2hhcmFjdGVyID0gcGFyc2VGb3VyRGlnaXRVbmljb2RlSGV4KCk7CisgICAgICAg
IGlmIChjaGFyYWN0ZXIuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRT
dHJpbmdzKQorICAgICAgICAgICAgICAgIHJlY29yZDE2KGNoYXJhY3Rlci52YWx1ZSgpKTsKKyAg
ICAgICAgICAgIHJldHVybiBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHk7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoZXNjYXBlUGFyc2VNb2RlID09IEVzY2FwZVBhcnNlTW9kZTo6U3RyaW5nICYm
IG1fY3VycmVudCA9PSBzdHJpbmdRdW90ZUNoYXJhY3RlcikgeworICAgICAgICAgICAgaWYgKHNo
b3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgICAgICByZWNvcmQxNigndScpOworICAgICAg
ICAgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseTsKKyAgICAgICAgfQorCisgICAg
ICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJcXHUgY2FuIG9ubHkgYmUgZm9s
bG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIpOworICAgICAgICByZXR1cm4g
Y2hhcmFjdGVyLnZhbHVlVHlwZSgpID09IFVuaWNvZGVIZXhWYWx1ZTo6SW5jb21wbGV0ZUhleCA/
IFN0cmluZ1VudGVybWluYXRlZCA6IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOworICAgIH0KKworICAg
IGlmIChzdHJpY3RNb2RlKSB7CisgICAgICAgIGlmIChpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkg
eworICAgICAgICAgICAgLy8gVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4gc3RyaWN0
IG1vZGUgaXMgJ1wwJywgYW5kIHRoaXMgbXVzdCBub3QgYmUgZm9sbG93ZWQgYnkgYSBkZWNpbWFs
IGRpZ2l0LgorICAgICAgICAgICAgaW50IGNoYXJhY3RlcjEgPSBtX2N1cnJlbnQ7CisgICAgICAg
ICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKGNoYXJhY3RlcjEgIT0gJzAnIHx8IGlzQVND
SUlEaWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2Ug
PSBBU0NJSUxpdGVyYWwoIlRoZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmljdCBt
b2RlIGlzICdcXDAnIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0Nhbm5vdEJlUGFy
c2VkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykK
KyAgICAgICAgICAgICAgICByZWNvcmQxNigwKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmdQ
YXJzZWRTdWNjZXNzZnVsbHk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAo
aXNBU0NJSU9jdGFsRGlnaXQobV9jdXJyZW50KSkgeworICAgICAgICAgICAgLy8gT2N0YWwgY2hh
cmFjdGVyIHNlcXVlbmNlcworICAgICAgICAgICAgVCBjaGFyYWN0ZXIxID0gbV9jdXJyZW50Owor
ICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChpc0FTQ0lJT2N0YWxEaWdpdCht
X2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgLy8gVHdvIG9jdGFsIGNoYXJhY3RlcnMKKyAg
ICAgICAgICAgICAgICBUIGNoYXJhY3RlcjIgPSBtX2N1cnJlbnQ7CisgICAgICAgICAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoY2hhcmFjdGVyMSA+PSAnMCcgJiYgY2hhcmFj
dGVyMSA8PSAnMycgJiYgaXNBU0NJSU9jdGFsRGlnaXQobV9jdXJyZW50KSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjb3JkMTYoKGNoYXJhY3RlcjEgLSAnMCcpICogNjQgKyAoY2hhcmFjdGVyMiAtICcwJykg
KiA4ICsgbV9jdXJyZW50IC0gJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQnVp
bGRTdHJpbmdzKQorICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoKGNoYXJhY3RlcjEg
LSAnMCcpICogOCArIGNoYXJhY3RlcjIgLSAnMCcpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykK
KyAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoY2hhcmFjdGVyMSAtICcwJyk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5OworICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKCFhdEVuZCgpKSB7CisgICAgICAgIGlmIChzaG91bGRC
dWlsZFN0cmluZ3MpCisgICAgICAgICAgICByZWNvcmQxNihtX2N1cnJlbnQpOworICAgICAgICBz
aGlmdCgpOworICAgICAgICByZXR1cm4gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5OworICAgIH0K
KworICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlMaXRlcmFsKCJVbnRlcm1pbmF0ZWQgc3Ry
aW5nIGNvbnN0YW50Iik7CisgICAgcmV0dXJuIFN0cmluZ1VudGVybWluYXRlZDsKK30KKwordGVt
cGxhdGUgPHR5cGVuYW1lIFQ+Cit0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IGF1
dG8gTGV4ZXI8VD46OnBhcnNlU3RyaW5nU2xvd0Nhc2UoSlNUb2tlbkRhdGEqIHRva2VuRGF0YSwg
Ym9vbCBzdHJpY3RNb2RlKSAtPiBTdHJpbmdQYXJzZVJlc3VsdAogewogICAgIFQgc3RyaW5nUXVv
dGVDaGFyYWN0ZXIgPSBtX2N1cnJlbnQ7CiAgICAgc2hpZnQoKTsKQEAgLTExMjQsOTYgKzEyMTYs
MjA5IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgY2hhcmFjdGVyUmVxdWlyZXNQYXJzZVN0
cmluZ1Nsb3dDYXNlKFVDaGFyIGNoYXJhY3RlcikKICAgICAgICAgICAgICAgICBzaGlmdCgpOwog
ICAgICAgICAgICAgfSBlbHNlIGlmIChVTkxJS0VMWShpc0xpbmVUZXJtaW5hdG9yKG1fY3VycmVu
dCkpKQogICAgICAgICAgICAgICAgIHNoaWZ0TGluZVRlcm1pbmF0b3IoKTsKLSAgICAgICAgICAg
IGVsc2UgaWYgKG1fY3VycmVudCA9PSAneCcpIHsKLSAgICAgICAgICAgICAgICBzaGlmdCgpOwot
ICAgICAgICAgICAgICAgIGlmICghaXNBU0NJSUhleERpZ2l0KG1fY3VycmVudCkgfHwgIWlzQVND
SUlIZXhEaWdpdChwZWVrKDEpKSkgewotICAgICAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVz
c2FnZSA9IEFTQ0lJTGl0ZXJhbCgiXFx4IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgaGV4IGNo
YXJhY3RlciBzZXF1ZW5jZSIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nQ2Fu
bm90QmVQYXJzZWQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFQgcHJldiA9
IG1fY3VycmVudDsKLSAgICAgICAgICAgICAgICBzaGlmdCgpOwotICAgICAgICAgICAgICAgIGlm
IChzaG91bGRCdWlsZFN0cmluZ3MpCi0gICAgICAgICAgICAgICAgICAgIHJlY29yZDE2KGNvbnZl
cnRIZXgocHJldiwgbV9jdXJyZW50KSk7Ci0gICAgICAgICAgICAgICAgc2hpZnQoKTsKLSAgICAg
ICAgICAgIH0gZWxzZSBpZiAobV9jdXJyZW50ID09ICd1JykgewotICAgICAgICAgICAgICAgIHNo
aWZ0KCk7Ci0gICAgICAgICAgICAgICAgVW5pY29kZUhleFZhbHVlIGNoYXJhY3RlciA9IHBhcnNl
Rm91ckRpZ2l0VW5pY29kZUhleCgpOwotICAgICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXIuaXNW
YWxpZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCi0g
ICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNihjaGFyYWN0ZXIudmFsdWUoKSk7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChtX2N1cnJlbnQgPT0gc3RyaW5nUXVvdGVDaGFyYWN0ZXIp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY29yZDE2KCd1Jyk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlxc
dSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVuaWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNlIik7
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGFyYWN0ZXIudmFsdWVUeXBlKCkgPT0gVW5p
Y29kZUhleFZhbHVlOjpJbmNvbXBsZXRlSGV4ID8gU3RyaW5nVW50ZXJtaW5hdGVkIDogU3RyaW5n
Q2Fubm90QmVQYXJzZWQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIGlm
IChzdHJpY3RNb2RlICYmIGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1ww
JywgYW5kIHRoaXMgbXVzdCBub3QgYmUgZm9sbG93ZWQgYnkgYSBkZWNpbWFsIGRpZ2l0LgotICAg
ICAgICAgICAgICAgIGludCBjaGFyYWN0ZXIxID0gbV9jdXJyZW50OwotICAgICAgICAgICAgICAg
IHNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNoYXJhY3RlcjEgIT0gJzAnIHx8IGlzQVND
SUlEaWdpdChtX2N1cnJlbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNz
YWdlID0gQVNDSUlMaXRlcmFsKCJUaGUgb25seSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJp
Y3QgbW9kZSBpcyAnXFwwJyIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nQ2Fu
bm90QmVQYXJzZWQ7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VDb21wbGV4RXNjYXBl
PHNob3VsZEJ1aWxkU3RyaW5ncz4oRXNjYXBlUGFyc2VNb2RlOjpTdHJpbmcsIHN0cmljdE1vZGUs
IHN0cmluZ1F1b3RlQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IFN0
cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RyaW5nU3RhcnQgPSBjdXJyZW50U291
cmNlUHRyKCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICAvLyBG
YXN0IGNoZWNrIGZvciBjaGFyYWN0ZXJzIHRoYXQgcmVxdWlyZSBzcGVjaWFsIGhhbmRsaW5nLgor
ICAgICAgICAvLyBDYXRjaGVzIDAsIFxuLCBcciwgMHgyMDI4LCBhbmQgMHgyMDI5IGFzIGVmZmlj
aWVudGx5CisgICAgICAgIC8vIGFzIHBvc3NpYmxlLCBhbmQgbGV0cyB0aHJvdWdoIGFsbCBjb21t
b24gQVNDSUkgY2hhcmFjdGVycy4KKyAgICAgICAgaWYgKFVOTElLRUxZKCgoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KG1fY3VycmVudCkgLSAweEUpICYgMHgyMDAwKSkpIHsKKyAgICAgICAgICAgIC8v
IE5ldy1saW5lIG9yIGVuZCBvZiBpbnB1dCBpcyBub3QgYWxsb3dlZAorICAgICAgICAgICAgaWYg
KGF0RW5kKCkgfHwgaXNMaW5lVGVybWluYXRvcihtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAg
ICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlVuZXhwZWN0ZWQgRU9GIik7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGF0RW5kKCkgPyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBTdHJp
bmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEFueXRoaW5n
IGVsc2UgaXMganVzdCBhIG5vcm1hbCBjaGFyYWN0ZXIKKyAgICAgICAgfQorICAgICAgICBzaGlm
dCgpOworICAgIH0KKworICAgIGlmIChjdXJyZW50U291cmNlUHRyKCkgIT0gc3RyaW5nU3RhcnQg
JiYgc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICBhcHBlbmQxNihzdHJpbmdTdGFydCwgY3Vy
cmVudFNvdXJjZVB0cigpIC0gc3RyaW5nU3RhcnQpOworICAgIGlmIChzaG91bGRCdWlsZFN0cmlu
Z3MpCisgICAgICAgIHRva2VuRGF0YS0+aWRlbnQgPSBtYWtlSWRlbnRpZmllcihtX2J1ZmZlcjE2
LmRhdGEoKSwgbV9idWZmZXIxNi5zaXplKCkpOworICAgIGVsc2UKKyAgICAgICAgdG9rZW5EYXRh
LT5pZGVudCA9IDA7CisKKyAgICBtX2J1ZmZlcjE2LnJlc2l6ZSgwKTsKKyAgICByZXR1cm4gU3Ry
aW5nUGFyc2VkU3VjY2Vzc2Z1bGx5OworfQorCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRF
UkFMX1NZTlRBWCkKKy8vIFdoaWxlIHRoZSBsZXhlciBhY2NlcHRzIDxMRj48Q1I+IChub3QgPENS
PjxMRj4pIHNlcXVlbmNlCisvLyBhcyBvbmUgbGluZSB0ZXJtaW5hdG9yIGFuZCBpbmNyZW1lbnRz
IG9uZSBsaW5lIG51bWJlciwKKy8vIFRlbXBsYXRlTGl0ZXJhbCBjb25zaWRlcnMgaXQgYXMgdHdv
IGxpbmUgdGVybWluYXRvcnMgPExGPiBhbmQgPENSPi4KKy8vCisvLyBUZW1wbGF0ZUxpdGVyYWwg
bm9ybWFsaXplcyBsaW5lIHRlcm1pbmF0b3JzIGFzIGZvbGxvd3MuCisvLworLy8gPExGPiA9PiA8
TEY+CisvLyA8Q1I+ID0+IDxMRj4KKy8vIDxDUj48TEY+ID0+IDxMRj4KKy8vIDxcdTIwMjg+ID0+
IDxcdTIwMjg+CisvLyA8XHUyMDI5PiA9PiA8XHUyMDI5PgorLy8KKy8vIFNvLCA8TEY+PENSPiBz
aG91bGQgYmUgbm9ybWFsaXplZCB0byA8TEY+PExGPi4KKy8vIEhvd2V2ZXIsIHRoZSBsZXhlciBz
aG91bGQgaW5jcmVtZW50IHRoZSBsaW5lIG51bWJlciBvbmx5IG9uY2UgZm9yIDxMRj48Q1I+Lgor
Ly8KKy8vIFRvIGFjaGlldmUgdGhpcywgTGluZU51bWJlckFkZGVyIGhvbGRzIHRoZSBjdXJyZW50
IHN0YXR1cyBvZiBsaW5lIHRlcm1pbmF0b3Igc2VxdWVuY2UuCisvLyBXaGVuIFRlbXBsYXRlTGl0
ZXJhbCBsZXhlciBlbmNvdW50ZXJzIGEgbGluZSB0ZXJtaW5hdG9yLCBpdCBub3RpZmllcyB0byBM
aW5lTnVtYmVyQWRkZXIuCisvLyBMaW5lTnVtYmVyQWRkZXIgbWFpbnRhaW5zIHRoZSBzdGF0dXMg
YW5kIGluY3JlbWVudHMgdGhlIGxpbmUgbnVtYmVyIHdoZW4gaXQncyBuZWNlc3NhcnkuCisvLyBG
b3IgZXhhbXBsZSwgTGluZU51bWJlckFkZGVyIGluY3JlbWVudHMgdGhlIGxpbmUgbnVtYmVyIG9u
bHkgb25jZSBmb3IgPExGPjxDUj4gYW5kIDxDUj48TEY+LgordGVtcGxhdGU8dHlwZW5hbWUgVD4K
K2NsYXNzIExpbmVOdW1iZXJBZGRlciB7CitwdWJsaWM6CisgICAgTGluZU51bWJlckFkZGVyKGlu
dCYgbGluZU51bWJlcikKKyAgICAgICAgOiBtX2xpbmVOdW1iZXIobGluZU51bWJlcikKKyAgICAg
ICAgLCBtX3ByZXZpb3VzKDApCisgICAgeworICAgIH0KKworICAgIHZvaWQgY2xlYXIoKQorICAg
IHsKKyAgICAgICAgbV9wcmV2aW91cyA9IDA7CisgICAgfQorCisgICAgdm9pZCBhZGQoVCBjaGFy
YWN0ZXIpCisgICAgeworICAgICAgICBBU1NFUlQoTGV4ZXI8VD46OmlzTGluZVRlcm1pbmF0b3Io
Y2hhcmFjdGVyKSk7CisgICAgICAgIGlmICgoY2hhcmFjdGVyICsgbV9wcmV2aW91cykgPT0gJ1xu
JyArICdccicpCisgICAgICAgICAgICBtX3ByZXZpb3VzID0gMDsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICArK21fbGluZU51bWJlcjsKKyAgICAgICAgICAgIG1fcHJldmlvdXMgPSBjaGFy
YWN0ZXI7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgaW50JiBtX2xpbmVOdW1i
ZXI7CisgICAgVCBtX3ByZXZpb3VzOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit0ZW1w
bGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IHR5cGVuYW1lIExleGVyPFQ+OjpTdHJpbmdQ
YXJzZVJlc3VsdCBMZXhlcjxUPjo6cGFyc2VUZW1wbGF0ZUxpdGVyYWwoSlNUb2tlbkRhdGEqIHRv
a2VuRGF0YSkKK3sKKyAgICBjb25zdCBUKiBzdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIo
KTsKKyAgICBjb25zdCBUKiByYXdTdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsKKwor
ICAgIExpbmVOdW1iZXJBZGRlcjxUPiBsaW5lTnVtYmVyQWRkZXIobV9saW5lTnVtYmVyKTsKKwor
ICAgIHdoaWxlIChtX2N1cnJlbnQgIT0gJ2AnKSB7CisgICAgICAgIGlmIChVTkxJS0VMWShtX2N1
cnJlbnQgPT0gJ1xcJykpIHsKKyAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5jbGVhcigpOwor
ICAgICAgICAgICAgaWYgKHN0cmluZ1N0YXJ0ICE9IGN1cnJlbnRTb3VyY2VQdHIoKSAmJiBzaG91
bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgYXBwZW5kMTYoc3RyaW5nU3RhcnQsIGN1
cnJlbnRTb3VyY2VQdHIoKSAtIHN0cmluZ1N0YXJ0KTsKKyAgICAgICAgICAgIHNoaWZ0KCk7CisK
KyAgICAgICAgICAgIExDaGFyIGVzY2FwZSA9IHNpbmdsZUVzY2FwZShtX2N1cnJlbnQpOworCisg
ICAgICAgICAgICAvLyBNb3N0IGNvbW1vbiBlc2NhcGUgc2VxdWVuY2VzIGZpcnN0CisgICAgICAg
ICAgICBpZiAoZXNjYXBlKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5n
cykKLSAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoMCk7Ci0gICAgICAgICAgICB9IGVsc2Ug
aWYgKCFzdHJpY3RNb2RlICYmIGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpIHsKLSAgICAg
ICAgICAgICAgICAvLyBPY3RhbCBjaGFyYWN0ZXIgc2VxdWVuY2VzCi0gICAgICAgICAgICAgICAg
VCBjaGFyYWN0ZXIxID0gbV9jdXJyZW50OworICAgICAgICAgICAgICAgICAgICByZWNvcmQxNihl
c2NhcGUpOwogICAgICAgICAgICAgICAgIHNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGlz
QVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVHdv
IG9jdGFsIGNoYXJhY3RlcnMKLSAgICAgICAgICAgICAgICAgICAgVCBjaGFyYWN0ZXIyID0gbV9j
dXJyZW50OworICAgICAgICAgICAgfSBlbHNlIGlmIChVTkxJS0VMWShpc0xpbmVUZXJtaW5hdG9y
KG1fY3VycmVudCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXHInKSB7
CisgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9jdXJyZW50KTsKICAg
ICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoYXJh
Y3RlcjEgPj0gJzAnICYmIGNoYXJhY3RlcjEgPD0gJzMnICYmIGlzQVNDSUlPY3RhbERpZ2l0KG1f
Y3VycmVudCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmlu
Z3MpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoKGNoYXJhY3RlcjEgLSAn
MCcpICogNjQgKyAoY2hhcmFjdGVyMiAtICcwJykgKiA4ICsgbV9jdXJyZW50IC0gJzAnKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXG4nKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBsaW5lTnVtYmVyQWRkZXIuYWRkKG1fY3VycmVudCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBzaGlmdCgpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWNvcmQxNigoY2hhcmFjdGVyMSAtICcwJykgKiA4ICsgY2hhcmFjdGVy
MiAtICcwJyk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQotICAgICAgICAg
ICAgICAgICAgICAgICAgcmVjb3JkMTYoY2hhcmFjdGVyMSAtICcwJyk7CisgICAgICAgICAgICAg
ICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9jdXJyZW50KTsKKyAgICAgICAgICAgICAgICAg
ICAgc2hpZnQoKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKCFh
dEVuZCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAgICAg
ICAgICAgICAgICAgICAgcmVjb3JkMTYobV9jdXJyZW50KTsKLSAgICAgICAgICAgICAgICBzaGlm
dCgpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVz
c2FnZSA9IEFTQ0lJTGl0ZXJhbCgiVW50ZXJtaW5hdGVkIHN0cmluZyBjb25zdGFudCIpOwotICAg
ICAgICAgICAgICAgIHJldHVybiBTdHJpbmdVbnRlcm1pbmF0ZWQ7CisgICAgICAgICAgICAgICAg
Ym9vbCBzdHJpY3RNb2RlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBTdHJpbmdQYXJzZVJlc3Vs
dCByZXN1bHQgPSBwYXJzZUNvbXBsZXhFc2NhcGU8c2hvdWxkQnVpbGRTdHJpbmdzPihFc2NhcGVQ
YXJzZU1vZGU6OlRlbXBsYXRlLCBzdHJpY3RNb2RlLCAnYCcpOworICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBzdHJpbmdTdGFy
dCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CisKKyAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnJCcgJiYgcGVlaygxKSA9PSAneycpCisgICAg
ICAgICAgICBicmVhazsKKwogICAgICAgICAvLyBGYXN0IGNoZWNrIGZvciBjaGFyYWN0ZXJzIHRo
YXQgcmVxdWlyZSBzcGVjaWFsIGhhbmRsaW5nLgogICAgICAgICAvLyBDYXRjaGVzIDAsIFxuLCBc
ciwgMHgyMDI4LCBhbmQgMHgyMDI5IGFzIGVmZmljaWVudGx5CiAgICAgICAgIC8vIGFzIHBvc3Np
YmxlLCBhbmQgbGV0cyB0aHJvdWdoIGFsbCBjb21tb24gQVNDSUkgY2hhcmFjdGVycy4KICAgICAg
ICAgaWYgKFVOTElLRUxZKCgoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fY3VycmVudCkgLSAweEUp
ICYgMHgyMDAwKSkpIHsKLSAgICAgICAgICAgIC8vIE5ldy1saW5lIG9yIGVuZCBvZiBpbnB1dCBp
cyBub3QgYWxsb3dlZAotICAgICAgICAgICAgaWYgKGF0RW5kKCkgfHwgaXNMaW5lVGVybWluYXRv
cihtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAvLyBFbmQgb2YgaW5wdXQgaXMgbm90IGFsbG93
ZWQuCisgICAgICAgICAgICAvLyBVbmxpa2UgU3RyaW5nLCBsaW5lIHRlcm1pbmF0b3IgaXMgYWxs
b3dlZC4KKyAgICAgICAgICAgIGlmIChhdEVuZCgpKSB7CiAgICAgICAgICAgICAgICAgbV9sZXhF
cnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlVuZXhwZWN0ZWQgRU9GIik7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGF0RW5kKCkgPyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBTdHJpbmdDYW5ub3RC
ZVBhcnNlZDsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzTGluZVRlcm1pbmF0
b3IobV9jdXJyZW50KSkgeworICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJ1xyJykg
eworICAgICAgICAgICAgICAgICAgICAvLyBOb3JtYWxpemUgPENSPiwgPENSPjxMRj4gdG8gPExG
Pi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZ1N0YXJ0ICE9IGN1cnJlbnRTb3VyY2VQ
dHIoKSAmJiBzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICBhcHBl
bmQxNihzdHJpbmdTdGFydCwgY3VycmVudFNvdXJjZVB0cigpIC0gc3RyaW5nU3RhcnQpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmVjb3JkMTYoJ1xuJyk7CisgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJB
ZGRlci5hZGQobV9jdXJyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5lTnVtYmVyQWRkZXIuYWRkKG1fY3VycmVudCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIHN0cmluZ1N0YXJ0ID0gY3VycmVudFNvdXJjZVB0cigpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9jdXJyZW50
KTsKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBBbnl0
aGluZyBlbHNlIGlzIGp1c3QgYSBub3JtYWwgY2hhcmFjdGVyCiAgICAgICAgIH0KKworICAgICAg
ICBsaW5lTnVtYmVyQWRkZXIuY2xlYXIoKTsKICAgICAgICAgc2hpZnQoKTsKICAgICB9CiAKKyAg
ICBib29sIGlzVGFpbCA9IG1fY3VycmVudCA9PSAnYCc7CisKICAgICBpZiAoY3VycmVudFNvdXJj
ZVB0cigpICE9IHN0cmluZ1N0YXJ0ICYmIHNob3VsZEJ1aWxkU3RyaW5ncykKICAgICAgICAgYXBw
ZW5kMTYoc3RyaW5nU3RhcnQsIGN1cnJlbnRTb3VyY2VQdHIoKSAtIHN0cmluZ1N0YXJ0KTsKLSAg
ICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQotICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gbWFr
ZUlkZW50aWZpZXIobV9idWZmZXIxNi5kYXRhKCksIG1fYnVmZmVyMTYuc2l6ZSgpKTsKLSAgICBl
bHNlCi0gICAgICAgIHRva2VuRGF0YS0+aWRlbnQgPSAwOworCisgICAgaWYgKHNob3VsZEJ1aWxk
U3RyaW5ncykgeworICAgICAgICB0b2tlbkRhdGEtPmNvb2tlZCA9IG1ha2VJZGVudGlmaWVyKG1f
YnVmZmVyMTYuZGF0YSgpLCBtX2J1ZmZlcjE2LnNpemUoKSk7CisgICAgICAgIC8vIFRPRE86IFdo
aWxlIGxpbmUgdGVybWluYXRvciBub3JtYWxpemF0aW9uIChlLmcuIDxDUj4gPT4gPExGPikgc2hv
dWxkIGJlIGFwcGxpZWQgdG8gYm90aCB0aGUgcmF3IGFuZCBjb29rZWQgcmVwcmVzZW50YXRpb25z
LAorICAgICAgICAvLyB0aGlzIHJhdyBpbXBsZW1lbnRhdGlvbiBqdXN0IHNsaWNlcyB0aGUgc291
cmNlIHN0cmluZy4gQXMgYSByZXN1bHQsIGxpbmUgdGVybWluYXRvcnMgYXBwZWFyIGluIHRoZSBy
YXcgcmVwcmVzZW50YXRpb24gd2l0aG91dCBub3JtYWxpemF0aW9uLgorICAgICAgICAvLyBGb3Ig
ZXhhbXBsZSwgd2hlbiBwYXJzaW5nIGA8Q1I+YCwgPENSPiBhcHBlYXJzIGluIHRoZSByYXcgcmVw
cmVzZW50YXRpb24uCisgICAgICAgIC8vIFdoaWxlIG5vbi10YWdnZWQgdGVtcGxhdGUgbGl0ZXJh
bHMgZG9uJ3QgdXNlIHRoZSByYXcgcmVwcmVzZW50YXRpb24sIHRhZ2dlZCB0ZW1wbGF0ZXMgdXNl
IHRoZSByYXcgcmVwcmVzZW50YWlvbi4KKyAgICAgICAgLy8gU28gbGluZSB0ZXJtaW5hdG9yIG5v
bXJhbGl6YXRpb24gc2hvdWxkIGJlIGFwcGxpZWQgdG8gdGhlIHJhdyByZXByZXNlbnRhdGlvbiB3
aGVuIGltcGxlbWVudGluZyB0YWdnZWQgdGVtcGxhdGVzLgorICAgICAgICB0b2tlbkRhdGEtPnJh
dyA9IG1ha2VJZGVudGlmaWVyKHJhd1N0cmluZ1N0YXJ0LCBjdXJyZW50U291cmNlUHRyKCkgLSBy
YXdTdHJpbmdTdGFydCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdG9rZW5EYXRhLT5jb29rZWQg
PSBudWxscHRyOworICAgICAgICB0b2tlbkRhdGEtPnJhdyA9IG51bGxwdHI7CisgICAgfQorICAg
IHRva2VuRGF0YS0+aXNUYWlsID0gaXNUYWlsOwogCiAgICAgbV9idWZmZXIxNi5yZXNpemUoMCk7
CisKKyAgICBpZiAoaXNUYWlsKSB7CisgICAgICAgIC8vIFNraXAgYAorICAgICAgICBzaGlmdCgp
OworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFNraXAgJCBhbmQgeworICAgICAgICBzaGlmdCgp
OworICAgICAgICBzaGlmdCgpOworICAgIH0KKwogICAgIHJldHVybiBTdHJpbmdQYXJzZWRTdWNj
ZXNzZnVsbHk7CiB9CisjZW5kaWYKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTFdBWVNfSU5M
SU5FIHZvaWQgTGV4ZXI8VD46OnBhcnNlSGV4KGRvdWJsZSYgcmV0dXJuVmFsdWUpCkBAIC0xODI2
LDIzICsyMDMxLDM5IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgY2hhcmFjdGVyUmVxdWly
ZXNQYXJzZVN0cmluZ1Nsb3dDYXNlKFVDaGFyIGNoYXJhY3RlcikKICAgICAgICAgfQogICAgICAg
ICBtX2J1ZmZlcjgucmVzaXplKDApOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENoYXJhY3Rl
clF1b3RlOgotICAgICAgICBpZiAobGV4ZXJGbGFncyAmIExleGVyRmxhZ3NEb250QnVpbGRTdHJp
bmdzKSB7Ci0gICAgICAgICAgICBTdHJpbmdQYXJzZVJlc3VsdCByZXN1bHQgPSBwYXJzZVN0cmlu
ZzxmYWxzZT4odG9rZW5EYXRhLCBzdHJpY3RNb2RlKTsKLSAgICAgICAgICAgIGlmIChVTkxJS0VM
WShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KSkgewotICAgICAgICAgICAgICAg
IHRva2VuID0gcmVzdWx0ID09IFN0cmluZ1VudGVybWluYXRlZCA/IFVOVEVSTUlOQVRFRF9TVFJJ
TkdfTElURVJBTF9FUlJPUlRPSyA6IElOVkFMSURfU1RSSU5HX0xJVEVSQUxfRVJST1JUT0s7Ci0g
ICAgICAgICAgICAgICAgZ290byByZXR1cm5FcnJvcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIFN0cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IHBhcnNlU3Ry
aW5nPHRydWU+KHRva2VuRGF0YSwgc3RyaWN0TW9kZSk7Ci0gICAgICAgICAgICBpZiAoVU5MSUtF
TFkocmVzdWx0ICE9IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkpIHsKLSAgICAgICAgICAgICAg
ICB0b2tlbiA9IHJlc3VsdCA9PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfU1RS
SU5HX0xJVEVSQUxfRVJST1JUT0sgOiBJTlZBTElEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LOwot
ICAgICAgICAgICAgICAgIGdvdG8gcmV0dXJuRXJyb3I7Ci0gICAgICAgICAgICB9CisgICAgY2Fz
ZSBDaGFyYWN0ZXJRdW90ZTogeworICAgICAgICBTdHJpbmdQYXJzZVJlc3VsdCByZXN1bHQgPSBT
dHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAgICAgICAgaWYgKGxleGVyRmxhZ3MgJiBMZXhlckZsYWdz
RG9udEJ1aWxkU3RyaW5ncykKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlU3RyaW5nPGZhbHNl
Pih0b2tlbkRhdGEsIHN0cmljdE1vZGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1
bHQgPSBwYXJzZVN0cmluZzx0cnVlPih0b2tlbkRhdGEsIHN0cmljdE1vZGUpOworCisgICAgICAg
IGlmIChVTkxJS0VMWShyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KSkgeworICAg
ICAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5hdGVkID8gVU5URVJNSU5B
VEVEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LIDogSU5WQUxJRF9TVFJJTkdfTElURVJBTF9FUlJP
UlRPSzsKKyAgICAgICAgICAgIGdvdG8gcmV0dXJuRXJyb3I7CiAgICAgICAgIH0KICAgICAgICAg
c2hpZnQoKTsKICAgICAgICAgdG9rZW4gPSBTVFJJTkc7CiAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBjYXNlIENo
YXJhY3RlckJhY2tRdW90ZTogeworICAgICAgICAvLyBTa2lwIGJhY2txdW90ZS4KKyAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gU3RyaW5nQ2Fubm90
QmVQYXJzZWQ7CisgICAgICAgIGlmIChsZXhlckZsYWdzICYgTGV4ZXJGbGFnc0RvbnRCdWlsZFN0
cmluZ3MpCisgICAgICAgICAgICByZXN1bHQgPSBwYXJzZVRlbXBsYXRlTGl0ZXJhbDxmYWxzZT4o
dG9rZW5EYXRhKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VUZW1w
bGF0ZUxpdGVyYWw8dHJ1ZT4odG9rZW5EYXRhKTsKKworICAgICAgICBpZiAoVU5MSUtFTFkocmVz
dWx0ICE9IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkpIHsKKyAgICAgICAgICAgIHRva2VuID0g
cmVzdWx0ID09IFN0cmluZ1VudGVybWluYXRlZCA/IFVOVEVSTUlOQVRFRF9URU1QTEFURV9MSVRF
UkFMX0VSUk9SVE9LIDogSU5WQUxJRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LOworICAgICAg
ICAgICAgZ290byByZXR1cm5FcnJvcjsKKyAgICAgICAgfQorICAgICAgICB0b2tlbiA9IFRFTVBM
QVRFOworICAgICAgICBicmVhazsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgY2FzZSBDaGFyYWN0
ZXJJZGVudGlmaWVyU3RhcnQ6CiAgICAgICAgIEFTU0VSVChpc0lkZW50U3RhcnQobV9jdXJyZW50
KSk7CiAgICAgICAgIEZBTExUSFJPVUdIOwpAQCAtMjAzNSw2ICsyMjU2LDQwIEBAIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIGJvb2wgY2hhcmFjdGVyUmVxdWlyZXNQYXJzZVN0cmluZ1Nsb3dDYXNlKFVD
aGFyIGNoYXJhY3RlcikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShFUzZfVEVN
UExBVEVfTElURVJBTF9TWU5UQVgpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK0pTVG9rZW5UeXBl
IExleGVyPFQ+OjpzY2FuVHJhaWxpbmdUZW1wbGF0ZVN0cmluZyhKU1Rva2VuKiB0b2tlblJlY29y
ZCkKK3sKKyAgICBKU1Rva2VuRGF0YSogdG9rZW5EYXRhID0gJnRva2VuUmVjb3JkLT5tX2RhdGE7
CisgICAgSlNUb2tlbkxvY2F0aW9uKiB0b2tlbkxvY2F0aW9uID0gJnRva2VuUmVjb3JkLT5tX2xv
Y2F0aW9uOworICAgIEFTU0VSVCghbV9lcnJvcik7CisgICAgQVNTRVJUKG1fYnVmZmVyMTYuaXNF
bXB0eSgpKTsKKworICAgIC8vIExlYWRpbmcgY2xvc2luZyBicmFjZSB9IGlzIGFscmVhZHkgc2hp
ZnRlZCBpbiB0aGUgcHJldmlvdXMgdG9rZW4gc2Nhbi4KKyAgICAvLyBTbyBpbiB0aGlzIHJlLXNj
YW4gcGhhc2UsIHNoaWZ0KCkgaXMgbm90IG5lZWRlZCBoZXJlLgorICAgIFN0cmluZ1BhcnNlUmVz
dWx0IHJlc3VsdCA9IHBhcnNlVGVtcGxhdGVMaXRlcmFsPHRydWU+KHRva2VuRGF0YSk7CisgICAg
SlNUb2tlblR5cGUgdG9rZW4gPSBFUlJPUlRPSzsKKyAgICBpZiAoVU5MSUtFTFkocmVzdWx0ICE9
IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkpIHsKKyAgICAgICAgdG9rZW4gPSByZXN1bHQgPT0g
U3RyaW5nVW50ZXJtaW5hdGVkID8gVU5URVJNSU5BVEVEX1RFTVBMQVRFX0xJVEVSQUxfRVJST1JU
T0sgOiBJTlZBTElEX1RFTVBMQVRFX0xJVEVSQUxfRVJST1JUT0s7CisgICAgICAgIG1fZXJyb3Ig
PSB0cnVlOworICAgIH0gZWxzZSB7CisgICAgICAgIHRva2VuID0gVEVNUExBVEU7CisgICAgICAg
IG1fbGFzdFRva2VuID0gdG9rZW47CisgICAgfQorCisgICAgLy8gU2luY2UgVGVtcGxhdGVTdHJp
bmcgYWx3YXlzIGVuZHMgd2l0aCBgIG9yIH0sIG1fYXRMaW5lU3RhcnQgYWx3YXlzIGJlY29tZXMg
ZmFsc2UuCisgICAgbV9hdExpbmVTdGFydCA9IGZhbHNlOworCisgICAgLy8gQWRqdXN0IGN1cnJl
bnQgdG9rZW5Mb2NhdGlvbiBkYXRhIGZvciBUZW1wbGF0ZVN0cmluZy4KKyAgICB0b2tlbkxvY2F0
aW9uLT5saW5lID0gbV9saW5lTnVtYmVyOworICAgIHRva2VuTG9jYXRpb24tPmVuZE9mZnNldCA9
IGN1cnJlbnRPZmZzZXQoKTsKKyAgICB0b2tlbkxvY2F0aW9uLT5saW5lU3RhcnRPZmZzZXQgPSBj
dXJyZW50TGluZVN0YXJ0T2Zmc2V0KCk7CisgICAgQVNTRVJUKHRva2VuTG9jYXRpb24tPmVuZE9m
ZnNldCA+PSB0b2tlbkxvY2F0aW9uLT5saW5lU3RhcnRPZmZzZXQpOworICAgIHRva2VuUmVjb3Jk
LT5tX2VuZFBvc2l0aW9uID0gY3VycmVudFBvc2l0aW9uKCk7CisgICAgcmV0dXJuIHRva2VuOwor
fQorI2VuZGlmCisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogdm9pZCBMZXhlcjxUPjo6Y2xlYXIo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCmluZGV4IDJkZjUyMTM5OTU3ODIw
MDc4NWExNjZlMjJhNzMyNzVlMGVhNjMwNGQuLmIzMzQwYzg3ZjVmNWI3Njc1NzdhODYzYmU5NmNi
ZTA4MjFmZjM3NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKQEAgLTk5LDYg
Kzk5LDkgQEAgY2xhc3MgTGV4ZXIgewogICAgIGludCBsYXN0TGluZU51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fbGFzdExpbmVOdW1iZXI7IH0KICAgICBib29sIHByZXZUZXJtaW5hdG9yKCkgY29u
c3QgeyByZXR1cm4gbV90ZXJtaW5hdG9yOyB9CiAgICAgYm9vbCBzY2FuUmVnRXhwKGNvbnN0IElk
ZW50aWZpZXIqJiBwYXR0ZXJuLCBjb25zdCBJZGVudGlmaWVyKiYgZmxhZ3MsIFVDaGFyIHBhdHRl
cm5QcmVmaXggPSAwKTsKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQor
ICAgIEpTVG9rZW5UeXBlIHNjYW5UcmFpbGluZ1RlbXBsYXRlU3RyaW5nKEpTVG9rZW4qKTsKKyNl
bmRpZgogICAgIGJvb2wgc2tpcFJlZ0V4cCgpOwogCiAgICAgLy8gRnVuY3Rpb25zIGZvciB1c2Ug
YWZ0ZXIgcGFyc2luZy4KQEAgLTIwMiw2ICsyMDUsMTUgQEAgY2xhc3MgTGV4ZXIgewogICAgIH07
CiAgICAgdGVtcGxhdGUgPGJvb2wgc2hvdWxkQnVpbGRTdHJpbmdzPiBBTFdBWVNfSU5MSU5FIFN0
cmluZ1BhcnNlUmVzdWx0IHBhcnNlU3RyaW5nKEpTVG9rZW5EYXRhKiwgYm9vbCBzdHJpY3RNb2Rl
KTsKICAgICB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IE5FVkVSX0lOTElORSBT
dHJpbmdQYXJzZVJlc3VsdCBwYXJzZVN0cmluZ1Nsb3dDYXNlKEpTVG9rZW5EYXRhKiwgYm9vbCBz
dHJpY3RNb2RlKTsKKworICAgIGVudW0gY2xhc3MgRXNjYXBlUGFyc2VNb2RlIHsKKyAgICAgICAg
VGVtcGxhdGUsCisgICAgICAgIFN0cmluZworICAgIH07CisgICAgdGVtcGxhdGUgPGJvb2wgc2hv
dWxkQnVpbGRTdHJpbmdzPiBBTFdBWVNfSU5MSU5FIFN0cmluZ1BhcnNlUmVzdWx0IHBhcnNlQ29t
cGxleEVzY2FwZShFc2NhcGVQYXJzZU1vZGUsIGJvb2wgc3RyaWN0TW9kZSwgVCBzdHJpbmdRdW90
ZUNoYXJhY3Rlcik7CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAg
ICB0ZW1wbGF0ZSA8Ym9vbCBzaG91bGRCdWlsZFN0cmluZ3M+IEFMV0FZU19JTkxJTkUgU3RyaW5n
UGFyc2VSZXN1bHQgcGFyc2VUZW1wbGF0ZUxpdGVyYWwoSlNUb2tlbkRhdGEqKTsKKyNlbmRpZgog
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwYXJzZUhleChkb3VibGUmIHJldHVyblZhbHVlKTsKICAg
ICBBTFdBWVNfSU5MSU5FIGJvb2wgcGFyc2VCaW5hcnkoZG91YmxlJiByZXR1cm5WYWx1ZSk7CiAg
ICAgQUxXQVlTX0lOTElORSBib29sIHBhcnNlT2N0YWwoZG91YmxlJiByZXR1cm5WYWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmluZGV4
IDNiZGFiNjFhNTIyZTBjZTJjMzM5N2Y4MGY0ZmExODRkMWQ0MjE2MGUuLjY2OGNiYzMwMGRhNGZm
MzI4NmFhNjM0MjJjZTI1ODdiMWNhZDg3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC0xMDAsNiArMTAwLDU1IEBACiAgICAgewog
ICAgIH0KIAorI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgaW5s
aW5lIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9k
ZShFeHByZXNzaW9uTm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAgICAg
ICAgLCBtX25vZGUobm9kZSkKKyAgICB7CisgICAgfQorCisgICAgaW5saW5lIFRlbXBsYXRlRXhw
cmVzc2lvbkxpc3ROb2RlOjpUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZShUZW1wbGF0ZUV4cHJl
c3Npb25MaXN0Tm9kZSogcHJldiwgRXhwcmVzc2lvbk5vZGUqIG5vZGUpCisgICAgICAgIDogbV9u
ZXh0KG51bGxwdHIpCisgICAgICAgICwgbV9ub2RlKG5vZGUpCisgICAgeworICAgICAgICBwcmV2
LT5tX25leHQgPSB0aGlzOworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZVN0cmluZ05vZGU6
OlRlbXBsYXRlU3RyaW5nTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25z
dCBJZGVudGlmaWVyJiBjb29rZWQsIGNvbnN0IElkZW50aWZpZXImIHJhdykKKyAgICAgICAgOiBF
eHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBtX2Nvb2tlZChjb29rZWQpCisgICAg
ICAgICwgbV9yYXcocmF3KQorICAgIHsKKyAgICB9CisKKyAgICBpbmxpbmUgVGVtcGxhdGVTdHJp
bmdMaXN0Tm9kZTo6VGVtcGxhdGVTdHJpbmdMaXN0Tm9kZShUZW1wbGF0ZVN0cmluZ05vZGUqIG5v
ZGUpCisgICAgICAgIDogbV9uZXh0KG51bGxwdHIpCisgICAgICAgICwgbV9ub2RlKG5vZGUpCisg
ICAgeworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlOjpUZW1wbGF0
ZVN0cmluZ0xpc3ROb2RlKFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIHByZXYsIFRlbXBsYXRlU3Ry
aW5nTm9kZSogbm9kZSkKKyAgICAgICAgOiBtX25leHQobnVsbHB0cikKKyAgICAgICAgLCBtX25v
ZGUobm9kZSkKKyAgICB7CisgICAgICAgIHByZXYtPm1fbmV4dCA9IHRoaXM7CisgICAgfQorCisg
ICAgaW5saW5lIFRlbXBsYXRlTGl0ZXJhbE5vZGU6OlRlbXBsYXRlTGl0ZXJhbE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogdGVtcGxh
dGVTdHJpbmdzKQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAs
IG1fdGVtcGxhdGVTdHJpbmdzKHRlbXBsYXRlU3RyaW5ncykKKyAgICAgICAgLCBtX3RlbXBsYXRl
RXhwcmVzc2lvbnMobnVsbHB0cikKKyAgICB7CisgICAgfQorCisgICAgaW5saW5lIFRlbXBsYXRl
TGl0ZXJhbE5vZGU6OlRlbXBsYXRlTGl0ZXJhbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBs
b2NhdGlvbiwgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogdGVtcGxhdGVTdHJpbmdzLCBUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0Tm9kZSogdGVtcGxhdGVFeHByZXNzaW9ucykKKyAgICAgICAgOiBFeHBy
ZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBtX3RlbXBsYXRlU3RyaW5ncyh0ZW1wbGF0
ZVN0cmluZ3MpCisgICAgICAgICwgbV90ZW1wbGF0ZUV4cHJlc3Npb25zKHRlbXBsYXRlRXhwcmVz
c2lvbnMpCisgICAgeworICAgIH0KKyNlbmRpZgorCiAgICAgaW5saW5lIFJlZ0V4cE5vZGU6OlJl
Z0V4cE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmll
ciYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmllciYgZmxhZ3MpCiAgICAgICAgIDogRXhwcmVzc2lv
bk5vZGUobG9jYXRpb24pCiAgICAgICAgICwgbV9wYXR0ZXJuKHBhdHRlcm4pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggNmIzNzMyOWMwOWJmYzQyYmVjY2MzY2FhOTgzNTk3
YzM1NDAyYjZjOS4uYzYzN2EwMzA1MTM5YWQ0ODdjNTY2MzEwNTdmZThhMDk4NTIxODc5MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMjc0LDcgKzI3NCw3IEBACiAKICAg
ICAgICAgY29uc3QgSWRlbnRpZmllciYgbV92YWx1ZTsKICAgICB9OwotICAgIAorCiAgICAgY2xh
c3MgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgVGhyb3dh
YmxlRXhwcmVzc2lvbkRhdGEoKQpAQCAtNDI3LDYgKzQyNyw2MCBAQAogICAgICAgICB1aW50MTZf
dCBtX3N1YmV4cHJlc3Npb25MaW5lU3RhcnRPZmZzZXQ7CiAgICAgfTsKIAorI2lmIEVOQUJMRShF
UzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgY2xhc3MgVGVtcGxhdGVFeHByZXNzaW9u
TGlzdE5vZGUgOiBwdWJsaWMgUGFyc2VyQXJlbmFGcmVlYWJsZSB7CisgICAgcHVibGljOgorICAg
ICAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZShFeHByZXNzaW9uTm9kZSopOworICAgICAg
ICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZShUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSos
IEV4cHJlc3Npb25Ob2RlKik7CisKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIHZhbHVlKCkgeyBy
ZXR1cm4gbV9ub2RlOyB9CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBuZXh0
KCkgeyByZXR1cm4gbV9uZXh0OyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBUZW1wbGF0ZUV4
cHJlc3Npb25MaXN0Tm9kZSogbV9uZXh0OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9ub2Rl
OworICAgIH07CisKKyAgICBjbGFzcyBUZW1wbGF0ZVN0cmluZ05vZGUgOiBwdWJsaWMgRXhwcmVz
c2lvbk5vZGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxhdGVTdHJpbmdOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImIGNvb2tlZCwgY29uc3QgSWRlbnRp
ZmllciYgcmF3KTsKKworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBjb29rZWQoKSB7IHJldHVy
biBtX2Nvb2tlZDsgfQorICAgICAgICBjb25zdCBJZGVudGlmaWVyJiByYXcoKSB7IHJldHVybiBt
X3JhdzsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwor
CisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fY29va2VkOworICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX3JhdzsKKyAgICB9OworCisgICAgY2xhc3MgVGVtcGxhdGVTdHJpbmdMaXN0Tm9k
ZSA6IHB1YmxpYyBQYXJzZXJBcmVuYUZyZWVhYmxlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFRl
bXBsYXRlU3RyaW5nTGlzdE5vZGUoVGVtcGxhdGVTdHJpbmdOb2RlKik7CisgICAgICAgIFRlbXBs
YXRlU3RyaW5nTGlzdE5vZGUoVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSosIFRlbXBsYXRlU3RyaW5n
Tm9kZSopOworCisgICAgICAgIFRlbXBsYXRlU3RyaW5nTm9kZSogdmFsdWUoKSB7IHJldHVybiBt
X25vZGU7IH0KKyAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogbmV4dCgpIHsgcmV0dXJu
IG1fbmV4dDsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9k
ZSogbV9uZXh0OworICAgICAgICBUZW1wbGF0ZVN0cmluZ05vZGUqIG1fbm9kZTsKKyAgICB9Owor
CisgICAgY2xhc3MgVGVtcGxhdGVMaXRlcmFsTm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7
CisgICAgcHVibGljOgorICAgICAgICBUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqKTsKKyAgICAgICAgVGVtcGxhdGVMaXRl
cmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiwg
VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIHZp
cnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiBt
X3RlbXBsYXRlU3RyaW5nczsKKyAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIG1f
dGVtcGxhdGVFeHByZXNzaW9uczsKKyAgICB9OworI2VuZGlmCisKICAgICBjbGFzcyBSZWdFeHBO
b2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRh
dGEgewogICAgIHB1YmxpYzoKICAgICAgICAgUmVnRXhwTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0ZXJuLCBjb25zdCBJZGVudGlmaWVyJiBmbGFncyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggMzJkMjUwY2E3Y2M1
M2Y0YmVhNjFmNjFiNmRhYmZlNjRiY2JjNjg0Ni4uOTljNTRhMWIxZTZkZTk0NmNiOWRiNTg3NTk3
OTMzNWM1MGQ3NGRjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApA
QCAtMjI1Niw2ICsyMjU2LDYzIEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaXNVbmFyeU9w
KEpTVG9rZW5UeXBlIHRva2VuKQogICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUFycmF5KGxvY2F0
aW9uLCBlbGVtZW50TGlzdCk7CiB9CiAKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxf
U1lOVEFYKQordGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KK3RlbXBsYXRlIDxjbGFzcyBU
cmVlQnVpbGRlcj4gdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlU3RyaW5nIFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZVRlbXBsYXRlU3RyaW5nKFRyZWVCdWlsZGVyJiBjb250ZXh0LCBib29s
IGlzVGVtcGxhdGVIZWFkLCBib29sJiBlbGVtZW50SXNUYWlsKQoreworICAgIGlmICghaXNUZW1w
bGF0ZUhlYWQpIHsKKyAgICAgICAgbWF0Y2hPckZhaWwoQ0xPU0VCUkFDRSwgIkV4cGVjdGVkIGEg
Y2xvc2luZyAnfScgZm9sbG93aW5nIGFuIGV4cHJlc3Npb24gaW4gdGVtcGxhdGUgbGl0ZXJhbCIp
OworICAgICAgICAvLyBSZS1zY2FuIHRoZSB0b2tlbiB0byByZWNvZ25pemUgaXQgYXMgVGVtcGxh
dGUgRWxlbWVudC4KKyAgICAgICAgbV90b2tlbi5tX3R5cGUgPSBtX2xleGVyLT5zY2FuVHJhaWxp
bmdUZW1wbGF0ZVN0cmluZygmbV90b2tlbik7CisgICAgfQorICAgIG1hdGNoT3JGYWlsKFRFTVBM
QVRFLCAiRXhwZWN0ZWQgYW4gdGVtcGxhdGUgZWxlbWVudCIpOworICAgIGNvbnN0IElkZW50aWZp
ZXIqIGNvb2tlZCA9IG1fdG9rZW4ubV9kYXRhLmNvb2tlZDsKKyAgICBjb25zdCBJZGVudGlmaWVy
KiByYXcgPSBtX3Rva2VuLm1fZGF0YS5yYXc7CisgICAgZWxlbWVudElzVGFpbCA9IG1fdG9rZW4u
bV9kYXRhLmlzVGFpbDsKKyAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24odG9rZW5Mb2NhdGlv
bigpKTsKKyAgICBuZXh0KCk7CisgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlVGVtcGxhdGVTdHJp
bmcobG9jYXRpb24sICpjb29rZWQsICpyYXcpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4
ZXJUeXBlPgordGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiB0eXBlbmFtZSBUcmVlQnVpbGRl
cjo6VGVtcGxhdGVMaXRlcmFsIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZVRlbXBsYXRlTGl0ZXJh
bChUcmVlQnVpbGRlciYgY29udGV4dCkKK3sKKyAgICBKU1Rva2VuTG9jYXRpb24gbG9jYXRpb24o
dG9rZW5Mb2NhdGlvbigpKTsKKyAgICBib29sIGVsZW1lbnRJc1RhaWwgPSBmYWxzZTsKKworICAg
IGF1dG8gaGVhZFRlbXBsYXRlU3RyaW5nID0gcGFyc2VUZW1wbGF0ZVN0cmluZyhjb250ZXh0LCB0
cnVlLCBlbGVtZW50SXNUYWlsKTsKKyAgICBmYWlsSWZGYWxzZShoZWFkVGVtcGxhdGVTdHJpbmcs
ICJDYW5ub3QgcGFyc2UgaGVhZCB0ZW1wbGF0ZSBlbGVtZW50Iik7CisKKyAgICB0eXBlbmFtZSBU
cmVlQnVpbGRlcjo6VGVtcGxhdGVTdHJpbmdMaXN0IHRlbXBsYXRlU3RyaW5nTGlzdCA9IGNvbnRl
eHQuY3JlYXRlVGVtcGxhdGVTdHJpbmdMaXN0KGhlYWRUZW1wbGF0ZVN0cmluZyk7CisgICAgdHlw
ZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlU3RyaW5nTGlzdCB0ZW1wbGF0ZVN0cmluZ1RhaWwg
PSB0ZW1wbGF0ZVN0cmluZ0xpc3Q7CisKKyAgICBpZiAoZWxlbWVudElzVGFpbCkKKyAgICAgICAg
cmV0dXJuIGNvbnRleHQuY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGxvY2F0aW9uLCB0ZW1wbGF0ZVN0
cmluZ0xpc3QpOworCisgICAgVHJlZUV4cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlRXhwcmVz
c2lvbihjb250ZXh0KTsKKyAgICBmYWlsSWZGYWxzZShleHByZXNzaW9uLCAiQ2Fubm90IHBhcnNl
IGV4cHJlc3Npb24gaW4gdGVtcGxhdGUgbGl0ZXJhbCIpOworCisgICAgdHlwZW5hbWUgVHJlZUJ1
aWxkZXI6OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3QgdGVtcGxhdGVFeHByZXNzaW9uTGlzdCA9IGNv
bnRleHQuY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChleHByZXNzaW9uKTsKKyAgICB0eXBl
bmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdCB0ZW1wbGF0ZUV4cHJlc3Np
b25UYWlsID0gdGVtcGxhdGVFeHByZXNzaW9uTGlzdDsKKworICAgIGF1dG8gdGVtcGxhdGVTdHJp
bmcgPSBwYXJzZVRlbXBsYXRlU3RyaW5nKGNvbnRleHQsIGZhbHNlLCBlbGVtZW50SXNUYWlsKTsK
KyAgICBmYWlsSWZGYWxzZSh0ZW1wbGF0ZVN0cmluZywgIkNhbm5vdCBwYXJzZSB0ZW1wbGF0ZSBl
bGVtZW50Iik7CisgICAgdGVtcGxhdGVTdHJpbmdUYWlsID0gY29udGV4dC5jcmVhdGVUZW1wbGF0
ZVN0cmluZ0xpc3QodGVtcGxhdGVTdHJpbmdUYWlsLCB0ZW1wbGF0ZVN0cmluZyk7CisKKyAgICB3
aGlsZSAoIWVsZW1lbnRJc1RhaWwpIHsKKyAgICAgICAgVHJlZUV4cHJlc3Npb24gZXhwcmVzc2lv
biA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICAgICAgZmFpbElmRmFsc2UoZXhwcmVz
c2lvbiwgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIGluIHRlbXBsYXRlIGxpdGVyYWwiKTsKKyAg
ICAgICAgdGVtcGxhdGVFeHByZXNzaW9uVGFpbCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFeHBy
ZXNzaW9uTGlzdCh0ZW1wbGF0ZUV4cHJlc3Npb25UYWlsLCBleHByZXNzaW9uKTsKKworICAgICAg
ICBhdXRvIHRlbXBsYXRlU3RyaW5nID0gcGFyc2VUZW1wbGF0ZVN0cmluZyhjb250ZXh0LCBmYWxz
ZSwgZWxlbWVudElzVGFpbCk7CisgICAgICAgIGZhaWxJZkZhbHNlKHRlbXBsYXRlU3RyaW5nLCAi
Q2Fubm90IHBhcnNlIHRlbXBsYXRlIGVsZW1lbnQiKTsKKyAgICAgICAgdGVtcGxhdGVTdHJpbmdU
YWlsID0gY29udGV4dC5jcmVhdGVUZW1wbGF0ZVN0cmluZ0xpc3QodGVtcGxhdGVTdHJpbmdUYWls
LCB0ZW1wbGF0ZVN0cmluZyk7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlVGVt
cGxhdGVMaXRlcmFsKGxvY2F0aW9uLCB0ZW1wbGF0ZVN0cmluZ0xpc3QsIHRlbXBsYXRlRXhwcmVz
c2lvbkxpc3QpOworfQorI2VuZGlmCisKIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+CiB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5
cGU+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKFRyZWVCdWlsZGVyJiBjb250ZXh0KQogewpAQCAt
MjM1Nyw2ICsyNDE0LDEwIEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaXNVbmFyeU9wKEpT
VG9rZW5UeXBlIHRva2VuKQogICAgICAgICB9CiAgICAgICAgIHJldHVybiByZTsKICAgICB9Cisj
aWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBjYXNlIFRFTVBMQVRF
OgorICAgICAgICByZXR1cm4gcGFyc2VUZW1wbGF0ZUxpdGVyYWwoY29udGV4dCk7CisjZW5kaWYK
ICAgICBkZWZhdWx0OgogICAgICAgICBmYWlsRHVlVG9VbmV4cGVjdGVkVG9rZW4oKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCAwZjI3MjhmODYyMWY4MDEw
YzQxMGJmNzk4NzYxOWJmMjNlNTBhZjhiLi5iZGU0YjBlZTEyODNlYzBhMWQzMzNmOWNlZjVjZGUw
ODNhMDlmNWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKQEAgLTc3Niw2
ICs3NzYsMTAgQEAgY2xhc3MgUGFyc2VyIHsKICNpZiBFTkFCTEUoRVM2X0NMQVNTX1NZTlRBWCkK
ICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElORSBUcmVlQ2xhc3NF
eHByZXNzaW9uIHBhcnNlQ2xhc3MoVHJlZUJ1aWxkZXImLCBGdW5jdGlvblJlcXVpcmVtZW50cywg
UGFyc2VyQ2xhc3NJbmZvPFRyZWVCdWlsZGVyPiYpOwogI2VuZGlmCisjaWYgRU5BQkxFKEVTNl9U
RU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IE5FVkVSX0lOTElORSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVTdHJpbmcgcGFyc2VU
ZW1wbGF0ZVN0cmluZyhUcmVlQnVpbGRlciYgY29udGV4dCwgYm9vbCBpc1RlbXBsYXRlSGVhZCwg
Ym9vbCYgZWxlbWVudElzVGFpbCk7CisgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBO
RVZFUl9JTkxJTkUgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlTGl0ZXJhbCBwYXJzZVRl
bXBsYXRlTGl0ZXJhbChUcmVlQnVpbGRlciYpOworI2VuZGlmCiAKICAgICBBTFdBWVNfSU5MSU5F
IGludCBpc0JpbmFyeU9wZXJhdG9yKEpTVG9rZW5UeXBlKTsKICAgICBib29sIGFsbG93QXV0b21h
dGljU2VtaWNvbG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlclRva2Vucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tl
bnMuaAppbmRleCA4MzI5ZjgyYTliMmZmOTE1ZDFmMjQxYzFmOGJmZmFkNDI0N2E1ZjBiLi4wMjZl
NGY4MGY0MzdkOGJmZTRhNjE5YzMwZDExZGM5ZmM2MWUyNjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKQEAgLTk2LDYgKzk2LDcgQEAgZW51bSBKU1Rv
a2VuVHlwZSB7CiAgICAgRE9VQkxFLAogICAgIElERU5ULAogICAgIFNUUklORywKKyAgICBURU1Q
TEFURSwKICAgICBTRU1JQ09MT04sCiAgICAgQ09MT04sCiAgICAgRE9ULApAQCAtMTYxLDcgKzE2
Miw5IEBAIGVudW0gSlNUb2tlblR5cGUgewogICAgIElOVkFMSURfU1RSSU5HX0xJVEVSQUxfRVJS
T1JUT0sgPSA5IHwgRXJyb3JUb2tlbkZsYWcsCiAgICAgSU5WQUxJRF9QUklWQVRFX05BTUVfRVJS
T1JUT0sgPSAxMCB8IEVycm9yVG9rZW5GbGFnLAogICAgIElOVkFMSURfSEVYX05VTUJFUl9FUlJP
UlRPSyA9IDExIHwgRXJyb3JUb2tlbkZsYWcsCi0gICAgSU5WQUxJRF9CSU5BUllfTlVNQkVSX0VS
Uk9SVE9LID0gMTIgfCBFcnJvclRva2VuRmxhZworICAgIElOVkFMSURfQklOQVJZX05VTUJFUl9F
UlJPUlRPSyA9IDEyIHwgRXJyb3JUb2tlbkZsYWcsCisgICAgVU5URVJNSU5BVEVEX1RFTVBMQVRF
X0xJVEVSQUxfRVJST1JUT0sgPSAxMyB8IEVycm9yVG9rZW5GbGFnIHwgVW50ZXJtaW5hdGVkRXJy
b3JUb2tlbkZsYWcsCisgICAgSU5WQUxJRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LID0gMTQg
fCBFcnJvclRva2VuRmxhZywKIH07CiAKIHN0cnVjdCBKU1RleHRQb3NpdGlvbiB7CkBAIC0xODks
NiArMTkyLDExIEBAIHN0cnVjdCBKU1RleHRQb3NpdGlvbiB7CiAgICAgfTsKICAgICBkb3VibGUg
ZG91YmxlVmFsdWU7CiAgICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQ7CisgICAgc3RydWN0IHsK
KyAgICAgICAgY29uc3QgSWRlbnRpZmllciogY29va2VkOworICAgICAgICBjb25zdCBJZGVudGlm
aWVyKiByYXc7CisgICAgICAgIGJvb2wgaXNUYWlsOworICAgIH07CiB9OwogCiBzdHJ1Y3QgSlNU
b2tlbkxvY2F0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVj
a2VyLmgKaW5kZXggOGU0ZjYxYjk0OTg5MGI5YmY1NDAyOWU5NjY2MWVlZjUzYTE3YjU4NC4uNTU0
ZTVkZjY0YTcyMWY0NDYyZDBkODlhYjAyM2FmZGQ3NTNjNTViZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTgxLDcgKzgxLDggQEAgY2xhc3Mg
U3ludGF4Q2hlY2tlciB7CiAgICAgICAgIEZ1bmN0aW9uQm9keVJlc3VsdCwgU3ByZWFkRXhwciwg
QXJndW1lbnRzUmVzdWx0LAogICAgICAgICBQcm9wZXJ0eUxpc3RSZXN1bHQsIEFyZ3VtZW50c0xp
c3RSZXN1bHQsIEVsZW1lbnRzTGlzdFJlc3VsdCwKICAgICAgICAgU3RhdGVtZW50UmVzdWx0LCBG
b3JtYWxQYXJhbWV0ZXJMaXN0UmVzdWx0LCBDbGF1c2VSZXN1bHQsCi0gICAgICAgIENsYXVzZUxp
c3RSZXN1bHQsIENvbW1hRXhwciwgRGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50CisgICAgICAgIENs
YXVzZUxpc3RSZXN1bHQsIENvbW1hRXhwciwgRGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50LAorICAg
ICAgICBUZW1wbGF0ZVN0cmluZ1Jlc3VsdCwgVGVtcGxhdGVTdHJpbmdMaXN0UmVzdWx0LCBUZW1w
bGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0LCBUZW1wbGF0ZUV4cHIKICAgICB9OwogICAgIHR5cGVk
ZWYgaW50IEV4cHJlc3Npb25UeXBlOwogCkBAIC0xMTEsNiArMTEyLDEyIEBAIGNsYXNzIFN5bnRh
eENoZWNrZXIgewogICAgIHR5cGVkZWYgaW50IFByb3BlcnR5TGlzdDsKICAgICB0eXBlZGVmIGlu
dCBFbGVtZW50TGlzdDsKICAgICB0eXBlZGVmIGludCBBcmd1bWVudHNMaXN0OworI2lmIEVOQUJM
RShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgdHlwZWRlZiBpbnQgVGVtcGxhdGVF
eHByZXNzaW9uTGlzdDsKKyAgICB0eXBlZGVmIGludCBUZW1wbGF0ZVN0cmluZzsKKyAgICB0eXBl
ZGVmIGludCBUZW1wbGF0ZVN0cmluZ0xpc3Q7CisgICAgdHlwZWRlZiBpbnQgVGVtcGxhdGVMaXRl
cmFsOworI2VuZGlmCiAgICAgdHlwZWRlZiBpbnQgRm9ybWFsUGFyYW1ldGVyTGlzdDsKICAgICB0
eXBlZGVmIGludCBGdW5jdGlvbkJvZHk7CiAjaWYgRU5BQkxFKEVTNl9DTEFTU19TWU5UQVgpCkBA
IC0xNzMsNiArMTgwLDE2IEBAIGNsYXNzIFN5bnRheENoZWNrZXIgewogICAgIGludCBjcmVhdGVB
cmd1bWVudHMoKSB7IHJldHVybiBBcmd1bWVudHNSZXN1bHQ7IH0KICAgICBpbnQgY3JlYXRlQXJn
dW1lbnRzKGludCkgeyByZXR1cm4gQXJndW1lbnRzUmVzdWx0OyB9CiAgICAgRXhwcmVzc2lvblR5
cGUgY3JlYXRlU3ByZWFkRXhwcmVzc2lvbihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uVHlwZSwgaW50LCBpbnQsIGludCkgeyByZXR1cm4gU3ByZWFkRXhwcjsgfQorI2lmIEVOQUJM
RShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgVGVtcGxhdGVTdHJpbmcgY3JlYXRl
VGVtcGxhdGVTdHJpbmcoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYs
IGNvbnN0IElkZW50aWZpZXImKSB7IHJldHVybiBUZW1wbGF0ZVN0cmluZ1Jlc3VsdDsgfQorICAg
IFRlbXBsYXRlU3RyaW5nTGlzdCBjcmVhdGVUZW1wbGF0ZVN0cmluZ0xpc3QoVGVtcGxhdGVTdHJp
bmcpIHsgcmV0dXJuIFRlbXBsYXRlU3RyaW5nTGlzdFJlc3VsdDsgfQorICAgIFRlbXBsYXRlU3Ry
aW5nTGlzdCBjcmVhdGVUZW1wbGF0ZVN0cmluZ0xpc3QoVGVtcGxhdGVTdHJpbmdMaXN0LCBUZW1w
bGF0ZVN0cmluZykgeyByZXR1cm4gVGVtcGxhdGVTdHJpbmdMaXN0UmVzdWx0OyB9CisgICAgVGVt
cGxhdGVFeHByZXNzaW9uTGlzdCBjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KEV4cHJlc3Np
b24pIHsgcmV0dXJuIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3RSZXN1bHQ7IH0KKyAgICBUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0IGNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QoVGVtcGxhdGVFeHBy
ZXNzaW9uTGlzdCwgRXhwcmVzc2lvbikgeyByZXR1cm4gVGVtcGxhdGVFeHByZXNzaW9uTGlzdFJl
c3VsdDsgfQorICAgIFRlbXBsYXRlTGl0ZXJhbCBjcmVhdGVUZW1wbGF0ZUxpdGVyYWwoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgVGVtcGxhdGVTdHJpbmdMaXN0KSB7IHJldHVybiBUZW1wbGF0ZUV4
cHI7IH0KKyAgICBUZW1wbGF0ZUxpdGVyYWwgY3JlYXRlVGVtcGxhdGVMaXRlcmFsKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIFRlbXBsYXRlU3RyaW5nTGlzdCwgVGVtcGxhdGVFeHByZXNzaW9uTGlz
dCkgeyByZXR1cm4gVGVtcGxhdGVFeHByOyB9CisjZW5kaWYKKwogICAgIGludCBjcmVhdGVBcmd1
bWVudHNMaXN0KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCkgeyByZXR1cm4gQXJndW1lbnRz
TGlzdFJlc3VsdDsgfQogICAgIGludCBjcmVhdGVBcmd1bWVudHNMaXN0KGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIGludCwgaW50KSB7IHJldHVybiBBcmd1bWVudHNMaXN0UmVzdWx0OyB9CiAgICAg
UHJvcGVydHkgY3JlYXRlUHJvcGVydHkoY29uc3QgSWRlbnRpZmllciogbmFtZSwgaW50LCBQcm9w
ZXJ0eU5vZGU6OlR5cGUgdHlwZSwgUHJvcGVydHlOb2RlOjpQdXRUeXBlLCBib29sIGNvbXBsZXRl
LCBTdXBlckJpbmRpbmcgPSBTdXBlckJpbmRpbmc6Ok5vdE5lZWRlZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4IGI4ZmExYWJm
ODAwNmUyYWY4MzkzMmJjODk3MGU4MmRlYWYxZDY5NDguLjAwOWIzNTAwYmE0MmFiMDg4MzcyMmRk
Nzg4OWM2Mjg2MTJmZTlhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtMzM3LDYgKzMzNywxMiBAQCBzdGF0aWMgQ29tbW9u
U2xvd1BhdGhzOjpBcml0eUNoZWNrRGF0YSogc2V0dXBBcml0eUNoZWNrRGF0YShWTSYgdm0sIGlu
dCBzbG90c1RvQQogICAgIFJFVFVSTihqc051bWJlcihPUF9DKDIpLmpzVmFsdWUoKS50b051bWJl
cihleGVjKSkpOwogfQogCitTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfdG9fc3RyaW5nKQorewor
ICAgIEJFR0lOKCk7CisgICAgUkVUVVJOKE9QX0MoMikuanNWYWx1ZSgpLnRvU3RyaW5nKGV4ZWMp
KTsKK30KKwogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX25lZ2F0ZSkKIHsKICAgICBCRUdJTigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaApp
bmRleCAwZjY3ZTYzMmRlZGQxYjk0OTlmMTQwMTFjY2VkOTIwMTJmMDQwMTkyLi40ZDhlM2ZjOGUz
NzBmMWVhOTAxMTJlNGJlY2E0ZTg0M2VlOWQ0NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaApAQCAtMjAxLDYgKzIwMSw3IEBAIGlubGlu
ZSB2b2lkIGRlY29kZVJlc3VsdChTbG93UGF0aFJldHVyblR5cGUgcmVzdWx0LCB2b2lkKiYgYSwg
dm9pZComIGIpCiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luYyk7CiBTTE9XX1BB
VEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2RlYyk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX3RvX251bWJlcik7CitTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3RvX3N0
cmluZyk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25lZ2F0ZSk7CiBTTE9XX1BB
VEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2FkZCk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX211bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3RlbXBsYXRlLWxpdGVyYWwtbGluZS10ZXJtaW5hdG9ycy5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1saW5lLXRlcm1pbmF0b3JzLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlkNTA0YmVmYmU5ZDE0NjNmYTZmYzBjZjlkOTNmYTJjMWU3NTRkZDcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBs
YXRlLWxpdGVyYWwtbGluZS10ZXJtaW5hdG9ycy5qcwpAQCAtMCwwICsxLDU2IEBACitmdW5jdGlv
biB0ZXN0KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgdmFsdWU6ICIgKyBhY3R1YWwpOworfQorCitm
dW5jdGlvbiB0ZXN0RXZhbChzY3JpcHQsIGV4cGVjdGVkKSB7CisgICAgdGVzdChldmFsKHNjcmlw
dCksIGV4cGVjdGVkKTsKK30KKworZnVuY3Rpb24gdGVzdEV2YWxMaW5lTnVtYmVyKHNjcmlwdCwg
ZXhwZWN0ZWQsIGxpbmVOdW0pIHsKKyAgICB0ZXN0RXZhbChzY3JpcHQsIGV4cGVjdGVkKTsKKwor
ICAgIHZhciBlcnJvciA9IG51bGw7CisgICAgdmFyIGFjdHVhbExpbmU7CisgICAgdHJ5IHsKKyAg
ICAgICAgZXZhbChzY3JpcHQgKyAnO3Rocm93IG5ldyBFcnJvcigibGluZSIpOycpOworICAgIH0g
Y2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGFjdHVhbExpbmUgPSBlcnJvci5saW5lOworICAgIH0K
KyAgICB0ZXN0KGFjdHVhbExpbmUsIGxpbmVOdW0pOworfQorCit0ZXN0KGBIZWxsb2AsICJIZWxs
byIpOwordGVzdChgSGVsbG8gV29ybGRgLCAiSGVsbG8gV29ybGQiKTsKK3Rlc3QoYAorYCwgIlxu
Iik7Cit0ZXN0KGBIZWxsbworV29ybGRgLCAiSGVsbG9cbldvcmxkIik7CisKK3Rlc3RFdmFsTGlu
ZU51bWJlcigiYEhlbGxvIFdvcmxkYCIsICJIZWxsbyBXb3JsZCIsIDEpOworCit0ZXN0RXZhbExp
bmVOdW1iZXIoImBIZWxsb1xyV29ybGRgIiwgIkhlbGxvXG5Xb3JsZCIsIDIpOwordGVzdEV2YWxM
aW5lTnVtYmVyKCJgSGVsbG9cbldvcmxkYCIsICJIZWxsb1xuV29ybGQiLCAyKTsKKwordGVzdEV2
YWxMaW5lTnVtYmVyKCJgSGVsbG9cclxyV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7Cit0
ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xyXG5Xb3JsZGAiLCAiSGVsbG9cbldvcmxkIiwgMik7
Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuXG5Xb3JsZGAiLCAiSGVsbG9cblxuV29ybGQi
LCAzKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5ccldvcmxkYCIsICJIZWxsb1xuXG5X
b3JsZCIsIDIpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xuXHJcbldvcmxkYCIsICJI
ZWxsb1xuXG5Xb3JsZCIsIDMpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cclxuXHJXb3Js
ZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5c
blxuV29ybGRgIiwgIkhlbGxvXG5cblxuV29ybGQiLCA0KTsKKwordGVzdEV2YWxMaW5lTnVtYmVy
KCJgSGVsbG9cblxyXG5ccldvcmxkYCIsICJIZWxsb1xuXG5cbldvcmxkIiwgMyk7Cit0ZXN0RXZh
bExpbmVOdW1iZXIoImBIZWxsb1xuXHJcblxuV29ybGRgIiwgIkhlbGxvXG5cblxuV29ybGQiLCA0
KTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXHJcblxuXG5Xb3JsZGAiLCAiSGVsbG9cblxu
XG5Xb3JsZCIsIDQpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xcXG5cclxyV29ybGRg
IiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xcXHJc
blxuXG5Xb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCA0KTsKK3Rlc3RFdmFsTGluZU51bWJlcigi
YEhlbGxvXFxcblxyXG5cbldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDQpOwordGVzdEV2YWxM
aW5lTnVtYmVyKCJgSGVsbG9cXFxuXHJcclxuV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMyk7
CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYFx1MjAyOGAiLCAiXHUyMDI4IiwgMik7Cit0ZXN0RXZh
bExpbmVOdW1iZXIoImBcdTIwMjlgIiwgIlx1MjAyOSIsIDIpOwordGVzdEV2YWxMaW5lTnVtYmVy
KCJgXFx1MjAyOGAiLCAiXHUyMDI4IiwgMSk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBcXHUyMDI5
YCIsICJcdTIwMjkiLCAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1zeW50YXguanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwtc3ludGF4LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIw
NzljOTdlODgyM2QwOTgxZDJhNWQwZTAxMmZmMzkzM2FkN2VlMGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwtc3lu
dGF4LmpzCkBAIC0wLDAgKzEsNjcgQEAKKworZnVuY3Rpb24gdGVzdFN5bnRheChzY3JpcHQpIHsK
KyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsK
KyAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpCisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworICAgIH0KK30K
KworZnVuY3Rpb24gdGVzdFN5bnRheEVycm9yKHNjcmlwdCwgbWVzc2FnZSkgeworICAgIHZhciBl
cnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHN5bnRheCBlcnJvciBub3QgdGhyb3duIik7
CisKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gbWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJCYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKK30KKwordGVzdFN5bnRheCgi
YEhlbGxvYCIpOwordGVzdFN5bnRheCgiKGBIZWxsb2ApIik7Cit0ZXN0U3ludGF4KCIoYEhlbGxv
YCkgKyA0MiIpOwordGVzdFN5bnRheCgiYFxuSGVsbG9cbldvcmxkYCIpOwordGVzdFN5bnRheCgi
YFxuSGVsbG9cbiR7V29ybGR9YCIpOwordGVzdFN5bnRheCgiYCR7V29ybGR9YCIpOwordGVzdFN5
bnRheCgiYCR7V29ybGR9IEhlbGxvYCIpOwordGVzdFN5bnRheCgiYCQge1dvcmxkfSBIZWxsb2Ai
KTsKK3Rlc3RTeW50YXgoImBcXHVGRUZGdGVzdGAiKTsKK3Rlc3RTeW50YXgoImBcclxuYCIpOwor
dGVzdFN5bnRheCgiYFxcclxcbmAiKTsKK3Rlc3RTeW50YXgoImBcbmAiKTsKK3Rlc3RTeW50YXgo
ImBcXG5gIik7Cit0ZXN0U3ludGF4KCJgXHUyMDI4YCIpOwordGVzdFN5bnRheCgiYFxcdTIwMjhg
Iik7Cit0ZXN0U3ludGF4KCJgXHUyMDI5YCIpOwordGVzdFN5bnRheCgiYFxcdTIwMjlgIik7Cit0
ZXN0U3ludGF4KCJgXFwwYCIpOwordGVzdFN5bnRheCgiYFwwYCIpOwordGVzdFN5bnRheCgiYFxc
eDdmYCIpOwordGVzdFN5bnRheCgiKGBIZWxsb2ApICsgNDIiKTsKK3Rlc3RTeW50YXgoImBcXFxu
YCIpOwordGVzdFN5bnRheCgiYFxcXHJcbmAiKTsKK3Rlc3RTeW50YXgoImBcXFxyYCIpOworCit0
ZXN0U3ludGF4RXJyb3IoImBIZWxsbyIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBFT0YiKTsK
K3Rlc3RTeW50YXhFcnJvcigiYEhlbGxvJHt9IiwgIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRv
a2VuICd9JyIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8ke2V4cHJ9IiwgIlN5bnRheEVycm9y
OiBVbmV4cGVjdGVkIEVPRiIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8ke2V4cHJgIiwgIlN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIEVPRiIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8gZXhw
ciR7YCIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBFT0YiKTsKK3Rlc3RTeW50YXhFcnJvcigi
YEhlbGxvICR7fWAiLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ30nIik7Cit0ZXN0
U3ludGF4RXJyb3IoImBcXDA3YCIsICJTeW50YXhFcnJvcjogVGhlIG9ubHkgdmFsaWQgbnVtZXJp
YyBlc2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1xcMCciKTsKK2ZvciAodmFyIGkgPSAxOyBpIDwg
NzsgKytpKQorICAgIHRlc3RTeW50YXhFcnJvcigiYFxcIiArIGkgKyAiYCIsICJTeW50YXhFcnJv
cjogVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1xcMCci
KTsKKy8vIFw4IGFuZCBcOSBhcmUgbm90IGFsbG93ZWQuCitmb3IgKHZhciBpID0gODsgaSA8IDk7
ICsraSkKKyAgICB0ZXN0U3ludGF4RXJyb3IoImBcXCIgKyBpICsgImAiLCAiU3ludGF4RXJyb3I6
IFRoZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmljdCBtb2RlIGlzICdcXDAnIik7
Cit0ZXN0U3ludGF4RXJyb3IoImBcXHg3YCIsICJTeW50YXhFcnJvcjogXFx4IGNhbiBvbmx5IGJl
IGZvbGxvd2VkIGJ5IGEgaGV4IGNoYXJhY3RlciBzZXF1ZW5jZSIpOwordGVzdFN5bnRheEVycm9y
KCJgXFx4YCIsICJTeW50YXhFcnJvcjogXFx4IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgaGV4
IGNoYXJhY3RlciBzZXF1ZW5jZSIpOwordGVzdFN5bnRheEVycm9yKCJgXFx1YCIsICJTeW50YXhF
cnJvcjogXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgVW5pY29kZSBjaGFyYWN0ZXIgc2Vx
dWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxcdTJgIiwgIlN5bnRheEVycm9yOiBcXHUgY2Fu
IG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIpOwordGVz
dFN5bnRheEVycm9yKCJgXFx1MjBgIiwgIlN5bnRheEVycm9yOiBcXHUgY2FuIG9ubHkgYmUgZm9s
bG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIpOwordGVzdFN5bnRheEVycm9y
KCJgXFx1MjAyYCIsICJTeW50YXhFcnJvcjogXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEg
VW5pY29kZSBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjY0
MjQwYWQ4ZjcwYmIyYjU4NTk3MzFkMWNjNmM2NmVkMDVjOWM0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLmpzCkBA
IC0wLDAgKzEsMTQyIEBACitmdW5jdGlvbiB0ZXN0KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBp
ZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgdmFs
dWU6ICIgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiB0ZXN0RXZhbChzY3JpcHQsIGV4cGVjdGVk
KSB7CisgICAgdGVzdChldmFsKHNjcmlwdCksIGV4cGVjdGVkKTsKK30KKworZnVuY3Rpb24gdGVz
dEVtYmVkZGVkKHZhbHVlLCBleHBlY3RlZCkgeworICAgIHZhciB0ZW1wbGF0ZSA9IGBIZWxsbyAk
e3ZhbHVlfSBXb3JsZGA7CisgICAgdGVzdCh0ZW1wbGF0ZSwgZXhwZWN0ZWQpOworfQorCit0ZXN0
KGBIZWxsbyBXb3JsZGAsICJIZWxsbyBXb3JsZCIpOwordGVzdChgSGVsbG8KKyAgICAgICAgV29y
bGRgLCAiSGVsbG9cbiAgICAgICAgV29ybGQiKTsKKwordGVzdChgXHVGRUZGYCwgIlx1RkVGRiIp
OwordGVzdEV2YWwoImBcdUZFRkZgIiwgIlx1RkVGRiIpOworCit0ZXN0KGBceDIwYCwgIlx4MjAi
KTsKK3Rlc3QoYFx4MjAyMGAsICJceDIwMjAiKTsKKworZm9yICh2YXIgY2ggb2YgWyAnXCcnLCAn
IicsICdcXCcsICdiJywgJ2YnLCAnbicsICdyJywgJ3QnLCAndicgXSkKKyAgICB0ZXN0RXZhbCgi
YFxcIiArIGNoICsgImAiLCBldmFsKCInXFwiICsgY2ggKyAiJyIpKTsKKwordGVzdChgXAorSGVs
bG8gV29ybGRgLCAiSGVsbG8gV29ybGQiKTsKKwordGVzdChgXAorCitIZWxsbyBXb3JsZGAsICJc
bkhlbGxvIFdvcmxkIik7CisKK3Rlc3QoYFx1MjAyOFx1MjAyOVxyXG5gLCAiXHUyMDI4XHUyMDI5
XHJcbiIpOwordGVzdChgXHUyMDI4XHUyMDI5XG5cclxuYCwgIlx1MjAyOFx1MjAyOVxuXHJcbiIp
OwordGVzdChgXHUyMDI4MjAwYCwgIlx1MjAyODIwMCIpOworCit0ZXN0RW1iZWRkZWQoNDIsICJI
ZWxsbyA0MiBXb3JsZCIpOwordGVzdEVtYmVkZGVkKCJJU1VDQSIsICJIZWxsbyBJU1VDQSBXb3Js
ZCIpOwordGVzdEVtYmVkZGVkKG51bGwsICJIZWxsbyBudWxsIFdvcmxkIik7Cit0ZXN0RW1iZWRk
ZWQodW5kZWZpbmVkLCAiSGVsbG8gdW5kZWZpbmVkIFdvcmxkIik7Cit0ZXN0RW1iZWRkZWQoe30s
ICJIZWxsbyBbb2JqZWN0IE9iamVjdF0gV29ybGQiKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2
YXIgb2JqZWN0ID0geworICAgICAgICBuYW1lOiAiQ29jb2EiLAorICAgIH07CisgICAgdmFyIGFy
cmF5ID0gWworICAgICAgICAiQ2FwcHVjY2lubyIKKyAgICBdCisgICAgdGVzdChgSGVsbG8gJHtv
YmplY3QubmFtZX0gYW5kICR7YXJyYXlbMF19IDpEYCwgIkhlbGxvIENvY29hIGFuZCBDYXBwdWNj
aW5vIDpEIik7Cit9KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIGZ1bmN0aW9uIG9rKCkgewor
ICAgICAgICByZXR1cm4gIkNvY29hIjsKKyAgICB9CisgICAgdGVzdChgSGVsbG8gJHsgb2soKSB9
YCwgIkhlbGxvIENvY29hIik7Cit9KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZhciBvYmpl
Y3QgPSB7CisgICAgICAgIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuICdDb2NvYSc7
CisgICAgICAgIH0KKyAgICB9OworICAgIHRlc3QoYEhlbGxvICR7b2JqZWN0fSA6RGAsICJIZWxs
byBDb2NvYSA6RCIpOworfSgpKTsKKworLy8gRXhjZXB0aW9ucworCisoZnVuY3Rpb24gKCkgewor
ICAgIGZ1bmN0aW9uIGdlbihudW0pIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHRv
U3RyaW5nKCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihudW0pOworICAgICAg
ICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIHZhciBlcnJvciA9IG51bGw7CisgICAg
dHJ5IHsKKyAgICAgICAgdmFyIHRlbXBsYXRlID0gYCR7Z2VuKDApfSAke2dlbigxKX0gJHtnZW4o
Mil9YDsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAg
aWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBlcnJvciB0aHJvd24nKTsK
KyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gJ0Vycm9yOiAwJykKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJiYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKKworICAgIHZhciBlcnJvciA9
IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHRlbXBsYXRlID0gYCR7NTJ9ICR7Z2VuKDAp
fSAke2dlbigxKX1gOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAg
IH0KKyAgICBpZiAoIWVycm9yKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGVycm9yIHRo
cm93bicpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSAnRXJyb3I6IDAnKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworfSgpKTsKKwor
CisoZnVuY3Rpb24gKCkgeworICAgIHZhciBzdGF0PSB7CisgICAgICAgIGNvdW50OiAwCisgICAg
fTsKKyAgICBmdW5jdGlvbiBnZW4obnVtKSB7CisgICAgICAgIHN0YXRbbnVtXSA9IHsKKyAgICAg
ICAgICAgIGNhbGxlZDogdHJ1ZSwKKyAgICAgICAgICAgIGNvdW50OiBzdGF0LmNvdW50KyssCisg
ICAgICAgICAgICB0b1N0cmluZzogbnVsbAorICAgICAgICB9OworICAgICAgICByZXR1cm4gewor
ICAgICAgICAgICAgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICAgICAgc3RhdFtudW1dLnRvU3Ry
aW5nID0geworICAgICAgICAgICAgICAgICAgICBjYWxsZWQ6IHRydWUsCisgICAgICAgICAgICAg
ICAgICAgIGNvdW50OiBzdGF0LmNvdW50KyssCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IobnVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsK
KyAgICB9CisKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIHZhciB0
ZW1wbGF0ZSA9IGAke2dlbigwKX0gJHtnZW4oMSl9ICR7Z2VuKDIpfWA7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcignbm8gZXJyb3IgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJv
cikgIT09ICdFcnJvcjogMCcpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGVycm9yOiAi
ICsgU3RyaW5nKGVycm9yKSk7CisgICAgdGVzdChzdGF0WzBdLmNvdW50LCAwKTsKKyAgICB0ZXN0
KHN0YXRbMF0udG9TdHJpbmcuY2FsbGVkLCB0cnVlKTsKKyAgICB0ZXN0KHN0YXRbMF0udG9TdHJp
bmcuY291bnQsIDEpOworICAgIHRlc3Qoc3RhdFsxXSwgdW5kZWZpbmVkKTsKKyAgICB0ZXN0KHN0
YXRbMl0sIHVuZGVmaW5lZCk7Cit9KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4YjExMmZhZTQ1Yjk1N2Rk
MjY0MWZkYjZmNDY4OTg4MDU4OWFmODYwLi4yOWRkY2M0ZmE3NjBkOWVmYTdmNjJlYjVmZmI3MjQ4
NjYzM2Q1ZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNDUsNiArNDUsNyBAQCBFTkFCTEVfQ0FOVkFTX1BB
VEggPSBFTkFCTEVfQ0FOVkFTX1BBVEg7CiBFTkFCTEVfQ0FOVkFTX1BST1hZID0gOwogRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HID0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0VT
Nl9DTEFTU19TWU5UQVggPSBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWDsKK0VOQUJMRV9FUzZfVEVN
UExBVEVfTElURVJBTF9TWU5UQVggPSBFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFY
OwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwog
RU5BQkxFX0NTUF9ORVhUID0gOwogRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIgPSBFTkFC
TEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMjsKQEAgLTIxNCw0ICsyMTUsNCBAQCBFTkFCTEVfTExJ
TlRfQ19MT09QID0gOwogCiBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDID0gRU5B
QkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQzsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChF
TkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05T
KSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklO
RykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0VTNl9DTEFTU19TWU5UQVgpICQoRU5BQkxFX0NP
TlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElP
TlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9D
U1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVf
Q1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NT
X1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVY
VCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklM
SVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9T
VVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVS
X0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRF
RF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xF
VkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
KSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxF
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykg
JChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMp
ICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RF
WFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZ
X0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVO
QUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAk
KEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFU
SE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJD
RSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChF
TkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdB
VE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVO
QUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lO
VEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAk
KEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFV
RVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5B
QkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQo
RU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxF
X1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVf
Q1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAk
KEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxF
TUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQo
RU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJB
Q0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEp
ICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkp
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQp
ICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkg
JChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVT
RU5UQVRJT05fTU9ERSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZF
UkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1F
TlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNf
UEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykg
JChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxf
U1lOVEFYKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQo
RU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElP
Tl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FE
QVBUQVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JF
R0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVT
KSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAk
KEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9S
KSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikg
JChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVO
QUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9E
RVBSRUNBVEVEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9N
X1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklD
RV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVO
VFMpICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVO
VFMpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVf
TEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJF
RkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NB
TEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
SFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BM
VUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVf
UFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1Rf
QVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1ND
Uk9MTF9TTkFQKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQ
SSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9T
VkdfT1RGX0NPTlZFUlRFUikgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQo
RU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFC
TEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NT
U19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9W
SUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAk
KEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVS
RV9TSVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQo
RU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVO
QUJMRV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykg
JChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4
YjExMmZhZTQ1Yjk1N2RkMjY0MWZkYjZmNDY4OTg4MDU4OWFmODYwLi4yOWRkY2M0ZmE3NjBkOWVm
YTdmNjJlYjVmZmI3MjQ4NjYzM2Q1ZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNDUsNiArNDUs
NyBAQCBFTkFCTEVfQ0FOVkFTX1BBVEggPSBFTkFCTEVfQ0FOVkFTX1BBVEg7CiBFTkFCTEVfQ0FO
VkFTX1BST1hZID0gOwogRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HID0gRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HOwogRU5BQkxFX0VTNl9DTEFTU19TWU5UQVggPSBFTkFCTEVfRVM2X0NMQVNTX1NZ
TlRBWDsKK0VOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVggPSBFTkFCTEVfRVM2X1RF
TVBMQVRFX0xJVEVSQUxfU1lOVEFYOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HID0gRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NTUF9ORVhUID0gOwogRU5BQkxFX0NTU19BTklN
QVRJT05TX0xFVkVMXzIgPSBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMjsKQEAgLTIxNCw0
ICsyMTUsNCBAQCBFTkFCTEVfTExJTlRfQ19MT09QID0gOwogCiBFTkFCTEVfU0FUVVJBVEVEX0xB
WU9VVF9BUklUSE1FVElDID0gRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQzsKIAot
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykg
JChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5B
QkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NB
TlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0VTNl9DTEFT
U19TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkg
JChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFU
SU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0Vf
QURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQ
RVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQo
RU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIp
ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAk
KEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNU
T1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1Yy
KSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFE
X0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9E
T01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJW
SUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAk
KEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VW
RU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FD
WV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJM
RV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19Q
UkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQp
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9T
Q0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRP
Ul9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRf
UExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJM
RV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxF
X1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVT
VF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09M
VVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1Nf
U0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNf
QVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxF
X1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikg
JChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVO
QUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVf
Q1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURF
TykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxF
X1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNU
VVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykg
JChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQo
RU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElD
KSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CitGRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElP
TlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9O
SU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVf
RVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykg
JChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5B
QkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAk
KEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkg
JChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xV
VElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0
KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNf
VEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VT
VE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVf
REVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RP
TTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxF
X0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9G
T05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBB
RCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChF
TkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0lDT05EQVRB
QkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9V
SSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9Q
T1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVO
QUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQo
RU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRP
Ul9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJF
U1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElB
X1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVO
QUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxT
KSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJM
RV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NV
RkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVD
VE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFO
RElORykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lT
KSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RGX0NPTlZFUlRFUikgJChFTkFCTEVfVEVMRVBIT05F
X05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RF
WFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09O
X0xPQURJTkcpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9VU0VSU0VMRUNU
X0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRB
Q1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09D
S0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFC
TEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAk
KEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRF
RF9MQVlPVVRfQVJJVEhNRVRJQykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwppbmRleCA4YjExMmZhZTQ1Yjk1N2RkMjY0MWZkYjZmNDY4OTg4MDU4OWFmODYwLi4y
OWRkY2M0ZmE3NjBkOWVmYTdmNjJlYjVmZmI3MjQ4NjYzM2Q1ZDMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAt
NDUsNiArNDUsNyBAQCBFTkFCTEVfQ0FOVkFTX1BBVEggPSBFTkFCTEVfQ0FOVkFTX1BBVEg7CiBF
TkFCTEVfQ0FOVkFTX1BST1hZID0gOwogRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HID0gRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0VTNl9DTEFTU19TWU5UQVggPSBFTkFCTEVfRVM2
X0NMQVNTX1NZTlRBWDsKK0VOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVggPSBFTkFC
TEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5H
ID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NTUF9ORVhUID0gOwogRU5BQkxF
X0NTU19BTklNQVRJT05TX0xFVkVMXzIgPSBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMjsK
QEAgLTIxNCw0ICsyMTUsNCBAQCBFTkFCTEVfTExJTlRfQ19MT09QID0gOwogCiBFTkFCTEVfU0FU
VVJBVEVEX0xBWU9VVF9BUklUSE1FVElDID0gRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhN
RVRJQzsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1ND
Uk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1F
TlQpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQo
RU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0VTNl9DTEFTU19TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9D
U1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JP
WF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NT
U19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9D
U1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVO
QUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxF
X0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVf
QlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1F
X0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9F
TEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VM
RU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNf
Q09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVE
X01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9F
VkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJM
RV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURE
RU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVO
QUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNP
TVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVU
X1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19H
RVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9T
X1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5B
QkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9M
U19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNF
X0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxF
X05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJM
RV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VT
KSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1Qp
ICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFC
TEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5B
QkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVO
QUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxF
X1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMp
ICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RF
VEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0la
SU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykg
JChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVO
QUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUp
ICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9X
RUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVO
QUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRf
UkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZU
TF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9B
UklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CitGRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9B
VkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVf
UEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZ
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkg
JChFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKSAkKEVOQUJMRV9DT05URU5UX0ZJ
TFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVM
XzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBP
U0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19HUklE
X0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1B
R0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RP
UlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5B
QkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChF
TkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkg
JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykg
JChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEp
ICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAk
KEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFC
TEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxF
X0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJM
RV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19URVhUX0FVVE9T
SVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVH
QUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVf
TEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01I
VE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05U
RU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NL
KSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVf
UFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRU1P
VEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9S
VUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9TUEVFQ0hf
U1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykg
JChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RGX0NPTlZFUlRFUikgJChFTkFCTEVf
VEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQo
RU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9U
T1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9V
U0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVO
QUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJM
RV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJTUlO
RykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJM
RV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5BQkxF
X1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9O
X01PREUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlIGIv
U291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IGY3NDdkYzgxNDExMzNjODk1
YTNkYTM3ODNiNGFlNTVkZTVhMDQyYmMuLjk0ZmZmNmNmYmI0YmJmMzcxNzI3M2E0Y2Y1Mzk0ZjVi
NjNjYmU1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQor
KysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKQEAgLTM5LDYgKzM5LDcgQEAg
bWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFC
TEVfQ0FOVkFTX1BST1hZICJUb2dnbGUgQ2FudmFzUHJveHkgc3VwcG9ydCIgT0ZGKQogICAgIFdF
QktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyAiVG9nZ2xlIE1lc3Nh
Z2VDaGFubmVsIGFuZCBNZXNzYWdlUG9ydCBzdXBwb3J0IiBPTikKICAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCAiVG9nZ2xlIEVTNiBjbGFzcyBzeW50YXgg
c3VwcG9ydCIgT04pCisgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0VTNl9URU1QTEFU
RV9MSVRFUkFMX1NZTlRBWCAiVG9nZ2xlIEVTNiB0ZW1wbGF0ZSBsaXRlcmFsIHN5bnRheCBzdXBw
b3J0IiBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
TkcgIlRvZ2dsZSBjb250ZW50IGZpbHRlcmluZyBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09Q
VElPTl9ERUZJTkUoRU5BQkxFX0NPTlRFWFRfTUVOVVMgIlRvZ2dsZSBDb250ZXh0IE1lbnUgc3Vw
cG9ydCIgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0NTUF9ORVhUICJUb2dn
bGUgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgMS4xIHN1cHBvcnQiIE9GRikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UK
aW5kZXggNWU5ODNkNWU2NWIwN2VmN2RjNTNlYzlkM2M2YThhMjkzOTE3NWNiMi4uMDdiODY1NGE4
OTU4ZWQxZTVjN2MwZDkzYjE2NWQyMGM0Y2UxMzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2UKKysrIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAgLTE0LDYg
KzE0LDcgQEAKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9DQU5WQVNfUFJPWFkKICNjbWFrZWRlZmlu
ZTAxIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0VTNl9D
TEFTU19TWU5UQVgKKyNjbWFrZWRlZmluZTAxIEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9T
WU5UQVgKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9DT05URU5UX0ZJTFRFUklORwogI2NtYWtlZGVm
aW5lMDEgRU5BQkxFX0NPTlRFWFRfTUVOVVMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9DUkVERU5U
SUFMX1NUT1JBR0UKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBhMTNkNzlhNzE2MGM5YzllMjdkZjM1YWRkOGU5ZWYwNjlhNjQyM2NiLi5hYTJmMWFh
ZWZjOTVmZDQ4NjY0OWVlZmY2YTA1NDY1MzNhODkxNTIxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDQtMTgg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0g
SW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9T
WU5UQVggY29tcGlsZSB0aW1lIGZsYWcuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwv
RmVhdHVyZUxpc3QucG06CisKIDIwMTUtMDQtMTcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgogCiAgICAgICAgIE5vdCBhYmxlIHRvIGJ1aWxkIFdlYktpdCBhZ2FpbnN0IGlPUyBT
aW11bGF0b3IgOC4zIFNESwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0Zl
YXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmlu
ZGV4IDAwMDMyYzFkMDI1NGY0ZDZhN2EwZmNhNTUzMWIzNDFkMzVkMjk1NzIuLjkwOWI1YjNjYTg1
NDM1MTIyN2UyYWFlZjNmZmRkMmM1ODI0ZjI1ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
RmVhdHVyZUxpc3QucG0KQEAgLTUwLDYgKzUwLDcgQEAgQkVHSU4KICAgICAkY2FudmFzUHJveHlT
dXBwb3J0LAogICAgICRjaGFubmVsTWVzc2FnaW5nU3VwcG9ydCwKICAgICAkY2xhc3NTeW50YXgs
CisgICAgJHRlbXBsYXRlTGl0ZXJhbFN5bnRheCwKICAgICAkY3NwTmV4dFN1cHBvcnQsCiAgICAg
JGNzczNDb25kaXRpb25hbFJ1bGVzU3VwcG9ydCwKICAgICAkY3NzM1RleHRTdXBwb3J0LApAQCAt
MTczLDYgKzE3NCw5IEBAIEJFR0lOCiAgICAgeyBvcHRpb24gPT4gImNsYXNzLXN5bnRheCIsIGRl
c2MgPT4gIlRvZ2dsZSBFUzYgY2xhc3Mgc3ludGF4IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRjbGFz
c1N5bnRheCB9LAogCisgICAgeyBvcHRpb24gPT4gInRlbXBsYXRlLWxpdGVyYWwtc3ludGF4Iiwg
ZGVzYyA9PiAiVG9nZ2xlIEVTNiB0ZW1wbGF0ZSBsaXRlcmFsIHN5bnRheCBzdXBwb3J0IiwKKyAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCIsIGRlZmF1
bHQgPT4gMSwgdmFsdWUgPT4gXCR0ZW1wbGF0ZUxpdGVyYWxTeW50YXggfSwKKwogICAgIHsgb3B0
aW9uID0+ICJjc3AtbmV4dCIsIGRlc2MgPT4gIlRvZ2dsZSBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eSAxLjEgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1BfTkVYVCIsIGRlZmF1
bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3BOZXh0U3VwcG9ydCB9LAogCmRpZmYgLS1naXQg
YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMjkxNGY2MWRiZDE2MDM3NmRlNTI4MWUzMTcy
OGZmN2IyYTk1ZjhkYi4uNjRlYzYxY2NmYjIxOTg0YzZmNGIyZjczNmZmZDJjYzU1YmU2N2I5MCAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE1LTA0LTE4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAg
ICAgIFtFUzZdIEltcGxlbWVudCBFUzYgdGVtcGxhdGUgbGl0ZXJhbHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY5MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBFTkFCTEVfRVM2X1RFTVBMQVRF
X0xJVEVSQUxfU1lOVEFYIGNvbXBpbGUgdGltZSBmbGFnLgorCisgICAgICAgICogU291cmNlL2Nt
YWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZWNvbmZpZy5o
LmNtYWtlOgorCiAyMDE1LTA0LTE2ICBCYXNpbGUgQ2xlbWVudCAgPGJhc2lsZV9jbGVtZW50QGFw
cGxlLmNvbT4KIAogICAgICAgICBFeHRyYWN0IHRoZSBhbGxvY2F0aW9uIHByb2ZpbGUgZnJvbSBK
U0Z1bmN0aW9uIGludG8gYSByYXJlIG9iamVjdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251490</attachid>
            <date>2015-04-23 14:27:54 -0700</date>
            <delta_ts>2015-04-26 12:22:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142691-20150424062648.patch</filename>
            <type>text/plain</type>
            <size>105225</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YzIzZmQxOWQ3OWZjODg3NDIzOWJjNzM4MmI4MzRkZDY4ZjUyOTcyLi4zM2Y0ZDg2YjA0ZjFlZTA0
NjdjYmY1OTY2ZDk4OTA1ZTc4MTZmMWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjEgQEAKKzIwMTUtMDQtMjMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbXBsZW1lbnRzIFRlbXBsYXRlTGl0ZXJhbC4KKyAgICAgICAgU2luY2UgVGFnZ2VkVGVtcGxh
dGUgcmVxdWlyZXMgc29tZSBnbG9iYWwgc3RhdGVzIGFuZAorICAgICAgICBwcmltaXRpdmUgb3Bl
cmF0aW9ucyBsaWtlIEdldFRlbXBsYXRlT2JqZWN0LAorICAgICAgICB3ZSBzZXBhcmF0ZSB0aGUg
cGF0Y2guIEl0IHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgorCisg
ICAgICAgIFRlbXBsYXRlIExpdGVyYWwgU3ludGF4IGlzIGd1YXJkZWQgYnkgRU5BQkxFX0VTNl9U
RU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKyAgICAgICAgQnkgZGlz
YWJsaW5nIGl0LCB3ZSBjYW4gZGlzYWJsZSBUZW1wbGF0ZSBMaXRlcmFsIHN1cHBvcnQuCisKKyAg
ICAgICAgVG8gaW1wbGVtZW50IHRlbXBsYXRlIGxpdGVyYWxzLCBpbiB0aGlzIHBhdGNoLAorICAg
ICAgICB3ZSBuZXdseSBpbnRyb2R1Y2VzIGJ5dGVjb2RlIG9wX3RvX3N0cmluZy4KKyAgICAgICAg
SW4gdGVtcGxhdGUgbGl0ZXJhbHMsIHdlIGFsdGVybmF0ZWx5IGV2YWx1YXRlIHRoZSBleHByZXNz
aW9uIGFuZAorICAgICAgICBwZXJmb3JtIFRvU3RyaW5nIG9udG8gdGhlIHJlc3VsdCBvZiBldmFs
dWF0aW9uLgorICAgICAgICBGb3IgZXhhbXBsZSwKKworICAgICAgICBgJHtmMSgpfSAke2YyKCl9
YAorCisgICAgICAgIEluIHRoaXMgdGVtcGxhdGUgbGl0ZXJhbCwgZXhlY3V0aW9uIG9yZGVyIGlz
IHRoZSBmb2xsb3dpbmcsCisgICAgICAgIDEuIGNhbGxpbmcgZjEoKQorICAgICAgICAyLiBUb1N0
cmluZyh0aGUgcmVzdWx0IG9mIGYxKCkpCisgICAgICAgIDMuIGNhbGxpbmcgZjIoKQorICAgICAg
ICA0LiBUb1N0cmluZyh0aGUgcmVzdWx0IG9mIGYyKCkpCisKKyAgICAgICAgb3Bfc3RyY2F0IGFs
c28gcGVyZm9ybXMgVG9TdHJpbmcuIEhvd2V2ZXIsIHBlcmZvcm1pbmcgVG9TdHJpbmcKKyAgICAg
ICAgb250byBleHByZXNzaW9ucyBhcmUgYmF0Y2hlZCBpbiBvcF9zdHJjYXQsIGl0J3Mgbm90IHRo
ZSBzYW1lIHRvIHRoZQorICAgICAgICB0ZW1wbGF0ZSBsaXRlcmFsIHNwZWMuIEluIHRoZSBhYm92
ZSBleGFtcGxlLAorICAgICAgICBUb1N0cmluZyhmMSgpKSBzaG91bGQgYmUgY2FsbGVkIGJlZm9y
ZSBjYWxsaW5nIGYyKCkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAg
ICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNl
c0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29k
ZU9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpT
Qzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRv
U3RyaW5nKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRUb051bWJlcik6
IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAg
ICAgIChKU0M6OlRlbXBsYXRlU3RyaW5nTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpT
Qzo6VGVtcGxhdGVMaXRlcmFsTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBkZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAg
ICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlNDOjpK
SVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfdG9f
c3RyaW5nKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF90b19zdHJpbmcpOgorICAg
ICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfdG9fc3RyaW5nKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF90b19zdHJpbmcp
OgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAg
ICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBwYXJzZXIvQVNU
QnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVUZW1wbGF0ZVN0cmlu
Zyk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlU3RyaW5nTGlzdCk6
CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3Qp
OgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVUZW1wbGF0ZUxpdGVyYWwpOgorICAg
ICAgICAqIHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6OkxleGVyPFQ+OjpMZXhlcik6
CisgICAgICAgIChKU0M6OkxleGVyPFQ+OjpwYXJzZVN0cmluZyk6CisgICAgICAgIChKU0M6Okxp
bmVOdW1iZXJBZGRlcjo6TGluZU51bWJlckFkZGVyKToKKyAgICAgICAgKEpTQzo6TGluZU51bWJl
ckFkZGVyOjpjbGVhcik6CisgICAgICAgIChKU0M6OkxpbmVOdW1iZXJBZGRlcjo6YWRkKToKKyAg
ICAgICAgKEpTQzo6TGV4ZXI8VD46OnBhcnNlVGVtcGxhdGVMaXRlcmFsKToKKyAgICAgICAgKEpT
Qzo6TGV4ZXI8VD46OmxleCk6CisgICAgICAgIChKU0M6OkxleGVyPFQ+OjpzY2FuVHJhaWxpbmdU
ZW1wbGF0ZVN0cmluZyk6CisgICAgICAgIChKU0M6OkxleGVyPFQ+OjpwYXJzZVN0cmluZ1Nsb3dD
YXNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuaDoKKyAgICAgICAgKiBwYXJz
ZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0Tm9kZTo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUpOgorICAgICAgICAoSlNDOjpUZW1w
bGF0ZVN0cmluZ05vZGU6OlRlbXBsYXRlU3RyaW5nTm9kZSk6CisgICAgICAgIChKU0M6OlRlbXBs
YXRlU3RyaW5nTGlzdE5vZGU6OlRlbXBsYXRlU3RyaW5nTGlzdE5vZGUpOgorICAgICAgICAoSlND
OjpUZW1wbGF0ZUxpdGVyYWxOb2RlOjpUZW1wbGF0ZUxpdGVyYWxOb2RlKToKKyAgICAgICAgKiBw
YXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6
OnZhbHVlKToKKyAgICAgICAgKEpTQzo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGU6Om5leHQp
OgorICAgICAgICAoSlNDOjpUZW1wbGF0ZVN0cmluZ05vZGU6OmNvb2tlZCk6CisgICAgICAgIChK
U0M6OlRlbXBsYXRlU3RyaW5nTm9kZTo6cmF3KToKKyAgICAgICAgKEpTQzo6VGVtcGxhdGVTdHJp
bmdMaXN0Tm9kZTo6dmFsdWUpOgorICAgICAgICAoSlNDOjpUZW1wbGF0ZVN0cmluZ0xpc3ROb2Rl
OjpuZXh0KToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFy
c2VyPExleGVyVHlwZT46OnBhcnNlVGVtcGxhdGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1wbGF0ZUxpdGVyYWwpOgorICAgICAgICAoSlNDOjpQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcmltYXJ5RXhwcmVzc2lvbik6CisgICAgICAgICogcGFyc2Vy
L1BhcnNlci5oOgorICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tlbnMuaDoKKyAgICAgICAgKiBw
YXJzZXIvU3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVh
dGVUZW1wbGF0ZVN0cmluZyk6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0ZVRl
bXBsYXRlU3RyaW5nTGlzdCk6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0ZVRl
bXBsYXRlRXhwcmVzc2lvbkxpc3QpOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVh
dGVUZW1wbGF0ZUxpdGVyYWwpOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpjcmVhdGVT
cHJlYWRFeHByZXNzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50
aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy90ZW1wbGF0ZS1s
aXRlcmFsLWxpbmUtdGVybWluYXRvcnMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICh0ZXN0RXZhbCk6CisgICAgICAgICh0ZXN0RXZhbExpbmVOdW1iZXIpOgorICAgICAgICAq
IHRlc3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLXN5bnRheC5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0U3ludGF4KToKKyAgICAgICAgKHRlc3RTeW50YXhFcnJvcik6CisgICAgICAgICogdGVz
dHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICh0ZXN0RXZhbCk6CisgICAgICAgICh0ZXN0RW1iZWRkZWQpOgorCiAyMDE1LTA0LTIz
ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEhhcmRQ
aGFudG9tIHRvIE11c3RHZW5lcmF0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNzgzYTI3Njk3ZGM2NjNkZTkx
ZDZkYWQ0NjdjZTY1MTNmYTE1ODgzLi4wNGU2OWY0YmE0YTZkNDVmYWNjYmU0ZGFjMzJiMWVjOGY3
ZWFlM2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDQtMjMgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50
IEVTNiB0ZW1wbGF0ZSBsaXRlcmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyNjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVggY29t
cGlsZSB0aW1lIGZsYWcuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKwogMjAxNS0wNC0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBsZXNzIG1lbW9yeSB3aGVuIGNvbXBpbGluZyBj
b250ZW50IGV4dGVuc2lvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOGU2Yjk2Zjg5NDRkY2RlZTIx
MWM4ODcwZDY1Mjc2MTA2MGY1MWJjYS4uMDU2ZGQ4ZGVlZTQxZTNjMTg3Yzg0N2EzZGZiNTZiNDUy
OTRiOWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA0LTIzICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIElt
cGxlbWVudCBFUzYgdGVtcGxhdGUgbGl0ZXJhbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjY5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lO
VEFYIGNvbXBpbGUgdGltZSBmbGFnLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWc6CisKIDIwMTUtMDQtMjMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdA
YXBwbGUuY29tPgogCiAgICAgICAgIFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSB3YXkgdG8gZ2V0
IHRoZSBzeXN0ZW0gbWVtb3J5IHNpemUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmI1M2VkNzRjZTMzNGU2OGMy
NjBhNGUzNjAzNzY1MTBiZWEzMWRhZi4uMjRiYTRmYmRkZWU4YTc2NDNiZTI5ZWJkYzVlODlmOGIw
NTQ0ZWY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA0LTIzICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtFUzZdIEltcGxlbWVu
dCBFUzYgdGVtcGxhdGUgbGl0ZXJhbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0MjY5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYIGNv
bXBpbGUgdGltZSBmbGFnLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisKIDIwMTUtMDQtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtVTklYXSBEbyBub3QgYWxsb3cgY29waWVzIG9mIElQ
Qzo6QXR0YWNobWVudApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDhiMTEyZmFlNDViOTU3
ZGQyNjQxZmRiNmY0Njg5ODgwNTg5YWY4NjAuLjI5ZGRjYzRmYTc2MGQ5ZWZhN2Y2MmViNWZmYjcy
NDg2NjMzZDVkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTQ1LDYgKzQ1LDcgQEAg
RU5BQkxFX0NBTlZBU19QQVRIID0gRU5BQkxFX0NBTlZBU19QQVRIOwogRU5BQkxFX0NBTlZBU19Q
Uk9YWSA9IDsKIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyA9IEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORzsKIEVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFYID0gRU5BQkxFX0VTNl9DTEFTU19TWU5UQVg7
CitFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYID0gRU5BQkxFX0VTNl9URU1QTEFU
RV9MSVRFUkFMX1NZTlRBWDsKIEVOQUJMRV9DT05URU5UX0ZJTFRFUklORyA9IEVOQUJMRV9DT05U
RU5UX0ZJTFRFUklORzsKIEVOQUJMRV9DU1BfTkVYVCA9IDsKIEVOQUJMRV9DU1NfQU5JTUFUSU9O
U19MRVZFTF8yID0gRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzI7CkBAIC0yMTQsNCArMjE1
LDQgQEAgRU5BQkxFX0xMSU5UX0NfTE9PUCA9IDsKIAogRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRf
QVJJVEhNRVRJQyA9IEVOQUJMRV9TQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSUM7CiAKLUZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5B
QkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9D
QUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNf
UFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9FUzZfQ0xBU1NfU1lO
VEFYKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5B
QkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9C
UkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBU
QVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lP
TlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAk
KEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAk
KEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChF
TkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJM
RV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBS
RUNBVEVEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJ
TUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9D
T05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFC
TEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMp
ICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMp
ICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVH
QUNZX1dFQl9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVU
Q0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdD
T05DVVJSRU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJP
WElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9U
QSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1RfQVVU
T0NPTVBMRVRFKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9O
X01FRElBX1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1NDUk9M
TF9TTkFQKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkg
JChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdf
T1RGX0NPTlZFUlRFUikgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5B
QkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
VE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NTU19U
UkFJTElOR19XT1JEKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVX
X01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9T
SVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5B
QkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJM
RV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChF
TkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFC
TEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAk
KEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykg
JChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0VTNl9DTEFTU19TWU5UQVgpICQoRU5BQkxFX0VTNl9U
RU1QTEFURV9MSVRFUkFMX1NZTlRBWCkgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5B
QkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJMRV9D
U1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFC
TEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5B
QkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04p
ICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChF
TkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRf
TElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9T
Q0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFM
SVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJ
TFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ET000X0VW
RU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNS
WVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRk9OVF9M
T0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQo
RU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ESUVfVUkpICQo
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZF
UikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
X0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVf
SU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykg
JChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAk
KEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NP
TlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVf
TU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChF
TkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJP
TUlTRVMpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhf
TElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAk
KEVOQUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikg
JChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcp
ICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChF
TkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfU1ZHX09URl9DT05WRVJURVIpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1C
RVJfREVURUNUSU9OKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FV
VE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FE
SU5HKSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwp
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfREFUQUNVRV9W
QUxVRSkgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5B
QkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1NPQ0tFVFMp
ICQoRU5BQkxFX1BJQ1RVUkVfU0laRVMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dF
QlZUVF9SRUdJT05TKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFC
TEVfRlRMX0pJVCkgJChFTkFCTEVfTExJTlRfQ19MT09QKSAkKEVOQUJMRV9TQVRVUkFURURfTEFZ
T1VUX0FSSVRITUVUSUMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgppbmRleCAy
NTE0MTI2M2UzOGQwZWIyZDE4NDQxZjRlNmZmY2UzNmVlOGY3Y2YyLi5lM2VkMWRjZGE0ZTAzYTVm
MTFlZjkxZTU2MTE5ZWI5MzA1MWZiN2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC0zMiw2ICszMiw3IEBACiAgICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9pbmMiLCAibGVuZ3RoIiA6IDIgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogIm9wX2RlYyIsICJsZW5ndGgiIDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAi
b3BfdG9fbnVtYmVyIiwgImxlbmd0aCIgOiAzIH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJv
cF90b19zdHJpbmciLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9w
X25lZ2F0ZSIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfYWRk
IiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9tdWwiLCAibGVu
Z3RoIiA6IDUgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZVVzZURlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
VXNlRGVmLmgKaW5kZXggZjIwNzEzOTIzMjkwNjQ1M2I3YTU0ZjU2MWI5YjY0MjNlMmU4Y2YyNy4u
NzY2N2U2ODNlNDU0YTQ5OTk4NmVkYWNkOTBiNjQ5MTcyNDIwMzdjZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKQEAgLTEzNSw2ICsxMzUs
NyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF9pc19v
YmplY3Rfb3JfbnVsbDoKICAgICBjYXNlIG9wX2lzX2Z1bmN0aW9uOgogICAgIGNhc2Ugb3BfdG9f
bnVtYmVyOgorICAgIGNhc2Ugb3BfdG9fc3RyaW5nOgogICAgIGNhc2Ugb3BfbmVnYXRlOgogICAg
IGNhc2Ugb3BfbmVxX251bGw6CiAgICAgY2FzZSBvcF9lcV9udWxsOgpAQCAtMzI4LDYgKzMyOSw3
IEBAIHZvaWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldChDb2RlQmxvY2sqIGNvZGVCbG9j
aywgdW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQsCiAgICAgY2FzZSBvcF9pc19mdW5jdGlvbjoKICAg
ICBjYXNlIG9wX2luOgogICAgIGNhc2Ugb3BfdG9fbnVtYmVyOgorICAgIGNhc2Ugb3BfdG9fc3Ry
aW5nOgogICAgIGNhc2Ugb3BfbmVnYXRlOgogICAgIGNhc2Ugb3BfYWRkOgogICAgIGNhc2Ugb3Bf
bXVsOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRl
eCAyN2QzMzE2M2NmYTU5NmIwMzU5OTBiNDc3YjQwOWJkNzI3ZmFmN2RiLi5hYjhkNjU1NTYxNWEy
Y2QyOTMyZjJiMGRiNzc1YzE4NWNhM2JmZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtOTM5LDYgKzkzOSwxMCBAQCB2b2lkIENvZGVCbG9j
azo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAgcHJpbnRVbmFyeU9wKG91dCwgZXhlYywgbG9j
YXRpb24sIGl0LCAidG9fbnVtYmVyIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQor
ICAgICAgICBjYXNlIG9wX3RvX3N0cmluZzogeworICAgICAgICAgICAgcHJpbnRVbmFyeU9wKG91
dCwgZXhlYywgbG9jYXRpb24sIGl0LCAidG9fc3RyaW5nIik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25lZ2F0ZTogewogICAgICAgICAgICAgcHJpbnRV
bmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAibmVnYXRlIik7CiAgICAgICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuaAppbmRleCAyZTU5MDM5ZDNhNDg0YTM0NzI4MTQ0MGVlZjljMWI4MTlm
NzI2NWRiLi4zMGE4MDE3YzJiMmU4MTYxOTNjNjc0MzlhZTRjODZhZTY5MGJiYmE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5oCkBAIC00NjIsNiArNDYyLDcgQEAKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdE1vdmUo
UmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpOwogCiAgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRUb051bWJlcihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4g
ZW1pdFVuYXJ5T3Aob3BfdG9fbnVtYmVyLCBkc3QsIHNyYyk7IH0KKyAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdFRvU3RyaW5nKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKSB7IHJldHVy
biBlbWl0VW5hcnlPcChvcF90b19zdHJpbmcsIGRzdCwgc3JjKTsgfQogICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0SW5jKFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXREZWMoUmVnaXN0ZXJJRCogc3JjRHN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDk5YzBlZDEwNjg5OTBlMGQ4
OGVlNTljMTc2ZjBlMDQ5NGU1Y2UyYzQuLjU4MjM2ZjUyNTI0NmFlNzY2NTJmYWQ0YjQwYzI2NDMz
OTc1OGRhYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L05vZGVzQ29kZWdlbi5jcHAKQEAgLTIxNSw2ICsyMTUsNTMgQEAgUmVnaXN0ZXJJRCogUmVzb2x2
ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
cklEKgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJ
VEVSQUxfU1lOVEFYKQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRlbXBsYXRl
U3RyaW5nTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3Rl
cklEKiBUZW1wbGF0ZVN0cmluZ05vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgaWYgKGRzdCA9PSBnZW5lcmF0b3Iu
aWdub3JlZFJlc3VsdCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZ2Vu
ZXJhdG9yLmVtaXRMb2FkKGRzdCwgSlNWYWx1ZShnZW5lcmF0b3IuYWRkU3RyaW5nQ29uc3RhbnQo
Y29va2VkKCkpKSk7Cit9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUZW1w
bGF0ZUxpdGVyYWxOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1Jl
Z2lzdGVySUQqIFRlbXBsYXRlTGl0ZXJhbE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgaWYgKCFtX3RlbXBsYXRl
RXhwcmVzc2lvbnMpIHsKKyAgICAgICAgVGVtcGxhdGVTdHJpbmdOb2RlKiB0ZW1wbGF0ZVN0cmlu
ZyA9IG1fdGVtcGxhdGVTdHJpbmdzLT52YWx1ZSgpOworICAgICAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKCFtX3RlbXBsYXRlU3RyaW5ncy0+bmV4dCgpLCAiT25seSBvbmUgdGVtcGxhdGUgZWxlbWVu
dCBleGlzdHMgYmVjYXVzZSB0aGVyZSdzIG5vIGV4cHJlc3Npb24gaW4gYSBnaXZlbiB0ZW1wbGF0
ZSBsaXRlcmFsLiIpOworICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgdGVt
cGxhdGVTdHJpbmcpOworICAgIH0KKworICAgIFZlY3RvcjxSZWZQdHI8UmVnaXN0ZXJJRD4sIDE2
PiB0ZW1wb3JhcnlSZWdpc3RlcnM7CisKKyAgICBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiB0ZW1w
bGF0ZVN0cmluZyA9IG1fdGVtcGxhdGVTdHJpbmdzOworICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxp
c3ROb2RlKiB0ZW1wbGF0ZUV4cHJlc3Npb24gPSBtX3RlbXBsYXRlRXhwcmVzc2lvbnM7CisgICAg
Zm9yICg7IHRlbXBsYXRlRXhwcmVzc2lvbjsgdGVtcGxhdGVFeHByZXNzaW9uID0gdGVtcGxhdGVF
eHByZXNzaW9uLT5uZXh0KCksIHRlbXBsYXRlU3RyaW5nID0gdGVtcGxhdGVTdHJpbmctPm5leHQo
KSkgeworICAgICAgICAvLyBFdmFsdWF0ZSBUZW1wbGF0ZVN0cmluZy4KKyAgICAgICAgaWYgKCF0
ZW1wbGF0ZVN0cmluZy0+dmFsdWUoKS0+Y29va2VkKCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAg
ICB0ZW1wb3JhcnlSZWdpc3RlcnMuYXBwZW5kKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSk7Cisg
ICAgICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUodGVtcG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5n
ZXQoKSwgdGVtcGxhdGVTdHJpbmctPnZhbHVlKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8g
RXZhbHVhdGUgRXhwcmVzc2lvbi4KKyAgICAgICAgdGVtcG9yYXJ5UmVnaXN0ZXJzLmFwcGVuZChn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUodGVt
cG9yYXJ5UmVnaXN0ZXJzLmxhc3QoKS5nZXQoKSwgdGVtcGxhdGVFeHByZXNzaW9uLT52YWx1ZSgp
KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRUb1N0cmluZyh0ZW1wb3JhcnlSZWdpc3RlcnMubGFz
dCgpLmdldCgpLCB0ZW1wb3JhcnlSZWdpc3RlcnMubGFzdCgpLmdldCgpKTsKKyAgICB9CisKKyAg
ICAvLyBFdmFsdWF0ZSB0YWlsIFRlbXBsYXRlU3RyaW5nLgorICAgIGlmICghdGVtcGxhdGVTdHJp
bmctPnZhbHVlKCktPmNvb2tlZCgpLmlzRW1wdHkoKSkgeworICAgICAgICB0ZW1wb3JhcnlSZWdp
c3RlcnMuYXBwZW5kKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSk7CisgICAgICAgIGdlbmVyYXRv
ci5lbWl0Tm9kZSh0ZW1wb3JhcnlSZWdpc3RlcnMubGFzdCgpLmdldCgpLCB0ZW1wbGF0ZVN0cmlu
Zy0+dmFsdWUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0U3RyY2F0KGdl
bmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgdGVtcG9yYXJ5UmVnaXN0ZXJzWzBdLmdldCgp
KSwgdGVtcG9yYXJ5UmVnaXN0ZXJzWzBdLmdldCgpLCB0ZW1wb3JhcnlSZWdpc3RlcnMuc2l6ZSgp
KTsKK30KKyNlbmRpZgorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXJyYXlO
b2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZWdpc3RlcklEKiBB
cnJheU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCmluZGV4IDRmMTA1MWYzZTJhYmQ0YTkwMTI1NDliZmVkZjAxZmJhZTIyYmQ3NmIu
LmE2ZGE2NGI5ZTVjZmEwZjYyNGE1MjYxYzE4NzJjODQ4MmE3Y2EyYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zNzY4LDcgKzM3
NjgsMTMgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkK
ICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCksIG5vZGUpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfdG9fbnVtYmVyKTsK
ICAgICAgICAgfQotICAgICAgICAgICAgCisKKyAgICAgICAgY2FzZSBvcF90b19zdHJpbmc6IHsK
KyAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKFRvU3RyaW5nLCB2
YWx1ZSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfdG9fc3RyaW5nKTsKKyAgICAgICAg
fQorCiAgICAgICAgIGNhc2Ugb3BfaW46IHsKICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0
ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksCiAgICAgICAgICAgICAgICAgYWRk
VG9HcmFwaChJbiwgZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSksIGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZCkpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAKaW5kZXggMzIyMjBkZDJiYTVhZjVkNmFiODE3NTNlZGU3MzgyZTk1N2Q2ZmFhOC4uZWY0YzI0
NzQ5Yjc4ZmE2ZTA5YTRjM2Q5YzI5MDEzZWFhNjVkYWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTkwLDYgKzE5MCw3IEBAIENhcGFi
aWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayog
Y29kZUJsb2NrLCBJbnN0cnVjCiAgICAgY2FzZSBvcF9qbmVxX3B0cjoKICAgICBjYXNlIG9wX3R5
cGVvZjoKICAgICBjYXNlIG9wX3RvX251bWJlcjoKKyAgICBjYXNlIG9wX3RvX3N0cmluZzoKICAg
ICBjYXNlIG9wX3N3aXRjaF9pbW06CiAgICAgY2FzZSBvcF9zd2l0Y2hfY2hhcjoKICAgICBjYXNl
IG9wX2luOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDhjZDlmYjEyZThiZjRiMGM2
ODczOGVmOGVmYTc3YzY1ZjA4NGFmZTguLmI0MTEzYzQ1ZTcyYzdlMTU4ZWMxZjE5MjNjYmZlMjlj
NWVmNTQyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTMwMCw2ICszMDAsNyBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIERFRklORV9PUChv
cF90aHJvdykKICAgICAgICAgREVGSU5FX09QKG9wX3Rocm93X3N0YXRpY19lcnJvcikKICAgICAg
ICAgREVGSU5FX09QKG9wX3RvX251bWJlcikKKyAgICAgICAgREVGSU5FX09QKG9wX3RvX3N0cmlu
ZykKICAgICAgICAgREVGSU5FX09QKG9wX3RvX3ByaW1pdGl2ZSkKIAogICAgICAgICBERUZJTkVf
T1Aob3BfcmVzb2x2ZV9zY29wZSkKQEAgLTQyOSw2ICs0MzAsNyBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bfc3RyaWN0
ZXEpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9zdWIpCiAgICAgICAgIERFRklORV9T
TE9XQ0FTRV9PUChvcF90b19udW1iZXIpCisgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF90
b19zdHJpbmcpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF90b19wcmltaXRpdmUpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9oYXNfaW5kZXhlZF9wcm9wZXJ0eSkKICAgICAg
ICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2hhc19zdHJ1Y3R1cmVfcHJvcGVydHkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuaAppbmRleCAwMWE0MTI5NjNjZTU5ODMzMmFmMTE2YjYyYzc2Y2FiMjkyZmZh
MTc4Li5kNzIyNWVhNGIyYWU1NDMxODc4NDRjMjA3NmVjNmViOGQ2NWQyMWM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmgKQEAgLTU1MSw2ICs1NTEsNyBAQAogICAgICAgICB2b2lkIGVtaXRfb3Bf
dGhyb3coSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3Rocm93X3N0YXRpY19l
cnJvcihJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfdG9fbnVtYmVyKEluc3Ry
dWN0aW9uKik7CisgICAgICAgIHZvaWQgZW1pdF9vcF90b19zdHJpbmcoSW5zdHJ1Y3Rpb24qKTsK
ICAgICAgICAgdm9pZCBlbWl0X29wX3RvX3ByaW1pdGl2ZShJbnN0cnVjdGlvbiopOwogICAgICAg
ICB2b2lkIGVtaXRfb3BfdW5leHBlY3RlZF9sb2FkKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZv
aWQgZW1pdF9vcF91bnNpZ25lZChJbnN0cnVjdGlvbiopOwpAQCAtNjEzLDYgKzYxNCw3IEBACiAg
ICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bfc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bfc3ViKElu
c3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2
b2lkIGVtaXRTbG93X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImKTsKKyAgICAgICAgdm9pZCBlbWl0U2xvd19vcF90b19zdHJpbmcoSW5z
dHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZv
aWQgZW1pdFNsb3dfb3BfdG9fcHJpbWl0aXZlKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX3Vuc2lnbmVkKElu
c3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2
b2lkIGVtaXRTbG93X29wX3Vyc2hpZnQoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApp
bmRleCA1NzdlNDI2MjdiNzliNWNkNTFkYjZjMTc2NDFjOGVkNzIyODNmNGNmLi41ZDRkMGI5ZmU4
NzY4YWMyZmU1OTY1NzVlZDRhYTgxMjIwZGFkNmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTQ4OCw2ICs0ODgsMTcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
dG9fbnVtYmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFB1dFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKIH0KIAordm9p
ZCBKSVQ6OmVtaXRfb3BfdG9fc3RyaW5nKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
Cit7CisgICAgaW50IHNyY1ZSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwor
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoc3JjVlJlZywgcmVnVDApOworCisgICAgYWRkU2xv
d0Nhc2UoZW1pdEp1bXBJZk5vdEpTQ2VsbChyZWdUMCkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5j
aDgoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkp
LCBUcnVzdGVkSW1tMzIoU3RyaW5nVHlwZSkpKTsKKworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7Cit9CisKIHZvaWQgSklUOjplbWl0
X29wX3B1c2hfbmFtZV9zY29wZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewog
ICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAtODgxLDYg
Kzg5MiwxNSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fbnVtYmVyKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZQogICAgIHNsb3dQYXRoQ2FsbC5jYWxs
KCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0U2xvd19vcF90b19zdHJpbmcoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikK
K3sKKyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIE5vdCBKU0NlbGwuCisgICAgbGlua1Nsb3dD
YXNlKGl0ZXIpOyAvLyBOb3QgSlNTdHJpbmcuCisKKyAgICBKSVRTbG93UGF0aENhbGwgc2xvd1Bh
dGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3RvX3N0cmluZyk7Cisg
ICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKK30KKwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpCiAK
IHZvaWQgSklUOjplbWl0X29wX2xvb3BfaGludChJbnN0cnVjdGlvbiopCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggOTEwYzIxYzc0NjA1Yzlj
YjI2ODcwNjEwY2Q1YzUzZDE4NmFlMjllNi4uYWNkNDYwYjdkNjg0YzZkYmFhODA2YjAzY2M4NTFi
OWYxNWIxODNiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMy
XzY0LmNwcApAQCAtNzgyLDYgKzc4MiwyOSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fbnVt
YmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZQogICAg
IHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX3RvX3N0cmluZyhJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGludCBkc3QgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBzcmMgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kOworCisgICAgZW1pdExvYWQoc3JjLCByZWdUMSwgcmVnVDApOworCisg
ICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZykpKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2g4KE5vdEVxdWFsLCBBZGRy
ZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKFN0
cmluZ1R5cGUpKSk7CisKKyAgICBpZiAoc3JjICE9IGRzdCkKKyAgICAgICAgZW1pdFN0b3JlKGRz
dCwgcmVnVDEsIHJlZ1QwKTsKK30KKwordm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX3N0cmluZyhJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJiBpdGVyKQoreworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gTm90IEpTQ2VsbC4K
KyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIE5vdCBKU1N0cmluZy4KKworICAgIEpJVFNsb3dQ
YXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhf
dG9fc3RyaW5nKTsKKyAgICBzbG93UGF0aENhbGwuY2FsbCgpOworfQorCiB2b2lkIEpJVDo6ZW1p
dF9vcF9wdXNoX25hbWVfc2NvcGUoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsK
ICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KaW5kZXggM2I0N2YwYjdmNzE2YTQ2ZWFjNzAzMzEyMDY2ZWM1MmU5YTIwZjFlOS4uN2Nl
ZDIxYWRmMmIzZWFlOWI2NDQzYzA4ZGJiMzk5Mjk5YTg0ZjM2MiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
QEAgLTk5NCw2ICs5OTQsMjMgQEAgX2xsaW50X29wX3RvX251bWJlcjoKICAgICBkaXNwYXRjaCgz
KQogCiAKK19sbGludF9vcF90b19zdHJpbmc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxv
YWRpIDhbUENdLCB0MAorICAgIGxvYWRpIDRbUENdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUodDAsIHQyLCB0MykKKyAgICBiaW5lcSB0MiwgQ2VsbFRhZywgLm9wVG9TdHJpbmdTbG93
CisgICAgYmJuZXEgSlNDZWxsOjptX3R5cGVbdDNdLCBTdHJpbmdUeXBlLCAub3BUb1N0cmluZ1Ns
b3cKKy5vcFRvU3RyaW5nSXNTdHJpbmc6CisgICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRbY2ZyLCB0
MSwgOF0KKyAgICBzdG9yZWkgdDMsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBkaXNw
YXRjaCgzKQorCisub3BUb1N0cmluZ1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhf
dG9fc3RyaW5nKQorICAgIGRpc3BhdGNoKDMpCisKKwogX2xsaW50X29wX25lZ2F0ZToKICAgICB0
cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IDBkMDg0
Mzg3NTZlOWI4M2ZiYzA1N2FlYWFjOGM2YmE2NGNkYmQ0M2QuLjY4YTljNjJmYzYwNTBjYzI1ZjU1
ZTkxZTI2YmI0Mzc2Njg2ZTQxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC04NTUsNiArODU1LDIyIEBAIF9s
bGludF9vcF90b19udW1iZXI6CiAgICAgZGlzcGF0Y2goMykKIAogCitfbGxpbnRfb3BfdG9fc3Ry
aW5nOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwg
dDEpCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQorICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGUodDEsIHQwKQorICAgIGJ0cW56IHQwLCB0YWdNYXNrLCAub3BUb1N0cmluZ1Nsb3cK
KyAgICBiYm5lcSBKU0NlbGw6Om1fdHlwZVt0MF0sIFN0cmluZ1R5cGUsIC5vcFRvU3RyaW5nU2xv
dworLm9wVG9TdHJpbmdJc1N0cmluZzoKKyAgICBzdG9yZXEgdDAsIFtjZnIsIHQyLCA4XQorICAg
IGRpc3BhdGNoKDMpCisKKy5vcFRvU3RyaW5nU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX3Nsb3df
cGF0aF90b19zdHJpbmcpCisgICAgZGlzcGF0Y2goMykKKworCiBfbGxpbnRfb3BfbmVnYXRlOgog
ICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDA2YzE5ZTI4MDdk
MGYzN2VhZDMzNDMzNzc3MWFiZWZiODY1MjMwYjUuLmFhNzM3MDUyY2IzYzgxNTM1N2M4YTZmZTM2
OGFkMjE1OWJhMzJjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
QVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRl
ci5oCkBAIC0xMDMsNiArMTAzLDEyIEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAgIHR5cGVkZWYg
UHJvcGVydHlMaXN0Tm9kZSogUHJvcGVydHlMaXN0OwogICAgIHR5cGVkZWYgRWxlbWVudE5vZGUq
IEVsZW1lbnRMaXN0OwogICAgIHR5cGVkZWYgQXJndW1lbnRMaXN0Tm9kZSogQXJndW1lbnRzTGlz
dDsKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIHR5cGVkZWYg
VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3Q7CisgICAg
dHlwZWRlZiBUZW1wbGF0ZVN0cmluZ05vZGUqIFRlbXBsYXRlU3RyaW5nOworICAgIHR5cGVkZWYg
VGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogVGVtcGxhdGVTdHJpbmdMaXN0OworICAgIHR5cGVkZWYg
VGVtcGxhdGVMaXRlcmFsTm9kZSogVGVtcGxhdGVMaXRlcmFsOworI2VuZGlmCiAgICAgdHlwZWRl
ZiBQYXJhbWV0ZXJOb2RlKiBGb3JtYWxQYXJhbWV0ZXJMaXN0OwogICAgIHR5cGVkZWYgRnVuY3Rp
b25Cb2R5Tm9kZSogRnVuY3Rpb25Cb2R5OwogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQpA
QCAtMjQ3LDYgKzI1Myw0MyBAQCBjbGFzcyBBU1RCdWlsZGVyIHsKICAgICAgICAgcmV0dXJuIG5v
ZGU7CiAgICAgfQogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAg
ICBUZW1wbGF0ZVN0cmluZ05vZGUqIGNyZWF0ZVRlbXBsYXRlU3RyaW5nKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGNvb2tlZCwgY29uc3QgSWRlbnRp
ZmllciYgcmF3KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgVGVt
cGxhdGVTdHJpbmdOb2RlKGxvY2F0aW9uLCBjb29rZWQsIHJhdyk7CisgICAgfQorCisgICAgVGVt
cGxhdGVTdHJpbmdMaXN0Tm9kZSogY3JlYXRlVGVtcGxhdGVTdHJpbmdMaXN0KFRlbXBsYXRlU3Ry
aW5nTm9kZSogdGVtcGxhdGVTdHJpbmcpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3Bh
cnNlckFyZW5hKSBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKHRlbXBsYXRlU3RyaW5nKTsKKyAgICB9
CisKKyAgICBUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiBjcmVhdGVUZW1wbGF0ZVN0cmluZ0xpc3Qo
VGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogdGVtcGxhdGVTdHJpbmdMaXN0LCBUZW1wbGF0ZVN0cmlu
Z05vZGUqIHRlbXBsYXRlU3RyaW5nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJz
ZXJBcmVuYSkgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSh0ZW1wbGF0ZVN0cmluZ0xpc3QsIHRlbXBs
YXRlU3RyaW5nKTsKKyAgICB9CisKKyAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogY3Jl
YXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChFeHByZXNzaW9uTm9kZSogZXhwcmVzc2lvbikKKyAg
ICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFRlbXBsYXRlRXhwcmVzc2lv
bkxpc3ROb2RlKGV4cHJlc3Npb24pOworICAgIH0KKworICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxp
c3ROb2RlKiBjcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KFRlbXBsYXRlRXhwcmVzc2lvbkxp
c3ROb2RlKiB0ZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSwgRXhwcmVzc2lvbk5vZGUqIGV4cHJl
c3Npb24pCisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0Tm9kZSh0ZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSwgZXhwcmVzc2lv
bik7CisgICAgfQorCisgICAgVGVtcGxhdGVMaXRlcmFsTm9kZSogY3JlYXRlVGVtcGxhdGVMaXRl
cmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFRlbXBsYXRlU3RyaW5nTGlzdE5v
ZGUqIHRlbXBsYXRlU3RyaW5nTGlzdCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFy
c2VyQXJlbmEpIFRlbXBsYXRlTGl0ZXJhbE5vZGUobG9jYXRpb24sIHRlbXBsYXRlU3RyaW5nTGlz
dCk7CisgICAgfQorCisgICAgVGVtcGxhdGVMaXRlcmFsTm9kZSogY3JlYXRlVGVtcGxhdGVMaXRl
cmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFRlbXBsYXRlU3RyaW5nTGlzdE5v
ZGUqIHRlbXBsYXRlU3RyaW5nTGlzdCwgVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqIHRlbXBs
YXRlRXhwcmVzc2lvbkxpc3QpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFy
ZW5hKSBUZW1wbGF0ZUxpdGVyYWxOb2RlKGxvY2F0aW9uLCB0ZW1wbGF0ZVN0cmluZ0xpc3QsIHRl
bXBsYXRlRXhwcmVzc2lvbkxpc3QpOworICAgIH0KKyNlbmRpZgorCiAgICAgRXhwcmVzc2lvbk5v
ZGUqIGNyZWF0ZVJlZ0V4cChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJ
ZGVudGlmaWVyJiBwYXR0ZXJuLCBjb25zdCBJZGVudGlmaWVyJiBmbGFncywgY29uc3QgSlNUZXh0
UG9zaXRpb24mIHN0YXJ0KQogICAgIHsKICAgICAgICAgaWYgKFlhcnI6OmNoZWNrU3ludGF4KHBh
dHRlcm4uc3RyaW5nKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRl
eCA3ZGUxNDIyMGJiZGE3MjczOGI1NzNhNGI5Nzg4Y2UwYjMyY2M3Y2UzLi5hMzY1ZmMzZTk1ZmQz
YzE5MTQ3ZjM0MGQxYzE0MGY3ZjgyOGE2OWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0xleGVyLmNwcApAQCAtNzEsNiArNzEsOSBAQCBlbnVtIENoYXJhY3RlclR5cGUgewogICAgIENo
YXJhY3RlclF1ZXN0aW9uLAogICAgIENoYXJhY3RlclRpbGRlLAogICAgIENoYXJhY3RlclF1b3Rl
LAorI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgQ2hhcmFjdGVy
QmFja1F1b3RlLAorI2VuZGlmCiAgICAgQ2hhcmFjdGVyRG90LAogICAgIENoYXJhY3RlclNsYXNo
LAogICAgIENoYXJhY3RlckJhY2tTbGFzaCwKQEAgLTE5Miw3ICsxOTUsMTEgQEAgZW51bSBDaGFy
YWN0ZXJUeXBlIHsKIC8qICA5MyAtIF0gICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJDbG9z
ZUJyYWNrZXQsCiAvKiAgOTQgLSBeICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVyWG9yLAog
LyogIDk1IC0gXyAgICAgICAgICAgICAgICAgICovIENoYXJhY3RlcklkZW50aWZpZXJTdGFydCwK
KyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorLyogIDk2IC0gYCAgICAg
ICAgICAgICAgICAgICovIENoYXJhY3RlckJhY2tRdW90ZSwKKyNlbHNlCiAvKiAgOTYgLSBgICAg
ICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVySW52YWxpZCwKKyNlbmRpZgogLyogIDk3IC0gYSAg
ICAgICAgICAgICAgICAgICovIENoYXJhY3RlcklkZW50aWZpZXJTdGFydCwKIC8qICA5OCAtIGIg
ICAgICAgICAgICAgICAgICAqLyBDaGFyYWN0ZXJJZGVudGlmaWVyU3RhcnQsCiAvKiAgOTkgLSBj
ICAgICAgICAgICAgICAgICAgKi8gQ2hhcmFjdGVySWRlbnRpZmllclN0YXJ0LApAQCAtMTA1Miw3
ICsxMDU5LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBjaGFyYWN0ZXJSZXF1aXJlc1Bh
cnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hhcmFjdGVyKQogCiAgICAgICAgICAgICBMQ2hhciBl
c2NhcGUgPSBzaW5nbGVFc2NhcGUobV9jdXJyZW50KTsKIAotICAgICAgICAgICAgLy8gTW9zdCBj
b21tb24gZXNjYXBlIHNlcXVlbmNlcyBmaXJzdAorICAgICAgICAgICAgLy8gTW9zdCBjb21tb24g
ZXNjYXBlIHNlcXVlbmNlcyBmaXJzdC4KICAgICAgICAgICAgIGlmIChlc2NhcGUpIHsKICAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQogICAgICAgICAgICAgICAgICAgICBy
ZWNvcmQ4KGVzY2FwZSk7CkBAIC0xMTAyLDcgKzExMDksOTIgQEAgc3RhdGljIEFMV0FZU19JTkxJ
TkUgYm9vbCBjaGFyYWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2UoVUNoYXIgY2hhcmFj
dGVyKQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLXRlbXBsYXRlIDxib29sIHNob3VsZEJ1
aWxkU3RyaW5ncz4gdHlwZW5hbWUgTGV4ZXI8VD46OlN0cmluZ1BhcnNlUmVzdWx0IExleGVyPFQ+
OjpwYXJzZVN0cmluZ1Nsb3dDYXNlKEpTVG9rZW5EYXRhKiB0b2tlbkRhdGEsIGJvb2wgc3RyaWN0
TW9kZSkKK3RlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gQUxXQVlTX0lOTElORSBh
dXRvIExleGVyPFQ+OjpwYXJzZUNvbXBsZXhFc2NhcGUoRXNjYXBlUGFyc2VNb2RlIGVzY2FwZVBh
cnNlTW9kZSwgYm9vbCBzdHJpY3RNb2RlLCBUIHN0cmluZ1F1b3RlQ2hhcmFjdGVyKSAtPiBTdHJp
bmdQYXJzZVJlc3VsdAoreworICAgIGlmIChtX2N1cnJlbnQgPT0gJ3gnKSB7CisgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgIGlmICghaXNBU0NJSUhleERpZ2l0KG1fY3VycmVudCkgfHwgIWlzQVND
SUlIZXhEaWdpdChwZWVrKDEpKSkgeworICAgICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBB
U0NJSUxpdGVyYWwoIlxceCBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIGhleCBjaGFyYWN0ZXIg
c2VxdWVuY2UiKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKKyAg
ICAgICAgfQorICAgICAgICBUIHByZXYgPSBtX2N1cnJlbnQ7CisgICAgICAgIHNoaWZ0KCk7Cisg
ICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICByZWNvcmQxNihjb252
ZXJ0SGV4KHByZXYsIG1fY3VycmVudCkpOworICAgICAgICBzaGlmdCgpOworICAgICAgICByZXR1
cm4gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5OworICAgIH0KKworICAgIGlmIChtX2N1cnJlbnQg
PT0gJ3UnKSB7CisgICAgICAgIHNoaWZ0KCk7CisgICAgICAgIFVuaWNvZGVIZXhWYWx1ZSBjaGFy
YWN0ZXIgPSBwYXJzZUZvdXJEaWdpdFVuaWNvZGVIZXgoKTsKKyAgICAgICAgaWYgKGNoYXJhY3Rl
ci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCisgICAg
ICAgICAgICAgICAgcmVjb3JkMTYoY2hhcmFjdGVyLnZhbHVlKCkpOworICAgICAgICAgICAgcmV0
dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChl
c2NhcGVQYXJzZU1vZGUgPT0gRXNjYXBlUGFyc2VNb2RlOjpTdHJpbmcgJiYgbV9jdXJyZW50ID09
IHN0cmluZ1F1b3RlQ2hhcmFjdGVyKSB7CisgICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJp
bmdzKQorICAgICAgICAgICAgICAgIHJlY29yZDE2KCd1Jyk7CisgICAgICAgICAgICByZXR1cm4g
U3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5OworICAgICAgICB9CisKKyAgICAgICAgbV9sZXhFcnJv
ck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVu
aWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNlIik7CisgICAgICAgIHJldHVybiBjaGFyYWN0ZXIudmFs
dWVUeXBlKCkgPT0gVW5pY29kZUhleFZhbHVlOjpJbmNvbXBsZXRlSGV4ID8gU3RyaW5nVW50ZXJt
aW5hdGVkIDogU3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAgfQorCisgICAgaWYgKHN0cmljdE1v
ZGUpIHsKKyAgICAgICAgaWYgKGlzQVNDSUlEaWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgICAg
ICAvLyBUaGUgb25seSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXDAn
LCBhbmQgdGhpcyBtdXN0IG5vdCBiZSBmb2xsb3dlZCBieSBhIGRlY2ltYWwgZGlnaXQuCisgICAg
ICAgICAgICBpbnQgY2hhcmFjdGVyMSA9IG1fY3VycmVudDsKKyAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICBpZiAoY2hhcmFjdGVyMSAhPSAnMCcgfHwgaXNBU0NJSURpZ2l0KG1fY3Vy
cmVudCkpIHsKKyAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJh
bCgiVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1xcMCci
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nQ2Fubm90QmVQYXJzZWQ7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAg
ICAgIHJlY29yZDE2KDApOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZ1BhcnNlZFN1Y2Nlc3Nm
dWxseTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChpc0FTQ0lJT2N0YWxE
aWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAvLyBPY3RhbCBjaGFyYWN0ZXIgc2VxdWVu
Y2VzCisgICAgICAgICAgICBUIGNoYXJhY3RlcjEgPSBtX2N1cnJlbnQ7CisgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgaWYgKGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpIHsK
KyAgICAgICAgICAgICAgICAvLyBUd28gb2N0YWwgY2hhcmFjdGVycworICAgICAgICAgICAgICAg
IFQgY2hhcmFjdGVyMiA9IG1fY3VycmVudDsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAg
ICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXIxID49ICcwJyAmJiBjaGFyYWN0ZXIxIDw9ICczJyAm
JiBpc0FTQ0lJT2N0YWxEaWdpdChtX2N1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChzaG91bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNigo
Y2hhcmFjdGVyMSAtICcwJykgKiA2NCArIChjaGFyYWN0ZXIyIC0gJzAnKSAqIDggKyBtX2N1cnJl
bnQgLSAnMCcpOworICAgICAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCisg
ICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQxNigoY2hhcmFjdGVyMSAtICcwJykgKiA4ICsg
Y2hhcmFjdGVyMiAtICcwJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAg
ICAgICAgICByZWNvcmQxNihjaGFyYWN0ZXIxIC0gJzAnKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHJldHVybiBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBpZiAoIWF0RW5kKCkpIHsKKyAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykK
KyAgICAgICAgICAgIHJlY29yZDE2KG1fY3VycmVudCk7CisgICAgICAgIHNoaWZ0KCk7CisgICAg
ICAgIHJldHVybiBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHk7CisgICAgfQorCisgICAgbV9sZXhF
cnJvck1lc3NhZ2UgPSBBU0NJSUxpdGVyYWwoIlVudGVybWluYXRlZCBzdHJpbmcgY29uc3RhbnQi
KTsKKyAgICByZXR1cm4gU3RyaW5nVW50ZXJtaW5hdGVkOworfQorCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KK3RlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gYXV0byBMZXhlcjxUPjo6
cGFyc2VTdHJpbmdTbG93Q2FzZShKU1Rva2VuRGF0YSogdG9rZW5EYXRhLCBib29sIHN0cmljdE1v
ZGUpIC0+IFN0cmluZ1BhcnNlUmVzdWx0CiB7CiAgICAgVCBzdHJpbmdRdW90ZUNoYXJhY3RlciA9
IG1fY3VycmVudDsKICAgICBzaGlmdCgpOwpAQCAtMTEyNCw5NiArMTIxNiwyMDkgQEAgc3RhdGlj
IEFMV0FZU19JTkxJTkUgYm9vbCBjaGFyYWN0ZXJSZXF1aXJlc1BhcnNlU3RyaW5nU2xvd0Nhc2Uo
VUNoYXIgY2hhcmFjdGVyKQogICAgICAgICAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgICAgICB9
IGVsc2UgaWYgKFVOTElLRUxZKGlzTGluZVRlcm1pbmF0b3IobV9jdXJyZW50KSkpCiAgICAgICAg
ICAgICAgICAgc2hpZnRMaW5lVGVybWluYXRvcigpOwotICAgICAgICAgICAgZWxzZSBpZiAobV9j
dXJyZW50ID09ICd4JykgewotICAgICAgICAgICAgICAgIHNoaWZ0KCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFpc0FTQ0lJSGV4RGlnaXQobV9jdXJyZW50KSB8fCAhaXNBU0NJSUhleERpZ2l0KHBl
ZWsoMSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fbGV4RXJyb3JNZXNzYWdlID0gQVNDSUlM
aXRlcmFsKCJcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVl
bmNlIik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgVCBwcmV2ID0gbV9jdXJyZW50Owot
ICAgICAgICAgICAgICAgIHNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxk
U3RyaW5ncykKLSAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoY29udmVydEhleChwcmV2LCBt
X2N1cnJlbnQpKTsKLSAgICAgICAgICAgICAgICBzaGlmdCgpOwotICAgICAgICAgICAgfSBlbHNl
IGlmIChtX2N1cnJlbnQgPT0gJ3UnKSB7Ci0gICAgICAgICAgICAgICAgc2hpZnQoKTsKLSAgICAg
ICAgICAgICAgICBVbmljb2RlSGV4VmFsdWUgY2hhcmFjdGVyID0gcGFyc2VGb3VyRGlnaXRVbmlj
b2RlSGV4KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNoYXJhY3Rlci5pc1ZhbGlkKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJlY29yZDE2KGNoYXJhY3Rlci52YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKG1fY3VycmVudCA9PSBzdHJpbmdRdW90ZUNoYXJhY3RlcikgewotICAgICAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjb3JkMTYoJ3UnKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiXFx1IGNhbiBvbmx5IGJl
IGZvbGxvd2VkIGJ5IGEgVW5pY29kZSBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGNoYXJhY3Rlci52YWx1ZVR5cGUoKSA9PSBVbmljb2RlSGV4VmFsdWU6
OkluY29tcGxldGVIZXggPyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBTdHJpbmdDYW5ub3RCZVBhcnNl
ZDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdE1vZGUg
JiYgaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpIHsKLSAgICAgICAgICAgICAgICAvLyBUaGUgb25s
eSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXDAnLCBhbmQgdGhpcyBt
dXN0IG5vdCBiZSBmb2xsb3dlZCBieSBhIGRlY2ltYWwgZGlnaXQuCi0gICAgICAgICAgICAgICAg
aW50IGNoYXJhY3RlcjEgPSBtX2N1cnJlbnQ7Ci0gICAgICAgICAgICAgICAgc2hpZnQoKTsKLSAg
ICAgICAgICAgICAgICBpZiAoY2hhcmFjdGVyMSAhPSAnMCcgfHwgaXNBU0NJSURpZ2l0KG1fY3Vy
cmVudCkpIHsKLSAgICAgICAgICAgICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2UgPSBBU0NJSUxp
dGVyYWwoIlRoZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmljdCBtb2RlIGlzICdc
XDAnIik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsK
LSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBT
dHJpbmdQYXJzZVJlc3VsdCByZXN1bHQgPSBwYXJzZUNvbXBsZXhFc2NhcGU8c2hvdWxkQnVpbGRT
dHJpbmdzPihFc2NhcGVQYXJzZU1vZGU6OlN0cmluZywgc3RyaWN0TW9kZSwgc3RyaW5nUXVvdGVD
aGFyYWN0ZXIpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gU3RyaW5nUGFyc2VkU3Vj
Y2Vzc2Z1bGx5KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBzdHJpbmdTdGFydCA9IGN1cnJlbnRTb3VyY2VQdHIoKTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIC8vIEZhc3QgY2hlY2sgZm9y
IGNoYXJhY3RlcnMgdGhhdCByZXF1aXJlIHNwZWNpYWwgaGFuZGxpbmcuCisgICAgICAgIC8vIENh
dGNoZXMgMCwgXG4sIFxyLCAweDIwMjgsIGFuZCAweDIwMjkgYXMgZWZmaWNpZW50bHkKKyAgICAg
ICAgLy8gYXMgcG9zc2libGUsIGFuZCBsZXRzIHRocm91Z2ggYWxsIGNvbW1vbiBBU0NJSSBjaGFy
YWN0ZXJzLgorICAgICAgICBpZiAoVU5MSUtFTFkoKChzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9j
dXJyZW50KSAtIDB4RSkgJiAweDIwMDApKSkgeworICAgICAgICAgICAgLy8gTmV3LWxpbmUgb3Ig
ZW5kIG9mIGlucHV0IGlzIG5vdCBhbGxvd2VkCisgICAgICAgICAgICBpZiAoYXRFbmQoKSB8fCBp
c0xpbmVUZXJtaW5hdG9yKG1fY3VycmVudCkpIHsKKyAgICAgICAgICAgICAgICBtX2xleEVycm9y
TWVzc2FnZSA9IEFTQ0lJTGl0ZXJhbCgiVW5leHBlY3RlZCBFT0YiKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gYXRFbmQoKSA/IFN0cmluZ1VudGVybWluYXRlZCA6IFN0cmluZ0Nhbm5vdEJlUGFy
c2VkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gQW55dGhpbmcgZWxzZSBpcyBqdXN0
IGEgbm9ybWFsIGNoYXJhY3RlcgorICAgICAgICB9CisgICAgICAgIHNoaWZ0KCk7CisgICAgfQor
CisgICAgaWYgKGN1cnJlbnRTb3VyY2VQdHIoKSAhPSBzdHJpbmdTdGFydCAmJiBzaG91bGRCdWls
ZFN0cmluZ3MpCisgICAgICAgIGFwcGVuZDE2KHN0cmluZ1N0YXJ0LCBjdXJyZW50U291cmNlUHRy
KCkgLSBzdHJpbmdTdGFydCk7CisgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKKyAgICAgICAg
dG9rZW5EYXRhLT5pZGVudCA9IG1ha2VJZGVudGlmaWVyKG1fYnVmZmVyMTYuZGF0YSgpLCBtX2J1
ZmZlcjE2LnNpemUoKSk7CisgICAgZWxzZQorICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gMDsK
KworICAgIG1fYnVmZmVyMTYucmVzaXplKDApOworICAgIHJldHVybiBTdHJpbmdQYXJzZWRTdWNj
ZXNzZnVsbHk7Cit9CisKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQor
Ly8gV2hpbGUgdGhlIGxleGVyIGFjY2VwdHMgPExGPjxDUj4gKG5vdCA8Q1I+PExGPikgc2VxdWVu
Y2UKKy8vIGFzIG9uZSBsaW5lIHRlcm1pbmF0b3IgYW5kIGluY3JlbWVudHMgb25lIGxpbmUgbnVt
YmVyLAorLy8gVGVtcGxhdGVMaXRlcmFsIGNvbnNpZGVycyBpdCBhcyB0d28gbGluZSB0ZXJtaW5h
dG9ycyA8TEY+IGFuZCA8Q1I+LgorLy8KKy8vIFRlbXBsYXRlTGl0ZXJhbCBub3JtYWxpemVzIGxp
bmUgdGVybWluYXRvcnMgYXMgZm9sbG93cy4KKy8vCisvLyA8TEY+ID0+IDxMRj4KKy8vIDxDUj4g
PT4gPExGPgorLy8gPENSPjxMRj4gPT4gPExGPgorLy8gPFx1MjAyOD4gPT4gPFx1MjAyOD4KKy8v
IDxcdTIwMjk+ID0+IDxcdTIwMjk+CisvLworLy8gU28sIDxMRj48Q1I+IHNob3VsZCBiZSBub3Jt
YWxpemVkIHRvIDxMRj48TEY+LgorLy8gSG93ZXZlciwgdGhlIGxleGVyIHNob3VsZCBpbmNyZW1l
bnQgdGhlIGxpbmUgbnVtYmVyIG9ubHkgb25jZSBmb3IgPExGPjxDUj4uCisvLworLy8gVG8gYWNo
aWV2ZSB0aGlzLCBMaW5lTnVtYmVyQWRkZXIgaG9sZHMgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIGxp
bmUgdGVybWluYXRvciBzZXF1ZW5jZS4KKy8vIFdoZW4gVGVtcGxhdGVMaXRlcmFsIGxleGVyIGVu
Y291bnRlcnMgYSBsaW5lIHRlcm1pbmF0b3IsIGl0IG5vdGlmaWVzIHRvIExpbmVOdW1iZXJBZGRl
ci4KKy8vIExpbmVOdW1iZXJBZGRlciBtYWludGFpbnMgdGhlIHN0YXR1cyBhbmQgaW5jcmVtZW50
cyB0aGUgbGluZSBudW1iZXIgd2hlbiBpdCdzIG5lY2Vzc2FyeS4KKy8vIEZvciBleGFtcGxlLCBM
aW5lTnVtYmVyQWRkZXIgaW5jcmVtZW50cyB0aGUgbGluZSBudW1iZXIgb25seSBvbmNlIGZvciA8
TEY+PENSPiBhbmQgPENSPjxMRj4uCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgTGluZU51
bWJlckFkZGVyIHsKK3B1YmxpYzoKKyAgICBMaW5lTnVtYmVyQWRkZXIoaW50JiBsaW5lTnVtYmVy
KQorICAgICAgICA6IG1fbGluZU51bWJlcihsaW5lTnVtYmVyKQorICAgICAgICAsIG1fcHJldmlv
dXMoMCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBjbGVhcigpCisgICAgeworICAgICAgICBt
X3ByZXZpb3VzID0gMDsKKyAgICB9CisKKyAgICB2b2lkIGFkZChUIGNoYXJhY3RlcikKKyAgICB7
CisgICAgICAgIEFTU0VSVChMZXhlcjxUPjo6aXNMaW5lVGVybWluYXRvcihjaGFyYWN0ZXIpKTsK
KyAgICAgICAgaWYgKChjaGFyYWN0ZXIgKyBtX3ByZXZpb3VzKSA9PSAnXG4nICsgJ1xyJykKKyAg
ICAgICAgICAgIG1fcHJldmlvdXMgPSAwOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICsr
bV9saW5lTnVtYmVyOworICAgICAgICAgICAgbV9wcmV2aW91cyA9IGNoYXJhY3RlcjsKKyAgICAg
ICAgfQorICAgIH0KKworcHJpdmF0ZToKKyAgICBpbnQmIG1fbGluZU51bWJlcjsKKyAgICBUIG1f
cHJldmlvdXM7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3RlbXBsYXRlIDxib29sIHNo
b3VsZEJ1aWxkU3RyaW5ncz4gdHlwZW5hbWUgTGV4ZXI8VD46OlN0cmluZ1BhcnNlUmVzdWx0IExl
eGVyPFQ+OjpwYXJzZVRlbXBsYXRlTGl0ZXJhbChKU1Rva2VuRGF0YSogdG9rZW5EYXRhKQorewor
ICAgIGNvbnN0IFQqIHN0cmluZ1N0YXJ0ID0gY3VycmVudFNvdXJjZVB0cigpOworICAgIGNvbnN0
IFQqIHJhd1N0cmluZ1N0YXJ0ID0gY3VycmVudFNvdXJjZVB0cigpOworCisgICAgTGluZU51bWJl
ckFkZGVyPFQ+IGxpbmVOdW1iZXJBZGRlcihtX2xpbmVOdW1iZXIpOworCisgICAgd2hpbGUgKG1f
Y3VycmVudCAhPSAnYCcpIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKG1fY3VycmVudCA9PSAnXFwn
KSkgeworICAgICAgICAgICAgbGluZU51bWJlckFkZGVyLmNsZWFyKCk7CisgICAgICAgICAgICBp
ZiAoc3RyaW5nU3RhcnQgIT0gY3VycmVudFNvdXJjZVB0cigpICYmIHNob3VsZEJ1aWxkU3RyaW5n
cykKKyAgICAgICAgICAgICAgICBhcHBlbmQxNihzdHJpbmdTdGFydCwgY3VycmVudFNvdXJjZVB0
cigpIC0gc3RyaW5nU3RhcnQpOworICAgICAgICAgICAgc2hpZnQoKTsKKworICAgICAgICAgICAg
TENoYXIgZXNjYXBlID0gc2luZ2xlRXNjYXBlKG1fY3VycmVudCk7CisKKyAgICAgICAgICAgIC8v
IE1vc3QgY29tbW9uIGVzY2FwZSBzZXF1ZW5jZXMgZmlyc3QuCisgICAgICAgICAgICBpZiAoZXNj
YXBlKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAgICAgICAg
ICAgICAgICAgICAgcmVjb3JkMTYoMCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3RN
b2RlICYmIGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpIHsKLSAgICAgICAgICAgICAgICAv
LyBPY3RhbCBjaGFyYWN0ZXIgc2VxdWVuY2VzCi0gICAgICAgICAgICAgICAgVCBjaGFyYWN0ZXIx
ID0gbV9jdXJyZW50OworICAgICAgICAgICAgICAgICAgICByZWNvcmQxNihlc2NhcGUpOwogICAg
ICAgICAgICAgICAgIHNoaWZ0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGlzQVNDSUlPY3RhbERp
Z2l0KG1fY3VycmVudCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVHdvIG9jdGFsIGNoYXJh
Y3RlcnMKLSAgICAgICAgICAgICAgICAgICAgVCBjaGFyYWN0ZXIyID0gbV9jdXJyZW50OworICAg
ICAgICAgICAgfSBlbHNlIGlmIChVTkxJS0VMWShpc0xpbmVUZXJtaW5hdG9yKG1fY3VycmVudCkp
KSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnXHInKSB7CisgICAgICAgICAg
ICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9jdXJyZW50KTsKICAgICAgICAgICAgICAg
ICAgICAgc2hpZnQoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoYXJhY3RlcjEgPj0gJzAn
ICYmIGNoYXJhY3RlcjEgPD0gJzMnICYmIGlzQVNDSUlPY3RhbERpZ2l0KG1fY3VycmVudCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRCdWlsZFN0cmluZ3MpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVjb3JkMTYoKGNoYXJhY3RlcjEgLSAnMCcpICogNjQgKyAo
Y2hhcmFjdGVyMiAtICcwJykgKiA4ICsgbV9jdXJyZW50IC0gJzAnKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKG1fY3VycmVudCA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBs
aW5lTnVtYmVyQWRkZXIuYWRkKG1fY3VycmVudCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBz
aGlmdCgpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWNvcmQxNigoY2hhcmFjdGVyMSAtICcwJykgKiA4ICsgY2hhcmFjdGVyMiAtICcwJyk7CiAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjb3JkMTYoY2hhcmFjdGVyMSAtICcwJyk7CisgICAgICAgICAgICAgICAgICAgIGxpbmVO
dW1iZXJBZGRlci5hZGQobV9jdXJyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsK
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKCFhdEVuZCgpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykKLSAgICAgICAgICAgICAgICAg
ICAgcmVjb3JkMTYobV9jdXJyZW50KTsKLSAgICAgICAgICAgICAgICBzaGlmdCgpOwogICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtX2xleEVycm9yTWVzc2FnZSA9IEFTQ0lJ
TGl0ZXJhbCgiVW50ZXJtaW5hdGVkIHN0cmluZyBjb25zdGFudCIpOwotICAgICAgICAgICAgICAg
IHJldHVybiBTdHJpbmdVbnRlcm1pbmF0ZWQ7CisgICAgICAgICAgICAgICAgYm9vbCBzdHJpY3RN
b2RlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBTdHJpbmdQYXJzZVJlc3VsdCByZXN1bHQgPSBw
YXJzZUNvbXBsZXhFc2NhcGU8c2hvdWxkQnVpbGRTdHJpbmdzPihFc2NhcGVQYXJzZU1vZGU6OlRl
bXBsYXRlLCBzdHJpY3RNb2RlLCAnYCcpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0g
U3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBzdHJpbmdTdGFydCA9IGN1cnJlbnRT
b3VyY2VQdHIoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisKKyAgICAgICAg
aWYgKG1fY3VycmVudCA9PSAnJCcgJiYgcGVlaygxKSA9PSAneycpCisgICAgICAgICAgICBicmVh
azsKKwogICAgICAgICAvLyBGYXN0IGNoZWNrIGZvciBjaGFyYWN0ZXJzIHRoYXQgcmVxdWlyZSBz
cGVjaWFsIGhhbmRsaW5nLgogICAgICAgICAvLyBDYXRjaGVzIDAsIFxuLCBcciwgMHgyMDI4LCBh
bmQgMHgyMDI5IGFzIGVmZmljaWVudGx5CiAgICAgICAgIC8vIGFzIHBvc3NpYmxlLCBhbmQgbGV0
cyB0aHJvdWdoIGFsbCBjb21tb24gQVNDSUkgY2hhcmFjdGVycy4KICAgICAgICAgaWYgKFVOTElL
RUxZKCgoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fY3VycmVudCkgLSAweEUpICYgMHgyMDAwKSkp
IHsKLSAgICAgICAgICAgIC8vIE5ldy1saW5lIG9yIGVuZCBvZiBpbnB1dCBpcyBub3QgYWxsb3dl
ZAotICAgICAgICAgICAgaWYgKGF0RW5kKCkgfHwgaXNMaW5lVGVybWluYXRvcihtX2N1cnJlbnQp
KSB7CisgICAgICAgICAgICAvLyBFbmQgb2YgaW5wdXQgaXMgbm90IGFsbG93ZWQuCisgICAgICAg
ICAgICAvLyBVbmxpa2UgU3RyaW5nLCBsaW5lIHRlcm1pbmF0b3IgaXMgYWxsb3dlZC4KKyAgICAg
ICAgICAgIGlmIChhdEVuZCgpKSB7CiAgICAgICAgICAgICAgICAgbV9sZXhFcnJvck1lc3NhZ2Ug
PSBBU0NJSUxpdGVyYWwoIlVuZXhwZWN0ZWQgRU9GIik7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGF0RW5kKCkgPyBTdHJpbmdVbnRlcm1pbmF0ZWQgOiBTdHJpbmdDYW5ub3RCZVBhcnNlZDsKICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzTGluZVRlcm1pbmF0b3IobV9jdXJyZW50
KSkgeworICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJ1xyJykgeworICAgICAgICAg
ICAgICAgICAgICAvLyBOb3JtYWxpemUgPENSPiwgPENSPjxMRj4gdG8gPExGPi4KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHN0cmluZ1N0YXJ0ICE9IGN1cnJlbnRTb3VyY2VQdHIoKSAmJiBzaG91
bGRCdWlsZFN0cmluZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQxNihzdHJpbmdT
dGFydCwgY3VycmVudFNvdXJjZVB0cigpIC0gc3RyaW5nU3RhcnQpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoc2hvdWxkQnVpbGRTdHJpbmdzKQorICAgICAgICAgICAgICAgICAgICAgICAgcmVj
b3JkMTYoJ1xuJyk7CisgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9j
dXJyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fY3VycmVudCA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5l
TnVtYmVyQWRkZXIuYWRkKG1fY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzaGlm
dCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHN0cmluZ1N0
YXJ0ID0gY3VycmVudFNvdXJjZVB0cigpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJBZGRlci5hZGQobV9jdXJyZW50KTsKKyAgICAgICAg
ICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICAvLyBBbnl0aGluZyBlbHNlIGlz
IGp1c3QgYSBub3JtYWwgY2hhcmFjdGVyCiAgICAgICAgIH0KKworICAgICAgICBsaW5lTnVtYmVy
QWRkZXIuY2xlYXIoKTsKICAgICAgICAgc2hpZnQoKTsKICAgICB9CiAKKyAgICBib29sIGlzVGFp
bCA9IG1fY3VycmVudCA9PSAnYCc7CisKICAgICBpZiAoY3VycmVudFNvdXJjZVB0cigpICE9IHN0
cmluZ1N0YXJ0ICYmIHNob3VsZEJ1aWxkU3RyaW5ncykKICAgICAgICAgYXBwZW5kMTYoc3RyaW5n
U3RhcnQsIGN1cnJlbnRTb3VyY2VQdHIoKSAtIHN0cmluZ1N0YXJ0KTsKLSAgICBpZiAoc2hvdWxk
QnVpbGRTdHJpbmdzKQotICAgICAgICB0b2tlbkRhdGEtPmlkZW50ID0gbWFrZUlkZW50aWZpZXIo
bV9idWZmZXIxNi5kYXRhKCksIG1fYnVmZmVyMTYuc2l6ZSgpKTsKLSAgICBlbHNlCi0gICAgICAg
IHRva2VuRGF0YS0+aWRlbnQgPSAwOworCisgICAgaWYgKHNob3VsZEJ1aWxkU3RyaW5ncykgewor
ICAgICAgICB0b2tlbkRhdGEtPmNvb2tlZCA9IG1ha2VJZGVudGlmaWVyKG1fYnVmZmVyMTYuZGF0
YSgpLCBtX2J1ZmZlcjE2LnNpemUoKSk7CisgICAgICAgIC8vIFRPRE86IFdoaWxlIGxpbmUgdGVy
bWluYXRvciBub3JtYWxpemF0aW9uIChlLmcuIDxDUj4gPT4gPExGPikgc2hvdWxkIGJlIGFwcGxp
ZWQgdG8gYm90aCB0aGUgcmF3IGFuZCBjb29rZWQgcmVwcmVzZW50YXRpb25zLAorICAgICAgICAv
LyB0aGlzIHJhdyBpbXBsZW1lbnRhdGlvbiBqdXN0IHNsaWNlcyB0aGUgc291cmNlIHN0cmluZy4g
QXMgYSByZXN1bHQsIGxpbmUgdGVybWluYXRvcnMgYXBwZWFyIGluIHRoZSByYXcgcmVwcmVzZW50
YXRpb24gd2l0aG91dCBub3JtYWxpemF0aW9uLgorICAgICAgICAvLyBGb3IgZXhhbXBsZSwgd2hl
biBwYXJzaW5nIGA8Q1I+YCwgPENSPiBhcHBlYXJzIGluIHRoZSByYXcgcmVwcmVzZW50YXRpb24u
CisgICAgICAgIC8vIFdoaWxlIG5vbi10YWdnZWQgdGVtcGxhdGUgbGl0ZXJhbHMgZG9uJ3QgdXNl
IHRoZSByYXcgcmVwcmVzZW50YXRpb24sIHRhZ2dlZCB0ZW1wbGF0ZXMgdXNlIHRoZSByYXcgcmVw
cmVzZW50YXRpb24uCisgICAgICAgIC8vIFNvIGxpbmUgdGVybWluYXRvciBub3JtYWxpemF0aW9u
IHNob3VsZCBiZSBhcHBsaWVkIHRvIHRoZSByYXcgcmVwcmVzZW50YXRpb24gd2hlbiBpbXBsZW1l
bnRpbmcgdGFnZ2VkIHRlbXBsYXRlcy4KKyAgICAgICAgdG9rZW5EYXRhLT5yYXcgPSBtYWtlSWRl
bnRpZmllcihyYXdTdHJpbmdTdGFydCwgY3VycmVudFNvdXJjZVB0cigpIC0gcmF3U3RyaW5nU3Rh
cnQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRva2VuRGF0YS0+Y29va2VkID0gbnVsbHB0cjsK
KyAgICAgICAgdG9rZW5EYXRhLT5yYXcgPSBudWxscHRyOworICAgIH0KKyAgICB0b2tlbkRhdGEt
PmlzVGFpbCA9IGlzVGFpbDsKIAogICAgIG1fYnVmZmVyMTYucmVzaXplKDApOworCisgICAgaWYg
KGlzVGFpbCkgeworICAgICAgICAvLyBTa2lwIGAKKyAgICAgICAgc2hpZnQoKTsKKyAgICB9IGVs
c2UgeworICAgICAgICAvLyBTa2lwICQgYW5kIHsKKyAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
c2hpZnQoKTsKKyAgICB9CisKICAgICByZXR1cm4gU3RyaW5nUGFyc2VkU3VjY2Vzc2Z1bGx5Owog
fQorI2VuZGlmCiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogQUxXQVlTX0lOTElORSB2b2lkIExl
eGVyPFQ+OjpwYXJzZUhleChkb3VibGUmIHJldHVyblZhbHVlKQpAQCAtMTgyNiwyMyArMjAzMSwz
OSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGNoYXJhY3RlclJlcXVpcmVzUGFyc2VTdHJp
bmdTbG93Q2FzZShVQ2hhciBjaGFyYWN0ZXIpCiAgICAgICAgIH0KICAgICAgICAgbV9idWZmZXI4
LnJlc2l6ZSgwKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDaGFyYWN0ZXJRdW90ZToKLSAg
ICAgICAgaWYgKGxleGVyRmxhZ3MgJiBMZXhlckZsYWdzRG9udEJ1aWxkU3RyaW5ncykgewotICAg
ICAgICAgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gcGFyc2VTdHJpbmc8ZmFsc2U+KHRv
a2VuRGF0YSwgc3RyaWN0TW9kZSk7Ci0gICAgICAgICAgICBpZiAoVU5MSUtFTFkocmVzdWx0ICE9
IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkpIHsKLSAgICAgICAgICAgICAgICB0b2tlbiA9IHJl
c3VsdCA9PSBTdHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfU1RSSU5HX0xJVEVSQUxf
RVJST1JUT0sgOiBJTlZBTElEX1NUUklOR19MSVRFUkFMX0VSUk9SVE9LOwotICAgICAgICAgICAg
ICAgIGdvdG8gcmV0dXJuRXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBTdHJpbmdQYXJzZVJlc3VsdCByZXN1bHQgPSBwYXJzZVN0cmluZzx0cnVlPih0
b2tlbkRhdGEsIHN0cmljdE1vZGUpOwotICAgICAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAh
PSBTdHJpbmdQYXJzZWRTdWNjZXNzZnVsbHkpKSB7Ci0gICAgICAgICAgICAgICAgdG9rZW4gPSBy
ZXN1bHQgPT0gU3RyaW5nVW50ZXJtaW5hdGVkID8gVU5URVJNSU5BVEVEX1NUUklOR19MSVRFUkFM
X0VSUk9SVE9LIDogSU5WQUxJRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSzsKLSAgICAgICAgICAg
ICAgICBnb3RvIHJldHVybkVycm9yOwotICAgICAgICAgICAgfQorICAgIGNhc2UgQ2hhcmFjdGVy
UXVvdGU6IHsKKyAgICAgICAgU3RyaW5nUGFyc2VSZXN1bHQgcmVzdWx0ID0gU3RyaW5nQ2Fubm90
QmVQYXJzZWQ7CisgICAgICAgIGlmIChsZXhlckZsYWdzICYgTGV4ZXJGbGFnc0RvbnRCdWlsZFN0
cmluZ3MpCisgICAgICAgICAgICByZXN1bHQgPSBwYXJzZVN0cmluZzxmYWxzZT4odG9rZW5EYXRh
LCBzdHJpY3RNb2RlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VT
dHJpbmc8dHJ1ZT4odG9rZW5EYXRhLCBzdHJpY3RNb2RlKTsKKworICAgICAgICBpZiAoVU5MSUtF
TFkocmVzdWx0ICE9IFN0cmluZ1BhcnNlZFN1Y2Nlc3NmdWxseSkpIHsKKyAgICAgICAgICAgIHRv
a2VuID0gcmVzdWx0ID09IFN0cmluZ1VudGVybWluYXRlZCA/IFVOVEVSTUlOQVRFRF9TVFJJTkdf
TElURVJBTF9FUlJPUlRPSyA6IElOVkFMSURfU1RSSU5HX0xJVEVSQUxfRVJST1JUT0s7CisgICAg
ICAgICAgICBnb3RvIHJldHVybkVycm9yOwogICAgICAgICB9CiAgICAgICAgIHNoaWZ0KCk7CiAg
ICAgICAgIHRva2VuID0gU1RSSU5HOwogICAgICAgICBicmVhazsKKyAgICAgICAgfQorI2lmIEVO
QUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgY2FzZSBDaGFyYWN0ZXJCYWNr
UXVvdGU6IHsKKyAgICAgICAgLy8gU2tpcCBiYWNrcXVvdGUuCisgICAgICAgIHNoaWZ0KCk7Cisg
ICAgICAgIFN0cmluZ1BhcnNlUmVzdWx0IHJlc3VsdCA9IFN0cmluZ0Nhbm5vdEJlUGFyc2VkOwor
ICAgICAgICBpZiAobGV4ZXJGbGFncyAmIExleGVyRmxhZ3NEb250QnVpbGRTdHJpbmdzKQorICAg
ICAgICAgICAgcmVzdWx0ID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWw8ZmFsc2U+KHRva2VuRGF0YSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlVGVtcGxhdGVMaXRlcmFs
PHRydWU+KHRva2VuRGF0YSk7CisKKyAgICAgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBTdHJp
bmdQYXJzZWRTdWNjZXNzZnVsbHkpKSB7CisgICAgICAgICAgICB0b2tlbiA9IHJlc3VsdCA9PSBT
dHJpbmdVbnRlcm1pbmF0ZWQgPyBVTlRFUk1JTkFURURfVEVNUExBVEVfTElURVJBTF9FUlJPUlRP
SyA6IElOVkFMSURfVEVNUExBVEVfTElURVJBTF9FUlJPUlRPSzsKKyAgICAgICAgICAgIGdvdG8g
cmV0dXJuRXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgdG9rZW4gPSBURU1QTEFURTsKKyAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyNlbmRpZgogICAgIGNhc2UgQ2hhcmFjdGVySWRlbnRpZmll
clN0YXJ0OgogICAgICAgICBBU1NFUlQoaXNJZGVudFN0YXJ0KG1fY3VycmVudCkpOwogICAgICAg
ICBGQUxMVEhST1VHSDsKQEAgLTIwMzUsNiArMjI1Niw0MCBAQCBzdGF0aWMgQUxXQVlTX0lOTElO
RSBib29sIGNoYXJhY3RlclJlcXVpcmVzUGFyc2VTdHJpbmdTbG93Q2FzZShVQ2hhciBjaGFyYWN0
ZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVS
QUxfU1lOVEFYKQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitKU1Rva2VuVHlwZSBMZXhlcjxUPjo6
c2NhblRyYWlsaW5nVGVtcGxhdGVTdHJpbmcoSlNUb2tlbiogdG9rZW5SZWNvcmQpCit7CisgICAg
SlNUb2tlbkRhdGEqIHRva2VuRGF0YSA9ICZ0b2tlblJlY29yZC0+bV9kYXRhOworICAgIEpTVG9r
ZW5Mb2NhdGlvbiogdG9rZW5Mb2NhdGlvbiA9ICZ0b2tlblJlY29yZC0+bV9sb2NhdGlvbjsKKyAg
ICBBU1NFUlQoIW1fZXJyb3IpOworICAgIEFTU0VSVChtX2J1ZmZlcjE2LmlzRW1wdHkoKSk7CisK
KyAgICAvLyBMZWFkaW5nIGNsb3NpbmcgYnJhY2UgfSBpcyBhbHJlYWR5IHNoaWZ0ZWQgaW4gdGhl
IHByZXZpb3VzIHRva2VuIHNjYW4uCisgICAgLy8gU28gaW4gdGhpcyByZS1zY2FuIHBoYXNlLCBz
aGlmdCgpIGlzIG5vdCBuZWVkZWQgaGVyZS4KKyAgICBTdHJpbmdQYXJzZVJlc3VsdCByZXN1bHQg
PSBwYXJzZVRlbXBsYXRlTGl0ZXJhbDx0cnVlPih0b2tlbkRhdGEpOworICAgIEpTVG9rZW5UeXBl
IHRva2VuID0gRVJST1JUT0s7CisgICAgaWYgKFVOTElLRUxZKHJlc3VsdCAhPSBTdHJpbmdQYXJz
ZWRTdWNjZXNzZnVsbHkpKSB7CisgICAgICAgIHRva2VuID0gcmVzdWx0ID09IFN0cmluZ1VudGVy
bWluYXRlZCA/IFVOVEVSTUlOQVRFRF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LIDogSU5WQUxJ
RF9URU1QTEFURV9MSVRFUkFMX0VSUk9SVE9LOworICAgICAgICBtX2Vycm9yID0gdHJ1ZTsKKyAg
ICB9IGVsc2UgeworICAgICAgICB0b2tlbiA9IFRFTVBMQVRFOworICAgICAgICBtX2xhc3RUb2tl
biA9IHRva2VuOworICAgIH0KKworICAgIC8vIFNpbmNlIFRlbXBsYXRlU3RyaW5nIGFsd2F5cyBl
bmRzIHdpdGggYCBvciB9LCBtX2F0TGluZVN0YXJ0IGFsd2F5cyBiZWNvbWVzIGZhbHNlLgorICAg
IG1fYXRMaW5lU3RhcnQgPSBmYWxzZTsKKworICAgIC8vIEFkanVzdCBjdXJyZW50IHRva2VuTG9j
YXRpb24gZGF0YSBmb3IgVGVtcGxhdGVTdHJpbmcuCisgICAgdG9rZW5Mb2NhdGlvbi0+bGluZSA9
IG1fbGluZU51bWJlcjsKKyAgICB0b2tlbkxvY2F0aW9uLT5lbmRPZmZzZXQgPSBjdXJyZW50T2Zm
c2V0KCk7CisgICAgdG9rZW5Mb2NhdGlvbi0+bGluZVN0YXJ0T2Zmc2V0ID0gY3VycmVudExpbmVT
dGFydE9mZnNldCgpOworICAgIEFTU0VSVCh0b2tlbkxvY2F0aW9uLT5lbmRPZmZzZXQgPj0gdG9r
ZW5Mb2NhdGlvbi0+bGluZVN0YXJ0T2Zmc2V0KTsKKyAgICB0b2tlblJlY29yZC0+bV9lbmRQb3Np
dGlvbiA9IGN1cnJlbnRQb3NpdGlvbigpOworICAgIHJldHVybiB0b2tlbjsKK30KKyNlbmRpZgor
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIHZvaWQgTGV4ZXI8VD46OmNsZWFyKCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuaAppbmRleCAyZGY1MjEzOTk1NzgyMDA3ODVhMTY2ZTIy
YTczMjc1ZTBlYTYzMDRkLi5iMzM0MGM4N2Y1ZjViNzY3NTc3YTg2M2JlOTZjYmUwODIxZmYzNzVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5oCkBAIC05OSw2ICs5OSw5IEBAIGNs
YXNzIExleGVyIHsKICAgICBpbnQgbGFzdExpbmVOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2xh
c3RMaW5lTnVtYmVyOyB9CiAgICAgYm9vbCBwcmV2VGVybWluYXRvcigpIGNvbnN0IHsgcmV0dXJu
IG1fdGVybWluYXRvcjsgfQogICAgIGJvb2wgc2NhblJlZ0V4cChjb25zdCBJZGVudGlmaWVyKiYg
cGF0dGVybiwgY29uc3QgSWRlbnRpZmllciomIGZsYWdzLCBVQ2hhciBwYXR0ZXJuUHJlZml4ID0g
MCk7CisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBKU1Rva2Vu
VHlwZSBzY2FuVHJhaWxpbmdUZW1wbGF0ZVN0cmluZyhKU1Rva2VuKik7CisjZW5kaWYKICAgICBi
b29sIHNraXBSZWdFeHAoKTsKIAogICAgIC8vIEZ1bmN0aW9ucyBmb3IgdXNlIGFmdGVyIHBhcnNp
bmcuCkBAIC0yMDIsNiArMjA1LDE1IEBAIGNsYXNzIExleGVyIHsKICAgICB9OwogICAgIHRlbXBs
YXRlIDxib29sIHNob3VsZEJ1aWxkU3RyaW5ncz4gQUxXQVlTX0lOTElORSBTdHJpbmdQYXJzZVJl
c3VsdCBwYXJzZVN0cmluZyhKU1Rva2VuRGF0YSosIGJvb2wgc3RyaWN0TW9kZSk7CiAgICAgdGVt
cGxhdGUgPGJvb2wgc2hvdWxkQnVpbGRTdHJpbmdzPiBORVZFUl9JTkxJTkUgU3RyaW5nUGFyc2VS
ZXN1bHQgcGFyc2VTdHJpbmdTbG93Q2FzZShKU1Rva2VuRGF0YSosIGJvb2wgc3RyaWN0TW9kZSk7
CisKKyAgICBlbnVtIGNsYXNzIEVzY2FwZVBhcnNlTW9kZSB7CisgICAgICAgIFRlbXBsYXRlLAor
ICAgICAgICBTdHJpbmcKKyAgICB9OworICAgIHRlbXBsYXRlIDxib29sIHNob3VsZEJ1aWxkU3Ry
aW5ncz4gQUxXQVlTX0lOTElORSBTdHJpbmdQYXJzZVJlc3VsdCBwYXJzZUNvbXBsZXhFc2NhcGUo
RXNjYXBlUGFyc2VNb2RlLCBib29sIHN0cmljdE1vZGUsIFQgc3RyaW5nUXVvdGVDaGFyYWN0ZXIp
OworI2lmIEVOQUJMRShFUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVgpCisgICAgdGVtcGxhdGUg
PGJvb2wgc2hvdWxkQnVpbGRTdHJpbmdzPiBBTFdBWVNfSU5MSU5FIFN0cmluZ1BhcnNlUmVzdWx0
IHBhcnNlVGVtcGxhdGVMaXRlcmFsKEpTVG9rZW5EYXRhKik7CisjZW5kaWYKICAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFyc2VIZXgoZG91YmxlJiByZXR1cm5WYWx1ZSk7CiAgICAgQUxXQVlTX0lO
TElORSBib29sIHBhcnNlQmluYXJ5KGRvdWJsZSYgcmV0dXJuVmFsdWUpOwogICAgIEFMV0FZU19J
TkxJTkUgYm9vbCBwYXJzZU9jdGFsKGRvdWJsZSYgcmV0dXJuVmFsdWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCA3NjdiODUyMTQ1
M2M5ODFlOWI2YzdlMTU5OWI2ZjQzMGQyYTYyOWQ3Li42NGI0NjRjYjQxZDU2ZjljNTgwNWEwMTA3
NzEwOTE1N2VkODk3ZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVDb25zdHJ1Y3RvcnMuaApAQCAtMTAwLDYgKzEwMCw1NSBAQAogICAgIHsKICAgICB9CiAKKyNp
ZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIGlubGluZSBUZW1wbGF0
ZUV4cHJlc3Npb25MaXN0Tm9kZTo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUoRXhwcmVzc2lv
bk5vZGUqIG5vZGUpCisgICAgICAgIDogbV9uZXh0KG51bGxwdHIpCisgICAgICAgICwgbV9ub2Rl
KG5vZGUpCisgICAgeworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0
Tm9kZTo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUoVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5v
ZGUqIHByZXYsIEV4cHJlc3Npb25Ob2RlKiBub2RlKQorICAgICAgICA6IG1fbmV4dChudWxscHRy
KQorICAgICAgICAsIG1fbm9kZShub2RlKQorICAgIHsKKyAgICAgICAgcHJldi0+bV9uZXh0ID0g
dGhpczsKKyAgICB9CisKKyAgICBpbmxpbmUgVGVtcGxhdGVTdHJpbmdOb2RlOjpUZW1wbGF0ZVN0
cmluZ05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmll
ciYgY29va2VkLCBjb25zdCBJZGVudGlmaWVyJiByYXcpCisgICAgICAgIDogRXhwcmVzc2lvbk5v
ZGUobG9jYXRpb24pCisgICAgICAgICwgbV9jb29rZWQoY29va2VkKQorICAgICAgICAsIG1fcmF3
KHJhdykKKyAgICB7CisgICAgfQorCisgICAgaW5saW5lIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGU6
OlRlbXBsYXRlU3RyaW5nTGlzdE5vZGUoVGVtcGxhdGVTdHJpbmdOb2RlKiBub2RlKQorICAgICAg
ICA6IG1fbmV4dChudWxscHRyKQorICAgICAgICAsIG1fbm9kZShub2RlKQorICAgIHsKKyAgICB9
CisKKyAgICBpbmxpbmUgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZTo6VGVtcGxhdGVTdHJpbmdMaXN0
Tm9kZShUZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKiBwcmV2LCBUZW1wbGF0ZVN0cmluZ05vZGUqIG5v
ZGUpCisgICAgICAgIDogbV9uZXh0KG51bGxwdHIpCisgICAgICAgICwgbV9ub2RlKG5vZGUpCisg
ICAgeworICAgICAgICBwcmV2LT5tX25leHQgPSB0aGlzOworICAgIH0KKworICAgIGlubGluZSBU
ZW1wbGF0ZUxpdGVyYWxOb2RlOjpUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIHRlbXBsYXRlU3RyaW5ncykK
KyAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBtX3RlbXBsYXRl
U3RyaW5ncyh0ZW1wbGF0ZVN0cmluZ3MpCisgICAgICAgICwgbV90ZW1wbGF0ZUV4cHJlc3Npb25z
KG51bGxwdHIpCisgICAgeworICAgIH0KKworICAgIGlubGluZSBUZW1wbGF0ZUxpdGVyYWxOb2Rl
OjpUZW1wbGF0ZUxpdGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFRl
bXBsYXRlU3RyaW5nTGlzdE5vZGUqIHRlbXBsYXRlU3RyaW5ncywgVGVtcGxhdGVFeHByZXNzaW9u
TGlzdE5vZGUqIHRlbXBsYXRlRXhwcmVzc2lvbnMpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUo
bG9jYXRpb24pCisgICAgICAgICwgbV90ZW1wbGF0ZVN0cmluZ3ModGVtcGxhdGVTdHJpbmdzKQor
ICAgICAgICAsIG1fdGVtcGxhdGVFeHByZXNzaW9ucyh0ZW1wbGF0ZUV4cHJlc3Npb25zKQorICAg
IHsKKyAgICB9CisjZW5kaWYKKwogICAgIGlubGluZSBSZWdFeHBOb2RlOjpSZWdFeHBOb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIHBhdHRlcm4s
IGNvbnN0IElkZW50aWZpZXImIGZsYWdzKQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0
aW9uKQogICAgICAgICAsIG1fcGF0dGVybihwYXR0ZXJuKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCmluZGV4IDg1OWYzMjE1OGI0NjMxZTZkZDhlZDBmNDRmOTdkMDNhYmNhNjg3NWYu
LjQ1ZjljNDlkYmYyNzkxZWIxN2Q4MDk3MDllNWUwMjFmOWEwYTMzNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTI3NCw3ICsyNzQsNyBAQAogCiAgICAgICAgIGNvbnN0
IElkZW50aWZpZXImIG1fdmFsdWU7CiAgICAgfTsKLSAgICAKKwogICAgIGNsYXNzIFRocm93YWJs
ZUV4cHJlc3Npb25EYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFRocm93YWJsZUV4cHJlc3Np
b25EYXRhKCkKQEAgLTQyNyw2ICs0MjcsNjAgQEAKICAgICAgICAgdWludDE2X3QgbV9zdWJleHBy
ZXNzaW9uTGluZVN0YXJ0T2Zmc2V0OwogICAgIH07CiAKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRF
X0xJVEVSQUxfU1lOVEFYKQorICAgIGNsYXNzIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlIDog
cHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgVGVtcGxh
dGVFeHByZXNzaW9uTGlzdE5vZGUoRXhwcmVzc2lvbk5vZGUqKTsKKyAgICAgICAgVGVtcGxhdGVF
eHByZXNzaW9uTGlzdE5vZGUoVGVtcGxhdGVFeHByZXNzaW9uTGlzdE5vZGUqLCBFeHByZXNzaW9u
Tm9kZSopOworCisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiB2YWx1ZSgpIHsgcmV0dXJuIG1fbm9k
ZTsgfQorICAgICAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0Tm9kZSogbmV4dCgpIHsgcmV0dXJu
IG1fbmV4dDsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVGVtcGxhdGVFeHByZXNzaW9uTGlz
dE5vZGUqIG1fbmV4dDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fbm9kZTsKKyAgICB9Owor
CisgICAgY2xhc3MgVGVtcGxhdGVTdHJpbmdOb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIFRlbXBsYXRlU3RyaW5nTm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiBjb29rZWQsIGNvbnN0IElkZW50aWZpZXImIHJhdyk7
CisKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgY29va2VkKCkgeyByZXR1cm4gbV9jb29rZWQ7
IH0KKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgcmF3KCkgeyByZXR1cm4gbV9yYXc7IH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBj
b25zdCBJZGVudGlmaWVyJiBtX2Nvb2tlZDsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9y
YXc7CisgICAgfTsKKworICAgIGNsYXNzIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUgOiBwdWJsaWMg
UGFyc2VyQXJlbmFGcmVlYWJsZSB7CisgICAgcHVibGljOgorICAgICAgICBUZW1wbGF0ZVN0cmlu
Z0xpc3ROb2RlKFRlbXBsYXRlU3RyaW5nTm9kZSopOworICAgICAgICBUZW1wbGF0ZVN0cmluZ0xp
c3ROb2RlKFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqLCBUZW1wbGF0ZVN0cmluZ05vZGUqKTsKKwor
ICAgICAgICBUZW1wbGF0ZVN0cmluZ05vZGUqIHZhbHVlKCkgeyByZXR1cm4gbV9ub2RlOyB9Cisg
ICAgICAgIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIG5leHQoKSB7IHJldHVybiBtX25leHQ7IH0K
KworICAgIHByaXZhdGU6CisgICAgICAgIFRlbXBsYXRlU3RyaW5nTGlzdE5vZGUqIG1fbmV4dDsK
KyAgICAgICAgVGVtcGxhdGVTdHJpbmdOb2RlKiBtX25vZGU7CisgICAgfTsKKworICAgIGNsYXNz
IFRlbXBsYXRlTGl0ZXJhbE5vZGUgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgVGVtcGxhdGVMaXRlcmFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBU
ZW1wbGF0ZVN0cmluZ0xpc3ROb2RlKik7CisgICAgICAgIFRlbXBsYXRlTGl0ZXJhbE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSosIFRlbXBsYXRlRXhw
cmVzc2lvbkxpc3ROb2RlKik7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIFJlZ2lz
dGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkg
b3ZlcnJpZGU7CisKKyAgICAgICAgVGVtcGxhdGVTdHJpbmdMaXN0Tm9kZSogbV90ZW1wbGF0ZVN0
cmluZ3M7CisgICAgICAgIFRlbXBsYXRlRXhwcmVzc2lvbkxpc3ROb2RlKiBtX3RlbXBsYXRlRXhw
cmVzc2lvbnM7CisgICAgfTsKKyNlbmRpZgorCiAgICAgY2xhc3MgUmVnRXhwTm9kZSA6IHB1Ymxp
YyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIFJlZ0V4cE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3Qg
SWRlbnRpZmllciYgcGF0dGVybiwgY29uc3QgSWRlbnRpZmllciYgZmxhZ3MpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IDMyZDI1MGNhN2NjNTNmNGJlYTYxZjYx
YjZkYWJmZTY0YmNiYzY4NDYuLmUxNjU0NmNhOWEwYjc3YTAwNTRiYTc2MmZjZWU5OWRlMGU5M2E0
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTIyNTYsNiAr
MjI1Niw2NiBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzVW5hcnlPcChKU1Rva2VuVHlw
ZSB0b2tlbikKICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVBcnJheShsb2NhdGlvbiwgZWxlbWVu
dExpc3QpOwogfQogCisjaWYgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCkKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Cit0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZVN0cmluZyBQYXJzZXI8TGV4ZXJUeXBlPjo6
cGFyc2VUZW1wbGF0ZVN0cmluZyhUcmVlQnVpbGRlciYgY29udGV4dCwgYm9vbCBpc1RlbXBsYXRl
SGVhZCwgYm9vbCYgZWxlbWVudElzVGFpbCkKK3sKKyAgICBpZiAoIWlzVGVtcGxhdGVIZWFkKSB7
CisgICAgICAgIG1hdGNoT3JGYWlsKENMT1NFQlJBQ0UsICJFeHBlY3RlZCBhIGNsb3NpbmcgJ30n
IGZvbGxvd2luZyBhbiBleHByZXNzaW9uIGluIHRlbXBsYXRlIGxpdGVyYWwiKTsKKyAgICAgICAg
Ly8gUmUtc2NhbiB0aGUgdG9rZW4gdG8gcmVjb2duaXplIGl0IGFzIFRlbXBsYXRlIEVsZW1lbnQu
CisgICAgICAgIG1fdG9rZW4ubV90eXBlID0gbV9sZXhlci0+c2NhblRyYWlsaW5nVGVtcGxhdGVT
dHJpbmcoJm1fdG9rZW4pOworICAgIH0KKyAgICBtYXRjaE9yRmFpbChURU1QTEFURSwgIkV4cGVj
dGVkIGFuIHRlbXBsYXRlIGVsZW1lbnQiKTsKKyAgICBjb25zdCBJZGVudGlmaWVyKiBjb29rZWQg
PSBtX3Rva2VuLm1fZGF0YS5jb29rZWQ7CisgICAgY29uc3QgSWRlbnRpZmllciogcmF3ID0gbV90
b2tlbi5tX2RhdGEucmF3OworICAgIGVsZW1lbnRJc1RhaWwgPSBtX3Rva2VuLm1fZGF0YS5pc1Rh
aWw7CisgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CisgICAg
bmV4dCgpOworICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZVRlbXBsYXRlU3RyaW5nKGxvY2F0aW9u
LCAqY29va2VkLCAqcmF3KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KK3Rl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRl
TGl0ZXJhbCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VUZW1wbGF0ZUxpdGVyYWwoVHJlZUJ1aWxk
ZXImIGNvbnRleHQpCit7CisgICAgSlNUb2tlbkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRp
b24oKSk7CisgICAgYm9vbCBlbGVtZW50SXNUYWlsID0gZmFsc2U7CisKKyAgICBhdXRvIGhlYWRU
ZW1wbGF0ZVN0cmluZyA9IHBhcnNlVGVtcGxhdGVTdHJpbmcoY29udGV4dCwgdHJ1ZSwgZWxlbWVu
dElzVGFpbCk7CisgICAgZmFpbElmRmFsc2UoaGVhZFRlbXBsYXRlU3RyaW5nLCAiQ2Fubm90IHBh
cnNlIGhlYWQgdGVtcGxhdGUgZWxlbWVudCIpOworCisgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6
OlRlbXBsYXRlU3RyaW5nTGlzdCB0ZW1wbGF0ZVN0cmluZ0xpc3QgPSBjb250ZXh0LmNyZWF0ZVRl
bXBsYXRlU3RyaW5nTGlzdChoZWFkVGVtcGxhdGVTdHJpbmcpOworICAgIHR5cGVuYW1lIFRyZWVC
dWlsZGVyOjpUZW1wbGF0ZVN0cmluZ0xpc3QgdGVtcGxhdGVTdHJpbmdUYWlsID0gdGVtcGxhdGVT
dHJpbmdMaXN0OworCisgICAgaWYgKGVsZW1lbnRJc1RhaWwpCisgICAgICAgIHJldHVybiBjb250
ZXh0LmNyZWF0ZVRlbXBsYXRlTGl0ZXJhbChsb2NhdGlvbiwgdGVtcGxhdGVTdHJpbmdMaXN0KTsK
KworICAgIGZhaWxJZlRydWUobWF0Y2goQ0xPU0VCUkFDRSksICJUZW1wbGF0ZSBsaXRlcmFsIGV4
cHJlc3Npb24gY2Fubm90IGJlIGVtcHR5Iik7CisgICAgVHJlZUV4cHJlc3Npb24gZXhwcmVzc2lv
biA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0KTsKKyAgICBmYWlsSWZGYWxzZShleHByZXNzaW9u
LCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24gaW4gdGVtcGxhdGUgbGl0ZXJhbCIpOworCisgICAg
dHlwZW5hbWUgVHJlZUJ1aWxkZXI6OlRlbXBsYXRlRXhwcmVzc2lvbkxpc3QgdGVtcGxhdGVFeHBy
ZXNzaW9uTGlzdCA9IGNvbnRleHQuY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChleHByZXNz
aW9uKTsKKyAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVFeHByZXNzaW9uTGlzdCB0
ZW1wbGF0ZUV4cHJlc3Npb25UYWlsID0gdGVtcGxhdGVFeHByZXNzaW9uTGlzdDsKKworICAgIGF1
dG8gdGVtcGxhdGVTdHJpbmcgPSBwYXJzZVRlbXBsYXRlU3RyaW5nKGNvbnRleHQsIGZhbHNlLCBl
bGVtZW50SXNUYWlsKTsKKyAgICBmYWlsSWZGYWxzZSh0ZW1wbGF0ZVN0cmluZywgIkNhbm5vdCBw
YXJzZSB0ZW1wbGF0ZSBlbGVtZW50Iik7CisgICAgdGVtcGxhdGVTdHJpbmdUYWlsID0gY29udGV4
dC5jcmVhdGVUZW1wbGF0ZVN0cmluZ0xpc3QodGVtcGxhdGVTdHJpbmdUYWlsLCB0ZW1wbGF0ZVN0
cmluZyk7CisKKyAgICB3aGlsZSAoIWVsZW1lbnRJc1RhaWwpIHsKKyAgICAgICAgZmFpbElmVHJ1
ZShtYXRjaChDTE9TRUJSQUNFKSwgIlRlbXBsYXRlIGxpdGVyYWwgZXhwcmVzc2lvbiBjYW5ub3Qg
YmUgZW1wdHkiKTsKKyAgICAgICAgVHJlZUV4cHJlc3Npb24gZXhwcmVzc2lvbiA9IHBhcnNlRXhw
cmVzc2lvbihjb250ZXh0KTsKKyAgICAgICAgZmFpbElmRmFsc2UoZXhwcmVzc2lvbiwgIkNhbm5v
dCBwYXJzZSBleHByZXNzaW9uIGluIHRlbXBsYXRlIGxpdGVyYWwiKTsKKworICAgICAgICB0ZW1w
bGF0ZUV4cHJlc3Npb25UYWlsID0gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUV4cHJlc3Npb25MaXN0
KHRlbXBsYXRlRXhwcmVzc2lvblRhaWwsIGV4cHJlc3Npb24pOworCisgICAgICAgIGF1dG8gdGVt
cGxhdGVTdHJpbmcgPSBwYXJzZVRlbXBsYXRlU3RyaW5nKGNvbnRleHQsIGZhbHNlLCBlbGVtZW50
SXNUYWlsKTsKKyAgICAgICAgZmFpbElmRmFsc2UodGVtcGxhdGVTdHJpbmcsICJDYW5ub3QgcGFy
c2UgdGVtcGxhdGUgZWxlbWVudCIpOworICAgICAgICB0ZW1wbGF0ZVN0cmluZ1RhaWwgPSBjb250
ZXh0LmNyZWF0ZVRlbXBsYXRlU3RyaW5nTGlzdCh0ZW1wbGF0ZVN0cmluZ1RhaWwsIHRlbXBsYXRl
U3RyaW5nKTsKKyAgICB9CisKKyAgICByZXR1cm4gY29udGV4dC5jcmVhdGVUZW1wbGF0ZUxpdGVy
YWwobG9jYXRpb24sIHRlbXBsYXRlU3RyaW5nTGlzdCwgdGVtcGxhdGVFeHByZXNzaW9uTGlzdCk7
Cit9CisjZW5kaWYKKwogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KIHRlbXBsYXRlIDxj
bGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNl
UHJpbWFyeUV4cHJlc3Npb24oVHJlZUJ1aWxkZXImIGNvbnRleHQpCiB7CkBAIC0yMzU3LDYgKzI0
MTcsMTAgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUg
dG9rZW4pCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHJlOwogICAgIH0KKyNpZiBFTkFCTEUo
RVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKQorICAgIGNhc2UgVEVNUExBVEU6CisgICAgICAg
IHJldHVybiBwYXJzZVRlbXBsYXRlTGl0ZXJhbChjb250ZXh0KTsKKyNlbmRpZgogICAgIGRlZmF1
bHQ6CiAgICAgICAgIGZhaWxEdWVUb1VuZXhwZWN0ZWRUb2tlbigpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCmluZGV4IDBmMjcyOGY4NjIxZjgwMTBjNDEwYmY3OTg3
NjE5YmYyM2U1MGFmOGIuLmJkZTRiMGVlMTI4M2VjMGExZDMzM2Y5Y2VmNWNkZTA4M2EwOWY1YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaApAQCAtNzc2LDYgKzc3NiwxMCBA
QCBjbGFzcyBQYXJzZXIgewogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIFRyZWVDbGFzc0V4cHJlc3Npb24g
cGFyc2VDbGFzcyhUcmVlQnVpbGRlciYsIEZ1bmN0aW9uUmVxdWlyZW1lbnRzLCBQYXJzZXJDbGFz
c0luZm88VHJlZUJ1aWxkZXI+Jik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJ
VEVSQUxfU1lOVEFYKQorICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5M
SU5FIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpUZW1wbGF0ZVN0cmluZyBwYXJzZVRlbXBsYXRlU3Ry
aW5nKFRyZWVCdWlsZGVyJiBjb250ZXh0LCBib29sIGlzVGVtcGxhdGVIZWFkLCBib29sJiBlbGVt
ZW50SXNUYWlsKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElO
RSB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6VGVtcGxhdGVMaXRlcmFsIHBhcnNlVGVtcGxhdGVMaXRl
cmFsKFRyZWVCdWlsZGVyJik7CisjZW5kaWYKIAogICAgIEFMV0FZU19JTkxJTkUgaW50IGlzQmlu
YXJ5T3BlcmF0b3IoSlNUb2tlblR5cGUpOwogICAgIGJvb2wgYWxsb3dBdXRvbWF0aWNTZW1pY29s
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9r
ZW5zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCmluZGV4
IDgzMjlmODJhOWIyZmY5MTVkMWYyNDFjMWY4YmZmYWQ0MjQ3YTVmMGIuLjAyNmU0ZjgwZjQzN2Q4
YmZlNGE2MTljMzBkMTFkYzlmYzYxZTI2NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXJUb2tlbnMuaApAQCAtOTYsNiArOTYsNyBAQCBlbnVtIEpTVG9rZW5UeXBlIHsK
ICAgICBET1VCTEUsCiAgICAgSURFTlQsCiAgICAgU1RSSU5HLAorICAgIFRFTVBMQVRFLAogICAg
IFNFTUlDT0xPTiwKICAgICBDT0xPTiwKICAgICBET1QsCkBAIC0xNjEsNyArMTYyLDkgQEAgZW51
bSBKU1Rva2VuVHlwZSB7CiAgICAgSU5WQUxJRF9TVFJJTkdfTElURVJBTF9FUlJPUlRPSyA9IDkg
fCBFcnJvclRva2VuRmxhZywKICAgICBJTlZBTElEX1BSSVZBVEVfTkFNRV9FUlJPUlRPSyA9IDEw
IHwgRXJyb3JUb2tlbkZsYWcsCiAgICAgSU5WQUxJRF9IRVhfTlVNQkVSX0VSUk9SVE9LID0gMTEg
fCBFcnJvclRva2VuRmxhZywKLSAgICBJTlZBTElEX0JJTkFSWV9OVU1CRVJfRVJST1JUT0sgPSAx
MiB8IEVycm9yVG9rZW5GbGFnCisgICAgSU5WQUxJRF9CSU5BUllfTlVNQkVSX0VSUk9SVE9LID0g
MTIgfCBFcnJvclRva2VuRmxhZywKKyAgICBVTlRFUk1JTkFURURfVEVNUExBVEVfTElURVJBTF9F
UlJPUlRPSyA9IDEzIHwgRXJyb3JUb2tlbkZsYWcgfCBVbnRlcm1pbmF0ZWRFcnJvclRva2VuRmxh
ZywKKyAgICBJTlZBTElEX1RFTVBMQVRFX0xJVEVSQUxfRVJST1JUT0sgPSAxNCB8IEVycm9yVG9r
ZW5GbGFnLAogfTsKIAogc3RydWN0IEpTVGV4dFBvc2l0aW9uIHsKQEAgLTE4OSw2ICsxOTIsMTEg
QEAgc3RydWN0IEpTVGV4dFBvc2l0aW9uIHsKICAgICB9OwogICAgIGRvdWJsZSBkb3VibGVWYWx1
ZTsKICAgICBjb25zdCBJZGVudGlmaWVyKiBpZGVudDsKKyAgICBzdHJ1Y3QgeworICAgICAgICBj
b25zdCBJZGVudGlmaWVyKiBjb29rZWQ7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXIqIHJhdzsK
KyAgICAgICAgYm9vbCBpc1RhaWw7CisgICAgfTsKIH07CiAKIHN0cnVjdCBKU1Rva2VuTG9jYXRp
b24gewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVj
a2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAppbmRl
eCA4ZTRmNjFiOTQ5ODkwYjliZjU0MDI5ZTk2NjYxZWVmNTNhMTdiNTg0Li41NTRlNWRmNjRhNzIx
ZjQ0NjJkMGQ4OWFiMDIzYWZkZDc1M2M1NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1N5bnRheENoZWNrZXIuaApAQCAtODEsNyArODEsOCBAQCBjbGFzcyBTeW50YXhDaGVj
a2VyIHsKICAgICAgICAgRnVuY3Rpb25Cb2R5UmVzdWx0LCBTcHJlYWRFeHByLCBBcmd1bWVudHNS
ZXN1bHQsCiAgICAgICAgIFByb3BlcnR5TGlzdFJlc3VsdCwgQXJndW1lbnRzTGlzdFJlc3VsdCwg
RWxlbWVudHNMaXN0UmVzdWx0LAogICAgICAgICBTdGF0ZW1lbnRSZXN1bHQsIEZvcm1hbFBhcmFt
ZXRlckxpc3RSZXN1bHQsIENsYXVzZVJlc3VsdCwKLSAgICAgICAgQ2xhdXNlTGlzdFJlc3VsdCwg
Q29tbWFFeHByLCBEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnQKKyAgICAgICAgQ2xhdXNlTGlzdFJl
c3VsdCwgQ29tbWFFeHByLCBEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnQsCisgICAgICAgIFRlbXBs
YXRlU3RyaW5nUmVzdWx0LCBUZW1wbGF0ZVN0cmluZ0xpc3RSZXN1bHQsIFRlbXBsYXRlRXhwcmVz
c2lvbkxpc3RSZXN1bHQsIFRlbXBsYXRlRXhwcgogICAgIH07CiAgICAgdHlwZWRlZiBpbnQgRXhw
cmVzc2lvblR5cGU7CiAKQEAgLTExMSw2ICsxMTIsMTIgQEAgY2xhc3MgU3ludGF4Q2hlY2tlciB7
CiAgICAgdHlwZWRlZiBpbnQgUHJvcGVydHlMaXN0OwogICAgIHR5cGVkZWYgaW50IEVsZW1lbnRM
aXN0OwogICAgIHR5cGVkZWYgaW50IEFyZ3VtZW50c0xpc3Q7CisjaWYgRU5BQkxFKEVTNl9URU1Q
TEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICB0eXBlZGVmIGludCBUZW1wbGF0ZUV4cHJlc3Npb25M
aXN0OworICAgIHR5cGVkZWYgaW50IFRlbXBsYXRlU3RyaW5nOworICAgIHR5cGVkZWYgaW50IFRl
bXBsYXRlU3RyaW5nTGlzdDsKKyAgICB0eXBlZGVmIGludCBUZW1wbGF0ZUxpdGVyYWw7CisjZW5k
aWYKICAgICB0eXBlZGVmIGludCBGb3JtYWxQYXJhbWV0ZXJMaXN0OwogICAgIHR5cGVkZWYgaW50
IEZ1bmN0aW9uQm9keTsKICNpZiBFTkFCTEUoRVM2X0NMQVNTX1NZTlRBWCkKQEAgLTE3Myw2ICsx
ODAsMTYgQEAgY2xhc3MgU3ludGF4Q2hlY2tlciB7CiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50cygp
IHsgcmV0dXJuIEFyZ3VtZW50c1Jlc3VsdDsgfQogICAgIGludCBjcmVhdGVBcmd1bWVudHMoaW50
KSB7IHJldHVybiBBcmd1bWVudHNSZXN1bHQ7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVT
cHJlYWRFeHByZXNzaW9uKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25UeXBlLCBp
bnQsIGludCwgaW50KSB7IHJldHVybiBTcHJlYWRFeHByOyB9CisjaWYgRU5BQkxFKEVTNl9URU1Q
TEFURV9MSVRFUkFMX1NZTlRBWCkKKyAgICBUZW1wbGF0ZVN0cmluZyBjcmVhdGVUZW1wbGF0ZVN0
cmluZyhjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgSWRl
bnRpZmllciYpIHsgcmV0dXJuIFRlbXBsYXRlU3RyaW5nUmVzdWx0OyB9CisgICAgVGVtcGxhdGVT
dHJpbmdMaXN0IGNyZWF0ZVRlbXBsYXRlU3RyaW5nTGlzdChUZW1wbGF0ZVN0cmluZykgeyByZXR1
cm4gVGVtcGxhdGVTdHJpbmdMaXN0UmVzdWx0OyB9CisgICAgVGVtcGxhdGVTdHJpbmdMaXN0IGNy
ZWF0ZVRlbXBsYXRlU3RyaW5nTGlzdChUZW1wbGF0ZVN0cmluZ0xpc3QsIFRlbXBsYXRlU3RyaW5n
KSB7IHJldHVybiBUZW1wbGF0ZVN0cmluZ0xpc3RSZXN1bHQ7IH0KKyAgICBUZW1wbGF0ZUV4cHJl
c3Npb25MaXN0IGNyZWF0ZVRlbXBsYXRlRXhwcmVzc2lvbkxpc3QoRXhwcmVzc2lvbikgeyByZXR1
cm4gVGVtcGxhdGVFeHByZXNzaW9uTGlzdFJlc3VsdDsgfQorICAgIFRlbXBsYXRlRXhwcmVzc2lv
bkxpc3QgY3JlYXRlVGVtcGxhdGVFeHByZXNzaW9uTGlzdChUZW1wbGF0ZUV4cHJlc3Npb25MaXN0
LCBFeHByZXNzaW9uKSB7IHJldHVybiBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0OyB9Cisg
ICAgVGVtcGxhdGVMaXRlcmFsIGNyZWF0ZVRlbXBsYXRlTGl0ZXJhbChjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBUZW1wbGF0ZVN0cmluZ0xpc3QpIHsgcmV0dXJuIFRlbXBsYXRlRXhwcjsgfQorICAg
IFRlbXBsYXRlTGl0ZXJhbCBjcmVhdGVUZW1wbGF0ZUxpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgVGVtcGxhdGVTdHJpbmdMaXN0LCBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0KSB7IHJldHVy
biBUZW1wbGF0ZUV4cHI7IH0KKyNlbmRpZgorCiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50c0xpc3Qo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50KSB7IHJldHVybiBBcmd1bWVudHNMaXN0UmVzdWx0
OyB9CiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50c0xpc3QoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
aW50LCBpbnQpIHsgcmV0dXJuIEFyZ3VtZW50c0xpc3RSZXN1bHQ7IH0KICAgICBQcm9wZXJ0eSBj
cmVhdGVQcm9wZXJ0eShjb25zdCBJZGVudGlmaWVyKiBuYW1lLCBpbnQsIFByb3BlcnR5Tm9kZTo6
VHlwZSB0eXBlLCBQcm9wZXJ0eU5vZGU6OlB1dFR5cGUsIGJvb2wgY29tcGxldGUsIFN1cGVyQmlu
ZGluZyA9IFN1cGVyQmluZGluZzo6Tm90TmVlZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggYjhmYTFhYmY4MDA2ZTJhZjgz
OTMyYmM4OTcwZTgyZGVhZjFkNjk0OC4uMDA5YjM1MDBiYTQyYWIwODgzNzIyZGQ3ODg5YzYyODYx
MmZlOWE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwCkBAIC0zMzcsNiArMzM3LDEyIEBAIHN0YXRpYyBDb21tb25TbG93UGF0aHM6
OkFyaXR5Q2hlY2tEYXRhKiBzZXR1cEFyaXR5Q2hlY2tEYXRhKFZNJiB2bSwgaW50IHNsb3RzVG9B
CiAgICAgUkVUVVJOKGpzTnVtYmVyKE9QX0MoMikuanNWYWx1ZSgpLnRvTnVtYmVyKGV4ZWMpKSk7
CiB9CiAKK1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90b19zdHJpbmcpCit7CisgICAgQkVHSU4o
KTsKKyAgICBSRVRVUk4oT1BfQygyKS5qc1ZhbHVlKCkudG9TdHJpbmcoZXhlYykpOworfQorCiBT
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfbmVnYXRlKQogewogICAgIEJFR0lOKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IDBmNjdl
NjMyZGVkZDFiOTQ5OWYxNDAxMWNjZWQ5MjAxMmYwNDAxOTIuLjRkOGUzZmM4ZTM3MGYxZWE5MDEx
MmU0YmVjYTRlODQzZWU5ZDQ3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vblNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5oCkBAIC0yMDEsNiArMjAxLDcgQEAgaW5saW5lIHZvaWQgZGVj
b2RlUmVzdWx0KFNsb3dQYXRoUmV0dXJuVHlwZSByZXN1bHQsIHZvaWQqJiBhLCB2b2lkKiYgYikK
IFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW5jKTsKIFNMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfZGVjKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdG9f
bnVtYmVyKTsKK1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdG9fc3RyaW5nKTsKIFNM
T1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmVnYXRlKTsKIFNMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfYWRkKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbXVs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxh
dGUtbGl0ZXJhbC1saW5lLXRlcm1pbmF0b3JzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy90ZW1wbGF0ZS1saXRlcmFsLWxpbmUtdGVybWluYXRvcnMuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWQ1MDRiZWZiZTlkMTQ2M2ZhNmZjMGNmOWQ5M2ZhMmMxZTc1NGRkNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJh
bC1saW5lLXRlcm1pbmF0b3JzLmpzCkBAIC0wLDAgKzEsNTYgQEAKK2Z1bmN0aW9uIHRlc3QoYWN0
dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoImJhZCB2YWx1ZTogIiArIGFjdHVhbCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RFdmFsKHNjcmlwdCwgZXhwZWN0ZWQpIHsKKyAgICB0ZXN0KGV2YWwoc2NyaXB0KSwgZXhwZWN0
ZWQpOworfQorCitmdW5jdGlvbiB0ZXN0RXZhbExpbmVOdW1iZXIoc2NyaXB0LCBleHBlY3RlZCwg
bGluZU51bSkgeworICAgIHRlc3RFdmFsKHNjcmlwdCwgZXhwZWN0ZWQpOworCisgICAgdmFyIGVy
cm9yID0gbnVsbDsKKyAgICB2YXIgYWN0dWFsTGluZTsKKyAgICB0cnkgeworICAgICAgICBldmFs
KHNjcmlwdCArICc7dGhyb3cgbmV3IEVycm9yKCJsaW5lIik7Jyk7CisgICAgfSBjYXRjaCAoZXJy
b3IpIHsKKyAgICAgICAgYWN0dWFsTGluZSA9IGVycm9yLmxpbmU7CisgICAgfQorICAgIHRlc3Qo
YWN0dWFsTGluZSwgbGluZU51bSk7Cit9CisKK3Rlc3QoYEhlbGxvYCwgIkhlbGxvIik7Cit0ZXN0
KGBIZWxsbyBXb3JsZGAsICJIZWxsbyBXb3JsZCIpOwordGVzdChgCitgLCAiXG4iKTsKK3Rlc3Qo
YEhlbGxvCitXb3JsZGAsICJIZWxsb1xuV29ybGQiKTsKKwordGVzdEV2YWxMaW5lTnVtYmVyKCJg
SGVsbG8gV29ybGRgIiwgIkhlbGxvIFdvcmxkIiwgMSk7CisKK3Rlc3RFdmFsTGluZU51bWJlcigi
YEhlbGxvXHJXb3JsZGAiLCAiSGVsbG9cbldvcmxkIiwgMik7Cit0ZXN0RXZhbExpbmVOdW1iZXIo
ImBIZWxsb1xuV29ybGRgIiwgIkhlbGxvXG5Xb3JsZCIsIDIpOworCit0ZXN0RXZhbExpbmVOdW1i
ZXIoImBIZWxsb1xyXHJXb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGlu
ZU51bWJlcigiYEhlbGxvXHJcbldvcmxkYCIsICJIZWxsb1xuV29ybGQiLCAyKTsKK3Rlc3RFdmFs
TGluZU51bWJlcigiYEhlbGxvXG5cbldvcmxkYCIsICJIZWxsb1xuXG5Xb3JsZCIsIDMpOwordGVz
dEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cblxyV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgMik7
CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXG5cclxuV29ybGRgIiwgIkhlbGxvXG5cbldv
cmxkIiwgMyk7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xyXG5ccldvcmxkYCIsICJIZWxs
b1xuXG5Xb3JsZCIsIDMpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cblxuXG5Xb3JsZGAi
LCAiSGVsbG9cblxuXG5Xb3JsZCIsIDQpOworCit0ZXN0RXZhbExpbmVOdW1iZXIoImBIZWxsb1xu
XHJcblxyV29ybGRgIiwgIkhlbGxvXG5cblxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGluZU51bWJl
cigiYEhlbGxvXG5cclxuXG5Xb3JsZGAiLCAiSGVsbG9cblxuXG5Xb3JsZCIsIDQpOwordGVzdEV2
YWxMaW5lTnVtYmVyKCJgSGVsbG9cclxuXG5cbldvcmxkYCIsICJIZWxsb1xuXG5cbldvcmxkIiwg
NCk7CisKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXFxcblxyXHJXb3JsZGAiLCAiSGVsbG9c
blxuV29ybGQiLCAzKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYEhlbGxvXFxcclxuXG5cbldvcmxk
YCIsICJIZWxsb1xuXG5Xb3JsZCIsIDQpOwordGVzdEV2YWxMaW5lTnVtYmVyKCJgSGVsbG9cXFxu
XHJcblxuV29ybGRgIiwgIkhlbGxvXG5cbldvcmxkIiwgNCk7Cit0ZXN0RXZhbExpbmVOdW1iZXIo
ImBIZWxsb1xcXG5cclxyXG5Xb3JsZGAiLCAiSGVsbG9cblxuV29ybGQiLCAzKTsKKwordGVzdEV2
YWxMaW5lTnVtYmVyKCJgXHUyMDI4YCIsICJcdTIwMjgiLCAyKTsKK3Rlc3RFdmFsTGluZU51bWJl
cigiYFx1MjAyOWAiLCAiXHUyMDI5IiwgMik7Cit0ZXN0RXZhbExpbmVOdW1iZXIoImBcXHUyMDI4
YCIsICJcdTIwMjgiLCAxKTsKK3Rlc3RFdmFsTGluZU51bWJlcigiYFxcdTIwMjlgIiwgIlx1MjAy
OSIsIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90
ZW1wbGF0ZS1saXRlcmFsLXN5bnRheC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1zeW50YXguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ0NDI4MGU5Zjli
ZWE4ZTBjZTViYjZiMTRlNGMwNjM5MDllNGQ0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxhdGUtbGl0ZXJhbC1zeW50YXguanMKQEAg
LTAsMCArMSw4MyBAQAorCitmdW5jdGlvbiB0ZXN0U3ludGF4KHNjcmlwdCkgeworICAgIHRyeSB7
CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBp
ZiAoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiQmFkIGVycm9yOiAiICsgU3RyaW5nKGVycm9yKSk7CisgICAgfQorfQorCitmdW5jdGlv
biB0ZXN0U3ludGF4RXJyb3Ioc2NyaXB0LCBtZXNzYWdlKSB7CisgICAgdmFyIGVycm9yID0gbnVs
bDsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRXhwZWN0ZWQgc3ludGF4IGVycm9yIG5vdCB0aHJvd24iKTsKKworICAgIGlm
IChTdHJpbmcoZXJyb3IpICE9PSBtZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworfQorCit0ZXN0U3ludGF4KCJgSGVsbG9gIik7
Cit0ZXN0U3ludGF4KCIoYEhlbGxvYCkiKTsKK3Rlc3RTeW50YXgoIihgSGVsbG9gKSArIDQyIik7
Cit0ZXN0U3ludGF4KCJgXG5IZWxsb1xuV29ybGRgIik7Cit0ZXN0U3ludGF4KCJgXG5IZWxsb1xu
JHtXb3JsZH1gIik7Cit0ZXN0U3ludGF4KCJgJHtXb3JsZH1gIik7Cit0ZXN0U3ludGF4KCJgJHtX
b3JsZH0gSGVsbG9gIik7Cit0ZXN0U3ludGF4KCJgJCB7V29ybGR9IEhlbGxvYCIpOwordGVzdFN5
bnRheCgiYFxcdUZFRkZ0ZXN0YCIpOwordGVzdFN5bnRheCgiYFxyXG5gIik7Cit0ZXN0U3ludGF4
KCJgXFxyXFxuYCIpOwordGVzdFN5bnRheCgiYFxuYCIpOwordGVzdFN5bnRheCgiYFxcbmAiKTsK
K3Rlc3RTeW50YXgoImBcdTIwMjhgIik7Cit0ZXN0U3ludGF4KCJgXFx1MjAyOGAiKTsKK3Rlc3RT
eW50YXgoImBcdTIwMjlgIik7Cit0ZXN0U3ludGF4KCJgXFx1MjAyOWAiKTsKK3Rlc3RTeW50YXgo
ImBcXDBgIik7Cit0ZXN0U3ludGF4KCJgXDBgIik7Cit0ZXN0U3ludGF4KCJgXFx4N2ZgIik7Cit0
ZXN0U3ludGF4KCIoYEhlbGxvYCkgKyA0MiIpOwordGVzdFN5bnRheCgiYFxcXG5gIik7Cit0ZXN0
U3ludGF4KCJgXFxcclxuYCIpOwordGVzdFN5bnRheCgiYFxcXHJgIik7CisKK3Rlc3RTeW50YXhF
cnJvcigiYEhlbGxvIiwgIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIEVPRiIpOwordGVzdFN5bnRh
eEVycm9yKCJgSGVsbG8ke2V4cHJ9IiwgIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIEVPRiIpOwor
dGVzdFN5bnRheEVycm9yKCJgSGVsbG8ke30iLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9r
ZW4gJ30nLiBUZW1wbGF0ZSBsaXRlcmFsIGV4cHJlc3Npb24gY2Fubm90IGJlIGVtcHR5LiIpOwor
dGVzdFN5bnRheEVycm9yKCJgSGVsbG8ke2V4cHJ9ICR7fSIsICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiAnfScuIFRlbXBsYXRlIGxpdGVyYWwgZXhwcmVzc2lvbiBjYW5ub3QgYmUgZW1w
dHkuIik7Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxsbyR7ZXhwcn0iLCAiU3ludGF4RXJyb3I6IFVu
ZXhwZWN0ZWQgRU9GIik7Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxsbyR7ZXhwcn0gJHtleHByfSIs
ICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBFT0YiKTsKK3Rlc3RTeW50YXhFcnJvcigiYEhlbGxv
JHtleHByYCIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBFT0YiKTsKK3Rlc3RTeW50YXhFcnJv
cigiYEhlbGxvJHtleHByfSAke2V4cHJgIiwgIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIEVPRiIp
OwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8gZXhwciR7YCIsICJTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCBFT0YiKTsKK3Rlc3RTeW50YXhFcnJvcigiYEhlbGxvJHtleHByfSBleHByJHtgIiwgIlN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIEVPRiIpOwordGVzdFN5bnRheEVycm9yKCJgSGVsbG8gJHt9
YCIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnfScuIFRlbXBsYXRlIGxpdGVyYWwg
ZXhwcmVzc2lvbiBjYW5ub3QgYmUgZW1wdHkuIik7Cit0ZXN0U3ludGF4RXJyb3IoImBIZWxsbyR7
ZXhwcn0gJHt9YCIsICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnfScuIFRlbXBsYXRl
IGxpdGVyYWwgZXhwcmVzc2lvbiBjYW5ub3QgYmUgZW1wdHkuIik7Cit0ZXN0U3ludGF4RXJyb3Io
ImBcXDA3YCIsICJTeW50YXhFcnJvcjogVGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4g
c3RyaWN0IG1vZGUgaXMgJ1xcMCciKTsKK2ZvciAodmFyIGkgPSAxOyBpIDwgNzsgKytpKSB7Cisg
ICAgdGVzdFN5bnRheEVycm9yKCJgXFwiICsgaSArICJgIiwgIlN5bnRheEVycm9yOiBUaGUgb25s
eSB2YWxpZCBudW1lcmljIGVzY2FwZSBpbiBzdHJpY3QgbW9kZSBpcyAnXFwwJyIpOworICAgIHRl
c3RTeW50YXhFcnJvcigiYCR7ZXhwcn1cXCIgKyBpICsgImAiLCAiU3ludGF4RXJyb3I6IFRoZSBv
bmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmljdCBtb2RlIGlzICdcXDAnIik7Cit9Cisv
LyBcOCBhbmQgXDkgYXJlIG5vdCBhbGxvd2VkLgorZm9yICh2YXIgaSA9IDg7IGkgPCA5OyArK2kp
IHsKKyAgICB0ZXN0U3ludGF4RXJyb3IoImBcXCIgKyBpICsgImAiLCAiU3ludGF4RXJyb3I6IFRo
ZSBvbmx5IHZhbGlkIG51bWVyaWMgZXNjYXBlIGluIHN0cmljdCBtb2RlIGlzICdcXDAnIik7Cisg
ICAgdGVzdFN5bnRheEVycm9yKCJgJHtleHByfVxcIiArIGkgKyAiYCIsICJTeW50YXhFcnJvcjog
VGhlIG9ubHkgdmFsaWQgbnVtZXJpYyBlc2NhcGUgaW4gc3RyaWN0IG1vZGUgaXMgJ1xcMCciKTsK
K30KK3Rlc3RTeW50YXhFcnJvcigiYFxceDdgIiwgIlN5bnRheEVycm9yOiBcXHggY2FuIG9ubHkg
YmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJy
b3IoImAke2V4cHJ9XFx4N2AiLCAiU3ludGF4RXJyb3I6IFxceCBjYW4gb25seSBiZSBmb2xsb3dl
ZCBieSBhIGhleCBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxceGAi
LCAiU3ludGF4RXJyb3I6IFxceCBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIGhleCBjaGFyYWN0
ZXIgc2VxdWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYCR7ZXhwcn1cXHhgIiwgIlN5bnRheEVy
cm9yOiBcXHggY2FuIG9ubHkgYmUgZm9sbG93ZWQgYnkgYSBoZXggY2hhcmFjdGVyIHNlcXVlbmNl
Iik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHVgIiwgIlN5bnRheEVycm9yOiBcXHUgY2FuIG9ubHkg
YmUgZm9sbG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIpOwordGVzdFN5bnRh
eEVycm9yKCJgJHtleHByfVxcdWAiLCAiU3ludGF4RXJyb3I6IFxcdSBjYW4gb25seSBiZSBmb2xs
b3dlZCBieSBhIFVuaWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNlIik7Cit0ZXN0U3ludGF4RXJyb3Io
ImBcXHUyYCIsICJTeW50YXhFcnJvcjogXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgVW5p
Y29kZSBjaGFyYWN0ZXIgc2VxdWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYCR7ZXhwcn1cXHUy
YCIsICJTeW50YXhFcnJvcjogXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgVW5pY29kZSBj
aGFyYWN0ZXIgc2VxdWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYFxcdTIwYCIsICJTeW50YXhF
cnJvcjogXFx1IGNhbiBvbmx5IGJlIGZvbGxvd2VkIGJ5IGEgVW5pY29kZSBjaGFyYWN0ZXIgc2Vx
dWVuY2UiKTsKK3Rlc3RTeW50YXhFcnJvcigiYCR7ZXhwcn1cXHUyMGAiLCAiU3ludGF4RXJyb3I6
IFxcdSBjYW4gb25seSBiZSBmb2xsb3dlZCBieSBhIFVuaWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNl
Iik7Cit0ZXN0U3ludGF4RXJyb3IoImBcXHUyMDJgIiwgIlN5bnRheEVycm9yOiBcXHUgY2FuIG9u
bHkgYmUgZm9sbG93ZWQgYnkgYSBVbmljb2RlIGNoYXJhY3RlciBzZXF1ZW5jZSIpOwordGVzdFN5
bnRheEVycm9yKCJgJHtleHByfVxcdTIwMmAiLCAiU3ludGF4RXJyb3I6IFxcdSBjYW4gb25seSBi
ZSBmb2xsb3dlZCBieSBhIFVuaWNvZGUgY2hhcmFjdGVyIHNlcXVlbmNlIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RlbXBsYXRlLWxpdGVyYWwuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTY5Y2ZkZmZkNmE5M2Q0NmJhOGJlNmI0OTYyODRhN2I1Njc1MGIzZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGVtcGxh
dGUtbGl0ZXJhbC5qcwpAQCAtMCwwICsxLDIwNiBAQAorZnVuY3Rpb24gdGVzdChhY3R1YWwsIGV4
cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcigiYmFkIHZhbHVlOiAiICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gdGVzdEV2YWwo
c2NyaXB0LCBleHBlY3RlZCkgeworICAgIHRlc3QoZXZhbChzY3JpcHQpLCBleHBlY3RlZCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RFbWJlZGRlZCh2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICB2YXIgdGVt
cGxhdGUgPSBgSGVsbG8gJHt2YWx1ZX0gV29ybGRgOworICAgIHRlc3QodGVtcGxhdGUsIGV4cGVj
dGVkKTsKK30KKwordGVzdChgYCwgIiIpOwordGVzdChgJHsiIn1gLCAiIik7Cit0ZXN0KGAke2Bg
fWAsICIiKTsKK3Rlc3QoYCR7YGB9JHtgYH0ke2BgfSR7IiJ9YCwgIiIpOworCit0ZXN0KGBIZWxs
byBXb3JsZGAsICJIZWxsbyBXb3JsZCIpOwordGVzdChgSGVsbG8KKyAgICAgICAgV29ybGRgLCAi
SGVsbG9cbiAgICAgICAgV29ybGQiKTsKKwordGVzdChgXHVGRUZGYCwgIlx1RkVGRiIpOwordGVz
dEV2YWwoImBcdUZFRkZgIiwgIlx1RkVGRiIpOworCit0ZXN0KGBceDIwYCwgIlx4MjAiKTsKK3Rl
c3QoYFx4MjAyMGAsICJceDIwMjAiKTsKKworZm9yICh2YXIgY2ggb2YgWyAnXCcnLCAnIicsICdc
XCcsICdiJywgJ2YnLCAnbicsICdyJywgJ3QnLCAndicgXSkKKyAgICB0ZXN0RXZhbCgiYFxcIiAr
IGNoICsgImAiLCBldmFsKCInXFwiICsgY2ggKyAiJyIpKTsKKwordGVzdChgXAorSGVsbG8gV29y
bGRgLCAiSGVsbG8gV29ybGQiKTsKKwordGVzdChgXAorCitIZWxsbyBXb3JsZGAsICJcbkhlbGxv
IFdvcmxkIik7CisKK3Rlc3QoYFx1MjAyOFx1MjAyOVxyXG5gLCAiXHUyMDI4XHUyMDI5XHJcbiIp
OwordGVzdChgXHUyMDI4XHUyMDI5XG5cclxuYCwgIlx1MjAyOFx1MjAyOVxuXHJcbiIpOwordGVz
dChgXHUyMDI4MjAwYCwgIlx1MjAyODIwMCIpOworCit0ZXN0RW1iZWRkZWQoNDIsICJIZWxsbyA0
MiBXb3JsZCIpOwordGVzdEVtYmVkZGVkKCJJU1VDQSIsICJIZWxsbyBJU1VDQSBXb3JsZCIpOwor
dGVzdEVtYmVkZGVkKG51bGwsICJIZWxsbyBudWxsIFdvcmxkIik7Cit0ZXN0RW1iZWRkZWQodW5k
ZWZpbmVkLCAiSGVsbG8gdW5kZWZpbmVkIFdvcmxkIik7Cit0ZXN0RW1iZWRkZWQoe30sICJIZWxs
byBbb2JqZWN0IE9iamVjdF0gV29ybGQiKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgb2Jq
ZWN0ID0geworICAgICAgICBuYW1lOiAiQ29jb2EiLAorICAgIH07CisgICAgdmFyIGFycmF5ID0g
WworICAgICAgICAiQ2FwcHVjY2lubyIKKyAgICBdCisgICAgdGVzdChgSGVsbG8gJHtvYmplY3Qu
bmFtZX0gYW5kICR7YXJyYXlbMF19IDpEYCwgIkhlbGxvIENvY29hIGFuZCBDYXBwdWNjaW5vIDpE
Iik7Cit9KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIGZ1bmN0aW9uIG9rKCkgeworICAgICAg
ICByZXR1cm4gIkNvY29hIjsKKyAgICB9CisgICAgdGVzdChgSGVsbG8gJHsgb2soKSB9YCwgIkhl
bGxvIENvY29hIik7Cit9KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIHZhciBvYmplY3QgPSB7
CisgICAgICAgIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuICdDb2NvYSc7CisgICAg
ICAgIH0KKyAgICB9OworICAgIHRlc3QoYEhlbGxvICR7b2JqZWN0fSA6RGAsICJIZWxsbyBDb2Nv
YSA6RCIpOworfSgpKTsKKworLy8gSW1tZWRpYXRlbHkgYWRqYWNlbnQgdGVtcGxhdGUgZXhwcmVz
c2lvbnMsIHdpdGggZW1wdHkgaW50ZXJtZWRpYXRlIHRlbXBsYXRlIHN0cmluZ3MuCit0ZXN0KGAk
eyJDIn0keyJvIn0keyJjIn0keyJvIn0keyJhIn1gLCAiQ29jb2EiKTsKK3Rlc3QoYCR7IkMifSR7
Im8ifSR7ImMifSR7Im8ifSR7IiAifWAsICJDb2NvICIpOworCisvLyBOZXN0ZWQgdGVtcGxhdGVz
LgordGVzdChgSGVsbG8gJHsgYENvY29hYCB9YCwgIkhlbGxvIENvY29hIik7Cit0ZXN0KGBIZWxs
byAkeyBgQ28ke2BjYH1vYWAgfWAsICJIZWxsbyBDb2NvYSIpOworCisvLyBFdmFsdWF0aW9uIG9y
ZGVyCisoZnVuY3Rpb24gKCkgeworICAgIHZhciBjb3VudCA9IDA7CisKKyAgICBmdW5jdGlvbiBj
aGVjayhudW0pIHsKKyAgICAgICAgdmFyIG5vdyA9IGNvdW50Kys7CisgICAgICAgIHRlc3Qobm93
LCBudW0pOworICAgICAgICByZXR1cm4gbm93OworICAgIH0KKworICAgIHRlc3QoYEhlbGxvICR7
IGAkeyBjaGVjaygwKSB9ICR7IGAgJHsgY2hlY2soMSkgfSAkeyBjaGVjaygyKSB9YCB9ICR7IGNo
ZWNrKDMpIH1gIH0gJHsgY2hlY2soNCkgfWAsICJIZWxsbyAwICAxIDIgMyA0IikKK30oKSk7CisK
Ky8vIEV4Y2VwdGlvbnMKKworKGZ1bmN0aW9uICgpIHsKKyAgICBmdW5jdGlvbiBnZW4obnVtKSB7
CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICB0b1N0cmluZygpIHsKKyAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IobnVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAg
ICB9CisKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIHZhciB0ZW1w
bGF0ZSA9IGAke2dlbigwKX0gJHtnZW4oMSl9ICR7Z2VuKDIpfWA7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcignbm8gZXJyb3IgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJvcikg
IT09ICdFcnJvcjogMCcpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGVycm9yOiAiICsg
U3RyaW5nKGVycm9yKSk7CisKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAg
ICAgIHZhciB0ZW1wbGF0ZSA9IGAkezUyfSAke2dlbigwKX0gJHtnZW4oMSl9YDsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdubyBlcnJvciB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5n
KGVycm9yKSAhPT0gJ0Vycm9yOiAwJykKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQgZXJy
b3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKK30oKSk7CisKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2
YXIgc3RhdD0geworICAgICAgICBjb3VudDogMAorICAgIH07CisgICAgZnVuY3Rpb24gZ2VuKG51
bSkgeworICAgICAgICBzdGF0W251bV0gPSB7CisgICAgICAgICAgICBjYWxsZWQ6IHRydWUsCisg
ICAgICAgICAgICBjb3VudDogc3RhdC5jb3VudCsrLAorICAgICAgICAgICAgdG9TdHJpbmc6IG51
bGwKKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHRvU3RyaW5nKCkg
eworICAgICAgICAgICAgICAgIHN0YXRbbnVtXS50b1N0cmluZyA9IHsKKyAgICAgICAgICAgICAg
ICAgICAgY2FsbGVkOiB0cnVlLAorICAgICAgICAgICAgICAgICAgICBjb3VudDogc3RhdC5jb3Vu
dCsrLAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KG51bSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgdmFyIGVycm9y
ID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB2YXIgdGVtcGxhdGUgPSBgJHtnZW4oMCl9ICR7
Z2VuKDEpfSAke2dlbigyKX1gOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBl
OworICAgIH0KKyAgICBpZiAoIWVycm9yKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIGVy
cm9yIHRocm93bicpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSAnRXJyb3I6IDAnKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworICAg
IHRlc3Qoc3RhdFswXS5jb3VudCwgMCk7CisgICAgdGVzdChzdGF0WzBdLnRvU3RyaW5nLmNhbGxl
ZCwgdHJ1ZSk7CisgICAgdGVzdChzdGF0WzBdLnRvU3RyaW5nLmNvdW50LCAxKTsKKyAgICB0ZXN0
KHN0YXRbMV0sIHVuZGVmaW5lZCk7CisgICAgdGVzdChzdGF0WzJdLCB1bmRlZmluZWQpOworfSgp
KTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgc3RhdD0geworICAgICAgICBjb3VudDogMAor
ICAgIH07CisgICAgZnVuY3Rpb24gZ2VuKG51bSkgeworICAgICAgICBzdGF0W251bV0gPSB7Cisg
ICAgICAgICAgICBjYWxsZWQ6IHRydWUsCisgICAgICAgICAgICBjb3VudDogc3RhdC5jb3VudCsr
LAorICAgICAgICAgICAgdG9TdHJpbmc6IG51bGwKKyAgICAgICAgfTsKKyAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgICAgIHN0YXRbbnVtXS50
b1N0cmluZyA9IHsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGVkOiB0cnVlLAorICAgICAgICAg
ICAgICAgICAgICBjb3VudDogc3RhdC5jb3VudCsrLAorICAgICAgICAgICAgICAgIH07CisgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG51bSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH07CisgICAgfQorCisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICB2
YXIgdGVtcGxhdGUgPSBgJHsgYCR7Z2VuKDApfWAgfSAkeyBgJHtnZW4oMSl9ICR7Z2VuKDIpfWAg
fWA7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlm
ICghZXJyb3IpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm8gZXJyb3IgdGhyb3duJyk7Cisg
ICAgaWYgKFN0cmluZyhlcnJvcikgIT09ICdFcnJvcjogMCcpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcigiYmFkIGVycm9yOiAiICsgU3RyaW5nKGVycm9yKSk7CisgICAgdGVzdChzdGF0WzBdLmNv
dW50LCAwKTsKKyAgICB0ZXN0KHN0YXRbMF0udG9TdHJpbmcuY2FsbGVkLCB0cnVlKTsKKyAgICB0
ZXN0KHN0YXRbMF0udG9TdHJpbmcuY291bnQsIDEpOworICAgIHRlc3Qoc3RhdFsxXSwgdW5kZWZp
bmVkKTsKKyAgICB0ZXN0KHN0YXRbMl0sIHVuZGVmaW5lZCk7Cit9KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9T
b3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRl
eCA4YjExMmZhZTQ1Yjk1N2RkMjY0MWZkYjZmNDY4OTg4MDU4OWFmODYwLi4yOWRkY2M0ZmE3NjBk
OWVmYTdmNjJlYjVmZmI3MjQ4NjYzM2Q1ZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtNDUsNiArNDUsNyBA
QCBFTkFCTEVfQ0FOVkFTX1BBVEggPSBFTkFCTEVfQ0FOVkFTX1BBVEg7CiBFTkFCTEVfQ0FOVkFT
X1BST1hZID0gOwogRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HID0gRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HOwogRU5BQkxFX0VTNl9DTEFTU19TWU5UQVggPSBFTkFCTEVfRVM2X0NMQVNTX1NZTlRB
WDsKK0VOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVggPSBFTkFCTEVfRVM2X1RFTVBM
QVRFX0xJVEVSQUxfU1lOVEFYOwogRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HID0gRU5BQkxFX0NP
TlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NTUF9ORVhUID0gOwogRU5BQkxFX0NTU19BTklNQVRJ
T05TX0xFVkVMXzIgPSBFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMjsKQEAgLTIxNCw0ICsy
MTUsNCBAQCBFTkFCTEVfTExJTlRfQ19MT09QID0gOwogCiBFTkFCTEVfU0FUVVJBVEVEX0xBWU9V
VF9BUklUSE1FVElDID0gRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQzsKIAotRkVB
VFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChF
TkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxF
X0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZB
U19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0VTNl9DTEFTU19T
WU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChF
TkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURB
UFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVH
SU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMp
ICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5B
QkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQo
RU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1Ip
ICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAk
KEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RF
UFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01f
VElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVO
QUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5U
UykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5U
UykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9M
RUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVG
RVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVf
TUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FM
RSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9I
V0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExV
R0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9Q
Uk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FV
T1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9B
VVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJ
T05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NS
T0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJ
KSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NW
R19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChF
TkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NT
X1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJ
RVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQo
RU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJF
X1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChF
TkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5B
QkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAk
KEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMp
ICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5H
KSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfRVM2
X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChF
TkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVO
QUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChF
TkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElP
TikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAk
KEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVY
VF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9N
X1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFU
QUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVU
QUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRf
RVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VO
Q1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GT05U
X0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkg
JChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFC
TEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0lDT05EQVRBQkFT
RSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BP
VkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfV0VFSykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJM
RV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5B
QkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1Mp
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
Q09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJM
RV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAk
KEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykg
JChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9Q
Uk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJ
WF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
ICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9S
KSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFORElO
RykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAk
KEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZH
X0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RGX0NPTlZFUlRFUikgJChFTkFCTEVfVEVMRVBIT05FX05V
TUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRf
QVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xP
QURJTkcpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FM
TCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VF
X1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChF
TkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VU
UykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVf
V0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVO
QUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9M
QVlPVVRfQVJJVEhNRVRJQykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwppbmRleCA4YjExMmZhZTQ1Yjk1N2RkMjY0MWZkYjZmNDY4OTg4MDU4OWFmODYw
Li4yOWRkY2M0ZmE3NjBkOWVmYTdmNjJlYjVmZmI3MjQ4NjYzM2Q1ZDMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwpAQCAtNDUsNiArNDUsNyBAQCBFTkFCTEVfQ0FOVkFTX1BBVEggPSBFTkFCTEVfQ0FOVkFT
X1BBVEg7CiBFTkFCTEVfQ0FOVkFTX1BST1hZID0gOwogRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
ID0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0VTNl9DTEFTU19TWU5UQVggPSBF
TkFCTEVfRVM2X0NMQVNTX1NZTlRBWDsKK0VOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5U
QVggPSBFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYOwogRU5BQkxFX0NPTlRFTlRf
RklMVEVSSU5HID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NTUF9ORVhUID0g
OwogRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIgPSBFTkFCTEVfQ1NTX0FOSU1BVElPTlNf
TEVWRUxfMjsKQEAgLTIxNCw0ICsyMTUsNCBAQCBFTkFCTEVfTExJTlRfQ19MT09QID0gOwogCiBF
TkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDID0gRU5BQkxFX1NBVFVSQVRFRF9MQVlP
VVRfQVJJVEhNRVRJQzsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5H
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09W
RVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9BVFRBQ0hN
RU5UX0VMRU1FTlQpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFT
X1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0VTNl9DTEFTU19TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAk
KEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFC
TEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQo
RU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAk
KEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVU
SU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQp
ICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19U
RVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNU
T01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9E
QVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9E
RVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRE9N
NF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZP
TlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFE
KSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSUNPTkRBVEFC
QVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lORElFX1VJ
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BP
UE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5B
QkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5B
QkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJWklORykgJChF
TkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklY
RVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MRVRURVJQUkVT
UykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJ
QV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFf
U1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5B
QkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMp
ICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxF
X1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VG
RklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNU
T1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JVQkJFUl9CQU5E
SU5HKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMp
ICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9T
VkdfRk9OVFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9URUxFUEhPTkVf
TlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVY
VF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05f
TE9BRElORykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VTRVJTRUxFQ1Rf
QUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX0RBVEFD
VUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAk
KEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9TT0NL
RVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJM
RV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQo
RU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVfU0FUVVJBVEVE
X0xBWU9VVF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSk7CitG
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAk
KEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFC
TEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FO
VkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfRVM2X0NMQVNT
X1NZTlRBWCkgJChFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKSAkKEVOQUJMRV9D
T05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19BTklNQVRJ
T05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxF
X0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NT
U19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1MzX1RF
WFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJ
TElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZF
Ul9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9FTkNSWVBU
RURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMVEVSU19M
RVZFTF8yKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcp
ICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJT
KSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19U
RVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xFR0FD
WV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykg
JChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TT1VS
Q0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQo
RU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklH
QVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9J
TlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykg
JChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAk
KEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExF
X0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RGX0NPTlZFUlRFUikg
JChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFTVBMQVRFX0VM
RU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAk
KEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RS
QUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElB
KSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZ
KSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykgJChFTkFCTEVf
V0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hIUl9USU1FT1VU
KSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElOVF9DX0xPT1Ap
ICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChFTkFCTEVfVklERU9fUFJF
U0VOVEFUSU9OX01PREUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA4YjExMmZhZTQ1Yjk1N2RkMjY0MWZkYjZm
NDY4OTg4MDU4OWFmODYwLi4yOWRkY2M0ZmE3NjBkOWVmYTdmNjJlYjVmZmI3MjQ4NjYzM2Q1ZDMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwpAQCAtNDUsNiArNDUsNyBAQCBFTkFCTEVfQ0FOVkFTX1BBVEggPSBFTkFC
TEVfQ0FOVkFTX1BBVEg7CiBFTkFCTEVfQ0FOVkFTX1BST1hZID0gOwogRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HID0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HOwogRU5BQkxFX0VTNl9DTEFTU19T
WU5UQVggPSBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWDsKK0VOQUJMRV9FUzZfVEVNUExBVEVfTElU
RVJBTF9TWU5UQVggPSBFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYOwogRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HID0gRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HOwogRU5BQkxFX0NT
UF9ORVhUID0gOwogRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIgPSBFTkFCTEVfQ1NTX0FO
SU1BVElPTlNfTEVWRUxfMjsKQEAgLTIxNCw0ICsyMTUsNCBAQCBFTkFCTEVfTExJTlRfQ19MT09Q
ID0gOwogCiBFTkFCTEVfU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDID0gRU5BQkxFX1NBVFVS
QVRFRF9MQVlPVVRfQVJJVEhNRVRJQzsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0Rf
UkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VM
RVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJM
RV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFC
TEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpICQoRU5BQkxFX0VTNl9DTEFTU19TWU5UQVgpICQoRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxf
MikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9T
SVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0dSSURf
TEFZT1VUKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFH
RV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NFTEVDVE9S
U19MRVZFTDQpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFC
TEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVO
QUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAk
KEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAk
KEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkg
JChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQo
RU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVf
SUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxF
X0lORElFX1VJKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RFWFRfQVVUT1NJ
WklORykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5E
T1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdB
Q1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9M
RVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVO
QUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhU
TUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRF
TlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1RJ
RklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0sp
ICQoRU5BQkxFX1BST01JU0VTKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9Q
VUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRSkgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFTU9U
RV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JV
QkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19PVEZfQ09OVkVSVEVSKSAkKEVOQUJMRV9U
RUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChF
TkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RP
VUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX1VT
RVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5B
QkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxF
X1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9QSUNUVVJFX1NJWkVTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XRUJWVFRfUkVHSU9OUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxF
X1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0xMSU5UX0NfTE9PUCkgJChFTkFCTEVf
U0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05f
TU9ERSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NS
T0xMSU5HKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVO
VCkgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChF
TkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
RVM2X0NMQVNTX1NZTlRBWCkgJChFTkFCTEVfRVM2X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYKSAk
KEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NT
U19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykg
JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04p
ICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQo
RU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJM
RV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJT
T1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9E
QVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJM
RV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVf
RklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVE
KSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RI
Uk9UVExJTkcpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9M
UykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9J
Tl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRJRV9VSSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikg
JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5B
QkxFX0lPU19URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5B
QkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dF
Ql9BVURJTykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9N
RURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5B
QkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJS
RU5DWSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChF
TkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9NSVNFUykgJChFTkFCTEVfUFJPWElNSVRZ
X0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChF
TkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFUVVFU1RfQVVUT0NPTVBM
RVRFKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElB
X1FVRVJZKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQ
KSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFC
TEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfT1RGX0NP
TlZFUlRFUikgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RF
TVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hf
RVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX0NTU19UUkFJTElO
R19XT1JEKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9WSUVXX01PREVf
Q1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9X
RUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfUElDVFVSRV9TSVpFUykg
JChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCVlRUX1JFR0lPTlMpICQoRU5BQkxFX1hI
Ul9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9MTElO
VF9DX0xPT1ApICQoRU5BQkxFX1NBVFVSQVRFRF9MQVlPVVRfQVJJVEhNRVRJQykgJChFTkFCTEVf
VklERU9fUFJFU0VOVEFUSU9OX01PREUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktp
dEZlYXR1cmVzLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4
IGQ2Yjc3ODliMmVkOWU0ZTYyZDdkOTA0NmFkNzkyOTQ0MDAxZTBjMGEuLjg3NWNiMTJjNzEyMzMz
ZTE0MTM5YzMwNWRkNjg2NjAwZTFlZDI2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJL
aXRGZWF0dXJlcy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UK
QEAgLTY2LDYgKzY2LDcgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRf
T1BUSU9OX0RFRklORShFTkFCTEVfRU5DUllQVEVEX01FRElBICJUb2dnbGUgRU1FIHN1cHBvcnQi
IFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9FTkNSWVBURURf
TUVESUFfVjIgIlN1cHBvcnQgRU1FIHYyIiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWCAiVG9nZ2xlIEVTNiBjbGFzcyBzeW50YXgg
c3VwcG9ydCIgUFJJVkFURSBPTikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfRVM2
X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYICJUb2dnbGUgRVM2IHRlbXBsYXRlIGxpdGVyYWwgc3lu
dGF4IHN1cHBvcnQiIFBSSVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X0ZJTFRFUlNfTEVWRUxfMiAiVG9nZ2xlIEZpbHRlcnMgTW9kdWxlIExldmVsIDIiIFBSSVZBVEUg
T0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTICJU
b2dnbGUgRm9udCBMb2FkIEV2ZW50cyBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRf
T1BUSU9OX0RFRklORShFTkFCTEVfRlRQRElSICJUb2dnbGUgRlRQIGRpcmVjdG9yeSBzdXBwb3J0
IiBQUklWQVRFIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UgYi9T
b3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCA5NjY4NTRiODQzMjkzMDljNjdhNzM4N2Y4
NjQ5YTEwY2I1ZWY5MGEyLi4yODI1MjczNzBiMjk0NjFhYjZmNTY4M2UzNmZhNTc1YjhkMDcwOGRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2Vjb25maWcuaC5jbWFrZQpAQCAtMTUsNiArMTUsNyBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxF
X0NBTlZBU19QUk9YWQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HCiAj
Y21ha2VkZWZpbmUwMSBFTkFCTEVfRVM2X0NMQVNTX1NZTlRBWAorI2NtYWtlZGVmaW5lMDEgRU5B
QkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NP
TlRFTlRfRklMVEVSSU5HCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ09OVEVYVF9NRU5VUwogI2Nt
YWtlZGVmaW5lMDEgRU5BQkxFX0NSRURFTlRJQUxfU1RPUkFHRQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU1M2QxYjFjYTAzY2NkODE0ODEyZDcx
NTU2YjM2M2I3NDM2M2ExZjQuLmY4ZWJlMzM4NTQ4MzIxMjUzZThlNjMzMGM2YjM1YjdhYzk2M2U4
ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxNS0wNC0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgRVM2IHRlbXBsYXRlIGxpdGVyYWxz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI2OTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5B
QkxFX0VTNl9URU1QTEFURV9MSVRFUkFMX1NZTlRBWCBjb21waWxlIHRpbWUgZmxhZy4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwogMjAxNS0wNC0yMyAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVz
ZSBsZXNzIG1lbW9yeSB3aGVuIGNvbXBpbGluZyBjb250ZW50IGV4dGVuc2lvbnMuCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggOTNmODJlNjFlOWIzNzRiYjVmMzk4
ZWQ2YmFhZTUzMzdhYzBlYThjNy4uNTZkMjA5OGViNjkyMDVlMjM4NDc5OWNiMjdiNDM0ZDM3Mzlh
MGE5YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBt
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtNTAsNiAr
NTAsNyBAQCBCRUdJTgogICAgICRjYW52YXNQcm94eVN1cHBvcnQsCiAgICAgJGNoYW5uZWxNZXNz
YWdpbmdTdXBwb3J0LAogICAgICRjbGFzc1N5bnRheCwKKyAgICAkdGVtcGxhdGVMaXRlcmFsU3lu
dGF4LAogICAgICRjc3BOZXh0U3VwcG9ydCwKICAgICAkY3NzM0NvbmRpdGlvbmFsUnVsZXNTdXBw
b3J0LAogICAgICRjc3MzVGV4dFN1cHBvcnQsCkBAIC0xNzIsNiArMTczLDkgQEAgQkVHSU4KICAg
ICB7IG9wdGlvbiA9PiAiY2xhc3Mtc3ludGF4IiwgZGVzYyA9PiAiVG9nZ2xlIEVTNiBjbGFzcyBz
eW50YXggc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9FUzZfQ0xBU1NfU1lOVEFY
IiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGNsYXNzU3ludGF4IH0sCiAKKyAgICB7IG9wdGlv
biA9PiAidGVtcGxhdGUtbGl0ZXJhbC1zeW50YXgiLCBkZXNjID0+ICJUb2dnbGUgRVM2IHRlbXBs
YXRlIGxpdGVyYWwgc3ludGF4IHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRVM2
X1RFTVBMQVRFX0xJVEVSQUxfU1lOVEFYIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHRlbXBs
YXRlTGl0ZXJhbFN5bnRheCB9LAorCiAgICAgeyBvcHRpb24gPT4gImNzcC1uZXh0IiwgZGVzYyA9
PiAiVG9nZ2xlIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IDEuMSBzdXBwb3J0IiwKICAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0NTUF9ORVhUIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBc
JGNzcE5leHRTdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCA2ODQwMGVjMzg5ODUxMDExNmM0OWE3OGViZmE2NDM5Njc2YWUxODczLi4xZDc0YTQxNDEw
MWQyZjU4MjQ2MDc2YjgwMTczYTY5ZmY4YmM1Y2NiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDQtMjMgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0
ZW1wbGF0ZSBsaXRlcmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2U6CisgICAgICAgICog
U291cmNlL2NtYWtlY29uZmlnLmguY21ha2U6CisKKzIwMTUtMDQtMTggIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0VTNl0gSW1wbGVtZW50IEVTNiB0
ZW1wbGF0ZSBsaXRlcmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQyNjkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIEVOQUJMRV9FUzZfVEVNUExBVEVfTElURVJBTF9TWU5UQVggY29tcGlsZSB0
aW1lIGZsYWcuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2U6
CisgICAgICAgICogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2U6CisKIDIwMTUtMDQtMjMgIE1p
Y2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
IE1hcmsgYXMgYWR2YW5jZWQgdGhlIGJ1aWxkIG9wdGlvbnMgd2UgZG9uJ3Qgd2FudCB0byBleHBv
c2UK
</data>
<flag name="review"
          id="276278"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>