<?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>234476</bug_id>
          
          <creation_ts>2021-12-18 06:50:19 -0800</creation_ts>
          <short_desc>[JSC][32bit] Fix regexp crash on ARMv7</short_desc>
          <delta_ts>2022-01-24 15:21:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>235470</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail R. Gadelha">mikhail</reporter>
          <assigned_to name="Mikhail R. Gadelha">mikhail</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glore</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mikhail</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1825338</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-12-18 06:50:19 -0800</bug_when>
    <thetext>[JSC][32bit] Fix regexp crash when building on ARMv7 using gcc 10.2.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825339</commentid>
    <comment_count>1</comment_count>
      <attachid>447519</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-12-18 06:56:44 -0800</bug_when>
    <thetext>Created attachment 447519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825853</commentid>
    <comment_count>2</comment_count>
      <attachid>447675</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-12-20 20:07:09 -0800</bug_when>
    <thetext>Created attachment 447675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826032</commentid>
    <comment_count>3</comment_count>
      <attachid>447729</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2021-12-21 09:59:57 -0800</bug_when>
    <thetext>Created attachment 447729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826053</commentid>
    <comment_count>4</comment_count>
      <attachid>447729</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-12-21 10:57:23 -0800</bug_when>
    <thetext>Comment on attachment 447729
Patch

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

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:4204
&gt; +            m_jit.loadPtr(MacroAssembler::Address(MacroAssembler::stackPointerRegister, m_arg5OnStackOffset), matchingContext);

Instead, can we use `CCallHelpers::calculatePokeOffset` to compute the right offset without computing it per architecture in YarrJIT?

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:4685
&gt; +    unsigned m_arg5OnStackOffset = 0;

For default field initializer, use `{ 0 }` instead of ` = 0`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826808</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-25 06:51:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/86904879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828359</commentid>
    <comment_count>6</comment_count>
      <attachid>448420</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-05 12:38:09 -0800</bug_when>
    <thetext>Created attachment 448420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828363</commentid>
    <comment_count>7</comment_count>
      <attachid>448422</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-05 12:58:27 -0800</bug_when>
    <thetext>Created attachment 448422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828368</commentid>
    <comment_count>8</comment_count>
      <attachid>448423</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-05 13:10:39 -0800</bug_when>
    <thetext>Created attachment 448423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828376</commentid>
    <comment_count>9</comment_count>
      <attachid>448425</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-05 13:24:15 -0800</bug_when>
    <thetext>Created attachment 448425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828406</commentid>
    <comment_count>10</comment_count>
      <attachid>448434</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-05 15:11:29 -0800</bug_when>
    <thetext>Created attachment 448434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829098</commentid>
    <comment_count>11</comment_count>
      <attachid>448635</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-07 14:56:22 -0800</bug_when>
    <thetext>Created attachment 448635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829246</commentid>
    <comment_count>12</comment_count>
      <attachid>448679</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-08 13:11:23 -0800</bug_when>
    <thetext>Created attachment 448679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829248</commentid>
    <comment_count>13</comment_count>
      <attachid>448681</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-08 13:41:35 -0800</bug_when>
    <thetext>Created attachment 448681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829257</commentid>
    <comment_count>14</comment_count>
      <attachid>448685</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-08 15:41:37 -0800</bug_when>
    <thetext>Created attachment 448685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829524</commentid>
    <comment_count>15</comment_count>
      <attachid>448767</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-10 10:21:49 -0800</bug_when>
    <thetext>Created attachment 448767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829584</commentid>
    <comment_count>16</comment_count>
      <attachid>448785</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-10 12:21:56 -0800</bug_when>
    <thetext>Created attachment 448785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829782</commentid>
    <comment_count>17</comment_count>
      <attachid>448841</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-11 06:06:46 -0800</bug_when>
    <thetext>Created attachment 448841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829792</commentid>
    <comment_count>18</comment_count>
      <attachid>448845</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-11 06:57:29 -0800</bug_when>
    <thetext>Created attachment 448845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829806</commentid>
    <comment_count>19</comment_count>
      <attachid>448848</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-11 08:05:40 -0800</bug_when>
    <thetext>Created attachment 448848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829856</commentid>
    <comment_count>20</comment_count>
      <attachid>448856</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-11 10:53:57 -0800</bug_when>
    <thetext>Created attachment 448856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829884</commentid>
    <comment_count>21</comment_count>
      <attachid>448867</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-11 12:14:09 -0800</bug_when>
    <thetext>Created attachment 448867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829917</commentid>
    <comment_count>22</comment_count>
      <attachid>448878</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-11 14:22:02 -0800</bug_when>
    <thetext>Created attachment 448878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829940</commentid>
    <comment_count>23</comment_count>
      <attachid>448884</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-11 15:40:21 -0800</bug_when>
    <thetext>Created attachment 448884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830099</commentid>
    <comment_count>24</comment_count>
      <attachid>448937</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-12 05:36:31 -0800</bug_when>
    <thetext>Created attachment 448937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830211</commentid>
    <comment_count>25</comment_count>
      <attachid>448964</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-12 10:52:53 -0800</bug_when>
    <thetext>Created attachment 448964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830227</commentid>
    <comment_count>26</comment_count>
      <attachid>448971</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-12 11:13:06 -0800</bug_when>
    <thetext>Created attachment 448971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830544</commentid>
    <comment_count>27</comment_count>
      <attachid>449060</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-13 07:53:54 -0800</bug_when>
    <thetext>Created attachment 449060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830546</commentid>
    <comment_count>28</comment_count>
      <attachid>449060</attachid>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-01-13 08:00:44 -0800</bug_when>
    <thetext>Comment on attachment 449060
Patch

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

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1001
&gt; +    constexpr GPRReg loadArgumentFromStack(GPRReg scratchGPR)

This function is not constexpr (it calls `loadPtr` which is not constexpr), nor does it need to be constexpr. Same applies to &apos;getArgumentGPR&apos;

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1037
&gt; +    constexpr GPRReg getArgumentGPR(GPRReg scratchGPR = GPRReg::InvalidGPRReg)

Like loadArgumentFromStack, this function is not constexpr, nor does it need to be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830569</commentid>
    <comment_count>29</comment_count>
      <attachid>449068</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-13 09:14:20 -0800</bug_when>
    <thetext>Created attachment 449068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830615</commentid>
    <comment_count>30</comment_count>
      <attachid>449068</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-13 10:28:58 -0800</bug_when>
    <thetext>Comment on attachment 449068
Patch

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

Some coding style comments: not intended to be a complete review, although the patch generally looks good

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:996
&gt; +private:
&gt; +

Normally we’d omit that blank line.

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1001
&gt; +    GPRReg loadArgumentFromStack(unsigned ArgNum, GPRReg scratchGPR)

When ArgNum is just a function argument rather than a template argument, I suggest we use the traditional lowercased &quot;argumentNumber&quot;, or &quot;argNum&quot; if the local tradition in this code is to use abbreviations rather than words (WebKit style generally is to prefer words).

But also, why are we using a function argument rather than template argument here? Is there a good reason to mix styles like this?

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1018
&gt; +        constexpr int returnAdressOffset = 2;

&quot;address&quot; is misspelled here

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1023
&gt; +        const int returnTypeOffset = sizeof(RESULT_TYPE) &gt;= 8;
&gt; +        const int offset = ArgNum - NUMBER_OF_ARGUMENT_REGISTERS + POKE_ARGUMENT_OFFSET + returnAdressOffset + returnTypeOffset;
&gt; +#else
&gt; +        const int offset = ArgNum - NUMBER_OF_ARGUMENT_REGISTERS + POKE_ARGUMENT_OFFSET + returnAdressOffset;

constexpr please

But also, maybe we should define a returnTypeOffset of 0 for non-Windows-X86 rather than repeating the entire offset expression twice.

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1032
&gt; +public:
&gt; +

Here, we’d omit the blank line.

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1039
&gt; +        ASSERT(ArgNum &lt;= 255, &quot;C++ standard forbis functions with more than 256 arguments&quot;);

&quot;forbids&quot; Is misspelled here

&gt; Source/JavaScriptCore/runtime/RegExpInlines.h:149
&gt; +                Yarr::MatchingContextHolder regExpContext(vm, /* usesPatternContextBuffer: */ false, this, matchFrom);

These comments are needed because we are not following the usual WebKit convention of using an enumeration for an argument like this where we often pass a constant value. That style is typically pretty easy to follow, although it does make the non-constant-value call sites a little wordy.

&gt; Source/JavaScriptCore/yarr/YarrJIT.h:276
&gt;  public:
&gt; +

No blank line in a case like this.

&gt; Source/JavaScriptCore/yarr/YarrJIT.h:280
&gt; +    using YarrJITCode8 = SlowPathReturnType (*)(const LChar* input, UCPURegister start, UCPURegister length, int* output, MatchingContextHolder* matchingContext) YARR_CALL;
&gt; +    using YarrJITCode16 = SlowPathReturnType (*)(const UChar* input, UCPURegister start, UCPURegister length, int* output, MatchingContextHolder* matchingContext) YARR_CALL;
&gt; +    using YarrJITCodeMatchOnly8 = SlowPathReturnType (*)(const LChar* input, UCPURegister start, UCPURegister length, void*, MatchingContextHolder* matchingContext) YARR_CALL;
&gt; +    using YarrJITCodeMatchOnly16 = SlowPathReturnType (*)(const UChar* input, UCPURegister start, UCPURegister length, void*, MatchingContextHolder* matchingContext) YARR_CALL;

I suggests omitting the matchingContext argument name here since WebKit coding style tells us to do that when the type makes them unambiguous.

&gt; Source/JavaScriptCore/yarr/YarrJITRegisters.h:38
&gt;  public:
&gt; +

Again, no blank line here in our coding style. Also, should just delete &quot;public&quot; since this is a struct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830653</commentid>
    <comment_count>31</comment_count>
      <attachid>449068</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-13 12:08:42 -0800</bug_when>
    <thetext>Comment on attachment 449068
Patch

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

&gt;&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1001
&gt;&gt; +    GPRReg loadArgumentFromStack(unsigned ArgNum, GPRReg scratchGPR)
&gt; 
&gt; When ArgNum is just a function argument rather than a template argument, I suggest we use the traditional lowercased &quot;argumentNumber&quot;, or &quot;argNum&quot; if the local tradition in this code is to use abbreviations rather than words (WebKit style generally is to prefer words).
&gt; 
&gt; But also, why are we using a function argument rather than template argument here? Is there a good reason to mix styles like this?

In the previous patch, ArgNum was a template argument but I revert as suggested in the previous review.

&gt;&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1023
&gt;&gt; +        const int offset = ArgNum - NUMBER_OF_ARGUMENT_REGISTERS + POKE_ARGUMENT_OFFSET + returnAdressOffset;
&gt; 
&gt; constexpr please
&gt; 
&gt; But also, maybe we should define a returnTypeOffset of 0 for non-Windows-X86 rather than repeating the entire offset expression twice.

I&apos;ll make ArgNum a template argument otherwise the compiler won&apos;t allow this to be a constexpr (it complains that ArgNum is not a constant).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830654</commentid>
    <comment_count>32</comment_count>
      <attachid>449091</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-13 12:10:31 -0800</bug_when>
    <thetext>Created attachment 449091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830713</commentid>
    <comment_count>33</comment_count>
      <attachid>449108</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-13 14:15:02 -0800</bug_when>
    <thetext>Created attachment 449108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830939</commentid>
    <comment_count>34</comment_count>
      <attachid>449108</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-14 09:55:10 -0800</bug_when>
    <thetext>Comment on attachment 449108
Patch

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

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1003
&gt; +        ASSERT(ArgNum &gt;= NUMBER_OF_ARGUMENT_REGISTERS, &quot;Should return GPRInfo::argumentGPRX&quot;);

This can/should be a static_assert.

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1037
&gt; +        ASSERT(ArgNum &lt;= 255, &quot;C++ standard forbids functions with more than 256 arguments&quot;);

This can/should be a static_assert.

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1038
&gt; +        ASSERT(FunctionTraits&lt;OperationType&gt;::cCallArity() &gt; ArgNum, &quot;Function does not have enough arguments&quot;);

This can/should be a static_assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830993</commentid>
    <comment_count>35</comment_count>
      <attachid>449195</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-14 11:47:42 -0800</bug_when>
    <thetext>Created attachment 449195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830995</commentid>
    <comment_count>36</comment_count>
      <attachid>449195</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-14 11:59:30 -0800</bug_when>
    <thetext>Comment on attachment 449195
Patch

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

I think the updated code is breaking JITCage. Can you please do not change ARM64 / ARM64E code?

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:-3996
&gt; -        if (!Options::useJITCage())
&gt; -            m_jit.tagReturnAddress();

This part is broken. You should not tag when JITCage is not enabled. But updated code is not following.

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:4048
&gt; +            m_jit.untagReturnAddress();

Why is it added?

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:4183
&gt; +            constexpr unsigned ArgNum = 4;

We use `argNum` (instead of `ArgNum`) for constants.

&gt; Source/JavaScriptCore/yarr/YarrJITRegisters.h:-75
&gt; -    static constexpr GPRReg supplementaryPlanesBase = ARM64Registers::x12;
&gt; -    static constexpr GPRReg leadingSurrogateTag = ARM64Registers::x13;
&gt; -    static constexpr GPRReg trailingSurrogateTag = ARM64Registers::x14;

I think using register is better for code size. Please do not change this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831002</commentid>
    <comment_count>37</comment_count>
      <attachid>449195</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-14 12:14:03 -0800</bug_when>
    <thetext>Comment on attachment 449195
Patch

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

&gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:-3996
&gt;&gt; -            m_jit.tagReturnAddress();
&gt; 
&gt; This part is broken. You should not tag when JITCage is not enabled. But updated code is not following.

I see, the problem is that emitFunctionPrologue() always calls tagReturnAddress(). I&apos;ll special-case ARM64 then and revert to the original code.

&gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:4048
&gt;&gt; +            m_jit.untagReturnAddress();
&gt; 
&gt; Why is it added?

Suggested by a colleague, I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831024</commentid>
    <comment_count>38</comment_count>
      <attachid>449208</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-14 12:36:35 -0800</bug_when>
    <thetext>Created attachment 449208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831025</commentid>
    <comment_count>39</comment_count>
      <attachid>449208</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-14 12:38:35 -0800</bug_when>
    <thetext>Comment on attachment 449208
Patch

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

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:3963
&gt; +#if !CPU(ARM64)
&gt; +        m_jit.emitFunctionPrologue();
&gt; +#endif

Why is this change necessary? It looks like rather it is introducing complication.

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:4062
&gt; +    m_jit.emitFunctionEpilogue();

indentation is not correct. And why do we need this modification?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831026</commentid>
    <comment_count>40</comment_count>
    <who name="Geza Lore">glore</who>
    <bug_when>2022-01-14 12:41:31 -0800</bug_when>
    <thetext>Yusuke: &apos;emitFunctionPrologue&apos; always tags the return address. We did not use to use this, but getting to the stacked arguments consistently without the frame pointer setup is a pain. So we now call &apos;emitFunctionPrologue&apos;, always. To do the tail call when the JITCage is used, we simply untag prior to the tail call. Should have the same effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831031</commentid>
    <comment_count>41</comment_count>
      <attachid>449208</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-14 12:46:27 -0800</bug_when>
    <thetext>Comment on attachment 449208
Patch

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

&gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:3963
&gt;&gt; +#endif
&gt; 
&gt; Why is this change necessary? It looks like rather it is introducing complication.

We need it so the frame pointer is properly set up in a way that is independent of the arch. The function loadArgumentFromStack needs the frame pointer to be set or it will fail to load the argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831032</commentid>
    <comment_count>42</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-14 12:49:17 -0800</bug_when>
    <thetext>(In reply to Mikhail R. Gadelha from comment #41)
&gt; Comment on attachment 449208 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449208&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:3963
&gt; &gt;&gt; +#endif
&gt; &gt; 
&gt; &gt; Why is this change necessary? It looks like rather it is introducing complication.
&gt; 
&gt; We need it so the frame pointer is properly set up in a way that is
&gt; independent of the arch. The function loadArgumentFromStack needs the frame
&gt; pointer to be set or it will fail to load the argument.

Why cant’ we use stack pointer here? If we count # of pushes in prologue (as suggested in https://webkit.slack.com/archives/CTV4FGWF4/p1640206561238000?thread_ts=1640112033.226400&amp;cid=CTV4FGWF4), we can use stack pointer to get the argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831038</commentid>
    <comment_count>43</comment_count>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-14 13:03:19 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #42)
&gt; (In reply to Mikhail R. Gadelha from comment #41)
&gt; &gt; Comment on attachment 449208 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=449208&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:3963
&gt; &gt; &gt;&gt; +#endif
&gt; &gt; &gt; 
&gt; &gt; &gt; Why is this change necessary? It looks like rather it is introducing complication.
&gt; &gt; 
&gt; &gt; We need it so the frame pointer is properly set up in a way that is
&gt; &gt; independent of the arch. The function loadArgumentFromStack needs the frame
&gt; &gt; pointer to be set or it will fail to load the argument.
&gt; 
&gt; Why cant’ we use stack pointer here? If we count # of pushes in prologue (as
&gt; suggested in
&gt; https://webkit.slack.com/archives/CTV4FGWF4/
&gt; p1640206561238000?thread_ts=1640112033.226400&amp;cid=CTV4FGWF4), we can use
&gt; stack pointer to get the argument.

We can use it but (In reply to Yusuke Suzuki from comment #42)
&gt; (In reply to Mikhail R. Gadelha from comment #41)
&gt; &gt; Comment on attachment 449208 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=449208&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:3963
&gt; &gt; &gt;&gt; +#endif
&gt; &gt; &gt; 
&gt; &gt; &gt; Why is this change necessary? It looks like rather it is introducing complication.
&gt; &gt; 
&gt; &gt; We need it so the frame pointer is properly set up in a way that is
&gt; &gt; independent of the arch. The function loadArgumentFromStack needs the frame
&gt; &gt; pointer to be set or it will fail to load the argument.
&gt; 
&gt; Why cant’ we use stack pointer here? If we count # of pushes in prologue (as
&gt; suggested in
&gt; https://webkit.slack.com/archives/CTV4FGWF4/
&gt; p1640206561238000?thread_ts=1640112033.226400&amp;cid=CTV4FGWF4), we can use
&gt; stack pointer to get the argument.

It just (In reply to Yusuke Suzuki from comment #42)
&gt; (In reply to Mikhail R. Gadelha from comment #41)
&gt; &gt; Comment on attachment 449208 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=449208&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:3963
&gt; &gt; &gt;&gt; +#endif
&gt; &gt; &gt; 
&gt; &gt; &gt; Why is this change necessary? It looks like rather it is introducing complication.
&gt; &gt; 
&gt; &gt; We need it so the frame pointer is properly set up in a way that is
&gt; &gt; independent of the arch. The function loadArgumentFromStack needs the frame
&gt; &gt; pointer to be set or it will fail to load the argument.
&gt; 
&gt; Why cant’ we use stack pointer here? If we count # of pushes in prologue (as
&gt; suggested in
&gt; https://webkit.slack.com/archives/CTV4FGWF4/
&gt; p1640206561238000?thread_ts=1640112033.226400&amp;cid=CTV4FGWF4), we can use
&gt; stack pointer to get the argument.

We can but the current approach seems more robust because we have an arch-independent way of getting what we want: we simply need to set up frame pointer in the function prologue.

The patch that counts the pushes looks worse IMHO (ignore the code not in generateEnter()): https://bugs.webkit.org/attachment.cgi?id=448434&amp;action=review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831047</commentid>
    <comment_count>44</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-14 13:11:20 -0800</bug_when>
    <thetext>(In reply to Mikhail R. Gadelha from comment #43)
&gt; 
&gt; We can but the current approach seems more robust because we have an
&gt; arch-independent way of getting what we want: we simply need to set up frame
&gt; pointer in the function prologue.
&gt; 
&gt; The patch that counts the pushes looks worse IMHO (ignore the code not in
&gt; generateEnter()):
&gt; https://bugs.webkit.org/attachment.cgi?id=448434&amp;action=review

But this is adding unnecessary tagging and untagging, which can affect on,

1. machine code generation size
2. performance

since RegExp code is tiny.
So, even it is more robust, I don&apos;t think this is OK since it hurts performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831244</commentid>
    <comment_count>45</comment_count>
      <attachid>449208</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-15 13:26:23 -0800</bug_when>
    <thetext>Comment on attachment 449208
Patch

So, since this is regressing ARM64 code, putting r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831554</commentid>
    <comment_count>46</comment_count>
      <attachid>449345</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-17 12:44:52 -0800</bug_when>
    <thetext>Created attachment 449345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831902</commentid>
    <comment_count>47</comment_count>
      <attachid>449450</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-18 16:43:11 -0800</bug_when>
    <thetext>Created attachment 449450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832087</commentid>
    <comment_count>48</comment_count>
      <attachid>449495</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-19 10:53:04 -0800</bug_when>
    <thetext>Created attachment 449495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832970</commentid>
    <comment_count>49</comment_count>
      <attachid>449495</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-21 20:15:28 -0800</bug_when>
    <thetext>Comment on attachment 449495
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832973</commentid>
    <comment_count>50</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-21 20:59:45 -0800</bug_when>
    <thetext>Committed r288400 (246291@main): &lt;https://commits.webkit.org/246291@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449495.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832980</commentid>
    <comment_count>51</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-01-21 22:01:40 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 235470</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832983</commentid>
    <comment_count>52</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-21 22:04:51 -0800</bug_when>
    <thetext>Reverted since it broke ARM64E build.

According to Peng, the error is the following.

/Volumes/Data/webkit/OpenSource/Source/JavaScriptCore/yarr/YarrJIT.h:335:32: error: no matching function for call to &apos;vmEntryToYarrJIT&apos;
      return MatchResult(vmEntryToYarrJIT(input, start, length, output, &amp;matchingContext, retagCodePtr&lt;Yarr8BitPtrTag, YarrEntryPtrTag&gt;(m_ref8.code().executableAddress())));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833367</commentid>
    <comment_count>53</comment_count>
      <attachid>449825</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-01-24 09:24:01 -0800</bug_when>
    <thetext>Created attachment 449825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833498</commentid>
    <comment_count>54</comment_count>
      <attachid>449825</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-24 14:49:10 -0800</bug_when>
    <thetext>Comment on attachment 449825
Patch

r=me, nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833525</commentid>
    <comment_count>55</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-24 15:21:33 -0800</bug_when>
    <thetext>Committed r288476 (246359@main): &lt;https://commits.webkit.org/246359@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449825.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447519</attachid>
            <date>2021-12-18 06:56:44 -0800</date>
            <delta_ts>2021-12-20 20:07:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20211218145643.patch</filename>
            <type>text/plain</type>
            <size>9032</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MDlhMWM2YzM5N2YyY2Q0ZWFiYTdiNjg1OGRiMjYyODJmYTljNWQzLi4wMWQ5NWMyNDVlNDJhNDc2
OTUyOTg5NWZlOGUxNzQ3NjM0NTc0MWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMS0xMi0xOCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIGNyYXNoZXMg
b24gQVJNdjcvTUlQUyBieSBhZGRpbmcgbW9yZSByZWdpc3RlcnMgYW5kCisgICAgICAgIGVuYWJs
aW5nIEVOQUJMRV9ZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TLCBzbyB0aGUgYmVoYXZp
b3IgaXMgdGhlCisgICAgICAgIGFzIGluIDY0Yml0IHBsYXRmb3Jtcy4KKworICAgICAgICAqIHJ1
bnRpbWUvUmVnRXhwSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpSZWdFeHA6Om1hdGNoSW5saW5l
KToKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorICAgICAgICAqIHlhcnIvWWFyckpJVFJl
Z2lzdGVycy5oOgorICAgICAgICAqIHlhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oOgor
ICAgICAgICAoSlNDOjpZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4
dEhvbGRlcik6CisKIDIwMjEtMTItMTcgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtSSVNDVjY0XSBJbXBsZW1lbnQgbGlua2luZyBhbmQgcGF0Y2hpbmcg
c3VwcG9ydCBpbiBSSVNDVjY0QXNzZW1ibGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAyMWU0YTkzYWZmOTJhNDY4ZmI5YTZm
ZDNjNmMwNDBjMDQ3YTQ4ZDMuLjI5OWEzYTMwYmVlNTNjZThkYjkxMjdmYTY5Y2ZhMGFhYWQwZTYz
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMTggIE1pa2hhaWwgUi4gR2FkZWxoYSAg
PG1pa2hhaWxAaWdhbGlhLmNvbT4KKworICAgICAgICBbSlNDXVszMmJpdF0gRml4IHJlZ2V4cCBj
cmFzaCB3aGVuIGJ1aWxkaW5nIG9uIEFSTXY3IHVzaW5nIGdjYyAxMC4yLjEKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ3NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgc2V2
ZXJhbCBjcmFzaGVzIG9uIEFSTXY3L01JUFMgYnkgYWRkaW5nIG1vcmUgcmVnaXN0ZXJzIGFuZAor
ICAgICAgICBlbmFibGluZyBFTkFCTEVfWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUywg
c28gdGhlIGJlaGF2aW9yIGlzIHRoZQorICAgICAgICBhcyBpbiA2NGJpdCBwbGF0Zm9ybXMuCisK
KyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGUuaDoKKwogMjAyMS0xMi0xNiAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjg3MDU2LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwSW5saW5lcy5oCmluZGV4IDAyMmNiYmE1NTU3ZTcxNzhkMTRkNGI2NjFlZGNkNjg1YTRmNzg3
ZTIuLjlmMGZmZGNiNjNiMWFmNmQwZmYwZjY3NzM3Y2NiYzY4MDNjZGJlZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgKQEAgLTEzMiw3ICsxMzIs
NyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0
KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlmIChtX3N0YXRlID09IEpJVENvZGUp
IHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAg
ICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9y
ZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+
dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAg
ICAgIGlmIChzLmlzOEJpdCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklU
Q29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBv
ZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0OwpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFM
V0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxP
ckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVy
cm9yKQogICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRl
eHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0
T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGlu
dCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3Qs
IFZNJiB2bQogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGlu
Z0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9t
KTsKKyAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0s
IC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7
CiAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgp
LCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3Rv
cikpOwogICAgIH0KIApAQCAtMjY2LDcgKzI2Niw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1
bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0
CiAgICAgICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKICAgICAgICAgewogICAgICAgICAgICAgQVNT
RVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRI
b2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRj
aEZyb20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENv
bnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRo
aXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQogICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCks
IHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKQEAgLTI5NSw3ICsyOTUs
NyBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9i
YWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAgIG5vblJldHVybmVkT3ZlY3Rvci5ncm93
KG9mZnNldFZlY3RvclNpemUpOwogICAgIG9mZnNldFZlY3RvciA9IG5vblJldHVybmVkT3ZlY3Rv
ci5kYXRhKCk7CiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9
IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwg
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KICNpZiBS
RUdFWFBfRlVOQ19URVNUX0RBVEFfR0VOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUveWFyci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQu
Y3BwCmluZGV4IGFlMTg5NWNiMzgyZGM0NzU4NGMxMjc1NWQ5NDBiMzFlZDJhYjVkOGQuLjBmNzE5
OTBkMGFmZWJlOTZlMGI5NzI4NTE4MjYzNzJlN2NkMTdlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJKSVQuY3BwCkBAIC00MTg5LDEwICs0MTg5LDYgQEAgcHVibGljOgogICAgICAg
ICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5k
IG9uIHRoZSBzdGFjay4KICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1h
dGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9p
ZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQ
UykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBp
dCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVn
aXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2pp
dC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1Bv
aW50ZXJSZWdpc3RlciwgNCAqIHNpemVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwogI2Vs
c2UKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4
dCA9IG1fcmVncy5tYXRjaGluZ0NvbnRleHQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAppbmRleCBiZTk3YTIyMzJhM2EzOTNlNDc5NjM4
MzYzYTIxYzU0OTJmZjhmMjk3Li43OWE1NmQ4MjAxMWE4OGUyZjMwZTQ0YWZiMTM1MjMxOWZmZGU1
N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0
ZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5o
CkBAIC00OCw2ICs0OCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBy
ZWdUMiA9IEFSTVJlZ2lzdGVyczo6cjg7CiAgICAgLy8gcjkgaXMgc2IgaW4gRUFCSS4KICAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyBpbml0aWFsU3RhcnQgPSBBUk1SZWdpc3RlcnM6OnIxMDsg
Ly8gcjEwIGlzIFNMLCBidXQgbm8gbG9uZ2VyIGEgc3BlY2lhbCByZWdpc3Rlci4KKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBBUk1SZWdpc3RlcnM6OnIxMTsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBmcmVlbGlzdFJlZ2lzdGVyID0gQVJNUmVnaXN0
ZXJzOjpyMTE7IC8vIExvYWRlZCBmcm9tIHRoZSBNYXRjaGluZ0NvbnRleHRIb2xkZXIgaW4gdGhl
IHByb2xvZ3VlLgorICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGZyZWVsaXN0U2l6ZVJlZ2lz
dGVyID0gQVJNUmVnaXN0ZXJzOjpyMTI7IC8vIE9ubHkgdXNlZCBkdXJpbmcgaW5pdGlhbGl6YXRp
b24uCiAKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IEFSTVJl
Z2lzdGVyczo6cjA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIy
ID0gQVJNUmVnaXN0ZXJzOjpyMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1YzcwYTA1
YTdlNzcyNWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRl
YzhhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hp
bmdDb250ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1h
dGNoaW5nQ29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhwOwog
CiBuYW1lc3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNo
aW5nQ29udGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJs
aWM6Ci0gICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJlZ0V4
cCosIE1hdGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVn
RXhwKiwgTWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihNYXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5
LDcgQEAgcHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxpbmUg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJy
Q29kZUJsb2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNo
RnJvbSkKK2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRl
cihWTSYgdm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwg
TWF0Y2hGcm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJvbSht
YXRjaEZyb20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4dEhv
bGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckMK
ICAgICB9CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKLSAg
ICBpZiAoeWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRleHRC
dWZmZXIoKSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAgICAg
bV9wYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhC
dWZmZXIoKTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVy
bkNvbnRleHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlhcnJD
b2RlQmxvY2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZS5oCmluZGV4IGIyNjNlZTQ2NDg1NjY2NWNl
OTBmNzgzZDZjZTdlMGRlZDlhZWUwNjcuLjE5ZDdjOTczYjViZDZmZTNkOWQ0ODQ3OWUwYjE1NTI3
OGY5NWI4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKKysr
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaApAQCAtNzQ5LDcgKzc0OSw3IEBACiAj
ZW5kaWYKIAogLyogRW5hYmxlIEpJVCdpbmcgUmVndWxhciBFeHByZXNzaW9ucyB0aGF0IGhhdmUg
bmVzdGVkIHBhcmVudGhlc2lzIC4gKi8KLSNpZiBFTkFCTEUoWUFSUl9KSVQpICYmIChDUFUoQVJN
NjQpIHx8IChDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykpKQorI2lmIEVOQUJMRShZQVJSX0pJ
VCkgJiYgKENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKSkKICNkZWZpbmUgRU5BQkxFX1lBUlJf
SklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMgMQogI2RlZmluZSBFTkFCTEVfWUFSUl9KSVRfUkVH
RVhQX1RFU1RfSU5MSU5FIDEKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447675</attachid>
            <date>2021-12-20 20:07:09 -0800</date>
            <delta_ts>2021-12-21 09:59:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20211221040708.patch</filename>
            <type>text/plain</type>
            <size>7935</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZmNkZGFmOGRlMTQ1Y2E5NGQ1YWZkMDQyMjljMjkyMjIxNjdlN2QyLi4wY2Y5ZDU4ODQ3MjA5YTAw
MDZiODNiYmQ2MmU5ZmMxNTQxNGNhOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suCisKKyAgICAg
ICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMgdG8gdGhlIHN0YWNrIGJl
Zm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3Rh
Y2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAgICAgICBwdHIsIGhvd2V2
ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVkIHRvIGdldCB0aGUKKyAg
ICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIuCisKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4
cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAg
ICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRI
b2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRj
aGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIxLTEyLTE5ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5r
aXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXSBPcFBvdyBzaG91bGQgaGF2ZSBhICJz
bWFsbCBpbnQgZXhwb25lbnQiIGZhc3QgcGF0aCBhdCBsb3dlciB0aWVycwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMTM1YzEy
NjNhYjRhNmFhNTU0ZDA2YmRkMGIzNTg0M2MyY2RlOTViMC4uNTE2YzZiZjNmYTFmYTZhMDIzYTc4
ZDg3ZmFhZTlkYzdhYzVkNmQyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0yODg4LDcgKzI4ODgsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlUmVnRXhwVGVzdElubGluZShOb2RlKiBub2RlKQogewogICAgIFVO
VVNFRF9QQVJBTShub2RlKTsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
Y29tcGlsZVJlZ0V4cFRlc3Qobm9kZSk7CisgICAgY29tcGlsZVJlZ0V4cFRlc3Qobm9kZSk7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oCmluZGV4IDAyMmNiYmE1NTU3ZTcxNzhkMTRkNGI2NjFlZGNkNjg1YTRmNzg3ZTIuLjlmMGZm
ZGNiNjNiMWFmNmQwZmYwZjY3NzM3Y2NiYzY4MDNjZGJlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgKQEAgLTEzMiw3ICsxMzIsNyBAQCBBTFdB
WVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JH
bG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlmIChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAg
ICAgewogICAgICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZ
YXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRD
b2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdD
b250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRl
cm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChz
LmlzOEJpdCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhl
Y3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0
b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0OwpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFMV0FZU19JTkxJ
TkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9i
amVjdCwgVk0mIHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAg
ICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51
bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdD
b250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZl
cjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
WWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCBy
ZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6
Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQog
ICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRI
b2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAg
ICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQ
YXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAg
IHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFy
dE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAg
IH0KIApAQCAtMjY2LDcgKzI2Niw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhw
OjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0CiAgICAgICAg
IE1hdGNoUmVzdWx0IHJlc3VsdDsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1fcmVn
RXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20pOwor
ICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0s
IG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNo
RnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQogICAgICAgICAgICAgICAgIHJl
c3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zm
c2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKQEAgLTI5NSw3ICsyOTUsNyBAQCBBTFdB
WVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3Qq
IG51bGxPckdsb2JhbE9iamVjdAogICAgIG5vblJldHVybmVkT3ZlY3Rvci5ncm93KG9mZnNldFZl
Y3RvclNpemUpOwogICAgIG9mZnNldFZlY3RvciA9IG5vblJldHVybmVkT3ZlY3Rvci5kYXRhKCk7
CiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4
dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6TWF0Y2hpbmdD
b250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZl
cjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9IFlhcnI6Omlu
dGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnBy
ZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KICNpZiBSRUdFWFBfRlVO
Q19URVNUX0RBVEFfR0VOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCmluZGV4
IGFlMTg5NWNiMzgyZGM0NzU4NGMxMjc1NWQ5NDBiMzFlZDJhYjVkOGQuLjhjZjY5NDJiMDg2NTUy
NDE5Y2Q1OTA4M2EyMmFkMDQ5NjNmNmFlZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJKSVQuY3BwCkBAIC00MTg5LDEwICs0MTg5LDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIC8v
IG1hdGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUg
c3RhY2suCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0Nv
bnRleHQgPSBtX3JlZ3MucmVnVDE7CiAgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA3ICogc2l6ZW9mKHZvaWQqKSksIG1h
dGNoaW5nQ29udGV4dCk7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCisjZWxp
ZiBDUFUoQVJNX1RIVU1CMikKICAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29udGV4dCBpcyB0aGUg
NXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCisgICAgICAgICAgICAvLyBU
T0RPOiBleHBsYWluIHRoZSBtYWdpYyBudW1iZXIKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7
CisgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3Jv
QXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNSAqIHNpemVvZih2b2lkKikpLCBtYXRj
aGluZ0NvbnRleHQpOworI2VsaWYgQ1BVKE1JUFMpCisgICAgICAgICAgICAvLyBUT0RPCisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2Vsc2UKICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5tYXRj
aGluZ0NvbnRleHQ7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1YzcwYTA1
YTdlNzcyNWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRl
YzhhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hp
bmdDb250ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1h
dGNoaW5nQ29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhwOwog
CiBuYW1lc3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNo
aW5nQ29udGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJs
aWM6Ci0gICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJlZ0V4
cCosIE1hdGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVn
RXhwKiwgTWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihNYXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5
LDcgQEAgcHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxpbmUg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJy
Q29kZUJsb2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNo
RnJvbSkKK2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRl
cihWTSYgdm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwg
TWF0Y2hGcm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJvbSht
YXRjaEZyb20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4dEhv
bGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckMK
ICAgICB9CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKLSAg
ICBpZiAoeWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRleHRC
dWZmZXIoKSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAgICAg
bV9wYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhC
dWZmZXIoKTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVy
bkNvbnRleHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlhcnJD
b2RlQmxvY2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpOwog
I2VuZGlmCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447729</attachid>
            <date>2021-12-21 09:59:57 -0800</date>
            <delta_ts>2022-01-05 12:38:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20211221135955.patch</filename>
            <type>text/plain</type>
            <size>10950</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZmNkZGFmOGRlMTQ1Y2E5NGQ1YWZkMDQyMjljMjkyMjIxNjdlN2QyLi4wY2Y5ZDU4ODQ3MjA5YTAw
MDZiODNiYmQ2MmU5ZmMxNTQxNGNhOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suCisKKyAgICAg
ICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMgdG8gdGhlIHN0YWNrIGJl
Zm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3Rh
Y2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAgICAgICBwdHIsIGhvd2V2
ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVkIHRvIGdldCB0aGUKKyAg
ICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIuCisKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4
cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAg
ICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRI
b2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRj
aGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIxLTEyLTE5ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5r
aXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXSBPcFBvdyBzaG91bGQgaGF2ZSBhICJz
bWFsbCBpbnQgZXhwb25lbnQiIGZhc3QgcGF0aCBhdCBsb3dlciB0aWVycwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMTM1YzEy
NjNhYjRhNmFhNTU0ZDA2YmRkMGIzNTg0M2MyY2RlOTViMC4uNTE2YzZiZjNmYTFmYTZhMDIzYTc4
ZDg3ZmFhZTlkYzdhYzVkNmQyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0yODg4LDcgKzI4ODgsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlUmVnRXhwVGVzdElubGluZShOb2RlKiBub2RlKQogewogICAgIFVO
VVNFRF9QQVJBTShub2RlKTsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
Y29tcGlsZVJlZ0V4cFRlc3Qobm9kZSk7CisgICAgY29tcGlsZVJlZ0V4cFRlc3Qobm9kZSk7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXgg
MWI4Y2Q0MjBmMTA3MDlkMWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVj
NzViMjc3Y2M1MTYwMDAwMjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHAuY3BwCkBAIC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21w
YXJlV2l0aEludGVycHJldGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQq
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAg
ICBZYXJyOjpZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgp
OwotICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXpl
LCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhC
aXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hP
bmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNu
cHJpbnRmKGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAg
ICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0
bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hB
ZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRB
ZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNv
ZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50Zihq
aXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigp
KSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwg
IjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5n
ZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hB
ZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBJbmxpbmVzLmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVh
NGY3ODdlMi4uOWYwZmZkY2I2M2IxYWY2ZDBmZjBmNjc3MzdjY2JjNjgwM2NkYmVlMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDcg
KzEzMiw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxP
YmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgaWYgKG1fc3RhdGUgPT0gSklU
Q29kZSkgewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRDb2RlKTsK
LSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZt
LCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICBZ
YXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRD
b2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsKIAogICAg
ICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdF
eHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3Ro
KCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CkBAIC0xNDYsNyArMTQ2LDcg
QEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCog
bnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlmIChtX3N0YXRlID09IFBh
cnNlRXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKTsKICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhw
Q29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgICAgICBZ
YXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRl
cm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgICAg
ICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywg
c3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZU19JTkxJ
TkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9i
amVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlhcnI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRj
aEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4
dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hG
cm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUu
Z2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0
VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYsNyArMjY2LDcgQEAgQUxXQVlTX0lOTElORSBNYXRj
aFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxP
YmplY3QKICAgICAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAg
ICBBU1NFUlQobV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29u
dGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMs
IG1hdGNoRnJvbSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIo
KSwgdGhpcywgbWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCiAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVy
czgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOwpAQCAtMjk1LDcg
KzI5NSw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShK
U0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVjdG9y
Lmdyb3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAgb2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRP
dmVjdG9yLmRhdGEoKTsKICAgICB7Ci0gICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRl
ciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZ
YXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRl
cm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVz
dWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zm
c2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQog
I2lmIFJFR0VYUF9GVU5DX1RFU1RfREFUQV9HRU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckpJVC5jcHAKaW5kZXggYWUxODk1Y2IzODJkYzQ3NTg0YzEyNzU1ZDk0MGIzMWVkMmFiNWQ4ZC4u
YmM5Nzg5MDczYWJjMTFjNzhiYzQzOTk5NTI2ZDk0ZDNkYzM1OTMxZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTQwMDIsMTMgKzQwMDIsMjIgQEAgY2xhc3MgWWFy
ckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgICAgICAgICBtX2pp
dC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKSwgbV9yZWdzLnRyYWls
aW5nU3Vycm9nYXRlVGFnKTsKICAgICAgICAgfQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCi0gICAg
ICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyNCk7Ci0gICAgICAgIG1faml0LnB1c2goQVJN
UmVnaXN0ZXJzOjpyNSk7Ci0gICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyNik7Ci0g
ICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyOCk7Ci0gICAgICAgIG1faml0LnB1c2go
QVJNUmVnaXN0ZXJzOjpyMTApOworICAgICAgICBhdXRvIHB1c2hSZWdBbmRDb3VudCA9IFsmXShN
YWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCByKSB7CisgICAgICAgICAgICBtX2ppdC5wdXNoKHIp
OworCisgICAgICAgICAgICAvLyBXZSBuZWVkIHRoZSA1dGggYXJndW1lbnQgcGFzc2VkIHRvIHRo
ZSBKSVRlZCBmdW5jdGlvbiBzbyB3ZSBrZWVwIHRyYWNrIG9mIGhvdworICAgICAgICAgICAgLy8g
bWFueSByZWdpc3RlcnMgd2VyZSBwdXNoZWQgb24gdGhlIHN0YWNrLiBTZWUgY29tbWVudCBvbiB0
aGlzIG1lbWJlciBkZWNsYXJhdGlvbi4KKyAgICAgICAgICAgIG1fYXJnNU9uU3RhY2tPZmZzZXQg
Kz0gc2l6ZW9mKHZvaWQqKTsKKyAgICAgICAgfTsKKworICAgICAgICBwdXNoUmVnQW5kQ291bnQo
QVJNUmVnaXN0ZXJzOjpyNCk7CisgICAgICAgIHB1c2hSZWdBbmRDb3VudChBUk1SZWdpc3RlcnM6
OnI1KTsKKyAgICAgICAgcHVzaFJlZ0FuZENvdW50KEFSTVJlZ2lzdGVyczo6cjYpOworICAgICAg
ICBwdXNoUmVnQW5kQ291bnQoQVJNUmVnaXN0ZXJzOjpyOCk7CisgICAgICAgIHB1c2hSZWdBbmRD
b3VudChBUk1SZWdpc3RlcnM6OnIxMCk7CiAjZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8g
bm90aGluZy4KKyAgICAgICAgLy8gTUlQUyBzdG9yZXMgdGhlIDV0aCBhcmd1bWVudCBvbiBzcCAr
IDE2IGJ5dGVzCisgICAgICAgIG1fYXJnNU9uU3RhY2tPZmZzZXQgPSA0ICogc2l6ZW9mKHZvaWQq
KTsKICNlbmRpZgogICAgIH0KIApAQCAtNDE5Miw3ICs0MjAxLDcgQEAgcHVibGljOgogI2VsaWYg
Q1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKQogICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250
ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVn
cy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQq
KSksIG1hdGNoaW5nQ29udGV4dCk7CisgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbV9h
cmc1T25TdGFja09mZnNldCksIG1hdGNoaW5nQ29udGV4dCk7CiAjZWxzZQogICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLm1hdGNo
aW5nQ29udGV4dDsKICNlbmRpZgpAQCAtNDY2Niw2ICs0Njc1LDE1IEBAIHByaXZhdGU6CiAgICAg
QmFja3RyYWNraW5nU3RhdGUgbV9iYWNrdHJhY2tpbmdTdGF0ZTsKICAgICAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8WWFyckRpc2Fzc2VtYmxlcj4gbV9kaXNhc3NlbWJsZXI7CisKKyNpZiBDUFUoQVJN
X1RIVU1CMikgfHwgQ1BVKE1JUFMpCisgICAgLy8gT24gQVJNdjcgYW5kIE1JUFMsIG9ubHkgNCBh
cmd1bWVudHMgYXJlIHBhc3NlZCB0byBhIGZ1bmN0aW9uIHZpYSByZWdpc3RlcnMKKyAgICAvLyBy
MC1yMywgYW5kIHRoZSByZXN0IGlzIHBsYWNlZCBvbiB0aGUgc3RhY2suIFlhcnJKSVQgbmVlZHMg
dGhlIDV0aCBhcmd1bWVudAorICAgIC8vIHRvIGNoZWNrIGZvciBzdGFjayBvdmVyZmxvdyB3aGVu
IGdlbmVyYXRpbmcgSklUZWQgY29kZToKKyAgICAvLyAqIE9uIEFSTXY3LCBnZW5lcmF0ZUVudGVy
KCkgcHVzaGVzIHJlZ2lzdGVycyBvbiB0aGUgc3RhY2ssIHNvIHRoaXMgaXMgaW5jcmVtZW50ZWQg
YWNjb3JkaW5nbHkKKyAgICAvLyAqIE9uIE1JUFMsIHRoZSA1dGggYXJndW1lbnQgaXMgcGxhY2Vk
IG9uIHNwICsgMTYgYnl0ZXMKKyAgICB1bnNpZ25lZCBtX2FyZzVPblN0YWNrT2Zmc2V0ID0gMDsK
KyNlbmRpZgogfTsKIAogc3RhdGljIHZvaWQgZHVtcENvbXBpbGVGYWlsdXJlKEpJVEZhaWx1cmVS
ZWFzb24gZmFpbHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcy
NWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250
ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5n
Q29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1l
c3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0g
ICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1h
dGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwg
TWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihN
YXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAg
cHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJs
b2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkK
K2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYg
dm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hG
cm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZy
b20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckMKICAgICB9
CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAo
eWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIo
KSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0
ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIo
KTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRl
eHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxv
Y2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlm
CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448420</attachid>
            <date>2022-01-05 12:38:09 -0800</date>
            <delta_ts>2022-01-05 13:03:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220105203807.patch</filename>
            <type>text/plain</type>
            <size>21868</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4xNGE5MTY3NmM3ZGM3ZjQ3
MDJkMmI1MGJjOWE0NmFlOTA2NzUxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suIFdlIG5vdyB1
c2UgY2FsY3VsYXRlUG9rZU9mZnNldCB0byBjYWxjdWxhdGUgdGhlCisgICAgICAgIG9mZnNldCBv
ZiB0aGUgNXRoIGFyZ3VtZW50IGFuZCBrZWVwIHRyYWNrIG9mIGFueSBwdXNoIGludG8gdGhlIHN0
YWNrCisgICAgICAgIHNvIHdlIGNhbiBmaWd1cmUgb3V0IHRoZSBvZmZzZXQgb2YgZXZlcnkgcGxh
dGZvcm0uCisKKyAgICAgICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMg
dG8gdGhlIHN0YWNrIGJlZm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAg
ICAgICBwdHIsIGhvd2V2ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVk
IHRvIGdldCB0aGUKKyAgICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIu
CisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElu
bGluZSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQ
cm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJp
dmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQw
YjM1ODQzYzJjZGU5NWIwLi41MTZjNmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVS
ZWdFeHBUZXN0SW5saW5lKE5vZGUqIG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChu
b2RlKTsKKyAgICBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4
MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li5jNzA0YmY4MmEwOTliODE2NTM1ODc3YjI1MWVlMjM2ODA3
YTg5YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTg1
LDYgKzg1LDExIEBAIHB1YmxpYzoKICAgICAgICAgcG9rZShHUFJJbmZvOjpub25BcmdHUFIwLCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCArIGFyZ3VtZW50SW5kZXggLSBHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGNh
bGN1bGF0ZVBva2VPZmZzZXQodW5zaWduZWQgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNh
bGN1bGF0ZVBva2VPZmZzZXQoYXJnLCAvKiBjdXJyZW50RlBSQXJndW1lbnQ6ICovIDAsIC8qIG51
bUNyb3NzU291cmNlczogKi8gMCwgLyogZXh0cmFHUFJBcmdzOiAqLyAwLCAvKiBub25BcmdHUFJz
OiAqLyAwLCAvKiBleHRyYVBva2U6ICovIDApOworICAgIH0KKwogcHJpdmF0ZToKIAogICAgIHRl
bXBsYXRlPHVuc2lnbmVkIE51bWJlck9mUmVnaXN0ZXJzLCB0eXBlbmFtZSBSZWdUeXBlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3MDlk
MWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYwMDAw
Mjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCkBA
IC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVycHJl
dGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJyQ29k
ZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgpOwotICAgICAgICAgICAg
c25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRy
KCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRN
YXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmlu
dGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAg
ICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0
TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25s
eUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAg
ICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBU
UiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRy
KCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6
ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVz
LmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uMGEwOTE3
OGU2ZjlhOTQzOTFhMGRmMWQwMWMzOWU1Y2VjYWRmYmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAgQUxX
QVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBpZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklU
Q29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5n
Q29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAo
cy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVj
dG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5n
dGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMu
Y2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJl
Z0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklU
Q29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwg
b2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6OkpJ
VENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJl
Z0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0m
IHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRo
aXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFs
c2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50
ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5s
aW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIH0gZWxz
ZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9
IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwg
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KIApAQCAt
MjY2LDEyICsyNjYsMTIgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICAgICAgTWF0Y2hS
ZXN1bHQgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRD
b2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250
ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdF
eHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsK
IAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMu
bGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVn
RXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0
aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZz
ZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxF
KFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1LDcgKzI5NSw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hS
ZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2Jq
ZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVjdG9yLmdyb3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAg
b2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVjdG9yLmRhdGEoKTsKICAgICB7Ci0gICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0
aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhp
cywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhw
Qnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVk
Kj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VYUF9GVU5DX1RFU1RfREFUQV9HRU4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggYTQ5OGVmNzgwNzMxODI0
ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uNmQ1OTc2ODM1ZGRkZjA5NjVkNjM0YmU1YTc1Zjdh
NjIxODU2YjhkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJZYXJySklULmgiCiAK
KyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5j
bHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBAIC0zOTYxLDU1ICszOTYyLDY1IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAg
dm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7CisgICAgICAgIGF1dG8gcHVzaEluRW50ZXIgPSBb
Jl0oR1BSUmVnIGdwcikgeworICAgICAgICAgICAgbV9qaXQucHVzaChncHIpOworICAgICAgICAg
ICAgbV9wdXNoQ291bnRJbkVudGVyICs9IDE7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBw
dXNoUGFpckluRW50ZXIgPSBbJl0oR1BSUmVnIGdwcjEsIEdQUlJlZyBncHIyKSB7CisgICAgICAg
ICAgICBtX2ppdC5wdXNoUGFpcihncHIxLCBncHIyKTsKKyAgICAgICAgICAgIG1fcHVzaENvdW50
SW5FbnRlciArPSAyOworICAgICAgICB9OworCiAjaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9q
aXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7CisgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lz
dGVyczo6ZWJwKTsKICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWJwKTsKIAogICAgICAgICBpZiAobV9wYXR0ZXJu
Lm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdp
c3RlcnM6OmVieCk7CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVieCk7
CiAKICNpZiBPUyhXSU5ET1dTKQotICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWRp
KTsKKyAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjplZGkpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKFlBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgICAgIGlmIChtX2Nv
bnRhaW5zTmVzdGVkU3VicGF0dGVybnMpIHsKICNpZiBPUyhXSU5ET1dTKQotICAgICAgICAgICAg
bV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVzaSk7CisgICAgICAgICAgICBwdXNoSW5FbnRlcihY
ODZSZWdpc3RlcnM6OmVzaSk7CiAjZW5kaWYKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVn
aXN0ZXJzOjpyMTIpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTIp
OwogICAgICAgICB9CiAjZW5kaWYKIAogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWly
cykgewotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OnIxMyk7Ci0gICAgICAg
ICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6cjE0KTsKLSAgICAgICAgICAgIG1faml0LnB1
c2goWDg2UmVnaXN0ZXJzOjpyMTUpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0
ZXJzOjpyMTMpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTQpOwor
ICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTUpOwogICAgICAgICB9CiAj
aWYgT1MoV0lORE9XUykKICAgICAgICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29tcGlsZU1v
ZGU6OkluY2x1ZGVTdWJwYXR0ZXJucykKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9pZCopKSwg
bV9yZWdzLm91dHB1dCk7CiAgICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0byB0aGUgYWxs
b2NhdGVkIHNwYWNlIGZvciByZXN1bHQgaW4geDY0IFdpbmRvd3MuCi0gICAgICAgIG1faml0LnB1
c2goWDg2UmVnaXN0ZXJzOjplY3gpOworICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6
OmVjeCk7CiAjZW5kaWYKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgaWYgKCFPcHRpb25zOjp1
c2VKSVRDYWdlKCkpCiAgICAgICAgICAgICBtX2ppdC50YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAg
ICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7CiAgICAgICAgICAgICBpZiAoIU9wdGlv
bnM6OnVzZUpJVENhZ2UoKSkKLSAgICAgICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fz
c2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0
ZXIpOworICAgICAgICAgICAgICAgIHB1c2hQYWlySW5FbnRlcihNYWNyb0Fzc2VtYmxlcjo6ZnJh
bWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwogICAgICAg
ICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApLCBt
X3JlZ3Muc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UpOwogICAgICAgICAgICAgbV9qaXQubW92ZShN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCksIG1fcmVncy5sZWFkaW5nU3Vycm9n
YXRlVGFnKTsKICAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweGRjMDApLCBtX3JlZ3MudHJhaWxpbmdTdXJyb2dhdGVUYWcpOwogICAgICAgICB9CiAj
ZWxpZiBDUFUoQVJNX1RIVU1CMikKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI0
KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKLSAgICAgICAgbV9qaXQu
cHVzaChBUk1SZWdpc3RlcnM6OnI2KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6
OnI4KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnIxMCk7CisgICAgICAgIHB1
c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjQpOworICAgICAgICBwdXNoSW5FbnRlcihBUk1SZWdp
c3RlcnM6OnI1KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyNik7CisgICAg
ICAgIHB1c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjgpOworICAgICAgICBwdXNoSW5FbnRlcihB
Uk1SZWdpc3RlcnM6OnIxMCk7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKICAgICAgICAgaWYgKG1fZGVj
b2RlU3Vycm9nYXRlUGFpcnMpCi0gICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fzc2Vt
Ymxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIp
OworICAgICAgICAgICAgcHVzaFBhaXJJbkVudGVyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CiAjZWxpZiBDUFUoTUlQ
UykKICAgICAgICAgLy8gRG8gbm90aGluZy4KICNlbmRpZgpAQCAtNDA4Niw3ICs0MDk3LDcgQEAg
Y2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgfQog
CiBwdWJsaWM6Ci0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBW
TSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3Ms
IFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJT
aXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJh
dG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVC
bG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25z
dCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9k
ZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkK
ICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC00MTA1LDcgKzQxMTYsNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYm95ZXJNb29yZURhdGEgPSBzdGF0aWNfY2FzdDxZYXJyQm95ZXJN
b3llckRhdGEqPihtX2NvZGVCbG9jayk7CiAgICAgfQogCi0gICAgWWFyckdlbmVyYXRvcihNYWNy
b0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJN
RGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25z
dCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9k
ZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25z
dCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJl
Z3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJp
bmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAg
ICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9j
ayhudWxscHRyKQpAQCAtNDE5Niw5ICs0MjA3LDI0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsK
ICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVn
aXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKICNlbGlm
IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29u
dGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCisgICAg
ICAgICAgICAvLyBJbiB0aGVzZSBwbGF0Zm9ybXMgd2UgbmVlZCB0byBnZXQgdGhlIDV0aCBhcmd1
bWVudCBmcm9tIHRoZSBzdGFjaworCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUg
SklUZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzCisgICAgICAgICAgICBzdGF0aWNfYXNz
ZXJ0KEZ1bmN0aW9uVHJhaXRzPFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlOD46OmNDYWxsQXJp
dHkoKSA9PSA1LCAiWWFyckpJVENvZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsKKyAgICAgICAgICAg
IHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGUx
Nj46OmNDYWxsQXJpdHkoKSA9PSA1LCAiWWFyckpJVENvZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsK
KyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8WWFyckNvZGVCbG9jazo6
WWFyckpJVENvZGVNYXRjaE9ubHk4Pjo6Y0NhbGxBcml0eSgpID09IDUsICJZYXJySklUQ29kZSB0
YWtlcyA1IGFyZ3VtZW50cyIpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRy
YWl0czxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2Pjo6Y0NhbGxBcml0eSgp
ID09IDUsICJZYXJySklUQ29kZSB0YWtlcyA1IGFyZ3VtZW50cyIpOworCiAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7
Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3Jv
QXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNCAqIHNpemVvZih2b2lkKikpLCBtYXRj
aGluZ0NvbnRleHQpOworCisgICAgICAgICAgICAvLyBNSVBTIHBsYWNlcyB0aGUgNXRoIGFyZ3Vt
ZW50IG9uIHNwICsgMTYgYnl0ZXMgKG9mZnNldCA0KQorICAgICAgICAgICAgLy8gQVJNdjcgcGxh
Y2VzIHRoZSA1dGggYXJndW1lbnQgb24gc3AgKyAwIGJ5dGVzIChvZmZzZXQgMCkKKyAgICAgICAg
ICAgIHVuc2lnbmVkIG9mZnNldCA9IG1faml0LmNhbGN1bGF0ZVBva2VPZmZzZXQoLyogYXJnOiAq
LyA1KSAtIDE7CisKKyAgICAgICAgICAgIC8vIFdlIGFsc28gbmVlZCB0byBjb25zaWRlciBhbnkg
cmVnaXN0ZXJzIHB1c2hlZCBpbnRvIHRoZSBzdGFjayBpbiBnZW5lcmF0ZUVudGVyKCkKKyAgICAg
ICAgICAgIG9mZnNldCArPSBtX3B1c2hDb3VudEluRW50ZXI7CisKKyAgICAgICAgICAgIG1faml0
LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBvZmZzZXQgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsK
ICNlbHNlCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0Nv
bnRleHQgPSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0OwogI2VuZGlmCkBAIC00NjE4LDcgKzQ2NDQs
NyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNzZW1ibGVyJiBtX2pp
dDsKKyAgICBDQ2FsbEhlbHBlcnMmIG1faml0OwogICAgIGNvbnN0IFZNKiBtX3ZtOwogICAgIFlh
cnJDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogICAgIFlhcnJCb3llck1veWVyRGF0YSogbV9ib3ll
ck1vb3JlRGF0YTsKQEAgLTQ2NzIsNiArNDY5OCwxMiBAQCBwcml2YXRlOgogICAgIEJhY2t0cmFj
a2luZ1N0YXRlIG1fYmFja3RyYWNraW5nU3RhdGU7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFlhcnJEaXNhc3NlbWJsZXI+IG1fZGlzYXNzZW1ibGVyOworCisgICAgLy8gTWVtYmVyIGlzIHVz
ZWQgdG8gY291bnQgdGhlIG51bWJlciBvZiBHUFIgcHVzaGVkIGludG8gdGhlIHN0YWNrIHdoZW4K
KyAgICAvLyBlbnRlcmluZyBKSVRlZCBjb2RlLiBJdCBpcyBtYWlubHkgdXNlZCB0byBmaWd1cmUg
b3V0IGlmIGFuIGZ1bmN0aW9uIGFyZ3VtZW50CisgICAgLy8gb2Zmc2V0IGluIHRoZSBzdGFjayBp
ZiB0aGVyZSB3YXNuJ3QgZW5vdWdoIHJlZ2lzdGVycyB0byBwYXNzIGl0LCBlLmcuLCBBUk12Nwor
ICAgIC8vIGFuZCBNSVBTIG9ubHkgdXNlIDQgcmVnaXN0ZXJzIHRvIHBhc3MgZnVuY3Rpb24gYXJn
dW1lbnRzLgorICAgIHVuc2lnbmVkIG1fcHVzaENvdW50SW5FbnRlciB7IDAgfTsKIH07CiAKIHN0
YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCkBA
IC00NzA2LDcgKzQ3MzgsNyBAQCBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUoSklURmFp
bHVyZVJlYXNvbiBmYWlsdXJlKQogCiB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRl
cm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIFZNKiB2bSwgWWFy
ckNvZGVCbG9jayYgY29kZUJsb2NrLCBKSVRDb21waWxlTW9kZSBtb2RlKQogewotICAgIE1hY3Jv
QXNzZW1ibGVyIG1hc207CisgICAgQ0NhbGxIZWxwZXJzIG1hc207CiAKICAgICBBU1NFUlQobW9k
ZSA9PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hPbmx5IHx8IG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6
OkluY2x1ZGVTdWJwYXR0ZXJucyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaApp
bmRleCAyODlkNmU4MWZlNTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi5jYzk3ZDFmYmE3
YzYxZmI5ODAwNWZmNzc3MzBlMzY3N2YwNTY0NGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyckpJVC5oCkBAIC0yNzEsMTIgKzI3MSwxMyBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIDogcHVi
bGljIFlhcnJCb3llck1veWVyRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWWFyckNvZGVCbG9jayk7CiAKLSAgICB1c2luZyBZYXJy
SklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQ
VVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZ
YXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQs
IFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1h
dGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNp
bmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBM
Q2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9p
ZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0g
ICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKiko
Y29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5n
dGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9D
QUxMOwotCiBwdWJsaWM6CisKKyAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVy
blR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVn
aXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGlu
Z0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhS
ZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQ
VVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0
Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4
ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3Rl
ciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRj
aE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworCiAgICAgWWFyckNvZGVCbG9j
aygpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNvbihK
SVRGYWlsdXJlUmVhc29uIGZhaWx1cmVSZWFzb24pIHsgbV9mYWlsdXJlUmVhc29uID0gZmFpbHVy
ZVJlYXNvbjsgfQpAQCAtMzI2LDcgKzMyNyw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVTdGF0cyYg
Z2V0OEJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gbV9tYXRjaE9ubHk4U3RhdHM7IH0KICAgICBJ
bmxpbmVTdGF0cyYgZ2V0MTZCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuICBtX21hdGNoT25seTE2
U3RhdHM7IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25z
dCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0
cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChoYXM4Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzM2LDcgKzMz
Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9u
UHRyPFlhcnJKSVRDb2RlOCwgWWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0
KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNv
bnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBv
dXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAg
ICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzQ2LDcg
KzM0Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0
aW9uUHRyPFlhcnJKSVRDb2RlMTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYxNi5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdD
b250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciog
aW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhv
bGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENo
YXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0
Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzU2LDcgKzM1Nyw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJK
SVRDb2RlTWF0Y2hPbmx5OCwgWWFyck1hdGNoT25seThCaXRQdHJUYWc+KG1fbWF0Y2hPbmx5OC5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51bGxwdHIs
IG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29u
c3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRl
KGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NF
UlQoaGFzMTZCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgK
aW5kZXggMTM5ZDFmZTM1YjU3NWM3MGEwNWE3ZTc3MjVkZDlmYTFlZmI2NjAxZS4uMWFmODMwOTgy
ZmY1N2YyYTkzYjY2MTc5MzhkMmRiYzVkZWM4YTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaApAQCAtMzcsMTIg
KzM3LDEwIEBAIGNsYXNzIFJlZ0V4cDsKIAogbmFtZXNwYWNlIFlhcnIgewogCi1jbGFzcyBZYXJy
Q29kZUJsb2NrOwotCiBjbGFzcyBNYXRjaGluZ0NvbnRleHRIb2xkZXIgewogICAgIFdURl9GT1JC
SURfSEVBUF9BTExPQ0FUSU9OOwogcHVibGljOgotICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihW
TSYsIFlhcnJDb2RlQmxvY2sqLCBSZWdFeHAqLCBNYXRjaEZyb20pOworICAgIE1hdGNoaW5nQ29u
dGV4dEhvbGRlcihWTSYsIGJvb2wsIFJlZ0V4cCosIE1hdGNoRnJvbSk7CiAgICAgfk1hdGNoaW5n
Q29udGV4dEhvbGRlcigpOwogCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlN0YWNrTGlt
aXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTWF0Y2hpbmdDb250ZXh0SG9sZGVyLCBtX3N0
YWNrTGltaXQpOyB9CkBAIC02MSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgTWF0Y2hGcm9tIG1f
bWF0Y2hGcm9tOwogfTsKIAotaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdD
b250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckNvZGVCbG9jaywgUmVnRXhw
KiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCitpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBib29sIHVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlciwgUmVnRXhwKiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCiAgICAgOiBtX3Zt
KHZtKQogICAgICwgbV9tYXRjaEZyb20obWF0Y2hGcm9tKQogewpAQCAtNzQsMTIgKzcyLDEyIEBA
IGlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYg
dm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDCiAgICAgfQogCiAjaWYgRU5BQkxFKFlBUlJfSklUX0FM
TF9QQVJFTlNfRVhQUkVTU0lPTlMpCi0gICAgaWYgKHlhcnJDb2RlQmxvY2sgJiYgeWFyckNvZGVC
bG9jay0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCkpIHsKKyAgICBpZiAodXNlc1BhdHRlcm5D
b250ZXh0QnVmZmVyKSB7CiAgICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXIgPSBtX3ZtLmFj
cXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgICAgIG1fcGF0dGVybkNvbnRl
eHRCdWZmZXJTaXplID0gVk06OnBhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZTsKICAgICB9CiAjZWxz
ZQotICAgIFVOVVNFRF9QQVJBTSh5YXJyQ29kZUJsb2NrKTsKKyAgICBVTlVTRURfUEFSQU0odXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyKTsKICNlbmRpZgogfQogCg==
</data>
<flag name="commit-queue"
          id="474282"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448422</attachid>
            <date>2022-01-05 12:58:27 -0800</date>
            <delta_ts>2022-01-05 13:11:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220105205826.patch</filename>
            <type>text/plain</type>
            <size>22673</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4xNGE5MTY3NmM3ZGM3ZjQ3
MDJkMmI1MGJjOWE0NmFlOTA2NzUxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suIFdlIG5vdyB1
c2UgY2FsY3VsYXRlUG9rZU9mZnNldCB0byBjYWxjdWxhdGUgdGhlCisgICAgICAgIG9mZnNldCBv
ZiB0aGUgNXRoIGFyZ3VtZW50IGFuZCBrZWVwIHRyYWNrIG9mIGFueSBwdXNoIGludG8gdGhlIHN0
YWNrCisgICAgICAgIHNvIHdlIGNhbiBmaWd1cmUgb3V0IHRoZSBvZmZzZXQgb2YgZXZlcnkgcGxh
dGZvcm0uCisKKyAgICAgICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMg
dG8gdGhlIHN0YWNrIGJlZm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAg
ICAgICBwdHIsIGhvd2V2ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVk
IHRvIGdldCB0aGUKKyAgICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIu
CisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElu
bGluZSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQ
cm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJp
dmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQw
YjM1ODQzYzJjZGU5NWIwLi41MTZjNmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVS
ZWdFeHBUZXN0SW5saW5lKE5vZGUqIG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChu
b2RlKTsKKyAgICBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4
MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li5jNzA0YmY4MmEwOTliODE2NTM1ODc3YjI1MWVlMjM2ODA3
YTg5YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTg1
LDYgKzg1LDExIEBAIHB1YmxpYzoKICAgICAgICAgcG9rZShHUFJJbmZvOjpub25BcmdHUFIwLCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCArIGFyZ3VtZW50SW5kZXggLSBHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGNh
bGN1bGF0ZVBva2VPZmZzZXQodW5zaWduZWQgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNh
bGN1bGF0ZVBva2VPZmZzZXQoYXJnLCAvKiBjdXJyZW50RlBSQXJndW1lbnQ6ICovIDAsIC8qIG51
bUNyb3NzU291cmNlczogKi8gMCwgLyogZXh0cmFHUFJBcmdzOiAqLyAwLCAvKiBub25BcmdHUFJz
OiAqLyAwLCAvKiBleHRyYVBva2U6ICovIDApOworICAgIH0KKwogcHJpdmF0ZToKIAogICAgIHRl
bXBsYXRlPHVuc2lnbmVkIE51bWJlck9mUmVnaXN0ZXJzLCB0eXBlbmFtZSBSZWdUeXBlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3MDlk
MWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYwMDAw
Mjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCkBA
IC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVycHJl
dGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJyQ29k
ZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgpOwotICAgICAgICAgICAg
c25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRy
KCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRN
YXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmlu
dGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAg
ICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0
TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25s
eUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAg
ICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBU
UiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRy
KCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6
ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVz
LmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uMGEwOTE3
OGU2ZjlhOTQzOTFhMGRmMWQwMWMzOWU1Y2VjYWRmYmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAgQUxX
QVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBpZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklU
Q29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5n
Q29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAo
cy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVj
dG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5n
dGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMu
Y2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJl
Z0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklU
Q29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwg
b2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6OkpJ
VENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJl
Z0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0m
IHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRo
aXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFs
c2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50
ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5s
aW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIH0gZWxz
ZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9
IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwg
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KIApAQCAt
MjY2LDEyICsyNjYsMTIgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICAgICAgTWF0Y2hS
ZXN1bHQgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRD
b2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250
ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdF
eHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsK
IAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMu
bGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVn
RXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0
aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZz
ZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxF
KFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1LDcgKzI5NSw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hS
ZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2Jq
ZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVjdG9yLmdyb3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAg
b2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVjdG9yLmRhdGEoKTsKICAgICB7Ci0gICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0
aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhp
cywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhw
Qnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVk
Kj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VYUF9GVU5DX1RFU1RfREFUQV9HRU4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggYTQ5OGVmNzgwNzMxODI0
ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uZGIwZWQwODBmMjc1MmFjZTA0M2Y5ZjliNWZjYTA3
NjQ0MmUxY2I5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJZYXJySklULmgiCiAK
KyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5j
bHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBAIC0zOTYxLDU1ICszOTYyLDY1IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAg
dm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7CisgICAgICAgIGF1dG8gcHVzaEluRW50ZXIgPSBb
Jl0oR1BSUmVnIGdwcikgeworICAgICAgICAgICAgbV9qaXQucHVzaChncHIpOworICAgICAgICAg
ICAgbV9wdXNoQ291bnRJbkVudGVyICs9IDE7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBw
dXNoUGFpckluRW50ZXIgPSBbJl0oR1BSUmVnIGdwcjEsIEdQUlJlZyBncHIyKSB7CisgICAgICAg
ICAgICBtX2ppdC5wdXNoUGFpcihncHIxLCBncHIyKTsKKyAgICAgICAgICAgIG1fcHVzaENvdW50
SW5FbnRlciArPSAyOworICAgICAgICB9OworCiAjaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9q
aXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7CisgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lz
dGVyczo6ZWJwKTsKICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWJwKTsKIAogICAgICAgICBpZiAobV9wYXR0ZXJu
Lm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdp
c3RlcnM6OmVieCk7CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVieCk7
CiAKICNpZiBPUyhXSU5ET1dTKQotICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWRp
KTsKKyAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjplZGkpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKFlBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgICAgIGlmIChtX2Nv
bnRhaW5zTmVzdGVkU3VicGF0dGVybnMpIHsKICNpZiBPUyhXSU5ET1dTKQotICAgICAgICAgICAg
bV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVzaSk7CisgICAgICAgICAgICBwdXNoSW5FbnRlcihY
ODZSZWdpc3RlcnM6OmVzaSk7CiAjZW5kaWYKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVn
aXN0ZXJzOjpyMTIpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTIp
OwogICAgICAgICB9CiAjZW5kaWYKIAogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWly
cykgewotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OnIxMyk7Ci0gICAgICAg
ICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6cjE0KTsKLSAgICAgICAgICAgIG1faml0LnB1
c2goWDg2UmVnaXN0ZXJzOjpyMTUpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0
ZXJzOjpyMTMpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTQpOwor
ICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTUpOwogICAgICAgICB9CiAj
aWYgT1MoV0lORE9XUykKICAgICAgICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29tcGlsZU1v
ZGU6OkluY2x1ZGVTdWJwYXR0ZXJucykKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9pZCopKSwg
bV9yZWdzLm91dHB1dCk7CiAgICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0byB0aGUgYWxs
b2NhdGVkIHNwYWNlIGZvciByZXN1bHQgaW4geDY0IFdpbmRvd3MuCi0gICAgICAgIG1faml0LnB1
c2goWDg2UmVnaXN0ZXJzOjplY3gpOworICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6
OmVjeCk7CiAjZW5kaWYKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgaWYgKCFPcHRpb25zOjp1
c2VKSVRDYWdlKCkpCiAgICAgICAgICAgICBtX2ppdC50YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAg
ICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7CiAgICAgICAgICAgICBpZiAoIU9wdGlv
bnM6OnVzZUpJVENhZ2UoKSkKLSAgICAgICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fz
c2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0
ZXIpOworICAgICAgICAgICAgICAgIHB1c2hQYWlySW5FbnRlcihNYWNyb0Fzc2VtYmxlcjo6ZnJh
bWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwogICAgICAg
ICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApLCBt
X3JlZ3Muc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UpOwogICAgICAgICAgICAgbV9qaXQubW92ZShN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCksIG1fcmVncy5sZWFkaW5nU3Vycm9n
YXRlVGFnKTsKICAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweGRjMDApLCBtX3JlZ3MudHJhaWxpbmdTdXJyb2dhdGVUYWcpOwogICAgICAgICB9CiAj
ZWxpZiBDUFUoQVJNX1RIVU1CMikKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI0
KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKLSAgICAgICAgbV9qaXQu
cHVzaChBUk1SZWdpc3RlcnM6OnI2KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6
OnI4KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnIxMCk7CisgICAgICAgIHB1
c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjQpOworICAgICAgICBwdXNoSW5FbnRlcihBUk1SZWdp
c3RlcnM6OnI1KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyNik7CisgICAg
ICAgIHB1c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjgpOworICAgICAgICBwdXNoSW5FbnRlcihB
Uk1SZWdpc3RlcnM6OnIxMCk7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKICAgICAgICAgaWYgKG1fZGVj
b2RlU3Vycm9nYXRlUGFpcnMpCi0gICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fzc2Vt
Ymxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIp
OworICAgICAgICAgICAgcHVzaFBhaXJJbkVudGVyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CiAjZWxpZiBDUFUoTUlQ
UykKICAgICAgICAgLy8gRG8gbm90aGluZy4KICNlbmRpZgpAQCAtNDA4Niw3ICs0MDk3LDcgQEAg
Y2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgfQog
CiBwdWJsaWM6Ci0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBW
TSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3Ms
IFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJT
aXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJh
dG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVC
bG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25z
dCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9k
ZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkK
ICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC00MTA1LDcgKzQxMTYsNyBAQCBw
dWJsaWM6CiAgICAgICAgIG1fYm95ZXJNb29yZURhdGEgPSBzdGF0aWNfY2FzdDxZYXJyQm95ZXJN
b3llckRhdGEqPihtX2NvZGVCbG9jayk7CiAgICAgfQogCi0gICAgWWFyckdlbmVyYXRvcihNYWNy
b0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJN
RGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25z
dCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9k
ZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25z
dCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJl
Z3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJp
bmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAg
ICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9j
ayhudWxscHRyKQpAQCAtNDE5Niw5ICs0MjA3LDI0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsK
ICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVn
aXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKICNlbGlm
IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29u
dGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCisgICAg
ICAgICAgICAvLyBJbiB0aGVzZSBwbGF0Zm9ybXMgd2UgbmVlZCB0byBnZXQgdGhlIDV0aCBhcmd1
bWVudCBmcm9tIHRoZSBzdGFjaworCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUg
SklUZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzCisgICAgICAgICAgICBzdGF0aWNfYXNz
ZXJ0KEZ1bmN0aW9uVHJhaXRzPFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlOD46OmNDYWxsQXJp
dHkoKSA9PSA1LCAiWWFyckpJVENvZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsKKyAgICAgICAgICAg
IHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGUx
Nj46OmNDYWxsQXJpdHkoKSA9PSA1LCAiWWFyckpJVENvZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsK
KyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8WWFyckNvZGVCbG9jazo6
WWFyckpJVENvZGVNYXRjaE9ubHk4Pjo6Y0NhbGxBcml0eSgpID09IDUsICJZYXJySklUQ29kZSB0
YWtlcyA1IGFyZ3VtZW50cyIpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRy
YWl0czxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2Pjo6Y0NhbGxBcml0eSgp
ID09IDUsICJZYXJySklUQ29kZSB0YWtlcyA1IGFyZ3VtZW50cyIpOworCiAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7
Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3Jv
QXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNCAqIHNpemVvZih2b2lkKikpLCBtYXRj
aGluZ0NvbnRleHQpOworCisgICAgICAgICAgICAvLyBNSVBTIHBsYWNlcyB0aGUgNXRoIGFyZ3Vt
ZW50IG9uIHNwICsgMTYgYnl0ZXMgKG9mZnNldCA0KQorICAgICAgICAgICAgLy8gQVJNdjcgcGxh
Y2VzIHRoZSA1dGggYXJndW1lbnQgb24gc3AgKyAwIGJ5dGVzIChvZmZzZXQgMCkKKyAgICAgICAg
ICAgIHVuc2lnbmVkIG9mZnNldCA9IG1faml0LmNhbGN1bGF0ZVBva2VPZmZzZXQoLyogYXJnOiAq
LyA1KSAtIDE7CisKKyAgICAgICAgICAgIC8vIFdlIGFsc28gbmVlZCB0byBjb25zaWRlciBhbnkg
cmVnaXN0ZXJzIHB1c2hlZCBpbnRvIHRoZSBzdGFjayBpbiBnZW5lcmF0ZUVudGVyKCkKKyAgICAg
ICAgICAgIG9mZnNldCArPSBtX3B1c2hDb3VudEluRW50ZXI7CisKKyAgICAgICAgICAgIG1faml0
LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLCBvZmZzZXQgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsK
ICNlbHNlCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0Nv
bnRleHQgPSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0OwogI2VuZGlmCkBAIC00NjE4LDcgKzQ2NDQs
NyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNzZW1ibGVyJiBtX2pp
dDsKKyAgICBDQ2FsbEhlbHBlcnMmIG1faml0OwogICAgIGNvbnN0IFZNKiBtX3ZtOwogICAgIFlh
cnJDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogICAgIFlhcnJCb3llck1veWVyRGF0YSogbV9ib3ll
ck1vb3JlRGF0YTsKQEAgLTQ2NzIsNiArNDY5OCwxMiBAQCBwcml2YXRlOgogICAgIEJhY2t0cmFj
a2luZ1N0YXRlIG1fYmFja3RyYWNraW5nU3RhdGU7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFlhcnJEaXNhc3NlbWJsZXI+IG1fZGlzYXNzZW1ibGVyOworCisgICAgLy8gTWVtYmVyIGlzIHVz
ZWQgdG8gY291bnQgdGhlIG51bWJlciBvZiBHUFIgcHVzaGVkIGludG8gdGhlIHN0YWNrIHdoZW4K
KyAgICAvLyBlbnRlcmluZyBKSVRlZCBjb2RlLiBJdCBpcyBtYWlubHkgdXNlZCB0byBmaWd1cmUg
b3V0IGlmIGFuIGZ1bmN0aW9uIGFyZ3VtZW50CisgICAgLy8gb2Zmc2V0IGluIHRoZSBzdGFjayBp
ZiB0aGVyZSB3YXNuJ3QgZW5vdWdoIHJlZ2lzdGVycyB0byBwYXNzIGl0LCBlLmcuLCBBUk12Nwor
ICAgIC8vIGFuZCBNSVBTIG9ubHkgdXNlIDQgcmVnaXN0ZXJzIHRvIHBhc3MgZnVuY3Rpb24gYXJn
dW1lbnRzLgorICAgIHVuc2lnbmVkIG1fcHVzaENvdW50SW5FbnRlciB7IDAgfTsKIH07CiAKIHN0
YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCkBA
IC00NzA2LDcgKzQ3MzgsNyBAQCBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUoSklURmFp
bHVyZVJlYXNvbiBmYWlsdXJlKQogCiB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRl
cm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIFZNKiB2bSwgWWFy
ckNvZGVCbG9jayYgY29kZUJsb2NrLCBKSVRDb21waWxlTW9kZSBtb2RlKQogewotICAgIE1hY3Jv
QXNzZW1ibGVyIG1hc207CisgICAgQ0NhbGxIZWxwZXJzIG1hc207CiAKICAgICBBU1NFUlQobW9k
ZSA9PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hPbmx5IHx8IG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6
OkluY2x1ZGVTdWJwYXR0ZXJucyk7CiAKQEAgLTQ3MjcsNyArNDc1OSw3IEBAIHZvaWQgaml0Q29t
cGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6
ZSBjaGFyU2l6ZSwKICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgaW5saW5lZCBKSVQnaW5nIG9mIFJl
Z0V4cC50ZXN0IGZvciB0aGlzIENQVSAvIE9TIGNvbWJpbmF0aW9uLiIKICNlbmRpZgogCi12b2lk
IGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3Rh
Y2tDaGVja2VyLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpG
bGFncz4gZmxhZ3MsIENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1v
eWVyRGF0YSYgYm95ZXJNb29yZURhdGEsIE1hY3JvQXNzZW1ibGVyJiBqaXQsIFlhcnJKSVRSZWdp
c3RlcnMmIGppdFJlZ2lzdGVycykKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hl
Y2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVy
blN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUs
IGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgQ0NhbGxI
ZWxwZXJzJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKIHsKICAgICBZYXJy
OjpFcnJvckNvZGUgZXJyb3JDb2RlOwogICAgIFlhcnI6OllhcnJQYXR0ZXJuIHBhdHRlcm4ocGF0
dGVyblN0cmluZywgZmxhZ3MsIGVycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJySklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmgKaW5kZXggMjg5ZDZlODFmZTUxN2FhZGZiZTQ5OGQxODVlMzA3MjA1ZTZhMDczMy4uY2M5
N2QxZmJhN2M2MWZiOTgwMDVmZjc3NzMwZTM2NzdmMDU2NDRiMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJKSVQuaApAQCAtMjcxLDEyICsyNzEsMTMgQEAgY2xhc3MgWWFyckNvZGVCbG9j
ayA6IHB1YmxpYyBZYXJyQm95ZXJNb3llckRhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2RlQmxvY2spOwogCi0gICAgdXNp
bmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5w
dXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQs
IE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAg
dXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIq
IGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0
cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwot
ICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKiko
Y29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5n
dGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9D
QUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5
cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0
ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQp
IFlBUlJfQ0FMTDsKLQogcHVibGljOgorCisgICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1Bh
dGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwg
VUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciog
bWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNs
b3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3Rh
cnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xk
ZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0
Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRD
b2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1
dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKwogICAgIFlhcnJD
b2RlQmxvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIHNldEZhbGxCYWNrV2l0aEZhaWx1cmVS
ZWFzb24oSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7IG1fZmFpbHVyZVJlYXNvbiA9
IGZhaWx1cmVSZWFzb247IH0KQEAgLTMyNiw3ICszMjcsNyBAQCBwdWJsaWM6CiAgICAgSW5saW5l
U3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hPbmx5OFN0YXRzOyB9
CiAgICAgSW5saW5lU3RhdHMmIGdldDE2Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiAgbV9tYXRj
aE9ubHkxNlN0YXRzOyB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBp
bnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNo
aW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1
dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBp
bnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAg
ewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTMz
Niw3ICszMzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NG
dW5jdGlvblB0cjxZYXJySklUQ29kZTgsIFlhcnI4Qml0UHRyVGFnPihtX3JlZjguY29kZSgpLmV4
ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5n
Q29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIq
IGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhl
Y3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgs
IGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAg
LTM0Niw3ICszNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRh
Z0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+KG1fcmVmMTYuY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1h
dGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3Qg
TENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNv
bnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQo
aGFzOEJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM1Niw3ICszNTcs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0
cjxZYXJySklUQ29kZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPihtX21hdGNo
T25seTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBu
dWxscHRyLCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVj
dXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQg
ZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5n
dGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGhhczE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhv
bGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhv
bGRlci5oCmluZGV4IDEzOWQxZmUzNWI1NzVjNzBhMDVhN2U3NzI1ZGQ5ZmExZWZiNjYwMWUuLjFh
ZjgzMDk4MmZmNTdmMmE5M2I2NjE3OTM4ZDJkYmM1ZGVjOGExNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKQEAg
LTM3LDEyICszNywxMCBAQCBjbGFzcyBSZWdFeHA7CiAKIG5hbWVzcGFjZSBZYXJyIHsKIAotY2xh
c3MgWWFyckNvZGVCbG9jazsKLQogY2xhc3MgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIHsKICAgICBX
VEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKLSAgICBNYXRjaGluZ0NvbnRleHRI
b2xkZXIoVk0mLCBZYXJyQ29kZUJsb2NrKiwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKKyAgICBNYXRj
aGluZ0NvbnRleHRIb2xkZXIoVk0mLCBib29sLCBSZWdFeHAqLCBNYXRjaEZyb20pOwogICAgIH5N
YXRjaGluZ0NvbnRleHRIb2xkZXIoKTsKIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZT
dGFja0xpbWl0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE1hdGNoaW5nQ29udGV4dEhvbGRl
ciwgbV9zdGFja0xpbWl0KTsgfQpAQCAtNjEsNyArNTksNyBAQCBwcml2YXRlOgogICAgIE1hdGNo
RnJvbSBtX21hdGNoRnJvbTsKIH07CiAKLWlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDb2RlQmxvY2ss
IFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQoraW5saW5lIE1hdGNoaW5nQ29u
dGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgYm9vbCB1c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXIsIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQogICAg
IDogbV92bSh2bSkKICAgICAsIG1fbWF0Y2hGcm9tKG1hdGNoRnJvbSkKIHsKQEAgLTc0LDEyICs3
MiwxMiBAQCBpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xk
ZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQwogICAgIH0KIAogI2lmIEVOQUJMRShZQVJS
X0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQotICAgIGlmICh5YXJyQ29kZUJsb2NrICYmIHlh
cnJDb2RlQmxvY2stPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpKSB7CisgICAgaWYgKHVzZXNQ
YXR0ZXJuQ29udGV4dEJ1ZmZlcikgewogICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyID0g
bV92bS5hY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogICAgICAgICBtX3BhdHRl
cm5Db250ZXh0QnVmZmVyU2l6ZSA9IFZNOjpwYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemU7CiAgICAg
fQogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oeWFyckNvZGVCbG9jayk7CisgICAgVU5VU0VEX1BB
UkFNKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik7CiAjZW5kaWYKIH0KIAo=
</data>
<flag name="commit-queue"
          id="474284"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448423</attachid>
            <date>2022-01-05 13:10:39 -0800</date>
            <delta_ts>2022-01-05 13:29:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220105211037.patch</filename>
            <type>text/plain</type>
            <size>23420</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4xNGE5MTY3NmM3ZGM3ZjQ3
MDJkMmI1MGJjOWE0NmFlOTA2NzUxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suIFdlIG5vdyB1
c2UgY2FsY3VsYXRlUG9rZU9mZnNldCB0byBjYWxjdWxhdGUgdGhlCisgICAgICAgIG9mZnNldCBv
ZiB0aGUgNXRoIGFyZ3VtZW50IGFuZCBrZWVwIHRyYWNrIG9mIGFueSBwdXNoIGludG8gdGhlIHN0
YWNrCisgICAgICAgIHNvIHdlIGNhbiBmaWd1cmUgb3V0IHRoZSBvZmZzZXQgb2YgZXZlcnkgcGxh
dGZvcm0uCisKKyAgICAgICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMg
dG8gdGhlIHN0YWNrIGJlZm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAg
ICAgICBwdHIsIGhvd2V2ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVk
IHRvIGdldCB0aGUKKyAgICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIu
CisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElu
bGluZSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQ
cm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJp
dmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQw
YjM1ODQzYzJjZGU5NWIwLi41MTZjNmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVS
ZWdFeHBUZXN0SW5saW5lKE5vZGUqIG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChu
b2RlKTsKKyAgICBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4
MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li5jNzA0YmY4MmEwOTliODE2NTM1ODc3YjI1MWVlMjM2ODA3
YTg5YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTg1
LDYgKzg1LDExIEBAIHB1YmxpYzoKICAgICAgICAgcG9rZShHUFJJbmZvOjpub25BcmdHUFIwLCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCArIGFyZ3VtZW50SW5kZXggLSBHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGNh
bGN1bGF0ZVBva2VPZmZzZXQodW5zaWduZWQgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNh
bGN1bGF0ZVBva2VPZmZzZXQoYXJnLCAvKiBjdXJyZW50RlBSQXJndW1lbnQ6ICovIDAsIC8qIG51
bUNyb3NzU291cmNlczogKi8gMCwgLyogZXh0cmFHUFJBcmdzOiAqLyAwLCAvKiBub25BcmdHUFJz
OiAqLyAwLCAvKiBleHRyYVBva2U6ICovIDApOworICAgIH0KKwogcHJpdmF0ZToKIAogICAgIHRl
bXBsYXRlPHVuc2lnbmVkIE51bWJlck9mUmVnaXN0ZXJzLCB0eXBlbmFtZSBSZWdUeXBlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3MDlk
MWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYwMDAw
Mjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCkBA
IC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVycHJl
dGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJyQ29k
ZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgpOwotICAgICAgICAgICAg
c25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRy
KCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRN
YXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmlu
dGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAg
ICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0
TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25s
eUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAg
ICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBU
UiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRy
KCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6
ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVz
LmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uMGEwOTE3
OGU2ZjlhOTQzOTFhMGRmMWQwMWMzOWU1Y2VjYWRmYmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAgQUxX
QVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBpZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklU
Q29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5n
Q29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAo
cy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVj
dG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5n
dGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMu
Y2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJl
Z0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklU
Q29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwg
b2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6OkpJ
VENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJl
Z0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0m
IHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRo
aXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFs
c2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50
ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5s
aW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIH0gZWxz
ZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9
IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwg
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KIApAQCAt
MjY2LDEyICsyNjYsMTIgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICAgICAgTWF0Y2hS
ZXN1bHQgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRD
b2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250
ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdF
eHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsK
IAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMu
bGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVn
RXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0
aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZz
ZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxF
KFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1LDcgKzI5NSw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hS
ZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2Jq
ZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVjdG9yLmdyb3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAg
b2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVjdG9yLmRhdGEoKTsKICAgICB7Ci0gICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0
aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhp
cywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhw
Qnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVk
Kj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VYUF9GVU5DX1RFU1RfREFUQV9HRU4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggYTQ5OGVmNzgwNzMxODI0
ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uZmMzNjMyMjUxZTU2ZDI4ZWI5NTQzZTY4NGU2ZjUx
NGQwOTljZmM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJZYXJySklULmgiCiAK
KyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5j
bHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBAIC0zOTYxLDU3ICszOTYyLDc2IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAg
dm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7CisgICAgICAgIGF1dG8gcHVzaEluRW50ZXIgPSBb
Jl0oR1BSUmVnIGdwcikgeworICAgICAgICAgICAgbV9qaXQucHVzaChncHIpOworICAgICAgICAg
ICAgbV9wdXNoQ291bnRJbkVudGVyICs9IDE7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBw
dXNoUGFpckluRW50ZXIgPSBbJl0oR1BSUmVnIGdwcjEsIEdQUlJlZyBncHIyKSB7CisgICAgICAg
ICAgICBtX2ppdC5wdXNoUGFpcihncHIxLCBncHIyKTsKKyAgICAgICAgICAgIG1fcHVzaENvdW50
SW5FbnRlciArPSAyOworICAgICAgICB9OworCiAjaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9q
aXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7CisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNo
UGFpckluRW50ZXIpOworCisgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6ZWJwKTsK
ICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IFg4NlJlZ2lzdGVyczo6ZWJwKTsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRp
YWxTdGFydFZhbHVlKQotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVieCk7
CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVieCk7CiAKICNpZiBPUyhX
SU5ET1dTKQotICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWRpKTsKKyAgICAgICAg
cHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjplZGkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFlBUlJf
SklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgICAgIGlmIChtX2NvbnRhaW5zTmVzdGVk
U3VicGF0dGVybnMpIHsKICNpZiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgbV9qaXQucHVzaChY
ODZSZWdpc3RlcnM6OmVzaSk7CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6
OmVzaSk7CiAjZW5kaWYKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpyMTIp
OworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTIpOwogICAgICAgICB9
CiAjZW5kaWYKIAogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewotICAgICAg
ICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OnIxMyk7Ci0gICAgICAgICAgICBtX2ppdC5w
dXNoKFg4NlJlZ2lzdGVyczo6cjE0KTsKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0
ZXJzOjpyMTUpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTMpOwor
ICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTQpOworICAgICAgICAgICAg
cHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTUpOwogICAgICAgICB9CiAjaWYgT1MoV0lORE9X
UykKICAgICAgICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29tcGlsZU1vZGU6OkluY2x1ZGVT
dWJwYXR0ZXJucykKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9pZCopKSwgbV9yZWdzLm91dHB1
dCk7CiAgICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIHNwYWNl
IGZvciByZXN1bHQgaW4geDY0IFdpbmRvd3MuCi0gICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0
ZXJzOjplY3gpOworICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVjeCk7CiAjZW5k
aWYKICNlbGlmIENQVShBUk02NCkKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hJbkVudGVy
KTsKKwogICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1f
aml0LnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFp
cnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAg
ICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rl
ciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgcHVzaFBh
aXJJbkVudGVyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3Nl
bWJsZXI6OmxpbmtSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCksIG1fcmVncy5zdXBwbGVtZW50YXJ5UGxhbmVzQmFz
ZSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHhkODAwKSwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpOwogICAgICAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCksIG1fcmVncy50cmFpbGlu
Z1N1cnJvZ2F0ZVRhZyk7CiAgICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgICAg
ICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJl
Z2lzdGVyczo6cjUpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYpOwotICAg
ICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjgpOwotICAgICAgICBtX2ppdC5wdXNoKEFS
TVJlZ2lzdGVyczo6cjEwKTsKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hQYWlySW5FbnRl
cik7CisKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyNCk7CisgICAgICAgIHB1
c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjUpOworICAgICAgICBwdXNoSW5FbnRlcihBUk1SZWdp
c3RlcnM6OnI2KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyOCk7CisgICAg
ICAgIHB1c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjEwKTsKICNlbGlmIENQVShSSVNDVjY0KQor
ICAgICAgICBVTlVTRURfVkFSSUFCTEUocHVzaEluRW50ZXIpOworCiAgICAgICAgIGlmIChtX2Rl
Y29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQucHVzaFBhaXIoTWFjcm9Bc3Nl
bWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVy
KTsKKyAgICAgICAgICAgIHB1c2hQYWlySW5FbnRlcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2lu
dGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwogI2VsaWYgQ1BVKE1J
UFMpCi0gICAgICAgIC8vIERvIG5vdGhpbmcuCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNo
SW5FbnRlcik7CisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNoUGFpckluRW50ZXIpOwogI2Vu
ZGlmCiAgICAgfQogCkBAIC00MDg2LDcgKzQxMDYsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZp
bmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAgICB9CiAKIHB1YmxpYzoKLSAgICBZYXJyR2Vu
ZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayog
Y29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4s
IGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBp
bGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQs
IGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVn
cyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmlu
ZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAg
ICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2Nr
KGNvZGVCbG9jaykKQEAgLTQxMDUsNyArNDEyNSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9ib3ll
ck1vb3JlRGF0YSA9IHN0YXRpY19jYXN0PFlhcnJCb3llck1veWVyRGF0YSo+KG1fY29kZUJsb2Nr
KTsKICAgICB9CiAKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0
IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVn
cyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmlu
ZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlh
cnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95
ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4m
IHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUs
IEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAg
ICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKG51bGxwdHIpCkBAIC00MTk2LDkg
KzQyMTYsMjQgQEAgcHVibGljOgogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwogICAgICAgICAgICAgbV9qaXQubG9h
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNyAqIHNpemVv
Zih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwogI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQ
VShNSVBTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1l
bnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KKyAgICAgICAgICAgIC8vIEluIHRoZXNlIHBs
YXRmb3JtcyB3ZSBuZWVkIHRvIGdldCB0aGUgNXRoIGFyZ3VtZW50IGZyb20gdGhlIHN0YWNrCisK
KyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBKSVRlZCBmdW5jdGlvbnMgaGF2ZSA1
IHBhcmFtZXRlcnMKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8WWFy
ckNvZGVCbG9jazo6WWFyckpJVENvZGU4Pjo6Y0NhbGxBcml0eSgpID09IDUsICJZYXJySklUQ29k
ZSB0YWtlcyA1IGFyZ3VtZW50cyIpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlv
blRyYWl0czxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTE2Pjo6Y0NhbGxBcml0eSgpID09IDUs
ICJZYXJySklUQ29kZSB0YWtlcyA1IGFyZ3VtZW50cyIpOworICAgICAgICAgICAgc3RhdGljX2Fz
c2VydChGdW5jdGlvblRyYWl0czxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTg+
OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7Cisg
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPFlhcnJDb2RlQmxvY2s6Ollh
cnJKSVRDb2RlTWF0Y2hPbmx5MTY+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRh
a2VzIDUgYXJndW1lbnRzIik7CisKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3Rl
cklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0Lmxv
YWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAg
ICAgICAgIC8vIE1JUFMgcGxhY2VzIHRoZSA1dGggYXJndW1lbnQgb24gc3AgKyAxNiBieXRlcyAo
b2Zmc2V0IDQpCisgICAgICAgICAgICAvLyBBUk12NyBwbGFjZXMgdGhlIDV0aCBhcmd1bWVudCBv
biBzcCArIDAgYnl0ZXMgKG9mZnNldCAwKQorICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0ID0g
bV9qaXQuY2FsY3VsYXRlUG9rZU9mZnNldCgvKiBhcmc6ICovIDUpIC0gMTsKKworICAgICAgICAg
ICAgLy8gV2UgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIGFueSByZWdpc3RlcnMgcHVzaGVkIGludG8g
dGhlIHN0YWNrIGluIGdlbmVyYXRlRW50ZXIoKQorICAgICAgICAgICAgb2Zmc2V0ICs9IG1fcHVz
aENvdW50SW5FbnRlcjsKKworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG9mZnNldCAq
IHNpemVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwogI2Vsc2UKICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5tYXRjaGlu
Z0NvbnRleHQ7CiAjZW5kaWYKQEAgLTQ2MTgsNyArNDY1Myw3IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgTWFjcm9Bc3NlbWJsZXImIG1faml0OworICAgIENDYWxsSGVscGVycyYg
bV9qaXQ7CiAgICAgY29uc3QgVk0qIG1fdm07CiAgICAgWWFyckNvZGVCbG9jayogbV9jb2RlQmxv
Y2s7CiAgICAgWWFyckJveWVyTW95ZXJEYXRhKiBtX2JveWVyTW9vcmVEYXRhOwpAQCAtNDY3Miw2
ICs0NzA3LDEyIEBAIHByaXZhdGU6CiAgICAgQmFja3RyYWNraW5nU3RhdGUgbV9iYWNrdHJhY2tp
bmdTdGF0ZTsKICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8WWFyckRpc2Fzc2VtYmxlcj4gbV9k
aXNhc3NlbWJsZXI7CisKKyAgICAvLyBNZW1iZXIgaXMgdXNlZCB0byBjb3VudCB0aGUgbnVtYmVy
IG9mIEdQUiBwdXNoZWQgaW50byB0aGUgc3RhY2sgd2hlbgorICAgIC8vIGVudGVyaW5nIEpJVGVk
IGNvZGUuIEl0IGlzIG1haW5seSB1c2VkIHRvIGZpZ3VyZSBvdXQgaWYgYW4gZnVuY3Rpb24gYXJn
dW1lbnQKKyAgICAvLyBvZmZzZXQgaW4gdGhlIHN0YWNrIGlmIHRoZXJlIHdhc24ndCBlbm91Z2gg
cmVnaXN0ZXJzIHRvIHBhc3MgaXQsIGUuZy4sIEFSTXY3CisgICAgLy8gYW5kIE1JUFMgb25seSB1
c2UgNCByZWdpc3RlcnMgdG8gcGFzcyBmdW5jdGlvbiBhcmd1bWVudHMuCisgICAgdW5zaWduZWQg
bV9wdXNoQ291bnRJbkVudGVyIHsgMCB9OwogfTsKIAogc3RhdGljIHZvaWQgZHVtcENvbXBpbGVG
YWlsdXJlKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKQEAgLTQ3MDYsNyArNDc0Nyw3IEBAIHN0
YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCiAK
IHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ss
IEpJVENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBD
Q2FsbEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2RlID09IEpJVENvbXBpbGVNb2RlOjpN
YXRjaE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsK
IApAQCAtNDcyNyw3ICs0NzY4LDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0
ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9yICJO
byBzdXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BV
IC8gT1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0
KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUg
Y2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0
YSwgTWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQor
dm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVh
ZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFy
cjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95
ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJl
Z2lzdGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7
CiAgICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJy
b3JDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4MWZl
NTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi43MjA3ZGY5ZTVhOTBiOTQ1ODA3YjA5ODVh
NjljMDVkNzFlZmU2MDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC0y
NzEsMTIgKzI3MSwxMyBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIDogcHVibGljIFlhcnJCb3llck1v
eWVyRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoWWFyckNvZGVCbG9jayk7CiAKLSAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93
UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0
LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
JiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29kZTE2ID0g
U2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBz
dGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhv
bGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGVN
YXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVD
UFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJ
VENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlu
cHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRj
aGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotCiBwdWJsaWM6
CisKKyAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0
IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBp
bnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJf
Q0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShj
b25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0
aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZ
QVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1
cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJl
Z2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250
ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQ
YXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQs
IFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNo
aW5nQ29udGV4dCkgWUFSUl9DQUxMOworCiAgICAgWWFyckNvZGVCbG9jaygpID0gZGVmYXVsdDsK
IAogICAgIHZvaWQgc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNvbihKSVRGYWlsdXJlUmVhc29u
IGZhaWx1cmVSZWFzb24pIHsgbV9mYWlsdXJlUmVhc29uID0gZmFpbHVyZVJlYXNvbjsgfQpAQCAt
MzI2LDcgKzMyNyw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVTdGF0cyYgZ2V0OEJpdElubGluZVN0
YXRzKCkgeyByZXR1cm4gbV9tYXRjaE9ubHk4U3RhdHM7IH0KICAgICBJbmxpbmVTdGF0cyYgZ2V0
MTZCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuICBtX21hdGNoT25seTE2U3RhdHM7IH0KIAotICAg
IE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRj
aGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4
Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzM2LDcgKzMzNyw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2Rl
OCwgWWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5w
dXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0g
ICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0
LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1h
dGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1
dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5n
Q29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhh
czE2Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzQ2LDcgKzM0Nyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRD
b2RlMTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYxNi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAg
fQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVk
IHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdD
b250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNo
aW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0Q29kZU1hdGNoT25seSgp
KTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzU2LDcgKzM1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlTWF0Y2hPbmx5
OCwgWWFyck1hdGNoT25seThCaXRQdHJUYWc+KG1fbWF0Y2hPbmx5OC5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51bGxwdHIsIG1hdGNoaW5nQ29udGV4
dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIm
IG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBp
bnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzMTZCaXRDb2Rl
TWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC00MzksNyArNDQwLDcgQEAgdm9pZCBq
aXRDb21waWxlKFlhcnJQYXR0ZXJuJiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSwg
Vk0qLCBZYXJyQ29kZUJsb2MKIAogY2xhc3MgWWFyckpJVFJlZ2lzdGVyczsKIAotdm9pZCBqaXRD
b21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxZ
YXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0YSYsIE1h
Y3JvQXNzZW1ibGVyJiwgWWFyckpJVFJlZ2lzdGVycyYpOwordm9pZCBqaXRDb21waWxlSW5saW5l
ZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxZYXJyOjpGbGFncz4s
IENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0YSYsIENDYWxsSGVscGVycyYs
IFlhcnJKSVRSZWdpc3RlcnMmKTsKICNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFy
cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29u
dGV4dEhvbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29u
dGV4dEhvbGRlci5oCmluZGV4IDEzOWQxZmUzNWI1NzVjNzBhMDVhN2U3NzI1ZGQ5ZmExZWZiNjYw
MWUuLjFhZjgzMDk4MmZmNTdmMmE5M2I2NjE3OTM4ZDJkYmM1ZGVjOGExNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVy
LmgKQEAgLTM3LDEyICszNywxMCBAQCBjbGFzcyBSZWdFeHA7CiAKIG5hbWVzcGFjZSBZYXJyIHsK
IAotY2xhc3MgWWFyckNvZGVCbG9jazsKLQogY2xhc3MgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIHsK
ICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKLSAgICBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIoVk0mLCBZYXJyQ29kZUJsb2NrKiwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKKyAg
ICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBib29sLCBSZWdFeHAqLCBNYXRjaEZyb20pOwog
ICAgIH5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKTsKIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zm
c2V0T2ZTdGFja0xpbWl0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE1hdGNoaW5nQ29udGV4
dEhvbGRlciwgbV9zdGFja0xpbWl0KTsgfQpAQCAtNjEsNyArNTksNyBAQCBwcml2YXRlOgogICAg
IE1hdGNoRnJvbSBtX21hdGNoRnJvbTsKIH07CiAKLWlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xk
ZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDb2Rl
QmxvY2ssIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQoraW5saW5lIE1hdGNo
aW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgYm9vbCB1c2Vz
UGF0dGVybkNvbnRleHRCdWZmZXIsIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9t
KQogICAgIDogbV92bSh2bSkKICAgICAsIG1fbWF0Y2hGcm9tKG1hdGNoRnJvbSkKIHsKQEAgLTc0
LDEyICs3MiwxMiBAQCBpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRl
eHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQwogICAgIH0KIAogI2lmIEVOQUJM
RShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQotICAgIGlmICh5YXJyQ29kZUJsb2Nr
ICYmIHlhcnJDb2RlQmxvY2stPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpKSB7CisgICAgaWYg
KHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcikgewogICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVm
ZmVyID0gbV92bS5hY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogICAgICAgICBt
X3BhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZSA9IFZNOjpwYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemU7
CiAgICAgfQogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oeWFyckNvZGVCbG9jayk7CisgICAgVU5V
U0VEX1BBUkFNKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik7CiAjZW5kaWYKIH0KIAo=
</data>
<flag name="commit-queue"
          id="474287"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448425</attachid>
            <date>2022-01-05 13:24:15 -0800</date>
            <delta_ts>2022-01-05 15:11:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220105212414.patch</filename>
            <type>text/plain</type>
            <size>23571</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4xNGE5MTY3NmM3ZGM3ZjQ3
MDJkMmI1MGJjOWE0NmFlOTA2NzUxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suIFdlIG5vdyB1
c2UgY2FsY3VsYXRlUG9rZU9mZnNldCB0byBjYWxjdWxhdGUgdGhlCisgICAgICAgIG9mZnNldCBv
ZiB0aGUgNXRoIGFyZ3VtZW50IGFuZCBrZWVwIHRyYWNrIG9mIGFueSBwdXNoIGludG8gdGhlIHN0
YWNrCisgICAgICAgIHNvIHdlIGNhbiBmaWd1cmUgb3V0IHRoZSBvZmZzZXQgb2YgZXZlcnkgcGxh
dGZvcm0uCisKKyAgICAgICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMg
dG8gdGhlIHN0YWNrIGJlZm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAg
ICAgICBwdHIsIGhvd2V2ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVk
IHRvIGdldCB0aGUKKyAgICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIu
CisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElu
bGluZSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQ
cm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJp
dmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQw
YjM1ODQzYzJjZGU5NWIwLi41MTZjNmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVS
ZWdFeHBUZXN0SW5saW5lKE5vZGUqIG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChu
b2RlKTsKKyAgICBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4
MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li5jNzA0YmY4MmEwOTliODE2NTM1ODc3YjI1MWVlMjM2ODA3
YTg5YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTg1
LDYgKzg1LDExIEBAIHB1YmxpYzoKICAgICAgICAgcG9rZShHUFJJbmZvOjpub25BcmdHUFIwLCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCArIGFyZ3VtZW50SW5kZXggLSBHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGNh
bGN1bGF0ZVBva2VPZmZzZXQodW5zaWduZWQgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNh
bGN1bGF0ZVBva2VPZmZzZXQoYXJnLCAvKiBjdXJyZW50RlBSQXJndW1lbnQ6ICovIDAsIC8qIG51
bUNyb3NzU291cmNlczogKi8gMCwgLyogZXh0cmFHUFJBcmdzOiAqLyAwLCAvKiBub25BcmdHUFJz
OiAqLyAwLCAvKiBleHRyYVBva2U6ICovIDApOworICAgIH0KKwogcHJpdmF0ZToKIAogICAgIHRl
bXBsYXRlPHVuc2lnbmVkIE51bWJlck9mUmVnaXN0ZXJzLCB0eXBlbmFtZSBSZWdUeXBlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3MDlk
MWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYwMDAw
Mjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCkBA
IC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVycHJl
dGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJyQ29k
ZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgpOwotICAgICAgICAgICAg
c25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRy
KCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRN
YXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmlu
dGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAg
ICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0
TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25s
eUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAg
ICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBU
UiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRy
KCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6
ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVz
LmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uMGEwOTE3
OGU2ZjlhOTQzOTFhMGRmMWQwMWMzOWU1Y2VjYWRmYmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAgQUxX
QVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBpZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklU
Q29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5n
Q29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAo
cy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVj
dG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5n
dGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMu
Y2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJl
Z0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklU
Q29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwg
b2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6OkpJ
VENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJl
Z0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0m
IHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRo
aXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFs
c2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50
ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5s
aW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIH0gZWxz
ZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9
IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwg
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KIApAQCAt
MjY2LDEyICsyNjYsMTIgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICAgICAgTWF0Y2hS
ZXN1bHQgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRD
b2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250
ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdF
eHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsK
IAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMu
bGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVn
RXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0
aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZz
ZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxF
KFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1LDcgKzI5NSw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hS
ZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2Jq
ZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVjdG9yLmdyb3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAg
b2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVjdG9yLmRhdGEoKTsKICAgICB7Ci0gICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0
aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhp
cywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhw
Qnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVk
Kj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VYUF9GVU5DX1RFU1RfREFUQV9HRU4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggYTQ5OGVmNzgwNzMxODI0
ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uZmMzNjMyMjUxZTU2ZDI4ZWI5NTQzZTY4NGU2ZjUx
NGQwOTljZmM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJZYXJySklULmgiCiAK
KyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5j
bHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBAIC0zOTYxLDU3ICszOTYyLDc2IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAg
dm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7CisgICAgICAgIGF1dG8gcHVzaEluRW50ZXIgPSBb
Jl0oR1BSUmVnIGdwcikgeworICAgICAgICAgICAgbV9qaXQucHVzaChncHIpOworICAgICAgICAg
ICAgbV9wdXNoQ291bnRJbkVudGVyICs9IDE7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBw
dXNoUGFpckluRW50ZXIgPSBbJl0oR1BSUmVnIGdwcjEsIEdQUlJlZyBncHIyKSB7CisgICAgICAg
ICAgICBtX2ppdC5wdXNoUGFpcihncHIxLCBncHIyKTsKKyAgICAgICAgICAgIG1fcHVzaENvdW50
SW5FbnRlciArPSAyOworICAgICAgICB9OworCiAjaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9q
aXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7CisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNo
UGFpckluRW50ZXIpOworCisgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6ZWJwKTsK
ICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IFg4NlJlZ2lzdGVyczo6ZWJwKTsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRp
YWxTdGFydFZhbHVlKQotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVieCk7
CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVieCk7CiAKICNpZiBPUyhX
SU5ET1dTKQotICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWRpKTsKKyAgICAgICAg
cHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjplZGkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFlBUlJf
SklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgICAgIGlmIChtX2NvbnRhaW5zTmVzdGVk
U3VicGF0dGVybnMpIHsKICNpZiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgbV9qaXQucHVzaChY
ODZSZWdpc3RlcnM6OmVzaSk7CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6
OmVzaSk7CiAjZW5kaWYKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpyMTIp
OworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTIpOwogICAgICAgICB9
CiAjZW5kaWYKIAogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewotICAgICAg
ICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OnIxMyk7Ci0gICAgICAgICAgICBtX2ppdC5w
dXNoKFg4NlJlZ2lzdGVyczo6cjE0KTsKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0
ZXJzOjpyMTUpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTMpOwor
ICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTQpOworICAgICAgICAgICAg
cHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTUpOwogICAgICAgICB9CiAjaWYgT1MoV0lORE9X
UykKICAgICAgICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29tcGlsZU1vZGU6OkluY2x1ZGVT
dWJwYXR0ZXJucykKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9pZCopKSwgbV9yZWdzLm91dHB1
dCk7CiAgICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIHNwYWNl
IGZvciByZXN1bHQgaW4geDY0IFdpbmRvd3MuCi0gICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0
ZXJzOjplY3gpOworICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVjeCk7CiAjZW5k
aWYKICNlbGlmIENQVShBUk02NCkKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hJbkVudGVy
KTsKKwogICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1f
aml0LnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFp
cnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAg
ICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rl
ciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgcHVzaFBh
aXJJbkVudGVyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3Nl
bWJsZXI6OmxpbmtSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCksIG1fcmVncy5zdXBwbGVtZW50YXJ5UGxhbmVzQmFz
ZSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHhkODAwKSwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpOwogICAgICAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCksIG1fcmVncy50cmFpbGlu
Z1N1cnJvZ2F0ZVRhZyk7CiAgICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgICAg
ICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJl
Z2lzdGVyczo6cjUpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYpOwotICAg
ICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjgpOwotICAgICAgICBtX2ppdC5wdXNoKEFS
TVJlZ2lzdGVyczo6cjEwKTsKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hQYWlySW5FbnRl
cik7CisKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyNCk7CisgICAgICAgIHB1
c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjUpOworICAgICAgICBwdXNoSW5FbnRlcihBUk1SZWdp
c3RlcnM6OnI2KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyOCk7CisgICAg
ICAgIHB1c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjEwKTsKICNlbGlmIENQVShSSVNDVjY0KQor
ICAgICAgICBVTlVTRURfVkFSSUFCTEUocHVzaEluRW50ZXIpOworCiAgICAgICAgIGlmIChtX2Rl
Y29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQucHVzaFBhaXIoTWFjcm9Bc3Nl
bWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVy
KTsKKyAgICAgICAgICAgIHB1c2hQYWlySW5FbnRlcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2lu
dGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwogI2VsaWYgQ1BVKE1J
UFMpCi0gICAgICAgIC8vIERvIG5vdGhpbmcuCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNo
SW5FbnRlcik7CisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNoUGFpckluRW50ZXIpOwogI2Vu
ZGlmCiAgICAgfQogCkBAIC00MDg2LDcgKzQxMDYsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZp
bmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAgICB9CiAKIHB1YmxpYzoKLSAgICBZYXJyR2Vu
ZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayog
Y29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4s
IGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBp
bGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQs
IGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVn
cyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmlu
ZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAg
ICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2Nr
KGNvZGVCbG9jaykKQEAgLTQxMDUsNyArNDEyNSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9ib3ll
ck1vb3JlRGF0YSA9IHN0YXRpY19jYXN0PFlhcnJCb3llck1veWVyRGF0YSo+KG1fY29kZUJsb2Nr
KTsKICAgICB9CiAKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0
IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVn
cyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmlu
ZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlh
cnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95
ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4m
IHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUs
IEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAg
ICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKG51bGxwdHIpCkBAIC00MTk2LDkg
KzQyMTYsMjQgQEAgcHVibGljOgogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwogICAgICAgICAgICAgbV9qaXQubG9h
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNyAqIHNpemVv
Zih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwogI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQ
VShNSVBTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1l
bnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KKyAgICAgICAgICAgIC8vIEluIHRoZXNlIHBs
YXRmb3JtcyB3ZSBuZWVkIHRvIGdldCB0aGUgNXRoIGFyZ3VtZW50IGZyb20gdGhlIHN0YWNrCisK
KyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBKSVRlZCBmdW5jdGlvbnMgaGF2ZSA1
IHBhcmFtZXRlcnMKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8WWFy
ckNvZGVCbG9jazo6WWFyckpJVENvZGU4Pjo6Y0NhbGxBcml0eSgpID09IDUsICJZYXJySklUQ29k
ZSB0YWtlcyA1IGFyZ3VtZW50cyIpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlv
blRyYWl0czxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTE2Pjo6Y0NhbGxBcml0eSgpID09IDUs
ICJZYXJySklUQ29kZSB0YWtlcyA1IGFyZ3VtZW50cyIpOworICAgICAgICAgICAgc3RhdGljX2Fz
c2VydChGdW5jdGlvblRyYWl0czxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTg+
OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7Cisg
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPFlhcnJDb2RlQmxvY2s6Ollh
cnJKSVRDb2RlTWF0Y2hPbmx5MTY+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRh
a2VzIDUgYXJndW1lbnRzIik7CisKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3Rl
cklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0Lmxv
YWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAg
ICAgICAgIC8vIE1JUFMgcGxhY2VzIHRoZSA1dGggYXJndW1lbnQgb24gc3AgKyAxNiBieXRlcyAo
b2Zmc2V0IDQpCisgICAgICAgICAgICAvLyBBUk12NyBwbGFjZXMgdGhlIDV0aCBhcmd1bWVudCBv
biBzcCArIDAgYnl0ZXMgKG9mZnNldCAwKQorICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0ID0g
bV9qaXQuY2FsY3VsYXRlUG9rZU9mZnNldCgvKiBhcmc6ICovIDUpIC0gMTsKKworICAgICAgICAg
ICAgLy8gV2UgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIGFueSByZWdpc3RlcnMgcHVzaGVkIGludG8g
dGhlIHN0YWNrIGluIGdlbmVyYXRlRW50ZXIoKQorICAgICAgICAgICAgb2Zmc2V0ICs9IG1fcHVz
aENvdW50SW5FbnRlcjsKKworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG9mZnNldCAq
IHNpemVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwogI2Vsc2UKICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5tYXRjaGlu
Z0NvbnRleHQ7CiAjZW5kaWYKQEAgLTQ2MTgsNyArNDY1Myw3IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgTWFjcm9Bc3NlbWJsZXImIG1faml0OworICAgIENDYWxsSGVscGVycyYg
bV9qaXQ7CiAgICAgY29uc3QgVk0qIG1fdm07CiAgICAgWWFyckNvZGVCbG9jayogbV9jb2RlQmxv
Y2s7CiAgICAgWWFyckJveWVyTW95ZXJEYXRhKiBtX2JveWVyTW9vcmVEYXRhOwpAQCAtNDY3Miw2
ICs0NzA3LDEyIEBAIHByaXZhdGU6CiAgICAgQmFja3RyYWNraW5nU3RhdGUgbV9iYWNrdHJhY2tp
bmdTdGF0ZTsKICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8WWFyckRpc2Fzc2VtYmxlcj4gbV9k
aXNhc3NlbWJsZXI7CisKKyAgICAvLyBNZW1iZXIgaXMgdXNlZCB0byBjb3VudCB0aGUgbnVtYmVy
IG9mIEdQUiBwdXNoZWQgaW50byB0aGUgc3RhY2sgd2hlbgorICAgIC8vIGVudGVyaW5nIEpJVGVk
IGNvZGUuIEl0IGlzIG1haW5seSB1c2VkIHRvIGZpZ3VyZSBvdXQgaWYgYW4gZnVuY3Rpb24gYXJn
dW1lbnQKKyAgICAvLyBvZmZzZXQgaW4gdGhlIHN0YWNrIGlmIHRoZXJlIHdhc24ndCBlbm91Z2gg
cmVnaXN0ZXJzIHRvIHBhc3MgaXQsIGUuZy4sIEFSTXY3CisgICAgLy8gYW5kIE1JUFMgb25seSB1
c2UgNCByZWdpc3RlcnMgdG8gcGFzcyBmdW5jdGlvbiBhcmd1bWVudHMuCisgICAgdW5zaWduZWQg
bV9wdXNoQ291bnRJbkVudGVyIHsgMCB9OwogfTsKIAogc3RhdGljIHZvaWQgZHVtcENvbXBpbGVG
YWlsdXJlKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKQEAgLTQ3MDYsNyArNDc0Nyw3IEBAIHN0
YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCiAK
IHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ss
IEpJVENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBD
Q2FsbEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2RlID09IEpJVENvbXBpbGVNb2RlOjpN
YXRjaE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsK
IApAQCAtNDcyNyw3ICs0NzY4LDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0
ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9yICJO
byBzdXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BV
IC8gT1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0
KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUg
Y2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0
YSwgTWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQor
dm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVh
ZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFy
cjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95
ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJl
Z2lzdGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7
CiAgICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJy
b3JDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4MWZl
NTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi4yYmMzNzM5NTY0MTBkYmM0Yzk1ZDdkZTJm
Y2Y4ZTk2YzM2NWQzZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC00
Myw5ICs0MywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgVk07CitjbGFzcyBDQ2Fs
bEhlbHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyOwor
Y2xhc3MgVk07CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApAQCAtMjcxLDEyICsyNzIsMTMgQEAgY2xh
c3MgWWFyckNvZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95ZXJNb3llckRhdGEgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2RlQmxv
Y2spOwogCi0gICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShj
b25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0
aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZ
QVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAo
KikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4
dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRo
UmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVD
UFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5n
Q29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBT
bG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0
YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBt
YXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLQogcHVibGljOgorCisgICAgdXNpbmcgWWFyckpJ
VENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVS
ZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5n
Q29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFy
ckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBV
Q1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRj
aGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5n
IFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENo
YXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQq
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAg
IHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNv
bnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3Ro
LCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FM
TDsKKwogICAgIFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIHNldEZhbGxC
YWNrV2l0aEZhaWx1cmVSZWFzb24oSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7IG1f
ZmFpbHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFzb247IH0KQEAgLTMyNiw3ICszMjgsNyBAQCBwdWJs
aWM6CiAgICAgSW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0
Y2hPbmx5OFN0YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdldDE2Qml0SW5saW5lU3RhdHMoKSB7
IHJldHVybiAgbV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRl
KGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50
KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1h
dGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5z
aWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGlu
Z0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BV
KEFSTTY0RSkKQEAgLTMzNiw3ICszMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRj
aFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTgsIFlhcnI4Qml0UHRyVGFnPiht
X3JlZjguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBv
dXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1
dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBp
bnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAg
TWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNo
aW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGUoKSk7CiAjaWYg
Q1BVKEFSTTY0RSkKQEAgLTM0Niw3ICszNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBN
YXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTE2LCBZYXJyMTZCaXRQdHJU
YWc+KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVu
Z3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0
IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVu
Z3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJl
c3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewog
ICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkK
QEAgLTM1Niw3ICszNTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1
bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0
UHRyVGFnPihtX21hdGNoT25seTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBz
dGFydCwgbGVuZ3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBN
YXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVu
c2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisg
ICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0
LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0
KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBD
UFUoQVJNNjRFKQpAQCAtNDM5LDcgKzQ0MSw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVy
biYsIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUsIFZNKiwgWWFyckNvZGVCbG9jCiAK
IGNsYXNzIFlhcnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0
YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6
ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJK
SVRSZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBj
b25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0q
LCBZYXJyQm95ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMmLCBZYXJySklUUmVnaXN0ZXJzJik7
CiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRleCAx
MzlkMWZlMzViNTc1YzcwYTA1YTdlNzcyNWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3ZjJh
OTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcsMTAg
QEAgY2xhc3MgUmVnRXhwOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2RlQmxv
Y2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29udGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9IRUFQ
X0FMTE9DQVRJT047CiBwdWJsaWM6Ci0gICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgWWFy
ckNvZGVCbG9jayosIFJlZ0V4cCosIE1hdGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250ZXh0
SG9sZGVyKCk7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNYXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tMaW1p
dCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRjaEZy
b207CiB9OwogCi1pbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRI
b2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJlZ0V4
cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKK2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVy
LCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0pCiAg
ICAgLCBtX21hdGNoRnJvbShtYXRjaEZyb20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5saW5l
IE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFy
ckNvZGVCbG9jayogeWFyckMKICAgICB9CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVO
U19FWFBSRVNTSU9OUykKLSAgICBpZiAoeWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2NrLT51
c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRleHRC
dWZmZXIpIHsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWlyZVJl
Z0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZl
clNpemUgPSBWTTo6cGF0dGVybkNvbnRleHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxvY2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXIpOwogI2VuZGlmCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448434</attachid>
            <date>2022-01-05 15:11:29 -0800</date>
            <delta_ts>2022-01-07 14:56:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220105231127.patch</filename>
            <type>text/plain</type>
            <size>23951</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4xNGE5MTY3NmM3ZGM3ZjQ3
MDJkMmI1MGJjOWE0NmFlOTA2NzUxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suIFdlIG5vdyB1
c2UgY2FsY3VsYXRlUG9rZU9mZnNldCB0byBjYWxjdWxhdGUgdGhlCisgICAgICAgIG9mZnNldCBv
ZiB0aGUgNXRoIGFyZ3VtZW50IGFuZCBrZWVwIHRyYWNrIG9mIGFueSBwdXNoIGludG8gdGhlIHN0
YWNrCisgICAgICAgIHNvIHdlIGNhbiBmaWd1cmUgb3V0IHRoZSBvZmZzZXQgb2YgZXZlcnkgcGxh
dGZvcm0uCisKKyAgICAgICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMg
dG8gdGhlIHN0YWNrIGJlZm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAg
ICAgICBwdHIsIGhvd2V2ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVk
IHRvIGdldCB0aGUKKyAgICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIu
CisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElu
bGluZSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQ
cm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJp
dmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQw
YjM1ODQzYzJjZGU5NWIwLi41MTZjNmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVS
ZWdFeHBUZXN0SW5saW5lKE5vZGUqIG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChu
b2RlKTsKKyAgICBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4
MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li5jNzA0YmY4MmEwOTliODE2NTM1ODc3YjI1MWVlMjM2ODA3
YTg5YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTg1
LDYgKzg1LDExIEBAIHB1YmxpYzoKICAgICAgICAgcG9rZShHUFJJbmZvOjpub25BcmdHUFIwLCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCArIGFyZ3VtZW50SW5kZXggLSBHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGNh
bGN1bGF0ZVBva2VPZmZzZXQodW5zaWduZWQgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNh
bGN1bGF0ZVBva2VPZmZzZXQoYXJnLCAvKiBjdXJyZW50RlBSQXJndW1lbnQ6ICovIDAsIC8qIG51
bUNyb3NzU291cmNlczogKi8gMCwgLyogZXh0cmFHUFJBcmdzOiAqLyAwLCAvKiBub25BcmdHUFJz
OiAqLyAwLCAvKiBleHRyYVBva2U6ICovIDApOworICAgIH0KKwogcHJpdmF0ZToKIAogICAgIHRl
bXBsYXRlPHVuc2lnbmVkIE51bWJlck9mUmVnaXN0ZXJzLCB0eXBlbmFtZSBSZWdUeXBlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3MDlk
MWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYwMDAw
Mjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCkBA
IC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVycHJl
dGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJyQ29k
ZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgpOwotICAgICAgICAgICAg
c25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRy
KCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRN
YXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmlu
dGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAg
ICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0
TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25s
eUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAg
ICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBU
UiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRy
KCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6
ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVz
LmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uMGEwOTE3
OGU2ZjlhOTQzOTFhMGRmMWQwMWMzOWU1Y2VjYWRmYmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAgQUxX
QVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBpZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklU
Q29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5n
Q29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAo
cy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVj
dG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5n
dGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMu
Y2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJl
Z0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklU
Q29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwg
b2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6OkpJ
VENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJl
Z0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0m
IHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRo
aXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFs
c2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50
ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5s
aW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIH0gZWxz
ZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9
IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwg
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KIApAQCAt
MjY2LDEyICsyNjYsMTIgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICAgICAgTWF0Y2hS
ZXN1bHQgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRD
b2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250
ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdF
eHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsK
IAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMu
bGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVn
RXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0
aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZz
ZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxF
KFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1LDcgKzI5NSw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hS
ZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2Jq
ZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVjdG9yLmdyb3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAg
b2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVjdG9yLmRhdGEoKTsKICAgICB7Ci0gICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0
aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhp
cywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhw
Qnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVk
Kj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VYUF9GVU5DX1RFU1RfREFUQV9HRU4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggYTQ5OGVmNzgwNzMxODI0
ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uZGQ0OWI3YzdmOWE2ZjRmNjk4NTMwZTQ5ZGZjMjUw
NmE4ZWFlYzM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJZYXJySklULmgiCiAK
KyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5j
bHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBAIC0zOTYxLDU3ICszOTYyLDc2IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAg
dm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7CisgICAgICAgIGF1dG8gcHVzaEluRW50ZXIgPSBb
Jl0oR1BSUmVnIGdwcikgeworICAgICAgICAgICAgbV9qaXQucHVzaChncHIpOworICAgICAgICAg
ICAgbV9wdXNoQ291bnRJbkVudGVyICs9IDE7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBw
dXNoUGFpckluRW50ZXIgPSBbJl0oR1BSUmVnIGdwcjEsIEdQUlJlZyBncHIyKSB7CisgICAgICAg
ICAgICBtX2ppdC5wdXNoUGFpcihncHIxLCBncHIyKTsKKyAgICAgICAgICAgIG1fcHVzaENvdW50
SW5FbnRlciArPSAyOworICAgICAgICB9OworCiAjaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9q
aXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7CisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNo
UGFpckluRW50ZXIpOworCisgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6ZWJwKTsK
ICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IFg4NlJlZ2lzdGVyczo6ZWJwKTsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRp
YWxTdGFydFZhbHVlKQotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVieCk7
CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVieCk7CiAKICNpZiBPUyhX
SU5ET1dTKQotICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWRpKTsKKyAgICAgICAg
cHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjplZGkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFlBUlJf
SklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgICAgIGlmIChtX2NvbnRhaW5zTmVzdGVk
U3VicGF0dGVybnMpIHsKICNpZiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgbV9qaXQucHVzaChY
ODZSZWdpc3RlcnM6OmVzaSk7CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6
OmVzaSk7CiAjZW5kaWYKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpyMTIp
OworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTIpOwogICAgICAgICB9
CiAjZW5kaWYKIAogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewotICAgICAg
ICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OnIxMyk7Ci0gICAgICAgICAgICBtX2ppdC5w
dXNoKFg4NlJlZ2lzdGVyczo6cjE0KTsKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0
ZXJzOjpyMTUpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTMpOwor
ICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTQpOworICAgICAgICAgICAg
cHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTUpOwogICAgICAgICB9CiAjaWYgT1MoV0lORE9X
UykKICAgICAgICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29tcGlsZU1vZGU6OkluY2x1ZGVT
dWJwYXR0ZXJucykKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9pZCopKSwgbV9yZWdzLm91dHB1
dCk7CiAgICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIHNwYWNl
IGZvciByZXN1bHQgaW4geDY0IFdpbmRvd3MuCi0gICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0
ZXJzOjplY3gpOworICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVjeCk7CiAjZW5k
aWYKICNlbGlmIENQVShBUk02NCkKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hJbkVudGVy
KTsKKwogICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1f
aml0LnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFp
cnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAg
ICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rl
ciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgcHVzaFBh
aXJJbkVudGVyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3Nl
bWJsZXI6OmxpbmtSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCksIG1fcmVncy5zdXBwbGVtZW50YXJ5UGxhbmVzQmFz
ZSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHhkODAwKSwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpOwogICAgICAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCksIG1fcmVncy50cmFpbGlu
Z1N1cnJvZ2F0ZVRhZyk7CiAgICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgICAg
ICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJl
Z2lzdGVyczo6cjUpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYpOwotICAg
ICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjgpOwotICAgICAgICBtX2ppdC5wdXNoKEFS
TVJlZ2lzdGVyczo6cjEwKTsKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hQYWlySW5FbnRl
cik7CisKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyNCk7CisgICAgICAgIHB1
c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjUpOworICAgICAgICBwdXNoSW5FbnRlcihBUk1SZWdp
c3RlcnM6OnI2KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyOCk7CisgICAg
ICAgIHB1c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjEwKTsKICNlbGlmIENQVShSSVNDVjY0KQor
ICAgICAgICBVTlVTRURfVkFSSUFCTEUocHVzaEluRW50ZXIpOworCiAgICAgICAgIGlmIChtX2Rl
Y29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQucHVzaFBhaXIoTWFjcm9Bc3Nl
bWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVy
KTsKKyAgICAgICAgICAgIHB1c2hQYWlySW5FbnRlcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2lu
dGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwogI2VsaWYgQ1BVKE1J
UFMpCi0gICAgICAgIC8vIERvIG5vdGhpbmcuCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNo
SW5FbnRlcik7CisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNoUGFpckluRW50ZXIpOwogI2Vu
ZGlmCiAgICAgfQogCkBAIC00MDg2LDcgKzQxMDYsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZp
bmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAgICB9CiAKIHB1YmxpYzoKLSAgICBZYXJyR2Vu
ZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayog
Y29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4s
IGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBp
bGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQs
IGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVn
cyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmlu
ZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAg
ICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2Nr
KGNvZGVCbG9jaykKQEAgLTQxMDUsNyArNDEyNSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9ib3ll
ck1vb3JlRGF0YSA9IHN0YXRpY19jYXN0PFlhcnJCb3llck1veWVyRGF0YSo+KG1fY29kZUJsb2Nr
KTsKICAgICB9CiAKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0
IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVn
cyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmlu
ZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlh
cnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95
ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4m
IHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUs
IEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAg
ICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKG51bGxwdHIpCkBAIC00MTkxLDE0
ICs0MjExLDI1IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGNhbGxGcmFtZVNpemVJbkJ5dGVzKSB7
CiAgICAgICAgICAgICAvLyBDaGVjayBzdGFjayBzaXplCiAgICAgICAgICAgICBtX2ppdC5hZGRQ
dHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtY2FsbEZyYW1lU2l6ZUluQnl0ZXMpLCBN
YWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG1fcmVncy5yZWdUMCk7Ci0jaWYg
Q1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29udGV4
dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0gICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3Mu
cmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KFg4NlJlZ2lzdGVyczo6ZWJwLCA3ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7
Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCi0gICAgICAgICAgICAvLyBtYXRj
aGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0YWNr
LgorI2lmIChDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKSkgfHwgQ1BVKEFSTV9USFVNQjIpIHx8
IENQVShNSVBTKQorICAgICAgICAgICAgLy8gSW4gdGhlc2UgcGxhdGZvcm1zIHdlIG5lZWQgdG8g
Z2V0IHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2sKKworICAgICAgICAgICAgLy8gTWFr
ZSBzdXJlIHRoYXQgdGhlIEpJVGVkIGZ1bmN0aW9ucyBoYXZlIDUgcGFyYW1ldGVycworICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxZYXJyQ29kZUJsb2NrOjpZYXJySklU
Q29kZTg+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRz
Iik7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPFlhcnJDb2RlQmxv
Y2s6OllhcnJKSVRDb2RlMTY+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2Vz
IDUgYXJndW1lbnRzIik7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRz
PFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlTWF0Y2hPbmx5OD46OmNDYWxsQXJpdHkoKSA9PSA1
LCAiWWFyckpJVENvZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsKKyAgICAgICAgICAgIHN0YXRpY19h
c3NlcnQoRnVuY3Rpb25UcmFpdHM8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkx
Nj46OmNDYWxsQXJpdHkoKSA9PSA1LCAiWWFyckpJVENvZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsK
KwogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0
ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDQgKiBzaXpl
b2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKKworICAgICAgICAgICAgLy8gTUlQUyBwbGFj
ZXMgdGhlIDV0aCBhcmd1bWVudCBvbiBzcCArIDE2IGJ5dGVzIChvZmZzZXQgNCkKKyAgICAgICAg
ICAgIC8vIEFSTXY3IHBsYWNlcyB0aGUgNXRoIGFyZ3VtZW50IG9uIHNwICsgMCBieXRlcyAob2Zm
c2V0IDApCisgICAgICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSBtX2ppdC5jYWxjdWxhdGVQb2tl
T2Zmc2V0KC8qIGFyZzogKi8gNSkgLSAxOworCisgICAgICAgICAgICAvLyBXZSBhbHNvIG5lZWQg
dG8gY29uc2lkZXIgYW55IHJlZ2lzdGVycyBwdXNoZWQgaW50byB0aGUgc3RhY2sgaW4gZ2VuZXJh
dGVFbnRlcigpCisgICAgICAgICAgICBvZmZzZXQgKz0gbV9wdXNoQ291bnRJbkVudGVyOworCisg
ICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNz
ZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIG1h
dGNoaW5nQ29udGV4dCk7CiAjZWxzZQogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lz
dGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dDsKICNlbmRpZgpA
QCAtNDYxOCw3ICs0NjQ5LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNYWNy
b0Fzc2VtYmxlciYgbV9qaXQ7CisgICAgQ0NhbGxIZWxwZXJzJiBtX2ppdDsKICAgICBjb25zdCBW
TSogbV92bTsKICAgICBZYXJyQ29kZUJsb2NrKiBtX2NvZGVCbG9jazsKICAgICBZYXJyQm95ZXJN
b3llckRhdGEqIG1fYm95ZXJNb29yZURhdGE7CkBAIC00NjcyLDYgKzQ3MDMsMTIgQEAgcHJpdmF0
ZToKICAgICBCYWNrdHJhY2tpbmdTdGF0ZSBtX2JhY2t0cmFja2luZ1N0YXRlOwogICAgIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxZYXJyRGlzYXNzZW1ibGVyPiBtX2Rpc2Fzc2VtYmxlcjsKKworICAg
IC8vIE1lbWJlciBpcyB1c2VkIHRvIGNvdW50IHRoZSBudW1iZXIgb2YgR1BSIHB1c2hlZCBpbnRv
IHRoZSBzdGFjayB3aGVuCisgICAgLy8gZW50ZXJpbmcgSklUZWQgY29kZS4gSXQgaXMgbWFpbmx5
IHVzZWQgdG8gZmlndXJlIG91dCBpZiBhbiBmdW5jdGlvbiBhcmd1bWVudAorICAgIC8vIG9mZnNl
dCBpbiB0aGUgc3RhY2sgaWYgdGhlcmUgd2Fzbid0IGVub3VnaCByZWdpc3RlcnMgdG8gcGFzcyBp
dCwgZS5nLiwgQVJNdjcKKyAgICAvLyBhbmQgTUlQUyBvbmx5IHVzZSA0IHJlZ2lzdGVycyB0byBw
YXNzIGZ1bmN0aW9uIGFyZ3VtZW50cy4KKyAgICB1bnNpZ25lZCBtX3B1c2hDb3VudEluRW50ZXIg
eyAwIH07CiB9OwogCiBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUoSklURmFpbHVyZVJl
YXNvbiBmYWlsdXJlKQpAQCAtNDcwNiw3ICs0NzQzLDcgQEAgc3RhdGljIHZvaWQgZHVtcENvbXBp
bGVGYWlsdXJlKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKIAogdm9pZCBqaXRDb21waWxlKFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJT
aXplLCBWTSogdm0sIFlhcnJDb2RlQmxvY2smIGNvZGVCbG9jaywgSklUQ29tcGlsZU1vZGUgbW9k
ZSkKIHsKLSAgICBNYWNyb0Fzc2VtYmxlciBtYXNtOworICAgIENDYWxsSGVscGVycyBtYXNtOwog
CiAgICAgQVNTRVJUKG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Ok1hdGNoT25seSB8fCBtb2RlID09
IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpOwogCkBAIC00NzI3LDcgKzQ3NjQs
NyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVy
blN0cmluZywgQ2hhclNpemUgY2hhclNpemUsCiAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIGlubGlu
ZWQgSklUJ2luZyBvZiBSZWdFeHAudGVzdCBmb3IgdGhpcyBDUFUgLyBPUyBjb21iaW5hdGlvbi4i
CiAjZW5kaWYKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21w
aWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBP
cHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0q
IHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBNYWNyb0Fzc2VtYmxlciYg
aml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCit2b2lkIGppdENvbXBpbGVJbmxp
bmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBjb25z
dCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3MsIENo
YXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95ZXJN
b29yZURhdGEsIENDYWxsSGVscGVycyYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3Rl
cnMpCiB7CiAgICAgWWFycjo6RXJyb3JDb2RlIGVycm9yQ29kZTsKICAgICBZYXJyOjpZYXJyUGF0
dGVybiBwYXR0ZXJuKHBhdHRlcm5TdHJpbmcsIGZsYWdzLCBlcnJvckNvZGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5oCmluZGV4IDI4OWQ2ZTgxZmU1MTdhYWRmYmU0OThkMTg1ZTMw
NzIwNWU2YTA3MzMuLjJiYzM3Mzk1NjQxMGRiYzRjOTVkN2RlMmZjZjhlOTZjMzY1ZDNmZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKQEAgLTQzLDkgKzQzLDEwIEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1jbGFzcyBWTTsKK2NsYXNzIENDYWxsSGVscGVyczsKIGNsYXNzIEV4
ZWN1dGFibGVQb29sOwogY2xhc3MgTWFjcm9Bc3NlbWJsZXI7CitjbGFzcyBWTTsKIAogbmFtZXNw
YWNlIFlhcnIgewogCkBAIC0yNzEsMTIgKzI3MiwxMyBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIDog
cHVibGljIFlhcnJCb3llck1veWVyRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWWFyckNvZGVCbG9jayk7CiAKLSAgICB1c2luZyBZ
YXJySklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwg
VUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2lu
ZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5w
dXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQs
IE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAg
dXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25z
dCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwg
dm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7
Ci0gICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAo
KikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBs
ZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFS
Ul9DQUxMOwotCiBwdWJsaWM6CisKKyAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJl
dHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BV
UmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRj
aGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1Bh
dGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwg
VUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciog
bWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9u
bHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdp
c3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhv
bGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVN
YXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBV
Q1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworCiAgICAgWWFyckNvZGVC
bG9jaygpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNv
bihKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmVSZWFzb24pIHsgbV9mYWlsdXJlUmVhc29uID0gZmFp
bHVyZVJlYXNvbjsgfQpAQCAtMzI2LDcgKzMyOCw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVTdGF0
cyYgZ2V0OEJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gbV9tYXRjaE9ubHk4U3RhdHM7IH0KICAg
ICBJbmxpbmVTdGF0cyYgZ2V0MTZCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuICBtX21hdGNoT25s
eTE2U3RhdHM7IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShj
b25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCog
b3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAg
ICAgICAgIEFTU0VSVChoYXM4Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzM2LDcg
KzMzOCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0
aW9uUHRyPFlhcnJKSVRDb2RlOCwgWWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2RlKCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250
ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5w
dXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRl
KGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50
KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzQ2
LDcgKzM0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1
bmN0aW9uUHRyPFlhcnJKSVRDb2RlMTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYxNi5jb2RlKCku
ZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hp
bmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hh
ciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4
dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3Qg
TENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4
Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzU2LDcgKzM1OCw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlh
cnJKSVRDb2RlTWF0Y2hPbmx5OCwgWWFyck1hdGNoT25seThCaXRQdHJUYWc+KG1fbWF0Y2hPbmx5
OC5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51bGxw
dHIsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUo
Y29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRj
aGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVj
dXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBB
U1NFUlQoaGFzMTZCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC00Mzks
NyArNDQxLDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiwgU3RyaW5nJiBwYXR0ZXJu
U3RyaW5nLCBDaGFyU2l6ZSwgVk0qLCBZYXJyQ29kZUJsb2MKIAogY2xhc3MgWWFyckpJVFJlZ2lz
dGVyczsKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0
cmluZyYsIE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJC
b3llck1veWVyRGF0YSYsIE1hY3JvQXNzZW1ibGVyJiwgWWFyckpJVFJlZ2lzdGVycyYpOwordm9p
ZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlv
blNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0
YSYsIENDYWxsSGVscGVycyYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKICNlbmRpZgogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCmluZGV4IDEzOWQxZmUzNWI1NzVjNzBhMDVh
N2U3NzI1ZGQ5ZmExZWZiNjYwMWUuLjFhZjgzMDk4MmZmNTdmMmE5M2I2NjE3OTM4ZDJkYmM1ZGVj
OGExNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGlu
Z0NvbnRleHRIb2xkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0
Y2hpbmdDb250ZXh0SG9sZGVyLmgKQEAgLTM3LDEyICszNywxMCBAQCBjbGFzcyBSZWdFeHA7CiAK
IG5hbWVzcGFjZSBZYXJyIHsKIAotY2xhc3MgWWFyckNvZGVCbG9jazsKLQogY2xhc3MgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyIHsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1Ymxp
YzoKLSAgICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBZYXJyQ29kZUJsb2NrKiwgUmVnRXhw
KiwgTWF0Y2hGcm9tKTsKKyAgICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBib29sLCBSZWdF
eHAqLCBNYXRjaEZyb20pOwogICAgIH5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKTsKIAogICAgIHN0
YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTdGFja0xpbWl0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKE1hdGNoaW5nQ29udGV4dEhvbGRlciwgbV9zdGFja0xpbWl0KTsgfQpAQCAtNjEsNyArNTks
NyBAQCBwcml2YXRlOgogICAgIE1hdGNoRnJvbSBtX21hdGNoRnJvbTsKIH07CiAKLWlubGluZSBN
YXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJD
b2RlQmxvY2sqIHlhcnJDb2RlQmxvY2ssIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hG
cm9tKQoraW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
KFZNJiB2bSwgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIFJlZ0V4cCogcmVnRXhwLCBN
YXRjaEZyb20gbWF0Y2hGcm9tKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fbWF0Y2hGcm9tKG1h
dGNoRnJvbSkKIHsKQEAgLTc0LDEyICs3MiwxMiBAQCBpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQwog
ICAgIH0KIAogI2lmIEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQotICAg
IGlmICh5YXJyQ29kZUJsb2NrICYmIHlhcnJDb2RlQmxvY2stPnVzZXNQYXR0ZXJuQ29udGV4dEJ1
ZmZlcigpKSB7CisgICAgaWYgKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcikgewogICAgICAgICBt
X3BhdHRlcm5Db250ZXh0QnVmZmVyID0gbV92bS5hY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRleEJ1
ZmZlcigpOwogICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZSA9IFZNOjpwYXR0ZXJu
Q29udGV4dEJ1ZmZlclNpemU7CiAgICAgfQogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oeWFyckNv
ZGVCbG9jayk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik7CiAj
ZW5kaWYKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448635</attachid>
            <date>2022-01-07 14:56:22 -0800</date>
            <delta_ts>2022-01-08 13:11:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220107185620.patch</filename>
            <type>text/plain</type>
            <size>22791</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4xNGE5MTY3NmM3ZGM3ZjQ3
MDJkMmI1MGJjOWE0NmFlOTA2NzUxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suIFdlIG5vdyB1
c2UgY2FsY3VsYXRlUG9rZU9mZnNldCB0byBjYWxjdWxhdGUgdGhlCisgICAgICAgIG9mZnNldCBv
ZiB0aGUgNXRoIGFyZ3VtZW50IGFuZCBrZWVwIHRyYWNrIG9mIGFueSBwdXNoIGludG8gdGhlIHN0
YWNrCisgICAgICAgIHNvIHdlIGNhbiBmaWd1cmUgb3V0IHRoZSBvZmZzZXQgb2YgZXZlcnkgcGxh
dGZvcm0uCisKKyAgICAgICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMg
dG8gdGhlIHN0YWNrIGJlZm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAg
ICAgICBwdHIsIGhvd2V2ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVk
IHRvIGdldCB0aGUKKyAgICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIu
CisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElu
bGluZSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQ
cm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJp
dmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQw
YjM1ODQzYzJjZGU5NWIwLi41MTZjNmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVS
ZWdFeHBUZXN0SW5saW5lKE5vZGUqIG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChu
b2RlKTsKKyAgICBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4
MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li4wMDlkNzkwYjBlYzM5N2VjM2RmNmYxNzI1OTUwYTgxYjU5
MDU2ZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTg1
LDYgKzg1LDExIEBAIHB1YmxpYzoKICAgICAgICAgcG9rZShHUFJJbmZvOjpub25BcmdHUFIwLCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCArIGFyZ3VtZW50SW5kZXggLSBHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGNh
bGN1bGF0ZVBva2VPZmZzZXQodW5zaWduZWQgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNh
bGN1bGF0ZVBva2VPZmZzZXQoYXJnLCAvKiBjdXJyZW50RlBSQXJndW1lbnQ6ICovIDAsIC8qIG51
bUNyb3NzU291cmNlczogKi8gMCwgLyogZXh0cmFHUFJBcmdzOiAqLyAwLCAvKiBub25BcmdHUFJz
OiAqLyAwLCAvKiBleHRyYVBva2U6ICovIDApOworICAgIH0KKwogcHJpdmF0ZToKIAogICAgIHRl
bXBsYXRlPHVuc2lnbmVkIE51bWJlck9mUmVnaXN0ZXJzLCB0eXBlbmFtZSBSZWdUeXBlPgpAQCAt
OTkyLDYgKzk5Nyw0OSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHByZWZlcnJl
ZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAg
fQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBBcmdOdW0+Cisg
ICAgY29uc3RleHByIEdQUlJlZyBnZXRBcmd1bWVudEdQUihHUFJSZWcgc2NyYXRjaFJlZyA9IEdQ
UlJlZzo6SW52YWxpZEdQUlJlZykKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rp
b25UcmFpdHM8RnVuY3Rpb24+OjpjQ2FsbEFyaXR5KCkgPiBBcmdOdW0sICJGdW5jdGlvbiBkb2Vz
IG5vdCBoYXZlIGVub3VnaCBhcmd1bWVudHMiKTsKKyAgICAgICAgc3dpdGNoIChBcmdOdW0pIHsK
KyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BS
MDsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50
R1BSMTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMjsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFy
Z3VtZW50R1BSMzsKKyNpZiBDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykKKyAgICAgICAgY2Fz
ZSA0OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNDsKKyAgICAgICAg
Y2FzZSA1OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNTsKKyNlbmRp
ZgorI2lmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCisgICAgICAgIGNhc2UgNjoKKyAgICAg
ICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjY7CisgICAgICAgIGNhc2UgNzoKKyAg
ICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjc7CisjZW5kaWYKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBz
dGFuZGFyZCBmb3JiaXMgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsK
KyAgICAgICAgICAgIEFTU0VSVChzY3JhdGNoUmVnICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZywg
IlZhbGlkIEdQUiBuZWVkZWQgdG8gbG9hZCB0aGlzIGFyZ3VtZW50Iik7CisKKyNpZiBDUFUoQVJN
NjQpIHx8IENQVShSSVNDVjY0KQorICAgICAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIG9mZnNl
dCA9IEFyZ051bSAtIDg7CisjZWxpZiBDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykKKyAgICAg
ICAgICAgIGNvbnN0ZXhwciB1bnNpZ25lZCBvZmZzZXQgPSBBcmdOdW0gLSA2OworI2VsaWYgQ1BV
KEFSTV9USFVNQjIpCisgICAgICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgb2Zmc2V0ID0gQXJn
TnVtIC0gMjsKKyNlbHNlCisgICAgICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgb2Zmc2V0ID0g
QXJnTnVtIC0gNDsKKyNlbmRpZgorICAgICAgICAgICAgbG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIG9mZnNldCAqIHNp
emVvZih2b2lkKikpLCBzY3JhdGNoUmVnKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2Ny
YXRjaFJlZzsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDFiOGNkNDIwZjEwNzA5ZDFiZWIxYTQ1MGQx
MzA0MGYzNzczMjY4NjMuLjQ0OTA5ZDE2OTRiYzU1Yzc1YjI3N2NjNTE2MDAwMDI4NGI0YWQzMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtNDQ4LDEwICs0
NDgsMTAgQEAgdm9pZCBSZWdFeHA6Om1hdGNoQ29tcGFyZVdpdGhJbnRlcnByZXRlcihjb25zdCBT
dHJpbmcmIHMsIGludCBzdGFydE9mZnNldCwgaW50KgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgSklUQ29kZTogewogICAgICAgICAgICAgWWFycjo6WWFyckNvZGVCbG9jayYgY29k
ZUJsb2NrID0gKm1fcmVnRXhwSklUQ29kZS5nZXQoKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGpp
dDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0gICAg
ICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHgl
MDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0
Y2hPbmx5QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBq
aXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVC
bG9jay5nZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0
TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBzbnBy
aW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFk
ZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRB
ZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNv
ZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYo
aml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7CisgICAg
ICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTQi
IFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaEFkZHIoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCmluZGV4IDAy
MmNiYmE1NTU3ZTcxNzhkMTRkNGI2NjFlZGNkNjg1YTRmNzg3ZTIuLjBhMDkxNzhlNmY5YTk0Mzkx
YTBkZjFkMDFjMzllNWNlY2FkZmJhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBJbmxpbmVzLmgKQEAgLTEzMiwxMiArMTMyLDEyIEBAIEFMV0FZU19JTkxJTkUg
aW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVj
dCwgVk0mIHZtCiAgICAgaWYgKG1fc3RhdGUgPT0gSklUQ29kZSkgewogICAgICAgICB7CiAgICAg
ICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNo
aW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCks
IHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xk
ZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRC
dWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkp
Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hh
cmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhw
Q29udGV4dCkuc3RhcnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2Rl
LT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNl
dFZlY3RvciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMx
NigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250ZXh0
KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1
dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3Rv
ciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJlc3Vs
dCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFlhcnI6OkpTUmVnRXhwUmVzdWx0OjpKSVRDb2RlRmFpbHVy
ZSkpIHsKQEAgLTE0Niw3ICsxNDYsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgICAg
ICAgICAgaWYgKG1fc3RhdGUgPT0gUGFyc2VFcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcigpOwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFlhcnI6Ok1hdGNo
aW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZy
b20pOworICAgICAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBD
b250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBt
YXRjaEZyb20pOwogICAgICAgICAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3Jl
Z0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNp
Z25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjIs
NyArMTYyLDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2Jh
bE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICB9IGVsc2UKICNlbmRpZgog
ICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29u
dGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6
ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRl
cnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAKQEAgLTI2NiwxMiArMjY2
LDEyIEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0ds
b2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0CiAgICAgICAgIE1hdGNoUmVzdWx0IHJlc3Vs
dDsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAg
ICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9y
ZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+
dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAg
ICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklU
Q29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBy
ZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUt
PmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4
cENvbnRleHQpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1f
cmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5s
ZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdF
eHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0
aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgIH0KIAogI2lmIEVOQUJMRShSRUdFWFBfVFJB
Q0lORykKQEAgLTI5NSw3ICsyOTUsNyBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4
cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAgIG5v
blJldHVybmVkT3ZlY3Rvci5ncm93KG9mZnNldFZlY3RvclNpemUpOwogICAgIG9mZnNldFZlY3Rv
ciA9IG5vblJldHVybmVkT3ZlY3Rvci5kYXRhKCk7CiAgICAgewotICAgICAgICBZYXJyOjpNYXRj
aGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hG
cm9tKTsKKyAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJv
bSk7CiAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdl
dCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZl
Y3RvcikpOwogICAgIH0KICNpZiBSRUdFWFBfRlVOQ19URVNUX0RBVEFfR0VOCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCmluZGV4IGE0OThlZjc4MDczMTgyNGRjZjJlZjg3OTg1
YmIwOWIyOTMyMGNlYWUuLjE2OTE3YTUzZmQ1ODI4YTgxM2M2NGViM2Y3MmNjMDNhZTJiOWFlZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC0yNyw2ICsyNyw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWWFyckpJVC5oIgogCisjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk9wdGlv
bnMuaCIKICNpbmNsdWRlICJWTS5oIgpAQCAtMzk2MSwxMCArMzk2Miw4IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgdm9pZCBnZW5lcmF0
ZUVudGVyKCkKICAgICB7CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAj
aWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7Ci0g
ICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBY
ODZSZWdpc3RlcnM6OmVicCk7Ci0KICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFs
U3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYngpOwog
CkBAIC00MDUyLDcgKzQwNTEsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IFlhcnJKSVRJbmZvIHsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFy
dFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKLSAgICAg
ICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKICNlbGlmIENQVShBUk02NCkKICAgICAg
ICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9u
czo6dXNlSklUQ2FnZSgpKQpAQCAtNDA3MCw2ICs0MDY4LDkgQEAgY2xhc3MgWWFyckdlbmVyYXRv
ciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAjZWxpZiBDUFUoTUlQUykKICAgICAgICAg
Ly8gRG8gbm90aGluZwogI2VuZGlmCisKKyAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgp
OworCiAjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUpJVENhZ2UoKSkK
ICAgICAgICAgICAgIG1faml0LmZhckp1bXAoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIo
cmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4oJnZt
RW50cnlUb1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25QdHJUYWcpOwpAQCAtNDA4Niw3ICs0MDg3
LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAg
ICAgfQogCiBwdWJsaWM6Ci0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBj
b25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3Mm
IHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcs
IENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJy
R2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sq
IGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJu
LCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21w
aWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92
bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC00MTA1LDcgKzQxMDYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYm95ZXJNb29yZURhdGEgPSBzdGF0aWNfY2FzdDxZYXJy
Qm95ZXJNb3llckRhdGEqPihtX2NvZGVCbG9jayk7CiAgICAgfQogCi0gICAgWWFyckdlbmVyYXRv
cihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSog
eWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJu
LCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21w
aWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0
LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFy
ckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRl
cm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkK
ICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2Nv
ZGVCbG9jayhudWxscHRyKQpAQCAtNDE5MSwxNiArNDE5MiwyOSBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChjYWxsRnJhbWVTaXplSW5CeXRlcykgewogICAgICAgICAgICAgLy8gQ2hlY2sgc3RhY2sg
c2l6ZQogICAgICAgICAgICAgbV9qaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoLWNhbGxGcmFtZVNpemVJbkJ5dGVzKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCBtX3JlZ3MucmVnVDApOwotI2lmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCi0g
ICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMg
Zm91bmQgb24gdGhlIHN0YWNrLgotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQubG9h
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNyAqIHNpemVv
Zih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwotI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQ
VShNSVBTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1l
bnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7
CisKKyAgICAgICAgICAgIC8vIFRPRE86IENhbiB3ZSBjcmVhdGUgbGFtYmRhIHRoYXQgdGFrZXMg
YSBsaXN0IG9mIHRoZSBKSVRlZCBmdW5jdGlvbnMgYW5kCisKKyAgICAgICAgICAgIC8vIE1ha2Ug
c3VyZSB0aGF0IHRoZSBKSVRlZCBmdW5jdGlvbnMgaGF2ZSA1IHBhcmFtZXRlcnMgYW5kIHRoYXQg
dGhlIDV0aCBhcmd1bWVudCBpcyBhIE1hdGNoaW5nQ29udGV4dEhvbGRlcioKKyNkZWZpbmUgZnVu
Y3Rpb25DaGVja3MoZnVuYykgXAorICAgIGRvIHsgXAorICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1
bmN0aW9uVHJhaXRzPGZ1bmM+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2Vz
IDUgYXJndW1lbnRzIik7IFwKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8TWF0
Y2hpbmdDb250ZXh0SG9sZGVyKiwgRnVuY3Rpb25UcmFpdHM8ZnVuYz46OkFyZ3VtZW50VHlwZTw0
Pj46OnZhbHVlKTsgXAorICAgIH0gd2hpbGUgKGZhbHNlKQorCisgICAgICAgICAgICBmdW5jdGlv
bkNoZWNrcyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgpOworICAgICAgICAgICAgZnVuY3Rp
b25DaGVja3MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGUxNik7CisgICAgICAgICAgICBmdW5j
dGlvbkNoZWNrcyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTgpOworICAgICAg
ICAgICAgZnVuY3Rpb25DaGVja3MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkx
Nik7CisKKyN1bmRlZiBmdW5jdGlvbkNoZWNrcworCisjaWYgKENQVShYODZfNjQpICYmIE9TKFdJ
TkRPV1MpKSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCisgICAgICAgICAgICBHUFJS
ZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9jazo6
WWFyckpJVENvZGU4LCA0PihtX3JlZ3MucmVnVDEpOworICAgICAgICAgICAgQVNTRVJUKG1hdGNo
aW5nQ29udGV4dCA9PSBtX3JlZ3MucmVnVDEpOwogI2Vsc2UKLSAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5tYXRjaGluZ0NvbnRl
eHQ7CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1l
bnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PigpOworICAgICAgICAgICAgQVNT
RVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0KTsKICNlbmRpZgog
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3RhY2tPayA9IG1faml0LmJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3dPckVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyht
YXRjaGluZ0NvbnRleHQsIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6b2Zmc2V0T2ZTdGFja0xpbWl0
KCkpLCBtX3JlZ3MucmVnVDApOwogCkBAIC00NjE4LDcgKzQ2MzIsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNzZW1ibGVyJiBtX2ppdDsKKyAgICBDQ2FsbEhlbHBl
cnMmIG1faml0OwogICAgIGNvbnN0IFZNKiBtX3ZtOwogICAgIFlhcnJDb2RlQmxvY2sqIG1fY29k
ZUJsb2NrOwogICAgIFlhcnJCb3llck1veWVyRGF0YSogbV9ib3llck1vb3JlRGF0YTsKQEAgLTQ3
MDYsNyArNDcyMCw3IEBAIHN0YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJl
UmVhc29uIGZhaWx1cmUpCiAKIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwg
U3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJyQ29k
ZUJsb2NrJiBjb2RlQmxvY2ssIEpJVENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9Bc3Nl
bWJsZXIgbWFzbTsKKyAgICBDQ2FsbEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2RlID09
IEpJVENvbXBpbGVNb2RlOjpNYXRjaE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5j
bHVkZVN1YnBhdHRlcm5zKTsKIApAQCAtNDcyNyw3ICs0NzQxLDcgQEAgdm9pZCBqaXRDb21waWxl
KFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNo
YXJTaXplLAogI2Vycm9yICJObyBzdXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVnRXhw
LnRlc3QgZm9yIHRoaXMgQ1BVIC8gT1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQgaml0
Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0No
ZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdz
PiBmbGFncywgQ2hhclNpemUgY2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJE
YXRhJiBib3llck1vb3JlRGF0YSwgTWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lzdGVy
cyYgaml0UmVnaXN0ZXJzKQordm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayog
bV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29u
c3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBl
cnMmIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVy
cm9yQ29kZSBlcnJvckNvZGU7CiAgICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJu
U3RyaW5nLCBmbGFncywgZXJyb3JDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQu
aAppbmRleCAyODlkNmU4MWZlNTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi4yYmMzNzM5
NTY0MTBkYmM0Yzk1ZDdkZTJmY2Y4ZTk2YzM2NWQzZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVC5oCkBAIC00Myw5ICs0MywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xh
c3MgVk07CitjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKIGNsYXNz
IE1hY3JvQXNzZW1ibGVyOworY2xhc3MgVk07CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApAQCAtMjcx
LDEyICsyNzIsMTMgQEAgY2xhc3MgWWFyckNvZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95ZXJNb3ll
ckRhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFlhcnJDb2RlQmxvY2spOwogCi0gICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1Bh
dGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwg
VUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYg
bWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNs
b3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3Rh
cnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xk
ZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0
Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRD
b2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1
dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLQogcHVibGljOgor
CisgICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBM
Q2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50
KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NB
TEw7CisgICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29u
c3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgs
IGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFS
Ul9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJu
VHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdp
c3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4
dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0
aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBV
Q1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGlu
Z0NvbnRleHQpIFlBUlJfQ0FMTDsKKwogICAgIFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1bHQ7CiAK
ICAgICB2b2lkIHNldEZhbGxCYWNrV2l0aEZhaWx1cmVSZWFzb24oSklURmFpbHVyZVJlYXNvbiBm
YWlsdXJlUmVhc29uKSB7IG1fZmFpbHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFzb247IH0KQEAgLTMy
Niw3ICszMjgsNyBAQCBwdWJsaWM6CiAgICAgSW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0
cygpIHsgcmV0dXJuIG1fbWF0Y2hPbmx5OFN0YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdldDE2
Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiAgbV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAgICBN
YXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVu
c2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hp
bmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJp
dENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTMzNiw3ICszMzgsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTgs
IFlhcnI4Qml0UHRyVGFnPihtX3JlZjguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0
LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAg
IE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRj
aGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMx
NkJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM0Niw3ICszNDgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29k
ZTE2LCBZYXJyMTZCaXRQdHJUYWc+KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkp
KGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0K
IAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29u
dGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWdu
ZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGlu
Z0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGVNYXRjaE9ubHkoKSk7
CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM1Niw3ICszNTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZU1hdGNoT25seTgs
IFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPihtX21hdGNoT25seTguY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRleHQp
KTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBt
YXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5w
dXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZU1h
dGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtNDM5LDcgKzQ0MSw3IEBAIHZvaWQgaml0
Q29tcGlsZShZYXJyUGF0dGVybiYsIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUsIFZN
KiwgWWFyckNvZGVCbG9jCiAKIGNsYXNzIFlhcnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0Q29t
cGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFy
cjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBNYWNy
b0Fzc2VtYmxlciYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRU
ZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBD
aGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMmLCBZ
YXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRl
eHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRl
eHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcyNWRkOWZhMWVmYjY2MDFl
Li4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5o
CkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1lc3BhY2UgWWFyciB7CiAK
LWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29udGV4dEhvbGRlciB7CiAg
ICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0gICAgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1hdGNoRnJvbSk7CisgICAg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKICAg
ICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNl
dE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNYXRjaGluZ0NvbnRleHRI
b2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBN
YXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQ29kZUJs
b2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKK2lubGluZSBNYXRjaGlu
Z0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIGJvb2wgdXNlc1Bh
dHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkK
ICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZyb20pCiB7CkBAIC03NCwx
MiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0
SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckMKICAgICB9CiAKICNpZiBFTkFCTEUo
WUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAoeWFyckNvZGVCbG9jayAm
JiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSkgeworICAgIGlmICh1
c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZl
ciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsKICAgICAgICAgbV9w
YXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRleHRCdWZmZXJTaXplOwog
ICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxvY2spOworICAgIFVOVVNF
RF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlmCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448679</attachid>
            <date>2022-01-08 13:11:23 -0800</date>
            <delta_ts>2022-01-08 13:41:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220108171121.patch</filename>
            <type>text/plain</type>
            <size>23061</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4xNGE5MTY3NmM3ZGM3ZjQ3
MDJkMmI1MGJjOWE0NmFlOTA2NzUxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suIFdlIG5vdyB1
c2UgY2FsY3VsYXRlUG9rZU9mZnNldCB0byBjYWxjdWxhdGUgdGhlCisgICAgICAgIG9mZnNldCBv
ZiB0aGUgNXRoIGFyZ3VtZW50IGFuZCBrZWVwIHRyYWNrIG9mIGFueSBwdXNoIGludG8gdGhlIHN0
YWNrCisgICAgICAgIHNvIHdlIGNhbiBmaWd1cmUgb3V0IHRoZSBvZmZzZXQgb2YgZXZlcnkgcGxh
dGZvcm0uCisKKyAgICAgICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMg
dG8gdGhlIHN0YWNrIGJlZm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAg
ICAgICBwdHIsIGhvd2V2ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVk
IHRvIGdldCB0aGUKKyAgICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIu
CisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElu
bGluZSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQ
cm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJp
dmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQw
YjM1ODQzYzJjZGU5NWIwLi41MTZjNmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVS
ZWdFeHBUZXN0SW5saW5lKE5vZGUqIG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChu
b2RlKTsKKyAgICBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4
MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li5mMTRjYTcwMTdiNDkzYjIyYTIyZDY3M2Y0OTc3YmQ0Yjcz
NzhlZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTg1
LDYgKzg1LDExIEBAIHB1YmxpYzoKICAgICAgICAgcG9rZShHUFJJbmZvOjpub25BcmdHUFIwLCBQ
T0tFX0FSR1VNRU5UX09GRlNFVCArIGFyZ3VtZW50SW5kZXggLSBHUFJJbmZvOjpudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHVuc2lnbmVkIGNh
bGN1bGF0ZVBva2VPZmZzZXQodW5zaWduZWQgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNh
bGN1bGF0ZVBva2VPZmZzZXQoYXJnLCAvKiBjdXJyZW50RlBSQXJndW1lbnQ6ICovIDAsIC8qIG51
bUNyb3NzU291cmNlczogKi8gMCwgLyogZXh0cmFHUFJBcmdzOiAqLyAwLCAvKiBub25BcmdHUFJz
OiAqLyAwLCAvKiBleHRyYVBva2U6ICovIDApOworICAgIH0KKwogcHJpdmF0ZToKIAogICAgIHRl
bXBsYXRlPHVuc2lnbmVkIE51bWJlck9mUmVnaXN0ZXJzLCB0eXBlbmFtZSBSZWdUeXBlPgpAQCAt
OTkyLDYgKzk5Nyw1OCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIHByZWZlcnJl
ZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAg
fQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdGlvbiwgdW5zaWduZWQg
QXJnTnVtPgorICAgIGNvbnN0ZXhwciBHUFJSZWcgbG9hZEZyb21TdGFjayhHUFJSZWcgc2NyYXRj
aFJlZykKKyAgICB7CisgICAgICAgIEFTU0VSVChzY3JhdGNoUmVnICE9IEdQUlJlZzo6SW52YWxp
ZEdQUlJlZywgIlZhbGlkIEdQUiBuZWVkZWQgdG8gbG9hZCB0aGlzIGFyZ3VtZW50Iik7CisgICAg
ICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtID4gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUywg
IlNob3VsZCByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFJYIik7CisKKyNpZiBDUFUoQVJNX1RI
VU1CMikKKyAgICAgICAgY29uc3RleHByIGludCBvZmZzZXQgPSBBcmdOdW0gLSBOVU1CRVJfT0Zf
QVJHVU1FTlRfUkVHSVNURVJTICsgMjsKKyNlbHNlCisgICAgICAgIGNvbnN0ZXhwciBpbnQgb2Zm
c2V0ID0gQXJnTnVtIC0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKKyNlbmRpZgorICAg
ICAgICBsb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFt
ZVBvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0Y2hSZWcpOwor
ICAgICAgICByZXR1cm4gc2NyYXRjaFJlZzsKKyAgICB9CisKK3B1YmxpYzoKKyAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgRnVuY3Rpb24sIHVuc2lnbmVkIEFyZ051bT4KKyAgICBjb25zdGV4cHIgR1BS
UmVnIGdldEFyZ3VtZW50R1BSKEdQUlJlZyBzY3JhdGNoUmVnID0gR1BSUmVnOjpJbnZhbGlkR1BS
UmVnKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChBcmdOdW0gPD0gMjU1LCAiQysrIHN0
YW5kYXJkIGZvcmJpcyBmdW5jdGlvbnMgd2l0aCBtb3JlIHRoYW4gMjU2IGFyZ3VtZW50cyIpOwor
ICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPEZ1bmN0aW9uPjo6Y0NhbGxBcml0
eSgpID4gQXJnTnVtLCAiRnVuY3Rpb24gZG9lcyBub3QgaGF2ZSBlbm91Z2ggYXJndW1lbnRzIik7
CisKKyAgICAgICAgaWYgY29uc3RleHByIChBcmdOdW0gPiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTKQorICAgICAgICAgICAgcmV0dXJuIGxvYWRGcm9tU3RhY2s8RnVuY3Rpb24sIEFyZ051
bT4oc2NyYXRjaFJlZyk7CisKKyAgICAgICAgc3dpdGNoIChBcmdOdW0pIHsKKyAgICAgICAgY2Fz
ZSAwOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMDsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICAg
ICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMjsKKyAg
ICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMzsK
KyNpZiBDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykKKyAgICAgICAgY2FzZSA0OgorICAgICAg
ICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNDsKKyAgICAgICAgY2FzZSA1OgorICAg
ICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNTsKKyNlbmRpZgorI2lmIENQVShB
Uk02NCkgfHwgQ1BVKFJJU0NWNjQpCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJldHVy
biBHUFJJbmZvOjphcmd1bWVudEdQUjY7CisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIHJl
dHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjc7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICB9
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHAuY3BwCmluZGV4IDFiOGNkNDIwZjEwNzA5ZDFiZWIxYTQ1MGQxMzA0MGYzNzczMjY4NjMu
LjQ0OTA5ZDE2OTRiYzU1Yzc1YjI3N2NjNTE2MDAwMDI4NGI0YWQzMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtNDQ4LDEwICs0NDgsMTAgQEAgdm9pZCBS
ZWdFeHA6Om1hdGNoQ29tcGFyZVdpdGhJbnRlcnByZXRlcihjb25zdCBTdHJpbmcmIHMsIGludCBz
dGFydE9mZnNldCwgaW50KgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSklUQ29k
ZTogewogICAgICAgICAgICAgWWFycjo6WWFyckNvZGVCbG9jayYgY29kZUJsb2NrID0gKm1fcmVn
RXhwSklUQ29kZS5nZXQoKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlB
ZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50
ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7
Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4
JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0
Y2hBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRB
ZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0
Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAg
ICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJp
dE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRk
ciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50
ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaEFkZHIoKSkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCmluZGV4IDAyMmNiYmE1NTU3ZTcxNzhk
MTRkNGI2NjFlZGNkNjg1YTRmNzg3ZTIuLjBhMDkxNzhlNmY5YTk0MzkxYTBkZjFkMDFjMzllNWNl
Y2FkZmJhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxp
bmVzLmgKQEAgLTEzMiwxMiArMTMyLDEyIEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0
Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAg
aWYgKG1fc3RhdGUgPT0gSklUQ29kZSkgewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQo
bV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRl
ciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJv
bSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4
dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywg
bWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAg
ICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3Rh
cnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hh
cmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgJnJlZ0V4
cENvbnRleHQpLnN0YXJ0OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNl
dCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJz
MTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgJnJlZ0V4cENvbnRl
eHQpLnN0YXJ0OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJlc3VsdCA9PSBzdGF0aWNfY2Fz
dDxpbnQ+KFlhcnI6OkpTUmVnRXhwUmVzdWx0OjpKSVRDb2RlRmFpbHVyZSkpIHsKQEAgLTE0Niw3
ICsxNDYsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFs
T2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgICAgICAgICAgaWYgKG1fc3Rh
dGUgPT0gUGFyc2VFcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigpOwog
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRl
ciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAg
ICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1
c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdl
dCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZl
Y3RvcikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjIsNyArMTYyLDcgQEAgQUxX
QVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICB9IGVsc2UKICNlbmRpZgogICAgIHsKLSAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRo
aXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdF
eHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlz
LCBtYXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBC
eXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQq
PihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAKQEAgLTI2NiwxMiArMjY2LDEyIEBAIEFMV0FZU19J
TkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVs
bE9yR2xvYmFsT2JqZWN0CiAgICAgICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKICAgICAgICAgewog
ICAgICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpN
YXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdl
dCgpLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0
SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250
ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJp
dCgpKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShz
LmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFy
YWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+
ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhw
Q29udGV4dCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVj
dXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29u
dGV4dCk7CiAgICAgICAgIH0KIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKQEAgLTI5NSw3
ICsyOTUsNyBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUo
SlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAgIG5vblJldHVybmVkT3ZlY3Rv
ci5ncm93KG9mZnNldFZlY3RvclNpemUpOwogICAgIG9mZnNldFZlY3RvciA9IG5vblJldHVybmVk
T3ZlY3Rvci5kYXRhKCk7CiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xk
ZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJl
c3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9m
ZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0K
ICNpZiBSRUdFWFBfRlVOQ19URVNUX0RBVEFfR0VOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJKSVQuY3BwCmluZGV4IGE0OThlZjc4MDczMTgyNGRjZjJlZjg3OTg1YmIwOWIyOTMyMGNlYWUu
LjE2OTE3YTUzZmQ1ODI4YTgxM2M2NGViM2Y3MmNjMDNhZTJiOWFlZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiWWFyckpJVC5oIgogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgi
CiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRl
ICJWTS5oIgpAQCAtMzk2MSwxMCArMzk2Miw4IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwg
OiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgdm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7
CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAjaWYgQ1BVKFg4Nl82NCkK
LSAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7Ci0gICAgICAgIG1faml0Lm1v
dmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVi
cCk7Ci0KICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAg
ICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYngpOwogCkBAIC00MDUyLDcgKzQw
NTEsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsK
IAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAg
ICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKLSAgICAgICAgbV9qaXQucG9wKFg4
NlJlZ2lzdGVyczo6ZWJwKTsKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgaWYgKG1fZGVjb2Rl
U3Vycm9nYXRlUGFpcnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgp
KQpAQCAtNDA3MCw2ICs0MDY4LDkgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBZYXJySklUSW5mbyB7CiAjZWxpZiBDUFUoTUlQUykKICAgICAgICAgLy8gRG8gbm90aGluZwog
I2VuZGlmCisKKyAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworCiAjaWYgQ1BVKEFS
TTY0RSkKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1f
aml0LmZhckp1bXAoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZv
aWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRB
ZnRlcikpLCBPcGVyYXRpb25QdHJUYWcpOwpAQCAtNDA4Niw3ICs0MDg3LDcgQEAgY2xhc3MgWWFy
ckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgfQogCiBwdWJsaWM6
Ci0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlh
cnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0
ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJT
aXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxs
SGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29u
c3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcm
IHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxl
TW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAg
LCBtX2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC00MTA1LDcgKzQxMDYsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fYm95ZXJNb29yZURhdGEgPSBzdGF0aWNfY2FzdDxZYXJyQm95ZXJNb3llckRhdGEq
PihtX2NvZGVCbG9jayk7CiAgICAgfQogCi0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxl
ciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29u
c3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcm
IHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxl
TW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0s
IFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3Ms
IFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJT
aXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2pp
dChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhudWxscHRy
KQpAQCAtNDE5MSwxNiArNDE5MiwyOSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChjYWxsRnJhbWVT
aXplSW5CeXRlcykgewogICAgICAgICAgICAgLy8gQ2hlY2sgc3RhY2sgc2l6ZQogICAgICAgICAg
ICAgbV9qaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLWNhbGxGcmFtZVNp
emVJbkJ5dGVzKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBtX3JlZ3Mu
cmVnVDApOwotI2lmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCi0gICAgICAgICAgICAvLyBt
YXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0
YWNrLgotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250
ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNyAqIHNpemVvZih2b2lkKikpLCBtYXRj
aGluZ0NvbnRleHQpOwotI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKQotICAgICAg
ICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5k
IG9uIHRoZSBzdGFjay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1h
dGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyLCA0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAgICAgICAg
IC8vIFRPRE86IENhbiB3ZSBjcmVhdGUgbGFtYmRhIHRoYXQgdGFrZXMgYSBsaXN0IG9mIHRoZSBK
SVRlZCBmdW5jdGlvbnMgYW5kCisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBK
SVRlZCBmdW5jdGlvbnMgaGF2ZSA1IHBhcmFtZXRlcnMgYW5kIHRoYXQgdGhlIDV0aCBhcmd1bWVu
dCBpcyBhIE1hdGNoaW5nQ29udGV4dEhvbGRlcioKKyNkZWZpbmUgZnVuY3Rpb25DaGVja3MoZnVu
YykgXAorICAgIGRvIHsgXAorICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPGZ1
bmM+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7
IFwKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKiwgRnVuY3Rpb25UcmFpdHM8ZnVuYz46OkFyZ3VtZW50VHlwZTw0Pj46OnZhbHVlKTsgXAor
ICAgIH0gd2hpbGUgKGZhbHNlKQorCisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrcyhZYXJyQ29k
ZUJsb2NrOjpZYXJySklUQ29kZTgpOworICAgICAgICAgICAgZnVuY3Rpb25DaGVja3MoWWFyckNv
ZGVCbG9jazo6WWFyckpJVENvZGUxNik7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrcyhZYXJy
Q29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTgpOworICAgICAgICAgICAgZnVuY3Rpb25D
aGVja3MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNik7CisKKyN1bmRlZiBm
dW5jdGlvbkNoZWNrcworCisjaWYgKENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpKSB8fCBDUFUo
QVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250
ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0
PihtX3JlZ3MucmVnVDEpOworICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBt
X3JlZ3MucmVnVDEpOwogI2Vsc2UKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3Rl
cklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5tYXRjaGluZ0NvbnRleHQ7CisgICAgICAgICAg
ICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVC
bG9jazo6WWFyckpJVENvZGU4LCA0PigpOworICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29u
dGV4dCA9PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0KTsKICNlbmRpZgogICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgc3RhY2tPayA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxl
cjo6QmVsb3dPckVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtYXRjaGluZ0NvbnRleHQs
IE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6b2Zmc2V0T2ZTdGFja0xpbWl0KCkpLCBtX3JlZ3MucmVn
VDApOwogCkBAIC00NjE4LDcgKzQ2MzIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIE1hY3JvQXNzZW1ibGVyJiBtX2ppdDsKKyAgICBDQ2FsbEhlbHBlcnMmIG1faml0OwogICAg
IGNvbnN0IFZNKiBtX3ZtOwogICAgIFlhcnJDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogICAgIFlh
cnJCb3llck1veWVyRGF0YSogbV9ib3llck1vb3JlRGF0YTsKQEAgLTQ3MDYsNyArNDcyMCw3IEBA
IHN0YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUp
CiAKIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJu
U3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxv
Y2ssIEpJVENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAg
ICBDQ2FsbEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2RlID09IEpJVENvbXBpbGVNb2Rl
OjpNYXRjaE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5z
KTsKIApAQCAtNDcyNyw3ICs0NzQxLDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBw
YXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9y
ICJObyBzdXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMg
Q1BVIC8gT1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRU
ZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0
cmluZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNp
emUgY2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3Jl
RGF0YSwgTWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJz
KQordm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRo
cmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8
WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJy
Qm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJ
VFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNv
ZGU7CiAgICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywg
ZXJyb3JDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJK
SVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4
MWZlNTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi4yYmMzNzM5NTY0MTBkYmM0Yzk1ZDdk
ZTJmY2Y4ZTk2YzM2NWQzZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBA
IC00Myw5ICs0MywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgVk07CitjbGFzcyBD
Q2FsbEhlbHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKIGNsYXNzIE1hY3JvQXNzZW1ibGVy
OworY2xhc3MgVk07CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApAQCAtMjcxLDEyICsyNzIsMTMgQEAg
Y2xhc3MgWWFyckNvZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95ZXJNb3llckRhdGEgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2Rl
QmxvY2spOwogCi0gICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgq
KShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxl
bmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0
KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlw
ZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3Rl
ciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29u
dGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQ
YXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQs
IFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNo
aW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYg
PSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVy
IHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
JiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLQogcHVibGljOgorCisgICAgdXNpbmcgWWFy
ckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVD
UFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNo
aW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcg
WWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0
LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBN
YXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVz
aW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3Qg
TENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZv
aWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwor
ICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCop
KGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVu
Z3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJf
Q0FMTDsKKwogICAgIFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIHNldEZh
bGxCYWNrV2l0aEZhaWx1cmVSZWFzb24oSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7
IG1fZmFpbHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFzb247IH0KQEAgLTMyNiw3ICszMjgsNyBAQCBw
dWJsaWM6CiAgICAgSW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuIG1f
bWF0Y2hPbmx5OFN0YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdldDE2Qml0SW5saW5lU3RhdHMo
KSB7IHJldHVybiAgbV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVj
dXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
aW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAg
IE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRj
aGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGUoKSk7CiAjaWYg
Q1BVKEFSTTY0RSkKQEAgLTMzNiw3ICszMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBN
YXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTgsIFlhcnI4Qml0UHRyVGFn
PihtX3JlZjguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3Ro
LCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4
ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
LCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisg
ICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0
LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1h
dGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGUoKSk7CiAj
aWYgQ1BVKEFSTTY0RSkKQEAgLTM0Niw3ICszNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTE2LCBZYXJyMTZCaXRQ
dHJUYWc+KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwg
bGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVz
dWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQg
bGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRj
aFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2ln
bmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAg
ewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0
RSkKQEAgLTM1Niw3ICszNTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3Vs
dCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4
Qml0UHRyVGFnPihtX21hdGNoT25seTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0
LCBzdGFydCwgbGVuZ3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAg
ICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQp
CisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250
ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNp
ZiBDUFUoQVJNNjRFKQpAQCAtNDM5LDcgKzQ0MSw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0
dGVybiYsIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUsIFZNKiwgWWFyckNvZGVCbG9j
CiAKIGNsYXNzIFlhcnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0
KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFy
U2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlh
cnJKSVRSZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sq
LCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3Qg
Vk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMmLCBZYXJySklUUmVnaXN0ZXJz
Jik7CiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRl
eCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcyNWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3
ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcs
MTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2Rl
QmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29udGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9I
RUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0gICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwg
WWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1hdGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250
ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNYXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tM
aW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRj
aEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRl
eHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJl
Z0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKK2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6
Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVm
ZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0p
CiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZyb20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5s
aW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwg
WWFyckNvZGVCbG9jayogeWFyckMKICAgICB9CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BB
UkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAoeWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2Nr
LT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRl
eHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWly
ZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1
ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRleHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxvY2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0
dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlmCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448681</attachid>
            <date>2022-01-08 13:41:35 -0800</date>
            <delta_ts>2022-01-08 15:42:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220108214133.patch</filename>
            <type>text/plain</type>
            <size>22689</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4xNGE5MTY3NmM3ZGM3ZjQ3
MDJkMmI1MGJjOWE0NmFlOTA2NzUxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suIFdlIG5vdyB1
c2UgY2FsY3VsYXRlUG9rZU9mZnNldCB0byBjYWxjdWxhdGUgdGhlCisgICAgICAgIG9mZnNldCBv
ZiB0aGUgNXRoIGFyZ3VtZW50IGFuZCBrZWVwIHRyYWNrIG9mIGFueSBwdXNoIGludG8gdGhlIHN0
YWNrCisgICAgICAgIHNvIHdlIGNhbiBmaWd1cmUgb3V0IHRoZSBvZmZzZXQgb2YgZXZlcnkgcGxh
dGZvcm0uCisKKyAgICAgICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMg
dG8gdGhlIHN0YWNrIGJlZm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAg
ICAgICBwdHIsIGhvd2V2ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVk
IHRvIGdldCB0aGUKKyAgICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIu
CisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElu
bGluZSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQ
cm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJp
dmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQw
YjM1ODQzYzJjZGU5NWIwLi41MTZjNmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVS
ZWdFeHBUZXN0SW5saW5lKE5vZGUqIG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChu
b2RlKTsKKyAgICBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4
MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li5jMzBmZDFiNjFlYzg3NzAzZGEyMWUwM2M3ZDVjNzAyMmY5
MWE2MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTk5
Miw2ICs5OTIsNTkgQEAgcHVibGljOgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRB
cmd1bWVudEpTUjxPcGVyYXRpb25UeXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0K
KworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rpb24sIHVuc2lnbmVkIEFy
Z051bT4KKyAgICBjb25zdGV4cHIgR1BSUmVnIGxvYWRGcm9tU3RhY2soR1BSUmVnIHNjcmF0Y2hS
ZWcpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaFJlZyAhPSBHUFJSZWc6OkludmFsaWRH
UFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBhcmd1bWVudCIpOworICAgICAg
ICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTLCAi
U2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUlgiKTsKKworI2lmIENQVShBUk1fVEhV
TUIyKQorICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9B
UkdVTUVOVF9SRUdJU1RFUlMgKyAyOworI2Vsc2UKKyAgICAgICAgY29uc3RleHByIGludCBvZmZz
ZXQgPSBBcmdOdW0gLSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOworI2VuZGlmCisgICAg
ICAgIGxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1l
UG9pbnRlclJlZ2lzdGVyLCBvZmZzZXQgKiBzaXplb2Yodm9pZCopKSwgc2NyYXRjaFJlZyk7Cisg
ICAgICAgIHJldHVybiBzY3JhdGNoUmVnOworICAgIH0KKworcHVibGljOgorICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBGdW5jdGlvbiwgdW5zaWduZWQgQXJnTnVtPgorICAgIGNvbnN0ZXhwciBHUFJS
ZWcgZ2V0QXJndW1lbnRHUFIoR1BSUmVnIHNjcmF0Y2hSZWcgPSBHUFJSZWc6OkludmFsaWRHUFJS
ZWcpCisgICAgeworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA8PSAyNTUsICJDKysgc3Rh
bmRhcmQgZm9yYmlzIGZ1bmN0aW9ucyB3aXRoIG1vcmUgdGhhbiAyNTYgYXJndW1lbnRzIik7Cisg
ICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8RnVuY3Rpb24+OjpjQ2FsbEFyaXR5
KCkgPiBBcmdOdW0sICJGdW5jdGlvbiBkb2VzIG5vdCBoYXZlIGVub3VnaCBhcmd1bWVudHMiKTsK
KworICAgICAgICBpZiBjb25zdGV4cHIgKEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTKQorICAgICAgICAgICAgcmV0dXJuIGxvYWRGcm9tU3RhY2s8RnVuY3Rpb24sIEFyZ051
bT4oc2NyYXRjaFJlZyk7CisKKyAgICAgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2hSZWcpOyAvLyBP
dGhlcndpc2Ugd2FybmluZyBkdWUgdG8gY29uc3RleHByCisgICAgICAgIHN3aXRjaCAoQXJnTnVt
KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVu
dEdQUjA7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1
bWVudEdQUjE7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjph
cmd1bWVudEdQUjI7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZv
Ojphcmd1bWVudEdQUjM7CisjaWYgQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpCisgICAgICAg
IGNhc2UgNDoKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjQ7CisgICAg
ICAgIGNhc2UgNToKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjU7Cisj
ZW5kaWYKKyNpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQorICAgICAgICBjYXNlIDY6Cisg
ICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI2OworICAgICAgICBjYXNlIDc6
CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI3OworI2VuZGlmCisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRF9XSVRI
X01FU1NBR0UoIk5vdCBlbm91Z2ggYXJndW1lbnRHUFJzIik7CisgICAgICAgIH0KKyAgICB9CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHAuY3BwCmluZGV4IDFiOGNkNDIwZjEwNzA5ZDFiZWIxYTQ1MGQxMzA0MGYzNzczMjY4NjMuLjQ0
OTA5ZDE2OTRiYzU1Yzc1YjI3N2NjNTE2MDAwMDI4NGI0YWQzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtNDQ4LDEwICs0NDgsMTAgQEAgdm9pZCBSZWdF
eHA6Om1hdGNoQ29tcGFyZVdpdGhJbnRlcnByZXRlcihjb25zdCBTdHJpbmcmIHMsIGludCBzdGFy
dE9mZnNldCwgaW50KgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSklUQ29kZTog
ewogICAgICAgICAgICAgWWFycjo6WWFyckNvZGVCbG9jayYgY29kZUJsb2NrID0gKm1fcmVnRXhw
SklUQ29kZS5nZXQoKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRy
LCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNv
ZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50Zihq
aXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0g
ICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hB
ZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRy
U2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5n
ZXQxNkJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hP
bmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAg
ICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIg
UFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1h
dGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwg
aml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50Zihq
aXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaEFkZHIoKSkpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCmluZGV4IDAyMmNiYmE1NTU3ZTcxNzhkMTRk
NGI2NjFlZGNkNjg1YTRmNzg3ZTIuLjBhMDkxNzhlNmY5YTk0MzkxYTBkZjFkMDFjMzllNWNlY2Fk
ZmJhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVz
LmgKQEAgLTEzMiwxMiArMTMyLDEyIEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJ
bmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgaWYg
KG1fc3RhdGUgPT0gSklUQ29kZSkgewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9y
ZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciBy
ZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7
CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2
bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0
Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRP
ZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFj
dGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgJnJlZ0V4cENv
bnRleHQpLnN0YXJ0OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9
IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwg
cy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYo
KSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgJnJlZ0V4cENvbnRleHQp
LnN0YXJ0OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJlc3VsdCA9PSBzdGF0aWNfY2FzdDxp
bnQ+KFlhcnI6OkpTUmVnRXhwUmVzdWx0OjpKSVRDb2RlRmFpbHVyZSkpIHsKQEAgLTE0Niw3ICsx
NDYsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2Jq
ZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgICAgICAgICAgaWYgKG1fc3RhdGUg
PT0gUGFyc2VFcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigpOwogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciBy
ZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAg
ICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2Vz
UGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgp
LCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3Rv
cikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjIsNyArMTYyLDcgQEAgQUxXQVlT
X0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xv
YmFsT2JqZWN0LCBWTSYgdm0KICAgICB9IGVsc2UKICNlbmRpZgogICAgIHsKLSAgICAgICAgWWFy
cjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMs
IG1hdGNoRnJvbSk7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBD
b250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBt
YXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRl
Y29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihv
ZmZzZXRWZWN0b3IpKTsKICAgICB9CiAKQEAgLTI2NiwxMiArMjY2LDEyIEBAIEFMV0FZU19JTkxJ
TkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0CiAgICAgICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKICAgICAgICAgewogICAg
ICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRj
aGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgp
LCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0
QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgp
KQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNo
YXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAg
ICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0
ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhl
Y3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29u
dGV4dCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRl
KHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29udGV4
dCk7CiAgICAgICAgIH0KIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKQEAgLTI5NSw3ICsy
OTUsNyBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNH
bG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAgIG5vblJldHVybmVkT3ZlY3Rvci5n
cm93KG9mZnNldFZlY3RvclNpemUpOwogICAgIG9mZnNldFZlY3RvciA9IG5vblJldHVybmVkT3Zl
Y3Rvci5kYXRhKCk7CiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFy
cjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJu
Q29udGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3Vs
dCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNl
dCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KICNp
ZiBSRUdFWFBfRlVOQ19URVNUX0RBVEFfR0VOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJK
SVQuY3BwCmluZGV4IGE0OThlZjc4MDczMTgyNGRjZjJlZjg3OTg1YmIwOWIyOTMyMGNlYWUuLjU3
NTViM2JlYjU2OTA5MTQ4OGM4YTM5OTZlYWUzOTBlNGJmZmM4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiWWFyckpJVC5oIgogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAj
aW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJW
TS5oIgpAQCAtMzk2MSwxMCArMzk2Miw4IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBw
dWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgdm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7Cisg
ICAgICAgIG1faml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAjaWYgQ1BVKFg4Nl82NCkKLSAg
ICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7Ci0gICAgICAgIG1faml0Lm1vdmUo
TWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVicCk7
Ci0KICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAg
ICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYngpOwogCkBAIC00MDUyLDcgKzQwNTEs
NiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAog
ICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAg
ICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKLSAgICAgICAgbV9qaXQucG9wKFg4NlJl
Z2lzdGVyczo6ZWJwKTsKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vy
cm9nYXRlUGFpcnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQpA
QCAtNDA3MCw2ICs0MDY4LDkgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZ
YXJySklUSW5mbyB7CiAjZWxpZiBDUFUoTUlQUykKICAgICAgICAgLy8gRG8gbm90aGluZwogI2Vu
ZGlmCisKKyAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworCiAjaWYgQ1BVKEFSTTY0
RSkKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1faml0
LmZhckp1bXAoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQq
LCBDRnVuY3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRBZnRl
cikpLCBPcGVyYXRpb25QdHJUYWcpOwpAQCAtNDA4Niw3ICs0MDg3LDcgQEAgY2xhc3MgWWFyckdl
bmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgfQogCiBwdWJsaWM6Ci0g
ICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJD
b2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJu
JiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXpl
LCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVs
cGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3Qg
WWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBh
dHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9k
ZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBt
X2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC00MTA1LDcgKzQxMDYsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fYm95ZXJNb29yZURhdGEgPSBzdGF0aWNfY2FzdDxZYXJyQm95ZXJNb3llckRhdGEqPiht
X2NvZGVCbG9jayk7CiAgICAgfQogCi0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYg
aml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3Qg
WWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBh
dHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9k
ZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlh
cnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXpl
IGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChq
aXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhudWxscHRyKQpA
QCAtNDE5MSwxNiArNDE5MiwyOSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChjYWxsRnJhbWVTaXpl
SW5CeXRlcykgewogICAgICAgICAgICAgLy8gQ2hlY2sgc3RhY2sgc2l6ZQogICAgICAgICAgICAg
bV9qaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLWNhbGxGcmFtZVNpemVJ
bkJ5dGVzKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBtX3JlZ3MucmVn
VDApOwotI2lmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCi0gICAgICAgICAgICAvLyBtYXRj
aGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0YWNr
LgotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0
ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNyAqIHNpemVvZih2b2lkKikpLCBtYXRjaGlu
Z0NvbnRleHQpOwotI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKQotICAgICAgICAg
ICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9u
IHRoZSBzdGFjay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNo
aW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCA0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAgICAgICAgIC8v
IFRPRE86IENhbiB3ZSBjcmVhdGUgbGFtYmRhIHRoYXQgdGFrZXMgYSBsaXN0IG9mIHRoZSBKSVRl
ZCBmdW5jdGlvbnMgYW5kCisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBKSVRl
ZCBmdW5jdGlvbnMgaGF2ZSA1IHBhcmFtZXRlcnMgYW5kIHRoYXQgdGhlIDV0aCBhcmd1bWVudCBp
cyBhIE1hdGNoaW5nQ29udGV4dEhvbGRlcioKKyNkZWZpbmUgRlVOQ1RJT05DSEVDS1MoZnVuYykg
XAorICAgIGRvIHsgXAorICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPGZ1bmM+
OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7IFwK
KyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8TWF0Y2hpbmdDb250ZXh0SG9sZGVy
KiwgRnVuY3Rpb25UcmFpdHM8ZnVuYz46OkFyZ3VtZW50VHlwZTw0Pj46OnZhbHVlKTsgXAorICAg
IH0gd2hpbGUgKGZhbHNlKQorCisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJs
b2NrOjpZYXJySklUQ29kZTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNvZGVC
bG9jazo6WWFyckpJVENvZGUxNik7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29k
ZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVD
S1MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNik7CisKKyN1bmRlZiBGVU5D
VElPTkNIRUNLUworCisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA8IDV1CisgICAg
ICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFy
ckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PihtX3JlZ3MucmVnVDEpOworICAgICAgICAgICAg
QVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MucmVnVDEpOwogI2Vsc2UKLSAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5t
YXRjaGluZ0NvbnRleHQ7CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9q
aXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PigpOworICAg
ICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0
KTsKICNlbmRpZgogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3RhY2tPayA9IG1f
aml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3dPckVxdWFsLCBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhtYXRjaGluZ0NvbnRleHQsIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6b2Zmc2V0
T2ZTdGFja0xpbWl0KCkpLCBtX3JlZ3MucmVnVDApOwogCkBAIC00NjE4LDcgKzQ2MzIsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNzZW1ibGVyJiBtX2ppdDsKKyAg
ICBDQ2FsbEhlbHBlcnMmIG1faml0OwogICAgIGNvbnN0IFZNKiBtX3ZtOwogICAgIFlhcnJDb2Rl
QmxvY2sqIG1fY29kZUJsb2NrOwogICAgIFlhcnJCb3llck1veWVyRGF0YSogbV9ib3llck1vb3Jl
RGF0YTsKQEAgLTQ3MDYsNyArNDcyMCw3IEBAIHN0YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVy
ZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCiAKIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVy
biYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0q
IHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ssIEpJVENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBDQ2FsbEhlbHBlcnMgbWFzbTsKIAogICAgIEFT
U0VSVChtb2RlID09IEpJVENvbXBpbGVNb2RlOjpNYXRjaE9ubHkgfHwgbW9kZSA9PSBKSVRDb21w
aWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsKIApAQCAtNDcyNyw3ICs0NzQxLDcgQEAgdm9p
ZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcs
IENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9yICJObyBzdXBwb3J0IGZvciBpbmxpbmVkIEpJVCdp
bmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BVIC8gT1MgY29tYmluYXRpb24uIgogI2VuZGlm
CiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25U
aHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0
PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFy
ckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgTWFjcm9Bc3NlbWJsZXImIGppdCwgWWFy
ckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQordm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3Qo
U3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5n
JiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBj
aGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRh
LCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQogewog
ICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7CiAgICAgWWFycjo6WWFyclBhdHRlcm4gcGF0
dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJyb3JDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4MWZlNTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEw
NzMzLi4yYmMzNzM5NTY0MTBkYmM0Yzk1ZDdkZTJmY2Y4ZTk2YzM2NWQzZmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC00Myw5ICs0MywxMCBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotY2xhc3MgVk07CitjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxl
UG9vbDsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyOworY2xhc3MgVk07CiAKIG5hbWVzcGFjZSBZYXJy
IHsKIApAQCAtMjcxLDEyICsyNzIsMTMgQEAgY2xhc3MgWWFyckNvZGVCbG9jayA6IHB1YmxpYyBZ
YXJyQm95ZXJNb3llckRhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2RlQmxvY2spOwogCi0gICAgdXNpbmcgWWFyckpJVENv
ZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdp
c3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJ
VENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlh
cnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIq
IGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBN
YXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVz
aW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0
IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2
b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsK
LQogcHVibGljOgorCisgICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBl
ICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVy
IGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250
ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJu
VHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdp
c3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5n
Q29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNs
b3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3Rh
cnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1h
dGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5
MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lz
dGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKwogICAgIFlhcnJDb2RlQmxvY2soKSA9
IGRlZmF1bHQ7CiAKICAgICB2b2lkIHNldEZhbGxCYWNrV2l0aEZhaWx1cmVSZWFzb24oSklURmFp
bHVyZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7IG1fZmFpbHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFz
b247IH0KQEAgLTMyNiw3ICszMjgsNyBAQCBwdWJsaWM6CiAgICAgSW5saW5lU3RhdHMmIGdldDhC
aXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hPbmx5OFN0YXRzOyB9CiAgICAgSW5saW5l
U3RhdHMmIGdldDE2Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiAgbV9tYXRjaE9ubHkxNlN0YXRz
OyB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWdu
ZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhv
bGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENo
YXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBB
U1NFUlQoaGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTMzNiw3ICszMzgsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZ
YXJySklUQ29kZTgsIFlhcnI4Qml0UHRyVGFnPihtX3JlZjguY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwog
ICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBV
Q2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAg
IEFTU0VSVChoYXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM0Niw3ICszNDgs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0
cjxZYXJySklUQ29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4
dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIm
IG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBp
bnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGVN
YXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM1Niw3ICszNTgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29k
ZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPihtX21hdGNoT25seTguY29kZSgp
LmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBudWxscHRyLCBtYXRj
aGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVD
aGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25z
dCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5n
Q29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhh
czE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtNDM5LDcgKzQ0MSw3
IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYsIFN0cmluZyYgcGF0dGVyblN0cmluZywg
Q2hhclNpemUsIFZNKiwgWWFyckNvZGVCbG9jCiAKIGNsYXNzIFlhcnJKSVRSZWdpc3RlcnM7CiAK
LXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBP
cHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3ll
ckRhdGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29t
cGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFy
cjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBDQ2Fs
bEhlbHBlcnMmLCBZYXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcyNWRk
OWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0
SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29u
dGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1lc3Bh
Y2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29udGV4
dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0gICAg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1hdGNo
RnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwgTWF0
Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMgcHRy
ZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNYXRj
aGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAgcHJp
dmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2Nr
KiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKK2lu
bGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0s
IGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9t
IG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZyb20p
CiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0
Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckMKICAgICB9CiAK
ICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAoeWFy
ckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSkg
eworICAgIGlmICh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0ZXJu
Q29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsK
ICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRleHRC
dWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxvY2sp
OworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlmCiB9
CiAK
</data>
<flag name="commit-queue"
          id="474611"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448685</attachid>
            <date>2022-01-08 15:41:37 -0800</date>
            <delta_ts>2022-01-10 10:21:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220108194135.patch</filename>
            <type>text/plain</type>
            <size>29403</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li4xNGE5MTY3NmM3ZGM3ZjQ3
MDJkMmI1MGJjOWE0NmFlOTA2NzUxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIHdoZW4gYnVp
bGRpbmcgb24gQVJNdjcgdXNpbmcgZ2NjIDEwLjIuMQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIHJlZ2V4cCBj
cmFzaGVzIG9uIEFSTXY3IGR1ZSB0byBhbiBpbmNvcnJlY3QKKyAgICAgICAgb2Zmc2V0IHRvIHJl
dHJpZXZlIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2s6IGluIEFSTXY3LCBvbmx5Cisg
ICAgICAgIDQgYXJndW1lbnRzIGFyZSBwYXNzZWQgdmlhIHJlZ2lzdGVycyByMC1yMyBhbmQgYW55
IG90aGVyIGFyZ3VtZW50IGlzCisgICAgICAgIHBsYWNlZCBvbiB0aGUgc3RhY2suIFdlIG5vdyB1
c2UgY2FsY3VsYXRlUG9rZU9mZnNldCB0byBjYWxjdWxhdGUgdGhlCisgICAgICAgIG9mZnNldCBv
ZiB0aGUgNXRoIGFyZ3VtZW50IGFuZCBrZWVwIHRyYWNrIG9mIGFueSBwdXNoIGludG8gdGhlIHN0
YWNrCisgICAgICAgIHNvIHdlIGNhbiBmaWd1cmUgb3V0IHRoZSBvZmZzZXQgb2YgZXZlcnkgcGxh
dGZvcm0uCisKKyAgICAgICAgVGhlIEpJVCByZWdleHAgY29kZSBwdXNoZXMgNSByZWdpc3RlcnMg
dG8gdGhlIHN0YWNrIGJlZm9yZSB0cnlpbmcgdG8KKyAgICAgICAgZ2V0IHRoZSA1dGggYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2ssIHdoaWNoIGlzIG5vdyBpbiBvZmZzZXQgNSAqIHNpemVvZgorICAg
ICAgICBwdHIsIGhvd2V2ZXIsIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSBjb2RlIHRyaWVk
IHRvIGdldCB0aGUKKyAgICAgICAgYXJndW1lbnQgZnJvbSBvZmZzZXQgNCAqIHNpemVvZiBwdHIu
CisKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElu
bGluZSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJN
YXRjaGluZ0NvbnRleHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2Ug
U3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQ
cm9wZXJ0eSAvIGVtaXRHZXRQcm9wZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJp
dmF0ZSBuYW1lcyBpbiBlZGdlIGNhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQw
YjM1ODQzYzJjZGU5NWIwLi41MTZjNmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTI4ODgsNyArMjg4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVS
ZWdFeHBUZXN0SW5saW5lKE5vZGUqIG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChu
b2RlKTsKKyAgICBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4
MTE2MzRlMjNjMjE3YmRhMWNjZjY0Li5jM2RkY2JiNzczNDNlZTBiZWY0ZjViOWI4Yjk3MGY3Zjhm
NWIxY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTk5
Miw2ICs5OTIsNjIgQEAgcHVibGljOgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRB
cmd1bWVudEpTUjxPcGVyYXRpb25UeXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0K
KworcHJpdmF0ZToKKworICAgIC8vIEluIGNhc2Ugd2UgYXJlIHRyeWluZyB0byBnZXQgdGhlIGFy
Z3VtZW50IGZyb20gYSBmdW5jdGlvbiBidXQgdGhlcmUgaXNuJ3QgZW5vdWdoIHJlZ2lzdGVycywg
dGhpcworICAgIC8vIGZ1bmN0aW9uIHRyaWVzIHRvIGxvYWQgaXQgZnJvbSB0aGUgc3RhY2sgdXNp
bmcgdGhlIGZwLiBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB0aGUgZnJhbWUgcG9pbnRlcgor
ICAgIC8vIG11c3QgYmUgc2V0IGluIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZQorICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBGdW5jdGlvbiwgdW5zaWduZWQgQXJnTnVtPgorICAgIGNvbnN0ZXhwciBHUFJS
ZWcgbG9hZEZyb21TdGFjayhHUFJSZWcgc2NyYXRjaEdQUikKKyAgICB7CisgICAgICAgIEFTU0VS
VChzY3JhdGNoR1BSICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZywgIlZhbGlkIEdQUiBuZWVkZWQg
dG8gbG9hZCB0aGlzIGFyZ3VtZW50Iik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtID49
IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMsICJTaG91bGQgcmV0dXJuIEdQUkluZm86OmFy
Z3VtZW50R1BSWCIpOworCisgICAgICAgIGNvbnN0ZXhwciBpbnQgb2Zmc2V0ID0gQXJnTnVtIC0g
TlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKKyAgICAgICAgbG9hZFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIG9mZnNl
dCAqIHNpemVvZih2b2lkKikpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgcmV0dXJuIHNjcmF0Y2hH
UFI7CisgICAgfQorCitwdWJsaWM6CisKKyAgICAvLyBHaXZlbiBhIGZ1bmN0aW9uIGFuZCBhbiBh
cmd1bWVudCBudW1iZXIsIGVpdGhlciB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFyZ3VtZW50
R1BSIGhvbGRpbmcgdGhlIGFyZ3VtZW50CisgICAgLy8gb3IgaXQgdHJpZXMgdG8gbG9hZCB0aGUg
YXJndW1lbnQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNjcmF0Y2hHUFIgcGFzc2VkIGFzIGFy
Z3VtZW50LgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdGlvbiwgdW5zaWduZWQgQXJnTnVt
PgorICAgIGNvbnN0ZXhwciBHUFJSZWcgZ2V0QXJndW1lbnRHUFIoR1BSUmVnIHNjcmF0Y2hHUFIg
PSBHUFJSZWc6OkludmFsaWRHUFJSZWcpCisgICAgeworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFy
Z051bSA8PSAyNTUsICJDKysgc3RhbmRhcmQgZm9yYmlzIGZ1bmN0aW9ucyB3aXRoIG1vcmUgdGhh
biAyNTYgYXJndW1lbnRzIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8
RnVuY3Rpb24+OjpjQ2FsbEFyaXR5KCkgPiBBcmdOdW0sICJGdW5jdGlvbiBkb2VzIG5vdCBoYXZl
IGVub3VnaCBhcmd1bWVudHMiKTsKKworICAgICAgICBpZiBjb25zdGV4cHIgKEFyZ051bSA+PSBO
VU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTKQorICAgICAgICAgICAgcmV0dXJuIGxvYWRGcm9t
U3RhY2s8RnVuY3Rpb24sIEFyZ051bT4oc2NyYXRjaEdQUik7CisKKyAgICAgICAgVU5VU0VEX1BB
UkFNKHNjcmF0Y2hHUFIpOyAvLyBPdGhlcndpc2Ugd2FybmluZyBkdWUgdG8gY29uc3RleHByCisg
ICAgICAgIHN3aXRjaCAoQXJnTnVtKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJl
dHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjA7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAg
IHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjI7CisgICAgICAgIGNhc2UgMzoKKyAgICAg
ICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjM7CisjaWYgQ1BVKFg4Nl82NCkgJiYg
IU9TKFdJTkRPV1MpCisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZv
Ojphcmd1bWVudEdQUjQ7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIHJldHVybiBHUFJJ
bmZvOjphcmd1bWVudEdQUjU7CisjZW5kaWYKKyNpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0
KQorICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRH
UFI2OworICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1l
bnRHUFI3OworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIk5vdCBlbm91Z2ggYXJndW1lbnRHUFJzIik7
CisgICAgICAgIH0KKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDFiOGNkNDIwZjEwNzA5ZDFiZWIxYTQ1
MGQxMzA0MGYzNzczMjY4NjMuLjQ0OTA5ZDE2OTRiYzU1Yzc1YjI3N2NjNTE2MDAwMDI4NGI0YWQz
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtNDQ4LDEw
ICs0NDgsMTAgQEAgdm9pZCBSZWdFeHA6Om1hdGNoQ29tcGFyZVdpdGhJbnRlcnByZXRlcihjb25z
dCBTdHJpbmcmIHMsIGludCBzdGFydE9mZnNldCwgaW50KgogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgSklUQ29kZTogewogICAgICAgICAgICAgWWFycjo6WWFyckNvZGVCbG9jayYg
Y29kZUJsb2NrID0gKm1fcmVnRXhwSklUQ29kZS5nZXQoKTsKLSAgICAgICAgICAgIHNucHJpbnRm
KGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0g
ICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAi
MHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0
TWF0Y2hPbmx5QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRy
LCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNv
ZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2
Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBz
bnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQ
VFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25s
eUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBq
aXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmlu
dGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7Cisg
ICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZC
aXRNYXRjaEFkZHIoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCmluZGV4
IDAyMmNiYmE1NTU3ZTcxNzhkMTRkNGI2NjFlZGNkNjg1YTRmNzg3ZTIuLjBhMDkxNzhlNmY5YTk0
MzkxYTBkZjFkMDFjMzllNWNlY2FkZmJhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBJbmxpbmVzLmgKQEAgLTEzMiwxMiArMTMyLDEyIEBAIEFMV0FZU19JTkxJ
TkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9i
amVjdCwgVk0mIHZtCiAgICAgaWYgKG1fc3RhdGUgPT0gSklUQ29kZSkgewogICAgICAgICB7CiAg
ICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0
KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRI
b2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRl
eHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0
KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMu
Y2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVn
RXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRD
b2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9m
ZnNldFZlY3RvciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3Rl
cnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250
ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZl
Y3RvciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJl
c3VsdCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFlhcnI6OkpTUmVnRXhwUmVzdWx0OjpKSVRDb2RlRmFp
bHVyZSkpIHsKQEAgLTE0Niw3ICsxNDYsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1h
dGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAg
ICAgICAgICAgaWYgKG1fc3RhdGUgPT0gUGFyc2VFcnJvcikKICAgICAgICAgICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigpOwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFlhcnI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRj
aEZyb20pOworICAgICAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdF
eHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlz
LCBtYXRjaEZyb20pOwogICAgICAgICAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldCht
X3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1
bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0x
NjIsNyArMTYyLDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0ds
b2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICB9IGVsc2UKICNlbmRp
ZgogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRl
eHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5n
Q29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZm
ZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjpp
bnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJw
cmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAKQEAgLTI2NiwxMiAr
MjY2LDEyIEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShK
U0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0CiAgICAgICAgIE1hdGNoUmVzdWx0IHJl
c3VsdDsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0g
ICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwg
bV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFy
cjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29k
ZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAg
ICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhw
SklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgp
LCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENv
ZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJl
Z0V4cENvbnRleHQpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9
IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwg
cy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9y
ZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxl
bmd0aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgIH0KIAogI2lmIEVOQUJMRShSRUdFWFBf
VFJBQ0lORykKQEAgLTI5NSw3ICsyOTUsNyBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJl
Z0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAg
IG5vblJldHVybmVkT3ZlY3Rvci5ncm93KG9mZnNldFZlY3RvclNpemUpOwogICAgIG9mZnNldFZl
Y3RvciA9IG5vblJldHVybmVkT3ZlY3Rvci5kYXRhKCk7CiAgICAgewotICAgICAgICBZYXJyOjpN
YXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0
Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRl
eHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNo
RnJvbSk7CiAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2Rl
LmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNl
dFZlY3RvcikpOwogICAgIH0KICNpZiBSRUdFWFBfRlVOQ19URVNUX0RBVEFfR0VOCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCmluZGV4IGE0OThlZjc4MDczMTgyNGRjZjJlZjg3
OTg1YmIwOWIyOTMyMGNlYWUuLmY1ZDE1ZmYxZGY0YTQzY2RiOWMyYWU5NjgxYjZiYzg5YzY0ZmRk
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWWFyckpJVC5oIgogCisjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk9w
dGlvbnMuaCIKICNpbmNsdWRlICJWTS5oIgpAQCAtMzk2MSwxMCArMzk2Miw4IEBAIGNsYXNzIFlh
cnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgdm9pZCBnZW5l
cmF0ZUVudGVyKCkKICAgICB7CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7
CiAjaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7
Ci0gICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBYODZSZWdpc3RlcnM6OmVicCk7Ci0KICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0
aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYngp
OwogCkBAIC00MDUyLDcgKzQwNTEsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVi
bGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxT
dGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKLSAg
ICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKICNlbGlmIENQVShBUk02NCkKICAg
ICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKICAgICAgICAgICAgIGlmICghT3B0
aW9uczo6dXNlSklUQ2FnZSgpKQpAQCAtNDA3MCw2ICs0MDY4LDkgQEAgY2xhc3MgWWFyckdlbmVy
YXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAjZWxpZiBDUFUoTUlQUykKICAgICAg
ICAgLy8gRG8gbm90aGluZwogI2VuZGlmCisKKyAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOworCiAjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUpJVENhZ2Uo
KSkKICAgICAgICAgICAgIG1faml0LmZhckp1bXAoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4o
JnZtRW50cnlUb1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25QdHJUYWcpOwpAQCAtNDA4Niw3ICs0
MDg3LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7
CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0
LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJl
Z3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJp
bmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZ
YXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0
ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRD
b21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwg
bV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC00MTA1LDcgKzQx
MDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYm95ZXJNb29yZURhdGEgPSBzdGF0aWNfY2FzdDxZ
YXJyQm95ZXJNb3llckRhdGEqPihtX2NvZGVCbG9jayk7CiAgICAgfQogCi0gICAgWWFyckdlbmVy
YXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0
YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0
ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRD
b21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3Qg
WWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBh
dHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9k
ZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBt
X2NvZGVCbG9jayhudWxscHRyKQpAQCAtNDE5MSwxNiArNDE5MiwyOCBAQCBwdWJsaWM6CiAgICAg
ICAgIGlmIChjYWxsRnJhbWVTaXplSW5CeXRlcykgewogICAgICAgICAgICAgLy8gQ2hlY2sgc3Rh
Y2sgc2l6ZQogICAgICAgICAgICAgbV9qaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoLWNhbGxGcmFtZVNpemVJbkJ5dGVzKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLCBtX3JlZ3MucmVnVDApOwotI2lmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1Mp
Ci0gICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQg
aXMgZm91bmQgb24gdGhlIHN0YWNrLgotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lz
dGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQu
bG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNyAqIHNp
emVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwotI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8
IENQVShNSVBTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJn
dW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAg
ICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4
dCk7CisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBKSVRlZCBmdW5jdGlvbnMg
aGF2ZSA1IHBhcmFtZXRlcnMgYW5kIHRoYXQgdGhlIDV0aCBhcmd1bWVudCBpcyBhIE1hdGNoaW5n
Q29udGV4dEhvbGRlcioKKyAgICAgICAgICAgIC8vIFRPRE86IENhbiB0aGlzIGJlIGEgbGFtYmE/
CisjZGVmaW5lIEZVTkNUSU9OQ0hFQ0tTKGZ1bmMpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgc3Rh
dGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxmdW5jPjo6Y0NhbGxBcml0eSgpID09IDUsICJZYXJy
SklUQ29kZSB0YWtlcyA1IGFyZ3VtZW50cyIpOyBcCisgICAgICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19zYW1lPE1hdGNoaW5nQ29udGV4dEhvbGRlciosIEZ1bmN0aW9uVHJhaXRzPGZ1bmM+OjpB
cmd1bWVudFR5cGU8ND4+Ojp2YWx1ZSk7IFwKKyAgICB9IHdoaWxlIChmYWxzZSkKKworICAgICAg
ICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4KTsKKyAgICAg
ICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlMTYpOworICAg
ICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9u
bHk4KTsKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2RlQmxvY2s6OllhcnJKSVRD
b2RlTWF0Y2hPbmx5MTYpOworCisjdW5kZWYgRlVOQ1RJT05DSEVDS1MKKworI2lmIE5VTUJFUl9P
Rl9BUkdVTUVOVF9SRUdJU1RFUlMgPCA1dQorICAgICAgICAgICAgR1BSUmVnIG1hdGNoaW5nQ29u
dGV4dCA9IG1faml0LmdldEFyZ3VtZW50R1BSPFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlOCwg
ND4obV9yZWdzLnJlZ1QxKTsKKyAgICAgICAgICAgIEFTU0VSVChtYXRjaGluZ0NvbnRleHQgPT0g
bV9yZWdzLnJlZ1QxKTsKICNlbHNlCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0
ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0OworICAgICAgICAg
ICAgR1BSUmVnIG1hdGNoaW5nQ29udGV4dCA9IG1faml0LmdldEFyZ3VtZW50R1BSPFlhcnJDb2Rl
QmxvY2s6OllhcnJKSVRDb2RlOCwgND4oKTsKKyAgICAgICAgICAgIEFTU0VSVChtYXRjaGluZ0Nv
bnRleHQgPT0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dCk7CiAjZW5kaWYKICAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIHN0YWNrT2sgPSBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJs
ZXI6OkJlbG93T3JFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobWF0Y2hpbmdDb250ZXh0
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Om9mZnNldE9mU3RhY2tMaW1pdCgpKSwgbV9yZWdzLnJl
Z1QwKTsKIApAQCAtNDYxOCw3ICs0NjMxLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBNYWNyb0Fzc2VtYmxlciYgbV9qaXQ7CisgICAgQ0NhbGxIZWxwZXJzJiBtX2ppdDsKICAg
ICBjb25zdCBWTSogbV92bTsKICAgICBZYXJyQ29kZUJsb2NrKiBtX2NvZGVCbG9jazsKICAgICBZ
YXJyQm95ZXJNb3llckRhdGEqIG1fYm95ZXJNb29yZURhdGE7CkBAIC00NzA2LDcgKzQ3MTksNyBA
QCBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUoSklURmFpbHVyZVJlYXNvbiBmYWlsdXJl
KQogCiB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVy
blN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIFZNKiB2bSwgWWFyckNvZGVCbG9jayYgY29kZUJs
b2NrLCBKSVRDb21waWxlTW9kZSBtb2RlKQogewotICAgIE1hY3JvQXNzZW1ibGVyIG1hc207Cisg
ICAgQ0NhbGxIZWxwZXJzIG1hc207CiAKICAgICBBU1NFUlQobW9kZSA9PSBKSVRDb21waWxlTW9k
ZTo6TWF0Y2hPbmx5IHx8IG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJu
cyk7CiAKQEAgLTQ3MjcsNyArNDc0MCw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYg
cGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwKICNlcnJv
ciAiTm8gc3VwcG9ydCBmb3IgaW5saW5lZCBKSVQnaW5nIG9mIFJlZ0V4cC50ZXN0IGZvciB0aGlz
IENQVSAvIE9TIGNvbWJpbmF0aW9uLiIKICNlbmRpZgogCi12b2lkIGppdENvbXBpbGVJbmxpbmVk
VGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBjb25zdCBT
dHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3MsIENoYXJT
aXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95ZXJNb29y
ZURhdGEsIE1hY3JvQXNzZW1ibGVyJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVy
cykKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25U
aHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0
PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFy
ckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgQ0NhbGxIZWxwZXJzJiBqaXQsIFlhcnJK
SVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKIHsKICAgICBZYXJyOjpFcnJvckNvZGUgZXJyb3JD
b2RlOwogICAgIFlhcnI6OllhcnJQYXR0ZXJuIHBhdHRlcm4ocGF0dGVyblN0cmluZywgZmxhZ3Ms
IGVycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKaW5kZXggMjg5ZDZl
ODFmZTUxN2FhZGZiZTQ5OGQxODVlMzA3MjA1ZTZhMDczMy4uMmJjMzczOTU2NDEwZGJjNGM5NWQ3
ZGUyZmNmOGU5NmMzNjVkM2ZlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaApA
QCAtNDMsOSArNDMsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIFZNOworY2xhc3Mg
Q0NhbGxIZWxwZXJzOwogY2xhc3MgRXhlY3V0YWJsZVBvb2w7CiBjbGFzcyBNYWNyb0Fzc2VtYmxl
cjsKK2NsYXNzIFZNOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKQEAgLTI3MSwxMiArMjcyLDEzIEBA
IGNsYXNzIFlhcnJDb2RlQmxvY2sgOiBwdWJsaWMgWWFyckJveWVyTW95ZXJEYXRhIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShZYXJyQ29k
ZUJsb2NrKTsKIAotICAgIHVzaW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAo
KikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4
dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlMTYgPSBTbG93UGF0aFJldHVyblR5
cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0
ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0Nv
bnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTggPSBTbG93
UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0
LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRj
aGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTE2
ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3Rl
ciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0KIHB1YmxpYzoKKworICAgIHVzaW5nIFlh
cnJKSVRDb2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBV
Q1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRj
aGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5n
IFlhcnJKSVRDb2RlMTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1
dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1
c2luZyBZYXJySklUQ29kZU1hdGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0
IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2
b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsK
KyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgq
KShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxl
bmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJS
X0NBTEw7CisKICAgICBZYXJyQ29kZUJsb2NrKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBzZXRG
YWxsQmFja1dpdGhGYWlsdXJlUmVhc29uKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZVJlYXNvbikg
eyBtX2ZhaWx1cmVSZWFzb24gPSBmYWlsdXJlUmVhc29uOyB9CkBAIC0zMjYsNyArMzI4LDcgQEAg
cHVibGljOgogICAgIElubGluZVN0YXRzJiBnZXQ4Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiBt
X21hdGNoT25seThTdGF0czsgfQogICAgIElubGluZVN0YXRzJiBnZXQxNkJpdElubGluZVN0YXRz
KCkgeyByZXR1cm4gIG1fbWF0Y2hPbmx5MTZTdGF0czsgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhl
Y3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgs
IGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAg
ICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0
Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczhCaXRDb2RlKCkpOwogI2lm
IENQVShBUk02NEUpCkBAIC0zMzYsNyArMzM4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
TWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGU4LCBZYXJyOEJpdFB0clRh
Zz4obV9yZWY4LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0
aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBl
eGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0
aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQor
ICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFy
dCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBt
YXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzMTZCaXRDb2RlKCkpOwog
I2lmIENQVShBUk02NEUpCkBAIC0zNDYsNyArMzQ4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGUxNiwgWWFycjE2Qml0
UHRyVGFnPihtX3JlZjE2LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQs
IGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJl
c3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0
Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNp
Z25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAg
IHsKICAgICAgICAgQVNTRVJUKGhhczhCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02
NEUpCkBAIC0zNTYsNyArMzU4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1
bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGVNYXRjaE9ubHk4LCBZYXJyTWF0Y2hPbmx5
OEJpdFB0clRhZz4obV9tYXRjaE9ubHk4LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1
dCwgc3RhcnQsIGxlbmd0aCwgbnVsbHB0ciwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0g
ICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0
LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0
KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29u
dGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGVNYXRjaE9ubHkoKSk7CiAj
aWYgQ1BVKEFSTTY0RSkKQEAgLTQzOSw3ICs0NDEsNyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBh
dHRlcm4mLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplLCBWTSosIFlhcnJDb2RlQmxv
YwogCiBjbGFzcyBZYXJySklUUmVnaXN0ZXJzOwogCi12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVz
dChTdGFja0NoZWNrKiwgY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hh
clNpemUsIGNvbnN0IFZNKiwgWWFyckJveWVyTW95ZXJEYXRhJiwgTWFjcm9Bc3NlbWJsZXImLCBZ
YXJySklUUmVnaXN0ZXJzJik7Cit2b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNr
KiwgY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0
IFZNKiwgWWFyckJveWVyTW95ZXJEYXRhJiwgQ0NhbGxIZWxwZXJzJiwgWWFyckpJVFJlZ2lzdGVy
cyYpOwogI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpZYXJyCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgKaW5kZXggYmI4MjFjZTg2N2ZlMzhl
MjhmMzVjZTcwNmI5YmM2MDk5NDJmNzliNC4uNGRhYTI4NzdiNDBlY2I0NGYwMmVhYzExYTU0ZDkx
OTgyODZjNmI1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VFJlZ2lzdGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdp
c3RlcnMuaApAQCAtMzUsMTIgKzM1LDE1IEBAIG5hbWVzcGFjZSBZYXJyIHsKIAogc3RydWN0IFlh
cnJKSVREZWZhdWx0UmVnaXN0ZXJzIHsKIHB1YmxpYzoKLSNpZiBDUFUoQVJNX1RIVU1CMikKLSAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IEFSTVJlZ2lzdGVyczo6cjA7Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBBUk1SZWdpc3RlcnM6OnIxOwotICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIGxlbmd0aCA9IEFSTVJlZ2lzdGVyczo6cjI7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgb3V0cHV0ID0gQVJNUmVnaXN0ZXJzOjpyMzsKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IEdQUkluZm86OmFyZ3VtZW50R1BSMDsKKyAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBsZW5ndGggPSBHUFJJbmZvOjphcmd1bWVudEdQUjI7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgb3V0cHV0ID0gR1BSSW5mbzo6YXJndW1lbnRH
UFIzOworCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUjsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5S
ZWdpc3RlcjIgPSBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjI7CiAKKyNpZiBDUFUoQVJNX1RIVU1C
MikKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMCA9IEFSTVJlZ2lzdGVyczo6cjQ7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEgPSBBUk1SZWdpc3RlcnM6OnI1Owog
ICAgIC8vIHI2IGlzIHJlc2VydmVkIGZvciBNYWNyb0Fzc2VtYmxlckFSTXY3LApAQCAtNDgsMTYg
KzUxLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QyID0gQVJN
UmVnaXN0ZXJzOjpyODsKICAgICAvLyByOSBpcyBzYiBpbiBFQUJJLgogICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIGluaXRpYWxTdGFydCA9IEFSTVJlZ2lzdGVyczo6cjEwOyAvLyByMTAgaXMg
U0wsIGJ1dCBubyBsb25nZXIgYSBzcGVjaWFsIHJlZ2lzdGVyLgotCi0gICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOwotICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IEFSTVJlZ2lzdGVyczo6cjE7Ci0K
ICNlbGlmIENQVShBUk02NCkKICAgICAvLyBBcmd1bWVudCByZWdpc3RlcnMKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBpbnB1dCA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBpbmRleCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBsZW5ndGggPSBBUk02NFJlZ2lzdGVyczo6eDI7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgb3V0cHV0ID0gQVJNNjRSZWdpc3RlcnM6OngzOwogICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIG1hdGNoaW5nQ29udGV4dCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsK
ICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBmcmVlbGlzdFJlZ2lzdGVyID0gQVJNNjRSZWdp
c3RlcnM6Ong0OyAvLyBMb2FkZWQgZnJvbSB0aGUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIGluIHRo
ZSBwcm9sb2d1ZS4KICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBmcmVlbGlzdFNpemVSZWdp
c3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4NTsgLy8gT25seSB1c2VkIGR1cmluZyBpbml0aWFsaXph
dGlvbi4KQEAgLTc1LDMzICs3MCwxNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBBUk02NFJlZ2lzdGVyczo6eDE0OwogICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIGVuZE9mU3RyaW5nQWRkcmVzcyA9IEFSTTY0UmVnaXN0ZXJz
Ojp4MTU7CiAKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IEFS
TTY0UmVnaXN0ZXJzOjp4MDsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdp
c3RlcjIgPSBBUk02NFJlZ2lzdGVyczo6eDE7Ci0KICAgICBzdGF0aWMgY29uc3RleHByIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoTUlQUykKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBpbnB1dCA9IE1JUFNSZWdpc3RlcnM6OmEwOwotICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BSUmVnIGluZGV4ID0gTUlQU1JlZ2lzdGVyczo6YTE7Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgbGVuZ3RoID0gTUlQU1JlZ2lzdGVyczo6YTI7Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgb3V0cHV0ID0gTUlQU1JlZ2lzdGVyczo6YTM7Ci0KICAgICAvLyB0MCBp
cyByZXNlcnZlZCBmb3IgTWFjcm9Bc3NlbWJsZXJNSVBTLgogICAgIC8vIHQxIGlzIHJlc2VydmVk
IGZvciBNYWNyb0Fzc2VtYmxlck1JUFMuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVn
VDAgPSBNSVBTUmVnaXN0ZXJzOjp0MjsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdU
MSA9IE1JUFNSZWdpc3RlcnM6OnQzOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1Qy
ID0gTUlQU1JlZ2lzdGVyczo6dDQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5pdGlh
bFN0YXJ0ID0gTUlQU1JlZ2lzdGVyczo6dDU7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJl
ZyByZXR1cm5SZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnYwOwotICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IE1JUFNSZWdpc3RlcnM6OnYxOwotCiAjZWxpZiBD
UFUoWDg2XzY0KQogI2lmICFPUyhXSU5ET1dTKQogICAgIC8vIEFyZ3VtZW50IHJlZ2lzdGVycwot
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gWDg2UmVnaXN0ZXJzOjplZGk7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBYODZSZWdpc3RlcnM6OmVzaTsKLSAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBsZW5ndGggPSBYODZSZWdpc3RlcnM6OmVkeDsKLSAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBvdXRwdXQgPSBYODZSZWdpc3RlcnM6OmVjeDsKICAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBYODZSZWdpc3RlcnM6
OnI4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGZyZWVsaXN0UmVnaXN0ZXIgPSBYODZS
ZWdpc3RlcnM6OnI4OyAvLyBMb2FkZWQgZnJvbSB0aGUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIGlu
IHRoZSBwcm9sb2d1ZS4KICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBmcmVlbGlzdFNpemVS
ZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjk7IC8vIE9ubHkgdXNlZCBkdXJpbmcgaW5pdGlhbGl6
YXRpb24uCkBAIC0xMDksMTAgKzg4LDYgQEAgcHVibGljOgogICAgIC8vIElmIHRoZSByZXR1cm4g
dmFsdWUgZG9lc24ndCBmaXQgaW4gNjRiaXRzLCBpdHMgZGVzdGluYXRpb24gaXMgcG9pbnRlZCBi
eSByY3ggYW5kIHRoZSBwYXJhbWV0ZXJzIGFyZSBzaGlmdGVkLgogICAgIC8vIGh0dHA6Ly9tc2Ru
Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS83NTcyenR6NC5hc3B4CiAgICAgc3RhdGljX2Fz
c2VydChzaXplb2YoTWF0Y2hSZXN1bHQpID4gc2l6ZW9mKHZvaWQqKSwgIk1hdGNoUmVzdWx0IGRv
ZXMgbm90IGZpdCBpbiA2NGJpdHMiKTsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1
dCA9IFg4NlJlZ2lzdGVyczo6ZWR4OwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluZGV4
ID0gWDg2UmVnaXN0ZXJzOjpyODsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBsZW5ndGgg
PSBYODZSZWdpc3RlcnM6OnI5OwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG91dHB1dCA9
IFg4NlJlZ2lzdGVyczo6cjEwOwogI2VuZGlmCiAKICAgICAvLyBTY3JhdGNoIHJlZ2lzdGVycwpA
QCAtMTM1LDE5ICsxMTAsMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IHVuaWNvZGVUZW1wID0gWDg2UmVnaXN0ZXJzOjpyMTQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgZW5kT2ZTdHJpbmdBZGRyZXNzID0gWDg2UmVnaXN0ZXJzOjpyMTU7CiAKLSAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4Owot
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IFg4NlJlZ2lzdGVy
czo6ZWR4OwotCiAgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MigweDEwMDAwKTsKICAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHhkODAwKTsKICAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4
ZGMwMCk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
IHN1cnJvZ2F0ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZj
MDApOwogI2VsaWYgQ1BVKFJJU0NWNjQpCiAgICAgLy8gQXJndW1lbnQgcmVnaXN0ZXJzCi0gICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTA7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTE7
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbGVuZ3RoID0gUklTQ1Y2NFJlZ2lzdGVyczo6
eDEyOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG91dHB1dCA9IFJJU0NWNjRSZWdpc3Rl
cnM6OngxMzsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBS
SVNDVjY0UmVnaXN0ZXJzOjp4MTQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgZnJlZWxp
c3RSZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OngxNDsgLy8gTG9hZGVkIGZyb20gdGhlIE1h
dGNoaW5nQ29udGV4dEhvbGRlciBpbiB0aGUgcHJvbG9ndWUuCiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgZnJlZWxpc3RTaXplUmVnaXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTU7IC8v
IE9ubHkgdXNlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCkBAIC0xNjIsOSArMTMwLDYgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluaXRpYWxTdGFydCA9IFJJU0NWNjRS
ZWdpc3RlcnM6OngyODsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBlbmRPZlN0cmluZ0Fk
ZHJlc3MgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4Mjk7CiAKLSAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyByZXR1cm5SZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMDsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTE7
Ci0KICAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vw
cGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAw
MDApOwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBs
ZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDAp
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFp
bGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRl
eHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRl
eHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcyNWRkOWZhMWVmYjY2MDFl
Li4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5o
CkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1lc3BhY2UgWWFyciB7CiAK
LWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29udGV4dEhvbGRlciB7CiAg
ICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0gICAgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1hdGNoRnJvbSk7CisgICAg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKICAg
ICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNl
dE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNYXRjaGluZ0NvbnRleHRI
b2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBN
YXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQ29kZUJs
b2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKK2lubGluZSBNYXRjaGlu
Z0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIGJvb2wgdXNlc1Bh
dHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkK
ICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZyb20pCiB7CkBAIC03NCwx
MiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0
SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckMKICAgICB9CiAKICNpZiBFTkFCTEUo
WUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAoeWFyckNvZGVCbG9jayAm
JiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSkgeworICAgIGlmICh1
c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZl
ciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsKICAgICAgICAgbV9w
YXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRleHRCdWZmZXJTaXplOwog
ICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxvY2spOworICAgIFVOVVNF
RF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlmCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448767</attachid>
            <date>2022-01-10 10:21:49 -0800</date>
            <delta_ts>2022-01-10 12:21:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220110142147.patch</filename>
            <type>text/plain</type>
            <size>31540</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li5kYTAxNDc4MTUzMGI3NmI0
MmU5MzUxZjdjYjRmYjA4Y2Y4YjFiMWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQcm9wZXJ0eSAvIGVtaXRHZXRQcm9w
ZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJpdmF0ZSBuYW1lcyBpbiBlZGdlIGNh
c2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQwYjM1ODQzYzJjZGU5NWIwLi41MTZj
NmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTI4ODgsNyArMjg4
OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKE5vZGUq
IG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKKyAgICBjb21waWxlUmVn
RXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2Fs
bEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4MTE2MzRlMjNjMjE3YmRhMWNjZjY0
Li4xMjBmODc4MWNkZjM5OGQ0MGI4ODgzMGEzYzAxODU5YjllMTEyYmQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTk5Miw2ICs5OTIsODEgQEAgcHVibGlj
OgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVyYXRpb25U
eXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0KKworcHJpdmF0ZToKKworICAgIC8v
IEluIGNhc2Ugd2UgYXJlIHRyeWluZyB0byBnZXQgdGhlIGFyZ3VtZW50IGZyb20gYSBmdW5jdGlv
biBidXQgdGhlcmUgaXNuJ3QgZW5vdWdoIHJlZ2lzdGVycywgdGhpcworICAgIC8vIGZ1bmN0aW9u
IHRyaWVzIHRvIGxvYWQgaXQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNwLiBJbiBvcmRlciBm
b3IgdGhpcyB0byB3b3JrLCB0aGUgZnJhbWUgcG9pbnRlcgorICAgIC8vIG11c3QgYmUgc2V0IGlu
IHRoZSBmdW5jdGlvbiBwcm9sb2d1ZQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdGlvbiwg
dW5zaWduZWQgQXJnTnVtPgorICAgIGNvbnN0ZXhwciBHUFJSZWcgbG9hZEFyZ3VtZW50RnJvbVN0
YWNrKEdQUlJlZyBzY3JhdGNoR1BSKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHNjcmF0Y2hHUFIg
IT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnLCAiVmFsaWQgR1BSIG5lZWRlZCB0byBsb2FkIHRoaXMg
YXJndW1lbnQiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChBcmdOdW0gPj0gTlVNQkVSX09GX0FS
R1VNRU5UX1JFR0lTVEVSUywgIlNob3VsZCByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFJYIik7
CisKKyAgICAgICAgLy8gVG8gbG9hZCB0aGUgYXJndW1lbnQgaW50byBzY3JhdGNoR1BSIGZyb20g
dGhlIHN0YWNrIHRoZSBmcmFtZSBwb2ludGVyIG5lZWRzIHRvIGJlIHNldCBhdCB0aGUgZnVuY3Rp
b24gcHJvbG9ndWUhCisKKyAgICAgICAgLy8gRm9yIG1vc3QgYXJjaHMgdGhlIGFyZ3VtZW50IHdp
bGwgYmUgcGxhY2UgYXQgZnAgKyByZXR1cm4tYWRkcmVzcyArIGFyZy1udW0gLSBudW1iZXItb2Yt
YXJnLXJlZ3MsIGUuZy4sCisgICAgICAgIC8vIHRoZSA1dGggYXJndW1lbnQgb24gQVJNdjcgd2ls
bCBiZSBwbGFjZWQgYXQgZnAgKyAxICsgNSAtIDQgPSBmcCArIDIsIGhvd2V2ZXIsIHRoYXQgYXJl
IHR3byBleGNlcHRpb25zOgorCisgICAgICAgIC8vIFBPS0VfQVJHVU1FTlRfT0ZGU0VUOiBvbiBN
SVBTIGFuZCBXaW5kb3dzIHg4Niwgc3BhY2UgaXMgcmVzZXJ2ZWQgb24gdGhlIHN0YWNrIGZvciBh
bGwgYXJndW1lbnRzLCBzbyBpbiB0aGVzZQorICAgICAgICAvLyBhcmNocywgYSArNCBvZmZzZXQg
aXMgYWRkZWQuIFRoZSA1dGggYXJndW1lbnQgb24gTUlQUyBpcyBmcCArIDYuCisKKyAgICAgICAg
Ly8gcmV0dXJuVHlwZU9mZnNldDogV2luZG93cyB4ODYgb25seS4gSWYgdGhlIHJldHVybiB0eXBl
IHdpZGVyIHRoYW4gNjQtYml0cywgaXQncyByZXR1cm5lZCB2aWEgYSBwb2ludGVyIHRoYXQgaXMK
KyAgICAgICAgLy8gcGFzc2VkIGFzIGFuIGltcGxpY2l0IGZpcnN0IGFyZ3VtZW50LCBhbmQgYWxs
IG90aGVyIGFyZ3VtZW50cyBhcmUgc2hpZnRlZCB0byB0aGUgcmlnaHQsIGFkZGluZyBhICsxIG9m
ZnNldC4KKyAgICAgICAgLy8gVGhlIDV0aCBhcmd1bWVudCBvbiBXaW5kb3dzIHg4NiBpbiB0aGlz
IHNjZW5hcmlvIGlzIGZwICs3LgorCisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNz
T2Zmc2V0ID0gMTsKKyNpZiBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25z
dGV4cHIgaW50IHJldHVyblR5cGVPZmZzZXQgPSBzdGQ6OmlzX3NhbWU8RnVuY3Rpb25UcmFpdHM8
RnVuY3Rpb24+OjpSZXN1bHRUeXBlLCBTbG93UGF0aFJldHVyblR5cGU+Ojp2YWx1ZSA/IDEgOiAw
OworICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdV
TUVOVF9SRUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkcmVzc09mZnNl
dCArIHJldHVyblR5cGVPZmZzZXQ7CisjZWxzZQorICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNl
dCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5U
X09GRlNFVCArIHJldHVybkFkcmVzc09mZnNldDsKKyNlbmRpZgorICAgICAgICBsb2FkUHRyKE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rl
ciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0Y2hHUFIpOworICAgICAgICByZXR1cm4g
c2NyYXRjaEdQUjsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIC8vIEdpdmVuIGEgZnVuY3Rpb24g
YW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUg
YXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAvLyBvciBpdCB0cmllcyB0byBs
b2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc2NyYXRjaEdQUiBwYXNz
ZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVzZSAwIGZvciB0aGUgMXN0IGFy
Z3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0
aW9uLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBnZXRBcmd1bWVudEdQ
UihHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAgICB7CisgICAg
ICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBmb3JiaXMgZnVu
Y3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsKKyAgICAgICAgc3RhdGljX2Fz
c2VydChGdW5jdGlvblRyYWl0czxGdW5jdGlvbj46OmNDYWxsQXJpdHkoKSA+IEFyZ051bSwgIkZ1
bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFyZ3VtZW50cyIpOworCisgICAgICAgIGlmIGNv
bnN0ZXhwciAoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMpCisgICAgICAg
ICAgICByZXR1cm4gbG9hZEFyZ3VtZW50RnJvbVN0YWNrPEZ1bmN0aW9uLCBBcmdOdW0+KHNjcmF0
Y2hHUFIpOworCisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoR1BSKTsgLy8gT3RoZXJ3aXNl
IHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhwcgorICAgICAgICBzd2l0Y2ggKEFyZ051bSkgeworICAg
ICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFIwOwor
ICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFIx
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRH
UFIyOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1l
bnRHUFIzOworI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQorICAgICAgICBjYXNlIDQ6
CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI0OworICAgICAgICBjYXNl
IDU6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI1OworI2VuZGlmCisj
aWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAg
ICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNjsKKyAgICAgICAgY2FzZSA3OgorICAgICAg
ICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNzsKKyNlbmRpZgorICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdF
KCJOb3QgZW5vdWdoIGFyZ3VtZW50R1BScyIpOworICAgICAgICB9CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApp
bmRleCAxYjhjZDQyMGYxMDcwOWQxYmViMWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40NDkwOWQxNjk0
YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRiNGFkMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVnRXhwOjptYXRj
aENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgU3RyaW5nJiBzLCBpbnQgc3RhcnRPZmZzZXQs
IGludCoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEpJVENvZGU6IHsKICAgICAg
ICAgICAgIFlhcnI6OllhcnJDb2RlQmxvY2smIGNvZGVCbG9jayA9ICptX3JlZ0V4cEpJVENvZGUu
Z2V0KCk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRN
YXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAg
ICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7
Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIw
eCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJp
bnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaE9ubHlB
ZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJT
aXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJs
b2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRN
YXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cElubGluZXMuaAppbmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0ZDRiNjYxZWRj
ZDY4NWE0Zjc4N2UyLi4wYTA5MTc4ZTZmOWE5NDM5MWEwZGYxZDAxYzM5ZTVjZWNhZGZiYTQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCkBAIC0x
MzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpT
R2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlmIChtX3N0YXRl
ID09IEpJVENvZGUpIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklU
Q29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29u
dGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAg
ICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVn
RXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7
CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9
IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBz
Lmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCks
IHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0KS5z
dGFydDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4
cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3Ro
KCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0KS5zdGFydDsK
ICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8aW50PihZYXJy
OjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29kZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyArMTQ2LDcgQEAg
QUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVs
bE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlmIChtX3N0YXRlID09IFBhcnNl
RXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKTsKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29u
dGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgICAgICBZYXJy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5D
b250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgICAgICAg
ICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3Rh
cnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZU19JTkxJTkUg
aW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVj
dCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlhcnI6Ok1hdGNo
aW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZy
b20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2
bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9t
KTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0
KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVj
dG9yKSk7CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2NiwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hdGNo
UmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9i
amVjdAogICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAgICAg
IEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywg
bWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdF
eHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigp
LCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAg
ICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJz
OCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwg
c3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5j
aGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOwor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJh
Y3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAg
ICAgICB9CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyArMjk1LDcgQEAg
QUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2Jq
ZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3IuZ3JvdyhvZmZz
ZXRWZWN0b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92ZWN0b3IuZGF0
YSgpOwogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENv
bnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlhcnI6Ok1hdGNo
aW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRC
dWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJy
OjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50
ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAjaWYgUkVHRVhQ
X0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcApp
bmRleCBhNDk4ZWY3ODA3MzE4MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi5mNWQxNWZmMWRm
NGE0M2NkYjljMmFlOTY4MWI2YmM4OWM2NGZkZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJySklULmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIllhcnJKSVQuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUg
IkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKQEAg
LTM5NjEsMTAgKzM5NjIsOCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlh
cnJKSVRJbmZvIHsKIAogICAgIHZvaWQgZ2VuZXJhdGVFbnRlcigpCiAgICAgeworICAgICAgICBt
X2ppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogI2lmIENQVShYODZfNjQpCi0gICAgICAgIG1f
aml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNz
ZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplYnApOwotCiAgICAg
ICAgIGlmIChtX3BhdHRlcm4ubV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUpCiAgICAgICAgICAgICBt
X2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKIApAQCAtNDA1Miw3ICs0MDUxLDYgQEAgY2xh
c3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAgICAg
aWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0
LnBvcChYODZSZWdpc3RlcnM6OmVieCk7Ci0gICAgICAgIG1faml0LnBvcChYODZSZWdpc3RlcnM6
OmVicCk7CiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBh
aXJzKSB7CiAgICAgICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKQEAgLTQwNzAs
NiArNDA2OCw5IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVElu
Zm8gewogI2VsaWYgQ1BVKE1JUFMpCiAgICAgICAgIC8vIERvIG5vdGhpbmcKICNlbmRpZgorCisg
ICAgbV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKwogI2lmIENQVShBUk02NEUpCiAgICAg
ICAgIGlmIChPcHRpb25zOjp1c2VKSVRDYWdlKCkpCiAgICAgICAgICAgICBtX2ppdC5mYXJKdW1w
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJldGFnQ29kZVB0cjx2b2lkKiwgQ0Z1bmN0
aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJUYWc+KCZ2bUVudHJ5VG9ZYXJySklUQWZ0ZXIpKSwgT3Bl
cmF0aW9uUHRyVGFnKTsKQEAgLTQwODYsNyArNDA4Nyw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3Ig
ZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgIH0KIAogcHVibGljOgotICAgIFlhcnJH
ZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVy
biwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29t
cGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRS
ZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAg
ICAgIDogbV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxv
Y2soY29kZUJsb2NrKQpAQCAtNDEwNSw3ICs0MTA2LDcgQEAgcHVibGljOgogICAgICAgICBtX2Jv
eWVyTW9vcmVEYXRhID0gc3RhdGljX2Nhc3Q8WWFyckJveWVyTW95ZXJEYXRhKj4obV9jb2RlQmxv
Y2spOwogICAgIH0KIAotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29u
c3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRS
ZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAg
WWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJN
b3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVy
biYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6
ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQogICAg
ICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2sobnVsbHB0cikKQEAgLTQxOTEs
MTYgKzQxOTIsMjggQEAgcHVibGljOgogICAgICAgICBpZiAoY2FsbEZyYW1lU2l6ZUluQnl0ZXMp
IHsKICAgICAgICAgICAgIC8vIENoZWNrIHN0YWNrIHNpemUKICAgICAgICAgICAgIG1faml0LmFk
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jYWxsRnJhbWVTaXplSW5CeXRlcyks
IE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbV9yZWdzLnJlZ1QwKTsKLSNp
ZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250
ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVn
cy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoWDg2UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0
KTsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAgICAgICAgICAgIC8vIG1h
dGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3Rh
Y2suCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRl
eHQgPSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNCAqIHNp
emVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOworCisgICAgICAgICAgICAvLyBNYWtlIHN1
cmUgdGhhdCB0aGUgSklUZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0IHRo
ZSA1dGggYXJndW1lbnQgaXMgYSBNYXRjaGluZ0NvbnRleHRIb2xkZXIqCisgICAgICAgICAgICAv
LyBUT0RPOiBDYW4gdGhpcyBiZSBhIGxhbWJhPworI2RlZmluZSBGVU5DVElPTkNIRUNLUyhmdW5j
KSBcCisgICAgZG8geyBcCisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8ZnVu
Yz46OmNDYWxsQXJpdHkoKSA9PSA1LCAiWWFyckpJVENvZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsg
XAorICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxNYXRjaGluZ0NvbnRleHRIb2xk
ZXIqLCBGdW5jdGlvblRyYWl0czxmdW5jPjo6QXJndW1lbnRUeXBlPDQ+Pjo6dmFsdWUpOyBcCisg
ICAgfSB3aGlsZSAoZmFsc2UpCisKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2Rl
QmxvY2s6OllhcnJKSVRDb2RlOCk7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29k
ZUJsb2NrOjpZYXJySklUQ29kZTE2KTsKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJD
b2RlQmxvY2s6OllhcnJKSVRDb2RlTWF0Y2hPbmx5OCk7CisgICAgICAgICAgICBGVU5DVElPTkNI
RUNLUyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2KTsKKworI3VuZGVmIEZV
TkNUSU9OQ0hFQ0tTCisKKyNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTIDwgNXUKKyAg
ICAgICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2ppdC5nZXRBcmd1bWVudEdQUjxZ
YXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgsIDQ+KG1fcmVncy5yZWdUMSk7CisgICAgICAgICAg
ICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5yZWdUMSk7CiAjZWxzZQotICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdz
Lm1hdGNoaW5nQ29udGV4dDsKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBt
X2ppdC5nZXRBcmd1bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgsIDQ+KCk7Cisg
ICAgICAgICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5tYXRjaGluZ0NvbnRl
eHQpOwogI2VuZGlmCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdGFja09rID0g
bV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvd09yRXF1YWwsIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKG1hdGNoaW5nQ29udGV4dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpvZmZz
ZXRPZlN0YWNrTGltaXQoKSksIG1fcmVncy5yZWdUMCk7CiAKQEAgLTQ2MTgsNyArNDYzMSw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTWFjcm9Bc3NlbWJsZXImIG1faml0Owor
ICAgIENDYWxsSGVscGVycyYgbV9qaXQ7CiAgICAgY29uc3QgVk0qIG1fdm07CiAgICAgWWFyckNv
ZGVCbG9jayogbV9jb2RlQmxvY2s7CiAgICAgWWFyckJveWVyTW95ZXJEYXRhKiBtX2JveWVyTW9v
cmVEYXRhOwpAQCAtNDcwNiw3ICs0NzE5LDcgQEAgc3RhdGljIHZvaWQgZHVtcENvbXBpbGVGYWls
dXJlKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKIAogdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0
ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBW
TSogdm0sIFlhcnJDb2RlQmxvY2smIGNvZGVCbG9jaywgSklUQ29tcGlsZU1vZGUgbW9kZSkKIHsK
LSAgICBNYWNyb0Fzc2VtYmxlciBtYXNtOworICAgIENDYWxsSGVscGVycyBtYXNtOwogCiAgICAg
QVNTRVJUKG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Ok1hdGNoT25seSB8fCBtb2RlID09IEpJVENv
bXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpOwogCkBAIC00NzI3LDcgKzQ3NDAsNyBAQCB2
b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVyblN0cmlu
ZywgQ2hhclNpemUgY2hhclNpemUsCiAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIGlubGluZWQgSklU
J2luZyBvZiBSZWdFeHAudGVzdCBmb3IgdGhpcyBDUFUgLyBPUyBjb21iaW5hdGlvbi4iCiAjZW5k
aWYKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlv
blRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25T
ZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZ
YXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBNYWNyb0Fzc2VtYmxlciYgaml0LCBZ
YXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCit2b2lkIGppdENvbXBpbGVJbmxpbmVkVGVz
dChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBjb25zdCBTdHJp
bmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3MsIENoYXJTaXpl
IGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95ZXJNb29yZURh
dGEsIENDYWxsSGVscGVycyYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCiB7
CiAgICAgWWFycjo6RXJyb3JDb2RlIGVycm9yQ29kZTsKICAgICBZYXJyOjpZYXJyUGF0dGVybiBw
YXR0ZXJuKHBhdHRlcm5TdHJpbmcsIGZsYWdzLCBlcnJvckNvZGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyckpJVC5oCmluZGV4IDI4OWQ2ZTgxZmU1MTdhYWRmYmU0OThkMTg1ZTMwNzIwNWU2
YTA3MzMuLjJiYzM3Mzk1NjQxMGRiYzRjOTVkN2RlMmZjZjhlOTZjMzY1ZDNmZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKQEAgLTQzLDkgKzQzLDEwIEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCi1jbGFzcyBWTTsKK2NsYXNzIENDYWxsSGVscGVyczsKIGNsYXNzIEV4ZWN1dGFi
bGVQb29sOwogY2xhc3MgTWFjcm9Bc3NlbWJsZXI7CitjbGFzcyBWTTsKIAogbmFtZXNwYWNlIFlh
cnIgewogCkBAIC0yNzEsMTIgKzI3MiwxMyBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIDogcHVibGlj
IFlhcnJCb3llck1veWVyRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoWWFyckNvZGVCbG9jayk7CiAKLSAgICB1c2luZyBZYXJySklU
Q29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJl
Z2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJy
SklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVD
UFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNo
aW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcg
WWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hh
ciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCos
IE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAg
dXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29u
c3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgs
IHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxM
OwotCiBwdWJsaWM6CisKKyAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5
cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0
ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0Nv
bnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1
cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJl
Z2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hp
bmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0g
U2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBz
dGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciog
bWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9u
bHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVn
aXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRI
b2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworCiAgICAgWWFyckNvZGVCbG9jaygp
ID0gZGVmYXVsdDsKIAogICAgIHZvaWQgc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNvbihKSVRG
YWlsdXJlUmVhc29uIGZhaWx1cmVSZWFzb24pIHsgbV9mYWlsdXJlUmVhc29uID0gZmFpbHVyZVJl
YXNvbjsgfQpAQCAtMzI2LDcgKzMyOCw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVTdGF0cyYgZ2V0
OEJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gbV9tYXRjaE9ubHk4U3RhdHM7IH0KICAgICBJbmxp
bmVTdGF0cyYgZ2V0MTZCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuICBtX21hdGNoT25seTE2U3Rh
dHM7IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBM
Q2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAg
IEFTU0VSVChoYXM4Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzM2LDcgKzMzOCw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRy
PFlhcnJKSVRDb2RlOCwgWWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2RlKCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0KSk7
CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVu
c2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0
IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRw
dXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGhhczE2Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzQ2LDcgKzM0
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9u
UHRyPFlhcnJKSVRDb2RlMTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYxNi5jb2RlKCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250
ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5w
dXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIq
IGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRI
b2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0Q29k
ZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzU2LDcgKzM1OCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRD
b2RlTWF0Y2hPbmx5OCwgWWFyck1hdGNoT25seThCaXRQdHJUYWc+KG1fbWF0Y2hPbmx5OC5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51bGxwdHIsIG1h
dGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3Qg
VUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNv
bnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQo
aGFzMTZCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC00MzksNyArNDQx
LDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5n
LCBDaGFyU2l6ZSwgVk0qLCBZYXJyQ29kZUJsb2MKIAogY2xhc3MgWWFyckpJVFJlZ2lzdGVyczsK
IAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYs
IE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1v
eWVyRGF0YSYsIE1hY3JvQXNzZW1ibGVyJiwgWWFyckpJVFJlZ2lzdGVycyYpOwordm9pZCBqaXRD
b21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxZ
YXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0YSYsIEND
YWxsSGVscGVycyYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKICNlbmRpZgogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckpJVFJlZ2lzdGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lz
dGVycy5oCmluZGV4IGJiODIxY2U4NjdmZTM4ZTI4ZjM1Y2U3MDZiOWJjNjA5OTQyZjc5YjQuLjRk
YWEyODc3YjQwZWNiNDRmMDJlYWMxMWE1NGQ5MTk4Mjg2YzZiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgKQEAgLTM1LDEyICszNSwxNSBAQCBu
YW1lc3BhY2UgWWFyciB7CiAKIHN0cnVjdCBZYXJySklURGVmYXVsdFJlZ2lzdGVycyB7CiBwdWJs
aWM6Ci0jaWYgQ1BVKEFSTV9USFVNQjIpCi0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5w
dXQgPSBBUk1SZWdpc3RlcnM6OnIwOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluZGV4
ID0gQVJNUmVnaXN0ZXJzOjpyMTsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBsZW5ndGgg
PSBBUk1SZWdpc3RlcnM6OnIyOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG91dHB1dCA9
IEFSTVJlZ2lzdGVyczo6cjM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBH
UFJJbmZvOjphcmd1bWVudEdQUjA7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXgg
PSBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbGVu
Z3RoID0gR1BSSW5mbzo6YXJndW1lbnRHUFIyOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IG91dHB1dCA9IEdQUkluZm86OmFyZ3VtZW50R1BSMzsKKworICAgIHN0YXRpYyBjb25zdGV4cHIg
R1BSUmVnIHJldHVyblJlZ2lzdGVyID0gR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFI7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIyOwogCisjaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgcmVnVDAgPSBBUk1SZWdpc3RlcnM6OnI0OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IHJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpyNTsKICAgICAvLyByNiBpcyByZXNlcnZlZCBmb3IgTWFj
cm9Bc3NlbWJsZXJBUk12NywKQEAgLTQ4LDE2ICs1MSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyByZWdUMiA9IEFSTVJlZ2lzdGVyczo6cjg7CiAgICAgLy8gcjkgaXMg
c2IgaW4gRUFCSS4KICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbml0aWFsU3RhcnQgPSBB
Uk1SZWdpc3RlcnM6OnIxMDsgLy8gcjEwIGlzIFNMLCBidXQgbm8gbG9uZ2VyIGEgc3BlY2lhbCBy
ZWdpc3Rlci4KLQotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyID0g
QVJNUmVnaXN0ZXJzOjpyMDsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdp
c3RlcjIgPSBBUk1SZWdpc3RlcnM6OnIxOwotCiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgLy8gQXJn
dW1lbnQgcmVnaXN0ZXJzCi0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBBUk02
NFJlZ2lzdGVyczo6eDA7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBBUk02
NFJlZ2lzdGVyczo6eDE7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbGVuZ3RoID0gQVJN
NjRSZWdpc3RlcnM6OngyOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG91dHB1dCA9IEFS
TTY0UmVnaXN0ZXJzOjp4MzsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBtYXRjaGluZ0Nv
bnRleHQgPSBBUk02NFJlZ2lzdGVyczo6eDQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcg
ZnJlZWxpc3RSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsgLy8gTG9hZGVkIGZyb20gdGhl
IE1hdGNoaW5nQ29udGV4dEhvbGRlciBpbiB0aGUgcHJvbG9ndWUuCiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgZnJlZWxpc3RTaXplUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDU7IC8v
IE9ubHkgdXNlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCkBAIC03NSwzMyArNzAsMTcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0g
QVJNNjRSZWdpc3RlcnM6OngxNDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBlbmRPZlN0
cmluZ0FkZHJlc3MgPSBBUk02NFJlZ2lzdGVyczo6eDE1OwogCi0gICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDA7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gQVJNNjRSZWdpc3RlcnM6OngxOwot
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJv
Z2F0ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwog
I2VsaWYgQ1BVKE1JUFMpCi0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBNSVBT
UmVnaXN0ZXJzOjphMDsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9IE1JUFNS
ZWdpc3RlcnM6OmExOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGxlbmd0aCA9IE1JUFNS
ZWdpc3RlcnM6OmEyOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG91dHB1dCA9IE1JUFNS
ZWdpc3RlcnM6OmEzOwotCiAgICAgLy8gdDAgaXMgcmVzZXJ2ZWQgZm9yIE1hY3JvQXNzZW1ibGVy
TUlQUy4KICAgICAvLyB0MSBpcyByZXNlcnZlZCBmb3IgTWFjcm9Bc3NlbWJsZXJNSVBTLgogICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QwID0gTUlQU1JlZ2lzdGVyczo6dDI7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEgPSBNSVBTUmVnaXN0ZXJzOjp0MzsKICAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMiA9IE1JUFNSZWdpc3RlcnM6OnQ0OwogICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluaXRpYWxTdGFydCA9IE1JUFNSZWdpc3RlcnM6OnQ1Owot
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBNSVBTUmVnaXN0
ZXJzOjp2MDsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBN
SVBTUmVnaXN0ZXJzOjp2MTsKLQogI2VsaWYgQ1BVKFg4Nl82NCkKICNpZiAhT1MoV0lORE9XUykK
ICAgICAvLyBBcmd1bWVudCByZWdpc3RlcnMKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBp
bnB1dCA9IFg4NlJlZ2lzdGVyczo6ZWRpOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlu
ZGV4ID0gWDg2UmVnaXN0ZXJzOjplc2k7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbGVu
Z3RoID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgb3V0
cHV0ID0gWDg2UmVnaXN0ZXJzOjplY3g7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbWF0
Y2hpbmdDb250ZXh0ID0gWDg2UmVnaXN0ZXJzOjpyODsKICAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBmcmVlbGlzdFJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyODsgLy8gTG9hZGVkIGZyb20g
dGhlIE1hdGNoaW5nQ29udGV4dEhvbGRlciBpbiB0aGUgcHJvbG9ndWUuCiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgZnJlZWxpc3RTaXplUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnI5OyAv
LyBPbmx5IHVzZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLgpAQCAtMTA5LDEwICs4OCw2IEBAIHB1
YmxpYzoKICAgICAvLyBJZiB0aGUgcmV0dXJuIHZhbHVlIGRvZXNuJ3QgZml0IGluIDY0Yml0cywg
aXRzIGRlc3RpbmF0aW9uIGlzIHBvaW50ZWQgYnkgcmN4IGFuZCB0aGUgcGFyYW1ldGVycyBhcmUg
c2hpZnRlZC4KICAgICAvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkv
NzU3Mnp0ejQuYXNweAogICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKE1hdGNoUmVzdWx0KSA+IHNp
emVvZih2b2lkKiksICJNYXRjaFJlc3VsdCBkb2VzIG5vdCBmaXQgaW4gNjRiaXRzIik7Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBYODZSZWdpc3RlcnM6OmVkeDsKLSAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9IFg4NlJlZ2lzdGVyczo6cjg7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgbGVuZ3RoID0gWDg2UmVnaXN0ZXJzOjpyOTsKLSAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBvdXRwdXQgPSBYODZSZWdpc3RlcnM6OnIxMDsKICNlbmRpZgog
CiAgICAgLy8gU2NyYXRjaCByZWdpc3RlcnMKQEAgLTEzNSwxOSArMTEwLDEyIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB1bmljb2RlVGVtcCA9IFg4NlJlZ2lzdGVyczo6
cjE0OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGVuZE9mU3RyaW5nQWRkcmVzcyA9IFg4
NlJlZ2lzdGVyczo6cjE1OwogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVn
aXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVheDsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBy
ZXR1cm5SZWdpc3RlcjIgPSBYODZSZWdpc3RlcnM6OmVkeDsKLQogICAgIHN0YXRpYyBjb25zdGV4
cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCk7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCk7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDApOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKICNlbGlmIENQVShSSVNDVjY0KQogICAg
IC8vIEFyZ3VtZW50IHJlZ2lzdGVycwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0
ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDEwOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlu
ZGV4ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDExOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IGxlbmd0aCA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMjsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBvdXRwdXQgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTM7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDE0OwogICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIGZyZWVsaXN0UmVnaXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJz
Ojp4MTQ7IC8vIExvYWRlZCBmcm9tIHRoZSBNYXRjaGluZ0NvbnRleHRIb2xkZXIgaW4gdGhlIHBy
b2xvZ3VlLgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGZyZWVsaXN0U2l6ZVJlZ2lzdGVy
ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDE1OyAvLyBPbmx5IHVzZWQgZHVyaW5nIGluaXRpYWxpemF0
aW9uLgpAQCAtMTYyLDkgKzEzMCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBpbml0aWFsU3RhcnQgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4Mjg7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgZW5kT2ZTdHJpbmdBZGRyZXNzID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDI5
OwogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBSSVNDVjY0
UmVnaXN0ZXJzOjp4MTA7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0
ZXIyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDExOwotCiAgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEwMDAwKTsKICAgICBzdGF0aWMgY29uc3RleHByIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsKICAgICBzdGF0aWMgY29uc3RleHByIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKaW5kZXggMTM5ZDFmZTM1YjU3
NWM3MGEwNWE3ZTc3MjVkZDlmYTFlZmI2NjAxZS4uMWFmODMwOTgyZmY1N2YyYTkzYjY2MTc5Mzhk
MmRiYzVkZWM4YTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaApAQCAtMzcsMTIgKzM3LDEwIEBAIGNsYXNzIFJl
Z0V4cDsKIAogbmFtZXNwYWNlIFlhcnIgewogCi1jbGFzcyBZYXJyQ29kZUJsb2NrOwotCiBjbGFz
cyBNYXRjaGluZ0NvbnRleHRIb2xkZXIgewogICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9O
OwogcHVibGljOgotICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYsIFlhcnJDb2RlQmxvY2sq
LCBSZWdFeHAqLCBNYXRjaEZyb20pOworICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYsIGJv
b2wsIFJlZ0V4cCosIE1hdGNoRnJvbSk7CiAgICAgfk1hdGNoaW5nQ29udGV4dEhvbGRlcigpOwog
CiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlN0YWNrTGltaXQoKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoTWF0Y2hpbmdDb250ZXh0SG9sZGVyLCBtX3N0YWNrTGltaXQpOyB9CkBAIC02
MSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgTWF0Y2hGcm9tIG1fbWF0Y2hGcm9tOwogfTsKIAot
aW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2
bSwgWWFyckNvZGVCbG9jayogeWFyckNvZGVCbG9jaywgUmVnRXhwKiByZWdFeHAsIE1hdGNoRnJv
bSBtYXRjaEZyb20pCitpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRl
eHRIb2xkZXIoVk0mIHZtLCBib29sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgUmVnRXhwKiBy
ZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCiAgICAgOiBtX3ZtKHZtKQogICAgICwgbV9tYXRj
aEZyb20obWF0Y2hGcm9tKQogewpAQCAtNzQsMTIgKzcyLDEyIEBAIGlubGluZSBNYXRjaGluZ0Nv
bnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2RlQmxvY2sq
IHlhcnJDCiAgICAgfQogCiAjaWYgRU5BQkxFKFlBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lP
TlMpCi0gICAgaWYgKHlhcnJDb2RlQmxvY2sgJiYgeWFyckNvZGVCbG9jay0+dXNlc1BhdHRlcm5D
b250ZXh0QnVmZmVyKCkpIHsKKyAgICBpZiAodXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKSB7CiAg
ICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXIgPSBtX3ZtLmFjcXVpcmVSZWdFeHBQYXR0ZXJu
Q29udGV4QnVmZmVyKCk7CiAgICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXJTaXplID0gVk06
OnBhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZTsKICAgICB9CiAjZWxzZQotICAgIFVOVVNFRF9QQVJB
TSh5YXJyQ29kZUJsb2NrKTsKKyAgICBVTlVTRURfUEFSQU0odXNlc1BhdHRlcm5Db250ZXh0QnVm
ZmVyKTsKICNlbmRpZgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448785</attachid>
            <date>2022-01-10 12:21:56 -0800</date>
            <delta_ts>2022-01-11 06:06:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220110162154.patch</filename>
            <type>text/plain</type>
            <size>31586</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NTRjYWUyY2E1OWMwNjJlMzJhNTRlMDE2NTczYmU4Y2JjMzg0NzQ4Li5kYTAxNDc4MTUzMGI3NmI0
MmU5MzUxZjdjYjRmYjA4Y2Y4YjFiMWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTAyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIGVtaXRQdXRQcm9wZXJ0eSAvIGVtaXRHZXRQcm9w
ZXJ0eVZhbHVlIGNvbnNpc3RlbnRseSB0byBoYW5kbGUgcHJpdmF0ZSBuYW1lcyBpbiBlZGdlIGNh
c2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAppbmRleCAxMzVjMTI2M2FiNGE2YWE1NTRkMDZiZGQwYjM1ODQzYzJjZGU5NWIwLi41MTZj
NmJmM2ZhMWZhNmEwMjNhNzhkODdmYWFlOWRjN2FjNWQ2ZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTI4ODgsNyArMjg4
OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKE5vZGUq
IG5vZGUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG5vZGUpOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiBjb21waWxlUmVnRXhwVGVzdChub2RlKTsKKyAgICBjb21waWxlUmVn
RXhwVGVzdChub2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2Fs
bEhlbHBlcnMuaAppbmRleCBhZmM1ZGNjODk5ZTc1NjMzOWE4MTE2MzRlMjNjMjE3YmRhMWNjZjY0
Li41MWViMGFiN2RkNGZkNThjNjE4MDBmYjk3MDkwNDI0MzJmYjcwMjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTk5Miw2ICs5OTIsODEgQEAgcHVibGlj
OgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVyYXRpb25U
eXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0KKworcHJpdmF0ZToKKworICAgIC8v
IEluIGNhc2Ugd2UgYXJlIHRyeWluZyB0byBnZXQgdGhlIGFyZ3VtZW50IGZyb20gYSBmdW5jdGlv
biBidXQgdGhlcmUgaXNuJ3QgZW5vdWdoIHJlZ2lzdGVycywgdGhpcworICAgIC8vIGZ1bmN0aW9u
IHRyaWVzIHRvIGxvYWQgaXQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNwLiBJbiBvcmRlciBm
b3IgdGhpcyB0byB3b3JrLCB0aGUgZnJhbWUgcG9pbnRlcgorICAgIC8vIG11c3QgYmUgc2V0IGlu
IHRoZSBmdW5jdGlvbiBwcm9sb2d1ZQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdGlvbiwg
dW5zaWduZWQgQXJnTnVtPgorICAgIGNvbnN0ZXhwciBHUFJSZWcgbG9hZEFyZ3VtZW50RnJvbVN0
YWNrKEdQUlJlZyBzY3JhdGNoR1BSKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHNjcmF0Y2hHUFIg
IT0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnLCAiVmFsaWQgR1BSIG5lZWRlZCB0byBsb2FkIHRoaXMg
YXJndW1lbnQiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChBcmdOdW0gPj0gTlVNQkVSX09GX0FS
R1VNRU5UX1JFR0lTVEVSUywgIlNob3VsZCByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFJYIik7
CisKKyAgICAgICAgLy8gVG8gbG9hZCB0aGUgYXJndW1lbnQgaW50byBzY3JhdGNoR1BSIGZyb20g
dGhlIHN0YWNrIHRoZSBmcmFtZSBwb2ludGVyIG5lZWRzIHRvIGJlIHNldCBhdCB0aGUgZnVuY3Rp
b24gcHJvbG9ndWUhCisKKyAgICAgICAgLy8gRm9yIG1vc3QgYXJjaHMgdGhlIGFyZ3VtZW50IHdp
bGwgYmUgcGxhY2UgYXQgZnAgKyByZXR1cm4tYWRkcmVzcyArIGFyZy1udW0gLSBOdW1iZXItb2Yt
YXJnLXJlZ3MsIGUuZy4sCisgICAgICAgIC8vIHRoZSA1dGggYXJndW1lbnQgb24gQVJNdjcgd2ls
bCBiZSBwbGFjZWQgYXQgZnAgKyAyICsgNCAtIDQgPSBmcCArIDIgKiBzaXplb2YocHRyKiksIGhv
d2V2ZXIsIHRoYXQgYXJlIHR3byBleGNlcHRpb25zOgorCisgICAgICAgIC8vIFBPS0VfQVJHVU1F
TlRfT0ZGU0VUOiBvbiBNSVBTIGFuZCBXaW5kb3dzIHg4Niwgc3BhY2UgaXMgcmVzZXJ2ZWQgb24g
dGhlIHN0YWNrIGZvciBhbGwgYXJndW1lbnRzLCBzbyBpbiB0aGVzZQorICAgICAgICAvLyBhcmNo
cywgYSArNCBvZmZzZXQgaXMgYWRkZWQuIFRoZSA1dGggYXJndW1lbnQgb24gTUlQUyBpcyBmcCAr
IDYgKiBzaXplb2YocHRyKikuCisKKyAgICAgICAgLy8gcmV0dXJuVHlwZU9mZnNldDogV2luZG93
cyB4ODYgb25seS4gSWYgdGhlIHJldHVybiB0eXBlIHdpZGVyIHRoYW4gNjQtYml0cywgaXQncyBy
ZXR1cm5lZCB2aWEgYSBwb2ludGVyIHRoYXQgaXMKKyAgICAgICAgLy8gcGFzc2VkIGFzIGFuIGlt
cGxpY2l0IGZpcnN0IGFyZ3VtZW50LCBhbmQgYWxsIG90aGVyIGFyZ3VtZW50cyBhcmUgc2hpZnRl
ZCB0byB0aGUgcmlnaHQsIGFkZGluZyBhICsxIG9mZnNldC4KKyAgICAgICAgLy8gVGhlIDV0aCBh
cmd1bWVudCBvbiBXaW5kb3dzIHg4NiBpbiB0aGlzIHNjZW5hcmlvIGlzIGZwICsgNyAqIHNpemVv
ZihwdHIqKS4KKworICAgICAgICBjb25zdGV4cHIgaW50IHJldHVybkFkcmVzc09mZnNldCA9IDI7
CisjaWYgT1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKKyAgICAgICAgY29uc3RleHByIGludCBy
ZXR1cm5UeXBlT2Zmc2V0ID0gc3RkOjppc19zYW1lPEZ1bmN0aW9uVHJhaXRzPEZ1bmN0aW9uPjo6
UmVzdWx0VHlwZSwgU2xvd1BhdGhSZXR1cm5UeXBlPjo6dmFsdWUgPyAxIDogMDsKKyAgICAgICAg
Y29uc3RleHByIGludCBvZmZzZXQgPSBBcmdOdW0gLSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNU
RVJTICsgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyByZXR1cm5BZHJlc3NPZmZzZXQgKyByZXR1cm5U
eXBlT2Zmc2V0OworI2Vsc2UKKyAgICAgICAgY29uc3RleHByIGludCBvZmZzZXQgPSBBcmdOdW0g
LSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTICsgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyBy
ZXR1cm5BZHJlc3NPZmZzZXQ7CisjZW5kaWYKKyAgICAgICAgbG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIG9mZnNldCAq
IHNpemVvZih2b2lkKikpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgcmV0dXJuIHNjcmF0Y2hHUFI7
CisgICAgfQorCitwdWJsaWM6CisKKyAgICAvLyBHaXZlbiBhIGZ1bmN0aW9uIGFuZCBhbiBhcmd1
bWVudCBudW1iZXIsIGVpdGhlciB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFyZ3VtZW50R1BS
IGhvbGRpbmcgdGhlIGFyZ3VtZW50CisgICAgLy8gb3IgaXQgdHJpZXMgdG8gbG9hZCB0aGUgYXJn
dW1lbnQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNjcmF0Y2hHUFIgcGFzc2VkIGFzIGFyZ3Vt
ZW50LgorICAgIC8vIE5vdGUgdGhhdCB3ZSB1c2UgMCBmb3IgdGhlIDFzdCBhcmd1bWVudCwgMSBm
b3IgdGhlIDJuZCwgZXRjLgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdGlvbiwgdW5zaWdu
ZWQgQXJnTnVtPgorICAgIGNvbnN0ZXhwciBHUFJSZWcgZ2V0QXJndW1lbnRHUFIoR1BSUmVnIHNj
cmF0Y2hHUFIgPSBHUFJSZWc6OkludmFsaWRHUFJSZWcpCisgICAgeworICAgICAgICBzdGF0aWNf
YXNzZXJ0KEFyZ051bSA8PSAyNTUsICJDKysgc3RhbmRhcmQgZm9yYmlzIGZ1bmN0aW9ucyB3aXRo
IG1vcmUgdGhhbiAyNTYgYXJndW1lbnRzIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rp
b25UcmFpdHM8RnVuY3Rpb24+OjpjQ2FsbEFyaXR5KCkgPiBBcmdOdW0sICJGdW5jdGlvbiBkb2Vz
IG5vdCBoYXZlIGVub3VnaCBhcmd1bWVudHMiKTsKKworICAgICAgICBpZiBjb25zdGV4cHIgKEFy
Z051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTKQorICAgICAgICAgICAgcmV0dXJu
IGxvYWRBcmd1bWVudEZyb21TdGFjazxGdW5jdGlvbiwgQXJnTnVtPihzY3JhdGNoR1BSKTsKKwor
ICAgICAgICBVTlVTRURfUEFSQU0oc2NyYXRjaEdQUik7IC8vIE90aGVyd2lzZSB3YXJuaW5nIGR1
ZSB0byBjb25zdGV4cHIKKyAgICAgICAgc3dpdGNoIChBcmdOdW0pIHsKKyAgICAgICAgY2FzZSAw
OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMDsKKyAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICAgICAg
Y2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMjsKKyAgICAg
ICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMzsKKyNp
ZiBDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAg
ICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNDsKKyAgICAgICAgY2FzZSA1OgorICAgICAg
ICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNTsKKyNlbmRpZgorI2lmIENQVShBUk02
NCkgfHwgQ1BVKFJJU0NWNjQpCisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJldHVybiBH
UFJJbmZvOjphcmd1bWVudEdQUjY7CisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIHJldHVy
biBHUFJJbmZvOjphcmd1bWVudEdQUjc7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiTm90IGVub3Vn
aCBhcmd1bWVudEdQUnMiKTsKKyAgICAgICAgfQorICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXggMWI4Y2Q0
MjBmMTA3MDlkMWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVjNzViMjc3
Y2M1MTYwMDAwMjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHAuY3BwCkBAIC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21wYXJlV2l0
aEludGVycHJldGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAgICBZYXJy
OjpZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgpOwotICAg
ICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHgl
MDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRj
aE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRm
KGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAgICAgICAg
ICAgc25wcmludGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkp
KTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6
ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJp
dE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7Cisg
ICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0
TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBq
aXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBJbmxpbmVzLmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVhNGY3ODdl
Mi4uMGEwOTE3OGU2ZjlhOTQzOTFhMGRmMWQwMWMzOWU1Y2VjYWRmYmE0MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDEyICsxMzIs
MTIgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVj
dCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBpZiAobV9zdGF0ZSA9PSBKSVRDb2Rl
KSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAg
ICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1f
cmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6
Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUt
PnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAg
ICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJ
VENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwg
b2Zmc2V0VmVjdG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNl
dCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5l
eGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRW
ZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1f
cmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5s
ZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0PGludD4oWWFycjo6SlNSZWdFeHBS
ZXN1bHQ6OkpJVENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFMV0FZU19JTkxJ
TkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9i
amVjdCwgVk0mIHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAg
ICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51
bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdD
b250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZl
cjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
WWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCBy
ZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6
Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQog
ICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRI
b2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAg
ICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQ
YXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAg
IHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFy
dE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAg
IH0KIApAQCAtMjY2LDEyICsyNjYsMTIgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdF
eHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICAg
ICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9y
ZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciBy
ZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7
CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2
bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0
Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRP
ZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0
LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwg
c3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgfQogCiAj
aWYgRU5BQkxFKFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1LDcgKzI5NSw3IEBAIEFMV0FZU19JTkxJ
TkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVjdG9yLmdyb3cob2Zmc2V0VmVjdG9yU2l6
ZSk7CiAgICAgb2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVjdG9yLmRhdGEoKTsKICAgICB7
Ci0gICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBu
dWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRI
b2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBm
YWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0
KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0
PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VYUF9GVU5DX1RFU1Rf
REFUQV9HRU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggYTQ5OGVm
NzgwNzMxODI0ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uZjVkMTVmZjFkZjRhNDNjZGI5YzJh
ZTk2ODFiNmJjODljNjRmZGRmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5j
cHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJZYXJy
SklULmgiCiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVy
LmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBAIC0zOTYxLDEwICsz
OTYyLDggQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7
CiAKICAgICB2b2lkIGdlbmVyYXRlRW50ZXIoKQogICAgIHsKKyAgICAgICAgbV9qaXQuZW1pdEZ1
bmN0aW9uUHJvbG9ndWUoKTsKICNpZiBDUFUoWDg2XzY0KQotICAgICAgICBtX2ppdC5wdXNoKFg4
NlJlZ2lzdGVyczo6ZWJwKTsKLSAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6c3Rh
Y2tQb2ludGVyUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWJwKTsKLQogICAgICAgICBpZiAobV9w
YXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucHVzaChY
ODZSZWdpc3RlcnM6OmVieCk7CiAKQEAgLTQwNTIsNyArNDA1MSw2IEBAIGNsYXNzIFlhcnJHZW5l
cmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgICAgIGlmIChtX3BhdHRl
cm4ubV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUpCiAgICAgICAgICAgICBtX2ppdC5wb3AoWDg2UmVn
aXN0ZXJzOjplYngpOwotICAgICAgICBtX2ppdC5wb3AoWDg2UmVnaXN0ZXJzOjplYnApOwogI2Vs
aWYgQ1BVKEFSTTY0KQogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewogICAg
ICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdlKCkpCkBAIC00MDcwLDYgKzQwNjgsOSBA
QCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICNlbGlm
IENQVShNSVBTKQogICAgICAgICAvLyBEbyBub3RoaW5nCiAjZW5kaWYKKworICAgIG1faml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisKICNpZiBDUFUoQVJNNjRFKQogICAgICAgICBpZiAoT3B0
aW9uczo6dXNlSklUQ2FnZSgpKQogICAgICAgICAgICAgbV9qaXQuZmFySnVtcChNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywg
T3BlcmF0aW9uUHRyVGFnPigmdm1FbnRyeVRvWWFyckpJVEFmdGVyKSksIE9wZXJhdGlvblB0clRh
Zyk7CkBAIC00MDg2LDcgKzQwODcsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVi
bGljIFlhcnJKSVRJbmZvIHsKICAgICB9CiAKIHB1YmxpYzoKLSAgICBZYXJyR2VuZXJhdG9yKE1h
Y3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2Nr
LCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0
cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNv
bXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZN
KiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywg
WWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNp
emUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0
KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKGNvZGVCbG9j
aykKQEAgLTQxMDUsNyArNDEwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9ib3llck1vb3JlRGF0
YSA9IHN0YXRpY19jYXN0PFlhcnJCb3llck1veWVyRGF0YSo+KG1fY29kZUJsb2NrKTsKICAgICB9
CiAKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwg
WWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywg
WWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNp
emUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0
b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5
YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4s
IGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBp
bGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3Zt
KHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKG51bGxwdHIpCkBAIC00MTkxLDE2ICs0MTkyLDI4
IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGNhbGxGcmFtZVNpemVJbkJ5dGVzKSB7CiAgICAgICAg
ICAgICAvLyBDaGVjayBzdGFjayBzaXplCiAgICAgICAgICAgICBtX2ppdC5hZGRQdHIoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtY2FsbEZyYW1lU2l6ZUluQnl0ZXMpLCBNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG1fcmVncy5yZWdUMCk7Ci0jaWYgQ1BVKFg4Nl82
NCkgJiYgT1MoV0lORE9XUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29udGV4dCBpcyB0aGUg
NXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0gICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7Ci0g
ICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKFg4NlJlZ2lz
dGVyczo6ZWJwLCA3ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7Ci0jZWxpZiBD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCi0gICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRl
eHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0YWNrLgotICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdz
LnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDQgKiBzaXplb2Yodm9pZCop
KSwgbWF0Y2hpbmdDb250ZXh0KTsKKworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhl
IEpJVGVkIGZ1bmN0aW9ucyBoYXZlIDUgcGFyYW1ldGVycyBhbmQgdGhhdCB0aGUgNXRoIGFyZ3Vt
ZW50IGlzIGEgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKgorICAgICAgICAgICAgLy8gVE9ETzogQ2Fu
IHRoaXMgYmUgYSBsYW1iYT8KKyNkZWZpbmUgRlVOQ1RJT05DSEVDS1MoZnVuYykgXAorICAgIGRv
IHsgXAorICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPGZ1bmM+OjpjQ2FsbEFy
aXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7IFwKKyAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiwgRnVuY3Rp
b25UcmFpdHM8ZnVuYz46OkFyZ3VtZW50VHlwZTw0Pj46OnZhbHVlKTsgXAorICAgIH0gd2hpbGUg
KGZhbHNlKQorCisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJsb2NrOjpZYXJy
SklUQ29kZTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6WWFy
ckpJVENvZGUxNik7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJsb2NrOjpZ
YXJySklUQ29kZU1hdGNoT25seTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNv
ZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNik7CisKKyN1bmRlZiBGVU5DVElPTkNIRUNL
UworCisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA8IDV1CisgICAgICAgICAgICBH
UFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9j
azo6WWFyckpJVENvZGU4LCA0PihtX3JlZ3MucmVnVDEpOworICAgICAgICAgICAgQVNTRVJUKG1h
dGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MucmVnVDEpOwogI2Vsc2UKLSAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5tYXRjaGluZ0Nv
bnRleHQ7CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJn
dW1lbnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PigpOworICAgICAgICAgICAg
QVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0KTsKICNlbmRp
ZgogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3RhY2tPayA9IG1faml0LmJyYW5j
aFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3dPckVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhtYXRjaGluZ0NvbnRleHQsIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6b2Zmc2V0T2ZTdGFja0xp
bWl0KCkpLCBtX3JlZ3MucmVnVDApOwogCkBAIC00NjE4LDcgKzQ2MzEsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNzZW1ibGVyJiBtX2ppdDsKKyAgICBDQ2FsbEhl
bHBlcnMmIG1faml0OwogICAgIGNvbnN0IFZNKiBtX3ZtOwogICAgIFlhcnJDb2RlQmxvY2sqIG1f
Y29kZUJsb2NrOwogICAgIFlhcnJCb3llck1veWVyRGF0YSogbV9ib3llck1vb3JlRGF0YTsKQEAg
LTQ3MDYsNyArNDcxOSw3IEBAIHN0YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWls
dXJlUmVhc29uIGZhaWx1cmUpCiAKIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVy
biwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJy
Q29kZUJsb2NrJiBjb2RlQmxvY2ssIEpJVENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9B
c3NlbWJsZXIgbWFzbTsKKyAgICBDQ2FsbEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2Rl
ID09IEpJVENvbXBpbGVNb2RlOjpNYXRjaE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6
SW5jbHVkZVN1YnBhdHRlcm5zKTsKIApAQCAtNDcyNyw3ICs0NzQwLDcgQEAgdm9pZCBqaXRDb21w
aWxlKFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXpl
IGNoYXJTaXplLAogI2Vycm9yICJObyBzdXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVn
RXhwLnRlc3QgZm9yIHRoaXMgQ1BVIC8gT1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQg
aml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFj
a0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZs
YWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95
ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgTWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lz
dGVycyYgaml0UmVnaXN0ZXJzKQordm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVj
ayogbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJu
U3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwg
Y29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhl
bHBlcnMmIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6
OkVycm9yQ29kZSBlcnJvckNvZGU7CiAgICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0
ZXJuU3RyaW5nLCBmbGFncywgZXJyb3JDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJK
SVQuaAppbmRleCAyODlkNmU4MWZlNTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi4yYmMz
NzM5NTY0MTBkYmM0Yzk1ZDdkZTJmY2Y4ZTk2YzM2NWQzZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyckpJVC5oCkBAIC00Myw5ICs0MywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
Y2xhc3MgVk07CitjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKIGNs
YXNzIE1hY3JvQXNzZW1ibGVyOworY2xhc3MgVk07CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApAQCAt
MjcxLDEyICsyNzIsMTMgQEAgY2xhc3MgWWFyckNvZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95ZXJN
b3llckRhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFlhcnJDb2RlQmxvY2spOwogCi0gICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xv
d1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFy
dCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGUxNiA9
IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIg
c3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRI
b2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2Rl
TWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBV
Q1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJK
SVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBp
bnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLQogcHVibGlj
OgorCisgICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25z
dCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwg
aW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJS
X0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKiko
Y29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5n
dGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkg
WUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0
dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVS
ZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29u
dGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93
UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0
LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRj
aGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKwogICAgIFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1bHQ7
CiAKICAgICB2b2lkIHNldEZhbGxCYWNrV2l0aEZhaWx1cmVSZWFzb24oSklURmFpbHVyZVJlYXNv
biBmYWlsdXJlUmVhc29uKSB7IG1fZmFpbHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFzb247IH0KQEAg
LTMyNiw3ICszMjgsNyBAQCBwdWJsaWM6CiAgICAgSW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVT
dGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hPbmx5OFN0YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdl
dDE2Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiAgbV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAg
ICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0
Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFz
OEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTMzNiw3ICszMzgsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29k
ZTgsIFlhcnI4Qml0UHRyVGFnPihtX3JlZjguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlu
cHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAot
ICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFy
dCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBt
YXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5w
dXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVCho
YXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM0Niw3ICszNDgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklU
Q29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAg
IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5n
Q29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRj
aGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGVNYXRjaE9ubHko
KSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM1Niw3ICszNTgsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZU1hdGNoT25s
eTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPihtX21hdGNoT25seTguY29kZSgpLmV4ZWN1dGFi
bGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRl
eHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1
dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
JiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciog
aW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhv
bGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29k
ZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtNDM5LDcgKzQ0MSw3IEBAIHZvaWQg
aml0Q29tcGlsZShZYXJyUGF0dGVybiYsIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUs
IFZNKiwgWWFyckNvZGVCbG9jCiAKIGNsYXNzIFlhcnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0
Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8
WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBN
YWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGlu
ZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+
LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMm
LCBZYXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Ollh
cnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3Rl
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAppbmRl
eCBiYjgyMWNlODY3ZmUzOGUyOGYzNWNlNzA2YjliYzYwOTk0MmY3OWI0Li40ZGFhMjg3N2I0MGVj
YjQ0ZjAyZWFjMTFhNTRkOTE5ODI4NmM2YjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCkBAIC0zNSwxMiArMzUsMTUgQEAgbmFtZXNwYWNlIFlh
cnIgewogCiBzdHJ1Y3QgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgewogcHVibGljOgotI2lmIENQ
VShBUk1fVEhVTUIyKQotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gQVJNUmVn
aXN0ZXJzOjpyMDsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9IEFSTVJlZ2lz
dGVyczo6cjE7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbGVuZ3RoID0gQVJNUmVnaXN0
ZXJzOjpyMjsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBvdXRwdXQgPSBBUk1SZWdpc3Rl
cnM6OnIzOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gR1BSSW5mbzo6YXJn
dW1lbnRHUFIwOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluZGV4ID0gR1BSSW5mbzo6
YXJndW1lbnRHUFIxOworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGxlbmd0aCA9IEdQUklu
Zm86OmFyZ3VtZW50R1BSMjsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBvdXRwdXQgPSBH
UFJJbmZvOjphcmd1bWVudEdQUjM7CisKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1
cm5SZWdpc3RlciA9IEdQUkluZm86OnJldHVyblZhbHVlR1BSOworICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IEdQUkluZm86OnJldHVyblZhbHVlR1BSMjsKIAor
I2lmIENQVShBUk1fVEhVTUIyKQogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QwID0g
QVJNUmVnaXN0ZXJzOjpyNDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMSA9IEFS
TVJlZ2lzdGVyczo6cjU7CiAgICAgLy8gcjYgaXMgcmVzZXJ2ZWQgZm9yIE1hY3JvQXNzZW1ibGVy
QVJNdjcsCkBAIC00OCwxNiArNTEsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgcmVnVDIgPSBBUk1SZWdpc3RlcnM6OnI4OwogICAgIC8vIHI5IGlzIHNiIGluIEVBQkku
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5pdGlhbFN0YXJ0ID0gQVJNUmVnaXN0ZXJz
OjpyMTA7IC8vIHIxMCBpcyBTTCwgYnV0IG5vIGxvbmdlciBhIHNwZWNpYWwgcmVnaXN0ZXIuCi0K
LSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IEFSTVJlZ2lzdGVy
czo6cjA7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gQVJN
UmVnaXN0ZXJzOjpyMTsKLQogI2VsaWYgQ1BVKEFSTTY0KQogICAgIC8vIEFyZ3VtZW50IHJlZ2lz
dGVycwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gQVJNNjRSZWdpc3RlcnM6
OngwOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluZGV4ID0gQVJNNjRSZWdpc3RlcnM6
OngxOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGxlbmd0aCA9IEFSTTY0UmVnaXN0ZXJz
Ojp4MjsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBvdXRwdXQgPSBBUk02NFJlZ2lzdGVy
czo6eDM7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gQVJN
NjRSZWdpc3RlcnM6Ong0OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGZyZWVsaXN0UmVn
aXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDQ7IC8vIExvYWRlZCBmcm9tIHRoZSBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIgaW4gdGhlIHByb2xvZ3VlLgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IGZyZWVsaXN0U2l6ZVJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6Ong1OyAvLyBPbmx5IHVzZWQg
ZHVyaW5nIGluaXRpYWxpemF0aW9uLgpAQCAtNzUsMzMgKzcwLDE3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IEFSTTY0UmVnaXN0
ZXJzOjp4MTQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgZW5kT2ZTdHJpbmdBZGRyZXNz
ID0gQVJNNjRSZWdpc3RlcnM6OngxNTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJl
dHVyblJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OngwOwotICAgIHN0YXRpYyBjb25zdGV4cHIg
R1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsKLQogICAgIHN0YXRp
YyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNr
ID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKICNlbGlmIENQVShN
SVBTKQotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gTUlQU1JlZ2lzdGVyczo6
YTA7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBNSVBTUmVnaXN0ZXJzOjph
MTsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBsZW5ndGggPSBNSVBTUmVnaXN0ZXJzOjph
MjsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBvdXRwdXQgPSBNSVBTUmVnaXN0ZXJzOjph
MzsKLQogICAgIC8vIHQwIGlzIHJlc2VydmVkIGZvciBNYWNyb0Fzc2VtYmxlck1JUFMuCiAgICAg
Ly8gdDEgaXMgcmVzZXJ2ZWQgZm9yIE1hY3JvQXNzZW1ibGVyTUlQUy4KICAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyByZWdUMCA9IE1JUFNSZWdpc3RlcnM6OnQyOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIHJlZ1QxID0gTUlQU1JlZ2lzdGVyczo6dDM7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcmVnVDIgPSBNSVBTUmVnaXN0ZXJzOjp0NDsKICAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyBpbml0aWFsU3RhcnQgPSBNSVBTUmVnaXN0ZXJzOjp0NTsKLQotICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6djA7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gTUlQU1JlZ2lzdGVy
czo6djE7Ci0KICNlbGlmIENQVShYODZfNjQpCiAjaWYgIU9TKFdJTkRPV1MpCiAgICAgLy8gQXJn
dW1lbnQgcmVnaXN0ZXJzCi0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBYODZS
ZWdpc3RlcnM6OmVkaTsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9IFg4NlJl
Z2lzdGVyczo6ZXNpOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGxlbmd0aCA9IFg4NlJl
Z2lzdGVyczo6ZWR4OwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG91dHB1dCA9IFg4NlJl
Z2lzdGVyczo6ZWN4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG1hdGNoaW5nQ29udGV4
dCA9IFg4NlJlZ2lzdGVyczo6cjg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgZnJlZWxp
c3RSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjg7IC8vIExvYWRlZCBmcm9tIHRoZSBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIgaW4gdGhlIHByb2xvZ3VlLgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIGZyZWVsaXN0U2l6ZVJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gT25seSB1c2Vk
IGR1cmluZyBpbml0aWFsaXphdGlvbi4KQEAgLTEwOSwxMCArODgsNiBAQCBwdWJsaWM6CiAgICAg
Ly8gSWYgdGhlIHJldHVybiB2YWx1ZSBkb2Vzbid0IGZpdCBpbiA2NGJpdHMsIGl0cyBkZXN0aW5h
dGlvbiBpcyBwb2ludGVkIGJ5IHJjeCBhbmQgdGhlIHBhcmFtZXRlcnMgYXJlIHNoaWZ0ZWQuCiAg
ICAgLy8gaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5Lzc1NzJ6dHo0LmFz
cHgKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihNYXRjaFJlc3VsdCkgPiBzaXplb2Yodm9pZCop
LCAiTWF0Y2hSZXN1bHQgZG9lcyBub3QgZml0IGluIDY0Yml0cyIpOwotICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIGlucHV0ID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgaW5kZXggPSBYODZSZWdpc3RlcnM6OnI4OwotICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIGxlbmd0aCA9IFg4NlJlZ2lzdGVyczo6cjk7Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgb3V0cHV0ID0gWDg2UmVnaXN0ZXJzOjpyMTA7CiAjZW5kaWYKIAogICAgIC8vIFNj
cmF0Y2ggcmVnaXN0ZXJzCkBAIC0xMzUsMTkgKzExMCwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgdW5pY29kZVRlbXAgPSBYODZSZWdpc3RlcnM6OnIxNDsKICAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyBlbmRPZlN0cmluZ0FkZHJlc3MgPSBYODZSZWdpc3RlcnM6
OnIxNTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyID0gWDg2
UmVnaXN0ZXJzOjplYXg7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0
ZXIyID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0KICAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOwogICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKICAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKICAgICAvLyBBcmd1bWVu
dCByZWdpc3RlcnMKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IFJJU0NWNjRS
ZWdpc3RlcnM6OngxMDsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9IFJJU0NW
NjRSZWdpc3RlcnM6OngxMTsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBsZW5ndGggPSBS
SVNDVjY0UmVnaXN0ZXJzOjp4MTI7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgb3V0cHV0
ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDEzOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG1h
dGNoaW5nQ29udGV4dCA9IFJJU0NWNjRSZWdpc3RlcnM6OngxNDsKICAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyBmcmVlbGlzdFJlZ2lzdGVyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDE0OyAvLyBM
b2FkZWQgZnJvbSB0aGUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIGluIHRoZSBwcm9sb2d1ZS4KICAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBmcmVlbGlzdFNpemVSZWdpc3RlciA9IFJJU0NWNjRS
ZWdpc3RlcnM6OngxNTsgLy8gT25seSB1c2VkIGR1cmluZyBpbml0aWFsaXphdGlvbi4KQEAgLTE2
Miw5ICsxMzAsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5pdGlh
bFN0YXJ0ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDI4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIGVuZE9mU3RyaW5nQWRkcmVzcyA9IFJJU0NWNjRSZWdpc3RlcnM6OngyOTsKIAotICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyID0gUklTQ1Y2NFJlZ2lzdGVyczo6
eDEwOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IFJJU0NW
NjRSZWdpc3RlcnM6OngxMTsKLQogICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMHgxMDAwMCk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKDB4ZDgwMCk7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMigweGRjMDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCmluZGV4IDEzOWQxZmUzNWI1NzVjNzBhMDVhN2U3
NzI1ZGQ5ZmExZWZiNjYwMWUuLjFhZjgzMDk4MmZmNTdmMmE5M2I2NjE3OTM4ZDJkYmM1ZGVjOGEx
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0Nv
bnRleHRIb2xkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hp
bmdDb250ZXh0SG9sZGVyLmgKQEAgLTM3LDEyICszNywxMCBAQCBjbGFzcyBSZWdFeHA7CiAKIG5h
bWVzcGFjZSBZYXJyIHsKIAotY2xhc3MgWWFyckNvZGVCbG9jazsKLQogY2xhc3MgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyIHsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoK
LSAgICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBZYXJyQ29kZUJsb2NrKiwgUmVnRXhwKiwg
TWF0Y2hGcm9tKTsKKyAgICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBib29sLCBSZWdFeHAq
LCBNYXRjaEZyb20pOwogICAgIH5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKTsKIAogICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTdGFja0xpbWl0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9G
KE1hdGNoaW5nQ29udGV4dEhvbGRlciwgbV9zdGFja0xpbWl0KTsgfQpAQCAtNjEsNyArNTksNyBA
QCBwcml2YXRlOgogICAgIE1hdGNoRnJvbSBtX21hdGNoRnJvbTsKIH07CiAKLWlubGluZSBNYXRj
aGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2Rl
QmxvY2sqIHlhcnJDb2RlQmxvY2ssIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9t
KQoraW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZN
JiB2bSwgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIFJlZ0V4cCogcmVnRXhwLCBNYXRj
aEZyb20gbWF0Y2hGcm9tKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fbWF0Y2hGcm9tKG1hdGNo
RnJvbSkKIHsKQEAgLTc0LDEyICs3MiwxMiBAQCBpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQwogICAg
IH0KIAogI2lmIEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQotICAgIGlm
ICh5YXJyQ29kZUJsb2NrICYmIHlhcnJDb2RlQmxvY2stPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZl
cigpKSB7CisgICAgaWYgKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcikgewogICAgICAgICBtX3Bh
dHRlcm5Db250ZXh0QnVmZmVyID0gbV92bS5hY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZl
cigpOwogICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZSA9IFZNOjpwYXR0ZXJuQ29u
dGV4dEJ1ZmZlclNpemU7CiAgICAgfQogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oeWFyckNvZGVC
bG9jayk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik7CiAjZW5k
aWYKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448841</attachid>
            <date>2022-01-11 06:06:46 -0800</date>
            <delta_ts>2022-01-11 06:57:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220111110644.patch</filename>
            <type>text/plain</type>
            <size>31552</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLjg0ZjQ2MDBk
NGI1MTA4MDQ5OGQ2ZjEzMjE1OTllMmVhNDA5NGIxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtOTkyLDYgKzk5Miw4MSBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051
bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAgfQorCitwcml2YXRlOgorCisgICAgLy8gSW4gY2FzZSB3
ZSBhcmUgdHJ5aW5nIHRvIGdldCB0aGUgYXJndW1lbnQgZnJvbSBhIGZ1bmN0aW9uIGJ1dCB0aGVy
ZSBpc24ndCBlbm91Z2ggcmVnaXN0ZXJzLCB0aGlzCisgICAgLy8gZnVuY3Rpb24gdHJpZXMgdG8g
bG9hZCBpdCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc3AuIEluIG9yZGVyIGZvciB0aGlzIHRv
IHdvcmssIHRoZSBmcmFtZSBwb2ludGVyCisgICAgLy8gbXVzdCBiZSBzZXQgaW4gdGhlIGZ1bmN0
aW9uIHByb2xvZ3VlCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBB
cmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3RhY2soR1BSUmVn
IHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBhcmd1bWVudCIp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUlgiKTsKKworICAgICAg
ICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0Y2hHUFIgZnJvbSB0aGUgc3RhY2sg
dGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0IHRoZSBmdW5jdGlvbiBwcm9sb2d1
ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUgYXJndW1lbnQgd2lsbCBiZSBwbGFj
ZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAtIE51bWJlci1vZi1hcmctcmVncywg
ZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBvbiBBUk12NyB3aWxsIGJlIHBsYWNl
ZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVvZihwdHIqKSwgaG93ZXZlciwgdGhh
dCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6
IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyByZXNlcnZlZCBvbiB0aGUgc3RhY2sg
Zm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAgICAgIC8vIGFyY2hzLCBhICs0IG9m
ZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBNSVBTIGlzIGZwICsgNiAqIHNpemVv
ZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zmc2V0OiBXaW5kb3dzIHg4NiBvbmx5
LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1iaXRzLCBpdCdzIHJldHVybmVkIHZp
YSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNzZWQgYXMgYW4gaW1wbGljaXQgZmly
c3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRzIGFyZSBzaGlmdGVkIHRvIHRoZSBy
aWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAvLyBUaGUgNXRoIGFyZ3VtZW50IG9u
IFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAgKyA3ICogc2l6ZW9mKHB0ciopLgor
CisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNzT2Zmc2V0ID0gMjsKKyNpZiBPUyhX
SU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVP
ZmZzZXQgPSBzaXplb2YodHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8RnVuY3Rpb24+OjpSZXN1bHRU
eXBlKSA+PSA4OworICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJF
Ul9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFk
cmVzc09mZnNldCArIHJldHVyblR5cGVPZmZzZXQ7CisjZWxzZQorICAgICAgICBjb25zdGV4cHIg
aW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tF
X0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkcmVzc09mZnNldDsKKyNlbmRpZgorICAgICAgICBs
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0Y2hHUFIpOworICAgICAg
ICByZXR1cm4gc2NyYXRjaEdQUjsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIC8vIEdpdmVuIGEg
ZnVuY3Rpb24gYW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVuY3Rpb24gcmV0
dXJucyB0aGUgYXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAvLyBvciBpdCB0
cmllcyB0byBsb2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc2NyYXRj
aEdQUiBwYXNzZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVzZSAwIGZvciB0
aGUgMXN0IGFyZ3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBnZXRB
cmd1bWVudEdQUihHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAg
ICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBm
b3JiaXMgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxGdW5jdGlvbj46OmNDYWxsQXJpdHkoKSA+IEFy
Z051bSwgIkZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFyZ3VtZW50cyIpOworCisgICAg
ICAgIGlmIGNvbnN0ZXhwciAoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMp
CisgICAgICAgICAgICByZXR1cm4gbG9hZEFyZ3VtZW50RnJvbVN0YWNrPEZ1bmN0aW9uLCBBcmdO
dW0+KHNjcmF0Y2hHUFIpOworCisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoR1BSKTsgLy8g
T3RoZXJ3aXNlIHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhwcgorICAgICAgICBzd2l0Y2ggKEFyZ051
bSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1l
bnRHUFIwOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJn
dW1lbnRHUFIxOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6
YXJndW1lbnRHUFIyOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5m
bzo6YXJndW1lbnRHUFIzOworI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQorICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI0OworICAg
ICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI1Owor
I2VuZGlmCisjaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyAgICAgICAgY2FzZSA2Ogor
ICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNjsKKyAgICAgICAgY2FzZSA3
OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNzsKKyNlbmRpZgorICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJOb3QgZW5vdWdoIGFyZ3VtZW50R1BScyIpOworICAgICAgICB9CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmViMWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40
NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRiNGFkMzJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVn
RXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgU3RyaW5nJiBzLCBpbnQgc3Rh
cnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEpJVENvZGU6
IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxvY2smIGNvZGVCbG9jayA9ICptX3JlZ0V4
cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOwot
ICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNo
QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNo
T25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAg
ICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQi
IFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAppbmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0
ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi4wYTA5MTc4ZTZmOWE5NDM5MWEwZGYxZDAxYzM5ZTVjZWNh
ZGZiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlm
IChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1f
cmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20p
OworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1h
dGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0Owor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJh
Y3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBD
b250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQs
IHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0
KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8
aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29kZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyAr
MTQ2LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9i
amVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlmIChtX3N0YXRl
ID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKTsKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQo
KSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0
b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZ
U19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckds
b2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlz
LCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhw
Q29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywg
bWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0
ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4o
b2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2NiwxMiBAQCBBTFdBWVNfSU5M
SU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxP
ckdsb2JhbE9iamVjdAogICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0
Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQo
KSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQo
KSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5j
aGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFj
dGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENv
bnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0
ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRl
eHQpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyAr
Mjk1LDcgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpT
R2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3Iu
Z3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92
ZWN0b3IuZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1
bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZz
ZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAj
aWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi45
ZjU4NTgyYzBhOTgyMGVhOTA0ODZjMTlkZGU5YzZlNGFjZDk0ZTY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
Vk0uaCIKQEAgLTM5NjEsMTAgKzM5NjIsOCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDog
cHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgIHZvaWQgZ2VuZXJhdGVFbnRlcigpCiAgICAgewor
ICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogI2lmIENQVShYODZfNjQpCi0g
ICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICBtX2ppdC5tb3Zl
KE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplYnAp
OwotCiAgICAgICAgIGlmIChtX3BhdHRlcm4ubV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUpCiAgICAg
ICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKIApAQCAtNDA1Miw3ICs0MDUx
LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAK
ICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAg
ICAgIG1faml0LnBvcChYODZSZWdpc3RlcnM6OmVieCk7Ci0gICAgICAgIG1faml0LnBvcChYODZS
ZWdpc3RlcnM6OmVicCk7CiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1
cnJvZ2F0ZVBhaXJzKSB7CiAgICAgICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkK
QEAgLTQwNzAsNiArNDA2OCw5IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMg
WWFyckpJVEluZm8gewogI2VsaWYgQ1BVKE1JUFMpCiAgICAgICAgIC8vIERvIG5vdGhpbmcKICNl
bmRpZgorCisgICAgbV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKwogI2lmIENQVShBUk02
NEUpCiAgICAgICAgIGlmIChPcHRpb25zOjp1c2VKSVRDYWdlKCkpCiAgICAgICAgICAgICBtX2pp
dC5mYXJKdW1wKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJldGFnQ29kZVB0cjx2b2lk
KiwgQ0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJUYWc+KCZ2bUVudHJ5VG9ZYXJySklUQWZ0
ZXIpKSwgT3BlcmF0aW9uUHRyVGFnKTsKQEAgLTQwODYsNyArNDA4Nyw3IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgIH0KIAogcHVibGljOgot
ICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJy
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVy
biYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6
ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhl
bHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0
IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBw
YXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1v
ZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwg
bV9jb2RlQmxvY2soY29kZUJsb2NrKQpAQCAtNDEwNSw3ICs0MTA2LDcgQEAgcHVibGljOgogICAg
ICAgICBtX2JveWVyTW9vcmVEYXRhID0gc3RhdGljX2Nhc3Q8WWFyckJveWVyTW95ZXJEYXRhKj4o
bV9jb2RlQmxvY2spOwogICAgIH0KIAotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXIm
IGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0
IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBw
YXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1v
ZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZ
YXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZ
YXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6
ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9qaXQo
aml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2sobnVsbHB0cikK
QEAgLTQxOTEsMTcgKzQxOTIsMjUgQEAgcHVibGljOgogICAgICAgICBpZiAoY2FsbEZyYW1lU2l6
ZUluQnl0ZXMpIHsKICAgICAgICAgICAgIC8vIENoZWNrIHN0YWNrIHNpemUKICAgICAgICAgICAg
IG1faml0LmFkZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jYWxsRnJhbWVTaXpl
SW5CeXRlcyksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbV9yZWdzLnJl
Z1QwKTsKLSNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgLy8gbWF0
Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFj
ay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4
dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hp
bmdDb250ZXh0KTsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAgICAgICAg
ICAgIC8vIG1hdGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBv
biB0aGUgc3RhY2suCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRj
aGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgNCAqIHNpemVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwotI2Vsc2UKLSAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5t
YXRjaGluZ0NvbnRleHQ7Ci0jZW5kaWYKKworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQg
dGhlIEpJVGVkIGZ1bmN0aW9ucyBoYXZlIDUgcGFyYW1ldGVycyBhbmQgdGhhdCB0aGUgNXRoIGFy
Z3VtZW50IGlzIGEgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKgorICAgICAgICAgICAgLy8gVE9ETzog
Q2FuIHRoaXMgYmUgYSBsYW1iYT8KKyNkZWZpbmUgRlVOQ1RJT05DSEVDS1MoZnVuYykgXAorICAg
IGRvIHsgXAorICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPGZ1bmM+OjpjQ2Fs
bEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7IFwKKyAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiwgRnVu
Y3Rpb25UcmFpdHM8ZnVuYz46OkFyZ3VtZW50VHlwZTw0Pj46OnZhbHVlKTsgXAorICAgIH0gd2hp
bGUgKGZhbHNlKQorCisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJsb2NrOjpZ
YXJySklUQ29kZTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6
WWFyckpJVENvZGUxNik7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJsb2Nr
OjpZYXJySklUQ29kZU1hdGNoT25seTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFy
ckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNik7CisKKyN1bmRlZiBGVU5DVElPTkNI
RUNLUworCisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJn
dW1lbnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PihtX3JlZ3MubWF0Y2hpbmdD
b250ZXh0KTsKKyAgICAgICAgICAgIEFTU0VSVChtYXRjaGluZ0NvbnRleHQgPT0gbV9yZWdzLm1h
dGNoaW5nQ29udGV4dCk7CisKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN0YWNr
T2sgPSBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93T3JFcXVhbCwgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MobWF0Y2hpbmdDb250ZXh0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXI6
Om9mZnNldE9mU3RhY2tMaW1pdCgpKSwgbV9yZWdzLnJlZ1QwKTsKIAogICAgICAgICAgICAgLy8g
RXhjZWVkZWQgc3RhY2sgbGltaXQsIHB1bnQgdG8gdGhlIGludGVycHJldGVyLgpAQCAtNDYxOCw3
ICs0NjI3LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNYWNyb0Fzc2VtYmxl
ciYgbV9qaXQ7CisgICAgQ0NhbGxIZWxwZXJzJiBtX2ppdDsKICAgICBjb25zdCBWTSogbV92bTsK
ICAgICBZYXJyQ29kZUJsb2NrKiBtX2NvZGVCbG9jazsKICAgICBZYXJyQm95ZXJNb3llckRhdGEq
IG1fYm95ZXJNb29yZURhdGE7CkBAIC00NzA2LDcgKzQ3MTUsNyBAQCBzdGF0aWMgdm9pZCBkdW1w
Q29tcGlsZUZhaWx1cmUoSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlKQogCiB2b2lkIGppdENvbXBp
bGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUg
Y2hhclNpemUsIFZNKiB2bSwgWWFyckNvZGVCbG9jayYgY29kZUJsb2NrLCBKSVRDb21waWxlTW9k
ZSBtb2RlKQogewotICAgIE1hY3JvQXNzZW1ibGVyIG1hc207CisgICAgQ0NhbGxIZWxwZXJzIG1h
c207CiAKICAgICBBU1NFUlQobW9kZSA9PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hPbmx5IHx8IG1v
ZGUgPT0gSklUQ29tcGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJucyk7CiAKQEAgLTQ3MjcsNyAr
NDczNiw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBw
YXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwKICNlcnJvciAiTm8gc3VwcG9ydCBmb3Ig
aW5saW5lZCBKSVQnaW5nIG9mIFJlZ0V4cC50ZXN0IGZvciB0aGlzIENQVSAvIE9TIGNvbWJpbmF0
aW9uLiIKICNlbmRpZgogCi12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiBt
X2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJp
bmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3MsIENoYXJTaXplIGNoYXJTaXplLCBjb25z
dCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95ZXJNb29yZURhdGEsIE1hY3JvQXNzZW1i
bGVyJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKK3ZvaWQgaml0Q29tcGls
ZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIs
IGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFn
cywgQ2hhclNpemUgY2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBi
b3llck1vb3JlRGF0YSwgQ0NhbGxIZWxwZXJzJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJl
Z2lzdGVycykKIHsKICAgICBZYXJyOjpFcnJvckNvZGUgZXJyb3JDb2RlOwogICAgIFlhcnI6Ollh
cnJQYXR0ZXJuIHBhdHRlcm4ocGF0dGVyblN0cmluZywgZmxhZ3MsIGVycm9yQ29kZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKaW5kZXggMjg5ZDZlODFmZTUxN2FhZGZiZTQ5OGQx
ODVlMzA3MjA1ZTZhMDczMy4uMmJjMzczOTU2NDEwZGJjNGM5NWQ3ZGUyZmNmOGU5NmMzNjVkM2Zl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaApAQCAtNDMsOSArNDMsMTAgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIFZNOworY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xh
c3MgRXhlY3V0YWJsZVBvb2w7CiBjbGFzcyBNYWNyb0Fzc2VtYmxlcjsKK2NsYXNzIFZNOwogCiBu
YW1lc3BhY2UgWWFyciB7CiAKQEAgLTI3MSwxMiArMjcyLDEzIEBAIGNsYXNzIFlhcnJDb2RlQmxv
Y2sgOiBwdWJsaWMgWWFyckJveWVyTW95ZXJEYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShZYXJyQ29kZUJsb2NrKTsKIAotICAgIHVz
aW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlu
cHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAg
IHVzaW5nIFlhcnJKSVRDb2RlMTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFy
KiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91
dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsK
LSAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCop
KGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVu
Z3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJf
Q0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5U
eXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lz
dGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0
KSBZQVJSX0NBTEw7Ci0KIHB1YmxpYzoKKworICAgIHVzaW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQ
YXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQs
IFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIq
IG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlMTYgPSBT
bG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0
YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1h
dGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQ
VVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklU
Q29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5w
dXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNo
aW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisKICAgICBZYXJy
Q29kZUJsb2NrKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBzZXRGYWxsQmFja1dpdGhGYWlsdXJl
UmVhc29uKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZVJlYXNvbikgeyBtX2ZhaWx1cmVSZWFzb24g
PSBmYWlsdXJlUmVhc29uOyB9CkBAIC0zMjYsNyArMzI4LDcgQEAgcHVibGljOgogICAgIElubGlu
ZVN0YXRzJiBnZXQ4Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiBtX21hdGNoT25seThTdGF0czsg
fQogICAgIElubGluZVN0YXRzJiBnZXQxNkJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gIG1fbWF0
Y2hPbmx5MTZTdGF0czsgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciog
aW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRj
aGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVj
dXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
aW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAg
IHsKICAgICAgICAgQVNTRVJUKGhhczhCaXRDb2RlKCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0z
MzYsNyArMzM4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdD
RnVuY3Rpb25QdHI8WWFyckpJVENvZGU4LCBZYXJyOEJpdFB0clRhZz4obV9yZWY4LmNvZGUoKS5l
eGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBtYXRjaGlu
Z0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFy
KiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1h
dGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4
ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
LCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAg
ICAgewogICAgICAgICBBU1NFUlQoaGFzMTZCaXRDb2RlKCkpOwogI2lmIENQVShBUk02NEUpCkBA
IC0zNDYsNyArMzQ4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50
YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGUxNiwgWWFycjE2Qml0UHRyVGFnPihtX3JlZjE2LmNv
ZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBt
YXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0
IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShj
b25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNo
aW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJU
KGhhczhCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zNTYsNyArMzU4
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25Q
dHI8WWFyckpJVENvZGVNYXRjaE9ubHk4LCBZYXJyTWF0Y2hPbmx5OEJpdFB0clRhZz4obV9tYXRj
aE9ubHk4LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwg
bnVsbHB0ciwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhl
Y3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgs
IE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0
IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVu
Z3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChoYXMxNkJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAg
LTQzOSw3ICs0NDEsNyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mLCBTdHJpbmcmIHBh
dHRlcm5TdHJpbmcsIENoYXJTaXplLCBWTSosIFlhcnJDb2RlQmxvYwogCiBjbGFzcyBZYXJySklU
UmVnaXN0ZXJzOwogCi12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiwgY29u
c3QgU3RyaW5nJiwgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0IFZNKiwg
WWFyckJveWVyTW95ZXJEYXRhJiwgTWFjcm9Bc3NlbWJsZXImLCBZYXJySklUUmVnaXN0ZXJzJik7
Cit2b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiwgY29uc3QgU3RyaW5nJiwg
T3B0aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0IFZNKiwgWWFyckJveWVyTW95
ZXJEYXRhJiwgQ0NhbGxIZWxwZXJzJiwgWWFyckpJVFJlZ2lzdGVycyYpOwogI2VuZGlmCiAKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpZYXJyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklUUmVnaXN0ZXJzLmgKaW5kZXggYmI4MjFjZTg2N2ZlMzhlMjhmMzVjZTcwNmI5YmM2MDk5
NDJmNzliNC4uOGU3NTAwMjdkOGFiMTU1YzdmN2RhNTgwODZhOTM5MDVkMzc4OGU5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaApAQCAtMzUsMTIg
KzM1LDIxIEBAIG5hbWVzcGFjZSBZYXJyIHsKIAogc3RydWN0IFlhcnJKSVREZWZhdWx0UmVnaXN0
ZXJzIHsKIHB1YmxpYzoKLSNpZiBDUFUoQVJNX1RIVU1CMikKLSAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyBpbnB1dCA9IEFSTVJlZ2lzdGVyczo6cjA7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgaW5kZXggPSBBUk1SZWdpc3RlcnM6OnIxOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIGxlbmd0aCA9IEFSTVJlZ2lzdGVyczo6cjI7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgb3V0cHV0ID0gQVJNUmVnaXN0ZXJzOjpyMzsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJl
ZyBpbnB1dCA9IEdQUkluZm86OmFyZ3VtZW50R1BSMDsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBpbmRleCA9IEdQUkluZm86OmFyZ3VtZW50R1BSMTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyBsZW5ndGggPSBHUFJJbmZvOjphcmd1bWVudEdQUjI7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgb3V0cHV0ID0gR1BSSW5mbzo6YXJndW1lbnRHUFIzOworCisjaWYgTlVNQkVS
X09GX0FSR1VNRU5UX1JFR0lTVEVSUyA+IDR1CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcg
bWF0Y2hpbmdDb250ZXh0ID0gR1BSSW5mbzo6YXJndW1lbnRHUFIzOworI2Vsc2UKKyAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBHUFJJbmZvOjpyZWdUMTsKKyNl
bmRpZgogCisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUjsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5S
ZWdpc3RlcjIgPSBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjI7CisKKyNpZiBDUFUoQVJNX1RIVU1C
MikKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdUMCA9IEFSTVJlZ2lzdGVyczo6cjQ7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVnVDEgPSBBUk1SZWdpc3RlcnM6OnI1Owog
ICAgIC8vIHI2IGlzIHJlc2VydmVkIGZvciBNYWNyb0Fzc2VtYmxlckFSTXY3LApAQCAtNDgsMTcg
KzU3LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1QyID0gQVJN
UmVnaXN0ZXJzOjpyODsKICAgICAvLyByOSBpcyBzYiBpbiBFQUJJLgogICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIGluaXRpYWxTdGFydCA9IEFSTVJlZ2lzdGVyczo6cjEwOyAvLyByMTAgaXMg
U0wsIGJ1dCBubyBsb25nZXIgYSBzcGVjaWFsIHJlZ2lzdGVyLgotCi0gICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOwotICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IEFSTVJlZ2lzdGVyczo6cjE7Ci0K
ICNlbGlmIENQVShBUk02NCkKICAgICAvLyBBcmd1bWVudCByZWdpc3RlcnMKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBpbnB1dCA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBpbmRleCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBsZW5ndGggPSBBUk02NFJlZ2lzdGVyczo6eDI7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgb3V0cHV0ID0gQVJNNjRSZWdpc3RlcnM6OngzOwotICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIG1hdGNoaW5nQ29udGV4dCA9IEFSTTY0UmVnaXN0ZXJzOjp4NDsK
ICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBmcmVlbGlzdFJlZ2lzdGVyID0gQVJNNjRSZWdp
c3RlcnM6Ong0OyAvLyBMb2FkZWQgZnJvbSB0aGUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIGluIHRo
ZSBwcm9sb2d1ZS4KICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBmcmVlbGlzdFNpemVSZWdp
c3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4NTsgLy8gT25seSB1c2VkIGR1cmluZyBpbml0aWFsaXph
dGlvbi4KIApAQCAtNzUsNDQgKzc1LDIzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTQ7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgZW5kT2ZTdHJpbmdBZGRyZXNzID0gQVJNNjRSZWdpc3Rl
cnM6OngxNTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyID0g
QVJNNjRSZWdpc3RlcnM6OngwOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJl
Z2lzdGVyMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsKLQogICAgIHN0YXRpYyBjb25zdGV4cHIgTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKICNlbGlmIENQVShNSVBTKQotICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gTUlQU1JlZ2lzdGVyczo6YTA7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBNSVBTUmVnaXN0ZXJzOjphMTsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBsZW5ndGggPSBNSVBTUmVnaXN0ZXJzOjphMjsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBvdXRwdXQgPSBNSVBTUmVnaXN0ZXJzOjphMzsKLQogICAgIC8vIHQw
IGlzIHJlc2VydmVkIGZvciBNYWNyb0Fzc2VtYmxlck1JUFMuCiAgICAgLy8gdDEgaXMgcmVzZXJ2
ZWQgZm9yIE1hY3JvQXNzZW1ibGVyTUlQUy4KICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBy
ZWdUMCA9IE1JUFNSZWdpc3RlcnM6OnQyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJl
Z1QxID0gTUlQU1JlZ2lzdGVyczo6dDM7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmVn
VDIgPSBNSVBTUmVnaXN0ZXJzOjp0NDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbml0
aWFsU3RhcnQgPSBNSVBTUmVnaXN0ZXJzOjp0NTsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIHJldHVyblJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6djA7Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gTUlQU1JlZ2lzdGVyczo6djE7Ci0KICNlbGlm
IENQVShYODZfNjQpCiAjaWYgIU9TKFdJTkRPV1MpCiAgICAgLy8gQXJndW1lbnQgcmVnaXN0ZXJz
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBYODZSZWdpc3RlcnM6OmVkaTsK
LSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9IFg4NlJlZ2lzdGVyczo6ZXNpOwot
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGxlbmd0aCA9IFg4NlJlZ2lzdGVyczo6ZWR4Owot
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG91dHB1dCA9IFg4NlJlZ2lzdGVyczo6ZWN4Owot
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG1hdGNoaW5nQ29udGV4dCA9IFg4NlJlZ2lzdGVy
czo6cjg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgZnJlZWxpc3RSZWdpc3RlciA9IFg4
NlJlZ2lzdGVyczo6cjg7IC8vIExvYWRlZCBmcm9tIHRoZSBNYXRjaGluZ0NvbnRleHRIb2xkZXIg
aW4gdGhlIHByb2xvZ3VlLgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGZyZWVsaXN0U2l6
ZVJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyOTsgLy8gT25seSB1c2VkIGR1cmluZyBpbml0aWFs
aXphdGlvbi4KICNlbHNlCiAgICAgLy8gSWYgdGhlIHJldHVybiB2YWx1ZSBkb2Vzbid0IGZpdCBp
biA2NGJpdHMsIGl0cyBkZXN0aW5hdGlvbiBpcyBwb2ludGVkIGJ5IHJjeCBhbmQgdGhlIHBhcmFt
ZXRlcnMgYXJlIHNoaWZ0ZWQuCiAgICAgLy8gaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11
cy9saWJyYXJ5Lzc1NzJ6dHo0LmFzcHgKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihNYXRjaFJl
c3VsdCkgPiBzaXplb2Yodm9pZCopLCAiTWF0Y2hSZXN1bHQgZG9lcyBub3QgZml0IGluIDY0Yml0
cyIpOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gWDg2UmVnaXN0ZXJzOjpl
ZHg7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBYODZSZWdpc3RlcnM6OnI4
OwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGxlbmd0aCA9IFg4NlJlZ2lzdGVyczo6cjk7
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgb3V0cHV0ID0gWDg2UmVnaXN0ZXJzOjpyMTA7
CiAjZW5kaWYKIAogICAgIC8vIFNjcmF0Y2ggcmVnaXN0ZXJzCkBAIC0xMzUsMjAgKzExNCwxMiBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgdW5pY29kZVRlbXAgPSBYODZS
ZWdpc3RlcnM6OnIxNDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBlbmRPZlN0cmluZ0Fk
ZHJlc3MgPSBYODZSZWdpc3RlcnM6OnIxNTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IHJldHVyblJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0KICAgICBzdGF0
aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBs
YW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9n
YXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOwogICAgIHN0YXRp
YyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0
ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKICAgICBzdGF0aWMg
Y29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoUklT
Q1Y2NCkKICAgICAvLyBBcmd1bWVudCByZWdpc3RlcnMKLSAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBpbnB1dCA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMDsKLSAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyBpbmRleCA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMTsKLSAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyBsZW5ndGggPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTI7Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgb3V0cHV0ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDEzOwotICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIG1hdGNoaW5nQ29udGV4dCA9IFJJU0NWNjRSZWdpc3RlcnM6Ongx
NDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBmcmVlbGlzdFJlZ2lzdGVyID0gUklTQ1Y2
NFJlZ2lzdGVyczo6eDE0OyAvLyBMb2FkZWQgZnJvbSB0aGUgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
IGluIHRoZSBwcm9sb2d1ZS4KICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBmcmVlbGlzdFNp
emVSZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OngxNTsgLy8gT25seSB1c2VkIGR1cmluZyBp
bml0aWFsaXphdGlvbi4KIApAQCAtMTYyLDkgKzEzMyw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBpbml0aWFsU3RhcnQgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4Mjg7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgZW5kT2ZTdHJpbmdBZGRyZXNzID0gUklTQ1Y2NFJl
Z2lzdGVyczo6eDI5OwogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0
ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTA7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcg
cmV0dXJuUmVnaXN0ZXIyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDExOwotCiAgICAgc3RhdGljIGNv
bnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNC
YXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEwMDAwKTsKICAgICBzdGF0aWMg
Y29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRh
ZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsKICAgICBzdGF0aWMgY29u
c3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcg
PSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKaW5kZXgg
MTM5ZDFmZTM1YjU3NWM3MGEwNWE3ZTc3MjVkZDlmYTFlZmI2NjAxZS4uMWFmODMwOTgyZmY1N2Yy
YTkzYjY2MTc5MzhkMmRiYzVkZWM4YTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaApAQCAtMzcsMTIgKzM3LDEw
IEBAIGNsYXNzIFJlZ0V4cDsKIAogbmFtZXNwYWNlIFlhcnIgewogCi1jbGFzcyBZYXJyQ29kZUJs
b2NrOwotCiBjbGFzcyBNYXRjaGluZ0NvbnRleHRIb2xkZXIgewogICAgIFdURl9GT1JCSURfSEVB
UF9BTExPQ0FUSU9OOwogcHVibGljOgotICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYsIFlh
cnJDb2RlQmxvY2sqLCBSZWdFeHAqLCBNYXRjaEZyb20pOworICAgIE1hdGNoaW5nQ29udGV4dEhv
bGRlcihWTSYsIGJvb2wsIFJlZ0V4cCosIE1hdGNoRnJvbSk7CiAgICAgfk1hdGNoaW5nQ29udGV4
dEhvbGRlcigpOwogCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlN0YWNrTGltaXQoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTWF0Y2hpbmdDb250ZXh0SG9sZGVyLCBtX3N0YWNrTGlt
aXQpOyB9CkBAIC02MSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgTWF0Y2hGcm9tIG1fbWF0Y2hG
cm9tOwogfTsKIAotaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0
SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckNvZGVCbG9jaywgUmVnRXhwKiByZWdF
eHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCitpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpN
YXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBib29sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZl
ciwgUmVnRXhwKiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCiAgICAgOiBtX3ZtKHZtKQog
ICAgICwgbV9tYXRjaEZyb20obWF0Y2hGcm9tKQogewpAQCAtNzQsMTIgKzcyLDEyIEBAIGlubGlu
ZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlh
cnJDb2RlQmxvY2sqIHlhcnJDCiAgICAgfQogCiAjaWYgRU5BQkxFKFlBUlJfSklUX0FMTF9QQVJF
TlNfRVhQUkVTU0lPTlMpCi0gICAgaWYgKHlhcnJDb2RlQmxvY2sgJiYgeWFyckNvZGVCbG9jay0+
dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCkpIHsKKyAgICBpZiAodXNlc1BhdHRlcm5Db250ZXh0
QnVmZmVyKSB7CiAgICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXIgPSBtX3ZtLmFjcXVpcmVS
ZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZm
ZXJTaXplID0gVk06OnBhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZTsKICAgICB9CiAjZWxzZQotICAg
IFVOVVNFRF9QQVJBTSh5YXJyQ29kZUJsb2NrKTsKKyAgICBVTlVTRURfUEFSQU0odXNlc1BhdHRl
cm5Db250ZXh0QnVmZmVyKTsKICNlbmRpZgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448845</attachid>
            <date>2022-01-11 06:57:29 -0800</date>
            <delta_ts>2022-01-11 08:05:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220111105727.patch</filename>
            <type>text/plain</type>
            <size>25144</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi41MDBkNmI0ZDQ3MWQyZTEx
NWFhMTkzOWMxYzk3N2JjZTViMzRkOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIGFuIHVubmVjZXNzYXJ5IHBv
aW50ZXIgZnJvbSB0aGUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyCisgICAgICAgIGNvbnN0cnVjdG9y
LgorCisgICAgICAgIDQuIEZpeGVkIHNvbWUgd2FybmluZ3MgaW4gdGhlIFlhcnJKSVQgY29kZSBo
ZXJlIGFuZCB0aGVyZS4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxp
bmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpS
ZWdFeHA6Om1hdGNoSW5saW5lKToKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorICAgICAg
ICAqIHlhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oOgorICAgICAgICAoSlNDOjpZYXJy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcik6CisKIDIwMjIt
MDEtMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cg
bG9vcCB0aWVyIHVwIHRvIHRoZSBBaXIgdGllcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMDc4YmJlMzllYWJiNWUzZWQyYzhj
YjhjMTgwMmMwNThmYjM2Y2FmOS4uZThiN2FlZmM0ZTc5ZGM1ZTFlZWViNmExYTFjMDY3ODBmYTdj
MzNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCkBAIC0yODg4LDcgKzI4ODgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlUmVnRXhwVGVzdElubGluZShOb2RlKiBub2RlKQogewogICAgIFVOVVNFRF9QQVJBTShub2Rl
KTsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gY29tcGlsZVJlZ0V4cFRl
c3Qobm9kZSk7CisgICAgY29tcGlsZVJlZ0V4cFRlc3Qobm9kZSk7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKaW5kZXggYWZjNWRjYzg5OWU3NTYz
MzlhODExNjM0ZTIzYzIxN2JkYTFjY2Y2NC4uODRmNDYwMGQ0YjUxMDgwNDk4ZDZmMTMyMTU5OWUy
ZWE0MDk0YjEzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhl
bHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCkBA
IC05OTIsNiArOTkyLDgxIEBAIHB1YmxpYzoKICNlbmRpZgogICAgICAgICByZXR1cm4gcHJlZmVy
cmVkQXJndW1lbnRKU1I8T3BlcmF0aW9uVHlwZSwgQXJnTnVtPigpLnBheWxvYWRHUFIoKTsKICAg
ICB9CisKK3ByaXZhdGU6CisKKyAgICAvLyBJbiBjYXNlIHdlIGFyZSB0cnlpbmcgdG8gZ2V0IHRo
ZSBhcmd1bWVudCBmcm9tIGEgZnVuY3Rpb24gYnV0IHRoZXJlIGlzbid0IGVub3VnaCByZWdpc3Rl
cnMsIHRoaXMKKyAgICAvLyBmdW5jdGlvbiB0cmllcyB0byBsb2FkIGl0IGZyb20gdGhlIHN0YWNr
IHVzaW5nIHRoZSBzcC4gSW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yaywgdGhlIGZyYW1lIHBvaW50
ZXIKKyAgICAvLyBtdXN0IGJlIHNldCBpbiB0aGUgZnVuY3Rpb24gcHJvbG9ndWUKKyAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgRnVuY3Rpb24sIHVuc2lnbmVkIEFyZ051bT4KKyAgICBjb25zdGV4cHIg
R1BSUmVnIGxvYWRBcmd1bWVudEZyb21TdGFjayhHUFJSZWcgc2NyYXRjaEdQUikKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChzY3JhdGNoR1BSICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZywgIlZhbGlk
IEdQUiBuZWVkZWQgdG8gbG9hZCB0aGlzIGFyZ3VtZW50Iik7CisgICAgICAgIHN0YXRpY19hc3Nl
cnQoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMsICJTaG91bGQgcmV0dXJu
IEdQUkluZm86OmFyZ3VtZW50R1BSWCIpOworCisgICAgICAgIC8vIFRvIGxvYWQgdGhlIGFyZ3Vt
ZW50IGludG8gc2NyYXRjaEdQUiBmcm9tIHRoZSBzdGFjayB0aGUgZnJhbWUgcG9pbnRlciBuZWVk
cyB0byBiZSBzZXQgYXQgdGhlIGZ1bmN0aW9uIHByb2xvZ3VlIQorCisgICAgICAgIC8vIEZvciBt
b3N0IGFyY2hzIHRoZSBhcmd1bWVudCB3aWxsIGJlIHBsYWNlIGF0IGZwICsgcmV0dXJuLWFkZHJl
c3MgKyBhcmctbnVtIC0gTnVtYmVyLW9mLWFyZy1yZWdzLCBlLmcuLAorICAgICAgICAvLyB0aGUg
NXRoIGFyZ3VtZW50IG9uIEFSTXY3IHdpbGwgYmUgcGxhY2VkIGF0IGZwICsgMiArIDQgLSA0ID0g
ZnAgKyAyICogc2l6ZW9mKHB0ciopLCBob3dldmVyLCB0aGF0IGFyZSB0d28gZXhjZXB0aW9uczoK
KworICAgICAgICAvLyBQT0tFX0FSR1VNRU5UX09GRlNFVDogb24gTUlQUyBhbmQgV2luZG93cyB4
ODYsIHNwYWNlIGlzIHJlc2VydmVkIG9uIHRoZSBzdGFjayBmb3IgYWxsIGFyZ3VtZW50cywgc28g
aW4gdGhlc2UKKyAgICAgICAgLy8gYXJjaHMsIGEgKzQgb2Zmc2V0IGlzIGFkZGVkLiBUaGUgNXRo
IGFyZ3VtZW50IG9uIE1JUFMgaXMgZnAgKyA2ICogc2l6ZW9mKHB0ciopLgorCisgICAgICAgIC8v
IHJldHVyblR5cGVPZmZzZXQ6IFdpbmRvd3MgeDg2IG9ubHkuIElmIHRoZSByZXR1cm4gdHlwZSB3
aWRlciB0aGFuIDY0LWJpdHMsIGl0J3MgcmV0dXJuZWQgdmlhIGEgcG9pbnRlciB0aGF0IGlzCisg
ICAgICAgIC8vIHBhc3NlZCBhcyBhbiBpbXBsaWNpdCBmaXJzdCBhcmd1bWVudCwgYW5kIGFsbCBv
dGhlciBhcmd1bWVudHMgYXJlIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LCBhZGRpbmcgYSArMSBvZmZz
ZXQuCisgICAgICAgIC8vIFRoZSA1dGggYXJndW1lbnQgb24gV2luZG93cyB4ODYgaW4gdGhpcyBz
Y2VuYXJpbyBpcyBmcCArIDcgKiBzaXplb2YocHRyKikuCisKKyAgICAgICAgY29uc3RleHByIGlu
dCByZXR1cm5BZHJlc3NPZmZzZXQgPSAyOworI2lmIE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQp
CisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuVHlwZU9mZnNldCA9IHNpemVvZih0eXBlbmFt
ZSBGdW5jdGlvblRyYWl0czxGdW5jdGlvbj46OlJlc3VsdFR5cGUpID49IDg7CisgICAgICAgIGNv
bnN0ZXhwciBpbnQgb2Zmc2V0ID0gQXJnTnVtIC0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVS
UyArIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgcmV0dXJuQWRyZXNzT2Zmc2V0ICsgcmV0dXJuVHlw
ZU9mZnNldDsKKyNlbHNlCisgICAgICAgIGNvbnN0ZXhwciBpbnQgb2Zmc2V0ID0gQXJnTnVtIC0g
TlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyArIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgcmV0
dXJuQWRyZXNzT2Zmc2V0OworI2VuZGlmCisgICAgICAgIGxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBvZmZzZXQgKiBz
aXplb2Yodm9pZCopKSwgc2NyYXRjaEdQUik7CisgICAgICAgIHJldHVybiBzY3JhdGNoR1BSOwor
ICAgIH0KKworcHVibGljOgorCisgICAgLy8gR2l2ZW4gYSBmdW5jdGlvbiBhbmQgYW4gYXJndW1l
bnQgbnVtYmVyLCBlaXRoZXIgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBhcmd1bWVudEdQUiBo
b2xkaW5nIHRoZSBhcmd1bWVudAorICAgIC8vIG9yIGl0IHRyaWVzIHRvIGxvYWQgdGhlIGFyZ3Vt
ZW50IGZyb20gdGhlIHN0YWNrIHVzaW5nIHRoZSBzY3JhdGNoR1BSIHBhc3NlZCBhcyBhcmd1bWVu
dC4KKyAgICAvLyBOb3RlIHRoYXQgd2UgdXNlIDAgZm9yIHRoZSAxc3QgYXJndW1lbnQsIDEgZm9y
IHRoZSAybmQsIGV0Yy4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rpb24sIHVuc2lnbmVk
IEFyZ051bT4KKyAgICBjb25zdGV4cHIgR1BSUmVnIGdldEFyZ3VtZW50R1BSKEdQUlJlZyBzY3Jh
dGNoR1BSID0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fz
c2VydChBcmdOdW0gPD0gMjU1LCAiQysrIHN0YW5kYXJkIGZvcmJpcyBmdW5jdGlvbnMgd2l0aCBt
b3JlIHRoYW4gMjU2IGFyZ3VtZW50cyIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9u
VHJhaXRzPEZ1bmN0aW9uPjo6Y0NhbGxBcml0eSgpID4gQXJnTnVtLCAiRnVuY3Rpb24gZG9lcyBu
b3QgaGF2ZSBlbm91Z2ggYXJndW1lbnRzIik7CisKKyAgICAgICAgaWYgY29uc3RleHByIChBcmdO
dW0gPj0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUykKKyAgICAgICAgICAgIHJldHVybiBs
b2FkQXJndW1lbnRGcm9tU3RhY2s8RnVuY3Rpb24sIEFyZ051bT4oc2NyYXRjaEdQUik7CisKKyAg
ICAgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2hHUFIpOyAvLyBPdGhlcndpc2Ugd2FybmluZyBkdWUg
dG8gY29uc3RleHByCisgICAgICAgIHN3aXRjaCAoQXJnTnVtKSB7CisgICAgICAgIGNhc2UgMDoK
KyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjA7CisgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgIGNh
c2UgMjoKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjI7CisgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjM7CisjaWYg
Q1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpCisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAg
IHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjQ7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAg
ICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjU7CisjZW5kaWYKKyNpZiBDUFUoQVJNNjQp
IHx8IENQVShSSVNDVjY0KQorICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICByZXR1cm4gR1BS
SW5mbzo6YXJndW1lbnRHUFI2OworICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXR1cm4g
R1BSSW5mbzo6YXJndW1lbnRHUFI3OworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIk5vdCBlbm91Z2gg
YXJndW1lbnRHUFJzIik7CisgICAgICAgIH0KKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDFiOGNkNDIw
ZjEwNzA5ZDFiZWIxYTQ1MGQxMzA0MGYzNzczMjY4NjMuLjQ0OTA5ZDE2OTRiYzU1Yzc1YjI3N2Nj
NTE2MDAwMDI4NGI0YWQzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
LmNwcApAQCAtNDQ4LDEwICs0NDgsMTAgQEAgdm9pZCBSZWdFeHA6Om1hdGNoQ29tcGFyZVdpdGhJ
bnRlcnByZXRlcihjb25zdCBTdHJpbmcmIHMsIGludCBzdGFydE9mZnNldCwgaW50KgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSklUQ29kZTogewogICAgICAgICAgICAgWWFycjo6
WWFyckNvZGVCbG9jayYgY29kZUJsb2NrID0gKm1fcmVnRXhwSklUQ29kZS5nZXQoKTsKLSAgICAg
ICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hP
bmx5QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29k
ZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50Zihq
aXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKLSAgICAgICAgICAg
IHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7
CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUs
ICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRN
YXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOworICAg
ICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTQi
IFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1h
dGNoQWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0
QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0MTZCaXRNYXRjaEFkZHIoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
SW5saW5lcy5oCmluZGV4IDAyMmNiYmE1NTU3ZTcxNzhkMTRkNGI2NjFlZGNkNjg1YTRmNzg3ZTIu
LjBhMDkxNzhlNmY5YTk0MzkxYTBkZjFkMDFjMzllNWNlY2FkZmJhNDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgKQEAgLTEzMiwxMiArMTMyLDEy
IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3Qq
IG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgaWYgKG1fc3RhdGUgPT0gSklUQ29kZSkg
ewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRDb2RlKTsKLSAgICAg
ICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3Jl
Z0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICBZYXJyOjpN
YXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51
c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsKIAogICAgICAgICAg
ICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRD
b2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9m
ZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQs
IHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhl
Y3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVj
dG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVu
Z3RoKCksIG9mZnNldFZlY3RvciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKHJlc3VsdCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFlhcnI6OkpTUmVnRXhwUmVz
dWx0OjpKSVRDb2RlRmFpbHVyZSkpIHsKQEAgLTE0Niw3ICsxNDYsNyBAQCBBTFdBWVNfSU5MSU5F
IGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmpl
Y3QsIFZNJiB2bQogICAgICAgICAgICAgaWYgKG1fc3RhdGUgPT0gUGFyc2VFcnJvcikKICAgICAg
ICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigpOwogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxs
cHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29u
dGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6
ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICAgICAgICAgIHJlc3VsdCA9IFlh
cnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVp
bnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0xNjIsNyArMTYyLDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjpt
YXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAg
ICB9IGVsc2UKICNlbmRpZgogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0
dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICBy
ZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRP
ZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9
CiAKQEAgLTI2NiwxMiArMjY2LDEyIEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhw
OjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0CiAgICAgICAg
IE1hdGNoUmVzdWx0IHJlc3VsdDsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1fcmVn
RXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20pOwor
ICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0s
IG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNo
RnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAgIHJl
c3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zm
c2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwg
cy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigp
LCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAgICAgICAg
ICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0
YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgIH0KIAogI2lm
IEVOQUJMRShSRUdFWFBfVFJBQ0lORykKQEAgLTI5NSw3ICsyOTUsNyBAQCBBTFdBWVNfSU5MSU5F
IE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckds
b2JhbE9iamVjdAogICAgIG5vblJldHVybmVkT3ZlY3Rvci5ncm93KG9mZnNldFZlY3RvclNpemUp
OwogICAgIG9mZnNldFZlY3RvciA9IG5vblJldHVybmVkT3ZlY3Rvci5kYXRhKCk7CiAgICAgewot
ICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVs
bHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFs
c2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldCht
X3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1
bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KICNpZiBSRUdFWFBfRlVOQ19URVNUX0RB
VEFfR0VOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCmluZGV4IGE0OThlZjc4
MDczMTgyNGRjZjJlZjg3OTg1YmIwOWIyOTMyMGNlYWUuLmQ2NDQ0YmVjOTQ2ZDk2NGU0MThmOGRj
YWM2YzAxYjVlZTQyNDAzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWWFyckpJ
VC5oIgogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJWTS5oIgpAQCAtMzk2MSwxMCArMzk2
Miw4IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewog
CiAgICAgdm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7CisgICAgICAgIG1faml0LmVtaXRGdW5j
dGlvblByb2xvZ3VlKCk7CiAjaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9qaXQucHVzaChYODZS
ZWdpc3RlcnM6OmVicCk7Ci0gICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVicCk7Ci0KICAgICAgICAgaWYgKG1fcGF0
dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0LnB1c2goWDg2
UmVnaXN0ZXJzOjplYngpOwogCkBAIC00MDUyLDcgKzQwNTEsNiBAQCBjbGFzcyBZYXJyR2VuZXJh
dG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICBpZiAobV9wYXR0ZXJu
Lm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lz
dGVyczo6ZWJ4KTsKLSAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKICNlbGlm
IENQVShBUk02NCkKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKICAgICAg
ICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQpAQCAtNDA3MCw2ICs0MDY4LDkgQEAg
Y2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAjZWxpZiBD
UFUoTUlQUykKICAgICAgICAgLy8gRG8gbm90aGluZwogI2VuZGlmCisKKyAgICBtX2ppdC5lbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOworCiAjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgaWYgKE9wdGlv
bnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1faml0LmZhckp1bXAoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9w
ZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25QdHJUYWcp
OwpAQCAtNDA4Niw3ICs0MDg3LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBZYXJySklUSW5mbyB7CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgWWFyckdlbmVyYXRvcihNYWNy
b0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Y29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJp
bmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21w
aWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSog
dm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXpl
IGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChq
aXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2RlQmxvY2sp
CkBAIC00MTA1LDcgKzQxMDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYm95ZXJNb29yZURhdGEg
PSBzdGF0aWNfY2FzdDxZYXJyQm95ZXJNb3llckRhdGEqPihtX2NvZGVCbG9jayk7CiAgICAgfQog
Ci0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlh
cnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXpl
IGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9y
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFy
ckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBj
b25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxl
TW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2
bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhudWxscHRyKQpAQCAtNDE5MSwxNyArNDE5MiwzMSBA
QCBwdWJsaWM6CiAgICAgICAgIGlmIChjYWxsRnJhbWVTaXplSW5CeXRlcykgewogICAgICAgICAg
ICAgLy8gQ2hlY2sgc3RhY2sgc2l6ZQogICAgICAgICAgICAgbV9qaXQuYWRkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIoLWNhbGxGcmFtZVNpemVJbkJ5dGVzKSwgTWFjcm9Bc3NlbWJs
ZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBtX3JlZ3MucmVnVDApOwotI2lmIENQVShYODZfNjQp
ICYmIE9TKFdJTkRPV1MpCi0gICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0
aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0YWNrLgotICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAg
ICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3Rl
cnM6OmVicCwgNyAqIHNpemVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwotI2VsaWYgQ1BV
KEFSTV9USFVNQjIpIHx8IENQVShNSVBTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0
IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5y
ZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
TWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQqKSks
IG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBK
SVRlZCBmdW5jdGlvbnMgaGF2ZSA1IHBhcmFtZXRlcnMgYW5kIHRoYXQgdGhlIDV0aCBhcmd1bWVu
dCBpcyBhIE1hdGNoaW5nQ29udGV4dEhvbGRlcioKKyAgICAgICAgICAgIC8vIFRPRE86IENhbiB0
aGlzIGJlIGEgbGFtYmE/CisjZGVmaW5lIEZVTkNUSU9OQ0hFQ0tTKGZ1bmMpIFwKKyAgICBkbyB7
IFwKKyAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxmdW5jPjo6Y0NhbGxBcml0
eSgpID09IDUsICJZYXJySklUQ29kZSB0YWtlcyA1IGFyZ3VtZW50cyIpOyBcCisgICAgICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19zYW1lPE1hdGNoaW5nQ29udGV4dEhvbGRlciosIEZ1bmN0aW9u
VHJhaXRzPGZ1bmM+OjpBcmd1bWVudFR5cGU8ND4+Ojp2YWx1ZSk7IFwKKyAgICB9IHdoaWxlIChm
YWxzZSkKKworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6WWFyckpJ
VENvZGU4KTsKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2RlQmxvY2s6OllhcnJK
SVRDb2RlMTYpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6WWFy
ckpJVENvZGVNYXRjaE9ubHk4KTsKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2Rl
QmxvY2s6OllhcnJKSVRDb2RlTWF0Y2hPbmx5MTYpOworCisjdW5kZWYgRlVOQ1RJT05DSEVDS1MK
KworI2lmIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgPCA1dQorICAgICAgICAgICAgR1BS
UmVnIG1hdGNoaW5nQ29udGV4dCA9IG1faml0LmdldEFyZ3VtZW50R1BSPFlhcnJDb2RlQmxvY2s6
OllhcnJKSVRDb2RlOCwgND4obV9yZWdzLnJlZ1QxKTsKKyAgICAgICAgICAgIEFTU0VSVChtYXRj
aGluZ0NvbnRleHQgPT0gbV9yZWdzLnJlZ1QxKTsKICNlbHNlCi0gICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MubWF0Y2hpbmdDb250
ZXh0OworICAgICAgICAgICAgR1BSUmVnIG1hdGNoaW5nQ29udGV4dCA9IG1faml0LmdldEFyZ3Vt
ZW50R1BSPFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlOCwgND4oKTsKKyAgICAgICAgICAgIEFT
U0VSVChtYXRjaGluZ0NvbnRleHQgPT0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dCk7CiAjZW5kaWYK
KyAgICAgICAgICAgIEFTU0VSVChtYXRjaGluZ0NvbnRleHQgPT0gbV9yZWdzLm1hdGNoaW5nQ29u
dGV4dCk7CisKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN0YWNrT2sgPSBtX2pp
dC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93T3JFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MobWF0Y2hpbmdDb250ZXh0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Om9mZnNldE9m
U3RhY2tMaW1pdCgpKSwgbV9yZWdzLnJlZ1QwKTsKIAogICAgICAgICAgICAgLy8gRXhjZWVkZWQg
c3RhY2sgbGltaXQsIHB1bnQgdG8gdGhlIGludGVycHJldGVyLgpAQCAtNDYxOCw3ICs0NjMzLDcg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNYWNyb0Fzc2VtYmxlciYgbV9qaXQ7
CisgICAgQ0NhbGxIZWxwZXJzJiBtX2ppdDsKICAgICBjb25zdCBWTSogbV92bTsKICAgICBZYXJy
Q29kZUJsb2NrKiBtX2NvZGVCbG9jazsKICAgICBZYXJyQm95ZXJNb3llckRhdGEqIG1fYm95ZXJN
b29yZURhdGE7CkBAIC00NzA2LDcgKzQ3MjEsNyBAQCBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZh
aWx1cmUoSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlKQogCiB2b2lkIGppdENvbXBpbGUoWWFyclBh
dHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUs
IFZNKiB2bSwgWWFyckNvZGVCbG9jayYgY29kZUJsb2NrLCBKSVRDb21waWxlTW9kZSBtb2RlKQog
ewotICAgIE1hY3JvQXNzZW1ibGVyIG1hc207CisgICAgQ0NhbGxIZWxwZXJzIG1hc207CiAKICAg
ICBBU1NFUlQobW9kZSA9PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hPbmx5IHx8IG1vZGUgPT0gSklU
Q29tcGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJucyk7CiAKQEAgLTQ3MjcsNyArNDc0Miw3IEBA
IHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwKICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgaW5saW5lZCBK
SVQnaW5nIG9mIFJlZ0V4cC50ZXN0IGZvciB0aGlzIENQVSAvIE9TIGNvbWJpbmF0aW9uLiIKICNl
bmRpZgogCi12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0
aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlv
blNldDxZYXJyOjpGbGFncz4gZmxhZ3MsIENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0s
IFlhcnJCb3llck1veWVyRGF0YSYgYm95ZXJNb29yZURhdGEsIE1hY3JvQXNzZW1ibGVyJiBqaXQs
IFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRU
ZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0
cmluZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNp
emUgY2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3Jl
RGF0YSwgQ0NhbGxIZWxwZXJzJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykK
IHsKICAgICBZYXJyOjpFcnJvckNvZGUgZXJyb3JDb2RlOwogICAgIFlhcnI6OllhcnJQYXR0ZXJu
IHBhdHRlcm4ocGF0dGVyblN0cmluZywgZmxhZ3MsIGVycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUveWFyci9ZYXJySklULmgKaW5kZXggMjg5ZDZlODFmZTUxN2FhZGZiZTQ5OGQxODVlMzA3MjA1
ZTZhMDczMy4uMmJjMzczOTU2NDEwZGJjNGM5NWQ3ZGUyZmNmOGU5NmMzNjVkM2ZlZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaApAQCAtNDMsOSArNDMsMTAgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLWNsYXNzIFZNOworY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgRXhlY3V0
YWJsZVBvb2w7CiBjbGFzcyBNYWNyb0Fzc2VtYmxlcjsKK2NsYXNzIFZNOwogCiBuYW1lc3BhY2Ug
WWFyciB7CiAKQEAgLTI3MSwxMiArMjcyLDEzIEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgOiBwdWJs
aWMgWWFyckJveWVyTW95ZXJEYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShZYXJyQ29kZUJsb2NrKTsKIAotICAgIHVzaW5nIFlhcnJK
SVRDb2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlh
cnJKSVRDb2RlMTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwg
VUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2lu
ZyBZYXJySklUQ29kZU1hdGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExD
aGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lk
KiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAg
ICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShj
b25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0
aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NB
TEw7Ci0KIHB1YmxpYzoKKworICAgIHVzaW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQYXRoUmV0dXJu
VHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdp
c3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5n
Q29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlMTYgPSBTbG93UGF0aFJl
dHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BV
UmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRj
aGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTgg
PSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVy
IHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
KiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNo
T25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVS
ZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4
dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisKICAgICBZYXJyQ29kZUJsb2Nr
KCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBzZXRGYWxsQmFja1dpdGhGYWlsdXJlUmVhc29uKEpJ
VEZhaWx1cmVSZWFzb24gZmFpbHVyZVJlYXNvbikgeyBtX2ZhaWx1cmVSZWFzb24gPSBmYWlsdXJl
UmVhc29uOyB9CkBAIC0zMjYsNyArMzI4LDcgQEAgcHVibGljOgogICAgIElubGluZVN0YXRzJiBn
ZXQ4Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiBtX21hdGNoT25seThTdGF0czsgfQogICAgIElu
bGluZVN0YXRzJiBnZXQxNkJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gIG1fbWF0Y2hPbmx5MTZT
dGF0czsgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVu
c2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0
IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRw
dXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGhhczhCaXRDb2RlKCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zMzYsNyArMzM4
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25Q
dHI8WWFyckpJVENvZGU4LCBZYXJyOEJpdFB0clRhZz4obV9yZWY4LmNvZGUoKS5leGVjdXRhYmxl
QWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRleHQp
KTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29u
c3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91
dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAg
ICAgICBBU1NFUlQoaGFzMTZCaXRDb2RlKCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zNDYsNyAr
MzQ4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rp
b25QdHI8WWFyckpJVENvZGUxNiwgWWFycjE2Qml0UHRyVGFnPihtX3JlZjE2LmNvZGUoKS5leGVj
dXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0Nv
bnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBp
bnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hh
ciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4
dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczhCaXRD
b2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zNTYsNyArMzU4LDcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJ
VENvZGVNYXRjaE9ubHk4LCBZYXJyTWF0Y2hPbmx5OEJpdFB0clRhZz4obV9tYXRjaE9ubHk4LmNv
ZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgbnVsbHB0ciwg
bWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25z
dCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5n
Q29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUo
Y29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRj
aGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChoYXMxNkJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTQzOSw3ICs0
NDEsNyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mLCBTdHJpbmcmIHBhdHRlcm5TdHJp
bmcsIENoYXJTaXplLCBWTSosIFlhcnJDb2RlQmxvYwogCiBjbGFzcyBZYXJySklUUmVnaXN0ZXJz
OwogCi12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiwgY29uc3QgU3RyaW5n
JiwgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0IFZNKiwgWWFyckJveWVy
TW95ZXJEYXRhJiwgTWFjcm9Bc3NlbWJsZXImLCBZYXJySklUUmVnaXN0ZXJzJik7Cit2b2lkIGpp
dENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiwgY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0
PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0IFZNKiwgWWFyckJveWVyTW95ZXJEYXRhJiwg
Q0NhbGxIZWxwZXJzJiwgWWFyckpJVFJlZ2lzdGVycyYpOwogI2VuZGlmCiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpZYXJyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKaW5kZXggMTM5ZDFmZTM1YjU3NWM3MGEwNWE3ZTc3
MjVkZDlmYTFlZmI2NjAxZS4uMWFmODMwOTgyZmY1N2YyYTkzYjY2MTc5MzhkMmRiYzVkZWM4YTE3
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29u
dGV4dEhvbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGlu
Z0NvbnRleHRIb2xkZXIuaApAQCAtMzcsMTIgKzM3LDEwIEBAIGNsYXNzIFJlZ0V4cDsKIAogbmFt
ZXNwYWNlIFlhcnIgewogCi1jbGFzcyBZYXJyQ29kZUJsb2NrOwotCiBjbGFzcyBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIgewogICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOwogcHVibGljOgot
ICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYsIFlhcnJDb2RlQmxvY2sqLCBSZWdFeHAqLCBN
YXRjaEZyb20pOworICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYsIGJvb2wsIFJlZ0V4cCos
IE1hdGNoRnJvbSk7CiAgICAgfk1hdGNoaW5nQ29udGV4dEhvbGRlcigpOwogCiAgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZlN0YWNrTGltaXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
TWF0Y2hpbmdDb250ZXh0SG9sZGVyLCBtX3N0YWNrTGltaXQpOyB9CkBAIC02MSw3ICs1OSw3IEBA
IHByaXZhdGU6CiAgICAgTWF0Y2hGcm9tIG1fbWF0Y2hGcm9tOwogfTsKIAotaW5saW5lIE1hdGNo
aW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVC
bG9jayogeWFyckNvZGVCbG9jaywgUmVnRXhwKiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20p
CitpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0m
IHZtLCBib29sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgUmVnRXhwKiByZWdFeHAsIE1hdGNo
RnJvbSBtYXRjaEZyb20pCiAgICAgOiBtX3ZtKHZtKQogICAgICwgbV9tYXRjaEZyb20obWF0Y2hG
cm9tKQogewpAQCAtNzQsMTIgKzcyLDEyIEBAIGlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6
Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDCiAgICAg
fQogCiAjaWYgRU5BQkxFKFlBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCi0gICAgaWYg
KHlhcnJDb2RlQmxvY2sgJiYgeWFyckNvZGVCbG9jay0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVy
KCkpIHsKKyAgICBpZiAodXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKSB7CiAgICAgICAgIG1fcGF0
dGVybkNvbnRleHRCdWZmZXIgPSBtX3ZtLmFjcXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVy
KCk7CiAgICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXJTaXplID0gVk06OnBhdHRlcm5Db250
ZXh0QnVmZmVyU2l6ZTsKICAgICB9CiAjZWxzZQotICAgIFVOVVNFRF9QQVJBTSh5YXJyQ29kZUJs
b2NrKTsKKyAgICBVTlVTRURfUEFSQU0odXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKTsKICNlbmRp
ZgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448848</attachid>
            <date>2022-01-11 08:05:40 -0800</date>
            <delta_ts>2022-01-11 10:53:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220111120538.patch</filename>
            <type>text/plain</type>
            <size>26644</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLjg0ZjQ2MDBk
NGI1MTA4MDQ5OGQ2ZjEzMjE1OTllMmVhNDA5NGIxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtOTkyLDYgKzk5Miw4MSBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051
bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAgfQorCitwcml2YXRlOgorCisgICAgLy8gSW4gY2FzZSB3
ZSBhcmUgdHJ5aW5nIHRvIGdldCB0aGUgYXJndW1lbnQgZnJvbSBhIGZ1bmN0aW9uIGJ1dCB0aGVy
ZSBpc24ndCBlbm91Z2ggcmVnaXN0ZXJzLCB0aGlzCisgICAgLy8gZnVuY3Rpb24gdHJpZXMgdG8g
bG9hZCBpdCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc3AuIEluIG9yZGVyIGZvciB0aGlzIHRv
IHdvcmssIHRoZSBmcmFtZSBwb2ludGVyCisgICAgLy8gbXVzdCBiZSBzZXQgaW4gdGhlIGZ1bmN0
aW9uIHByb2xvZ3VlCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBB
cmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3RhY2soR1BSUmVn
IHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBhcmd1bWVudCIp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUlgiKTsKKworICAgICAg
ICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0Y2hHUFIgZnJvbSB0aGUgc3RhY2sg
dGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0IHRoZSBmdW5jdGlvbiBwcm9sb2d1
ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUgYXJndW1lbnQgd2lsbCBiZSBwbGFj
ZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAtIE51bWJlci1vZi1hcmctcmVncywg
ZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBvbiBBUk12NyB3aWxsIGJlIHBsYWNl
ZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVvZihwdHIqKSwgaG93ZXZlciwgdGhh
dCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6
IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyByZXNlcnZlZCBvbiB0aGUgc3RhY2sg
Zm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAgICAgIC8vIGFyY2hzLCBhICs0IG9m
ZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBNSVBTIGlzIGZwICsgNiAqIHNpemVv
ZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zmc2V0OiBXaW5kb3dzIHg4NiBvbmx5
LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1iaXRzLCBpdCdzIHJldHVybmVkIHZp
YSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNzZWQgYXMgYW4gaW1wbGljaXQgZmly
c3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRzIGFyZSBzaGlmdGVkIHRvIHRoZSBy
aWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAvLyBUaGUgNXRoIGFyZ3VtZW50IG9u
IFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAgKyA3ICogc2l6ZW9mKHB0ciopLgor
CisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNzT2Zmc2V0ID0gMjsKKyNpZiBPUyhX
SU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVP
ZmZzZXQgPSBzaXplb2YodHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8RnVuY3Rpb24+OjpSZXN1bHRU
eXBlKSA+PSA4OworICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJF
Ul9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFk
cmVzc09mZnNldCArIHJldHVyblR5cGVPZmZzZXQ7CisjZWxzZQorICAgICAgICBjb25zdGV4cHIg
aW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tF
X0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkcmVzc09mZnNldDsKKyNlbmRpZgorICAgICAgICBs
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0Y2hHUFIpOworICAgICAg
ICByZXR1cm4gc2NyYXRjaEdQUjsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIC8vIEdpdmVuIGEg
ZnVuY3Rpb24gYW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVuY3Rpb24gcmV0
dXJucyB0aGUgYXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAvLyBvciBpdCB0
cmllcyB0byBsb2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc2NyYXRj
aEdQUiBwYXNzZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVzZSAwIGZvciB0
aGUgMXN0IGFyZ3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBnZXRB
cmd1bWVudEdQUihHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAg
ICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBm
b3JiaXMgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxGdW5jdGlvbj46OmNDYWxsQXJpdHkoKSA+IEFy
Z051bSwgIkZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFyZ3VtZW50cyIpOworCisgICAg
ICAgIGlmIGNvbnN0ZXhwciAoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMp
CisgICAgICAgICAgICByZXR1cm4gbG9hZEFyZ3VtZW50RnJvbVN0YWNrPEZ1bmN0aW9uLCBBcmdO
dW0+KHNjcmF0Y2hHUFIpOworCisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoR1BSKTsgLy8g
T3RoZXJ3aXNlIHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhwcgorICAgICAgICBzd2l0Y2ggKEFyZ051
bSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1l
bnRHUFIwOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJn
dW1lbnRHUFIxOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6
YXJndW1lbnRHUFIyOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5m
bzo6YXJndW1lbnRHUFIzOworI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQorICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI0OworICAg
ICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI1Owor
I2VuZGlmCisjaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyAgICAgICAgY2FzZSA2Ogor
ICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNjsKKyAgICAgICAgY2FzZSA3
OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNzsKKyNlbmRpZgorICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJOb3QgZW5vdWdoIGFyZ3VtZW50R1BScyIpOworICAgICAgICB9CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmViMWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40
NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRiNGFkMzJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVn
RXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgU3RyaW5nJiBzLCBpbnQgc3Rh
cnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEpJVENvZGU6
IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxvY2smIGNvZGVCbG9jayA9ICptX3JlZ0V4
cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOwot
ICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNo
QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNo
T25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAg
ICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQi
IFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAppbmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0
ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi4wYTA5MTc4ZTZmOWE5NDM5MWEwZGYxZDAxYzM5ZTVjZWNh
ZGZiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlm
IChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1f
cmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20p
OworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1h
dGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0Owor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJh
Y3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBD
b250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQs
IHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0
KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8
aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29kZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyAr
MTQ2LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9i
amVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlmIChtX3N0YXRl
ID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKTsKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQo
KSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0
b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZ
U19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckds
b2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlz
LCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhw
Q29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywg
bWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0
ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4o
b2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2NiwxMiBAQCBBTFdBWVNfSU5M
SU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxP
ckdsb2JhbE9iamVjdAogICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0
Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQo
KSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQo
KSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5j
aGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFj
dGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENv
bnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0
ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRl
eHQpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyAr
Mjk1LDcgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpT
R2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3Iu
Z3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92
ZWN0b3IuZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1
bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZz
ZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAj
aWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi5m
YTJmZjQ1NWJhYjFlY2MxZGQ3ZTRkNjU3OTlhYjk0MjhlY2M3OGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
Vk0uaCIKQEAgLTM5NjEsMTAgKzM5NjIsOCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDog
cHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgIHZvaWQgZ2VuZXJhdGVFbnRlcigpCiAgICAgewor
ICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogI2lmIENQVShYODZfNjQpCi0g
ICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICBtX2ppdC5tb3Zl
KE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplYnAp
OwotCiAgICAgICAgIGlmIChtX3BhdHRlcm4ubV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUpCiAgICAg
ICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKIApAQCAtMzk5MiwxMSArMzk5
MSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewog
ICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWN4KTsKICNlbmRpZgogI2VsaWYgQ1BV
KEFSTTY0KQotICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKLSAgICAgICAgICAg
IG1faml0LnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRl
UGFpcnMpIHsKLSAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAg
ICAgICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdp
c3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2ppdC5t
b3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCksIG1fcmVncy5zdXBwbGVt
ZW50YXJ5UGxhbmVzQmFzZSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMHhkODAwKSwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpOwogICAg
ICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCks
IG1fcmVncy50cmFpbGluZ1N1cnJvZ2F0ZVRhZyk7CkBAIC00MDA3LDExICs0MDAyLDYgQEAgY2xh
c3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgICAgIG1f
aml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyNik7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0
ZXJzOjpyOCk7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyMTApOwotI2VsaWYg
Q1BVKFJJU0NWNjQpCi0gICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAg
ICAgICAgbV9qaXQucHVzaFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVy
LCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBTKQotICAgICAg
ICAvLyBEbyBub3RoaW5nLgogI2VuZGlmCiAgICAgfQogCkBAIC00MDUyLDI0ICs0MDQyLDE2IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAg
ICAgIGlmIChtX3BhdHRlcm4ubV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUpCiAgICAgICAgICAgICBt
X2ppdC5wb3AoWDg2UmVnaXN0ZXJzOjplYngpOwotICAgICAgICBtX2ppdC5wb3AoWDg2UmVnaXN0
ZXJzOjplYnApOwotI2VsaWYgQ1BVKEFSTTY0KQotICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dh
dGVQYWlycykgewotICAgICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdlKCkpCi0gICAg
ICAgICAgICAgICAgbV9qaXQucG9wUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVn
aXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwotICAgICAgICB9CiAjZWxpZiBD
UFUoQVJNX1RIVU1CMikKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjEwKTsKICAg
ICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjgpOwogICAgICAgICBtX2ppdC5wb3AoQVJN
UmVnaXN0ZXJzOjpyNik7CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI1KTsKICAg
ICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjQpOwotI2VsaWYgQ1BVKFJJU0NWNjQpCi0g
ICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQucG9w
UGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVy
OjpsaW5rUmVnaXN0ZXIpOwotI2VsaWYgQ1BVKE1JUFMpCi0gICAgICAgIC8vIERvIG5vdGhpbmcK
ICNlbmRpZgorCisgICAgbV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKwogI2lmIENQVShB
Uk02NEUpCiAgICAgICAgIGlmIChPcHRpb25zOjp1c2VKSVRDYWdlKCkpCiAgICAgICAgICAgICBt
X2ppdC5mYXJKdW1wKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJldGFnQ29kZVB0cjx2
b2lkKiwgQ0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJUYWc+KCZ2bUVudHJ5VG9ZYXJySklU
QWZ0ZXIpKSwgT3BlcmF0aW9uUHRyVGFnKTsKQEAgLTQwODYsNyArNDA2OCw3IEBAIGNsYXNzIFlh
cnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgIH0KIAogcHVibGlj
OgotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZ
YXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0
dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFy
U2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNv
bnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5n
JiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGls
ZU1vZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAg
ICwgbV9jb2RlQmxvY2soY29kZUJsb2NrKQpAQCAtNDEwNSw3ICs0MDg3LDcgQEAgcHVibGljOgog
ICAgICAgICBtX2JveWVyTW9vcmVEYXRhID0gc3RhdGljX2Nhc3Q8WWFyckJveWVyTW95ZXJEYXRh
Kj4obV9jb2RlQmxvY2spOwogICAgIH0KIAotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJs
ZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNv
bnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5n
JiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGls
ZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZt
LCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdz
LCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFy
U2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9q
aXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2sobnVsbHB0
cikKQEAgLTQxOTEsMTcgKzQxNzMsMzAgQEAgcHVibGljOgogICAgICAgICBpZiAoY2FsbEZyYW1l
U2l6ZUluQnl0ZXMpIHsKICAgICAgICAgICAgIC8vIENoZWNrIHN0YWNrIHNpemUKICAgICAgICAg
ICAgIG1faml0LmFkZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jYWxsRnJhbWVT
aXplSW5CeXRlcyksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbV9yZWdz
LnJlZ1QwKTsKLSNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgLy8g
bWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBz
dGFjay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29u
dGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0
Y2hpbmdDb250ZXh0KTsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAgICAg
ICAgICAgIC8vIG1hdGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3Vu
ZCBvbiB0aGUgc3RhY2suCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBt
YXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdp
c3RlciwgNCAqIHNpemVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOworCisgICAgICAgICAg
ICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgSklUZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJz
IGFuZCB0aGF0IHRoZSA1dGggYXJndW1lbnQgaXMgYSBNYXRjaGluZ0NvbnRleHRIb2xkZXIqCisg
ICAgICAgICAgICAvLyBUT0RPOiBDYW4gdGhpcyBiZSBhIGxhbWJhPworI2RlZmluZSBGVU5DVElP
TkNIRUNLUyhmdW5jKSBcCisgICAgZG8geyBcCisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rp
b25UcmFpdHM8ZnVuYz46OmNDYWxsQXJpdHkoKSA9PSA1LCAiWWFyckpJVENvZGUgdGFrZXMgNSBh
cmd1bWVudHMiKTsgXAorICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqLCBGdW5jdGlvblRyYWl0czxmdW5jPjo6QXJndW1lbnRUeXBlPDQ+Pjo6
dmFsdWUpOyBcCisgICAgfSB3aGlsZSAoZmFsc2UpCisKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hF
Q0tTKFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlOCk7CisgICAgICAgICAgICBGVU5DVElPTkNI
RUNLUyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTE2KTsKKyAgICAgICAgICAgIEZVTkNUSU9O
Q0hFQ0tTKFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlTWF0Y2hPbmx5OCk7CisgICAgICAgICAg
ICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2KTsK
KworI3VuZGVmIEZVTkNUSU9OQ0hFQ0tTCisKKyNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNU
RVJTIDwgNXUKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2ppdC5nZXRB
cmd1bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgsIDQ+KG1fcmVncy5yZWdUMSk7
CisgICAgICAgICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5yZWdUMSk7CiAj
ZWxzZQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250
ZXh0ID0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dDsKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGlu
Z0NvbnRleHQgPSBtX2ppdC5nZXRBcmd1bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29k
ZTgsIDQ+KCk7CisgICAgICAgICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5t
YXRjaGluZ0NvbnRleHQpOwogI2VuZGlmCisKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIHN0YWNrT2sgPSBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93T3JFcXVh
bCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobWF0Y2hpbmdDb250ZXh0LCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXI6Om9mZnNldE9mU3RhY2tMaW1pdCgpKSwgbV9yZWdzLnJlZ1QwKTsKIAogICAgICAg
ICAgICAgLy8gRXhjZWVkZWQgc3RhY2sgbGltaXQsIHB1bnQgdG8gdGhlIGludGVycHJldGVyLgpA
QCAtNDYxOCw3ICs0NjEzLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNYWNy
b0Fzc2VtYmxlciYgbV9qaXQ7CisgICAgQ0NhbGxIZWxwZXJzJiBtX2ppdDsKICAgICBjb25zdCBW
TSogbV92bTsKICAgICBZYXJyQ29kZUJsb2NrKiBtX2NvZGVCbG9jazsKICAgICBZYXJyQm95ZXJN
b3llckRhdGEqIG1fYm95ZXJNb29yZURhdGE7CkBAIC00NzA2LDcgKzQ3MDEsNyBAQCBzdGF0aWMg
dm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUoSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlKQogCiB2b2lk
IGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywg
Q2hhclNpemUgY2hhclNpemUsIFZNKiB2bSwgWWFyckNvZGVCbG9jayYgY29kZUJsb2NrLCBKSVRD
b21waWxlTW9kZSBtb2RlKQogewotICAgIE1hY3JvQXNzZW1ibGVyIG1hc207CisgICAgQ0NhbGxI
ZWxwZXJzIG1hc207CiAKICAgICBBU1NFUlQobW9kZSA9PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hP
bmx5IHx8IG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJucyk7CiAKQEAg
LTQ3MjcsNyArNDcyMiw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwg
U3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwKICNlcnJvciAiTm8gc3Vw
cG9ydCBmb3IgaW5saW5lZCBKSVQnaW5nIG9mIFJlZ0V4cC50ZXN0IGZvciB0aGlzIENQVSAvIE9T
IGNvbWJpbmF0aW9uLiIKICNlbmRpZgogCi12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFj
a0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBjb25zdCBTdHJpbmcmIHBh
dHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3MsIENoYXJTaXplIGNoYXJT
aXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95ZXJNb29yZURhdGEsIE1h
Y3JvQXNzZW1ibGVyJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKK3ZvaWQg
aml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFj
a0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZs
YWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95
ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgQ0NhbGxIZWxwZXJzJiBqaXQsIFlhcnJKSVRSZWdpc3Rl
cnMmIGppdFJlZ2lzdGVycykKIHsKICAgICBZYXJyOjpFcnJvckNvZGUgZXJyb3JDb2RlOwogICAg
IFlhcnI6OllhcnJQYXR0ZXJuIHBhdHRlcm4ocGF0dGVyblN0cmluZywgZmxhZ3MsIGVycm9yQ29k
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKaW5kZXggMjg5ZDZlODFmZTUxN2Fh
ZGZiZTQ5OGQxODVlMzA3MjA1ZTZhMDczMy4uMmJjMzczOTU2NDEwZGJjNGM5NWQ3ZGUyZmNmOGU5
NmMzNjVkM2ZlZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaApAQCAtNDMsOSAr
NDMsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIFZNOworY2xhc3MgQ0NhbGxIZWxw
ZXJzOwogY2xhc3MgRXhlY3V0YWJsZVBvb2w7CiBjbGFzcyBNYWNyb0Fzc2VtYmxlcjsKK2NsYXNz
IFZNOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKQEAgLTI3MSwxMiArMjcyLDEzIEBAIGNsYXNzIFlh
cnJDb2RlQmxvY2sgOiBwdWJsaWMgWWFyckJveWVyTW95ZXJEYXRhIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShZYXJyQ29kZUJsb2NrKTsK
IAotICAgIHVzaW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3Qg
TENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGlu
dCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9D
QUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlMTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNv
bnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3Ro
LCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlB
UlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTggPSBTbG93UGF0aFJldHVy
blR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVn
aXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRl
eHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTE2ID0gU2xvd1Bh
dGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwg
VUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hp
bmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0KIHB1YmxpYzoKKworICAgIHVzaW5nIFlhcnJKSVRDb2Rl
OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0
ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRD
b2RlMTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJl
Z2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJy
SklUQ29kZU1hdGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBp
bnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2lu
ZyBZYXJySklUQ29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBV
Q2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9p
ZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisK
ICAgICBZYXJyQ29kZUJsb2NrKCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBzZXRGYWxsQmFja1dp
dGhGYWlsdXJlUmVhc29uKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZVJlYXNvbikgeyBtX2ZhaWx1
cmVSZWFzb24gPSBmYWlsdXJlUmVhc29uOyB9CkBAIC0zMjYsNyArMzI4LDcgQEAgcHVibGljOgog
ICAgIElubGluZVN0YXRzJiBnZXQ4Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiBtX21hdGNoT25s
eThTdGF0czsgfQogICAgIElubGluZVN0YXRzJiBnZXQxNkJpdElubGluZVN0YXRzKCkgeyByZXR1
cm4gIG1fbWF0Y2hPbmx5MTZTdGF0czsgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25z
dCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0
cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJl
c3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250
ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczhCaXRDb2RlKCkpOwogI2lmIENQVShBUk02
NEUpCkBAIC0zMzYsNyArMzM4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1
bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGU4LCBZYXJyOEJpdFB0clRhZz4obV9yZWY4
LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0
LCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNv
bnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBv
dXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNo
UmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWdu
ZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0Nv
bnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzMTZCaXRDb2RlKCkpOwogI2lmIENQVShB
Uk02NEUpCkBAIC0zNDYsNyArMzQ4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hS
ZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGUxNiwgWWFycjE2Qml0UHRyVGFnPiht
X3JlZjE2LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwg
b3V0cHV0LCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVj
dXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQg
ZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5n
dGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGhhczhCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0z
NTYsNyArMzU4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdD
RnVuY3Rpb25QdHI8WWFyckpJVENvZGVNYXRjaE9ubHk4LCBZYXJyTWF0Y2hPbmx5OEJpdFB0clRh
Zz4obV9tYXRjaE9ubHk4LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQs
IGxlbmd0aCwgbnVsbHB0ciwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hS
ZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1h
dGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5z
aWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFS
TTY0RSkKQEAgLTQzOSw3ICs0NDEsNyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mLCBT
dHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplLCBWTSosIFlhcnJDb2RlQmxvYwogCiBjbGFz
cyBZYXJySklUUmVnaXN0ZXJzOwogCi12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0No
ZWNrKiwgY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUsIGNv
bnN0IFZNKiwgWWFyckJveWVyTW95ZXJEYXRhJiwgTWFjcm9Bc3NlbWJsZXImLCBZYXJySklUUmVn
aXN0ZXJzJik7Cit2b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiwgY29uc3Qg
U3RyaW5nJiwgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0IFZNKiwgWWFy
ckJveWVyTW95ZXJEYXRhJiwgQ0NhbGxIZWxwZXJzJiwgWWFyckpJVFJlZ2lzdGVycyYpOwogI2Vu
ZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpZYXJyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKaW5kZXggMTM5ZDFm
ZTM1YjU3NWM3MGEwNWE3ZTc3MjVkZDlmYTFlZmI2NjAxZS4uMWFmODMwOTgyZmY1N2YyYTkzYjY2
MTc5MzhkMmRiYzVkZWM4YTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaApAQCAtMzcsMTIgKzM3LDEwIEBAIGNs
YXNzIFJlZ0V4cDsKIAogbmFtZXNwYWNlIFlhcnIgewogCi1jbGFzcyBZYXJyQ29kZUJsb2NrOwot
CiBjbGFzcyBNYXRjaGluZ0NvbnRleHRIb2xkZXIgewogICAgIFdURl9GT1JCSURfSEVBUF9BTExP
Q0FUSU9OOwogcHVibGljOgotICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYsIFlhcnJDb2Rl
QmxvY2sqLCBSZWdFeHAqLCBNYXRjaEZyb20pOworICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihW
TSYsIGJvb2wsIFJlZ0V4cCosIE1hdGNoRnJvbSk7CiAgICAgfk1hdGNoaW5nQ29udGV4dEhvbGRl
cigpOwogCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlN0YWNrTGltaXQoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoTWF0Y2hpbmdDb250ZXh0SG9sZGVyLCBtX3N0YWNrTGltaXQpOyB9
CkBAIC02MSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgTWF0Y2hGcm9tIG1fbWF0Y2hGcm9tOwog
fTsKIAotaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
KFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckNvZGVCbG9jaywgUmVnRXhwKiByZWdFeHAsIE1h
dGNoRnJvbSBtYXRjaEZyb20pCitpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGlu
Z0NvbnRleHRIb2xkZXIoVk0mIHZtLCBib29sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgUmVn
RXhwKiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCiAgICAgOiBtX3ZtKHZtKQogICAgICwg
bV9tYXRjaEZyb20obWF0Y2hGcm9tKQogewpAQCAtNzQsMTIgKzcyLDEyIEBAIGlubGluZSBNYXRj
aGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2Rl
QmxvY2sqIHlhcnJDCiAgICAgfQogCiAjaWYgRU5BQkxFKFlBUlJfSklUX0FMTF9QQVJFTlNfRVhQ
UkVTU0lPTlMpCi0gICAgaWYgKHlhcnJDb2RlQmxvY2sgJiYgeWFyckNvZGVCbG9jay0+dXNlc1Bh
dHRlcm5Db250ZXh0QnVmZmVyKCkpIHsKKyAgICBpZiAodXNlc1BhdHRlcm5Db250ZXh0QnVmZmVy
KSB7CiAgICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXIgPSBtX3ZtLmFjcXVpcmVSZWdFeHBQ
YXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXJTaXpl
ID0gVk06OnBhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZTsKICAgICB9CiAjZWxzZQotICAgIFVOVVNF
RF9QQVJBTSh5YXJyQ29kZUJsb2NrKTsKKyAgICBVTlVTRURfUEFSQU0odXNlc1BhdHRlcm5Db250
ZXh0QnVmZmVyKTsKICNlbmRpZgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448856</attachid>
            <date>2022-01-11 10:53:57 -0800</date>
            <delta_ts>2022-01-11 12:14:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220111145355.patch</filename>
            <type>text/plain</type>
            <size>32774</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLjg0ZjQ2MDBk
NGI1MTA4MDQ5OGQ2ZjEzMjE1OTllMmVhNDA5NGIxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtOTkyLDYgKzk5Miw4MSBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051
bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAgfQorCitwcml2YXRlOgorCisgICAgLy8gSW4gY2FzZSB3
ZSBhcmUgdHJ5aW5nIHRvIGdldCB0aGUgYXJndW1lbnQgZnJvbSBhIGZ1bmN0aW9uIGJ1dCB0aGVy
ZSBpc24ndCBlbm91Z2ggcmVnaXN0ZXJzLCB0aGlzCisgICAgLy8gZnVuY3Rpb24gdHJpZXMgdG8g
bG9hZCBpdCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc3AuIEluIG9yZGVyIGZvciB0aGlzIHRv
IHdvcmssIHRoZSBmcmFtZSBwb2ludGVyCisgICAgLy8gbXVzdCBiZSBzZXQgaW4gdGhlIGZ1bmN0
aW9uIHByb2xvZ3VlCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBB
cmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3RhY2soR1BSUmVn
IHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBhcmd1bWVudCIp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUlgiKTsKKworICAgICAg
ICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0Y2hHUFIgZnJvbSB0aGUgc3RhY2sg
dGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0IHRoZSBmdW5jdGlvbiBwcm9sb2d1
ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUgYXJndW1lbnQgd2lsbCBiZSBwbGFj
ZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAtIE51bWJlci1vZi1hcmctcmVncywg
ZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBvbiBBUk12NyB3aWxsIGJlIHBsYWNl
ZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVvZihwdHIqKSwgaG93ZXZlciwgdGhh
dCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6
IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyByZXNlcnZlZCBvbiB0aGUgc3RhY2sg
Zm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAgICAgIC8vIGFyY2hzLCBhICs0IG9m
ZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBNSVBTIGlzIGZwICsgNiAqIHNpemVv
ZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zmc2V0OiBXaW5kb3dzIHg4NiBvbmx5
LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1iaXRzLCBpdCdzIHJldHVybmVkIHZp
YSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNzZWQgYXMgYW4gaW1wbGljaXQgZmly
c3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRzIGFyZSBzaGlmdGVkIHRvIHRoZSBy
aWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAvLyBUaGUgNXRoIGFyZ3VtZW50IG9u
IFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAgKyA3ICogc2l6ZW9mKHB0ciopLgor
CisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNzT2Zmc2V0ID0gMjsKKyNpZiBPUyhX
SU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVP
ZmZzZXQgPSBzaXplb2YodHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8RnVuY3Rpb24+OjpSZXN1bHRU
eXBlKSA+PSA4OworICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJF
Ul9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFk
cmVzc09mZnNldCArIHJldHVyblR5cGVPZmZzZXQ7CisjZWxzZQorICAgICAgICBjb25zdGV4cHIg
aW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tF
X0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkcmVzc09mZnNldDsKKyNlbmRpZgorICAgICAgICBs
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0Y2hHUFIpOworICAgICAg
ICByZXR1cm4gc2NyYXRjaEdQUjsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIC8vIEdpdmVuIGEg
ZnVuY3Rpb24gYW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVuY3Rpb24gcmV0
dXJucyB0aGUgYXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAvLyBvciBpdCB0
cmllcyB0byBsb2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc2NyYXRj
aEdQUiBwYXNzZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVzZSAwIGZvciB0
aGUgMXN0IGFyZ3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBnZXRB
cmd1bWVudEdQUihHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAg
ICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBm
b3JiaXMgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxGdW5jdGlvbj46OmNDYWxsQXJpdHkoKSA+IEFy
Z051bSwgIkZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFyZ3VtZW50cyIpOworCisgICAg
ICAgIGlmIGNvbnN0ZXhwciAoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMp
CisgICAgICAgICAgICByZXR1cm4gbG9hZEFyZ3VtZW50RnJvbVN0YWNrPEZ1bmN0aW9uLCBBcmdO
dW0+KHNjcmF0Y2hHUFIpOworCisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoR1BSKTsgLy8g
T3RoZXJ3aXNlIHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhwcgorICAgICAgICBzd2l0Y2ggKEFyZ051
bSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1l
bnRHUFIwOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJn
dW1lbnRHUFIxOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6
YXJndW1lbnRHUFIyOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5m
bzo6YXJndW1lbnRHUFIzOworI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQorICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI0OworICAg
ICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI1Owor
I2VuZGlmCisjaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyAgICAgICAgY2FzZSA2Ogor
ICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNjsKKyAgICAgICAgY2FzZSA3
OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNzsKKyNlbmRpZgorICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJOb3QgZW5vdWdoIGFyZ3VtZW50R1BScyIpOworICAgICAgICB9CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmViMWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40
NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRiNGFkMzJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVn
RXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgU3RyaW5nJiBzLCBpbnQgc3Rh
cnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEpJVENvZGU6
IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxvY2smIGNvZGVCbG9jayA9ICptX3JlZ0V4
cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOwot
ICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNo
QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNo
T25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAg
ICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQi
IFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAppbmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0
ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi4wYTA5MTc4ZTZmOWE5NDM5MWEwZGYxZDAxYzM5ZTVjZWNh
ZGZiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlm
IChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1f
cmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20p
OworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1h
dGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0Owor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJh
Y3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBD
b250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQs
IHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0
KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8
aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29kZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyAr
MTQ2LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9i
amVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlmIChtX3N0YXRl
ID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKTsKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQo
KSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0
b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZ
U19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckds
b2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlz
LCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhw
Q29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywg
bWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0
ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4o
b2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2NiwxMiBAQCBBTFdBWVNfSU5M
SU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxP
ckdsb2JhbE9iamVjdAogICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0
Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQo
KSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQo
KSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5j
aGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFj
dGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENv
bnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0
ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRl
eHQpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyAr
Mjk1LDcgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpT
R2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3Iu
Z3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92
ZWN0b3IuZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1
bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZz
ZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAj
aWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi4z
NDE2MWY3N2VjNWRkYjJhZWQ4ZGYxNDVkZmMyMWRkODhjMTUyNDU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
Vk0uaCIKQEAgLTE4NiwxMCArMTg3LDYgQEAgc3RkOjp0dXBsZTxCb3llck1vb3JlQml0bWFwOjpN
YXAsIEJveWVyTW9vcmVGYXN0Q2FuZGlkYXRlcz4gQm95ZXJNb29yZUluZm86OmNyZWEKIHRlbXBs
YXRlPGNsYXNzIFlhcnJKSVRSZWdzID0gWWFyckpJVERlZmF1bHRSZWdpc3RlcnM+CiBjbGFzcyBZ
YXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAotI2lmZGVmICBKSVRf
VU5JQ09ERV9FWFBSRVNTSU9OUwotICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZm
ZmMwMCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJ
T05TKQogICAgIHN0cnVjdCBQYXJlbkNvbnRleHRTaXplcyB7CiAgICAgICAgIHNpemVfdCBtX251
bVN1YnBhdHRlcm5zOwpAQCAtNjAzLDcgKzYwMCw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWduZWQo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwg
cmVzdWx0UmVnKTsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFjdGVyIGEgbGVhZGluZyBzdXJy
b2dhdGU/Ci0gICAgICAgIG1faml0LmFuZDMyKFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzOjpzdXJy
b2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51bmljb2RlVGVtcCk7CisgICAgICAgIG1f
aml0LmFuZDMyKG1fcmVncy5zdXJyb2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51bmlj
b2RlVGVtcCk7CiAgICAgICAgIG5vdFVuaWNvZGUuYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwgbV9yZWdzLnVuaWNvZGVUZW1wLCBtX3JlZ3MubGVhZGluZ1N1
cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8vIElzIHRoZSBpbnB1dCBsb25nIGVub3VnaCB0byBy
ZWFkIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwpAQCAtNjEyLDcgKzYwOSw3IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgICAgIC8vIElzIHRo
ZSBjaGFyYWN0ZXIgYSB0cmFpbGluZyBzdXJyb2dhdGU/CiAgICAgICAgIG1faml0LmxvYWQxNlVu
YWxpZ25lZChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5k
VHJhaWwpLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpOwotICAgICAgICBtX2ppdC5h
bmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVyczo6c3Vycm9nYXRlVGFnTWFzaywgbV9yZWdzLnJl
Z1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXApOworICAgICAgICBtX2pp
dC5hbmQzMihtX3JlZ3Muc3Vycm9nYXRlVGFnTWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFu
ZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXApOwogICAgICAgICBub3RVbmljb2RlLmFwcGVuZCht
X2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG1fcmVncy51bmljb2RlVGVt
cCwgbV9yZWdzLnRyYWlsaW5nU3Vycm9nYXRlVGFnKSk7CiAKICAgICAgICAgLy8gQ29tYmluZSBs
ZWFkaW5nIGFuZCB0cmFpbGluZyBzdXJyb2dhdGVzIHRvIHByb2R1Y2UgYSBjb2RlIHBvaW50LgpA
QCAtMzk2MSwxMCArMzk1OCwxNCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IFlhcnJKSVRJbmZvIHsKIAogICAgIHZvaWQgZ2VuZXJhdGVFbnRlcigpCiAgICAgewotI2lmIENQ
VShYODZfNjQpCi0gICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAg
ICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVn
aXN0ZXJzOjplYnApOworI2lmIENQVShBUk02NCkKKyAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VK
SVRDYWdlKCkpCisgICAgICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworI2Vs
c2UKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyNlbmRpZgogCisjaWYg
Q1BVKFg4Nl82NCkKICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1
ZSkKICAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYngpOwogCkBAIC0zOTg3
LDMxICszOTg4LDE2IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJ
VEluZm8gewogICAgICAgICB9CiAjaWYgT1MoV0lORE9XUykKICAgICAgICAgaWYgKG1fY29tcGls
ZU1vZGUgPT0gSklUQ29tcGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJucykKLSAgICAgICAgICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAs
IDYgKiBzaXplb2Yodm9pZCopKSwgbV9yZWdzLm91dHB1dCk7CisgICAgICAgICAgICBtX2ppdC5s
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3RlciwgNiAqIHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0cHV0KTsKICAgICAgICAg
Ly8gcmN4IGlzIHRoZSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgc3BhY2UgZm9yIHJlc3VsdCBp
biB4NjQgV2luZG93cy4KICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVjeCk7CiAj
ZW5kaWYKLSNlbGlmIENQVShBUk02NCkKLSAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdl
KCkpCi0gICAgICAgICAgICBtX2ppdC50YWdSZXR1cm5BZGRyZXNzKCk7Ci0gICAgICAgIGlmICht
X2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7Ci0gICAgICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJ
VENhZ2UoKSkKLSAgICAgICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fzc2VtYmxlcjo6
ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwotICAg
ICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDAp
LCBtX3JlZ3Muc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UpOwotICAgICAgICAgICAgbV9qaXQubW92
ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCksIG1fcmVncy5sZWFkaW5nU3Vy
cm9nYXRlVGFnKTsKLSAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMigweGRjMDApLCBtX3JlZ3MudHJhaWxpbmdTdXJyb2dhdGVUYWcpOwotICAgICAgICB9
CiAjZWxpZiBDUFUoQVJNX1RIVU1CMikKICAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6
OnI0KTsKICAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKICAgICAgICAgbV9q
aXQucHVzaChBUk1SZWdpc3RlcnM6OnI2KTsKICAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3Rl
cnM6OnI4KTsKICAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnIxMCk7Ci0jZWxpZiBD
UFUoUklTQ1Y2NCkKLSAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpCi0gICAgICAg
ICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIs
IE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwotI2VsaWYgQ1BVKE1JUFMpCi0gICAgICAg
IC8vIERvIG5vdGhpbmcuCiAjZW5kaWYKICAgICB9CiAKQEAgLTQwNTIsMjQgKzQwMzgsMjEgQEAg
Y2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAg
ICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1f
aml0LnBvcChYODZSZWdpc3RlcnM6OmVieCk7Ci0gICAgICAgIG1faml0LnBvcChYODZSZWdpc3Rl
cnM6OmVicCk7Ci0jZWxpZiBDUFUoQVJNNjQpCi0gICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0
ZVBhaXJzKSB7Ci0gICAgICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKLSAgICAg
ICAgICAgICAgICBtX2ppdC5wb3BQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdp
c3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7Ci0gICAgICAgIH0KICNlbGlmIENQ
VShBUk1fVEhVTUIyKQogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyMTApOwogICAg
ICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyOCk7CiAgICAgICAgIG1faml0LnBvcChBUk1S
ZWdpc3RlcnM6OnI2KTsKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjUpOwogICAg
ICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyNCk7Ci0jZWxpZiBDUFUoUklTQ1Y2NCkKLSAg
ICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpCi0gICAgICAgICAgICBtX2ppdC5wb3BQ
YWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6
OmxpbmtSZWdpc3Rlcik7Ci0jZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8gbm90aGluZwog
I2VuZGlmCisKKyNpZiBDUFUoQVJNNjQpCisgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdlKCkp
CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisjZWxzZQorICAgIG1faml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisjZW5kaWYKKwogI2lmIENQVShBUk02NEUpCiAgICAg
ICAgIGlmIChPcHRpb25zOjp1c2VKSVRDYWdlKCkpCiAgICAgICAgICAgICBtX2ppdC5mYXJKdW1w
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJldGFnQ29kZVB0cjx2b2lkKiwgQ0Z1bmN0
aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJUYWc+KCZ2bUVudHJ5VG9ZYXJySklUQWZ0ZXIpKSwgT3Bl
cmF0aW9uUHRyVGFnKTsKQEAgLTQwODYsNyArNDA2OSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3Ig
ZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgIH0KIAogcHVibGljOgotICAgIFlhcnJH
ZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVy
biwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29t
cGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRS
ZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAg
ICAgIDogbV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxv
Y2soY29kZUJsb2NrKQpAQCAtNDEwNSw3ICs0MDg4LDcgQEAgcHVibGljOgogICAgICAgICBtX2Jv
eWVyTW9vcmVEYXRhID0gc3RhdGljX2Nhc3Q8WWFyckJveWVyTW95ZXJEYXRhKj4obV9jb2RlQmxv
Y2spOwogICAgIH0KIAotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29u
c3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRS
ZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAg
WWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJN
b3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVy
biYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6
ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQogICAg
ICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2sobnVsbHB0cikKQEAgLTQxOTEs
MTcgKzQxNzQsMzEgQEAgcHVibGljOgogICAgICAgICBpZiAoY2FsbEZyYW1lU2l6ZUluQnl0ZXMp
IHsKICAgICAgICAgICAgIC8vIENoZWNrIHN0YWNrIHNpemUKICAgICAgICAgICAgIG1faml0LmFk
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jYWxsRnJhbWVTaXplSW5CeXRlcyks
IE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbV9yZWdzLnJlZ1QwKTsKLSNp
ZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250
ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVn
cy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoWDg2UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0
KTsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAgICAgICAgICAgIC8vIG1h
dGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3Rh
Y2suCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRl
eHQgPSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNCAqIHNp
emVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOworCisgICAgICAgICAgICAvLyBNYWtlIHN1
cmUgdGhhdCB0aGUgSklUZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0IHRo
ZSA1dGggYXJndW1lbnQgaXMgYSBNYXRjaGluZ0NvbnRleHRIb2xkZXIqCisgICAgICAgICAgICAv
LyBUT0RPOiBDYW4gdGhpcyBiZSBhIGxhbWJhPworI2RlZmluZSBGVU5DVElPTkNIRUNLUyhmdW5j
KSBcCisgICAgZG8geyBcCisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8ZnVu
Yz46OmNDYWxsQXJpdHkoKSA9PSA1LCAiWWFyckpJVENvZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsg
XAorICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxNYXRjaGluZ0NvbnRleHRIb2xk
ZXIqLCBGdW5jdGlvblRyYWl0czxmdW5jPjo6QXJndW1lbnRUeXBlPDQ+Pjo6dmFsdWUpOyBcCisg
ICAgfSB3aGlsZSAoZmFsc2UpCisKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2Rl
QmxvY2s6OllhcnJKSVRDb2RlOCk7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29k
ZUJsb2NrOjpZYXJySklUQ29kZTE2KTsKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJD
b2RlQmxvY2s6OllhcnJKSVRDb2RlTWF0Y2hPbmx5OCk7CisgICAgICAgICAgICBGVU5DVElPTkNI
RUNLUyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2KTsKKworI3VuZGVmIEZV
TkNUSU9OQ0hFQ0tTCisKKyNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTIDwgNXUKKyAg
ICAgICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2ppdC5nZXRBcmd1bWVudEdQUjxZ
YXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgsIDQ+KG1fcmVncy5yZWdUMSk7CisgICAgICAgICAg
ICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5yZWdUMSk7CiAjZWxzZQotICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdz
Lm1hdGNoaW5nQ29udGV4dDsKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBt
X2ppdC5nZXRBcmd1bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgsIDQ+KCk7Cisg
ICAgICAgICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5tYXRjaGluZ0NvbnRl
eHQpOwogI2VuZGlmCisgICAgICAgICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVn
cy5tYXRjaGluZ0NvbnRleHQpOworCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBz
dGFja09rID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvd09yRXF1YWwsIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKG1hdGNoaW5nQ29udGV4dCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyOjpvZmZzZXRPZlN0YWNrTGltaXQoKSksIG1fcmVncy5yZWdUMCk7CiAKICAgICAgICAgICAg
IC8vIEV4Y2VlZGVkIHN0YWNrIGxpbWl0LCBwdW50IHRvIHRoZSBpbnRlcnByZXRlci4KQEAgLTQ2
MTgsNyArNDYxNSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTWFjcm9Bc3Nl
bWJsZXImIG1faml0OworICAgIENDYWxsSGVscGVycyYgbV9qaXQ7CiAgICAgY29uc3QgVk0qIG1f
dm07CiAgICAgWWFyckNvZGVCbG9jayogbV9jb2RlQmxvY2s7CiAgICAgWWFyckJveWVyTW95ZXJE
YXRhKiBtX2JveWVyTW9vcmVEYXRhOwpAQCAtNDcwNiw3ICs0NzAzLDcgQEAgc3RhdGljIHZvaWQg
ZHVtcENvbXBpbGVGYWlsdXJlKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKIAogdm9pZCBqaXRD
b21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJT
aXplIGNoYXJTaXplLCBWTSogdm0sIFlhcnJDb2RlQmxvY2smIGNvZGVCbG9jaywgSklUQ29tcGls
ZU1vZGUgbW9kZSkKIHsKLSAgICBNYWNyb0Fzc2VtYmxlciBtYXNtOworICAgIENDYWxsSGVscGVy
cyBtYXNtOwogCiAgICAgQVNTRVJUKG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Ok1hdGNoT25seSB8
fCBtb2RlID09IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpOwogCkBAIC00NzI3
LDcgKzQ3MjQsNyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsCiAjZXJyb3IgIk5vIHN1cHBvcnQg
Zm9yIGlubGluZWQgSklUJ2luZyBvZiBSZWdFeHAudGVzdCBmb3IgdGhpcyBDUFUgLyBPUyBjb21i
aW5hdGlvbi4iCiAjZW5kaWYKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVj
ayogbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJu
U3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwg
Y29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBNYWNyb0Fz
c2VtYmxlciYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCit2b2lkIGppdENv
bXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVj
a2VyLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4g
ZmxhZ3MsIENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0
YSYgYm95ZXJNb29yZURhdGEsIENDYWxsSGVscGVycyYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBq
aXRSZWdpc3RlcnMpCiB7CiAgICAgWWFycjo6RXJyb3JDb2RlIGVycm9yQ29kZTsKICAgICBZYXJy
OjpZYXJyUGF0dGVybiBwYXR0ZXJuKHBhdHRlcm5TdHJpbmcsIGZsYWdzLCBlcnJvckNvZGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCmluZGV4IDI4OWQ2ZTgxZmU1MTdhYWRmYmU0
OThkMTg1ZTMwNzIwNWU2YTA3MzMuLjJiYzM3Mzk1NjQxMGRiYzRjOTVkN2RlMmZjZjhlOTZjMzY1
ZDNmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKQEAgLTQzLDkgKzQzLDEw
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBWTTsKK2NsYXNzIENDYWxsSGVscGVyczsK
IGNsYXNzIEV4ZWN1dGFibGVQb29sOwogY2xhc3MgTWFjcm9Bc3NlbWJsZXI7CitjbGFzcyBWTTsK
IAogbmFtZXNwYWNlIFlhcnIgewogCkBAIC0yNzEsMTIgKzI3MiwxMyBAQCBjbGFzcyBZYXJyQ29k
ZUJsb2NrIDogcHVibGljIFlhcnJCb3llck1veWVyRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWWFyckNvZGVCbG9jayk7CiAKLSAg
ICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFy
KiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91
dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsK
LSAgICB1c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBV
Q2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50
KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NB
TEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBl
ICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVy
IGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZ
QVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0
dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVS
ZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29u
dGV4dCkgWUFSUl9DQUxMOwotCiBwdWJsaWM6CisKKyAgICB1c2luZyBZYXJySklUQ29kZTggPSBT
bG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0
YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZTE2
ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3Rl
ciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4
dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENv
ZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQs
IFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5n
Q29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFy
ckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIq
IGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBN
YXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworCiAgICAg
WWFyckNvZGVCbG9jaygpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgc2V0RmFsbEJhY2tXaXRoRmFp
bHVyZVJlYXNvbihKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmVSZWFzb24pIHsgbV9mYWlsdXJlUmVh
c29uID0gZmFpbHVyZVJlYXNvbjsgfQpAQCAtMzI2LDcgKzMyOCw3IEBAIHB1YmxpYzoKICAgICBJ
bmxpbmVTdGF0cyYgZ2V0OEJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gbV9tYXRjaE9ubHk4U3Rh
dHM7IH0KICAgICBJbmxpbmVTdGF0cyYgZ2V0MTZCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuICBt
X21hdGNoT25seTE2U3RhdHM7IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENo
YXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQg
ZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5n
dGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkK
ICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpA
QCAtMzM2LDcgKzMzOCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVu
dGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlOCwgWWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0
Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBV
Q2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3Vs
dCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxl
bmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0
KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRF
KQpAQCAtMzQ2LDcgKzM0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0
KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlMTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYx
Ni5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1
dCwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShj
b25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNo
aW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1
dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBN
YXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFT
U0VSVChoYXM4Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzU2LDcg
KzM1OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0
aW9uUHRyPFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCwgWWFyck1hdGNoT25seThCaXRQdHJUYWc+KG1f
bWF0Y2hPbmx5OC5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5n
dGgsIG51bGxwdHIsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0
IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVu
Z3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJl
c3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewog
ICAgICAgICBBU1NFUlQoaGFzMTZCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUp
CkBAIC00MzksNyArNDQxLDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiwgU3RyaW5n
JiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSwgVk0qLCBZYXJyQ29kZUJsb2MKIAogY2xhc3MgWWFy
ckpJVFJlZ2lzdGVyczsKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayos
IGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBW
TSosIFlhcnJCb3llck1veWVyRGF0YSYsIE1hY3JvQXNzZW1ibGVyJiwgWWFyckpJVFJlZ2lzdGVy
cyYpOwordm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmlu
ZyYsIE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3ll
ck1veWVyRGF0YSYsIENDYWxsSGVscGVycyYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKICNlbmRpZgog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVFJlZ2lzdGVycy5oCmluZGV4IGJiODIxY2U4NjdmZTM4ZTI4ZjM1Y2U3MDZiOWJj
NjA5OTQyZjc5YjQuLjE3YWIxYzUyZGJjNGNjZGJkNmE5OGQ0MzFiYmJkMTQ5YTYxNDYzNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgKQEAgLTM1
LDYgKzM1LDEyIEBAIG5hbWVzcGFjZSBZYXJyIHsKIAogc3RydWN0IFlhcnJKSVREZWZhdWx0UmVn
aXN0ZXJzIHsKIHB1YmxpYzoKKworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMHgxMDAwMCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKDB4ZDgwMCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMigweGRjMDApOworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MigweGZmZmZmYzAwKTsKKwogI2lmIENQVShBUk1fVEhVTUIyKQogICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIGlucHV0ID0gQVJNUmVnaXN0ZXJzOjpyMDsKICAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyBpbmRleCA9IEFSTVJlZ2lzdGVyczo6cjE7CkBAIC03MCwxNSArNzYsMTAgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1VuaWNvZGVJbnB1dEFuZFRyYWls
ID0gQVJNNjRSZWdpc3RlcnM6OngxMDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB1bmlj
b2RlVGVtcCA9IEFSTTY0UmVnaXN0ZXJzOjp4NTsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJl
ZyBpbml0aWFsU3RhcnQgPSBBUk02NFJlZ2lzdGVyczo6eDExOwotICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gQVJNNjRSZWdpc3RlcnM6OngxMjsK
LSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBsZWFkaW5nU3Vycm9nYXRlVGFnID0gQVJNNjRS
ZWdpc3RlcnM6OngxMzsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB0cmFpbGluZ1N1cnJv
Z2F0ZVRhZyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgZW5kT2ZTdHJpbmdBZGRyZXNzID0gQVJNNjRSZWdpc3RlcnM6OngxNTsKIAogICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OngwOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IEFSTTY0UmVnaXN0
ZXJzOjp4MTsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZm
ZmZmYzAwKTsKICNlbGlmIENQVShNSVBTKQogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlu
cHV0ID0gTUlQU1JlZ2lzdGVyczo6YTA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5k
ZXggPSBNSVBTUmVnaXN0ZXJzOjphMTsKQEAgLTEzNywxMSArMTM4LDYgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6
OmVheDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBYODZS
ZWdpc3RlcnM6OmVkeDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoMHgxMDAwMCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKDB4ZDgwMCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweGRjMDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigw
eGZmZmZmYzAwKTsKICNlbGlmIENQVShSSVNDVjY0KQogICAgIC8vIEFyZ3VtZW50IHJlZ2lzdGVy
cwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gUklTQ1Y2NFJlZ2lzdGVyczo6
eDEwOwpAQCAtMTY0LDExICsxNjAsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMDsKICAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4
MTE7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIg
c3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4
MTAwMDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4
MDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0
cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAw
KTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vy
cm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7
CiAjZW5kaWYKIH07CiAKQEAgLTIwNiw2ICsxOTcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCk7CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMigweGQ4MDApOwogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4
ZGMwMCk7CisgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVU
YWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKIH07CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNo
aW5nQ29udGV4dEhvbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNo
aW5nQ29udGV4dEhvbGRlci5oCmluZGV4IDEzOWQxZmUzNWI1NzVjNzBhMDVhN2U3NzI1ZGQ5ZmEx
ZWZiNjYwMWUuLjFhZjgzMDk4MmZmNTdmMmE5M2I2NjE3OTM4ZDJkYmM1ZGVjOGExNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xk
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0
SG9sZGVyLmgKQEAgLTM3LDEyICszNywxMCBAQCBjbGFzcyBSZWdFeHA7CiAKIG5hbWVzcGFjZSBZ
YXJyIHsKIAotY2xhc3MgWWFyckNvZGVCbG9jazsKLQogY2xhc3MgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKLSAgICBNYXRj
aGluZ0NvbnRleHRIb2xkZXIoVk0mLCBZYXJyQ29kZUJsb2NrKiwgUmVnRXhwKiwgTWF0Y2hGcm9t
KTsKKyAgICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBib29sLCBSZWdFeHAqLCBNYXRjaEZy
b20pOwogICAgIH5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKTsKIAogICAgIHN0YXRpYyBwdHJkaWZm
X3Qgb2Zmc2V0T2ZTdGFja0xpbWl0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE1hdGNoaW5n
Q29udGV4dEhvbGRlciwgbV9zdGFja0xpbWl0KTsgfQpAQCAtNjEsNyArNTksNyBAQCBwcml2YXRl
OgogICAgIE1hdGNoRnJvbSBtX21hdGNoRnJvbTsKIH07CiAKLWlubGluZSBNYXRjaGluZ0NvbnRl
eHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2RlQmxvY2sqIHlh
cnJDb2RlQmxvY2ssIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQoraW5saW5l
IE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgYm9v
bCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0
Y2hGcm9tKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fbWF0Y2hGcm9tKG1hdGNoRnJvbSkKIHsK
QEAgLTc0LDEyICs3MiwxMiBAQCBpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGlu
Z0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQwogICAgIH0KIAogI2lm
IEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQotICAgIGlmICh5YXJyQ29k
ZUJsb2NrICYmIHlhcnJDb2RlQmxvY2stPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpKSB7Cisg
ICAgaWYgKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcikgewogICAgICAgICBtX3BhdHRlcm5Db250
ZXh0QnVmZmVyID0gbV92bS5hY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogICAg
ICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZSA9IFZNOjpwYXR0ZXJuQ29udGV4dEJ1ZmZl
clNpemU7CiAgICAgfQogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oeWFyckNvZGVCbG9jayk7Cisg
ICAgVU5VU0VEX1BBUkFNKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik7CiAjZW5kaWYKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448867</attachid>
            <date>2022-01-11 12:14:09 -0800</date>
            <delta_ts>2022-01-11 15:27:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220111161407.patch</filename>
            <type>text/plain</type>
            <size>32694</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLjg0ZjQ2MDBk
NGI1MTA4MDQ5OGQ2ZjEzMjE1OTllMmVhNDA5NGIxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtOTkyLDYgKzk5Miw4MSBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051
bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAgfQorCitwcml2YXRlOgorCisgICAgLy8gSW4gY2FzZSB3
ZSBhcmUgdHJ5aW5nIHRvIGdldCB0aGUgYXJndW1lbnQgZnJvbSBhIGZ1bmN0aW9uIGJ1dCB0aGVy
ZSBpc24ndCBlbm91Z2ggcmVnaXN0ZXJzLCB0aGlzCisgICAgLy8gZnVuY3Rpb24gdHJpZXMgdG8g
bG9hZCBpdCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc3AuIEluIG9yZGVyIGZvciB0aGlzIHRv
IHdvcmssIHRoZSBmcmFtZSBwb2ludGVyCisgICAgLy8gbXVzdCBiZSBzZXQgaW4gdGhlIGZ1bmN0
aW9uIHByb2xvZ3VlCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBB
cmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3RhY2soR1BSUmVn
IHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBhcmd1bWVudCIp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUlgiKTsKKworICAgICAg
ICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0Y2hHUFIgZnJvbSB0aGUgc3RhY2sg
dGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0IHRoZSBmdW5jdGlvbiBwcm9sb2d1
ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUgYXJndW1lbnQgd2lsbCBiZSBwbGFj
ZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAtIE51bWJlci1vZi1hcmctcmVncywg
ZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBvbiBBUk12NyB3aWxsIGJlIHBsYWNl
ZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVvZihwdHIqKSwgaG93ZXZlciwgdGhh
dCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6
IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyByZXNlcnZlZCBvbiB0aGUgc3RhY2sg
Zm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAgICAgIC8vIGFyY2hzLCBhICs0IG9m
ZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBNSVBTIGlzIGZwICsgNiAqIHNpemVv
ZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zmc2V0OiBXaW5kb3dzIHg4NiBvbmx5
LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1iaXRzLCBpdCdzIHJldHVybmVkIHZp
YSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNzZWQgYXMgYW4gaW1wbGljaXQgZmly
c3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRzIGFyZSBzaGlmdGVkIHRvIHRoZSBy
aWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAvLyBUaGUgNXRoIGFyZ3VtZW50IG9u
IFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAgKyA3ICogc2l6ZW9mKHB0ciopLgor
CisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNzT2Zmc2V0ID0gMjsKKyNpZiBPUyhX
SU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVP
ZmZzZXQgPSBzaXplb2YodHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8RnVuY3Rpb24+OjpSZXN1bHRU
eXBlKSA+PSA4OworICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJF
Ul9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFk
cmVzc09mZnNldCArIHJldHVyblR5cGVPZmZzZXQ7CisjZWxzZQorICAgICAgICBjb25zdGV4cHIg
aW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tF
X0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkcmVzc09mZnNldDsKKyNlbmRpZgorICAgICAgICBs
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0Y2hHUFIpOworICAgICAg
ICByZXR1cm4gc2NyYXRjaEdQUjsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIC8vIEdpdmVuIGEg
ZnVuY3Rpb24gYW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVuY3Rpb24gcmV0
dXJucyB0aGUgYXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAvLyBvciBpdCB0
cmllcyB0byBsb2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc2NyYXRj
aEdQUiBwYXNzZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVzZSAwIGZvciB0
aGUgMXN0IGFyZ3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBnZXRB
cmd1bWVudEdQUihHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAg
ICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBm
b3JiaXMgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxGdW5jdGlvbj46OmNDYWxsQXJpdHkoKSA+IEFy
Z051bSwgIkZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFyZ3VtZW50cyIpOworCisgICAg
ICAgIGlmIGNvbnN0ZXhwciAoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMp
CisgICAgICAgICAgICByZXR1cm4gbG9hZEFyZ3VtZW50RnJvbVN0YWNrPEZ1bmN0aW9uLCBBcmdO
dW0+KHNjcmF0Y2hHUFIpOworCisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoR1BSKTsgLy8g
T3RoZXJ3aXNlIHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhwcgorICAgICAgICBzd2l0Y2ggKEFyZ051
bSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1l
bnRHUFIwOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJn
dW1lbnRHUFIxOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6
YXJndW1lbnRHUFIyOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5m
bzo6YXJndW1lbnRHUFIzOworI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQorICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI0OworICAg
ICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI1Owor
I2VuZGlmCisjaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyAgICAgICAgY2FzZSA2Ogor
ICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNjsKKyAgICAgICAgY2FzZSA3
OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNzsKKyNlbmRpZgorICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJOb3QgZW5vdWdoIGFyZ3VtZW50R1BScyIpOworICAgICAgICB9CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmViMWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40
NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRiNGFkMzJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVn
RXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgU3RyaW5nJiBzLCBpbnQgc3Rh
cnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEpJVENvZGU6
IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxvY2smIGNvZGVCbG9jayA9ICptX3JlZ0V4
cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOwot
ICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNo
QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNo
T25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAg
ICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQi
IFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAppbmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0
ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi4wYTA5MTc4ZTZmOWE5NDM5MWEwZGYxZDAxYzM5ZTVjZWNh
ZGZiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlm
IChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1f
cmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20p
OworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1h
dGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0Owor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJh
Y3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBD
b250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQs
IHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0
KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8
aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29kZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyAr
MTQ2LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9i
amVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlmIChtX3N0YXRl
ID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKTsKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQo
KSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0
b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZ
U19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckds
b2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlz
LCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhw
Q29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywg
bWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0
ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4o
b2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2NiwxMiBAQCBBTFdBWVNfSU5M
SU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxP
ckdsb2JhbE9iamVjdAogICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0
Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQo
KSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQo
KSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5j
aGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFj
dGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENv
bnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0
ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRl
eHQpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyAr
Mjk1LDcgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpT
R2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3Iu
Z3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92
ZWN0b3IuZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1
bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZz
ZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAj
aWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi4y
YzU3ODBjNmYyMDZlZjkzZDNlOTJlYTdmNGVmZGE1ZDViYmFlMzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
Vk0uaCIKQEAgLTE4NiwxMCArMTg3LDYgQEAgc3RkOjp0dXBsZTxCb3llck1vb3JlQml0bWFwOjpN
YXAsIEJveWVyTW9vcmVGYXN0Q2FuZGlkYXRlcz4gQm95ZXJNb29yZUluZm86OmNyZWEKIHRlbXBs
YXRlPGNsYXNzIFlhcnJKSVRSZWdzID0gWWFyckpJVERlZmF1bHRSZWdpc3RlcnM+CiBjbGFzcyBZ
YXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAotI2lmZGVmICBKSVRf
VU5JQ09ERV9FWFBSRVNTSU9OUwotICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZm
ZmMwMCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJ
T05TKQogICAgIHN0cnVjdCBQYXJlbkNvbnRleHRTaXplcyB7CiAgICAgICAgIHNpemVfdCBtX251
bVN1YnBhdHRlcm5zOwpAQCAtNjAzLDcgKzYwMCw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWduZWQo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwg
cmVzdWx0UmVnKTsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFjdGVyIGEgbGVhZGluZyBzdXJy
b2dhdGU/Ci0gICAgICAgIG1faml0LmFuZDMyKFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzOjpzdXJy
b2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51bmljb2RlVGVtcCk7CisgICAgICAgIG1f
aml0LmFuZDMyKG1fcmVncy5zdXJyb2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51bmlj
b2RlVGVtcCk7CiAgICAgICAgIG5vdFVuaWNvZGUuYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwgbV9yZWdzLnVuaWNvZGVUZW1wLCBtX3JlZ3MubGVhZGluZ1N1
cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8vIElzIHRoZSBpbnB1dCBsb25nIGVub3VnaCB0byBy
ZWFkIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwpAQCAtNjEyLDcgKzYwOSw3IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgICAgIC8vIElzIHRo
ZSBjaGFyYWN0ZXIgYSB0cmFpbGluZyBzdXJyb2dhdGU/CiAgICAgICAgIG1faml0LmxvYWQxNlVu
YWxpZ25lZChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5k
VHJhaWwpLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpOwotICAgICAgICBtX2ppdC5h
bmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVyczo6c3Vycm9nYXRlVGFnTWFzaywgbV9yZWdzLnJl
Z1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXApOworICAgICAgICBtX2pp
dC5hbmQzMihtX3JlZ3Muc3Vycm9nYXRlVGFnTWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFu
ZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXApOwogICAgICAgICBub3RVbmljb2RlLmFwcGVuZCht
X2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG1fcmVncy51bmljb2RlVGVt
cCwgbV9yZWdzLnRyYWlsaW5nU3Vycm9nYXRlVGFnKSk7CiAKICAgICAgICAgLy8gQ29tYmluZSBs
ZWFkaW5nIGFuZCB0cmFpbGluZyBzdXJyb2dhdGVzIHRvIHByb2R1Y2UgYSBjb2RlIHBvaW50LgpA
QCAtMzk2MSwxMCArMzk1OCw5IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMg
WWFyckpJVEluZm8gewogCiAgICAgdm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7Ci0jaWYgQ1BV
KFg4Nl82NCkKLSAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7Ci0gICAgICAg
IG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBYODZSZWdp
c3RlcnM6OmVicCk7CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAKKyNp
ZiBDUFUoWDg2XzY0KQogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZh
bHVlKQogICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVieCk7CiAKQEAgLTM5
ODcsMzEgKzM5ODMsMTYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJy
SklUSW5mbyB7CiAgICAgICAgIH0KICNpZiBPUyhXSU5ET1dTKQogICAgICAgICBpZiAobV9jb21w
aWxlTW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKQotICAgICAgICAg
ICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVi
cCwgNiAqIHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0cHV0KTsKKyAgICAgICAgICAgIG1faml0
LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9p
bnRlclJlZ2lzdGVyLCA2ICogc2l6ZW9mKHZvaWQqKSksIG1fcmVncy5vdXRwdXQpOwogICAgICAg
ICAvLyByY3ggaXMgdGhlIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBzcGFjZSBmb3IgcmVzdWx0
IGluIHg2NCBXaW5kb3dzLgogICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWN4KTsK
ICNlbmRpZgotI2VsaWYgQ1BVKEFSTTY0KQotICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENh
Z2UoKSkKLSAgICAgICAgICAgIG1faml0LnRhZ1JldHVybkFkZHJlc3MoKTsKLSAgICAgICAgaWYg
KG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKLSAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNl
SklUQ2FnZSgpKQotICAgICAgICAgICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVy
OjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7Ci0g
ICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAw
MCksIG1fcmVncy5zdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSk7Ci0gICAgICAgICAgICBtX2ppdC5t
b3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKSwgbV9yZWdzLmxlYWRpbmdT
dXJyb2dhdGVUYWcpOwotICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKDB4ZGMwMCksIG1fcmVncy50cmFpbGluZ1N1cnJvZ2F0ZVRhZyk7Ci0gICAgICAg
IH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVy
czo6cjQpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjUpOwogICAgICAgICBt
X2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lz
dGVyczo6cjgpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjEwKTsKLSNlbGlm
IENQVShSSVNDVjY0KQotICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykKLSAgICAg
ICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rl
ciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7Ci0jZWxpZiBDUFUoTUlQUykKLSAgICAg
ICAgLy8gRG8gbm90aGluZy4KICNlbmRpZgogICAgIH0KIApAQCAtNDA1MiwyNyArNDAzMywyMSBA
QCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAg
ICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAg
bV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKLSAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lz
dGVyczo6ZWJwKTsKLSNlbGlmIENQVShBUk02NCkKLSAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9n
YXRlUGFpcnMpIHsKLSAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAg
ICAgICAgICAgICAgIG1faml0LnBvcFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJl
Z2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKLSAgICAgICAgfQogI2VsaWYg
Q1BVKEFSTV9USFVNQjIpCiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnIxMCk7CiAg
ICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI4KTsKICAgICAgICAgbV9qaXQucG9wKEFS
TVJlZ2lzdGVyczo6cjYpOwogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyNSk7CiAg
ICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI0KTsKLSNlbGlmIENQVShSSVNDVjY0KQot
ICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykKLSAgICAgICAgICAgIG1faml0LnBv
cFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxl
cjo6bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBTKQotICAgICAgICAvLyBEbyBub3RoaW5n
CiAjZW5kaWYKKworICAgIG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisKICNpZiBDUFUo
QVJNNjRFKQotICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKQorICAgICAgICBpZiAo
T3B0aW9uczo6dXNlSklUQ2FnZSgpKSB7CisgICAgICAgICAgICBqaXQudW50YWdSZXR1cm5BZGRy
ZXNzKCk7CiAgICAgICAgICAgICBtX2ppdC5mYXJKdW1wKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKHJldGFnQ29kZVB0cjx2b2lkKiwgQ0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJU
YWc+KCZ2bUVudHJ5VG9ZYXJySklUQWZ0ZXIpKSwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICAgICAg
fQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2ppdC5yZXQoKTsKICNlbHNlCkBAIC00MDg2
LDcgKzQwNjEsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJ
bmZvIHsKICAgICB9CiAKIHB1YmxpYzoKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVy
JiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJy
SklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVy
blN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQor
ICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNv
ZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4m
IHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUs
IEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAg
ICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKGNvZGVCbG9jaykKQEAgLTQxMDUs
NyArNDA4MCw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9ib3llck1vb3JlRGF0YSA9IHN0YXRpY19j
YXN0PFlhcnJCb3llck1veWVyRGF0YSo+KG1fY29kZUJsb2NrKTsKICAgICB9CiAKLSAgICBZYXJy
R2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95
ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4m
IHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUs
IEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBj
b25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBp
bGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAg
ICAsIG1fY29kZUJsb2NrKG51bGxwdHIpCkBAIC00MTkxLDE3ICs0MTY2LDMxIEBAIHB1YmxpYzoK
ICAgICAgICAgaWYgKGNhbGxGcmFtZVNpemVJbkJ5dGVzKSB7CiAgICAgICAgICAgICAvLyBDaGVj
ayBzdGFjayBzaXplCiAgICAgICAgICAgICBtX2ppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMigtY2FsbEZyYW1lU2l6ZUluQnl0ZXMpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIG1fcmVncy5yZWdUMCk7Ci0jaWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lO
RE9XUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50
LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBt
X2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA3
ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7Ci0jZWxpZiBDUFUoQVJNX1RIVU1C
MikgfHwgQ1BVKE1JUFMpCi0gICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0
aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0YWNrLgotICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAg
ICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2Vt
Ymxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDQgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdD
b250ZXh0KTsKKworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIEpJVGVkIGZ1bmN0
aW9ucyBoYXZlIDUgcGFyYW1ldGVycyBhbmQgdGhhdCB0aGUgNXRoIGFyZ3VtZW50IGlzIGEgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyKgorICAgICAgICAgICAgLy8gVE9ETzogQ2FuIHRoaXMgYmUgYSBs
YW1iYT8KKyNkZWZpbmUgRlVOQ1RJT05DSEVDS1MoZnVuYykgXAorICAgIGRvIHsgXAorICAgICAg
ICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPGZ1bmM+OjpjQ2FsbEFyaXR5KCkgPT0gNSwg
IllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7IFwKKyAgICAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3NhbWU8TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiwgRnVuY3Rpb25UcmFpdHM8ZnVu
Yz46OkFyZ3VtZW50VHlwZTw0Pj46OnZhbHVlKTsgXAorICAgIH0gd2hpbGUgKGZhbHNlKQorCisg
ICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgpOwor
ICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGUxNik7
CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1h
dGNoT25seTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6WWFy
ckpJVENvZGVNYXRjaE9ubHkxNik7CisKKyN1bmRlZiBGVU5DVElPTkNIRUNLUworCisjaWYgTlVN
QkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA8IDV1CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hp
bmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENv
ZGU4LCA0PihtX3JlZ3MucmVnVDEpOworICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4
dCA9PSBtX3JlZ3MucmVnVDEpOwogI2Vsc2UKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpS
ZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5tYXRjaGluZ0NvbnRleHQ7CisgICAg
ICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFy
ckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PigpOworICAgICAgICAgICAgQVNTRVJUKG1hdGNo
aW5nQ29udGV4dCA9PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0KTsKICNlbmRpZgorICAgICAgICAg
ICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0KTsKKwog
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3RhY2tPayA9IG1faml0LmJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3dPckVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyht
YXRjaGluZ0NvbnRleHQsIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6b2Zmc2V0T2ZTdGFja0xpbWl0
KCkpLCBtX3JlZ3MucmVnVDApOwogCiAgICAgICAgICAgICAvLyBFeGNlZWRlZCBzdGFjayBsaW1p
dCwgcHVudCB0byB0aGUgaW50ZXJwcmV0ZXIuCkBAIC00NjE4LDcgKzQ2MDcsNyBAQCBwdWJsaWM6
CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNzZW1ibGVyJiBtX2ppdDsKKyAgICBDQ2Fs
bEhlbHBlcnMmIG1faml0OwogICAgIGNvbnN0IFZNKiBtX3ZtOwogICAgIFlhcnJDb2RlQmxvY2sq
IG1fY29kZUJsb2NrOwogICAgIFlhcnJCb3llck1veWVyRGF0YSogbV9ib3llck1vb3JlRGF0YTsK
QEAgLTQ3MDYsNyArNDY5NSw3IEBAIHN0YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRG
YWlsdXJlUmVhc29uIGZhaWx1cmUpCiAKIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0
dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZ
YXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ssIEpJVENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFj
cm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBDQ2FsbEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVCht
b2RlID09IEpJVENvbXBpbGVNb2RlOjpNYXRjaE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9k
ZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsKIApAQCAtNDcyNyw3ICs0NzE2LDcgQEAgdm9pZCBqaXRD
b21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJT
aXplIGNoYXJTaXplLAogI2Vycm9yICJObyBzdXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2Yg
UmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BVIC8gT1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZv
aWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRT
dGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6
OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVy
TW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgTWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJl
Z2lzdGVycyYgaml0UmVnaXN0ZXJzKQordm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tD
aGVjayogbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0
ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6
ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2Fs
bEhlbHBlcnMmIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlh
cnI6OkVycm9yQ29kZSBlcnJvckNvZGU7CiAgICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihw
YXR0ZXJuU3RyaW5nLCBmbGFncywgZXJyb3JDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJKSVQuaAppbmRleCAyODlkNmU4MWZlNTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi4y
YmMzNzM5NTY0MTBkYmM0Yzk1ZDdkZTJmY2Y4ZTk2YzM2NWQzZmVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyckpJVC5oCkBAIC00Myw5ICs0MywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotY2xhc3MgVk07CitjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsK
IGNsYXNzIE1hY3JvQXNzZW1ibGVyOworY2xhc3MgVk07CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApA
QCAtMjcxLDEyICsyNzIsMTMgQEAgY2xhc3MgWWFyckNvZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95
ZXJNb3llckRhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFlhcnJDb2RlQmxvY2spOwogCi0gICAgdXNpbmcgWWFyckpJVENvZGU4ID0g
U2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBz
dGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhv
bGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGUx
NiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0
ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRD
b2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0
LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlh
cnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFy
KiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLQogcHVi
bGljOgorCisgICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShj
b25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0
aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZ
QVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAo
KikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4
dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRo
UmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVD
UFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5n
Q29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBT
bG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0
YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBt
YXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKwogICAgIFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1
bHQ7CiAKICAgICB2b2lkIHNldEZhbGxCYWNrV2l0aEZhaWx1cmVSZWFzb24oSklURmFpbHVyZVJl
YXNvbiBmYWlsdXJlUmVhc29uKSB7IG1fZmFpbHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFzb247IH0K
QEAgLTMyNiw3ICszMjgsNyBAQCBwdWJsaWM6CiAgICAgSW5saW5lU3RhdHMmIGdldDhCaXRJbmxp
bmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hPbmx5OFN0YXRzOyB9CiAgICAgSW5saW5lU3RhdHMm
IGdldDE2Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiAgbV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAK
LSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3Rh
cnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYg
bWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlu
cHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQo
aGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTMzNiw3ICszMzgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklU
Q29kZTgsIFlhcnI4Qml0UHRyVGFnPihtX3JlZjguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkp
KGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0K
IAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
JiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciog
aW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRj
aGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VS
VChoYXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM0Niw3ICszNDgsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJy
SklUQ29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwog
ICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNo
aW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBt
YXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGVNYXRjaE9u
bHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM1Niw3ICszNTgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZU1hdGNo
T25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPihtX21hdGNoT25seTguY29kZSgpLmV4ZWN1
dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBudWxscHRyLCBtYXRjaGluZ0Nv
bnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBp
bnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hh
ciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4
dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0
Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtNDM5LDcgKzQ0MSw3IEBAIHZv
aWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYsIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNp
emUsIFZNKiwgWWFyckNvZGVCbG9jCiAKIGNsYXNzIFlhcnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQg
aml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25T
ZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEm
LCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlu
bGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6Rmxh
Z3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBl
cnMmLCBZYXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdp
c3RlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaApp
bmRleCBiYjgyMWNlODY3ZmUzOGUyOGYzNWNlNzA2YjliYzYwOTk0MmY3OWI0Li4xN2FiMWM1MmRi
YzRjY2RiZDZhOThkNDMxYmJiZDE0OWE2MTQ2MzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCkBAIC0zNSw2ICszNSwxMiBAQCBuYW1lc3BhY2Ug
WWFyciB7CiAKIHN0cnVjdCBZYXJySklURGVmYXVsdFJlZ2lzdGVycyB7CiBwdWJsaWM6CisKKyAg
ICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVu
dGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5n
U3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOworICAg
IHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1
cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKKyAgICBz
dGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFn
TWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CisKICNpZiBD
UFUoQVJNX1RIVU1CMikKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IEFSTVJl
Z2lzdGVyczo6cjA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBBUk1SZWdp
c3RlcnM6OnIxOwpAQCAtNzAsMTUgKzc2LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyByZWdVbmljb2RlSW5wdXRBbmRUcmFpbCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTA7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgdW5pY29kZVRlbXAgPSBBUk02NFJlZ2lzdGVy
czo6eDU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5pdGlhbFN0YXJ0ID0gQVJNNjRS
ZWdpc3RlcnM6OngxMTsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBzdXBwbGVtZW50YXJ5
UGxhbmVzQmFzZSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTI7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTM7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBBUk02NFJlZ2lzdGVy
czo6eDE0OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGVuZE9mU3RyaW5nQWRkcmVzcyA9
IEFSTTY0UmVnaXN0ZXJzOjp4MTU7CiAKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1
cm5SZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyByZXR1cm5SZWdpc3RlcjIgPSBBUk02NFJlZ2lzdGVyczo6eDE7Ci0KLSAgICBzdGF0aWMg
Y29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoTUlQ
UykKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IE1JUFNSZWdpc3RlcnM6OmEw
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluZGV4ID0gTUlQU1JlZ2lzdGVyczo6YTE7
CkBAIC0xMzcsMTEgKzEzOCw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIHJldHVyblJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0KLSAgICBz
dGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFy
eVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwotICAg
IHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vy
cm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOwotICAgIHN0
YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJv
Z2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKLSAgICBzdGF0
aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFz
ayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUo
UklTQ1Y2NCkKICAgICAvLyBBcmd1bWVudCByZWdpc3RlcnMKICAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyBpbnB1dCA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMDsKQEAgLTE2NCwxMSArMTYwLDYg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIg
PSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0
dXJuUmVnaXN0ZXIyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDExOwotCi0gICAgc3RhdGljIGNvbnN0
ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNl
ID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEwMDAwKTsKLSAgICBzdGF0aWMgY29u
c3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsKLSAgICBzdGF0aWMgY29uc3Rl
eHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRhZ01hc2sgPSBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwogI2VuZGlmCiB9OwogCkBAIC0yMDYs
NiArMTk3LDcgQEAgcHVibGljOgogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KDB4MTAwMDApOwogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVhZGlu
Z1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsKICAg
ICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFn
ID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDApOworICAgIGNvbnN0IE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRl
eCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcyNWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3
ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcs
MTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2Rl
QmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29udGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9I
RUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0gICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwg
WWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1hdGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250
ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNYXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tM
aW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRj
aEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRl
eHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJl
Z0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKK2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6
Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVm
ZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0p
CiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZyb20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5s
aW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwg
WWFyckNvZGVCbG9jayogeWFyckMKICAgICB9CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BB
UkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAoeWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2Nr
LT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRl
eHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWly
ZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1
ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRleHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxvY2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0
dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlmCiB9CiAK
</data>
<flag name="commit-queue"
          id="474845"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448878</attachid>
            <date>2022-01-11 14:22:02 -0800</date>
            <delta_ts>2022-01-11 15:40:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220111182200.patch</filename>
            <type>text/plain</type>
            <size>27381</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLjg0ZjQ2MDBk
NGI1MTA4MDQ5OGQ2ZjEzMjE1OTllMmVhNDA5NGIxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtOTkyLDYgKzk5Miw4MSBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051
bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAgfQorCitwcml2YXRlOgorCisgICAgLy8gSW4gY2FzZSB3
ZSBhcmUgdHJ5aW5nIHRvIGdldCB0aGUgYXJndW1lbnQgZnJvbSBhIGZ1bmN0aW9uIGJ1dCB0aGVy
ZSBpc24ndCBlbm91Z2ggcmVnaXN0ZXJzLCB0aGlzCisgICAgLy8gZnVuY3Rpb24gdHJpZXMgdG8g
bG9hZCBpdCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc3AuIEluIG9yZGVyIGZvciB0aGlzIHRv
IHdvcmssIHRoZSBmcmFtZSBwb2ludGVyCisgICAgLy8gbXVzdCBiZSBzZXQgaW4gdGhlIGZ1bmN0
aW9uIHByb2xvZ3VlCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBB
cmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3RhY2soR1BSUmVn
IHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBhcmd1bWVudCIp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUlgiKTsKKworICAgICAg
ICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0Y2hHUFIgZnJvbSB0aGUgc3RhY2sg
dGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0IHRoZSBmdW5jdGlvbiBwcm9sb2d1
ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUgYXJndW1lbnQgd2lsbCBiZSBwbGFj
ZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAtIE51bWJlci1vZi1hcmctcmVncywg
ZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBvbiBBUk12NyB3aWxsIGJlIHBsYWNl
ZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVvZihwdHIqKSwgaG93ZXZlciwgdGhh
dCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6
IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyByZXNlcnZlZCBvbiB0aGUgc3RhY2sg
Zm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAgICAgIC8vIGFyY2hzLCBhICs0IG9m
ZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBNSVBTIGlzIGZwICsgNiAqIHNpemVv
ZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zmc2V0OiBXaW5kb3dzIHg4NiBvbmx5
LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1iaXRzLCBpdCdzIHJldHVybmVkIHZp
YSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNzZWQgYXMgYW4gaW1wbGljaXQgZmly
c3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRzIGFyZSBzaGlmdGVkIHRvIHRoZSBy
aWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAvLyBUaGUgNXRoIGFyZ3VtZW50IG9u
IFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAgKyA3ICogc2l6ZW9mKHB0ciopLgor
CisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNzT2Zmc2V0ID0gMjsKKyNpZiBPUyhX
SU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVP
ZmZzZXQgPSBzaXplb2YodHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8RnVuY3Rpb24+OjpSZXN1bHRU
eXBlKSA+PSA4OworICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJF
Ul9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFk
cmVzc09mZnNldCArIHJldHVyblR5cGVPZmZzZXQ7CisjZWxzZQorICAgICAgICBjb25zdGV4cHIg
aW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tF
X0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkcmVzc09mZnNldDsKKyNlbmRpZgorICAgICAgICBs
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0Y2hHUFIpOworICAgICAg
ICByZXR1cm4gc2NyYXRjaEdQUjsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIC8vIEdpdmVuIGEg
ZnVuY3Rpb24gYW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVuY3Rpb24gcmV0
dXJucyB0aGUgYXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAvLyBvciBpdCB0
cmllcyB0byBsb2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc2NyYXRj
aEdQUiBwYXNzZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVzZSAwIGZvciB0
aGUgMXN0IGFyZ3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBnZXRB
cmd1bWVudEdQUihHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAg
ICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBm
b3JiaXMgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxGdW5jdGlvbj46OmNDYWxsQXJpdHkoKSA+IEFy
Z051bSwgIkZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFyZ3VtZW50cyIpOworCisgICAg
ICAgIGlmIGNvbnN0ZXhwciAoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMp
CisgICAgICAgICAgICByZXR1cm4gbG9hZEFyZ3VtZW50RnJvbVN0YWNrPEZ1bmN0aW9uLCBBcmdO
dW0+KHNjcmF0Y2hHUFIpOworCisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoR1BSKTsgLy8g
T3RoZXJ3aXNlIHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhwcgorICAgICAgICBzd2l0Y2ggKEFyZ051
bSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1l
bnRHUFIwOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJn
dW1lbnRHUFIxOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6
YXJndW1lbnRHUFIyOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5m
bzo6YXJndW1lbnRHUFIzOworI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQorICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI0OworICAg
ICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI1Owor
I2VuZGlmCisjaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyAgICAgICAgY2FzZSA2Ogor
ICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNjsKKyAgICAgICAgY2FzZSA3
OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNzsKKyNlbmRpZgorICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJOb3QgZW5vdWdoIGFyZ3VtZW50R1BScyIpOworICAgICAgICB9CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmViMWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40
NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRiNGFkMzJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVn
RXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgU3RyaW5nJiBzLCBpbnQgc3Rh
cnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEpJVENvZGU6
IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxvY2smIGNvZGVCbG9jayA9ICptX3JlZ0V4
cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOwot
ICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNo
QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNo
T25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAg
ICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQi
IFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAppbmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0
ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi4wYTA5MTc4ZTZmOWE5NDM5MWEwZGYxZDAxYzM5ZTVjZWNh
ZGZiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlm
IChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1f
cmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20p
OworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1h
dGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0Owor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJh
Y3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBD
b250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQs
IHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0
KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8
aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29kZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyAr
MTQ2LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9i
amVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlmIChtX3N0YXRl
ID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKTsKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQo
KSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0
b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZ
U19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckds
b2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlz
LCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhw
Q29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywg
bWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0
ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4o
b2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2NiwxMiBAQCBBTFdBWVNfSU5M
SU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxP
ckdsb2JhbE9iamVjdAogICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0
Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQo
KSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQo
KSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5j
aGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFj
dGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENv
bnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0
ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRl
eHQpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyAr
Mjk1LDcgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpT
R2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3Iu
Z3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92
ZWN0b3IuZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1
bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZz
ZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAj
aWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi4w
MTIyNDM0Yzk2MDZiMWUwMzYxZDdkNWEyMDM5ZDIyZDlmZTkxYTMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
Vk0uaCIKQEAgLTM5NjIsOCArMzk2Myw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBw
dWJsaWMgWWFyckpJVEluZm8gewogICAgIHZvaWQgZ2VuZXJhdGVFbnRlcigpCiAgICAgewogI2lm
IENQVShYODZfNjQpCi0gICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAg
ICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2
UmVnaXN0ZXJzOjplYnApOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwog
CiAgICAgICAgIGlmIChtX3BhdHRlcm4ubV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUpCiAgICAgICAg
ICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKQEAgLTM5ODcsNyArMzk4Nyw3IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgICAg
ICB9CiAjaWYgT1MoV0lORE9XUykKICAgICAgICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29t
cGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJucykKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9p
ZCopKSwgbV9yZWdzLm91dHB1dCk7CisgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgNiAq
IHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0cHV0KTsKICAgICAgICAgLy8gcmN4IGlzIHRoZSBw
b2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgc3BhY2UgZm9yIHJlc3VsdCBpbiB4NjQgV2luZG93cy4K
ICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVjeCk7CiAjZW5kaWYKQEAgLTQwMDIs
NiArNDAwMiw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVElu
Zm8gewogICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KDB4ZGMwMCksIG1fcmVncy50cmFpbGluZ1N1cnJvZ2F0ZVRhZyk7CiAgICAgICAgIH0KICNlbGlm
IENQVShBUk1fVEhVTUIyKQorICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwog
ICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwogICAgICAgICBtX2ppdC5wdXNo
KEFSTVJlZ2lzdGVyczo6cjUpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYp
OwpAQCAtNDAwOSw5ICs0MDEwLDkgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBZYXJySklUSW5mbyB7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyMTApOwog
I2VsaWYgQ1BVKFJJU0NWNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQot
ICAgICAgICAgICAgbV9qaXQucHVzaFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJl
Z2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1faml0
LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAjZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8g
bm90aGluZy4KKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICNlbmRpZgog
ICAgIH0KIApAQCAtNDAyNiw2ICs0MDI3LDggQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6
IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICNpZiBDUFUoWDg2XzY0KQogI2lmIE9TKFdJTkRPV1Mp
CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisKICAgICAgICAgLy8gU3Rv
cmUgdGhlIHJldHVybiB2YWx1ZSBpbiB0aGUgYWxsb2NhdGVkIHNwYWNlIHBvaW50ZWQgYnkgcmN4
LgogICAgICAgICBtX2ppdC5wb3AoWDg2UmVnaXN0ZXJzOjplY3gpOwogICAgICAgICBtX2ppdC5z
dG9yZTY0KG1fcmVncy5yZXR1cm5SZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2
UmVnaXN0ZXJzOjplY3gpKTsKQEAgLTQwNTIsMTMgKzQwNTUsMTMgQEAgY2xhc3MgWWFyckdlbmVy
YXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAgICAgaWYgKG1fcGF0dGVy
bi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0LnBvcChYODZSZWdp
c3RlcnM6OmVieCk7Ci0gICAgICAgIG1faml0LnBvcChYODZSZWdpc3RlcnM6OmVicCk7CiAjZWxp
ZiBDUFUoQVJNNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7CiAgICAg
ICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgICAgICBtX2pp
dC5wb3BQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3Nl
bWJsZXI6OmxpbmtSZWdpc3Rlcik7CiAgICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQor
ICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICBtX2ppdC5wb3Ao
QVJNUmVnaXN0ZXJzOjpyMTApOwogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyOCk7
CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI2KTsKQEAgLTQwNjYsMTAgKzQwNjks
MTEgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAg
ICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI0KTsKICNlbGlmIENQVShSSVNDVjY0KQog
ICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykKLSAgICAgICAgICAgIG1faml0LnBv
cFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxl
cjo6bGlua1JlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAjZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8gbm90aGluZworICAgICAgICBtX2pp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogI2VuZGlmCisKICNpZiBDUFUoQVJNNjRFKQogICAg
ICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKQogICAgICAgICAgICAgbV9qaXQuZmFySnVt
cChNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5j
dGlvblB0clRhZywgT3BlcmF0aW9uUHRyVGFnPigmdm1FbnRyeVRvWWFyckpJVEFmdGVyKSksIE9w
ZXJhdGlvblB0clRhZyk7CkBAIC00MDg2LDcgKzQwOTAsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAgICB9CiAKIHB1YmxpYzoKLSAgICBZYXJy
R2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9j
ayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRl
cm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENv
bXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBq
aXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklU
UmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0
cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAg
ICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJs
b2NrKGNvZGVCbG9jaykKQEAgLTQxMDUsNyArNDEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9i
b3llck1vb3JlRGF0YSA9IHN0YXRpY19jYXN0PFlhcnJCb3llck1veWVyRGF0YSo+KG1fY29kZUJs
b2NrKTsKICAgICB9CiAKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNv
bnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklU
UmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0
cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAg
IFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVy
TW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRl
cm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNp
emUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAg
ICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKG51bGxwdHIpCkBAIC00MTkx
LDE3ICs0MTk1LDMxIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGNhbGxGcmFtZVNpemVJbkJ5dGVz
KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBzdGFjayBzaXplCiAgICAgICAgICAgICBtX2ppdC5h
ZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtY2FsbEZyYW1lU2l6ZUluQnl0ZXMp
LCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG1fcmVncy5yZWdUMCk7Ci0j
aWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29u
dGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0gICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3Jl
Z3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA3ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4
dCk7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCi0gICAgICAgICAgICAvLyBt
YXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0
YWNrLgotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250
ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDQgKiBz
aXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKKworICAgICAgICAgICAgLy8gTWFrZSBz
dXJlIHRoYXQgdGhlIEpJVGVkIGZ1bmN0aW9ucyBoYXZlIDUgcGFyYW1ldGVycyBhbmQgdGhhdCB0
aGUgNXRoIGFyZ3VtZW50IGlzIGEgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKgorICAgICAgICAgICAg
Ly8gVE9ETzogQ2FuIHRoaXMgYmUgYSBsYW1iYT8KKyNkZWZpbmUgRlVOQ1RJT05DSEVDS1MoZnVu
YykgXAorICAgIGRvIHsgXAorICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPGZ1
bmM+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7
IFwKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKiwgRnVuY3Rpb25UcmFpdHM8ZnVuYz46OkFyZ3VtZW50VHlwZTw0Pj46OnZhbHVlKTsgXAor
ICAgIH0gd2hpbGUgKGZhbHNlKQorCisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29k
ZUJsb2NrOjpZYXJySklUQ29kZTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1MoWWFyckNv
ZGVCbG9jazo6WWFyckpJVENvZGUxNik7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJy
Q29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTgpOworICAgICAgICAgICAgRlVOQ1RJT05D
SEVDS1MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNik7CisKKyN1bmRlZiBG
VU5DVElPTkNIRUNLUworCisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA8IDV1Cisg
ICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8
WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PihtX3JlZ3MucmVnVDEpOworICAgICAgICAg
ICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MucmVnVDEpOwogI2Vsc2UKLSAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVn
cy5tYXRjaGluZ0NvbnRleHQ7CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0g
bV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PigpOwor
ICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MubWF0Y2hpbmdDb250
ZXh0KTsKICNlbmRpZgorICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3Jl
Z3MubWF0Y2hpbmdDb250ZXh0KTsKKwogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
c3RhY2tPayA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3dPckVxdWFsLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtYXRjaGluZ0NvbnRleHQsIE1hdGNoaW5nQ29udGV4dEhv
bGRlcjo6b2Zmc2V0T2ZTdGFja0xpbWl0KCkpLCBtX3JlZ3MucmVnVDApOwogCiAgICAgICAgICAg
ICAvLyBFeGNlZWRlZCBzdGFjayBsaW1pdCwgcHVudCB0byB0aGUgaW50ZXJwcmV0ZXIuCkBAIC00
NjE4LDcgKzQ2MzYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNz
ZW1ibGVyJiBtX2ppdDsKKyAgICBDQ2FsbEhlbHBlcnMmIG1faml0OwogICAgIGNvbnN0IFZNKiBt
X3ZtOwogICAgIFlhcnJDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogICAgIFlhcnJCb3llck1veWVy
RGF0YSogbV9ib3llck1vb3JlRGF0YTsKQEAgLTQ3MDYsNyArNDcyNCw3IEBAIHN0YXRpYyB2b2lk
IGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCiAKIHZvaWQgaml0
Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFy
U2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ssIEpJVENvbXBp
bGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBDQ2FsbEhlbHBl
cnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2RlID09IEpJVENvbXBpbGVNb2RlOjpNYXRjaE9ubHkg
fHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsKIApAQCAtNDcy
Nyw3ICs0NzQ1LDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJp
bmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9yICJObyBzdXBwb3J0
IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BVIC8gT1MgY29t
YmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hl
Y2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVy
blN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUs
IGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgTWFjcm9B
c3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQordm9pZCBqaXRD
b21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hl
Y2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+
IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRh
dGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJlZ2lzdGVycyYg
aml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7CiAgICAgWWFy
cjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJyb3JDb2RlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4MWZlNTE3YWFkZmJl
NDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi4yYmMzNzM5NTY0MTBkYmM0Yzk1ZDdkZTJmY2Y4ZTk2YzM2
NWQzZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC00Myw5ICs0Mywx
MCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgVk07CitjbGFzcyBDQ2FsbEhlbHBlcnM7
CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyOworY2xhc3MgVk07
CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApAQCAtMjcxLDEyICsyNzIsMTMgQEAgY2xhc3MgWWFyckNv
ZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95ZXJNb3llckRhdGEgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2RlQmxvY2spOwogCi0g
ICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hh
ciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBv
dXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7
Ci0gICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3Qg
VUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGlu
dCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9D
QUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlw
ZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3Rl
ciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkg
WUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJl
dHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BV
UmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0Nv
bnRleHQpIFlBUlJfQ0FMTDsKLQogcHVibGljOgorCisgICAgdXNpbmcgWWFyckpJVENvZGU4ID0g
U2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBz
dGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhv
bGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGUx
NiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0
ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRD
b2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0
LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlh
cnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFy
KiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKwogICAg
IFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIHNldEZhbGxCYWNrV2l0aEZh
aWx1cmVSZWFzb24oSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7IG1fZmFpbHVyZVJl
YXNvbiA9IGZhaWx1cmVSZWFzb247IH0KQEAgLTMyNiw3ICszMjgsNyBAQCBwdWJsaWM6CiAgICAg
SW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hPbmx5OFN0
YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdldDE2Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiAg
bV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExD
aGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQs
IE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0
IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVu
Z3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQp
CiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkK
QEAgLTMzNiw3ICszMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1
bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTgsIFlhcnI4Qml0UHRyVGFnPihtX3JlZjguY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1h
dGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3Qg
VUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1
dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1
bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4
dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0
RSkKQEAgLTM0Niw3ICszNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3Vs
dCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+KG1fcmVm
MTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRw
dXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUo
Y29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRj
aGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVj
dXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBB
U1NFUlQoaGFzOEJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM1Niw3
ICszNTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5j
dGlvblB0cjxZYXJySklUQ29kZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPiht
X21hdGNoT25seTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVu
Z3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3Vs
dCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxl
bmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hS
ZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRF
KQpAQCAtNDM5LDcgKzQ0MSw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYsIFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUsIFZNKiwgWWFyckNvZGVCbG9jCiAKIGNsYXNzIFlh
cnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sq
LCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3Qg
Vk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRSZWdpc3Rl
cnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJp
bmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95
ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMmLCBZYXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYK
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzVi
NTc1YzcwYTA1YTdlNzcyNWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkz
OGQyZGJjNWRlYzhhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3Mg
UmVnRXhwOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNs
YXNzIE1hdGNoaW5nQ29udGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJ
T047CiBwdWJsaWM6Ci0gICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9j
ayosIFJlZ0V4cCosIE1hdGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwg
Ym9vbCwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7
CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9C
SkVDVF9PRkZTRVRPRihNYXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAg
LTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRjaEZyb207CiB9Owog
Ci1pbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0m
IHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hG
cm9tIG1hdGNoRnJvbSkKK2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29u
dGV4dEhvbGRlcihWTSYgdm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAq
IHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21h
dGNoRnJvbShtYXRjaEZyb20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5n
Q29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9j
ayogeWFyckMKICAgICB9CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNT
SU9OUykKLSAgICBpZiAoeWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXIoKSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsK
ICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRl
cm5Db250ZXhCdWZmZXIoKTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBW
TTo6cGF0dGVybkNvbnRleHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKHlhcnJDb2RlQmxvY2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRC
dWZmZXIpOwogI2VuZGlmCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448884</attachid>
            <date>2022-01-11 15:40:21 -0800</date>
            <delta_ts>2022-01-12 05:36:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220111194019.patch</filename>
            <type>text/plain</type>
            <size>27032</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLjg0ZjQ2MDBk
NGI1MTA4MDQ5OGQ2ZjEzMjE1OTllMmVhNDA5NGIxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtOTkyLDYgKzk5Miw4MSBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051
bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAgfQorCitwcml2YXRlOgorCisgICAgLy8gSW4gY2FzZSB3
ZSBhcmUgdHJ5aW5nIHRvIGdldCB0aGUgYXJndW1lbnQgZnJvbSBhIGZ1bmN0aW9uIGJ1dCB0aGVy
ZSBpc24ndCBlbm91Z2ggcmVnaXN0ZXJzLCB0aGlzCisgICAgLy8gZnVuY3Rpb24gdHJpZXMgdG8g
bG9hZCBpdCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc3AuIEluIG9yZGVyIGZvciB0aGlzIHRv
IHdvcmssIHRoZSBmcmFtZSBwb2ludGVyCisgICAgLy8gbXVzdCBiZSBzZXQgaW4gdGhlIGZ1bmN0
aW9uIHByb2xvZ3VlCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBB
cmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3RhY2soR1BSUmVn
IHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBhcmd1bWVudCIp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUlgiKTsKKworICAgICAg
ICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0Y2hHUFIgZnJvbSB0aGUgc3RhY2sg
dGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0IHRoZSBmdW5jdGlvbiBwcm9sb2d1
ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUgYXJndW1lbnQgd2lsbCBiZSBwbGFj
ZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAtIE51bWJlci1vZi1hcmctcmVncywg
ZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBvbiBBUk12NyB3aWxsIGJlIHBsYWNl
ZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVvZihwdHIqKSwgaG93ZXZlciwgdGhh
dCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6
IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyByZXNlcnZlZCBvbiB0aGUgc3RhY2sg
Zm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAgICAgIC8vIGFyY2hzLCBhICs0IG9m
ZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBNSVBTIGlzIGZwICsgNiAqIHNpemVv
ZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zmc2V0OiBXaW5kb3dzIHg4NiBvbmx5
LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1iaXRzLCBpdCdzIHJldHVybmVkIHZp
YSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNzZWQgYXMgYW4gaW1wbGljaXQgZmly
c3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRzIGFyZSBzaGlmdGVkIHRvIHRoZSBy
aWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAvLyBUaGUgNXRoIGFyZ3VtZW50IG9u
IFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAgKyA3ICogc2l6ZW9mKHB0ciopLgor
CisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNzT2Zmc2V0ID0gMjsKKyNpZiBPUyhX
SU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVP
ZmZzZXQgPSBzaXplb2YodHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8RnVuY3Rpb24+OjpSZXN1bHRU
eXBlKSA+PSA4OworICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJF
Ul9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFk
cmVzc09mZnNldCArIHJldHVyblR5cGVPZmZzZXQ7CisjZWxzZQorICAgICAgICBjb25zdGV4cHIg
aW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tF
X0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkcmVzc09mZnNldDsKKyNlbmRpZgorICAgICAgICBs
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0Y2hHUFIpOworICAgICAg
ICByZXR1cm4gc2NyYXRjaEdQUjsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIC8vIEdpdmVuIGEg
ZnVuY3Rpb24gYW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVuY3Rpb24gcmV0
dXJucyB0aGUgYXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAvLyBvciBpdCB0
cmllcyB0byBsb2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc2NyYXRj
aEdQUiBwYXNzZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVzZSAwIGZvciB0
aGUgMXN0IGFyZ3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBnZXRB
cmd1bWVudEdQUihHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAg
ICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBm
b3JiaXMgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxGdW5jdGlvbj46OmNDYWxsQXJpdHkoKSA+IEFy
Z051bSwgIkZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFyZ3VtZW50cyIpOworCisgICAg
ICAgIGlmIGNvbnN0ZXhwciAoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMp
CisgICAgICAgICAgICByZXR1cm4gbG9hZEFyZ3VtZW50RnJvbVN0YWNrPEZ1bmN0aW9uLCBBcmdO
dW0+KHNjcmF0Y2hHUFIpOworCisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoR1BSKTsgLy8g
T3RoZXJ3aXNlIHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhwcgorICAgICAgICBzd2l0Y2ggKEFyZ051
bSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1l
bnRHUFIwOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJn
dW1lbnRHUFIxOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6
YXJndW1lbnRHUFIyOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5m
bzo6YXJndW1lbnRHUFIzOworI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQorICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI0OworICAg
ICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFI1Owor
I2VuZGlmCisjaWYgQ1BVKEFSTTY0KSB8fCBDUFUoUklTQ1Y2NCkKKyAgICAgICAgY2FzZSA2Ogor
ICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNjsKKyAgICAgICAgY2FzZSA3
OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNzsKKyNlbmRpZgorICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRURfV0lU
SF9NRVNTQUdFKCJOb3QgZW5vdWdoIGFyZ3VtZW50R1BScyIpOworICAgICAgICB9CisgICAgfQog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmViMWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40
NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRiNGFkMzJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVn
RXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgU3RyaW5nJiBzLCBpbnQgc3Rh
cnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEpJVENvZGU6
IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxvY2smIGNvZGVCbG9jayA9ICptX3JlZ0V4
cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOwot
ICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNo
QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNo
T25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAg
ICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQi
IFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAppbmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0
ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi4wYTA5MTc4ZTZmOWE5NDM5MWEwZGYxZDAxYzM5ZTVjZWNh
ZGZiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlm
IChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1f
cmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20p
OworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1h
dGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0Owor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJh
Y3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBD
b250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQs
IHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0
KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8
aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29kZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyAr
MTQ2LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9i
amVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlmIChtX3N0YXRl
ID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKTsKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQo
KSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0
b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZ
U19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckds
b2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlz
LCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhw
Q29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywg
bWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0
ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4o
b2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2NiwxMiBAQCBBTFdBWVNfSU5M
SU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxP
ckdsb2JhbE9iamVjdAogICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAg
ICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0
Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQo
KSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQo
KSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5j
aGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFj
dGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENv
bnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0
ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRl
eHQpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyAr
Mjk1LDcgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpT
R2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3Iu
Z3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92
ZWN0b3IuZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlh
cnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1
bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZz
ZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAj
aWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi4z
ZTY2YWFhMzY0MDkwMWU4ODFhOGM4YzRhMDU1MTJiZDFhZWU1NWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAi
Vk0uaCIKQEAgLTM5NjIsOCArMzk2Myw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBw
dWJsaWMgWWFyckpJVEluZm8gewogICAgIHZvaWQgZ2VuZXJhdGVFbnRlcigpCiAgICAgewogI2lm
IENQVShYODZfNjQpCi0gICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAg
ICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2
UmVnaXN0ZXJzOjplYnApOworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwog
CiAgICAgICAgIGlmIChtX3BhdHRlcm4ubV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUpCiAgICAgICAg
ICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKQEAgLTM5ODcsNyArMzk4Nyw3IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgICAg
ICB9CiAjaWYgT1MoV0lORE9XUykKICAgICAgICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29t
cGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJucykKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9p
ZCopKSwgbV9yZWdzLm91dHB1dCk7CisgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgNiAq
IHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0cHV0KTsKICAgICAgICAgLy8gcmN4IGlzIHRoZSBw
b2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgc3BhY2UgZm9yIHJlc3VsdCBpbiB4NjQgV2luZG93cy4K
ICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVjeCk7CiAjZW5kaWYKQEAgLTQwMDIs
NiArNDAwMiw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVElu
Zm8gewogICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KDB4ZGMwMCksIG1fcmVncy50cmFpbGluZ1N1cnJvZ2F0ZVRhZyk7CiAgICAgICAgIH0KICNlbGlm
IENQVShBUk1fVEhVTUIyKQorICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwog
ICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwogICAgICAgICBtX2ppdC5wdXNo
KEFSTVJlZ2lzdGVyczo6cjUpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYp
OwpAQCAtNDAwOSw5ICs0MDEwLDkgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBZYXJySklUSW5mbyB7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyMTApOwog
I2VsaWYgQ1BVKFJJU0NWNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQot
ICAgICAgICAgICAgbV9qaXQucHVzaFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJl
Z2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKKyAgICAgICAgICAgIG1faml0
LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAjZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8g
bm90aGluZy4KKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKICNlbmRpZgog
ICAgIH0KIApAQCAtNDA1Miw3ICs0MDUzLDggQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6
IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0
aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0LnBvcChYODZSZWdpc3RlcnM6OmVieCk7
Ci0gICAgICAgIG1faml0LnBvcChYODZSZWdpc3RlcnM6OmVicCk7CisKKyAgICAgICAgbV9qaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgaWYgKG1f
ZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklU
Q2FnZSgpKQpAQCAtNDA2NCwxNSArNDA2NiwxOSBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFs
IDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6
cjYpOwogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyNSk7CiAgICAgICAgIG1faml0
LnBvcChBUk1SZWdpc3RlcnM6OnI0KTsKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICNlbGlmIENQVShSSVNDVjY0KQogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQ
YWlycykKLSAgICAgICAgICAgIG1faml0LnBvcFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9p
bnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKKyAgICAgICAgICAg
IG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAjZWxpZiBDUFUoTUlQUykKLSAgICAgICAg
Ly8gRG8gbm90aGluZworICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogI2Vu
ZGlmCisKICNpZiBDUFUoQVJNNjRFKQotICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgp
KQorICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKSB7CisgICAgICAgICAgICBtX2pp
dC51bnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgICAgIG1faml0LmZhckp1bXAoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJU
YWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25Q
dHJUYWcpOworICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1faml0LnJldCgp
OwogI2Vsc2UKQEAgLTQwODYsNyArNDA5Miw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwg
OiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgIH0KIAogcHVibGljOgotICAgIFlhcnJHZW5lcmF0
b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29u
c3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1v
ZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiBy
ZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBD
aGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDog
bV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2soY29k
ZUJsb2NrKQpAQCAtNDEwNSw3ICs0MTExLDcgQEAgcHVibGljOgogICAgICAgICBtX2JveWVyTW9v
cmVEYXRhID0gc3RhdGljX2Nhc3Q8WWFyckJveWVyTW95ZXJEYXRhKj4obV9jb2RlQmxvY2spOwog
ICAgIH0KIAotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0q
IHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdzJiBy
ZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBD
aGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdl
bmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRh
dGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0
dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklU
Q29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQogICAgICAgICAs
IG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2sobnVsbHB0cikKQEAgLTQxOTEsMTcgKzQx
OTcsMzEgQEAgcHVibGljOgogICAgICAgICBpZiAoY2FsbEZyYW1lU2l6ZUluQnl0ZXMpIHsKICAg
ICAgICAgICAgIC8vIENoZWNrIHN0YWNrIHNpemUKICAgICAgICAgICAgIG1faml0LmFkZFB0cihN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jYWxsRnJhbWVTaXplSW5CeXRlcyksIE1hY3Jv
QXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbV9yZWdzLnJlZ1QwKTsKLSNpZiBDUFUo
WDg2XzY0KSAmJiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlz
IHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdU
MTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2
UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKLSNl
bGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5n
Q29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0g
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBt
X3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNCAqIHNpemVvZih2
b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOworCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhh
dCB0aGUgSklUZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0IHRoZSA1dGgg
YXJndW1lbnQgaXMgYSBNYXRjaGluZ0NvbnRleHRIb2xkZXIqCisgICAgICAgICAgICAvLyBUT0RP
OiBDYW4gdGhpcyBiZSBhIGxhbWJhPworI2RlZmluZSBGVU5DVElPTkNIRUNLUyhmdW5jKSBcCisg
ICAgZG8geyBcCisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8ZnVuYz46OmND
YWxsQXJpdHkoKSA9PSA1LCAiWWFyckpJVENvZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsgXAorICAg
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxNYXRjaGluZ0NvbnRleHRIb2xkZXIqLCBG
dW5jdGlvblRyYWl0czxmdW5jPjo6QXJndW1lbnRUeXBlPDQ+Pjo6dmFsdWUpOyBcCisgICAgfSB3
aGlsZSAoZmFsc2UpCisKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2RlQmxvY2s6
OllhcnJKSVRDb2RlOCk7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJsb2Nr
OjpZYXJySklUQ29kZTE2KTsKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2RlQmxv
Y2s6OllhcnJKSVRDb2RlTWF0Y2hPbmx5OCk7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZ
YXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2KTsKKworI3VuZGVmIEZVTkNUSU9O
Q0hFQ0tTCisKKyNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTIDwgNXUKKyAgICAgICAg
ICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2ppdC5nZXRBcmd1bWVudEdQUjxZYXJyQ29k
ZUJsb2NrOjpZYXJySklUQ29kZTgsIDQ+KG1fcmVncy5yZWdUMSk7CisgICAgICAgICAgICBBU1NF
UlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5yZWdUMSk7CiAjZWxzZQotICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLm1hdGNo
aW5nQ29udGV4dDsKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2ppdC5n
ZXRBcmd1bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgsIDQ+KCk7CisgICAgICAg
ICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5tYXRjaGluZ0NvbnRleHQpOwog
I2VuZGlmCisgICAgICAgICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5tYXRj
aGluZ0NvbnRleHQpOworCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdGFja09r
ID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvd09yRXF1YWwsIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKG1hdGNoaW5nQ29udGV4dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpv
ZmZzZXRPZlN0YWNrTGltaXQoKSksIG1fcmVncy5yZWdUMCk7CiAKICAgICAgICAgICAgIC8vIEV4
Y2VlZGVkIHN0YWNrIGxpbWl0LCBwdW50IHRvIHRoZSBpbnRlcnByZXRlci4KQEAgLTQ2MTgsNyAr
NDYzOCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTWFjcm9Bc3NlbWJsZXIm
IG1faml0OworICAgIENDYWxsSGVscGVycyYgbV9qaXQ7CiAgICAgY29uc3QgVk0qIG1fdm07CiAg
ICAgWWFyckNvZGVCbG9jayogbV9jb2RlQmxvY2s7CiAgICAgWWFyckJveWVyTW95ZXJEYXRhKiBt
X2JveWVyTW9vcmVEYXRhOwpAQCAtNDcwNiw3ICs0NzI2LDcgQEAgc3RhdGljIHZvaWQgZHVtcENv
bXBpbGVGYWlsdXJlKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKIAogdm9pZCBqaXRDb21waWxl
KFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNo
YXJTaXplLCBWTSogdm0sIFlhcnJDb2RlQmxvY2smIGNvZGVCbG9jaywgSklUQ29tcGlsZU1vZGUg
bW9kZSkKIHsKLSAgICBNYWNyb0Fzc2VtYmxlciBtYXNtOworICAgIENDYWxsSGVscGVycyBtYXNt
OwogCiAgICAgQVNTRVJUKG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Ok1hdGNoT25seSB8fCBtb2Rl
ID09IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpOwogCkBAIC00NzI3LDcgKzQ3
NDcsNyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0
dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsCiAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIGlu
bGluZWQgSklUJ2luZyBvZiBSZWdFeHAudGVzdCBmb3IgdGhpcyBDUFUgLyBPUyBjb21iaW5hdGlv
bi4iCiAjZW5kaWYKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9j
b21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5n
LCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3Qg
Vk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBNYWNyb0Fzc2VtYmxl
ciYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCit2b2lkIGppdENvbXBpbGVJ
bmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBj
b25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3Ms
IENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95
ZXJNb29yZURhdGEsIENDYWxsSGVscGVycyYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdp
c3RlcnMpCiB7CiAgICAgWWFycjo6RXJyb3JDb2RlIGVycm9yQ29kZTsKICAgICBZYXJyOjpZYXJy
UGF0dGVybiBwYXR0ZXJuKHBhdHRlcm5TdHJpbmcsIGZsYWdzLCBlcnJvckNvZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCmluZGV4IDI4OWQ2ZTgxZmU1MTdhYWRmYmU0OThkMTg1
ZTMwNzIwNWU2YTA3MzMuLjJiYzM3Mzk1NjQxMGRiYzRjOTVkN2RlMmZjZjhlOTZjMzY1ZDNmZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKQEAgLTQzLDkgKzQzLDEwIEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBWTTsKK2NsYXNzIENDYWxsSGVscGVyczsKIGNsYXNz
IEV4ZWN1dGFibGVQb29sOwogY2xhc3MgTWFjcm9Bc3NlbWJsZXI7CitjbGFzcyBWTTsKIAogbmFt
ZXNwYWNlIFlhcnIgewogCkBAIC0yNzEsMTIgKzI3MiwxMyBAQCBjbGFzcyBZYXJyQ29kZUJsb2Nr
IDogcHVibGljIFlhcnJCb3llck1veWVyRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWWFyckNvZGVCbG9jayk7CiAKLSAgICB1c2lu
ZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1
dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1
c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciog
aW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRw
dXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0g
ICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShj
b25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0
aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NB
TEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlw
ZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3Rl
ciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkg
WUFSUl9DQUxMOwotCiBwdWJsaWM6CisKKyAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0
aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBV
Q1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBt
YXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZTE2ID0gU2xv
d1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFy
dCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRj
aE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVS
ZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4
dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENv
ZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0
LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworCiAgICAgWWFyckNv
ZGVCbG9jaygpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJl
YXNvbihKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmVSZWFzb24pIHsgbV9mYWlsdXJlUmVhc29uID0g
ZmFpbHVyZVJlYXNvbjsgfQpAQCAtMzI2LDcgKzMyOCw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVT
dGF0cyYgZ2V0OEJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gbV9tYXRjaE9ubHk4U3RhdHM7IH0K
ICAgICBJbmxpbmVTdGF0cyYgZ2V0MTZCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuICBtX21hdGNo
T25seTE2U3RhdHM7IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlu
cHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0
ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGlu
dCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7
CiAgICAgICAgIEFTU0VSVChoYXM4Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzM2
LDcgKzMzOCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1
bmN0aW9uUHRyPFlhcnJKSVRDb2RlOCwgWWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdD
b250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciog
aW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRj
aGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVj
dXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
aW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAg
IHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAt
MzQ2LDcgKzM0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFn
Q0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlMTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYxNi5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0
Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBM
Q2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29u
c3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVCho
YXM4Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzU2LDcgKzM1OCw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRy
PFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCwgWWFyck1hdGNoT25seThCaXRQdHJUYWc+KG1fbWF0Y2hP
bmx5OC5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51
bGxwdHIsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1
dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBN
YXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBl
eGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0
aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAg
ICBBU1NFUlQoaGFzMTZCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC00
MzksNyArNDQxLDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiwgU3RyaW5nJiBwYXR0
ZXJuU3RyaW5nLCBDaGFyU2l6ZSwgVk0qLCBZYXJyQ29kZUJsb2MKIAogY2xhc3MgWWFyckpJVFJl
Z2lzdGVyczsKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0
IFN0cmluZyYsIE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlh
cnJCb3llck1veWVyRGF0YSYsIE1hY3JvQXNzZW1ibGVyJiwgWWFyckpJVFJlZ2lzdGVycyYpOwor
dm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9w
dGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVy
RGF0YSYsIENDYWxsSGVscGVycyYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKICNlbmRpZgogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCmluZGV4IDEzOWQxZmUzNWI1NzVjNzBh
MDVhN2U3NzI1ZGQ5ZmExZWZiNjYwMWUuLjFhZjgzMDk4MmZmNTdmMmE5M2I2NjE3OTM4ZDJkYmM1
ZGVjOGExNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRj
aGluZ0NvbnRleHRIb2xkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
TWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKQEAgLTM3LDEyICszNywxMCBAQCBjbGFzcyBSZWdFeHA7
CiAKIG5hbWVzcGFjZSBZYXJyIHsKIAotY2xhc3MgWWFyckNvZGVCbG9jazsKLQogY2xhc3MgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyIHsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1
YmxpYzoKLSAgICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBZYXJyQ29kZUJsb2NrKiwgUmVn
RXhwKiwgTWF0Y2hGcm9tKTsKKyAgICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBib29sLCBS
ZWdFeHAqLCBNYXRjaEZyb20pOwogICAgIH5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKTsKIAogICAg
IHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTdGFja0xpbWl0KCkgeyByZXR1cm4gT0JKRUNUX09G
RlNFVE9GKE1hdGNoaW5nQ29udGV4dEhvbGRlciwgbV9zdGFja0xpbWl0KTsgfQpAQCAtNjEsNyAr
NTksNyBAQCBwcml2YXRlOgogICAgIE1hdGNoRnJvbSBtX21hdGNoRnJvbTsKIH07CiAKLWlubGlu
ZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlh
cnJDb2RlQmxvY2sqIHlhcnJDb2RlQmxvY2ssIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0
Y2hGcm9tKQoraW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKFZNJiB2bSwgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIFJlZ0V4cCogcmVnRXhw
LCBNYXRjaEZyb20gbWF0Y2hGcm9tKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fbWF0Y2hGcm9t
KG1hdGNoRnJvbSkKIHsKQEAgLTc0LDEyICs3MiwxMiBAQCBpbmxpbmUgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJy
QwogICAgIH0KIAogI2lmIEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQot
ICAgIGlmICh5YXJyQ29kZUJsb2NrICYmIHlhcnJDb2RlQmxvY2stPnVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlcigpKSB7CisgICAgaWYgKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcikgewogICAgICAg
ICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyID0gbV92bS5hY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRl
eEJ1ZmZlcigpOwogICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZSA9IFZNOjpwYXR0
ZXJuQ29udGV4dEJ1ZmZlclNpemU7CiAgICAgfQogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oeWFy
ckNvZGVCbG9jayk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik7
CiAjZW5kaWYKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448937</attachid>
            <date>2022-01-12 05:36:31 -0800</date>
            <delta_ts>2022-01-12 10:52:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220112133629.patch</filename>
            <type>text/plain</type>
            <size>33921</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLmYxZDY3MmYz
M2FjNWQwMGZmZWMyODUwY2JlMzA5NWM3YjgwOGNhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtOTkyLDYgKzk5Miw4NCBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051
bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAgfQorCitwcml2YXRlOgorCisgICAgLy8gSW4gY2FzZSB3
ZSBhcmUgdHJ5aW5nIHRvIGdldCB0aGUgYXJndW1lbnQgZnJvbSBhIGZ1bmN0aW9uIGJ1dCB0aGVy
ZSBpc24ndCBlbm91Z2ggcmVnaXN0ZXJzLCB0aGlzCisgICAgLy8gZnVuY3Rpb24gdHJpZXMgdG8g
bG9hZCBpdCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc3AuIEluIG9yZGVyIGZvciB0aGlzIHRv
IHdvcmssIHRoZSBmcmFtZSBwb2ludGVyCisgICAgLy8gbXVzdCBiZSBzZXQgaW4gdGhlIGZ1bmN0
aW9uIHByb2xvZ3VlCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBB
cmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3RhY2soR1BSUmVn
IHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBHUFJSZWc6
OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBhcmd1bWVudCIp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVH
SVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUlgiKTsKKworICAgICAg
ICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0Y2hHUFIgZnJvbSB0aGUgc3RhY2sg
dGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0IHRoZSBmdW5jdGlvbiBwcm9sb2d1
ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUgYXJndW1lbnQgd2lsbCBiZSBwbGFj
ZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAtIE51bWJlci1vZi1hcmctcmVncywg
ZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBvbiBBUk12NyB3aWxsIGJlIHBsYWNl
ZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVvZihwdHIqKSwgaG93ZXZlciwgdGhh
dCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6
IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyByZXNlcnZlZCBvbiB0aGUgc3RhY2sg
Zm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAgICAgIC8vIGFyY2hzLCBhICs0IG9m
ZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBNSVBTIGlzIGZwICsgNiAqIHNpemVv
ZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zmc2V0OiBXaW5kb3dzIHg4NiBvbmx5
LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1iaXRzLCBpdCdzIHJldHVybmVkIHZp
YSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNzZWQgYXMgYW4gaW1wbGljaXQgZmly
c3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRzIGFyZSBzaGlmdGVkIHRvIHRoZSBy
aWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAvLyBUaGUgNXRoIGFyZ3VtZW50IG9u
IFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAgKyA3ICogc2l6ZW9mKHB0ciopLgor
CisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNzT2Zmc2V0ID0gMjsKKyNpZiBPUyhX
SU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVP
ZmZzZXQgPSBzaXplb2YodHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8RnVuY3Rpb24+OjpSZXN1bHRU
eXBlKSA+PSA4OworICAgICAgICBjb25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJF
Ul9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFk
cmVzc09mZnNldCArIHJldHVyblR5cGVPZmZzZXQ7CisjZWxzZQorICAgICAgICBjb25zdGV4cHIg
aW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgKyBQT0tF
X0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkcmVzc09mZnNldDsKKyNlbmRpZgorICAgICAgICBs
b2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0Y2hHUFIpOworICAgICAg
ICByZXR1cm4gc2NyYXRjaEdQUjsKKyAgICB9CisKK3B1YmxpYzoKKworICAgIC8vIEdpdmVuIGEg
ZnVuY3Rpb24gYW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVuY3Rpb24gcmV0
dXJucyB0aGUgYXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAvLyBvciBpdCB0
cmllcyB0byBsb2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc2NyYXRj
aEdQUiBwYXNzZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVzZSAwIGZvciB0
aGUgMXN0IGFyZ3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIEZ1bmN0aW9uLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBnZXRB
cmd1bWVudEdQUihHUFJSZWcgc2NyYXRjaEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAg
ICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBm
b3JiaXMgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsKKyAgICAgICAg
c3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxGdW5jdGlvbj46OmNDYWxsQXJpdHkoKSA+IEFy
Z051bSwgIkZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdoIGFyZ3VtZW50cyIpOworCisgICAg
ICAgIGlmIGNvbnN0ZXhwciAoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMp
CisgICAgICAgICAgICByZXR1cm4gbG9hZEFyZ3VtZW50RnJvbVN0YWNrPEZ1bmN0aW9uLCBBcmdO
dW0+KHNjcmF0Y2hHUFIpOworCisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoR1BSKTsgLy8g
T3RoZXJ3aXNlIHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhwcgorICAgICAgICBzd2l0Y2ggKEFyZ051
bSkgeworI2lmIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgPiAwdQorICAgICAgICBjYXNl
IDA6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFIwOworICAgICAgICBj
YXNlIDE6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFIxOworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFIyOworICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFIzOwor
I2VuZGlmCisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA+IDR1CisgICAgICAgIGNh
c2UgNDoKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjQ7CisgICAgICAg
IGNhc2UgNToKKyAgICAgICAgICAgIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjU7CisjZW5k
aWYKKyNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTID4gNnUKKyAgICAgICAgY2FzZSA2
OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNjsKKyAgICAgICAgY2Fz
ZSA3OgorICAgICAgICAgICAgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSNzsKKyNlbmRpZgor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3RhdGljX2Fzc2VydChOVU1CRVJfT0ZfQVJH
VU1FTlRfUkVHSVNURVJTIDw9IDh1KTsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEX1dJVEhfTUVTU0FHRSgiTm90IGVub3VnaCBhcmd1bWVudEdQUnMiKTsKKyAgICAgICAg
fQorICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQ
UkluZm8uaAppbmRleCA1MmExM2FhYWZiNzdiNmU0NGZhN2ViMTkyYjA2ODQzYzJjY2I5MjI2Li42
MGE1YmVlMTViODIyMDc2NDY1MTIwZGY3NGU5NDA4ZDc4YmM3Y2Q3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0dQUkluZm8uaApAQCAtNjI2LDcgKzYyNiw3IEBAIGNsYXNzIEdQUkluZm8gewogcHVi
bGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKICAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMTY7Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKKyAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJH
VU1FTlRfUkVHSVNURVJTOwogCiAgICAgLy8gVGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNl
bGluZSBKSVQuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIg
PSBBUk02NFJlZ2lzdGVyczo6ZnA7CkBAIC04MjUsNyArODI1LDcgQEAgY2xhc3MgR1BSSW5mbyB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJSZWcgUmVnaXN0ZXJUeXBlOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxMzsKLSAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9P
Rl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBjYWxs
RnJhbWVSZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OmZwOwogICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIG51bWJlclRhZ1JlZ2lzdGVyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDI1OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3MDlk
MWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYwMDAw
Mjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCkBA
IC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVycHJl
dGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJyQ29k
ZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgpOwotICAgICAgICAgICAg
c25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRy
KCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRN
YXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmlu
dGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAg
ICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0
TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25s
eUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAg
ICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBU
UiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRy
KCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6
ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVz
LmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uMGEwOTE3
OGU2ZjlhOTQzOTFhMGRmMWQwMWMzOWU1Y2VjYWRmYmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAgQUxX
QVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBpZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklU
Q29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5n
Q29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAo
cy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVj
dG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5n
dGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMu
Y2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJl
Z0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklU
Q29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwg
b2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6OkpJ
VENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJl
Z0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0m
IHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRo
aXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFs
c2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50
ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5s
aW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIH0gZWxz
ZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9
IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwg
cmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KIApAQCAt
MjY2LDEyICsyNjYsMTIgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICAgICAgTWF0Y2hS
ZXN1bHQgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRD
b2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250
ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAg
ICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdF
eHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsK
IAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
bV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMu
bGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVn
RXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0
aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZz
ZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxF
KFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1LDcgKzI5NSw3IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hS
ZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2Jq
ZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVjdG9yLmdyb3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAg
b2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVjdG9yLmRhdGEoKTsKICAgICB7Ci0gICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0
aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVn
RXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwgdGhp
cywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhw
Qnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVk
Kj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VYUF9GVU5DX1RFU1RfREFUQV9HRU4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggYTQ5OGVmNzgwNzMxODI0
ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uNmM4OWZkZGUyMzA0YzJhNDFkZGU5ZjI0YWYzMGVj
ZmJlZWM2YzQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJZYXJySklULmgiCiAK
KyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5j
bHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBAIC0xODYsMTAgKzE4Nyw2IEBAIHN0
ZDo6dHVwbGU8Qm95ZXJNb29yZUJpdG1hcDo6TWFwLCBCb3llck1vb3JlRmFzdENhbmRpZGF0ZXM+
IEJveWVyTW9vcmVJbmZvOjpjcmVhCiB0ZW1wbGF0ZTxjbGFzcyBZYXJySklUUmVncyA9IFlhcnJK
SVREZWZhdWx0UmVnaXN0ZXJzPgogY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZ
YXJySklUSW5mbyB7CiAKLSNpZmRlZiAgSklUX1VOSUNPREVfRVhQUkVTU0lPTlMKLSAgICBjb25z
dCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRhZ01hc2sgPSBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwotI2VuZGlmCi0KICNpZiBFTkFCTEUo
WUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKICAgICBzdHJ1Y3QgUGFyZW5Db250ZXh0
U2l6ZXMgewogICAgICAgICBzaXplX3QgbV9udW1TdWJwYXR0ZXJuczsKQEAgLTYwMyw3ICs2MDAs
NyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAg
ICAgICAgbV9qaXQubG9hZDE2VW5hbGlnbmVkKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG1fcmVn
cy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCksIHJlc3VsdFJlZyk7CiAKICAgICAgICAgLy8gSXMg
dGhlIGNoYXJhY3RlciBhIGxlYWRpbmcgc3Vycm9nYXRlPwotICAgICAgICBtX2ppdC5hbmQzMihZ
YXJySklURGVmYXVsdFJlZ2lzdGVyczo6c3Vycm9nYXRlVGFnTWFzaywgcmVzdWx0UmVnLCBtX3Jl
Z3MudW5pY29kZVRlbXApOworICAgICAgICBtX2ppdC5hbmQzMihtX3JlZ3Muc3Vycm9nYXRlVGFn
TWFzaywgcmVzdWx0UmVnLCBtX3JlZ3MudW5pY29kZVRlbXApOwogICAgICAgICBub3RVbmljb2Rl
LmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG1fcmVncy51
bmljb2RlVGVtcCwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpKTsKIAogICAgICAgICAvLyBJ
cyB0aGUgaW5wdXQgbG9uZyBlbm91Z2ggdG8gcmVhZCBhIHRyYWlsaW5nIHN1cnJvZ2F0ZT8KQEAg
LTYxMiw3ICs2MDksNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJK
SVRJbmZvIHsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFjdGVyIGEgdHJhaWxpbmcgc3Vycm9n
YXRlPwogICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWduZWQoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MobV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1
dEFuZFRyYWlsKTsKLSAgICAgICAgbV9qaXQuYW5kMzIoWWFyckpJVERlZmF1bHRSZWdpc3RlcnM6
OnN1cnJvZ2F0ZVRhZ01hc2ssIG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCwgbV9yZWdz
LnVuaWNvZGVUZW1wKTsKKyAgICAgICAgbV9qaXQuYW5kMzIobV9yZWdzLnN1cnJvZ2F0ZVRhZ01h
c2ssIG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCwgbV9yZWdzLnVuaWNvZGVUZW1wKTsK
ICAgICAgICAgbm90VW5pY29kZS5hcHBlbmQobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6
Ok5vdEVxdWFsLCBtX3JlZ3MudW5pY29kZVRlbXAsIG1fcmVncy50cmFpbGluZ1N1cnJvZ2F0ZVRh
ZykpOwogCiAgICAgICAgIC8vIENvbWJpbmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3Vycm9nYXRl
cyB0byBwcm9kdWNlIGEgY29kZSBwb2ludC4KQEAgLTM5NjEsMTAgKzM5NTgsOSBAQCBjbGFzcyBZ
YXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgIHZvaWQgZ2Vu
ZXJhdGVFbnRlcigpCiAgICAgewotI2lmIENQVShYODZfNjQpCi0gICAgICAgIG1faml0LnB1c2go
WDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplYnApOworICAgICAgICBtX2ppdC5l
bWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgaWYgKG1f
cGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0LnB1c2go
WDg2UmVnaXN0ZXJzOjplYngpOwogCkBAIC0zOTg3LDMxICszOTgzLDE2IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgICAgICB9CiAjaWYgT1Mo
V0lORE9XUykKICAgICAgICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Oklu
Y2x1ZGVTdWJwYXR0ZXJucykKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9pZCopKSwgbV9yZWdz
Lm91dHB1dCk7CisgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgNiAqIHNpemVvZih2b2lk
KikpLCBtX3JlZ3Mub3V0cHV0KTsKICAgICAgICAgLy8gcmN4IGlzIHRoZSBwb2ludGVyIHRvIHRo
ZSBhbGxvY2F0ZWQgc3BhY2UgZm9yIHJlc3VsdCBpbiB4NjQgV2luZG93cy4KICAgICAgICAgbV9q
aXQucHVzaChYODZSZWdpc3RlcnM6OmVjeCk7CiAjZW5kaWYKLSNlbGlmIENQVShBUk02NCkKLSAg
ICAgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdlKCkpCi0gICAgICAgICAgICBtX2ppdC50YWdS
ZXR1cm5BZGRyZXNzKCk7Ci0gICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7Ci0g
ICAgICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKLSAgICAgICAgICAgICAgICBt
X2ppdC5wdXNoUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3Jv
QXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwotICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApLCBtX3JlZ3Muc3VwcGxlbWVudGFyeVBsYW5l
c0Jhc2UpOwotICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKDB4ZDgwMCksIG1fcmVncy5sZWFkaW5nU3Vycm9nYXRlVGFnKTsKLSAgICAgICAgICAgIG1f
aml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDApLCBtX3JlZ3MudHJh
aWxpbmdTdXJyb2dhdGVUYWcpOwotICAgICAgICB9CiAjZWxpZiBDUFUoQVJNX1RIVU1CMikKICAg
ICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI0KTsKICAgICAgICAgbV9qaXQucHVzaChB
Uk1SZWdpc3RlcnM6OnI1KTsKICAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI2KTsK
ICAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI4KTsKICAgICAgICAgbV9qaXQucHVz
aChBUk1SZWdpc3RlcnM6OnIxMCk7Ci0jZWxpZiBDUFUoUklTQ1Y2NCkKLSAgICAgICAgaWYgKG1f
ZGVjb2RlU3Vycm9nYXRlUGFpcnMpCi0gICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fz
c2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0
ZXIpOwotI2VsaWYgQ1BVKE1JUFMpCi0gICAgICAgIC8vIERvIG5vdGhpbmcuCiAjZW5kaWYKICAg
ICB9CiAKQEAgLTQwNTIsMjcgKzQwMzMsMjEgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6
IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0
aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0LnBvcChYODZSZWdpc3RlcnM6OmVieCk7
Ci0gICAgICAgIG1faml0LnBvcChYODZSZWdpc3RlcnM6OmVicCk7Ci0jZWxpZiBDUFUoQVJNNjQp
Ci0gICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7Ci0gICAgICAgICAgICBpZiAo
IU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKLSAgICAgICAgICAgICAgICBtX2ppdC5wb3BQYWlyKE1h
Y3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtS
ZWdpc3Rlcik7Ci0gICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQogICAgICAgICBtX2pp
dC5wb3AoQVJNUmVnaXN0ZXJzOjpyMTApOwogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJz
OjpyOCk7CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI2KTsKICAgICAgICAgbV9q
aXQucG9wKEFSTVJlZ2lzdGVyczo6cjUpOwogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJz
OjpyNCk7Ci0jZWxpZiBDUFUoUklTQ1Y2NCkKLSAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRl
UGFpcnMpCi0gICAgICAgICAgICBtX2ppdC5wb3BQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBv
aW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7Ci0jZWxpZiBDUFUo
TUlQUykKLSAgICAgICAgLy8gRG8gbm90aGluZwogI2VuZGlmCisKKyAgICBtX2ppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOworCiAjaWYgQ1BVKEFSTTY0RSkKLSAgICAgICAgaWYgKE9wdGlvbnM6
OnVzZUpJVENhZ2UoKSkKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUpJVENhZ2UoKSkgeworICAg
ICAgICAgICAgbV9qaXQudW50YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAgICAgICAgICBtX2ppdC5m
YXJKdW1wKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJldGFnQ29kZVB0cjx2b2lkKiwg
Q0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJUYWc+KCZ2bUVudHJ5VG9ZYXJySklUQWZ0ZXIp
KSwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBtX2ppdC5yZXQoKTsKICNlbHNlCkBAIC00MDg2LDcgKzQwNjEsNyBAQCBjbGFzcyBZYXJyR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAgICB9CiAKIHB1YmxpYzoKLSAg
ICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNv
ZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4m
IHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUs
IEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZ
YXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0
dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2Rl
KQogICAgICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1f
Y29kZUJsb2NrKGNvZGVCbG9jaykKQEAgLTQxMDUsNyArNDA4MCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9ib3llck1vb3JlRGF0YSA9IHN0YXRpY19jYXN0PFlhcnJCb3llck1veWVyRGF0YSo+KG1f
Y29kZUJsb2NrKTsKICAgICB9CiAKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBq
aXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZ
YXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0
dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2Rl
KQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFy
ckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFy
clBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUg
Y2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGpp
dCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKG51bGxwdHIpCkBA
IC00MTkxLDE3ICs0MTY2LDMxIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGNhbGxGcmFtZVNpemVJ
bkJ5dGVzKSB7CiAgICAgICAgICAgICAvLyBDaGVjayBzdGFjayBzaXplCiAgICAgICAgICAgICBt
X2ppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtY2FsbEZyYW1lU2l6ZUlu
Qnl0ZXMpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG1fcmVncy5yZWdU
MCk7Ci0jaWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykKLSAgICAgICAgICAgIC8vIG1hdGNo
aW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2su
Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQg
PSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA3ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5n
Q29udGV4dCk7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCi0gICAgICAgICAg
ICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24g
dGhlIHN0YWNrLgotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hp
bmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIs
IDQgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKKworICAgICAgICAgICAgLy8g
TWFrZSBzdXJlIHRoYXQgdGhlIEpJVGVkIGZ1bmN0aW9ucyBoYXZlIDUgcGFyYW1ldGVycyBhbmQg
dGhhdCB0aGUgNXRoIGFyZ3VtZW50IGlzIGEgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKgorICAgICAg
ICAgICAgLy8gVE9ETzogQ2FuIHRoaXMgYmUgYSBsYW1iYT8KKyNkZWZpbmUgRlVOQ1RJT05DSEVD
S1MoZnVuYykgXAorICAgIGRvIHsgXAorICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJh
aXRzPGZ1bmM+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1l
bnRzIik7IFwKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8TWF0Y2hpbmdDb250
ZXh0SG9sZGVyKiwgRnVuY3Rpb25UcmFpdHM8ZnVuYz46OkFyZ3VtZW50VHlwZTw0Pj46OnZhbHVl
KTsgXAorICAgIH0gd2hpbGUgKGZhbHNlKQorCisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZ
YXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1Mo
WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGUxNik7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNL
UyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTgpOworICAgICAgICAgICAgRlVO
Q1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNik7CisKKyN1
bmRlZiBGVU5DVElPTkNIRUNLUworCisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA8
IDV1CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1l
bnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PihtX3JlZ3MucmVnVDEpOworICAg
ICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MucmVnVDEpOwogI2Vsc2UK
LSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9
IG1fcmVncy5tYXRjaGluZ0NvbnRleHQ7CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250
ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0
PigpOworICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MubWF0Y2hp
bmdDb250ZXh0KTsKICNlbmRpZgorICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9
PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0KTsKKwogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgc3RhY2tPayA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3dPckVx
dWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtYXRjaGluZ0NvbnRleHQsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlcjo6b2Zmc2V0T2ZTdGFja0xpbWl0KCkpLCBtX3JlZ3MucmVnVDApOwogCiAgICAg
ICAgICAgICAvLyBFeGNlZWRlZCBzdGFjayBsaW1pdCwgcHVudCB0byB0aGUgaW50ZXJwcmV0ZXIu
CkBAIC00NjE4LDcgKzQ2MDcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1h
Y3JvQXNzZW1ibGVyJiBtX2ppdDsKKyAgICBDQ2FsbEhlbHBlcnMmIG1faml0OwogICAgIGNvbnN0
IFZNKiBtX3ZtOwogICAgIFlhcnJDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogICAgIFlhcnJCb3ll
ck1veWVyRGF0YSogbV9ib3llck1vb3JlRGF0YTsKQEAgLTQ3MDYsNyArNDY5NSw3IEBAIHN0YXRp
YyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCiAKIHZv
aWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5n
LCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ssIEpJ
VENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBDQ2Fs
bEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2RlID09IEpJVENvbXBpbGVNb2RlOjpNYXRj
aE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsKIApA
QCAtNDcyNyw3ICs0NzE2LDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0ZXJu
LCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9yICJObyBz
dXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BVIC8g
T1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0
YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYg
cGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hh
clNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwg
TWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQordm9p
ZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVhZFN0
YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6
RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJN
b3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJlZ2lz
dGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7CiAg
ICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJyb3JD
b2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4MWZlNTE3
YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi4yYmMzNzM5NTY0MTBkYmM0Yzk1ZDdkZTJmY2Y4
ZTk2YzM2NWQzZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC00Myw5
ICs0MywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgVk07CitjbGFzcyBDQ2FsbEhl
bHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyOworY2xh
c3MgVk07CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApAQCAtMjcxLDEyICsyNzIsMTMgQEAgY2xhc3Mg
WWFyckNvZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95ZXJNb3llckRhdGEgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2RlQmxvY2sp
OwogCi0gICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25z
dCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwg
aW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJS
X0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKiko
Y29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5n
dGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkg
WUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0
dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVS
ZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29u
dGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93
UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0
LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRj
aGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLQogcHVibGljOgorCisgICAgdXNpbmcgWWFyckpJVENv
ZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdp
c3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJ
VENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlh
cnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIq
IGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBN
YXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVz
aW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0
IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2
b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsK
KwogICAgIFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIHNldEZhbGxCYWNr
V2l0aEZhaWx1cmVSZWFzb24oSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7IG1fZmFp
bHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFzb247IH0KQEAgLTMyNiw3ICszMjgsNyBAQCBwdWJsaWM6
CiAgICAgSW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hP
bmx5OFN0YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdldDE2Qml0SW5saW5lU3RhdHMoKSB7IHJl
dHVybiAgbV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNv
bnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBv
dXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNo
UmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWdu
ZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0Nv
bnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFS
TTY0RSkKQEAgLTMzNiw3ICszMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJl
c3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTgsIFlhcnI4Qml0UHRyVGFnPihtX3Jl
ZjguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRw
dXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUo
Y29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQq
IG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0
Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNp
Z25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5n
Q29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BV
KEFSTTY0RSkKQEAgLTM0Niw3ICszNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRj
aFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+
KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3Ro
LCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4
ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3Vs
dCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxl
bmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAg
ICAgICBBU1NFUlQoaGFzOEJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAg
LTM1Niw3ICszNTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRh
Z0NGdW5jdGlvblB0cjxZYXJySklUQ29kZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRy
VGFnPihtX21hdGNoT25seTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFy
dCwgbGVuZ3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRj
aFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2ln
bmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAg
TWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQog
ICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUo
QVJNNjRFKQpAQCAtNDM5LDcgKzQ0MSw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYs
IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUsIFZNKiwgWWFyckNvZGVCbG9jCiAKIGNs
YXNzIFlhcnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNr
Q2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwg
Y29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRS
ZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25z
dCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZ
YXJyQm95ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMmLCBZYXJySklUUmVnaXN0ZXJzJik7CiAj
ZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAppbmRleCBiYjgyMWNlODY3ZmUzOGUyOGYzNWNl
NzA2YjliYzYwOTk0MmY3OWI0Li4xN2FiMWM1MmRiYzRjY2RiZDZhOThkNDMxYmJiZDE0OWE2MTQ2
MzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0
ZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5o
CkBAIC0zNSw2ICszNSwxMiBAQCBuYW1lc3BhY2UgWWFyciB7CiAKIHN0cnVjdCBZYXJySklURGVm
YXVsdFJlZ2lzdGVycyB7CiBwdWJsaWM6CisKKyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKKyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoMHhmZmZmZmMwMCk7CisKICNpZiBDUFUoQVJNX1RIVU1CMikKICAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBpbnB1dCA9IEFSTVJlZ2lzdGVyczo6cjA7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgaW5kZXggPSBBUk1SZWdpc3RlcnM6OnIxOwpAQCAtNzAsMTUgKzc2LDEw
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdVbmljb2RlSW5wdXRB
bmRUcmFpbCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgdW5pY29kZVRlbXAgPSBBUk02NFJlZ2lzdGVyczo6eDU7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgaW5pdGlhbFN0YXJ0ID0gQVJNNjRSZWdpc3RlcnM6OngxMTsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IEFSTTY0UmVnaXN0ZXJz
Ojp4MTI7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9
IEFSTTY0UmVnaXN0ZXJzOjp4MTM7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgdHJhaWxp
bmdTdXJyb2dhdGVUYWcgPSBBUk02NFJlZ2lzdGVyczo6eDE0OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIGVuZE9mU3RyaW5nQWRkcmVzcyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTU7CiAKICAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJz
Ojp4MDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBBUk02
NFJlZ2lzdGVyczo6eDE7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoTUlQUykKICAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBpbnB1dCA9IE1JUFNSZWdpc3RlcnM6OmEwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIGluZGV4ID0gTUlQU1JlZ2lzdGVyczo6YTE7CkBAIC0xMzcsMTEgKzEzOCw2IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyID0gWDg2UmVn
aXN0ZXJzOjplYXg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIy
ID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMigweGQ4MDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMHhkYzAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKICAgICAvLyBBcmd1bWVudCBy
ZWdpc3RlcnMKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IFJJU0NWNjRSZWdp
c3RlcnM6OngxMDsKQEAgLTE2NCwxMSArMTYwLDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTA7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gUklTQ1Y2NFJlZ2lz
dGVyczo6eDExOwotCi0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweDEwMDAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoMHhkODAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KDB4ZGMwMCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyIHN1cnJvZ2F0ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZm
ZmZjMDApOwogI2VuZGlmCiB9OwogCkBAIC0yMDYsNiArMTk3LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2Ug
PSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwogICAgIGNvbnN0IE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweGRjMDApOworICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vy
cm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7
CiB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcy
NWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250
ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5n
Q29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1l
c3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0g
ICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1h
dGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwg
TWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihN
YXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAg
cHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJs
b2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkK
K2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYg
dm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hG
cm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZy
b20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckMKICAgICB9
CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAo
eWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIo
KSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0
ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIo
KTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRl
eHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxv
Y2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlm
CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448964</attachid>
            <date>2022-01-12 10:52:53 -0800</date>
            <delta_ts>2022-01-12 11:13:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220112185252.patch</filename>
            <type>text/plain</type>
            <size>33237</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLjAyZWIxMTg2
MWE1MTAxMThkN2QwNDYwNDgzY2IwMTA3ZWI4NjFmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtOTkyLDYgKzk5Miw1OCBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051
bT4oKS5wYXlsb2FkR1BSKCk7CiAgICAgfQorCitwcml2YXRlOgorCisgICAgLy8gSW4gY2FzZSB3
ZSBhcmUgdHJ5aW5nIHRvIGdldCB0aGUgYXJndW1lbnQgZnJvbSBhIGZ1bmN0aW9uIGJ1dCB0aGVy
ZSBpc24ndCBlbm91Z2ggcmVnaXN0ZXJzLCB0aGlzCisgICAgLy8gZnVuY3Rpb24gdHJpZXMgdG8g
bG9hZCBpdCBmcm9tIHRoZSBzdGFjayB1c2luZyB0aGUgc3AuIEluIG9yZGVyIGZvciB0aGlzIHRv
IHdvcmssIHRoZSBmcmFtZSBwb2ludGVyCisgICAgLy8gbXVzdCBiZSBzZXQgaW4gdGhlIGZ1bmN0
aW9uIHByb2xvZ3VlCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHVuc2ln
bmVkIEFyZ051bT4KKyAgICBjb25zdGV4cHIgR1BSUmVnIGxvYWRBcmd1bWVudEZyb21TdGFjayhH
UFJSZWcgc2NyYXRjaEdQUikKKyAgICB7CisgICAgICAgIEFTU0VSVChzY3JhdGNoR1BSICE9IEdQ
UlJlZzo6SW52YWxpZEdQUlJlZywgIlZhbGlkIEdQUiBuZWVkZWQgdG8gbG9hZCB0aGlzIGFyZ3Vt
ZW50Iik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVO
VF9SRUdJU1RFUlMsICJTaG91bGQgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSWCIpOworCisg
ICAgICAgIC8vIFRvIGxvYWQgdGhlIGFyZ3VtZW50IGludG8gc2NyYXRjaEdQUiBmcm9tIHRoZSBz
dGFjayB0aGUgZnJhbWUgcG9pbnRlciBuZWVkcyB0byBiZSBzZXQgYXQgdGhlIGZ1bmN0aW9uIHBy
b2xvZ3VlIQorCisgICAgICAgIC8vIEZvciBtb3N0IGFyY2hzIHRoZSBhcmd1bWVudCB3aWxsIGJl
IHBsYWNlIGF0IGZwICsgcmV0dXJuLWFkZHJlc3MgKyBhcmctbnVtIC0gTnVtYmVyLW9mLWFyZy1y
ZWdzLCBlLmcuLAorICAgICAgICAvLyB0aGUgNXRoIGFyZ3VtZW50IG9uIEFSTXY3IHdpbGwgYmUg
cGxhY2VkIGF0IGZwICsgMiArIDQgLSA0ID0gZnAgKyAyICogc2l6ZW9mKHB0ciopLCBob3dldmVy
LCB0aGF0IGFyZSB0d28gZXhjZXB0aW9uczoKKworICAgICAgICAvLyBQT0tFX0FSR1VNRU5UX09G
RlNFVDogb24gTUlQUyBhbmQgV2luZG93cyB4ODYsIHNwYWNlIGlzIHJlc2VydmVkIG9uIHRoZSBz
dGFjayBmb3IgYWxsIGFyZ3VtZW50cywgc28gaW4gdGhlc2UKKyAgICAgICAgLy8gYXJjaHMsIGEg
KzQgb2Zmc2V0IGlzIGFkZGVkLiBUaGUgNXRoIGFyZ3VtZW50IG9uIE1JUFMgaXMgZnAgKyA2ICog
c2l6ZW9mKHB0ciopLgorCisgICAgICAgIC8vIHJldHVyblR5cGVPZmZzZXQ6IFdpbmRvd3MgeDg2
IG9ubHkuIElmIHRoZSByZXR1cm4gdHlwZSB3aWRlciB0aGFuIDY0LWJpdHMsIGl0J3MgcmV0dXJu
ZWQgdmlhIGEgcG9pbnRlciB0aGF0IGlzCisgICAgICAgIC8vIHBhc3NlZCBhcyBhbiBpbXBsaWNp
dCBmaXJzdCBhcmd1bWVudCwgYW5kIGFsbCBvdGhlciBhcmd1bWVudHMgYXJlIHNoaWZ0ZWQgdG8g
dGhlIHJpZ2h0LCBhZGRpbmcgYSArMSBvZmZzZXQuCisgICAgICAgIC8vIFRoZSA1dGggYXJndW1l
bnQgb24gV2luZG93cyB4ODYgaW4gdGhpcyBzY2VuYXJpbyBpcyBmcCArIDcgKiBzaXplb2YocHRy
KikuCisKKyAgICAgICAgY29uc3RleHByIGludCByZXR1cm5BZHJlc3NPZmZzZXQgPSAyOworI2lm
IE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpCisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJu
VHlwZU9mZnNldCA9IHNpemVvZihSRVNVTFRfVFlQRSkgPj0gODsKKyAgICAgICAgY29uc3RleHBy
IGludCBvZmZzZXQgPSBBcmdOdW0gLSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTICsgUE9L
RV9BUkdVTUVOVF9PRkZTRVQgKyByZXR1cm5BZHJlc3NPZmZzZXQgKyByZXR1cm5UeXBlT2Zmc2V0
OworI2Vsc2UKKyAgICAgICAgY29uc3RleHByIGludCBvZmZzZXQgPSBBcmdOdW0gLSBOVU1CRVJf
T0ZfQVJHVU1FTlRfUkVHSVNURVJTICsgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyByZXR1cm5BZHJl
c3NPZmZzZXQ7CisjZW5kaWYKKyAgICAgICAgbG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIG9mZnNldCAqIHNpemVvZih2
b2lkKikpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgcmV0dXJuIHNjcmF0Y2hHUFI7CisgICAgfQor
CitwdWJsaWM6CisKKyAgICAvLyBHaXZlbiBhIGZ1bmN0aW9uIGFuZCBhbiBhcmd1bWVudCBudW1i
ZXIsIGVpdGhlciB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFyZ3VtZW50R1BSIGhvbGRpbmcg
dGhlIGFyZ3VtZW50CisgICAgLy8gb3IgaXQgdHJpZXMgdG8gbG9hZCB0aGUgYXJndW1lbnQgZnJv
bSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNjcmF0Y2hHUFIgcGFzc2VkIGFzIGFyZ3VtZW50LgorICAg
IC8vIE5vdGUgdGhhdCB3ZSB1c2UgMCBmb3IgdGhlIDFzdCBhcmd1bWVudCwgMSBmb3IgdGhlIDJu
ZCwgZXRjLgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBB
cmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBnZXRBcmd1bWVudEdQUihHUFJSZWcgc2NyYXRj
aEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3Nl
cnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBmb3JiaXMgZnVuY3Rpb25zIHdpdGggbW9y
ZSB0aGFuIDI1NiBhcmd1bWVudHMiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRy
YWl0czxPcGVyYXRpb25UeXBlPjo6Y0NhbGxBcml0eSgpID4gQXJnTnVtLCAiRnVuY3Rpb24gZG9l
cyBub3QgaGF2ZSBlbm91Z2ggYXJndW1lbnRzIik7CisKKyAgICAgICAgaWYgY29uc3RleHByIChB
cmdOdW0gPj0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUykKKyAgICAgICAgICAgIHJldHVy
biBsb2FkQXJndW1lbnRGcm9tU3RhY2s8T3BlcmF0aW9uVHlwZSwgQXJnTnVtPihzY3JhdGNoR1BS
KTsKKworICAgICAgICBVTlVTRURfUEFSQU0oc2NyYXRjaEdQUik7IC8vIE90aGVyd2lzZSB3YXJu
aW5nIGR1ZSB0byBjb25zdGV4cHIKKyAgICAgICAgcmV0dXJuIEdQUkluZm86OnRvQXJndW1lbnRS
ZWdpc3RlcihBcmdOdW0pOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0dQUkluZm8uaAppbmRleCA1MmExM2FhYWZiNzdiNmU0NGZhN2ViMTkyYjA2
ODQzYzJjY2I5MjI2Li42MGE1YmVlMTViODIyMDc2NDY1MTIwZGY3NGU5NDA4ZDc4YmM3Y2Q3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaApAQCAtNjI2LDcgKzYyNiw3IEBAIGNsYXNz
IEdQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKICAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMTY7Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsK
KyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMg
PSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOwogCiAgICAgLy8gVGhlc2UgcmVnaXN0ZXJz
IG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgY2Fs
bEZyYW1lUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6ZnA7CkBAIC04MjUsNyArODI1LDcgQEAg
Y2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJSZWcgUmVnaXN0ZXJUeXBl
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxMzsK
LSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMg
PSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lz
dGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKICAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OmZwOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG51bWJlclRhZ1JlZ2lzdGVyID0gUklTQ1Y2NFJlZ2lz
dGVyczo6eDI1OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXgg
MWI4Y2Q0MjBmMTA3MDlkMWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVj
NzViMjc3Y2M1MTYwMDAwMjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHAuY3BwCkBAIC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21w
YXJlV2l0aEludGVycHJldGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQq
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAg
ICBZYXJyOjpZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgp
OwotICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXpl
LCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhC
aXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hP
bmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNu
cHJpbnRmKGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAg
ICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0
bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hB
ZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRB
ZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNv
ZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50Zihq
aXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigp
KSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwg
IjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5n
ZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hB
ZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBJbmxpbmVzLmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVh
NGY3ODdlMi4uMGEwOTE3OGU2ZjlhOTQzOTFhMGRmMWQwMWMzOWU1Y2VjYWRmYmE0MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDEy
ICsxMzIsMTIgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2Jh
bE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBpZiAobV9zdGF0ZSA9PSBK
SVRDb2RlKSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUp
OwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJ
VENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAg
ICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5n
dGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAg
ICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFy
dE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7
CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRD
b2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBv
ZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNl
dCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0PGludD4oWWFycjo6SlNS
ZWdFeHBSZXN1bHQ6OkpJVENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcgKzE0Niw3IEBAIEFMV0FZ
U19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckds
b2JhbE9iamVjdCwgVk0mIHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9y
KQogICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0
Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVz
dWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zm
c2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBS
ZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZN
JiB2bQogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsK
KyAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8q
IHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAg
ICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBz
LCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3Rvcikp
OwogICAgIH0KIApAQCAtMjY2LDEyICsyNjYsMTIgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3Vs
dCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QK
ICAgICAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwogICAgICAgICB7CiAgICAgICAgICAgICBBU1NF
UlQobV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNo
RnJvbSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29u
dGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhp
cywgbWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAg
ICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwg
c3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFj
dGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJz
MTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAg
fQogCiAjaWYgRU5BQkxFKFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1LDcgKzI5NSw3IEBAIEFMV0FZ
U19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCog
bnVsbE9yR2xvYmFsT2JqZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVjdG9yLmdyb3cob2Zmc2V0VmVj
dG9yU2l6ZSk7CiAgICAgb2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJuZWRPdmVjdG9yLmRhdGEoKTsK
ICAgICB7Ci0gICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0
KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVy
OiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50
ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VYUF9GVU5D
X1RFU1RfREFUQV9HRU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXgg
YTQ5OGVmNzgwNzMxODI0ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uNTQ4YmUwMDI2ZjM5ODJh
YmQxMWM0OWRmZmExNTZmZTAyNGMxNTQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckpJVC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJZYXJySklULmgiCiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJMaW5r
QnVmZmVyLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBAIC0xODYs
MTAgKzE4Nyw2IEBAIHN0ZDo6dHVwbGU8Qm95ZXJNb29yZUJpdG1hcDo6TWFwLCBCb3llck1vb3Jl
RmFzdENhbmRpZGF0ZXM+IEJveWVyTW9vcmVJbmZvOjpjcmVhCiB0ZW1wbGF0ZTxjbGFzcyBZYXJy
SklUUmVncyA9IFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzPgogY2xhc3MgWWFyckdlbmVyYXRvciBm
aW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKLSNpZmRlZiAgSklUX1VOSUNPREVfRVhQUkVT
U0lPTlMKLSAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRh
Z01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwotI2VuZGlm
Ci0KICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKICAgICBzdHJ1
Y3QgUGFyZW5Db250ZXh0U2l6ZXMgewogICAgICAgICBzaXplX3QgbV9udW1TdWJwYXR0ZXJuczsK
QEAgLTYwMyw3ICs2MDAsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlh
cnJKSVRJbmZvIHsKICAgICAgICAgbV9qaXQubG9hZDE2VW5hbGlnbmVkKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCksIHJlc3VsdFJlZyk7CiAK
ICAgICAgICAgLy8gSXMgdGhlIGNoYXJhY3RlciBhIGxlYWRpbmcgc3Vycm9nYXRlPwotICAgICAg
ICBtX2ppdC5hbmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVyczo6c3Vycm9nYXRlVGFnTWFzaywg
cmVzdWx0UmVnLCBtX3JlZ3MudW5pY29kZVRlbXApOworICAgICAgICBtX2ppdC5hbmQzMihtX3Jl
Z3Muc3Vycm9nYXRlVGFnTWFzaywgcmVzdWx0UmVnLCBtX3JlZ3MudW5pY29kZVRlbXApOwogICAg
ICAgICBub3RVbmljb2RlLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90
RXF1YWwsIG1fcmVncy51bmljb2RlVGVtcCwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpKTsK
IAogICAgICAgICAvLyBJcyB0aGUgaW5wdXQgbG9uZyBlbm91Z2ggdG8gcmVhZCBhIHRyYWlsaW5n
IHN1cnJvZ2F0ZT8KQEAgLTYxMiw3ICs2MDksNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFs
IDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFjdGVyIGEg
dHJhaWxpbmcgc3Vycm9nYXRlPwogICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWduZWQoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MobV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwgbV9yZWdz
LnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKTsKLSAgICAgICAgbV9qaXQuYW5kMzIoWWFyckpJVERl
ZmF1bHRSZWdpc3RlcnM6OnN1cnJvZ2F0ZVRhZ01hc2ssIG1fcmVncy5yZWdVbmljb2RlSW5wdXRB
bmRUcmFpbCwgbV9yZWdzLnVuaWNvZGVUZW1wKTsKKyAgICAgICAgbV9qaXQuYW5kMzIobV9yZWdz
LnN1cnJvZ2F0ZVRhZ01hc2ssIG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCwgbV9yZWdz
LnVuaWNvZGVUZW1wKTsKICAgICAgICAgbm90VW5pY29kZS5hcHBlbmQobV9qaXQuYnJhbmNoMzIo
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBtX3JlZ3MudW5pY29kZVRlbXAsIG1fcmVncy50cmFp
bGluZ1N1cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8vIENvbWJpbmUgbGVhZGluZyBhbmQgdHJh
aWxpbmcgc3Vycm9nYXRlcyB0byBwcm9kdWNlIGEgY29kZSBwb2ludC4KQEAgLTM5NjEsMTAgKzM5
NTgsOSBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsK
IAogICAgIHZvaWQgZ2VuZXJhdGVFbnRlcigpCiAgICAgewotI2lmIENQVShYODZfNjQpCi0gICAg
ICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICBtX2ppdC5tb3ZlKE1h
Y3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplYnApOwor
ICAgICAgICBtX2ppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOwogCisjaWYgQ1BVKFg4Nl82NCkK
ICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAg
ICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYngpOwogCkBAIC0zOTg3LDMxICszOTgzLDE2
IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAg
ICAgICB9CiAjaWYgT1MoV0lORE9XUykKICAgICAgICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklU
Q29tcGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJucykKLSAgICAgICAgICAgIG1faml0LmxvYWRQ
dHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yo
dm9pZCopKSwgbV9yZWdzLm91dHB1dCk7CisgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rlciwg
NiAqIHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0cHV0KTsKICAgICAgICAgLy8gcmN4IGlzIHRo
ZSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgc3BhY2UgZm9yIHJlc3VsdCBpbiB4NjQgV2luZG93
cy4KICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVjeCk7CiAjZW5kaWYKLSNlbGlm
IENQVShBUk02NCkKLSAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdlKCkpCi0gICAgICAg
ICAgICBtX2ppdC50YWdSZXR1cm5BZGRyZXNzKCk7Ci0gICAgICAgIGlmIChtX2RlY29kZVN1cnJv
Z2F0ZVBhaXJzKSB7Ci0gICAgICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKLSAg
ICAgICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVy
UmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwotICAgICAgICAgICAgbV9q
aXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApLCBtX3JlZ3Muc3Vw
cGxlbWVudGFyeVBsYW5lc0Jhc2UpOwotICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCksIG1fcmVncy5sZWFkaW5nU3Vycm9nYXRlVGFnKTsK
LSAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRj
MDApLCBtX3JlZ3MudHJhaWxpbmdTdXJyb2dhdGVUYWcpOwotICAgICAgICB9CiAjZWxpZiBDUFUo
QVJNX1RIVU1CMikKICAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI0KTsKICAgICAg
ICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKICAgICAgICAgbV9qaXQucHVzaChBUk1S
ZWdpc3RlcnM6OnI2KTsKICAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI4KTsKICAg
ICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnIxMCk7Ci0jZWxpZiBDUFUoUklTQ1Y2NCkK
LSAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpCi0gICAgICAgICAgICBtX2ppdC5w
dXNoUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1i
bGVyOjpsaW5rUmVnaXN0ZXIpOwotI2VsaWYgQ1BVKE1JUFMpCi0gICAgICAgIC8vIERvIG5vdGhp
bmcuCiAjZW5kaWYKICAgICB9CiAKQEAgLTQwNTIsMjcgKzQwMzMsMjEgQEAgY2xhc3MgWWFyckdl
bmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAgICAgaWYgKG1fcGF0
dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0LnBvcChYODZS
ZWdpc3RlcnM6OmVieCk7Ci0gICAgICAgIG1faml0LnBvcChYODZSZWdpc3RlcnM6OmVicCk7Ci0j
ZWxpZiBDUFUoQVJNNjQpCi0gICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7Ci0g
ICAgICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKLSAgICAgICAgICAgICAgICBt
X2ppdC5wb3BQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9B
c3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7Ci0gICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIy
KQogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyMTApOwogICAgICAgICBtX2ppdC5w
b3AoQVJNUmVnaXN0ZXJzOjpyOCk7CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI2
KTsKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjUpOwogICAgICAgICBtX2ppdC5w
b3AoQVJNUmVnaXN0ZXJzOjpyNCk7Ci0jZWxpZiBDUFUoUklTQ1Y2NCkKLSAgICAgICAgaWYgKG1f
ZGVjb2RlU3Vycm9nYXRlUGFpcnMpCi0gICAgICAgICAgICBtX2ppdC5wb3BQYWlyKE1hY3JvQXNz
ZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rl
cik7Ci0jZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8gbm90aGluZwogI2VuZGlmCisKKyAg
ICBtX2ppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworCiAjaWYgQ1BVKEFSTTY0RSkKLSAgICAg
ICAgaWYgKE9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUpJ
VENhZ2UoKSkgeworICAgICAgICAgICAgbV9qaXQudW50YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAg
ICAgICAgICBtX2ppdC5mYXJKdW1wKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHJldGFn
Q29kZVB0cjx2b2lkKiwgQ0Z1bmN0aW9uUHRyVGFnLCBPcGVyYXRpb25QdHJUYWc+KCZ2bUVudHJ5
VG9ZYXJySklUQWZ0ZXIpKSwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICAgICAgfQogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtX2ppdC5yZXQoKTsKICNlbHNlCkBAIC00MDg2LDcgKzQwNjEsNyBA
QCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAgICB9
CiAKIHB1YmxpYzoKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0
IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVn
cywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hh
clNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5l
cmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29k
ZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNv
bnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVN
b2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZt
KQogICAgICAgICAsIG1fY29kZUJsb2NrKGNvZGVCbG9jaykKQEAgLTQxMDUsNyArNDA4MCw3IEBA
IHB1YmxpYzoKICAgICAgICAgbV9ib3llck1vb3JlRGF0YSA9IHN0YXRpY19jYXN0PFlhcnJCb3ll
ck1veWVyRGF0YSo+KG1fY29kZUJsb2NrKTsKICAgICB9CiAKLSAgICBZYXJyR2VuZXJhdG9yKE1h
Y3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJy
Qk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNv
bnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVN
b2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklU
UmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0
cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQogICAg
ICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29kZUJs
b2NrKG51bGxwdHIpCkBAIC00MTkxLDE3ICs0MTY2LDMxIEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGNhbGxGcmFtZVNpemVJbkJ5dGVzKSB7CiAgICAgICAgICAgICAvLyBDaGVjayBzdGFjayBzaXpl
CiAgICAgICAgICAgICBtX2ppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigt
Y2FsbEZyYW1lU2l6ZUluQnl0ZXMpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIsIG1fcmVncy5yZWdUMCk7Ci0jaWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykKLSAgICAg
ICAgICAgIC8vIG1hdGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3Vu
ZCBvbiB0aGUgc3RhY2suCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBt
YXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA3ICogc2l6ZW9mKHZv
aWQqKSksIG1hdGNoaW5nQ29udGV4dCk7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1J
UFMpCi0gICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwg
aXQgaXMgZm91bmQgb24gdGhlIHN0YWNrLgotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJl
Z2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9q
aXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIsIDQgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKKwor
ICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIEpJVGVkIGZ1bmN0aW9ucyBoYXZlIDUg
cGFyYW1ldGVycyBhbmQgdGhhdCB0aGUgNXRoIGFyZ3VtZW50IGlzIGEgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyKgorICAgICAgICAgICAgLy8gVE9ETzogQ2FuIHRoaXMgYmUgYSBsYW1iYT8KKyNkZWZp
bmUgRlVOQ1RJT05DSEVDS1MoZnVuYykgXAorICAgICAgICAgICAgZG8geyBcCisgICAgICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxmdW5jPjo6Y0NhbGxBcml0eSgpID09
IDUsICJZYXJySklUQ29kZSB0YWtlcyA1IGFyZ3VtZW50cyIpOyBcCisgICAgICAgICAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiwgRnVuY3Rp
b25UcmFpdHM8ZnVuYz46OkFyZ3VtZW50VHlwZTw0Pj46OnZhbHVlLCAiTWF0Y2hpbmdDb250ZXh0
SG9sZGVyKiBpcyBleHBlY3RlZCBhcyB0aGUgZnVuY3Rpb24gNXRoIGFyZ3VtZW50Iik7IFwKKyAg
ICAgICAgICAgIH0gd2hpbGUgKGZhbHNlKQorCisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZ
YXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgpOworICAgICAgICAgICAgRlVOQ1RJT05DSEVDS1Mo
WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGUxNik7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNL
UyhZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTgpOworICAgICAgICAgICAgRlVO
Q1RJT05DSEVDS1MoWWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNik7CisKKyN1
bmRlZiBGVU5DVElPTkNIRUNLUworCisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA8
IDV1CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1l
bnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0PihtX3JlZ3MucmVnVDEpOworICAg
ICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MucmVnVDEpOwogI2Vsc2UK
LSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9
IG1fcmVncy5tYXRjaGluZ0NvbnRleHQ7CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250
ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCA0
PigpOworICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MubWF0Y2hp
bmdDb250ZXh0KTsKICNlbmRpZgorICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29udGV4dCA9
PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0KTsKKwogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgc3RhY2tPayA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3dPckVx
dWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtYXRjaGluZ0NvbnRleHQsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlcjo6b2Zmc2V0T2ZTdGFja0xpbWl0KCkpLCBtX3JlZ3MucmVnVDApOwogCiAgICAg
ICAgICAgICAvLyBFeGNlZWRlZCBzdGFjayBsaW1pdCwgcHVudCB0byB0aGUgaW50ZXJwcmV0ZXIu
CkBAIC00NjE4LDcgKzQ2MDcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1h
Y3JvQXNzZW1ibGVyJiBtX2ppdDsKKyAgICBDQ2FsbEhlbHBlcnMmIG1faml0OwogICAgIGNvbnN0
IFZNKiBtX3ZtOwogICAgIFlhcnJDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogICAgIFlhcnJCb3ll
ck1veWVyRGF0YSogbV9ib3llck1vb3JlRGF0YTsKQEAgLTQ3MDYsNyArNDY5NSw3IEBAIHN0YXRp
YyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCiAKIHZv
aWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5n
LCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ssIEpJ
VENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBDQ2Fs
bEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2RlID09IEpJVENvbXBpbGVNb2RlOjpNYXRj
aE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsKIApA
QCAtNDcyNyw3ICs0NzE2LDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0ZXJu
LCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9yICJObyBz
dXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BVIC8g
T1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0
YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYg
cGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hh
clNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwg
TWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQordm9p
ZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVhZFN0
YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6
RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJN
b3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJlZ2lz
dGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7CiAg
ICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJyb3JD
b2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4MWZlNTE3
YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi4yYmMzNzM5NTY0MTBkYmM0Yzk1ZDdkZTJmY2Y4
ZTk2YzM2NWQzZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC00Myw5
ICs0MywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgVk07CitjbGFzcyBDQ2FsbEhl
bHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyOworY2xh
c3MgVk07CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApAQCAtMjcxLDEyICsyNzIsMTMgQEAgY2xhc3Mg
WWFyckNvZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95ZXJNb3llckRhdGEgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2RlQmxvY2sp
OwogCi0gICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25z
dCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwg
aW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJS
X0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKiko
Y29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5n
dGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkg
WUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0
dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVS
ZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29u
dGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93
UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0
LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRj
aGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLQogcHVibGljOgorCisgICAgdXNpbmcgWWFyckpJVENv
ZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdp
c3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJ
VENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlh
cnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIq
IGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBN
YXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworICAgIHVz
aW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0
IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2
b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsK
KwogICAgIFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIHNldEZhbGxCYWNr
V2l0aEZhaWx1cmVSZWFzb24oSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7IG1fZmFp
bHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFzb247IH0KQEAgLTMyNiw3ICszMjgsNyBAQCBwdWJsaWM6
CiAgICAgSW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hP
bmx5OFN0YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdldDE2Qml0SW5saW5lU3RhdHMoKSB7IHJl
dHVybiAgbV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNv
bnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBv
dXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNo
UmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWdu
ZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0Nv
bnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFS
TTY0RSkKQEAgLTMzNiw3ICszMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJl
c3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTgsIFlhcnI4Qml0UHRyVGFnPihtX3Jl
ZjguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRw
dXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUo
Y29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQq
IG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0
Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNp
Z25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5n
Q29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BV
KEFSTTY0RSkKQEAgLTM0Niw3ICszNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRj
aFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+
KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3Ro
LCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4
ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3Ro
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3Vs
dCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxl
bmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAg
ICAgICBBU1NFUlQoaGFzOEJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAg
LTM1Niw3ICszNTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRh
Z0NGdW5jdGlvblB0cjxZYXJySklUQ29kZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRy
VGFnPihtX21hdGNoT25seTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFy
dCwgbGVuZ3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRj
aFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2ln
bmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAg
TWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQog
ICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUo
QVJNNjRFKQpAQCAtNDM5LDcgKzQ0MSw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYs
IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUsIFZNKiwgWWFyckNvZGVCbG9jCiAKIGNs
YXNzIFlhcnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNr
Q2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwg
Y29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRS
ZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25z
dCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZ
YXJyQm95ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMmLCBZYXJySklUUmVnaXN0ZXJzJik7CiAj
ZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAppbmRleCBiYjgyMWNlODY3ZmUzOGUyOGYzNWNl
NzA2YjliYzYwOTk0MmY3OWI0Li4xN2FiMWM1MmRiYzRjY2RiZDZhOThkNDMxYmJiZDE0OWE2MTQ2
MzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0
ZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5o
CkBAIC0zNSw2ICszNSwxMiBAQCBuYW1lc3BhY2UgWWFyciB7CiAKIHN0cnVjdCBZYXJySklURGVm
YXVsdFJlZ2lzdGVycyB7CiBwdWJsaWM6CisKKyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKKyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoMHhmZmZmZmMwMCk7CisKICNpZiBDUFUoQVJNX1RIVU1CMikKICAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBpbnB1dCA9IEFSTVJlZ2lzdGVyczo6cjA7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgaW5kZXggPSBBUk1SZWdpc3RlcnM6OnIxOwpAQCAtNzAsMTUgKzc2LDEw
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdVbmljb2RlSW5wdXRB
bmRUcmFpbCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgdW5pY29kZVRlbXAgPSBBUk02NFJlZ2lzdGVyczo6eDU7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgaW5pdGlhbFN0YXJ0ID0gQVJNNjRSZWdpc3RlcnM6OngxMTsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IEFSTTY0UmVnaXN0ZXJz
Ojp4MTI7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9
IEFSTTY0UmVnaXN0ZXJzOjp4MTM7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgdHJhaWxp
bmdTdXJyb2dhdGVUYWcgPSBBUk02NFJlZ2lzdGVyczo6eDE0OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIGVuZE9mU3RyaW5nQWRkcmVzcyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTU7CiAKICAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJz
Ojp4MDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBBUk02
NFJlZ2lzdGVyczo6eDE7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoTUlQUykKICAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBpbnB1dCA9IE1JUFNSZWdpc3RlcnM6OmEwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIGluZGV4ID0gTUlQU1JlZ2lzdGVyczo6YTE7CkBAIC0xMzcsMTEgKzEzOCw2IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyID0gWDg2UmVn
aXN0ZXJzOjplYXg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIy
ID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMigweGQ4MDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMHhkYzAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKICAgICAvLyBBcmd1bWVudCBy
ZWdpc3RlcnMKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IFJJU0NWNjRSZWdp
c3RlcnM6OngxMDsKQEAgLTE2NCwxMSArMTYwLDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTA7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gUklTQ1Y2NFJlZ2lz
dGVyczo6eDExOwotCi0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweDEwMDAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoMHhkODAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KDB4ZGMwMCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyIHN1cnJvZ2F0ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZm
ZmZjMDApOwogI2VuZGlmCiB9OwogCkBAIC0yMDYsNiArMTk3LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2Ug
PSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwogICAgIGNvbnN0IE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweGRjMDApOworICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vy
cm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7
CiB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcy
NWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250
ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5n
Q29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1l
c3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0g
ICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1h
dGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwg
TWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihN
YXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAg
cHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJs
b2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkK
K2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYg
dm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hG
cm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZy
b20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckMKICAgICB9
CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAo
eWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIo
KSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0
ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIo
KTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRl
eHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxv
Y2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlm
CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448971</attachid>
            <date>2022-01-12 11:13:06 -0800</date>
            <delta_ts>2022-01-13 07:53:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220112191305.patch</filename>
            <type>text/plain</type>
            <size>33617</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLmIyOTliMDM5
ZWIxYWE4NGY0NzVkZDEzMzk3MzQ1Nzc2MDcyYTc1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtNjQ4LDcgKzY0OCw2IEBAIHByaXZhdGU6CiAgICAgfQog
CiAjdW5kZWYgQ1VSUkVOVF9BUkdVTUVOVF9UWVBFCi0jdW5kZWYgUkVTVUxUX1RZUEUKIAogICAg
IC8vIEJhc2UgY2FzZTsgc2V0IHVwIHRoZSBhcmd1bWVudCByZWdpc3RlcnMuCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQg
bnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNl
cywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2ln
bmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZT4KQEAgLTk5Miw2ICs5OTEsNjAgQEAg
cHVibGljOgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVy
YXRpb25UeXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0KKworcHJpdmF0ZToKKwor
ICAgIC8vIEluIGNhc2Ugd2UgYXJlIHRyeWluZyB0byBnZXQgdGhlIGFyZ3VtZW50IGZyb20gYSBm
dW5jdGlvbiBidXQgdGhlcmUgaXNuJ3QgZW5vdWdoIHJlZ2lzdGVycywgdGhpcworICAgIC8vIGZ1
bmN0aW9uIHRyaWVzIHRvIGxvYWQgaXQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNwLiBJbiBv
cmRlciBmb3IgdGhpcyB0byB3b3JrLCB0aGUgZnJhbWUgcG9pbnRlcgorICAgIC8vIG11c3QgYmUg
c2V0IGluIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPcGVy
YXRpb25UeXBlLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBsb2FkQXJn
dW1lbnRGcm9tU3RhY2soR1BSUmVnIHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQo
c2NyYXRjaEdQUiAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRv
IGxvYWQgdGhpcyBhcmd1bWVudCIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBO
VU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1
bWVudEdQUlgiKTsKKworICAgICAgICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0
Y2hHUFIgZnJvbSB0aGUgc3RhY2sgdGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0
IHRoZSBmdW5jdGlvbiBwcm9sb2d1ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUg
YXJndW1lbnQgd2lsbCBiZSBwbGFjZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAt
IE51bWJlci1vZi1hcmctcmVncywgZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBv
biBBUk12NyB3aWxsIGJlIHBsYWNlZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVv
ZihwdHIqKSwgaG93ZXZlciwgdGhhdCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8g
UE9LRV9BUkdVTUVOVF9PRkZTRVQ6IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyBy
ZXNlcnZlZCBvbiB0aGUgc3RhY2sgZm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAg
ICAgIC8vIGFyY2hzLCBhICs0IG9mZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBN
SVBTIGlzIGZwICsgNiAqIHNpemVvZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zm
c2V0OiBXaW5kb3dzIHg4NiBvbmx5LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1i
aXRzLCBpdCdzIHJldHVybmVkIHZpYSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNz
ZWQgYXMgYW4gaW1wbGljaXQgZmlyc3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRz
IGFyZSBzaGlmdGVkIHRvIHRoZSByaWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAv
LyBUaGUgNXRoIGFyZ3VtZW50IG9uIFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAg
KyA3ICogc2l6ZW9mKHB0ciopLgorCisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNz
T2Zmc2V0ID0gMjsKKyNpZiBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25z
dGV4cHIgaW50IHJldHVyblR5cGVPZmZzZXQgPSBzaXplb2YoUkVTVUxUX1RZUEUpID49IDg7Cisg
ICAgICAgIGNvbnN0ZXhwciBpbnQgb2Zmc2V0ID0gQXJnTnVtIC0gTlVNQkVSX09GX0FSR1VNRU5U
X1JFR0lTVEVSUyArIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgcmV0dXJuQWRyZXNzT2Zmc2V0ICsg
cmV0dXJuVHlwZU9mZnNldDsKKyNlbHNlCisgICAgICAgIGNvbnN0ZXhwciBpbnQgb2Zmc2V0ID0g
QXJnTnVtIC0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyArIFBPS0VfQVJHVU1FTlRfT0ZG
U0VUICsgcmV0dXJuQWRyZXNzT2Zmc2V0OworI2VuZGlmCisgICAgICAgIGxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBv
ZmZzZXQgKiBzaXplb2Yodm9pZCopKSwgc2NyYXRjaEdQUik7CisgICAgICAgIHJldHVybiBzY3Jh
dGNoR1BSOworICAgIH0KKworI3VuZGVmIFJFU1VMVF9UWVBFCisKK3B1YmxpYzoKKworICAgIC8v
IEdpdmVuIGEgZnVuY3Rpb24gYW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVu
Y3Rpb24gcmV0dXJucyB0aGUgYXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAv
LyBvciBpdCB0cmllcyB0byBsb2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0
aGUgc2NyYXRjaEdQUiBwYXNzZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVz
ZSAwIGZvciB0aGUgMXN0IGFyZ3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHVuc2lnbmVkIEFyZ051bT4KKyAgICBjb25zdGV4
cHIgR1BSUmVnIGdldEFyZ3VtZW50R1BSKEdQUlJlZyBzY3JhdGNoR1BSID0gR1BSUmVnOjpJbnZh
bGlkR1BSUmVnKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChBcmdOdW0gPD0gMjU1LCAi
QysrIHN0YW5kYXJkIGZvcmJpcyBmdW5jdGlvbnMgd2l0aCBtb3JlIHRoYW4gMjU2IGFyZ3VtZW50
cyIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+
OjpjQ2FsbEFyaXR5KCkgPiBBcmdOdW0sICJGdW5jdGlvbiBkb2VzIG5vdCBoYXZlIGVub3VnaCBh
cmd1bWVudHMiKTsKKworICAgICAgICBpZiBjb25zdGV4cHIgKEFyZ051bSA+PSBOVU1CRVJfT0Zf
QVJHVU1FTlRfUkVHSVNURVJTKQorICAgICAgICAgICAgcmV0dXJuIGxvYWRBcmd1bWVudEZyb21T
dGFjazxPcGVyYXRpb25UeXBlLCBBcmdOdW0+KHNjcmF0Y2hHUFIpOworCisgICAgICAgIFVOVVNF
RF9QQVJBTShzY3JhdGNoR1BSKTsgLy8gT3RoZXJ3aXNlIHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhw
cgorICAgICAgICByZXR1cm4gR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKEFyZ051bSk7Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0dQUkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5m
by5oCmluZGV4IDUyYTEzYWFhZmI3N2I2ZTQ0ZmE3ZWIxOTJiMDY4NDNjMmNjYjkyMjYuLjYwYTVi
ZWUxNWI4MjIwNzY0NjUxMjBkZjc0ZTk0MDhkNzhiYzdjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvR1BSSW5mby5oCkBAIC02MjYsNyArNjI2LDcgQEAgY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBHUFJSZWcgUmVnaXN0ZXJUeXBlOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxNjsKLSAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVO
VF9SRUdJU1RFUlM7CiAKICAgICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5l
IEpJVC4KICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IEFS
TTY0UmVnaXN0ZXJzOjpmcDsKQEAgLTgyNSw3ICs4MjUsNyBAQCBjbGFzcyBHUFJJbmZvIHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEdQUlJlZyBSZWdpc3RlclR5cGU7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDEzOwotICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FS
R1VNRU5UX1JFR0lTVEVSUzsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFt
ZVJlZ2lzdGVyID0gUklTQ1Y2NFJlZ2lzdGVyczo6ZnA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgbnVtYmVyVGFnUmVnaXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MjU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmVi
MWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRi
NGFkMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0
OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVnRXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIo
Y29uc3QgU3RyaW5nJiBzLCBpbnQgc3RhcnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEpJVENvZGU6IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxv
Y2smIGNvZGVCbG9jayA9ICptX3JlZ0V4cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnBy
aW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkp
OwotICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6
ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQx
NkJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNo
QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50Zihq
aXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAg
ICAgc25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQ
Ukl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRj
aE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNu
cHJpbnRmKGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkp
OworICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAi
MHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdl
dDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElu
bGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApp
bmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi4wYTA5MTc4ZTZm
OWE5NDM5MWEwZGYxZDAxYzM5ZTVjZWNhZGZiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNf
SU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9i
YWxPYmplY3QsIFZNJiB2bQogICAgIGlmIChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAg
ewogICAgICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2Rl
LmdldCgpLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5D
b250ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlz
OEJpdCgpKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0
ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3Is
IHJlZ0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhw
SklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgp
LCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFy
YWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhw
Q29udGV4dCkuc3RhcnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2Rl
LT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZz
ZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlm
IChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29k
ZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyArMTQ2LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhw
OjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0K
ICAgICAgICAgICAgIGlmIChtX3N0YXRlID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoKTsKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywg
bWF0Y2hGcm9tKTsKKyAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwg
dGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnBy
ZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nh
c3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUo
SlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAj
ZW5kaWYKICAgICB7Ci0gICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBD
b250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRj
aGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0
QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFy
cjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWlu
dGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYs
MTIgKzI2NiwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxp
bmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAgICAgICBNYXRjaFJlc3Vs
dCByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUp
OwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJ
VENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAg
ICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5n
dGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBK
SVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCks
ICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZz
ZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9
IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwg
cy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVH
RVhQX1RSQUNJTkcpCkBAIC0yOTUsNyArMjk1LDcgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3Vs
dCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QK
ICAgICBub25SZXR1cm5lZE92ZWN0b3IuZ3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZz
ZXRWZWN0b3IgPSBub25SZXR1cm5lZE92ZWN0b3IuZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFy
cjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMs
IG1hdGNoRnJvbSk7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBD
b250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBt
YXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRl
Y29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihv
ZmZzZXRWZWN0b3IpKTsKICAgICB9CiAjaWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4MjRkY2Yy
ZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi41NDhiZTAwMjZmMzk4MmFiZDExYzQ5ZGZmYTE1NmZlMDI0
YzE1NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAorI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKQEAgLTE4NiwxMCArMTg3LDYgQEAgc3RkOjp0
dXBsZTxCb3llck1vb3JlQml0bWFwOjpNYXAsIEJveWVyTW9vcmVGYXN0Q2FuZGlkYXRlcz4gQm95
ZXJNb29yZUluZm86OmNyZWEKIHRlbXBsYXRlPGNsYXNzIFlhcnJKSVRSZWdzID0gWWFyckpJVERl
ZmF1bHRSZWdpc3RlcnM+CiBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJK
SVRJbmZvIHsKIAotI2lmZGVmICBKSVRfVU5JQ09ERV9FWFBSRVNTSU9OUwotICAgIGNvbnN0IE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShZQVJS
X0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQogICAgIHN0cnVjdCBQYXJlbkNvbnRleHRTaXpl
cyB7CiAgICAgICAgIHNpemVfdCBtX251bVN1YnBhdHRlcm5zOwpAQCAtNjAzLDcgKzYwMCw3IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgICAg
ICBtX2ppdC5sb2FkMTZVbmFsaWduZWQoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9yZWdzLnJl
Z1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwgcmVzdWx0UmVnKTsKIAogICAgICAgICAvLyBJcyB0aGUg
Y2hhcmFjdGVyIGEgbGVhZGluZyBzdXJyb2dhdGU/Ci0gICAgICAgIG1faml0LmFuZDMyKFlhcnJK
SVREZWZhdWx0UmVnaXN0ZXJzOjpzdXJyb2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51
bmljb2RlVGVtcCk7CisgICAgICAgIG1faml0LmFuZDMyKG1fcmVncy5zdXJyb2dhdGVUYWdNYXNr
LCByZXN1bHRSZWcsIG1fcmVncy51bmljb2RlVGVtcCk7CiAgICAgICAgIG5vdFVuaWNvZGUuYXBw
ZW5kKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgbV9yZWdzLnVuaWNv
ZGVUZW1wLCBtX3JlZ3MubGVhZGluZ1N1cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8vIElzIHRo
ZSBpbnB1dCBsb25nIGVub3VnaCB0byByZWFkIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwpAQCAtNjEy
LDcgKzYwOSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVElu
Zm8gewogCiAgICAgICAgIC8vIElzIHRoZSBjaGFyYWN0ZXIgYSB0cmFpbGluZyBzdXJyb2dhdGU/
CiAgICAgICAgIG1faml0LmxvYWQxNlVuYWxpZ25lZChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyht
X3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5k
VHJhaWwpOwotICAgICAgICBtX2ppdC5hbmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVyczo6c3Vy
cm9nYXRlVGFnTWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5p
Y29kZVRlbXApOworICAgICAgICBtX2ppdC5hbmQzMihtX3JlZ3Muc3Vycm9nYXRlVGFnTWFzaywg
bV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXApOwogICAg
ICAgICBub3RVbmljb2RlLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90
RXF1YWwsIG1fcmVncy51bmljb2RlVGVtcCwgbV9yZWdzLnRyYWlsaW5nU3Vycm9nYXRlVGFnKSk7
CiAKICAgICAgICAgLy8gQ29tYmluZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzdXJyb2dhdGVzIHRv
IHByb2R1Y2UgYSBjb2RlIHBvaW50LgpAQCAtMzk2MSwxMCArMzk1OCw5IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgdm9pZCBnZW5lcmF0
ZUVudGVyKCkKICAgICB7Ci0jaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9qaXQucHVzaChYODZS
ZWdpc3RlcnM6OmVicCk7Ci0gICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVicCk7CisgICAgICAgIG1faml0LmVtaXRG
dW5jdGlvblByb2xvZ3VlKCk7CiAKKyNpZiBDUFUoWDg2XzY0KQogICAgICAgICBpZiAobV9wYXR0
ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucHVzaChYODZS
ZWdpc3RlcnM6OmVieCk7CiAKQEAgLTM5ODcsMzEgKzM5ODMsMTYgQEAgY2xhc3MgWWFyckdlbmVy
YXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgICAgIH0KICNpZiBPUyhXSU5E
T1dTKQogICAgICAgICBpZiAobV9jb21waWxlTW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVk
ZVN1YnBhdHRlcm5zKQotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNiAqIHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0
cHV0KTsKKyAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
TWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCA2ICogc2l6ZW9mKHZvaWQqKSks
IG1fcmVncy5vdXRwdXQpOwogICAgICAgICAvLyByY3ggaXMgdGhlIHBvaW50ZXIgdG8gdGhlIGFs
bG9jYXRlZCBzcGFjZSBmb3IgcmVzdWx0IGluIHg2NCBXaW5kb3dzLgogICAgICAgICBtX2ppdC5w
dXNoKFg4NlJlZ2lzdGVyczo6ZWN4KTsKICNlbmRpZgotI2VsaWYgQ1BVKEFSTTY0KQotICAgICAg
ICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKLSAgICAgICAgICAgIG1faml0LnRhZ1JldHVy
bkFkZHJlc3MoKTsKLSAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKLSAgICAg
ICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAgICAgICAgIG1faml0
LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3Nl
bWJsZXI6OmxpbmtSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCksIG1fcmVncy5zdXBwbGVtZW50YXJ5UGxhbmVzQmFz
ZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHhkODAwKSwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpOwotICAgICAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCksIG1fcmVncy50cmFpbGlu
Z1N1cnJvZ2F0ZVRhZyk7Ci0gICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQogICAgICAg
ICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJl
Z2lzdGVyczo6cjUpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYpOwogICAg
ICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjgpOwogICAgICAgICBtX2ppdC5wdXNoKEFS
TVJlZ2lzdGVyczo6cjEwKTsKLSNlbGlmIENQVShSSVNDVjY0KQotICAgICAgICBpZiAobV9kZWNv
ZGVTdXJyb2dhdGVQYWlycykKLSAgICAgICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1i
bGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7
Ci0jZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8gbm90aGluZy4KICNlbmRpZgogICAgIH0K
IApAQCAtNDA1MiwyNyArNDAzMywyMSBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVi
bGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxT
dGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKLSAg
ICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSNlbGlmIENQVShBUk02NCkKLSAg
ICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKLSAgICAgICAgICAgIGlmICghT3B0
aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAgICAgICAgIG1faml0LnBvcFBhaXIoTWFjcm9B
c3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lz
dGVyKTsKLSAgICAgICAgfQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgICAgIG1faml0LnBv
cChBUk1SZWdpc3RlcnM6OnIxMCk7CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI4
KTsKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjYpOwogICAgICAgICBtX2ppdC5w
b3AoQVJNUmVnaXN0ZXJzOjpyNSk7CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI0
KTsKLSNlbGlmIENQVShSSVNDVjY0KQotICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWly
cykKLSAgICAgICAgICAgIG1faml0LnBvcFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRl
clJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBT
KQotICAgICAgICAvLyBEbyBub3RoaW5nCiAjZW5kaWYKKworICAgIG1faml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CisKICNpZiBDUFUoQVJNNjRFKQotICAgICAgICBpZiAoT3B0aW9uczo6dXNl
SklUQ2FnZSgpKQorICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKSB7CisgICAgICAg
ICAgICBtX2ppdC51bnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgICAgIG1faml0LmZhckp1
bXAoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVu
Y3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRBZnRlcikpLCBP
cGVyYXRpb25QdHJUYWcpOworICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1f
aml0LnJldCgpOwogI2Vsc2UKQEAgLTQwODYsNyArNDA2MSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0
b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgIH0KIAogcHVibGljOgotICAgIFlh
cnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0
dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklU
Q29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMm
IGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJK
SVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJu
U3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAg
ICAgICAgIDogbV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2Rl
QmxvY2soY29kZUJsb2NrKQpAQCAtNDEwNSw3ICs0MDgwLDcgQEAgcHVibGljOgogICAgICAgICBt
X2JveWVyTW9vcmVEYXRhID0gc3RhdGljX2Nhc3Q8WWFyckJveWVyTW95ZXJEYXRhKj4obV9jb2Rl
QmxvY2spOwogICAgIH0KIAotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwg
Y29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJK
SVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJu
U3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisg
ICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95
ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0
dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFy
U2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQog
ICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2sobnVsbHB0cikKQEAgLTQx
OTEsMTcgKzQxNjYsMzEgQEAgcHVibGljOgogICAgICAgICBpZiAoY2FsbEZyYW1lU2l6ZUluQnl0
ZXMpIHsKICAgICAgICAgICAgIC8vIENoZWNrIHN0YWNrIHNpemUKICAgICAgICAgICAgIG1faml0
LmFkZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jYWxsRnJhbWVTaXplSW5CeXRl
cyksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbV9yZWdzLnJlZ1QwKTsK
LSNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdD
b250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1f
cmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250
ZXh0KTsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAgICAgICAgICAgIC8v
IG1hdGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUg
c3RhY2suCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0Nv
bnRleHQgPSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNCAq
IHNpemVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOworCisgICAgICAgICAgICAvLyBNYWtl
IHN1cmUgdGhhdCB0aGUgSklUZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0
IHRoZSA1dGggYXJndW1lbnQgaXMgYSBNYXRjaGluZ0NvbnRleHRIb2xkZXIqCisgICAgICAgICAg
ICAvLyBUT0RPOiBDYW4gdGhpcyBiZSBhIGxhbWJhPworI2RlZmluZSBGVU5DVElPTkNIRUNLUyhm
dW5jKSBcCisgICAgICAgICAgICBkbyB7IFwKKyAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0
KEZ1bmN0aW9uVHJhaXRzPGZ1bmM+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRh
a2VzIDUgYXJndW1lbnRzIik7IFwKKyAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6
aXNfc2FtZTxNYXRjaGluZ0NvbnRleHRIb2xkZXIqLCBGdW5jdGlvblRyYWl0czxmdW5jPjo6QXJn
dW1lbnRUeXBlPDQ+Pjo6dmFsdWUsICJNYXRjaGluZ0NvbnRleHRIb2xkZXIqIGlzIGV4cGVjdGVk
IGFzIHRoZSBmdW5jdGlvbiA1dGggYXJndW1lbnQiKTsgXAorICAgICAgICAgICAgfSB3aGlsZSAo
ZmFsc2UpCisKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2RlQmxvY2s6OllhcnJK
SVRDb2RlOCk7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29kZUJsb2NrOjpZYXJy
SklUQ29kZTE2KTsKKyAgICAgICAgICAgIEZVTkNUSU9OQ0hFQ0tTKFlhcnJDb2RlQmxvY2s6Ollh
cnJKSVRDb2RlTWF0Y2hPbmx5OCk7CisgICAgICAgICAgICBGVU5DVElPTkNIRUNLUyhZYXJyQ29k
ZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2KTsKKworI3VuZGVmIEZVTkNUSU9OQ0hFQ0tT
CisKKyNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTIDwgNXUKKyAgICAgICAgICAgIEdQ
UlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2ppdC5nZXRBcmd1bWVudEdQUjxZYXJyQ29kZUJsb2Nr
OjpZYXJySklUQ29kZTgsIDQ+KG1fcmVncy5yZWdUMSk7CisgICAgICAgICAgICBBU1NFUlQobWF0
Y2hpbmdDb250ZXh0ID09IG1fcmVncy5yZWdUMSk7CiAjZWxzZQotICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLm1hdGNoaW5nQ29u
dGV4dDsKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2ppdC5nZXRBcmd1
bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgsIDQ+KCk7CisgICAgICAgICAgICBB
U1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5tYXRjaGluZ0NvbnRleHQpOwogI2VuZGlm
CisgICAgICAgICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5tYXRjaGluZ0Nv
bnRleHQpOworCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdGFja09rID0gbV9q
aXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvd09yRXF1YWwsIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKG1hdGNoaW5nQ29udGV4dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpvZmZzZXRP
ZlN0YWNrTGltaXQoKSksIG1fcmVncy5yZWdUMCk7CiAKICAgICAgICAgICAgIC8vIEV4Y2VlZGVk
IHN0YWNrIGxpbWl0LCBwdW50IHRvIHRoZSBpbnRlcnByZXRlci4KQEAgLTQ2MTgsNyArNDYwNyw3
IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTWFjcm9Bc3NlbWJsZXImIG1faml0
OworICAgIENDYWxsSGVscGVycyYgbV9qaXQ7CiAgICAgY29uc3QgVk0qIG1fdm07CiAgICAgWWFy
ckNvZGVCbG9jayogbV9jb2RlQmxvY2s7CiAgICAgWWFyckJveWVyTW95ZXJEYXRhKiBtX2JveWVy
TW9vcmVEYXRhOwpAQCAtNDcwNiw3ICs0Njk1LDcgQEAgc3RhdGljIHZvaWQgZHVtcENvbXBpbGVG
YWlsdXJlKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKIAogdm9pZCBqaXRDb21waWxlKFlhcnJQ
YXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXpl
LCBWTSogdm0sIFlhcnJDb2RlQmxvY2smIGNvZGVCbG9jaywgSklUQ29tcGlsZU1vZGUgbW9kZSkK
IHsKLSAgICBNYWNyb0Fzc2VtYmxlciBtYXNtOworICAgIENDYWxsSGVscGVycyBtYXNtOwogCiAg
ICAgQVNTRVJUKG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Ok1hdGNoT25seSB8fCBtb2RlID09IEpJ
VENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpOwogCkBAIC00NzI3LDcgKzQ3MTYsNyBA
QCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVyblN0
cmluZywgQ2hhclNpemUgY2hhclNpemUsCiAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIGlubGluZWQg
SklUJ2luZyBvZiBSZWdFeHAudGVzdCBmb3IgdGhpcyBDUFUgLyBPUyBjb21iaW5hdGlvbi4iCiAj
ZW5kaWYKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxh
dGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRp
b25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZt
LCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBNYWNyb0Fzc2VtYmxlciYgaml0
LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCit2b2lkIGppdENvbXBpbGVJbmxpbmVk
VGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBjb25zdCBT
dHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3MsIENoYXJT
aXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95ZXJNb29y
ZURhdGEsIENDYWxsSGVscGVycyYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMp
CiB7CiAgICAgWWFycjo6RXJyb3JDb2RlIGVycm9yQ29kZTsKICAgICBZYXJyOjpZYXJyUGF0dGVy
biBwYXR0ZXJuKHBhdHRlcm5TdHJpbmcsIGZsYWdzLCBlcnJvckNvZGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyckpJVC5oCmluZGV4IDI4OWQ2ZTgxZmU1MTdhYWRmYmU0OThkMTg1ZTMwNzIw
NWU2YTA3MzMuLjJiYzM3Mzk1NjQxMGRiYzRjOTVkN2RlMmZjZjhlOTZjMzY1ZDNmZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKQEAgLTQzLDkgKzQzLDEwIEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1jbGFzcyBWTTsKK2NsYXNzIENDYWxsSGVscGVyczsKIGNsYXNzIEV4ZWN1
dGFibGVQb29sOwogY2xhc3MgTWFjcm9Bc3NlbWJsZXI7CitjbGFzcyBWTTsKIAogbmFtZXNwYWNl
IFlhcnIgewogCkBAIC0yNzEsMTIgKzI3MiwxMyBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIDogcHVi
bGljIFlhcnJCb3llck1veWVyRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWWFyckNvZGVCbG9jayk7CiAKLSAgICB1c2luZyBZYXJy
SklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQ
VVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZ
YXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQs
IFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1h
dGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNp
bmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBM
Q2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9p
ZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0g
ICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKiko
Y29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5n
dGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9D
QUxMOwotCiBwdWJsaWM6CisKKyAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVy
blR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVn
aXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGlu
Z0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhS
ZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQ
VVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0
Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4
ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3Rl
ciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRj
aE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOworCiAgICAgWWFyckNvZGVCbG9j
aygpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNvbihK
SVRGYWlsdXJlUmVhc29uIGZhaWx1cmVSZWFzb24pIHsgbV9mYWlsdXJlUmVhc29uID0gZmFpbHVy
ZVJlYXNvbjsgfQpAQCAtMzI2LDcgKzMyOCw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVTdGF0cyYg
Z2V0OEJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gbV9tYXRjaE9ubHk4U3RhdHM7IH0KICAgICBJ
bmxpbmVTdGF0cyYgZ2V0MTZCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuICBtX21hdGNoT25seTE2
U3RhdHM7IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25z
dCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0
cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChoYXM4Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzM2LDcgKzMz
OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9u
UHRyPFlhcnJKSVRDb2RlOCwgWWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0
KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNv
bnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBv
dXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAg
ICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzQ2LDcg
KzM0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0
aW9uUHRyPFlhcnJKSVRDb2RlMTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYxNi5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdD
b250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciog
aW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhv
bGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENo
YXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0
Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzU2LDcgKzM1OCw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJK
SVRDb2RlTWF0Y2hPbmx5OCwgWWFyck1hdGNoT25seThCaXRQdHJUYWc+KG1fbWF0Y2hPbmx5OC5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51bGxwdHIs
IG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29u
c3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRl
KGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NF
UlQoaGFzMTZCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC00MzksNyAr
NDQxLDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiwgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSwgVk0qLCBZYXJyQ29kZUJsb2MKIAogY2xhc3MgWWFyckpJVFJlZ2lzdGVy
czsKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmlu
ZyYsIE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3ll
ck1veWVyRGF0YSYsIE1hY3JvQXNzZW1ibGVyJiwgWWFyckpJVFJlZ2lzdGVycyYpOwordm9pZCBq
aXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlvblNl
dDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0YSYs
IENDYWxsSGVscGVycyYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKICNlbmRpZgogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyckpJVFJlZ2lzdGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJl
Z2lzdGVycy5oCmluZGV4IGJiODIxY2U4NjdmZTM4ZTI4ZjM1Y2U3MDZiOWJjNjA5OTQyZjc5YjQu
LjE3YWIxYzUyZGJjNGNjZGJkNmE5OGQ0MzFiYmJkMTQ5YTYxNDYzNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgKQEAgLTM1LDYgKzM1LDEyIEBA
IG5hbWVzcGFjZSBZYXJyIHsKIAogc3RydWN0IFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzIHsKIHB1
YmxpYzoKKworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MiBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHgxMDAwMCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4
ZDgwMCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
IHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRj
MDApOworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBz
dXJyb2dhdGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAw
KTsKKwogI2lmIENQVShBUk1fVEhVTUIyKQogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlu
cHV0ID0gQVJNUmVnaXN0ZXJzOjpyMDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRl
eCA9IEFSTVJlZ2lzdGVyczo6cjE7CkBAIC03MCwxNSArNzYsMTAgQEAgcHVibGljOgogICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsID0gQVJNNjRSZWdp
c3RlcnM6OngxMDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB1bmljb2RlVGVtcCA9IEFS
TTY0UmVnaXN0ZXJzOjp4NTsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbml0aWFsU3Rh
cnQgPSBBUk02NFJlZ2lzdGVyczo6eDExOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHN1
cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gQVJNNjRSZWdpc3RlcnM6OngxMjsKLSAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBsZWFkaW5nU3Vycm9nYXRlVGFnID0gQVJNNjRSZWdpc3RlcnM6Ongx
MzsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IEFS
TTY0UmVnaXN0ZXJzOjp4MTQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgZW5kT2ZTdHJp
bmdBZGRyZXNzID0gQVJNNjRSZWdpc3RlcnM6OngxNTsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIg
R1BSUmVnIHJldHVyblJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OngwOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsKLQot
ICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dh
dGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKICNl
bGlmIENQVShNSVBTKQogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gTUlQU1Jl
Z2lzdGVyczo6YTA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBNSVBTUmVn
aXN0ZXJzOjphMTsKQEAgLTEzNywxMSArMTM4LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVheDsKICAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBYODZSZWdpc3RlcnM6OmVk
eDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBz
dXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgx
MDAwMCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
IGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgw
MCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRy
YWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDAp
OwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJy
b2dhdGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsK
ICNlbGlmIENQVShSSVNDVjY0KQogICAgIC8vIEFyZ3VtZW50IHJlZ2lzdGVycwogICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDEwOwpAQCAtMTY0
LDExICsxNjAsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1
cm5SZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMDsKICAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTE7Ci0KLSAgICBz
dGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFy
eVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwotICAg
IHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vy
cm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOwotICAgIHN0
YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJv
Z2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKLSAgICBzdGF0
aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFz
ayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiAjZW5kaWYKIH07
CiAKQEAgLTIwNiw2ICsxOTcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMHgxMDAwMCk7CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigw
eGQ4MDApOwogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxpbmdT
dXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7CisgICAg
Y29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKIH07CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhv
bGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhv
bGRlci5oCmluZGV4IDEzOWQxZmUzNWI1NzVjNzBhMDVhN2U3NzI1ZGQ5ZmExZWZiNjYwMWUuLjFh
ZjgzMDk4MmZmNTdmMmE5M2I2NjE3OTM4ZDJkYmM1ZGVjOGExNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKQEAg
LTM3LDEyICszNywxMCBAQCBjbGFzcyBSZWdFeHA7CiAKIG5hbWVzcGFjZSBZYXJyIHsKIAotY2xh
c3MgWWFyckNvZGVCbG9jazsKLQogY2xhc3MgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIHsKICAgICBX
VEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKLSAgICBNYXRjaGluZ0NvbnRleHRI
b2xkZXIoVk0mLCBZYXJyQ29kZUJsb2NrKiwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKKyAgICBNYXRj
aGluZ0NvbnRleHRIb2xkZXIoVk0mLCBib29sLCBSZWdFeHAqLCBNYXRjaEZyb20pOwogICAgIH5N
YXRjaGluZ0NvbnRleHRIb2xkZXIoKTsKIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZT
dGFja0xpbWl0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE1hdGNoaW5nQ29udGV4dEhvbGRl
ciwgbV9zdGFja0xpbWl0KTsgfQpAQCAtNjEsNyArNTksNyBAQCBwcml2YXRlOgogICAgIE1hdGNo
RnJvbSBtX21hdGNoRnJvbTsKIH07CiAKLWlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDb2RlQmxvY2ss
IFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQoraW5saW5lIE1hdGNoaW5nQ29u
dGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgYm9vbCB1c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXIsIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQogICAg
IDogbV92bSh2bSkKICAgICAsIG1fbWF0Y2hGcm9tKG1hdGNoRnJvbSkKIHsKQEAgLTc0LDEyICs3
MiwxMiBAQCBpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xk
ZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQwogICAgIH0KIAogI2lmIEVOQUJMRShZQVJS
X0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQotICAgIGlmICh5YXJyQ29kZUJsb2NrICYmIHlh
cnJDb2RlQmxvY2stPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpKSB7CisgICAgaWYgKHVzZXNQ
YXR0ZXJuQ29udGV4dEJ1ZmZlcikgewogICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyID0g
bV92bS5hY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogICAgICAgICBtX3BhdHRl
cm5Db250ZXh0QnVmZmVyU2l6ZSA9IFZNOjpwYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemU7CiAgICAg
fQogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oeWFyckNvZGVCbG9jayk7CisgICAgVU5VU0VEX1BB
UkFNKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik7CiAjZW5kaWYKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449060</attachid>
            <date>2022-01-13 07:53:54 -0800</date>
            <delta_ts>2022-01-13 09:14:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220113155352.patch</filename>
            <type>text/plain</type>
            <size>33784</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLmIyOTliMDM5
ZWIxYWE4NGY0NzVkZDEzMzk3MzQ1Nzc2MDcyYTc1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtNjQ4LDcgKzY0OCw2IEBAIHByaXZhdGU6CiAgICAgfQog
CiAjdW5kZWYgQ1VSUkVOVF9BUkdVTUVOVF9UWVBFCi0jdW5kZWYgUkVTVUxUX1RZUEUKIAogICAg
IC8vIEJhc2UgY2FzZTsgc2V0IHVwIHRoZSBhcmd1bWVudCByZWdpc3RlcnMuCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQg
bnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNl
cywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2ln
bmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZT4KQEAgLTk5Miw2ICs5OTEsNjAgQEAg
cHVibGljOgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVy
YXRpb25UeXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0KKworcHJpdmF0ZToKKwor
ICAgIC8vIEluIGNhc2Ugd2UgYXJlIHRyeWluZyB0byBnZXQgdGhlIGFyZ3VtZW50IGZyb20gYSBm
dW5jdGlvbiBidXQgdGhlcmUgaXNuJ3QgZW5vdWdoIHJlZ2lzdGVycywgdGhpcworICAgIC8vIGZ1
bmN0aW9uIHRyaWVzIHRvIGxvYWQgaXQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNwLiBJbiBv
cmRlciBmb3IgdGhpcyB0byB3b3JrLCB0aGUgZnJhbWUgcG9pbnRlcgorICAgIC8vIG11c3QgYmUg
c2V0IGluIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPcGVy
YXRpb25UeXBlLCB1bnNpZ25lZCBBcmdOdW0+CisgICAgY29uc3RleHByIEdQUlJlZyBsb2FkQXJn
dW1lbnRGcm9tU3RhY2soR1BSUmVnIHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQo
c2NyYXRjaEdQUiAhPSBHUFJSZWc6OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRv
IGxvYWQgdGhpcyBhcmd1bWVudCIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBO
VU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1
bWVudEdQUlgiKTsKKworICAgICAgICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0
Y2hHUFIgZnJvbSB0aGUgc3RhY2sgdGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0
IHRoZSBmdW5jdGlvbiBwcm9sb2d1ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUg
YXJndW1lbnQgd2lsbCBiZSBwbGFjZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAt
IE51bWJlci1vZi1hcmctcmVncywgZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBv
biBBUk12NyB3aWxsIGJlIHBsYWNlZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVv
ZihwdHIqKSwgaG93ZXZlciwgdGhhdCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8g
UE9LRV9BUkdVTUVOVF9PRkZTRVQ6IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyBy
ZXNlcnZlZCBvbiB0aGUgc3RhY2sgZm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAg
ICAgIC8vIGFyY2hzLCBhICs0IG9mZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBN
SVBTIGlzIGZwICsgNiAqIHNpemVvZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zm
c2V0OiBXaW5kb3dzIHg4NiBvbmx5LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1i
aXRzLCBpdCdzIHJldHVybmVkIHZpYSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNz
ZWQgYXMgYW4gaW1wbGljaXQgZmlyc3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRz
IGFyZSBzaGlmdGVkIHRvIHRoZSByaWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAv
LyBUaGUgNXRoIGFyZ3VtZW50IG9uIFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAg
KyA3ICogc2l6ZW9mKHB0ciopLgorCisgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRyZXNz
T2Zmc2V0ID0gMjsKKyNpZiBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25z
dGV4cHIgaW50IHJldHVyblR5cGVPZmZzZXQgPSBzaXplb2YoUkVTVUxUX1RZUEUpID49IDg7Cisg
ICAgICAgIGNvbnN0ZXhwciBpbnQgb2Zmc2V0ID0gQXJnTnVtIC0gTlVNQkVSX09GX0FSR1VNRU5U
X1JFR0lTVEVSUyArIFBPS0VfQVJHVU1FTlRfT0ZGU0VUICsgcmV0dXJuQWRyZXNzT2Zmc2V0ICsg
cmV0dXJuVHlwZU9mZnNldDsKKyNlbHNlCisgICAgICAgIGNvbnN0ZXhwciBpbnQgb2Zmc2V0ID0g
QXJnTnVtIC0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyArIFBPS0VfQVJHVU1FTlRfT0ZG
U0VUICsgcmV0dXJuQWRyZXNzT2Zmc2V0OworI2VuZGlmCisgICAgICAgIGxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBv
ZmZzZXQgKiBzaXplb2Yodm9pZCopKSwgc2NyYXRjaEdQUik7CisgICAgICAgIHJldHVybiBzY3Jh
dGNoR1BSOworICAgIH0KKworI3VuZGVmIFJFU1VMVF9UWVBFCisKK3B1YmxpYzoKKworICAgIC8v
IEdpdmVuIGEgZnVuY3Rpb24gYW5kIGFuIGFyZ3VtZW50IG51bWJlciwgZWl0aGVyIHRoaXMgZnVu
Y3Rpb24gcmV0dXJucyB0aGUgYXJndW1lbnRHUFIgaG9sZGluZyB0aGUgYXJndW1lbnQKKyAgICAv
LyBvciBpdCB0cmllcyB0byBsb2FkIHRoZSBhcmd1bWVudCBmcm9tIHRoZSBzdGFjayB1c2luZyB0
aGUgc2NyYXRjaEdQUiBwYXNzZWQgYXMgYXJndW1lbnQuCisgICAgLy8gTm90ZSB0aGF0IHdlIHVz
ZSAwIGZvciB0aGUgMXN0IGFyZ3VtZW50LCAxIGZvciB0aGUgMm5kLCBldGMuCisgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHVuc2lnbmVkIEFyZ051bT4KKyAgICBjb25zdGV4
cHIgR1BSUmVnIGdldEFyZ3VtZW50R1BSKEdQUlJlZyBzY3JhdGNoR1BSID0gR1BSUmVnOjpJbnZh
bGlkR1BSUmVnKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChBcmdOdW0gPD0gMjU1LCAi
QysrIHN0YW5kYXJkIGZvcmJpcyBmdW5jdGlvbnMgd2l0aCBtb3JlIHRoYW4gMjU2IGFyZ3VtZW50
cyIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+
OjpjQ2FsbEFyaXR5KCkgPiBBcmdOdW0sICJGdW5jdGlvbiBkb2VzIG5vdCBoYXZlIGVub3VnaCBh
cmd1bWVudHMiKTsKKworICAgICAgICBpZiBjb25zdGV4cHIgKEFyZ051bSA+PSBOVU1CRVJfT0Zf
QVJHVU1FTlRfUkVHSVNURVJTKQorICAgICAgICAgICAgcmV0dXJuIGxvYWRBcmd1bWVudEZyb21T
dGFjazxPcGVyYXRpb25UeXBlLCBBcmdOdW0+KHNjcmF0Y2hHUFIpOworCisgICAgICAgIFVOVVNF
RF9QQVJBTShzY3JhdGNoR1BSKTsgLy8gT3RoZXJ3aXNlIHdhcm5pbmcgZHVlIHRvIGNvbnN0ZXhw
cgorICAgICAgICByZXR1cm4gR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKEFyZ051bSk7Cisg
ICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0dQUkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5m
by5oCmluZGV4IDUyYTEzYWFhZmI3N2I2ZTQ0ZmE3ZWIxOTJiMDY4NDNjMmNjYjkyMjYuLjYwYTVi
ZWUxNWI4MjIwNzY0NjUxMjBkZjc0ZTk0MDhkNzhiYzdjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvR1BSSW5mby5oCkBAIC02MjYsNyArNjI2LDcgQEAgY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6
CiAgICAgdHlwZWRlZiBHUFJSZWcgUmVnaXN0ZXJUeXBlOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxNjsKLSAgICBzdGF0aWMgY29uc3RleHByIHVu
c2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVO
VF9SRUdJU1RFUlM7CiAKICAgICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5l
IEpJVC4KICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IEFS
TTY0UmVnaXN0ZXJzOjpmcDsKQEAgLTgyNSw3ICs4MjUsNyBAQCBjbGFzcyBHUFJJbmZvIHsKIHB1
YmxpYzoKICAgICB0eXBlZGVmIEdQUlJlZyBSZWdpc3RlclR5cGU7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDEzOwotICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FS
R1VNRU5UX1JFR0lTVEVSUzsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFt
ZVJlZ2lzdGVyID0gUklTQ1Y2NFJlZ2lzdGVyczo6ZnA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBH
UFJSZWcgbnVtYmVyVGFnUmVnaXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MjU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmVi
MWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRi
NGFkMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0
OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVnRXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIo
Y29uc3QgU3RyaW5nJiBzLCBpbnQgc3RhcnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEpJVENvZGU6IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxv
Y2smIGNvZGVCbG9jayA9ICptX3JlZ0V4cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnBy
aW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkp
OwotICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6
ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQx
NkJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNo
QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50Zihq
aXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAg
ICAgc25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQ
Ukl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRj
aE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNu
cHJpbnRmKGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkp
OworICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAi
MHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdl
dDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElu
bGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApp
bmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi4wYTA5MTc4ZTZm
OWE5NDM5MWEwZGYxZDAxYzM5ZTVjZWNhZGZiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNf
SU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9i
YWxPYmplY3QsIFZNJiB2bQogICAgIGlmIChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAg
ewogICAgICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2Rl
LmdldCgpLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5D
b250ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlz
OEJpdCgpKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0
ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3Is
IHJlZ0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhw
SklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgp
LCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFy
YWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhw
Q29udGV4dCkuc3RhcnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2Rl
LT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZz
ZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlm
IChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29k
ZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyArMTQ2LDcgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhw
OjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0K
ICAgICAgICAgICAgIGlmIChtX3N0YXRlID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoKTsKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywg
bWF0Y2hGcm9tKTsKKyAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyOiAqLyBmYWxzZSwg
dGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnBy
ZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nh
c3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtMTYyLDcgKzE2Miw3IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUo
SlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAj
ZW5kaWYKICAgICB7Ci0gICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBD
b250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICBZYXJyOjpNYXRj
aGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgLyogdXNlc1BhdHRlcm5Db250ZXh0
QnVmZmVyOiAqLyBmYWxzZSwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFy
cjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWlu
dGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYs
MTIgKzI2NiwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxp
bmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAgICAgICBNYXRjaFJlc3Vs
dCByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUp
OwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
IFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJ
VENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAg
ICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5n
dGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBK
SVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCks
ICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1
bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZz
ZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9
IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwg
cy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVH
RVhQX1RSQUNJTkcpCkBAIC0yOTUsNyArMjk1LDcgQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3Vs
dCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QK
ICAgICBub25SZXR1cm5lZE92ZWN0b3IuZ3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZz
ZXRWZWN0b3IgPSBub25SZXR1cm5lZE92ZWN0b3IuZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFy
cjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMs
IG1hdGNoRnJvbSk7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBD
b250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBt
YXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRl
Y29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihv
ZmZzZXRWZWN0b3IpKTsKICAgICB9CiAjaWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4MjRkY2Yy
ZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi5mYzYyZmZhY2EzYmY2ZTk5NjY3ZTkxZTEwYTg1ZGM0YTdl
ZWZiNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAorI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKQEAgLTE4NiwxMCArMTg3LDYgQEAgc3RkOjp0
dXBsZTxCb3llck1vb3JlQml0bWFwOjpNYXAsIEJveWVyTW9vcmVGYXN0Q2FuZGlkYXRlcz4gQm95
ZXJNb29yZUluZm86OmNyZWEKIHRlbXBsYXRlPGNsYXNzIFlhcnJKSVRSZWdzID0gWWFyckpJVERl
ZmF1bHRSZWdpc3RlcnM+CiBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJK
SVRJbmZvIHsKIAotI2lmZGVmICBKSVRfVU5JQ09ERV9FWFBSRVNTSU9OUwotICAgIGNvbnN0IE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShZQVJS
X0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQogICAgIHN0cnVjdCBQYXJlbkNvbnRleHRTaXpl
cyB7CiAgICAgICAgIHNpemVfdCBtX251bVN1YnBhdHRlcm5zOwpAQCAtNjAzLDcgKzYwMCw3IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgICAg
ICBtX2ppdC5sb2FkMTZVbmFsaWduZWQoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9yZWdzLnJl
Z1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwgcmVzdWx0UmVnKTsKIAogICAgICAgICAvLyBJcyB0aGUg
Y2hhcmFjdGVyIGEgbGVhZGluZyBzdXJyb2dhdGU/Ci0gICAgICAgIG1faml0LmFuZDMyKFlhcnJK
SVREZWZhdWx0UmVnaXN0ZXJzOjpzdXJyb2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51
bmljb2RlVGVtcCk7CisgICAgICAgIG1faml0LmFuZDMyKG1fcmVncy5zdXJyb2dhdGVUYWdNYXNr
LCByZXN1bHRSZWcsIG1fcmVncy51bmljb2RlVGVtcCk7CiAgICAgICAgIG5vdFVuaWNvZGUuYXBw
ZW5kKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgbV9yZWdzLnVuaWNv
ZGVUZW1wLCBtX3JlZ3MubGVhZGluZ1N1cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8vIElzIHRo
ZSBpbnB1dCBsb25nIGVub3VnaCB0byByZWFkIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwpAQCAtNjEy
LDcgKzYwOSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVElu
Zm8gewogCiAgICAgICAgIC8vIElzIHRoZSBjaGFyYWN0ZXIgYSB0cmFpbGluZyBzdXJyb2dhdGU/
CiAgICAgICAgIG1faml0LmxvYWQxNlVuYWxpZ25lZChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyht
X3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5k
VHJhaWwpOwotICAgICAgICBtX2ppdC5hbmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVyczo6c3Vy
cm9nYXRlVGFnTWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5p
Y29kZVRlbXApOworICAgICAgICBtX2ppdC5hbmQzMihtX3JlZ3Muc3Vycm9nYXRlVGFnTWFzaywg
bV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXApOwogICAg
ICAgICBub3RVbmljb2RlLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90
RXF1YWwsIG1fcmVncy51bmljb2RlVGVtcCwgbV9yZWdzLnRyYWlsaW5nU3Vycm9nYXRlVGFnKSk7
CiAKICAgICAgICAgLy8gQ29tYmluZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzdXJyb2dhdGVzIHRv
IHByb2R1Y2UgYSBjb2RlIHBvaW50LgpAQCAtMzk2MSwxMCArMzk1OCw5IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgdm9pZCBnZW5lcmF0
ZUVudGVyKCkKICAgICB7Ci0jaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAgbV9qaXQucHVzaChYODZS
ZWdpc3RlcnM6OmVicCk7Ci0gICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNr
UG9pbnRlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVicCk7CisgICAgICAgIG1faml0LmVtaXRG
dW5jdGlvblByb2xvZ3VlKCk7CiAKKyNpZiBDUFUoWDg2XzY0KQogICAgICAgICBpZiAobV9wYXR0
ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucHVzaChYODZS
ZWdpc3RlcnM6OmVieCk7CiAKQEAgLTM5ODcsMzEgKzM5ODMsMTYgQEAgY2xhc3MgWWFyckdlbmVy
YXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgICAgIH0KICNpZiBPUyhXSU5E
T1dTKQogICAgICAgICBpZiAobV9jb21waWxlTW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVk
ZVN1YnBhdHRlcm5zKQotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNiAqIHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0
cHV0KTsKKyAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
TWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCA2ICogc2l6ZW9mKHZvaWQqKSks
IG1fcmVncy5vdXRwdXQpOwogICAgICAgICAvLyByY3ggaXMgdGhlIHBvaW50ZXIgdG8gdGhlIGFs
bG9jYXRlZCBzcGFjZSBmb3IgcmVzdWx0IGluIHg2NCBXaW5kb3dzLgogICAgICAgICBtX2ppdC5w
dXNoKFg4NlJlZ2lzdGVyczo6ZWN4KTsKICNlbmRpZgotI2VsaWYgQ1BVKEFSTTY0KQotICAgICAg
ICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKLSAgICAgICAgICAgIG1faml0LnRhZ1JldHVy
bkFkZHJlc3MoKTsKLSAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKLSAgICAg
ICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAgICAgICAgIG1faml0
LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3Nl
bWJsZXI6OmxpbmtSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCksIG1fcmVncy5zdXBwbGVtZW50YXJ5UGxhbmVzQmFz
ZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHhkODAwKSwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpOwotICAgICAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCksIG1fcmVncy50cmFpbGlu
Z1N1cnJvZ2F0ZVRhZyk7Ci0gICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQogICAgICAg
ICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJl
Z2lzdGVyczo6cjUpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYpOwogICAg
ICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjgpOwogICAgICAgICBtX2ppdC5wdXNoKEFS
TVJlZ2lzdGVyczo6cjEwKTsKLSNlbGlmIENQVShSSVNDVjY0KQotICAgICAgICBpZiAobV9kZWNv
ZGVTdXJyb2dhdGVQYWlycykKLSAgICAgICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1i
bGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7
Ci0jZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8gbm90aGluZy4KICNlbmRpZgogICAgIH0K
IApAQCAtNDA1MiwyNyArNDAzMywyMSBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVi
bGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxT
dGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKLSAg
ICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSNlbGlmIENQVShBUk02NCkKLSAg
ICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKLSAgICAgICAgICAgIGlmICghT3B0
aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAgICAgICAgIG1faml0LnBvcFBhaXIoTWFjcm9B
c3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lz
dGVyKTsKLSAgICAgICAgfQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgICAgIG1faml0LnBv
cChBUk1SZWdpc3RlcnM6OnIxMCk7CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI4
KTsKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjYpOwogICAgICAgICBtX2ppdC5w
b3AoQVJNUmVnaXN0ZXJzOjpyNSk7CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI0
KTsKLSNlbGlmIENQVShSSVNDVjY0KQotICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWly
cykKLSAgICAgICAgICAgIG1faml0LnBvcFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRl
clJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBT
KQotICAgICAgICAvLyBEbyBub3RoaW5nCiAjZW5kaWYKKworICAgIG1faml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CisKICNpZiBDUFUoQVJNNjRFKQotICAgICAgICBpZiAoT3B0aW9uczo6dXNl
SklUQ2FnZSgpKQorICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKSB7CisgICAgICAg
ICAgICBtX2ppdC51bnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgICAgIG1faml0LmZhckp1
bXAoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVu
Y3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRBZnRlcikpLCBP
cGVyYXRpb25QdHJUYWcpOworICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1f
aml0LnJldCgpOwogI2Vsc2UKQEAgLTQwODYsNyArNDA2MSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0
b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgIH0KIAogcHVibGljOgotICAgIFlh
cnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0
dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklU
Q29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMm
IGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJK
SVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJu
U3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAg
ICAgICAgIDogbV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2Rl
QmxvY2soY29kZUJsb2NrKQpAQCAtNDEwNSw3ICs0MDgwLDcgQEAgcHVibGljOgogICAgICAgICBt
X2JveWVyTW9vcmVEYXRhID0gc3RhdGljX2Nhc3Q8WWFyckJveWVyTW95ZXJEYXRhKj4obV9jb2Rl
QmxvY2spOwogICAgIH0KIAotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwg
Y29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJK
SVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJu
U3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisg
ICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95
ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0
dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFy
U2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQog
ICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2sobnVsbHB0cikKQEAgLTQx
MzksNiArNDExNCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fY29tcGlsYXRpb25UaHJlYWRTdGFj
a0NoZWNrZXIgPSBzdGFja0NoZWNrZXI7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
T3BlcmF0aW9uVHlwZT4KKyAgICBzdGF0aWMgY29uc3RleHByIHZvaWQgZnVuY3Rpb25DaGVja3Mo
KQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxPcGVyYXRpb25U
eXBlPjo6Y0NhbGxBcml0eSgpID09IDUsICJZYXJySklUQ29kZSB0YWtlcyA1IGFyZ3VtZW50cyIp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxNYXRjaGluZ0NvbnRleHRIb2xk
ZXIqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6dGVtcGxhdGUgQXJn
dW1lbnRUeXBlPDQ+Pjo6dmFsdWUsICJNYXRjaGluZ0NvbnRleHRIb2xkZXIqIGlzIGV4cGVjdGVk
IGFzIHRoZSBmdW5jdGlvbiA1dGggYXJndW1lbnQiKTsKKyAgICB9CisKICAgICB2b2lkIGNvbXBp
bGUoWWFyckNvZGVCbG9jayYgY29kZUJsb2NrKQogICAgIHsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsIHN0YXJ0T2ZNYWluQ29kZTsKQEAgLTQxOTEsMTcgKzQxNzMsMjIgQEAgcHVibGlj
OgogICAgICAgICBpZiAoY2FsbEZyYW1lU2l6ZUluQnl0ZXMpIHsKICAgICAgICAgICAgIC8vIENo
ZWNrIHN0YWNrIHNpemUKICAgICAgICAgICAgIG1faml0LmFkZFB0cihNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKC1jYWxsRnJhbWVTaXplSW5CeXRlcyksIE1hY3JvQXNzZW1ibGVyOjpzdGFj
a1BvaW50ZXJSZWdpc3RlciwgbV9yZWdzLnJlZ1QwKTsKLSNpZiBDUFUoWDg2XzY0KSAmJiBPUyhX
SU5ET1dTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1l
bnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAs
IDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKLSNlbGlmIENQVShBUk1fVEhV
TUIyKSB8fCBDUFUoTUlQUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29udGV4dCBpcyB0aGUg
NXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0gICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7Ci0g
ICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNz
ZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNCAqIHNpemVvZih2b2lkKikpLCBtYXRjaGlu
Z0NvbnRleHQpOworCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgSklUZWQgZnVu
Y3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0IHRoZSA1dGggYXJndW1lbnQgaXMgYSBN
YXRjaGluZ0NvbnRleHRIb2xkZXIqCisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29k
ZUJsb2NrOjpZYXJySklUQ29kZTg+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJy
Q29kZUJsb2NrOjpZYXJySklUQ29kZTE2PigpOworICAgICAgICAgICAgZnVuY3Rpb25DaGVja3M8
WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHk4PigpOworICAgICAgICAgICAgZnVu
Y3Rpb25DaGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNj4oKTsKKwor
I2lmIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgPCA1dQorICAgICAgICAgICAgR1BSUmVn
IG1hdGNoaW5nQ29udGV4dCA9IG1faml0LmdldEFyZ3VtZW50R1BSPFlhcnJDb2RlQmxvY2s6Ollh
cnJKSVRDb2RlOCwgND4obV9yZWdzLnJlZ1QxKTsKKyAgICAgICAgICAgIEFTU0VSVChtYXRjaGlu
Z0NvbnRleHQgPT0gbV9yZWdzLnJlZ1QxKTsKICNlbHNlCi0gICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0
OworICAgICAgICAgICAgR1BSUmVnIG1hdGNoaW5nQ29udGV4dCA9IG1faml0LmdldEFyZ3VtZW50
R1BSPFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlOCwgND4oKTsKKyAgICAgICAgICAgIEFTU0VS
VChtYXRjaGluZ0NvbnRleHQgPT0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dCk7CiAjZW5kaWYKKyAg
ICAgICAgICAgIEFTU0VSVChtYXRjaGluZ0NvbnRleHQgPT0gbV9yZWdzLm1hdGNoaW5nQ29udGV4
dCk7CisKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN0YWNrT2sgPSBtX2ppdC5i
cmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93T3JFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MobWF0Y2hpbmdDb250ZXh0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Om9mZnNldE9mU3Rh
Y2tMaW1pdCgpKSwgbV9yZWdzLnJlZ1QwKTsKIAogICAgICAgICAgICAgLy8gRXhjZWVkZWQgc3Rh
Y2sgbGltaXQsIHB1bnQgdG8gdGhlIGludGVycHJldGVyLgpAQCAtNDYxOCw3ICs0NjA1LDcgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNYWNyb0Fzc2VtYmxlciYgbV9qaXQ7Cisg
ICAgQ0NhbGxIZWxwZXJzJiBtX2ppdDsKICAgICBjb25zdCBWTSogbV92bTsKICAgICBZYXJyQ29k
ZUJsb2NrKiBtX2NvZGVCbG9jazsKICAgICBZYXJyQm95ZXJNb3llckRhdGEqIG1fYm95ZXJNb29y
ZURhdGE7CkBAIC00NzA2LDcgKzQ2OTMsNyBAQCBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1
cmUoSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlKQogCiB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRl
cm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIFZN
KiB2bSwgWWFyckNvZGVCbG9jayYgY29kZUJsb2NrLCBKSVRDb21waWxlTW9kZSBtb2RlKQogewot
ICAgIE1hY3JvQXNzZW1ibGVyIG1hc207CisgICAgQ0NhbGxIZWxwZXJzIG1hc207CiAKICAgICBB
U1NFUlQobW9kZSA9PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hPbmx5IHx8IG1vZGUgPT0gSklUQ29t
cGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJucyk7CiAKQEAgLTQ3MjcsNyArNDcxNCw3IEBAIHZv
aWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5n
LCBDaGFyU2l6ZSBjaGFyU2l6ZSwKICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgaW5saW5lZCBKSVQn
aW5nIG9mIFJlZ0V4cC50ZXN0IGZvciB0aGlzIENQVSAvIE9TIGNvbWJpbmF0aW9uLiIKICNlbmRp
ZgogCi12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9u
VGhyZWFkU3RhY2tDaGVja2VyLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNl
dDxZYXJyOjpGbGFncz4gZmxhZ3MsIENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlh
cnJCb3llck1veWVyRGF0YSYgYm95ZXJNb29yZURhdGEsIE1hY3JvQXNzZW1ibGVyJiBqaXQsIFlh
cnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0
KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUg
Y2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0
YSwgQ0NhbGxIZWxwZXJzJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKIHsK
ICAgICBZYXJyOjpFcnJvckNvZGUgZXJyb3JDb2RlOwogICAgIFlhcnI6OllhcnJQYXR0ZXJuIHBh
dHRlcm4ocGF0dGVyblN0cmluZywgZmxhZ3MsIGVycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJySklULmgKaW5kZXggMjg5ZDZlODFmZTUxN2FhZGZiZTQ5OGQxODVlMzA3MjA1ZTZh
MDczMy4uMmJjMzczOTU2NDEwZGJjNGM5NWQ3ZGUyZmNmOGU5NmMzNjVkM2ZlZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaApAQCAtNDMsOSArNDMsMTAgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLWNsYXNzIFZNOworY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgRXhlY3V0YWJs
ZVBvb2w7CiBjbGFzcyBNYWNyb0Fzc2VtYmxlcjsKK2NsYXNzIFZNOwogCiBuYW1lc3BhY2UgWWFy
ciB7CiAKQEAgLTI3MSwxMiArMjcyLDEzIEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgOiBwdWJsaWMg
WWFyckJveWVyTW95ZXJEYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShZYXJyQ29kZUJsb2NrKTsKIAotICAgIHVzaW5nIFlhcnJKSVRD
b2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVn
aXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJK
SVRDb2RlMTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQ
VVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZ
YXJySklUQ29kZU1hdGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFy
KiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1
c2luZyBZYXJySklUQ29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25z
dCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwg
dm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7
Ci0KIHB1YmxpYzoKKworICAgIHVzaW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlw
ZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3Rl
ciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29u
dGV4dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlMTYgPSBTbG93UGF0aFJldHVy
blR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVn
aXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGlu
Z0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTggPSBT
bG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0
YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBt
YXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25s
eTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdp
c3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhv
bGRlciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisKICAgICBZYXJyQ29kZUJsb2NrKCkg
PSBkZWZhdWx0OwogCiAgICAgdm9pZCBzZXRGYWxsQmFja1dpdGhGYWlsdXJlUmVhc29uKEpJVEZh
aWx1cmVSZWFzb24gZmFpbHVyZVJlYXNvbikgeyBtX2ZhaWx1cmVSZWFzb24gPSBmYWlsdXJlUmVh
c29uOyB9CkBAIC0zMjYsNyArMzI4LDcgQEAgcHVibGljOgogICAgIElubGluZVN0YXRzJiBnZXQ4
Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiBtX21hdGNoT25seThTdGF0czsgfQogICAgIElubGlu
ZVN0YXRzJiBnZXQxNkJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gIG1fbWF0Y2hPbmx5MTZTdGF0
czsgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2ln
bmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRI
b2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExD
aGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQs
IE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAg
QVNTRVJUKGhhczhCaXRDb2RlKCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zMzYsNyArMzM4LDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8
WWFyckpJVENvZGU4LCBZYXJyOEJpdFB0clRhZz4obV9yZWY4LmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRleHQpKTsK
ICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4
dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3Qg
VUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1
dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAg
ICBBU1NFUlQoaGFzMTZCaXRDb2RlKCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zNDYsNyArMzQ4
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25Q
dHI8WWFyckpJVENvZGUxNiwgWWFycjE2Qml0UHRyVGFnPihtX3JlZjE2LmNvZGUoKS5leGVjdXRh
YmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRl
eHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1
dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
JiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciog
aW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhv
bGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczhCaXRDb2Rl
TWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zNTYsNyArMzU4LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENv
ZGVNYXRjaE9ubHk4LCBZYXJyTWF0Y2hPbmx5OEJpdFB0clRhZz4obV9tYXRjaE9ubHk4LmNvZGUo
KS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgbnVsbHB0ciwgbWF0
Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBV
Q2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29u
c3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVCho
YXMxNkJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTQzOSw3ICs0NDEs
NyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcs
IENoYXJTaXplLCBWTSosIFlhcnJDb2RlQmxvYwogCiBjbGFzcyBZYXJySklUUmVnaXN0ZXJzOwog
Ci12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiwgY29uc3QgU3RyaW5nJiwg
T3B0aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0IFZNKiwgWWFyckJveWVyTW95
ZXJEYXRhJiwgTWFjcm9Bc3NlbWJsZXImLCBZYXJySklUUmVnaXN0ZXJzJik7Cit2b2lkIGppdENv
bXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiwgY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PFlh
cnI6OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0IFZNKiwgWWFyckJveWVyTW95ZXJEYXRhJiwgQ0Nh
bGxIZWxwZXJzJiwgWWFyckpJVFJlZ2lzdGVycyYpOwogI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpZYXJyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklUUmVnaXN0ZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0
ZXJzLmgKaW5kZXggYmI4MjFjZTg2N2ZlMzhlMjhmMzVjZTcwNmI5YmM2MDk5NDJmNzliNC4uMTdh
YjFjNTJkYmM0Y2NkYmQ2YTk4ZDQzMWJiYmQxNDlhNjE0NjM2MiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaApAQCAtMzUsNiArMzUsMTIgQEAgbmFt
ZXNwYWNlIFlhcnIgewogCiBzdHJ1Y3QgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgewogcHVibGlj
OgorCisgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1
cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEw
MDAwKTsKKyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIg
bGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAw
KTsKKyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJh
aWxpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJv
Z2F0ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwor
CiAjaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQg
PSBBUk1SZWdpc3RlcnM6OnIwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluZGV4ID0g
QVJNUmVnaXN0ZXJzOjpyMTsKQEAgLTcwLDE1ICs3NiwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgcmVnVW5pY29kZUlucHV0QW5kVHJhaWwgPSBBUk02NFJlZ2lzdGVy
czo6eDEwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHVuaWNvZGVUZW1wID0gQVJNNjRS
ZWdpc3RlcnM6Ong1OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluaXRpYWxTdGFydCA9
IEFSTTY0UmVnaXN0ZXJzOjp4MTE7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgc3VwcGxl
bWVudGFyeVBsYW5lc0Jhc2UgPSBBUk02NFJlZ2lzdGVyczo6eDEyOwotICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBBUk02NFJlZ2lzdGVyczo6eDEzOwot
ICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gQVJNNjRS
ZWdpc3RlcnM6OngxNDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBlbmRPZlN0cmluZ0Fk
ZHJlc3MgPSBBUk02NFJlZ2lzdGVyczo6eDE1OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgcmV0dXJuUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDA7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gQVJNNjRSZWdpc3RlcnM6OngxOwotCi0gICAg
c3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRh
Z01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwogI2VsaWYg
Q1BVKE1JUFMpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBNSVBTUmVnaXN0
ZXJzOjphMDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9IE1JUFNSZWdpc3Rl
cnM6OmExOwpAQCAtMTM3LDExICsxMzgsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IFg4NlJlZ2lzdGVyczo6ZWR4Owot
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cHBs
ZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEwMDAw
KTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVh
ZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsK
LSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxp
bmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0
ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwogI2Vs
aWYgQ1BVKFJJU0NWNjQpCiAgICAgLy8gQXJndW1lbnQgcmVnaXN0ZXJzCiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTA7CkBAIC0xNjQsMTEg
KzE2MCw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJl
Z2lzdGVyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDEwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIHJldHVyblJlZ2lzdGVyMiA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMTsKLQotICAgIHN0YXRp
YyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxh
bmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCk7Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIGxlYWRpbmdTdXJyb2dh
dGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCk7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRl
VGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDApOwotICAgIHN0YXRpYyBj
b25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0g
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKICNlbmRpZgogfTsKIApA
QCAtMjA2LDYgKzE5Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMigweDEwMDAwKTsKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
IGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgw
MCk7CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJv
Z2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKKyAgICBjb25z
dCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRhZ01hc2sgPSBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwogfTsKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVy
LmgKaW5kZXggMTM5ZDFmZTM1YjU3NWM3MGEwNWE3ZTc3MjVkZDlmYTFlZmI2NjAxZS4uMWFmODMw
OTgyZmY1N2YyYTkzYjY2MTc5MzhkMmRiYzVkZWM4YTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaApAQCAtMzcs
MTIgKzM3LDEwIEBAIGNsYXNzIFJlZ0V4cDsKIAogbmFtZXNwYWNlIFlhcnIgewogCi1jbGFzcyBZ
YXJyQ29kZUJsb2NrOwotCiBjbGFzcyBNYXRjaGluZ0NvbnRleHRIb2xkZXIgewogICAgIFdURl9G
T1JCSURfSEVBUF9BTExPQ0FUSU9OOwogcHVibGljOgotICAgIE1hdGNoaW5nQ29udGV4dEhvbGRl
cihWTSYsIFlhcnJDb2RlQmxvY2sqLCBSZWdFeHAqLCBNYXRjaEZyb20pOworICAgIE1hdGNoaW5n
Q29udGV4dEhvbGRlcihWTSYsIGJvb2wsIFJlZ0V4cCosIE1hdGNoRnJvbSk7CiAgICAgfk1hdGNo
aW5nQ29udGV4dEhvbGRlcigpOwogCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlN0YWNr
TGltaXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTWF0Y2hpbmdDb250ZXh0SG9sZGVyLCBt
X3N0YWNrTGltaXQpOyB9CkBAIC02MSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgTWF0Y2hGcm9t
IG1fbWF0Y2hGcm9tOwogfTsKIAotaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hp
bmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckNvZGVCbG9jaywgUmVn
RXhwKiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCitpbmxpbmUgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBib29sIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlciwgUmVnRXhwKiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCiAgICAgOiBt
X3ZtKHZtKQogICAgICwgbV9tYXRjaEZyb20obWF0Y2hGcm9tKQogewpAQCAtNzQsMTIgKzcyLDEy
IEBAIGlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihW
TSYgdm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDCiAgICAgfQogCiAjaWYgRU5BQkxFKFlBUlJfSklU
X0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCi0gICAgaWYgKHlhcnJDb2RlQmxvY2sgJiYgeWFyckNv
ZGVCbG9jay0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCkpIHsKKyAgICBpZiAodXNlc1BhdHRl
cm5Db250ZXh0QnVmZmVyKSB7CiAgICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXIgPSBtX3Zt
LmFjcXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgICAgIG1fcGF0dGVybkNv
bnRleHRCdWZmZXJTaXplID0gVk06OnBhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZTsKICAgICB9CiAj
ZWxzZQotICAgIFVOVVNFRF9QQVJBTSh5YXJyQ29kZUJsb2NrKTsKKyAgICBVTlVTRURfUEFSQU0o
dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKTsKICNlbmRpZgogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449068</attachid>
            <date>2022-01-13 09:14:20 -0800</date>
            <delta_ts>2022-01-13 12:10:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220113171418.patch</filename>
            <type>text/plain</type>
            <size>34285</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLmI3NDJkYzg2
ODI3MzEzZmYzMzI2MzdlN2RhNjg2NjU0OTQzNzM0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtNjQ4LDcgKzY0OCw2IEBAIHByaXZhdGU6CiAgICAgfQog
CiAjdW5kZWYgQ1VSUkVOVF9BUkdVTUVOVF9UWVBFCi0jdW5kZWYgUkVTVUxUX1RZUEUKIAogICAg
IC8vIEJhc2UgY2FzZTsgc2V0IHVwIHRoZSBhcmd1bWVudCByZWdpc3RlcnMuCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQg
bnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNl
cywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2ln
bmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZT4KQEAgLTk5Miw2ICs5OTEsNTkgQEAg
cHVibGljOgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVy
YXRpb25UeXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0KKworcHJpdmF0ZToKKwor
ICAgIC8vIEluIGNhc2Ugd2UgYXJlIHRyeWluZyB0byBnZXQgdGhlIGFyZ3VtZW50IGZyb20gYSBm
dW5jdGlvbiBidXQgdGhlcmUgaXNuJ3QgZW5vdWdoIHJlZ2lzdGVycywgdGhpcworICAgIC8vIGZ1
bmN0aW9uIHRyaWVzIHRvIGxvYWQgaXQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNwLiBJbiBv
cmRlciBmb3IgdGhpcyB0byB3b3JrLCB0aGUgZnJhbWUgcG9pbnRlcgorICAgIC8vIG11c3QgYmUg
c2V0IGluIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPcGVy
YXRpb25UeXBlPgorICAgIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3RhY2sodW5zaWduZWQgQXJn
TnVtLCBHUFJSZWcgc2NyYXRjaEdQUikKKyAgICB7CisgICAgICAgIEFTU0VSVChzY3JhdGNoR1BS
ICE9IEdQUlJlZzo6SW52YWxpZEdQUlJlZywgIlZhbGlkIEdQUiBuZWVkZWQgdG8gbG9hZCB0aGlz
IGFyZ3VtZW50Iik7CisgICAgICAgIEFTU0VSVChBcmdOdW0gPj0gTlVNQkVSX09GX0FSR1VNRU5U
X1JFR0lTVEVSUywgIlNob3VsZCByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRHUFJYIik7CisKKyAg
ICAgICAgLy8gVG8gbG9hZCB0aGUgYXJndW1lbnQgaW50byBzY3JhdGNoR1BSIGZyb20gdGhlIHN0
YWNrIHRoZSBmcmFtZSBwb2ludGVyIG5lZWRzIHRvIGJlIHNldCBhdCB0aGUgZnVuY3Rpb24gcHJv
bG9ndWUhCisKKyAgICAgICAgLy8gRm9yIG1vc3QgYXJjaHMgdGhlIGFyZ3VtZW50IHdpbGwgYmUg
cGxhY2UgYXQgZnAgKyByZXR1cm4tYWRkcmVzcyArIGFyZy1udW0gLSBOdW1iZXItb2YtYXJnLXJl
Z3MsIGUuZy4sCisgICAgICAgIC8vIHRoZSA1dGggYXJndW1lbnQgb24gQVJNdjcgd2lsbCBiZSBw
bGFjZWQgYXQgZnAgKyAyICsgNCAtIDQgPSBmcCArIDIgKiBzaXplb2YocHRyKiksIGhvd2V2ZXIs
IHRoYXQgYXJlIHR3byBleGNlcHRpb25zOgorCisgICAgICAgIC8vIFBPS0VfQVJHVU1FTlRfT0ZG
U0VUOiBvbiBNSVBTIGFuZCBXaW5kb3dzIHg4Niwgc3BhY2UgaXMgcmVzZXJ2ZWQgb24gdGhlIHN0
YWNrIGZvciBhbGwgYXJndW1lbnRzLCBzbyBpbiB0aGVzZQorICAgICAgICAvLyBhcmNocywgYSAr
NCBvZmZzZXQgaXMgYWRkZWQuIFRoZSA1dGggYXJndW1lbnQgb24gTUlQUyBpcyBmcCArIDYgKiBz
aXplb2YocHRyKikuCisKKyAgICAgICAgLy8gcmV0dXJuVHlwZU9mZnNldDogV2luZG93cyB4ODYg
b25seS4gSWYgdGhlIHJldHVybiB0eXBlIHdpZGVyIHRoYW4gNjQtYml0cywgaXQncyByZXR1cm5l
ZCB2aWEgYSBwb2ludGVyIHRoYXQgaXMKKyAgICAgICAgLy8gcGFzc2VkIGFzIGFuIGltcGxpY2l0
IGZpcnN0IGFyZ3VtZW50LCBhbmQgYWxsIG90aGVyIGFyZ3VtZW50cyBhcmUgc2hpZnRlZCB0byB0
aGUgcmlnaHQsIGFkZGluZyBhICsxIG9mZnNldC4KKyAgICAgICAgLy8gVGhlIDV0aCBhcmd1bWVu
dCBvbiBXaW5kb3dzIHg4NiBpbiB0aGlzIHNjZW5hcmlvIGlzIGZwICsgNyAqIHNpemVvZihwdHIq
KS4KKworICAgICAgICBjb25zdGV4cHIgaW50IHJldHVybkFkcmVzc09mZnNldCA9IDI7CisjaWYg
T1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKKyAgICAgICAgY29uc3QgaW50IHJldHVyblR5cGVP
ZmZzZXQgPSBzaXplb2YoUkVTVUxUX1RZUEUpID49IDg7CisgICAgICAgIGNvbnN0IGludCBvZmZz
ZXQgPSBBcmdOdW0gLSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTICsgUE9LRV9BUkdVTUVO
VF9PRkZTRVQgKyByZXR1cm5BZHJlc3NPZmZzZXQgKyByZXR1cm5UeXBlT2Zmc2V0OworI2Vsc2UK
KyAgICAgICAgY29uc3QgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9S
RUdJU1RFUlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkcmVzc09mZnNldDsKKyNl
bmRpZgorICAgICAgICBsb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1i
bGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIHNjcmF0
Y2hHUFIpOworICAgICAgICByZXR1cm4gc2NyYXRjaEdQUjsKKyAgICB9CisKKyN1bmRlZiBSRVNV
TFRfVFlQRQorCitwdWJsaWM6CisKKyAgICAvLyBHaXZlbiBhIGZ1bmN0aW9uIGFuZCBhbiBhcmd1
bWVudCBudW1iZXIsIGVpdGhlciB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFyZ3VtZW50R1BS
IGhvbGRpbmcgdGhlIGFyZ3VtZW50CisgICAgLy8gb3IgaXQgdHJpZXMgdG8gbG9hZCB0aGUgYXJn
dW1lbnQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNjcmF0Y2hHUFIgcGFzc2VkIGFzIGFyZ3Vt
ZW50LgorICAgIC8vIE5vdGUgdGhhdCB3ZSB1c2UgMCBmb3IgdGhlIDFzdCBhcmd1bWVudCwgMSBm
b3IgdGhlIDJuZCwgZXRjLgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPcGVyYXRpb25UeXBlPgor
ICAgIEdQUlJlZyBnZXRBcmd1bWVudEdQUih1bnNpZ25lZCBBcmdOdW0sIEdQUlJlZyBzY3JhdGNo
R1BSID0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKQorICAgIHsKKyAgICAgICAgQVNTRVJUKEFyZ051
bSA8PSAyNTUsICJDKysgc3RhbmRhcmQgZm9yYmlzIGZ1bmN0aW9ucyB3aXRoIG1vcmUgdGhhbiAy
NTYgYXJndW1lbnRzIik7CisgICAgICAgIEFTU0VSVChGdW5jdGlvblRyYWl0czxPcGVyYXRpb25U
eXBlPjo6Y0NhbGxBcml0eSgpID4gQXJnTnVtLCAiRnVuY3Rpb24gZG9lcyBub3QgaGF2ZSBlbm91
Z2ggYXJndW1lbnRzIik7CisKKyAgICAgICAgaWYgKEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJHVU1F
TlRfUkVHSVNURVJTKQorICAgICAgICAgICAgcmV0dXJuIGxvYWRBcmd1bWVudEZyb21TdGFjazxP
cGVyYXRpb25UeXBlPihBcmdOdW0sIHNjcmF0Y2hHUFIpOworCisgICAgICAgIHJldHVybiBHUFJJ
bmZvOjp0b0FyZ3VtZW50UmVnaXN0ZXIoQXJnTnVtKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKaW5kZXggNTJhMTNhYWFmYjc3
YjZlNDRmYTdlYjE5MmIwNjg0M2MyY2NiOTIyNi4uNjBhNWJlZTE1YjgyMjA3NjQ2NTEyMGRmNzRl
OTQwOGQ3OGJjN2NkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJ
bmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKQEAgLTYyNiw3
ICs2MjYsNyBAQCBjbGFzcyBHUFJJbmZvIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEdQUlJlZyBS
ZWdpc3RlclR5cGU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJlZ2lz
dGVycyA9IDE2OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVu
dFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKIAogICAgIC8v
IFRoZXNlIHJlZ2lzdGVycyBtYXRjaCB0aGUgYmFzZWxpbmUgSklULgogICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OmZwOwpAQCAt
ODI1LDcgKzgyNSw3IEBAIGNsYXNzIEdQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgR1BS
UmVnIFJlZ2lzdGVyVHlwZTsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9m
UmVnaXN0ZXJzID0gMTM7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFy
Z3VtZW50UmVnaXN0ZXJzID0gODsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJl
ck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOwogCiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBSSVNDVjY0UmVn
aXN0ZXJzOjpmcDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBudW1iZXJUYWdSZWdpc3Rl
ciA9IFJJU0NWNjRSZWdpc3RlcnM6OngyNTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHAuY3BwCmluZGV4IDFiOGNkNDIwZjEwNzA5ZDFiZWIxYTQ1MGQxMzA0MGYzNzczMjY4NjMu
LjQ0OTA5ZDE2OTRiYzU1Yzc1YjI3N2NjNTE2MDAwMDI4NGI0YWQzMmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtNDQ4LDEwICs0NDgsMTAgQEAgdm9pZCBS
ZWdFeHA6Om1hdGNoQ29tcGFyZVdpdGhJbnRlcnByZXRlcihjb25zdCBTdHJpbmcmIHMsIGludCBz
dGFydE9mZnNldCwgaW50KgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSklUQ29k
ZTogewogICAgICAgICAgICAgWWFycjo6WWFyckNvZGVCbG9jayYgY29kZUJsb2NrID0gKm1fcmVn
RXhwSklUQ29kZS5nZXQoKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlB
ZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50
ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7
Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4
JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0
Y2hBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRB
ZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9j
ay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0
Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAg
ICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAx
NCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJp
dE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRk
ciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50
ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaEFkZHIoKSkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCmluZGV4IDAyMmNiYmE1NTU3ZTcxNzhk
MTRkNGI2NjFlZGNkNjg1YTRmNzg3ZTIuLjBhMDkxNzhlNmY5YTk0MzkxYTBkZjFkMDFjMzllNWNl
Y2FkZmJhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxp
bmVzLmgKQEAgLTEzMiwxMiArMTMyLDEyIEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0
Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAg
aWYgKG1fc3RhdGUgPT0gSklUQ29kZSkgewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQo
bV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRl
ciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0KCksIHRoaXMsIG1hdGNoRnJv
bSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4
dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSwgdGhpcywg
bWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0KCkpCi0gICAgICAgICAgICAg
ICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3Rh
cnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hh
cmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgJnJlZ0V4
cENvbnRleHQpLnN0YXJ0OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNl
dCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJz
MTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgJnJlZ0V4cENvbnRl
eHQpLnN0YXJ0OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJlc3VsdCA9PSBzdGF0aWNfY2Fz
dDxpbnQ+KFlhcnI6OkpTUmVnRXhwUmVzdWx0OjpKSVRDb2RlRmFpbHVyZSkpIHsKQEAgLTE0Niw3
ICsxNDYsNyBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFs
T2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgICAgICAgICAgaWYgKG1fc3Rh
dGUgPT0gUGFyc2VFcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigpOwog
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRl
ciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAg
ICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCAvKiB1
c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlzLCBtYXRjaEZyb20pOwogICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdl
dCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZl
Y3RvcikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjIsNyArMTYyLDcgQEAgQUxX
QVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9y
R2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICB9IGVsc2UKICNlbmRpZgogICAgIHsKLSAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRo
aXMsIG1hdGNoRnJvbSk7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdF
eHBDb250ZXh0KHZtLCAvKiB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXI6ICovIGZhbHNlLCB0aGlz
LCBtYXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBC
eXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQq
PihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAKQEAgLTI2NiwxMiArMjY2LDEyIEBAIEFMV0FZU19J
TkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVs
bE9yR2xvYmFsT2JqZWN0CiAgICAgICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKICAgICAgICAgewog
ICAgICAgICAgICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpN
YXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdl
dCgpLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0
SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250
ZXh0QnVmZmVyKCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJp
dCgpKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShz
LmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFy
YWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+
ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhw
Q29udGV4dCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVj
dXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29u
dGV4dCk7CiAgICAgICAgIH0KIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKQEAgLTI5NSw3
ICsyOTUsNyBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUo
SlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAgIG5vblJldHVybmVkT3ZlY3Rv
ci5ncm93KG9mZnNldFZlY3RvclNpemUpOwogICAgIG9mZnNldFZlY3RvciA9IG5vblJldHVybmVk
T3ZlY3Rvci5kYXRhKCk7CiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xk
ZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAg
WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIC8qIHVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlcjogKi8gZmFsc2UsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJl
c3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9m
ZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0K
ICNpZiBSRUdFWFBfRlVOQ19URVNUX0RBVEFfR0VOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJKSVQuY3BwCmluZGV4IGE0OThlZjc4MDczMTgyNGRjZjJlZjg3OTg1YmIwOWIyOTMyMGNlYWUu
LjhmNGY3MzRjOTIzM2FlMjU4NmUyNGE2ODRhZWFjMjMzOGUxZDE4ZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiWWFyckpJVC5oIgogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgi
CiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRl
ICJWTS5oIgpAQCAtMTg2LDEwICsxODcsNiBAQCBzdGQ6OnR1cGxlPEJveWVyTW9vcmVCaXRtYXA6
Ok1hcCwgQm95ZXJNb29yZUZhc3RDYW5kaWRhdGVzPiBCb3llck1vb3JlSW5mbzo6Y3JlYQogdGVt
cGxhdGU8Y2xhc3MgWWFyckpJVFJlZ3MgPSBZYXJySklURGVmYXVsdFJlZ2lzdGVycz4KIGNsYXNz
IFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCi0jaWZkZWYgIEpJ
VF9VTklDT0RFX0VYUFJFU1NJT05TCi0gICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZm
ZmZmYzAwKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFlBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVT
U0lPTlMpCiAgICAgc3RydWN0IFBhcmVuQ29udGV4dFNpemVzIHsKICAgICAgICAgc2l6ZV90IG1f
bnVtU3VicGF0dGVybnM7CkBAIC02MDMsNyArNjAwLDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBm
aW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgICAgIG1faml0LmxvYWQxNlVuYWxpZ25l
ZChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwp
LCByZXN1bHRSZWcpOwogCiAgICAgICAgIC8vIElzIHRoZSBjaGFyYWN0ZXIgYSBsZWFkaW5nIHN1
cnJvZ2F0ZT8KLSAgICAgICAgbV9qaXQuYW5kMzIoWWFyckpJVERlZmF1bHRSZWdpc3RlcnM6OnN1
cnJvZ2F0ZVRhZ01hc2ssIHJlc3VsdFJlZywgbV9yZWdzLnVuaWNvZGVUZW1wKTsKKyAgICAgICAg
bV9qaXQuYW5kMzIobV9yZWdzLnN1cnJvZ2F0ZVRhZ01hc2ssIHJlc3VsdFJlZywgbV9yZWdzLnVu
aWNvZGVUZW1wKTsKICAgICAgICAgbm90VW5pY29kZS5hcHBlbmQobV9qaXQuYnJhbmNoMzIoTWFj
cm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBtX3JlZ3MudW5pY29kZVRlbXAsIG1fcmVncy5sZWFkaW5n
U3Vycm9nYXRlVGFnKSk7CiAKICAgICAgICAgLy8gSXMgdGhlIGlucHV0IGxvbmcgZW5vdWdoIHRv
IHJlYWQgYSB0cmFpbGluZyBzdXJyb2dhdGU/CkBAIC02MTIsNyArNjA5LDcgQEAgY2xhc3MgWWFy
ckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAgICAgLy8gSXMg
dGhlIGNoYXJhY3RlciBhIHRyYWlsaW5nIHN1cnJvZ2F0ZT8KICAgICAgICAgbV9qaXQubG9hZDE2
VW5hbGlnbmVkKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG1fcmVncy5yZWdVbmljb2RlSW5wdXRB
bmRUcmFpbCksIG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCk7Ci0gICAgICAgIG1faml0
LmFuZDMyKFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzOjpzdXJyb2dhdGVUYWdNYXNrLCBtX3JlZ3Mu
cmVnVW5pY29kZUlucHV0QW5kVHJhaWwsIG1fcmVncy51bmljb2RlVGVtcCk7CisgICAgICAgIG1f
aml0LmFuZDMyKG1fcmVncy5zdXJyb2dhdGVUYWdNYXNrLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0
QW5kVHJhaWwsIG1fcmVncy51bmljb2RlVGVtcCk7CiAgICAgICAgIG5vdFVuaWNvZGUuYXBwZW5k
KG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgbV9yZWdzLnVuaWNvZGVU
ZW1wLCBtX3JlZ3MudHJhaWxpbmdTdXJyb2dhdGVUYWcpKTsKIAogICAgICAgICAvLyBDb21iaW5l
IGxlYWRpbmcgYW5kIHRyYWlsaW5nIHN1cnJvZ2F0ZXMgdG8gcHJvZHVjZSBhIGNvZGUgcG9pbnQu
CkBAIC0zOTYxLDEwICszOTU4LDkgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBZYXJySklUSW5mbyB7CiAKICAgICB2b2lkIGdlbmVyYXRlRW50ZXIoKQogICAgIHsKLSNpZiBD
UFUoWDg2XzY0KQotICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSAgICAg
ICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIFg4NlJl
Z2lzdGVyczo6ZWJwKTsKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKIAor
I2lmIENQVShYODZfNjQpCiAgICAgICAgIGlmIChtX3BhdHRlcm4ubV9zYXZlSW5pdGlhbFN0YXJ0
VmFsdWUpCiAgICAgICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKIApAQCAt
Mzk4NywzMSArMzk4MywxNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlh
cnJKSVRJbmZvIHsKICAgICAgICAgfQogI2lmIE9TKFdJTkRPV1MpCiAgICAgICAgIGlmIChtX2Nv
bXBpbGVNb2RlID09IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpCi0gICAgICAg
ICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6
ZWJwLCA2ICogc2l6ZW9mKHZvaWQqKSksIG1fcmVncy5vdXRwdXQpOworICAgICAgICAgICAgbV9q
aXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQ
b2ludGVyUmVnaXN0ZXIsIDYgKiBzaXplb2Yodm9pZCopKSwgbV9yZWdzLm91dHB1dCk7CiAgICAg
ICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIHNwYWNlIGZvciByZXN1
bHQgaW4geDY0IFdpbmRvd3MuCiAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplY3gp
OwogI2VuZGlmCi0jZWxpZiBDUFUoQVJNNjQpCi0gICAgICAgIGlmICghT3B0aW9uczo6dXNlSklU
Q2FnZSgpKQotICAgICAgICAgICAgbV9qaXQudGFnUmV0dXJuQWRkcmVzcygpOwotICAgICAgICBp
ZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewotICAgICAgICAgICAgaWYgKCFPcHRpb25zOjp1
c2VKSVRDYWdlKCkpCi0gICAgICAgICAgICAgICAgbV9qaXQucHVzaFBhaXIoTWFjcm9Bc3NlbWJs
ZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsK
LSAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEw
MDAwKSwgbV9yZWdzLnN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlKTsKLSAgICAgICAgICAgIG1faml0
Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApLCBtX3JlZ3MubGVhZGlu
Z1N1cnJvZ2F0ZVRhZyk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMHhkYzAwKSwgbV9yZWdzLnRyYWlsaW5nU3Vycm9nYXRlVGFnKTsKLSAgICAg
ICAgfQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0
ZXJzOjpyNCk7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyNSk7CiAgICAgICAg
IG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyNik7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVn
aXN0ZXJzOjpyOCk7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyMTApOwotI2Vs
aWYgQ1BVKFJJU0NWNjQpCi0gICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQotICAg
ICAgICAgICAgbV9qaXQucHVzaFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lz
dGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBTKQotICAg
ICAgICAvLyBEbyBub3RoaW5nLgogI2VuZGlmCiAgICAgfQogCkBAIC00MDUyLDI3ICs0MDMzLDIx
IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAg
ICAgICAgIGlmIChtX3BhdHRlcm4ubV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUpCiAgICAgICAgICAg
ICBtX2ppdC5wb3AoWDg2UmVnaXN0ZXJzOjplYngpOwotICAgICAgICBtX2ppdC5wb3AoWDg2UmVn
aXN0ZXJzOjplYnApOwotI2VsaWYgQ1BVKEFSTTY0KQotICAgICAgICBpZiAobV9kZWNvZGVTdXJy
b2dhdGVQYWlycykgewotICAgICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdlKCkpCi0g
ICAgICAgICAgICAgICAgbV9qaXQucG9wUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVy
UmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwotICAgICAgICB9CiAjZWxp
ZiBDUFUoQVJNX1RIVU1CMikKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjEwKTsK
ICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjgpOwogICAgICAgICBtX2ppdC5wb3Ao
QVJNUmVnaXN0ZXJzOjpyNik7CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI1KTsK
ICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjQpOwotI2VsaWYgQ1BVKFJJU0NWNjQp
Ci0gICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQu
cG9wUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1i
bGVyOjpsaW5rUmVnaXN0ZXIpOwotI2VsaWYgQ1BVKE1JUFMpCi0gICAgICAgIC8vIERvIG5vdGhp
bmcKICNlbmRpZgorCisgICAgbV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKKwogI2lmIENQ
VShBUk02NEUpCi0gICAgICAgIGlmIChPcHRpb25zOjp1c2VKSVRDYWdlKCkpCisgICAgICAgIGlm
IChPcHRpb25zOjp1c2VKSVRDYWdlKCkpIHsKKyAgICAgICAgICAgIG1faml0LnVudGFnUmV0dXJu
QWRkcmVzcygpOwogICAgICAgICAgICAgbV9qaXQuZmFySnVtcChNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywgT3BlcmF0aW9u
UHRyVGFnPigmdm1FbnRyeVRvWWFyckpJVEFmdGVyKSksIE9wZXJhdGlvblB0clRhZyk7CisgICAg
ICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9qaXQucmV0KCk7CiAjZWxzZQpAQCAt
NDA4Niw3ICs0MDYxLDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJy
SklUSW5mbyB7CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2Vt
YmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3Qg
WWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBh
dHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9k
ZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlh
cnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0
ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJT
aXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAg
ICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC00
MTA1LDcgKzQwODAsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYm95ZXJNb29yZURhdGEgPSBzdGF0
aWNfY2FzdDxZYXJyQm95ZXJNb3llckRhdGEqPihtX2NvZGVCbG9jayk7CiAgICAgfQogCi0gICAg
WWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3ll
ck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0
ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJT
aXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxs
SGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0
YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBT
dHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBj
b21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAg
ICAgICAgLCBtX2NvZGVCbG9jayhudWxscHRyKQpAQCAtNDEzOSw2ICs0MTE0LDEzIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciA9IHN0YWNrQ2hlY2tl
cjsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlPgorICAgIHN0
YXRpYyBjb25zdGV4cHIgdm9pZCBmdW5jdGlvbkNoZWNrcygpCisgICAgeworICAgICAgICBzdGF0
aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpjQ2FsbEFyaXR5KCkgPT0g
NSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7CisgICAgICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc19zYW1lPE1hdGNoaW5nQ29udGV4dEhvbGRlciosIHR5cGVuYW1lIEZ1bmN0aW9u
VHJhaXRzPE9wZXJhdGlvblR5cGU+Ojp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8ND4+Ojp2YWx1ZSwg
Ik1hdGNoaW5nQ29udGV4dEhvbGRlciogaXMgZXhwZWN0ZWQgYXMgdGhlIGZ1bmN0aW9uIDV0aCBh
cmd1bWVudCIpOworICAgIH0KKwogICAgIHZvaWQgY29tcGlsZShZYXJyQ29kZUJsb2NrJiBjb2Rl
QmxvY2spCiAgICAgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgc3RhcnRPZk1haW5D
b2RlOwpAQCAtNDE5MSwxNyArNDE3MywyMSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChjYWxsRnJh
bWVTaXplSW5CeXRlcykgewogICAgICAgICAgICAgLy8gQ2hlY2sgc3RhY2sgc2l6ZQogICAgICAg
ICAgICAgbV9qaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLWNhbGxGcmFt
ZVNpemVJbkJ5dGVzKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBtX3Jl
Z3MucmVnVDApOwotI2lmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCi0gICAgICAgICAgICAv
LyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhl
IHN0YWNrLgotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdD
b250ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNyAqIHNpemVvZih2b2lkKikpLCBt
YXRjaGluZ0NvbnRleHQpOwotI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKQotICAg
ICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZv
dW5kIG9uIHRoZSBzdGFjay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklE
IG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQ
dHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAgICAg
ICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBKSVRlZCBmdW5jdGlvbnMgaGF2ZSA1IHBhcmFtZXRl
cnMgYW5kIHRoYXQgdGhlIDV0aCBhcmd1bWVudCBpcyBhIE1hdGNoaW5nQ29udGV4dEhvbGRlcioK
KyAgICAgICAgICAgIGZ1bmN0aW9uQ2hlY2tzPFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlOD4o
KTsKKyAgICAgICAgICAgIGZ1bmN0aW9uQ2hlY2tzPFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2Rl
MTY+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJsb2NrOjpZYXJySklU
Q29kZU1hdGNoT25seTg+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJs
b2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2PigpOworCisjaWYgTlVNQkVSX09GX0FSR1VNRU5U
X1JFR0lTVEVSUyA8IDV1CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9q
aXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4PigvKiBBcmdOdW06
ICovIDQsIG1fcmVncy5yZWdUMSk7CisgICAgICAgICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0
ID09IG1fcmVncy5yZWdUMSk7CiAjZWxzZQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJl
Z2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dDsKKyAgICAg
ICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2ppdC5nZXRBcmd1bWVudEdQUjxZYXJy
Q29kZUJsb2NrOjpZYXJySklUQ29kZTg+KC8qIEFyZ051bTogKi8gNCk7CisgICAgICAgICAgICBB
U1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5tYXRjaGluZ0NvbnRleHQpOwogI2VuZGlm
CisKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHN0YWNrT2sgPSBtX2ppdC5icmFu
Y2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkJlbG93T3JFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MobWF0Y2hpbmdDb250ZXh0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Om9mZnNldE9mU3RhY2tM
aW1pdCgpKSwgbV9yZWdzLnJlZ1QwKTsKIAogICAgICAgICAgICAgLy8gRXhjZWVkZWQgc3RhY2sg
bGltaXQsIHB1bnQgdG8gdGhlIGludGVycHJldGVyLgpAQCAtNDYxOCw3ICs0NjA0LDcgQEAgcHVi
bGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNYWNyb0Fzc2VtYmxlciYgbV9qaXQ7CisgICAg
Q0NhbGxIZWxwZXJzJiBtX2ppdDsKICAgICBjb25zdCBWTSogbV92bTsKICAgICBZYXJyQ29kZUJs
b2NrKiBtX2NvZGVCbG9jazsKICAgICBZYXJyQm95ZXJNb3llckRhdGEqIG1fYm95ZXJNb29yZURh
dGE7CkBAIC00NzA2LDcgKzQ2OTIsNyBAQCBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUo
SklURmFpbHVyZVJlYXNvbiBmYWlsdXJlKQogCiB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4m
IHBhdHRlcm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIFZNKiB2
bSwgWWFyckNvZGVCbG9jayYgY29kZUJsb2NrLCBKSVRDb21waWxlTW9kZSBtb2RlKQogewotICAg
IE1hY3JvQXNzZW1ibGVyIG1hc207CisgICAgQ0NhbGxIZWxwZXJzIG1hc207CiAKICAgICBBU1NF
UlQobW9kZSA9PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hPbmx5IHx8IG1vZGUgPT0gSklUQ29tcGls
ZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJucyk7CiAKQEAgLTQ3MjcsNyArNDcxMyw3IEBAIHZvaWQg
aml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBD
aGFyU2l6ZSBjaGFyU2l6ZSwKICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgaW5saW5lZCBKSVQnaW5n
IG9mIFJlZ0V4cC50ZXN0IGZvciB0aGlzIENQVSAvIE9TIGNvbWJpbmF0aW9uLiIKICNlbmRpZgog
Ci12b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhy
ZWFkU3RhY2tDaGVja2VyLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZ
YXJyOjpGbGFncz4gZmxhZ3MsIENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJC
b3llck1veWVyRGF0YSYgYm95ZXJNb29yZURhdGEsIE1hY3JvQXNzZW1ibGVyJiBqaXQsIFlhcnJK
SVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0
YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYg
cGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hh
clNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwg
Q0NhbGxIZWxwZXJzJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKIHsKICAg
ICBZYXJyOjpFcnJvckNvZGUgZXJyb3JDb2RlOwogICAgIFlhcnI6OllhcnJQYXR0ZXJuIHBhdHRl
cm4ocGF0dGVyblN0cmluZywgZmxhZ3MsIGVycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJySklULmgKaW5kZXggMjg5ZDZlODFmZTUxN2FhZGZiZTQ5OGQxODVlMzA3MjA1ZTZhMDcz
My4uMmJjMzczOTU2NDEwZGJjNGM5NWQ3ZGUyZmNmOGU5NmMzNjVkM2ZlZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuaApAQCAtNDMsOSArNDMsMTAgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLWNsYXNzIFZNOworY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgRXhlY3V0YWJsZVBv
b2w7CiBjbGFzcyBNYWNyb0Fzc2VtYmxlcjsKK2NsYXNzIFZNOwogCiBuYW1lc3BhY2UgWWFyciB7
CiAKQEAgLTI3MSwxMiArMjcyLDEzIEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgOiBwdWJsaWMgWWFy
ckJveWVyTW95ZXJEYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShZYXJyQ29kZUJsb2NrKTsKIAotICAgIHVzaW5nIFlhcnJKSVRDb2Rl
OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0
ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRD
b2RlMTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJl
Z2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJy
SklUQ29kZU1hdGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBp
bnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2lu
ZyBZYXJySklUQ29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBV
Q2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9p
ZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0K
IHB1YmxpYzoKKworICAgIHVzaW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAo
KikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4
dCkgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlMTYgPSBTbG93UGF0aFJldHVyblR5
cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0
ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0Nv
bnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTggPSBTbG93
UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0
LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRj
aGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTE2
ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3Rl
ciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciogbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7CisKICAgICBZYXJyQ29kZUJsb2NrKCkgPSBk
ZWZhdWx0OwogCiAgICAgdm9pZCBzZXRGYWxsQmFja1dpdGhGYWlsdXJlUmVhc29uKEpJVEZhaWx1
cmVSZWFzb24gZmFpbHVyZVJlYXNvbikgeyBtX2ZhaWx1cmVSZWFzb24gPSBmYWlsdXJlUmVhc29u
OyB9CkBAIC0zMjYsNyArMzI4LDcgQEAgcHVibGljOgogICAgIElubGluZVN0YXRzJiBnZXQ4Qml0
SW5saW5lU3RhdHMoKSB7IHJldHVybiBtX21hdGNoT25seThTdGF0czsgfQogICAgIElubGluZVN0
YXRzJiBnZXQxNkJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gIG1fbWF0Y2hPbmx5MTZTdGF0czsg
fQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVk
IHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xk
ZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFy
KiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1h
dGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNT
RVJUKGhhczhCaXRDb2RlKCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zMzYsNyArMzM4LDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFy
ckpJVENvZGU4LCBZYXJyOEJpdFB0clRhZz4obV9yZWY4LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVz
cygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRleHQpKTsKICAg
ICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWdu
ZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhv
bGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNo
YXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBB
U1NFUlQoaGFzMTZCaXRDb2RlKCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zNDYsNyArMzQ4LDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8
WWFyckpJVENvZGUxNiwgWWFycjE2Qml0UHRyVGFnPihtX3JlZjE2LmNvZGUoKS5leGVjdXRhYmxl
QWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRleHQp
KTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBt
YXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5w
dXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczhCaXRDb2RlTWF0
Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zNTYsNyArMzU4LDcgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGVN
YXRjaE9ubHk4LCBZYXJyTWF0Y2hPbmx5OEJpdFB0clRhZz4obV9tYXRjaE9ubHk4LmNvZGUoKS5l
eGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgbnVsbHB0ciwgbWF0Y2hp
bmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hh
ciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4
dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3Qg
VUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMx
NkJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTQzOSw3ICs0NDEsNyBA
QCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENo
YXJTaXplLCBWTSosIFlhcnJDb2RlQmxvYwogCiBjbGFzcyBZYXJySklUUmVnaXN0ZXJzOwogCi12
b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiwgY29uc3QgU3RyaW5nJiwgT3B0
aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0IFZNKiwgWWFyckJveWVyTW95ZXJE
YXRhJiwgTWFjcm9Bc3NlbWJsZXImLCBZYXJySklUUmVnaXN0ZXJzJik7Cit2b2lkIGppdENvbXBp
bGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiwgY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PFlhcnI6
OkZsYWdzPiwgQ2hhclNpemUsIGNvbnN0IFZNKiwgWWFyckJveWVyTW95ZXJEYXRhJiwgQ0NhbGxI
ZWxwZXJzJiwgWWFyckpJVFJlZ2lzdGVycyYpOwogI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpZYXJyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklU
UmVnaXN0ZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJz
LmgKaW5kZXggYmI4MjFjZTg2N2ZlMzhlMjhmMzVjZTcwNmI5YmM2MDk5NDJmNzliNC4uMTdhYjFj
NTJkYmM0Y2NkYmQ2YTk4ZDQzMWJiYmQxNDlhNjE0NjM2MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaApAQCAtMzUsNiArMzUsMTIgQEAgbmFtZXNw
YWNlIFlhcnIgewogCiBzdHJ1Y3QgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgewogcHVibGljOgor
CisgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cHBs
ZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEwMDAw
KTsKKyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVh
ZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsK
KyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxp
bmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0
ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOworCiAj
aWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBB
Uk1SZWdpc3RlcnM6OnIwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluZGV4ID0gQVJN
UmVnaXN0ZXJzOjpyMTsKQEAgLTcwLDE1ICs3NiwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgcmVnVW5pY29kZUlucHV0QW5kVHJhaWwgPSBBUk02NFJlZ2lzdGVyczo6
eDEwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHVuaWNvZGVUZW1wID0gQVJNNjRSZWdp
c3RlcnM6Ong1OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluaXRpYWxTdGFydCA9IEFS
TTY0UmVnaXN0ZXJzOjp4MTE7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgc3VwcGxlbWVu
dGFyeVBsYW5lc0Jhc2UgPSBBUk02NFJlZ2lzdGVyczo6eDEyOwotICAgIHN0YXRpYyBjb25zdGV4
cHIgR1BSUmVnIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBBUk02NFJlZ2lzdGVyczo6eDEzOwotICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gQVJNNjRSZWdp
c3RlcnM6OngxNDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBlbmRPZlN0cmluZ0FkZHJl
c3MgPSBBUk02NFJlZ2lzdGVyczo6eDE1OwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcg
cmV0dXJuUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDA7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gQVJNNjRSZWdpc3RlcnM6OngxOwotCi0gICAgc3Rh
dGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRhZ01h
c2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwogI2VsaWYgQ1BV
KE1JUFMpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5wdXQgPSBNSVBTUmVnaXN0ZXJz
OjphMDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9IE1JUFNSZWdpc3RlcnM6
OmExOwpAQCAtMTM3LDExICsxMzgsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3RleHBy
IEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IFg4NlJlZ2lzdGVyczo6ZWR4OwotCi0g
ICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cHBsZW1l
bnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEwMDAwKTsK
LSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVhZGlu
Z1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsKLSAg
ICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxpbmdT
dXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRh
Z01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwogI2VsaWYg
Q1BVKFJJU0NWNjQpCiAgICAgLy8gQXJndW1lbnQgcmVnaXN0ZXJzCiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgaW5wdXQgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTA7CkBAIC0xNjQsMTEgKzE2
MCw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lz
dGVyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDEwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVn
IHJldHVyblJlZ2lzdGVyMiA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMTsKLQotICAgIHN0YXRpYyBj
b25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxhbmVz
QmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCk7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIGxlYWRpbmdTdXJyb2dhdGVU
YWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCk7Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFn
ID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDApOwotICAgIHN0YXRpYyBjb25z
dGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKICNlbmRpZgogfTsKIApAQCAt
MjA2LDYgKzE5Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweDEwMDAwKTsKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIGxl
YWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCk7
CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0
ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKKyAgICBjb25zdCBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRhZ01hc2sgPSBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwogfTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgK
aW5kZXggMTM5ZDFmZTM1YjU3NWM3MGEwNWE3ZTc3MjVkZDlmYTFlZmI2NjAxZS4uMWFmODMwOTgy
ZmY1N2YyYTkzYjY2MTc5MzhkMmRiYzVkZWM4YTE3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaApAQCAtMzcsMTIg
KzM3LDEwIEBAIGNsYXNzIFJlZ0V4cDsKIAogbmFtZXNwYWNlIFlhcnIgewogCi1jbGFzcyBZYXJy
Q29kZUJsb2NrOwotCiBjbGFzcyBNYXRjaGluZ0NvbnRleHRIb2xkZXIgewogICAgIFdURl9GT1JC
SURfSEVBUF9BTExPQ0FUSU9OOwogcHVibGljOgotICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihW
TSYsIFlhcnJDb2RlQmxvY2sqLCBSZWdFeHAqLCBNYXRjaEZyb20pOworICAgIE1hdGNoaW5nQ29u
dGV4dEhvbGRlcihWTSYsIGJvb2wsIFJlZ0V4cCosIE1hdGNoRnJvbSk7CiAgICAgfk1hdGNoaW5n
Q29udGV4dEhvbGRlcigpOwogCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlN0YWNrTGlt
aXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTWF0Y2hpbmdDb250ZXh0SG9sZGVyLCBtX3N0
YWNrTGltaXQpOyB9CkBAIC02MSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgTWF0Y2hGcm9tIG1f
bWF0Y2hGcm9tOwogfTsKIAotaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdD
b250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckNvZGVCbG9jaywgUmVnRXhw
KiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCitpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBib29sIHVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlciwgUmVnRXhwKiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCiAgICAgOiBtX3Zt
KHZtKQogICAgICwgbV9tYXRjaEZyb20obWF0Y2hGcm9tKQogewpAQCAtNzQsMTIgKzcyLDEyIEBA
IGlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYg
dm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDCiAgICAgfQogCiAjaWYgRU5BQkxFKFlBUlJfSklUX0FM
TF9QQVJFTlNfRVhQUkVTU0lPTlMpCi0gICAgaWYgKHlhcnJDb2RlQmxvY2sgJiYgeWFyckNvZGVC
bG9jay0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCkpIHsKKyAgICBpZiAodXNlc1BhdHRlcm5D
b250ZXh0QnVmZmVyKSB7CiAgICAgICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXIgPSBtX3ZtLmFj
cXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAgICAgIG1fcGF0dGVybkNvbnRl
eHRCdWZmZXJTaXplID0gVk06OnBhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZTsKICAgICB9CiAjZWxz
ZQotICAgIFVOVVNFRF9QQVJBTSh5YXJyQ29kZUJsb2NrKTsKKyAgICBVTlVTRURfUEFSQU0odXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNw
cAppbmRleCAwNGZiY2NhZTVkYTBhNDM0N2ZhOTgxZDA2NGMwYjdiNjFlMjRjYjlmLi40MGYxZDc1
ZjE1Y2JiNTk0N2QxODZkMjdiMDBjYTFiZjZlMTVkYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5j
cHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBCSU5MSU5FIHZvaWQgSGVhcDo6YWRqdXN0U3RhdChzaXpl
X3QmIHZhbHVlLCBzc2l6ZV90IGFtb3VudCkKIAogQklOTElORSB2b2lkIEhlYXA6OmxvZ1N0YXQo
c2l6ZV90IHZhbHVlLCBzc2l6ZV90IGFtb3VudCwgY29uc3QgY2hhciogbGFiZWwsIGNvbnN0IGNo
YXIqIG5vdGUpCiB7Ci0gICAgZnByaW50ZihzdGRlcnIsICIlczogJWx1ICglbGQpICVzXG4iLCBs
YWJlbCwgdmFsdWUsIGFtb3VudCwgbm90ZSk7CisgICAgZnByaW50ZihzdGRlcnIsICIlczogJXp1
ICglemQpICVzXG4iLCBsYWJlbCwgdmFsdWUsIGFtb3VudCwgbm90ZSk7CiB9CiAKIEJJTkxJTkUg
dm9pZCBIZWFwOjphZGp1c3RGcmVlYWJsZU1lbW9yeShVbmlxdWVMb2NrSG9sZGVyJiwgc3NpemVf
dCBhbW91bnQsIGNvbnN0IGNoYXIqIG5vdGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449091</attachid>
            <date>2022-01-13 12:10:31 -0800</date>
            <delta_ts>2022-01-13 14:14:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220113201029.patch</filename>
            <type>text/plain</type>
            <size>34346</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLjEyMzgxODU2
NjZlN2Q2NDM3MDg5MzZmNTc3ZDUwMzEyNDU1ZDg0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtNjQ4LDcgKzY0OCw2IEBAIHByaXZhdGU6CiAgICAgfQog
CiAjdW5kZWYgQ1VSUkVOVF9BUkdVTUVOVF9UWVBFCi0jdW5kZWYgUkVTVUxUX1RZUEUKIAogICAg
IC8vIEJhc2UgY2FzZTsgc2V0IHVwIHRoZSBhcmd1bWVudCByZWdpc3RlcnMuCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQg
bnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNl
cywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2ln
bmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZT4KQEAgLTk5Miw2ICs5OTEsNTcgQEAg
cHVibGljOgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVy
YXRpb25UeXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0KKworcHJpdmF0ZToKKyAg
ICAvLyBJbiBjYXNlIHdlIGFyZSB0cnlpbmcgdG8gZ2V0IHRoZSBhcmd1bWVudCBmcm9tIGEgZnVu
Y3Rpb24gYnV0IHRoZXJlIGlzbid0IGVub3VnaCByZWdpc3RlcnMsIHRoaXMKKyAgICAvLyBmdW5j
dGlvbiB0cmllcyB0byBsb2FkIGl0IGZyb20gdGhlIHN0YWNrIHVzaW5nIHRoZSBzcC4gSW4gb3Jk
ZXIgZm9yIHRoaXMgdG8gd29yaywgdGhlIGZyYW1lIHBvaW50ZXIKKyAgICAvLyBtdXN0IGJlIHNl
dCBpbiB0aGUgZnVuY3Rpb24gcHJvbG9ndWUKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgT3BlcmF0
aW9uVHlwZSwgdW5zaWduZWQgQXJnTnVtPgorICAgIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3Rh
Y2soR1BSUmVnIHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAh
PSBHUFJSZWc6OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBh
cmd1bWVudCIpOworICAgICAgICBBU1NFUlQoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9S
RUdJU1RFUlMsICJTaG91bGQgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSWCIpOworCisgICAg
ICAgIC8vIFRvIGxvYWQgdGhlIGFyZ3VtZW50IGludG8gc2NyYXRjaEdQUiBmcm9tIHRoZSBzdGFj
ayB0aGUgZnJhbWUgcG9pbnRlciBuZWVkcyB0byBiZSBzZXQgYXQgdGhlIGZ1bmN0aW9uIHByb2xv
Z3VlIQorCisgICAgICAgIC8vIEZvciBtb3N0IGFyY2hzIHRoZSBhcmd1bWVudCB3aWxsIGJlIHBs
YWNlIGF0IGZwICsgcmV0dXJuLWFkZHJlc3MgKyBhcmctbnVtIC0gTnVtYmVyLW9mLWFyZy1yZWdz
LCBlLmcuLAorICAgICAgICAvLyB0aGUgNXRoIGFyZ3VtZW50IG9uIEFSTXY3IHdpbGwgYmUgcGxh
Y2VkIGF0IGZwICsgMiArIDQgLSA0ID0gZnAgKyAyICogc2l6ZW9mKHB0ciopLCBob3dldmVyLCB0
aGF0IGFyZSB0d28gZXhjZXB0aW9uczoKKworICAgICAgICAvLyBQT0tFX0FSR1VNRU5UX09GRlNF
VDogb24gTUlQUyBhbmQgV2luZG93cyB4ODYsIHNwYWNlIGlzIHJlc2VydmVkIG9uIHRoZSBzdGFj
ayBmb3IgYWxsIGFyZ3VtZW50cywgc28gaW4gdGhlc2UKKyAgICAgICAgLy8gYXJjaHMsIGEgKzQg
b2Zmc2V0IGlzIGFkZGVkLiBUaGUgNXRoIGFyZ3VtZW50IG9uIE1JUFMgaXMgZnAgKyA2ICogc2l6
ZW9mKHB0ciopLgorCisgICAgICAgIC8vIHJldHVyblR5cGVPZmZzZXQ6IFdpbmRvd3MgeDg2IG9u
bHkuIElmIHRoZSByZXR1cm4gdHlwZSB3aWRlciB0aGFuIDY0LWJpdHMsIGl0J3MgcmV0dXJuZWQg
dmlhIGEgcG9pbnRlciB0aGF0IGlzCisgICAgICAgIC8vIHBhc3NlZCBhcyBhbiBpbXBsaWNpdCBm
aXJzdCBhcmd1bWVudCwgYW5kIGFsbCBvdGhlciBhcmd1bWVudHMgYXJlIHNoaWZ0ZWQgdG8gdGhl
IHJpZ2h0LCBhZGRpbmcgYSArMSBvZmZzZXQuCisgICAgICAgIC8vIFRoZSA1dGggYXJndW1lbnQg
b24gV2luZG93cyB4ODYgaW4gdGhpcyBzY2VuYXJpbyBpcyBmcCArIDcgKiBzaXplb2YocHRyKiku
CisKKyNpZiBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50
IHJldHVyblR5cGVPZmZzZXQgPSBzaXplb2YoUkVTVUxUX1RZUEUpID49IDg7CisjZWxzZQorICAg
ICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVPZmZzZXQgPSAwOworI2VuZGlmCisgICAgICAg
IGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRkcmVzc09mZnNldCA9IDI7CisgICAgICAgIGNvbnN0ZXhw
ciBpbnQgb2Zmc2V0ID0gQXJnTnVtIC0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyArIFBP
S0VfQVJHVU1FTlRfT0ZGU0VUICsgcmV0dXJuQWRkcmVzc09mZnNldCArIHJldHVyblR5cGVPZmZz
ZXQ7CisgICAgICAgIGxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJs
ZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBvZmZzZXQgKiBzaXplb2Yodm9pZCopKSwgc2NyYXRj
aEdQUik7CisgICAgICAgIHJldHVybiBzY3JhdGNoR1BSOworICAgIH0KKworI3VuZGVmIFJFU1VM
VF9UWVBFCisKK3B1YmxpYzoKKyAgICAvLyBHaXZlbiBhIGZ1bmN0aW9uIGFuZCBhbiBhcmd1bWVu
dCBudW1iZXIsIGVpdGhlciB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFyZ3VtZW50R1BSIGhv
bGRpbmcgdGhlIGFyZ3VtZW50CisgICAgLy8gb3IgaXQgdHJpZXMgdG8gbG9hZCB0aGUgYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNjcmF0Y2hHUFIgcGFzc2VkIGFzIGFyZ3VtZW50
LgorICAgIC8vIE5vdGUgdGhhdCB3ZSB1c2UgMCBmb3IgdGhlIDFzdCBhcmd1bWVudCwgMSBmb3Ig
dGhlIDJuZCwgZXRjLgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNp
Z25lZCBBcmdOdW0+CisgICAgR1BSUmVnIGdldEFyZ3VtZW50R1BSKEdQUlJlZyBzY3JhdGNoR1BS
ID0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKQorICAgIHsKKyAgICAgICAgQVNTRVJUKEFyZ051bSA8
PSAyNTUsICJDKysgc3RhbmRhcmQgZm9yYmlkcyBmdW5jdGlvbnMgd2l0aCBtb3JlIHRoYW4gMjU2
IGFyZ3VtZW50cyIpOworICAgICAgICBBU1NFUlQoRnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlw
ZT46OmNDYWxsQXJpdHkoKSA+IEFyZ051bSwgIkZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdo
IGFyZ3VtZW50cyIpOworCisgICAgICAgIGlmIChBcmdOdW0gPj0gTlVNQkVSX09GX0FSR1VNRU5U
X1JFR0lTVEVSUykKKyAgICAgICAgICAgIHJldHVybiBsb2FkQXJndW1lbnRGcm9tU3RhY2s8T3Bl
cmF0aW9uVHlwZSwgQXJnTnVtPihzY3JhdGNoR1BSKTsKKworICAgICAgICByZXR1cm4gR1BSSW5m
bzo6dG9Bcmd1bWVudFJlZ2lzdGVyKEFyZ051bSk7CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCmluZGV4IDUyYTEzYWFhZmI3N2I2
ZTQ0ZmE3ZWIxOTJiMDY4NDNjMmNjYjkyMjYuLjYwYTViZWUxNWI4MjIwNzY0NjUxMjBkZjc0ZTk0
MDhkNzhiYzdjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5m
by5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCkBAIC02MjYsNyAr
NjI2LDcgQEAgY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJSZWcgUmVn
aXN0ZXJUeXBlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3Rl
cnMgPSAxNjsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRS
ZWdpc3RlcnMgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1
bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKICAgICAvLyBU
aGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KICAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpmcDsKQEAgLTgy
NSw3ICs4MjUsNyBAQCBjbGFzcyBHUFJJbmZvIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEdQUlJl
ZyBSZWdpc3RlclR5cGU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZlJl
Z2lzdGVycyA9IDEzOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1
bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJP
ZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUzsKIAogICAg
IHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gUklTQ1Y2NFJlZ2lz
dGVyczo6ZnA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbnVtYmVyVGFnUmVnaXN0ZXIg
PSBSSVNDVjY0UmVnaXN0ZXJzOjp4MjU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmViMWE0NTBkMTMwNDBmMzc3MzI2ODYzLi40
NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRiNGFkMzJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDEwIEBAIHZvaWQgUmVn
RXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgU3RyaW5nJiBzLCBpbnQgc3Rh
cnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEpJVENvZGU6
IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxvY2smIGNvZGVCbG9jayA9ICptX3JlZ0V4
cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRk
ciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOwot
ICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNo
QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRk
clNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNo
T25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAg
ICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQi
IFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRN
YXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIs
IGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYo
aml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAppbmRleCAwMjJjYmJhNTU1N2U3MTc4ZDE0
ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi45YzY1NWY0NmFiMDAxNjIzZDhlMzQyZmVjMGUzZDY4ODdl
YjVmOGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNo
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIGlm
IChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1f
cmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZyb20p
OworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMsIG1h
dGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0
T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0Owor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJh
Y3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBD
b250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQg
PSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQs
IHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdFeHBDb250ZXh0
KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgPT0gc3RhdGljX2Nhc3Q8
aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29kZUZhaWx1cmUpKSB7CkBAIC0xNDYsNyAr
MTQ2LDggQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9i
amVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlmIChtX3N0YXRl
ID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKTsKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAg
ICAgICBjb25zdGV4cHIgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIgPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2
bSwgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBz
LCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNldFZlY3Rvcikp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjIsNyArMTYzLDggQEAgQUxXQVlTX0lO
TElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFs
T2JqZWN0LCBWTSYgdm0KICAgICB9IGVsc2UKICNlbmRpZgogICAgIHsKLSAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1h
dGNoRnJvbSk7CisgICAgICAgIGNvbnN0ZXhwciBib29sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZl
ciA9IGZhbHNlOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29u
dGV4dCh2bSwgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCB0aGlzLCBtYXRjaEZyb20pOwogICAg
ICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywg
c3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsK
ICAgICB9CiAKQEAgLTI2NiwxMiArMjY4LDEyIEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQg
UmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0CiAg
ICAgICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJU
KG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xk
ZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBtYXRjaEZy
b20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRl
eHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCksIHRoaXMs
IG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4KCksIHN0
YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9m
ZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3Rl
cnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAgICAgICAgIH0K
IAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKQEAgLTI5NSw3ICsyOTcsOCBAQCBBTFdBWVNf
SU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51
bGxPckdsb2JhbE9iamVjdAogICAgIG5vblJldHVybmVkT3ZlY3Rvci5ncm93KG9mZnNldFZlY3Rv
clNpemUpOwogICAgIG9mZnNldFZlY3RvciA9IG5vblJldHVybmVkT3ZlY3Rvci5kYXRhKCk7CiAg
ICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2
bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgY29uc3RleHByIGJvb2wgdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyID0gZmFsc2U7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29u
dGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIHRo
aXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4
cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25l
ZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KICNpZiBSRUdFWFBfRlVOQ19URVNUX0RBVEFfR0VO
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCmluZGV4IGE0OThlZjc4MDczMTgy
NGRjZjJlZjg3OTg1YmIwOWIyOTMyMGNlYWUuLjBlZTM2NWI4YjAwYzYzNjAzNjAzNTM4NDViNTY1
Zjk4Yjk5YmQ1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJK
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWWFyckpJVC5oIgog
CisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2lu
Y2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJWTS5oIgpAQCAtMTg2LDEwICsxODcsNiBAQCBz
dGQ6OnR1cGxlPEJveWVyTW9vcmVCaXRtYXA6Ok1hcCwgQm95ZXJNb29yZUZhc3RDYW5kaWRhdGVz
PiBCb3llck1vb3JlSW5mbzo6Y3JlYQogdGVtcGxhdGU8Y2xhc3MgWWFyckpJVFJlZ3MgPSBZYXJy
SklURGVmYXVsdFJlZ2lzdGVycz4KIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMg
WWFyckpJVEluZm8gewogCi0jaWZkZWYgIEpJVF9VTklDT0RFX0VYUFJFU1NJT05TCi0gICAgY29u
c3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxF
KFlBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgc3RydWN0IFBhcmVuQ29udGV4
dFNpemVzIHsKICAgICAgICAgc2l6ZV90IG1fbnVtU3VicGF0dGVybnM7CkBAIC02MDMsNyArNjAw
LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAg
ICAgICAgIG1faml0LmxvYWQxNlVuYWxpZ25lZChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtX3Jl
Z3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpLCByZXN1bHRSZWcpOwogCiAgICAgICAgIC8vIElz
IHRoZSBjaGFyYWN0ZXIgYSBsZWFkaW5nIHN1cnJvZ2F0ZT8KLSAgICAgICAgbV9qaXQuYW5kMzIo
WWFyckpJVERlZmF1bHRSZWdpc3RlcnM6OnN1cnJvZ2F0ZVRhZ01hc2ssIHJlc3VsdFJlZywgbV9y
ZWdzLnVuaWNvZGVUZW1wKTsKKyAgICAgICAgbV9qaXQuYW5kMzIobV9yZWdzLnN1cnJvZ2F0ZVRh
Z01hc2ssIHJlc3VsdFJlZywgbV9yZWdzLnVuaWNvZGVUZW1wKTsKICAgICAgICAgbm90VW5pY29k
ZS5hcHBlbmQobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBtX3JlZ3Mu
dW5pY29kZVRlbXAsIG1fcmVncy5sZWFkaW5nU3Vycm9nYXRlVGFnKSk7CiAKICAgICAgICAgLy8g
SXMgdGhlIGlucHV0IGxvbmcgZW5vdWdoIHRvIHJlYWQgYSB0cmFpbGluZyBzdXJyb2dhdGU/CkBA
IC02MTIsNyArNjA5LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJy
SklUSW5mbyB7CiAKICAgICAgICAgLy8gSXMgdGhlIGNoYXJhY3RlciBhIHRyYWlsaW5nIHN1cnJv
Z2F0ZT8KICAgICAgICAgbV9qaXQubG9hZDE2VW5hbGlnbmVkKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCksIG1fcmVncy5yZWdVbmljb2RlSW5w
dXRBbmRUcmFpbCk7Ci0gICAgICAgIG1faml0LmFuZDMyKFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJz
OjpzdXJyb2dhdGVUYWdNYXNrLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwsIG1fcmVn
cy51bmljb2RlVGVtcCk7CisgICAgICAgIG1faml0LmFuZDMyKG1fcmVncy5zdXJyb2dhdGVUYWdN
YXNrLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwsIG1fcmVncy51bmljb2RlVGVtcCk7
CiAgICAgICAgIG5vdFVuaWNvZGUuYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVy
OjpOb3RFcXVhbCwgbV9yZWdzLnVuaWNvZGVUZW1wLCBtX3JlZ3MudHJhaWxpbmdTdXJyb2dhdGVU
YWcpKTsKIAogICAgICAgICAvLyBDb21iaW5lIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHN1cnJvZ2F0
ZXMgdG8gcHJvZHVjZSBhIGNvZGUgcG9pbnQuCkBAIC0zOTYxLDEwICszOTU4LDkgQEAgY2xhc3Mg
WWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICB2b2lkIGdl
bmVyYXRlRW50ZXIoKQogICAgIHsKLSNpZiBDUFUoWDg2XzY0KQotICAgICAgICBtX2ppdC5wdXNo
KFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWJwKTsKKyAgICAgICAgbV9qaXQu
ZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKIAorI2lmIENQVShYODZfNjQpCiAgICAgICAgIGlmICht
X3BhdHRlcm4ubV9zYXZlSW5pdGlhbFN0YXJ0VmFsdWUpCiAgICAgICAgICAgICBtX2ppdC5wdXNo
KFg4NlJlZ2lzdGVyczo6ZWJ4KTsKIApAQCAtMzk4NywzMSArMzk4MywxNiBAQCBjbGFzcyBZYXJy
R2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAgICAgICAgfQogI2lmIE9T
KFdJTkRPV1MpCiAgICAgICAgIGlmIChtX2NvbXBpbGVNb2RlID09IEpJVENvbXBpbGVNb2RlOjpJ
bmNsdWRlU3VicGF0dGVybnMpCi0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA2ICogc2l6ZW9mKHZvaWQqKSksIG1fcmVn
cy5vdXRwdXQpOworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIDYgKiBzaXplb2Yodm9p
ZCopKSwgbV9yZWdzLm91dHB1dCk7CiAgICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0byB0
aGUgYWxsb2NhdGVkIHNwYWNlIGZvciByZXN1bHQgaW4geDY0IFdpbmRvd3MuCiAgICAgICAgIG1f
aml0LnB1c2goWDg2UmVnaXN0ZXJzOjplY3gpOwogI2VuZGlmCi0jZWxpZiBDUFUoQVJNNjQpCi0g
ICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAgICAgbV9qaXQudGFn
UmV0dXJuQWRkcmVzcygpOwotICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewot
ICAgICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdlKCkpCi0gICAgICAgICAgICAgICAg
bV9qaXQucHVzaFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNy
b0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKLSAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEwMDAwKSwgbV9yZWdzLnN1cHBsZW1lbnRhcnlQbGFu
ZXNCYXNlKTsKLSAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweGQ4MDApLCBtX3JlZ3MubGVhZGluZ1N1cnJvZ2F0ZVRhZyk7Ci0gICAgICAgICAgICBt
X2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKSwgbV9yZWdzLnRy
YWlsaW5nU3Vycm9nYXRlVGFnKTsKLSAgICAgICAgfQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAg
ICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyNCk7CiAgICAgICAgIG1faml0LnB1c2go
QVJNUmVnaXN0ZXJzOjpyNSk7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyNik7
CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyOCk7CiAgICAgICAgIG1faml0LnB1
c2goQVJNUmVnaXN0ZXJzOjpyMTApOwotI2VsaWYgQ1BVKFJJU0NWNjQpCi0gICAgICAgIGlmICht
X2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQucHVzaFBhaXIoTWFjcm9B
c3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lz
dGVyKTsKLSNlbGlmIENQVShNSVBTKQotICAgICAgICAvLyBEbyBub3RoaW5nLgogI2VuZGlmCiAg
ICAgfQogCkBAIC00MDUyLDI3ICs0MDMzLDIxIEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwg
OiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgICAgIGlmIChtX3BhdHRlcm4ubV9zYXZlSW5p
dGlhbFN0YXJ0VmFsdWUpCiAgICAgICAgICAgICBtX2ppdC5wb3AoWDg2UmVnaXN0ZXJzOjplYngp
OwotICAgICAgICBtX2ppdC5wb3AoWDg2UmVnaXN0ZXJzOjplYnApOwotI2VsaWYgQ1BVKEFSTTY0
KQotICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewotICAgICAgICAgICAgaWYg
KCFPcHRpb25zOjp1c2VKSVRDYWdlKCkpCi0gICAgICAgICAgICAgICAgbV9qaXQucG9wUGFpcihN
YWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5r
UmVnaXN0ZXIpOwotICAgICAgICB9CiAjZWxpZiBDUFUoQVJNX1RIVU1CMikKICAgICAgICAgbV9q
aXQucG9wKEFSTVJlZ2lzdGVyczo6cjEwKTsKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVy
czo6cjgpOwogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyNik7CiAgICAgICAgIG1f
aml0LnBvcChBUk1SZWdpc3RlcnM6OnI1KTsKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVy
czo6cjQpOwotI2VsaWYgQ1BVKFJJU0NWNjQpCi0gICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0
ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQucG9wUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQ
b2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwotI2VsaWYgQ1BV
KE1JUFMpCi0gICAgICAgIC8vIERvIG5vdGhpbmcKICNlbmRpZgorCisgICAgbV9qaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKKwogI2lmIENQVShBUk02NEUpCi0gICAgICAgIGlmIChPcHRpb25z
Ojp1c2VKSVRDYWdlKCkpCisgICAgICAgIGlmIChPcHRpb25zOjp1c2VKSVRDYWdlKCkpIHsKKyAg
ICAgICAgICAgIG1faml0LnVudGFnUmV0dXJuQWRkcmVzcygpOwogICAgICAgICAgICAgbV9qaXQu
ZmFySnVtcChNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihyZXRhZ0NvZGVQdHI8dm9pZCos
IENGdW5jdGlvblB0clRhZywgT3BlcmF0aW9uUHRyVGFnPigmdm1FbnRyeVRvWWFyckpJVEFmdGVy
KSksIE9wZXJhdGlvblB0clRhZyk7CisgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgbV9qaXQucmV0KCk7CiAjZWxzZQpAQCAtNDA4Niw3ICs0MDYxLDcgQEAgY2xhc3MgWWFyckdl
bmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgfQogCiBwdWJsaWM6Ci0g
ICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJD
b2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJu
JiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXpl
LCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVs
cGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3Qg
WWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBh
dHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9k
ZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBt
X2NvZGVCbG9jayhjb2RlQmxvY2spCkBAIC00MTA1LDcgKzQwODAsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fYm95ZXJNb29yZURhdGEgPSBzdGF0aWNfY2FzdDxZYXJyQm95ZXJNb3llckRhdGEqPiht
X2NvZGVCbG9jayk7CiAgICAgfQogCi0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYg
aml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3Qg
WWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBh
dHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9k
ZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlh
cnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXpl
IGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChq
aXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhudWxscHRyKQpA
QCAtNDEzOSw2ICs0MTE0LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9jb21waWxhdGlvblRocmVh
ZFN0YWNrQ2hlY2tlciA9IHN0YWNrQ2hlY2tlcjsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBPcGVyYXRpb25UeXBlPgorICAgIHN0YXRpYyBjb25zdGV4cHIgdm9pZCBmdW5jdGlvbkNo
ZWNrcygpCisgICAgeworICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPE9wZXJh
dGlvblR5cGU+OjpjQ2FsbEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1l
bnRzIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lPE1hdGNoaW5nQ29udGV4
dEhvbGRlciosIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+Ojp0ZW1wbGF0
ZSBBcmd1bWVudFR5cGU8ND4+Ojp2YWx1ZSwgIk1hdGNoaW5nQ29udGV4dEhvbGRlciogaXMgZXhw
ZWN0ZWQgYXMgdGhlIGZ1bmN0aW9uIDV0aCBhcmd1bWVudCIpOworICAgIH0KKwogICAgIHZvaWQg
Y29tcGlsZShZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2spCiAgICAgewogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6TGFiZWwgc3RhcnRPZk1haW5Db2RlOwpAQCAtNDE5MSwxNyArNDE3MywyMiBAQCBw
dWJsaWM6CiAgICAgICAgIGlmIChjYWxsRnJhbWVTaXplSW5CeXRlcykgewogICAgICAgICAgICAg
Ly8gQ2hlY2sgc3RhY2sgc2l6ZQogICAgICAgICAgICAgbV9qaXQuYWRkUHRyKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoLWNhbGxGcmFtZVNpemVJbkJ5dGVzKSwgTWFjcm9Bc3NlbWJsZXI6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBtX3JlZ3MucmVnVDApOwotI2lmIENQVShYODZfNjQpICYm
IE9TKFdJTkRPV1MpCi0gICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBh
cmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0YWNrLgotICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAgICAg
ICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6
OmVicCwgNyAqIHNpemVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwotI2VsaWYgQ1BVKEFS
TV9USFVNQjIpIHx8IENQVShNSVBTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlz
IHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdU
MTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFj
cm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQqKSksIG1h
dGNoaW5nQ29udGV4dCk7CisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBKSVRl
ZCBmdW5jdGlvbnMgaGF2ZSA1IHBhcmFtZXRlcnMgYW5kIHRoYXQgdGhlIDV0aCBhcmd1bWVudCBp
cyBhIE1hdGNoaW5nQ29udGV4dEhvbGRlcioKKyAgICAgICAgICAgIGZ1bmN0aW9uQ2hlY2tzPFlh
cnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlOD4oKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uQ2hlY2tz
PFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlMTY+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNo
ZWNrczxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTg+KCk7CisgICAgICAgICAg
ICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2Pigp
OworCisgICAgICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgQXJnTnVtID0gNDsKKyNpZiBOVU1C
RVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTIDwgNXUKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGlu
Z0NvbnRleHQgPSBtX2ppdC5nZXRBcmd1bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29k
ZTgsIEFyZ051bT4obV9yZWdzLnJlZ1QxKTsKKyAgICAgICAgICAgIEFTU0VSVChtYXRjaGluZ0Nv
bnRleHQgPT0gbV9yZWdzLnJlZ1QxKTsKICNlbHNlCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0Owor
ICAgICAgICAgICAgR1BSUmVnIG1hdGNoaW5nQ29udGV4dCA9IG1faml0LmdldEFyZ3VtZW50R1BS
PFlhcnJDb2RlQmxvY2s6OllhcnJKSVRDb2RlOCwgQXJnTnVtPigpOworICAgICAgICAgICAgQVNT
RVJUKG1hdGNoaW5nQ29udGV4dCA9PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0KTsKICNlbmRpZgor
CiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdGFja09rID0gbV9qaXQuYnJhbmNo
UHRyKE1hY3JvQXNzZW1ibGVyOjpCZWxvd09yRXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KG1hdGNoaW5nQ29udGV4dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpvZmZzZXRPZlN0YWNrTGlt
aXQoKSksIG1fcmVncy5yZWdUMCk7CiAKICAgICAgICAgICAgIC8vIEV4Y2VlZGVkIHN0YWNrIGxp
bWl0LCBwdW50IHRvIHRoZSBpbnRlcnByZXRlci4KQEAgLTQ2MTgsNyArNDYwNSw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTWFjcm9Bc3NlbWJsZXImIG1faml0OworICAgIEND
YWxsSGVscGVycyYgbV9qaXQ7CiAgICAgY29uc3QgVk0qIG1fdm07CiAgICAgWWFyckNvZGVCbG9j
ayogbV9jb2RlQmxvY2s7CiAgICAgWWFyckJveWVyTW95ZXJEYXRhKiBtX2JveWVyTW9vcmVEYXRh
OwpAQCAtNDcwNiw3ICs0NjkzLDcgQEAgc3RhdGljIHZvaWQgZHVtcENvbXBpbGVGYWlsdXJlKEpJ
VEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKIAogdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBw
YXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBWTSogdm0s
IFlhcnJDb2RlQmxvY2smIGNvZGVCbG9jaywgSklUQ29tcGlsZU1vZGUgbW9kZSkKIHsKLSAgICBN
YWNyb0Fzc2VtYmxlciBtYXNtOworICAgIENDYWxsSGVscGVycyBtYXNtOwogCiAgICAgQVNTRVJU
KG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Ok1hdGNoT25seSB8fCBtb2RlID09IEpJVENvbXBpbGVN
b2RlOjpJbmNsdWRlU3VicGF0dGVybnMpOwogCkBAIC00NzI3LDcgKzQ3MTQsNyBAQCB2b2lkIGpp
dENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hh
clNpemUgY2hhclNpemUsCiAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIGlubGluZWQgSklUJ2luZyBv
ZiBSZWdFeHAudGVzdCBmb3IgdGhpcyBDUFUgLyBPUyBjb21iaW5hdGlvbi4iCiAjZW5kaWYKIAot
dm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVh
ZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFy
cjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95
ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBNYWNyb0Fzc2VtYmxlciYgaml0LCBZYXJySklU
UmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCit2b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFj
a0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBjb25zdCBTdHJpbmcmIHBh
dHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3MsIENoYXJTaXplIGNoYXJT
aXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95ZXJNb29yZURhdGEsIEND
YWxsSGVscGVycyYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCiB7CiAgICAg
WWFycjo6RXJyb3JDb2RlIGVycm9yQ29kZTsKICAgICBZYXJyOjpZYXJyUGF0dGVybiBwYXR0ZXJu
KHBhdHRlcm5TdHJpbmcsIGZsYWdzLCBlcnJvckNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyckpJVC5oCmluZGV4IDI4OWQ2ZTgxZmU1MTdhYWRmYmU0OThkMTg1ZTMwNzIwNWU2YTA3MzMu
LjY5YmRlOGI5ZTc2MzM3NTdmYTFlMWZiZDY1N2IyODJlOWIxNDkwN2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmgKQEAgLTQzLDkgKzQzLDEwIEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1jbGFzcyBWTTsKK2NsYXNzIENDYWxsSGVscGVyczsKIGNsYXNzIEV4ZWN1dGFibGVQb29s
OwogY2xhc3MgTWFjcm9Bc3NlbWJsZXI7CitjbGFzcyBWTTsKIAogbmFtZXNwYWNlIFlhcnIgewog
CkBAIC0yNzEsMTIgKzI3MiwxMiBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIDogcHVibGljIFlhcnJC
b3llck1veWVyRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoWWFyckNvZGVCbG9jayk7CiAKLSAgICB1c2luZyBZYXJySklUQ29kZTgg
PSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVy
IHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29k
ZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdp
c3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJ
VENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5w
dXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNo
aW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcg
WWFyckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNo
YXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQq
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotCiBw
dWJsaWM6CisgICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShj
b25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0
aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FMTDsKKyAgICB1
c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciog
aW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRw
dXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklU
Q29kZU1hdGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1
dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyKikgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hP
bmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJl
Z2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyKikgWUFSUl9DQUxMOworCiAgICAgWWFyckNvZGVCbG9jaygpID0gZGVmYXVsdDsKIAog
ICAgIHZvaWQgc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNvbihKSVRGYWlsdXJlUmVhc29uIGZh
aWx1cmVSZWFzb24pIHsgbV9mYWlsdXJlUmVhc29uID0gZmFpbHVyZVJlYXNvbjsgfQpAQCAtMzI2
LDcgKzMyNyw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVTdGF0cyYgZ2V0OEJpdElubGluZVN0YXRz
KCkgeyByZXR1cm4gbV9tYXRjaE9ubHk4U3RhdHM7IH0KICAgICBJbmxpbmVTdGF0cyYgZ2V0MTZC
aXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuICBtX21hdGNoT25seTE2U3RhdHM7IH0KIAotICAgIE1h
dGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5z
aWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGlu
Z0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVu
c2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0
Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzM2LDcgKzMzNyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlOCwg
WWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQs
IHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAg
TWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNo
aW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwg
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2
Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzQ2LDcgKzM0Nyw3IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2Rl
MTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYxNi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSko
aW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQog
Ci0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250
ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5n
Q29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0Q29kZU1hdGNoT25seSgpKTsK
ICNpZiBDUFUoQVJNNjRFKQpAQCAtMzU2LDcgKzM1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCwg
WWFyck1hdGNoT25seThCaXRQdHJUYWc+KG1fbWF0Y2hPbmx5OC5jb2RlKCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51bGxwdHIsIG1hdGNoaW5nQ29udGV4dCkp
OwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1h
dGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1
dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
KiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzMTZCaXRDb2RlTWF0
Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC00MzksNyArNDQwLDcgQEAgdm9pZCBqaXRD
b21waWxlKFlhcnJQYXR0ZXJuJiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSwgVk0q
LCBZYXJyQ29kZUJsb2MKIAogY2xhc3MgWWFyckpJVFJlZ2lzdGVyczsKIAotdm9pZCBqaXRDb21w
aWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxZYXJy
OjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0YSYsIE1hY3Jv
QXNzZW1ibGVyJiwgWWFyckpJVFJlZ2lzdGVycyYpOwordm9pZCBqaXRDb21waWxlSW5saW5lZFRl
c3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENo
YXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0YSYsIENDYWxsSGVscGVycyYsIFlh
cnJKSVRSZWdpc3RlcnMmKTsKICNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCmluZGV4IGJi
ODIxY2U4NjdmZTM4ZTI4ZjM1Y2U3MDZiOWJjNjA5OTQyZjc5YjQuLmJiZGQxZGZjODA4ZWNiODBh
YWFmMGQ1MDlkOTkwOTg5NGQ5ZGVlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJySklUUmVnaXN0ZXJzLmgKQEAgLTM0LDcgKzM0LDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
bmFtZXNwYWNlIFlhcnIgewogCiBzdHJ1Y3QgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgewotcHVi
bGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBz
dXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgx
MDAwMCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
IGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgw
MCk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRy
YWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDAp
OworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJy
b2dhdGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsK
KwogI2lmIENQVShBUk1fVEhVTUIyKQogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0
ID0gQVJNUmVnaXN0ZXJzOjpyMDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbmRleCA9
IEFSTVJlZ2lzdGVyczo6cjE7CkBAIC03MCwxNSArNzQsMTAgQEAgcHVibGljOgogICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIHJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsID0gQVJNNjRSZWdpc3Rl
cnM6OngxMDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB1bmljb2RlVGVtcCA9IEFSTTY0
UmVnaXN0ZXJzOjp4NTsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbml0aWFsU3RhcnQg
PSBBUk02NFJlZ2lzdGVyczo6eDExOwotICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHN1cHBs
ZW1lbnRhcnlQbGFuZXNCYXNlID0gQVJNNjRSZWdpc3RlcnM6OngxMjsKLSAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyBsZWFkaW5nU3Vycm9nYXRlVGFnID0gQVJNNjRSZWdpc3RlcnM6OngxMzsK
LSAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IEFSTTY0
UmVnaXN0ZXJzOjp4MTQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgZW5kT2ZTdHJpbmdB
ZGRyZXNzID0gQVJNNjRSZWdpc3RlcnM6OngxNTsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BS
UmVnIHJldHVyblJlZ2lzdGVyID0gQVJNNjRSZWdpc3RlcnM6OngwOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyMiA9IEFSTTY0UmVnaXN0ZXJzOjp4MTsKLQotICAg
IHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVU
YWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKICNlbGlm
IENQVShNSVBTKQogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGlucHV0ID0gTUlQU1JlZ2lz
dGVyczo6YTA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBNSVBTUmVnaXN0
ZXJzOjphMTsKQEAgLTEzNywxMSArMTM2LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVheDsKICAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBYODZSZWdpc3RlcnM6OmVkeDsK
LQotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXBw
bGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAw
MCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIGxl
YWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCk7
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRyYWls
aW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDApOwot
ICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dh
dGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKICNl
bGlmIENQVShSSVNDVjY0KQogICAgIC8vIEFyZ3VtZW50IHJlZ2lzdGVycwogICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BSUmVnIGlucHV0ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDEwOwpAQCAtMTY0LDEx
ICsxNTgsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5S
ZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyByZXR1cm5SZWdpc3RlcjIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTE7Ci0KLSAgICBzdGF0
aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBs
YW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwotICAgIHN0
YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9n
YXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOwotICAgIHN0YXRp
YyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0
ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKLSAgICBzdGF0aWMg
Y29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiAjZW5kaWYKIH07CiAK
QEAgLTIwNiw2ICsxOTUsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoMHgxMDAwMCk7CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4
MDApOwogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxpbmdTdXJy
b2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7CisgICAgY29u
c3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKIH07CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRl
ci5oCmluZGV4IDEzOWQxZmUzNWI1NzVjNzBhMDVhN2U3NzI1ZGQ5ZmExZWZiNjYwMWUuLjFhZjgz
MDk4MmZmNTdmMmE5M2I2NjE3OTM4ZDJkYmM1ZGVjOGExNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKQEAgLTM3
LDEyICszNywxMCBAQCBjbGFzcyBSZWdFeHA7CiAKIG5hbWVzcGFjZSBZYXJyIHsKIAotY2xhc3Mg
WWFyckNvZGVCbG9jazsKLQogY2xhc3MgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIHsKICAgICBXVEZf
Rk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKLSAgICBNYXRjaGluZ0NvbnRleHRIb2xk
ZXIoVk0mLCBZYXJyQ29kZUJsb2NrKiwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKKyAgICBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIoVk0mLCBib29sLCBSZWdFeHAqLCBNYXRjaEZyb20pOwogICAgIH5NYXRj
aGluZ0NvbnRleHRIb2xkZXIoKTsKIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTdGFj
a0xpbWl0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE1hdGNoaW5nQ29udGV4dEhvbGRlciwg
bV9zdGFja0xpbWl0KTsgfQpAQCAtNjEsNyArNTksNyBAQCBwcml2YXRlOgogICAgIE1hdGNoRnJv
bSBtX21hdGNoRnJvbTsKIH07CiAKLWlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNo
aW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDb2RlQmxvY2ssIFJl
Z0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQoraW5saW5lIE1hdGNoaW5nQ29udGV4
dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgYm9vbCB1c2VzUGF0dGVybkNv
bnRleHRCdWZmZXIsIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQogICAgIDog
bV92bSh2bSkKICAgICAsIG1fbWF0Y2hGcm9tKG1hdGNoRnJvbSkKIHsKQEAgLTc0LDEyICs3Miwx
MiBAQCBpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIo
Vk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQwogICAgIH0KIAogI2lmIEVOQUJMRShZQVJSX0pJ
VF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQotICAgIGlmICh5YXJyQ29kZUJsb2NrICYmIHlhcnJD
b2RlQmxvY2stPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpKSB7CisgICAgaWYgKHVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlcikgewogICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyID0gbV92
bS5hY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogICAgICAgICBtX3BhdHRlcm5D
b250ZXh0QnVmZmVyU2l6ZSA9IFZNOjpwYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemU7CiAgICAgfQog
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oeWFyckNvZGVCbG9jayk7CisgICAgVU5VU0VEX1BBUkFN
KHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNwcCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVh
cC5jcHAKaW5kZXggMDRmYmNjYWU1ZGEwYTQzNDdmYTk4MWQwNjRjMGI3YjYxZTI0Y2I5Zi4uNDBm
MWQ3NWYxNWNiYjU5NDdkMTg2ZDI3YjAwY2ExYmY2ZTE1ZGMxMSAxMDA2NDQKLS0tIGEvU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNwcAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hl
YXAuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgQklOTElORSB2b2lkIEhlYXA6OmFkanVzdFN0YXQo
c2l6ZV90JiB2YWx1ZSwgc3NpemVfdCBhbW91bnQpCiAKIEJJTkxJTkUgdm9pZCBIZWFwOjpsb2dT
dGF0KHNpemVfdCB2YWx1ZSwgc3NpemVfdCBhbW91bnQsIGNvbnN0IGNoYXIqIGxhYmVsLCBjb25z
dCBjaGFyKiBub3RlKQogewotICAgIGZwcmludGYoc3RkZXJyLCAiJXM6ICVsdSAoJWxkKSAlc1xu
IiwgbGFiZWwsIHZhbHVlLCBhbW91bnQsIG5vdGUpOworICAgIGZwcmludGYoc3RkZXJyLCAiJXM6
ICV6dSAoJXpkKSAlc1xuIiwgbGFiZWwsIHZhbHVlLCBhbW91bnQsIG5vdGUpOwogfQogCiBCSU5M
SU5FIHZvaWQgSGVhcDo6YWRqdXN0RnJlZWFibGVNZW1vcnkoVW5pcXVlTG9ja0hvbGRlciYsIHNz
aXplX3QgYW1vdW50LCBjb25zdCBjaGFyKiBub3RlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449108</attachid>
            <date>2022-01-13 14:15:02 -0800</date>
            <delta_ts>2022-01-14 11:47:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220113221500.patch</filename>
            <type>text/plain</type>
            <size>34356</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLmNiNzA1MjUy
M2M2NWQ5ZjZhNDNkYjM5ZWZiZTI4YmFjOGJlZTBkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtNjQ4LDcgKzY0OCw2IEBAIHByaXZhdGU6CiAgICAgfQog
CiAjdW5kZWYgQ1VSUkVOVF9BUkdVTUVOVF9UWVBFCi0jdW5kZWYgUkVTVUxUX1RZUEUKIAogICAg
IC8vIEJhc2UgY2FzZTsgc2V0IHVwIHRoZSBhcmd1bWVudCByZWdpc3RlcnMuCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQg
bnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNl
cywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2ln
bmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZT4KQEAgLTk5Miw2ICs5OTEsNTcgQEAg
cHVibGljOgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVy
YXRpb25UeXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0KKworcHJpdmF0ZToKKyAg
ICAvLyBJbiBjYXNlIHdlIGFyZSB0cnlpbmcgdG8gZ2V0IHRoZSBhcmd1bWVudCBmcm9tIGEgZnVu
Y3Rpb24gYnV0IHRoZXJlIGlzbid0IGVub3VnaCByZWdpc3RlcnMsIHRoaXMKKyAgICAvLyBmdW5j
dGlvbiB0cmllcyB0byBsb2FkIGl0IGZyb20gdGhlIHN0YWNrIHVzaW5nIHRoZSBzcC4gSW4gb3Jk
ZXIgZm9yIHRoaXMgdG8gd29yaywgdGhlIGZyYW1lIHBvaW50ZXIKKyAgICAvLyBtdXN0IGJlIHNl
dCBpbiB0aGUgZnVuY3Rpb24gcHJvbG9ndWUKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgT3BlcmF0
aW9uVHlwZSwgdW5zaWduZWQgQXJnTnVtPgorICAgIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3Rh
Y2soR1BSUmVnIHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAh
PSBHUFJSZWc6OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBh
cmd1bWVudCIpOworICAgICAgICBBU1NFUlQoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9S
RUdJU1RFUlMsICJTaG91bGQgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSWCIpOworCisgICAg
ICAgIC8vIFRvIGxvYWQgdGhlIGFyZ3VtZW50IGludG8gc2NyYXRjaEdQUiBmcm9tIHRoZSBzdGFj
ayB0aGUgZnJhbWUgcG9pbnRlciBuZWVkcyB0byBiZSBzZXQgYXQgdGhlIGZ1bmN0aW9uIHByb2xv
Z3VlIQorCisgICAgICAgIC8vIEZvciBtb3N0IGFyY2hzIHRoZSBhcmd1bWVudCB3aWxsIGJlIHBs
YWNlIGF0IGZwICsgcmV0dXJuLWFkZHJlc3MgKyBhcmctbnVtIC0gTnVtYmVyLW9mLWFyZy1yZWdz
LCBlLmcuLAorICAgICAgICAvLyB0aGUgNXRoIGFyZ3VtZW50IG9uIEFSTXY3IHdpbGwgYmUgcGxh
Y2VkIGF0IGZwICsgMiArIDQgLSA0ID0gZnAgKyAyICogc2l6ZW9mKHB0ciopLCBob3dldmVyLCB0
aGF0IGFyZSB0d28gZXhjZXB0aW9uczoKKworICAgICAgICAvLyBQT0tFX0FSR1VNRU5UX09GRlNF
VDogb24gTUlQUyBhbmQgV2luZG93cyB4ODYsIHNwYWNlIGlzIHJlc2VydmVkIG9uIHRoZSBzdGFj
ayBmb3IgYWxsIGFyZ3VtZW50cywgc28gaW4gdGhlc2UKKyAgICAgICAgLy8gYXJjaHMsIGEgKzQg
b2Zmc2V0IGlzIGFkZGVkLiBUaGUgNXRoIGFyZ3VtZW50IG9uIE1JUFMgaXMgZnAgKyA2ICogc2l6
ZW9mKHB0ciopLgorCisgICAgICAgIC8vIHJldHVyblR5cGVPZmZzZXQ6IFdpbmRvd3MgeDg2IG9u
bHkuIElmIHRoZSByZXR1cm4gdHlwZSB3aWRlciB0aGFuIDY0LWJpdHMsIGl0J3MgcmV0dXJuZWQg
dmlhIGEgcG9pbnRlciB0aGF0IGlzCisgICAgICAgIC8vIHBhc3NlZCBhcyBhbiBpbXBsaWNpdCBm
aXJzdCBhcmd1bWVudCwgYW5kIGFsbCBvdGhlciBhcmd1bWVudHMgYXJlIHNoaWZ0ZWQgdG8gdGhl
IHJpZ2h0LCBhZGRpbmcgYSArMSBvZmZzZXQuCisgICAgICAgIC8vIFRoZSA1dGggYXJndW1lbnQg
b24gV2luZG93cyB4ODYgaW4gdGhpcyBzY2VuYXJpbyBpcyBmcCArIDcgKiBzaXplb2YocHRyKiku
CisKKyNpZiBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50
IHJldHVyblR5cGVPZmZzZXQgPSBzaXplb2YoUkVTVUxUX1RZUEUpID49IDg7CisjZWxzZQorICAg
ICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVPZmZzZXQgPSAwOworI2VuZGlmCisgICAgICAg
IGNvbnN0ZXhwciBpbnQgcmV0dXJuQWRkcmVzc09mZnNldCA9IDI7CisgICAgICAgIGNvbnN0ZXhw
ciBpbnQgb2Zmc2V0ID0gQXJnTnVtIC0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyArIFBP
S0VfQVJHVU1FTlRfT0ZGU0VUICsgcmV0dXJuQWRkcmVzc09mZnNldCArIHJldHVyblR5cGVPZmZz
ZXQ7CisgICAgICAgIGxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJs
ZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBvZmZzZXQgKiBzaXplb2Yodm9pZCopKSwgc2NyYXRj
aEdQUik7CisgICAgICAgIHJldHVybiBzY3JhdGNoR1BSOworICAgIH0KKworI3VuZGVmIFJFU1VM
VF9UWVBFCisKK3B1YmxpYzoKKyAgICAvLyBHaXZlbiBhIGZ1bmN0aW9uIGFuZCBhbiBhcmd1bWVu
dCBudW1iZXIsIGVpdGhlciB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFyZ3VtZW50R1BSIGhv
bGRpbmcgdGhlIGFyZ3VtZW50CisgICAgLy8gb3IgaXQgdHJpZXMgdG8gbG9hZCB0aGUgYXJndW1l
bnQgZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNjcmF0Y2hHUFIgcGFzc2VkIGFzIGFyZ3VtZW50
LgorICAgIC8vIE5vdGUgdGhhdCB3ZSB1c2UgMCBmb3IgdGhlIDFzdCBhcmd1bWVudCwgMSBmb3Ig
dGhlIDJuZCwgZXRjLgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNp
Z25lZCBBcmdOdW0+CisgICAgR1BSUmVnIGdldEFyZ3VtZW50R1BSKEdQUlJlZyBzY3JhdGNoR1BS
ID0gR1BSUmVnOjpJbnZhbGlkR1BSUmVnKQorICAgIHsKKyAgICAgICAgQVNTRVJUKEFyZ051bSA8
PSAyNTUsICJDKysgc3RhbmRhcmQgZm9yYmlkcyBmdW5jdGlvbnMgd2l0aCBtb3JlIHRoYW4gMjU2
IGFyZ3VtZW50cyIpOworICAgICAgICBBU1NFUlQoRnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlw
ZT46OmNDYWxsQXJpdHkoKSA+IEFyZ051bSwgIkZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZW5vdWdo
IGFyZ3VtZW50cyIpOworCisgICAgICAgIGlmIGNvbnN0ZXhwciAoQXJnTnVtID49IE5VTUJFUl9P
Rl9BUkdVTUVOVF9SRUdJU1RFUlMpCisgICAgICAgICAgICByZXR1cm4gbG9hZEFyZ3VtZW50RnJv
bVN0YWNrPE9wZXJhdGlvblR5cGUsIEFyZ051bT4oc2NyYXRjaEdQUik7CisKKyAgICAgICAgcmV0
dXJuIEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihBcmdOdW0pOworICAgIH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9H
UFJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAppbmRleCA1MmEx
M2FhYWZiNzdiNmU0NGZhN2ViMTkyYjA2ODQzYzJjY2I5MjI2Li42MGE1YmVlMTViODIyMDc2NDY1
MTIwZGY3NGU5NDA4ZDc4YmM3Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0dQUkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaApA
QCAtNjI2LDcgKzYyNiw3IEBAIGNsYXNzIEdQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYg
R1BSUmVnIFJlZ2lzdGVyVHlwZTsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJl
ck9mUmVnaXN0ZXJzID0gMTY7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJP
ZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51
bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOwog
CiAgICAgLy8gVGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6
ZnA7CkBAIC04MjUsNyArODI1LDcgQEAgY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBHUFJSZWcgUmVnaXN0ZXJUeXBlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bnVtYmVyT2ZSZWdpc3RlcnMgPSAxMzsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51
bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RF
UlM7CiAKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IFJJ
U0NWNjRSZWdpc3RlcnM6OmZwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG51bWJlclRh
Z1JlZ2lzdGVyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDI1OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3MDlkMWJlYjFhNDUwZDEzMDQwZjM3
NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYwMDAwMjg0YjRhZDMyZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCkBAIC00NDgsMTAgKzQ0OCwxMCBA
QCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVycHJldGVyKGNvbnN0IFN0cmluZyYg
cywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBKSVRDb2RlOiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2sg
PSAqbV9yZWdFeHBKSVRDb2RlLmdldCgpOwotICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1h
dGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAg
IHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaE9ubHlB
ZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJT
aXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdl
dDhCaXRNYXRjaEFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaEFk
ZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
Y29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGpp
dDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7
CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXpl
LCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2Nr
LmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0
TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAg
IHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBU
UiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRk
cigpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgKaW5kZXggMDIyY2JiYTU1
NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uOWM2NTVmNDZhYjAwMTYyM2Q4ZTM0MmZl
YzBlM2Q2ODg3ZWI1ZjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cElubGluZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVn
RXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYg
dm0KICAgICBpZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAgICAgICAgIHsKICAgICAgICAgICAg
IEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywg
bWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdF
eHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigp
LCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAg
ICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJz
OCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250ZXh0
KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1
dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9y
LCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0
YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0
OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNo
YXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVn
RXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVzdWx0ID09IHN0
YXRpY19jYXN0PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6OkpJVENvZGVGYWlsdXJlKSkgewpA
QCAtMTQ2LDcgKzE0Niw4IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUo
SlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgICAgICAgICBp
ZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7Cisg
ICAgICAgICAgICAgICAgY29uc3RleHByIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4
cENvbnRleHQodm0sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgdGhpcywgbWF0Y2hGcm9tKTsK
ICAgICAgICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29k
ZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZz
ZXRWZWN0b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Myw4IEBA
IEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51
bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAg
ICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRy
LCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICBjb25zdGV4cHIgYm9vbCB1c2VzUGF0dGVybkNv
bnRleHRCdWZmZXIgPSBmYWxzZTsKKyAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgdGhpcywgbWF0Y2hG
cm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUu
Z2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0
VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2OCwxMiBAQCBBTFdBWVNfSU5MSU5FIE1h
dGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2Jh
bE9iamVjdAogICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAg
ICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdD
b250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhp
cywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciBy
ZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZl
cigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAg
ICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0
ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgo
KSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUo
cy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQp
OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNo
YXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwog
ICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyArMjk3LDgg
QEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFs
T2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3IuZ3Jvdyhv
ZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92ZWN0b3Iu
ZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4
cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIGNvbnN0ZXhw
ciBib29sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IGZhbHNlOworICAgICAgICBZYXJyOjpN
YXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgdXNlc1BhdHRlcm5Db250ZXh0
QnVmZmVyLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnBy
ZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nh
c3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAjaWYgUkVHRVhQX0ZVTkNfVEVT
VF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAppbmRleCBhNDk4
ZWY3ODA3MzE4MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi4wZWUzNjViOGIwMGM2MzYwMzYw
MzUzODQ1YjU2NWY5OGI5OWJkNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklU
LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIllh
cnJKSVQuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkxpbmtCdWZm
ZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKQEAgLTE4NiwxMCAr
MTg3LDYgQEAgc3RkOjp0dXBsZTxCb3llck1vb3JlQml0bWFwOjpNYXAsIEJveWVyTW9vcmVGYXN0
Q2FuZGlkYXRlcz4gQm95ZXJNb29yZUluZm86OmNyZWEKIHRlbXBsYXRlPGNsYXNzIFlhcnJKSVRS
ZWdzID0gWWFyckpJVERlZmF1bHRSZWdpc3RlcnM+CiBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFs
IDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAotI2lmZGVmICBKSVRfVU5JQ09ERV9FWFBSRVNTSU9O
UwotICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFz
ayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7Ci0jZW5kaWYKLQog
I2lmIEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQogICAgIHN0cnVjdCBQ
YXJlbkNvbnRleHRTaXplcyB7CiAgICAgICAgIHNpemVfdCBtX251bVN1YnBhdHRlcm5zOwpAQCAt
NjAzLDcgKzYwMCw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJ
VEluZm8gewogICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWduZWQoTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MobV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwgcmVzdWx0UmVnKTsKIAogICAg
ICAgICAvLyBJcyB0aGUgY2hhcmFjdGVyIGEgbGVhZGluZyBzdXJyb2dhdGU/Ci0gICAgICAgIG1f
aml0LmFuZDMyKFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzOjpzdXJyb2dhdGVUYWdNYXNrLCByZXN1
bHRSZWcsIG1fcmVncy51bmljb2RlVGVtcCk7CisgICAgICAgIG1faml0LmFuZDMyKG1fcmVncy5z
dXJyb2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51bmljb2RlVGVtcCk7CiAgICAgICAg
IG5vdFVuaWNvZGUuYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVh
bCwgbV9yZWdzLnVuaWNvZGVUZW1wLCBtX3JlZ3MubGVhZGluZ1N1cnJvZ2F0ZVRhZykpOwogCiAg
ICAgICAgIC8vIElzIHRoZSBpbnB1dCBsb25nIGVub3VnaCB0byByZWFkIGEgdHJhaWxpbmcgc3Vy
cm9nYXRlPwpAQCAtNjEyLDcgKzYwOSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBw
dWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgICAgIC8vIElzIHRoZSBjaGFyYWN0ZXIgYSB0cmFp
bGluZyBzdXJyb2dhdGU/CiAgICAgICAgIG1faml0LmxvYWQxNlVuYWxpZ25lZChNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpLCBtX3JlZ3MucmVn
VW5pY29kZUlucHV0QW5kVHJhaWwpOwotICAgICAgICBtX2ppdC5hbmQzMihZYXJySklURGVmYXVs
dFJlZ2lzdGVyczo6c3Vycm9nYXRlVGFnTWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRy
YWlsLCBtX3JlZ3MudW5pY29kZVRlbXApOworICAgICAgICBtX2ppdC5hbmQzMihtX3JlZ3Muc3Vy
cm9nYXRlVGFnTWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5p
Y29kZVRlbXApOwogICAgICAgICBub3RVbmljb2RlLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNy
b0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG1fcmVncy51bmljb2RlVGVtcCwgbV9yZWdzLnRyYWlsaW5n
U3Vycm9nYXRlVGFnKSk7CiAKICAgICAgICAgLy8gQ29tYmluZSBsZWFkaW5nIGFuZCB0cmFpbGlu
ZyBzdXJyb2dhdGVzIHRvIHByb2R1Y2UgYSBjb2RlIHBvaW50LgpAQCAtMzk2MSwxMCArMzk1OCw5
IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAg
ICAgdm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7Ci0jaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAg
bV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7Ci0gICAgICAgIG1faml0Lm1vdmUoTWFjcm9B
c3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVicCk7CisgICAg
ICAgIG1faml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAKKyNpZiBDUFUoWDg2XzY0KQogICAg
ICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAg
bV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVieCk7CiAKQEAgLTM5ODcsMzEgKzM5ODMsMTYgQEAg
Y2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgICAg
IH0KICNpZiBPUyhXSU5ET1dTKQogICAgICAgICBpZiAobV9jb21waWxlTW9kZSA9PSBKSVRDb21w
aWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKQotICAgICAgICAgICAgbV9qaXQubG9hZFB0cihN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNiAqIHNpemVvZih2b2lk
KikpLCBtX3JlZ3Mub3V0cHV0KTsKKyAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCA2ICog
c2l6ZW9mKHZvaWQqKSksIG1fcmVncy5vdXRwdXQpOwogICAgICAgICAvLyByY3ggaXMgdGhlIHBv
aW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBzcGFjZSBmb3IgcmVzdWx0IGluIHg2NCBXaW5kb3dzLgog
ICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWN4KTsKICNlbmRpZgotI2VsaWYgQ1BV
KEFSTTY0KQotICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKLSAgICAgICAgICAg
IG1faml0LnRhZ1JldHVybkFkZHJlc3MoKTsKLSAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRl
UGFpcnMpIHsKLSAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAg
ICAgICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdp
c3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2ppdC5t
b3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCksIG1fcmVncy5zdXBwbGVt
ZW50YXJ5UGxhbmVzQmFzZSk7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMHhkODAwKSwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpOwotICAg
ICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCks
IG1fcmVncy50cmFpbGluZ1N1cnJvZ2F0ZVRhZyk7Ci0gICAgICAgIH0KICNlbGlmIENQVShBUk1f
VEhVTUIyKQogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwogICAgICAgICBt
X2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjUpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lz
dGVyczo6cjYpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjgpOwogICAgICAg
ICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjEwKTsKLSNlbGlmIENQVShSSVNDVjY0KQotICAg
ICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykKLSAgICAgICAgICAgIG1faml0LnB1c2hQ
YWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6
OmxpbmtSZWdpc3Rlcik7Ci0jZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8gbm90aGluZy4K
ICNlbmRpZgogICAgIH0KIApAQCAtNDA1MiwyNyArNDAzMywyMSBAQCBjbGFzcyBZYXJyR2VuZXJh
dG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICBpZiAobV9wYXR0ZXJu
Lm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lz
dGVyczo6ZWJ4KTsKLSAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSNlbGlm
IENQVShBUk02NCkKLSAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKLSAgICAg
ICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAgICAgICAgIG1faml0
LnBvcFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2Vt
Ymxlcjo6bGlua1JlZ2lzdGVyKTsKLSAgICAgICAgfQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCiAg
ICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnIxMCk7CiAgICAgICAgIG1faml0LnBvcChB
Uk1SZWdpc3RlcnM6OnI4KTsKICAgICAgICAgbV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjYpOwog
ICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyNSk7CiAgICAgICAgIG1faml0LnBvcChB
Uk1SZWdpc3RlcnM6OnI0KTsKLSNlbGlmIENQVShSSVNDVjY0KQotICAgICAgICBpZiAobV9kZWNv
ZGVTdXJyb2dhdGVQYWlycykKLSAgICAgICAgICAgIG1faml0LnBvcFBhaXIoTWFjcm9Bc3NlbWJs
ZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsK
LSNlbGlmIENQVShNSVBTKQotICAgICAgICAvLyBEbyBub3RoaW5nCiAjZW5kaWYKKworICAgIG1f
aml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisKICNpZiBDUFUoQVJNNjRFKQotICAgICAgICBp
ZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKQorICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2Fn
ZSgpKSB7CisgICAgICAgICAgICBtX2ppdC51bnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAg
ICAgIG1faml0LmZhckp1bXAoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2Rl
UHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lh
cnJKSVRBZnRlcikpLCBPcGVyYXRpb25QdHJUYWcpOworICAgICAgICB9CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIG1faml0LnJldCgpOwogI2Vsc2UKQEAgLTQwODYsNyArNDA2MSw3IEBAIGNs
YXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgIH0KIAog
cHVibGljOgotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0q
IHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZ
YXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6
ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRv
cihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3Qg
U3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUg
Y29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAg
ICAgICAgICwgbV9jb2RlQmxvY2soY29kZUJsb2NrKQpAQCAtNDEwNSw3ICs0MDgwLDcgQEAgcHVi
bGljOgogICAgICAgICBtX2JveWVyTW9vcmVEYXRhID0gc3RhdGljX2Nhc3Q8WWFyckJveWVyTW95
ZXJEYXRhKj4obV9jb2RlQmxvY2spOwogICAgIH0KIAotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9B
c3NlbWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURh
dGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3Qg
U3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUg
Y29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3Qg
Vk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdz
JiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5n
LCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAg
IDogbV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2so
bnVsbHB0cikKQEAgLTQxMzksNiArNDExNCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fY29tcGls
YXRpb25UaHJlYWRTdGFja0NoZWNrZXIgPSBzdGFja0NoZWNrZXI7CiAgICAgfQogCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZT4KKyAgICBzdGF0aWMgY29uc3RleHByIHZvaWQg
ZnVuY3Rpb25DaGVja3MoKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRy
YWl0czxPcGVyYXRpb25UeXBlPjo6Y0NhbGxBcml0eSgpID09IDUsICJZYXJySklUQ29kZSB0YWtl
cyA1IGFyZ3VtZW50cyIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxNYXRj
aGluZ0NvbnRleHRIb2xkZXIqLCB0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBl
Pjo6dGVtcGxhdGUgQXJndW1lbnRUeXBlPDQ+Pjo6dmFsdWUsICJNYXRjaGluZ0NvbnRleHRIb2xk
ZXIqIGlzIGV4cGVjdGVkIGFzIHRoZSBmdW5jdGlvbiA1dGggYXJndW1lbnQiKTsKKyAgICB9CisK
ICAgICB2b2lkIGNvbXBpbGUoWWFyckNvZGVCbG9jayYgY29kZUJsb2NrKQogICAgIHsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHN0YXJ0T2ZNYWluQ29kZTsKQEAgLTQxOTEsMTcgKzQx
NzMsMjIgQEAgcHVibGljOgogICAgICAgICBpZiAoY2FsbEZyYW1lU2l6ZUluQnl0ZXMpIHsKICAg
ICAgICAgICAgIC8vIENoZWNrIHN0YWNrIHNpemUKICAgICAgICAgICAgIG1faml0LmFkZFB0cihN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jYWxsRnJhbWVTaXplSW5CeXRlcyksIE1hY3Jv
QXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbV9yZWdzLnJlZ1QwKTsKLSNpZiBDUFUo
WDg2XzY0KSAmJiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlz
IHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdU
MTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2
UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKLSNl
bGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5n
Q29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0g
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBt
X3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgNCAqIHNpemVvZih2
b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOworCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhh
dCB0aGUgSklUZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0IHRoZSA1dGgg
YXJndW1lbnQgaXMgYSBNYXRjaGluZ0NvbnRleHRIb2xkZXIqCisgICAgICAgICAgICBmdW5jdGlv
bkNoZWNrczxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTg+KCk7CisgICAgICAgICAgICBmdW5j
dGlvbkNoZWNrczxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTE2PigpOworICAgICAgICAgICAg
ZnVuY3Rpb25DaGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHk4PigpOwor
ICAgICAgICAgICAgZnVuY3Rpb25DaGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRj
aE9ubHkxNj4oKTsKKworICAgICAgICAgICAgY29uc3RleHByIHVuc2lnbmVkIEFyZ051bSA9IDQ7
CisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA8IDV1CisgICAgICAgICAgICBHUFJS
ZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1lbnRHUFI8WWFyckNvZGVCbG9jazo6
WWFyckpJVENvZGU4LCBBcmdOdW0+KG1fcmVncy5yZWdUMSk7CisgICAgICAgICAgICBBU1NFUlQo
bWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5yZWdUMSk7CiAjZWxzZQotICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLm1hdGNoaW5n
Q29udGV4dDsKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2ppdC5nZXRB
cmd1bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgsIEFyZ051bT4oKTsKKyAgICAg
ICAgICAgIEFTU0VSVChtYXRjaGluZ0NvbnRleHQgPT0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dCk7
CiAjZW5kaWYKKwogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc3RhY2tPayA9IG1f
aml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3dPckVxdWFsLCBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhtYXRjaGluZ0NvbnRleHQsIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6b2Zmc2V0
T2ZTdGFja0xpbWl0KCkpLCBtX3JlZ3MucmVnVDApOwogCiAgICAgICAgICAgICAvLyBFeGNlZWRl
ZCBzdGFjayBsaW1pdCwgcHVudCB0byB0aGUgaW50ZXJwcmV0ZXIuCkBAIC00NjE4LDcgKzQ2MDUs
NyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNzZW1ibGVyJiBtX2pp
dDsKKyAgICBDQ2FsbEhlbHBlcnMmIG1faml0OwogICAgIGNvbnN0IFZNKiBtX3ZtOwogICAgIFlh
cnJDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogICAgIFlhcnJCb3llck1veWVyRGF0YSogbV9ib3ll
ck1vb3JlRGF0YTsKQEAgLTQ3MDYsNyArNDY5Myw3IEBAIHN0YXRpYyB2b2lkIGR1bXBDb21waWxl
RmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCiAKIHZvaWQgaml0Q29tcGlsZShZYXJy
UGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6
ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ssIEpJVENvbXBpbGVNb2RlIG1vZGUp
CiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBDQ2FsbEhlbHBlcnMgbWFzbTsKIAog
ICAgIEFTU0VSVChtb2RlID09IEpJVENvbXBpbGVNb2RlOjpNYXRjaE9ubHkgfHwgbW9kZSA9PSBK
SVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsKIApAQCAtNDcyNyw3ICs0NzE0LDcg
QEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5T
dHJpbmcsIENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9yICJObyBzdXBwb3J0IGZvciBpbmxpbmVk
IEpJVCdpbmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BVIC8gT1MgY29tYmluYXRpb24uIgog
I2VuZGlmCiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqIG1fY29tcGls
YXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgT3B0
aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUsIGNvbnN0IFZNKiB2
bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgTWFjcm9Bc3NlbWJsZXImIGpp
dCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQordm9pZCBqaXRDb21waWxlSW5saW5l
ZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3Qg
U3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFy
U2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9v
cmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJz
KQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7CiAgICAgWWFycjo6WWFyclBhdHRl
cm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJyb3JDb2RlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4MWZlNTE3YWFkZmJlNDk4ZDE4NWUzMDcy
MDVlNmEwNzMzLi42OWJkZThiOWU3NjMzNzU3ZmExZTFmYmQ2NTdiMjgyZTliMTQ5MDdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC00Myw5ICs0MywxMCBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotY2xhc3MgVk07CitjbGFzcyBDQ2FsbEhlbHBlcnM7CiBjbGFzcyBFeGVj
dXRhYmxlUG9vbDsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyOworY2xhc3MgVk07CiAKIG5hbWVzcGFj
ZSBZYXJyIHsKIApAQCAtMjcxLDEyICsyNzIsMTIgQEAgY2xhc3MgWWFyckNvZGVCbG9jayA6IHB1
YmxpYyBZYXJyQm95ZXJNb3llckRhdGEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2RlQmxvY2spOwogCi0gICAgdXNpbmcgWWFy
ckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVD
UFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNo
aW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcg
WWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0
LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBN
YXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVz
aW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3Qg
TENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZv
aWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwot
ICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCop
KGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVu
Z3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJf
Q0FMTDsKLQogcHVibGljOgorICAgIHVzaW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQYXRoUmV0dXJu
VHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdp
c3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqKSBZQVJSX0NB
TEw7CisgICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29u
c3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgs
IGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqKSBZQVJSX0NBTEw7CisgICAgdXNp
bmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBM
Q2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9p
ZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklU
Q29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5w
dXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNo
aW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FMTDsKKwogICAgIFlhcnJDb2RlQmxvY2soKSA9IGRl
ZmF1bHQ7CiAKICAgICB2b2lkIHNldEZhbGxCYWNrV2l0aEZhaWx1cmVSZWFzb24oSklURmFpbHVy
ZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7IG1fZmFpbHVyZVJlYXNvbiA9IGZhaWx1cmVSZWFzb247
IH0KQEAgLTMyNiw3ICszMjcsNyBAQCBwdWJsaWM6CiAgICAgSW5saW5lU3RhdHMmIGdldDhCaXRJ
bmxpbmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hPbmx5OFN0YXRzOyB9CiAgICAgSW5saW5lU3Rh
dHMmIGdldDE2Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiAgbV9tYXRjaE9ubHkxNlN0YXRzOyB9
CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQg
c3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIq
IGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NF
UlQoaGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTMzNiw3ICszMzcsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJy
SklUQ29kZTgsIFlhcnI4Qml0UHRyVGFnPihtX3JlZjguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNz
KCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAg
IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hh
ciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBN
YXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFT
U0VSVChoYXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM0Niw3ICszNDcsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZ
YXJySklUQ29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1hdGNoaW5nQ29udGV4dCkp
OwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1h
dGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1
dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
KiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGVNYXRj
aE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM1Niw3ICszNTcsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZU1h
dGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPihtX21hdGNoT25seTguY29kZSgpLmV4
ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBudWxscHRyLCBtYXRjaGlu
Z0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFy
KiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBV
Q2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2
Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtNDM5LDcgKzQ0MCw3IEBA
IHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYsIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hh
clNpemUsIFZNKiwgWWFyckNvZGVCbG9jCiAKIGNsYXNzIFlhcnJKSVRSZWdpc3RlcnM7CiAKLXZv
aWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRp
b25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRh
dGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29tcGls
ZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6
RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBDQ2FsbEhl
bHBlcnMmLCBZYXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRS
ZWdpc3RlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMu
aAppbmRleCBiYjgyMWNlODY3ZmUzOGUyOGYzNWNlNzA2YjliYzYwOTk0MmY3OWI0Li5iYmRkMWRm
YzgwOGVjYjgwYWFhZjBkNTA5ZDk5MDk4OTRkOWRlZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCkBAIC0zNCw3ICszNCwxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIG5hbWVzcGFjZSBZYXJyIHsKIAogc3RydWN0IFlhcnJKSVREZWZhdWx0UmVnaXN0
ZXJzIHsKLXB1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKDB4MTAwMDApOworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMigweGQ4MDApOworICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoMHhkYzAwKTsKKyAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhm
ZmZmZmMwMCk7CisKICNpZiBDUFUoQVJNX1RIVU1CMikKICAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBpbnB1dCA9IEFSTVJlZ2lzdGVyczo6cjA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgaW5kZXggPSBBUk1SZWdpc3RlcnM6OnIxOwpAQCAtNzAsMTUgKzc0LDEwIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdVbmljb2RlSW5wdXRBbmRUcmFpbCA9IEFS
TTY0UmVnaXN0ZXJzOjp4MTA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgdW5pY29kZVRl
bXAgPSBBUk02NFJlZ2lzdGVyczo6eDU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5p
dGlhbFN0YXJ0ID0gQVJNNjRSZWdpc3RlcnM6OngxMTsKLSAgICBzdGF0aWMgY29uc3RleHByIEdQ
UlJlZyBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTI7Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IEFSTTY0UmVnaXN0
ZXJzOjp4MTM7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgdHJhaWxpbmdTdXJyb2dhdGVU
YWcgPSBBUk02NFJlZ2lzdGVyczo6eDE0OwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGVu
ZE9mU3RyaW5nQWRkcmVzcyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTU7CiAKICAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjp4MDsKICAgICBz
dGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlcjIgPSBBUk02NFJlZ2lzdGVyczo6
eDE7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIg
c3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMw
MCk7CiAjZWxpZiBDUFUoTUlQUykKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9
IE1JUFNSZWdpc3RlcnM6OmEwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGluZGV4ID0g
TUlQU1JlZ2lzdGVyczo6YTE7CkBAIC0xMzcsMTEgKzEzNiw2IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gWDg2UmVnaXN0
ZXJzOjplZHg7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKDB4MTAwMDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MigweGQ4MDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJ
bW0zMiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHhkYzAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZm
ZmMwMCk7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKICAgICAvLyBBcmd1bWVudCByZWdpc3RlcnMKICAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IFJJU0NWNjRSZWdpc3RlcnM6OngxMDsK
QEAgLTE2NCwxMSArMTU4LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgcmV0dXJuUmVnaXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MTA7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDExOwot
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cHBs
ZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEwMDAw
KTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVh
ZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsK
LSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxp
bmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0
ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwogI2Vu
ZGlmCiB9OwogCkBAIC0yMDYsNiArMTk1LDcgQEAgcHVibGljOgogICAgIGNvbnN0IE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoMHhkODAwKTsKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRy
YWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDAp
OworICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFz
ayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiB9OwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0Nv
bnRleHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0Nv
bnRleHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcyNWRkOWZhMWVmYjY2
MDFlLi4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRl
ci5oCkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1lc3BhY2UgWWFyciB7
CiAKLWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29udGV4dEhvbGRlciB7
CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0gICAgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1hdGNoRnJvbSk7Cisg
ICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsK
ICAgICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9m
ZnNldE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNYXRjaGluZ0NvbnRl
eHRIb2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAg
ICBNYXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQ29k
ZUJsb2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKK2lubGluZSBNYXRj
aGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIGJvb2wgdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJv
bSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZyb20pCiB7CkBAIC03
NCwxMiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFyckMKICAgICB9CiAKICNpZiBFTkFC
TEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAoeWFyckNvZGVCbG9j
ayAmJiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSkgeworICAgIGlm
ICh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1
ZmZlciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsKICAgICAgICAg
bV9wYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRleHRCdWZmZXJTaXpl
OwogICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxvY2spOworICAgIFVO
VVNFRF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAgYi9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0hlYXAuY3BwCmluZGV4IDA0ZmJjY2FlNWRhMGE0MzQ3ZmE5ODFkMDY0YzBiN2I2MWUy
NGNiOWYuLjQwZjFkNzVmMTVjYmI1OTQ3ZDE4NmQyN2IwMGNhMWJmNmUxNWRjMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAKKysrIGIvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9IZWFwLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIEJJTkxJTkUgdm9pZCBIZWFwOjph
ZGp1c3RTdGF0KHNpemVfdCYgdmFsdWUsIHNzaXplX3QgYW1vdW50KQogCiBCSU5MSU5FIHZvaWQg
SGVhcDo6bG9nU3RhdChzaXplX3QgdmFsdWUsIHNzaXplX3QgYW1vdW50LCBjb25zdCBjaGFyKiBs
YWJlbCwgY29uc3QgY2hhciogbm90ZSkKIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiAlbHUg
KCVsZCkgJXNcbiIsIGxhYmVsLCB2YWx1ZSwgYW1vdW50LCBub3RlKTsKKyAgICBmcHJpbnRmKHN0
ZGVyciwgIiVzOiAlenUgKCV6ZCkgJXNcbiIsIGxhYmVsLCB2YWx1ZSwgYW1vdW50LCBub3RlKTsK
IH0KIAogQklOTElORSB2b2lkIEhlYXA6OmFkanVzdEZyZWVhYmxlTWVtb3J5KFVuaXF1ZUxvY2tI
b2xkZXImLCBzc2l6ZV90IGFtb3VudCwgY29uc3QgY2hhciogbm90ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449195</attachid>
            <date>2022-01-14 11:47:42 -0800</date>
            <delta_ts>2022-01-14 12:36:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220114194741.patch</filename>
            <type>text/plain</type>
            <size>34377</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi4wNDliMTllZDY4YTBmN2Yz
NmYzOWQ3MDQ2NTE0Y2ZlZGM2ZjRjNzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIHNvbWUgZHVwbGljYXRpb24g
ZnJvbSB0aGUgWWFyckpJVERlZmF1bHRSZWdpc3RlcnMgY2xhc3MuCisKKyAgICAgICAgNC4gUmVt
b3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29udGV4dEhvbGRl
cgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICA1LiBGaXhlZCBzb21lIHdhcm5pbmdz
IGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAgICAgICogeWFy
ci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIu
aDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRpZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4YjdhZWZjNGU3OWRj
NWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSogbm9kZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdFeHBUZXN0KG5v
ZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q0NhbGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5o
CmluZGV4IGFmYzVkY2M4OTllNzU2MzM5YTgxMTYzNGUyM2MyMTdiZGExY2NmNjQuLjY2MWQ0Njgx
OGI1NmFhYzZmOTU0ODZmYTIwOTRmOTJjZjNkZjQ3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaApAQCAtNjQ4LDcgKzY0OCw2IEBAIHByaXZhdGU6CiAgICAgfQog
CiAjdW5kZWYgQ1VSUkVOVF9BUkdVTUVOVF9UWVBFCi0jdW5kZWYgUkVTVUxUX1RZUEUKIAogICAg
IC8vIEJhc2UgY2FzZTsgc2V0IHVwIHRoZSBhcmd1bWVudCByZWdpc3RlcnMuCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQg
bnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNl
cywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2ln
bmVkIG5vbkFyZ0dQUnMsIHVuc2lnbmVkIGV4dHJhUG9rZT4KQEAgLTk5Miw2ICs5OTEsNTcgQEAg
cHVibGljOgogI2VuZGlmCiAgICAgICAgIHJldHVybiBwcmVmZXJyZWRBcmd1bWVudEpTUjxPcGVy
YXRpb25UeXBlLCBBcmdOdW0+KCkucGF5bG9hZEdQUigpOwogICAgIH0KKworcHJpdmF0ZToKKyAg
ICAvLyBJbiBjYXNlIHdlIGFyZSB0cnlpbmcgdG8gZ2V0IHRoZSBhcmd1bWVudCBmcm9tIGEgZnVu
Y3Rpb24gYnV0IHRoZXJlIGlzbid0IGVub3VnaCByZWdpc3RlcnMsIHRoaXMKKyAgICAvLyBmdW5j
dGlvbiB0cmllcyB0byBsb2FkIGl0IGZyb20gdGhlIHN0YWNrIHVzaW5nIHRoZSBzcC4gSW4gb3Jk
ZXIgZm9yIHRoaXMgdG8gd29yaywgdGhlIGZyYW1lIHBvaW50ZXIKKyAgICAvLyBtdXN0IGJlIHNl
dCBpbiB0aGUgZnVuY3Rpb24gcHJvbG9ndWUKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgT3BlcmF0
aW9uVHlwZSwgdW5zaWduZWQgQXJnTnVtPgorICAgIEdQUlJlZyBsb2FkQXJndW1lbnRGcm9tU3Rh
Y2soR1BSUmVnIHNjcmF0Y2hHUFIpCisgICAgeworICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAh
PSBHUFJSZWc6OkludmFsaWRHUFJSZWcsICJWYWxpZCBHUFIgbmVlZGVkIHRvIGxvYWQgdGhpcyBh
cmd1bWVudCIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KEFyZ051bSA+PSBOVU1CRVJfT0ZfQVJH
VU1FTlRfUkVHSVNURVJTLCAiU2hvdWxkIHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUlgiKTsK
KworICAgICAgICAvLyBUbyBsb2FkIHRoZSBhcmd1bWVudCBpbnRvIHNjcmF0Y2hHUFIgZnJvbSB0
aGUgc3RhY2sgdGhlIGZyYW1lIHBvaW50ZXIgbmVlZHMgdG8gYmUgc2V0IGF0IHRoZSBmdW5jdGlv
biBwcm9sb2d1ZSEKKworICAgICAgICAvLyBGb3IgbW9zdCBhcmNocyB0aGUgYXJndW1lbnQgd2ls
bCBiZSBwbGFjZSBhdCBmcCArIHJldHVybi1hZGRyZXNzICsgYXJnLW51bSAtIE51bWJlci1vZi1h
cmctcmVncywgZS5nLiwKKyAgICAgICAgLy8gdGhlIDV0aCBhcmd1bWVudCBvbiBBUk12NyB3aWxs
IGJlIHBsYWNlZCBhdCBmcCArIDIgKyA0IC0gNCA9IGZwICsgMiAqIHNpemVvZihwdHIqKSwgaG93
ZXZlciwgdGhhdCBhcmUgdHdvIGV4Y2VwdGlvbnM6CisKKyAgICAgICAgLy8gUE9LRV9BUkdVTUVO
VF9PRkZTRVQ6IG9uIE1JUFMgYW5kIFdpbmRvd3MgeDg2LCBzcGFjZSBpcyByZXNlcnZlZCBvbiB0
aGUgc3RhY2sgZm9yIGFsbCBhcmd1bWVudHMsIHNvIGluIHRoZXNlCisgICAgICAgIC8vIGFyY2hz
LCBhICs0IG9mZnNldCBpcyBhZGRlZC4gVGhlIDV0aCBhcmd1bWVudCBvbiBNSVBTIGlzIGZwICsg
NiAqIHNpemVvZihwdHIqKS4KKworICAgICAgICAvLyByZXR1cm5UeXBlT2Zmc2V0OiBXaW5kb3dz
IHg4NiBvbmx5LiBJZiB0aGUgcmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1iaXRzLCBpdCdzIHJl
dHVybmVkIHZpYSBhIHBvaW50ZXIgdGhhdCBpcworICAgICAgICAvLyBwYXNzZWQgYXMgYW4gaW1w
bGljaXQgZmlyc3QgYXJndW1lbnQsIGFuZCBhbGwgb3RoZXIgYXJndW1lbnRzIGFyZSBzaGlmdGVk
IHRvIHRoZSByaWdodCwgYWRkaW5nIGEgKzEgb2Zmc2V0LgorICAgICAgICAvLyBUaGUgNXRoIGFy
Z3VtZW50IG9uIFdpbmRvd3MgeDg2IGluIHRoaXMgc2NlbmFyaW8gaXMgZnAgKyA3ICogc2l6ZW9m
KHB0ciopLgorCisjaWYgT1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKKyAgICAgICAgY29uc3Rl
eHByIGludCByZXR1cm5UeXBlT2Zmc2V0ID0gc2l6ZW9mKFJFU1VMVF9UWVBFKSA+PSA4OworI2Vs
c2UKKyAgICAgICAgY29uc3RleHByIGludCByZXR1cm5UeXBlT2Zmc2V0ID0gMDsKKyNlbmRpZgor
ICAgICAgICBjb25zdGV4cHIgaW50IHJldHVybkFkZHJlc3NPZmZzZXQgPSAyOworICAgICAgICBj
b25zdGV4cHIgaW50IG9mZnNldCA9IEFyZ051bSAtIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RF
UlMgKyBQT0tFX0FSR1VNRU5UX09GRlNFVCArIHJldHVybkFkZHJlc3NPZmZzZXQgKyByZXR1cm5U
eXBlT2Zmc2V0OworICAgICAgICBsb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3Jv
QXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSks
IHNjcmF0Y2hHUFIpOworICAgICAgICByZXR1cm4gc2NyYXRjaEdQUjsKKyAgICB9CisKKyN1bmRl
ZiBSRVNVTFRfVFlQRQorCitwdWJsaWM6CisgICAgLy8gR2l2ZW4gYSBmdW5jdGlvbiBhbmQgYW4g
YXJndW1lbnQgbnVtYmVyLCBlaXRoZXIgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBhcmd1bWVu
dEdQUiBob2xkaW5nIHRoZSBhcmd1bWVudAorICAgIC8vIG9yIGl0IHRyaWVzIHRvIGxvYWQgdGhl
IGFyZ3VtZW50IGZyb20gdGhlIHN0YWNrIHVzaW5nIHRoZSBzY3JhdGNoR1BSIHBhc3NlZCBhcyBh
cmd1bWVudC4KKyAgICAvLyBOb3RlIHRoYXQgd2UgdXNlIDAgZm9yIHRoZSAxc3QgYXJndW1lbnQs
IDEgZm9yIHRoZSAybmQsIGV0Yy4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgT3BlcmF0aW9uVHlw
ZSwgdW5zaWduZWQgQXJnTnVtPgorICAgIEdQUlJlZyBnZXRBcmd1bWVudEdQUihHUFJSZWcgc2Ny
YXRjaEdQUiA9IEdQUlJlZzo6SW52YWxpZEdQUlJlZykKKyAgICB7CisgICAgICAgIHN0YXRpY19h
c3NlcnQoQXJnTnVtIDw9IDI1NSwgIkMrKyBzdGFuZGFyZCBmb3JiaWRzIGZ1bmN0aW9ucyB3aXRo
IG1vcmUgdGhhbiAyNTYgYXJndW1lbnRzIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rp
b25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OmNDYWxsQXJpdHkoKSA+IEFyZ051bSwgIkZ1bmN0aW9u
IGRvZXMgbm90IGhhdmUgZW5vdWdoIGFyZ3VtZW50cyIpOworCisgICAgICAgIGlmIGNvbnN0ZXhw
ciAoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMpCisgICAgICAgICAgICBy
ZXR1cm4gbG9hZEFyZ3VtZW50RnJvbVN0YWNrPE9wZXJhdGlvblR5cGUsIEFyZ051bT4oc2NyYXRj
aEdQUik7CisKKyAgICAgICAgcmV0dXJuIEdQUkluZm86OnRvQXJndW1lbnRSZWdpc3RlcihBcmdO
dW0pOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0dQUkluZm8uaAppbmRleCA1MmExM2FhYWZiNzdiNmU0NGZhN2ViMTkyYjA2ODQzYzJjY2I5MjI2
Li42MGE1YmVlMTViODIyMDc2NDY1MTIwZGY3NGU5NDA4ZDc4YmM3Y2Q3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0dQUkluZm8uaApAQCAtNjI2LDcgKzYyNiw3IEBAIGNsYXNzIEdQUkluZm8gewog
cHVibGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKICAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMTY7Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0Zf
QVJHVU1FTlRfUkVHSVNURVJTOwogCiAgICAgLy8gVGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBi
YXNlbGluZSBKSVQuCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0
ZXIgPSBBUk02NFJlZ2lzdGVyczo6ZnA7CkBAIC04MjUsNyArODI1LDcgQEAgY2xhc3MgR1BSSW5m
byB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJSZWcgUmVnaXN0ZXJUeXBlOwogICAgIHN0YXRp
YyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZSZWdpc3RlcnMgPSAxMzsKLSAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJF
Ul9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBj
YWxsRnJhbWVSZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OmZwOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIG51bWJlclRhZ1JlZ2lzdGVyID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDI1Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3
MDlkMWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4uNDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYw
MDAwMjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3Bw
CkBAIC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJlZ0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVy
cHJldGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBKSVRDb2RlOiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJy
Q29kZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdFeHBKSVRDb2RlLmdldCgpOwotICAgICAgICAg
ICAgc25wcmludGYoaml0OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgi
LCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlB
ZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0
QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxv
Y2suZ2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDhC
aXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOwotICAgICAgICAgICAgc25w
cmludGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAg
ICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4
JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4
Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNo
T25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAg
ICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJ
eFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hB
ZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRy
U2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVC
bG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxp
bmVzLmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQxNGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uOWM2
NTVmNDZhYjAwMTYyM2Q4ZTM0MmZlYzBlM2Q2ODg3ZWI1ZjhkMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAg
QUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVs
bE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBpZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAg
ICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAg
ICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhw
SklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNo
aW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQ
YXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBp
ZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUt
PmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0
VmVjdG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBt
X3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5s
ZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRl
KHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3Is
IHJlZ0V4cENvbnRleHQpLnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhw
SklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgo
KSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6
OkpJVENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcgKzE0Niw4IEBAIEFMV0FZU19JTkxJTkUgaW50
IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwg
Vk0mIHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIs
IHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICAgICAgY29uc3RleHByIGJvb2wgdXNlc1Bh
dHRlcm5Db250ZXh0QnVmZmVyID0gZmFsc2U7CisgICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hp
bmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZl
ciwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRl
cnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0
X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtMTYyLDcgKzE2Myw4IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxp
bmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNl
CiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdF
eHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAgICBjb25zdGV4
cHIgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIgPSBmYWxzZTsKKyAgICAgICAgWWFycjo6
TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIHVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlciwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJw
cmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9j
YXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2OCwx
MiBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9i
YWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7
CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAg
ICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVn
RXhwSklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVz
ZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBtYXRjaEZyb20pOwogCiAgICAgICAgICAg
ICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENv
ZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVn
RXhwQ29udGV4dCk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5l
eGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBD
b250ZXh0KTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3Jl
Z0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVu
Z3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhw
SklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgo
KSwgJnJlZ0V4cENvbnRleHQpOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJ
TkcpCkBAIC0yOTUsNyArMjk3LDggQEAgQUxXQVlTX0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6
Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QKICAgICBub25S
ZXR1cm5lZE92ZWN0b3IuZ3JvdyhvZmZzZXRWZWN0b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3Ig
PSBub25SZXR1cm5lZE92ZWN0b3IuZGF0YSgpOwogICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hp
bmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJv
bSk7CisgICAgICAgIGNvbnN0ZXhwciBib29sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IGZh
bHNlOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2
bSwgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCB0aGlzLCBtYXRjaEZyb20pOwogICAgICAgICBy
ZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRP
ZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9
CiAjaWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dFTgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFl
Li4wZWUzNjViOGIwMGM2MzYwMzYwMzUzODQ1YjU2NWY5OGI5OWJkNTcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJySklULmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIKIAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5o
IgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVk
ZSAiVk0uaCIKQEAgLTE4NiwxMCArMTg3LDYgQEAgc3RkOjp0dXBsZTxCb3llck1vb3JlQml0bWFw
OjpNYXAsIEJveWVyTW9vcmVGYXN0Q2FuZGlkYXRlcz4gQm95ZXJNb29yZUluZm86OmNyZWEKIHRl
bXBsYXRlPGNsYXNzIFlhcnJKSVRSZWdzID0gWWFyckpJVERlZmF1bHRSZWdpc3RlcnM+CiBjbGFz
cyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAotI2lmZGVmICBK
SVRfVU5JQ09ERV9FWFBSRVNTSU9OUwotICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhm
ZmZmZmMwMCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJF
U1NJT05TKQogICAgIHN0cnVjdCBQYXJlbkNvbnRleHRTaXplcyB7CiAgICAgICAgIHNpemVfdCBt
X251bVN1YnBhdHRlcm5zOwpAQCAtNjAzLDcgKzYwMCw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3Ig
ZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWdu
ZWQoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWls
KSwgcmVzdWx0UmVnKTsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFjdGVyIGEgbGVhZGluZyBz
dXJyb2dhdGU/Ci0gICAgICAgIG1faml0LmFuZDMyKFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzOjpz
dXJyb2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51bmljb2RlVGVtcCk7CisgICAgICAg
IG1faml0LmFuZDMyKG1fcmVncy5zdXJyb2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51
bmljb2RlVGVtcCk7CiAgICAgICAgIG5vdFVuaWNvZGUuYXBwZW5kKG1faml0LmJyYW5jaDMyKE1h
Y3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgbV9yZWdzLnVuaWNvZGVUZW1wLCBtX3JlZ3MubGVhZGlu
Z1N1cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8vIElzIHRoZSBpbnB1dCBsb25nIGVub3VnaCB0
byByZWFkIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwpAQCAtNjEyLDcgKzYwOSw3IEBAIGNsYXNzIFlh
cnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAgICAgICAgIC8vIElz
IHRoZSBjaGFyYWN0ZXIgYSB0cmFpbGluZyBzdXJyb2dhdGU/CiAgICAgICAgIG1faml0LmxvYWQx
NlVuYWxpZ25lZChNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtX3JlZ3MucmVnVW5pY29kZUlucHV0
QW5kVHJhaWwpLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpOwotICAgICAgICBtX2pp
dC5hbmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVyczo6c3Vycm9nYXRlVGFnTWFzaywgbV9yZWdz
LnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXApOworICAgICAgICBt
X2ppdC5hbmQzMihtX3JlZ3Muc3Vycm9nYXRlVGFnTWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1
dEFuZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXApOwogICAgICAgICBub3RVbmljb2RlLmFwcGVu
ZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG1fcmVncy51bmljb2Rl
VGVtcCwgbV9yZWdzLnRyYWlsaW5nU3Vycm9nYXRlVGFnKSk7CiAKICAgICAgICAgLy8gQ29tYmlu
ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzdXJyb2dhdGVzIHRvIHByb2R1Y2UgYSBjb2RlIHBvaW50
LgpAQCAtMzk2MSwxMCArMzk1OCw5IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJs
aWMgWWFyckpJVEluZm8gewogCiAgICAgdm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7Ci0jaWYg
Q1BVKFg4Nl82NCkKLSAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7Ci0gICAg
ICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBYODZS
ZWdpc3RlcnM6OmVicCk7CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAK
KyNpZiBDUFUoWDg2XzY0KQogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFy
dFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVieCk7CiAKQEAg
LTM5ODcsMzEgKzM5ODMsMTYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZ
YXJySklUSW5mbyB7CiAgICAgICAgIH0KICNpZiBPUyhXSU5ET1dTKQogICAgICAgICBpZiAobV9j
b21waWxlTW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKQotICAgICAg
ICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6
OmVicCwgNiAqIHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0cHV0KTsKKyAgICAgICAgICAgIG1f
aml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1l
UG9pbnRlclJlZ2lzdGVyLCA2ICogc2l6ZW9mKHZvaWQqKSksIG1fcmVncy5vdXRwdXQpOwogICAg
ICAgICAvLyByY3ggaXMgdGhlIHBvaW50ZXIgdG8gdGhlIGFsbG9jYXRlZCBzcGFjZSBmb3IgcmVz
dWx0IGluIHg2NCBXaW5kb3dzLgogICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWN4
KTsKICNlbmRpZgotI2VsaWYgQ1BVKEFSTTY0KQotICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJ
VENhZ2UoKSkKLSAgICAgICAgICAgIG1faml0LnRhZ1JldHVybkFkZHJlc3MoKTsKLSAgICAgICAg
aWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKLSAgICAgICAgICAgIGlmICghT3B0aW9uczo6
dXNlSklUQ2FnZSgpKQotICAgICAgICAgICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1i
bGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7
Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgx
MDAwMCksIG1fcmVncy5zdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSk7Ci0gICAgICAgICAgICBtX2pp
dC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKSwgbV9yZWdzLmxlYWRp
bmdTdXJyb2dhdGVUYWcpOwotICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKDB4ZGMwMCksIG1fcmVncy50cmFpbGluZ1N1cnJvZ2F0ZVRhZyk7Ci0gICAg
ICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lz
dGVyczo6cjQpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjUpOwogICAgICAg
ICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJl
Z2lzdGVyczo6cjgpOwogICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjEwKTsKLSNl
bGlmIENQVShSSVNDVjY0KQotICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykKLSAg
ICAgICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdp
c3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7Ci0jZWxpZiBDUFUoTUlQUykKLSAg
ICAgICAgLy8gRG8gbm90aGluZy4KICNlbmRpZgogICAgIH0KIApAQCAtNDA1MiwyNyArNDAzMywy
MSBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAog
ICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAg
ICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKLSAgICAgICAgbV9qaXQucG9wKFg4NlJl
Z2lzdGVyczo6ZWJwKTsKLSNlbGlmIENQVShBUk02NCkKLSAgICAgICAgaWYgKG1fZGVjb2RlU3Vy
cm9nYXRlUGFpcnMpIHsKLSAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQot
ICAgICAgICAgICAgICAgIG1faml0LnBvcFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRl
clJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKLSAgICAgICAgfQogI2Vs
aWYgQ1BVKEFSTV9USFVNQjIpCiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnIxMCk7
CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI4KTsKICAgICAgICAgbV9qaXQucG9w
KEFSTVJlZ2lzdGVyczo6cjYpOwogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0ZXJzOjpyNSk7
CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI0KTsKLSNlbGlmIENQVShSSVNDVjY0
KQotICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykKLSAgICAgICAgICAgIG1faml0
LnBvcFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2Vt
Ymxlcjo6bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBTKQotICAgICAgICAvLyBEbyBub3Ro
aW5nCiAjZW5kaWYKKworICAgIG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CisKICNpZiBD
UFUoQVJNNjRFKQotICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKQorICAgICAgICBp
ZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKSB7CisgICAgICAgICAgICBtX2ppdC51bnRhZ1JldHVy
bkFkZHJlc3MoKTsKICAgICAgICAgICAgIG1faml0LmZhckp1bXAoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9wZXJhdGlv
blB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25QdHJUYWcpOworICAg
ICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1faml0LnJldCgpOwogI2Vsc2UKQEAg
LTQwODYsNyArNDA2MSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFy
ckpJVEluZm8gewogICAgIH0KIAogcHVibGljOgotICAgIFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3Nl
bWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0
IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBw
YXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1v
ZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZ
YXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0
dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFy
U2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQog
ICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2soY29kZUJsb2NrKQpAQCAt
NDEwNSw3ICs0MDgwLDcgQEAgcHVibGljOgogICAgICAgICBtX2JveWVyTW9vcmVEYXRhID0gc3Rh
dGljX2Nhc3Q8WWFyckJveWVyTW95ZXJEYXRhKj4obV9jb2RlQmxvY2spOwogICAgIH0KIAotICAg
IFlhcnJHZW5lcmF0b3IoTWFjcm9Bc3NlbWJsZXImIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95
ZXJNb3llckRhdGEqIHlhcnJCTURhdGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0
dGVybiYgcGF0dGVybiwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFy
U2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEqIHlhcnJCTURh
dGEsIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29uc3Qg
U3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUg
Y29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9qaXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAg
ICAgICAgICwgbV9jb2RlQmxvY2sobnVsbHB0cikKQEAgLTQxMzksNiArNDExNCwxMyBAQCBwdWJs
aWM6CiAgICAgICAgIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIgPSBzdGFja0NoZWNr
ZXI7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZT4KKyAgICBz
dGF0aWMgY29uc3RleHByIHZvaWQgZnVuY3Rpb25DaGVja3MoKQorICAgIHsKKyAgICAgICAgc3Rh
dGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6Y0NhbGxBcml0eSgpID09
IDUsICJZYXJySklUQ29kZSB0YWtlcyA1IGFyZ3VtZW50cyIpOworICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfc2FtZTxNYXRjaGluZ0NvbnRleHRIb2xkZXIqLCB0eXBlbmFtZSBGdW5jdGlv
blRyYWl0czxPcGVyYXRpb25UeXBlPjo6dGVtcGxhdGUgQXJndW1lbnRUeXBlPDQ+Pjo6dmFsdWUs
ICJNYXRjaGluZ0NvbnRleHRIb2xkZXIqIGlzIGV4cGVjdGVkIGFzIHRoZSBmdW5jdGlvbiA1dGgg
YXJndW1lbnQiKTsKKyAgICB9CisKICAgICB2b2lkIGNvbXBpbGUoWWFyckNvZGVCbG9jayYgY29k
ZUJsb2NrKQogICAgIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHN0YXJ0T2ZNYWlu
Q29kZTsKQEAgLTQxOTEsMTcgKzQxNzMsMjIgQEAgcHVibGljOgogICAgICAgICBpZiAoY2FsbEZy
YW1lU2l6ZUluQnl0ZXMpIHsKICAgICAgICAgICAgIC8vIENoZWNrIHN0YWNrIHNpemUKICAgICAg
ICAgICAgIG1faml0LmFkZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC1jYWxsRnJh
bWVTaXplSW5CeXRlcyksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgbV9y
ZWdzLnJlZ1QwKTsKLSNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQotICAgICAgICAgICAg
Ly8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRo
ZSBzdGFjay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5n
Q29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwg
bWF0Y2hpbmdDb250ZXh0KTsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKLSAg
ICAgICAgICAgIC8vIG1hdGNoaW5nQ29udGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBm
b3VuZCBvbiB0aGUgc3RhY2suCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJ
RCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2Fk
UHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJS
ZWdpc3RlciwgNCAqIHNpemVvZih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOworCisgICAgICAg
ICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgSklUZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0
ZXJzIGFuZCB0aGF0IHRoZSA1dGggYXJndW1lbnQgaXMgYSBNYXRjaGluZ0NvbnRleHRIb2xkZXIq
CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTg+
KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29k
ZTE2PigpOworICAgICAgICAgICAgZnVuY3Rpb25DaGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJ
VENvZGVNYXRjaE9ubHk4PigpOworICAgICAgICAgICAgZnVuY3Rpb25DaGVja3M8WWFyckNvZGVC
bG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNj4oKTsKKworICAgICAgICAgICAgY29uc3RleHBy
IHVuc2lnbmVkIEFyZ051bSA9IDQ7CisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA8
IDV1CisgICAgICAgICAgICBHUFJSZWcgbWF0Y2hpbmdDb250ZXh0ID0gbV9qaXQuZ2V0QXJndW1l
bnRHUFI8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGU4LCBBcmdOdW0+KG1fcmVncy5yZWdUMSk7
CisgICAgICAgICAgICBBU1NFUlQobWF0Y2hpbmdDb250ZXh0ID09IG1fcmVncy5yZWdUMSk7CiAj
ZWxzZQotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hpbmdDb250
ZXh0ID0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dDsKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGlu
Z0NvbnRleHQgPSBtX2ppdC5nZXRBcmd1bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29k
ZTgsIEFyZ051bT4oKTsKKyAgICAgICAgICAgIEFTU0VSVChtYXRjaGluZ0NvbnRleHQgPT0gbV9y
ZWdzLm1hdGNoaW5nQ29udGV4dCk7CiAjZW5kaWYKKwogICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgc3RhY2tPayA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6QmVsb3dP
ckVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhtYXRjaGluZ0NvbnRleHQsIE1hdGNoaW5n
Q29udGV4dEhvbGRlcjo6b2Zmc2V0T2ZTdGFja0xpbWl0KCkpLCBtX3JlZ3MucmVnVDApOwogCiAg
ICAgICAgICAgICAvLyBFeGNlZWRlZCBzdGFjayBsaW1pdCwgcHVudCB0byB0aGUgaW50ZXJwcmV0
ZXIuCkBAIC00NjE4LDcgKzQ2MDUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAg
IE1hY3JvQXNzZW1ibGVyJiBtX2ppdDsKKyAgICBDQ2FsbEhlbHBlcnMmIG1faml0OwogICAgIGNv
bnN0IFZNKiBtX3ZtOwogICAgIFlhcnJDb2RlQmxvY2sqIG1fY29kZUJsb2NrOwogICAgIFlhcnJC
b3llck1veWVyRGF0YSogbV9ib3llck1vb3JlRGF0YTsKQEAgLTQ3MDYsNyArNDY5Myw3IEBAIHN0
YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCiAK
IHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ss
IEpJVENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBD
Q2FsbEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2RlID09IEpJVENvbXBpbGVNb2RlOjpN
YXRjaE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsK
IApAQCAtNDcyNyw3ICs0NzE0LDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0
ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9yICJO
byBzdXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BV
IC8gT1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0
KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUg
Y2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0
YSwgTWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQor
dm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVh
ZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFy
cjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95
ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJl
Z2lzdGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7
CiAgICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJy
b3JDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4MWZl
NTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi42OWJkZThiOWU3NjMzNzU3ZmExZTFmYmQ2
NTdiMjgyZTliMTQ5MDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC00
Myw5ICs0MywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgVk07CitjbGFzcyBDQ2Fs
bEhlbHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyOwor
Y2xhc3MgVk07CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApAQCAtMjcxLDEyICsyNzIsMTIgQEAgY2xh
c3MgWWFyckNvZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95ZXJNb3llckRhdGEgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2RlQmxv
Y2spOwogCi0gICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShj
b25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0
aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZ
QVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAo
KikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4
dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRo
UmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVD
UFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5n
Q29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBT
bG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0
YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBt
YXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLQogcHVibGljOgorICAgIHVzaW5nIFlhcnJKSVRD
b2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVn
aXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIqKSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQ
YXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQs
IFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIq
KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhS
ZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQ
VVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FM
TDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBl
ICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVy
IGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FMTDsKKwogICAg
IFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIHNldEZhbGxCYWNrV2l0aEZh
aWx1cmVSZWFzb24oSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7IG1fZmFpbHVyZVJl
YXNvbiA9IGZhaWx1cmVSZWFzb247IH0KQEAgLTMyNiw3ICszMjcsNyBAQCBwdWJsaWM6CiAgICAg
SW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hPbmx5OFN0
YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdldDE2Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiAg
bV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExD
aGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQs
IE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0
IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVu
Z3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQp
CiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkK
QEAgLTMzNiw3ICszMzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1
bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTgsIFlhcnI4Qml0UHRyVGFnPihtX3JlZjguY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1h
dGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3Qg
VUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1
dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1
bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4
dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0
RSkKQEAgLTM0Niw3ICszNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3Vs
dCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+KG1fcmVm
MTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRw
dXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUo
Y29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRj
aGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVj
dXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBB
U1NFUlQoaGFzOEJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM1Niw3
ICszNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5j
dGlvblB0cjxZYXJySklUQ29kZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPiht
X21hdGNoT25seTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVu
Z3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3Vs
dCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxl
bmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hS
ZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRF
KQpAQCAtNDM5LDcgKzQ0MCw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYsIFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUsIFZNKiwgWWFyckNvZGVCbG9jCiAKIGNsYXNzIFlh
cnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sq
LCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3Qg
Vk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRSZWdpc3Rl
cnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJp
bmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95
ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMmLCBZYXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYK
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAppbmRleCBiYjgyMWNlODY3ZmUzOGUyOGYzNWNlNzA2Yjli
YzYwOTk0MmY3OWI0Li5iYmRkMWRmYzgwOGVjYjgwYWFhZjBkNTA5ZDk5MDk4OTRkOWRlZThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCkBAIC0z
NCw3ICszNCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBZYXJyIHsKIAogc3RydWN0
IFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzIHsKLXB1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHBy
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOworICAgIHN0YXRpYyBjb25zdGV4
cHIgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOworICAgIHN0YXRpYyBjb25zdGV4cHIg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKKyAgICBzdGF0aWMgY29uc3RleHByIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CisKICNpZiBDUFUoQVJNX1RIVU1CMikKICAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IEFSTVJlZ2lzdGVyczo6cjA7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgaW5kZXggPSBBUk1SZWdpc3RlcnM6OnIxOwpAQCAtNzAs
MTUgKzc0LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZWdVbmlj
b2RlSW5wdXRBbmRUcmFpbCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTA7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgdW5pY29kZVRlbXAgPSBBUk02NFJlZ2lzdGVyczo6eDU7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgaW5pdGlhbFN0YXJ0ID0gQVJNNjRSZWdpc3RlcnM6OngxMTsKLSAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IEFSTTY0
UmVnaXN0ZXJzOjp4MTI7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbGVhZGluZ1N1cnJv
Z2F0ZVRhZyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTM7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBHUFJS
ZWcgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBBUk02NFJlZ2lzdGVyczo6eDE0OwogICAgIHN0YXRp
YyBjb25zdGV4cHIgR1BSUmVnIGVuZE9mU3RyaW5nQWRkcmVzcyA9IEFSTTY0UmVnaXN0ZXJzOjp4
MTU7CiAKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3RlciA9IEFSTTY0
UmVnaXN0ZXJzOjp4MDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyByZXR1cm5SZWdpc3Rl
cjIgPSBBUk02NFJlZ2lzdGVyczo6eDE7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoTUlQUykKICAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyBpbnB1dCA9IE1JUFNSZWdpc3RlcnM6OmEwOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgR1BSUmVnIGluZGV4ID0gTUlQU1JlZ2lzdGVyczo6YTE7CkBAIC0xMzcsMTEgKzEzNiw2
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHJldHVyblJlZ2lzdGVy
ID0gWDg2UmVnaXN0ZXJzOjplYXg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJu
UmVnaXN0ZXIyID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0KLSAgICBzdGF0aWMgY29uc3RleHByIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIg
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOwotICAgIHN0YXRpYyBjb25zdGV4cHIgTWFj
cm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNz
ZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkYzAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKICAgICAvLyBB
cmd1bWVudCByZWdpc3RlcnMKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBpbnB1dCA9IFJJ
U0NWNjRSZWdpc3RlcnM6OngxMDsKQEAgLTE2NCwxMSArMTU4LDYgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJz
Ojp4MTA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIyID0gUklT
Q1Y2NFJlZ2lzdGVyczo6eDExOwotCi0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMigweDEwMDAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tMzIoMHhkODAwKTsKLSAgICBzdGF0aWMgY29uc3RleHByIE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKDB4ZGMwMCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKDB4ZmZmZmZjMDApOwogI2VuZGlmCiB9OwogCkBAIC0yMDYsNiArMTk1LDcgQEAgcHVibGlj
OgogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBs
YW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApOwogICAgIGNv
bnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsKICAgICBjb25zdCBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMigweGRjMDApOworICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhm
ZmZmZmMwMCk7CiB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAppbmRleCAxMzlkMWZlMzViNTc1Yzcw
YTA1YTdlNzcyNWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJmZjU3ZjJhOTNiNjYxNzkzOGQyZGJj
NWRlYzhhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0
Y2hpbmdDb250ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCkBAIC0zNywxMiArMzcsMTAgQEAgY2xhc3MgUmVnRXhw
OwogCiBuYW1lc3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJDb2RlQmxvY2s7Ci0KIGNsYXNzIE1h
dGNoaW5nQ29udGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJRF9IRUFQX0FMTE9DQVRJT047CiBw
dWJsaWM6Ci0gICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgWWFyckNvZGVCbG9jayosIFJl
Z0V4cCosIE1hdGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiwgYm9vbCwg
UmVnRXhwKiwgTWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdDb250ZXh0SG9sZGVyKCk7CiAKICAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1pdCgpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihNYXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3RhY2tMaW1pdCk7IH0KQEAgLTYxLDcg
KzU5LDcgQEAgcHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9tYXRjaEZyb207CiB9OwogCi1pbmxp
bmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZ
YXJyQ29kZUJsb2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1h
dGNoRnJvbSkKK2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlcihWTSYgdm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCBSZWdFeHAqIHJlZ0V4
cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX21hdGNoRnJv
bShtYXRjaEZyb20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAgaW5saW5lIE1hdGNoaW5nQ29udGV4
dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFy
ckMKICAgICB9CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykK
LSAgICBpZiAoeWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJsb2NrLT51c2VzUGF0dGVybkNvbnRl
eHRCdWZmZXIoKSkgeworICAgIGlmICh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIpIHsKICAgICAg
ICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNxdWlyZVJlZ0V4cFBhdHRlcm5Db250
ZXhCdWZmZXIoKTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemUgPSBWTTo6cGF0
dGVybkNvbnRleHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHlh
cnJDb2RlQmxvY2spOworICAgIFVOVVNFRF9QQVJBTSh1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIp
OwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5j
cHAgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCmluZGV4IDA0ZmJjY2FlNWRhMGE0
MzQ3ZmE5ODFkMDY0YzBiN2I2MWUyNGNiOWYuLjQwZjFkNzVmMTVjYmI1OTQ3ZDE4NmQyN2IwMGNh
MWJmNmUxNWRjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAK
KysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBA
IEJJTkxJTkUgdm9pZCBIZWFwOjphZGp1c3RTdGF0KHNpemVfdCYgdmFsdWUsIHNzaXplX3QgYW1v
dW50KQogCiBCSU5MSU5FIHZvaWQgSGVhcDo6bG9nU3RhdChzaXplX3QgdmFsdWUsIHNzaXplX3Qg
YW1vdW50LCBjb25zdCBjaGFyKiBsYWJlbCwgY29uc3QgY2hhciogbm90ZSkKIHsKLSAgICBmcHJp
bnRmKHN0ZGVyciwgIiVzOiAlbHUgKCVsZCkgJXNcbiIsIGxhYmVsLCB2YWx1ZSwgYW1vdW50LCBu
b3RlKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiAlenUgKCV6ZCkgJXNcbiIsIGxhYmVsLCB2
YWx1ZSwgYW1vdW50LCBub3RlKTsKIH0KIAogQklOTElORSB2b2lkIEhlYXA6OmFkanVzdEZyZWVh
YmxlTWVtb3J5KFVuaXF1ZUxvY2tIb2xkZXImLCBzc2l6ZV90IGFtb3VudCwgY29uc3QgY2hhciog
bm90ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449208</attachid>
            <date>2022-01-14 12:36:35 -0800</date>
            <delta_ts>2022-01-17 12:44:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220114203634.patch</filename>
            <type>text/plain</type>
            <size>30533</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi41MDBkNmI0ZDQ3MWQyZTEx
NWFhMTkzOWMxYzk3N2JjZTViMzRkOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBu
ZXcgbWV0aG9kIHRvIENDYWxsSGVscGVycyB0byByZXRyaWV2ZSBhIHJlZ2lzdGVyCisgICAgICAg
IHdpdGggdGhlIDV0aCBhcmd1bWVudCwgZWl0aGVyIGJ5IHJldHVybmluZyB0aGUgYXJndW1lbnQg
cmVnaXN0ZXIKKyAgICAgICAgKGlmIHRoZSBhcmNoIHN1cHBvcnRzIGl0KSwgb3IgaXQgbG9hZHMg
dGhlIDV0aCBhcmd1bWVudCBmcm9tIHRoZQorICAgICAgICBzdGFjaywgYnkgY2FsY3VsYXRpbmcg
dGhlIGNvcnJlY3Qgb2Zmc2V0IGZyb20gdGhlIGZyYW1lIHBvaW50ZXIuIFRoaXMKKyAgICAgICAg
aXMgYWxsIGRvbmUgYXQgY29tcGlsZS10aW1lLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBp
bnRyb2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBDaGFuZ2VkIFlhcnJK
SVQgdG8gY2FsbCBlbWl0RnVuY3Rpb25Qcm9sb2d1ZS9lbWl0RnVuY3Rpb25FcGlsb2d1ZQorICAg
ICAgICB3aGVuIGVudGVyaW5nL2V4aXRpbmcgdGhlIEpJVGVkIGNvZGUuIFRoaXMgaXMgY3J1Y2lh
bCBiZWNhdXNlIHRoZXNlCisgICAgICAgIGZ1bmN0aW9ucyBzZXQvdW5zZXQgdGhlIGZwLCBuZWVk
ZWQgYnkgdGhlIG5ldyBjb2RlIHRoYXQgbG9hZHMgdGhlIDV0aAorICAgICAgICBhcmd1bWVudCBm
cm9tIHRoZSBzdGFjay4KKworICAgICAgICAyLiBBZGRlZCBzdGF0aWNfYXNzZXJ0cyB0aGF0IHRo
ZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisgICAgICAgIGFuZCB0
aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhwZWN0IChNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAzLiBSZW1vdmVkIGFuIHVubmVjZXNzYXJ5IHBv
aW50ZXIgZnJvbSB0aGUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyCisgICAgICAgIGNvbnN0cnVjdG9y
LgorCisgICAgICAgIDQuIEZpeGVkIHNvbWUgd2FybmluZ3MgaW4gdGhlIFlhcnJKSVQgY29kZSBo
ZXJlIGFuZCB0aGVyZS4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxp
bmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpS
ZWdFeHA6Om1hdGNoSW5saW5lKToKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorICAgICAg
ICAqIHlhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oOgorICAgICAgICAoSlNDOjpZYXJy
OjpNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcik6CisKIDIwMjIt
MDEtMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cg
bG9vcCB0aWVyIHVwIHRvIHRoZSBBaXIgdGllcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMDc4YmJlMzllYWJiNWUzZWQyYzhj
YjhjMTgwMmMwNThmYjM2Y2FmOS4uZThiN2FlZmM0ZTc5ZGM1ZTFlZWViNmExYTFjMDY3ODBmYTdj
MzNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCkBAIC0yODg4LDcgKzI4ODgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlUmVnRXhwVGVzdElubGluZShOb2RlKiBub2RlKQogewogICAgIFVOVVNFRF9QQVJBTShub2Rl
KTsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gY29tcGlsZVJlZ0V4cFRl
c3Qobm9kZSk7CisgICAgY29tcGlsZVJlZ0V4cFRlc3Qobm9kZSk7CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKaW5kZXggYWZjNWRjYzg5OWU3NTYz
MzlhODExNjM0ZTIzYzIxN2JkYTFjY2Y2NC4uNjYxZDQ2ODE4YjU2YWFjNmY5NTQ4NmZhMjA5NGY5
MmNmM2RmNDczNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhl
bHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCkBA
IC02NDgsNyArNjQ4LDYgQEAgcHJpdmF0ZToKICAgICB9CiAKICN1bmRlZiBDVVJSRU5UX0FSR1VN
RU5UX1RZUEUKLSN1bmRlZiBSRVNVTFRfVFlQRQogCiAgICAgLy8gQmFzZSBjYXNlOyBzZXQgdXAg
dGhlIGFyZ3VtZW50IHJlZ2lzdGVycy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25U
eXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25l
ZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1Nv
dXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJncywgdW5zaWduZWQgbm9uQXJnR1BScywgdW5zaWdu
ZWQgZXh0cmFQb2tlPgpAQCAtOTkyLDYgKzk5MSw1NyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICAg
ICAgcmV0dXJuIHByZWZlcnJlZEFyZ3VtZW50SlNSPE9wZXJhdGlvblR5cGUsIEFyZ051bT4oKS5w
YXlsb2FkR1BSKCk7CiAgICAgfQorCitwcml2YXRlOgorICAgIC8vIEluIGNhc2Ugd2UgYXJlIHRy
eWluZyB0byBnZXQgdGhlIGFyZ3VtZW50IGZyb20gYSBmdW5jdGlvbiBidXQgdGhlcmUgaXNuJ3Qg
ZW5vdWdoIHJlZ2lzdGVycywgdGhpcworICAgIC8vIGZ1bmN0aW9uIHRyaWVzIHRvIGxvYWQgaXQg
ZnJvbSB0aGUgc3RhY2sgdXNpbmcgdGhlIHNwLiBJbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB0
aGUgZnJhbWUgcG9pbnRlcgorICAgIC8vIG11c3QgYmUgc2V0IGluIHRoZSBmdW5jdGlvbiBwcm9s
b2d1ZQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBBcmdO
dW0+CisgICAgR1BSUmVnIGxvYWRBcmd1bWVudEZyb21TdGFjayhHUFJSZWcgc2NyYXRjaEdQUikK
KyAgICB7CisgICAgICAgIEFTU0VSVChzY3JhdGNoR1BSICE9IEdQUlJlZzo6SW52YWxpZEdQUlJl
ZywgIlZhbGlkIEdQUiBuZWVkZWQgdG8gbG9hZCB0aGlzIGFyZ3VtZW50Iik7CisgICAgICAgIHN0
YXRpY19hc3NlcnQoQXJnTnVtID49IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMsICJTaG91
bGQgcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSWCIpOworCisgICAgICAgIC8vIFRvIGxvYWQg
dGhlIGFyZ3VtZW50IGludG8gc2NyYXRjaEdQUiBmcm9tIHRoZSBzdGFjayB0aGUgZnJhbWUgcG9p
bnRlciBuZWVkcyB0byBiZSBzZXQgYXQgdGhlIGZ1bmN0aW9uIHByb2xvZ3VlIQorCisgICAgICAg
IC8vIEZvciBtb3N0IGFyY2hzIHRoZSBhcmd1bWVudCB3aWxsIGJlIHBsYWNlIGF0IGZwICsgcmV0
dXJuLWFkZHJlc3MgKyBhcmctbnVtIC0gTnVtYmVyLW9mLWFyZy1yZWdzLCBlLmcuLAorICAgICAg
ICAvLyB0aGUgNXRoIGFyZ3VtZW50IG9uIEFSTXY3IHdpbGwgYmUgcGxhY2VkIGF0IGZwICsgMiAr
IDQgLSA0ID0gZnAgKyAyICogc2l6ZW9mKHB0ciopLCBob3dldmVyLCB0aGF0IGFyZSB0d28gZXhj
ZXB0aW9uczoKKworICAgICAgICAvLyBQT0tFX0FSR1VNRU5UX09GRlNFVDogb24gTUlQUyBhbmQg
V2luZG93cyB4ODYsIHNwYWNlIGlzIHJlc2VydmVkIG9uIHRoZSBzdGFjayBmb3IgYWxsIGFyZ3Vt
ZW50cywgc28gaW4gdGhlc2UKKyAgICAgICAgLy8gYXJjaHMsIGEgKzQgb2Zmc2V0IGlzIGFkZGVk
LiBUaGUgNXRoIGFyZ3VtZW50IG9uIE1JUFMgaXMgZnAgKyA2ICogc2l6ZW9mKHB0ciopLgorCisg
ICAgICAgIC8vIHJldHVyblR5cGVPZmZzZXQ6IFdpbmRvd3MgeDg2IG9ubHkuIElmIHRoZSByZXR1
cm4gdHlwZSB3aWRlciB0aGFuIDY0LWJpdHMsIGl0J3MgcmV0dXJuZWQgdmlhIGEgcG9pbnRlciB0
aGF0IGlzCisgICAgICAgIC8vIHBhc3NlZCBhcyBhbiBpbXBsaWNpdCBmaXJzdCBhcmd1bWVudCwg
YW5kIGFsbCBvdGhlciBhcmd1bWVudHMgYXJlIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LCBhZGRpbmcg
YSArMSBvZmZzZXQuCisgICAgICAgIC8vIFRoZSA1dGggYXJndW1lbnQgb24gV2luZG93cyB4ODYg
aW4gdGhpcyBzY2VuYXJpbyBpcyBmcCArIDcgKiBzaXplb2YocHRyKikuCisKKyNpZiBPUyhXSU5E
T1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICBjb25zdGV4cHIgaW50IHJldHVyblR5cGVPZmZz
ZXQgPSBzaXplb2YoUkVTVUxUX1RZUEUpID49IDg7CisjZWxzZQorICAgICAgICBjb25zdGV4cHIg
aW50IHJldHVyblR5cGVPZmZzZXQgPSAwOworI2VuZGlmCisgICAgICAgIGNvbnN0ZXhwciBpbnQg
cmV0dXJuQWRkcmVzc09mZnNldCA9IDI7CisgICAgICAgIGNvbnN0ZXhwciBpbnQgb2Zmc2V0ID0g
QXJnTnVtIC0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyArIFBPS0VfQVJHVU1FTlRfT0ZG
U0VUICsgcmV0dXJuQWRkcmVzc09mZnNldCArIHJldHVyblR5cGVPZmZzZXQ7CisgICAgICAgIGxv
YWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRl
clJlZ2lzdGVyLCBvZmZzZXQgKiBzaXplb2Yodm9pZCopKSwgc2NyYXRjaEdQUik7CisgICAgICAg
IHJldHVybiBzY3JhdGNoR1BSOworICAgIH0KKworI3VuZGVmIFJFU1VMVF9UWVBFCisKK3B1Ymxp
YzoKKyAgICAvLyBHaXZlbiBhIGZ1bmN0aW9uIGFuZCBhbiBhcmd1bWVudCBudW1iZXIsIGVpdGhl
ciB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFyZ3VtZW50R1BSIGhvbGRpbmcgdGhlIGFyZ3Vt
ZW50CisgICAgLy8gb3IgaXQgdHJpZXMgdG8gbG9hZCB0aGUgYXJndW1lbnQgZnJvbSB0aGUgc3Rh
Y2sgdXNpbmcgdGhlIHNjcmF0Y2hHUFIgcGFzc2VkIGFzIGFyZ3VtZW50LgorICAgIC8vIE5vdGUg
dGhhdCB3ZSB1c2UgMCBmb3IgdGhlIDFzdCBhcmd1bWVudCwgMSBmb3IgdGhlIDJuZCwgZXRjLgor
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBBcmdOdW0+Cisg
ICAgR1BSUmVnIGdldEFyZ3VtZW50R1BSKEdQUlJlZyBzY3JhdGNoR1BSID0gR1BSUmVnOjpJbnZh
bGlkR1BSUmVnKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChBcmdOdW0gPD0gMjU1LCAi
QysrIHN0YW5kYXJkIGZvcmJpZHMgZnVuY3Rpb25zIHdpdGggbW9yZSB0aGFuIDI1NiBhcmd1bWVu
dHMiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBl
Pjo6Y0NhbGxBcml0eSgpID4gQXJnTnVtLCAiRnVuY3Rpb24gZG9lcyBub3QgaGF2ZSBlbm91Z2gg
YXJndW1lbnRzIik7CisKKyAgICAgICAgaWYgY29uc3RleHByIChBcmdOdW0gPj0gTlVNQkVSX09G
X0FSR1VNRU5UX1JFR0lTVEVSUykKKyAgICAgICAgICAgIHJldHVybiBsb2FkQXJndW1lbnRGcm9t
U3RhY2s8T3BlcmF0aW9uVHlwZSwgQXJnTnVtPihzY3JhdGNoR1BSKTsKKworICAgICAgICByZXR1
cm4gR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKEFyZ051bSk7CisgICAgfQogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQ
UkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCmluZGV4IDUyYTEz
YWFhZmI3N2I2ZTQ0ZmE3ZWIxOTJiMDY4NDNjMmNjYjkyMjYuLjYwYTViZWUxNWI4MjIwNzY0NjUx
MjBkZjc0ZTk0MDhkNzhiYzdjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvR1BSSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCkBA
IC02MjYsNyArNjI2LDcgQEAgY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBH
UFJSZWcgUmVnaXN0ZXJUeXBlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVy
T2ZSZWdpc3RlcnMgPSAxNjsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9m
QXJndW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVt
YmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAK
ICAgICAvLyBUaGVzZSByZWdpc3RlcnMgbWF0Y2ggdGhlIGJhc2VsaW5lIEpJVC4KICAgICBzdGF0
aWMgY29uc3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IEFSTTY0UmVnaXN0ZXJzOjpm
cDsKQEAgLTgyNSw3ICs4MjUsNyBAQCBjbGFzcyBHUFJJbmZvIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEdQUlJlZyBSZWdpc3RlclR5cGU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
dW1iZXJPZlJlZ2lzdGVycyA9IDEzOwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVt
YmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVS
UzsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gUklT
Q1Y2NFJlZ2lzdGVyczo6ZnA7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbnVtYmVyVGFn
UmVnaXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjp4MjU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwLmNwcAppbmRleCAxYjhjZDQyMGYxMDcwOWQxYmViMWE0NTBkMTMwNDBmMzc3
MzI2ODYzLi40NDkwOWQxNjk0YmM1NWM3NWIyNzdjYzUxNjAwMDAyODRiNGFkMzJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDEwIEBA
IHZvaWQgUmVnRXhwOjptYXRjaENvbXBhcmVXaXRoSW50ZXJwcmV0ZXIoY29uc3QgU3RyaW5nJiBz
LCBpbnQgc3RhcnRPZmZzZXQsIGludCoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEpJVENvZGU6IHsKICAgICAgICAgICAgIFlhcnI6OllhcnJDb2RlQmxvY2smIGNvZGVCbG9jayA9
ICptX3JlZ0V4cEpJVENvZGUuZ2V0KCk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0
Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25seUFkZHIoKSkpOwotICAgICAgICAgICAg
c25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4Iiwg
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFk
ZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNp
emUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0
OEJpdE1hdGNoQWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRk
ciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihj
b2RlQmxvY2suZ2V0MTZCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0
OEJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVy
cHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsK
KyAgICAgICAgICAgIHNucHJpbnRmKGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUs
ICIweCUwMTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2su
Z2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRN
YXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0
PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRjaEFkZHIoKSkpOworICAgICAgICAgICAg
c25wcmludGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0IiBQUkl4UFRS
LCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0TWF0Y2hBZGRy
KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAppbmRleCAwMjJjYmJhNTU1
N2U3MTc4ZDE0ZDRiNjYxZWRjZDY4NWE0Zjc4N2UyLi45YzY1NWY0NmFiMDAxNjIzZDhlMzQyZmVj
MGUzZDY4ODdlYjVmOGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwSW5saW5lcy5oCkBAIC0xMzIsMTIgKzEzMiwxMiBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdF
eHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2
bQogICAgIGlmIChtX3N0YXRlID09IEpJVENvZGUpIHsKICAgICAgICAgewogICAgICAgICAgICAg
QVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRl
eHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlzLCBt
YXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4
cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCks
IHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnM4
KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQp
LnN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0
ZShzLmNoYXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3Is
ICZyZWdFeHBDb250ZXh0KS5zdGFydDsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3Rh
cnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVnRXhwQ29udGV4dCkuc3RhcnQ7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hh
cmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsICZyZWdF
eHBDb250ZXh0KS5zdGFydDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgPT0gc3Rh
dGljX2Nhc3Q8aW50PihZYXJyOjpKU1JlZ0V4cFJlc3VsdDo6SklUQ29kZUZhaWx1cmUpKSB7CkBA
IC0xNDYsNyArMTQ2LDggQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShK
U0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICAgICAgICAgIGlm
IChtX3N0YXRlID09IFBhcnNlRXJyb3IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoKTsKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRl
eHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAg
ICAgICAgICAgICAgICBjb25zdGV4cHIgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIgPSBm
YWxzZTsKKyAgICAgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhw
Q29udGV4dCh2bSwgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCB0aGlzLCBtYXRjaEZyb20pOwog
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4cEJ5dGVjb2Rl
LmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCo+KG9mZnNl
dFZlY3RvcikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjIsNyArMTYzLDggQEAg
QUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVs
bE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICB9IGVsc2UKICNlbmRpZgogICAgIHsKLSAgICAg
ICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIs
IHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIGNvbnN0ZXhwciBib29sIHVzZXNQYXR0ZXJuQ29u
dGV4dEJ1ZmZlciA9IGZhbHNlOworICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIg
cmVnRXhwQ29udGV4dCh2bSwgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCB0aGlzLCBtYXRjaEZy
b20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5n
ZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRW
ZWN0b3IpKTsKICAgICB9CiAKQEAgLTI2NiwxMiArMjY4LDEyIEBAIEFMV0FZU19JTkxJTkUgTWF0
Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFs
T2JqZWN0CiAgICAgICAgIE1hdGNoUmVzdWx0IHJlc3VsdDsKICAgICAgICAgewogICAgICAgICAg
ICAgQVNTRVJUKG1fcmVnRXhwSklUQ29kZSk7Ci0gICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLmdldCgpLCB0aGlz
LCBtYXRjaEZyb20pOworICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJl
Z0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVy
KCksIHRoaXMsIG1hdGNoRnJvbSk7CiAKICAgICAgICAgICAgIGlmIChzLmlzOEJpdCgpKQotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3Rl
cnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdFeHBDb250ZXh0KTsKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgp
LCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShz
LmNoYXJhY3RlcnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hh
cmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAg
ICAgICAgIH0KIAogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKQEAgLTI5NSw3ICsyOTcsOCBA
QCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxP
YmplY3QqIG51bGxPckdsb2JhbE9iamVjdAogICAgIG5vblJldHVybmVkT3ZlY3Rvci5ncm93KG9m
ZnNldFZlY3RvclNpemUpOwogICAgIG9mZnNldFZlY3RvciA9IG5vblJldHVybmVkT3ZlY3Rvci5k
YXRhKCk7CiAgICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhw
Q29udGV4dCh2bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgY29uc3RleHBy
IGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyID0gZmFsc2U7CisgICAgICAgIFlhcnI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCB1c2VzUGF0dGVybkNvbnRleHRC
dWZmZXIsIHRoaXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJl
dChtX3JlZ0V4cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2Fz
dDx1bnNpZ25lZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KICNpZiBSRUdFWFBfRlVOQ19URVNU
X0RBVEFfR0VOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklU
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCmluZGV4IGE0OThl
Zjc4MDczMTgyNGRjZjJlZjg3OTg1YmIwOWIyOTMyMGNlYWUuLjU3OGYwY2RlOTg4MTA3MGQyMzQw
ZjNhNzYxYmVmNzM1YTMxYzhkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQu
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWWFy
ckpJVC5oIgogCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZl
ci5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJWTS5oIgpAQCAtMTg2LDEwICsx
ODcsNiBAQCBzdGQ6OnR1cGxlPEJveWVyTW9vcmVCaXRtYXA6Ok1hcCwgQm95ZXJNb29yZUZhc3RD
YW5kaWRhdGVzPiBCb3llck1vb3JlSW5mbzo6Y3JlYQogdGVtcGxhdGU8Y2xhc3MgWWFyckpJVFJl
Z3MgPSBZYXJySklURGVmYXVsdFJlZ2lzdGVycz4KIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwg
OiBwdWJsaWMgWWFyckpJVEluZm8gewogCi0jaWZkZWYgIEpJVF9VTklDT0RFX0VYUFJFU1NJT05T
Ci0gICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNr
ID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKLSNlbmRpZgotCiAj
aWYgRU5BQkxFKFlBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgc3RydWN0IFBh
cmVuQ29udGV4dFNpemVzIHsKICAgICAgICAgc2l6ZV90IG1fbnVtU3VicGF0dGVybnM7CkBAIC02
MDMsNyArNjAwLDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklU
SW5mbyB7CiAgICAgICAgIG1faml0LmxvYWQxNlVuYWxpZ25lZChNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpLCByZXN1bHRSZWcpOwogCiAgICAg
ICAgIC8vIElzIHRoZSBjaGFyYWN0ZXIgYSBsZWFkaW5nIHN1cnJvZ2F0ZT8KLSAgICAgICAgbV9q
aXQuYW5kMzIoWWFyckpJVERlZmF1bHRSZWdpc3RlcnM6OnN1cnJvZ2F0ZVRhZ01hc2ssIHJlc3Vs
dFJlZywgbV9yZWdzLnVuaWNvZGVUZW1wKTsKKyAgICAgICAgbV9qaXQuYW5kMzIobV9yZWdzLnN1
cnJvZ2F0ZVRhZ01hc2ssIHJlc3VsdFJlZywgbV9yZWdzLnVuaWNvZGVUZW1wKTsKICAgICAgICAg
bm90VW5pY29kZS5hcHBlbmQobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFs
LCBtX3JlZ3MudW5pY29kZVRlbXAsIG1fcmVncy5sZWFkaW5nU3Vycm9nYXRlVGFnKSk7CiAKICAg
ICAgICAgLy8gSXMgdGhlIGlucHV0IGxvbmcgZW5vdWdoIHRvIHJlYWQgYSB0cmFpbGluZyBzdXJy
b2dhdGU/CkBAIC02MTIsNyArNjA5LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1
YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAgICAgLy8gSXMgdGhlIGNoYXJhY3RlciBhIHRyYWls
aW5nIHN1cnJvZ2F0ZT8KICAgICAgICAgbV9qaXQubG9hZDE2VW5hbGlnbmVkKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCksIG1fcmVncy5yZWdV
bmljb2RlSW5wdXRBbmRUcmFpbCk7Ci0gICAgICAgIG1faml0LmFuZDMyKFlhcnJKSVREZWZhdWx0
UmVnaXN0ZXJzOjpzdXJyb2dhdGVUYWdNYXNrLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJh
aWwsIG1fcmVncy51bmljb2RlVGVtcCk7CisgICAgICAgIG1faml0LmFuZDMyKG1fcmVncy5zdXJy
b2dhdGVUYWdNYXNrLCBtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwsIG1fcmVncy51bmlj
b2RlVGVtcCk7CiAgICAgICAgIG5vdFVuaWNvZGUuYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpOb3RFcXVhbCwgbV9yZWdzLnVuaWNvZGVUZW1wLCBtX3JlZ3MudHJhaWxpbmdT
dXJyb2dhdGVUYWcpKTsKIAogICAgICAgICAvLyBDb21iaW5lIGxlYWRpbmcgYW5kIHRyYWlsaW5n
IHN1cnJvZ2F0ZXMgdG8gcHJvZHVjZSBhIGNvZGUgcG9pbnQuCkBAIC0zOTYxLDEwICszOTU4LDEx
IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogCiAg
ICAgdm9pZCBnZW5lcmF0ZUVudGVyKCkKICAgICB7Ci0jaWYgQ1BVKFg4Nl82NCkKLSAgICAgICAg
bV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVicCk7Ci0gICAgICAgIG1faml0Lm1vdmUoTWFjcm9B
c3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVicCk7CisjaWYg
IUNQVShBUk02NCkKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9uUHJvbG9ndWUoKTsKKyNlbmRp
ZgogCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFs
U3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYngpOwog
CkBAIC0zOTg3LDcgKzM5ODUsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IFlhcnJKSVRJbmZvIHsKICAgICAgICAgfQogI2lmIE9TKFdJTkRPV1MpCiAgICAgICAgIGlmICht
X2NvbXBpbGVNb2RlID09IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpCi0gICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKFg4NlJlZ2lzdGVy
czo6ZWJwLCA2ICogc2l6ZW9mKHZvaWQqKSksIG1fcmVncy5vdXRwdXQpOworICAgICAgICAgICAg
bV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJh
bWVQb2ludGVyUmVnaXN0ZXIsIDYgKiBzaXplb2Yodm9pZCopKSwgbV9yZWdzLm91dHB1dCk7CiAg
ICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIHNwYWNlIGZvciBy
ZXN1bHQgaW4geDY0IFdpbmRvd3MuCiAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpl
Y3gpOwogI2VuZGlmCkBAIC00MDA3LDExICs0MDA1LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBm
aW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0
ZXJzOjpyNik7CiAgICAgICAgIG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyOCk7CiAgICAgICAg
IG1faml0LnB1c2goQVJNUmVnaXN0ZXJzOjpyMTApOwotI2VsaWYgQ1BVKFJJU0NWNjQpCi0gICAg
ICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQucHVzaFBh
aXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6
bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBTKQotICAgICAgICAvLyBEbyBub3RoaW5nLgog
I2VuZGlmCiAgICAgfQogCkBAIC00MDUyLDcgKzQwNDUsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1f
c2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVy
czo6ZWJ4KTsKLSAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKICNlbGlmIENQ
VShBUk02NCkKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKICAgICAgICAg
ICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQpAQCAtNDA2NCwxMiArNDA1NiwxMiBAQCBj
bGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAgICAgICAg
bV9qaXQucG9wKEFSTVJlZ2lzdGVyczo6cjYpOwogICAgICAgICBtX2ppdC5wb3AoQVJNUmVnaXN0
ZXJzOjpyNSk7CiAgICAgICAgIG1faml0LnBvcChBUk1SZWdpc3RlcnM6OnI0KTsKLSNlbGlmIENQ
VShSSVNDVjY0KQotICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykKLSAgICAgICAg
ICAgIG1faml0LnBvcFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBN
YWNyb0Fzc2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBTKQotICAgICAgICAv
LyBEbyBub3RoaW5nCiAjZW5kaWYKKworI2lmICFDUFUoQVJNNjQpCisgICAgbV9qaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKKyNlbmRpZgorCiAjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgaWYg
KE9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1faml0LmZhckp1bXAoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJU
YWcsIE9wZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25Q
dHJUYWcpOwpAQCAtNDA4Niw3ICs0MDc4LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6
IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgWWFyckdlbmVyYXRv
cihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVC
bG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25z
dCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9k
ZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25z
dCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJl
Z3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENo
YXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBt
X2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2Rl
QmxvY2spCkBAIC00MTA1LDcgKzQwOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYm95ZXJNb29y
ZURhdGEgPSBzdGF0aWNfY2FzdDxZYXJyQm95ZXJNb3llckRhdGEqPihtX2NvZGVCbG9jayk7CiAg
ICAgfQogCi0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSog
dm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJl
Z3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENo
YXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2Vu
ZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0
YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0
ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRD
b21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwg
bV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhudWxscHRyKQpAQCAtNDEzOSw2ICs0MTMx
LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciA9
IHN0YWNrQ2hlY2tlcjsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25U
eXBlPgorICAgIHN0YXRpYyBjb25zdGV4cHIgdm9pZCBmdW5jdGlvbkNoZWNrcygpCisgICAgewor
ICAgICAgICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpjQ2Fs
bEFyaXR5KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7CisgICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lPE1hdGNoaW5nQ29udGV4dEhvbGRlciosIHR5cGVu
YW1lIEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+Ojp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8
ND4+Ojp2YWx1ZSwgIk1hdGNoaW5nQ29udGV4dEhvbGRlciogaXMgZXhwZWN0ZWQgYXMgdGhlIGZ1
bmN0aW9uIDV0aCBhcmd1bWVudCIpOworICAgIH0KKwogICAgIHZvaWQgY29tcGlsZShZYXJyQ29k
ZUJsb2NrJiBjb2RlQmxvY2spCiAgICAgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwg
c3RhcnRPZk1haW5Db2RlOwpAQCAtNDE5MSwxNyArNDE5MCwyMiBAQCBwdWJsaWM6CiAgICAgICAg
IGlmIChjYWxsRnJhbWVTaXplSW5CeXRlcykgewogICAgICAgICAgICAgLy8gQ2hlY2sgc3RhY2sg
c2l6ZQogICAgICAgICAgICAgbV9qaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoLWNhbGxGcmFtZVNpemVJbkJ5dGVzKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCBtX3JlZ3MucmVnVDApOwotI2lmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCi0g
ICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMg
Zm91bmQgb24gdGhlIHN0YWNrLgotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVy
SUQgbWF0Y2hpbmdDb250ZXh0ID0gbV9yZWdzLnJlZ1QxOwotICAgICAgICAgICAgbV9qaXQubG9h
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhYODZSZWdpc3RlcnM6OmVicCwgNyAqIHNpemVv
Zih2b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwotI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQ
VShNSVBTKQotICAgICAgICAgICAgLy8gbWF0Y2hpbmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1l
bnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4KLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0
YWNrUG9pbnRlclJlZ2lzdGVyLCA0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7
CisKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBKSVRlZCBmdW5jdGlvbnMgaGF2
ZSA1IHBhcmFtZXRlcnMgYW5kIHRoYXQgdGhlIDV0aCBhcmd1bWVudCBpcyBhIE1hdGNoaW5nQ29u
dGV4dEhvbGRlcioKKyAgICAgICAgICAgIGZ1bmN0aW9uQ2hlY2tzPFlhcnJDb2RlQmxvY2s6Ollh
cnJKSVRDb2RlOD4oKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uQ2hlY2tzPFlhcnJDb2RlQmxvY2s6
OllhcnJKSVRDb2RlMTY+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJs
b2NrOjpZYXJySklUQ29kZU1hdGNoT25seTg+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNr
czxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZU1hdGNoT25seTE2PigpOworCisgICAgICAgICAg
ICBjb25zdGV4cHIgdW5zaWduZWQgYXJnTnVtID0gNDsKKyNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRf
UkVHSVNURVJTIDwgNXUKKyAgICAgICAgICAgIEdQUlJlZyBtYXRjaGluZ0NvbnRleHQgPSBtX2pp
dC5nZXRBcmd1bWVudEdQUjxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTgsIGFyZ051bT4obV9y
ZWdzLnJlZ1QxKTsKKyAgICAgICAgICAgIEFTU0VSVChtYXRjaGluZ0NvbnRleHQgPT0gbV9yZWdz
LnJlZ1QxKTsKICNlbHNlCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBt
YXRjaGluZ0NvbnRleHQgPSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0OworICAgICAgICAgICAgR1BS
UmVnIG1hdGNoaW5nQ29udGV4dCA9IG1faml0LmdldEFyZ3VtZW50R1BSPFlhcnJDb2RlQmxvY2s6
OllhcnJKSVRDb2RlOCwgYXJnTnVtPigpOworICAgICAgICAgICAgQVNTRVJUKG1hdGNoaW5nQ29u
dGV4dCA9PSBtX3JlZ3MubWF0Y2hpbmdDb250ZXh0KTsKICNlbmRpZgorCiAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBzdGFja09rID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1i
bGVyOjpCZWxvd09yRXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKG1hdGNoaW5nQ29udGV4
dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpvZmZzZXRPZlN0YWNrTGltaXQoKSksIG1fcmVncy5y
ZWdUMCk7CiAKICAgICAgICAgICAgIC8vIEV4Y2VlZGVkIHN0YWNrIGxpbWl0LCBwdW50IHRvIHRo
ZSBpbnRlcnByZXRlci4KQEAgLTQ2MTgsNyArNDYyMiw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgTWFjcm9Bc3NlbWJsZXImIG1faml0OworICAgIENDYWxsSGVscGVycyYgbV9q
aXQ7CiAgICAgY29uc3QgVk0qIG1fdm07CiAgICAgWWFyckNvZGVCbG9jayogbV9jb2RlQmxvY2s7
CiAgICAgWWFyckJveWVyTW95ZXJEYXRhKiBtX2JveWVyTW9vcmVEYXRhOwpAQCAtNDcwNiw3ICs0
NzEwLDcgQEAgc3RhdGljIHZvaWQgZHVtcENvbXBpbGVGYWlsdXJlKEpJVEZhaWx1cmVSZWFzb24g
ZmFpbHVyZSkKIAogdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcm
IHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBWTSogdm0sIFlhcnJDb2RlQmxvY2sm
IGNvZGVCbG9jaywgSklUQ29tcGlsZU1vZGUgbW9kZSkKIHsKLSAgICBNYWNyb0Fzc2VtYmxlciBt
YXNtOworICAgIENDYWxsSGVscGVycyBtYXNtOwogCiAgICAgQVNTRVJUKG1vZGUgPT0gSklUQ29t
cGlsZU1vZGU6Ok1hdGNoT25seSB8fCBtb2RlID09IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3Vi
cGF0dGVybnMpOwogCkBAIC00NzI3LDcgKzQ3MzEsNyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBh
dHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUs
CiAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIGlubGluZWQgSklUJ2luZyBvZiBSZWdFeHAudGVzdCBm
b3IgdGhpcyBDUFUgLyBPUyBjb21iaW5hdGlvbi4iCiAjZW5kaWYKIAotdm9pZCBqaXRDb21waWxl
SW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwg
Y29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdz
LCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJv
eWVyTW9vcmVEYXRhLCBNYWNyb0Fzc2VtYmxlciYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRS
ZWdpc3RlcnMpCit2b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBp
bGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9w
dGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3MsIENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSog
dm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95ZXJNb29yZURhdGEsIENDYWxsSGVscGVycyYgaml0
LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCiB7CiAgICAgWWFycjo6RXJyb3JDb2Rl
IGVycm9yQ29kZTsKICAgICBZYXJyOjpZYXJyUGF0dGVybiBwYXR0ZXJuKHBhdHRlcm5TdHJpbmcs
IGZsYWdzLCBlcnJvckNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCmluZGV4
IDI4OWQ2ZTgxZmU1MTdhYWRmYmU0OThkMTg1ZTMwNzIwNWU2YTA3MzMuLjY5YmRlOGI5ZTc2MzM3
NTdmYTFlMWZiZDY1N2IyODJlOWIxNDkwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmgKQEAgLTQzLDkgKzQzLDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBWTTsK
K2NsYXNzIENDYWxsSGVscGVyczsKIGNsYXNzIEV4ZWN1dGFibGVQb29sOwogY2xhc3MgTWFjcm9B
c3NlbWJsZXI7CitjbGFzcyBWTTsKIAogbmFtZXNwYWNlIFlhcnIgewogCkBAIC0yNzEsMTIgKzI3
MiwxMiBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIDogcHVibGljIFlhcnJCb3llck1veWVyRGF0YSB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
WWFyckNvZGVCbG9jayk7CiAKLSAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVy
blR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVn
aXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGlu
Z0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhS
ZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQ
VVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0
Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4
ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3Rl
ciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGVNYXRj
aE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotCiBwdWJsaWM6CisgICAgdXNp
bmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5w
dXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQs
IE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29k
ZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdp
c3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29u
dGV4dEhvbGRlciopIFlBUlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTgg
PSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVy
IHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVy
KikgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0
aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBV
Q1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKikgWUFSUl9D
QUxMOworCiAgICAgWWFyckNvZGVCbG9jaygpID0gZGVmYXVsdDsKIAogICAgIHZvaWQgc2V0RmFs
bEJhY2tXaXRoRmFpbHVyZVJlYXNvbihKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmVSZWFzb24pIHsg
bV9mYWlsdXJlUmVhc29uID0gZmFpbHVyZVJlYXNvbjsgfQpAQCAtMzI2LDcgKzMyNyw3IEBAIHB1
YmxpYzoKICAgICBJbmxpbmVTdGF0cyYgZ2V0OEJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gbV9t
YXRjaE9ubHk4U3RhdHM7IH0KICAgICBJbmxpbmVTdGF0cyYgZ2V0MTZCaXRJbmxpbmVTdGF0cygp
IHsgcmV0dXJuICBtX21hdGNoT25seTE2U3RhdHM7IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1
dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBp
bnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAg
TWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNo
aW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0Q29kZSgpKTsKICNpZiBD
UFUoQVJNNjRFKQpAQCAtMzM2LDcgKzMzNyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1h
dGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlOCwgWWFycjhCaXRQdHJUYWc+
KG1fcmVmOC5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgs
IG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhl
Y3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgs
IGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAg
ICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0
Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZSgpKTsKICNp
ZiBDUFUoQVJNNjRFKQpAQCAtMzQ2LDcgKzM0Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlMTYsIFlhcnIxNkJpdFB0
clRhZz4obV9yZWYxNi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBs
ZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1
bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBs
ZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNo
UmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWdu
ZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7
CiAgICAgICAgIEFTU0VSVChoYXM4Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRF
KQpAQCAtMzU2LDcgKzM1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0
KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCwgWWFyck1hdGNoT25seThC
aXRQdHJUYWc+KG1fbWF0Y2hPbmx5OC5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQs
IHN0YXJ0LCBsZW5ndGgsIG51bGxwdHIsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAg
IE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkK
KyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3Rh
cnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRl
eHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzMTZCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lm
IENQVShBUk02NEUpCkBAIC00MzksNyArNDQwLDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0
ZXJuJiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSwgVk0qLCBZYXJyQ29kZUJsb2MK
IAogY2xhc3MgWWFyckpJVFJlZ2lzdGVyczsKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3Qo
U3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJT
aXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0YSYsIE1hY3JvQXNzZW1ibGVyJiwgWWFy
ckpJVFJlZ2lzdGVycyYpOwordm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayos
IGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBW
TSosIFlhcnJCb3llck1veWVyRGF0YSYsIENDYWxsSGVscGVycyYsIFlhcnJKSVRSZWdpc3RlcnMm
KTsKICNlbmRpZgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCmluZGV4IGJiODIxY2U4NjdmZTM4ZTI4
ZjM1Y2U3MDZiOWJjNjA5OTQyZjc5YjQuLmRlNTc3ODQ4OTg0MzY5ODA1OGRmNzhiMTFhYmE1Mjc1
ZDk0ODExYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRS
ZWdpc3RlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0
ZXJzLmgKQEAgLTIwNiw2ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMiBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMHgxMDAwMCk7CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MigweGQ4MDApOwogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxp
bmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7Cisg
ICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0g
TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKIH07CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4
dEhvbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4
dEhvbGRlci5oCmluZGV4IDEzOWQxZmUzNWI1NzVjNzBhMDVhN2U3NzI1ZGQ5ZmExZWZiNjYwMWUu
LjFhZjgzMDk4MmZmNTdmMmE5M2I2NjE3OTM4ZDJkYmM1ZGVjOGExNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgK
QEAgLTM3LDEyICszNywxMCBAQCBjbGFzcyBSZWdFeHA7CiAKIG5hbWVzcGFjZSBZYXJyIHsKIAot
Y2xhc3MgWWFyckNvZGVCbG9jazsKLQogY2xhc3MgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIHsKICAg
ICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElPTjsKIHB1YmxpYzoKLSAgICBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIoVk0mLCBZYXJyQ29kZUJsb2NrKiwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKKyAgICBN
YXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBib29sLCBSZWdFeHAqLCBNYXRjaEZyb20pOwogICAg
IH5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKTsKIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0
T2ZTdGFja0xpbWl0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE1hdGNoaW5nQ29udGV4dEhv
bGRlciwgbV9zdGFja0xpbWl0KTsgfQpAQCAtNjEsNyArNTksNyBAQCBwcml2YXRlOgogICAgIE1h
dGNoRnJvbSBtX21hdGNoRnJvbTsKIH07CiAKLWlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6
Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDb2RlQmxv
Y2ssIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQoraW5saW5lIE1hdGNoaW5n
Q29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgYm9vbCB1c2VzUGF0
dGVybkNvbnRleHRCdWZmZXIsIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQog
ICAgIDogbV92bSh2bSkKICAgICAsIG1fbWF0Y2hGcm9tKG1hdGNoRnJvbSkKIHsKQEAgLTc0LDEy
ICs3MiwxMiBAQCBpbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRI
b2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQwogICAgIH0KIAogI2lmIEVOQUJMRShZ
QVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQotICAgIGlmICh5YXJyQ29kZUJsb2NrICYm
IHlhcnJDb2RlQmxvY2stPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpKSB7CisgICAgaWYgKHVz
ZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcikgewogICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVy
ID0gbV92bS5hY3F1aXJlUmVnRXhwUGF0dGVybkNvbnRleEJ1ZmZlcigpOwogICAgICAgICBtX3Bh
dHRlcm5Db250ZXh0QnVmZmVyU2l6ZSA9IFZNOjpwYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemU7CiAg
ICAgfQogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oeWFyckNvZGVCbG9jayk7CisgICAgVU5VU0VE
X1BBUkFNKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNwcCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvSGVhcC5jcHAKaW5kZXggMDRmYmNjYWU1ZGEwYTQzNDdmYTk4MWQwNjRjMGI3YjYxZTI0Y2I5
Zi4uNDBmMWQ3NWYxNWNiYjU5NDdkMTg2ZDI3YjAwY2ExYmY2ZTE1ZGMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNwcAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0hlYXAuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgQklOTElORSB2b2lkIEhlYXA6OmFkanVz
dFN0YXQoc2l6ZV90JiB2YWx1ZSwgc3NpemVfdCBhbW91bnQpCiAKIEJJTkxJTkUgdm9pZCBIZWFw
Ojpsb2dTdGF0KHNpemVfdCB2YWx1ZSwgc3NpemVfdCBhbW91bnQsIGNvbnN0IGNoYXIqIGxhYmVs
LCBjb25zdCBjaGFyKiBub3RlKQogewotICAgIGZwcmludGYoc3RkZXJyLCAiJXM6ICVsdSAoJWxk
KSAlc1xuIiwgbGFiZWwsIHZhbHVlLCBhbW91bnQsIG5vdGUpOworICAgIGZwcmludGYoc3RkZXJy
LCAiJXM6ICV6dSAoJXpkKSAlc1xuIiwgbGFiZWwsIHZhbHVlLCBhbW91bnQsIG5vdGUpOwogfQog
CiBCSU5MSU5FIHZvaWQgSGVhcDo6YWRqdXN0RnJlZWFibGVNZW1vcnkoVW5pcXVlTG9ja0hvbGRl
ciYsIHNzaXplX3QgYW1vdW50LCBjb25zdCBjaGFyKiBub3RlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449345</attachid>
            <date>2022-01-17 12:44:52 -0800</date>
            <delta_ts>2022-01-18 16:43:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220117164450.patch</filename>
            <type>text/plain</type>
            <size>28983</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi44MmRiYzg3MjQ1NGI0N2U1
MjZmMzIxZWM3MGUxNjMxNTM1MDljNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4gVGhpcyBwYXRjaCBmaXhlcyBob3cKKyAgICAgICAg
dGhlIG9mZnNldCBpcyBjYWxjdWxhdGVkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRy
b2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBBZGRlZCBzdGF0aWNfYXNz
ZXJ0cyB0aGF0IHRoZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisg
ICAgICAgIGFuZCB0aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhw
ZWN0IChNYXRjaGluZ0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAyLiBSZW1vdmVkIGFuIHVu
bmVjZXNzYXJ5IHBvaW50ZXIgZnJvbSB0aGUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyCisgICAgICAg
IGNvbnN0cnVjdG9yLgorCisgICAgICAgIDMuIEZpeGVkIHNvbWUgd2FybmluZ3MgaW4gdGhlIFlh
cnJKSVQgY29kZSBoZXJlIGFuZCB0aGVyZS4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJl
Z0V4cFRlc3RJbmxpbmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpSZWdFeHA6Om1hdGNoSW5saW5lKToKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQu
Y3BwOgorICAgICAgICAqIHlhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oOgorICAgICAg
ICAoSlNDOjpZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRl
cik6CisKIDIwMjItMDEtMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWxsb3cgbG9vcCB0aWVyIHVwIHRvIHRoZSBBaXIgdGllcgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMDc4YmJlMzll
YWJiNWUzZWQyYzhjYjhjMTgwMmMwNThmYjM2Y2FmOS4uZThiN2FlZmM0ZTc5ZGM1ZTFlZWViNmEx
YTFjMDY3ODBmYTdjMzNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0yODg4LDcgKzI4ODgsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlUmVnRXhwVGVzdElubGluZShOb2RlKiBub2RlKQogewogICAgIFVOVVNF
RF9QQVJBTShub2RlKTsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gY29t
cGlsZVJlZ0V4cFRlc3Qobm9kZSk7CisgICAgY29tcGlsZVJlZ0V4cFRlc3Qobm9kZSk7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAppbmRleCA1MmExM2FhYWZiNzdi
NmU0NGZhN2ViMTkyYjA2ODQzYzJjY2I5MjI2Li42MGE1YmVlMTViODIyMDc2NDY1MTIwZGY3NGU5
NDA4ZDc4YmM3Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUklu
Zm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaApAQCAtNjI2LDcg
KzYyNiw3IEBAIGNsYXNzIEdQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJl
Z2lzdGVyVHlwZTsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0
ZXJzID0gMTY7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50
UmVnaXN0ZXJzID0gODsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJn
dW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOwogCiAgICAgLy8g
VGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6ZnA7CkBAIC04
MjUsNyArODI1LDcgQEAgY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJS
ZWcgUmVnaXN0ZXJUeXBlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZS
ZWdpc3RlcnMgPSAxMzsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJn
dW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVy
T2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKICAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IFJJU0NWNjRSZWdp
c3RlcnM6OmZwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG51bWJlclRhZ1JlZ2lzdGVy
ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDI1OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3MDlkMWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4u
NDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYwMDAwMjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCkBAIC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJl
Z0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVycHJldGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0
YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBKSVRDb2Rl
OiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdF
eHBKSVRDb2RlLmdldCgpOwotICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoT25seUFk
ZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
Y29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRm
KGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsK
LSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHgl
MDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRj
aEFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFk
ZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2Nr
LmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRj
aE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAg
ICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0
IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0
TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRy
LCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRm
KGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQx
NGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uOWM2NTVmNDZhYjAwMTYyM2Q4ZTM0MmZlYzBlM2Q2ODg3
ZWI1ZjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGlu
ZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRj
aElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBp
ZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVCht
X3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9t
KTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0
KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBt
YXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAgICAg
ICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFy
dE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFy
YWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhw
Q29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0
ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0
LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0OworICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMx
NigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4
dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0
PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6OkpJVENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcg
KzE0Niw4IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxP
YmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0
ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAg
ICAgICAgY29uc3RleHByIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyID0gZmFsc2U7Cisg
ICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAg
ICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwg
cywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3Ip
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Myw4IEBAIEFMV0FZU19J
TkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2Jh
bE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlhcnI6
Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBt
YXRjaEZyb20pOworICAgICAgICBjb25zdGV4cHIgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZm
ZXIgPSBmYWxzZTsKKyAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENv
bnRleHQodm0sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgdGhpcywgbWF0Y2hGcm9tKTsKICAg
ICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMs
IHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7
CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2OCwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0
IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAog
ICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VS
VChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hG
cm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250
ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlz
LCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAg
ICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBz
dGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRP
ZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0
ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMx
NigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAgICAgICB9
CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyArMjk3LDggQEAgQUxXQVlT
X0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBu
dWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3IuZ3JvdyhvZmZzZXRWZWN0
b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92ZWN0b3IuZGF0YSgpOwog
ICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIGNvbnN0ZXhwciBib29sIHVz
ZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IGZhbHNlOworICAgICAgICBZYXJyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCB0
aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdF
eHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWdu
ZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAjaWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dF
TgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4
MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi4yMDBhYzRiZGU0YzU4NTkxNjkxZGY1MmRkMDNj
MjgyZmI4OTlkZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcApAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIK
IAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNp
bmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKQEAgLTE4NiwxMCArMTg3LDYgQEAg
c3RkOjp0dXBsZTxCb3llck1vb3JlQml0bWFwOjpNYXAsIEJveWVyTW9vcmVGYXN0Q2FuZGlkYXRl
cz4gQm95ZXJNb29yZUluZm86OmNyZWEKIHRlbXBsYXRlPGNsYXNzIFlhcnJKSVRSZWdzID0gWWFy
ckpJVERlZmF1bHRSZWdpc3RlcnM+CiBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IFlhcnJKSVRJbmZvIHsKIAotI2lmZGVmICBKSVRfVU5JQ09ERV9FWFBSRVNTSU9OUwotICAgIGNv
bnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJM
RShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQogICAgIHN0cnVjdCBQYXJlbkNvbnRl
eHRTaXplcyB7CiAgICAgICAgIHNpemVfdCBtX251bVN1YnBhdHRlcm5zOwpAQCAtNjAzLDcgKzYw
MCw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewog
ICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWduZWQoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9y
ZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwgcmVzdWx0UmVnKTsKIAogICAgICAgICAvLyBJ
cyB0aGUgY2hhcmFjdGVyIGEgbGVhZGluZyBzdXJyb2dhdGU/Ci0gICAgICAgIG1faml0LmFuZDMy
KFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzOjpzdXJyb2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1f
cmVncy51bmljb2RlVGVtcCk7CisgICAgICAgIG1faml0LmFuZDMyKG1fcmVncy5zdXJyb2dhdGVU
YWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51bmljb2RlVGVtcCk7CiAgICAgICAgIG5vdFVuaWNv
ZGUuYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgbV9yZWdz
LnVuaWNvZGVUZW1wLCBtX3JlZ3MubGVhZGluZ1N1cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8v
IElzIHRoZSBpbnB1dCBsb25nIGVub3VnaCB0byByZWFkIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwpA
QCAtNjEyLDcgKzYwOSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFy
ckpJVEluZm8gewogCiAgICAgICAgIC8vIElzIHRoZSBjaGFyYWN0ZXIgYSB0cmFpbGluZyBzdXJy
b2dhdGU/CiAgICAgICAgIG1faml0LmxvYWQxNlVuYWxpZ25lZChNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpLCBtX3JlZ3MucmVnVW5pY29kZUlu
cHV0QW5kVHJhaWwpOwotICAgICAgICBtX2ppdC5hbmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVy
czo6c3Vycm9nYXRlVGFnTWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3Jl
Z3MudW5pY29kZVRlbXApOworICAgICAgICBtX2ppdC5hbmQzMihtX3JlZ3Muc3Vycm9nYXRlVGFn
TWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXAp
OwogICAgICAgICBub3RVbmljb2RlLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6Tm90RXF1YWwsIG1fcmVncy51bmljb2RlVGVtcCwgbV9yZWdzLnRyYWlsaW5nU3Vycm9nYXRl
VGFnKSk7CiAKICAgICAgICAgLy8gQ29tYmluZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzdXJyb2dh
dGVzIHRvIHByb2R1Y2UgYSBjb2RlIHBvaW50LgpAQCAtMzk2MSw1NyArMzk1OCw3MSBAQCBjbGFz
cyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgIHZvaWQg
Z2VuZXJhdGVFbnRlcigpCiAgICAgeworICAgICAgICBhdXRvIHB1c2hJbkVudGVyID0gWyZdKEdQ
UlJlZyBncHIpIHsKKyAgICAgICAgICAgIG1faml0LnB1c2goZ3ByKTsKKyAgICAgICAgICAgIG1f
cHVzaENvdW50SW5FbnRlciArPSAxOworICAgICAgICB9OworCisgICAgICAgIGF1dG8gcHVzaFBh
aXJJbkVudGVyID0gWyZdKEdQUlJlZyBncHIxLCBHUFJSZWcgZ3ByMikgeworICAgICAgICAgICAg
bV9qaXQucHVzaFBhaXIoZ3ByMSwgZ3ByMik7CisgICAgICAgICAgICBtX3B1c2hDb3VudEluRW50
ZXIgKz0gMjsKKyAgICAgICAgfTsKKwogI2lmIENQVShYODZfNjQpCi0gICAgICAgIG1faml0LnB1
c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplYnApOworICAgICAgICBVTlVT
RURfVkFSSUFCTEUocHVzaFBhaXJJbkVudGVyKTsKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9u
UHJvbG9ndWUoKTsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZh
bHVlKQotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVieCk7CisgICAgICAg
ICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVieCk7CiAKICNpZiBPUyhXSU5ET1dTKQot
ICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWRpKTsKKyAgICAgICAgcHVzaEluRW50
ZXIoWDg2UmVnaXN0ZXJzOjplZGkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFlBUlJfSklUX0FMTF9Q
QVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgICAgIGlmIChtX2NvbnRhaW5zTmVzdGVkU3VicGF0dGVy
bnMpIHsKICNpZiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3Rl
cnM6OmVzaSk7CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVzaSk7CiAj
ZW5kaWYKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpyMTIpOworICAgICAg
ICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTIpOwogICAgICAgICB9CiAjZW5kaWYK
IAogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewotICAgICAgICAgICAgbV9q
aXQucHVzaChYODZSZWdpc3RlcnM6OnIxMyk7Ci0gICAgICAgICAgICBtX2ppdC5wdXNoKFg4NlJl
Z2lzdGVyczo6cjE0KTsKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpyMTUp
OworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTMpOworICAgICAgICAg
ICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTQpOworICAgICAgICAgICAgcHVzaEluRW50
ZXIoWDg2UmVnaXN0ZXJzOjpyMTUpOwogICAgICAgICB9CiAjaWYgT1MoV0lORE9XUykKICAgICAg
ICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29tcGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJu
cykKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2
UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9pZCopKSwgbV9yZWdzLm91dHB1dCk7CisgICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1i
bGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgNiAqIHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0
cHV0KTsKICAgICAgICAgLy8gcmN4IGlzIHRoZSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgc3Bh
Y2UgZm9yIHJlc3VsdCBpbiB4NjQgV2luZG93cy4KLSAgICAgICAgbV9qaXQucHVzaChYODZSZWdp
c3RlcnM6OmVjeCk7CisgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6ZWN4KTsKICNl
bmRpZgogI2VsaWYgQ1BVKEFSTTY0KQorICAgICAgICBVTlVTRURfVkFSSUFCTEUocHVzaEluRW50
ZXIpOwogICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1f
aml0LnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFp
cnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAg
ICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rl
ciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgcHVzaFBh
aXJJbkVudGVyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3Nl
bWJsZXI6OmxpbmtSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCksIG1fcmVncy5zdXBwbGVtZW50YXJ5UGxhbmVzQmFz
ZSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHhkODAwKSwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpOwogICAgICAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCksIG1fcmVncy50cmFpbGlu
Z1N1cnJvZ2F0ZVRhZyk7CiAgICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgICAg
ICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJl
Z2lzdGVyczo6cjUpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYpOwotICAg
ICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjgpOwotICAgICAgICBtX2ppdC5wdXNoKEFS
TVJlZ2lzdGVyczo6cjEwKTsKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hQYWlySW5FbnRl
cik7CisgICAgICAgIHB1c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjQpOworICAgICAgICBwdXNo
SW5FbnRlcihBUk1SZWdpc3RlcnM6OnI1KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0
ZXJzOjpyNik7CisgICAgICAgIHB1c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjgpOworICAgICAg
ICBwdXNoSW5FbnRlcihBUk1SZWdpc3RlcnM6OnIxMCk7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKKyAg
ICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hJbkVudGVyKTsKICAgICAgICAgaWYgKG1fZGVjb2Rl
U3Vycm9nYXRlUGFpcnMpCi0gICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fzc2VtYmxl
cjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwot
I2VsaWYgQ1BVKE1JUFMpCi0gICAgICAgIC8vIERvIG5vdGhpbmcuCisgICAgICAgICAgICBwdXNo
UGFpckluRW50ZXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fz
c2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShw
dXNoSW5FbnRlcik7CisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNoUGFpckluRW50ZXIpOwog
I2VuZGlmCiAgICAgfQogCkBAIC00MDUyLDcgKzQwNjMsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1f
c2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVy
czo6ZWJ4KTsKLSAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKKyAgICAgICAg
bV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICNlbGlmIENQVShBUk02NCkKICAgICAgICAg
aWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6
dXNlSklUQ2FnZSgpKQpAQCAtNDA2Nyw5ICs0MDc4LDggQEAgY2xhc3MgWWFyckdlbmVyYXRvciBm
aW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKICAgICAgICAg
aWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpCiAgICAgICAgICAgICBtX2ppdC5wb3BQYWlyKE1h
Y3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtS
ZWdpc3Rlcik7Ci0jZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8gbm90aGluZwogI2VuZGlm
CisKICNpZiBDUFUoQVJNNjRFKQogICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKQog
ICAgICAgICAgICAgbV9qaXQuZmFySnVtcChNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihy
ZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywgT3BlcmF0aW9uUHRyVGFnPigmdm1F
bnRyeVRvWWFyckpJVEFmdGVyKSksIE9wZXJhdGlvblB0clRhZyk7CkBAIC00MDg2LDcgKzQwOTYs
NyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAg
ICB9CiAKIHB1YmxpYzoKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNv
bnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYg
cmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywg
Q2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJH
ZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayog
Y29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4s
IGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBp
bGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3Zt
KHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKGNvZGVCbG9jaykKQEAgLTQxMDUsNyArNDExNSw3
IEBAIHB1YmxpYzoKICAgICAgICAgbV9ib3llck1vb3JlRGF0YSA9IHN0YXRpY19jYXN0PFlhcnJC
b3llck1veWVyRGF0YSo+KG1fY29kZUJsb2NrKTsKICAgICB9CiAKLSAgICBZYXJyR2VuZXJhdG9y
KE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5
YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4s
IGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBp
bGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQs
IGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJy
SklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVy
blN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQog
ICAgICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29k
ZUJsb2NrKG51bGxwdHIpCkBAIC00MTM5LDYgKzQxNDksMTMgQEAgcHVibGljOgogICAgICAgICBt
X2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyID0gc3RhY2tDaGVja2VyOwogICAgIH0KIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGU+CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB2b2lkIGZ1bmN0aW9uQ2hlY2tzKCkKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVu
Y3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OmNDYWxsQXJpdHkoKSA9PSA1LCAiWWFyckpJVENv
ZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Nh
bWU8TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8T3BlcmF0
aW9uVHlwZT46OnRlbXBsYXRlIEFyZ3VtZW50VHlwZTw0Pj46OnZhbHVlLCAiTWF0Y2hpbmdDb250
ZXh0SG9sZGVyKiBpcyBleHBlY3RlZCBhcyB0aGUgZnVuY3Rpb24gNXRoIGFyZ3VtZW50Iik7Cisg
ICAgfQorCiAgICAgdm9pZCBjb21waWxlKFlhcnJDb2RlQmxvY2smIGNvZGVCbG9jaykKICAgICB7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzdGFydE9mTWFpbkNvZGU7CkBAIC00MTkx
LDE0ICs0MjA4LDIyIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGNhbGxGcmFtZVNpemVJbkJ5dGVz
KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBzdGFjayBzaXplCiAgICAgICAgICAgICBtX2ppdC5h
ZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtY2FsbEZyYW1lU2l6ZUluQnl0ZXMp
LCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG1fcmVncy5yZWdUMCk7Ci0j
aWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29u
dGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0gICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3Jl
Z3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA3ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4
dCk7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCi0gICAgICAgICAgICAvLyBt
YXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0
YWNrLgorCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgSklUZWQgZnVuY3Rpb25z
IGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0IHRoZSA1dGggYXJndW1lbnQgaXMgYSBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqCisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJsb2Nr
OjpZYXJySklUQ29kZTg+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJs
b2NrOjpZYXJySklUQ29kZTE2PigpOworICAgICAgICAgICAgZnVuY3Rpb25DaGVja3M8WWFyckNv
ZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHk4PigpOworICAgICAgICAgICAgZnVuY3Rpb25D
aGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNj4oKTsKKworI2lmIE5V
TUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgPCA1dQorICAgICAgICAgICAgLy8gTm90IGVub3Vn
aCBhcmd1bWVudCByZWdpc3RlcnM6IHRyeSB0byBsb2FkIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0
aGUgc3RhY2sKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5n
Q29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0
ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAgICAgICAgIC8vIFRo
ZSBhcmd1bWVudCB3aWxsIGJlIGluIGFuIG9mZnNldCB0aGF0IGRlcGVuZHMgb24gdGhlIGFyY2gg
YW5kIHRoZSBudW1iZXIgb2YgcmVnaXN0ZXJzIHdlIHB1c2hlZCBpbnRvIHRoZSBzdGFjaworICAg
ICAgICAgICAgLy8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6IE1JUFMgYW5kIFdpbmRvd3MgNjRiaXQg
cmVzZXJ2ZSBzcGFjZSBpbiB0aGUgc3RhY2sgZm9yIGFsbCBhcmd1bWVudHMsIHNvIGFkZCArNCBv
ZmZzZXQgaW4gdGhlc2UgYXJjaHMKKyAgICAgICAgICAgIC8vIG1fcHVzaENvdW50SW5FbnRlcjog
bnVtYmVyIG9mIHJlZ2lzdGVycyBwdXNoZWQgaW50byB0aGUgc3RhY2sgKHNlZSBnZW5lcmF0ZUVu
dGVyKCkpCisgICAgICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSBQT0tFX0FSR1VNRU5UX09GRlNF
VCArIG1fcHVzaENvdW50SW5FbnRlcjsKKyAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBv
ZmZzZXQgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdDb250ZXh0KTsKICNlbHNlCiAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3JlZ3Mu
bWF0Y2hpbmdDb250ZXh0OwogI2VuZGlmCkBAIC00NjE4LDcgKzQ2NDMsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIE1hY3JvQXNzZW1ibGVyJiBtX2ppdDsKKyAgICBDQ2FsbEhl
bHBlcnMmIG1faml0OwogICAgIGNvbnN0IFZNKiBtX3ZtOwogICAgIFlhcnJDb2RlQmxvY2sqIG1f
Y29kZUJsb2NrOwogICAgIFlhcnJCb3llck1veWVyRGF0YSogbV9ib3llck1vb3JlRGF0YTsKQEAg
LTQ2NzIsNiArNDY5NywxMiBAQCBwcml2YXRlOgogICAgIEJhY2t0cmFja2luZ1N0YXRlIG1fYmFj
a3RyYWNraW5nU3RhdGU7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVfcHRyPFlhcnJEaXNhc3NlbWJs
ZXI+IG1fZGlzYXNzZW1ibGVyOworCisgICAgLy8gTWVtYmVyIGlzIHVzZWQgdG8gY291bnQgdGhl
IG51bWJlciBvZiBHUFIgcHVzaGVkIGludG8gdGhlIHN0YWNrIHdoZW4KKyAgICAvLyBlbnRlcmlu
ZyBKSVRlZCBjb2RlLiBJdCBpcyB1c2VkIHRvIGZpZ3VyZSBvdXQgaWYgYW4gZnVuY3Rpb24gYXJn
dW1lbnQKKyAgICAvLyBvZmZzZXQgaW4gdGhlIHN0YWNrIGlmIHRoZXJlIHdhc24ndCBlbm91Z2gg
cmVnaXN0ZXJzIHRvIHBhc3MgaXQsIGUuZy4sCisgICAgLy8gQVJNdjcgYW5kIE1JUFMgb25seSB1
c2UgNCByZWdpc3RlcnMgdG8gcGFzcyBmdW5jdGlvbiBhcmd1bWVudHMuCisgICAgdW5zaWduZWQg
bV9wdXNoQ291bnRJbkVudGVyIHsgMCB9OwogfTsKIAogc3RhdGljIHZvaWQgZHVtcENvbXBpbGVG
YWlsdXJlKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKQEAgLTQ3MDYsNyArNDczNyw3IEBAIHN0
YXRpYyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCiAK
IHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3Ry
aW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ss
IEpJVENvbXBpbGVNb2RlIG1vZGUpCiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXIgbWFzbTsKKyAgICBD
Q2FsbEhlbHBlcnMgbWFzbTsKIAogICAgIEFTU0VSVChtb2RlID09IEpJVENvbXBpbGVNb2RlOjpN
YXRjaE9ubHkgfHwgbW9kZSA9PSBKSVRDb21waWxlTW9kZTo6SW5jbHVkZVN1YnBhdHRlcm5zKTsK
IApAQCAtNDcyNyw3ICs0NzU4LDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiBwYXR0
ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLAogI2Vycm9yICJO
byBzdXBwb3J0IGZvciBpbmxpbmVkIEpJVCdpbmcgb2YgUmVnRXhwLnRlc3QgZm9yIHRoaXMgQ1BV
IC8gT1MgY29tYmluYXRpb24uIgogI2VuZGlmCiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0
KFN0YWNrQ2hlY2sqIG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUg
Y2hhclNpemUsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0
YSwgTWFjcm9Bc3NlbWJsZXImIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQor
dm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVh
ZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFy
cjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95
ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJl
Z2lzdGVycyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7
CiAgICAgWWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJy
b3JDb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAyODlkNmU4MWZl
NTE3YWFkZmJlNDk4ZDE4NWUzMDcyMDVlNmEwNzMzLi42OWJkZThiOWU3NjMzNzU3ZmExZTFmYmQ2
NTdiMjgyZTliMTQ5MDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC00
Myw5ICs0MywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgVk07CitjbGFzcyBDQ2Fs
bEhlbHBlcnM7CiBjbGFzcyBFeGVjdXRhYmxlUG9vbDsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyOwor
Y2xhc3MgVk07CiAKIG5hbWVzcGFjZSBZYXJyIHsKIApAQCAtMjcxLDEyICsyNzIsMTIgQEAgY2xh
c3MgWWFyckNvZGVCbG9jayA6IHB1YmxpYyBZYXJyQm95ZXJNb3llckRhdGEgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFlhcnJDb2RlQmxv
Y2spOwogCi0gICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShj
b25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0
aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZ
QVJSX0NBTEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQYXRoUmV0dXJuVHlwZSAo
KikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4
dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5OCA9IFNsb3dQYXRo
UmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVD
UFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5n
Q29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBT
bG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0
YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBt
YXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLQogcHVibGljOgorICAgIHVzaW5nIFlhcnJKSVRD
b2RlOCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVn
aXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXIqKSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGUxNiA9IFNsb3dQ
YXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQs
IFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIq
KSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhS
ZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQ
VVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FM
TDsKKyAgICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBl
ICgqKShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVy
IGxlbmd0aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FMTDsKKwogICAg
IFlhcnJDb2RlQmxvY2soKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIHNldEZhbGxCYWNrV2l0aEZh
aWx1cmVSZWFzb24oSklURmFpbHVyZVJlYXNvbiBmYWlsdXJlUmVhc29uKSB7IG1fZmFpbHVyZVJl
YXNvbiA9IGZhaWx1cmVSZWFzb247IH0KQEAgLTMyNiw3ICszMjcsNyBAQCBwdWJsaWM6CiAgICAg
SW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuIG1fbWF0Y2hPbmx5OFN0
YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdldDE2Qml0SW5saW5lU3RhdHMoKSB7IHJldHVybiAg
bV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExD
aGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQs
IE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0
IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVu
Z3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQp
CiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0RSkK
QEAgLTMzNiw3ICszMzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1
bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTgsIFlhcnI4Qml0UHRyVGFnPihtX3JlZjguY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRwdXQsIG1h
dGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3Qg
VUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1
dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1
bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4
dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGUoKSk7CiAjaWYgQ1BVKEFSTTY0
RSkKQEAgLTM0Niw3ICszNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3Vs
dCh1bnRhZ0NGdW5jdGlvblB0cjxZYXJySklUQ29kZTE2LCBZYXJyMTZCaXRQdHJUYWc+KG1fcmVm
MTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBvdXRw
dXQsIG1hdGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUo
Y29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRj
aGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVj
dXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBB
U1NFUlQoaGFzOEJpdENvZGVNYXRjaE9ubHkoKSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTM1Niw3
ICszNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5j
dGlvblB0cjxZYXJySklUQ29kZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPiht
X21hdGNoT25seTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVu
Z3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3Vs
dCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxl
bmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hS
ZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsK
ICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRF
KQpAQCAtNDM5LDcgKzQ0MCw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYsIFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUsIFZNKiwgWWFyckNvZGVCbG9jCiAKIGNsYXNzIFlh
cnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sq
LCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3Qg
Vk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRSZWdpc3Rl
cnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJp
bmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95
ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMmLCBZYXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYK
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAppbmRleCBiYjgyMWNlODY3ZmUzOGUyOGYzNWNlNzA2Yjli
YzYwOTk0MmY3OWI0Li5kZTU3Nzg0ODk4NDM2OTgwNThkZjc4YjExYWJhNTI3NWQ5NDgxMWIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCkBAIC0y
MDYsNiArMjA2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKDB4MTAwMDApOwogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVh
ZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsK
ICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRl
VGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDApOworICAgIGNvbnN0IE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaApp
bmRleCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcyNWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJm
ZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCkBAIC0zNywxMiAr
MzcsMTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJD
b2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29udGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJ
RF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0gICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZN
JiwgWWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1hdGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdD
b250ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1p
dCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNYXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3Rh
Y2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9t
YXRjaEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAq
IHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKK2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xk
ZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0
QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0o
dm0pCiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZyb20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAg
aW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2
bSwgWWFyckNvZGVCbG9jayogeWFyckMKICAgICB9CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxM
X1BBUkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAoeWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJs
b2NrLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSkgeworICAgIGlmICh1c2VzUGF0dGVybkNv
bnRleHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNx
dWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4
dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRleHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxvY2spOworICAgIFVOVVNFRF9QQVJBTSh1c2Vz
UGF0dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3Bw
CmluZGV4IDA0ZmJjY2FlNWRhMGE0MzQ3ZmE5ODFkMDY0YzBiN2I2MWUyNGNiOWYuLjQwZjFkNzVm
MTVjYmI1OTQ3ZDE4NmQyN2IwMGNhMWJmNmUxNWRjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvSGVhcC5jcHAKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNw
cApAQCAtMTA1LDcgKzEwNSw3IEBAIEJJTkxJTkUgdm9pZCBIZWFwOjphZGp1c3RTdGF0KHNpemVf
dCYgdmFsdWUsIHNzaXplX3QgYW1vdW50KQogCiBCSU5MSU5FIHZvaWQgSGVhcDo6bG9nU3RhdChz
aXplX3QgdmFsdWUsIHNzaXplX3QgYW1vdW50LCBjb25zdCBjaGFyKiBsYWJlbCwgY29uc3QgY2hh
ciogbm90ZSkKIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiAlbHUgKCVsZCkgJXNcbiIsIGxh
YmVsLCB2YWx1ZSwgYW1vdW50LCBub3RlKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiAlenUg
KCV6ZCkgJXNcbiIsIGxhYmVsLCB2YWx1ZSwgYW1vdW50LCBub3RlKTsKIH0KIAogQklOTElORSB2
b2lkIEhlYXA6OmFkanVzdEZyZWVhYmxlTWVtb3J5KFVuaXF1ZUxvY2tIb2xkZXImLCBzc2l6ZV90
IGFtb3VudCwgY29uc3QgY2hhciogbm90ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449450</attachid>
            <date>2022-01-18 16:43:11 -0800</date>
            <delta_ts>2022-01-19 10:52:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220119004309.patch</filename>
            <type>text/plain</type>
            <size>29423</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi44MmRiYzg3MjQ1NGI0N2U1
MjZmMzIxZWM3MGUxNjMxNTM1MDljNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4gVGhpcyBwYXRjaCBmaXhlcyBob3cKKyAgICAgICAg
dGhlIG9mZnNldCBpcyBjYWxjdWxhdGVkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRy
b2R1Y2VzIHNvbWUgc21hbGwgY2hhbmdlczoKKworICAgICAgICAxLiBBZGRlZCBzdGF0aWNfYXNz
ZXJ0cyB0aGF0IHRoZSBZYXJySklUIGNhbGxzIGRvIGluZGVlZCBoYXZlIDUgYXJndW1lbnRzCisg
ICAgICAgIGFuZCB0aGF0IHRoZSA1dGggYXJndW1lbnQgaGFzIHRoZSB0eXBlIHRoYXQgd2UgZXhw
ZWN0IChNYXRjaGluZ0NvbnRleHRIb2xkZXIqKS4KKworICAgICAgICAyLiBSZW1vdmVkIGFuIHVu
bmVjZXNzYXJ5IHBvaW50ZXIgZnJvbSB0aGUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyCisgICAgICAg
IGNvbnN0cnVjdG9yLgorCisgICAgICAgIDMuIEZpeGVkIHNvbWUgd2FybmluZ3MgaW4gdGhlIFlh
cnJKSVQgY29kZSBoZXJlIGFuZCB0aGVyZS4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJl
Z0V4cFRlc3RJbmxpbmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwSW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpSZWdFeHA6Om1hdGNoSW5saW5lKToKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQu
Y3BwOgorICAgICAgICAqIHlhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oOgorICAgICAg
ICAoSlNDOjpZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRl
cik6CisKIDIwMjItMDEtMTAgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWxsb3cgbG9vcCB0aWVyIHVwIHRvIHRoZSBBaXIgdGllcgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMDc4YmJlMzll
YWJiNWUzZWQyYzhjYjhjMTgwMmMwNThmYjM2Y2FmOS4uZThiN2FlZmM0ZTc5ZGM1ZTFlZWViNmEx
YTFjMDY3ODBmYTdjMzNiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0yODg4LDcgKzI4ODgsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlUmVnRXhwVGVzdElubGluZShOb2RlKiBub2RlKQogewogICAgIFVOVVNF
RF9QQVJBTShub2RlKTsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gY29t
cGlsZVJlZ0V4cFRlc3Qobm9kZSk7CisgICAgY29tcGlsZVJlZ0V4cFRlc3Qobm9kZSk7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAppbmRleCA1MmExM2FhYWZiNzdi
NmU0NGZhN2ViMTkyYjA2ODQzYzJjY2I5MjI2Li42MGE1YmVlMTViODIyMDc2NDY1MTIwZGY3NGU5
NDA4ZDc4YmM3Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUklu
Zm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaApAQCAtNjI2LDcg
KzYyNiw3IEBAIGNsYXNzIEdQUkluZm8gewogcHVibGljOgogICAgIHR5cGVkZWYgR1BSUmVnIFJl
Z2lzdGVyVHlwZTsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mUmVnaXN0
ZXJzID0gMTY7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50
UmVnaXN0ZXJzID0gODsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJn
dW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTOwogCiAgICAgLy8g
VGhlc2UgcmVnaXN0ZXJzIG1hdGNoIHRoZSBiYXNlbGluZSBKSVQuCiAgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6ZnA7CkBAIC04
MjUsNyArODI1LDcgQEAgY2xhc3MgR1BSSW5mbyB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBHUFJS
ZWcgUmVnaXN0ZXJUeXBlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZS
ZWdpc3RlcnMgPSAxMzsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mQXJn
dW1lbnRSZWdpc3RlcnMgPSA4OworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbnVtYmVy
T2ZBcmd1bWVudFJlZ2lzdGVycyA9IE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlM7CiAKICAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBjYWxsRnJhbWVSZWdpc3RlciA9IFJJU0NWNjRSZWdp
c3RlcnM6OmZwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIG51bWJlclRhZ1JlZ2lzdGVy
ID0gUklTQ1Y2NFJlZ2lzdGVyczo6eDI1OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cC5jcHAKaW5kZXggMWI4Y2Q0MjBmMTA3MDlkMWJlYjFhNDUwZDEzMDQwZjM3NzMyNjg2My4u
NDQ5MDlkMTY5NGJjNTVjNzViMjc3Y2M1MTYwMDAwMjg0YjRhZDMyZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCkBAIC00NDgsMTAgKzQ0OCwxMCBAQCB2b2lkIFJl
Z0V4cDo6bWF0Y2hDb21wYXJlV2l0aEludGVycHJldGVyKGNvbnN0IFN0cmluZyYgcywgaW50IHN0
YXJ0T2Zmc2V0LCBpbnQqCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBKSVRDb2Rl
OiB7CiAgICAgICAgICAgICBZYXJyOjpZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2sgPSAqbV9yZWdF
eHBKSVRDb2RlLmdldCgpOwotICAgICAgICAgICAgc25wcmludGYoaml0OEJpdE1hdGNoT25seUFk
ZHIsIGppdEFkZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
Y29kZUJsb2NrLmdldDhCaXRNYXRjaE9ubHlBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRm
KGppdDE2Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTRseCIsIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZCaXRNYXRjaE9ubHlBZGRyKCkpKTsK
LSAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRjaEFkZHIsIGppdEFkZHJTaXplLCAiMHgl
MDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDhCaXRNYXRj
aEFkZHIoKSkpOwotICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaEFkZHIsIGppdEFk
ZHJTaXplLCAiMHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2Nr
LmdldDE2Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRmKGppdDhCaXRNYXRj
aE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAg
ICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAiMHglMDE0
IiBQUkl4UFRSLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0
TWF0Y2hPbmx5QWRkcigpKSk7CisgICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRy
LCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKKyAgICAgICAgICAgIHNucHJpbnRm
KGppdDE2Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBJbmxpbmVzLmgKaW5kZXggMDIyY2JiYTU1NTdlNzE3OGQx
NGQ0YjY2MWVkY2Q2ODVhNGY3ODdlMi4uOWM2NTVmNDZhYjAwMTYyM2Q4ZTM0MmZlYzBlM2Q2ODg3
ZWI1ZjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cElubGlu
ZXMuaApAQCAtMTMyLDEyICsxMzIsMTIgQEAgQUxXQVlTX0lOTElORSBpbnQgUmVnRXhwOjptYXRj
aElubGluZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0LCBWTSYgdm0KICAgICBp
ZiAobV9zdGF0ZSA9PSBKSVRDb2RlKSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVCht
X3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hGcm9t
KTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0
KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlzLCBt
YXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAgICAg
ICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBzdGFy
dE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250ZXh0KS5zdGFydDsK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFy
YWN0ZXJzOCgpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhw
Q29udGV4dCkuc3RhcnQ7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0
ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0
LCBzLmxlbmd0aCgpLCBvZmZzZXRWZWN0b3IsIHJlZ0V4cENvbnRleHQpLnN0YXJ0OworICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMx
NigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCAmcmVnRXhwQ29udGV4
dCkuc3RhcnQ7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVzdWx0ID09IHN0YXRpY19jYXN0
PGludD4oWWFycjo6SlNSZWdFeHBSZXN1bHQ6OkpJVENvZGVGYWlsdXJlKSkgewpAQCAtMTQ2LDcg
KzE0Niw4IEBAIEFMV0FZU19JTkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxP
YmplY3QqIG51bGxPckdsb2JhbE9iamVjdCwgVk0mIHZtCiAgICAgICAgICAgICBpZiAobV9zdGF0
ZSA9PSBQYXJzZUVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCk7CiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVy
IHJlZ0V4cENvbnRleHQodm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAg
ICAgICAgY29uc3RleHByIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyID0gZmFsc2U7Cisg
ICAgICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAg
ICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdFeHBCeXRlY29kZS5nZXQoKSwg
cywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihvZmZzZXRWZWN0b3Ip
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTYyLDcgKzE2Myw4IEBAIEFMV0FZU19J
TkxJTkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2Jh
bE9iamVjdCwgVk0mIHZtCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIFlhcnI6
Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBt
YXRjaEZyb20pOworICAgICAgICBjb25zdGV4cHIgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZm
ZXIgPSBmYWxzZTsKKyAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENv
bnRleHQodm0sIHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgdGhpcywgbWF0Y2hGcm9tKTsKICAg
ICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMs
IHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7
CiAgICAgfQogCkBAIC0yNjYsMTIgKzI2OCwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hdGNoUmVzdWx0
IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9iamVjdAog
ICAgICAgICBNYXRjaFJlc3VsdCByZXN1bHQ7CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VS
VChtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9s
ZGVyIHJlZ0V4cENvbnRleHQodm0sIG1fcmVnRXhwSklUQ29kZS5nZXQoKSwgdGhpcywgbWF0Y2hG
cm9tKTsKKyAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250
ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUtPnVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcigpLCB0aGlz
LCBtYXRjaEZyb20pOwogCiAgICAgICAgICAgICBpZiAocy5pczhCaXQoKSkKLSAgICAgICAgICAg
ICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0ZXJzOCgpLCBz
dGFydE9mZnNldCwgcy5sZW5ndGgoKSwgcmVnRXhwQ29udGV4dCk7CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRP
ZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBDb250ZXh0KTsKICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4ZWN1dGUocy5jaGFyYWN0
ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQpOworICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3RlcnMx
NigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgJnJlZ0V4cENvbnRleHQpOwogICAgICAgICB9
CiAKICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCkBAIC0yOTUsNyArMjk3LDggQEAgQUxXQVlT
X0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBu
dWxsT3JHbG9iYWxPYmplY3QKICAgICBub25SZXR1cm5lZE92ZWN0b3IuZ3JvdyhvZmZzZXRWZWN0
b3JTaXplKTsKICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92ZWN0b3IuZGF0YSgpOwog
ICAgIHsKLSAgICAgICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQo
dm0sIG51bGxwdHIsIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgIGNvbnN0ZXhwciBib29sIHVz
ZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IGZhbHNlOworICAgICAgICBZYXJyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyLCB0
aGlzLCBtYXRjaEZyb20pOwogICAgICAgICByZXN1bHQgPSBZYXJyOjppbnRlcnByZXQobV9yZWdF
eHBCeXRlY29kZS5nZXQoKSwgcywgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWdu
ZWQqPihvZmZzZXRWZWN0b3IpKTsKICAgICB9CiAjaWYgUkVHRVhQX0ZVTkNfVEVTVF9EQVRBX0dF
TgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAppbmRleCBhNDk4ZWY3ODA3MzE4
MjRkY2YyZWY4Nzk4NWJiMDliMjkzMjBjZWFlLi5mMTEyYjc3YWQ0NzdmZTM3ZjcxMDIwOTA5ZGM2
YzEzMTI0YTNjYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcApAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIllhcnJKSVQuaCIK
IAorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNp
bmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiVk0uaCIKQEAgLTE4NiwxMCArMTg3LDYgQEAg
c3RkOjp0dXBsZTxCb3llck1vb3JlQml0bWFwOjpNYXAsIEJveWVyTW9vcmVGYXN0Q2FuZGlkYXRl
cz4gQm95ZXJNb29yZUluZm86OmNyZWEKIHRlbXBsYXRlPGNsYXNzIFlhcnJKSVRSZWdzID0gWWFy
ckpJVERlZmF1bHRSZWdpc3RlcnM+CiBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IFlhcnJKSVRJbmZvIHsKIAotI2lmZGVmICBKSVRfVU5JQ09ERV9FWFBSRVNTSU9OUwotICAgIGNv
bnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7Ci0jZW5kaWYKLQogI2lmIEVOQUJM
RShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQogICAgIHN0cnVjdCBQYXJlbkNvbnRl
eHRTaXplcyB7CiAgICAgICAgIHNpemVfdCBtX251bVN1YnBhdHRlcm5zOwpAQCAtNjAzLDcgKzYw
MCw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewog
ICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWduZWQoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9y
ZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwgcmVzdWx0UmVnKTsKIAogICAgICAgICAvLyBJ
cyB0aGUgY2hhcmFjdGVyIGEgbGVhZGluZyBzdXJyb2dhdGU/Ci0gICAgICAgIG1faml0LmFuZDMy
KFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzOjpzdXJyb2dhdGVUYWdNYXNrLCByZXN1bHRSZWcsIG1f
cmVncy51bmljb2RlVGVtcCk7CisgICAgICAgIG1faml0LmFuZDMyKG1fcmVncy5zdXJyb2dhdGVU
YWdNYXNrLCByZXN1bHRSZWcsIG1fcmVncy51bmljb2RlVGVtcCk7CiAgICAgICAgIG5vdFVuaWNv
ZGUuYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgbV9yZWdz
LnVuaWNvZGVUZW1wLCBtX3JlZ3MubGVhZGluZ1N1cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8v
IElzIHRoZSBpbnB1dCBsb25nIGVub3VnaCB0byByZWFkIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwpA
QCAtNjEyLDcgKzYwOSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFy
ckpJVEluZm8gewogCiAgICAgICAgIC8vIElzIHRoZSBjaGFyYWN0ZXIgYSB0cmFpbGluZyBzdXJy
b2dhdGU/CiAgICAgICAgIG1faml0LmxvYWQxNlVuYWxpZ25lZChNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhtX3JlZ3MucmVnVW5pY29kZUlucHV0QW5kVHJhaWwpLCBtX3JlZ3MucmVnVW5pY29kZUlu
cHV0QW5kVHJhaWwpOwotICAgICAgICBtX2ppdC5hbmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVy
czo6c3Vycm9nYXRlVGFnTWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3Jl
Z3MudW5pY29kZVRlbXApOworICAgICAgICBtX2ppdC5hbmQzMihtX3JlZ3Muc3Vycm9nYXRlVGFn
TWFzaywgbV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCBtX3JlZ3MudW5pY29kZVRlbXAp
OwogICAgICAgICBub3RVbmljb2RlLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6Tm90RXF1YWwsIG1fcmVncy51bmljb2RlVGVtcCwgbV9yZWdzLnRyYWlsaW5nU3Vycm9nYXRl
VGFnKSk7CiAKICAgICAgICAgLy8gQ29tYmluZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzdXJyb2dh
dGVzIHRvIHByb2R1Y2UgYSBjb2RlIHBvaW50LgpAQCAtMzk2MSw1NyArMzk1OCw3MSBAQCBjbGFz
cyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgIHZvaWQg
Z2VuZXJhdGVFbnRlcigpCiAgICAgeworICAgICAgICBhdXRvIHB1c2hJbkVudGVyID0gWyZdKEdQ
UlJlZyBncHIpIHsKKyAgICAgICAgICAgIG1faml0LnB1c2goZ3ByKTsKKyAgICAgICAgICAgIG1f
cHVzaENvdW50SW5FbnRlciArPSAxOworICAgICAgICB9OworCisgICAgICAgIGF1dG8gcHVzaFBh
aXJJbkVudGVyID0gWyZdKEdQUlJlZyBncHIxLCBHUFJSZWcgZ3ByMikgeworICAgICAgICAgICAg
bV9qaXQucHVzaFBhaXIoZ3ByMSwgZ3ByMik7CisgICAgICAgICAgICBtX3B1c2hDb3VudEluRW50
ZXIgKz0gMjsKKyAgICAgICAgfTsKKwogI2lmIENQVShYODZfNjQpCi0gICAgICAgIG1faml0LnB1
c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplYnApOworICAgICAgICBVTlVT
RURfVkFSSUFCTEUocHVzaFBhaXJJbkVudGVyKTsKKyAgICAgICAgbV9qaXQuZW1pdEZ1bmN0aW9u
UHJvbG9ndWUoKTsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZh
bHVlKQotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVieCk7CisgICAgICAg
ICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVieCk7CiAKICNpZiBPUyhXSU5ET1dTKQot
ICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWRpKTsKKyAgICAgICAgcHVzaEluRW50
ZXIoWDg2UmVnaXN0ZXJzOjplZGkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFlBUlJfSklUX0FMTF9Q
QVJFTlNfRVhQUkVTU0lPTlMpCiAgICAgICAgIGlmIChtX2NvbnRhaW5zTmVzdGVkU3VicGF0dGVy
bnMpIHsKICNpZiBPUyhXSU5ET1dTKQotICAgICAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3Rl
cnM6OmVzaSk7CisgICAgICAgICAgICBwdXNoSW5FbnRlcihYODZSZWdpc3RlcnM6OmVzaSk7CiAj
ZW5kaWYKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpyMTIpOworICAgICAg
ICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTIpOwogICAgICAgICB9CiAjZW5kaWYK
IAogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewotICAgICAgICAgICAgbV9q
aXQucHVzaChYODZSZWdpc3RlcnM6OnIxMyk7Ci0gICAgICAgICAgICBtX2ppdC5wdXNoKFg4NlJl
Z2lzdGVyczo6cjE0KTsKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpyMTUp
OworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTMpOworICAgICAgICAg
ICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjpyMTQpOworICAgICAgICAgICAgcHVzaEluRW50
ZXIoWDg2UmVnaXN0ZXJzOjpyMTUpOwogICAgICAgICB9CiAjaWYgT1MoV0lORE9XUykKICAgICAg
ICAgaWYgKG1fY29tcGlsZU1vZGUgPT0gSklUQ29tcGlsZU1vZGU6OkluY2x1ZGVTdWJwYXR0ZXJu
cykKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoWDg2
UmVnaXN0ZXJzOjplYnAsIDYgKiBzaXplb2Yodm9pZCopKSwgbV9yZWdzLm91dHB1dCk7CisgICAg
ICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1i
bGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgNiAqIHNpemVvZih2b2lkKikpLCBtX3JlZ3Mub3V0
cHV0KTsKICAgICAgICAgLy8gcmN4IGlzIHRoZSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgc3Bh
Y2UgZm9yIHJlc3VsdCBpbiB4NjQgV2luZG93cy4KLSAgICAgICAgbV9qaXQucHVzaChYODZSZWdp
c3RlcnM6OmVjeCk7CisgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6ZWN4KTsKICNl
bmRpZgogI2VsaWYgQ1BVKEFSTTY0KQorICAgICAgICBVTlVTRURfVkFSSUFCTEUocHVzaEluRW50
ZXIpOwogICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1f
aml0LnRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFp
cnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAg
ICAgICAgIG1faml0LnB1c2hQYWlyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3Rl
ciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CisgICAgICAgICAgICAgICAgcHVzaFBh
aXJJbkVudGVyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3Nl
bWJsZXI6OmxpbmtSZWdpc3Rlcik7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCksIG1fcmVncy5zdXBwbGVtZW50YXJ5UGxhbmVzQmFz
ZSk7CiAgICAgICAgICAgICBtX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
MHhkODAwKSwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVUYWcpOwogICAgICAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCksIG1fcmVncy50cmFpbGlu
Z1N1cnJvZ2F0ZVRhZyk7CiAgICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhVTUIyKQotICAgICAg
ICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjQpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJl
Z2lzdGVyczo6cjUpOwotICAgICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjYpOwotICAg
ICAgICBtX2ppdC5wdXNoKEFSTVJlZ2lzdGVyczo6cjgpOwotICAgICAgICBtX2ppdC5wdXNoKEFS
TVJlZ2lzdGVyczo6cjEwKTsKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hQYWlySW5FbnRl
cik7CisgICAgICAgIHB1c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjQpOworICAgICAgICBwdXNo
SW5FbnRlcihBUk1SZWdpc3RlcnM6OnI1KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0
ZXJzOjpyNik7CisgICAgICAgIHB1c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjgpOworICAgICAg
ICBwdXNoSW5FbnRlcihBUk1SZWdpc3RlcnM6OnIxMCk7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKKyAg
ICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hJbkVudGVyKTsKICAgICAgICAgaWYgKG1fZGVjb2Rl
U3Vycm9nYXRlUGFpcnMpCi0gICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fzc2VtYmxl
cjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwot
I2VsaWYgQ1BVKE1JUFMpCi0gICAgICAgIC8vIERvIG5vdGhpbmcuCisgICAgICAgICAgICBwdXNo
UGFpckluRW50ZXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fz
c2VtYmxlcjo6bGlua1JlZ2lzdGVyKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShw
dXNoSW5FbnRlcik7CisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNoUGFpckluRW50ZXIpOwog
I2VuZGlmCiAgICAgfQogCkBAIC00MDUyLDcgKzQwNjMsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICBpZiAobV9wYXR0ZXJuLm1f
c2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVy
czo6ZWJ4KTsKLSAgICAgICAgbV9qaXQucG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKKyAgICAgICAg
bV9qaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICNlbGlmIENQVShBUk02NCkKICAgICAgICAg
aWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKICAgICAgICAgICAgIGlmICghT3B0aW9uczo6
dXNlSklUQ2FnZSgpKQpAQCAtNDA2Nyw5ICs0MDc4LDggQEAgY2xhc3MgWWFyckdlbmVyYXRvciBm
aW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAjZWxpZiBDUFUoUklTQ1Y2NCkKICAgICAgICAg
aWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpCiAgICAgICAgICAgICBtX2ppdC5wb3BQYWlyKE1h
Y3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtS
ZWdpc3Rlcik7Ci0jZWxpZiBDUFUoTUlQUykKLSAgICAgICAgLy8gRG8gbm90aGluZwogI2VuZGlm
CisKICNpZiBDUFUoQVJNNjRFKQogICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKQog
ICAgICAgICAgICAgbV9qaXQuZmFySnVtcChNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihy
ZXRhZ0NvZGVQdHI8dm9pZCosIENGdW5jdGlvblB0clRhZywgT3BlcmF0aW9uUHRyVGFnPigmdm1F
bnRyeVRvWWFyckpJVEFmdGVyKSksIE9wZXJhdGlvblB0clRhZyk7CkBAIC00MDg2LDcgKzQwOTYs
NyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKICAg
ICB9CiAKIHB1YmxpYzoKLSAgICBZYXJyR2VuZXJhdG9yKE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNv
bnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYg
cmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywg
Q2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJH
ZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckNvZGVCbG9jayog
Y29kZUJsb2NrLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4s
IGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBp
bGVNb2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3Zt
KHZtKQogICAgICAgICAsIG1fY29kZUJsb2NrKGNvZGVCbG9jaykKQEAgLTQxMDUsNyArNDExNSw3
IEBAIHB1YmxpYzoKICAgICAgICAgbV9ib3llck1vb3JlRGF0YSA9IHN0YXRpY19jYXN0PFlhcnJC
b3llck1veWVyRGF0YSo+KG1fY29kZUJsb2NrKTsKICAgICB9CiAKLSAgICBZYXJyR2VuZXJhdG9y
KE1hY3JvQXNzZW1ibGVyJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5
YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4s
IGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBp
bGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQs
IGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJy
SklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVy
blN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQog
ICAgICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZtKQogICAgICAgICAsIG1fY29k
ZUJsb2NrKG51bGxwdHIpCkBAIC00MTM5LDYgKzQxNDksMTMgQEAgcHVibGljOgogICAgICAgICBt
X2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyID0gc3RhY2tDaGVja2VyOwogICAgIH0KIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGU+CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB2b2lkIGZ1bmN0aW9uQ2hlY2tzKCkKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoRnVu
Y3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OmNDYWxsQXJpdHkoKSA9PSA1LCAiWWFyckpJVENv
ZGUgdGFrZXMgNSBhcmd1bWVudHMiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Nh
bWU8TWF0Y2hpbmdDb250ZXh0SG9sZGVyKiwgdHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8T3BlcmF0
aW9uVHlwZT46OnRlbXBsYXRlIEFyZ3VtZW50VHlwZTw0Pj46OnZhbHVlLCAiTWF0Y2hpbmdDb250
ZXh0SG9sZGVyKiBpcyBleHBlY3RlZCBhcyB0aGUgZnVuY3Rpb24gNXRoIGFyZ3VtZW50Iik7Cisg
ICAgfQorCiAgICAgdm9pZCBjb21waWxlKFlhcnJDb2RlQmxvY2smIGNvZGVCbG9jaykKICAgICB7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzdGFydE9mTWFpbkNvZGU7CkBAIC00MTkx
LDE0ICs0MjA4LDMwIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGNhbGxGcmFtZVNpemVJbkJ5dGVz
KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBzdGFjayBzaXplCiAgICAgICAgICAgICBtX2ppdC5h
ZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigtY2FsbEZyYW1lU2l6ZUluQnl0ZXMp
LCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG1fcmVncy5yZWdUMCk7Ci0j
aWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykKLSAgICAgICAgICAgIC8vIG1hdGNoaW5nQ29u
dGV4dCBpcyB0aGUgNXRoIGFyZ3VtZW50LCBpdCBpcyBmb3VuZCBvbiB0aGUgc3RhY2suCi0gICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBtYXRjaGluZ0NvbnRleHQgPSBtX3Jl
Z3MucmVnVDE7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA3ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4
dCk7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCi0gICAgICAgICAgICAvLyBt
YXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQgaXMgZm91bmQgb24gdGhlIHN0
YWNrLgorCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgSklUZWQgZnVuY3Rpb25z
IGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0IHRoZSA1dGggYXJndW1lbnQgaXMgYSBNYXRjaGlu
Z0NvbnRleHRIb2xkZXIqCisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJsb2Nr
OjpZYXJySklUQ29kZTg+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZYXJyQ29kZUJs
b2NrOjpZYXJySklUQ29kZTE2PigpOworICAgICAgICAgICAgZnVuY3Rpb25DaGVja3M8WWFyckNv
ZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHk4PigpOworICAgICAgICAgICAgZnVuY3Rpb25D
aGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNj4oKTsKKworI2lmIE5V
TUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgPCA1dQorICAgICAgICAgICAgLy8gTm90IGVub3Vn
aCBhcmd1bWVudCByZWdpc3RlcnM6IHRyeSB0byBsb2FkIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0
aGUgc3RhY2sKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5n
Q29udGV4dCA9IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0
ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAgICAgICAgIC8vIFRo
ZSBhcmd1bWVudCB3aWxsIGJlIGluIGFuIG9mZnNldCB0aGF0IGRlcGVuZHMgb24gdGhlIGFyY2gg
YW5kIHRoZSBudW1iZXIgb2YgcmVnaXN0ZXJzIHdlIHB1c2hlZCBpbnRvIHRoZSBzdGFjaworCisg
ICAgICAgICAgICAvLyByZXR1cm5UeXBlT2Zmc2V0OiBXaW5kb3dzIHg4NiBvbmx5LiBJZiB0aGUg
cmV0dXJuIHR5cGUgd2lkZXIgdGhhbiA2NC1iaXRzLCBpdCdzIHJldHVybmVkIHZpYSBhIHBvaW50
ZXIgdGhhdCBpcworICAgICAgICAgICAgLy8gcGFzc2VkIGFzIGFuIGltcGxpY2l0IGZpcnN0IGFy
Z3VtZW50LCBhbmQgYWxsIG90aGVyIGFyZ3VtZW50cyBhcmUgc2hpZnRlZCB0byB0aGUgcmlnaHQs
IGFkZGluZyBhICsxIG9mZnNldC4KKyNpZiBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAg
ICAgICAgICAgY29uc3RleHByIGludCByZXR1cm5UeXBlT2Zmc2V0ID0gc2l6ZW9mKE1hdGNoUmVz
dWx0KSA+PSA4OworI2Vsc2UKKyAgICAgICAgICAgIGNvbnN0ZXhwciBpbnQgcmV0dXJuVHlwZU9m
ZnNldCA9IDA7CisjZW5kaWYKKyAgICAgICAgICAgIC8vIFBPS0VfQVJHVU1FTlRfT0ZGU0VUOiBN
SVBTIGFuZCBXaW5kb3dzIDY0Yml0IHJlc2VydmUgc3BhY2UgaW4gdGhlIHN0YWNrIGZvciBhbGwg
YXJndW1lbnRzLCBzbyBhZGQgKzQgb2Zmc2V0IGluIHRoZXNlIGFyY2hzCisgICAgICAgICAgICAv
LyBtX3B1c2hDb3VudEluRW50ZXI6IG51bWJlciBvZiByZWdpc3RlcnMgcHVzaGVkIGludG8gdGhl
IHN0YWNrIChzZWUgZ2VuZXJhdGVFbnRlcigpKQorICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0
ID0gUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyBtX3B1c2hDb3VudEluRW50ZXIgKyByZXR1cm5UeXBl
T2Zmc2V0OworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG9mZnNldCAqIHNpemVvZih2
b2lkKikpLCBtYXRjaGluZ0NvbnRleHQpOwogI2Vsc2UKICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9IG1fcmVncy5tYXRjaGluZ0NvbnRleHQ7
CiAjZW5kaWYKQEAgLTQ2MTgsNyArNDY1MSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgTWFjcm9Bc3NlbWJsZXImIG1faml0OworICAgIENDYWxsSGVscGVycyYgbV9qaXQ7CiAg
ICAgY29uc3QgVk0qIG1fdm07CiAgICAgWWFyckNvZGVCbG9jayogbV9jb2RlQmxvY2s7CiAgICAg
WWFyckJveWVyTW95ZXJEYXRhKiBtX2JveWVyTW9vcmVEYXRhOwpAQCAtNDY3Miw2ICs0NzA1LDEy
IEBAIHByaXZhdGU6CiAgICAgQmFja3RyYWNraW5nU3RhdGUgbV9iYWNrdHJhY2tpbmdTdGF0ZTsK
ICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8WWFyckRpc2Fzc2VtYmxlcj4gbV9kaXNhc3NlbWJs
ZXI7CisKKyAgICAvLyBNZW1iZXIgaXMgdXNlZCB0byBjb3VudCB0aGUgbnVtYmVyIG9mIEdQUiBw
dXNoZWQgaW50byB0aGUgc3RhY2sgd2hlbgorICAgIC8vIGVudGVyaW5nIEpJVGVkIGNvZGUuIEl0
IGlzIHVzZWQgdG8gZmlndXJlIG91dCBpZiBhbiBmdW5jdGlvbiBhcmd1bWVudAorICAgIC8vIG9m
ZnNldCBpbiB0aGUgc3RhY2sgaWYgdGhlcmUgd2Fzbid0IGVub3VnaCByZWdpc3RlcnMgdG8gcGFz
cyBpdCwgZS5nLiwKKyAgICAvLyBBUk12NyBhbmQgTUlQUyBvbmx5IHVzZSA0IHJlZ2lzdGVycyB0
byBwYXNzIGZ1bmN0aW9uIGFyZ3VtZW50cy4KKyAgICB1bnNpZ25lZCBtX3B1c2hDb3VudEluRW50
ZXIgeyAwIH07CiB9OwogCiBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUoSklURmFpbHVy
ZVJlYXNvbiBmYWlsdXJlKQpAQCAtNDcwNiw3ICs0NzQ1LDcgQEAgc3RhdGljIHZvaWQgZHVtcENv
bXBpbGVGYWlsdXJlKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKIAogdm9pZCBqaXRDb21waWxl
KFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNo
YXJTaXplLCBWTSogdm0sIFlhcnJDb2RlQmxvY2smIGNvZGVCbG9jaywgSklUQ29tcGlsZU1vZGUg
bW9kZSkKIHsKLSAgICBNYWNyb0Fzc2VtYmxlciBtYXNtOworICAgIENDYWxsSGVscGVycyBtYXNt
OwogCiAgICAgQVNTRVJUKG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Ok1hdGNoT25seSB8fCBtb2Rl
ID09IEpJVENvbXBpbGVNb2RlOjpJbmNsdWRlU3VicGF0dGVybnMpOwogCkBAIC00NzI3LDcgKzQ3
NjYsNyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZyYgcGF0
dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsCiAjZXJyb3IgIk5vIHN1cHBvcnQgZm9yIGlu
bGluZWQgSklUJ2luZyBvZiBSZWdFeHAudGVzdCBmb3IgdGhpcyBDUFUgLyBPUyBjb21iaW5hdGlv
bi4iCiAjZW5kaWYKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9j
b21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5n
LCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3Qg
Vk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRhLCBNYWNyb0Fzc2VtYmxl
ciYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdpc3RlcnMpCit2b2lkIGppdENvbXBpbGVJ
bmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tDaGVja2VyLCBj
b25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFncz4gZmxhZ3Ms
IENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSYgYm95
ZXJNb29yZURhdGEsIENDYWxsSGVscGVycyYgaml0LCBZYXJySklUUmVnaXN0ZXJzJiBqaXRSZWdp
c3RlcnMpCiB7CiAgICAgWWFycjo6RXJyb3JDb2RlIGVycm9yQ29kZTsKICAgICBZYXJyOjpZYXJy
UGF0dGVybiBwYXR0ZXJuKHBhdHRlcm5TdHJpbmcsIGZsYWdzLCBlcnJvckNvZGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCmluZGV4IDI4OWQ2ZTgxZmU1MTdhYWRmYmU0OThkMTg1
ZTMwNzIwNWU2YTA3MzMuLjY5YmRlOGI5ZTc2MzM3NTdmYTFlMWZiZDY1N2IyODJlOWIxNDkwN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKQEAgLTQzLDkgKzQzLDEwIEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBWTTsKK2NsYXNzIENDYWxsSGVscGVyczsKIGNsYXNz
IEV4ZWN1dGFibGVQb29sOwogY2xhc3MgTWFjcm9Bc3NlbWJsZXI7CitjbGFzcyBWTTsKIAogbmFt
ZXNwYWNlIFlhcnIgewogCkBAIC0yNzEsMTIgKzI3MiwxMiBAQCBjbGFzcyBZYXJyQ29kZUJsb2Nr
IDogcHVibGljIFlhcnJCb3llck1veWVyRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWWFyckNvZGVCbG9jayk7CiAKLSAgICB1c2lu
ZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1
dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1
c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciog
aW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRw
dXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0g
ICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHk4ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShj
b25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0
aCwgdm9pZCosIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NB
TEw7Ci0gICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9IFNsb3dQYXRoUmV0dXJuVHlw
ZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3Rl
ciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkg
WUFSUl9DQUxMOwotCiBwdWJsaWM6CisgICAgdXNpbmcgWWFyckpJVENvZGU4ID0gU2xvd1BhdGhS
ZXR1cm5UeXBlICgqKShjb25zdCBMQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQ
VVJlZ2lzdGVyIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlB
UlJfQ0FMTDsKKyAgICB1c2luZyBZYXJySklUQ29kZTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgq
KShjb25zdCBVQ2hhciogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxl
bmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciopIFlBUlJfQ0FMTDsKKyAg
ICB1c2luZyBZYXJySklUQ29kZU1hdGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNv
bnN0IExDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3Ro
LCB2b2lkKiwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKikgWUFSUl9DQUxMOworICAgIHVzaW5nIFlh
cnJKSVRDb2RlTWF0Y2hPbmx5MTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFy
KiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyKikgWUFSUl9DQUxMOworCiAgICAgWWFyckNvZGVCbG9jaygp
ID0gZGVmYXVsdDsKIAogICAgIHZvaWQgc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNvbihKSVRG
YWlsdXJlUmVhc29uIGZhaWx1cmVSZWFzb24pIHsgbV9mYWlsdXJlUmVhc29uID0gZmFpbHVyZVJl
YXNvbjsgfQpAQCAtMzI2LDcgKzMyNyw3IEBAIHB1YmxpYzoKICAgICBJbmxpbmVTdGF0cyYgZ2V0
OEJpdElubGluZVN0YXRzKCkgeyByZXR1cm4gbV9tYXRjaE9ubHk4U3RhdHM7IH0KICAgICBJbmxp
bmVTdGF0cyYgZ2V0MTZCaXRJbmxpbmVTdGF0cygpIHsgcmV0dXJuICBtX21hdGNoT25seTE2U3Rh
dHM7IH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0
SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBM
Q2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAg
IEFTU0VSVChoYXM4Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzM2LDcgKzMzNyw3
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRy
PFlhcnJKSVRDb2RlOCwgWWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2RlKCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0KSk7
CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVu
c2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0
IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRw
dXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGhhczE2Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzQ2LDcgKzM0
Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9u
UHRyPFlhcnJKSVRDb2RlMTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYxNi5jb2RlKCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250
ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5w
dXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciYgbWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIq
IGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRI
b2xkZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0Q29k
ZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQpAQCAtMzU2LDcgKzM1Nyw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRD
b2RlTWF0Y2hPbmx5OCwgWWFyck1hdGNoT25seThCaXRQdHJUYWc+KG1fbWF0Y2hPbmx5OC5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51bGxwdHIsIG1h
dGNoaW5nQ29udGV4dCkpOwogICAgIH0KIAotICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3Qg
VUNoYXIqIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0Nv
bnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNv
bnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0Y2hp
bmdDb250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQo
aGFzMTZCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC00MzksNyArNDQw
LDcgQEAgdm9pZCBqaXRDb21waWxlKFlhcnJQYXR0ZXJuJiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5n
LCBDaGFyU2l6ZSwgVk0qLCBZYXJyQ29kZUJsb2MKIAogY2xhc3MgWWFyckpJVFJlZ2lzdGVyczsK
IAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYs
IE9wdGlvblNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1v
eWVyRGF0YSYsIE1hY3JvQXNzZW1ibGVyJiwgWWFyckpJVFJlZ2lzdGVycyYpOwordm9pZCBqaXRD
b21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlvblNldDxZ
YXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0YSYsIEND
YWxsSGVscGVycyYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKICNlbmRpZgogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckpJVFJlZ2lzdGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lz
dGVycy5oCmluZGV4IGJiODIxY2U4NjdmZTM4ZTI4ZjM1Y2U3MDZiOWJjNjA5OTQyZjc5YjQuLmRl
NTc3ODQ4OTg0MzY5ODA1OGRmNzhiMTFhYmE1Mjc1ZDk0ODExYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgKQEAgLTIwNiw2ICsyMDYsNyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBzdXBwbGVtZW50
YXJ5UGxhbmVzQmFzZSA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHgxMDAwMCk7CiAg
ICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBsZWFkaW5nU3Vycm9nYXRlVGFn
ID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGQ4MDApOwogICAgIGNvbnN0IE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4ZGMwMCk7CisgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MigweGZmZmZmYzAwKTsKIH07CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCmluZGV4IDEzOWQxZmUzNWI1
NzVjNzBhMDVhN2U3NzI1ZGQ5ZmExZWZiNjYwMWUuLjFhZjgzMDk4MmZmNTdmMmE5M2I2NjE3OTM4
ZDJkYmM1ZGVjOGExNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKQEAgLTM3LDEyICszNywxMCBAQCBjbGFzcyBS
ZWdFeHA7CiAKIG5hbWVzcGFjZSBZYXJyIHsKIAotY2xhc3MgWWFyckNvZGVCbG9jazsKLQogY2xh
c3MgTWF0Y2hpbmdDb250ZXh0SG9sZGVyIHsKICAgICBXVEZfRk9SQklEX0hFQVBfQUxMT0NBVElP
TjsKIHB1YmxpYzoKLSAgICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBZYXJyQ29kZUJsb2Nr
KiwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKKyAgICBNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mLCBi
b29sLCBSZWdFeHAqLCBNYXRjaEZyb20pOwogICAgIH5NYXRjaGluZ0NvbnRleHRIb2xkZXIoKTsK
IAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTdGFja0xpbWl0KCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKE1hdGNoaW5nQ29udGV4dEhvbGRlciwgbV9zdGFja0xpbWl0KTsgfQpAQCAt
NjEsNyArNTksNyBAQCBwcml2YXRlOgogICAgIE1hdGNoRnJvbSBtX21hdGNoRnJvbTsKIH07CiAK
LWlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYg
dm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDb2RlQmxvY2ssIFJlZ0V4cCogcmVnRXhwLCBNYXRjaEZy
b20gbWF0Y2hGcm9tKQoraW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250
ZXh0SG9sZGVyKFZNJiB2bSwgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIFJlZ0V4cCog
cmVnRXhwLCBNYXRjaEZyb20gbWF0Y2hGcm9tKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fbWF0
Y2hGcm9tKG1hdGNoRnJvbSkKIHsKQEAgLTc0LDEyICs3MiwxMiBAQCBpbmxpbmUgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2Nr
KiB5YXJyQwogICAgIH0KIAogI2lmIEVOQUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJ
T05TKQotICAgIGlmICh5YXJyQ29kZUJsb2NrICYmIHlhcnJDb2RlQmxvY2stPnVzZXNQYXR0ZXJu
Q29udGV4dEJ1ZmZlcigpKSB7CisgICAgaWYgKHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlcikgewog
ICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyID0gbV92bS5hY3F1aXJlUmVnRXhwUGF0dGVy
bkNvbnRleEJ1ZmZlcigpOwogICAgICAgICBtX3BhdHRlcm5Db250ZXh0QnVmZmVyU2l6ZSA9IFZN
OjpwYXR0ZXJuQ29udGV4dEJ1ZmZlclNpemU7CiAgICAgfQogI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oeWFyckNvZGVCbG9jayk7CisgICAgVU5VU0VEX1BBUkFNKHVzZXNQYXR0ZXJuQ29udGV4dEJ1
ZmZlcik7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9I
ZWFwLmNwcCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAKaW5kZXggMDRmYmNjYWU1
ZGEwYTQzNDdmYTk4MWQwNjRjMGI3YjYxZTI0Y2I5Zi4uNDBmMWQ3NWYxNWNiYjU5NDdkMTg2ZDI3
YjAwY2ExYmY2ZTE1ZGMxMSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFw
LmNwcAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCkBAIC0xMDUsNyArMTA1
LDcgQEAgQklOTElORSB2b2lkIEhlYXA6OmFkanVzdFN0YXQoc2l6ZV90JiB2YWx1ZSwgc3NpemVf
dCBhbW91bnQpCiAKIEJJTkxJTkUgdm9pZCBIZWFwOjpsb2dTdGF0KHNpemVfdCB2YWx1ZSwgc3Np
emVfdCBhbW91bnQsIGNvbnN0IGNoYXIqIGxhYmVsLCBjb25zdCBjaGFyKiBub3RlKQogewotICAg
IGZwcmludGYoc3RkZXJyLCAiJXM6ICVsdSAoJWxkKSAlc1xuIiwgbGFiZWwsIHZhbHVlLCBhbW91
bnQsIG5vdGUpOworICAgIGZwcmludGYoc3RkZXJyLCAiJXM6ICV6dSAoJXpkKSAlc1xuIiwgbGFi
ZWwsIHZhbHVlLCBhbW91bnQsIG5vdGUpOwogfQogCiBCSU5MSU5FIHZvaWQgSGVhcDo6YWRqdXN0
RnJlZWFibGVNZW1vcnkoVW5pcXVlTG9ja0hvbGRlciYsIHNzaXplX3QgYW1vdW50LCBjb25zdCBj
aGFyKiBub3RlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449495</attachid>
            <date>2022-01-19 10:53:04 -0800</date>
            <delta_ts>2022-01-24 09:23:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220119185302.patch</filename>
            <type>text/plain</type>
            <size>29059</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi45YTRmYzk4MTVkN2I3ODMx
NzFiYTJhOTY0ZWQxM2ZiNDUwOTYzNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4gVGhpcyBwYXRjaCBmaXhlcyBob3cKKyAgICAgICAg
dGhlIG9mZnNldCBpcyBjYWxjdWxhdGVkIGZvciBNSVBTIGFuZCBBUk12Ny4KKworICAgICAgICBU
aGlzIHBhdGNoIGFsc28gaW50cm9kdWNlcyBzb21lIHNtYWxsIGNoYW5nZXM6CisKKyAgICAgICAg
MS4gQWRkZWQgc3RhdGljX2Fzc2VydHMgdGhhdCB0aGUgWWFyckpJVCBjYWxscyBkbyBpbmRlZWQg
aGF2ZSA1IGFyZ3VtZW50cworICAgICAgICBhbmQgdGhhdCB0aGUgNXRoIGFyZ3VtZW50IGhhcyB0
aGUgdHlwZSB0aGF0IHdlIGV4cGVjdCAoTWF0Y2hpbmdDb250ZXh0SG9sZGVyKikuCisKKyAgICAg
ICAgMi4gUmVtb3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29u
dGV4dEhvbGRlcgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICAzLiBGaXhlZCBzb21l
IHdhcm5pbmdzIGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAg
ICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRl
eHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpN
YXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJh
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRp
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCmluZGV4IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4Yjdh
ZWZjNGU3OWRjNWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSog
bm9kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdF
eHBUZXN0KG5vZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvR1BSSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgK
aW5kZXggNTJhMTNhYWFmYjc3YjZlNDRmYTdlYjE5MmIwNjg0M2MyY2NiOTIyNi4uNjBhNWJlZTE1
YjgyMjA3NjQ2NTEyMGRmNzRlOTQwOGQ3OGJjN2NkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9H
UFJJbmZvLmgKQEAgLTYyNiw3ICs2MjYsNyBAQCBjbGFzcyBHUFJJbmZvIHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEdQUlJlZyBSZWdpc3RlclR5cGU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDE2OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JF
R0lTVEVSUzsKIAogICAgIC8vIFRoZXNlIHJlZ2lzdGVycyBtYXRjaCB0aGUgYmFzZWxpbmUgSklU
LgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNNjRS
ZWdpc3RlcnM6OmZwOwpAQCAtODI1LDcgKzgyNSw3IEBAIGNsYXNzIEdQUkluZm8gewogcHVibGlj
OgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKICAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMTM7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJHVU1F
TlRfUkVHSVNURVJTOwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVn
aXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjpmcDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJl
ZyBudW1iZXJUYWdSZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OngyNTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDFiOGNkNDIwZjEwNzA5ZDFiZWIxYTQ1
MGQxMzA0MGYzNzczMjY4NjMuLjQ0OTA5ZDE2OTRiYzU1Yzc1YjI3N2NjNTE2MDAwMDI4NGI0YWQz
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtNDQ4LDEw
ICs0NDgsMTAgQEAgdm9pZCBSZWdFeHA6Om1hdGNoQ29tcGFyZVdpdGhJbnRlcnByZXRlcihjb25z
dCBTdHJpbmcmIHMsIGludCBzdGFydE9mZnNldCwgaW50KgogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgSklUQ29kZTogewogICAgICAgICAgICAgWWFycjo6WWFyckNvZGVCbG9jayYg
Y29kZUJsb2NrID0gKm1fcmVnRXhwSklUQ29kZS5nZXQoKTsKLSAgICAgICAgICAgIHNucHJpbnRm
KGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0g
ICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAi
MHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0
TWF0Y2hPbmx5QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRy
LCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNv
ZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2
Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBz
bnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQ
VFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25s
eUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBq
aXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmlu
dGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7Cisg
ICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZC
aXRNYXRjaEFkZHIoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCmluZGV4
IDAyMmNiYmE1NTU3ZTcxNzhkMTRkNGI2NjFlZGNkNjg1YTRmNzg3ZTIuLjljNjU1ZjQ2YWIwMDE2
MjNkOGUzNDJmZWMwZTNkNjg4N2ViNWY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBJbmxpbmVzLmgKQEAgLTEzMiwxMiArMTMyLDEyIEBAIEFMV0FZU19JTkxJ
TkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9i
amVjdCwgVk0mIHZtCiAgICAgaWYgKG1fc3RhdGUgPT0gSklUQ29kZSkgewogICAgICAgICB7CiAg
ICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0
KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRI
b2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRl
eHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0
KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMu
Y2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVn
RXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRD
b2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9m
ZnNldFZlY3RvciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3Rl
cnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250
ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZl
Y3RvciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJl
c3VsdCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFlhcnI6OkpTUmVnRXhwUmVzdWx0OjpKSVRDb2RlRmFp
bHVyZSkpIHsKQEAgLTE0Niw3ICsxNDYsOCBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1h
dGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAg
ICAgICAgICAgaWYgKG1fc3RhdGUgPT0gUGFyc2VFcnJvcikKICAgICAgICAgICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigpOwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFlhcnI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRj
aEZyb20pOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBib29sIHVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlciA9IGZhbHNlOworICAgICAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIHRoaXMsIG1h
dGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVn
RXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2ln
bmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE2Miw3
ICsxNjMsOCBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFs
T2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIH0gZWxzZQogI2VuZGlmCiAg
ICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2
bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgY29uc3RleHByIGJvb2wgdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyID0gZmFsc2U7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29u
dGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIHRo
aXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4
cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25l
ZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KIApAQCAtMjY2LDEyICsyNjgsMTIgQEAgQUxXQVlT
X0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBu
dWxsT3JHbG9iYWxPYmplY3QKICAgICAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwogICAgICAgICB7
CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6
Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUu
Z2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRl
eHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNv
bnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4
Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRl
KHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQp
OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNo
YXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2Rl
LT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdF
eHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBD
b250ZXh0KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxFKFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1
LDcgKzI5Nyw4IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGlu
ZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVj
dG9yLmdyb3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAgb2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJu
ZWRPdmVjdG9yLmRhdGEoKTsKICAgICB7Ci0gICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAg
ICBjb25zdGV4cHIgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIgPSBmYWxzZTsKKyAgICAg
ICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIHVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlciwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFy
cjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWlu
dGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VY
UF9GVU5DX1RFU1RfREFUQV9HRU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAK
aW5kZXggYTQ5OGVmNzgwNzMxODI0ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uZGE0NGNjNTE0
NmVhMDU3NzlmODI4NjgwMWI1YmZkNTdmMjE4ZDdjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJZYXJySklULmgiCiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRl
ICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBA
IC0xODYsMTAgKzE4Nyw2IEBAIHN0ZDo6dHVwbGU8Qm95ZXJNb29yZUJpdG1hcDo6TWFwLCBCb3ll
ck1vb3JlRmFzdENhbmRpZGF0ZXM+IEJveWVyTW9vcmVJbmZvOjpjcmVhCiB0ZW1wbGF0ZTxjbGFz
cyBZYXJySklUUmVncyA9IFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzPgogY2xhc3MgWWFyckdlbmVy
YXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKLSNpZmRlZiAgSklUX1VOSUNPREVf
RVhQUkVTU0lPTlMKLSAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJv
Z2F0ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwot
I2VuZGlmCi0KICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKICAg
ICBzdHJ1Y3QgUGFyZW5Db250ZXh0U2l6ZXMgewogICAgICAgICBzaXplX3QgbV9udW1TdWJwYXR0
ZXJuczsKQEAgLTYwMyw3ICs2MDAsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVi
bGljIFlhcnJKSVRJbmZvIHsKICAgICAgICAgbV9qaXQubG9hZDE2VW5hbGlnbmVkKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCksIHJlc3VsdFJl
Zyk7CiAKICAgICAgICAgLy8gSXMgdGhlIGNoYXJhY3RlciBhIGxlYWRpbmcgc3Vycm9nYXRlPwot
ICAgICAgICBtX2ppdC5hbmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVyczo6c3Vycm9nYXRlVGFn
TWFzaywgcmVzdWx0UmVnLCBtX3JlZ3MudW5pY29kZVRlbXApOworICAgICAgICBtX2ppdC5hbmQz
MihtX3JlZ3Muc3Vycm9nYXRlVGFnTWFzaywgcmVzdWx0UmVnLCBtX3JlZ3MudW5pY29kZVRlbXAp
OwogICAgICAgICBub3RVbmljb2RlLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6Tm90RXF1YWwsIG1fcmVncy51bmljb2RlVGVtcCwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVU
YWcpKTsKIAogICAgICAgICAvLyBJcyB0aGUgaW5wdXQgbG9uZyBlbm91Z2ggdG8gcmVhZCBhIHRy
YWlsaW5nIHN1cnJvZ2F0ZT8KQEAgLTYxMiw3ICs2MDksNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFj
dGVyIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwogICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWduZWQo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwg
bV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKTsKLSAgICAgICAgbV9qaXQuYW5kMzIoWWFy
ckpJVERlZmF1bHRSZWdpc3RlcnM6OnN1cnJvZ2F0ZVRhZ01hc2ssIG1fcmVncy5yZWdVbmljb2Rl
SW5wdXRBbmRUcmFpbCwgbV9yZWdzLnVuaWNvZGVUZW1wKTsKKyAgICAgICAgbV9qaXQuYW5kMzIo
bV9yZWdzLnN1cnJvZ2F0ZVRhZ01hc2ssIG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCwg
bV9yZWdzLnVuaWNvZGVUZW1wKTsKICAgICAgICAgbm90VW5pY29kZS5hcHBlbmQobV9qaXQuYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBtX3JlZ3MudW5pY29kZVRlbXAsIG1fcmVn
cy50cmFpbGluZ1N1cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8vIENvbWJpbmUgbGVhZGluZyBh
bmQgdHJhaWxpbmcgc3Vycm9nYXRlcyB0byBwcm9kdWNlIGEgY29kZSBwb2ludC4KQEAgLTM5NjEs
NTcgKzM5NTgsNzEgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklU
SW5mbyB7CiAKICAgICB2b2lkIGdlbmVyYXRlRW50ZXIoKQogICAgIHsKKyAgICAgICAgYXV0byBw
dXNoSW5FbnRlciA9IFsmXShHUFJSZWcgZ3ByKSB7CisgICAgICAgICAgICBtX2ppdC5wdXNoKGdw
cik7CisgICAgICAgICAgICBtX3B1c2hDb3VudEluRW50ZXIgKz0gMTsKKyAgICAgICAgfTsKKwor
ICAgICAgICBhdXRvIHB1c2hQYWlySW5FbnRlciA9IFsmXShHUFJSZWcgZ3ByMSwgR1BSUmVnIGdw
cjIpIHsKKyAgICAgICAgICAgIG1faml0LnB1c2hQYWlyKGdwcjEsIGdwcjIpOworICAgICAgICAg
ICAgbV9wdXNoQ291bnRJbkVudGVyICs9IDI7CisgICAgICAgIH07CisKICNpZiBDUFUoWDg2XzY0
KQotICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6
ZWJwKTsKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hQYWlySW5FbnRlcik7CisgICAgICAg
IG1faml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAKICAgICAgICAgaWYgKG1fcGF0dGVybi5t
X3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0
ZXJzOjplYngpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjplYngpOwog
CiAjaWYgT1MoV0lORE9XUykKLSAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVkaSk7
CisgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6ZWRpKTsKICNlbmRpZgogI2lmIEVO
QUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQogICAgICAgICBpZiAobV9jb250
YWluc05lc3RlZFN1YnBhdHRlcm5zKSB7CiAjaWYgT1MoV0lORE9XUykKLSAgICAgICAgICAgIG1f
aml0LnB1c2goWDg2UmVnaXN0ZXJzOjplc2kpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2
UmVnaXN0ZXJzOjplc2kpOwogI2VuZGlmCi0gICAgICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lz
dGVyczo6cjEyKTsKKyAgICAgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6cjEyKTsK
ICAgICAgICAgfQogI2VuZGlmCiAKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMp
IHsKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpyMTMpOwotICAgICAgICAg
ICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OnIxNCk7Ci0gICAgICAgICAgICBtX2ppdC5wdXNo
KFg4NlJlZ2lzdGVyczo6cjE1KTsKKyAgICAgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVy
czo6cjEzKTsKKyAgICAgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6cjE0KTsKKyAg
ICAgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6cjE1KTsKICAgICAgICAgfQogI2lm
IE9TKFdJTkRPV1MpCiAgICAgICAgIGlmIChtX2NvbXBpbGVNb2RlID09IEpJVENvbXBpbGVNb2Rl
OjpJbmNsdWRlU3VicGF0dGVybnMpCi0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA2ICogc2l6ZW9mKHZvaWQqKSksIG1f
cmVncy5vdXRwdXQpOworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIDYgKiBzaXplb2Yo
dm9pZCopKSwgbV9yZWdzLm91dHB1dCk7CiAgICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0
byB0aGUgYWxsb2NhdGVkIHNwYWNlIGZvciByZXN1bHQgaW4geDY0IFdpbmRvd3MuCi0gICAgICAg
IG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplY3gpOworICAgICAgICBwdXNoSW5FbnRlcihYODZS
ZWdpc3RlcnM6OmVjeCk7CiAjZW5kaWYKICNlbGlmIENQVShBUk02NCkKKyAgICAgICAgVU5VU0VE
X1ZBUklBQkxFKHB1c2hJbkVudGVyKTsKICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdl
KCkpCiAgICAgICAgICAgICBtX2ppdC50YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAgICAgIGlmICht
X2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7CiAgICAgICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJ
VENhZ2UoKSkKLSAgICAgICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fzc2VtYmxlcjo6
ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOworICAg
ICAgICAgICAgICAgIHB1c2hQYWlySW5FbnRlcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVy
UmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9q
aXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApLCBtX3JlZ3Muc3Vw
cGxlbWVudGFyeVBsYW5lc0Jhc2UpOwogICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCksIG1fcmVncy5sZWFkaW5nU3Vycm9nYXRlVGFnKTsK
ICAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRj
MDApLCBtX3JlZ3MudHJhaWxpbmdTdXJyb2dhdGVUYWcpOwogICAgICAgICB9CiAjZWxpZiBDUFUo
QVJNX1RIVU1CMikKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI0KTsKLSAgICAg
ICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1S
ZWdpc3RlcnM6OnI2KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI4KTsKLSAg
ICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnIxMCk7CisgICAgICAgIFVOVVNFRF9WQVJJ
QUJMRShwdXNoUGFpckluRW50ZXIpOworICAgICAgICBwdXNoSW5FbnRlcihBUk1SZWdpc3RlcnM6
OnI0KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyNSk7CisgICAgICAgIHB1
c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjYpOworICAgICAgICBwdXNoSW5FbnRlcihBUk1SZWdp
c3RlcnM6OnI4KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyMTApOwogI2Vs
aWYgQ1BVKFJJU0NWNjQpCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNoSW5FbnRlcik7CiAg
ICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQucHVz
aFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxl
cjo6bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBTKQotICAgICAgICAvLyBEbyBub3RoaW5n
LgorICAgICAgICAgICAgcHVzaFBhaXJJbkVudGVyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CisjZWxzZQorICAgICAg
ICBVTlVTRURfVkFSSUFCTEUocHVzaEluRW50ZXIpOworICAgICAgICBVTlVTRURfVkFSSUFCTEUo
cHVzaFBhaXJJbkVudGVyKTsKICNlbmRpZgogICAgIH0KIApAQCAtNDA1Miw3ICs0MDYzLDcgQEAg
Y2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAg
ICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1f
aml0LnBvcChYODZSZWdpc3RlcnM6OmVieCk7Ci0gICAgICAgIG1faml0LnBvcChYODZSZWdpc3Rl
cnM6OmVicCk7CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAjZWxpZiBD
UFUoQVJNNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7CiAgICAgICAg
ICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKQEAgLTQwNjcsOSArNDA3OCw4IEBAIGNs
YXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogI2VsaWYgQ1BV
KFJJU0NWNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQogICAgICAgICAg
ICAgbV9qaXQucG9wUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1h
Y3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwotI2VsaWYgQ1BVKE1JUFMpCi0gICAgICAgIC8v
IERvIG5vdGhpbmcKICNlbmRpZgorCiAjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgaWYgKE9wdGlv
bnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1faml0LmZhckp1bXAoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9w
ZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25QdHJUYWcp
OwpAQCAtNDA4Niw3ICs0MDk2LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBZYXJySklUSW5mbyB7CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgWWFyckdlbmVyYXRvcihNYWNy
b0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Y29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJp
bmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21w
aWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSog
dm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXpl
IGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChq
aXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2RlQmxvY2sp
CkBAIC00MTA1LDcgKzQxMTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYm95ZXJNb29yZURhdGEg
PSBzdGF0aWNfY2FzdDxZYXJyQm95ZXJNb3llckRhdGEqPihtX2NvZGVCbG9jayk7CiAgICAgfQog
Ci0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlh
cnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXpl
IGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9y
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFy
ckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBj
b25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxl
TW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2
bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhudWxscHRyKQpAQCAtNDEzOSw2ICs0MTQ5LDEzIEBA
IHB1YmxpYzoKICAgICAgICAgbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciA9IHN0YWNr
Q2hlY2tlcjsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlPgor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdm9pZCBmdW5jdGlvbkNoZWNrcygpCisgICAgeworICAgICAg
ICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpjQ2FsbEFyaXR5
KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7CisgICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc19zYW1lPE1hdGNoaW5nQ29udGV4dEhvbGRlciosIHR5cGVuYW1lIEZ1
bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+Ojp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8ND4+Ojp2
YWx1ZSwgIk1hdGNoaW5nQ29udGV4dEhvbGRlciogaXMgZXhwZWN0ZWQgYXMgdGhlIGZ1bmN0aW9u
IDV0aCBhcmd1bWVudCIpOworICAgIH0KKwogICAgIHZvaWQgY29tcGlsZShZYXJyQ29kZUJsb2Nr
JiBjb2RlQmxvY2spCiAgICAgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgc3RhcnRP
Zk1haW5Db2RlOwpAQCAtNDE5MSwxNCArNDIwOCwyNSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChj
YWxsRnJhbWVTaXplSW5CeXRlcykgewogICAgICAgICAgICAgLy8gQ2hlY2sgc3RhY2sgc2l6ZQog
ICAgICAgICAgICAgbV9qaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLWNh
bGxGcmFtZVNpemVJbkJ5dGVzKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBtX3JlZ3MucmVnVDApOworCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgSklU
ZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0IHRoZSA1dGggYXJndW1lbnQg
aXMgYSBNYXRjaGluZ0NvbnRleHRIb2xkZXIqCisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZ
YXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTg+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNr
czxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTE2PigpOworICAgICAgICAgICAgZnVuY3Rpb25D
aGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHk4PigpOworICAgICAgICAg
ICAgZnVuY3Rpb25DaGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNj4o
KTsKICNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQogICAgICAgICAgICAgLy8gbWF0Y2hp
bmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4K
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9
IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdD
b250ZXh0KTsKKyAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCA3ICogc2l6ZW9mKHZvaWQq
KSksIG1hdGNoaW5nQ29udGV4dCk7CiAjZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMp
Ci0gICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQg
aXMgZm91bmQgb24gdGhlIHN0YWNrLgorICAgICAgICAgICAgLy8gTm90IGVub3VnaCBhcmd1bWVu
dCByZWdpc3RlcnM6IHRyeSB0byBsb2FkIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2sK
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9
IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0ICogc2l6ZW9m
KHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAgICAgICAgIC8vIFRoZSBhcmd1bWVu
dCB3aWxsIGJlIGluIGFuIG9mZnNldCB0aGF0IGRlcGVuZHMgb24gdGhlIGFyY2ggYW5kIHRoZSBu
dW1iZXIgb2YgcmVnaXN0ZXJzIHdlIHB1c2hlZCBpbnRvIHRoZSBzdGFjaworICAgICAgICAgICAg
Ly8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6IE1JUFMgcmVzZXJ2ZXMgc3BhY2UgaW4gdGhlIHN0YWNr
IGZvciBhbGwgYXJndW1lbnRzLCBzbyB3ZSBhZGQgKzQgb2Zmc2V0CisgICAgICAgICAgICAvLyBt
X3B1c2hDb3VudEluRW50ZXI6IG51bWJlciBvZiByZWdpc3RlcnMgcHVzaGVkIGludG8gdGhlIHN0
YWNrIChzZWUgZ2VuZXJhdGVFbnRlcigpKQorICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0ID0g
UE9LRV9BUkdVTUVOVF9PRkZTRVQgKyBtX3B1c2hDb3VudEluRW50ZXI7CisgICAgICAgICAgICBt
X2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4
dCk7CiAjZWxzZQogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hp
bmdDb250ZXh0ID0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dDsKICNlbmRpZgpAQCAtNDYxOCw3ICs0
NjQ2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNYWNyb0Fzc2VtYmxlciYg
bV9qaXQ7CisgICAgQ0NhbGxIZWxwZXJzJiBtX2ppdDsKICAgICBjb25zdCBWTSogbV92bTsKICAg
ICBZYXJyQ29kZUJsb2NrKiBtX2NvZGVCbG9jazsKICAgICBZYXJyQm95ZXJNb3llckRhdGEqIG1f
Ym95ZXJNb29yZURhdGE7CkBAIC00NjcyLDYgKzQ3MDAsMTIgQEAgcHJpdmF0ZToKICAgICBCYWNr
dHJhY2tpbmdTdGF0ZSBtX2JhY2t0cmFja2luZ1N0YXRlOwogICAgIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxZYXJyRGlzYXNzZW1ibGVyPiBtX2Rpc2Fzc2VtYmxlcjsKKworICAgIC8vIE1lbWJlciBp
cyB1c2VkIHRvIGNvdW50IHRoZSBudW1iZXIgb2YgR1BSIHB1c2hlZCBpbnRvIHRoZSBzdGFjayB3
aGVuCisgICAgLy8gZW50ZXJpbmcgSklUZWQgY29kZS4gSXQgaXMgdXNlZCB0byBmaWd1cmUgb3V0
IGlmIGFuIGZ1bmN0aW9uIGFyZ3VtZW50CisgICAgLy8gb2Zmc2V0IGluIHRoZSBzdGFjayBpZiB0
aGVyZSB3YXNuJ3QgZW5vdWdoIHJlZ2lzdGVycyB0byBwYXNzIGl0LCBlLmcuLAorICAgIC8vIEFS
TXY3IGFuZCBNSVBTIG9ubHkgdXNlIDQgcmVnaXN0ZXJzIHRvIHBhc3MgZnVuY3Rpb24gYXJndW1l
bnRzLgorICAgIHVuc2lnbmVkIG1fcHVzaENvdW50SW5FbnRlciB7IDAgfTsKIH07CiAKIHN0YXRp
YyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCkBAIC00
NzA2LDcgKzQ3NDAsNyBAQCBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUoSklURmFpbHVy
ZVJlYXNvbiBmYWlsdXJlKQogCiB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4s
IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIFZNKiB2bSwgWWFyckNv
ZGVCbG9jayYgY29kZUJsb2NrLCBKSVRDb21waWxlTW9kZSBtb2RlKQogewotICAgIE1hY3JvQXNz
ZW1ibGVyIG1hc207CisgICAgQ0NhbGxIZWxwZXJzIG1hc207CiAKICAgICBBU1NFUlQobW9kZSA9
PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hPbmx5IHx8IG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Oklu
Y2x1ZGVTdWJwYXR0ZXJucyk7CiAKQEAgLTQ3MjcsNyArNDc2MSw3IEBAIHZvaWQgaml0Q29tcGls
ZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBj
aGFyU2l6ZSwKICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgaW5saW5lZCBKSVQnaW5nIG9mIFJlZ0V4
cC50ZXN0IGZvciB0aGlzIENQVSAvIE9TIGNvbWJpbmF0aW9uLiIKICNlbmRpZgogCi12b2lkIGpp
dENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tD
aGVja2VyLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFn
cz4gZmxhZ3MsIENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVy
RGF0YSYgYm95ZXJNb29yZURhdGEsIE1hY3JvQXNzZW1ibGVyJiBqaXQsIFlhcnJKSVRSZWdpc3Rl
cnMmIGppdFJlZ2lzdGVycykKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sq
IG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0
cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUsIGNv
bnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgQ0NhbGxIZWxw
ZXJzJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKIHsKICAgICBZYXJyOjpF
cnJvckNvZGUgZXJyb3JDb2RlOwogICAgIFlhcnI6OllhcnJQYXR0ZXJuIHBhdHRlcm4ocGF0dGVy
blN0cmluZywgZmxhZ3MsIGVycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklU
LmgKaW5kZXggMjg5ZDZlODFmZTUxN2FhZGZiZTQ5OGQxODVlMzA3MjA1ZTZhMDczMy4uNjliZGU4
YjllNzYzMzc1N2ZhMWUxZmJkNjU3YjI4MmU5YjE0OTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVQuaApAQCAtNDMsOSArNDMsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNs
YXNzIFZNOworY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgRXhlY3V0YWJsZVBvb2w7CiBjbGFz
cyBNYWNyb0Fzc2VtYmxlcjsKK2NsYXNzIFZNOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKQEAgLTI3
MSwxMiArMjcyLDEyIEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgOiBwdWJsaWMgWWFyckJveWVyTW95
ZXJEYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShZYXJyQ29kZUJsb2NrKTsKIAotICAgIHVzaW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQ
YXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQs
IFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIm
IG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlMTYgPSBT
bG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0
YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29kZU1h
dGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQ
VVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklU
Q29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5w
dXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNo
aW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0KIHB1YmxpYzoK
KyAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExD
aGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQq
IG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKikgWUFSUl9DQUxMOworICAgIHVzaW5nIFlh
cnJKSVRDb2RlMTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwg
VUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyKikgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0
Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqKSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9
IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIg
c3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIq
KSBZQVJSX0NBTEw7CisKICAgICBZYXJyQ29kZUJsb2NrKCkgPSBkZWZhdWx0OwogCiAgICAgdm9p
ZCBzZXRGYWxsQmFja1dpdGhGYWlsdXJlUmVhc29uKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZVJl
YXNvbikgeyBtX2ZhaWx1cmVSZWFzb24gPSBmYWlsdXJlUmVhc29uOyB9CkBAIC0zMjYsNyArMzI3
LDcgQEAgcHVibGljOgogICAgIElubGluZVN0YXRzJiBnZXQ4Qml0SW5saW5lU3RhdHMoKSB7IHJl
dHVybiBtX21hdGNoT25seThTdGF0czsgfQogICAgIElubGluZVN0YXRzJiBnZXQxNkJpdElubGlu
ZVN0YXRzKCkgeyByZXR1cm4gIG1fbWF0Y2hPbmx5MTZTdGF0czsgfQogCi0gICAgTWF0Y2hSZXN1
bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBs
ZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4
dCkKKyAgICBNYXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQg
c3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRl
ciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczhCaXRDb2RlKCkp
OwogI2lmIENQVShBUk02NEUpCkBAIC0zMzYsNyArMzM3LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGU4LCBZYXJyOEJp
dFB0clRhZz4obV9yZWY4LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwgc3RhcnQs
IGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJl
c3VsdCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250
ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzMTZCaXRDb2Rl
KCkpOwogI2lmIENQVShBUk02NEUpCkBAIC0zNDYsNyArMzQ3LDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gTWF0Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGUxNiwgWWFy
cjE2Qml0UHRyVGFnPihtX3JlZjE2LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKShpbnB1dCwg
c3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBN
YXRjaFJlc3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVu
c2lnbmVkIGxlbmd0aCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisg
ICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0
LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0
KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczhCaXRDb2RlTWF0Y2hPbmx5KCkpOwogI2lmIENQ
VShBUk02NEUpCkBAIC0zNTYsNyArMzU3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTWF0
Y2hSZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGVNYXRjaE9ubHk4LCBZYXJyTWF0
Y2hPbmx5OEJpdFB0clRhZz4obV9tYXRjaE9ubHk4LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygp
KShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgbnVsbHB0ciwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAg
fQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVk
IHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdD
b250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgVUNoYXIqIGlucHV0LCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNo
aW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXMxNkJpdENvZGVNYXRjaE9ubHko
KSk7CiAjaWYgQ1BVKEFSTTY0RSkKQEAgLTQzOSw3ICs0NDAsNyBAQCB2b2lkIGppdENvbXBpbGUo
WWFyclBhdHRlcm4mLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplLCBWTSosIFlhcnJD
b2RlQmxvYwogCiBjbGFzcyBZYXJySklUUmVnaXN0ZXJzOwogCi12b2lkIGppdENvbXBpbGVJbmxp
bmVkVGVzdChTdGFja0NoZWNrKiwgY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PFlhcnI6OkZsYWdz
PiwgQ2hhclNpemUsIGNvbnN0IFZNKiwgWWFyckJveWVyTW95ZXJEYXRhJiwgTWFjcm9Bc3NlbWJs
ZXImLCBZYXJySklUUmVnaXN0ZXJzJik7Cit2b2lkIGppdENvbXBpbGVJbmxpbmVkVGVzdChTdGFj
a0NoZWNrKiwgY29uc3QgU3RyaW5nJiwgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiwgQ2hhclNpemUs
IGNvbnN0IFZNKiwgWWFyckJveWVyTW95ZXJEYXRhJiwgQ0NhbGxIZWxwZXJzJiwgWWFyckpJVFJl
Z2lzdGVycyYpOwogI2VuZGlmCiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpZYXJyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgKaW5kZXggYmI4MjFjZTg2
N2ZlMzhlMjhmMzVjZTcwNmI5YmM2MDk5NDJmNzliNC4uZGU1Nzc4NDg5ODQzNjk4MDU4ZGY3OGIx
MWFiYTUyNzVkOTQ4MTFiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyckpJVFJlZ2lzdGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJK
SVRSZWdpc3RlcnMuaApAQCAtMjA2LDYgKzIwNiw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlID0gTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweDEwMDAwKTsKICAgICBjb25zdCBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKDB4ZDgwMCk7CiAgICAgY29uc3QgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MiB0cmFpbGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhk
YzAwKTsKKyAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRh
Z01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwogfTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hp
bmdDb250ZXh0SG9sZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyTWF0Y2hp
bmdDb250ZXh0SG9sZGVyLmgKaW5kZXggMTM5ZDFmZTM1YjU3NWM3MGEwNWE3ZTc3MjVkZDlmYTFl
ZmI2NjAxZS4uMWFmODMwOTgyZmY1N2YyYTkzYjY2MTc5MzhkMmRiYzVkZWM4YTE3OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRI
b2xkZXIuaApAQCAtMzcsMTIgKzM3LDEwIEBAIGNsYXNzIFJlZ0V4cDsKIAogbmFtZXNwYWNlIFlh
cnIgewogCi1jbGFzcyBZYXJyQ29kZUJsb2NrOwotCiBjbGFzcyBNYXRjaGluZ0NvbnRleHRIb2xk
ZXIgewogICAgIFdURl9GT1JCSURfSEVBUF9BTExPQ0FUSU9OOwogcHVibGljOgotICAgIE1hdGNo
aW5nQ29udGV4dEhvbGRlcihWTSYsIFlhcnJDb2RlQmxvY2sqLCBSZWdFeHAqLCBNYXRjaEZyb20p
OworICAgIE1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYsIGJvb2wsIFJlZ0V4cCosIE1hdGNoRnJv
bSk7CiAgICAgfk1hdGNoaW5nQ29udGV4dEhvbGRlcigpOwogCiAgICAgc3RhdGljIHB0cmRpZmZf
dCBvZmZzZXRPZlN0YWNrTGltaXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTWF0Y2hpbmdD
b250ZXh0SG9sZGVyLCBtX3N0YWNrTGltaXQpOyB9CkBAIC02MSw3ICs1OSw3IEBAIHByaXZhdGU6
CiAgICAgTWF0Y2hGcm9tIG1fbWF0Y2hGcm9tOwogfTsKIAotaW5saW5lIE1hdGNoaW5nQ29udGV4
dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2bSwgWWFyckNvZGVCbG9jayogeWFy
ckNvZGVCbG9jaywgUmVnRXhwKiByZWdFeHAsIE1hdGNoRnJvbSBtYXRjaEZyb20pCitpbmxpbmUg
TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIoVk0mIHZtLCBib29s
IHVzZXNQYXR0ZXJuQ29udGV4dEJ1ZmZlciwgUmVnRXhwKiByZWdFeHAsIE1hdGNoRnJvbSBtYXRj
aEZyb20pCiAgICAgOiBtX3ZtKHZtKQogICAgICwgbV9tYXRjaEZyb20obWF0Y2hGcm9tKQogewpA
QCAtNzQsMTIgKzcyLDEyIEBAIGlubGluZSBNYXRjaGluZ0NvbnRleHRIb2xkZXI6Ok1hdGNoaW5n
Q29udGV4dEhvbGRlcihWTSYgdm0sIFlhcnJDb2RlQmxvY2sqIHlhcnJDCiAgICAgfQogCiAjaWYg
RU5BQkxFKFlBUlJfSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMpCi0gICAgaWYgKHlhcnJDb2Rl
QmxvY2sgJiYgeWFyckNvZGVCbG9jay0+dXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKCkpIHsKKyAg
ICBpZiAodXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKSB7CiAgICAgICAgIG1fcGF0dGVybkNvbnRl
eHRCdWZmZXIgPSBtX3ZtLmFjcXVpcmVSZWdFeHBQYXR0ZXJuQ29udGV4QnVmZmVyKCk7CiAgICAg
ICAgIG1fcGF0dGVybkNvbnRleHRCdWZmZXJTaXplID0gVk06OnBhdHRlcm5Db250ZXh0QnVmZmVy
U2l6ZTsKICAgICB9CiAjZWxzZQotICAgIFVOVVNFRF9QQVJBTSh5YXJyQ29kZUJsb2NrKTsKKyAg
ICBVTlVTRURfUEFSQU0odXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyKTsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwIGIvU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9IZWFwLmNwcAppbmRleCAwNGZiY2NhZTVkYTBhNDM0N2ZhOTgxZDA2NGMwYjdi
NjFlMjRjYjlmLi40MGYxZDc1ZjE1Y2JiNTk0N2QxODZkMjdiMDBjYTFiZjZlMTVkYzExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvSGVhcC5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBCSU5MSU5FIHZvaWQgSGVh
cDo6YWRqdXN0U3RhdChzaXplX3QmIHZhbHVlLCBzc2l6ZV90IGFtb3VudCkKIAogQklOTElORSB2
b2lkIEhlYXA6OmxvZ1N0YXQoc2l6ZV90IHZhbHVlLCBzc2l6ZV90IGFtb3VudCwgY29uc3QgY2hh
ciogbGFiZWwsIGNvbnN0IGNoYXIqIG5vdGUpCiB7Ci0gICAgZnByaW50ZihzdGRlcnIsICIlczog
JWx1ICglbGQpICVzXG4iLCBsYWJlbCwgdmFsdWUsIGFtb3VudCwgbm90ZSk7CisgICAgZnByaW50
ZihzdGRlcnIsICIlczogJXp1ICglemQpICVzXG4iLCBsYWJlbCwgdmFsdWUsIGFtb3VudCwgbm90
ZSk7CiB9CiAKIEJJTkxJTkUgdm9pZCBIZWFwOjphZGp1c3RGcmVlYWJsZU1lbW9yeShVbmlxdWVM
b2NrSG9sZGVyJiwgc3NpemVfdCBhbW91bnQsIGNvbnN0IGNoYXIqIG5vdGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449825</attachid>
            <date>2022-01-24 09:24:01 -0800</date>
            <delta_ts>2022-01-24 15:21:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234476-20220124172400.patch</filename>
            <type>text/plain</type>
            <size>30864</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTM4MWFkYzgyNTA4MTU3OTQ5ZjE5ZjQ2ZGUyNDNkYTc2YTFiNDFlLi45YTRmYzk4MTVkN2I3ODMx
NzFiYTJhOTY0ZWQxM2ZiNDUwOTYzNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0xMi0yMCAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtKU0NdWzMyYml0XSBGaXggcmVnZXhwIGNyYXNoIG9uIEFSTXY3
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGZpeGVzIHNldmVyYWwgcmVnZXhwIGNyYXNoZXMgb24gQVJNdjcgZHVlIHRvIGFuIGluY29y
cmVjdAorICAgICAgICBvZmZzZXQgdG8gcmV0cmlldmUgdGhlIDV0aCBhcmd1bWVudCBmcm9tIHRo
ZSBzdGFjazogaW4gQVJNdjcsIG9ubHkKKyAgICAgICAgNCBhcmd1bWVudHMgYXJlIHBhc3NlZCB2
aWEgcmVnaXN0ZXJzIHIwLXIzaSwgYW5kIGFueSBvdGhlciBhcmd1bWVudCBpcworICAgICAgICBw
bGFjZWQgb24gdGhlIHN0YWNrLCBob3dldmVyLCBZYXJySklUIHdhcyB0cnlpbmcgdG8gZ2V0IHRo
ZSA1dGggYXJnCisgICAgICAgIGZyb20gYSBmaXhlZCBvZmZzZXQsIHNvIGJlY2F1c2UgdGhlIGdl
bmVyYXRlRW50ZXIoKSBtZXRob2QgcHVzaGVkCisgICAgICAgIHJlZ2lzdGVyIGludG8gdGhlIHN0
YWNrLCB0aGUgb2Zmc2V0IHdhcyB3cm9uZy4gVGhpcyBwYXRjaCBmaXhlcyBob3cKKyAgICAgICAg
dGhlIG9mZnNldCBpcyBjYWxjdWxhdGVkIGZvciBNSVBTIGFuZCBBUk12Ny4KKworICAgICAgICBU
aGlzIHBhdGNoIGFsc28gaW50cm9kdWNlcyBzb21lIHNtYWxsIGNoYW5nZXM6CisKKyAgICAgICAg
MS4gQWRkZWQgc3RhdGljX2Fzc2VydHMgdGhhdCB0aGUgWWFyckpJVCBjYWxscyBkbyBpbmRlZWQg
aGF2ZSA1IGFyZ3VtZW50cworICAgICAgICBhbmQgdGhhdCB0aGUgNXRoIGFyZ3VtZW50IGhhcyB0
aGUgdHlwZSB0aGF0IHdlIGV4cGVjdCAoTWF0Y2hpbmdDb250ZXh0SG9sZGVyKikuCisKKyAgICAg
ICAgMi4gUmVtb3ZlZCBhbiB1bm5lY2Vzc2FyeSBwb2ludGVyIGZyb20gdGhlIE1hdGNoaW5nQ29u
dGV4dEhvbGRlcgorICAgICAgICBjb25zdHJ1Y3Rvci4KKworICAgICAgICAzLiBGaXhlZCBzb21l
IHdhcm5pbmdzIGluIHRoZSBZYXJySklUIGNvZGUgaGVyZSBhbmQgdGhlcmUuCisKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVSZWdFeHBUZXN0SW5saW5lKToKKyAgICAgICAgKiBydW50aW1lL1Jl
Z0V4cElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwOjptYXRjaElubGluZSk6CisgICAg
ICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKiB5YXJyL1lhcnJNYXRjaGluZ0NvbnRl
eHRIb2xkZXIuaDoKKyAgICAgICAgKEpTQzo6WWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpN
YXRjaGluZ0NvbnRleHRIb2xkZXIpOgorCiAyMDIyLTAxLTEwICBTYWFtIEJhcmF0aSAgPHNiYXJh
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IGxvb3AgdGllciB1cCB0byB0aGUgQWlyIHRp
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCmluZGV4IDA3OGJiZTM5ZWFiYjVlM2VkMmM4Y2I4YzE4MDJjMDU4ZmIzNmNhZjkuLmU4Yjdh
ZWZjNGU3OWRjNWUxZWVlYjZhMWExYzA2NzgwZmE3YzMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjg4OCw3ICsyODg4
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVJlZ0V4cFRlc3RJbmxpbmUoTm9kZSog
bm9kZSkKIHsKICAgICBVTlVTRURfUEFSQU0obm9kZSk7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIGNvbXBpbGVSZWdFeHBUZXN0KG5vZGUpOworICAgIGNvbXBpbGVSZWdF
eHBUZXN0KG5vZGUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvR1BSSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgK
aW5kZXggNTJhMTNhYWFmYjc3YjZlNDRmYTdlYjE5MmIwNjg0M2MyY2NiOTIyNi4uNjBhNWJlZTE1
YjgyMjA3NjQ2NTEyMGRmNzRlOTQwOGQ3OGJjN2NkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9H
UFJJbmZvLmgKQEAgLTYyNiw3ICs2MjYsNyBAQCBjbGFzcyBHUFJJbmZvIHsKIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEdQUlJlZyBSZWdpc3RlclR5cGU7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBudW1iZXJPZlJlZ2lzdGVycyA9IDE2OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWdu
ZWQgbnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVycyA9IDg7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gTlVNQkVSX09GX0FSR1VNRU5UX1JF
R0lTVEVSUzsKIAogICAgIC8vIFRoZXNlIHJlZ2lzdGVycyBtYXRjaCB0aGUgYmFzZWxpbmUgSklU
LgogICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNNjRS
ZWdpc3RlcnM6OmZwOwpAQCAtODI1LDcgKzgyNSw3IEBAIGNsYXNzIEdQUkluZm8gewogcHVibGlj
OgogICAgIHR5cGVkZWYgR1BSUmVnIFJlZ2lzdGVyVHlwZTsKICAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIG51bWJlck9mUmVnaXN0ZXJzID0gMTM7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBudW1iZXJPZkFyZ3VtZW50UmVnaXN0ZXJzID0gODsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHVuc2lnbmVkIG51bWJlck9mQXJndW1lbnRSZWdpc3RlcnMgPSBOVU1CRVJfT0ZfQVJHVU1F
TlRfUkVHSVNURVJTOwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgY2FsbEZyYW1lUmVn
aXN0ZXIgPSBSSVNDVjY0UmVnaXN0ZXJzOjpmcDsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJl
ZyBudW1iZXJUYWdSZWdpc3RlciA9IFJJU0NWNjRSZWdpc3RlcnM6OngyNTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDFiOGNkNDIwZjEwNzA5ZDFiZWIxYTQ1
MGQxMzA0MGYzNzczMjY4NjMuLjQ0OTA5ZDE2OTRiYzU1Yzc1YjI3N2NjNTE2MDAwMDI4NGI0YWQz
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtNDQ4LDEw
ICs0NDgsMTAgQEAgdm9pZCBSZWdFeHA6Om1hdGNoQ29tcGFyZVdpdGhJbnRlcnByZXRlcihjb25z
dCBTdHJpbmcmIHMsIGludCBzdGFydE9mZnNldCwgaW50KgogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgSklUQ29kZTogewogICAgICAgICAgICAgWWFycjo6WWFyckNvZGVCbG9jayYg
Y29kZUJsb2NrID0gKm1fcmVnRXhwSklUQ29kZS5nZXQoKTsKLSAgICAgICAgICAgIHNucHJpbnRm
KGppdDhCaXRNYXRjaE9ubHlBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQ4Qml0TWF0Y2hPbmx5QWRkcigpKSk7Ci0g
ICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoT25seUFkZHIsIGppdEFkZHJTaXplLCAi
MHglMDE0bHgiLCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZUJsb2NrLmdldDE2Qml0
TWF0Y2hPbmx5QWRkcigpKSk7Ci0gICAgICAgICAgICBzbnByaW50ZihqaXQ4Qml0TWF0Y2hBZGRy
LCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNv
ZGVCbG9jay5nZXQ4Qml0TWF0Y2hBZGRyKCkpKTsKLSAgICAgICAgICAgIHNucHJpbnRmKGppdDE2
Qml0TWF0Y2hBZGRyLCBqaXRBZGRyU2l6ZSwgIjB4JTAxNGx4IiwgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoQWRkcigpKSk7CisgICAgICAgICAgICBz
bnByaW50ZihqaXQ4Qml0TWF0Y2hPbmx5QWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQ
VFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoT25s
eUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmludGYoaml0MTZCaXRNYXRjaE9ubHlBZGRyLCBq
aXRBZGRyU2l6ZSwgIjB4JTAxNCIgUFJJeFBUUiwgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KGNvZGVCbG9jay5nZXQxNkJpdE1hdGNoT25seUFkZHIoKSkpOworICAgICAgICAgICAgc25wcmlu
dGYoaml0OEJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUwMTQiIFBSSXhQVFIsIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0OEJpdE1hdGNoQWRkcigpKSk7Cisg
ICAgICAgICAgICBzbnByaW50ZihqaXQxNkJpdE1hdGNoQWRkciwgaml0QWRkclNpemUsICIweCUw
MTQiIFBSSXhQVFIsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlQmxvY2suZ2V0MTZC
aXRNYXRjaEFkZHIoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwSW5saW5lcy5oCmluZGV4
IDAyMmNiYmE1NTU3ZTcxNzhkMTRkNGI2NjFlZGNkNjg1YTRmNzg3ZTIuLjljNjU1ZjQ2YWIwMDE2
MjNkOGUzNDJmZWMwZTNkNjg4N2ViNWY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBJbmxpbmVzLmgKQEAgLTEzMiwxMiArMTMyLDEyIEBAIEFMV0FZU19JTkxJ
TkUgaW50IFJlZ0V4cDo6bWF0Y2hJbmxpbmUoSlNHbG9iYWxPYmplY3QqIG51bGxPckdsb2JhbE9i
amVjdCwgVk0mIHZtCiAgICAgaWYgKG1fc3RhdGUgPT0gSklUQ29kZSkgewogICAgICAgICB7CiAg
ICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUuZ2V0
KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRI
b2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNvbnRl
eHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4Qml0
KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRlKHMu
Y2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZlY3RvciwgcmVn
RXhwQ29udGV4dCkuc3RhcnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRD
b2RlLT5leGVjdXRlKHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9m
ZnNldFZlY3RvciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNoYXJhY3Rl
cnMxNigpLCBzdGFydE9mZnNldCwgcy5sZW5ndGgoKSwgb2Zmc2V0VmVjdG9yLCByZWdFeHBDb250
ZXh0KS5zdGFydDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIG9mZnNldFZl
Y3RvciwgJnJlZ0V4cENvbnRleHQpLnN0YXJ0OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHJl
c3VsdCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFlhcnI6OkpTUmVnRXhwUmVzdWx0OjpKSVRDb2RlRmFp
bHVyZSkpIHsKQEAgLTE0Niw3ICsxNDYsOCBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1h
dGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAg
ICAgICAgICAgaWYgKG1fc3RhdGUgPT0gUGFyc2VFcnJvcikKICAgICAgICAgICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigpOwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFlhcnI6Ok1h
dGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRj
aEZyb20pOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBib29sIHVzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlciA9IGZhbHNlOworICAgICAgICAgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIHRoaXMsIG1h
dGNoRnJvbSk7CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gWWFycjo6aW50ZXJwcmV0KG1fcmVn
RXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PHVuc2ln
bmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE2Miw3
ICsxNjMsOCBAQCBBTFdBWVNfSU5MSU5FIGludCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFs
T2JqZWN0KiBudWxsT3JHbG9iYWxPYmplY3QsIFZNJiB2bQogICAgIH0gZWxzZQogI2VuZGlmCiAg
ICAgewotICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRleHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2
bSwgbnVsbHB0ciwgdGhpcywgbWF0Y2hGcm9tKTsKKyAgICAgICAgY29uc3RleHByIGJvb2wgdXNl
c1BhdHRlcm5Db250ZXh0QnVmZmVyID0gZmFsc2U7CisgICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29u
dGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIsIHRo
aXMsIG1hdGNoRnJvbSk7CiAgICAgICAgIHJlc3VsdCA9IFlhcnI6OmludGVycHJldChtX3JlZ0V4
cEJ5dGVjb2RlLmdldCgpLCBzLCBzdGFydE9mZnNldCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25l
ZCo+KG9mZnNldFZlY3RvcikpOwogICAgIH0KIApAQCAtMjY2LDEyICsyNjgsMTIgQEAgQUxXQVlT
X0lOTElORSBNYXRjaFJlc3VsdCBSZWdFeHA6Om1hdGNoSW5saW5lKEpTR2xvYmFsT2JqZWN0KiBu
dWxsT3JHbG9iYWxPYmplY3QKICAgICAgICAgTWF0Y2hSZXN1bHQgcmVzdWx0OwogICAgICAgICB7
CiAgICAgICAgICAgICBBU1NFUlQobV9yZWdFeHBKSVRDb2RlKTsKLSAgICAgICAgICAgIFlhcnI6
Ok1hdGNoaW5nQ29udGV4dEhvbGRlciByZWdFeHBDb250ZXh0KHZtLCBtX3JlZ0V4cEpJVENvZGUu
Z2V0KCksIHRoaXMsIG1hdGNoRnJvbSk7CisgICAgICAgICAgICBZYXJyOjpNYXRjaGluZ0NvbnRl
eHRIb2xkZXIgcmVnRXhwQ29udGV4dCh2bSwgbV9yZWdFeHBKSVRDb2RlLT51c2VzUGF0dGVybkNv
bnRleHRCdWZmZXIoKSwgdGhpcywgbWF0Y2hGcm9tKTsKIAogICAgICAgICAgICAgaWYgKHMuaXM4
Qml0KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2RlLT5leGVjdXRl
KHMuY2hhcmFjdGVyczgoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksIHJlZ0V4cENvbnRleHQp
OworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fcmVnRXhwSklUQ29kZS0+ZXhlY3V0ZShzLmNo
YXJhY3RlcnM4KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCAmcmVnRXhwQ29udGV4dCk7CiAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9yZWdFeHBKSVRDb2Rl
LT5leGVjdXRlKHMuY2hhcmFjdGVyczE2KCksIHN0YXJ0T2Zmc2V0LCBzLmxlbmd0aCgpLCByZWdF
eHBDb250ZXh0KTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3JlZ0V4cEpJVENvZGUtPmV4
ZWN1dGUocy5jaGFyYWN0ZXJzMTYoKSwgc3RhcnRPZmZzZXQsIHMubGVuZ3RoKCksICZyZWdFeHBD
b250ZXh0KTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxFKFJFR0VYUF9UUkFDSU5HKQpAQCAtMjk1
LDcgKzI5Nyw4IEBAIEFMV0FZU19JTkxJTkUgTWF0Y2hSZXN1bHQgUmVnRXhwOjptYXRjaElubGlu
ZShKU0dsb2JhbE9iamVjdCogbnVsbE9yR2xvYmFsT2JqZWN0CiAgICAgbm9uUmV0dXJuZWRPdmVj
dG9yLmdyb3cob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAgb2Zmc2V0VmVjdG9yID0gbm9uUmV0dXJu
ZWRPdmVjdG9yLmRhdGEoKTsKICAgICB7Ci0gICAgICAgIFlhcnI6Ok1hdGNoaW5nQ29udGV4dEhv
bGRlciByZWdFeHBDb250ZXh0KHZtLCBudWxscHRyLCB0aGlzLCBtYXRjaEZyb20pOworICAgICAg
ICBjb25zdGV4cHIgYm9vbCB1c2VzUGF0dGVybkNvbnRleHRCdWZmZXIgPSBmYWxzZTsKKyAgICAg
ICAgWWFycjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyIHJlZ0V4cENvbnRleHQodm0sIHVzZXNQYXR0
ZXJuQ29udGV4dEJ1ZmZlciwgdGhpcywgbWF0Y2hGcm9tKTsKICAgICAgICAgcmVzdWx0ID0gWWFy
cjo6aW50ZXJwcmV0KG1fcmVnRXhwQnl0ZWNvZGUuZ2V0KCksIHMsIHN0YXJ0T2Zmc2V0LCByZWlu
dGVycHJldF9jYXN0PHVuc2lnbmVkKj4ob2Zmc2V0VmVjdG9yKSk7CiAgICAgfQogI2lmIFJFR0VY
UF9GVU5DX1RFU1RfREFUQV9HRU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAK
aW5kZXggYTQ5OGVmNzgwNzMxODI0ZGNmMmVmODc5ODViYjA5YjI5MzIwY2VhZS4uZGE0NGNjNTE0
NmVhMDU3NzlmODI4NjgwMWI1YmZkNTdmMjE4ZDdjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJZYXJySklULmgiCiAKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRl
ICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlZNLmgiCkBA
IC0xODYsMTAgKzE4Nyw2IEBAIHN0ZDo6dHVwbGU8Qm95ZXJNb29yZUJpdG1hcDo6TWFwLCBCb3ll
ck1vb3JlRmFzdENhbmRpZGF0ZXM+IEJveWVyTW9vcmVJbmZvOjpjcmVhCiB0ZW1wbGF0ZTxjbGFz
cyBZYXJySklUUmVncyA9IFlhcnJKSVREZWZhdWx0UmVnaXN0ZXJzPgogY2xhc3MgWWFyckdlbmVy
YXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKLSNpZmRlZiAgSklUX1VOSUNPREVf
RVhQUkVTU0lPTlMKLSAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHN1cnJv
Z2F0ZVRhZ01hc2sgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4ZmZmZmZjMDApOwot
I2VuZGlmCi0KICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxMX1BBUkVOU19FWFBSRVNTSU9OUykKICAg
ICBzdHJ1Y3QgUGFyZW5Db250ZXh0U2l6ZXMgewogICAgICAgICBzaXplX3QgbV9udW1TdWJwYXR0
ZXJuczsKQEAgLTYwMyw3ICs2MDAsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVi
bGljIFlhcnJKSVRJbmZvIHsKICAgICAgICAgbV9qaXQubG9hZDE2VW5hbGlnbmVkKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCksIHJlc3VsdFJl
Zyk7CiAKICAgICAgICAgLy8gSXMgdGhlIGNoYXJhY3RlciBhIGxlYWRpbmcgc3Vycm9nYXRlPwot
ICAgICAgICBtX2ppdC5hbmQzMihZYXJySklURGVmYXVsdFJlZ2lzdGVyczo6c3Vycm9nYXRlVGFn
TWFzaywgcmVzdWx0UmVnLCBtX3JlZ3MudW5pY29kZVRlbXApOworICAgICAgICBtX2ppdC5hbmQz
MihtX3JlZ3Muc3Vycm9nYXRlVGFnTWFzaywgcmVzdWx0UmVnLCBtX3JlZ3MudW5pY29kZVRlbXAp
OwogICAgICAgICBub3RVbmljb2RlLmFwcGVuZChtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6Tm90RXF1YWwsIG1fcmVncy51bmljb2RlVGVtcCwgbV9yZWdzLmxlYWRpbmdTdXJyb2dhdGVU
YWcpKTsKIAogICAgICAgICAvLyBJcyB0aGUgaW5wdXQgbG9uZyBlbm91Z2ggdG8gcmVhZCBhIHRy
YWlsaW5nIHN1cnJvZ2F0ZT8KQEAgLTYxMiw3ICs2MDksNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvIHsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFj
dGVyIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwogICAgICAgICBtX2ppdC5sb2FkMTZVbmFsaWduZWQo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwg
bV9yZWdzLnJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKTsKLSAgICAgICAgbV9qaXQuYW5kMzIoWWFy
ckpJVERlZmF1bHRSZWdpc3RlcnM6OnN1cnJvZ2F0ZVRhZ01hc2ssIG1fcmVncy5yZWdVbmljb2Rl
SW5wdXRBbmRUcmFpbCwgbV9yZWdzLnVuaWNvZGVUZW1wKTsKKyAgICAgICAgbV9qaXQuYW5kMzIo
bV9yZWdzLnN1cnJvZ2F0ZVRhZ01hc2ssIG1fcmVncy5yZWdVbmljb2RlSW5wdXRBbmRUcmFpbCwg
bV9yZWdzLnVuaWNvZGVUZW1wKTsKICAgICAgICAgbm90VW5pY29kZS5hcHBlbmQobV9qaXQuYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBtX3JlZ3MudW5pY29kZVRlbXAsIG1fcmVn
cy50cmFpbGluZ1N1cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8vIENvbWJpbmUgbGVhZGluZyBh
bmQgdHJhaWxpbmcgc3Vycm9nYXRlcyB0byBwcm9kdWNlIGEgY29kZSBwb2ludC4KQEAgLTM5NjEs
NTcgKzM5NTgsNzEgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklU
SW5mbyB7CiAKICAgICB2b2lkIGdlbmVyYXRlRW50ZXIoKQogICAgIHsKKyAgICAgICAgYXV0byBw
dXNoSW5FbnRlciA9IFsmXShHUFJSZWcgZ3ByKSB7CisgICAgICAgICAgICBtX2ppdC5wdXNoKGdw
cik7CisgICAgICAgICAgICBtX3B1c2hDb3VudEluRW50ZXIgKz0gMTsKKyAgICAgICAgfTsKKwor
ICAgICAgICBhdXRvIHB1c2hQYWlySW5FbnRlciA9IFsmXShHUFJSZWcgZ3ByMSwgR1BSUmVnIGdw
cjIpIHsKKyAgICAgICAgICAgIG1faml0LnB1c2hQYWlyKGdwcjEsIGdwcjIpOworICAgICAgICAg
ICAgbV9wdXNoQ291bnRJbkVudGVyICs9IDI7CisgICAgICAgIH07CisKICNpZiBDUFUoWDg2XzY0
KQotICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSAgICAgICAgbV9qaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6
ZWJwKTsKKyAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHB1c2hQYWlySW5FbnRlcik7CisgICAgICAg
IG1faml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAKICAgICAgICAgaWYgKG1fcGF0dGVybi5t
X3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0
ZXJzOjplYngpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2UmVnaXN0ZXJzOjplYngpOwog
CiAjaWYgT1MoV0lORE9XUykKLSAgICAgICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OmVkaSk7
CisgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6ZWRpKTsKICNlbmRpZgogI2lmIEVO
QUJMRShZQVJSX0pJVF9BTExfUEFSRU5TX0VYUFJFU1NJT05TKQogICAgICAgICBpZiAobV9jb250
YWluc05lc3RlZFN1YnBhdHRlcm5zKSB7CiAjaWYgT1MoV0lORE9XUykKLSAgICAgICAgICAgIG1f
aml0LnB1c2goWDg2UmVnaXN0ZXJzOjplc2kpOworICAgICAgICAgICAgcHVzaEluRW50ZXIoWDg2
UmVnaXN0ZXJzOjplc2kpOwogI2VuZGlmCi0gICAgICAgICAgICBtX2ppdC5wdXNoKFg4NlJlZ2lz
dGVyczo6cjEyKTsKKyAgICAgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6cjEyKTsK
ICAgICAgICAgfQogI2VuZGlmCiAKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMp
IHsKLSAgICAgICAgICAgIG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjpyMTMpOwotICAgICAgICAg
ICAgbV9qaXQucHVzaChYODZSZWdpc3RlcnM6OnIxNCk7Ci0gICAgICAgICAgICBtX2ppdC5wdXNo
KFg4NlJlZ2lzdGVyczo6cjE1KTsKKyAgICAgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVy
czo6cjEzKTsKKyAgICAgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6cjE0KTsKKyAg
ICAgICAgICAgIHB1c2hJbkVudGVyKFg4NlJlZ2lzdGVyczo6cjE1KTsKICAgICAgICAgfQogI2lm
IE9TKFdJTkRPV1MpCiAgICAgICAgIGlmIChtX2NvbXBpbGVNb2RlID09IEpJVENvbXBpbGVNb2Rl
OjpJbmNsdWRlU3VicGF0dGVybnMpCi0gICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA2ICogc2l6ZW9mKHZvaWQqKSksIG1f
cmVncy5vdXRwdXQpOworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIDYgKiBzaXplb2Yo
dm9pZCopKSwgbV9yZWdzLm91dHB1dCk7CiAgICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0
byB0aGUgYWxsb2NhdGVkIHNwYWNlIGZvciByZXN1bHQgaW4geDY0IFdpbmRvd3MuCi0gICAgICAg
IG1faml0LnB1c2goWDg2UmVnaXN0ZXJzOjplY3gpOworICAgICAgICBwdXNoSW5FbnRlcihYODZS
ZWdpc3RlcnM6OmVjeCk7CiAjZW5kaWYKICNlbGlmIENQVShBUk02NCkKKyAgICAgICAgVU5VU0VE
X1ZBUklBQkxFKHB1c2hJbkVudGVyKTsKICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VKSVRDYWdl
KCkpCiAgICAgICAgICAgICBtX2ppdC50YWdSZXR1cm5BZGRyZXNzKCk7CiAgICAgICAgIGlmICht
X2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7CiAgICAgICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJ
VENhZ2UoKSkKLSAgICAgICAgICAgICAgICBtX2ppdC5wdXNoUGFpcihNYWNyb0Fzc2VtYmxlcjo6
ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOworICAg
ICAgICAgICAgICAgIHB1c2hQYWlySW5FbnRlcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVy
UmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9q
aXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDB4MTAwMDApLCBtX3JlZ3Muc3Vw
cGxlbWVudGFyeVBsYW5lc0Jhc2UpOwogICAgICAgICAgICAgbV9qaXQubW92ZShNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDB4ZDgwMCksIG1fcmVncy5sZWFkaW5nU3Vycm9nYXRlVGFnKTsK
ICAgICAgICAgICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRj
MDApLCBtX3JlZ3MudHJhaWxpbmdTdXJyb2dhdGVUYWcpOwogICAgICAgICB9CiAjZWxpZiBDUFUo
QVJNX1RIVU1CMikKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI0KTsKLSAgICAg
ICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1S
ZWdpc3RlcnM6OnI2KTsKLSAgICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnI4KTsKLSAg
ICAgICAgbV9qaXQucHVzaChBUk1SZWdpc3RlcnM6OnIxMCk7CisgICAgICAgIFVOVVNFRF9WQVJJ
QUJMRShwdXNoUGFpckluRW50ZXIpOworICAgICAgICBwdXNoSW5FbnRlcihBUk1SZWdpc3RlcnM6
OnI0KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyNSk7CisgICAgICAgIHB1
c2hJbkVudGVyKEFSTVJlZ2lzdGVyczo6cjYpOworICAgICAgICBwdXNoSW5FbnRlcihBUk1SZWdp
c3RlcnM6OnI4KTsKKyAgICAgICAgcHVzaEluRW50ZXIoQVJNUmVnaXN0ZXJzOjpyMTApOwogI2Vs
aWYgQ1BVKFJJU0NWNjQpCisgICAgICAgIFVOVVNFRF9WQVJJQUJMRShwdXNoSW5FbnRlcik7CiAg
ICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQotICAgICAgICAgICAgbV9qaXQucHVz
aFBhaXIoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxl
cjo6bGlua1JlZ2lzdGVyKTsKLSNlbGlmIENQVShNSVBTKQotICAgICAgICAvLyBEbyBub3RoaW5n
LgorICAgICAgICAgICAgcHVzaFBhaXJJbkVudGVyKE1hY3JvQXNzZW1ibGVyOjpmcmFtZVBvaW50
ZXJSZWdpc3RlciwgTWFjcm9Bc3NlbWJsZXI6OmxpbmtSZWdpc3Rlcik7CisjZWxzZQorICAgICAg
ICBVTlVTRURfVkFSSUFCTEUocHVzaEluRW50ZXIpOworICAgICAgICBVTlVTRURfVkFSSUFCTEUo
cHVzaFBhaXJJbkVudGVyKTsKICNlbmRpZgogICAgIH0KIApAQCAtNDA1Miw3ICs0MDYzLDcgQEAg
Y2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAKICAgICAg
ICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1f
aml0LnBvcChYODZSZWdpc3RlcnM6OmVieCk7Ci0gICAgICAgIG1faml0LnBvcChYODZSZWdpc3Rl
cnM6OmVicCk7CisgICAgICAgIG1faml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAjZWxpZiBD
UFUoQVJNNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7CiAgICAgICAg
ICAgICBpZiAoIU9wdGlvbnM6OnVzZUpJVENhZ2UoKSkKQEAgLTQwNjcsOSArNDA3OCw4IEBAIGNs
YXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8gewogI2VsaWYgQ1BV
KFJJU0NWNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKQogICAgICAgICAg
ICAgbV9qaXQucG9wUGFpcihNYWNyb0Fzc2VtYmxlcjo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIE1h
Y3JvQXNzZW1ibGVyOjpsaW5rUmVnaXN0ZXIpOwotI2VsaWYgQ1BVKE1JUFMpCi0gICAgICAgIC8v
IERvIG5vdGhpbmcKICNlbmRpZgorCiAjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgaWYgKE9wdGlv
bnM6OnVzZUpJVENhZ2UoKSkKICAgICAgICAgICAgIG1faml0LmZhckp1bXAoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIocmV0YWdDb2RlUHRyPHZvaWQqLCBDRnVuY3Rpb25QdHJUYWcsIE9w
ZXJhdGlvblB0clRhZz4oJnZtRW50cnlUb1lhcnJKSVRBZnRlcikpLCBPcGVyYXRpb25QdHJUYWcp
OwpAQCAtNDA4Niw3ICs0MDk2LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBZYXJySklUSW5mbyB7CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgWWFyckdlbmVyYXRvcihNYWNy
b0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Y29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJp
bmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21w
aWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9yKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSog
dm0sIFlhcnJDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXpl
IGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChq
aXQpCiAgICAgICAgICwgbV92bSh2bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhjb2RlQmxvY2sp
CkBAIC00MTA1LDcgKzQxMTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYm95ZXJNb29yZURhdGEg
PSBzdGF0aWNfY2FzdDxZYXJyQm95ZXJNb3llckRhdGEqPihtX2NvZGVCbG9jayk7CiAgICAgfQog
Ci0gICAgWWFyckdlbmVyYXRvcihNYWNyb0Fzc2VtYmxlciYgaml0LCBjb25zdCBWTSogdm0sIFlh
cnJCb3llck1veWVyRGF0YSogeWFyckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXpl
IGNoYXJTaXplLCBKSVRDb21waWxlTW9kZSBjb21waWxlTW9kZSkKKyAgICBZYXJyR2VuZXJhdG9y
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVyRGF0YSogeWFy
ckJNRGF0YSwgY29uc3QgWWFyckpJVFJlZ3MmIHJlZ3MsIFlhcnJQYXR0ZXJuJiBwYXR0ZXJuLCBj
b25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplIGNoYXJTaXplLCBKSVRDb21waWxl
TW9kZSBjb21waWxlTW9kZSkKICAgICAgICAgOiBtX2ppdChqaXQpCiAgICAgICAgICwgbV92bSh2
bSkKICAgICAgICAgLCBtX2NvZGVCbG9jayhudWxscHRyKQpAQCAtNDEzOSw2ICs0MTQ5LDEzIEBA
IHB1YmxpYzoKICAgICAgICAgbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciA9IHN0YWNr
Q2hlY2tlcjsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlPgor
ICAgIHN0YXRpYyBjb25zdGV4cHIgdm9pZCBmdW5jdGlvbkNoZWNrcygpCisgICAgeworICAgICAg
ICBzdGF0aWNfYXNzZXJ0KEZ1bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+OjpjQ2FsbEFyaXR5
KCkgPT0gNSwgIllhcnJKSVRDb2RlIHRha2VzIDUgYXJndW1lbnRzIik7CisgICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc19zYW1lPE1hdGNoaW5nQ29udGV4dEhvbGRlciosIHR5cGVuYW1lIEZ1
bmN0aW9uVHJhaXRzPE9wZXJhdGlvblR5cGU+Ojp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8ND4+Ojp2
YWx1ZSwgIk1hdGNoaW5nQ29udGV4dEhvbGRlciogaXMgZXhwZWN0ZWQgYXMgdGhlIGZ1bmN0aW9u
IDV0aCBhcmd1bWVudCIpOworICAgIH0KKwogICAgIHZvaWQgY29tcGlsZShZYXJyQ29kZUJsb2Nr
JiBjb2RlQmxvY2spCiAgICAgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgc3RhcnRP
Zk1haW5Db2RlOwpAQCAtNDE5MSwxNCArNDIwOCwyNSBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChj
YWxsRnJhbWVTaXplSW5CeXRlcykgewogICAgICAgICAgICAgLy8gQ2hlY2sgc3RhY2sgc2l6ZQog
ICAgICAgICAgICAgbV9qaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLWNh
bGxGcmFtZVNpemVJbkJ5dGVzKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
LCBtX3JlZ3MucmVnVDApOworCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgSklU
ZWQgZnVuY3Rpb25zIGhhdmUgNSBwYXJhbWV0ZXJzIGFuZCB0aGF0IHRoZSA1dGggYXJndW1lbnQg
aXMgYSBNYXRjaGluZ0NvbnRleHRIb2xkZXIqCisgICAgICAgICAgICBmdW5jdGlvbkNoZWNrczxZ
YXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTg+KCk7CisgICAgICAgICAgICBmdW5jdGlvbkNoZWNr
czxZYXJyQ29kZUJsb2NrOjpZYXJySklUQ29kZTE2PigpOworICAgICAgICAgICAgZnVuY3Rpb25D
aGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHk4PigpOworICAgICAgICAg
ICAgZnVuY3Rpb25DaGVja3M8WWFyckNvZGVCbG9jazo6WWFyckpJVENvZGVNYXRjaE9ubHkxNj4o
KTsKICNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQogICAgICAgICAgICAgLy8gbWF0Y2hp
bmdDb250ZXh0IGlzIHRoZSA1dGggYXJndW1lbnQsIGl0IGlzIGZvdW5kIG9uIHRoZSBzdGFjay4K
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9
IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDcgKiBzaXplb2Yodm9pZCopKSwgbWF0Y2hpbmdD
b250ZXh0KTsKKyAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoTWFjcm9Bc3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyLCA3ICogc2l6ZW9mKHZvaWQq
KSksIG1hdGNoaW5nQ29udGV4dCk7CiAjZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMp
Ci0gICAgICAgICAgICAvLyBtYXRjaGluZ0NvbnRleHQgaXMgdGhlIDV0aCBhcmd1bWVudCwgaXQg
aXMgZm91bmQgb24gdGhlIHN0YWNrLgorICAgICAgICAgICAgLy8gTm90IGVub3VnaCBhcmd1bWVu
dCByZWdpc3RlcnM6IHRyeSB0byBsb2FkIHRoZSA1dGggYXJndW1lbnQgZnJvbSB0aGUgc3RhY2sK
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIG1hdGNoaW5nQ29udGV4dCA9
IG1fcmVncy5yZWdUMTsKLSAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCA0ICogc2l6ZW9m
KHZvaWQqKSksIG1hdGNoaW5nQ29udGV4dCk7CisKKyAgICAgICAgICAgIC8vIFRoZSBhcmd1bWVu
dCB3aWxsIGJlIGluIGFuIG9mZnNldCB0aGF0IGRlcGVuZHMgb24gdGhlIGFyY2ggYW5kIHRoZSBu
dW1iZXIgb2YgcmVnaXN0ZXJzIHdlIHB1c2hlZCBpbnRvIHRoZSBzdGFjaworICAgICAgICAgICAg
Ly8gUE9LRV9BUkdVTUVOVF9PRkZTRVQ6IE1JUFMgcmVzZXJ2ZXMgc3BhY2UgaW4gdGhlIHN0YWNr
IGZvciBhbGwgYXJndW1lbnRzLCBzbyB3ZSBhZGQgKzQgb2Zmc2V0CisgICAgICAgICAgICAvLyBt
X3B1c2hDb3VudEluRW50ZXI6IG51bWJlciBvZiByZWdpc3RlcnMgcHVzaGVkIGludG8gdGhlIHN0
YWNrIChzZWUgZ2VuZXJhdGVFbnRlcigpKQorICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0ID0g
UE9LRV9BUkdVTUVOVF9PRkZTRVQgKyBtX3B1c2hDb3VudEluRW50ZXI7CisgICAgICAgICAgICBt
X2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFj
a1BvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0ICogc2l6ZW9mKHZvaWQqKSksIG1hdGNoaW5nQ29udGV4
dCk7CiAjZWxzZQogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgbWF0Y2hp
bmdDb250ZXh0ID0gbV9yZWdzLm1hdGNoaW5nQ29udGV4dDsKICNlbmRpZgpAQCAtNDYxOCw3ICs0
NjQ2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNYWNyb0Fzc2VtYmxlciYg
bV9qaXQ7CisgICAgQ0NhbGxIZWxwZXJzJiBtX2ppdDsKICAgICBjb25zdCBWTSogbV92bTsKICAg
ICBZYXJyQ29kZUJsb2NrKiBtX2NvZGVCbG9jazsKICAgICBZYXJyQm95ZXJNb3llckRhdGEqIG1f
Ym95ZXJNb29yZURhdGE7CkBAIC00NjcyLDYgKzQ3MDAsMTIgQEAgcHJpdmF0ZToKICAgICBCYWNr
dHJhY2tpbmdTdGF0ZSBtX2JhY2t0cmFja2luZ1N0YXRlOwogICAgIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxZYXJyRGlzYXNzZW1ibGVyPiBtX2Rpc2Fzc2VtYmxlcjsKKworICAgIC8vIE1lbWJlciBp
cyB1c2VkIHRvIGNvdW50IHRoZSBudW1iZXIgb2YgR1BSIHB1c2hlZCBpbnRvIHRoZSBzdGFjayB3
aGVuCisgICAgLy8gZW50ZXJpbmcgSklUZWQgY29kZS4gSXQgaXMgdXNlZCB0byBmaWd1cmUgb3V0
IGlmIGFuIGZ1bmN0aW9uIGFyZ3VtZW50CisgICAgLy8gb2Zmc2V0IGluIHRoZSBzdGFjayBpZiB0
aGVyZSB3YXNuJ3QgZW5vdWdoIHJlZ2lzdGVycyB0byBwYXNzIGl0LCBlLmcuLAorICAgIC8vIEFS
TXY3IGFuZCBNSVBTIG9ubHkgdXNlIDQgcmVnaXN0ZXJzIHRvIHBhc3MgZnVuY3Rpb24gYXJndW1l
bnRzLgorICAgIHVuc2lnbmVkIG1fcHVzaENvdW50SW5FbnRlciB7IDAgfTsKIH07CiAKIHN0YXRp
YyB2b2lkIGR1bXBDb21waWxlRmFpbHVyZShKSVRGYWlsdXJlUmVhc29uIGZhaWx1cmUpCkBAIC00
NzA2LDcgKzQ3NDAsNyBAQCBzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUoSklURmFpbHVy
ZVJlYXNvbiBmYWlsdXJlKQogCiB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4s
IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIFZNKiB2bSwgWWFyckNv
ZGVCbG9jayYgY29kZUJsb2NrLCBKSVRDb21waWxlTW9kZSBtb2RlKQogewotICAgIE1hY3JvQXNz
ZW1ibGVyIG1hc207CisgICAgQ0NhbGxIZWxwZXJzIG1hc207CiAKICAgICBBU1NFUlQobW9kZSA9
PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hPbmx5IHx8IG1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Oklu
Y2x1ZGVTdWJwYXR0ZXJucyk7CiAKQEAgLTQ3MjcsNyArNDc2MSw3IEBAIHZvaWQgaml0Q29tcGls
ZShZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBj
aGFyU2l6ZSwKICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgaW5saW5lZCBKSVQnaW5nIG9mIFJlZ0V4
cC50ZXN0IGZvciB0aGlzIENQVSAvIE9TIGNvbWJpbmF0aW9uLiIKICNlbmRpZgogCi12b2lkIGpp
dENvbXBpbGVJbmxpbmVkVGVzdChTdGFja0NoZWNrKiBtX2NvbXBpbGF0aW9uVGhyZWFkU3RhY2tD
aGVja2VyLCBjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIE9wdGlvblNldDxZYXJyOjpGbGFn
cz4gZmxhZ3MsIENoYXJTaXplIGNoYXJTaXplLCBjb25zdCBWTSogdm0sIFlhcnJCb3llck1veWVy
RGF0YSYgYm95ZXJNb29yZURhdGEsIE1hY3JvQXNzZW1ibGVyJiBqaXQsIFlhcnJKSVRSZWdpc3Rl
cnMmIGppdFJlZ2lzdGVycykKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sq
IG1fY29tcGlsYXRpb25UaHJlYWRTdGFja0NoZWNrZXIsIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0
cmluZywgT3B0aW9uU2V0PFlhcnI6OkZsYWdzPiBmbGFncywgQ2hhclNpemUgY2hhclNpemUsIGNv
bnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhJiBib3llck1vb3JlRGF0YSwgQ0NhbGxIZWxw
ZXJzJiBqaXQsIFlhcnJKSVRSZWdpc3RlcnMmIGppdFJlZ2lzdGVycykKIHsKICAgICBZYXJyOjpF
cnJvckNvZGUgZXJyb3JDb2RlOwogICAgIFlhcnI6OllhcnJQYXR0ZXJuIHBhdHRlcm4ocGF0dGVy
blN0cmluZywgZmxhZ3MsIGVycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklU
LmgKaW5kZXggMjg5ZDZlODFmZTUxN2FhZGZiZTQ5OGQxODVlMzA3MjA1ZTZhMDczMy4uM2NmMjhh
MWY5ZGI1MmZjOTVmYWZmNWE0ZjYzOTMxNDVmODZkMzUzZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVQuaApAQCAtNDMsOSArNDMsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNs
YXNzIFZNOworY2xhc3MgQ0NhbGxIZWxwZXJzOwogY2xhc3MgRXhlY3V0YWJsZVBvb2w7CiBjbGFz
cyBNYWNyb0Fzc2VtYmxlcjsKK2NsYXNzIFZNOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKQEAgLTI3
MSwxMiArMjcyLDEyIEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgOiBwdWJsaWMgWWFyckJveWVyTW95
ZXJEYXRhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShZYXJyQ29kZUJsb2NrKTsKIAotICAgIHVzaW5nIFlhcnJKSVRDb2RlOCA9IFNsb3dQ
YXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQs
IFVDUFVSZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIm
IG1hdGNoaW5nQ29udGV4dCkgWUFSUl9DQUxMOwotICAgIHVzaW5nIFlhcnJKSVRDb2RlMTYgPSBT
bG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0
YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklUQ29kZU1h
dGNoT25seTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExDaGFyKiBpbnB1dCwgVUNQ
VVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCB2b2lkKiwgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpIFlBUlJfQ0FMTDsKLSAgICB1c2luZyBZYXJySklU
Q29kZU1hdGNoT25seTE2ID0gU2xvd1BhdGhSZXR1cm5UeXBlICgqKShjb25zdCBVQ2hhciogaW5w
dXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVyIGxlbmd0aCwgdm9pZCosIE1hdGNo
aW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250ZXh0KSBZQVJSX0NBTEw7Ci0KIHB1YmxpYzoK
KyAgICB1c2luZyBZYXJySklUQ29kZTggPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IExD
aGFyKiBpbnB1dCwgVUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQq
IG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKikgWUFSUl9DQUxMOworICAgIHVzaW5nIFlh
cnJKSVRDb2RlMTYgPSBTbG93UGF0aFJldHVyblR5cGUgKCopKGNvbnN0IFVDaGFyKiBpbnB1dCwg
VUNQVVJlZ2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyKikgWUFSUl9DQUxMOworICAgIHVzaW5nIFlhcnJKSVRDb2RlTWF0
Y2hPbmx5OCA9IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgTENoYXIqIGlucHV0LCBVQ1BV
UmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRl
eHRIb2xkZXIqKSBZQVJSX0NBTEw7CisgICAgdXNpbmcgWWFyckpJVENvZGVNYXRjaE9ubHkxNiA9
IFNsb3dQYXRoUmV0dXJuVHlwZSAoKikoY29uc3QgVUNoYXIqIGlucHV0LCBVQ1BVUmVnaXN0ZXIg
c3RhcnQsIFVDUFVSZWdpc3RlciBsZW5ndGgsIHZvaWQqLCBNYXRjaGluZ0NvbnRleHRIb2xkZXIq
KSBZQVJSX0NBTEw7CisKICAgICBZYXJyQ29kZUJsb2NrKCkgPSBkZWZhdWx0OwogCiAgICAgdm9p
ZCBzZXRGYWxsQmFja1dpdGhGYWlsdXJlUmVhc29uKEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZVJl
YXNvbikgeyBtX2ZhaWx1cmVSZWFzb24gPSBmYWlsdXJlUmVhc29uOyB9CkBAIC0zMjYsNDIgKzMy
Nyw0MiBAQCBwdWJsaWM6CiAgICAgSW5saW5lU3RhdHMmIGdldDhCaXRJbmxpbmVTdGF0cygpIHsg
cmV0dXJuIG1fbWF0Y2hPbmx5OFN0YXRzOyB9CiAgICAgSW5saW5lU3RhdHMmIGdldDE2Qml0SW5s
aW5lU3RhdHMoKSB7IHJldHVybiAgbV9tYXRjaE9ubHkxNlN0YXRzOyB9CiAKLSAgICBNYXRjaFJl
c3VsdCBleGVjdXRlKGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYgbWF0Y2hpbmdDb250
ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlucHV0LCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdDb250ZXh0SG9s
ZGVyKiBtYXRjaGluZ0NvbnRleHQpCiAgICAgewogICAgICAgICBBU1NFUlQoaGFzOEJpdENvZGUo
KSk7CiAjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUpJVENhZ2UoKSkK
LSAgICAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh2bUVudHJ5VG9ZYXJySklUKGlucHV0LCBz
dGFydCwgbGVuZ3RoLCBvdXRwdXQsICZtYXRjaGluZ0NvbnRleHQsIHJldGFnQ29kZVB0cjxZYXJy
OEJpdFB0clRhZywgWWFyckVudHJ5UHRyVGFnPihtX3JlZjguY29kZSgpLmV4ZWN1dGFibGVBZGRy
ZXNzKCkpKSk7CisgICAgICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQodm1FbnRyeVRvWWFyckpJ
VChpbnB1dCwgc3RhcnQsIGxlbmd0aCwgb3V0cHV0LCBtYXRjaGluZ0NvbnRleHQsIHJldGFnQ29k
ZVB0cjxZYXJyOEJpdFB0clRhZywgWWFyckVudHJ5UHRyVGFnPihtX3JlZjguY29kZSgpLmV4ZWN1
dGFibGVBZGRyZXNzKCkpKSk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVu
dGFnQ0Z1bmN0aW9uUHRyPFlhcnJKSVRDb2RlOCwgWWFycjhCaXRQdHJUYWc+KG1fcmVmOC5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0
Y2hpbmdDb250ZXh0KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBV
Q2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIGludCogb3V0cHV0
LCBNYXRjaGluZ0NvbnRleHRIb2xkZXImIG1hdGNoaW5nQ29udGV4dCkKKyAgICBNYXRjaFJlc3Vs
dCBleGVjdXRlKGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxl
bmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0
KQogICAgIHsKICAgICAgICAgQVNTRVJUKGhhczE2Qml0Q29kZSgpKTsKICNpZiBDUFUoQVJNNjRF
KQogICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAgICAgcmV0dXJu
IE1hdGNoUmVzdWx0KHZtRW50cnlUb1lhcnJKSVQoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1
dCwgJm1hdGNoaW5nQ29udGV4dCwgcmV0YWdDb2RlUHRyPFlhcnIxNkJpdFB0clRhZywgWWFyckVu
dHJ5UHRyVGFnPihtX3JlZjE2LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSkpOworICAgICAg
ICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHZtRW50cnlUb1lhcnJKSVQoaW5wdXQsIHN0YXJ0LCBs
ZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0LCByZXRhZ0NvZGVQdHI8WWFycjE2Qml0UHRy
VGFnLCBZYXJyRW50cnlQdHJUYWc+KG1fcmVmMTYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkp
KSk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHVudGFnQ0Z1bmN0aW9uUHRy
PFlhcnJKSVRDb2RlMTYsIFlhcnIxNkJpdFB0clRhZz4obV9yZWYxNi5jb2RlKCkuZXhlY3V0YWJs
ZUFkZHJlc3MoKSkoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG91dHB1dCwgbWF0Y2hpbmdDb250ZXh0
KSk7CiAgICAgfQogCi0gICAgTWF0Y2hSZXN1bHQgZXhlY3V0ZShjb25zdCBMQ2hhciogaW5wdXQs
IHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE1hdGNoaW5nQ29udGV4dEhvbGRlciYg
bWF0Y2hpbmdDb250ZXh0KQorICAgIE1hdGNoUmVzdWx0IGV4ZWN1dGUoY29uc3QgTENoYXIqIGlu
cHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBNYXRjaGluZ0NvbnRleHRIb2xk
ZXIqIG1hdGNoaW5nQ29udGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXM4Qml0Q29kZU1h
dGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQogICAgICAgICBpZiAoT3B0aW9uczo6dXNlSklU
Q2FnZSgpKQotICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0KHZtRW50cnlUb1lhcnJKSVQo
aW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51bGxwdHIsICZtYXRjaGluZ0NvbnRleHQsIHJldGFnQ29k
ZVB0cjxZYXJyTWF0Y2hPbmx5OEJpdFB0clRhZywgWWFyckVudHJ5UHRyVGFnPihtX21hdGNoT25s
eTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKSk7CisgICAgICAgICAgICByZXR1cm4gTWF0
Y2hSZXN1bHQodm1FbnRyeVRvWWFyckpJVChpbnB1dCwgc3RhcnQsIGxlbmd0aCwgbnVsbHB0ciwg
bWF0Y2hpbmdDb250ZXh0LCByZXRhZ0NvZGVQdHI8WWFyck1hdGNoT25seThCaXRQdHJUYWcsIFlh
cnJFbnRyeVB0clRhZz4obV9tYXRjaE9ubHk4LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSkp
OwogI2VuZGlmCiAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh1bnRhZ0NGdW5jdGlvblB0cjxZ
YXJySklUQ29kZU1hdGNoT25seTgsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPihtX21hdGNoT25s
eTguY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKGlucHV0LCBzdGFydCwgbGVuZ3RoLCBudWxs
cHRyLCBtYXRjaGluZ0NvbnRleHQpKTsKICAgICB9CiAKLSAgICBNYXRjaFJlc3VsdCBleGVjdXRl
KGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgTWF0
Y2hpbmdDb250ZXh0SG9sZGVyJiBtYXRjaGluZ0NvbnRleHQpCisgICAgTWF0Y2hSZXN1bHQgZXhl
Y3V0ZShjb25zdCBVQ2hhciogaW5wdXQsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgs
IE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250ZXh0KQogICAgIHsKICAgICAgICAg
QVNTRVJUKGhhczE2Qml0Q29kZU1hdGNoT25seSgpKTsKICNpZiBDUFUoQVJNNjRFKQogICAgICAg
ICBpZiAoT3B0aW9uczo6dXNlSklUQ2FnZSgpKQotICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVz
dWx0KHZtRW50cnlUb1lhcnJKSVQoaW5wdXQsIHN0YXJ0LCBsZW5ndGgsIG51bGxwdHIsICZtYXRj
aGluZ0NvbnRleHQsIHJldGFnQ29kZVB0cjxZYXJyTWF0Y2hPbmx5MTZCaXRQdHJUYWcsIFlhcnJF
bnRyeVB0clRhZz4obV9tYXRjaE9ubHkxNi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpKTsK
KyAgICAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdCh2bUVudHJ5VG9ZYXJySklUKGlucHV0LCBz
dGFydCwgbGVuZ3RoLCBudWxscHRyLCBtYXRjaGluZ0NvbnRleHQsIHJldGFnQ29kZVB0cjxZYXJy
TWF0Y2hPbmx5MTZCaXRQdHJUYWcsIFlhcnJFbnRyeVB0clRhZz4obV9tYXRjaE9ubHkxNi5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpKTsKICNlbmRpZgogICAgICAgICByZXR1cm4gTWF0Y2hS
ZXN1bHQodW50YWdDRnVuY3Rpb25QdHI8WWFyckpJVENvZGVNYXRjaE9ubHkxNiwgWWFyck1hdGNo
T25seTE2Qml0UHRyVGFnPihtX21hdGNoT25seTE2LmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygp
KShpbnB1dCwgc3RhcnQsIGxlbmd0aCwgbnVsbHB0ciwgbWF0Y2hpbmdDb250ZXh0KSk7CiAgICAg
fQpAQCAtNDM5LDcgKzQ0MCw3IEBAIHZvaWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYsIFN0cmlu
ZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUsIFZNKiwgWWFyckNvZGVCbG9jCiAKIGNsYXNzIFlh
cnJKSVRSZWdpc3RlcnM7CiAKLXZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sq
LCBjb25zdCBTdHJpbmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3Qg
Vk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBNYWNyb0Fzc2VtYmxlciYsIFlhcnJKSVRSZWdpc3Rl
cnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlubGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBjb25zdCBTdHJp
bmcmLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95
ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMmLCBZYXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYK
IAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OllhcnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVRSZWdpc3RlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVRSZWdpc3RlcnMuaAppbmRleCBiYjgyMWNlODY3ZmUzOGUyOGYzNWNlNzA2Yjli
YzYwOTk0MmY3OWI0Li5kZTU3Nzg0ODk4NDM2OTgwNThkZjc4YjExYWJhNTI3NWQ5NDgxMWIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklUUmVnaXN0ZXJzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVFJlZ2lzdGVycy5oCkBAIC0y
MDYsNiArMjA2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyKDB4MTAwMDApOwogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgbGVh
ZGluZ1N1cnJvZ2F0ZVRhZyA9IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhkODAwKTsK
ICAgICBjb25zdCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRl
VGFnID0gTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGRjMDApOworICAgIGNvbnN0IE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7CiB9OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJNYXRjaGluZ0NvbnRleHRIb2xkZXIuaApp
bmRleCAxMzlkMWZlMzViNTc1YzcwYTA1YTdlNzcyNWRkOWZhMWVmYjY2MDFlLi4xYWY4MzA5ODJm
ZjU3ZjJhOTNiNjYxNzkzOGQyZGJjNWRlYzhhMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9ZYXJyTWF0Y2hpbmdDb250ZXh0SG9sZGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyck1hdGNoaW5nQ29udGV4dEhvbGRlci5oCkBAIC0zNywxMiAr
MzcsMTAgQEAgY2xhc3MgUmVnRXhwOwogCiBuYW1lc3BhY2UgWWFyciB7CiAKLWNsYXNzIFlhcnJD
b2RlQmxvY2s7Ci0KIGNsYXNzIE1hdGNoaW5nQ29udGV4dEhvbGRlciB7CiAgICAgV1RGX0ZPUkJJ
RF9IRUFQX0FMTE9DQVRJT047CiBwdWJsaWM6Ci0gICAgTWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZN
JiwgWWFyckNvZGVCbG9jayosIFJlZ0V4cCosIE1hdGNoRnJvbSk7CisgICAgTWF0Y2hpbmdDb250
ZXh0SG9sZGVyKFZNJiwgYm9vbCwgUmVnRXhwKiwgTWF0Y2hGcm9tKTsKICAgICB+TWF0Y2hpbmdD
b250ZXh0SG9sZGVyKCk7CiAKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU3RhY2tMaW1p
dCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihNYXRjaGluZ0NvbnRleHRIb2xkZXIsIG1fc3Rh
Y2tMaW1pdCk7IH0KQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBNYXRjaEZyb20gbV9t
YXRjaEZyb207CiB9OwogCi1pbmxpbmUgTWF0Y2hpbmdDb250ZXh0SG9sZGVyOjpNYXRjaGluZ0Nv
bnRleHRIb2xkZXIoVk0mIHZtLCBZYXJyQ29kZUJsb2NrKiB5YXJyQ29kZUJsb2NrLCBSZWdFeHAq
IHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKK2lubGluZSBNYXRjaGluZ0NvbnRleHRIb2xk
ZXI6Ok1hdGNoaW5nQ29udGV4dEhvbGRlcihWTSYgdm0sIGJvb2wgdXNlc1BhdHRlcm5Db250ZXh0
QnVmZmVyLCBSZWdFeHAqIHJlZ0V4cCwgTWF0Y2hGcm9tIG1hdGNoRnJvbSkKICAgICA6IG1fdm0o
dm0pCiAgICAgLCBtX21hdGNoRnJvbShtYXRjaEZyb20pCiB7CkBAIC03NCwxMiArNzIsMTIgQEAg
aW5saW5lIE1hdGNoaW5nQ29udGV4dEhvbGRlcjo6TWF0Y2hpbmdDb250ZXh0SG9sZGVyKFZNJiB2
bSwgWWFyckNvZGVCbG9jayogeWFyckMKICAgICB9CiAKICNpZiBFTkFCTEUoWUFSUl9KSVRfQUxM
X1BBUkVOU19FWFBSRVNTSU9OUykKLSAgICBpZiAoeWFyckNvZGVCbG9jayAmJiB5YXJyQ29kZUJs
b2NrLT51c2VzUGF0dGVybkNvbnRleHRCdWZmZXIoKSkgeworICAgIGlmICh1c2VzUGF0dGVybkNv
bnRleHRCdWZmZXIpIHsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4dEJ1ZmZlciA9IG1fdm0uYWNx
dWlyZVJlZ0V4cFBhdHRlcm5Db250ZXhCdWZmZXIoKTsKICAgICAgICAgbV9wYXR0ZXJuQ29udGV4
dEJ1ZmZlclNpemUgPSBWTTo6cGF0dGVybkNvbnRleHRCdWZmZXJTaXplOwogICAgIH0KICNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKHlhcnJDb2RlQmxvY2spOworICAgIFVOVVNFRF9QQVJBTSh1c2Vz
UGF0dGVybkNvbnRleHRCdWZmZXIpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvSGVhcC5jcHAgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0hlYXAuY3Bw
CmluZGV4IDA0ZmJjY2FlNWRhMGE0MzQ3ZmE5ODFkMDY0YzBiN2I2MWUyNGNiOWYuLjQwZjFkNzVm
MTVjYmI1OTQ3ZDE4NmQyN2IwMGNhMWJmNmUxNWRjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvSGVhcC5jcHAKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9IZWFwLmNw
cApAQCAtMTA1LDcgKzEwNSw3IEBAIEJJTkxJTkUgdm9pZCBIZWFwOjphZGp1c3RTdGF0KHNpemVf
dCYgdmFsdWUsIHNzaXplX3QgYW1vdW50KQogCiBCSU5MSU5FIHZvaWQgSGVhcDo6bG9nU3RhdChz
aXplX3QgdmFsdWUsIHNzaXplX3QgYW1vdW50LCBjb25zdCBjaGFyKiBsYWJlbCwgY29uc3QgY2hh
ciogbm90ZSkKIHsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiAlbHUgKCVsZCkgJXNcbiIsIGxh
YmVsLCB2YWx1ZSwgYW1vdW50LCBub3RlKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiAlenUg
KCV6ZCkgJXNcbiIsIGxhYmVsLCB2YWx1ZSwgYW1vdW50LCBub3RlKTsKIH0KIAogQklOTElORSB2
b2lkIEhlYXA6OmFkanVzdEZyZWVhYmxlTWVtb3J5KFVuaXF1ZUxvY2tIb2xkZXImLCBzc2l6ZV90
IGFtb3VudCwgY29uc3QgY2hhciogbm90ZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>