<?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>151839</bug_id>
          
          <creation_ts>2015-12-03 17:36:26 -0800</creation_ts>
          <short_desc>[ES6] Add support for Symbol.hasInstance</short_desc>
          <delta_ts>2016-06-06 20:53:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>152214</dependson>
    
    <dependson>152245</dependson>
    
    <dependson>152256</dependson>
    
    <dependson>152370</dependson>
          <blocked>152005</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1146150</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-03 17:36:26 -0800</bug_when>
    <thetext>[ES6] Add support for Symbol.hasInstance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146172</commentid>
    <comment_count>1</comment_count>
      <attachid>266587</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-03 18:57:51 -0800</bug_when>
    <thetext>Created attachment 266587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1146175</commentid>
    <comment_count>2</comment_count>
      <attachid>266588</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-03 19:12:21 -0800</bug_when>
    <thetext>Created attachment 266588
Benchmark results

64-bit benchmark results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147054</commentid>
    <comment_count>3</comment_count>
      <attachid>266823</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-07 15:55:15 -0800</bug_when>
    <thetext>Created attachment 266823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147099</commentid>
    <comment_count>4</comment_count>
      <attachid>266830</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-07 16:26:27 -0800</bug_when>
    <thetext>Created attachment 266830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147100</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-07 16:27:40 -0800</bug_when>
    <thetext>Attachment 266830 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSObject.h:488:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 64 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147107</commentid>
    <comment_count>6</comment_count>
      <attachid>266833</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-07 16:48:28 -0800</bug_when>
    <thetext>Created attachment 266833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147108</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-07 16:49:39 -0800</bug_when>
    <thetext>Attachment 266833 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSObject.h:488:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 64 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147364</commentid>
    <comment_count>8</comment_count>
      <attachid>266833</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-08 10:53:37 -0800</bug_when>
    <thetext>Comment on attachment 266833
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        [WIP] Still need to do 32-bit, add tests, and cleanup but should be roughly done.

Need to delete this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147368</commentid>
    <comment_count>9</comment_count>
      <attachid>266833</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-08 11:01:23 -0800</bug_when>
    <thetext>Comment on attachment 266833
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        needs non-default behavior for resolving the expression. i.e. The constructor has a Symbol.hasInstance that differs from the one on

From reading this sentence I would think that jsTrue=&gt;non-default behavior and that jsFalse=&gt;default behavior but it&apos;s the opposite.

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:2191
&gt; +    instructions().append(hasInstanceSymbol-&gt;index());

Nit: I think the name hasInstanceSymbol is a bit misleading here (and in other places) because it&apos;s the result of doing a GetById with the hasInstanceSymbol and not the symbol itself.
Maybe something like &quot;symbolHasInstanceResult&quot; or &quot;hasInstanceSymbolResult&quot; or just &quot;hasInstanceFunction&quot;?

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:603
&gt; +        RegisterID* emitIsFunction(RegisterID* dst, RegisterID* src);

This isn&apos;t called

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4222
&gt; +        if (!hasInstanceSymbolNode-&gt;isCellConstant()) {
&gt; +
&gt; +            notDefault = m_jit.branchPtr(MacroAssembler::NotEqual, hasInstanceSymbol.gpr(), TrustedImmPtr(defaultHasInstanceFunction));
&gt; +        }

Style: This can be an &quot;if&quot; with no curly braces.

&gt; Source/JavaScriptCore/jit/JSInterfaceJIT.h:165
&gt; +    ALWAYS_INLINE JSInterfaceJIT::JumpList JSInterfaceJIT::emitJumpIfNull(JSValueRegs reg, GPRReg scratch1, GPRReg scratch2) {

This really jumps if it&apos;s undefined or null, right? If so, we should name it emitJumpIfNullOrUndefined

&gt; Source/JavaScriptCore/llint/LLIntData.cpp:158
&gt; +    ASSERT(!(reinterpret_cast&lt;ptrdiff_t&gt;((reinterpret_cast&lt;WriteBarrier&lt;JSCell&gt;*&gt;(0x4000)-&gt;slot())) - 0x4000));

Why is this here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147377</commentid>
    <comment_count>10</comment_count>
      <attachid>266833</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-08 11:16:45 -0800</bug_when>
    <thetext>Comment on attachment 266833
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:2191
&gt;&gt; +    instructions().append(hasInstanceSymbol-&gt;index());
&gt; 
&gt; Nit: I think the name hasInstanceSymbol is a bit misleading here (and in other places) because it&apos;s the result of doing a GetById with the hasInstanceSymbol and not the symbol itself.
&gt; Maybe something like &quot;symbolHasInstanceResult&quot; or &quot;hasInstanceSymbolResult&quot; or just &quot;hasInstanceFunction&quot;?

How do you feel about hasInstanceValue (since it may or may not be a function)?

&gt;&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:603
&gt;&gt; +        RegisterID* emitIsFunction(RegisterID* dst, RegisterID* src);
&gt; 
&gt; This isn&apos;t called

Deleted.

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4222
&gt;&gt; +        }
&gt; 
&gt; Style: This can be an &quot;if&quot; with no curly braces.

Fixed.

&gt;&gt; Source/JavaScriptCore/llint/LLIntData.cpp:158
&gt;&gt; +    ASSERT(!(reinterpret_cast&lt;ptrdiff_t&gt;((reinterpret_cast&lt;WriteBarrier&lt;JSCell&gt;*&gt;(0x4000)-&gt;slot())) - 0x4000));
&gt; 
&gt; Why is this here?

This verifies that the offset of the jsvalue in a WriteBarrier is at the zero offset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147386</commentid>
    <comment_count>11</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-08 11:23:46 -0800</bug_when>
    <thetext>&gt; &gt;&gt; +    ASSERT(!(reinterpret_cast&lt;ptrdiff_t&gt;((reinterpret_cast&lt;WriteBarrier&lt;JSCell&gt;*&gt;(0x4000)-&gt;slot())) - 0x4000));
&gt; &gt; 
&gt; &gt; Why is this here?
&gt; 
&gt; This verifies that the offset of the jsvalue in a WriteBarrier is at the
&gt; zero offset.

I should mention that we use this fact in the LLInt as part of the ptr test on Function.prototype[Symbol.hasInstance].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147387</commentid>
    <comment_count>12</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-12-08 11:26:05 -0800</bug_when>
    <thetext>Need updated es6.yaml results.

Please rename &quot;check has instance&quot; to &quot;overrides has instance&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147425</commentid>
    <comment_count>13</comment_count>
      <attachid>266927</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-08 12:32:25 -0800</bug_when>
    <thetext>Created attachment 266927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148014</commentid>
    <comment_count>14</comment_count>
      <attachid>267058</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-09 17:33:14 -0800</bug_when>
    <thetext>Created attachment 267058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148015</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-09 17:34:57 -0800</bug_when>
    <thetext>Attachment 267058 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSObject.h:488:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 62 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148033</commentid>
    <comment_count>16</comment_count>
      <attachid>267058</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-09 18:56:35 -0800</bug_when>
    <thetext>Comment on attachment 267058
Patch

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

r=me with comments

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2980
&gt; +    // Note that we intentionally clobber the hasInstanceValue register here on x86 because we
&gt; +    // are short on registers. This is valid because we know InstanceOfCustom is the last use
&gt; +    // of the GetById which produces it.

This seems a bit sketchy to me and also probably unnecessary.
We probably don&apos;t care much about X86.
Also, if you&apos;re worried about the extra register here you could call an operation that returns a value that fits in a single register on 32-bit platforms.

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2997
&gt; +    MacroAssembler::Jump slowCase = m_jit.jump();

I don&apos;t think you need a variable for this (or above).

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:5780
&gt; +        // Unlike, the DFG we don&apos;t worry about cleaning this code up for the case where we have proven the hasInstanceValue is a constant as LLVM should fix it for us.

Style: &quot;Unlike, the DFG&quot; =&gt; &quot;Unlike in the DFG,&quot;

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:5785
&gt; +        m_out.branch(m_out.notEqual(hasInstance, m_out.constIntPtr(defaultHasInstanceFunction)), unsure(continuation), unsure(defaultHasInstance));

I think you should have unlikely(continuation) and likely(defaultHasInstance)

&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:854
&gt; +    int proto = currentInstruction[3].u.operand;

style: You call this &quot;proto&quot; here and &quot;constructor&quot; below. I say just go w/ constructor.

&gt; Source/JavaScriptCore/runtime/JSTypeInfo.h:41
&gt; +static const unsigned OverridesHasInstanceFlag = 1 &lt;&lt; 2; // FixMe: This is only trivially used by the runtime and should be removed: https://bugs.webkit.org/show_bug.cgi?id=152005

style: FixMe =&gt; FIXME

&gt; LayoutTests/js/Object-getOwnPropertyNames-expected.txt:61
&gt;  PASS getSortedOwnPropertyNames(Error.prototype) is [&apos;constructor&apos;, &apos;message&apos;, &apos;name&apos;, &apos;toString&apos;]

What happened to all the other tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148034</commentid>
    <comment_count>17</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-09 18:57:19 -0800</bug_when>
    <thetext>Also, have you run perf tests?
Are they neutral? Can you post them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148040</commentid>
    <comment_count>18</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-09 19:28:06 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Also, have you run perf tests?
&gt; Are they neutral? Can you post them?

They are attached above and are neutral (The !s are on tests that don&apos;t use instanceof).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148043</commentid>
    <comment_count>19</comment_count>
      <attachid>267064</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-09 19:30:55 -0800</bug_when>
    <thetext>Created attachment 267064
Benchmark results

More recent benchmark results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148058</commentid>
    <comment_count>20</comment_count>
      <attachid>267058</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-09 19:55:38 -0800</bug_when>
    <thetext>Comment on attachment 267058
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2980
&gt;&gt; +    // of the GetById which produces it.
&gt; 
&gt; This seems a bit sketchy to me and also probably unnecessary.
&gt; We probably don&apos;t care much about X86.
&gt; Also, if you&apos;re worried about the extra register here you could call an operation that returns a value that fits in a single register on 32-bit platforms.

I suppose I could add a function that returns an int32_t or something that contains the boolean result of the slow path but I&apos;m not sure that feels any less sketchy.

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2997
&gt;&gt; +    MacroAssembler::Jump slowCase = m_jit.jump();
&gt; 
&gt; I don&apos;t think you need a variable for this (or above).

While you are correct in this case, I dealt with bugs related assigning a gpr after a jump due to calls occurring in the wrong order. I&apos;d feel a bit safer when the order is extra explicit in this context.

&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:5780
&gt;&gt; +        // Unlike, the DFG we don&apos;t worry about cleaning this code up for the case where we have proven the hasInstanceValue is a constant as LLVM should fix it for us.
&gt; 
&gt; Style: &quot;Unlike, the DFG&quot; =&gt; &quot;Unlike in the DFG,&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:5785
&gt;&gt; +        m_out.branch(m_out.notEqual(hasInstance, m_out.constIntPtr(defaultHasInstanceFunction)), unsure(continuation), unsure(defaultHasInstance));
&gt; 
&gt; I think you should have unlikely(continuation) and likely(defaultHasInstance)

I had that at one point but this node is almost never generated unless JS code uses a custom hasInstance in some form. So it makes sense to not punish users when they have a custom hasInstance.

&gt;&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:854
&gt;&gt; +    int proto = currentInstruction[3].u.operand;
&gt; 
&gt; style: You call this &quot;proto&quot; here and &quot;constructor&quot; below. I say just go w/ constructor.

This is just the diff being laid out poorly... All of this code is just deleted emitSlow_op_check_has_instance being mixed with existing emitSlow_op_instanceof that I did not change... &quot;proto&quot; is actually the prototype of the constructor not the constructor itself.

&gt;&gt; Source/JavaScriptCore/runtime/JSTypeInfo.h:41
&gt;&gt; +static const unsigned OverridesHasInstanceFlag = 1 &lt;&lt; 2; // FixMe: This is only trivially used by the runtime and should be removed: https://bugs.webkit.org/show_bug.cgi?id=152005
&gt; 
&gt; style: FixMe =&gt; FIXME

Fixed.

&gt;&gt; LayoutTests/js/Object-getOwnPropertyNames-expected.txt:61
&gt;&gt;  PASS getSortedOwnPropertyNames(Error.prototype) is [&apos;constructor&apos;, &apos;message&apos;, &apos;name&apos;, &apos;toString&apos;]
&gt; 
&gt; What happened to all the other tests?

Ughh... I forgot to add them... I&apos;ll re-upload another version with them again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148061</commentid>
    <comment_count>21</comment_count>
      <attachid>267069</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-09 20:21:35 -0800</bug_when>
    <thetext>Created attachment 267069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148066</commentid>
    <comment_count>22</comment_count>
      <attachid>267058</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-09 21:15:57 -0800</bug_when>
    <thetext>Comment on attachment 267058
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:2980
&gt;&gt;&gt; +    // of the GetById which produces it.
&gt;&gt; 
&gt;&gt; This seems a bit sketchy to me and also probably unnecessary.
&gt;&gt; We probably don&apos;t care much about X86.
&gt;&gt; Also, if you&apos;re worried about the extra register here you could call an operation that returns a value that fits in a single register on 32-bit platforms.
&gt; 
&gt; I suppose I could add a function that returns an int32_t or something that contains the boolean result of the slow path but I&apos;m not sure that feels any less sketchy.

Maybe just have one path for everything then?
Up to you.

&gt;&gt;&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:5785
&gt;&gt;&gt; +        m_out.branch(m_out.notEqual(hasInstance, m_out.constIntPtr(defaultHasInstanceFunction)), unsure(continuation), unsure(defaultHasInstance));
&gt;&gt; 
&gt;&gt; I think you should have unlikely(continuation) and likely(defaultHasInstance)
&gt; 
&gt; I had that at one point but this node is almost never generated unless JS code uses a custom hasInstance in some form. So it makes sense to not punish users when they have a custom hasInstance.

makes sense

&gt;&gt;&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:854
&gt;&gt;&gt; +    int proto = currentInstruction[3].u.operand;
&gt;&gt; 
&gt;&gt; style: You call this &quot;proto&quot; here and &quot;constructor&quot; below. I say just go w/ constructor.
&gt; 
&gt; This is just the diff being laid out poorly... All of this code is just deleted emitSlow_op_check_has_instance being mixed with existing emitSlow_op_instanceof that I did not change... &quot;proto&quot; is actually the prototype of the constructor not the constructor itself.

oops I missed that. ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148091</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-10 00:32:13 -0800</bug_when>
    <thetext>Attachment 267069 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSObject.h:488:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 67 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148352</commentid>
    <comment_count>24</comment_count>
      <attachid>267142</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-10 17:20:19 -0800</bug_when>
    <thetext>Created attachment 267142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148356</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-10 17:21:45 -0800</bug_when>
    <thetext>Attachment 267142 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSObject.h:488:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 67 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148359</commentid>
    <comment_count>26</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-10 17:24:26 -0800</bug_when>
    <thetext>After some investigation, I think you are right that we should use a non-encodedjsvalue to hold the result of the custom slow path. It looks like we use int32_t for that so I changed JIT_OPERATION to return an int32_t. If you want to give it another quick look over, I would appreciate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148513</commentid>
    <comment_count>27</comment_count>
      <attachid>267142</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-11 12:50:05 -0800</bug_when>
    <thetext>Comment on attachment 267142
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148527</commentid>
    <comment_count>28</comment_count>
      <attachid>267142</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-11 13:44:08 -0800</bug_when>
    <thetext>Comment on attachment 267142
Patch

Clearing flags on attachment: 267142

Committed r193974: &lt;http://trac.webkit.org/changeset/193974&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148528</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-11 13:44:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148699</commentid>
    <comment_count>30</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-12 02:37:50 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; Comment on attachment 267142 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 267142
&gt; 
&gt; Committed r193974: &lt;http://trac.webkit.org/changeset/193974&gt;

It made many JSC tests crash on Linux bots:
- GTK X86_64 - https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Tests%29/builds/12637
- GTK X86 - https://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/57694
- EFL X86_64 - https://build.webkit.org/builders/EFL%20Linux%2064-bit%20Release%20WK2/builds/25878</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148921</commentid>
    <comment_count>31</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-14 02:25:30 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #28)
&gt; &gt; Comment on attachment 267142 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 267142
&gt; &gt; 
&gt; &gt; Committed r193974: &lt;http://trac.webkit.org/changeset/193974&gt;
&gt; 
&gt; It made many JSC tests crash on Linux bots:
&gt; - GTK X86_64 -
&gt; https://build.webkit.org/builders/GTK%20Linux%2064-
&gt; bit%20Release%20%28Tests%29/builds/12637
&gt; - GTK X86 -
&gt; https://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/57694
&gt; - EFL X86_64 -
&gt; https://build.webkit.org/builders/EFL%20Linux%2064-bit%20Release%20WK2/
&gt; builds/25878

- EFL Linux AArch64: https://build.webkit.org/builders/EFL%20Linux%20AArch64%20Release/builds/4700
- GTK ARMv7(?): https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/9652

(EFL ARMv7 bots work fine.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148923</commentid>
    <comment_count>32</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-12-14 02:29:42 -0800</bug_when>
    <thetext>I filed a new bug report to fix this regression: bug152245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148924</commentid>
    <comment_count>33</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-12-14 03:05:15 -0800</bug_when>
    <thetext>The debug bots are giving this assertion since r193974:


ASSERTION FAILED: i &lt; m_numBits
../../Source/WTF/wtf/FastBitVector.h(151) : void WTF::FastBitVector::set(size_t)
WTFCrashWithSecurityImplication(...)


Example:

[...]
stress/instanceof-not-cell.js.no-llint: ASSERTION FAILED: i &lt; m_numBits
stress/instanceof-not-cell.js.no-llint: ../../Source/WTF/wtf/FastBitVector.h(151) : void WTF::FastBitVector::set(size_t)
stress/instanceof-not-cell.js.no-llint: 1   0x7f58e30974ae /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrashWithSecurityImplication+0x1e) [0x7f58e30974ae]
stress/instanceof-not-cell.js.no-llint: 2   0x7f58e2719b66 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3WTF13FastBitVector3setEm+0x42) [0x7f58e2719b66]
stress/instanceof-not-cell.js.no-llint: 3   0x7f58e2716964 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x10e7964) [0x7f58e2716964]
stress/instanceof-not-cell.js.no-llint: 4   0x7f58e2717a96 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x10e8a96) [0x7f58e2717a96]
stress/instanceof-not-cell.js.no-llint: 5   0x7f58e2718543 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x10e9543) [0x7f58e2718543]
stress/instanceof-not-cell.js.no-llint: 6   0x7f58e2717af5 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x10e8af5) [0x7f58e2717af5]
stress/instanceof-not-cell.js.no-llint: 7   0x7f58e27169dc /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x10e79dc) [0x7f58e27169dc]
stress/instanceof-not-cell.js.no-llint: 8   0x7f58e2716ae6 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x10e7ae6) [0x7f58e2716ae6]
stress/instanceof-not-cell.js.no-llint: 9   0x7f58e2716bad /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x10e7bad) [0x7f58e2716bad]
stress/instanceof-not-cell.js.no-llint: 10  0x7f58e2716de5 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC24BytecodeLivenessAnalysis19runLivenessFixpointEv+0x231) [0x7f58e2716de5]
stress/instanceof-not-cell.js.no-llint: 11  0x7f58e27179b9 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC24BytecodeLivenessAnalysis7computeEv+0x6b) [0x7f58e27179b9]
stress/instanceof-not-cell.js.no-llint: 12  0x7f58e271665a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC24BytecodeLivenessAnalysisC1EPNS_9CodeBlockE+0x68) [0x7f58e271665a]
stress/instanceof-not-cell.js.no-llint: 13  0x7f58e2951e6a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZSt11make_uniqueIN3JSC24BytecodeLivenessAnalysisEIPNS0_9CodeBlockEEENSt10_Unique_ifIT_E14_Single_objectEDpOT0_+0x3a) [0x7f58e2951e6a]
stress/instanceof-not-cell.js.no-llint: 14  0x7f58e295024d /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC9CodeBlock16livenessAnalysisEv+0x91) [0x7f58e295024d]
stress/instanceof-not-cell.js.no-llint: 15  0x7f58e294d53d /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC3DFG5Graph11livenessForEPNS_9CodeBlockE+0xd9) [0x7f58e294d53d]
stress/instanceof-not-cell.js.no-llint: 16  0x7f58e294d643 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC3DFG5Graph11livenessForEPNS_15InlineCallFrameE+0x35) [0x7f58e294d643]
stress/instanceof-not-cell.js.no-llint: 17  0x7f58e294d9a1 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC3DFG5Graph16isLiveInBytecodeENS_15VirtualRegisterENS_10CodeOriginE+0x179) [0x7f58e294d9a1]
stress/instanceof-not-cell.js.no-llint: 18  0x7f58e2a2af02 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x13fbf02) [0x7f58e2a2af02]
stress/instanceof-not-cell.js.no-llint: 19  0x7f58e2a2acf6 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x13fbcf6) [0x7f58e2a2acf6]
stress/instanceof-not-cell.js.no-llint: 20  0x7f58e2a2a8be /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x13fb8be) [0x7f58e2a2a8be]
stress/instanceof-not-cell.js.no-llint: 21  0x7f58e2a2b753 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x13fc753) [0x7f58e2a2b753]
stress/instanceof-not-cell.js.no-llint: 22  0x7f58e2a2b173 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x13fc173) [0x7f58e2a2b173]
stress/instanceof-not-cell.js.no-llint: 23  0x7f58e2a2ad60 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC3DFG23performPhantomInsertionERNS0_5GraphE+0x2b) [0x7f58e2a2ad60]
stress/instanceof-not-cell.js.no-llint: 24  0x7f58e2a2f940 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC3DFG4Plan19compileInThreadImplERNS0_14LongLivedStateE+0x5c6) [0x7f58e2a2f940]
stress/instanceof-not-cell.js.no-llint: 25  0x7f58e2a2efdf /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC3DFG4Plan15compileInThreadERNS0_14LongLivedStateEPNS0_10ThreadDataE+0x165) [0x7f58e2a2efdf]
stress/instanceof-not-cell.js.no-llint: 26  0x7f58e2b1a9af /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC3DFG8Worklist9runThreadEPNS0_10ThreadDataE+0x2d7) [0x7f58e2b1a9af]
stress/instanceof-not-cell.js.no-llint: 27  0x7f58e2b1ad5c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3JSC3DFG8Worklist14threadFunctionEPv+0x2a) [0x7f58e2b1ad5c]
stress/instanceof-not-cell.js.no-llint: 28  0x7f58e30b2598 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x1a83598) [0x7f58e30b2598]
stress/instanceof-not-cell.js.no-llint: 29  0x7f58e30b2748 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x1a83748) [0x7f58e30b2748]
stress/instanceof-not-cell.js.no-llint: 30  0x7f58e2b3d046 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZNKSt8functionIFvvEEclEv+0x32) [0x7f58e2b3d046]
stress/instanceof-not-cell.js.no-llint: 31  0x7f58e30b247a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(+0x1a8347a) [0x7f58e30b247a]
stress/instanceof-not-cell.js.no-llint: Segmentation fault
stress/instanceof-not-cell.js.no-llint: ERROR: Unexpected exit code: 139
[...]

More at: https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug%20%28Tests%29/builds/6385/steps/jscore-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148988</commentid>
    <comment_count>34</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-12-14 09:40:52 -0800</bug_when>
    <thetext>Reopening as it was rolled out in &lt;http://trac.webkit.org/changeset/194036&gt; for causing crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150049</commentid>
    <comment_count>35</comment_count>
      <attachid>267579</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-17 13:26:01 -0800</bug_when>
    <thetext>Created attachment 267579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150051</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-17 13:27:38 -0800</bug_when>
    <thetext>Attachment 267579 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSObject.h:490:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 68 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150058</commentid>
    <comment_count>37</comment_count>
      <attachid>267579</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-17 13:47:24 -0800</bug_when>
    <thetext>Comment on attachment 267579
Patch

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

r=me again

&gt; Source/JavaScriptCore/bytecode/BytecodeUseDef.h:76
&gt; +        ASSERT(opcodeLengths[opcodeID] &gt;= 1);

All these asserts should be &gt; and not &gt;=.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150060</commentid>
    <comment_count>38</comment_count>
      <attachid>267579</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-17 13:50:28 -0800</bug_when>
    <thetext>Comment on attachment 267579
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecode/BytecodeUseDef.h:76
&gt;&gt; +        ASSERT(opcodeLengths[opcodeID] &gt;= 1);
&gt; 
&gt; All these asserts should be &gt; and not &gt;=.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150139</commentid>
    <comment_count>39</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2015-12-17 16:38:02 -0800</bug_when>
    <thetext>Committed r194248: &lt;http://trac.webkit.org/changeset/194248&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199888</commentid>
    <comment_count>40</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-06 20:53:33 -0700</bug_when>
    <thetext>*** Bug 151120 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266587</attachid>
            <date>2015-12-03 18:57:51 -0800</date>
            <delta_ts>2015-12-07 15:55:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151839-20151203185720.patch</filename>
            <type>text/plain</type>
            <size>91027</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZDY2MjIxMzQ5YjYwNzQxYjdmYjFiNzk1ZmMwNDZkMGU5NzU3ZTJhLi5hMWNiNDhhODc4NzkyYjc0
OWI1OGQ4N2E0ZDJiODZkZGUxZjE3ZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMzggQEAKKzIwMTUtMTItMDMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0g
U3RpbGwgbmVlZCB0byBkbyAzMi1iaXQsIGFkZCB0ZXN0cywgYW5kIGNsZWFudXAgYnV0IHNob3Vs
ZCBiZSByb3VnaGx5IGRvbmUuCisgICAgICAgIEJlbmNobWFya3MgaW5kaWNhdGUgbm8gcGVyZm9y
bWFuY2UgcmVncmVzc2lvbnMgZnJvbSB0aGVzZSBjaGFuZ2VzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBzdXBwb3J0IGZvciBTeW1ib2wuaGFzSW5zdGFuY2UsIHVuZm9ydHVuYXRlbHkgaW4g
b3JkZXIgdG8gcHJldmVudAorICAgICAgICByZWdyZXNzaW9ucyBzZXZlcmFsIG5ldyBieXRlY29k
ZXMgYW5kIERGRyBJUiBub2RlcyB3ZXJlIG5lY2Vzc2FyeS4gQmVmb3JlLCBTeW1ib2wuaGFzSW5z
dGFuY2UKKyAgICAgICAgd2hlbiBleGVjdXRpbmcgYW4gaW5zdGFuY2VvZiBleHByZXNzaW9uIHdl
IHdvdWxkIGVtaXQgdGhyZWUgYnl0ZWNvZGVzOiBjaGVja19oYXNfaW5zdGFuY2UsIGdldF9ieV9p
ZCwKKyAgICAgICAgdGhlbiBpbnN0YW5jZW9mLiBBcyB0aGUgc3BlYyBoYXMgY2hhbmdlZCwgd2Ug
ZW1pdCBhIG1vcmUgY29tcGxpY2F0ZWQgc2V0IG9mIGJ5dGVjb2RlcyBpbiBhZGRpdGlvbiB0byBz
b21lCisgICAgICAgIG5ldyBvbmVzLiBGaXJzdCB0aGUgcm9sZSBvZiBjaGVja19oYXNfaW5zdGFu
Y2UgYW5kIGl0cyBjb3JyZXNwb25kaW5nIERGRyBub2RlIGhhdmUgY2hhbmdlZC4gTm93IGl0IHJl
dHVybnMKKyAgICAgICAgYSBqcy1ib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgUkhTIG9m
IHRoZSBpbnN0YW5jZW9mIGV4cHJlc3Npb24gKGZyb20gaGVyZSBvbiBjYWxsZWQgdGhlIGNvbnN0
cnVjdG9yIGZvciBzaW1wbGljaXR5KQorICAgICAgICBuZWVkcyBub24tZGVmYXVsdCBiZWhhdmlv
ciBmb3IgcmVzb2x2aW5nIHRoZSBleHByZXNzaW9uLiBpLmUuIFRoZSBjb25zdHJ1Y3RvciBoYXMg
YSBTeW1ib2wuaGFzSW5zdGFuY2UgdGhhdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBvbgorICAgICAg
ICBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSBvciBpcyBhIGJvdW5kL0Mt
QVBJIGZ1bmN0aW9uLiBPbmNlIHdlIGdldCB0byB0aGUgREZHIHRoaXMgbm9kZSBpcyBnZW5lcmFs
bHkgZWxpbWluYXRlZCBhcworICAgICAgICB3ZSBjYW4gcHJvdmUgdGhlIHZhbHVlIG9mIFN5bWJv
bC5oYXNJbnN0YW5jZSBpcyBhIGNvbnN0YW50LiBUaGUgc2Vjb25kIG5ldyBieXRlY29kZSBpcyBp
bnN0YW5jZW9mX2N1c3RvbS4gaW5zbnRhbmNlb2ZfY3VzdG9tLCBqdXN0CisgICAgICAgIGVtaXRz
IGEgY2FsbCB0byBzbG93IHBhdGggY29kZSB0aGF0IGNvbXB1dGVzIHRoZSByZXN1bHQuCisKKyAg
ICAgICAgSW4gdGhlIERGRywgdGhlcmUgaXMgYWxzbyBhIG5ldyBub2RlLCBDaGVja1R5cGVJbmZv
LCB3aGljaCBjaGVja3MgdGhlIHR5cGUgaW5mbyBmbGFncyBhcmUgY29uc2lzdGVudCB3aXRoIHRo
ZSBvbmVzIHByb3ZpZGVkIGFuZAorICAgICAgICBPU1IgZXhpdHMgaWYgdGhlIGZsYWdzIGFyZSBu
b3QuIEFkZGl0aW9uYWxseSwgd2UgYXR0ZW1wdCB0byBwcm92ZSB0aGF0IHRoZSByZXN1bHQgb2Yg
Q2hlY2tIYXNJbnN0YW5jZSB3aWxsIGJlIGEgY29uc3RhbnQgYW5kIHRyYW5zZm9ybQorICAgICAg
ICBpdCBpbnRvIGEgQ2hlY2tUeXBlSW5mbyBmb2xsb3dlZCBieSBhIEpTQ29uc3RhbnQuCisKKyAg
ICAgICAgKiBidWlsdGlucy9GdW5jdGlvbi5wcm90b3R5cGUuanM6CisgICAgICAgIChzeW1ib2xI
YXNJbnN0YW5jZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcDoK
KyAgICAgICAgKEpTQzo6aXNCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5
dGVjb2RlTGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6Cisg
ICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlND
Ojpjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2luZFRvU3Ry
aW5nKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHA6CisgICAgICAgIChKU0M6OmdldEp1bXBUYXJnZXRzRm9y
Qnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWNpYWxQb2lu
dGVyLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDaGVja0hhc0luc3RhbmNlKToKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJbnN0YW5jZU9mQ3VzdG9tKToKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJc0Z1bmN0aW9uKToKKyAgICAgICAg
KiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGls
ZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6SW5zdGFuY2VPZk5vZGU6OmVtaXRC
eXRlY29kZSk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxs
KToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAg
ICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmxpbmtCbG9jayk6CisgICAgICAgICogZGZn
L0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNGR1Np
bXBsaWZpY2F0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBkZmcv
REZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAg
ICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAg
ICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhh
c2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAg
ICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24u
aDoKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhh
c1R5cGVJbmZvT3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6dHlwZUluZm9PcGVy
YW5kKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9F
eGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm8pOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZkN1c3RvbSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1
bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVy
YXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAg
ICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJE
RkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQ2hlY2tIYXNJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1Rv
TExWTTo6Y29tcGlsZUNoZWNrVHlwZUluZm8pOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKToKKyAgICAgICAgKiBqaXQvSklU
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAg
ICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcyk6CisgICAgICAgICogaml0L0pJ
VC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2Fs
bE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2luc3RhbmNlb2YpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaW5zdGFuY2Vv
Zl9jdXN0b20pOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfamVxX251bGwpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2YpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRP
cGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAq
IGppdC9KU0ludGVyZmFjZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1p
dEp1bXBJZk51bGwpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAgIChK
U0M6OkxMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgICogbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RF
Q0wpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OkZ1bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlvblByb3BlcnRpZXMpOgorICAg
ICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0lu
dHJpbnNpYy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6aXNCb3VuZEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6aGFzSW5zdGFuY2VCb3Vu
ZEZ1bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6aW5pdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVu
KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0OjpmdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik6Cisg
ICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojpo
YXNJbnN0YW5jZSk6CisgICAgICAgIChKU0M6Om9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZik6
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvV3JpdGVC
YXJyaWVyLmg6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U8VW5rbm93bj46OnNsb3Qp
OgorCiAyMDE1LTExLTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CiAKICAgICAgICAgUmVtb3ZlIGNyZWF0ZV9oYXNoX3RhYmxlIG9wdGlvbnMgYW5kIHNpbXBs
aWZ5IGJ1aWxkIHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0Z1bmN0aW9uLnByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9GdW5jdGlvbi5wcm90b3R5cGUuanMKaW5kZXggMWFhMDI0MjJiMTgwNGVlZmMwMzZmNTVjYTFl
MjVlYTdmYzEzMGYyZC4uOGQwMzgyZGNmZDBjN2I0ZDM5YjRmNmI1ZmM4MzQwMWVjYjk3YjIxMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9uLnByb3Rv
dHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvRnVuY3Rpb24ucHJv
dG90eXBlLmpzCkBAIC0zNiwzICszNiwxOCBAQCBmdW5jdGlvbiBhcHBseSh0aGlzVmFsdWUsIGFy
Z3VtZW50VmFsdWVzKQogCiAgICAgcmV0dXJuIHRoaXMuQGFwcGx5KHRoaXNWYWx1ZSwgYXJndW1l
bnRWYWx1ZXMpOwogfQorCisvLyBUT0RPOiBSZW5hbWUgdGhpcworZnVuY3Rpb24gc3ltYm9sSGFz
SW5zdGFuY2UodmFsdWUpCit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgaWYgKHR5cGVvZiB0
aGlzICE9PSAiZnVuY3Rpb24iKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoQGlz
Qm91bmRGdW5jdGlvbih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBoYXNJbnN0YW5jZUJvdW5kRnVu
Y3Rpb24odGhpcywgdmFsdWUpOworCisgICAgbGV0IHRhcmdldCA9IHRoaXMucHJvdG90eXBlOwor
ICAgIHJldHVybiBAaW5zdGFuY2VPZih2YWx1ZSwgdGFyZ2V0KTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJhc2ljQmxvY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKaW5kZXgg
NTRkZmQxNjhjYTYwMGViZWYxMzU4MDQzMmM3N2UyNWFkNDQ0YWQwYy4uMWMyNjU4YzU0ZWEwOWRm
MzFkYzAwY2VmYzU0M2MxOGUzOTAwYmYzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKQEAgLTU4LDcgKzU4LDYgQEAg
c3RhdGljIGJvb2wgaXNCcmFuY2goT3Bjb2RlSUQgb3Bjb2RlSUQpCiAgICAgY2FzZSBvcF9zd2l0
Y2hfaW1tOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAgY2FzZSBvcF9zd2l0Y2hfc3Ry
aW5nOgotICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggYmQyOWM1NWEzNzM1
NGRlM2ViYWEyOTUzOGFiMTcxYzIwOWYxMzMxMi4uZGI3OTk2ZjI2ZWVkODI2ZTdhYWVjMjVjYjZm
ZmJlZjVhZjg4NDU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUxpc3QuanNvbgpAQCAtNDUsOCArNDUsOSBAQAogICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfYml0YW5kIiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJv
cF9iaXR4b3IiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2Jp
dG9yIiwgImxlbmd0aCIgOiA1IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9jaGVja19o
YXNfaW5zdGFuY2UiLCAibGVuZ3RoIiA6IDUgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9w
X2NoZWNrX2hhc19pbnN0YW5jZSIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFt
ZSIgOiAib3BfaW5zdGFuY2VvZiIsICJsZW5ndGgiIDogNCB9LAorICAgICAgICAgICAgeyAibmFt
ZSIgOiAib3BfaW5zdGFuY2VvZl9jdXN0b20iLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX3R5cGVvZiIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfaXNfdW5kZWZpbmVkIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7
ICJuYW1lIiA6ICJvcF9pc19ib29sZWFuIiwgImxlbmd0aCIgOiAzIH0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDMxNTExZTdjMWQx
ZjVlOTczOTdjZDJiNGNmNDliYThiNGMzOGI0MGUuLjg5NDliZWRjNjc5YzhlYjljMGU4OGUzNjk3
ZTVjNDFmNzk1OWNkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZVVzZURlZi5oCkBAIC0xNjQsNyArMTY0LDYgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5
dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbDoKICAgICBjYXNlIG9wX2luOgog
ICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjoKLSAgICBjYXNlIG9wX2NoZWNrX2hhc19pbnN0YW5jZToK
ICAgICBjYXNlIG9wX2FkZDoKICAgICBjYXNlIG9wX211bDoKICAgICBjYXNlIG9wX2RpdjoKQEAg
LTE5MCw2ICsxODksOCBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAg
ICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9u
WzNdLnUub3BlcmFuZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBvcF9jaGVj
a19oYXNfaW5zdGFuY2U6CisgICAgY2FzZSBvcF9pbnN0YW5jZW9mX2N1c3RvbToKICAgICBjYXNl
IG9wX2hhc19zdHJ1Y3R1cmVfcHJvcGVydHk6CiAgICAgY2FzZSBvcF9jb25zdHJ1Y3RfdmFyYXJn
czoKICAgICBjYXNlIG9wX2NhbGxfdmFyYXJnczoKQEAgLTMyNiw2ICszMjcsNyBAQCB2b2lkIGNv
bXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVk
IGJ5dGVjb2RlT2Zmc2V0LAogICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICBjYXNl
IG9wX2NoZWNrX2hhc19pbnN0YW5jZToKICAgICBjYXNlIG9wX2luc3RhbmNlb2Y6CisgICAgY2Fz
ZSBvcF9pbnN0YW5jZW9mX2N1c3RvbToKICAgICBjYXNlIG9wX2dldF9ieV92YWw6CiAgICAgY2Fz
ZSBvcF90eXBlb2Y6CiAgICAgY2FzZSBvcF9pc191bmRlZmluZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDE4ZmZhMDcwZWZjYzdlNjllODY3
ZGNlZGNjNWM3ODU5NzE4MGU0OGYuLjgwOWI1NWUxMDVlZmExNTU1MDJjNDc5M2Y5ZmMzNDY5NDNm
OGEzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CkBAIC05OTMsOSArOTkzLDggQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAg
ICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0g
KCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFu
ZDsKLSAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAg
ICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImNoZWNrX2hh
c19pbnN0YW5jZSIpOwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcywgJWQoLT4l
ZCkiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIHJl
Z2lzdGVyTmFtZShyMikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAg
ICAgICAgIG91dC5wcmludGYoIiVzLCAlcywgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewpA
QCAtMTAwNiw2ICsxMDA1LDE1IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAg
ICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCks
IHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3Vz
dG9tOiB7CisgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAg
ICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgaW50IHIyID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgcjMgPSAoKytpdCktPnUub3BlcmFuZDsK
KyAgICAgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwg
Imluc3RhbmNlb2ZfY3VzdG9tIik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVz
LCAlcyIsIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKHIyKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMykuZGF0YSgpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdW5zaWduZWQ6IHsKICAg
ICAgICAgICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInVuc2lnbmVk
Iik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9FeGl0S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
RXhpdEtpbmQuY3BwCmluZGV4IDI1MjQzMDBmNzMzNzY5ZWQ5YmUwMDFkNzY2MGYzNjg1OWI2ZDg5
MDYuLjcwM2JjZGVhNWZiMjM4NTc3OWM1Nzg1ZDBiMjYwNTFmZjEzYjI2NmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcApAQCAtNTAsNiArNTAsOCBAQCBj
b25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtpbmQpCiAgICAgICAgIHJldHVy
biAiQmFkQ29uc3RhbnRDYWNoZSI7CiAgICAgY2FzZSBCYWRJbmRleGluZ1R5cGU6CiAgICAgICAg
IHJldHVybiAiQmFkSW5kZXhpbmdUeXBlIjsKKyAgICBjYXNlIEJhZFR5cGVJbmZvOgorICAgICAg
ICByZXR1cm4gIkJhZFR5cGVJbmZvIjsKICAgICBjYXNlIE92ZXJmbG93OgogICAgICAgICByZXR1
cm4gIk92ZXJmbG93IjsKICAgICBjYXNlIE5lZ2F0aXZlWmVybzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKaW5kZXggNmY4YzUxMjAwNzAwNTA1YmY5MWRlZjc0OTAw
M2UzMDA1ZTNmNzE4Ni4uODgyMWMzYzYwMDY1YTg4OWQxN2ViOTFhNTAwN2YxOTdiNzZiYTk3YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmgKQEAgLTM3LDYgKzM3
LDcgQEAgZW51bSBFeGl0S2luZCA6IHVpbnQ4X3QgewogICAgIEJhZENhY2hlLCAvLyBXZSBleGl0
ZWQgYmVjYXVzZSBhbiBpbmxpbmUgY2FjaGUgd2FzIHdyb25nLgogICAgIEJhZENvbnN0YW50Q2Fj
aGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEgY2FjaGUgb24gYSB3ZWFrIGNvbnN0YW50ICh1c3Vh
bGx5IGEgcHJvdG90eXBlKSB3YXMgd3JvbmcuCiAgICAgQmFkSW5kZXhpbmdUeXBlLCAvLyBXZSBl
eGl0ZWQgYmVjYXVzZSBhbiBpbmRleGluZyB0eXBlIHdhcyB3cm9uZy4KKyAgICBCYWRUeXBlSW5m
bywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBh
Ym91dCB3aGF0IFR5cGVJbmZvIGZsYWdzIHdlIHdvdWxkIHNlZS4KICAgICBPdmVyZmxvdywgLy8g
V2UgZXhpdGVkIGJlY2F1c2Ugb2Ygb3ZlcmZsb3cuCiAgICAgTmVnYXRpdmVaZXJvLCAvLyBXZSBl
eGl0ZWQgYmVjYXVzZSB3ZSBlbmNvdW50ZXJlZCBuZWdhdGl2ZSB6ZXJvLgogICAgIEludDUyT3Zl
cmZsb3csIC8vIFdlIGV4aXRlZCBiZWNhdXNlIG9mIGFuIEludDUyIG92ZXJmbG93LgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNw
cAppbmRleCBkNjBmZGY3ZDNjZjM2MGUzZWMxNjk4Nzc5YWJlNmI5ZWI5MDZkNTE0Li5jZGZiN2E1
YmNkN2E0YjM0OTBhNTJmNDVhOTRiMWJiNmJiM2M1ODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcApAQCAtNzMsOSAr
NzMsNiBAQCBzdGF0aWMgdm9pZCBnZXRKdW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVC
bG9jayogY29kZUJsb2NrLCBJbnRlcnByZXRlciogaQogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVj
b2RlT2Zmc2V0ICsgY3VycmVudFsyXS51Lm9wZXJhbmQpOwogICAgICAgICBicmVhazsKICAgICB9
Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6Ci0gICAgICAgIG91dC5hcHBlbmQoYnl0
ZWNvZGVPZmZzZXQgKyBjdXJyZW50WzRdLnUub3BlcmFuZCk7Ci0gICAgICAgIGJyZWFrOwogICAg
IGNhc2Ugb3BfbG9vcF9oaW50OgogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0KTsK
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3BlY2lhbFBvaW50ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVj
aWFsUG9pbnRlci5oCmluZGV4IDY0ZmIyM2ZjZjI3ZDQxMjUwNDgwMjE5ZThjOGM0MWI3YzQxYTdl
ZjUuLjQwOWNiNzQxMzI0MzAwM2FjM2Q2ZDdhOTVlNjMwNjFiMWExZDQ3YWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjaWFsUG9pbnRlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjaWFsUG9pbnRlci5oCkBAIC0zMyw2ICsz
Myw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogCiBuYW1lc3BhY2UgU3BlY2lhbCB7CiBlbnVt
IFBvaW50ZXIgeworICAgIEhhc0luc3RhbmNlU3ltYm9sID0gMCwgLy8gVGhlIGZhY3QgdGhhdCB0
aGlzIFNwZWNpYWwgaXMgYXNzaWduZWQgdG8gemVybyBpcyB1c2VkIGluIHRoZSBMTGludAogICAg
IENhbGxGdW5jdGlvbiwKICAgICBBcHBseUZ1bmN0aW9uLAogICAgIE9iamVjdENvbnN0cnVjdG9y
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcAppbmRleCA5ZWU2MTExY2MzZDA3ZjYzNDRjOTVlMDhmMmRlZTlkZmM4
MDY1NGMyLi5mNDhhZTNiZGQ0NWQzYzY1NDAxYzk4NGU5ZDYwNTE2YTdiZGNmNzczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcApAQCAtMTkwOCwxNCArMTkwOCwxMyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9y
OjpjcmVhdGVWYXJpYWJsZSgKICAgICB9CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRDaGVja0hhc0luc3RhbmNlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJl
Z2lzdGVySUQqIGJhc2UsIExhYmVsKiB0YXJnZXQpCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdENoZWNrSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBj
b25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VTeW1ib2wpCiB7Ci0gICAgc2l6ZV90
IGJlZ2luID0gaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOwogICAgIGVtaXRPcGNvZGUob3BfY2hlY2tf
aGFzX2luc3RhbmNlKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsK
LSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodmFsdWUtPmluZGV4KCkpOwotICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZChiYXNlLT5pbmRleCgpKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
dGFyZ2V0LT5iaW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsKKyAgICBpbnN0cnVj
dGlvbnMoKS5hcHBlbmQoY29uc3RydWN0b3ItPmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZChoYXNJbnN0YW5jZVN5bWJvbC0+aW5kZXgoKSk7CisgICAgcmV0dXJuIGRzdDsKIH0K
IAogLy8gSW5kaWNhdGVzIHRoZSBsZWFzdCB1cHBlciBib3VuZCBvZiByZXNvbHZlIHR5cGUgYmFz
ZWQgb24gbG9jYWwgc2NvcGUuIFRoZSBieXRlY29kZSBsaW5rZXIKQEAgLTIwODIsNiArMjA4MSwx
NiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEluc3RhbmNlT2YoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZQogICAgIHJldHVybiBkc3Q7CiB9CiAKK1JlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SW5zdGFuY2VPZkN1c3RvbShSZWdpc3RlcklE
KiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0
ZXJJRCogaGFzSW5zdGFuY2VTeW1ib2wpCit7CisgICAgZW1pdE9wY29kZShvcF9pbnN0YW5jZW9m
X2N1c3RvbSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgoKSk7CisgICAg
aW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHZhbHVlLT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoY29uc3RydWN0b3ItPmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVu
ZChoYXNJbnN0YW5jZVN5bWJvbC0+aW5kZXgoKSk7CisgICAgcmV0dXJuIGRzdDsKK30KKwogUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRCeUlkKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHkpCiB7CiAgICAgbV9j
b2RlQmxvY2stPmFkZFByb3BlcnR5QWNjZXNzSW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb25zKCkuc2l6
ZSgpKTsKQEAgLTM3MjMsNiArMzczMiwxNCBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdElzT2JqZWN0KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKQogICAgIHJl
dHVybiBkc3Q7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SXNGdW5j
dGlvbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykKK3sKKyAgICBlbWl0T3Bjb2Rl
KG9wX2lzX2Z1bmN0aW9uKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgp
KTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc3JjLT5pbmRleCgpKTsKKyAgICByZXR1cm4g
ZHN0OworfQorCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdElzVW5kZWZpbmVk
KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKQogewogICAgIGVtaXRPcGNvZGUob3Bf
aXNfdW5kZWZpbmVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCBkMTkxZjk5ZjVmMDlhN2NlNDY2OTdhN2I5
MDQ5MGRkOTQ5YTQ3YWJhLi45NDRlODU4MDhmYTVlNjI0ZmJhOWI0Njk1MjhiMzQ0ZDVkODliZjM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCkBAIC01MTUsOCArNTE1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRJbmMoUmVnaXN0ZXJJRCogc3JjRHN0KTsKICAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdERlYyhSZWdpc3RlcklEKiBzcmNEc3QpOwogCi0gICAgICAgIHZvaWQgZW1p
dENoZWNrSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVn
aXN0ZXJJRCogYmFzZSwgTGFiZWwqIHRhcmdldCk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRD
aGVja0hhc0luc3RhbmNlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogY29uc3RydWN0b3Is
IFJlZ2lzdGVySUQqIGhhc0luc3RhbmNlU3ltYm9sKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dEluc3RhbmNlT2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJ
RCogYmFzZVByb3RvdHlwZSk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbnN0YW5jZU9mQ3Vz
dG9tKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQqIGNvbnN0
cnVjdG9yLCBSZWdpc3RlcklEKiBoYXNJbnN0YW5jZVN5bWJvbCk7CiAgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRUeXBlT2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJu
IGVtaXRVbmFyeU9wKG9wX3R5cGVvZiwgZHN0LCBzcmMpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRJbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklE
KiBiYXNlKSB7IHJldHVybiBlbWl0QmluYXJ5T3Aob3BfaW4sIGRzdCwgcHJvcGVydHksIGJhc2Us
IE9wZXJhbmRUeXBlcygpKTsgfQogCkBAIC01OTMsNiArNTk0LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRUb0luZGV4U3RyaW5nKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogaW5kZXgpOwogCiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJc09iamVjdChS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYyk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRJc0Z1bmN0aW9uKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKICAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdElzVW5kZWZpbmVkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCog
c3JjKTsKIAogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SXRlcmF0b3JOZXh0KFJlZ2lzdGVySUQq
IGRzdCwgUmVnaXN0ZXJJRCogaXRlcmF0b3IsIGNvbnN0IFRocm93YWJsZUV4cHJlc3Npb25EYXRh
KiBub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcAppbmRleCA4NzNmNGFiNDQyNDA3MGRjN2ZkODY2MzFhYzQ1YTE0ZGMxNWUx
ODJmLi40YTk3ZGExNmIyYTQyMGU5NDZkNmY2YjFhMTlhMmY1YWEzYzNhZjdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBA
IC0xNjI4LDIyICsxNjI4LDkwIEBAIFJlZ2lzdGVySUQqIFRocm93YWJsZUJpbmFyeU9wTm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlCiAKIFJlZ2lzdGVy
SUQqIEluc3RhbmNlT2ZOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVy
YXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewotICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzcmMxID0g
Z2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fZXhwcjEsIG1fcmlnaHRIYXNBc3Np
Z25tZW50cywgbV9leHByMi0+aXNQdXJlKGdlbmVyYXRvcikpOwotICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiBzcmMyID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcjIpOworICAgIFJlZlB0cjxSZWdp
c3RlcklEPiBoYXNJbnN0YW5jZVN5bWJvbCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKyAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gaXNPYmplY3QgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7
CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGlzQ3VzdG9tID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFy
eSgpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm90b3R5cGUgPSBnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGRzdFJlZyA9IGdlbmVyYXRvci5maW5h
bERlc3RpbmF0aW9uKGRzdCwgc3JjMS5nZXQoKSk7Ci0gICAgUmVmUHRyPExhYmVsPiB0YXJnZXQg
PSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUgPSBn
ZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9leHByMSwgbV9yaWdodEhhc0Fzc2ln
bm1lbnRzLCBtX2V4cHIyLT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IGNvbnN0cnVjdG9yID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcjIpOworICAgIFJlZlB0
cjxSZWdpc3RlcklEPiBkc3RSZWcgPSBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHZh
bHVlLmdldCgpKTsKKyAgICBSZWZQdHI8TGFiZWw+IGN1c3RvbSA9IGdlbmVyYXRvci5uZXdMYWJl
bCgpOworICAgIFJlZlB0cjxMYWJlbD4gZG9uZSA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAg
IFJlZlB0cjxMYWJlbD4gdHlwZUVycm9yID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CiAKICAgICBn
ZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RF
bmQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRDaGVja0hhc0luc3RhbmNlKGRzdFJlZy5nZXQoKSwg
c3JjMS5nZXQoKSwgc3JjMi5nZXQoKSwgdGFyZ2V0LmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1p
dElzT2JqZWN0KGlzT2JqZWN0LmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSk7CisgICAgZ2VuZXJh
dG9yLmVtaXRKdW1wSWZGYWxzZShpc09iamVjdC5nZXQoKSwgdHlwZUVycm9yLmdldCgpKTsKIAog
ICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBk
aXZvdEVuZCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQocHJvdG90eXBlLmdldCgpLCBz
cmMyLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlKTsKKyAg
ICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoaGFzSW5zdGFuY2VTeW1ib2wuZ2V0KCksIGNvbnN0cnVj
dG9yLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+aGFzSW5zdGFuY2VTeW1i
b2wpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0
YXJ0KCksIGRpdm90RW5kKCkpOwotICAgIFJlZ2lzdGVySUQqIHJlc3VsdCA9IGdlbmVyYXRvci5l
bWl0SW5zdGFuY2VPZihkc3RSZWcuZ2V0KCksIHNyYzEuZ2V0KCksIHByb3RvdHlwZS5nZXQoKSk7
Ci0gICAgZ2VuZXJhdG9yLmVtaXRMYWJlbCh0YXJnZXQuZ2V0KCkpOwotICAgIHJldHVybiByZXN1
bHQ7CisgICAgZ2VuZXJhdG9yLmVtaXRDaGVja0hhc0luc3RhbmNlKGlzQ3VzdG9tLmdldCgpLCBj
b25zdHJ1Y3Rvci5nZXQoKSwgaGFzSW5zdGFuY2VTeW1ib2wuZ2V0KCkpOworCisgICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkp
OworICAgIGdlbmVyYXRvci5lbWl0SnVtcElmVHJ1ZShpc0N1c3RvbS5nZXQoKSwgY3VzdG9tLmdl
dCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RT
dGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQocHJvdG90eXBl
LmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSwgZ2VuZXJhdG9yLnZtKCktPnByb3BlcnR5TmFtZXMt
PnByb3RvdHlwZSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCks
IGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRJbnN0YW5jZU9m
KGRzdFJlZy5nZXQoKSwgdmFsdWUuZ2V0KCksIHByb3RvdHlwZS5nZXQoKSk7CisKKyAgICBnZW5l
cmF0b3IuZW1pdEp1bXAoZG9uZS5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHR5
cGVFcnJvci5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRUaHJvd1R5cGVFcnJvcigiUmlnaHQg
aGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdCIpOworCisgICAgZ2VuZXJh
dG9yLmVtaXRMYWJlbChjdXN0b20uZ2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNz
aW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGdlbmVyYXRv
ci5lbWl0SW5zdGFuY2VPZkN1c3RvbShkc3RSZWcuZ2V0KCksIHZhbHVlLmdldCgpLCBjb25zdHJ1
Y3Rvci5nZXQoKSwgaGFzSW5zdGFuY2VTeW1ib2wuZ2V0KCkpOworCisvLyAgICBDYWxsQXJndW1l
bnRzIGNhbGxBcmd1bWVudHMoZ2VuZXJhdG9yLCBudWxscHRyLCAxKTsKKy8vICAgIGdlbmVyYXRv
ci5lbWl0TW92ZShjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBjb25zdHJ1Y3Rvci5nZXQo
KSk7CisvLyAgICBnZW5lcmF0b3IuZW1pdE1vdmUoY2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lz
dGVyKDApLCB2YWx1ZS5nZXQoKSk7CisvLworLy8gICAgLy8gVE9ETzogYWRkIFRvQm9vbGVhbiBo
ZXJlLgorLy8KKy8vICAgIGdlbmVyYXRvci5lbWl0Q2FsbChkc3RSZWcuZ2V0KCksIGhhc0luc3Rh
bmNlU3ltYm9sLmdldCgpLCBOb0V4cGVjdGVkRnVuY3Rpb24sIGNhbGxBcmd1bWVudHMsIGRpdm90
KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisKKy8vICAgIGdlbmVyYXRvci5lbWl0SXNP
YmplY3QoY29uZGl0aW9uLmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSk7CisvLyAgICBnZW5lcmF0
b3IuZW1pdEp1bXBJZkZhbHNlKGNvbmRpdGlvbi5nZXQoKSwgdHlwZUVycm9yLmdldCgpKTsKKy8v
CisvLyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQo
KSwgZGl2b3RFbmQoKSk7CisvLyAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoaGFzSW5zdGFuY2VT
eW1ib2wuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlO
YW1lcy0+aGFzSW5zdGFuY2VTeW1ib2wpOworLy8KKy8vICAgIC8vVE9ETzogSSdtIG5vdCBzdXJl
IGlmIGFsbCB0aGlzIHNob3VsZCBiZSBvbmUgb3BfY29kZQorLy8gICAgLy8gSXMgdW5kZWZpbmVk
IG9yIG51bGwuCisvLworLy8gICAgZ2VuZXJhdG9yLmVtaXRMb2FkKHByb3RvdHlwZS5nZXQoKSwg
anNVbmRlZmluZWQoKSk7CisvLyAgICBnZW5lcmF0b3IuZW1pdEVxdWFsaXR5T3Aob3Bfc3RyaWN0
ZXEsIGNvbmRpdGlvbi5nZXQoKSwgaGFzSW5zdGFuY2VTeW1ib2wuZ2V0KCksIHByb3RvdHlwZS5n
ZXQoKSk7CisvLyAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZlRydWUoY29uZGl0aW9uLmdldCgpLCB1
bmRlZmluZWRPck51bGwuZ2V0KCkpOworLy8KKy8vICAgIGdlbmVyYXRvci5lbWl0TG9hZChwcm90
b3R5cGUuZ2V0KCksIGpzTnVsbCgpKTsKKy8vICAgIGdlbmVyYXRvci5lbWl0RXF1YWxpdHlPcChv
cF9zdHJpY3RlcSwgY29uZGl0aW9uLmdldCgpLCBoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSwgcHJv
dG90eXBlLmdldCgpKTsKKy8vICAgIGdlbmVyYXRvci5lbWl0SnVtcElmVHJ1ZShjb25kaXRpb24u
Z2V0KCksIHVuZGVmaW5lZE9yTnVsbC5nZXQoKSk7CisvLworLy8gICAgLy8gVHlwZUVycm9yIGlm
IG5vdCBvYmplY3QuCisvLyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHR5cGVFcnJvci5nZXQoKSk7
CisvLyAgICBnZW5lcmF0b3IuZW1pdFRocm93VHlwZUVycm9yKCJSaWdodCBoYW5kIHNpZGUgb2Yg
aW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0Iik7CisvLworLy8gICAgLy8gU3ltYm9sLmhhc0lu
c3RhbmNlID09ICh1bmRlZmluZWQgfHwgbnVsbCkuCisvLworLy8gICAgZ2VuZXJhdG9yLmVtaXRM
YWJlbCh1bmRlZmluZWRPck51bGwuZ2V0KCkpOworLy8KKy8vICAgIGdlbmVyYXRvci5lbWl0RXhw
cmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKy8vICAgIGdl
bmVyYXRvci5lbWl0Q2hlY2tIYXNJbnN0YW5jZShkc3RSZWcuZ2V0KCksIHZhbHVlLmdldCgpLCBj
b25zdHJ1Y3Rvci5nZXQoKSwgZG9uZS5nZXQoKSk7CisvLworLy8gICAgZ2VuZXJhdG9yLmVtaXRF
eHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworLy8gICAg
Z2VuZXJhdG9yLmVtaXRHZXRCeUlkKHByb3RvdHlwZS5nZXQoKSwgY29uc3RydWN0b3IuZ2V0KCks
IGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUpOworLy8gICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkp
OworLy8gICAgZ2VuZXJhdG9yLmVtaXRJbnN0YW5jZU9mKGRzdFJlZy5nZXQoKSwgdmFsdWUuZ2V0
KCksIHByb3RvdHlwZS5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGRvbmUuZ2V0
KCkpOworCisgICAgcmV0dXJuIGRzdFJlZy5nZXQoKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIExvZ2ljYWxPcE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oCmluZGV4IGE0ZTY5MjM4ZWFjYzc0M2M0ZmFiZWM5NTdhNGI0ZjY4
ODYxMjBmODQuLjNhYTZhMzI3ZGZiZjI5MjkxZGZjMWM1MDBiN2YxYWQxMTc1NDgxODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmgKQEAgLTI0NDUsMTQgKzI0NDUsMTkgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJl
ckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIENoZWNrSGFzSW5z
dGFuY2U6Ci0gICAgICAgIC8vIFNhZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZhY3QgdGhh
dCB3ZSd2ZSBkb25lIENoZWNrSGFzSW5zdGFuY2UKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRU
eXBlKFNwZWNCb29sZWFuKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNl
IEluc3RhbmNlT2Y6CiAgICAgICAgIC8vIEFnYWluLCBzYWRseSwgd2UgZG9uJ3QgcHJvcGFnYXRl
IHRoZSBmYWN0IHRoYXQgd2UndmUgZG9uZSBJbnN0YW5jZU9mCisgICAgICAgICAgICBmb3JOb2Rl
KG5vZGUpLnNldFR5cGUoU3BlY0Jvb2xlYW4pOworICAgICAgICBicmVhazsKKworICAgIGNhc2Ug
SW5zdGFuY2VPZkN1c3RvbToKKyAgICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgY2xvYmJlckxpbWl0KTsKICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNC
b29sZWFuKTsKICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAKKyAgICAgICAgCiAgICAgY2Fz
ZSBQaGk6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fZ3JhcGgubV9mb3JtID09IFNTQSk7CiAg
ICAgICAgIC8vIFRoZSBzdGF0ZSBvZiB0aGlzIG5vZGUgd291bGQgaGF2ZSBhbHJlYWR5IGJlZW4g
ZGVjaWRlZCwgYnV0IGl0IG1heSBoYXZlIGJlY29tZSBhCkBAIC0yNTA2LDYgKzI1MTEsNyBAQCBi
b29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgY2Fz
ZSBDaGVja1RpZXJVcEluTG9vcDoKICAgICBjYXNlIENoZWNrVGllclVwQXRSZXR1cm46CisgICAg
Y2FzZSBDaGVja1R5cGVJbmZvOgogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ2hlY2s6IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5k
ZXggN2FlYzU5MDliNjA2YTk4ZDY1ZDYzMDY5MzY1NjVjMjFlZTlhNzE5OC4uOTA4ZTkxYWIyZDVk
MWMzZDM0YTVkM2JiZjY0MjVjNDI4NGMzNTllYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTIyNjcsNiArMjI2NywyNiBAQCBib29s
IEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKGludCByZXN1bHRPcGVyYW5kLCBJ
bnRyaW5zaWMgaW50cmluc2ljLAogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihyZXN1
bHRPcGVyYW5kKSwgZ2V0KG9wZXJhbmQpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQor
CisgICAgY2FzZSBJbnN0YW5jZU9mSW50cmluc2ljOiB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID09IDMpOworICAgICAgICBpbnNlcnRDaGVja3Mo
KTsKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHZhbHVlT3BlcmFuZCA9IHZpcnR1YWxSZWdpc3Rl
ckZvckFyZ3VtZW50KDEsIHJlZ2lzdGVyT2Zmc2V0KTsKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVy
IHByb3RvT3BlcmFuZCA9IHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50KDIsIHJlZ2lzdGVyT2Zm
c2V0KTsKKyAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQodmFsdWVPcGVyYW5kKTsKKyAgICAgICAg
Tm9kZSogcHJvdG8gPSBnZXQocHJvdG9PcGVyYW5kKTsKKyAgICAgICAgc2V0KFZpcnR1YWxSZWdp
c3RlcihyZXN1bHRPcGVyYW5kKSwgYWRkVG9HcmFwaChJbnN0YW5jZU9mLCB2YWx1ZSwgcHJvdG8p
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgY2FzZSBJc0JvdW5kRnVuY3Rp
b25JbnRyaW5zaWM6IHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMgPT0gMik7CisgICAgICAgIGluc2VydENoZWNrcygpOworLy8gICAgICAgIFZpcnR1
YWxSZWdpc3RlciBjb25zdHJ1Y3Rvck9wZXJhbmQgPSB2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVu
dCgxLCByZWdpc3Rlck9mZnNldCk7CisvLyAgICAgICAgTm9kZSogY29uc3RydWN0b3IgPSBnZXQo
Y29uc3RydWN0b3JPcGVyYW5kKTsKKyAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRP
cGVyYW5kKSwganNDb25zdGFudChqc0Jvb2xlYW4oZmFsc2UpKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KICAgICAgICAgCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMzE5Myw3ICszMjEzLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1
bnNpZ25lZCBsaW1pdCkKICAgICAgICAgT3Bjb2RlSUQgb3Bjb2RlSUQgPSBpbnRlcnByZXRlci0+
Z2V0T3Bjb2RlSUQoY3VycmVudEluc3RydWN0aW9uLT51Lm9wY29kZSk7CiAgICAgICAgIAogICAg
ICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZURGR0J5dGVDb2RlUGFyc2luZygpKQotICAgICAgICAg
ICAgZGF0YUxvZygiICAgIHBhcnNpbmcgIiwgY3VycmVudENvZGVPcmlnaW4oKSwgIlxuIik7Cisg
ICAgICAgICAgICBkYXRhTG9nKCIgICAgcGFyc2luZyAiLCBjdXJyZW50Q29kZU9yaWdpbigpLCAi
LCAiLCBvcGNvZGVOYW1lc1tvcGNvZGVJRF0sICJcbiIpOwogICAgICAgICAKICAgICAgICAgaWYg
KG1fZ3JhcGguY29tcGlsYXRpb24oKSkgewogICAgICAgICAgICAgYWRkVG9HcmFwaChDb3VudEV4
ZWN1dGlvbiwgT3BJbmZvKG1fZ3JhcGguY29tcGlsYXRpb24oKS0+ZXhlY3V0aW9uQ291bnRlckZv
cigKQEAgLTM0NjgsOSArMzQ4OCwxMyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2Nr
KHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY2hlY2tfdGR6KTsK
ICAgICAgICAgfQogCi0gICAgICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgotICAgICAg
ICAgICAgYWRkVG9HcmFwaChDaGVja0hhc0luc3RhbmNlLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7CisgICAgICAgIGNhc2Ugb3BfY2hlY2tf
aGFzX2luc3RhbmNlOiB7CisgICAgICAgICAgICBOb2RlKiBjb25zdHJ1Y3RvciA9IGdldChWaXJ0
dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAgICAgICAg
ICAgTm9kZSogaGFzSW5zdGFuY2VTeW1ib2wgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKworICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFwaChDaGVja0hh
c0luc3RhbmNlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VTeW1ib2wpKTsKICAgICAgICAgICAg
IE5FWFRfT1BDT0RFKG9wX2NoZWNrX2hhc19pbnN0YW5jZSk7CisgICAgICAgIH0KIAogICAgICAg
ICBjYXNlIG9wX2luc3RhbmNlb2Y6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CkBAIC0zNDc4
LDcgKzM1MDIsMTUgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBs
aW1pdCkKICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoSW5zdGFuY2VPZiwgdmFsdWUsIHByb3RvdHlwZSkp
OwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZik7CiAgICAgICAgIH0KLSAg
ICAgICAgICAgIAorCisgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZl9jdXN0b206IHsKKyAgICAg
ICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBjb25zdHJ1Y3RvciA9IGdldChW
aXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworICAgICAg
ICAgICAgTm9kZSogaGFzSW5zdGFuY2VTeW1ib2wgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIHNldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoSW5zdGFu
Y2VPZkN1c3RvbSwgdmFsdWUsIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVN5bWJvbCkpOworICAg
ICAgICAgICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZl9jdXN0b20pOworICAgICAgICB9CisK
ICAgICAgICAgY2FzZSBvcF9pc191bmRlZmluZWQ6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVl
ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7
CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKElzVW5kZWZpbmVkLCB2YWx1ZSkpOwpAQCAtNDY4MSw3ICs0
NzEzLDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6bGlua0Jsb2NrKEJhc2ljQmxvY2sqIGJsb2Nr
LCBWZWN0b3I8QmFzaWNCbG9jayo+JiBwb3NzaWJsZVQKICAgICAgICAgZGF0YS0+bm90VGFrZW4u
YmxvY2sgPSBibG9ja0ZvckJ5dGVjb2RlT2Zmc2V0KHBvc3NpYmxlVGFyZ2V0cywgZGF0YS0+bm90
VGFrZW5CeXRlY29kZUluZGV4KCkpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgICAgIAor
CiAgICAgY2FzZSBTd2l0Y2g6IHsKICAgICAgICAgU3dpdGNoRGF0YSogZGF0YSA9IG5vZGUtPnN3
aXRjaERhdGEoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbm9kZS0+c3dpdGNoRGF0YSgp
LT5jYXNlcy5zaXplKCk7IGktLTspCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcAppbmRleCA1YmRkOWY3NDY3NjU0Y2Y2
OWRjMzQ2MzdlMmNmZjEyOGJiNGI5ZTcyLi4yZmQ0ZDE5NTBmYjYwYjgzYTczNTEyYzVjYzg2Mzg3
YThhMGVlNjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NGR1Np
bXBsaWZpY2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q0ZHU2ltcGxpZmljYXRpb25QaGFzZS5jcHAKQEAgLTg2LDcgKzg2LDggQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI2Nzc4CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAKKworCiAgICAgICAgICAgICAgICAgY2FzZSBCcmFuY2g6IHsKICAg
ICAgICAgICAgICAgICAgICAgLy8gQnJhbmNoIG9uIGNvbnN0YW50IC0+IGpldHRpc29uIHRoZSBu
b3QtdGFrZW4gYmxvY2sgYW5kIG1lcmdlLgogICAgICAgICAgICAgICAgICAgICBpZiAoaXNLbm93
bkRpcmVjdGlvbihibG9jay0+Y2ZhQnJhbmNoRGlyZWN0aW9uKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGNkYTE0YzM5OTc1ZmQ2Yzgw
ZTZmYjg5MmE5Y2FlYTNiYmQ5ZGVkMmIuLmNkYzlkZmEyNWY2ZTkyNjJkYWUxZWI5NDVkZWEwNDMw
NTgzNDRiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGll
cy5jcHAKQEAgLTEzMCw2ICsxMzAsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVs
KE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNh
c2Ugb3BfbW92OgogICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgogICAgIGNhc2Ugb3Bf
aW5zdGFuY2VvZjoKKyAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOgogICAgIGNhc2Ugb3Bf
aXNfdW5kZWZpbmVkOgogICAgIGNhc2Ugb3BfaXNfYm9vbGVhbjoKICAgICBjYXNlIG9wX2lzX251
bWJlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggNmZm
NDQ1NmZiOWNkNTVhYjM2NWNlODhlZmI2YTQyMWRmN2M1ZGEyZi4uNWIxZjJhMzdkNDY3MDczZGEz
OGUwYjU0ZGQyZDhiOTI5ZTQxZTlkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgKQEAgLTcxMCw4ICs3MTAsMTMgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUK
ICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICByZXR1cm47CiAKKyAg
ICBjYXNlIENoZWNrVHlwZUluZm86CisgICAgICAgIHJlYWQoSlNDZWxsX3R5cGVJbmZvVHlwZSk7
CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQ2hlY2tUeXBlSW5mb0xvYywgSlNDZWxsX3R5cGVJ
bmZvRmxhZ3MsIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOworICAgICAgICByZXR1
cm47CisKICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6Ci0gICAgICAgIHJlYWQoSlNDZWxsX3R5
cGVJbmZvRmxhZ3MpOworICAgICAgICByZWFkKEpTQ2VsbF90eXBlSW5mb1R5cGUpOwogICAgICAg
ICBkZWYoSGVhcExvY2F0aW9uKENoZWNrSGFzSW5zdGFuY2VMb2MsIEpTQ2VsbF90eXBlSW5mb0Zs
YWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwog
CkBAIC03MjAsNiArNzI1LDExIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRl
ZihIZWFwTG9jYXRpb24oSW5zdGFuY2VPZkxvYywgSlNDZWxsX3N0cnVjdHVyZUlELCBub2RlLT5j
aGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVy
bjsKIAorICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKKyAgICAgICAgcmVhZChXb3JsZCk7Cisg
ICAgICAgIHdyaXRlKEhlYXApOworICAgICAgICByZXR1cm47CisKICAgICBjYXNlIFB1dFN0cnVj
dHVyZToKICAgICAgICAgd3JpdGUoSlNDZWxsX3N0cnVjdHVyZUlEKTsKICAgICAgICAgd3JpdGUo
SlNDZWxsX3R5cGVJbmZvVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKaW5kZXggMGU5ZTFkOGJjYjQ5MjgxYTE4ZWJhMGY1YWE1YzhjMjJmMDYwODY1Yy4uNWE1MzEw
ZjcwNzdmMzQyMTA2MDRjNzRhODNhY2EwN2UyNmE1MzRhOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTQzLDYgKzE0Myw3IEBAIGJvb2wgZG9lc0dDKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKICAgICBj
YXNlIENoZWNrSGFzSW5zdGFuY2U6CiAgICAgY2FzZSBJbnN0YW5jZU9mOgorICAgIGNhc2UgSW5z
dGFuY2VPZkN1c3RvbToKICAgICBjYXNlIElzVW5kZWZpbmVkOgogICAgIGNhc2UgSXNCb29sZWFu
OgogICAgIGNhc2UgSXNOdW1iZXI6CkBAIC0xODAsNiArMTgxLDcgQEAgYm9vbCBkb2VzR0MoR3Jh
cGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczoKICAgICBjYXNl
IENvbnN0YW50U3RvcmFnZVBvaW50ZXI6CiAgICAgY2FzZSBDaGVjazoKKyAgICBjYXNlIENoZWNr
VHlwZUluZm86CiAgICAgY2FzZSBNdWx0aUdldEJ5T2Zmc2V0OgogICAgIGNhc2UgVmFsdWVSZXA6
CiAgICAgY2FzZSBEb3VibGVSZXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAppbmRleCBjNGYzNmY5Nzk4ODI1ZGJkYmFlNjU2NjRjYmRkMzhhNTRjMDM1YWNh
Li42NDNiNjkyODMzNThkOGVjZDI5YTk0NzM4YmU4MWE5YTc2YzVhN2QxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTEwODAsMTAgKzEwODAsMjgg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8RnVuY3Rpb25Vc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDaGVj
a0hhc0luc3RhbmNlOiB7CisKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDIoKS5ub2RlKCkt
PmlzQ2VsbENvbnN0YW50KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQyKCku
bm9kZSgpLT5hc0NlbGwoKSAhPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4u
c2VtYW50aWMpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpKSB7CisK
KyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC5jb252ZXJ0VG9Db25zdGFudChub2RlLCBqc0Jv
b2xlYW4odHJ1ZSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYoIW1fZ3JhcGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBC
YWRUeXBlSW5mbykpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSGVyZSB3ZSBvcHRpbWlzdGlj
YWxseSBhc3N1bWUgdGhhdCB3ZSB3aWxsIG5vdCBzZWUgYW4gYm91bmQvQy1BUEkgZnVuY3Rpb24g
aGVyZS4KKyAgICAgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2lu
ZGV4SW5CbG9jaywgU3BlY05vbmUsIENoZWNrVHlwZUluZm8sIG5vZGUtPm9yaWdpbiwgT3BJbmZv
KEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCBFZGdlKG5vZGUtPmNoaWxkMSgpLm5vZGUo
KSwgQ2VsbFVzZSkpOworICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmNvbnZlcnRUb0NvbnN0
YW50KG5vZGUsIGpzQm9vbGVhbihmYWxzZSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZpeEVkZ2U8
Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
ICAgICAgICAgICAgIAogICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNl
IENoZWNrQ2VsbDoKLSAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgICAgICBjYXNl
IENyZWF0ZVRoaXM6CiAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAgICAgICBjYXNlIEdl
dEJ1dHRlcmZseVJlYWRPbmx5OiB7CkBAIC0xMTQ0LDcgKzExNjIsMTEgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2UgSW5zdGFuY2VP
ZkN1c3RvbToKKyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBJbjogewogICAgICAgICAgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBhdCBzb21lIHBvaW50IGhhdmUgYXJyYXkgcHJvZmlsaW5nIG9uIG9w
X2luLCBpbiB3aGljaAogICAgICAgICAgICAgLy8gY2FzZSB3ZSB3b3VsZCBiZSBhYmxlIHRvIHR1
cm4gdGhpcyBpbnRvIGEga2luZCBvZiBHZXRCeVZhbC4KQEAgLTEzODMsNiArMTQwNSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAgICAgICAgIGNhc2UgVmFySW5qZWN0
aW9uV2F0Y2hwb2ludDoKICAgICAgICAgY2FzZSBDYWxsOgorICAgICAgICBjYXNlIENoZWNrVHlw
ZUluZm86CiAgICAgICAgIGNhc2UgVGFpbENhbGxJbmxpbmVkQ2FsbGVyOgogICAgICAgICBjYXNl
IENvbnN0cnVjdDoKICAgICAgICAgY2FzZSBDYWxsVmFyYXJnczoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAppbmRleCA2OTIzNjU2Mzk2MTFmZWFmNzNm
NGU4NjE1OGEwMDFiMzZkMTM1MjdiLi40MTlhMzQ0ZjMyOTlmZGU1ODRiZTFmNzExMTRlYjI5NGIz
YjYzZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2Nh
dGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24u
Y3BwCkBAIC05NSw3ICs5NSwxMSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91
dCwgTG9jYXRpb25LaW5kIGtpbmQpCiAgICAgY2FzZSBCdXR0ZXJmbHlSZWFkT25seUxvYzoKICAg
ICAgICAgb3V0LnByaW50KCJCdXR0ZXJmbHlSZWFkT25seUxvYyIpOwogICAgICAgICByZXR1cm47
Ci0gICAgICAgIAorCisgICAgY2FzZSBDaGVja1R5cGVJbmZvTG9jOgorICAgICAgICBvdXQucHJp
bnQoIkNoZWNrVHlwZUluZm9Mb2MiKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBDaGVj
a0hhc0luc3RhbmNlTG9jOgogICAgICAgICBvdXQucHJpbnQoIkNoZWNrSGFzSW5zdGFuY2VMb2Mi
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdIZWFwTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExv
Y2F0aW9uLmgKaW5kZXggNDk1ZDMwMDNjZWE2YzFjNTdjNTAyZGU0YzFlZjRlMTE1YWJiZTBiMC4u
ZTc0MWJhZDllNTlmZmU1NWY4ZmJkZWZiOWY5YzE4NzgyMTdhNzE2YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCkBAIC00MCw2ICs0MCw3IEBAIGVudW0g
TG9jYXRpb25LaW5kIHsKICAgICBBcnJheUxlbmd0aExvYywKICAgICBCdXR0ZXJmbHlMb2MsCiAg
ICAgQnV0dGVyZmx5UmVhZE9ubHlMb2MsCisgICAgQ2hlY2tUeXBlSW5mb0xvYywKICAgICBDaGVj
a0hhc0luc3RhbmNlTG9jLAogICAgIENsb3N1cmVWYXJpYWJsZUxvYywKICAgICBEaXJlY3RBcmd1
bWVudHNMb2MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IGVlZGViODhjMjg5
MWVjN2I2MTYyMzRlMzZhZDA2YzIyNTFkMDdmMGYuLmFjNGU5NzA3MGI4YzdiOWUzMWVhNTEwNDcw
MWU2NjliZTZkNDYxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xNDA3
LDYgKzE0MDcsMTcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxVbmlxdWVkU3RyaW5nSW1wbCo+KG1fb3BJbmZvKTsKICAgICB9CiAKKyAgICBib29sIGhh
c1R5cGVJbmZvT3BlcmFuZCgpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDaGVja1R5
cGVJbmZvOworICAgIH0KKworICAgIHVuc2lnbmVkIHR5cGVJbmZvT3BlcmFuZCgpCisgICAgewor
ICAgICAgICBBU1NFUlQoaGFzVHlwZUluZm9PcGVyYW5kKCkgJiYgbV9vcEluZm8gPD0gVUNIQVJf
TUFYKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29wSW5mbyk7Cisg
ICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
b3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IGMwNDk4
YWVjMjkyNjE3OWQyMTRiMjEyMTJiZGYzNDk1NzU5MGJhMmIuLmFjNTg4YTIyZjBhZDE3NTYwZjcy
MWExMWM1NDE2MzBmOTNhODEwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAgICAgbWFjcm8oQ2hlY2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8o
Q2hlY2tJbkJvdW5kcywgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSWRlbnQs
IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja1R5cGVJbmZvLCBOb2RlTXVzdEdl
bmVyYXRlKSAvKiBUYWtlcyBhbiBPcEluZm8gd2l0aCB0aGUgZmxhZ3MgeW91IHdhbnQgdG8gdGVz
dCBhcmUgc2V0ICovXAogICAgIFwKICAgICAvKiBPcHRpbWl6YXRpb25zIGZvciBhcnJheSBtdXRh
dGlvbi4gKi9cCiAgICAgbWFjcm8oQXJyYXlQdXNoLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdl
bmVyYXRlKSBcCkBAIC0yNzYsOCArMjc3LDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBE
RkcgewogICAgIG1hY3JvKEJyZWFrcG9pbnQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNy
byhQcm9maWxlV2lsbENhbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhQcm9maWxl
RGlkQ2FsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1hY3JvKENoZWNrSGFzSW5zdGFuY2Us
IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja0hhc0luc3RhbmNlLCBOb2RlTXVz
dEdlbmVyYXRlIHwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJbnN0YW5jZU9mLCBO
b2RlUmVzdWx0Qm9vbGVhbikgXAorICAgIG1hY3JvKEluc3RhbmNlT2ZDdXN0b20sIE5vZGVNdXN0
R2VuZXJhdGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzVW5kZWZpbmVkLCBO
b2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzQm9vbGVhbiwgTm9kZVJlc3VsdEJvb2xl
YW4pIFwKICAgICBtYWNybyhJc051bWJlciwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAKaW5kZXggZTY1ZjZlNGYzOGU5OWQ3MjEyMzUwZmJjNTVmYTAwMDZlMDQxODdj
YS4uYWZjMDk4MDhiOGExYWQ0NjgxMTk2MjE2ZjAyMDJjMjgxZTIyMzBhNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAKQEAgLTM3MSw3ICszNzEsOSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENv
bXBhcmVHcmVhdGVyRXE6CiAgICAgICAgIGNhc2UgQ29tcGFyZUVxOgogICAgICAgICBjYXNlIENv
bXBhcmVTdHJpY3RFcToKKyAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgICAgICBj
YXNlIEluc3RhbmNlT2Y6CisgICAgICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKICAgICAgICAg
Y2FzZSBJc1VuZGVmaW5lZDoKICAgICAgICAgY2FzZSBJc0Jvb2xlYW46CiAgICAgICAgIGNhc2Ug
SXNOdW1iZXI6CkBAIC01MzgsNiArNTQwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3Vi
bGVBc0ludDMyOgogICAgICAgICBjYXNlIEdldExvY2FsVW5saW5rZWQ6CiAgICAgICAgIGNhc2Ug
Q2hlY2tBcnJheToKKyAgICAgICAgY2FzZSBDaGVja1R5cGVJbmZvOgogICAgICAgICBjYXNlIEFy
cmF5aWZ5OgogICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2Ug
Q2hlY2tUaWVyVXBJbkxvb3A6CkBAIC02NTMsNyArNjU2LDYgQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICAgICAg
Y2FzZSBQcm9maWxlQ29udHJvbEZsb3c6Ci0gICAgICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToK
ICAgICAgICAgY2FzZSBUaHJvd1JlZmVyZW5jZUVycm9yOgogICAgICAgICBjYXNlIEZvcmNlT1NS
RXhpdDoKICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggNDJhYmFkMDIyYzZjYTQ1YmU2Mzg3MDk3YWNk
YWM2OTI3NDY2NTdmMy4uMmQ5N2Q0ODM0MGE3YWM0ODkwMmNmZWJkNTI0YmM2M2QxYzgxYjgyNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTI0
MSw4ICsyNDEsMTAgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0
ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAg
ICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKKyAgICBj
YXNlIENoZWNrVHlwZUluZm86CiAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgIGNhc2Ug
SW5zdGFuY2VPZjoKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAgY2FzZSBJc1VuZGVm
aW5lZDoKICAgICBjYXNlIElzQm9vbGVhbjoKICAgICBjYXNlIElzTnVtYmVyOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBlNDRkNzJm
YzM2MmVmMTdiZWExZDZjY2MyM2Q4MDY0MTAwYjk3Mzg4Li5jNTkzMzUxMjEwODQ2N2U5NTAxZTA5
MTk0NTYzMjk0NWFmNGQyYzhjIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjczNCw2ICsyNzM0LDE3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yT2JqZWN0KE5vZGUqLCBHUFJSZWcgdmFsdWVSZWcs
IEdQUlJlZyBwCiAgICAgcHV0UmVzdWx0LmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm8oTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKworICAgIEdQUlJlZyBi
YXNlR1BSID0gYmFzZS5ncHIoKTsKKworICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZUluZm8s
IEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaFRlc3Q4KE1hY3JvQXNzZW1ibGVyOjpaZXJv
LCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NP
ZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIobm9kZS0+dHlwZUluZm9PcGVy
YW5kKCkpKSk7CisKKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUluc3RhbmNlT2YoTm9kZSogbm9kZSkKIHsKICAgICBpZiAobm9kZS0+Y2hpbGQx
KCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpIHsKQEAgLTI3ODIsNiArMjc5MywyOSBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZihOb2RlKiBub2RlKQogICAgIGJsZXNz
ZWRCb29sZWFuUmVzdWx0KHNjcmF0Y2hSZWcsIG5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlSW5zdGFuY2VPZkN1c3RvbShOb2RlKiBub2RlKQoreworICAgIC8vIFdlIGNv
dWxkIGRvIHNvbWV0aGluZyBzbWFydGVyIGhlcmUgYnV0IHRoaXMgY2FzZSBpcyBjdXJyZW50bHkg
c3VwZXIgcmFyZSBhbmQgdW5sZXNzCisgICAgLy8gU3ltYm9sLmhhc0luc3RhbmNlIGJlY29tZXMg
cG9wdWxhciB3aWxsIGxpa2VseSByZW1haW4gdGhhdCB3YXkuCisKKyAgICBKU1ZhbHVlT3BlcmFu
ZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
Y29uc3RydWN0b3IodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIEpTVmFsdWVPcGVyYW5kIGhh
c0luc3RhbmNlU3ltYm9sKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKyAgICBKU1ZhbHVlUmVnc1Rl
bXBvcmFyeSByZXN1bHQodGhpcyk7CisKKyAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MgPSB2YWx1
ZS5qc1ZhbHVlUmVncygpOworICAgIEdQUlJlZyBjb25zdHJ1Y3RvckdQUiA9IGNvbnN0cnVjdG9y
LmdwcigpOworICAgIEpTVmFsdWVSZWdzIGhhc0luc3RhbmNlUmVncyA9IGhhc0luc3RhbmNlU3lt
Ym9sLmpzVmFsdWVSZWdzKCk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5y
ZWdzKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZSA9IG1faml0Lmp1bXAo
KTsKKworICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAorICAgICAgICBzbG93UGF0aENhbGwoc2xv
d0Nhc2UsIHRoaXMsIG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIHJlc3VsdFJlZ3MsIHZhbHVl
UmVncywgY29uc3RydWN0b3JHUFIsIGhhc0luc3RhbmNlUmVncykpOworCisgICAgdW5ibGVzc2Vk
Qm9vbGVhblJlc3VsdChyZXN1bHQucmVncygpLmdwcigpLCBub2RlKTsKK30KKwogdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoQWRkKE5vZGUqIG5vZGUpCiB7CiAgICAgc3dpdGNoIChu
b2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuaAppbmRleCA0YjgzNWVmOGNjYjRjYjE0YTZmYzE1MDVlZWU1NGRjZjMw
NTBhNTI1Li5jYmIxMjNiYzIzMDMyMmViNzdmMWJmMGVkY2Y4NGJkMGI0M2Q2NDFjIDEwMDc1NQot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC03MjQsOSAr
NzI0LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIG5vblNwZWN1bGF0aXZlUGVlcGhvbGVTdHJpY3RF
cShOb2RlKiwgTm9kZSogYnJhbmNoTm9kZSwgYm9vbCBpbnZlcnQgPSBmYWxzZSk7CiAgICAgdm9p
ZCBub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlU3RyaWN0RXEoTm9kZSosIGJvb2wgaW52ZXJ0ID0g
ZmFsc2UpOwogICAgIGJvb2wgbm9uU3BlY3VsYXRpdmVTdHJpY3RFcShOb2RlKiwgYm9vbCBpbnZl
cnQgPSBmYWxzZSk7Ci0gICAgCisKICAgICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mRm9yT2JqZWN0
KE5vZGUqLCBHUFJSZWcgdmFsdWVSZWcsIEdQUlJlZyBwcm90b3R5cGVSZWcsIEdQUlJlZyBzY3Jh
dGNoQW5kUmVzdWx0UmVnLCBHUFJSZWcgc2NyYXRjaDJSZWcpOwogICAgIHZvaWQgY29tcGlsZUlu
c3RhbmNlT2YoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20oTm9kZSop
OwogICAgIAogICAgIHZvaWQgZW1pdENhbGwoTm9kZSopOwogICAgIApAQCAtMTQzNyw2ICsxNDM4
LDE1IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbiwgcmVzdWx0LnBheWxvYWRHUFIoKSwgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzIucGF5bG9h
ZEdQUigpKTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSkpKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyLCBHUFJSZWcgYXJnMykKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICAgICAgcmV0dXJuIGFwcGVu
ZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KKyAgICBKSVRDb21waWxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkogb3BlcmF0aW9uLCBHUFJS
ZWcgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBHUFJSZWcgYXJnMiwgSlNWYWx1ZVJlZ3MgYXJn
MykKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgcmVzdWx0
LCBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMiwgYXJnMy5wYXlsb2FkR1BSKCkpOworICAgIH0KICAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VDQyBvcGVy
YXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAg
ICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKQEAg
LTIxOTksNiArMjIwOSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29tcGlsZUdldEFycmF5TGVu
Z3RoKE5vZGUqKTsKIAorICAgIHZvaWQgY29tcGlsZUNoZWNrVHlwZUluZm8oTm9kZSopOwogICAg
IHZvaWQgY29tcGlsZUNoZWNrSWRlbnQoTm9kZSopOwogICAgIAogICAgIHZvaWQgY29tcGlsZVZh
bHVlUmVwKE5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCmluZGV4IDBjNWY5ZjQ4ZWYxOTk2MzcxM2Q5N2EzMzVjZjZmZTNhY2Ux
YzU1MzQuLjA5MTVlZWE2Mzg2MGYzMjE1NjVlZTgwNzZlMmMxYWU3MjU5MWQ0NjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAt
NDIwOCwxNyArNDIwOCw0NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5v
ZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgQ2hlY2tUeXBlSW5mbzogewor
ICAgICAgICBjb21waWxlQ2hlY2tUeXBlSW5mbyhub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCiAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOiB7CisKKyAgICAgICAgTm9kZSogaGFzSW5z
dGFuY2VTeW1ib2xOb2RlID0gbm9kZS0+Y2hpbGQyKCkubm9kZSgpOworICAgICAgICBKU0Z1bmN0
aW9uKiBkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9IG1faml0LmdyYXBoKCkuZ2xvYmFsT2Jq
ZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5
bWJvbEZ1bmN0aW9uKCk7CisKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90RGVmYXVs
dDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7CisgICAgICAgIEpTVmFs
dWVPcGVyYW5kIGhhc0luc3RhbmNlU3ltYm9sKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKworICAgICAgICBHUFJSZWcgcmVzdWx0R1BS
ID0gcmVzdWx0LmdwcigpOworCisgICAgICAgIC8vIElmIHdlIGhhdmUgcHJvdmVuIHRoYXQgdGhl
IGNvbnN0cnVjdG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIHdpbGwgYWx3YXlzIGJlIHRoZSBvbmUg
b24gRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0KKyAgICAgICAgLy8gdGhl
biB3ZSBkb24ndCBuZWVkIGEgcnVudGltZSBjaGVjayBoZXJlLiBXZSBkb24ndCB3b3JyeSBhYm91
dCB0aGUgY2FzZSB3aGVyZSB0aGUgY29uc3RydWN0b3IncyBTeW1ib2wuaGFzSW5zdGFuY2UgaXMg
YSBjb25zdGFudAorICAgICAgICAvLyBidXQgaXMgbm90IHRoZSBkZWZhdWx0IG9uZSBhcyBmaXh1
cCBzaG91bGQgaGF2ZSBjb252ZXJ0ZWQgdGhpcyBjaGVjayB0byB0cnVlLgorICAgICAgICBBU1NF
UlQoIWhhc0luc3RhbmNlU3ltYm9sTm9kZS0+aXNDZWxsQ29uc3RhbnQoKSB8fCBkZWZhdWx0SGFz
SW5zdGFuY2VGdW5jdGlvbiA9PSBoYXNJbnN0YW5jZVN5bWJvbE5vZGUtPmFzQ2VsbCgpKTsKKyAg
ICAgICAgaWYgKCFoYXNJbnN0YW5jZVN5bWJvbE5vZGUtPmlzQ2VsbENvbnN0YW50KCkpIHsKKwor
ICAgICAgICAgICAgbm90RGVmYXVsdCA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6
Tm90RXF1YWwsIGhhc0luc3RhbmNlU3ltYm9sLmdwcigpLCBUcnVzdGVkSW1tUHRyKGRlZmF1bHRI
YXNJbnN0YW5jZUZ1bmN0aW9uKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0aGF0
IGJhc2UgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgorICAgICAgICBtX2ppdC50ZXN0
OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZS5ncHIo
KSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCByZXN1bHRHUFIpOworICAgICAg
ICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKKworICAgICAgICBp
ZiAobm90RGVmYXVsdC5pc1NldCgpKSB7CisgICAgICAgICAgICBub3REZWZhdWx0LmxpbmsoJm1f
aml0KTsKKyAgICAgICAgICAgIG1vdmVGYWxzZVRvKHJlc3VsdEdQUik7CisgICAgICAgIH0KIAog
ICAgICAgICAvLyBTcGVjdWxhdGUgdGhhdCBiYXNlICdJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlJy4KLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3Mo
KSwgMCwgbV9qaXQuYnJhbmNoVGVzdDgoCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6WmVy
bywgCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlLmdwcigpLCBKU0Nl
bGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOworICAgICAgICAv
LyAgICAgICAgc3BlY3VsYXRpb25DaGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgMCwg
bV9qaXQuYnJhbmNoVGVzdDgoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwgTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOwog
Ci0gICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAg
ICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUsIERhdGFGb3JtYXRKU0Jvb2xlYW4p
OwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTQyMjYsNiArNDI1NiwxMSBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVJbnN0YW5j
ZU9mKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIEluc3RhbmNlT2ZD
dXN0b206IHsKKyAgICAgICAgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20obm9kZSk7CisgICAgICAg
IGJyZWFrOworICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBJc1VuZGVmaW5lZDogewogICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggNWRkNzYzMjVhY2Zj
NGFmOWQ3MWE1ZjBiZWExYTVjYzRhMjUyMDIwMy4uNDVjNzJkMTgyZTFjMDYxMTQ1NDg2ODM1YTZh
ZTg3NGYwODkwZGZjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJp
bGl0aWVzLmNwcApAQCAtMTc0LDggKzE3NCwxMCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNh
bkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIElzT2JqZWN0OgogICAgIGNhc2UgSXNPYmpl
Y3RPck51bGw6CiAgICAgY2FzZSBJc0Z1bmN0aW9uOgorICAgIGNhc2UgQ2hlY2tUeXBlSW5mbzoK
ICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CiAgICAgY2FzZSBJbnN0YW5jZU9mOgorICAgIGNh
c2UgSW5zdGFuY2VPZkN1c3RvbToKICAgICBjYXNlIERvdWJsZVJlcDoKICAgICBjYXNlIFZhbHVl
UmVwOgogICAgIGNhc2UgSW50NTJSZXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCmluZGV4IDhlMzM1MjJhNWM3OTdmNDRhODYyNmFj
NTQ2MGVhMTc2NzgxYzI1M2EuLjllOWEyNzUzOGMxYWU2Y2U4ZDc4ZGUwZTI4MDAwNTNjMDZhYTcz
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVw
b3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVw
b3NpdG9yeS5oCkBAIC04Nyw4ICs4Nyw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRM
IHsKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSkMsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50
UHRyLCBpbnQ2NCwgaW50UHRyKSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKSSwgZnVu
Y3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0LCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSl9K
SVRPcGVyYXRpb25fRUpKLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50NjQsIGludDY0
KSkgXAorICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKSkosIGZ1bmN0aW9uVHlwZShpbnQ2NCwg
aW50UHRyLCBpbnQ2NCwgaW50NjQsIGludDY0KSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9u
X0VKc2NDLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAot
ICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKc2NDSiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQ
dHIsIGludDY0LCBpbnQ2NCwgaW50NjQpKVwKKyAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSnNj
Q0osIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50UHRyLCBpbnQ2NCkpXAog
ICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKc3NaLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0
ciwgaW50UHRyLCBpbnQzMikpIFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FU3NpSkksIGZ1
bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnRQdHIsIGludDY0LCBpbnRQdHIpKSBcCiAgICAg
bWFjcm8oSnNzX0pJVE9wZXJhdGlvbl9FWiwgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBp
bnQzMikpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExW
TS5jcHAKaW5kZXggYjQ4ZmQ4ODE1Y2M4YjRjOTY1OTc5ZDFhNDUzODI3ZjgwNGJhY2Q4ZC4uNmIy
ZTgxN2ZlZDlhNjRhMDgxMTdkZGRjMGYwOWIzMDlhMTEwOWNkMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTg2NSwxMiArODY1LDE4
IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlwZU9mOgogICAgICAgICAgICAgY29tcGlsZVR5
cGVPZigpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mbzoK
KyAgICAgICAgICAgIGNvbXBpbGVDaGVja1R5cGVJbmZvKCk7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgICAgICAgICAgY29tcGlsZUNoZWNr
SGFzSW5zdGFuY2UoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEluc3RhbmNl
T2Y6CiAgICAgICAgICAgICBjb21waWxlSW5zdGFuY2VPZigpOwogICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKKyAgICAgICAgICAgIGNvbXBpbGVJbnN0
YW5jZU9mQ3VzdG9tKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb3VudEV4
ZWN1dGlvbjoKICAgICAgICAgICAgIGNvbXBpbGVDb3VudEV4ZWN1dGlvbigpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC01MjcxLDEzICs1Mjc3LDM5IEBAIHByaXZhdGU6CiAgICAgICAgIHNldEpT
VmFsdWUodm1DYWxsKG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25HZW5lcmljSW4pLCBtX2NhbGxG
cmFtZSwgY2VsbCwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSkpOwogICAgIH0KIAorCiAg
ICAgdm9pZCBjb21waWxlQ2hlY2tIYXNJbnN0YW5jZSgpCiAgICAgeworICAgICAgICBKU0Z1bmN0
aW9uKiBkZWZhdWx0SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbiA9IG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKG1fbm9kZS0+b3JpZ2luLnNlbWFudGljKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNl
U3ltYm9sRnVuY3Rpb24oKTsKKworICAgICAgICBMVmFsdWUgY29uc3RydWN0b3IgPSBsb3dDZWxs
KG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgaGFzSW5zdGFuY2UgPSBsb3dKU1Zh
bHVlKG1fbm9kZS0+Y2hpbGQyKCkpOworCisgICAgICAgIExCYXNpY0Jsb2NrIGRlZmF1bHRIYXNJ
bnN0YW5jZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQ2hlY2tIYXNJbnN0YW5jZSBTeW1ib2wu
aGFzSW5zdGFuY2UgaXMgZGVmYXVsdCIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0
aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJDaGVja0hhc0luc3RhbmNlIGNvbnRpbnVhdGlv
biIpKTsKKworICAgICAgICAvLyBVbmxpa2UsIHRoZSBERkcgd2UgZG9uJ3Qgd29ycnkgYWJvdXQg
Y2xlYW5pbmcgdGhpcyBjb2RlIHVwIGZvciB0aGUgY2FzZSB3aGVyZSB3ZSBoYXZlIHByb3ZlbiB0
aGUgaGFzSW5zdGFuY2VTeW1ib2wgaXMgYSBjb25zdGFudCBhcyBMTFZNIHNob3VsZCBmaXggaXQg
Zm9yIHVzLgorCisgICAgICAgIEFTU0VSVCghbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCktPmlzQ2Vs
bENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24gPT0gaGFzSW5z
dGFuY2VTeW1ib2xOb2RlLT5hc0NlbGwoKSk7CisKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgbm90
RGVmYXVsdEhhc0luc3RhbmNlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmJvb2xlYW5UcnVl
KTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdEVxdWFsKGhhc0luc3RhbmNlLCBtX291
dC5jb25zdEludFB0cihkZWZhdWx0SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbikpLCByYXJlbHko
Y29udGludWF0aW9uKSwgdXN1YWxseShkZWZhdWx0SGFzSW5zdGFuY2UpKTsKKworICAgICAgICBM
QmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGRlZmF1bHRIYXNJbnN0YW5jZSwg
Y29udGludWF0aW9uKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW1wbGVtZW50c0RlZmF1bHRI
YXNJbnN0YW5jZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC50ZXN0SXNaZXJvOChtX291dC5s
b2FkOChjb25zdHJ1Y3RvciwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9GbGFncyksIG1fb3V0LmNv
bnN0SW50OChJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOworICAgICAgICBtX291dC5q
dW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9u
LCBsYXN0TmV4dCk7CisgICAgICAgIHNldEJvb2xlYW4obV9vdXQucGhpKG1fb3V0LmJvb2xlYW4s
IGltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2VSZXN1bHQsIG5vdERlZmF1bHRIYXNJbnN0YW5j
ZVJlc3VsdCkpOworICAgIH0KKworICAgIHZvaWQgY29tcGlsZUNoZWNrVHlwZUluZm8oKQorICAg
IHsKICAgICAgICAgc3BlY3VsYXRlKAotICAgICAgICAgICAgVW5jb3VudGFibGUsIG5vVmFsdWUo
KSwgMCwKKyAgICAgICAgICAgIEJhZFR5cGVJbmZvLCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAg
ICBtX291dC50ZXN0SXNaZXJvOCgKICAgICAgICAgICAgICAgICBtX291dC5sb2FkOChsb3dDZWxs
KG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwKLSAgICAg
ICAgICAgICAgICBtX291dC5jb25zdEludDgoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkp
KTsKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDgobV9ub2RlLT50eXBlSW5mb09wZXJh
bmQoKSkpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW5zdGFuY2VPZigpCkBAIC01
MzMwLDYgKzUzNjIsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgc2V0Qm9vbGVhbigKICAgICAgICAg
ICAgIG1fb3V0LnBoaShtX291dC5ib29sZWFuLCBub3RDZWxsUmVzdWx0LCBpc0luc3RhbmNlUmVz
dWx0LCBub3RJbnN0YW5jZVJlc3VsdCkpOwogICAgIH0KKworICAgIHZvaWQgY29tcGlsZUluc3Rh
bmNlT2ZDdXN0b20oKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZSht
X25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGNvbnN0cnVjdG9yID0gbG93Q2VsbCht
X25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIGhhc0luc3RhbmNlID0gbG93SlNWYWx1
ZShtX25vZGUtPmNoaWxkMygpKTsKKworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gdm1DYWxsKG1f
b3V0Lm9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKSwgdmFsdWUsIGNvbnN0cnVj
dG9yLCBoYXNJbnN0YW5jZSk7CisgICAgICAgIHNldEJvb2xlYW4ocmVzdWx0KTsKKyAgICB9CiAg
ICAgCiAgICAgdm9pZCBjb21waWxlQ291bnRFeGVjdXRpb24oKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcAppbmRleCBjZDY4NmI3MmFkZDRiNDhkOWE2MzZjMzRmZjA5YWJmZWJkODQ4
NWVlLi41MmE3MGJjOGVhNzIwYTFmMTg5YjU3ZDllYzA3ZWY3YTY3YTNiNzEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0yMjcsNiArMjI3LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVD
b21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3ZhbCkKICAgICAg
ICAgREVGSU5FX09QKG9wX2NoZWNrX2hhc19pbnN0YW5jZSkKICAgICAgICAgREVGSU5FX09QKG9w
X2luc3RhbmNlb2YpCisgICAgICAgIERFRklORV9PUChvcF9pbnN0YW5jZW9mX2N1c3RvbSkKICAg
ICAgICAgREVGSU5FX09QKG9wX2lzX3VuZGVmaW5lZCkKICAgICAgICAgREVGSU5FX09QKG9wX2lz
X2Jvb2xlYW4pCiAgICAgICAgIERFRklORV9PUChvcF9pc19udW1iZXIpCkBAIC0zOTMsOCArMzk0
LDggQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgY2FzZSBv
cF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfZ2V0X2J5
X2lkKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfZ2V0X2J5X3ZhbCkKLSAgICAgICAg
REVGSU5FX1NMT1dDQVNFX09QKG9wX2NoZWNrX2hhc19pbnN0YW5jZSkKICAgICAgICAgREVGSU5F
X1NMT1dDQVNFX09QKG9wX2luc3RhbmNlb2YpCisgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChv
cF9pbnN0YW5jZW9mX2N1c3RvbSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2pmYWxz
ZSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2psZXNzKQogICAgICAgICBERUZJTkVf
U0xPV0NBU0VfT1Aob3Bfamxlc3NlcSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IGU5Njgy
OTJhYjcwMjRhOGMyYWZlYWZmZDBmZTQ1OTJjYzg1MzY0NzAuLjAyZjg0OWZlYWVjMGNhNDZmN2Rk
NTdjMWM3N2E5ZTE3NzAxZDRjZmYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNTA5LDYg
KzUwOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3BfaW5pdF9sYXp5
X3JlZyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfY2hlY2tfaGFzX2luc3Rh
bmNlKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbnN0YW5jZW9mKEluc3Ry
dWN0aW9uKik7CisgICAgICAgIHZvaWQgZW1pdF9vcF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVj
dGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfaXNfdW5kZWZpbmVkKEluc3RydWN0aW9uKik7
CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pc19ib29sZWFuKEluc3RydWN0aW9uKik7CiAgICAgICAg
IHZvaWQgZW1pdF9vcF9pc19udW1iZXIoSW5zdHJ1Y3Rpb24qKTsKQEAgLTYxMSw4ICs2MTIsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRfYXJndW1lbnRz
X2xlbmd0aChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsK
ICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiwgVmVjdG9y
PFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2dl
dF9hcmd1bWVudF9ieV92YWwoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJik7Ci0gICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfY2hlY2tfaGFzX2luc3RhbmNlKElu
c3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2
b2lkIGVtaXRTbG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VF
bnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9j
dXN0b20oSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAg
ICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfamZhbHNlKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2psZXNzKElu
c3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2
b2lkIGVtaXRTbG93X29wX2psZXNzZXEoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJik7CkBAIC03MzcsNiArNzM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpK
LCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJy
YXlQcm9maWxlKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9u
X0VKSkosIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19KSVRPcGVyYXRpb25fRUpzYywgR1BSUmVnKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SnNjQywgaW50LCBHUFJSZWcsIEpTQ2VsbCopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKc2NDSiwgaW50LCBHUFJSZWcsIEpTQ2Vs
bCosIEdQUlJlZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IDBj
Nzk5NjE0YjcxMDg5YzJhYTVkNGMyMGNkNzEzYjZhOGJlNTJhMjMuLmI4YTU0NTgxZjYzOTdhMzBi
NmFkNTA1MjdlMjllYTZlN2RkMjY0OGYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5s
aW5lcy5oCkBAIC01MDMsNiArNTAzLDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5IG9wZXJhCiAgICAg
cmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJh
dGlvbiwgZHN0KTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKSiBvcGVyYXRpb24sIGludCBkc3QsIEdQ
UlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMpCit7CisgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7Cit9CisK
IEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9F
eGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxKQog
ewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGMxYmI3NDNmY2I3ZTJjZGZiMGEyZGM3ZDFk
OGQzOTQ5N2Y4NjIwYzguLjA4NTE1MjJkOWRhOTliZjkyYmZmZjZiNTNlMjJkNmJmZjAzMzc4Mzkg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTA3LDE1ICsx
MDcsMjYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX25ld19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKIAogdm9pZCBKSVQ6OmVtaXRfb3BfY2hl
Y2tfaGFzX2luc3RhbmNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAg
aW50IGJhc2VWYWwgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBk
c3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBjb25zdHJ1Y3Rv
ciA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisgICAgaW50IGhhc0luc3RhbmNl
U3ltYm9sID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKworICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIoY29uc3RydWN0b3IsIHJlZ1QwKTsKKyAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKGhhc0luc3RhbmNlU3ltYm9sLCByZWdUMSk7CiAKLSAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKGJhc2VWYWwsIHJlZ1QwKTsKKyAgICAvLyBXZSBkb24ndCBqdW1wIGlmIHdlIGtub3cg
d2hhdCBTeW1ib2wuaGFzSW5zdGFuY2Ugd291bGQgZG8uCisgICAgSnVtcCBjdXN0b21IYXNJbnN0
YW5jZVN5bWJvbCA9IGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDEsIFRydXN0ZWRJbW1QdHIobV9j
b2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xG
dW5jdGlvbigpKSk7CisKKyAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRz
SGFzSW5zdGFuY2UnIGkuZS4gdGhlIG9iamVjdCBpcyBhIEMtQVBJIHVzZXIgb3IgYSBib3VuZCBm
dW5jdGlvbi4KKyAgICB0ZXN0OChaZXJvLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZv
RmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNl
KSwgcmVnVDApOworICAgIGVtaXRUYWdCb29sKHJlZ1QwKTsKKyAgICBKdW1wIGRvbmUgPSBqdW1w
KCk7CiAKLSAgICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgaXMgYSBjZWxsLgotICAgIGVtaXRKdW1w
U2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZVZhbCk7CisgICAgY3VzdG9tSGFzSW5zdGFu
Y2VTeW1ib2wubGluayh0aGlzKTsKKyAgICBtb3ZlKFRydXN0ZWRJbW0zMihWYWx1ZVRydWUpLCBy
ZWdUMCk7CiAKLSAgICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgJ0ltcGxlbWVudHNIYXNJbnN0YW5j
ZScuCi0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoVGVzdDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlND
ZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1
bHRIYXNJbnN0YW5jZSkpKTsKKyAgICBkb25lLmxpbmsodGhpcyk7CisgICAgZW1pdFB1dFZpcnR1
YWxSZWdpc3Rlcihkc3QpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC0xMjksNyArMTQwLDcgQEAgdm9pZCBKSVQ6
OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1QyKTsKICAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKHByb3RvLCByZWdUMSk7CiAKLSAgICAvLyBDaGVjayB0aGF0IHByb3RvIGFyZSBj
ZWxscy4gIGJhc2VWYWwgbXVzdCBiZSBhIGNlbGwgLSB0aGlzIGlzIGNoZWNrZWQgYnkgb3BfY2hl
Y2tfaGFzX2luc3RhbmNlLgorICAgIC8vIENoZWNrIHRoYXQgcHJvdG8gYXJlIGNlbGxzLiAgYmFz
ZVZhbCBtdXN0IGJlIGEgY2VsbCAtIHRoaXMgaXMgY2hlY2tlZCBieSB0aGUgZ2V0X2J5X2lkIGZv
ciBTeW1ib2wuaGFzSW5zdGFuY2UuCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJl
Z1QyLCB2YWx1ZSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QxLCBwcm90
byk7CiAKQEAgLTE1Nyw2ICsxNjgsMTIgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0
ZXIoZHN0KTsKIH0KIAordm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1
Y3Rpb24qKQoreworICAgIC8vIFRoaXMgYWx3YXlzIGdvZXMgdG8gc2xvdyBwYXRoIHNpbmNlIGl0
J3Mgc3VwZXIgcmFyZS4KKyAgICBhZGRTbG93Q2FzZShqdW1wKCkpOworfQorCiB2b2lkIEpJVDo6
ZW1pdF9vcF9pc191bmRlZmluZWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsK
ICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKQEAgLTMxNywy
MiArMzM0LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX2plcV9udWxsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgdGFyZ2V0ID0gY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZDsKIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoc3JjLCByZWdUMCk7
Ci0gICAgSnVtcCBpc0ltbWVkaWF0ZSA9IGVtaXRKdW1wSWZOb3RKU0NlbGwocmVnVDApOwotCi0g
ICAgLy8gRmlyc3QsIGhhbmRsZSBKU0NlbGwgY2FzZXMgLSBjaGVjayBNYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkIGJpdCBvbiB0aGUgc3RydWN0dXJlLgotICAgIEp1bXAgaXNOb3RNYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkID0gYnJhbmNoVGVzdDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBl
SW5mb0ZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkp
OwotICAgIGVtaXRMb2FkU3RydWN0dXJlKHJlZ1QwLCByZWdUMiwgcmVnVDEpOwotICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkpLCByZWdUMCk7Ci0gICAg
YWRkSnVtcChicmFuY2hQdHIoRXF1YWwsIEFkZHJlc3MocmVnVDIsIFN0cnVjdHVyZTo6Z2xvYmFs
T2JqZWN0T2Zmc2V0KCkpLCByZWdUMCksIHRhcmdldCk7Ci0gICAgSnVtcCBtYXNxdWVyYWRlc0ds
b2JhbE9iamVjdElzRm9yZWlnbiA9IGp1bXAoKTsKLQotICAgIC8vIE5vdyBoYW5kbGUgdGhlIGlt
bWVkaWF0ZSBjYXNlcyAtIHVuZGVmaW5lZCAmIG51bGwKLSAgICBpc0ltbWVkaWF0ZS5saW5rKHRo
aXMpOwotICAgIGFuZDY0KFRydXN0ZWRJbW0zMih+VGFnQml0VW5kZWZpbmVkKSwgcmVnVDApOwot
ICAgIGFkZEp1bXAoYnJhbmNoNjQoRXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVsbCgpKSkpLCB0YXJnZXQpOyAgICAgICAgICAgIAorICAgIEp1bXBMaXN0IGp1
bXBzID0gZW1pdEp1bXBJZk51bGwoSlNWYWx1ZVJlZ3MocmVnVDApLCByZWdUMSwgcmVnVDIpOwog
Ci0gICAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmxpbmsodGhpcyk7Ci0gICAgbWFzcXVl
cmFkZXNHbG9iYWxPYmplY3RJc0ZvcmVpZ24ubGluayh0aGlzKTsKKyAgICBmb3IgKEp1bXAganVt
cCA6IGp1bXBzLmp1bXBzKCkpCisgICAgICAgIGFkZEp1bXAoanVtcCwgdGFyZ2V0KTsKIH07CiB2
b2lkIEpJVDo6ZW1pdF9vcF9qbmVxX251bGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKIHsKQEAgLTg2OCwzMyArODczLDMyIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9uc3RyaWN0
ZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlCiAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hh
c19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nh
c2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNl
b2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kOwotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
KyAgICBpbnQgcHJvdG8gPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCi0gICAg
bGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZVZhbCk7CisgICAgbGlua1Nsb3dDYXNl
SWZOb3RKU0NlbGwoaXRlciwgdmFsdWUpOworICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0
ZXIsIHByb3RvKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3Rlcih2YWx1ZSwgcmVnVDApOwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYmFzZVZh
bCwgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZSwg
ZHN0LCByZWdUMCwgcmVnVDEpOwotCi0gICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBjdXJy
ZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KHByb3RvLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mLCBk
c3QsIHJlZ1QwLCByZWdUMSk7CiB9CiAKLXZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9m
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6
aXRlcmF0b3ImIGl0ZXIpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20o
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
OwotICAgIGludCBwcm90byA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAg
aW50IGNvbnN0cnVjdG9yID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBp
bnQgaGFzSW5zdGFuY2VTeW1ib2wgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwog
Ci0gICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgdmFsdWUpOwotICAgIGxpbmtTbG93
Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIHByb3RvKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDApOwotICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIocHJvdG8sIHJlZ1QxKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbklu
c3RhbmNlT2YsIGRzdCwgcmVnVDAsIHJlZ1QxKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KGNvbnN0cnVjdG9yLCByZWdUMSk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihoYXNJbnN0
YW5jZVN5bWJvbCwgcmVnVDIpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSW5zdGFuY2VP
ZkN1c3RvbSwgZHN0LCByZWdUMCwgcmVnVDEsIHJlZ1QyKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRT
bG93X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggZDg3M2ExZGRkNjU3YTI4OTY4YTBlNTFmOTA2MzZk
MWRlMmZjZjgxNi4uMzk3ZDE0YmQzMDM3NDc3YTE1MGUzN2VjZjFiYTdlOGI2NTNmYzExZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xNDY3LDI1
ICsxNDY3LDE2IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvCiAgICAgICAgIHByb2ZpbGVyLT53
aWxsRXhlY3V0ZShleGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZShFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2VWYWwpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklu
c3RhbmNlT2ZDdXN0b20oRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRDb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEhhc0luc3RhbmNlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIEpTVmFsdWUgYmFzZVZhbCA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZVZhbCk7Ci0KLSAgICBpZiAoYmFzZVZhbC5pc09iamVj
dCgpKSB7Ci0gICAgICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbCk7
Ci0gICAgICAgIEFTU0VSVCghYmFzZU9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5p
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpOwotICAgICAgICBpZiAoYmFzZU9iamVjdC0+
c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbXBsZW1lbnRzSGFzSW5zdGFuY2UoKSkgewotICAg
ICAgICAgICAgYm9vbCByZXN1bHQgPSBiYXNlT2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmN1c3Rv
bUhhc0luc3RhbmNlKGJhc2VPYmplY3QsIGV4ZWMsIHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlc3VsdCkpOwotICAgICAgICB9Ci0gICAgfQor
ICAgIEpTVmFsdWUgY29uc3RydWN0b3IgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZENvbnN0cnVj
dG9yKTsKKyAgICBKU1ZhbHVlIGhhc0luc3RhbmNlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRI
YXNJbnN0YW5jZSk7CiAKLSAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVJbnZhbGlk
SW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKGV4ZWMsIGJhc2VWYWwpKTsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jv
b2xlYW4oY29uc3RydWN0b3IuZ2V0T2JqZWN0KCktPmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBo
YXNJbnN0YW5jZSkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuaAppbmRleCBmNmM1N2YzZDFjYjdlNDU2MjI2MzYyYTkyYTBmZDA5OTQwNTk5ZDQ1Li5i
YzE4YjU5Njc1YTliMmJlNjZkN2Q4ZTBiNmNhZGQxYTBmMmM4MmY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTE3LDYgKzExNyw3IEBAIHR5cGVkZWYg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSWRjKShFeGVj
U3RhdGUqLCBFbmNvZGVkCiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJh
dGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBB
cnJheVByb2ZpbGUqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpf
SklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIEJ5VmFsSW5mbyopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBp
bnQzMl90KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3Bl
cmF0aW9uX0VKUCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIHZvaWQqKTsKIHR5cGVkZWYg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VQKShFeGVjU3Rh
dGUqLCB2b2lkKik7CkBAIC0zMjQsNyArMzI1LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblB1c2hGdW5jdGlvbk5hbWVTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWIK
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90
KSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZURpZENh
bGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
Q2hlY2tIYXNJbnN0YW5jZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgYmFzZVZhbCkgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWwsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRIYXNJbnN0YW5jZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8q
KSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwog
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCmluZGV4IDIwMWUzYWIyYmZhMDM2YzI3YzVmZDZiZDYz
YTQ4YmNjOGQ2MjdiMjkuLjVmNjdlYWJmZDk2OWFmNzI2N2I5YWUyMjUzNDViYmZmNWI3MTZlNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKQEAgLTY4LDYg
KzY4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEp1bXAgZW1pdEp1bXBJZk5vdE51bWJl
cihSZWdpc3RlcklEKTsKICAgICAgICAgdm9pZCBlbWl0VGFnSW50KFJlZ2lzdGVySUQgc3JjLCBS
ZWdpc3RlcklEIGRlc3QpOwogI2VuZGlmCisgICAgICAgIEp1bXBMaXN0IGVtaXRKdW1wSWZOdWxs
KEpTVmFsdWVSZWdzIHNyYywgUmVnaXN0ZXJJRCBzY3JhdGNoMSwgUmVnaXN0ZXJJRCBzY3JhdGNo
Mik7CiAKICAgICAgICAgSnVtcCBlbWl0SnVtcElmTm90VHlwZShSZWdpc3RlcklEIGJhc2VSZWcs
IEpTVHlwZSk7CiAKQEAgLTE2MCw2ICsxNjEsMzEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewog
ICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZywgdGFnVHlwZU51bWJlclJlZ2lz
dGVyKTsKICAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIEpTSW50ZXJmYWNlSklUOjpKdW1wTGlz
dCBKU0ludGVyZmFjZUpJVDo6ZW1pdEp1bXBJZk51bGwoSlNWYWx1ZVJlZ3MgcmVnLCBHUFJSZWcg
c2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMikgeworICAgICAgICBHUFJSZWcgdmFsdWUgPSByZWcu
Z3ByKCk7CisgICAgICAgIEp1bXAgaXNJbW1lZGlhdGUgPSBlbWl0SnVtcElmTm90SlNDZWxsKHZh
bHVlKTsKKworICAgICAgICBKdW1wTGlzdCBqdW1wczsKKworICAgICAgICAvLyBGaXJzdCwgaGFu
ZGxlIEpTQ2VsbCBjYXNlcyAtIGNoZWNrIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgYml0IG9uIHRo
ZSBzdHJ1Y3R1cmUuCisgICAgICAgIEp1bXAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0g
YnJhbmNoVGVzdDgoWmVybywgQWRkcmVzcyh2YWx1ZSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zm
c2V0KCkpLCBUcnVzdGVkSW1tMzIoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkpOworICAgICAgICBl
bWl0TG9hZFN0cnVjdHVyZSh2YWx1ZSwgc2NyYXRjaDIsIHNjcmF0Y2gxKTsKKyAgICAgICAgbW92
ZShUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSksIHZhbHVlKTsKKyAg
ICAgICAganVtcHMuYXBwZW5kKGJyYW5jaFB0cihFcXVhbCwgQWRkcmVzcyhzY3JhdGNoMiwgU3Ry
dWN0dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSksIHZhbHVlKSk7CisgICAgICAgIEp1bXAgbWFz
cXVlcmFkZXNHbG9iYWxPYmplY3RJc0ZvcmVpZ24gPSBqdW1wKCk7CisKKyAgICAgICAgLy8gTm93
IGhhbmRsZSB0aGUgaW1tZWRpYXRlIGNhc2VzIC0gdW5kZWZpbmVkICYgbnVsbAorICAgICAgICBp
c0ltbWVkaWF0ZS5saW5rKHRoaXMpOworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIoflRhZ0Jp
dFVuZGVmaW5lZCksIHZhbHVlKTsKKyAgICAgICAganVtcHMuYXBwZW5kKGJyYW5jaDY0KEVxdWFs
LCB2YWx1ZSwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShqc051bGwoKSkpKSk7CisKKyAg
ICAgICAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmxpbmsodGhpcyk7CisgICAgICAgIG1h
c3F1ZXJhZGVzR2xvYmFsT2JqZWN0SXNGb3JlaWduLmxpbmsodGhpcyk7CisKKyAgICAgICAgcmV0
dXJuIGp1bXBzOworICAgIH0KKwogICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0lu
dGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgs
IFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbG9hZDY0KGFkZHJlc3NGb3IodmlydHVh
bFJlZ2lzdGVySW5kZXgpLCBkc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRE
YXRhLmNwcAppbmRleCAwMTkyN2I2MzA0YzIzYzBkNWZiODQ0NjdmN2IzOThhOGE0YzFlZTNhLi42
NTA5ZGQ5Y2ZmZDcxZmE2ZGRhODk2NDdhOGQ0ZmNiMmEwNGUwYTY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
Ik1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCiAj
aW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKKyNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAKQEAgLTE1NCw2ICsxNTUsNyBAQCB2
b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQoRnVuY3Rpb25D
b2RlID09IDIpOwogICAgIEFTU0VSVChNb2R1bGVDb2RlID09IDMpOwogCisgICAgQVNTRVJUKHJl
aW50ZXJwcmV0X2Nhc3Q8cHRyZGlmZl90PigocmVpbnRlcnByZXRfY2FzdDxXcml0ZUJhcnJpZXI8
SlNDZWxsPio+KDB4NDAwMCktPnNsb3QoKSkpIC0gMHg0MDAwID09IDApOwogICAgIHN0YXRpY19h
c3NlcnQoUHV0QnlJZFByaW1hcnlUeXBlTWFzayA9PSAweDYsICJMTEludCBhc3N1bWVzIFB1dEJ5
SWRQcmltYXJ5VHlwZU1hc2sgaXMgPT0gMHg2Iik7CiAgICAgc3RhdGljX2Fzc2VydChQdXRCeUlk
UHJpbWFyeVR5cGVTZWNvbmRhcnkgPT0gMHgwLCAiTExJbnQgYXNzdW1lcyBQdXRCeUlkUHJpbWFy
eVR5cGVTZWNvbmRhcnkgaXMgPT0gMHgwIik7CiAgICAgc3RhdGljX2Fzc2VydChQdXRCeUlkUHJp
bWFyeVR5cGVPYmplY3RXaXRoU3RydWN0dXJlID09IDB4MiwgIkxMSW50IGFzc3VtZXMgUHV0QnlJ
ZFByaW1hcnlUeXBlT2JqZWN0V2l0aFN0cnVjdHVyZSBpcyA9PSAweDIiKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IDc2NWYxOTc5NTBl
MzIzZjA1NjZlNzJjNzNiNGVlZDYzZTNiMjA4YzUuLjMxODM1NjhkM2UyZjc5MWFhNmRkOWEyYjMy
MDE5NjlkOTFmM2M4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcApAQCAtNTIxLDMwICs1MjEsMjggQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX25ld19yZWdleHApCiAgICAgTExJTlRfUkVUVVJOKFJlZ0V4cE9iamVjdDo6Y3Jl
YXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cFN0cnVjdHVyZSgpLCBy
ZWdFeHApKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NoZWNrX2hhc19p
bnN0YW5jZSkKK0xMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mKQogewog
ICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5UX09QX0Mo
MikuanNWYWx1ZSgpOwotICAgIEpTVmFsdWUgYmFzZVZhbCA9IExMSU5UX09QX0MoMykuanNWYWx1
ZSgpOwotICAgIGlmIChiYXNlVmFsLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgSlNPYmplY3QqIGJh
c2VPYmplY3QgPSBhc09iamVjdChiYXNlVmFsKTsKLSAgICAgICAgQVNTRVJUKCFiYXNlT2JqZWN0
LT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkp
OwotICAgICAgICBpZiAoYmFzZU9iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW1wbGVt
ZW50c0hhc0luc3RhbmNlKCkpIHsKLSAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29s
ZWFuKGJhc2VPYmplY3QtPm1ldGhvZFRhYmxlKCktPmN1c3RvbUhhc0luc3RhbmNlKGJhc2VPYmpl
Y3QsIGV4ZWMsIHZhbHVlKSk7Ci0gICAgICAgICAgICBMTElOVF9SRVRVUk5fV0lUSF9QQ19BREpV
U1RNRU5UKHJlc3VsdCwgcGNbNF0udS5vcGVyYW5kKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBM
TElOVF9USFJPVyhjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKGV4ZWMsIGJh
c2VWYWwpKTsKKyAgICBKU1ZhbHVlIHByb3RvID0gTExJTlRfT1BfQygzKS5qc1ZhbHVlKCk7Cisg
ICAgQVNTRVJUKCF2YWx1ZS5pc09iamVjdCgpIHx8ICFwcm90by5pc09iamVjdCgpKTsKKyAgICBM
TElOVF9SRVRVUk4oanNCb29sZWFuKEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoZXhlYywg
dmFsdWUsIHByb3RvKSkpOwogfQogCi1MTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5z
dGFuY2VvZikKK0xMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mX2N1c3Rv
bSkKIHsKICAgICBMTElOVF9CRUdJTigpOworCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5UX09Q
X0MoMikuanNWYWx1ZSgpOwotICAgIEpTVmFsdWUgcHJvdG8gPSBMTElOVF9PUF9DKDMpLmpzVmFs
dWUoKTsKLSAgICBBU1NFUlQoIXZhbHVlLmlzT2JqZWN0KCkgfHwgIXByb3RvLmlzT2JqZWN0KCkp
OwotICAgIExMSU5UX1JFVFVSTihqc0Jvb2xlYW4oSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0YW5j
ZShleGVjLCB2YWx1ZSwgcHJvdG8pKSk7CisgICAgSlNWYWx1ZSBjb25zdHJ1Y3RvciA9IExMSU5U
X09QX0MoMykuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgaGFzSW5zdGFuY2VTeW1ib2wgPSBMTElO
VF9PUF9DKDQpLmpzVmFsdWUoKTsKKworICAgIEFTU0VSVChjb25zdHJ1Y3Rvci5pc09iamVjdCgp
KTsKKyAgICBBU1NFUlQoaGFzSW5zdGFuY2VTeW1ib2wgIT0gZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpIHx8ICFjb25z
dHJ1Y3Rvci5nZXRPYmplY3QoKS0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSgpKTsKKworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29sZWFuKGNv
bnN0cnVjdG9yLmdldE9iamVjdCgpLT5oYXNJbnN0YW5jZShleGVjLCB2YWx1ZSwgaGFzSW5zdGFu
Y2VTeW1ib2wpKTsKKyAgICBMTElOVF9SRVRVUk4ocmVzdWx0KTsKIH0KIAogTExJTlRfU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50U2xvd1BhdGhzLmgKaW5kZXggZTI0NDgyOWZkZDFlMmYxNTA2YTM1ZDEwYTRlYjgx
ZmNiZTMyYzUzMS4uMjVmMjA3MjNhNWIzNmIxNjVkZTFlMzU4ZDk2MWE4MWEwZmZlNWMwYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKQEAgLTY3LDgg
KzY3LDggQEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfYXJyYXkp
OwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfYXJyYXlfd2l0aF9z
aXplKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2FycmF5X2J1
ZmZlcik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25ld19yZWdleHAp
OwotTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFu
Y2UpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mKTsK
K0xMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20p
OwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpOwogTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYXJndW1lbnRzX2xlbmd0aCk7
CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF9ieV9pZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCmluZGV4IGM5MmQ4ZWE4ODQ3YjRiYWM1NTQ0OGE3MDI4ZjA5YjdkYWEyNTI3N2UuLjcyOWQ3
MGJkZTJkNjhhZmM0MDlkMGI3OWVjYWMxNzUwYjdkNTIwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMDcx
LDE0ICsxMDcxLDI2IEBAIF9sbGludF9vcF9iaXRvcjoKIAogX2xsaW50X29wX2NoZWNrX2hhc19p
bnN0YW5jZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9u
KDEsIHQzKQorCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDMsIHQxKQotICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGVDZWxsKHQxLCB0MCwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cpCi0gICAg
YnRieiBKU0NlbGw6Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCAu
b3BDaGVja0hhc0luc3RhbmNlU2xvdwotICAgIGRpc3BhdGNoKDUpCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MSwgdDApCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbG9h
ZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0Ml0sIHQyCisgICAgbG9hZHAgSlNHbG9iYWxP
YmplY3Q6Om1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb25bdDJdLCB0Mgor
ICAgIGJxbmVxIHQwLCB0MiwgLm9wQ2hlY2tIYXNJbnN0YW5jZU5vdERlZmF1bHRTeW1ib2wKIAot
Lm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfY2hlY2tfaGFzX2luc3RhbmNlKQotICAgIGRpc3BhdGNoKDApCisgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDIsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAg
IHRieiBKU0NlbGw6Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCB0
MQorICAgIG9ycSBWYWx1ZUZhbHNlLCB0MQorICAgIHN0b3JlcSB0MSwgW2NmciwgdDMsIDhdCisg
ICAgZGlzcGF0Y2goNCkKKworLm9wQ2hlY2tIYXNJbnN0YW5jZU5vdERlZmF1bHRTeW1ib2w6Cisg
ICAgc3RvcmVxIFZhbHVlVHJ1ZSwgdDEKKyAgICBzdG9yZXEgdDEsIFtjZnIsIHQzLCA4XQorICAg
IGRpc3BhdGNoKDQpCiAKIAogX2xsaW50X29wX2luc3RhbmNlb2Y6CkBAIC0xMTA5LDYgKzExMjEs
MTAgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaW5zdGFuY2VvZikKICAgICBkaXNwYXRjaCg0KQogCitfbGxpbnRfb3BfaW5zdGFuY2Vv
Zl9jdXN0b206CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKQorICAgIGRpc3BhdGNoKDUpCiAKIF9sbGludF9v
cF9pc191bmRlZmluZWQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNGNmNjU5MGE5YjAx
NjA4ODU2MmJlZThkNzU1MzU1ZDg3YTNiMzNiMS4uZGM3N2Y0ZmJkY2E1YTcxMzJkMDI3YTZjZTFk
ODlkMmI0NzU4NDEyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25JZGVudGlmaWVycy5oCkBAIC0yNDksNyArMjQ5LDYgQEAKICAgICBtYWNybyh5aWVsZCkK
IAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dO
X1NZTUJPTF9OT1RfSU1QTEVNRU5URURfWUVUKG1hY3JvKVwKLSAgICBtYWNybyhoYXNJbnN0YW5j
ZSkgXAogICAgIG1hY3JvKGlzQ29uY2F0U3ByZWFkYWJsZSkgXAogICAgIG1hY3JvKG1hdGNoKSBc
CiAgICAgbWFjcm8ocmVwbGFjZSkgXApAQCAtMjU5LDYgKzI1OCw3IEBACiAgICAgbWFjcm8odG9Q
cmltaXRpdmUpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hf
V0VMTF9LTk9XTl9TWU1CT0wobWFjcm8pIFwKKyAgICBtYWNybyhoYXNJbnN0YW5jZSkgXAogICAg
IG1hY3JvKGl0ZXJhdG9yKSBcCiAgICAgbWFjcm8odW5zY29wYWJsZXMpIFwKICAgICBtYWNybyh0
b1N0cmluZ1RhZykKQEAgLTMyOSw2ICszMjksOSBAQAogICAgIG1hY3JvKFVpbnQzMkFycmF5KSBc
CiAgICAgbWFjcm8oRmxvYXQzMkFycmF5KSBcCiAgICAgbWFjcm8oRmxvYXQ2NEFycmF5KSBcCisg
ICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1
bmN0aW9uKSBcCisgICAgbWFjcm8oaW5zdGFuY2VPZikKIAogCiBuYW1lc3BhY2UgSlNDIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNw
cAppbmRleCA5NzBkMDEyODZjYTgwOWY4MGM5MWYzMTM3NWNmMmZjMjgzNjMyMmI0Li5hYTg3NTYx
MDNiNzI0MDdkMjc3N2VkYjZhZmQ2MTVkYWZmNDZkMTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC01Myw3ICs1Myw3
IEBAIHZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3Qg
U3RyaW5nJiBuYW1lKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBE
b250RW51bSk7CiB9CiAKLXZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmFkZEZ1bmN0aW9uUHJvcGVy
dGllcyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTRnVu
Y3Rpb24qKiBjYWxsRnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBhcHBseUZ1bmN0aW9uKQordm9pZCBG
dW5jdGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNGdW5jdGlvbioqIGNhbGxGdW5jdGlvbiwg
SlNGdW5jdGlvbioqIGFwcGx5RnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBoYXNJbnN0YW5jZVN5bWJv
bEZ1bmN0aW9uKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAKQEAgLTYyLDYgKzYyLDcg
QEAgdm9pZCBGdW5jdGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGcKIAogICAgICphcHBseUZ1bmN0aW9uID0gcHV0RGly
ZWN0QnVpbHRpbkZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgdm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXBwbHlQdWJsaWNOYW1lKCksIGZ1bmN0aW9u
UHJvdG90eXBlQXBwbHlDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOwogICAgICpjYWxsRnVu
Y3Rpb24gPSBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xv
YmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jYWxsUHVibGljTmFt
ZSgpLCBmdW5jdGlvblByb3RvdHlwZUNhbGxDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOwor
ICAgICpoYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uID0gcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9u
KHZtLCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmhhc0luc3RhbmNlU3ltYm9sLCBm
dW5jdGlvblByb3RvdHlwZVN5bWJvbEhhc0luc3RhbmNlQ29kZUdlbmVyYXRvcih2bSksIERvbnRE
ZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIAogICAgIEpTRnVuY3Rpb24qIGJpbmRGdW5j
dGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAxLCB2bS5wcm9wZXJ0
eU5hbWVzLT5iaW5kLnN0cmluZygpLCBmdW5jdGlvblByb3RvRnVuY0JpbmQpOwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5iaW5kLCBiaW5kRnVu
Y3Rpb24sIERvbnRFbnVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvblByb3RvdHlwZS5oCmluZGV4IDUyY2U4ZjExYzVkZDdkMTAzMTU1NjkwM2U1YWNhYjBk
MmFkNGMwZjguLmFiZTUzM2EzM2ExZjM3OGZlZGI4MjE0ZjU2Y2M1YWZlMGZhMWU2OWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApA
QCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAg
fQogCi0gICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBKU0Z1bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5j
dGlvbik7CisgICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwgSlNHbG9i
YWxPYmplY3QqLCBKU0Z1bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlG
dW5jdGlvbiwgSlNGdW5jdGlvbioqIGhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogCiAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludHJpbnNpYy5oCmluZGV4IGQ0YmVmYjYwZjA3NWQwNTQzYmRjYjFkMGEzYzcw
NTE2ODk1YjUzMDMuLmM5NmY2MmJkMWYxOTJjMjUwMjI3Zjk3MmQ1YzJjY2E1YTY0ZDgyYzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCkBAIC01NCw2ICs1NCw5
IEBAIGVudW0gSW50cmluc2ljIHsKICAgICBTdHJpbmdQcm90b3R5cGVWYWx1ZU9mSW50cmluc2lj
LAogICAgIElNdWxJbnRyaW5zaWMsCiAgICAgRlJvdW5kSW50cmluc2ljLAorICAgIElzQm91bmRG
dW5jdGlvbkludHJpbnNpYywKKyAgICBJbnN0YW5jZU9mSW50cmluc2ljLAorCiAKICAgICAvLyBH
ZXR0ZXIgaW50cmluc2ljcy4KICAgICBUeXBlZEFycmF5TGVuZ3RoSW50cmluc2ljLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKaW5kZXgg
OGM1Y2MyZWQzOTA0ODJlYWMyZTc3NWE0ZjBjMmQyZDVjNGM5OWU2MS4uMGYwNDlmOTBmZmJlNmFi
NzNiOTE3ZTkxMTczZTJkMWYxYjI4MTk0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC03NCw2ICs3NCwyMCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QoRXhlY1N0YXRlKiBl
eGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0KGV4ZWMsIHRhcmdldEZ1
bmN0aW9uLCBjb25zdHJ1Y3RUeXBlLCBjb25zdHJ1Y3REYXRhLCBhcmdzKSk7CiB9CiAKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoc3RhdGljX2Nhc3Q8Ym9vbD4o
anNEeW5hbWljQ2FzdDxKU0JvdW5kRnVuY3Rpb24qPihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgw
KSkpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaGFzSW5zdGFuY2VCb3Vu
ZEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0JvdW5kRnVuY3Rpb24qIGJvdW5k
T2JqZWN0ID0ganNDYXN0PEpTQm91bmRGdW5jdGlvbio+KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSk7CisK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihib3VuZE9iamVjdC0+dGFyZ2V0
RnVuY3Rpb24oKS0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUpKSk7Cit9CisKKwogSlNCb3VuZEZ1
bmN0aW9uKiBKU0JvdW5kRnVuY3Rpb246OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlvbiwgSlNWYWx1ZSBib3VuZFRoaXMs
IEpTVmFsdWUgYm91bmRBcmdzLCBpbnQgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAg
ICAgQ29uc3RydWN0RGF0YSBjb25zdHJ1Y3REYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAppbmRleCBhZjJhNjMyM2Q1MzcxZTIwNTYwYzBm
MjU1NmNjNWI4N2Y2MjU2OGU5Li5jMzhkYzY3ZDQzYzY5Yjg1MzVkZDVhYWQ5MTBmYjM2YjJlNzBj
ZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVu
Y3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rp
b24uaApAQCAtMzIsNiArMzIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ2FsbChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNvbnN0cnVjdChFeGVjU3RhdGUqKTsKK0Vu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSopOwor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24oRXhl
Y1N0YXRlKik7CiAKIGNsYXNzIEpTQm91bmRGdW5jdGlvbiA6IHB1YmxpYyBKU0Z1bmN0aW9uIHsK
IHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAppbmRleCBjYmE1YWMxYWEwNThhYzM5ZWU2ZTk2MjUyNWE0N2NjODY4YjEyODkxLi4z
Y2UwNmM2NjBmNTNlZmFiZmE0NTI0M2VmY2YxYWU0M2NhYTM3YzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0yODIsMTIgKzI4
MiwxNCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0KFZNJiB2bSkKICAgICBtX2ludGVybmFs
RnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVT
dHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKTsKICAgICBKU0Z1
bmN0aW9uKiBjYWxsRnVuY3Rpb24gPSAwOwogICAgIEpTRnVuY3Rpb24qIGFwcGx5RnVuY3Rpb24g
PSAwOwotICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPmFkZEZ1bmN0aW9uUHJvcGVydGllcyhleGVj
LCB0aGlzLCAmY2FsbEZ1bmN0aW9uLCAmYXBwbHlGdW5jdGlvbik7CisgICAgSlNGdW5jdGlvbiog
aGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbiA9IDA7CisgICAgbV9mdW5jdGlvblByb3RvdHlwZS0+
YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKGV4ZWMsIHRoaXMsICZjYWxsRnVuY3Rpb24sICZhcHBseUZ1
bmN0aW9uLCAmaGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAgICAgbV9jYWxsRnVuY3Rpb24u
c2V0KHZtLCB0aGlzLCBjYWxsRnVuY3Rpb24pOwogICAgIG1fYXBwbHlGdW5jdGlvbi5zZXQodm0s
IHRoaXMsIGFwcGx5RnVuY3Rpb24pOwogICAgIG1fYXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uLnNl
dCh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCB2bS5wcm9wZXJ0eU5h
bWVzLT52YWx1ZXMuc3RyaW5nKCksIGFycmF5UHJvdG9GdW5jVmFsdWVzKSk7CiAgICAgbV9pbml0
aWFsaXplUHJvbWlzZUZ1bmN0aW9uLnNldCh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlQnVp
bHRpbkZ1bmN0aW9uKHZtLCBvcGVyYXRpb25zUHJvbWlzZUluaXRpYWxpemVQcm9taXNlQ29kZUdl
bmVyYXRvcih2bSksIHRoaXMpKTsKICAgICBtX25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24u
c2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIG9wZXJh
dGlvbnNQcm9taXNlTmV3UHJvbWlzZUNhcGFiaWxpdHlDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcykp
OworICAgIG1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24uc2V0KHZtLCB0
aGlzLCBoYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKTsKICAgICBtX251bGxHZXR0ZXJGdW5jdGlv
bi5zZXQodm0sIHRoaXMsIE51bGxHZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlKHZtLCBOdWxsR2V0dGVy
RnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSkpKTsKICAgICBtX251bGxTZXR0ZXJGdW5jdGlvbi5zZXQodm0sIHRoaXMsIE51bGxTZXR0
ZXJGdW5jdGlvbjo6Y3JlYXRlKHZtLCBOdWxsU2V0dGVyRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpKTsKICAgICBtX29iamVjdFBy
b3RvdHlwZS5zZXQodm0sIHRoaXMsIE9iamVjdFByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBP
YmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywganNOdWxsKCkpKSk7CkBA
IC01MDYsNiArNTA4LDkgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBKU0Z1bmN0aW9u
KiBwcml2YXRlRnVuY1RvSW50ZWdlciA9IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlv
bih2bSwgZ2xvYmFsT2JqZWN0VG9JbnRlZ2VyQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpOwogICAg
IEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheUxlbmd0aCA9IEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5n
dGgpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJheVNvcnQgPSBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVG
dW5jU29ydCk7CisgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24gPSBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBpc0JvdW5kRnVuY3Rpb24s
IElzQm91bmRGdW5jdGlvbkludHJpbnNpYyk7CisgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNI
YXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAs
IFN0cmluZygpLCBoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pOworICAgIEpTRnVuY3Rpb24qIHBy
aXZhdGVGdW5jSW5zdGFuY2VPZiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZiwgSW5zdGFuY2VPZkludHJpbnNpYyk7
CiAKICAgICBHbG9iYWxQcm9wZXJ0eUluZm8gc3RhdGljR2xvYmFsc1tdID0gewogICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TmFOLCBqc05hTigpLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCkBAIC01MjAsNiArNTI1LDkgQEAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFt
ZSAjIyBDb25zdHJ1Y3QKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPlR5cGVFcnJvclByaXZhdGVOYW1lLCBtX3R5cGVFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5TGVuZ3RoUHJpdmF0ZU5hbWUsIHByaXZh
dGVGdW5jVHlwZWRBcnJheUxlbmd0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dHlwZWRBcnJh
eVNvcnRQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+aXNCb3VuZEZ1bmN0aW9uUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSXNCb3Vu
ZEZ1bmN0aW9uLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5jZUJvdW5kRnVuY3Rp
b25Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNIYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24sIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPmluc3RhbmNlT2ZQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJbnN0
YW5jZU9mLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5CdWlsdGluTG9nUHJpdmF0ZU5hbWUsIGJ1
aWx0aW5Mb2csIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkFycmF5UHJpdmF0ZU5hbWUsIGFycmF5
Q29uc3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPk51bWJlclByaXZhdGVOYW1lLCBu
dW1iZXJDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLApAQCAt
NTU3LDYgKzU2NSw3IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgbV9zcGVjaWFsUG9p
bnRlcnNbU3BlY2lhbDo6QXBwbHlGdW5jdGlvbl0gPSBtX2FwcGx5RnVuY3Rpb24uZ2V0KCk7CiAg
ICAgbV9zcGVjaWFsUG9pbnRlcnNbU3BlY2lhbDo6T2JqZWN0Q29uc3RydWN0b3JdID0gb2JqZWN0
Q29uc3RydWN0b3I7CiAgICAgbV9zcGVjaWFsUG9pbnRlcnNbU3BlY2lhbDo6QXJyYXlDb25zdHJ1
Y3Rvcl0gPSBhcnJheUNvbnN0cnVjdG9yOworICAgIG1fc3BlY2lhbFBvaW50ZXJzW1NwZWNpYWw6
Okhhc0luc3RhbmNlU3ltYm9sXSA9IG1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVu
Y3Rpb24uZ2V0KCk7CiAKICAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2ln
bmVkPihMaW5rVGltZUNvbnN0YW50OjpEZWZpbmVQcm9wZXJ0eUZ1bmN0aW9uKV0gPSBtX2RlZmlu
ZVByb3BlcnR5RnVuY3Rpb24uZ2V0KCk7CiAKQEAgLTgwOSw2ICs4MTgsNyBAQCB2b2lkIEpTR2xv
YmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fYXJyYXlQcm90b1ZhbHVlc0Z1
bmN0aW9uKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9pbml0aWFsaXplUHJv
bWlzZUZ1bmN0aW9uKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9uZXdQcm9t
aXNlQ2FwYWJpbGl0eUZ1bmN0aW9uKTsKKyAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+
bV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAgICAgdmlzaXRvci5h
cHBlbmQoJnRoaXNPYmplY3QtPm1fdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIpOwogICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX21vZHVsZUxvYWRlcik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDhlMTYyOWM1YmJl
YTY3OTQ5NDgzYWQzY2M3ODE4OTNiODRkODUxMDQuLjVmMzhhMjRmOGI5MWI3OWI3MzZiYTFjOTRh
ODZiMTY3ZjVmMGViOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaApAQCAtMjIwLDYgKzIyMCw3IEBAIHByb3RlY3RlZDoKICAgICBXcml0ZUJh
cnJpZXI8SlNGdW5jdGlvbj4gbV9hcnJheVByb3RvVmFsdWVzRnVuY3Rpb247CiAgICAgV3JpdGVC
YXJyaWVyPEpTRnVuY3Rpb24+IG1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbjsKICAgICBXcml0
ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9uZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uOworICAg
IFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJv
bEZ1bmN0aW9uOwogICAgIFdyaXRlQmFycmllcjxHZXR0ZXJTZXR0ZXI+IG1fdGhyb3dUeXBlRXJy
b3JHZXR0ZXJTZXR0ZXI7CiAKICAgICBXcml0ZUJhcnJpZXI8TW9kdWxlTG9hZGVyT2JqZWN0PiBt
X21vZHVsZUxvYWRlcjsKQEAgLTQzMyw2ICs0MzQsNyBAQCBwdWJsaWM6CiAgICAgSlNGdW5jdGlv
biogYXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheVByb3Rv
VmFsdWVzRnVuY3Rpb24uZ2V0KCk7IH0KICAgICBKU0Z1bmN0aW9uKiBpbml0aWFsaXplUHJvbWlz
ZUZ1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFsaXplUHJvbWlzZUZ1bmN0aW9uLmdl
dCgpOyB9CiAgICAgSlNGdW5jdGlvbiogbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbi5nZXQoKTsgfQorICAg
IEpTRnVuY3Rpb24qIGZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbi5nZXQo
KTsgfQogICAgIEdldHRlclNldHRlciogdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoVk0mIHZt
KQogICAgIHsKICAgICAgICAgaWYgKCFtX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDBiMGZhMmQ0NGQ4
YmZlNmIxYjIwZWNmMmVmYWFiODU1NDY0MDIxYjguLjMyYzk2ZDgzNjcxZTE0ZGMxNmNkYjJjZDIx
NTg4OWM0Y2I2MzdiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAKQEAgLTE0NTcsOCArMTQ1NywyMSBAQCBjb25zdCBIYXNoVGFibGVWYWx1ZSogSlNPYmpl
Y3Q6OmZpbmRQcm9wZXJ0eUhhc2hFbnRyeShQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogICAg
IHJldHVybiAwOwogfQogCi1ib29sIEpTT2JqZWN0OjpoYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgdmFsdWUpCitib29sIEpTT2JqZWN0OjpoYXNJbnN0YW5jZShFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUgaGFzSW5zdGFuY2VTeW1ib2wpCiB7CisKKyAg
ICBpZiAoIWhhc0luc3RhbmNlU3ltYm9sLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgaGFzSW5zdGFu
Y2VTeW1ib2wgIT0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFz
SW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpKSB7CisgICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOwor
ICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IEpTQzo6Z2V0Q2FsbERhdGEoaGFzSW5zdGFuY2VT
eW1ib2wsIGNhbGxEYXRhKTsKKyAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkK
KyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsICJSaWdodCBoYW5kIHNp
ZGUgb2YgaW5zdGFuY2VvZiBleHByZXNzaW9uIHNob3VsZCBoYXZlIGEgY2FsbGFibGUgU3ltYm9s
Lmhhc0luc3RhbmNlIHByb3BlcnR5LCB1bmxlc3MgdGhhdCBwcm9wZXJ0eSBpcyB1bmRlZmluZWQg
b3IgbnVsbC4iKTsKKworICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgICAg
ICBhcmdzLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChleGVj
LCBoYXNJbnN0YW5jZVN5bWJvbCwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzLCBhcmdzKTsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdC50b0Jvb2xlYW4oZXhlYyk7CisgICAgfQorCiAgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKICAgICBUeXBlSW5mbyBpbmZvID0gc3RydWN0dXJlKHZtKS0+dHlwZUlu
Zm8oKTsKICAgICBpZiAoaW5mby5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpCkBAIC0x
NDY5LDYgKzE0ODIsMTMgQEAgYm9vbCBKU09iamVjdDo6aGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHZhbHVlKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBKU09iamVj
dDo6aGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpT
VmFsdWUgaGFzSW5zdGFuY2VTeW1ib2wgPSBnZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmhhc0luc3RhbmNlU3ltYm9sKTsKKworICAgIHJldHVybiBoYXNJbnN0YW5jZShleGVjLCB2YWx1
ZSwgaGFzSW5zdGFuY2VTeW1ib2wpOworfQorCiBib29sIEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5z
dGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvKQogewog
ICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKQEAgLTE0ODcsNiArMTUwNywxNCBAQCBib29sIEpT
T2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
LCBKU1ZhbHVlIHByb3RvKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YoRXhlY1N0YXRlKiBleGVj
KQoreworICAgIEpTVmFsdWUgdmFsdWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKKyAg
ICBKU1ZhbHVlIHByb3RvID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSk7CisKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNl
KGV4ZWMsIHZhbHVlLCBwcm90bykpKTsKK30KKwogdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlO
YW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5
JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBvYmplY3QtPm1l
dGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywg
cHJvcGVydHlOYW1lcywgbW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuaAppbmRleCBhYmY1YTViZDk2ZjdlMTQyYWVkMDlmNzdhMzM5ZjQzZTg4YWEwZjZmLi4zYmRl
OTkwZmUxMzA5ZTlhNzVlNWNiOTI0Y2E3MDZlZjBkNmIyMmNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTQ4NSw2ICs0ODUsNyBAQCBwdWJsaWM6CiAKICAg
ICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoY29uc3QgSlNP
YmplY3QqLCBFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKTsKIAorICAgIEpTX0VY
UE9SVF9QUklWQVRFIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwg
SlNWYWx1ZSBoYXNJbnN0YW5jZVN5bWJvbCk7CiAgICAgYm9vbCBoYXNJbnN0YW5jZShFeGVjU3Rh
dGUqLCBKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBkZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0
YXRlKiwgSlNWYWx1ZSwgSlNWYWx1ZSBwcm90b3R5cGVQcm9wZXJ0eSk7CiAKQEAgLTk3NCw2ICs5
NzUsOCBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKK0pTX0VYUE9SVF9QUklWQVRFIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKEV4ZWNTdGF0
ZSopOworCiBpbmxpbmUgSlNGaW5hbE9iamVjdCogSlNGaW5hbE9iamVjdDo6Y3JlYXRlKAogICAg
IEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZseSogYnV0dGVy
Zmx5KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVC
YXJyaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaApp
bmRleCAwZjcwZTFlYTAwYzYyMjBhZmQ4MDI3ODk2ODFiOWQ5OGNhYTg0YTk2Li5iNzI3ZDE4NWU0
ZDcwZTE5OWVmZmNlMGUxYWNhMDRjZjk1MjgzNTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaApAQCAtMTUyLDE0ICsxNTIsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0dldHRlclNldHRlcigpIGNvbnN0IHsgcmV0dXJuIGdldCgpLmlzR2V0dGVyU2V0
dGVyKCk7IH0KICAgICBib29sIGlzQ3VzdG9tR2V0dGVyU2V0dGVyKCkgY29uc3QgeyByZXR1cm4g
Z2V0KCkuaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKTsgfQogICAgIAotICAgIEpTVmFsdWUqIHNsb3Qo
KQorICAgIEpTVmFsdWUqIHNsb3QoKSBjb25zdAogICAgIHsgCi0gICAgICAgIHVuaW9uIHsKLSAg
ICAgICAgICAgIEVuY29kZWRKU1ZhbHVlKiB2OwotICAgICAgICAgICAgSlNWYWx1ZSogc2xvdDsK
LSAgICAgICAgfSB1OwotICAgICAgICB1LnYgPSAmbV92YWx1ZTsKLSAgICAgICAgcmV0dXJuIHUu
c2xvdDsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxKU1ZhbHVlKj4oJm1fdmFsdWUpOwog
ICAgIH0KICAgICAKICAgICBpbnQzMl90KiB0YWdQb2ludGVyKCkgeyByZXR1cm4gJmJpdHdpc2Vf
Y2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oJm1fdmFsdWUpLT5hc0JpdHMudGFnOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>266588</attachid>
            <date>2015-12-03 19:12:21 -0800</date>
            <delta_ts>2015-12-09 19:30:55 -0800</delta_ts>
            <desc>Benchmark results</desc>
            <filename>rV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Keiths-MacBook-Pro-5_20151203_1727_report.txt</filename>
            <type>text/plain</type>
            <size>64543</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0
YW5lLCBLcmFrZW4sIEpTUmVncmVzcywgQXNtQmVuY2gsIGFuZCBDb21wcmVzc2lvbkJlbmNoIG9u
IEtlaXRocy1NYWNCb29rLVByby01IChNYWNCb29rUHJvMTEsMykuCgpWTXMgdGVzdGVkOgoiVE9U
IiBhdCAvVm9sdW1lcy9EYXRhL2NsZWFuL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9q
c2MKIk1DIiBhdCAvVm9sdW1lcy9EYXRhL3dzMi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL1JlbGVh
c2UvanNjCgpDb2xsZWN0ZWQgNCBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGggNCBWTSBp
bnZvY2F0aW9ucyBwZXIgYmVuY2htYXJrLiBFbWl0dGVkIGEgY2FsbCB0byBnYygpIGJldHdlZW4g
c2FtcGxlIG1lYXN1cmVtZW50cy4KVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24gcGVyIFZNIGlu
dm9jYXRpb24gZm9yIHdhcm0tdXAuIFVzZWQgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNlVGltZSgp
IGZ1bmN0aW9uIHRvIGdldCBtaWNyb3NlY29uZC1sZXZlbAp0aW1pbmcuIFJlcG9ydGluZyBiZW5j
aG1hcmsgZXhlY3V0aW9uIHRpbWVzIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzIGluIG1p
bGxpc2Vjb25kcy4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVE9UICAgICAgICAgICAgICAgICAgICAgICAgTUMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgClN1blNwaWRlcjoKICAgM2QtY3ViZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC40NTY3Ky0wLjA4NjUgICAgICAg
ICAgICA0LjQwMTYrLTAuMTMyOSAgICAgICAgICBtaWdodCBiZSAxLjAxMjV4IGZhc3RlcgogICAz
ZC1tb3JwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjgxNTUr
LTAuMDU2MiAgICAgPyAgICAgIDUuMDc0OCstMC4zNTI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDUz
OXggc2xvd2VyCiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuOTkxOCstMC4wMzY5ICAgICA/ICAgICAgNS4yNDc0Ky0wLjgyMDkgICAgICAgID8g
bWlnaHQgYmUgMS4wNTEyeCBzbG93ZXIKICAgYWNjZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi4wOTg4Ky0wLjEwNTUgICAgID8gICAgICAyLjI4NTArLTAu
NjA2MCAgICAgICAgPyBtaWdodCBiZSAxLjA4ODd4IHNsb3dlcgogICBhY2Nlc3MtZmFubmt1Y2gg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjM2NzErLTAuMDg0MiAgICAgPyAg
ICAgIDUuMzkyMCstMC4xNzcxICAgICAgICA/CiAgIGFjY2Vzcy1uYm9keSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDk0NCstMC4zMzI1ICAgICAgICAgICAgMi40NDEx
Ky0wLjE5MDQgICAgICAgICAgbWlnaHQgYmUgMS4wMjE5eCBmYXN0ZXIKICAgYWNjZXNzLW5zaWV2
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wODY3Ky0wLjU3OTYgICAg
ICAgICAgICAyLjk1NDIrLTAuMDk2MiAgICAgICAgICBtaWdodCBiZSAxLjA0NDl4IGZhc3Rlcgog
ICBiaXRvcHMtM2JpdC1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjA5
MjgrLTAuMDI3OCAgICAgPyAgICAgIDEuMjU1NistMC41NjE4ICAgICAgICA/IG1pZ2h0IGJlIDEu
MTQ5MHggc2xvd2VyCiAgIGJpdG9wcy1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMuMDQ5NistMC4wNzk4ICAgICA/ICAgICAgMy4wNjQyKy0wLjA0MTAgICAgICAg
ID8KICAgYml0b3BzLWJpdHdpc2UtYW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MS45NTE2Ky0wLjI0MDQgICAgICAgICAgICAxLjg5NzgrLTAuMDcxNiAgICAgICAgICBtaWdodCBi
ZSAxLjAyODN4IGZhc3RlcgogICBiaXRvcHMtbnNpZXZlLWJpdHMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjg4NzgrLTAuMjc1NSAgICAgICAgICAgIDIuODA4OCstMC4xNDM1ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDI4MXggZmFzdGVyCiAgIGNvbnRyb2xmbG93LXJlY3Vyc2l2ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjcyOSstMC4xNDIzICAgICAgICAgICAgMi4y
NjUzKy0wLjA1ODMgICAgICAgIAogICBjcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzLjgwNjMrLTAuMTM5NSAgICAgICAgICAgIDMuNzk5OSstMC4xMTM5
ICAgICAgICAKICAgY3J5cHRvLW1kNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi41NDgwKy0wLjQzMzYgICAgID8gICAgICAyLjU4NzgrLTAuNjQxNCAgICAgICAgPyBt
aWdodCBiZSAxLjAxNTZ4IHNsb3dlcgogICBjcnlwdG8tc2hhMSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyLjI4NjMrLTAuMDczMiAgICAgPyAgICAgIDIuNDc5MSstMC4x
MzI1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDg0M3ggc2xvd2VyCiAgIGRhdGUtZm9ybWF0LXRvZnRl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNjk0MCstMC40MzAzICAgICAgICAg
ICAgNi41MDI4Ky0wLjEzNDEgICAgICAgICAgbWlnaHQgYmUgMS4wMjk0eCBmYXN0ZXIKICAgZGF0
ZS1mb3JtYXQteHBhcmIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4zNTY2Ky0w
LjE4MzIgICAgID8gICAgICA0LjY4MTIrLTEuMDA4MSAgICAgICAgPyBtaWdodCBiZSAxLjA3NDV4
IHNsb3dlcgogICBtYXRoLWNvcmRpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjcxNTUrLTAuMDU5NSAgICAgPyAgICAgIDIuNzI2NSstMC4xMDcwICAgICAgICA/CiAg
IG1hdGgtcGFydGlhbC1zdW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTQ5
MCstMC4xMDUzICAgICA/ICAgICAgNC41NjkwKy0wLjI1ODkgICAgICAgID8KICAgbWF0aC1zcGVj
dHJhbC1ub3JtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS44ODk1Ky0wLjIwNjEg
ICAgID8gICAgICAyLjA5MzYrLTAuNzM4MiAgICAgICAgPyBtaWdodCBiZSAxLjEwODB4IHNsb3dl
cgogICByZWdleHAtZG5hICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
LjI0MjErLTAuNjA5NiAgICAgICAgICAgIDUuODIwMSstMC4xNzgwICAgICAgICAgIG1pZ2h0IGJl
IDEuMDcyNXggZmFzdGVyCiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQuMDEyOCstMC4wODE2ICAgICAgICAgICAgMy45ODk1Ky0wLjA1NjYgICAg
ICAgIAogICBzdHJpbmctZmFzdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA1LjY4NzUrLTAuMTg1NSAgICAgICAgICAgIDUuNTc2NCstMC4xMDkxICAgICAgICAgIG1pZ2h0
IGJlIDEuMDE5OXggZmFzdGVyCiAgIHN0cmluZy10YWdjbG91ZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDcuOTY4MSstMS4xNDMxICAgICAgICAgICAgNy44NzY0Ky0wLjk2Mjgg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTE2eCBmYXN0ZXIKICAgc3RyaW5nLXVucGFjay1jb2RlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4yMzAxKy0wLjUyNTIgICAgID8gICAgIDE4
LjI2NjcrLTIuMjM2MSAgICAgICAgPwogICBzdHJpbmctdmFsaWRhdGUtaW5wdXQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjUzNzQrLTAuNDk4NSAgICAgICAgICAgIDQuMTkyNistMC4x
NjczICAgICAgICAgIG1pZ2h0IGJlIDEuMDgyMnggZmFzdGVyCgogICA8YXJpdGhtZXRpYz4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjM4ODArLTAuMDgwMyAgICAgPyAg
ICAgIDQuMzk0MistMC4xNDkzICAgICAgICA/IG1pZ2h0IGJlIDEuMDAxNHggc2xvd2VyCgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRP
VCAgICAgICAgICAgICAgICAgICAgICAgIE1DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIApMb25nU3BpZGVyOgogICAzZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNzkzLjEzMzcrLTE2Ljk1MjAgICAgICAgICA3NzguNDk5MystOC42
MTI1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4OHggZmFzdGVyCiAgIDNkLW1vcnBoICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0NDAuNzE0MystMTIuMjEzNiAgICAgICAg
MTQzMS42NTQ4Ky04LjYxNzYgICAgICAgIAogICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNTgxLjc3NDgrLTguMjk4NCAgICAgICAgICA1ODAuMjQ3NSst
Ny44MDQ5ICAgICAgICAKICAgYWNjZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDc2MS43NzIyKy02LjY4NjEgICAgICAgICAgNzYwLjk1MjUrLTguMzUwMyAgICAg
ICAgCiAgIGFjY2Vzcy1mYW5ua3VjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
ODIuNjczOCstOC43NTE0ICAgICAgICAgIDI4MS41MDkwKy02LjMwNDIgICAgICAgIAogICBhY2Nl
c3MtbmJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDg5LjA3MTMrLTUu
OTgwOSAgICAgPyAgICA0OTAuMjkwMystNC40NTcxICAgICAgICA/CiAgIGFjY2Vzcy1uc2lldmUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNTUuMDgyOSstOS43MzAxICAgICAg
ICAgIDM0Ny43NDU4Ky03LjgzODIgICAgICAgICAgbWlnaHQgYmUgMS4wMjExeCBmYXN0ZXIKICAg
Yml0b3BzLTNiaXQtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAgICAzMi4wNDYz
Ky0xLjIyMzQgICAgID8gICAgIDMzLjYxODgrLTMuNzUzOCAgICAgICAgPyBtaWdodCBiZSAxLjA0
OTF4IHNsb3dlcgogICBiaXRvcHMtYml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDcxLjE0MTgrLTEuNDYxOCAgICAgPyAgICAgNzIuNjAzNSstNC4wNzQxICAgICAgICA/
IG1pZ2h0IGJlIDEuMDIwNXggc2xvd2VyCiAgIGJpdG9wcy1uc2lldmUtYml0cyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzODkuMDEwNystMTEuMDE0NSAgICAgICAgIDM4NC4yMzUwKy00
LjAwMzkgICAgICAgICAgbWlnaHQgYmUgMS4wMTI0eCBmYXN0ZXIKICAgY29udHJvbGZsb3ctcmVj
dXJzaXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQxNi44MDg4Ky05LjEzMTUgICAgID8g
ICAgNDE5LjYzNTcrLTEwLjE3NjMgICAgICAgPwogICBjcnlwdG8tYWVzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNTI4Ljg4NjcrLTExLjQ4NTMgICAgPyAgICA1MzIuNzc0
NystMy4xMTg3ICAgICAgICA/CiAgIGNyeXB0by1tZDUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0ODkuMTIyMystODguMzgzOSAgICAgICAgIDQ0MS44MTAzKy02LjczMzEg
ICAgICAgICAgbWlnaHQgYmUgMS4xMDcxeCBmYXN0ZXIKICAgY3J5cHRvLXNoYTEgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYzNy45MDk1Ky03LjE5OTggICAgICAgICAgNjM3
LjE5MzErLTUuNjUxMCAgICAgICAgCiAgIGRhdGUtZm9ybWF0LXRvZnRlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0OTQuNzYwMSstMTYuMjkwNyAgICAgICAgIDQ5My43NjczKy0xMi45
Mzc0ICAgICAgIAogICBkYXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNjE5LjUyODMrLTQuMjM1NCAgICAgICAgICA2MTUuMzQyOCstMTAuNzc4NiAgICAgICAK
ICAgaGFzaC1tYXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzOS43
ODExKy0yLjI4NjUgICAgID8gICAgMTQyLjYyNzMrLTcuMzM1NCAgICAgICAgPyBtaWdodCBiZSAx
LjAyMDR4IHNsb3dlcgogICBtYXRoLWNvcmRpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNDY3Ljk0MTgrLTEwLjgyNzggICAgPyAgICA0NzEuMjg0NistMTIuNDg1MCAgICAg
ICA/CiAgIG1hdGgtcGFydGlhbC1zdW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
NDYuMjgwMistNS4wOTgyICAgICAgICAgIDQ0Mi4yNjY4Ky00LjQ2NDEgICAgICAgIAogICBtYXRo
LXNwZWN0cmFsLW5vcm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTI3LjU3MjArLTYu
MzU4OCAgICAgPyAgICA1MzEuNjEyNystOS41OTM1ICAgICAgICA/CiAgIHN0cmluZy1iYXNlNjQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNDAuOTA0NistMTAuMzU1NiAgICA/
ICAgIDM0OC4wNjQzKy0yLjE0MDIgICAgICAgID8gbWlnaHQgYmUgMS4wMjEweCBzbG93ZXIKICAg
c3RyaW5nLWZhc3RhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0MS44OTI1
Ky01Ljc1MzMgICAgID8gICAgMzQ0LjUzNTMrLTkuNzk5NiAgICAgICAgPwogICBzdHJpbmctdGFn
Y2xvdWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcwLjM3NTIrLTQuMDY5MCAg
ICAgPyAgICAxNzEuNDkwOCstMy4zMzA4ICAgICAgICA/CgogICA8Z2VvbWV0cmljPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzczLjAyOTgrLTMuNDU3NyAgICAgICAgICAz
NzIuNTU2OSstMi43ODI0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAxM3ggZmFzdGVyCgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPVCAg
ICAgICAgICAgICAgICAgICAgICAgIE1DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIApWOFNwaWRlcjoKICAgY3J5cHRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA0Ni4xMjQ3Ky0xLjQxMTUgICAgID8gICAgIDQ2LjU5MDgrLTIuMzEyMSAg
ICAgICAgPyBtaWdodCBiZSAxLjAxMDF4IHNsb3dlcgogICBkZWx0YWJsdWUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcyLjU5MzMrLTIuNzc2MCAgICAgPyAgICAgNzIu
Nzg3MSstOC40NDQ5ICAgICAgICA/CiAgIGVhcmxleS1ib3llciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMzguNTEzMystMS41MjYyICAgICA/ICAgICAzOS41Mjk1Ky0wLjY2
NTkgICAgICAgID8gbWlnaHQgYmUgMS4wMjY0eCBzbG93ZXIKICAgcmF5dHJhY2UgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNy4yMDAzKy0xLjExNjAgICAgICAgICAg
IDI3LjA2NjcrLTIuNTY3NiAgICAgICAgCiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNTcuNjkzMystMC41ODcxICAgICA/ICAgICA1OC40Mzg4Ky0w
Ljc2NzcgICAgICAgID8gbWlnaHQgYmUgMS4wMTI5eCBzbG93ZXIKICAgcmljaGFyZHMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OS43NDYzKy0xLjUxODIgICAgICAg
ICAgIDQ4Ljg5NDUrLTEuMTU3NiAgICAgICAgICBtaWdodCBiZSAxLjAxNzR4IGZhc3RlcgogICBz
cGxheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0Ljc5OTMr
LTIuMDM2MSAgICAgICAgICAgMzMuMTQzNystMS4zMjkzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ5
OXggZmFzdGVyCgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQ0LjU3ODgrLTAuNTc0NSAgICAgICAgICAgNDQuNDM5MSstMC40MTQ4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDAzMXggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPVCAgICAgICAgICAgICAgICAgICAgICAgIE1D
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApPY3RhbmU6CiAgIGVuY3J5
cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4xNDkxNCstMC4w
MDI0MCAgICA/ICAgICAwLjE1MDAxKy0wLjAwNjk5ICAgICAgID8KICAgZGVjcnlwdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc4OTk5Ky0wLjAxODkzICAgICAg
ICAgIDIuNzQ3NTgrLTAuMDQxODQgICAgICAgICBtaWdodCBiZSAxLjAxNTR4IGZhc3RlcgogICBk
ZWx0YWJsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuMTM0MzMr
LTAuMDA1NzAgICAgICAgICAgMC4xMzAwNystMC4wMDY5NSAgICAgICAgIG1pZ2h0IGJlIDEuMDMy
OHggZmFzdGVyCiAgIGVhcmxleSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMC4yNzEyOCstMC4wMDM4MCAgICA/ICAgICAwLjI3NDcxKy0wLjAwNjg5ICAgICAgID8g
bWlnaHQgYmUgMS4wMTI3eCBzbG93ZXIKICAgYm95ZXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjA5NzQ4Ky0wLjA0OTYxICAgID8gICAgIDQuMTk2MjcrLTAu
MTEyMDAgICAgICAgPyBtaWdodCBiZSAxLjAyNDF4IHNsb3dlcgogICBuYXZpZXItc3Rva2VzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDQuNjI1OTQrLTAuMDY4ODAgICAgPyAg
ICAgNC42NDk2MystMC4wNTY3OSAgICAgICA/CiAgIHJheXRyYWNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeDIgICAgICAgMC44MTgxNystMC4wMDY0NiAgICA/ICAgICAwLjgyNDEw
Ky0wLjAwNDgyICAgICAgID8KICAgcmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB4MiAgICAgICAwLjA4NDEwKy0wLjAwMTE1ICAgICAgICAgIDAuMDgzMjErLTAuMDAxNzEg
ICAgICAgICBtaWdodCBiZSAxLjAxMDd4IGZhc3RlcgogICBzcGxheSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuMzI3NjgrLTAuMDAyNzkgICAgPyAgICAgMC4z
MzE1NSstMC4wMDQ5NCAgICAgICA/IG1pZ2h0IGJlIDEuMDExOHggc2xvd2VyCiAgIHJlZ2V4cCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAyMy4wODI0MCstMC42ODc2
NCAgICA/ICAgIDIzLjI1NzYyKy0wLjM4OTU0ICAgICAgID8KICAgcGRmanMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDM1LjczODc5Ky0xLjQ3OTM2ICAgID8gICAg
MzUuOTg2NzArLTEuMTU5NjkgICAgICAgPwogICBtYW5kcmVlbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHgyICAgICAgNDAuMDk0MTgrLTAuNDY5ODcgICAgPyAgICA0MC4zNzc0Nyst
MC4zNDM3NiAgICAgICA/CiAgIGdiZW11ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeDIgICAgICAyNy4yNjQyNSstMC4zMTk2NSAgICA/ICAgIDI5LjU2MDM1Ky03LjE5NjMwICAg
ICAgID8gbWlnaHQgYmUgMS4wODQyeCBzbG93ZXIKICAgY2xvc3VyZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLjU1NTQxKy0wLjAwNTY5ICAgICAgICAgIDAuNTU0
NDIrLTAuMDA3NTEgICAgICAgCiAgIGpxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNy4wMjA5OCstMC4wNDYyNiAgICA/ICAgICA3LjA1NDQ3Ky0wLjA1NjU1
ICAgICAgID8KICAgYm94MmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAg
ICAgICA4Ljc1NjA3Ky0wLjA2NTYxICAgID8gICAgIDguODA5ODUrLTAuMTUwODkgICAgICAgPwog
ICB6bGliICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAzNzIuMzQx
NzIrLTcuNDQzNDEgICAgPyAgIDM3NC40NjMzNCstNi42NTkzNCAgICAgICA/CiAgIHR5cGVzY3Jp
cHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgIDYzOS4wNTI4NistNi4yOTc3
NiAgICAgICAgNjM0Ljk0MjE0Ky0xMS4yOTk5OSAgICAgIAoKICAgPGdlb21ldHJpYz4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjA0ODk1Ky0wLjAxNzQ3ICAgID8gICAg
IDUuMDgxMzIrLTAuMDY4NDQgICAgICAgPyBtaWdodCBiZSAxLjAwNjR4IHNsb3dlcgoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUT1Qg
ICAgICAgICAgICAgICAgICAgICAgICBNQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKS3Jha2VuOgogICBhaS1hc3RhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEyMy45MzkrLTIuNTI1ICAgICAgPyAgICAgMTI2LjA2MystNC45MTMgICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDE3MXggc2xvd2VyCiAgIGF1ZGlvLWJlYXQtZGV0ZWN0aW9uICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1LjUxMSstMC4yMjIgICAgICAgICAgICAgNDUu
MjMyKy0wLjI2NCAgICAgICAgIAogICBhdWRpby1kZnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA5Mi44ODkrLTMuMTQ0ICAgICAgICAgICAgIDkyLjEwOCstMi41Nzgg
ICAgICAgICAKICAgYXVkaW8tZmZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMzMuMjczKy0wLjU4MiAgICAgID8gICAgICAzMy41OTIrLTEuNTAzICAgICAgICAgPwog
ICBhdWRpby1vc2NpbGxhdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NC4x
ODUrLTAuMjc3ICAgICAgPyAgICAgIDU0LjI3MistMC41NjAgICAgICAgICA/CiAgIGltYWdpbmct
ZGFya3Jvb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU2LjYyNistMC4zNDEg
ICAgICA/ICAgICAgNTguMzg0Ky00LjU5MCAgICAgICAgID8gbWlnaHQgYmUgMS4wMzEweCBzbG93
ZXIKICAgaW1hZ2luZy1kZXNhdHVyYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NDYuNDQ3Ky0yLjAxNiAgICAgID8gICAgICA0Ny40NTMrLTUuNjA0ICAgICAgICAgPyBtaWdodCBi
ZSAxLjAyMTd4IHNsb3dlcgogICBpbWFnaW5nLWdhdXNzaWFuLWJsdXIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4My41MzMrLTEuMDcwICAgICAgPyAgICAgIDg3LjMyNCstMTAuNzA5ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDQ1NHggc2xvd2VyCiAgIGpzb24tcGFyc2UtZmluYW5jaWFsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjY0MSstMi4zMzkgICAgICAgICAgICAgMzQu
NzMyKy0wLjEzMiAgICAgICAgICAgbWlnaHQgYmUgMS4wMjYyeCBmYXN0ZXIKICAganNvbi1zdHJp
bmdpZnktdGluZGVyYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuODE5Ky0yLjQ2NCAg
ICAgID8gICAgICAyMi40NTgrLTIuMzcyICAgICAgICAgPyBtaWdodCBiZSAxLjAyOTN4IHNsb3dl
cgogICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
OS41NjErLTAuODM1ICAgICAgPyAgICAgIDQwLjEwOCstMC40ODEgICAgICAgICA/IG1pZ2h0IGJl
IDEuMDEzOHggc2xvd2VyCiAgIHN0YW5mb3JkLWNyeXB0by1jY20gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMzLjI3NSstMS40OTcgICAgICA/ICAgICAgMzMuODcyKy0wLjkzMiAgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTgweCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXBia2RmMiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOTEuMzQ3Ky0xLjUzMSAgICAgICAgICAgICA5MC43
MDgrLTAuMjA4ICAgICAgICAgCiAgIHN0YW5mb3JkLWNyeXB0by1zaGEyNTYtaXRlcmF0aXZlICAg
ICAgICAgICAgICAgICAgIDM0LjgzMSstMC4zMDYgICAgICA/ICAgICAgMzQuOTk2Ky0wLjYwMCAg
ICAgICAgID8KCiAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDU2LjYzNCstMC41NzUgICAgICA/ICAgICAgNTcuMjM2Ky0wLjY0NCAgICAgICAgID8g
bWlnaHQgYmUgMS4wMTA2eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9UICAgICAgICAgICAgICAgICAgICAgICAgTUMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkpTUmVncmVzczoKICAgYWJj
LWZvcndhcmQtbG9vcC1lcXVhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOC40MDgxKy0w
Ljc4MzYgICAgID8gICAgIDI5LjY5NjIrLTMuOTI5NCAgICAgICAgPyBtaWdodCBiZSAxLjA0NTN4
IHNsb3dlcgogICBhYmMtcG9zdGZpeC1iYWNrd2FyZC1sb29wICAgICAgICAgICAgICAgICAgICAg
ICAgIDI4LjQzNTUrLTEuMzI3MCAgICAgPyAgICAgMjkuNDgxMCstMy45OTgwICAgICAgICA/IG1p
Z2h0IGJlIDEuMDM2OHggc2xvd2VyCiAgIGFiYy1zaW1wbGUtYmFja3dhcmQtbG9vcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjkuMTE3OCstMy4zNjczICAgICAgICAgICAyNy41MzY4Ky0wLjU2
MjkgICAgICAgICAgbWlnaHQgYmUgMS4wNTc0eCBmYXN0ZXIKICAgYWJjLXNpbXBsZS1mb3J3YXJk
LWxvb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAyOC41MzYxKy0xLjUwMzEgICAgICAgICAg
IDI4LjE0NDMrLTIuMzI5MSAgICAgICAgICBtaWdodCBiZSAxLjAxMzl4IGZhc3RlcgogICBhYmMt
c2tpcHB5LWxvb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIxLjU4NzUrLTMu
MjY3OSAgICAgICAgICAgMjEuMDgyMCstMi4zNTQ2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0MHgg
ZmFzdGVyCiAgIGFicy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuNDM4OCstMC4yMDk0ICAgICAgICAgICAgMi40MjA1Ky0wLjA2NjggICAgICAgIAogICBh
ZGFwdC10by1kb3VibGUtZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LjI4NTAr
LTAuODMzMCAgICAgPyAgICAgMTUuNzAzMystMC42MzgxICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3
NHggc2xvd2VyCiAgIGFsaWFzZWQtYXJndW1lbnRzLWdldGJ5dmFsICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuMjU3MCstMC4xNDUwICAgICAgICAgICAgMS4yMzM2Ky0wLjIyMDUgICAgICAgICAg
bWlnaHQgYmUgMS4wMTg5eCBmYXN0ZXIKICAgYWxsb2NhdGUtYmlnLW9iamVjdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi43MDQ4Ky0wLjY1ODkgICAgICAgICAgICAyLjMzNDYrLTAu
MzI2MCAgICAgICAgICBtaWdodCBiZSAxLjE1ODZ4IGZhc3RlcgogICBhcmd1bWVudHMtbmFtZWQt
YW5kLXJlZmxlY3RpdmUgICAgICAgICAgICAgICAgICAgIDEwLjQ5MDcrLTAuNDY5NyAgICAgICAg
ICAgMTAuMzcxOCstMC41MDE5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExNXggZmFzdGVyCiAgIGFy
Z3VtZW50cy1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguOTIxNist
MC41NjQyICAgICAgICAgICAgOC43MDg3Ky0wLjE2MTAgICAgICAgICAgbWlnaHQgYmUgMS4wMjQ0
eCBmYXN0ZXIKICAgYXJndW1lbnRzLXN0cmljdC1tb2RlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOS4zNTc3Ky0xLjI0MjggICAgICAgICAgICA5LjEwNzArLTAuMjM5NiAgICAgICAgICBt
aWdodCBiZSAxLjAyNzV4IGZhc3RlcgogICBhcmd1bWVudHMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA3Ljg5MzArLTAuMjAyNCAgICAgPyAgICAgIDguMjYyNistMS4z
ODg4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ2OHggc2xvd2VyCiAgIGFyaXR5LW1pc21hdGNoLWlu
bGluaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuODI1MystMC4wMzI0ICAgICA/ICAg
ICAgMC44NDIyKy0wLjA5NzIgICAgICAgID8gbWlnaHQgYmUgMS4wMjA2eCBzbG93ZXIKICAgYXJy
YXktYWNjZXNzLXBvbHltb3JwaGljLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgNi45ODg3Ky0w
LjQxMzcgICAgID8gICAgICA3LjAwMjUrLTAuMjgyOCAgICAgICAgPwogICBhcnJheS1ub25hcnJh
eS1wb2x5bW9yaHBpYy1hY2Nlc3MgICAgICAgICAgICAgICAgIDIzLjIwNzErLTAuMjU5MSAgICAg
ICAgICAgMjMuMDkxNistMC41OTM0ICAgICAgICAKICAgYXJyYXktcHJvdG90eXBlLWV2ZXJ5ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3NS42MTg3Ky0yLjE2MjkgICAgICAgICAgIDczLjc1
NTArLTIuMzgzMiAgICAgICAgICBtaWdodCBiZSAxLjAyNTN4IGZhc3RlcgogICBhcnJheS1wcm90
b3R5cGUtZm9yRWFjaCAgICAgICAgICAgICAgICAgICAgICAgICAgIDc1LjA1MTArLTEuMDQ2NCAg
ICAgICAgICAgNzMuMjMwOCstMi4wMDMwICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0OXggZmFzdGVy
CiAgIGFycmF5LXByb3RvdHlwZS1tYXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzgu
NTkxNCstMS40Mzc1ICAgICA/ICAgICA5Ny4zNzYzKy01Ni45MzUyICAgICAgID8gbWlnaHQgYmUg
MS4yMzkweCBzbG93ZXIKICAgYXJyYXktcHJvdG90eXBlLXJlZHVjZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA3NS42NzMyKy04LjM4MjYgICAgICAgICAgIDY4LjcyNDErLTAuMjA5MyAgICAg
ICAgICBtaWdodCBiZSAxLjEwMTF4IGZhc3RlcgogICBhcnJheS1wcm90b3R5cGUtcmVkdWNlUmln
aHQgICAgICAgICAgICAgICAgICAgICAgIDcwLjEzNzUrLTAuODE1NiAgICAgPyAgICAgNzEuMzkx
MystNy40ODgxICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3OXggc2xvd2VyCiAgIGFycmF5LXByb3Rv
dHlwZS1zb21lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzUuODY5MystMS4zNjU4ICAg
ICBeICAgICA3Mi43NjA0Ky0wLjE0NDEgICAgICAgIF4gZGVmaW5pdGVseSAxLjA0Mjd4IGZhc3Rl
cgogICBhcnJheS1zcGxpY2UtY29udGlndW91cyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIz
Ljk5NDArLTEuMzUxOSAgICAgPyAgICAgMjQuOTQzMistMi4xNzQzICAgICAgICA/IG1pZ2h0IGJl
IDEuMDM5Nnggc2xvd2VyCiAgIGFycmF5LXdpdGgtZG91YmxlLWFkZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuNjAxNystMC4zODQwICAgICAgICAgICAgMy40MDEyKy0wLjAxNjUgICAg
ICAgICAgbWlnaHQgYmUgMS4wNTkweCBmYXN0ZXIKICAgYXJyYXktd2l0aC1kb3VibGUtaW5jcmVt
ZW50ICAgICAgICAgICAgICAgICAgICAgICAgMy4wNDg4Ky0wLjExNzcgICAgID8gICAgICAzLjA1
MjcrLTAuMjAxMiAgICAgICAgPwogICBhcnJheS13aXRoLWRvdWJsZS1tdWwtYWRkICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjE2OTkrLTAuMDQxMiAgICAgPyAgICAgIDQuMjA2NSstMC4xOTAx
ICAgICAgICA/CiAgIGFycmF5LXdpdGgtZG91YmxlLXN1bSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuMTA5NCstMC4xNjcxICAgICAgICAgICAgMy4wNDQ5Ky0wLjA0MjggICAgICAgICAg
bWlnaHQgYmUgMS4wMjEyeCBmYXN0ZXIKICAgYXJyYXktd2l0aC1pbnQzMi1hZGQtc3ViICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNS45NDU0Ky0wLjA3MDIgICAgICAgICAgICA1LjkwNzYrLTAu
MDk5NyAgICAgICAgCiAgIGFycmF5LXdpdGgtaW50MzItb3ItZG91YmxlLXN1bSAgICAgICAgICAg
ICAgICAgICAgIDMuMDk0MSstMC4wMzc4ICAgICAgICAgICAgMy4wOTM4Ky0wLjA1NDkgICAgICAg
IAogICBBcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUuNjg3OCst
My45OTM3ICAgICAgICAgICAyNC4zNzkyKy0wLjU0MzQgICAgICAgICAgbWlnaHQgYmUgMS4wNTM3
eCBmYXN0ZXIKICAgQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbG9uZy1saXZlZCAgICAgICAg
ICAgICAxMi4yNjMyKy0xLjY3ODAgICAgID8gICAgIDEyLjM5MDcrLTAuMzcyMiAgICAgICAgPyBt
aWdodCBiZSAxLjAxMDR4IHNsb3dlcgogICBBcnJheUJ1ZmZlci1JbnQzMkFycmF5LWJ5dGVPZmZz
ZXQgICAgICAgICAgICAgICAgICAzLjYyMzErLTAuNDkxNSAgICAgICAgICAgIDMuMzE0MystMC4x
MDMxICAgICAgICAgIG1pZ2h0IGJlIDEuMDkzMnggZmFzdGVyCiAgIEFycmF5QnVmZmVyLUludDhB
cnJheS1hbGxvYy1sYXJnZS1sb25nLWxpdmVkICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUuMzYwMistMC4yMTYxICAgICAgICAgICAyNC45
NzQxKy0wLjU0NDkgICAgICAgICAgbWlnaHQgYmUgMS4wMTU1eCBmYXN0ZXIKICAgQXJyYXlCdWZm
ZXItSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQtYnVmZmVyICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuODk3MCstMy43MDA2ICAgICAg
ICAgICAxOS43MTE4Ky0yLjk3MDEgICAgICAgIAogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxs
b2MtbG9uZy1saXZlZCAgICAgICAgICAgIDEwLjg1MzUrLTAuNDg0OCAgICAgPyAgICAgMTEuMTEw
MCstMS4xNzI5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzNnggc2xvd2VyCiAgIEFycmF5QnVmZmVy
LUludDhBcnJheS1hbGxvYyAgICAgICAgICAgICAgICAgICAgICAgIDkuNTM0NystMC41MjA0ICAg
ICAgICAgICAgOS4xNjM5Ky0wLjE1NTQgICAgICAgICAgbWlnaHQgYmUgMS4wNDA1eCBmYXN0ZXIK
ICAgYXJyb3dmdW5jdGlvbi1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC45
MzgwKy0xLjI0NTAgICAgICAgICAgIDEwLjUzNjIrLTAuNjE4OSAgICAgICAgICBtaWdodCBiZSAx
LjAzODF4IGZhc3RlcgogICBhc21qc19ib29sX2J1ZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA3Ljk3NTArLTEuMzYyNiAgICAgICAgICAgIDcuNTEwMystMC4wNjIxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDYxOXggZmFzdGVyCiAgIGFzc2lnbi1jdXN0b20tc2V0dGVyLXBvbHlt
b3JwaGljICAgICAgICAgICAgICAgICAgIDIuNDQ0NCstMC4zMzAzICAgICAgICAgICAgMi40MjU4
Ky0wLjE4NzQgICAgICAgIAogICBhc3NpZ24tY3VzdG9tLXNldHRlciAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzLjI0NzErLTAuMDY1NSAgICAgPyAgICAgIDMuMzI2MistMC4xOTM5ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDI0NHggc2xvd2VyCiAgIGJhc2ljLXNldCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMzU3NystMS4wMTk0ICAgICAgICAgICAgNy4z
MTQ4Ky0wLjI2MjAgICAgICAgIAogICBiaWctaW50LW11bCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzLjQxODArLTAuNTg1NSAgICAgPyAgICAgIDMuNTIyNistMC41MjM2
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMwNnggc2xvd2VyCiAgIGJvb2xlYW4tdGVzdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODU3OCstMC4wMzA3ICAgICA/ICAgICAg
Mi44NzQzKy0wLjA5NjYgICAgICAgID8KICAgYnJhbmNoLWZvbGQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy40MjM4Ky0wLjAwNzIgICAgICAgICAgICAzLjQxODIrLTAu
MDc2OCAgICAgICAgCiAgIGJyYW5jaC1vbi1zdHJpbmctYXMtYm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICAgMTYuMDM2NistMC41OTQ2ICAgICAgICAgICAxNS44MDQxKy0wLjkzMDcgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTQ3eCBmYXN0ZXIKICAgYnktdmFsLWdlbmVyaWMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi42MTE1Ky0wLjg1ODYgICAgICAgICAgICAyLjU5MDMr
LTAuNzk5MSAgICAgICAgCiAgIGNhbGwtc3ByZWFkLWFwcGx5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjUuNTk5MCstMC40MjQ3ICAgICA/ICAgICAyNS42MjM1Ky0wLjcwOTEgICAg
ICAgID8KICAgY2FsbC1zcHJlYWQtY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMS4xMjAwKy0wLjcyNzggICAgICAgICAgIDIwLjYzNzArLTEuMTYwMiAgICAgICAgICBtaWdo
dCBiZSAxLjAyMzR4IGZhc3RlcgogICBjYXB0dXJlZC1hc3NpZ25tZW50cyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLjQwNTkrLTAuMDE0NyAgICAgPyAgICAgIDAuNDIzOCstMC4wMTg5
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ0Mnggc2xvd2VyCiAgIGNhc3QtaW50LXRvLWRvdWJsZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuODc0NCstMC4xMDI0ICAgICA/ICAgICAg
NC44NzU2Ky0wLjEzNjYgICAgICAgID8KICAgY2VsbC1hcmd1bWVudCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNS41NzAxKy0wLjIxNDMgICAgID8gICAgICA1Ljc5OTYrLTAu
NzIyOCAgICAgICAgPyBtaWdodCBiZSAxLjA0MTJ4IHNsb3dlcgogICBjZmctc2ltcGxpZnkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc5MzkrLTAuMDU1MiAgICAgICAg
ICAgIDIuNzQxMCstMC4xMzk4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE5M3ggZmFzdGVyCiAgIGNo
YWluLWdldHRlci1hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuNzY5Myst
MC4wMzA5ICAgICA/ICAgICAgNy44Njk5Ky0wLjI5MjYgICAgICAgID8gbWlnaHQgYmUgMS4wMTI5
eCBzbG93ZXIKICAgY21wZXEtb2JqLXRvLW9iai1vdGhlciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMC41MDA1Ky0xLjUwNDggICAgID8gICAgIDExLjYxNzQrLTEuNzg5OSAgICAgICAgPyBt
aWdodCBiZSAxLjEwNjR4IHNsb3dlcgogICBjb25zdGFudC10ZXN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjU4NjQrLTAuMTA0NSAgICAgPyAgICAgIDQuNzEzMistMC40
NzY3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3Nnggc2xvd2VyCiAgIGNyZWF0ZS1sb3RzLW9mLWZ1
bmN0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgIDguOTAzNSstMC40OTM0ICAgICA/ICAg
ICAgOS4xODI5Ky0wLjgxNTggICAgICAgID8gbWlnaHQgYmUgMS4wMzE0eCBzbG93ZXIKICAgY3Nl
LW5ldy1hcnJheS1idWZmZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yMzQ2Ky0w
LjIyNTEgICAgICAgICAgICAyLjIwMDArLTAuMjA4OSAgICAgICAgICBtaWdodCBiZSAxLjAxNTd4
IGZhc3RlcgogICBjc2UtbmV3LWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjE5NzErLTAuMjA5OSAgICAgPyAgICAgIDIuMjUxMystMC4wNjgxICAgICAgICA/IG1p
Z2h0IGJlIDEuMDI0N3ggc2xvd2VyCiAgIGN1c3RvbS1zZXR0ZXItZ2V0dGVyLWFzLXB1dC1nZXQt
YnktaWQgICAgICAgICAgICAgIDAuNDc0NCstMC4wMTIxICAgICA/ICAgICAgMC41MjI4Ky0wLjEx
MTIgICAgICAgID8gbWlnaHQgYmUgMS4xMDIyeCBzbG93ZXIKICAgRGF0YVZpZXctY3VzdG9tLXBy
b3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAyOC44NTg2Ky0wLjQ5MTQgICAgID8gICAg
IDI5LjU2ODArLTEuMDA2MyAgICAgICAgPyBtaWdodCBiZSAxLjAyNDZ4IHNsb3dlcgogICBkZWxh
eS10ZWFyLW9mZi1hcmd1bWVudHMtc3RyaWN0bW9kZSAgICAgICAgICAgICAgIDEyLjMxMDgrLTAu
NTk1OSAgICAgICAgICAgMTEuOTA1NSstMC40MTMyICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0MHgg
ZmFzdGVyCiAgIGRlbHRhYmx1ZS12YXJhcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxNTIuNjA5MistNC43Mzk2ICAgICAgICAgIDE1MS40OTYyKy0wLjU5NTggICAgICAgIAogICBk
ZXN0cnVjdHVyaW5nLWFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgMTU5LjI3MDEr
LTUuMzkwMiAgICAgICAgICAxNTguNzAyNSstNS4xMjc4ICAgICAgICAKICAgZGVzdHJ1Y3R1cmlu
Zy1wYXJhbWV0ZXJzLW92ZXJyaWRkZW4tYnktZnVuY3Rpb24gICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC40NjE0Ky0wLjA4NDUgICAgICAg
ICAgICAwLjQyNDErLTAuMDA3OSAgICAgICAgICBtaWdodCBiZSAxLjA4Nzl4IGZhc3RlcgogICBk
ZXN0cnVjdHVyaW5nLXN3YXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjgxNTEr
LTAuNTU3OSAgICAgICAgICAgIDQuNTI2MystMC4wNTE2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYz
OHggZmFzdGVyCiAgIGRpcmVjdC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuMTQyOSstMC4wNjgxICAgICAgICAgICAgMS4xMTE1Ky0wLjEzMTggICAgICAgICAg
bWlnaHQgYmUgMS4wMjgzeCBmYXN0ZXIKICAgZGl2LWJvb2xlYW4tZG91YmxlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNS4wNDg4Ky0wLjA2NDIgICAgID8gICAgICA1LjIzMDUrLTAu
NDM5NCAgICAgICAgPyBtaWdodCBiZSAxLjAzNjB4IHNsb3dlcgogICBkaXYtYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjcxNDMrLTAuMjI3MSAgICAgPyAg
ICAgIDcuODU0OSstMC42NTMyICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4Mnggc2xvd2VyCiAgIGRv
dWJsZS1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAgIDQuMjM5Nyst
MC4xMDgxICAgICA/ICAgICAgNC41ODUwKy0wLjU1NDEgICAgICAgID8gbWlnaHQgYmUgMS4wODE0
eCBzbG93ZXIKICAgZG91YmxlLXBvbGx1dGlvbi1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgOC4wMzg4Ky0wLjM2MDggICAgICAgICAgICA3LjkyNTcrLTAuMDY0NSAgICAgICAgICBt
aWdodCBiZSAxLjAxNDN4IGZhc3RlcgogICBkb3VibGUtcG9sbHV0aW9uLXB1dGJ5b2Zmc2V0ICAg
ICAgICAgICAgICAgICAgICAgICAzLjY5NjQrLTAuNTY1NyAgICAgICAgICAgIDMuNTkyMCstMC41
MTExICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5MXggZmFzdGVyCiAgIGRvdWJsZS1yZWFsLXVzZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYuMzAxMSstNS42OTEwICAgICAgICAg
ICAyNC40MDMyKy00Ljk2MDYgICAgICAgICAgbWlnaHQgYmUgMS4wNzc4eCBmYXN0ZXIKICAgZG91
YmxlLXRvLWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAgICAgICAgICAgICAgMi4yNTM1Ky0w
LjI0ODQgICAgICAgICAgICAyLjExOTUrLTAuMTQyOSAgICAgICAgICBtaWdodCBiZSAxLjA2MzJ4
IGZhc3RlcgogICBkb3VibGUtdG8taW50MzItdHlwZWQtYXJyYXkgICAgICAgICAgICAgICAgICAg
ICAgICAyLjE2NDcrLTAuNTAxMSAgICAgICAgICAgIDIuMDM1NCstMC4xOTAzICAgICAgICAgIG1p
Z2h0IGJlIDEuMDYzNXggZmFzdGVyCiAgIGRvdWJsZS10by11aW50MzItdHlwZWQtYXJyYXktbm8t
aW5saW5lICAgICAgICAgICAgIDIuMTY1NystMC4xMDQwICAgICAgICAgICAgMi4xNDc4Ky0wLjA3
NDggICAgICAgIAogICBkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5ICAgICAgICAgICAgICAg
ICAgICAgICAyLjExMDcrLTAuNTM0NCAgICAgICAgICAgIDIuMDMwNSstMC4yMTgzICAgICAgICAg
IG1pZ2h0IGJlIDEuMDM5NXggZmFzdGVyCiAgIGVsaWRhYmxlLW5ldy1vYmplY3QtZGFnICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMzIuMzk5NystMC4zNjE2ICAgICAgICAgICAzMi4zNzI5Ky0w
Ljk5NDAgICAgICAgIAogICBlbGlkYWJsZS1uZXctb2JqZWN0LXJvZmxjb3B0ZXIgICAgICAgICAg
ICAgICAgICAgIDMyLjA5NDcrLTAuNTY3NCAgICAgICAgICAgMzEuNDkxOCstMC4xMDIxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDE5MXggZmFzdGVyCiAgIGVsaWRhYmxlLW5ldy1vYmplY3QtdGhlbi1j
YWxsICAgICAgICAgICAgICAgICAgICAgMzEuMTUzMystMi42ODM0ICAgICAgICAgICAzMC4zMjg5
Ky0wLjcxODggICAgICAgICAgbWlnaHQgYmUgMS4wMjcyeCBmYXN0ZXIKICAgZWxpZGFibGUtbmV3
LW9iamVjdC10cmVlICAgICAgICAgICAgICAgICAgICAgICAgICAzNS4yNDMwKy0wLjgyNjUgICAg
ID8gICAgIDM1LjYwMDErLTAuNzM3MCAgICAgICAgPyBtaWdodCBiZSAxLjAxMDF4IHNsb3dlcgog
ICBlbXB0eS1zdHJpbmctcGx1cy1pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjQ3
NzMrLTAuMTM5NiAgICAgPyAgICAgIDQuNTc5MistMC41MTk1ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDIyOHggc2xvd2VyCiAgIGVtc2NyaXB0ZW4tY3ViZTJoYXNoICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjYuMjg2NCstMC4zNDgxICAgICAgICAgICAyNS42MjMwKy0yLjMxNTEgICAgICAg
ICAgbWlnaHQgYmUgMS4wMjU5eCBmYXN0ZXIKICAgZXhpdC1sZW5ndGgtb24tcGxhaW4tb2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgICAxNS4yNjkwKy0xLjIzODIgICAgID8gICAgIDE1LjUwMTAr
LTEuMjI2NiAgICAgICAgPyBtaWdodCBiZSAxLjAxNTJ4IHNsb3dlcgogICBleHRlcm5hbC1hcmd1
bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAxLjI5MTYrLTAuMTI1NSAgICAg
ICAgICAgIDEuMjA2MystMC4xMDE3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDcwN3ggZmFzdGVyCiAg
IGV4dGVybmFsLWFyZ3VtZW50cy1wdXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgIDIuMjQz
NSstMC4xOTgxICAgICA/ICAgICAgMi4zODcxKy0wLjU3ODUgICAgICAgID8gbWlnaHQgYmUgMS4w
NjQweCBzbG93ZXIKICAgZml4ZWQtdHlwZWQtYXJyYXktc3RvcmFnZS12YXItaW5kZXggICAgICAg
ICAgICAgICAgMS4xOTUzKy0wLjA1MzIgICAgID8gICAgICAxLjI2NzErLTAuMjE5NiAgICAgICAg
PyBtaWdodCBiZSAxLjA2MDF4IHNsb3dlcgogICBmaXhlZC10eXBlZC1hcnJheS1zdG9yYWdlICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLjkwNjErLTAuMDMxMyAgICAgICAgICAgIDAuODc2OCst
MC4wNTAxICAgICAgICAgIG1pZ2h0IGJlIDEuMDMzNXggZmFzdGVyCiAgIEZsb2F0MzJBcnJheS1t
YXRyaXgtbXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDg4MCstMC4wNzA1ICAgICA/
ICAgICAgNC4xNDc4Ky0wLjA3NjcgICAgICAgID8gbWlnaHQgYmUgMS4wMTQ2eCBzbG93ZXIKICAg
RmxvYXQzMkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQgICAgICAgICAgICAgICAgICA0NC4xNjE2
Ky0wLjE4MzIgICAgICEgICAgIDQ1LjMwMTYrLTAuNDU5MiAgICAgICAgISBkZWZpbml0ZWx5IDEu
MDI1OHggc2xvd2VyCiAgIEZsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAg
ICAgICAgICAgNTUuNzYzNystMC4zODg1ICAgICA/ICAgICA1Ni4yNDAxKy0wLjY5MjIgICAgICAg
ID8KICAgRmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICA1
NC4wNTYyKy0wLjMxOTUgICAgICEgICAgIDU3LjA4NTYrLTAuMjczNyAgICAgICAgISBkZWZpbml0
ZWx5IDEuMDU2MHggc2xvd2VyCiAgIGZvbGQtZG91YmxlLXRvLWludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTIuMzg3OCstMC44OTA1ICAgICAgICAgICAxMS41Njc0Ky0wLjI4NzMg
ICAgICAgICAgbWlnaHQgYmUgMS4wNzA5eCBmYXN0ZXIKICAgZm9sZC1nZXQtYnktaWQtdG8tbXVs
dGktZ2V0LWJ5LW9mZnNldC1yYXJlLWludCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjY5NzArLTAuOTQ1NCAgICAgICAgICAgIDkuODI3
NistMS43MzQ1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDg4NXggZmFzdGVyCiAgIGZvbGQtZ2V0LWJ5
LWlkLXRvLW11bHRpLWdldC1ieS1vZmZzZXQgICAgICAgICAgICAgIDkuMjQ3NSstMS4yMDUzICAg
ICA/ICAgICAgOS44NTc4Ky0yLjMwMzMgICAgICAgID8gbWlnaHQgYmUgMS4wNjYweCBzbG93ZXIK
ICAgZm9sZC1tdWx0aS1nZXQtYnktb2Zmc2V0LXRvLWdldC1ieS1vZmZzZXQgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC41NDcwKy0xLjc2
OTcgICAgICAgICAgICA3LjU1ODIrLTEuMDU2OSAgICAgICAgICBtaWdodCBiZSAxLjEzMDh4IGZh
c3RlcgogICBmb2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tcG9seS1nZXQtYnktb2Zmc2V0ICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgu
NzQwMistMi4yMjg1ICAgICAgICAgICAgOC4wNDAwKy0wLjc0MDYgICAgICAgICAgbWlnaHQgYmUg
MS4wODcxeCBmYXN0ZXIKICAgZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXBvbHktcHV0LWJ5
LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA5LjQ5NDkrLTEuNDgwMiAgICAgPyAgICAgIDkuNzIxMistMi42MzQyICAgICAgICA/
IG1pZ2h0IGJlIDEuMDIzOHggc2xvd2VyCiAgIGZvbGQtbXVsdGktcHV0LWJ5LW9mZnNldC10by1w
dXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTAuMTg0OSstMS40MTA3ICAgICA/ICAgICAxMS4xMTYwKy00LjA5ODcgICAg
ICAgID8gbWlnaHQgYmUgMS4wOTE0eCBzbG93ZXIKICAgZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0
LXRvLXJlcGxhY2Utb3ItdHJhbnNpdGlvbi1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMjEzMCstMC45ODA4ICAg
ICAgICAgICAgOC42MDI1Ky0wLjExMTcgICAgICAgICAgbWlnaHQgYmUgMS4wNzEweCBmYXN0ZXIK
ICAgZm9sZC1wdXQtYnktaWQtdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgICAgICAgICAgICAgOS44
NTY2Ky0wLjk1ODAgICAgID8gICAgIDEwLjY0OTArLTEuODg0MSAgICAgICAgPyBtaWdodCBiZSAx
LjA4MDR4IHNsb3dlcgogICBmb2xkLXB1dC1ieS12YWwtd2l0aC1zdHJpbmctdG8tbXVsdGktcHV0
LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDExLjAyMDIrLTIuMzQzMyAgICAgICAgICAgIDkuNzczNystMS40NDgwICAgICAg
ICAgIG1pZ2h0IGJlIDEuMTI3NXggZmFzdGVyCiAgIGZvbGQtcHV0LWJ5LXZhbC13aXRoLXN5bWJv
bC10by1tdWx0aS1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDkuNDMxNSstMS45OTcxICAgICA/ICAgICAxMC42ODUw
Ky0wLjg5ODAgICAgICAgID8gbWlnaHQgYmUgMS4xMzI5eCBzbG93ZXIKICAgZm9sZC1wdXQtc3Ry
dWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy43MTY1Ky0wLjIwOTEgICAg
ID8gICAgICA3Ljc1MjArLTAuMzUwNCAgICAgICAgPwogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS1l
bnRyaWVzICAgICAgICAgICAgICAgICAgICAgIDEwLjg2NzcrLTAuMjQxNSAgICAgICAgICAgMTAu
NzYyNistMS4wNDk2ICAgICAgICAKICAgZm9yLW9mLWl0ZXJhdGUtYXJyYXkta2V5cyAgICAgICAg
ICAgICAgICAgICAgICAgICAgMy42MDE4Ky0wLjI5MjIgICAgID8gICAgICAzLjY3NTcrLTAuMzYy
MSAgICAgICAgPyBtaWdodCBiZSAxLjAyMDV4IHNsb3dlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJh
eS12YWx1ZXMgICAgICAgICAgICAgICAgICAgICAgICAzLjM0NDMrLTAuMTY2NiAgICAgPyAgICAg
IDMuNTQ4MSstMC40ODAyICAgICAgICA/IG1pZ2h0IGJlIDEuMDYwOXggc2xvd2VyCiAgIGZyb3Vu
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcuMzM0OSstMC45
MzcyICAgICAgICAgICAxNi43MTAwKy0wLjc1NDAgICAgICAgICAgbWlnaHQgYmUgMS4wMzc0eCBm
YXN0ZXIKICAgZnRsLWxpYnJhcnktaW5saW5pbmctZGF0YXZpZXcgICAgICAgICAgICAgICAgICAg
ICA1NC42MzY3Ky00LjM5NDQgICAgID8gICAgIDU1LjIwMjcrLTIuNzk3NyAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMDR4IHNsb3dlcgogICBmdGwtbGlicmFyeS1pbmxpbmluZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDc3LjUxNTkrLTEuNDgxOCAgICAgICAgICAgNzYuNjI3MSstMi4wMzA5
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExNnggZmFzdGVyCiAgIGZ0bC1vYmplY3Qtc3ViICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOTguMDcyMCstMTQuNTA1MSAgICAgICAgIDI5
Mi44ODI1Ky01LjQyNDQgICAgICAgICAgbWlnaHQgYmUgMS4wMTc3eCBmYXN0ZXIKICAgZnVuY3Rp
b24tY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC43NTAxKy0wLjUy
NDEgICAgICAgICAgIDEwLjU4NDgrLTAuNzA1MyAgICAgICAgICBtaWdodCBiZSAxLjAxNTZ4IGZh
c3RlcgogICBmdW5jdGlvbi1kb3QtYXBwbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxLjkzODErLTAuMDYzOCAgICAgPyAgICAgIDIuMDQ0NystMC4yNjY1ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDU1MHggc2xvd2VyCiAgIGZ1bmN0aW9uLXRlc3QgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNjM5OCstMC4xMTA5ICAgICAgICAgICAgMi41OTYwKy0wLjA4NjIg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTY5eCBmYXN0ZXIKICAgZnVuY3Rpb24td2l0aC1ldmFsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3OC42Nzc2Ky01LjcwMzcgICAgID8gICAgIDc5
LjEyNzQrLTMuMjkyMSAgICAgICAgPwogICBnY3NlLXBvbHktZ2V0LWxlc3Mtb2J2aW91cyAgICAg
ICAgICAgICAgICAgICAgICAgIDIxLjE0MDIrLTAuNTEyNCAgICAgPyAgICAgMjEuODY2OCstMi40
MTI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0NHggc2xvd2VyCiAgIGdjc2UtcG9seS1nZXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQuNDM3MCstNi4zMjExICAgICA/ICAg
ICAyNS41MTc1Ky01LjExODggICAgICAgID8gbWlnaHQgYmUgMS4wNDQyeCBzbG93ZXIKICAgZ2Nz
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4yNjAxKy0w
LjA3MTkgICAgICAgICAgICAzLjE1OTUrLTAuMDQ1MSAgICAgICAgICBtaWdodCBiZSAxLjAzMTl4
IGZhc3RlcgogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi40OTY3Ky0wLjA0NTkgICAgID8gICAgICAyLjUwMTMrLTAuMTE3OSAgICAgICAg
PwogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjU1
ODArLTAuMTY3MiAgICAgICAgICAgIDQuNDQ0OSstMC4wODIxICAgICAgICAgIG1pZ2h0IGJlIDEu
MDI1NHggZmFzdGVyCiAgIGdldC1ieS1pZC1jaGFpbi1mcm9tLXRyeS1ibG9jayAgICAgICAgICAg
ICAgICAgICAgIDIuNDk2OCstMC4xNDI2ICAgICAgICAgICAgMi40NjYxKy0wLjA0MzYgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTI1eCBmYXN0ZXIKICAgZ2V0LWJ5LWlkLWNoZWNrLXN0cnVjdHVyZS1l
bGltaW5hdGlvbiAgICAgICAgICAgICAgMy45MzI3Ky0wLjY4NjggICAgICAgICAgICAzLjczMTEr
LTAuMDkyMiAgICAgICAgICBtaWdodCBiZSAxLjA1NDB4IGZhc3RlcgogICBnZXQtYnktaWQtcHJv
dG8tb3Itc2VsZiAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3LjIzNDYrLTMuMTU0NiAgICAg
ICAgICAgMTUuNzMwNSstMS4zOTc3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDk1NnggZmFzdGVyCiAg
IGdldC1ieS1pZC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuNzYwMystMC4wNzY0ICAgICAgICAgICAgMi43MTM0Ky0wLjAxNTEgICAgICAgICAgbWlnaHQg
YmUgMS4wMTczeCBmYXN0ZXIKICAgZ2V0LWJ5LWlkLXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNi4xMzA4Ky0yLjIzMjMgICAgICAgICAgIDE0Ljc1MTkrLTAuMTg4NyAg
ICAgICAgICBtaWdodCBiZSAxLjA5MzV4IGZhc3RlcgogICBnZXQtYnktdmFsLW91dC1vZi1ib3Vu
ZHMgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjA4OTUrLTAuMTc1NCAgICAgICAgICAgIDQu
MDM2MystMC4xNzM3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzMnggZmFzdGVyCiAgIGdldC1ieS12
YWwtd2l0aC1zdHJpbmctYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1w
bGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi41OTQ1Ky0wLjA1MjIgICAgID8gICAgICAyLjYyMjIrLTAuMTY4MiAgICAgICAgPyBtaWdo
dCBiZSAxLjAxMDd4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1j
aGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNS44MTM1Ky0wLjA4MDcgICAgICAgICAgICA1Ljc3
NzgrLTAuMDc4OSAgICAgICAgCiAgIGdldC1ieS12YWwtd2l0aC1zdHJpbmctY2hhaW4tZnJvbS10
cnktYmxvY2sgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi40NzYwKy0wLjA4MDMgICAgID8gICAgICAyLjUwOTcrLTAuMDkxMiAgICAgICAg
PyBtaWdodCBiZSAxLjAxMzZ4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1LjMyNTMrLTAuMTQxNyAgICAgICAgICAgIDUuMjUyNist
MC4wNzQ2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzOHggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0
aC1zdHJpbmctcHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgMTYuOTM0OCstMi41NDA1ICAgICAg
ICAgICAxNi41MjU3Ky0yLjUzNTUgICAgICAgICAgbWlnaHQgYmUgMS4wMjQ4eCBmYXN0ZXIKICAg
Z2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24tc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuMjE3MCstMC41MjkwICAgICA/ICAgICAgMy4yOTQzKy0wLjQ5ODkgICAg
ICAgID8gbWlnaHQgYmUgMS4wMjQweCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1z
ZWxmLW9yLXByb3RvICAgICAgICAgICAgICAxNS42NjQ4Ky0xLjc2MDUgICAgID8gICAgIDE1Ljgz
NTErLTAuNzI2MyAgICAgICAgPyBtaWdodCBiZSAxLjAxMDl4IHNsb3dlcgogICBnZXQtYnktdmFs
LXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxl
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuODAxOSstMC4xMDY4ICAgICAgICAgICAgMi43NTYzKy0wLjAxOTQgICAgICAgICAgbWlnaHQg
YmUgMS4wMTY2eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1iaW1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTEuNjY4MCstMC4wOTI5ICAgICAgICAgICAxMS42MDQ3
Ky0wLjAyOTMgICAgICAgIAogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5
LWJsb2NrICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuNTM4NystMC4wNTkxICAgICA/ICAgICAgMi42MjczKy0wLjM2MDggICAgICAgID8g
bWlnaHQgYmUgMS4wMzQ5eCBzbG93ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1z
dHJ1Y3R1cmUtZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMC43Mjg2Ky0wLjA0MDYgICAgID8gICAgIDExLjUxOTQrLTEu
NTMyMyAgICAgICAgPyBtaWdodCBiZSAxLjA3Mzd4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgt
c3ltYm9sLXByb3RvLW9yLXNlbGYgICAgICAgICAgICAgIDE2LjQ5MDIrLTIuNDc4MiAgICAgICAg
ICAgMTUuNzkzNSstMS41MzIyICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ0MXggZmFzdGVyCiAgIGdl
dC1ieS12YWwtd2l0aC1zeW1ib2wtcXVhZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0
aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjUxMzErLTAuMDIyNiAgICAgICAgICAgIDMuNDkxMCstMC4wMzY0ICAgICAg
ICAKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAx
NS40ODcxKy0xLjk5NDAgICAgICAgICAgIDE1LjEwMTkrLTEuMDEyOSAgICAgICAgICBtaWdodCBi
ZSAxLjAyNTV4IGZhc3RlcgogICBnZXRfY2FsbGVlX21vbm9tb3JwaGljICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjM1MTkrLTAuMTk1MCAgICAgPyAgICAgIDIuNjI3NCstMC42ODQ3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMTE3Mnggc2xvd2VyCiAgIGdldF9jYWxsZWVfcG9seW1vcnBoaWMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMjAzMistMC4wNjk1ICAgICA/ICAgICAgMy42
NTQwKy0wLjc5NzAgICAgICAgID8gbWlnaHQgYmUgMS4xNDA3eCBzbG93ZXIKICAgZ2V0dGVyLW5v
LWFjdGl2YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC40ODM2Ky0wLjAzMzYg
ICAgID8gICAgICA0LjU2NjMrLTAuMjk1NSAgICAgICAgPyBtaWdodCBiZSAxLjAxODR4IHNsb3dl
cgogICBnZXR0ZXItcHJvdG90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3
LjUwMTMrLTAuMjY5OCAgICAgICAgICAgIDcuNDg0MistMC4yNTQwICAgICAgICAKICAgZ2V0dGVy
LXJpY2hhcmRzLXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgIDk1NS4zMzY1Ky0yNi44
Nzg2ICAgID8gICAgOTU3LjU4NzMrLTM2LjQxNjAgICAgICAgPwogICBnZXR0ZXItcmljaGFyZHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA4LjM0OTYrLTExLjE1MjIgICAgPyAg
ICAxMDkuMjk2MistMTMuOTM4MyAgICAgICA/CiAgIGdldHRlciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDUuMDM4OSstMC41MjE2ICAgICA/ICAgICAgNi4zMzU2
Ky0xLjEyNjUgICAgICAgID8gbWlnaHQgYmUgMS4yNTczeCBzbG93ZXIKICAgZ2xvYmFsLW9iamVj
dC1hY2Nlc3Mtd2l0aC1tdXRhdGluZy1zdHJ1Y3R1cmUgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4zODg3Ky0wLjIwNTIgICAgICAgICAg
ICA1LjMzNDArLTAuMDgyNyAgICAgICAgICBtaWdodCBiZSAxLjAxMDN4IGZhc3RlcgogICBnbG9i
YWwtdmFyLWNvbnN0LWluZmVyLWZpcmUtZnJvbS1vcHQgICAgICAgICAgICAgICAwLjY4NjYrLTAu
MDQ1NyAgICAgPyAgICAgIDAuNzEwOCstMC4wNjYxICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1M3gg
c2xvd2VyCiAgIGdsb2JhbC12YXItY29uc3QtaW5mZXIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDAuNTkzMSstMC4wMDkwICAgICA/ICAgICAgMC42MDAwKy0wLjAyNjYgICAgICAgID8gbWln
aHQgYmUgMS4wMTE2eCBzbG93ZXIKICAgaGFyZC1vdmVyZmxvdy1jaGVjay1lcXVhbCAgICAgICAg
ICAgICAgICAgICAgICAgICAyNS44Mzg3Ky0wLjk3ODQgICAgID8gICAgIDI2Ljc5MzArLTQuMDAw
MSAgICAgICAgPyBtaWdodCBiZSAxLjAzNjl4IHNsb3dlcgogICBoYXJkLW92ZXJmbG93LWNoZWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI2LjkxOTErLTUuMjkwNCAgICAgICAgICAg
MjQuODcwOCstMC4yMzAyICAgICAgICAgIG1pZ2h0IGJlIDEuMDgyNHggZmFzdGVyCiAgIEhhc2hN
YXAtcHV0LWdldC1pdGVyYXRlLWtleXMgICAgICAgICAgICAgICAgICAgICAgMjQuMTAzOSstMi42
NjMyICAgICAgICAgICAyMy44MjQyKy0xLjc5NzcgICAgICAgICAgbWlnaHQgYmUgMS4wMTE3eCBm
YXN0ZXIKICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAyNi43OTgwKy0xLjY0MTQgICAgICAgICAgIDI0LjkwMjMrLTMuMjY0MSAgICAgICAgICBtaWdo
dCBiZSAxLjA3NjF4IGZhc3RlcgogICBIYXNoTWFwLXN0cmluZy1wdXQtZ2V0LWl0ZXJhdGUgICAg
ICAgICAgICAgICAgICAgIDIyLjUyNzArLTEuMTQ0OSAgICAgICAgICAgMjIuMjY4NystMS4xMjcx
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDExNnggZmFzdGVyCiAgIGhvaXN0LW1ha2Utcm9wZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuODg3NistMC45NzQ2ICAgICA/ICAgICAg
Ny45MTAxKy0xLjQ4MzUgICAgICAgID8KICAgaG9pc3QtcG9seS1jaGVjay1zdHJ1Y3R1cmUtZWZm
ZWN0ZnVsLWxvb3AgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMy40MTc1Ky0wLjA1MTQgICAgID8gICAgICAzLjY5NjcrLTAuNjk2NCAgICAg
ICAgPyBtaWdodCBiZSAxLjA4MTd4IHNsb3dlcgogICBob2lzdC1wb2x5LWNoZWNrLXN0cnVjdHVy
ZSAgICAgICAgICAgICAgICAgICAgICAgICAyLjk1MjcrLTAuMDgxMiAgICAgICAgICAgIDIuOTMz
MCstMC4wMzI5ICAgICAgICAKICAgaW11bC1kb3VibGUtb25seSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNy4wODU3Ky0xLjU2OTMgICAgICAgICAgICA2LjgwNjgrLTAuOTg0OSAg
ICAgICAgICBtaWdodCBiZSAxLjA0MTB4IGZhc3RlcgogICBpbXVsLWludC1vbmx5ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjU3NjcrLTEuMTUzNiAgICAgPyAgICAgIDcu
OTQyMCstMC42MzYzICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ4Mnggc2xvd2VyCiAgIGltdWwtbWl4
ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNTkzMystMC4xNDI4
ICAgICAgICAgICAgNi40MTIyKy0wLjY1MDkgICAgICAgICAgbWlnaHQgYmUgMS4wMjgzeCBmYXN0
ZXIKICAgaW4tZm91ci1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
Ny43Nzg0Ky0wLjg3MTEgICAgID8gICAgIDE3LjkzOTMrLTAuNzE0NyAgICAgICAgPwogICBpbi1v
bmUtY2FzZS1mYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5Ljg2NTQrLTAu
NTI2NyAgICAgICAgICAgIDkuNjI2MistMC4xMzQ0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI0OHgg
ZmFzdGVyCiAgIGluLW9uZS1jYXNlLXRydWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTAuMTM1MCstMS4yNDA4ICAgICAgICAgICAgOS42Nzg5Ky0wLjIxOTIgICAgICAgICAgbWln
aHQgYmUgMS4wNDcxeCBmYXN0ZXIKICAgaW4tdHdvLWNhc2VzICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOS45Mjk5Ky0wLjEyMTkgICAgID8gICAgIDEwLjA3MjErLTAuNTQ5
OCAgICAgICAgPyBtaWdodCBiZSAxLjAxNDN4IHNsb3dlcgogICBpbmRleGVkLXByb3BlcnRpZXMt
aW4tb2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAyLjY1NjUrLTAuMDcwMSAgICAgPyAgICAg
IDIuNjkwOSstMC4xNTg2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyOXggc2xvd2VyCiAgIGluZmVy
LWNsb3N1cmUtY29uc3QtdGhlbi1tb3Ytbm8taW5saW5lICAgICAgICAgICAgIDMuMzkxOSstMC4w
ODA2ICAgICA/ICAgICAgMy42NDgzKy0wLjYyODcgICAgICAgID8gbWlnaHQgYmUgMS4wNzU2eCBz
bG93ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLW1vdiAgICAgICAgICAgICAgICAgICAg
ICAxNS44Njg1Ky0xLjU2MDcgICAgICAgICAgIDE1LjUzMDIrLTEuMjk4MCAgICAgICAgICBtaWdo
dCBiZSAxLjAyMTh4IGZhc3RlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNj
b3BlLW5vLWlubGluZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEwLjM3NDMrLTAuNjYyNSAgICAgPyAgICAgMTAuNjM1MystMS4yNDMyICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDI1Mnggc2xvd2VyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhl
bi1wdXQtdG8tc2NvcGUgICAgICAgICAgICAgMjIuMjc4NCstNC40OTk2ICAgICAgICAgICAyMS44
ODc2Ky0xLjU3NDggICAgICAgICAgbWlnaHQgYmUgMS4wMTc5eCBmYXN0ZXIKICAgaW5mZXItY2xv
c3VyZS1jb25zdC10aGVuLXJlZW50ZXItbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQuNjczNSstMC4zMTU2ICAgICA/ICAg
ICA0NC44NzE3Ky0wLjcwOTMgICAgICAgID8KICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXJl
ZW50ZXIgICAgICAgICAgICAgICAgICAyMy43MzIzKy0yLjk1MzEgICAgICAgICAgIDIzLjUzNjYr
LTQuMTE1OCAgICAgICAgCiAgIGluZmVyLWNvbnN0YW50LWdsb2JhbC1wcm9wZXJ0eSAgICAgICAg
ICAgICAgICAgICAgIDMuMjU1MistMC4xNDM2ICAgICA/ICAgICAgMy4zMDc5Ky0wLjEwOTMgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTYyeCBzbG93ZXIKICAgaW5mZXItY29uc3RhbnQtcHJvcGVydHkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42OTMyKy0wLjU5NzYgICAgICAgICAgICAyLjUy
NDMrLTAuMDczMCAgICAgICAgICBtaWdodCBiZSAxLjA2Njl4IGZhc3RlcgogICBpbmZlci1vbmUt
dGltZS1jbG9zdXJlLXRlbi12YXJzICAgICAgICAgICAgICAgICAgICA3LjY0MDYrLTAuNzM5OCAg
ICAgICAgICAgIDcuMzcxOSstMC41MjE0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM2NHggZmFzdGVy
CiAgIGluZmVyLW9uZS10aW1lLWNsb3N1cmUtdHdvLXZhcnMgICAgICAgICAgICAgICAgICAgIDcu
MTEyMystMS4wMDk1ICAgICAgICAgICAgNi45NjI5Ky0wLjI4NjYgICAgICAgICAgbWlnaHQgYmUg
MS4wMjE1eCBmYXN0ZXIKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNy4xNzgyKy0wLjcwNTkgICAgICAgICAgICA3LjA0MzcrLTAuNTI5NiAgICAg
ICAgICBtaWdodCBiZSAxLjAxOTF4IGZhc3RlcgogICBpbmZlci1vbmUtdGltZS1kZWVwLWNsb3N1
cmUgICAgICAgICAgICAgICAgICAgICAgIDEwLjM0MzErLTAuNTI4NyAgICAgICAgICAgMTAuMDcw
MistMC40OTI1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI3MXggZmFzdGVyCiAgIGlubGluZS1hcmd1
bWVudHMtYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNDgxNistMC4yODU2ICAg
ICA/ICAgICAgMy41NzE3Ky0wLjQ0NzcgICAgICAgID8gbWlnaHQgYmUgMS4wMjU5eCBzbG93ZXIK
ICAgaW5saW5lLWFyZ3VtZW50cy1hbGlhc2VkLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgMy40
OTUyKy0wLjExMTggICAgID8gICAgICAzLjY0MzIrLTAuNzkzMiAgICAgICAgPyBtaWdodCBiZSAx
LjA0MjR4IHNsb3dlcgogICBpbmxpbmUtYXJndW1lbnRzLWxvY2FsLWVzY2FwZSAgICAgICAgICAg
ICAgICAgICAgICAzLjU3MTkrLTAuMjI1OCAgICAgPyAgICAgIDMuNTc3OCstMC4zMjk0ICAgICAg
ICA/CiAgIGlubGluZS1nZXQtc2NvcGVkLXZhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuNTMyOCstMC4zMzMxICAgICAgICAgICAgNC40NzYxKy0wLjM1NDUgICAgICAgICAgbWlnaHQg
YmUgMS4wMTI3eCBmYXN0ZXIKICAgaW5saW5lZC1wdXQtYnktaWQtdHJhbnNpdGlvbiAgICAgICAg
ICAgICAgICAgICAgICAgOC40MzE2Ky0wLjA3ODQgICAgID8gICAgICA4LjUwNjcrLTAuMjg4OCAg
ICAgICAgPwogICBpbmxpbmVkLXB1dC1ieS12YWwtd2l0aC1zdHJpbmctdHJhbnNpdGlvbiAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM4LjU5
OTcrLTIuMDczNyAgICAgICAgICAgMzguMDI5NSstMC4zMDg3ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE1MHggZmFzdGVyCiAgIGlubGluZWQtcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC10cmFuc2l0aW9u
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MzkuNDY0NSstMy42MTc5ICAgICAgICAgICAzOC4zMTU0Ky0wLjg0NDQgICAgICAgICAgbWlnaHQg
YmUgMS4wMzAweCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12YWwgICAg
ICAgICAgICAgICAgICAgNC41MTk2Ky0wLjU1MjggICAgID8gICAgICA0LjUyNjArLTAuNjM2NSAg
ICAgICAgPwogICBpbnQtb3Itb3RoZXItYWJzLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAgICAg
ICAgIDE1LjQxODcrLTAuOTQ4MSAgICAgPyAgICAgMTUuOTEwNSstMS44Mjg2ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDMxOXggc2xvd2VyCiAgIGludC1vci1vdGhlci1hZGQtdGhlbi1nZXQtYnktdmFs
ICAgICAgICAgICAgICAgICAgIDQuMDI5MystMC4wODUwICAgICA/ICAgICAgNC4xMTcxKy0wLjE1
NTEgICAgICAgID8gbWlnaHQgYmUgMS4wMjE4eCBzbG93ZXIKICAgaW50LW9yLW90aGVyLWFkZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC45MjU2Ky0wLjc0MzAgICAgID8gICAg
ICA0Ljk1MzgrLTAuNDQ5NiAgICAgICAgPwogICBpbnQtb3Itb3RoZXItZGl2LXRoZW4tZ2V0LWJ5
LXZhbCAgICAgICAgICAgICAgICAgICAzLjYyNDArLTAuMDg1NiAgICAgPyAgICAgIDMuNjg5Nyst
MC4xNzE3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4MXggc2xvd2VyCiAgIGludC1vci1vdGhlci1t
YXgtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuNjg2OCstMC4xMTU1ICAgICA/
ICAgICAgMy43NDEzKy0wLjI0MzEgICAgICAgID8gbWlnaHQgYmUgMS4wMTQ4eCBzbG93ZXIKICAg
aW50LW9yLW90aGVyLW1pbi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgMy42ODY2
Ky0wLjE0MTAgICAgICAgICAgICAzLjYwNjUrLTAuMDU3MyAgICAgICAgICBtaWdodCBiZSAxLjAy
MjJ4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbW9kLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAg
ICAgICAgICAzLjUzMzYrLTAuMjAzMiAgICAgPyAgICAgIDMuNTQ0OCstMC4xODAzICAgICAgICA/
CiAgIGludC1vci1vdGhlci1tdWwtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMu
NTU1NCstMC4zODY1ICAgICAgICAgICAgMy40MzgzKy0wLjE0MDkgICAgICAgICAgbWlnaHQgYmUg
MS4wMzQweCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLW5lZy10aGVuLWdldC1ieS12YWwgICAgICAg
ICAgICAgICAgICAgMy45ODEzKy0wLjA2NDIgICAgID8gICAgICAzLjk5MDgrLTAuMDg4MCAgICAg
ICAgPwogICBpbnQtb3Itb3RoZXItbmVnLXplcm8tdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAg
IDE0Ljk2NTUrLTAuNzMyNyAgICAgPyAgICAgMTUuMjk0MystMC44Mjc1ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDIyMHggc2xvd2VyCiAgIGludC1vci1vdGhlci1zdWItdGhlbi1nZXQtYnktdmFsICAg
ICAgICAgICAgICAgICAgIDQuMjA3MCstMC4zMzYxICAgICAgICAgICAgNC4wOTE2Ky0wLjQ5NTUg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjgyeCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLXN1YiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40NzU1Ky0wLjYwNjQgICAgICAgICAgICAz
LjMzMTcrLTAuMDQ4MCAgICAgICAgICBtaWdodCBiZSAxLjA0MzF4IGZhc3RlcgogICBpbnQtb3Zl
cmZsb3ctbG9jYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjg2MjcrLTAuMDQz
MSAgICAgPyAgICAgIDMuODk5MCstMC4wNTQ5ICAgICAgICA/CiAgIEludDE2QXJyYXktYWxsb2Mt
bG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgNDAuNjc2NistMC44NTI4ICAgICAgICAg
ICA0MC4zNTA5Ky0wLjMyNjEgICAgICAgIAogICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0LXdpdGgt
Ynl0ZUxlbmd0aCAgICAgICAgICAgIDIyLjUzODgrLTEuOTUyMSAgICAgICAgICAgMjEuODk4Mist
MC43ODA5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI5M3ggZmFzdGVyCiAgIEludDE2QXJyYXktYnVi
YmxlLXNvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIuMTE5MystNC4wMDI2ICAgICAg
ICAgICAyMS40NzkyKy0wLjk1MTkgICAgICAgICAgbWlnaHQgYmUgMS4wMjk4eCBmYXN0ZXIKICAg
SW50MTZBcnJheS1sb2FkLWludC1tdWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS40NTE4
Ky0wLjA1NTYgICAgICAgICAgICAxLjQyNTArLTAuMDY4NyAgICAgICAgICBtaWdodCBiZSAxLjAx
ODh4IGZhc3RlcgogICBJbnQxNkFycmF5LXRvLUludDMyQXJyYXktc2V0ICAgICAgICAgICAgICAg
ICAgICAgIDQyLjkzMTArLTAuNzgwOSAgICAgPyAgICAgNDMuNDYxMSstMi42ODQyICAgICAgICA/
IG1pZ2h0IGJlIDEuMDEyM3ggc2xvd2VyCiAgIEludDMyQXJyYXktYWxsb2MtbGFyZ2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTEuOTE2MCstMC41MTQ2ICAgICA/ICAgICAxMi4xNjE0Ky0w
LjM3NzAgICAgICAgID8gbWlnaHQgYmUgMS4wMjA2eCBzbG93ZXIKICAgSW50MzJBcnJheS1hbGxv
Yy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICA0NS4yOTAwKy0wLjYxODEgICAgID8g
ICAgIDQ2LjA5MTErLTAuNjM0MSAgICAgICAgPyBtaWdodCBiZSAxLjAxNzd4IHNsb3dlcgogICBJ
bnQzMkFycmF5LWFsbG9jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjEyOTIr
LTAuNDEwNCAgICAgICAgICAgIDIuOTI3MystMC4zMzI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDY5
MHggZmFzdGVyCiAgIEludDMyQXJyYXktSW50OEFycmF5LXZpZXctYWxsb2MgICAgICAgICAgICAg
ICAgICAgIDUuOTYyOCstMC43Nzg4ICAgICAgICAgICAgNS41ODYyKy0wLjQ2NDcgICAgICAgICAg
bWlnaHQgYmUgMS4wNjc0eCBmYXN0ZXIKICAgaW50NTItc3BpbGwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC41NDcwKy0wLjc0OTkgICAgICAgICAgICA0LjM1NDYrLTAu
MjcwMyAgICAgICAgICBtaWdodCBiZSAxLjA0NDJ4IGZhc3RlcgogICBJbnQ4QXJyYXktYWxsb2Mt
bG9uZy1saXZlZCAgICAgICAgICAgICAgICAgICAgICAgIDM1LjY1NjUrLTAuNzYxOCAgICAgPyAg
ICAgMzYuMzkyMystMS40Njc5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwNnggc2xvd2VyCiAgIElu
dDhBcnJheS1sb2FkLXdpdGgtYnl0ZUxlbmd0aCAgICAgICAgICAgICAgICAgICAgIDMuMTY4Mist
MC4wMzA3ICAgICA/ICAgICAgMy4yMTIzKy0wLjEwMDAgICAgICAgID8gbWlnaHQgYmUgMS4wMTM5
eCBzbG93ZXIKICAgSW50OEFycmF5LWxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMy40NzM1Ky0wLjYxNDMgICAgICAgICAgICAzLjMzODYrLTAuMzI2MyAgICAgICAgICBt
aWdodCBiZSAxLjA0MDR4IGZhc3RlcgogICBpbnRlZ2VyLWRpdmlkZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA5Ljc1MjErLTAuMTAyMiAgICAgICAgICAgIDkuNzQ3NystMC4x
NDc3ICAgICAgICAKICAgaW50ZWdlci1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMS42MDg4Ky0wLjExMTMgICAgICAgICAgICAxLjUyNTYrLTAuMTAyNSAgICAgICAg
ICBtaWdodCBiZSAxLjA1NDV4IGZhc3RlcgogICBpcy1ib29sZWFuLWZvbGQtdHJpY2t5ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjU1NTgrLTAuMDczNCAgICAgPyAgICAgIDMuNjYyNCst
MC4yOTY3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMwMHggc2xvd2VyCiAgIGlzLWJvb2xlYW4tZm9s
ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNTE4MCstMC4wNDQ5ICAgICAg
ICAgICAgMi41MDcwKy0wLjAxOTQgICAgICAgIAogICBpcy1mdW5jdGlvbi1mb2xkLXRyaWNreS1p
bnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA5LjUxOTIrLTEuMDEyMyAgICAgICAgICAgIDkuMzA2NistMC43MTg1
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyOHggZmFzdGVyCiAgIGlzLWZ1bmN0aW9uLWZvbGQtdHJp
Y2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMDI5NSstMC42MzQ3ICAgICAgICAgICAg
My44MTk3Ky0wLjEzMDAgICAgICAgICAgbWlnaHQgYmUgMS4wNTQ5eCBmYXN0ZXIKICAgaXMtZnVu
Y3Rpb24tZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40OTczKy0wLjA3
MTkgICAgID8gICAgICAyLjU1MjIrLTAuMDI4MyAgICAgICAgPyBtaWdodCBiZSAxLjAyMjB4IHNs
b3dlcgogICBpcy1udW1iZXItZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjg3MjIrLTAuNTE2NSAgICAgICAgICAgIDMuNzY0OCstMC4xNDA4ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDI4NXggZmFzdGVyCiAgIGlzLW51bWJlci1mb2xkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNTU5OSstMC4wODExICAgICAgICAgICAgMi41NTk1Ky0wLjAzMjMg
ICAgICAgIAogICBpcy1vYmplY3Qtb3ItbnVsbC1mb2xkLWZ1bmN0aW9ucyAgICAgICAgICAgICAg
ICAgICAyLjU0MzIrLTAuMDYwMyAgICAgPyAgICAgIDIuNTk4MistMC4wODM2ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDIxNnggc2xvd2VyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtbGVzcy10cmlj
a3kgICAgICAgICAgICAgICAgIDMuODY3MystMC4xMzQzICAgICAgICAgICAgMy43NTQ1Ky0wLjA0
NjIgICAgICAgICAgbWlnaHQgYmUgMS4wMzAxeCBmYXN0ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwt
Zm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgNC40ODM0Ky0wLjAzMjYgICAgICAgICAg
ICA0LjQ4MzArLTAuMTA5MiAgICAgICAgCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIuNTUwNystMC4wOTI1ICAgICA/ICAgICAgMi42MDcyKy0w
LjE4NTUgICAgICAgID8gbWlnaHQgYmUgMS4wMjIyeCBzbG93ZXIKICAgaXMtb2JqZWN0LW9yLW51
bGwtdHJpY2tpZXItZnVuY3Rpb24gICAgICAgICAgICAgICAgMy45NTY3Ky0wLjQ3MDAgICAgICAg
ICAgICAzLjg0NzcrLTAuMDgwMiAgICAgICAgICBtaWdodCBiZSAxLjAyODN4IGZhc3RlcgogICBp
cy1vYmplY3Qtb3ItbnVsbC10cmlja2llci1pbnRlcm5hbC1mdW5jdGlvbiAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjM5NjArLTAuMDQ5
MCAgICAgXiAgICAgIDkuMTc0MistMC4wNDc4ICAgICAgICBeIGRlZmluaXRlbHkgMS4wMjQyeCBm
YXN0ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2t5LWZ1bmN0aW9uICAgICAgICAgICAgICAg
ICAgMy44NjI1Ky0wLjM1MTggICAgID8gICAgICAzLjg2NDQrLTAuMDk5MyAgICAgICAgPwogICBp
cy1vYmplY3Qtb3ItbnVsbC10cmlja3ktaW50ZXJuYWwtZnVuY3Rpb24gICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4wMTMwKy0wLjEwNTMg
ICAgICAgICAgICA2LjkyMDErLTAuMDk5MiAgICAgICAgICBtaWdodCBiZSAxLjAxMzR4IGZhc3Rl
cgogICBpcy1zdHJpbmctZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjkyODQrLTAuNjcxMyAgICAgICAgICAgIDMuNzQ5NistMC4xMzExICAgICAgICAgIG1pZ2h0IGJl
IDEuMDQ3N3ggZmFzdGVyCiAgIGlzLXN0cmluZy1mb2xkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuNTQ4MCstMC4wNjc2ICAgICAgICAgICAgMi41MTY4Ky0wLjAyNzMgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTI0eCBmYXN0ZXIKICAgaXMtdW5kZWZpbmVkLWZvbGQtdHJpY2t5
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zNjEwKy0wLjY1NTAgICAgICAgICAgICAzLjM1
NTUrLTAuMjg0NCAgICAgICAgCiAgIGlzLXVuZGVmaW5lZC1mb2xkICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNTU0MCstMC4wODYxICAgICA/ICAgICAgMi43MTI4Ky0wLjU0NjUg
ICAgICAgID8gbWlnaHQgYmUgMS4wNjIyeCBzbG93ZXIKICAgSlNPTlAtbmVnYXRpdmUtMCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNDI3Ky0wLjAxMTEgICAgID8gICAgICAw
LjI1NjIrLTAuMDE1NyAgICAgICAgPyBtaWdodCBiZSAxLjA1NTZ4IHNsb3dlcgogICBsYXJnZS1p
bnQtY2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjk3OTIrLTAuNTUx
MSAgICAgPyAgICAgIDQuMDEwNistMC4zODYxICAgICAgICA/CiAgIGxhcmdlLWludC1uZWcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuNzc1NCstMC4yOTg3ICAgICA/ICAg
ICAxNC43MjE5Ky0xLjk0MzQgICAgICAgID8gbWlnaHQgYmUgMS4wNjg3eCBzbG93ZXIKICAgbGFy
Z2UtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi41MjE3Ky0w
LjM5NTUgICAgID8gICAgIDEzLjIxMzErLTEuNjYwNyAgICAgICAgPyBtaWdodCBiZSAxLjA1NTJ4
IHNsb3dlcgogICBsb2FkLXZhcmFyZ3MtZWxpbWluYXRpb24gICAgICAgICAgICAgICAgICAgICAg
ICAgIDIwLjM2NDgrLTAuODE4MSAgICAgICAgICAgMjAuMTUwMCstMS43MDgxICAgICAgICAgIG1p
Z2h0IGJlIDEuMDEwN3ggZmFzdGVyCiAgIGxvZ2ljYWwtbm90LXdlaXJkLXR5cGVzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuOTQ0NSstMC4xMzIwICAgICA/ICAgICAgMy4wOTIzKy0wLjUw
MTUgICAgICAgID8gbWlnaHQgYmUgMS4wNTAyeCBzbG93ZXIKICAgbG9naWNhbC1ub3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC4yNjQ1Ky0wLjM1ODggICAgICAgICAg
ICA0LjE0ODkrLTAuMTM0OSAgICAgICAgICBtaWdodCBiZSAxLjAyNzl4IGZhc3RlcgogICBsb3Rz
LW9mLWZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4Ljg4OTUrLTAu
NTE4NSAgICAgPyAgICAgIDguOTA4OCstMC4yNDE5ICAgICAgICA/CiAgIG1ha2UtaW5kZXhlZC1z
dG9yYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjQzMystMC4wOTI0ICAgICA/
ICAgICAgMi44OTcyKy0wLjIzNzAgICAgICAgID8gbWlnaHQgYmUgMS4wOTYxeCBzbG93ZXIKICAg
bWFrZS1yb3BlLWNzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40MDg0
Ky0wLjEyNTcgICAgID8gICAgICAzLjQ2MzkrLTAuMTQ3NyAgICAgICAgPyBtaWdodCBiZSAxLjAx
NjN4IHNsb3dlcgogICBtYXJzYWdsaWEtbGFyZ2VyLWludHMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDI5Ljg1NjMrLTAuNTY1NyAgICAgPyAgICAgMjkuOTY2MistMC42NjA3ICAgICAgICA/
CiAgIG1hcnNhZ2xpYS1vc3ItZW50cnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAu
NTQwMCstMS4zMjcxICAgICA/ICAgICAyMS4xMzAzKy0xLjIxODggICAgICAgID8gbWlnaHQgYmUg
MS4wMjg3eCBzbG93ZXIKICAgbWF0aC13aXRoLW91dC1vZi1ib3VuZHMtYXJyYXktdmFsdWVzICAg
ICAgICAgICAgICAyMy4zNzcwKy0yLjc1MjYgICAgICAgICAgIDIyLjYyOTUrLTAuODE4NSAgICAg
ICAgICBtaWdodCBiZSAxLjAzMzB4IGZhc3RlcgogICBtYXgtYm9vbGVhbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU4NzArLTAuMTA1OCAgICAgICAgICAgIDIuNTY1
OSstMC4xMTIxICAgICAgICAKICAgbWV0aG9kLW9uLW51bWJlciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxNS4xODgwKy0wLjIwMzAgICAgID8gICAgIDE1LjcwMDIrLTAuNTgwNCAg
ICAgICAgPyBtaWdodCBiZSAxLjAzMzd4IHNsb3dlcgogICBtaW4tYm9vbGVhbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU0ODMrLTAuMDc2OCAgICAgPyAgICAgIDIu
NTUxMistMC4wNjk2ICAgICAgICA/CiAgIG1pbnVzLWJvb2xlYW4tZG91YmxlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuOTc5NCstMC4xNTYyICAgICAgICAgICAgMi45MDM2Ky0wLjA4
MTIgICAgICAgICAgbWlnaHQgYmUgMS4wMjYxeCBmYXN0ZXIKICAgbWludXMtYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yMjg1Ky0wLjA3MjggICAgID8gICAg
ICAyLjI0NDMrLTAuMDM5OSAgICAgICAgPwogICBtaXNjLXN0cmljdC1lcSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDI5Ljg0MTgrLTMuOTUzNSAgICAgICAgICAgMjguMTE3Mist
Mi4zNDA0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDYxM3ggZmFzdGVyCiAgIG1vZC1ib29sZWFuLWRv
dWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNTM5MCstMC41MDE1ICAgICA/
ICAgICAxMC43NjAyKy0wLjc5NDggICAgICAgID8gbWlnaHQgYmUgMS4wMjEweCBzbG93ZXIKICAg
bW9kLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC4xNTQ1
Ky0wLjYwNDcgICAgICAgICAgICA3Ljk4NTErLTAuNDUwMCAgICAgICAgICBtaWdodCBiZSAxLjAy
MTJ4IGZhc3RlcgogICBtdWwtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjQ2NTMrLTAuMDk3NSAgICAgICAgICAgIDMuNDE1MCstMC4wNzMxICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE0N3ggZmFzdGVyCiAgIG11bC1ib29sZWFuICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIuNzEyNistMC4xMTA2ICAgICA/ICAgICAgMi43MTk3Ky0w
LjIzMTIgICAgICAgID8KICAgbmVnLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMi45ODE5Ky0wLjEwODUgICAgICAgICAgICAyLjk2MTgrLTAuMDY1NyAgICAg
ICAgCiAgIG5lZ2F0aXZlLXplcm8tZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuMzUwOCstMC4wMzI2ICAgICAgICAgICAgMC4zMjY3Ky0wLjAwNDQgICAgICAgICAgbWlnaHQg
YmUgMS4wNzM2eCBmYXN0ZXIKICAgbmVnYXRpdmUtemVyby1tb2R1bG8gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMC4zMzE5Ky0wLjAyMzQgICAgICAgICAgICAwLjMyNTQrLTAuMDEyMiAg
ICAgICAgICBtaWdodCBiZSAxLjAxOTl4IGZhc3RlcgogICBuZWdhdGl2ZS16ZXJvLW5lZ2F0ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjMyMjErLTAuMDI5MSAgICAgICAgICAgIDAu
MzExNSstMC4wMTA1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMzOXggZmFzdGVyCiAgIG5lc3RlZC1m
dW5jdGlvbi1wYXJzaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgNDEuNDYyOCstMC41MTAx
ICAgICA/ICAgICA0MS41NzY0Ky0wLjYxMjcgICAgICAgID8KICAgbmV3LWFycmF5LWJ1ZmZlci1k
ZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MS44OTA3Ky0wLjU3NTIgICAgICAgICAg
IDgxLjU2MDUrLTAuNDM2NCAgICAgICAgCiAgIG5ldy1hcnJheS1idWZmZXItcHVzaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDUuNTUyNystMC41MDMxICAgICA/ICAgICAgNS45ODk2Ky0w
LjcwNDcgICAgICAgID8gbWlnaHQgYmUgMS4wNzg3eCBzbG93ZXIKICAgbmV3LWFycmF5LWRlYWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC43MzkwKy0xLjIzODUgICAgICAg
ICAgIDE0LjUyMDcrLTEuNzc0NSAgICAgICAgICBtaWdodCBiZSAxLjAxNTB4IGZhc3RlcgogICBu
ZXctYXJyYXktcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc1MzUr
LTAuODUwMSAgICAgICAgICAgIDMuNTYyNCstMC43MDcxICAgICAgICAgIG1pZ2h0IGJlIDEuMDUz
NnggZmFzdGVyCiAgIG5vLWlubGluZS1jb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjkuNTk3MistMS43MzYxICAgICAgICAgICAyOC45ODEwKy0wLjMwMzggICAgICAgICAg
bWlnaHQgYmUgMS4wMjEzeCBmYXN0ZXIKICAgbnVtYmVyLXRlc3QgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMi44NDk2Ky0wLjA2NzEgICAgID8gICAgICAyLjk4MTErLTAu
NDQ1NiAgICAgICAgPyBtaWdodCBiZSAxLjA0NjF4IHNsb3dlcgogICBvYmplY3QtY2xvc3VyZS1j
YWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYwMjErLTAuMDY0MSAgICAgICAg
ICAgIDQuNTgzOSstMC4wNDQ5ICAgICAgICAKICAgb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3lt
Ym9scy1vbi1sYXJnZS1hcnJheSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjA3OTArLTAuNjIyMyAgICAgPyAgICAgIDQuMTMxMCstMC44
MTc5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyN3ggc2xvd2VyCiAgIG9iamVjdC10ZXN0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNTk2OSstMC4wNjI3ICAgICA/ICAg
ICAgMi42MTkwKy0wLjExMzQgICAgICAgID8KICAgb2J2aW91cy1zaW5rLXBhdGhvbG9neS10YWtl
biAgICAgICAgICAgICAgICAgICAgICA5My4zMjAxKy0yLjU2NDUgICAgID8gICAgIDkzLjU0Mzcr
LTEuNTE4NyAgICAgICAgPwogICBvYnZpb3VzLXNpbmstcGF0aG9sb2d5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDI4LjEzNzUrLTAuMjk4OCAgICAgICAgICAgMjcuOTkxOSstMC4yMTgyICAg
ICAgICAKICAgb2J2aW91c2x5LWVsaWRhYmxlLW5ldy1vYmplY3QgICAgICAgICAgICAgICAgICAg
ICAyNy42MzI3Ky0wLjg4NzEgICAgICAgICAgIDI3LjE0NzgrLTAuNzIxOCAgICAgICAgICBtaWdo
dCBiZSAxLjAxNzl4IGZhc3RlcgogICBwbHVzLWJvb2xlYW4tYXJpdGggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjM1OTcrLTAuMTI2NCAgICAgICAgICAgIDIuMjcyOCstMC4wNDA2
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM4MnggZmFzdGVyCiAgIHBsdXMtYm9vbGVhbi1kb3VibGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMDI2OSstMC4yMjAzICAgICAgICAgICAg
Mi45NjQ0Ky0wLjA2OTggICAgICAgICAgbWlnaHQgYmUgMS4wMjExeCBmYXN0ZXIKICAgcGx1cy1i
b29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41MjY5Ky0wLjE3
MDcgICAgID8gICAgICAyLjU1NDArLTAuMzg3MSAgICAgICAgPyBtaWdodCBiZSAxLjAxMDd4IHNs
b3dlcgogICBwb2x5LWNoYWluLWFjY2Vzcy1kaWZmZXJlbnQtcHJvdG90eXBlcy1zaW1wbGUgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40
OTE2Ky0wLjA4ODAgICAgID8gICAgICAyLjQ5MzIrLTAuMTU3MyAgICAgICAgPwogICBwb2x5LWNo
YWluLWFjY2Vzcy1kaWZmZXJlbnQtcHJvdG90eXBlcyAgICAgICAgICAgICAyLjQ3MjIrLTAuMDUx
NiAgICAgICAgICAgIDIuNDM3MCstMC4xMjcwICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0NXggZmFz
dGVyCiAgIHBvbHktY2hhaW4tYWNjZXNzLXNpbXBsZXIgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuNjUyNSstMC41OTk5ICAgICAgICAgICAgMi42MDkwKy0wLjQ1ODMgICAgICAgICAgbWlnaHQg
YmUgMS4wMTY3eCBmYXN0ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3MgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi40NzQwKy0wLjE1MjcgICAgICAgICAgICAyLjM4MTMrLTAuMDU1NCAg
ICAgICAgICBtaWdodCBiZSAxLjAzODl4IGZhc3RlcgogICBwb2x5LXN0cmljdGVxICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUxLjE0NTQrLTAuNjU0MiAgICAgPyAgICAgNTIu
Mjc5NCstMy40Mjc5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyMnggc2xvd2VyCiAgIHBvbHltb3Jw
aGljLWFycmF5LWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMTcwNystMC4wNjkz
ICAgICA/ICAgICAgMS4yMjI1Ky0wLjA3NjIgICAgICAgID8gbWlnaHQgYmUgMS4wNDQzeCBzbG93
ZXIKICAgcG9seW1vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Mi43MDAxKy0wLjA3MjggICAgID8gICAgICAyLjc1MTMrLTAuMTA3NiAgICAgICAgPyBtaWdodCBi
ZSAxLjAxODl4IHNsb3dlcgogICBwb2x5bW9ycGhpYy1wdXQtYnktaWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDI3LjM1MzMrLTMuNDMxNCAgICAgICAgICAgMjYuNjY2MSstMS41MzgwICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDI1OHggZmFzdGVyCiAgIHBvbHltb3JwaGljLXB1dC1ieS12YWwt
d2l0aC1zdHJpbmcgICAgICAgICAgICAgICAgMjcuNDQ0MystMS4wNTkzICAgICA/ICAgICAyNy40
NTc4Ky0xLjIxMDAgICAgICAgID8KICAgcG9seW1vcnBoaWMtcHV0LWJ5LXZhbC13aXRoLXN5bWJv
bCAgICAgICAgICAgICAgICAyNi44ODM3Ky0xLjI3MTkgICAgID8gICAgIDI3LjEyMjMrLTAuNTEw
MyAgICAgICAgPwogICBwb2x5bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDExLjkyMjgrLTAuNDQwMiAgICAgICAgICAgMTEuODk0OCstMC43NjI3ICAgICAgICAK
ICAgcG9seXZhcmlhbnQtbW9ub21vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgNi44
MzE3Ky0xLjMyNzMgICAgID8gICAgICA2Ljg0NTQrLTEuMjU4NiAgICAgICAgPwogICBwcm90by1n
ZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjEzNTErLTAuODE0
NCAgICAgICAgICAgIDcuOTY4MCstMC4zNTg0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxMHggZmFz
dGVyCiAgIHByb3RvdHlwZS1hY2Nlc3Mtd2l0aC1tdXRhdGluZy1wcm90b3R5cGUgICAgICAgICAg
IDUuMDQwMCstMC4yMjY2ICAgICA/ICAgICAgNS4wNzY4Ky0wLjIwNzggICAgICAgID8KICAgcHV0
LWJ5LWlkLXJlcGxhY2UtYW5kLXRyYW5zaXRpb24gICAgICAgICAgICAgICAgICAgNy4zNzQ1Ky0w
LjM2ODkgICAgID8gICAgICA4LjIwNDgrLTEuNzM5MyAgICAgICAgPyBtaWdodCBiZSAxLjExMjZ4
IHNsb3dlcgogICBwdXQtYnktaWQtc2xpZ2h0bHktcG9seW1vcnBoaWMgICAgICAgICAgICAgICAg
ICAgICAyLjU1MTArLTAuMDY4MiAgICAgICAgICAgIDIuNTQwMystMC4wNTk2ICAgICAgICAKICAg
cHV0LWJ5LWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS40NjU1
Ky0wLjkxMDQgICAgICAgICAgICA5LjQwMTgrLTEuMDYwOSAgICAgICAgCiAgIHB1dC1ieS12YWwt
ZGlyZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzI3NSstMC4wMTU2ICAg
ICA/ICAgICAgMC4zNDI1Ky0wLjA2NDggICAgICAgID8gbWlnaHQgYmUgMS4wNDU3eCBzbG93ZXIK
ICAgcHV0LWJ5LXZhbC1sYXJnZS1pbmRleC1ibGFuay1pbmRleGluZy10eXBlICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuODI3NistMC4y
NTU2ICAgICA/ICAgICAgNC45NDQwKy0wLjMzNTAgICAgICAgID8gbWlnaHQgYmUgMS4wMjQxeCBz
bG93ZXIKICAgcHV0LWJ5LXZhbC1tYWNoaW5lLWludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMi41NDkxKy0wLjE2ODcgICAgID8gICAgICAyLjY5MDArLTAuNzUxOSAgICAgICAgPyBtaWdo
dCBiZSAxLjA1NTN4IHNsb3dlcgogICBwdXQtYnktdmFsLXdpdGgtc3RyaW5nLXJlcGxhY2UtYW5k
LXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxMC4wMjY5Ky0wLjk2MjQgICAgID8gICAgIDEwLjE3ODArLTAuNjk4MCAgICAg
ICAgPyBtaWdodCBiZSAxLjAxNTF4IHNsb3dlcgogICBwdXQtYnktdmFsLXdpdGgtc3RyaW5nLXNs
aWdodGx5LXBvbHltb3JwaGljICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuODM2NSstMC4wMjY2ICAgICAgICAgICAgMi44MzE1Ky0wLjAx
NjQgICAgICAgIAogICBwdXQtYnktdmFsLXdpdGgtc3RyaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA5LjcwMjIrLTAuNDI5OCAgICAgPyAgICAgMTAuMzMyNistMC45NzA2ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDY1MHggc2xvd2VyCiAgIHB1dC1ieS12YWwtd2l0aC1zeW1ib2wtcmVwbGFj
ZS1hbmQtdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEyLjIwOTArLTQuNjA0MyAgICAgICAgICAgMTEuMzA2NSstMC41OTM4
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDc5OHggZmFzdGVyCiAgIHB1dC1ieS12YWwtd2l0aC1zeW1i
b2wtc2xpZ2h0bHktcG9seW1vcnBoaWMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMy4xMTAyKy0wLjA1MzUgICAgICAgICAgICAzLjA3MTUr
LTAuMTA0MSAgICAgICAgICBtaWdodCBiZSAxLjAxMjZ4IGZhc3RlcgogICBwdXQtYnktdmFsLXdp
dGgtc3ltYm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5Ljk3NzIrLTAuNzc2MCAgICAg
ICAgICAgIDkuODk2MistMS4wNjI2ICAgICAgICAKICAgcmFyZS1vc3ItZXhpdC1vbi1sb2NhbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMy4xODIzKy0wLjIyMTAgICAgID8gICAgIDEzLjc1
NzgrLTAuNTUwMyAgICAgICAgPyBtaWdodCBiZSAxLjA0Mzd4IHNsb3dlcgogICByYXl0cmFjZS13
aXRoLWVtcHR5LXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICA1LjExNzQrLTAuMTAxNCAg
ICAgICAgICAgIDUuMDc4MSstMC4wNDA1ICAgICAgICAKICAgcmF5dHJhY2Utd2l0aC10cnktY2F0
Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgOS45OTE4Ky0wLjc1MjUgICAgID8gICAgIDEw
LjA4ODUrLTAuNjA3NSAgICAgICAgPwogICByZWdpc3Rlci1wcmVzc3VyZS1mcm9tLW9zciAgICAg
ICAgICAgICAgICAgICAgICAgIDE2LjI5OTMrLTEuNjUxOSAgICAgICAgICAgMTUuOTk0MCstMS4x
MzUzICAgICAgICAgIG1pZ2h0IGJlIDEuMDE5MXggZmFzdGVyCiAgIHJlcGVhdC1tdWx0aS1nZXQt
Ynktb2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAgMjEuNTE2MSstMS40MzM5ICAgICA/ICAg
ICAyMy43OTE3Ky0zLjMxNTkgICAgICAgID8gbWlnaHQgYmUgMS4xMDU4eCBzbG93ZXIKICAgcmlj
aGFyZHMtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICA1NS42NzIwKy0y
LjQ5NDkgICAgID8gICAgIDU2LjM2ODMrLTEuNDAwMCAgICAgICAgPyBtaWdodCBiZSAxLjAxMjV4
IHNsb3dlcgogICByaWNoYXJkcy10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjI2LjYwNjArLTQuODI1NyAgICAgPyAgICAyMjguMzE1NSstNi41NDI3ICAgICAgICA/CiAg
IHNldHRlci1wcm90b3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMjM4
MystMC4wNDcyICAgICA/ICAgICAgNy4zMzc5Ky0wLjQ0MDUgICAgICAgID8gbWlnaHQgYmUgMS4w
MTM4eCBzbG93ZXIKICAgc2V0dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNi40NzMwKy0xLjAzNDIgICAgICAgICAgICA1LjMwNzQrLTEuMDYyMSAgICAgICAg
ICBtaWdodCBiZSAxLjIxOTZ4IGZhc3RlcgogICBzaW1wbGUtYWN0aXZhdGlvbi1kZW1vICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIzLjcwNzYrLTEuNDM3NiAgICAgICAgICAgMjMuMDk4MCst
MC44Njg3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2NHggZmFzdGVyCiAgIHNpbXBsZS1nZXR0ZXIt
YWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuODU1MystMC4zODk2ICAgICA/
ICAgICAxMC4xMDMwKy0wLjcyMDggICAgICAgID8gbWlnaHQgYmUgMS4wMjUxeCBzbG93ZXIKICAg
c2ltcGxlLXBvbHktY2FsbC1uZXN0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy45NDI0
Ky0wLjYwMTkgICAgID8gICAgICA3Ljk5NDIrLTAuNjI2OCAgICAgICAgPwogICBzaW1wbGUtcG9s
eS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjIxMDArLTAuMDI0OSAg
ICAgPyAgICAgIDEuMjY3OCstMC4yMDU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ3OHggc2xvd2Vy
CiAgIHNpbi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTgu
ODcwMSstNS4zOTkxICAgICAgICAgICAxOC4yMzI3Ky0xLjgxNjUgICAgICAgICAgbWlnaHQgYmUg
MS4wMzUweCBmYXN0ZXIKICAgc2luZ2xldG9uLXNjb3BlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA1Ny4zNjQ2Ky0wLjU0OTYgICAgID8gICAgIDU4LjkyNTUrLTYuMzUwOSAgICAg
ICAgPyBtaWdodCBiZSAxLjAyNzJ4IHNsb3dlcgogICBzaW5rLWZ1bmN0aW9uICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA5LjA3MzcrLTIuODQzMyAgICAgPyAgICAgIDkuMjcz
NistMC40MDgzICAgICAgICA/IG1pZ2h0IGJlIDEuMDIyMHggc2xvd2VyCiAgIHNpbmstaHVnZS1h
Y3RpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUuMzk2NSstMS42NTg0ICAg
ICA/ICAgICAxNS42MjUyKy0zLjQyMDYgICAgICAgID8gbWlnaHQgYmUgMS4wMTQ5eCBzbG93ZXIK
ICAgc2lua2FibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC4w
MDU3Ky0zLjM5MTUgICAgID8gICAgIDQ5LjEzODUrLTEuNDA3MCAgICAgICAgPyBtaWdodCBiZSAx
LjAyMzZ4IHNsb3dlcgogICBzaW5rYWJsZS1uZXctb2JqZWN0LXRha2VuICAgICAgICAgICAgICAg
ICAgICAgICAgIDM3LjYwNDcrLTAuNDczNSAgICAgPyAgICAgMzguNTMyMistMi44ODE2ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI0N3ggc2xvd2VyCiAgIHNpbmthYmxlLW5ldy1vYmplY3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjcuOTIyOSstMC45MjM0ICAgICA/ICAgICAyOC4yMzYw
Ky0wLjYzODcgICAgICAgID8gbWlnaHQgYmUgMS4wMTEyeCBzbG93ZXIKICAgc2xvdy1hcnJheS1w
cm9maWxlLWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgMi40NzU4Ky0wLjE5MjEgICAg
ICAgICAgICAyLjQzOTUrLTAuMTk2NSAgICAgICAgICBtaWdodCBiZSAxLjAxNDl4IGZhc3Rlcgog
ICBzbG93LWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM4
MjUrLTAuMDU5NyAgICAgICAgICAgIDIuMzUzMCstMC4wNTcyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDEyNXggZmFzdGVyCiAgIHNsb3ctdGVybmFyaWVzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTcuMDY5NistMS41MjMwICAgICAgICAgICAxNi45MjYwKy0xLjY4MDEgICAgICAg
IAogICBzb3J0aW5nLWJlbmNobWFyayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3
LjQ2MDgrLTEuMTQ2MiAgICAgICAgICAgMTcuMzI2NystMi4xNjc1ICAgICAgICAKICAgc3BhcnNl
LWNvbmRpdGlvbmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4xMjUyKy0wLjA1
NzUgICAgID8gICAgICAxLjEyOTQrLTAuMDIxNyAgICAgICAgPwogICBzcGxpY2UtdG8tcmVtb3Zl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjk1MDcrLTIuMzY3OSAgICAgICAg
ICAgMTIuMjI2NistMS4wNjI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU5MnggZmFzdGVyCiAgIHN0
cmluZy1jaGFyLWNvZGUtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuODQ0Nyst
MS4wNzcxICAgICAgICAgICAxMi40OTU3Ky0wLjM2OTQgICAgICAgICAgbWlnaHQgYmUgMS4wMjc5
eCBmYXN0ZXIKICAgc3RyaW5nLWNvbmNhdC1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi4xODE1Ky0wLjI1MzEgICAgICAgICAgICAyLjAyMzQrLTAuMDQ5NyAgICAgICAgICBt
aWdodCBiZSAxLjA3ODF4IGZhc3RlcgogICBzdHJpbmctY29uY2F0LXBhaXItb2JqZWN0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAyLjA1MjIrLTAuMzQ0MiAgICAgICAgICAgIDEuOTkyNSstMC4x
MTI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMwMHggZmFzdGVyCiAgIHN0cmluZy1jb25jYXQtcGFp
ci1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMjY5NSstMS41MDU0ICAgICAgICAg
ICAgOC45MTMwKy0wLjQ5NzUgICAgICAgICAgbWlnaHQgYmUgMS4wNDAweCBmYXN0ZXIKICAgc3Ry
aW5nLWNvbmNhdC1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC43MTM3Ky0w
LjQ3NzMgICAgID8gICAgICA5LjM1NDQrLTEuNTkyOCAgICAgICAgPyBtaWdodCBiZSAxLjA3MzV4
IHNsb3dlcgogICBzdHJpbmctY29ucy1yZXBlYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA2LjUwMTArLTAuNjEzNSAgICAgICAgICAgIDYuMjQ3NistMC4xODU2ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDQwNnggZmFzdGVyCiAgIHN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDYuNDI5NSstMC4yMzQ0ICAgICAgICAgICAgNi40MjU1Ky0wLjQy
NDcgICAgICAgIAogICBzdHJpbmctZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDE3LjYwNzkrLTAuMzQzMyAgICAgICAgICAgMTcuMjI0NCstMC44ODY4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDIyM3ggZmFzdGVyCiAgIHN0cmluZy1nZXQtYnktdmFsLWJpZy1jaGFyICAg
ICAgICAgICAgICAgICAgICAgICAgIDYuNDU0OCstMC41ODE0ICAgICAgICAgICAgNi4xNTQwKy0w
LjE1MTIgICAgICAgICAgbWlnaHQgYmUgMS4wNDg5eCBmYXN0ZXIKICAgc3RyaW5nLWdldC1ieS12
YWwtb3V0LW9mLWJvdW5kcy1pbnNhbmUgICAgICAgICAgICAgMi45NzUzKy0wLjExOTAgICAgICAg
ICAgICAyLjk3NDgrLTAuMTkxOSAgICAgICAgCiAgIHN0cmluZy1nZXQtYnktdmFsLW91dC1vZi1i
b3VuZHMgICAgICAgICAgICAgICAgICAgIDMuNzQwNSstMC4xNDAyICAgICA/ICAgICAgMy43NDU0
Ky0wLjA4NTggICAgICAgID8KICAgc3RyaW5nLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi43MDg5Ky0wLjA0MjMgICAgID8gICAgICAyLjc5MzUrLTAuNDk2NiAg
ICAgICAgPyBtaWdodCBiZSAxLjAzMTJ4IHNsb3dlcgogICBzdHJpbmctaGFzaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjg1NjkrLTAuMjE0OCAgICAgICAgICAgIDEu
ODAxMistMC4xMDQxICAgICAgICAgIG1pZ2h0IGJlIDEuMDMwOXggZmFzdGVyCiAgIHN0cmluZy1s
b25nLWlkZW50LWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgMTQuNTg5NystMC4zNzY0
ICAgICA/ICAgICAxNS4yMTAzKy0yLjU3NTQgICAgICAgID8gbWlnaHQgYmUgMS4wNDI1eCBzbG93
ZXIKICAgc3RyaW5nLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OS43MDgwKy0wLjYxODcgICAgICAgICAgICA5LjM1NzUrLTAuNDkwMyAgICAgICAgICBtaWdodCBi
ZSAxLjAzNzV4IGZhc3RlcgogICBzdHJpbmctcmVwZWF0LWFyaXRoICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDI3LjEzMjUrLTMuNjI1NiAgICAgPyAgICAgMjcuNzgwOSstMy4xNjYwICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDIzOXggc2xvd2VyCiAgIHN0cmluZy1yb3BlLXdpdGgtb2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuNjg4NSstMS4zNjQ4ICAgICA/ICAgICAxOS43
MzE5Ky0xLjM5NDcgICAgICAgID8KICAgc3RyaW5nLXN1YiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzNS4zNDcwKy0zLjc1OTQgICAgICAgICAgIDMyLjc3MDQrLTIuMDQz
MCAgICAgICAgICBtaWdodCBiZSAxLjA3ODZ4IGZhc3RlcgogICBzdHJpbmctdGVzdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjg3OTArLTAuNDM1MiAgICAgICAgICAg
IDIuNzU0NSstMC4wNzUzICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ1MnggZmFzdGVyCiAgIHN0cmlu
Zy12YXItZXF1YWxpdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjkuMjQ4OSstNC45
ODExICAgICAgICAgICAyNy43MjU2Ky0zLjQ5NTMgICAgICAgICAgbWlnaHQgYmUgMS4wNTQ5eCBm
YXN0ZXIKICAgc3RydWN0dXJlLWhvaXN0LW92ZXItdHJhbnNpdGlvbnMgICAgICAgICAgICAgICAg
ICAgMi4zMDQzKy0wLjA5OTkgICAgICAgICAgICAyLjI3NTMrLTAuMDkwMSAgICAgICAgICBtaWdo
dCBiZSAxLjAxMjh4IGZhc3RlcgogICBzdWJzdHJpbmctY29uY2F0LXdlaXJkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMzLjE5MDkrLTAuODY2MCAgICAgPyAgICAgMzMuMjU3NCstMC43Njk5
ICAgICAgICA/CiAgIHN1YnN0cmluZy1jb25jYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMzYuODM2NSstMS4xMTc3ICAgICAgICAgICAzNi43NzQ3Ky0xLjE0NTYgICAgICAgIAog
ICBzdWJzdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyLjcy
MDArLTAuMjc0NCAgICAgPyAgICAgNDMuMzA5MSstMC43ODgyICAgICAgICA/IG1pZ2h0IGJlIDEu
MDEzOHggc2xvd2VyCiAgIHN3aXRjaC1jaGFyLWNvbnN0YW50ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuNzk0NystMC41NTQ0ICAgICAgICAgICAgMi41ODA3Ky0wLjA2MDUgICAgICAg
ICAgbWlnaHQgYmUgMS4wODI5eCBmYXN0ZXIKICAgc3dpdGNoLWNoYXIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNS4yNTI1Ky0wLjQyMjMgICAgID8gICAgICA2LjMyODYr
LTEuNTQyOCAgICAgICAgPyBtaWdodCBiZSAxLjIwNDl4IHNsb3dlcgogICBzd2l0Y2gtY29uc3Rh
bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjAxNzMrLTAuNjE0OCAgICAg
ICAgICAgIDYuNzc3MistMC43MjU0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM1NHggZmFzdGVyCiAg
IHN3aXRjaC1zdHJpbmctYmFzaWMtYmlnLXZhciAgICAgICAgICAgICAgICAgICAgICAgMTQuNDAw
NCstMS45NDUxICAgICA/ICAgICAxNC41MDUyKy0wLjkxNDcgICAgICAgID8KICAgc3dpdGNoLXN0
cmluZy1iYXNpYy1iaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC4yMDU5Ky0wLjY3MzIg
ICAgID8gICAgIDE0LjQwNzgrLTAuNjc3MCAgICAgICAgPyBtaWdodCBiZSAxLjAxNDJ4IHNsb3dl
cgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLXZhciAgICAgICAgICAgICAgICAgICAgICAgICAgIDEz
Ljc0NDQrLTEuMjQyOCAgICAgICAgICAgMTMuMjU1NSstMC4yOTA2ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDM2OXggZmFzdGVyCiAgIHN3aXRjaC1zdHJpbmctYmFzaWMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTIuNjMzMistMC43NzQxICAgICAgICAgICAxMi4yOTAyKy0wLjM5MTUgICAg
ICAgICAgbWlnaHQgYmUgMS4wMjc5eCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1iaWctbGVuZ3Ro
LXRvd2VyLXZhciAgICAgICAgICAgICAgICAxNy41Mjk3Ky0xLjY1NjIgICAgID8gICAgIDE3Ljcw
ODErLTIuNDkzMyAgICAgICAgPyBtaWdodCBiZSAxLjAxMDJ4IHNsb3dlcgogICBzd2l0Y2gtc3Ry
aW5nLWxlbmd0aC10b3dlci12YXIgICAgICAgICAgICAgICAgICAgIDEyLjkzNDArLTAuNjkxMiAg
ICAgPyAgICAgMTMuMDUyMCstMS4xOTA1ICAgICAgICA/CiAgIHN3aXRjaC1zdHJpbmctbGVuZ3Ro
LXRvd2VyICAgICAgICAgICAgICAgICAgICAgICAgMTEuNjk1MystMS4yODYwICAgICAgICAgICAx
MS40NDEyKy0wLjQwNDYgICAgICAgICAgbWlnaHQgYmUgMS4wMjIyeCBmYXN0ZXIKICAgc3dpdGNo
LXN0cmluZy1zaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMi4yNjA3Ky0yLjg4
NDYgICAgICAgICAgIDExLjg1MTArLTEuODYzOSAgICAgICAgICBtaWdodCBiZSAxLjAzNDZ4IGZh
c3RlcgogICBzd2l0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEwLjE5NjErLTAuNzU3OSAgICAgPyAgICAgMTAuNTI1NystMC42NDk2ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDMyM3ggc2xvd2VyCiAgIHRlYXItb2ZmLWFyZ3VtZW50cy1zaW1wbGUgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMuMTEwMSstMC41NDQyICAgICAgICAgICAgMi44NDE1Ky0wLjE0NTMg
ICAgICAgICAgbWlnaHQgYmUgMS4wOTQ1eCBmYXN0ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44MjUwKy0wLjE2NTMgICAgID8gICAgICAz
Ljg2MDArLTAuMTQzOCAgICAgICAgPwogICB0ZW1wb3JhbC1zdHJ1Y3R1cmUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDExLjI1NjMrLTAuNTcyMSAgICAgPyAgICAgMTEuNjQyOCstMC42
MTI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0M3ggc2xvd2VyCiAgIHRvLWludDMyLWJvb2xlYW4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuMzA3MCstMS4yNzMwICAgICAgICAg
ICAxMS43MTgzKy0wLjMwNzMgICAgICAgICAgbWlnaHQgYmUgMS4wNTAyeCBmYXN0ZXIKICAgdHJ5
LWNhdGNoLWdldC1ieS12YWwtY2xvbmVkLWFyZ3VtZW50cyAgICAgICAgICAgICAgOS4yNzgwKy0w
LjY0MjggICAgICAgICAgICA5LjA4MjIrLTAuNDg3MyAgICAgICAgICBtaWdodCBiZSAxLjAyMTZ4
IGZhc3RlcgogICB0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1kaXJlY3QtYXJndW1lbnRzICAgICAgICAg
ICAgICAyLjA1MzUrLTAuMDc3OSAgICAgPyAgICAgIDIuMzI0MistMC43NjE4ICAgICAgICA/IG1p
Z2h0IGJlIDEuMTMxOHggc2xvd2VyCiAgIHRyeS1jYXRjaC1nZXQtYnktdmFsLXNjb3BlZC1hcmd1
bWVudHMgICAgICAgICAgICAgIDQuNDIzNystMC40MDQzICAgICAgICAgICAgNC40MDcwKy0wLjE2
NTkgICAgICAgIAogICB0eXBlZC1hcnJheS1nZXQtc2V0LWJ5LXZhbC1wcm9maWxpbmcgICAgICAg
ICAgICAgIDI2LjM0MzkrLTEuNjY4MCAgICAgICAgICAgMjYuMDAxMistMC45NjExICAgICAgICAg
IG1pZ2h0IGJlIDEuMDEzMnggZmFzdGVyCiAgIHVuZGVmaW5lZC1wcm9wZXJ0eS1hY2Nlc3MgICAg
ICAgICAgICAgICAgICAgICAgICAyMTAuMDE0MistOC4xOTU0ICAgICAgICAgIDIwNC44MDY0Ky00
LjQxNDQgICAgICAgICAgbWlnaHQgYmUgMS4wMjU0eCBmYXN0ZXIKICAgdW5kZWZpbmVkLXRlc3Qg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44NTg1Ky0wLjAxNjMgICAgID8g
ICAgICAzLjA4MTUrLTAuNTQ3NyAgICAgICAgPyBtaWdodCBiZSAxLjA3ODB4IHNsb3dlcgogICB1
bnByb2ZpbGVkLWxpY20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjcyMzkr
LTAuNzM3MiAgICAgICAgICAgIDguNTg4OCstMC45NDEyICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1
N3ggZmFzdGVyCiAgIHY4LXJheXRyYWNlLXdpdGgtZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAg
ICAgICAgNTMuMDM1NistMS42ODk5ICAgICA/ICAgICA1NC4wNzczKy0xLjI2OTAgICAgICAgID8g
bWlnaHQgYmUgMS4wMTk2eCBzbG93ZXIKICAgdjgtcmF5dHJhY2Utd2l0aC10cnktY2F0Y2ggICAg
ICAgICAgICAgICAgICAgICAgICA2NS40MzE3Ky0xLjA2MjUgICAgICAgICAgIDYzLjM0MTIrLTMu
MTUzNyAgICAgICAgICBtaWdodCBiZSAxLjAzMzB4IGZhc3RlcgogICB2YXJhcmdzLWNhbGwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjc2MDIrLTAuNzQ1MiAgICAgICAg
ICAgMTIuNjAxOCstMC45Mzc1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyNnggZmFzdGVyCiAgIHZh
cmFyZ3MtY29uc3RydWN0LWlubGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuNjA0Mist
Mi4yMjQ3ICAgICAgICAgICAyMC43NTE1Ky0wLjg3MjUgICAgICAgICAgbWlnaHQgYmUgMS4wNDEx
eCBmYXN0ZXIKICAgdmFyYXJncy1jb25zdHJ1Y3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxOS41NzI0Ky0wLjcxNDEgICAgICAgICAgIDE5LjA1MjgrLTAuMDY3OSAgICAgICAgICBt
aWdodCBiZSAxLjAyNzN4IGZhc3RlcgogICB2YXJhcmdzLWlubGluZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA4LjQ5MTUrLTAuNjAzNyAgICAgICAgICAgIDguMzg4MCstMC4x
MzczICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyM3ggZmFzdGVyCiAgIHZhcmFyZ3Mtc3RyaWN0LW1v
ZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNjU0OSstMS4wODcwICAgICAgICAg
ICAgOS41NDY4Ky0wLjg0MzMgICAgICAgICAgbWlnaHQgYmUgMS4wMTEzeCBmYXN0ZXIKICAgdmFy
YXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4zNTY5Ky0w
LjIxNTMgICAgICAgICAgICA5LjMyNTMrLTAuMTkyMCAgICAgICAgCiAgIHdlaXJkLWlubGluaW5n
LWNvbnN0LXByb3AgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDk1NystMC4yNjY3ICAgICA/
ICAgICAgMi4xMTAwKy0wLjE1NTAgICAgICAgID8KCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuODExMSstMC4wMjI3ICAgICAgICAgICAgNy43
OTMyKy0wLjAyODggICAgICAgICAgbWlnaHQgYmUgMS4wMDIzeCBmYXN0ZXIKCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9UICAgICAg
ICAgICAgICAgICAgICAgICAgTUMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCkFzbUJlbmNoOgogICBiaWdmaWIuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNDM0LjM4MjUrLTEwLjQ4NDggICAgPyAgICA0MzYuOTIzNystMTIuNzQ0NSAgICAg
ICA/CiAgIGNyYXkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
NzkuMjY2MSstMTMuNzQyMiAgICAgICAgIDM3Ni4xNzY0Ky0yLjg5NTQgICAgICAgIAogICBkcnku
YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDE0Ljk4MDgrLTgu
MTQ0NCAgICAgICAgICA0MTEuNTk2NSstMi4zMTA3ICAgICAgICAKICAgRmxvYXRNTS5jICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY1MS42NTE4Ky02LjQ3NDYgICAgID8g
ICAgNjYwLjg0NzgrLTMuNjY3OCAgICAgICAgPyBtaWdodCBiZSAxLjAxNDF4IHNsb3dlcgogICBn
Y2MtbG9vcHMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMjg5LjcxNjYr
LTMxLjAyMjkgICAgICAgIDMyODcuMzA3MystMzMuNDM1NCAgICAgICAKICAgbi1ib2R5LmMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc5NS4yODQ3Ky0zLjkwODEgICAg
ICAgICAgNzkwLjkzNzMrLTE3LjYxNjggICAgICAgCiAgIFF1aWNrc29ydC5jICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzOTIuMjcyMystMTQuMTYwMyAgICAgICAgIDM4NC44
ODc2Ky0xMi4zNjA4ICAgICAgICAgbWlnaHQgYmUgMS4wMTkyeCBmYXN0ZXIKICAgc3RlcGFub3Zf
Y29udGFpbmVyLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgMzQwMS43NTc0Ky00NS4zMDI3
ICAgICAgICAzNDAwLjYzNzUrLTU3LjI4NTIgICAgICAgCiAgIFRvd2Vycy5jICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMjYuNzczMCstNS4wNTM4ICAgICA/ICAgIDIz
MS43NTQ1Ky02LjEyMTIgICAgICAgID8gbWlnaHQgYmUgMS4wMjIweCBzbG93ZXIKCiAgIDxnZW9t
ZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2ODkuNTU5NistMi42
NjY4ICAgICAgICAgIDY4OS41NDYzKy00LjYxNTEgICAgICAgICAgbWlnaHQgYmUgMS4wMDAweCBm
YXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVE9UICAgICAgICAgICAgICAgICAgICAgICAgTUMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCkNvbXByZXNzaW9uQmVuY2g6CiAgIGh1ZmZtYW4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTQuNTIzOSstMC45MzU2ICAgICAg
ICAgICA1My44Njc2Ky0yLjA1NzAgICAgICAgICAgbWlnaHQgYmUgMS4wMTIyeCBmYXN0ZXIKICAg
YXJpdGhtZXRpYy1zaW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI2MS40MDg2
Ky00LjM1NjMgICAgICAgICAgMjU3LjY4ODgrLTEuNzk4NiAgICAgICAgICBtaWdodCBiZSAxLjAx
NDR4IGZhc3RlcgogICBhcml0aG1ldGljLXByZWNpc2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMjM0LjY4MTMrLTIuOTA2NCAgICAgPyAgICAyMzYuODkzNistMTEuNjE5OSAgICAgICA/
CiAgIGFyaXRobWV0aWMtY29tcGxleC1wcmVjaXNlICAgICAgICAgICAgICAgICAgICAgICAyMzUu
NjQ5NystMy4yOTEzICAgICA/ICAgIDIzNi4yNjkyKy04LjM0MDAgICAgICAgID8KICAgYXJpdGht
ZXRpYy1wcmVjaXNlLW9yZGVyLTAgICAgICAgICAgICAgICAgICAgICAgIDI3Mi45NTkwKy00Ljg1
MzEgICAgICAgICAgMjY3Ljc3MzYrLTIuNDk5MiAgICAgICAgICBtaWdodCBiZSAxLjAxOTR4IGZh
c3RlcgogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXItMSAgICAgICAgICAgICAgICAgICAgICAg
Mjg5LjUxMTArLTcuNTM5OCAgICAgPyAgICAyOTEuOTIwNystOS4xMDU1ICAgICAgICA/CiAgIGFy
aXRobWV0aWMtcHJlY2lzZS1vcmRlci0yICAgICAgICAgICAgICAgICAgICAgICAzMzQuMzIyNSst
My44NjkwICAgICA/ICAgIDMzNS4zODAxKy05LjM5ODEgICAgICAgID8KICAgYXJpdGhtZXRpYy1z
aW1wbGUtb3JkZXItMSAgICAgICAgICAgICAgICAgICAgICAgIDMwNy40OTMwKy03LjU1NDggICAg
ICAgICAgMzA0LjYyNjUrLTMuNDYxMyAgICAgICAgCiAgIGFyaXRobWV0aWMtc2ltcGxlLW9yZGVy
LTIgICAgICAgICAgICAgICAgICAgICAgICAzNjAuMzE1OCstMTMuMDY1MiAgICA/ICAgIDM2Ny40
OTExKy0xNi42MzEwICAgICAgID8gbWlnaHQgYmUgMS4wMTk5eCBzbG93ZXIKICAgbHotc3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxNi42NDA5Ky01Ljg4NzYg
ICAgICAgICAgMzEwLjEzMTIrLTUuNjQwOSAgICAgICAgICBtaWdodCBiZSAxLjAyMTB4IGZhc3Rl
cgoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0
My40MTEzKy0xLjMzNjMgICAgICAgICAgMjQyLjYwNDcrLTIuODE4OSAgICAgICAgICBtaWdodCBi
ZSAxLjAwMzN4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUT1QgICAgICAgICAgICAgICAgICAgICAgICBNQyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKR2VvbWVhbiBvZiBwcmVmZXJyZWQgbWVh
bnM6CiAgIDxzY2FsZWQtcmVzdWx0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NDcuODIxNystMC4xMzMzICAgICA/ICAgICA0Ny44NzA3Ky0wLjIwODAgICAgICAgID8gbWlnaHQg
YmUgMS4wMDEweCBzbG93ZXIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266823</attachid>
            <date>2015-12-07 15:55:15 -0800</date>
            <delta_ts>2015-12-07 16:26:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151839-20151207155445.patch</filename>
            <type>text/plain</type>
            <size>119216</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyMjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZDY2MjIxMzQ5YjYwNzQxYjdmYjFiNzk1ZmMwNDZkMGU5NzU3ZTJhLi4yN2E5YjYyOGYzNmNjMGE2
MmQyMDcxMDg4MzYxY2RhNTMxNjZhNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNjQgQEAKKzIwMTUtMTItMDcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0g
U3RpbGwgbmVlZCB0byBkbyAzMi1iaXQsIGFkZCB0ZXN0cywgYW5kIGNsZWFudXAgYnV0IHNob3Vs
ZCBiZSByb3VnaGx5IGRvbmUuCisgICAgICAgIEJlbmNobWFya3MgaW5kaWNhdGUgbm8gcGVyZm9y
bWFuY2UgcmVncmVzc2lvbnMgZnJvbSB0aGVzZSBjaGFuZ2VzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBzdXBwb3J0IGZvciBTeW1ib2wuaGFzSW5zdGFuY2UsIHVuZm9ydHVuYXRlbHkgaW4g
b3JkZXIgdG8gcHJldmVudAorICAgICAgICByZWdyZXNzaW9ucyBzZXZlcmFsIG5ldyBieXRlY29k
ZXMgYW5kIERGRyBJUiBub2RlcyB3ZXJlIG5lY2Vzc2FyeS4gQmVmb3JlLCBTeW1ib2wuaGFzSW5z
dGFuY2UKKyAgICAgICAgd2hlbiBleGVjdXRpbmcgYW4gaW5zdGFuY2VvZiBleHByZXNzaW9uIHdl
IHdvdWxkIGVtaXQgdGhyZWUgYnl0ZWNvZGVzOiBjaGVja19oYXNfaW5zdGFuY2UsIGdldF9ieV9p
ZCwKKyAgICAgICAgdGhlbiBpbnN0YW5jZW9mLiBBcyB0aGUgc3BlYyBoYXMgY2hhbmdlZCwgd2Ug
ZW1pdCBhIG1vcmUgY29tcGxpY2F0ZWQgc2V0IG9mIGJ5dGVjb2RlcyBpbiBhZGRpdGlvbiB0byBz
b21lCisgICAgICAgIG5ldyBvbmVzLiBGaXJzdCB0aGUgcm9sZSBvZiBjaGVja19oYXNfaW5zdGFu
Y2UgYW5kIGl0cyBjb3JyZXNwb25kaW5nIERGRyBub2RlIGhhdmUgY2hhbmdlZC4gTm93IGl0IHJl
dHVybnMKKyAgICAgICAgYSBqcy1ib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgUkhTIG9m
IHRoZSBpbnN0YW5jZW9mIGV4cHJlc3Npb24gKGZyb20gaGVyZSBvbiBjYWxsZWQgdGhlIGNvbnN0
cnVjdG9yIGZvciBzaW1wbGljaXR5KQorICAgICAgICBuZWVkcyBub24tZGVmYXVsdCBiZWhhdmlv
ciBmb3IgcmVzb2x2aW5nIHRoZSBleHByZXNzaW9uLiBpLmUuIFRoZSBjb25zdHJ1Y3RvciBoYXMg
YSBTeW1ib2wuaGFzSW5zdGFuY2UgdGhhdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBvbgorICAgICAg
ICBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSBvciBpcyBhIGJvdW5kL0Mt
QVBJIGZ1bmN0aW9uLiBPbmNlIHdlIGdldCB0byB0aGUgREZHIHRoaXMgbm9kZSBpcyBnZW5lcmFs
bHkgZWxpbWluYXRlZCBhcworICAgICAgICB3ZSBjYW4gcHJvdmUgdGhlIHZhbHVlIG9mIFN5bWJv
bC5oYXNJbnN0YW5jZSBpcyBhIGNvbnN0YW50LiBUaGUgc2Vjb25kIG5ldyBieXRlY29kZSBpcyBp
bnN0YW5jZW9mX2N1c3RvbS4gaW5zbnRhbmNlb2ZfY3VzdG9tLCBqdXN0CisgICAgICAgIGVtaXRz
IGEgY2FsbCB0byBzbG93IHBhdGggY29kZSB0aGF0IGNvbXB1dGVzIHRoZSByZXN1bHQuCisKKyAg
ICAgICAgSW4gdGhlIERGRywgdGhlcmUgaXMgYWxzbyBhIG5ldyBub2RlLCBDaGVja1R5cGVJbmZv
LCB3aGljaCBjaGVja3MgdGhlIHR5cGUgaW5mbyBmbGFncyBhcmUgY29uc2lzdGVudCB3aXRoIHRo
ZSBvbmVzIHByb3ZpZGVkIGFuZAorICAgICAgICBPU1IgZXhpdHMgaWYgdGhlIGZsYWdzIGFyZSBu
b3QuIEFkZGl0aW9uYWxseSwgd2UgYXR0ZW1wdCB0byBwcm92ZSB0aGF0IHRoZSByZXN1bHQgb2Yg
Q2hlY2tIYXNJbnN0YW5jZSB3aWxsIGJlIGEgY29uc3RhbnQgYW5kIHRyYW5zZm9ybQorICAgICAg
ICBpdCBpbnRvIGEgQ2hlY2tUeXBlSW5mbyBmb2xsb3dlZCBieSBhIEpTQ29uc3RhbnQuCisKKyAg
ICAgICAgKiBidWlsdGlucy9GdW5jdGlvbi5wcm90b3R5cGUuanM6CisgICAgICAgIChzeW1ib2xI
YXNJbnN0YW5jZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcDoK
KyAgICAgICAgKEpTQzo6aXNCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5
dGVjb2RlTGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6Cisg
ICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlND
Ojpjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2luZFRvU3Ry
aW5nKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHA6CisgICAgICAgIChKU0M6OmdldEp1bXBUYXJnZXRzRm9y
Qnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWNpYWxQb2lu
dGVyLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDaGVja0hhc0luc3RhbmNlKToKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJbnN0YW5jZU9mQ3VzdG9tKToKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJc0Z1bmN0aW9uKToKKyAgICAgICAg
KiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGls
ZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6SW5zdGFuY2VPZk5vZGU6OmVtaXRC
eXRlY29kZSk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxs
KToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAg
ICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmxpbmtCbG9jayk6CisgICAgICAgICogZGZn
L0RGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNGR1Np
bXBsaWZpY2F0aW9uUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBkZmcv
REZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAg
ICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAg
ICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhh
c2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAg
ICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24u
aDoKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhh
c1R5cGVJbmZvT3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6dHlwZUluZm9PcGVy
YW5kKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9F
eGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm8pOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZkN1c3RvbSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1
bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVy
YXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAg
ICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJE
RkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNv
bXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQ2hlY2tIYXNJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1Rv
TExWTTo6Y29tcGlsZUNoZWNrVHlwZUluZm8pOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0xMVk06OmNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKToKKyAgICAgICAgKiBqaXQvSklU
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAg
ICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcyk6CisgICAgICAgICogaml0L0pJ
VC5oOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2Fs
bE9wZXJhdGlvbik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2luc3RhbmNlb2YpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaW5zdGFuY2Vv
Zl9jdXN0b20pOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfamVxX251bGwpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2YpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRP
cGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAq
IGppdC9KU0ludGVyZmFjZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1p
dEp1bXBJZk51bGwpOgorICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAgIChK
U0M6OkxMSW50OjpEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgICogbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RF
Q0wpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6OkZ1bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlvblByb3BlcnRpZXMpOgorICAg
ICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0lu
dHJpbnNpYy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6aXNCb3VuZEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6aGFzSW5zdGFuY2VCb3Vu
ZEZ1bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6aW5pdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVu
KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0OjpmdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik6Cisg
ICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0Ojpo
YXNJbnN0YW5jZSk6CisgICAgICAgIChKU0M6Om9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZik6
CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvV3JpdGVC
YXJyaWVyLmg6CisgICAgICAgIChKU0M6OldyaXRlQmFycmllckJhc2U8VW5rbm93bj46OnNsb3Qp
OgorCisgICAgICAgICogYnVpbHRpbnMvRnVuY3Rpb24ucHJvdG90eXBlLmpzOgorICAgICAgICAo
c3ltYm9sSGFzSW5zdGFuY2UpOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9j
ay5jcHA6CisgICAgICAgIChKU0M6OmlzQnJhbmNoKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRl
Y29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURl
Zi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAg
ICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgICogYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUp
OgorICAgICAgICAqIGJ5dGVjb2RlL0V4aXRLaW5kLmNwcDoKKyAgICAgICAgKEpTQzo6ZXhpdEtp
bmRUb1N0cmluZyk6CisgICAgICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuaDoKKyAgICAgICAgKiBi
eXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwOgorICAgICAgICAoSlNDOjpnZXRKdW1wVGFy
Z2V0c0ZvckJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdENoZWNrSGFzSW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdEluc3RhbmNlT2ZDdXN0b20pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdElzRnVuY3Rpb24pOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAo
SlNDOjpJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBkZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdElu
dGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAq
IGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZnL0RGR0Ns
b2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBk
ZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAq
IGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpm
aXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3BwOgorICAgICAgICAo
V1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHSGVhcExvY2F0aW9uLmg6Cisg
ICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNDZWxs
T3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzVHlwZUluZm9PcGVyYW5kKToK
KyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjp0eXBlSW5mb09wZXJhbmQpOgorICAgICAgICAqIGRm
Zy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6
OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tU
eXBlSW5mb0ZsYWdzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUluc3RhbmNlT2ZDdXN0b20pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2Fu
Q29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoKKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tIYXNJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvTExWTTo6Y29tcGlsZUluc3RhbmNlT2ZDdXN0
b20pOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlTWFpblBhc3MpOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nh
c2VzKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVElubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBqaXQvSklUT3Bj
b2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2Up
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZik6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mX2N1c3RvbSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9qZXFfbnVsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2Vv
Zik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20pOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5jZSk6IERlbGV0
ZWQuCisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRf
b3BfaW5zdGFuY2VvZl9jdXN0b20pOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2lu
c3RhbmNlb2ZfY3VzdG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9jaGVja19o
YXNfaW5zdGFuY2UpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoK
KyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGppdC9KU0ludGVyZmFj
ZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdEp1bXBJZk51bGwpOgor
ICAgICAgICAqIGxsaW50L0xMSW50RGF0YS5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpEYXRh
OjpwZXJmb3JtQXNzZXJ0aW9ucyk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
OgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAq
IGxsaW50L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
OgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVy
SW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKEpTQzo6aW52YWxpZFBhcmFtZXRl
ckluc3RhbmNlb2ZOb3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKEpTQzo6aW52
YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZIYXNJbnN0YW5jZVN5bWJvbE5vdEZ1bmN0aW9uU291cmNl
QXBwZW5kZXIpOgorICAgICAgICAoSlNDOjpjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRl
ckVycm9yTm90RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpjcmVhdGVJbnZhbGlkSW5zdGFuY2Vv
ZlBhcmFtZXRlckVycm9ySGFzSW5zdGFuY2VTeW1ib2xOb3RGdW5jdGlvbik6CisgICAgICAgIChK
U0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3IpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvblByb3RvdHlwZTo6YWRk
RnVuY3Rpb25Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
Lmg6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlND
Ojppc0JvdW5kRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpoYXNJbnN0YW5jZUJvdW5kRnVuY3Rp
b24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojpp
bml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4pOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKToKKyAgICAgICAg
KiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omhhc0luc3Rh
bmNlKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKToKKyAgICAg
ICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9Xcml0ZUJhcnJpZXIu
aDoKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPjo6c2xvdCk6CisgICAg
ICAgICogdGVzdHMvc3RyZXNzL3N5bWJvbC1oYXNJbnN0YW5jZS5qczogQWRkZWQuCisgICAgICAg
IChDb25zdHJ1Y3Rvcik6CisgICAgICAgICh2YWx1ZSk6CisgICAgICAgIChPYmplY3RDbGFzcy5T
eW1ib2wuaGFzSW5zdGFuY2UpOgorICAgICAgICAoTnVtYmVyQ2xhc3MuU3ltYm9sLmhhc0luc3Rh
bmNlKToKKwogMjAxNS0xMS0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNh
bm9uLmZyPgogCiAgICAgICAgIFJlbW92ZSBjcmVhdGVfaGFzaF90YWJsZSBvcHRpb25zIGFuZCBz
aW1wbGlmeSBidWlsZCBzeXN0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9GdW5jdGlvbi5wcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvRnVuY3Rpb24ucHJvdG90eXBlLmpzCmluZGV4IDFhYTAyNDIyYjE4MDRlZWZjMDM2ZjU1
Y2ExZTI1ZWE3ZmMxMzBmMmQuLjM2NGJjNDMyODgyNTg0MzFlMGI2YjZiZDEyMzM2NjE5YmRhYzA1
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlvbi5w
cm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9u
LnByb3RvdHlwZS5qcwpAQCAtMzYsMyArMzYsMTggQEAgZnVuY3Rpb24gYXBwbHkodGhpc1ZhbHVl
LCBhcmd1bWVudFZhbHVlcykKIAogICAgIHJldHVybiB0aGlzLkBhcHBseSh0aGlzVmFsdWUsIGFy
Z3VtZW50VmFsdWVzKTsKIH0KKworLy8gRklYTUU6IHRoaXMgc2hvdWxkIGhhdmUgYSBkaWZmZXJl
bnQgbmFtZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM2Mwor
ZnVuY3Rpb24gc3ltYm9sSGFzSW5zdGFuY2UodmFsdWUpCit7CisgICAgInVzZSBzdHJpY3QiOwor
CisgICAgaWYgKHR5cGVvZiB0aGlzICE9PSAiZnVuY3Rpb24iKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoQGlzQm91bmRGdW5jdGlvbih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBo
YXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24odGhpcywgdmFsdWUpOworCisgICAgbGV0IHRhcmdldCA9
IHRoaXMucHJvdG90eXBlOworICAgIHJldHVybiBAaW5zdGFuY2VPZih2YWx1ZSwgdGFyZ2V0KTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJh
c2ljQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFz
aWNCbG9jay5jcHAKaW5kZXggNTRkZmQxNjhjYTYwMGViZWYxMzU4MDQzMmM3N2UyNWFkNDQ0YWQw
Yy4uMWMyNjU4YzU0ZWEwOWRmMzFkYzAwY2VmYzU0M2MxOGUzOTAwYmYzMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAK
QEAgLTU4LDcgKzU4LDYgQEAgc3RhdGljIGJvb2wgaXNCcmFuY2goT3Bjb2RlSUQgb3Bjb2RlSUQp
CiAgICAgY2FzZSBvcF9zd2l0Y2hfaW1tOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAg
Y2FzZSBvcF9zd2l0Y2hfc3RyaW5nOgotICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0
Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24K
aW5kZXggYmQyOWM1NWEzNzM1NGRlM2ViYWEyOTUzOGFiMTcxYzIwOWYxMzMxMi4uZGI3OTk2ZjI2
ZWVkODI2ZTdhYWVjMjVjYjZmZmJlZjVhZjg4NDU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtNDUsOCArNDUsOSBAQAogICAg
ICAgICAgICAgeyAibmFtZSIgOiAib3BfYml0YW5kIiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAg
ICAgICB7ICJuYW1lIiA6ICJvcF9iaXR4b3IiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX2JpdG9yIiwgImxlbmd0aCIgOiA1IH0sCi0gICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9jaGVja19oYXNfaW5zdGFuY2UiLCAibGVuZ3RoIiA6IDUgfSwKKyAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2NoZWNrX2hhc19pbnN0YW5jZSIsICJsZW5ndGgiIDogNCB9LAog
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW5zdGFuY2VvZiIsICJsZW5ndGgiIDogNCB9LAor
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW5zdGFuY2VvZl9jdXN0b20iLCAibGVuZ3RoIiA6
IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3R5cGVvZiIsICJsZW5ndGgiIDogMyB9
LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaXNfdW5kZWZpbmVkIiwgImxlbmd0aCIgOiAz
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pc19ib29sZWFuIiwgImxlbmd0aCIgOiAz
IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5o
CmluZGV4IDMxNTExZTdjMWQxZjVlOTczOTdjZDJiNGNmNDliYThiNGMzOGI0MGUuLjg5NDliZWRj
Njc5YzhlYjljMGU4OGUzNjk3ZTVjNDFmNzk1OWNkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC0xNjQsNyArMTY0LDYgQEAgdm9p
ZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbDoK
ICAgICBjYXNlIG9wX2luOgogICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjoKLSAgICBjYXNlIG9wX2No
ZWNrX2hhc19pbnN0YW5jZToKICAgICBjYXNlIG9wX2FkZDoKICAgICBjYXNlIG9wX211bDoKICAg
ICBjYXNlIG9wX2RpdjoKQEAgLTE5MCw2ICsxODksOCBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0
ZWNvZGVPZmZzZXQoCiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bj
b2RlSUQsIGluc3RydWN0aW9uWzNdLnUub3BlcmFuZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CisgICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CisgICAgY2FzZSBvcF9pbnN0YW5jZW9m
X2N1c3RvbToKICAgICBjYXNlIG9wX2hhc19zdHJ1Y3R1cmVfcHJvcGVydHk6CiAgICAgY2FzZSBv
cF9jb25zdHJ1Y3RfdmFyYXJnczoKICAgICBjYXNlIG9wX2NhbGxfdmFyYXJnczoKQEAgLTMyNiw2
ICszMjcsNyBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQoQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0LAogICAgIGNhc2Ugb3BfZ2V0X2FycmF5
X2xlbmd0aDoKICAgICBjYXNlIG9wX2NoZWNrX2hhc19pbnN0YW5jZToKICAgICBjYXNlIG9wX2lu
c3RhbmNlb2Y6CisgICAgY2FzZSBvcF9pbnN0YW5jZW9mX2N1c3RvbToKICAgICBjYXNlIG9wX2dl
dF9ieV92YWw6CiAgICAgY2FzZSBvcF90eXBlb2Y6CiAgICAgY2FzZSBvcF9pc191bmRlZmluZWQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDE4
ZmZhMDcwZWZjYzdlNjllODY3ZGNlZGNjNWM3ODU5NzE4MGU0OGYuLjgwOWI1NWUxMDVlZmExNTU1
MDJjNDc5M2Y5ZmMzNDY5NDNmOGEzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCkBAIC05OTMsOSArOTkzLDggQEAgdm9pZCBDb2RlQmxvY2s6OmR1
bXBCeXRlY29kZSgKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIg
PSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUu
b3BlcmFuZDsKICAgICAgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0
aW9uLCBpdCwgImNoZWNrX2hhc19pbnN0YW5jZSIpOwotICAgICAgICAgICAgb3V0LnByaW50Zigi
JXMsICVzLCAlcywgJWQoLT4lZCkiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJO
YW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9u
ICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIiVzLCAlcywgJXMiLCByZWdpc3Rl
ck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShy
MikuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfaW5zdGFuY2VvZjogewpAQCAtMTAwNiw2ICsxMDA1LDE1IEBAIHZvaWQgQ29kZUJsb2NrOjpk
dW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzIiwgcmVnaXN0
ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUo
cjIpLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNl
IG9wX2luc3RhbmNlb2ZfY3VzdG9tOiB7CisgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUu
b3BlcmFuZDsKKyAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAg
ICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgcjMgPSAo
KytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4
ZWMsIGxvY2F0aW9uLCBpdCwgImluc3RhbmNlb2ZfY3VzdG9tIik7CisgICAgICAgICAgICBvdXQu
cHJpbnRmKCIlcywgJXMsICVzLCAlcyIsIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUocjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIyKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShy
MykuZGF0YSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfdW5zaWduZWQ6IHsKICAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0
aW9uLCBpdCwgInVuc2lnbmVkIik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCmluZGV4IDI1MjQzMDBmNzMzNzY5ZWQ5YmUw
MDFkNzY2MGYzNjg1OWI2ZDg5MDYuLjMwYzVlNjQxYTc5NjY2ODJkY2JiNzcwNDJmNTMwYWYzNDI1
MTMxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2lu
ZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcApA
QCAtNTAsNiArNTAsOCBAQCBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtp
bmQpCiAgICAgICAgIHJldHVybiAiQmFkQ29uc3RhbnRDYWNoZSI7CiAgICAgY2FzZSBCYWRJbmRl
eGluZ1R5cGU6CiAgICAgICAgIHJldHVybiAiQmFkSW5kZXhpbmdUeXBlIjsKKyAgICBjYXNlIEJh
ZFR5cGVJbmZvRmxhZ3M6CisgICAgICAgIHJldHVybiAiQmFkVHlwZUluZm9GbGFncyI7CiAgICAg
Y2FzZSBPdmVyZmxvdzoKICAgICAgICAgcmV0dXJuICJPdmVyZmxvdyI7CiAgICAgY2FzZSBOZWdh
dGl2ZVplcm86CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhp
dEtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCmluZGV4
IDZmOGM1MTIwMDcwMDUwNWJmOTFkZWY3NDkwMDNlMzAwNWUzZjcxODYuLjcwMGQzODgxZjQxNzI4
MjFhZjg5N2VjY2Q1ZTllYThmNzUzNTE0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9FeGl0S2luZC5oCkBAIC0zNyw2ICszNyw3IEBAIGVudW0gRXhpdEtpbmQgOiB1aW50OF90
IHsKICAgICBCYWRDYWNoZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYW4gaW5saW5lIGNhY2hlIHdh
cyB3cm9uZy4KICAgICBCYWRDb25zdGFudENhY2hlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIGNh
Y2hlIG9uIGEgd2VhayBjb25zdGFudCAodXN1YWxseSBhIHByb3RvdHlwZSkgd2FzIHdyb25nLgog
ICAgIEJhZEluZGV4aW5nVHlwZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYW4gaW5kZXhpbmcgdHlw
ZSB3YXMgd3JvbmcuCisgICAgQmFkVHlwZUluZm9GbGFncywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ug
d2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBhYm91dCB3aGF0IFR5cGVJbmZvIGZsYWdz
IHdlIHdvdWxkIHNlZS4KICAgICBPdmVyZmxvdywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugb2Ygb3Zl
cmZsb3cuCiAgICAgTmVnYXRpdmVaZXJvLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBlbmNvdW50
ZXJlZCBuZWdhdGl2ZSB6ZXJvLgogICAgIEludDUyT3ZlcmZsb3csIC8vIFdlIGV4aXRlZCBiZWNh
dXNlIG9mIGFuIEludDUyIG92ZXJmbG93LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcAppbmRleCBkNjBmZGY3ZDNjZjM2MGUz
ZWMxNjk4Nzc5YWJlNmI5ZWI5MDZkNTE0Li5jZGZiN2E1YmNkN2E0YjM0OTBhNTJmNDVhOTRiMWJi
NmJiM2M1ODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJl
Y2lzZUp1bXBUYXJnZXRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
UHJlY2lzZUp1bXBUYXJnZXRzLmNwcApAQCAtNzMsOSArNzMsNiBAQCBzdGF0aWMgdm9pZCBnZXRK
dW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBJbnRlcnBy
ZXRlciogaQogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0ICsgY3VycmVudFsyXS51
Lm9wZXJhbmQpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBvcF9jaGVja19oYXNf
aW5zdGFuY2U6Ci0gICAgICAgIG91dC5hcHBlbmQoYnl0ZWNvZGVPZmZzZXQgKyBjdXJyZW50WzRd
LnUub3BlcmFuZCk7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2Ugb3BfbG9vcF9oaW50OgogICAg
ICAgICBvdXQuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCmluZGV4IDllZTYxMTFjYzNkMDdmNjM0NGM5NWUwOGYyZGVlOWRmYzgwNjU0YzIuLmY0
OGFlM2JkZDQ1ZDNjNjU0MDFjOTg0ZTlkNjA1MTZhN2JkY2Y3NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CkBAIC0xOTA4LDE0ICsxOTA4LDEzIEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmNyZWF0ZVZh
cmlhYmxlKAogICAgIH0KIH0KIAotdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNrSGFz
SW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCog
YmFzZSwgTGFiZWwqIHRhcmdldCkKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
Q2hlY2tIYXNJbnN0YW5jZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGNvbnN0cnVjdG9y
LCBSZWdpc3RlcklEKiBoYXNJbnN0YW5jZVN5bWJvbCkKIHsKLSAgICBzaXplX3QgYmVnaW4gPSBp
bnN0cnVjdGlvbnMoKS5zaXplKCk7CiAgICAgZW1pdE9wY29kZShvcF9jaGVja19oYXNfaW5zdGFu
Y2UpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkpOwotICAgIGluc3Ry
dWN0aW9ucygpLmFwcGVuZCh2YWx1ZS0+aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKGJhc2UtPmluZGV4KCkpOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQtPmJp
bmQoYmVnaW4sIGluc3RydWN0aW9ucygpLnNpemUoKSkpOworICAgIGluc3RydWN0aW9ucygpLmFw
cGVuZChjb25zdHJ1Y3Rvci0+aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGhh
c0luc3RhbmNlU3ltYm9sLT5pbmRleCgpKTsKKyAgICByZXR1cm4gZHN0OwogfQogCiAvLyBJbmRp
Y2F0ZXMgdGhlIGxlYXN0IHVwcGVyIGJvdW5kIG9mIHJlc29sdmUgdHlwZSBiYXNlZCBvbiBsb2Nh
bCBzY29wZS4gVGhlIGJ5dGVjb2RlIGxpbmtlcgpAQCAtMjA4Miw2ICsyMDgxLDE2IEBAIFJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SW5zdGFuY2VPZihSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIHZhbHVlCiAgICAgcmV0dXJuIGRzdDsKIH0KIAorUmVnaXN0ZXJJRCogQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRJbnN0YW5jZU9mQ3VzdG9tKFJlZ2lzdGVySUQqIGRzdCwgUmVn
aXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQqIGNvbnN0cnVjdG9yLCBSZWdpc3RlcklEKiBoYXNJ
bnN0YW5jZVN5bWJvbCkKK3sKKyAgICBlbWl0T3Bjb2RlKG9wX2luc3RhbmNlb2ZfY3VzdG9tKTsK
KyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQodmFsdWUtPmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChj
b25zdHJ1Y3Rvci0+aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGhhc0luc3Rh
bmNlU3ltYm9sLT5pbmRleCgpKTsKKyAgICByZXR1cm4gZHN0OworfQorCiBSZWdpc3RlcklEKiBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldEJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSkKIHsKICAgICBtX2NvZGVCbG9jay0+
YWRkUHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbihpbnN0cnVjdGlvbnMoKS5zaXplKCkpOwpAQCAt
MzcyMyw2ICszNzMyLDE0IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SXNP
YmplY3QoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpCiAgICAgcmV0dXJuIGRzdDsK
IH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJc0Z1bmN0aW9uKFJlZ2lz
dGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKQoreworICAgIGVtaXRPcGNvZGUob3BfaXNfZnVu
Y3Rpb24pOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkpOworICAgIGlu
c3RydWN0aW9ucygpLmFwcGVuZChzcmMtPmluZGV4KCkpOworICAgIHJldHVybiBkc3Q7Cit9CisK
IFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SXNVbmRlZmluZWQoUmVnaXN0ZXJJ
RCogZHN0LCBSZWdpc3RlcklEKiBzcmMpCiB7CiAgICAgZW1pdE9wY29kZShvcF9pc191bmRlZmlu
ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCmluZGV4IGQxOTFmOTlmNWYwOWE3Y2U0NjY5N2E3YjkwNDkwZGQ5NDlh
NDdhYmEuLjk0NGU4NTgwOGZhNWU2MjRmYmE5YjQ2OTUyOGIzNDRkNWQ4OWJmMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmgKQEAgLTUxNSw4ICs1MTUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdEluYyhSZWdpc3RlcklEKiBzcmNEc3QpOwogICAgICAgICBSZWdpc3RlcklEKiBl
bWl0RGVjKFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAKLSAgICAgICAgdm9pZCBlbWl0Q2hlY2tIYXNJ
bnN0YW5jZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBi
YXNlLCBMYWJlbCogdGFyZ2V0KTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENoZWNrSGFzSW5z
dGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJ
RCogaGFzSW5zdGFuY2VTeW1ib2wpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW5zdGFuY2VP
ZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBiYXNlUHJv
dG90eXBlKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEluc3RhbmNlT2ZDdXN0b20oUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCogY29uc3RydWN0b3IsIFJl
Z2lzdGVySUQqIGhhc0luc3RhbmNlU3ltYm9sKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFR5
cGVPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdFVuYXJ5
T3Aob3BfdHlwZW9mLCBkc3QsIHNyYyk7IH0KICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEluKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIGJhc2UpIHsg
cmV0dXJuIGVtaXRCaW5hcnlPcChvcF9pbiwgZHN0LCBwcm9wZXJ0eSwgYmFzZSwgT3BlcmFuZFR5
cGVzKCkpOyB9CiAKQEAgLTU5Myw2ICs1OTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdFRvSW5kZXhTdHJpbmcoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBpbmRleCk7CiAKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElzT2JqZWN0KFJlZ2lzdGVySUQq
IGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElzRnVuY3Rp
b24oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpOwogICAgICAgICBSZWdpc3RlcklE
KiBlbWl0SXNVbmRlZmluZWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpOwogCiAg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJdGVyYXRvck5leHQoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBpdGVyYXRvciwgY29uc3QgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEqIG5vZGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwCmluZGV4IDg3M2Y0YWI0NDI0MDcwZGM3ZmQ4NjYzMWFjNDVhMTRkYzE1ZTE4MmYuLjkwODlh
MDkzYTBhZjM2ZWI3MTdkM2RlMzIwOGQwZTNmNGRkODEzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE2MjgsMjIg
KzE2MjgsNDkgQEAgUmVnaXN0ZXJJRCogVGhyb3dhYmxlQmluYXJ5T3BOb2RlOjplbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmUKIAogUmVnaXN0ZXJJRCogSW5zdGFu
Y2VPZk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBkc3QpCiB7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzEgPSBnZW5lcmF0b3Iu
ZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9leHByMSwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBt
X2V4cHIyLT5pc1B1cmUoZ2VuZXJhdG9yKSk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzIg
PSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMik7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGhh
c0luc3RhbmNlU3ltYm9sID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOworICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBpc09iamVjdCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKyAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gaXNDdXN0b20gPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IHByb3RvdHlwZSA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsK
LSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gZHN0UmVnID0gZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRp
b24oZHN0LCBzcmMxLmdldCgpKTsKLSAgICBSZWZQdHI8TGFiZWw+IHRhcmdldCA9IGdlbmVyYXRv
ci5uZXdMYWJlbCgpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGdlbmVyYXRvci5l
bWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2V4cHIxLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1f
ZXhwcjItPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gY29uc3Ry
dWN0b3IgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMik7CisgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IGRzdFJlZyA9IGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgdmFsdWUuZ2V0KCkp
OworICAgIFJlZlB0cjxMYWJlbD4gY3VzdG9tID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAg
UmVmUHRyPExhYmVsPiBkb25lID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgUmVmUHRyPExh
YmVsPiB0eXBlRXJyb3IgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKIAogICAgIGdlbmVyYXRvci5l
bWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKLSAg
ICBnZW5lcmF0b3IuZW1pdENoZWNrSGFzSW5zdGFuY2UoZHN0UmVnLmdldCgpLCBzcmMxLmdldCgp
LCBzcmMyLmdldCgpLCB0YXJnZXQuZ2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0SXNPYmplY3Qo
aXNPYmplY3QuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdEp1
bXBJZkZhbHNlKGlzT2JqZWN0LmdldCgpLCB0eXBlRXJyb3IuZ2V0KCkpOwogCiAgICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkp
OwotICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIHNyYzIuZ2V0KCks
IGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUpOworICAgIGdlbmVyYXRv
ci5lbWl0R2V0QnlJZChoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSwgY29uc3RydWN0b3IuZ2V0KCks
IGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5jZVN5bWJvbCk7CiAKICAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2
b3RFbmQoKSk7Ci0gICAgUmVnaXN0ZXJJRCogcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRJbnN0YW5j
ZU9mKGRzdFJlZy5nZXQoKSwgc3JjMS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKLSAgICBnZW5l
cmF0b3IuZW1pdExhYmVsKHRhcmdldC5nZXQoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBn
ZW5lcmF0b3IuZW1pdENoZWNrSGFzSW5zdGFuY2UoaXNDdXN0b20uZ2V0KCksIGNvbnN0cnVjdG9y
LmdldCgpLCBoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4
cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2Vu
ZXJhdG9yLmVtaXRKdW1wSWZUcnVlKGlzQ3VzdG9tLmdldCgpLCBjdXN0b20uZ2V0KCkpOworCisg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRp
dm90RW5kKCkpOworICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIGNv
bnN0cnVjdG9yLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBl
KTsKKworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFy
dCgpLCBkaXZvdEVuZCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdEluc3RhbmNlT2YoZHN0UmVnLmdl
dCgpLCB2YWx1ZS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0
SnVtcChkb25lLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwodHlwZUVycm9yLmdl
dCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFRocm93VHlwZUVycm9yKCJSaWdodCBoYW5kIHNpZGUg
b2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0Iik7CisKKyAgICBnZW5lcmF0b3IuZW1pdExh
YmVsKGN1c3RvbS5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRp
dm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRJbnN0
YW5jZU9mQ3VzdG9tKGRzdFJlZy5nZXQoKSwgdmFsdWUuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgp
LCBoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGRv
bmUuZ2V0KCkpOworCisgICAgcmV0dXJuIGRzdFJlZy5nZXQoKTsKIH0KIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIExvZ2ljYWxPcE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGE0ZTY5MjM4ZWFjYzc0M2M0ZmFiZWM5NTdh
NGI0ZjY4ODYxMjBmODQuLjFkY2FlMTA1NmFjYzJmNzFmOTE2M2M3NjI4YzFhOTgwN2MxOWUxMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTI0NDUsMTEgKzI0NDUsMTYgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIENoZWNr
SGFzSW5zdGFuY2U6Ci0gICAgICAgIC8vIFNhZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZh
Y3QgdGhhdCB3ZSd2ZSBkb25lIENoZWNrSGFzSW5zdGFuY2UKKyAgICAgICAgZm9yTm9kZShub2Rl
KS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAg
ICBjYXNlIEluc3RhbmNlT2Y6Ci0gICAgICAgIC8vIEFnYWluLCBzYWRseSwgd2UgZG9uJ3QgcHJv
cGFnYXRlIHRoZSBmYWN0IHRoYXQgd2UndmUgZG9uZSBJbnN0YW5jZU9mCisgICAgICAgIC8vIFNh
ZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZhY3QgdGhhdCB3ZSd2ZSBkb25lIEluc3RhbmNl
T2YKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAgICAgIGNsb2JiZXJXb3Js
ZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CiAgICAgICAgIGZvck5vZGUo
bm9kZSkuc2V0VHlwZShTcGVjQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
CkBAIC0yNTA2LDYgKzI1MTEsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RT
dGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2Ug
Q291bnRFeGVjdXRpb246CiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKICAgICBjYXNlIENo
ZWNrVGllclVwQXRSZXR1cm46CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDaGVjazogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA3YWVjNTkwOWI2MDZhOThkNjVkNjMwNjkz
NjU2NWMyMWVlOWE3MTk4Li5iNTA4MmE5OTBhOGUzY2Q4MjkzZDYzMDdiNjk1NWU0NTRhZWI2NzZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cApAQCAtMzQ2OCw5ICszNDY4LDE1IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2so
dW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9jaGVja190ZHopOwog
ICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6Ci0gICAgICAg
ICAgICBhZGRUb0dyYXBoKENoZWNrSGFzSW5zdGFuY2UsIGdldChWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpKTsKKyAgICAgICAgY2FzZSBvcF9jaGVja19o
YXNfaW5zdGFuY2U6IHsKKyAgICAgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRIYXNJbnN0YW5j
ZVN5bWJvbEZ1bmN0aW9uID0gbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2stPmdsb2JhbE9i
amVjdEZvcihjdXJyZW50Q29kZU9yaWdpbigpKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3lt
Ym9sRnVuY3Rpb24oKTsKKworICAgICAgICAgICAgTm9kZSogY29uc3RydWN0b3IgPSBnZXQoVmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICAgICAg
ICAgIE5vZGUqIGhhc0luc3RhbmNlU3ltYm9sID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisKKyAgICAgICAgICAgIHNldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoQ2hlY2tI
YXNJbnN0YW5jZSwgT3BJbmZvKG1fZ3JhcGguZnJlZXplKGRlZmF1bHRIYXNJbnN0YW5jZVN5bWJv
bEZ1bmN0aW9uKSksIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVN5bWJvbCkpOwogICAgICAgICAg
ICAgTkVYVF9PUENPREUob3BfY2hlY2tfaGFzX2luc3RhbmNlKTsKKyAgICAgICAgfQogCiAgICAg
ICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewogICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQo
VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKQEAgLTM0
NzgsNyArMzQ4NCwxNSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVk
IGxpbWl0KQogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFwaChJbnN0YW5jZU9mLCB2YWx1ZSwgcHJvdG90eXBl
KSk7CiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9pbnN0YW5jZW9mKTsKICAgICAgICAgfQot
ICAgICAgICAgICAgCisKKyAgICAgICAgY2FzZSBvcF9pbnN0YW5jZW9mX2N1c3RvbTogeworICAg
ICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVj
dGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIGNvbnN0cnVjdG9yID0gZ2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisgICAg
ICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVN5bWJvbCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgc2V0KFZpcnR1YWxS
ZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFwaChJbnN0
YW5jZU9mQ3VzdG9tLCB2YWx1ZSwgY29uc3RydWN0b3IsIGhhc0luc3RhbmNlU3ltYm9sKSk7Cisg
ICAgICAgICAgICBORVhUX09QQ09ERShvcF9pbnN0YW5jZW9mX2N1c3RvbSk7CisgICAgICAgIH0K
KwogICAgICAgICBjYXNlIG9wX2lzX3VuZGVmaW5lZDogewogICAgICAgICAgICAgTm9kZSogdmFs
dWUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
KTsKICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZCksIGFkZFRvR3JhcGgoSXNVbmRlZmluZWQsIHZhbHVlKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggY2RhMTRjMzk5NzVm
ZDZjODBlNmZiODkyYTljYWVhM2JiZDlkZWQyYi4uY2RjOWRmYTI1ZjZlOTI2MmRhZTFlYjk0NWRl
YTA0MzA1ODM0NGI5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcApAQCAtMTMwLDYgKzEzMCw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5
TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAg
ICAgY2FzZSBvcF9tb3Y6CiAgICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CiAgICAgY2Fz
ZSBvcF9pbnN0YW5jZW9mOgorICAgIGNhc2Ugb3BfaW5zdGFuY2VvZl9jdXN0b206CiAgICAgY2Fz
ZSBvcF9pc191bmRlZmluZWQ6CiAgICAgY2FzZSBvcF9pc19ib29sZWFuOgogICAgIGNhc2Ugb3Bf
aXNfbnVtYmVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRl
eCA2ZmY0NDU2ZmI5Y2Q1NWFiMzY1Y2U4OGVmYjZhNDIxZGY3YzVkYTJmLi42NGVjNDYxOTA4N2Mw
Yzc3ZTUzZWY0MTI5ZTViYjE3ZGU0Mjc2YjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaApAQCAtNzEwLDYgKzcxMCwxMSBAQCB2b2lkIGNsb2JiZXJpemUoR3Jh
cGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3Jp
dGVGdQogICAgICAgICByZWFkKEpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CiAgICAgICAgIHJldHVybjsK
IAorICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgorICAgICAgICByZWFkKEpTQ2VsbF90eXBl
SW5mb0ZsYWdzKTsKKyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihDaGVja1R5cGVJbmZvRmxhZ3NM
b2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUp
KTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgICAg
ICByZWFkKEpTQ2VsbF90eXBlSW5mb0ZsYWdzKTsKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihD
aGVja0hhc0luc3RhbmNlTG9jLCBKU0NlbGxfdHlwZUluZm9GbGFncywgbm9kZS0+Y2hpbGQxKCkp
LCBMYXp5Tm9kZShub2RlKSk7CkBAIC03MjAsNiArNzI1LDExIEBAIHZvaWQgY2xvYmJlcml6ZShH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBX
cml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oSW5zdGFuY2VPZkxvYywgSlNDZWxsX3N0
cnVjdHVyZUlELCBub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkpLCBMYXp5Tm9kZShub2Rl
KSk7CiAgICAgICAgIHJldHVybjsKIAorICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKKyAgICAg
ICAgcmVhZChXb3JsZCk7CisgICAgICAgIHdyaXRlKEhlYXApOworICAgICAgICByZXR1cm47CisK
ICAgICBjYXNlIFB1dFN0cnVjdHVyZToKICAgICAgICAgd3JpdGUoSlNDZWxsX3N0cnVjdHVyZUlE
KTsKICAgICAgICAgd3JpdGUoSlNDZWxsX3R5cGVJbmZvVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggMGU5ZTFkOGJjYjQ5MjgxYTE4ZWJhMGY1YWE1Yzhj
MjJmMDYwODY1Yy4uZGUyYWNhMGRjNjNkYjk4MWVhMWFjMDBkZDVkN2VlNTRiOGMxODY0YyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTQzLDYgKzE0Myw3IEBA
IGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFByb2ZpbGVD
b250cm9sRmxvdzoKICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CiAgICAgY2FzZSBJbnN0YW5j
ZU9mOgorICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKICAgICBjYXNlIElzVW5kZWZpbmVkOgog
ICAgIGNhc2UgSXNCb29sZWFuOgogICAgIGNhc2UgSXNOdW1iZXI6CkBAIC0xODAsNiArMTgxLDcg
QEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tJ
bkJvdW5kczoKICAgICBjYXNlIENvbnN0YW50U3RvcmFnZVBvaW50ZXI6CiAgICAgY2FzZSBDaGVj
azoKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKICAgICBjYXNlIE11bHRpR2V0QnlPZmZz
ZXQ6CiAgICAgY2FzZSBWYWx1ZVJlcDoKICAgICBjYXNlIERvdWJsZVJlcDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGM0ZjM2Zjk3OTg4MjVkYmRi
YWU2NTY2NGNiZGQzOGE1NGMwMzVhY2EuLjk5ZTBmN2U5Y2FmZjBhNTkyNWVhMWFiOGFlNThlNmZi
MTgwNTQ2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNw
cApAQCAtMTA4MCwxMCArMTA4MCwyOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgZml4RWRnZTxG
dW5jdGlvblVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KKworICAgICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6IHsKKyAgICAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDIoKS5ub2RlKCktPmlzQ2VsbENvbnN0YW50KCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAobm9kZS0+Y2hpbGQyKCkubm9kZSgpLT5hc0NlbGwoKSAhPSBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VT
eW1ib2xGdW5jdGlvbigpKSB7CisKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC5jb252ZXJ0
VG9Db25zdGFudChub2RlLCBqc0Jvb2xlYW4odHJ1ZSkpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIW1fZ3JhcGgu
aGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBCYWRUeXBlSW5mb0ZsYWdzKSkgewor
ICAgICAgICAgICAgICAgICAgICAvLyBIZXJlIHdlIG9wdGltaXN0aWNhbGx5IGFzc3VtZSB0aGF0
IHdlIHdpbGwgbm90IHNlZSBhbiBib3VuZC9DLUFQSSBmdW5jdGlvbiBoZXJlLgorICAgICAgICAg
ICAgICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnROb2RlKG1faW5kZXhJbkJsb2NrLCBTcGVj
Tm9uZSwgQ2hlY2tUeXBlSW5mb0ZsYWdzLCBub2RlLT5vcmlnaW4sIE9wSW5mbyhJbXBsZW1lbnRz
RGVmYXVsdEhhc0luc3RhbmNlKSwgRWRnZShub2RlLT5jaGlsZDEoKS5ub2RlKCksIENlbGxVc2Up
KTsKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC5jb252ZXJ0VG9Db25zdGFudChub2RlLCBq
c0Jvb2xlYW4oZmFsc2UpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgICAg
ICAKICAgICAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICAgICAgY2FzZSBDaGVja0NlbGw6
Ci0gICAgICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKICAgICAgICAgY2FzZSBDcmVhdGVUaGlz
OgogICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKICAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHlS
ZWFkT25seTogewpAQCAtMTE0NCw3ICsxMTYzLDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBm
aXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9Ci0gICAgICAgICAgICAKKworICAgICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206Cisg
ICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAg
IGJyZWFrOworCiAgICAgICAgIGNhc2UgSW46IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgYXQgc29tZSBwb2ludCBoYXZlIGFycmF5IHByb2ZpbGluZyBvbiBvcF9pbiwgaW4gd2hp
Y2gKICAgICAgICAgICAgIC8vIGNhc2Ugd2Ugd291bGQgYmUgYWJsZSB0byB0dXJuIHRoaXMgaW50
byBhIGtpbmQgb2YgR2V0QnlWYWwuCkBAIC0xMzgzLDYgKzE0MDYsNyBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIE5vdGlmeVdyaXRlOgogICAgICAgICBjYXNlIFZhckluamVjdGlvbldhdGNocG9p
bnQ6CiAgICAgICAgIGNhc2UgQ2FsbDoKKyAgICAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6
CiAgICAgICAgIGNhc2UgVGFpbENhbGxJbmxpbmVkQ2FsbGVyOgogICAgICAgICBjYXNlIENvbnN0
cnVjdDoKICAgICAgICAgY2FzZSBDYWxsVmFyYXJnczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAppbmRleCA2OTIzNjU2Mzk2MTFmZWFmNzNmNGU4NjE1
OGEwMDFiMzZkMTM1MjdiLi4yYTE1YjM3YzkxZDI4MDhkNzlmM2U3ZWNjOGM2YTM3NzdkOTAxMjYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCkBA
IC05NSw3ICs5NSwxMSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgTG9j
YXRpb25LaW5kIGtpbmQpCiAgICAgY2FzZSBCdXR0ZXJmbHlSZWFkT25seUxvYzoKICAgICAgICAg
b3V0LnByaW50KCJCdXR0ZXJmbHlSZWFkT25seUxvYyIpOwogICAgICAgICByZXR1cm47Ci0gICAg
ICAgIAorCisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3NMb2M6CisgICAgICAgIG91dC5wcmlu
dCgiQ2hlY2tUeXBlSW5mb0ZsYWdzTG9jIik7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2Ug
Q2hlY2tIYXNJbnN0YW5jZUxvYzoKICAgICAgICAgb3V0LnByaW50KCJDaGVja0hhc0luc3RhbmNl
TG9jIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSGVhcExvY2F0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hl
YXBMb2NhdGlvbi5oCmluZGV4IDQ5NWQzMDAzY2VhNmMxYzU3YzUwMmRlNGMxZWY0ZTExNWFiYmUw
YjAuLjUzZmY5NmM1NGFhNTBiZmJmMTRlNjNjYTFhODM0MDRiZDQxMmZhYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaApAQCAtNDAsNiArNDAsNyBAQCBl
bnVtIExvY2F0aW9uS2luZCB7CiAgICAgQXJyYXlMZW5ndGhMb2MsCiAgICAgQnV0dGVyZmx5TG9j
LAogICAgIEJ1dHRlcmZseVJlYWRPbmx5TG9jLAorICAgIENoZWNrVHlwZUluZm9GbGFnc0xvYywK
ICAgICBDaGVja0hhc0luc3RhbmNlTG9jLAogICAgIENsb3N1cmVWYXJpYWJsZUxvYywKICAgICBE
aXJlY3RBcmd1bWVudHNMb2MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IGVl
ZGViODhjMjg5MWVjN2I2MTYyMzRlMzZhZDA2YzIyNTFkMDdmMGYuLjQxMWY4ZGIwZWM1YmQ0YTg1
MmRlMjlmNWRiMjRmNmRmZDUwNzk2M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CkBAIC0xMzQ2LDYgKzEzNDYsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgewogICAgICAgICBzd2l0
Y2ggKG9wKCkpIHsKICAgICAgICAgY2FzZSBDaGVja0NlbGw6CisgICAgICAgIGNhc2UgQ2hlY2tI
YXNJbnN0YW5jZToKICAgICAgICAgY2FzZSBOZXdGdW5jdGlvbjoKICAgICAgICAgY2FzZSBOZXdB
cnJvd0Z1bmN0aW9uOgogICAgICAgICBjYXNlIENyZWF0ZUFjdGl2YXRpb246CkBAIC0xNDA3LDYg
KzE0MDgsMTcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxVbmlxdWVkU3RyaW5nSW1wbCo+KG1fb3BJbmZvKTsKICAgICB9CiAKKyAgICBib29sIGhhc1R5
cGVJbmZvT3BlcmFuZCgpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDaGVja1R5cGVJ
bmZvRmxhZ3M7CisgICAgfQorCisgICAgdW5zaWduZWQgdHlwZUluZm9PcGVyYW5kKCkKKyAgICB7
CisgICAgICAgIEFTU0VSVChoYXNUeXBlSW5mb09wZXJhbmQoKSAmJiBtX29wSW5mbyA8PSBVQ0hB
Ul9NQVgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fb3BJbmZvKTsK
KyAgICB9CisKICAgICBib29sIGhhc1RyYW5zaXRpb24oKQogICAgIHsKICAgICAgICAgc3dpdGNo
IChvcCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggYzA0
OThhZWMyOTI2MTc5ZDIxNGIyMTIxMmJkZjM0OTU3NTkwYmEyYi4uYzFhMTMxM2Q1NGFjNmU4NjY2
NGE4MmM2YTBmYzY5ODBlMDM4NGM2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaApAQCAtMjIyLDYgKzIyMiw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKICAgICBtYWNybyhDaGVja0JhZENlbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNy
byhDaGVja0luQm91bmRzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tJZGVu
dCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKENoZWNrVHlwZUluZm9GbGFncywgTm9k
ZU11c3RHZW5lcmF0ZSkgLyogVGFrZXMgYW4gT3BJbmZvIHdpdGggdGhlIGZsYWdzIHlvdSB3YW50
IHRvIHRlc3QgYXJlIHNldCAqL1wKICAgICBcCiAgICAgLyogT3B0aW1pemF0aW9ucyBmb3IgYXJy
YXkgbXV0YXRpb24uICovXAogICAgIG1hY3JvKEFycmF5UHVzaCwgTm9kZVJlc3VsdEpTIHwgTm9k
ZU11c3RHZW5lcmF0ZSkgXApAQCAtMjc2LDggKzI3Nyw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKICAgICBtYWNybyhCcmVha3BvaW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAg
ICAgbWFjcm8oUHJvZmlsZVdpbGxDYWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8o
UHJvZmlsZURpZENhbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhDaGVja0hhc0lu
c3RhbmNlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oQ2hlY2tIYXNJbnN0YW5jZSwg
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSW5zdGFu
Y2VPZiwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKKyAgICBtYWNybyhJbnN0YW5jZU9mQ3VzdG9tLCBO
b2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJc1VuZGVm
aW5lZCwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJc0Jvb2xlYW4sIE5vZGVSZXN1
bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNOdW1iZXIsIE5vZGVSZXN1bHRCb29sZWFuKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGU2NWY2ZTRmMzhlOTlkNzIxMjM1MGZiYzU1ZmEwMDA2
ZTA0MTg3Y2EuLmMxZWMxOTZiNzE2YTUwNzQ3MmMyYTExNDVmMjY1Mzg4YjZlNzhiMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0zNzEsNyArMzcxLDkgQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSBDb21wYXJlR3JlYXRlckVxOgogICAgICAgICBjYXNlIENvbXBhcmVFcToKICAgICAgICAg
Y2FzZSBDb21wYXJlU3RyaWN0RXE6CisgICAgICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKICAg
ICAgICAgY2FzZSBJbnN0YW5jZU9mOgorICAgICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CiAg
ICAgICAgIGNhc2UgSXNVbmRlZmluZWQ6CiAgICAgICAgIGNhc2UgSXNCb29sZWFuOgogICAgICAg
ICBjYXNlIElzTnVtYmVyOgpAQCAtNTM4LDYgKzU0MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNh
c2UgRG91YmxlQXNJbnQzMjoKICAgICAgICAgY2FzZSBHZXRMb2NhbFVubGlua2VkOgogICAgICAg
ICBjYXNlIENoZWNrQXJyYXk6CisgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgogICAg
ICAgICBjYXNlIEFycmF5aWZ5OgogICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CiAg
ICAgICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CkBAIC02NTMsNyArNjU2LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICAgICAgY2FzZSBQcm9maWxlVHlw
ZToKICAgICAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6Ci0gICAgICAgIGNhc2UgQ2hlY2tI
YXNJbnN0YW5jZToKICAgICAgICAgY2FzZSBUaHJvd1JlZmVyZW5jZUVycm9yOgogICAgICAgICBj
YXNlIEZvcmNlT1NSRXhpdDoKICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggNDJhYmFkMDIyYzZjYTQ1
YmU2Mzg3MDk3YWNkYWM2OTI3NDY2NTdmMy4uYzZkMjc5NGYwMThhMTVlYWFmZTQ0YjJmYzMyODZh
YjczNGNiNjBlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZl
VG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVj
dXRlLmgKQEAgLTI0MSw4ICsyNDEsMTAgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3Rh
dGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgUHJvZmls
ZURpZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNlIFByb2ZpbGVDb250cm9s
RmxvdzoKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKICAgICBjYXNlIENoZWNrSGFzSW5z
dGFuY2U6CiAgICAgY2FzZSBJbnN0YW5jZU9mOgorICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToK
ICAgICBjYXNlIElzVW5kZWZpbmVkOgogICAgIGNhc2UgSXNCb29sZWFuOgogICAgIGNhc2UgSXNO
dW1iZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCmluZGV4IGU0NGQ3MmZjMzYyZWYxN2JlYTFkNmNjYzIzZDgwNjQxMDBiOTczODguLjIwZDM0
ZDhjMjBjYmRmMjAzZjc4NWQ1NmNlNGI0Zjc3MmZhYTM4ZGMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0yNzM0LDYgKzI3MzQsMTcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2ZGb3JPYmplY3QoTm9kZSos
IEdQUlJlZyB2YWx1ZVJlZywgR1BSUmVnIHAKICAgICBwdXRSZXN1bHQubGluaygmbV9qaXQpOwog
fQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKE5vZGUq
IG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGls
ZDEoKSk7CisKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisKKyAgICBzcGVjdWxh
dGlvbkNoZWNrKEJhZFR5cGVJbmZvRmxhZ3MsIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5j
aFRlc3Q4KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNl
R1BSLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIobm9kZS0+dHlwZUluZm9PcGVyYW5kKCkpKSk7CisKKyAgICBub1Jlc3VsdChub2Rl
KTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2YoTm9kZSogbm9k
ZSkKIHsKICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpIHsK
QEAgLTI3ODIsNiArMjc5Myw0OCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFu
Y2VPZihOb2RlKiBub2RlKQogICAgIGJsZXNzZWRCb29sZWFuUmVzdWx0KHNjcmF0Y2hSZWcsIG5v
ZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZkN1c3RvbShO
b2RlKiBub2RlKQoreworICAgIC8vIFdlIGNvdWxkIGRvIHNvbWV0aGluZyBzbWFydGVyIGhlcmUg
YnV0IHRoaXMgY2FzZSBpcyBjdXJyZW50bHkgc3VwZXIgcmFyZSBhbmQgdW5sZXNzCisgICAgLy8g
U3ltYm9sLmhhc0luc3RhbmNlIGJlY29tZXMgcG9wdWxhciB3aWxsIGxpa2VseSByZW1haW4gdGhh
dCB3YXkuCisKKyAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgY29uc3RydWN0b3IodGhpcywgbm9kZS0+Y2hpbGQy
KCkpOworICAgIEpTVmFsdWVPcGVyYW5kIGhhc0luc3RhbmNlU3ltYm9sKHRoaXMsIG5vZGUtPmNo
aWxkMygpKTsKKworICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdz
KCk7CisgICAgR1BSUmVnIGNvbnN0cnVjdG9yR1BSID0gY29uc3RydWN0b3IuZ3ByKCk7CisgICAg
SlNWYWx1ZVJlZ3MgaGFzSW5zdGFuY2VSZWdzID0gaGFzSW5zdGFuY2VTeW1ib2wuanNWYWx1ZVJl
Z3MoKTsKKworI2lmIENQVShYODYpCisgICAgLy8gTm90ZSB0aGF0IHdlIGludGVudGlvbmFsbHkg
Y2xvYmJlciB0aGUgaGFzSW5zdGFuY2VTeW1ib2wgcmVnaXN0ZXIgaGVyZSBvbiB4ODYgYmVjYXVz
ZSB3ZQorICAgIC8vIGFyZSBzaG9ydCBvbiByZWdpc3RlcnMuIFRoaXMgaXMgdmFsaWQgYmVjYXVz
ZSB3ZSBrbm93IEluc3RhbmNlT2ZDdXN0b20gaXMgdGhlIGxhc3QgdXNlCisgICAgLy8gb2YgdGhl
IEdldEJ5SWQgd2hpY2ggcHJvZHVjZXMgaXQuCisgICAgUkVMRUFTRV9BU1NFUlQoY2FuUmV1c2Uo
bm9kZS0+Y2hpbGQzKCkpKTsKKyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgIEdQ
UlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVt
cCBzbG93Q2FzZSA9IG1faml0Lmp1bXAoKTsKKworICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAor
ICAgICAgICBzbG93UGF0aENhbGwoc2xvd0Nhc2UsIHRoaXMsIG9wZXJhdGlvbkluc3RhbmNlT2ZD
dXN0b20sIGhhc0luc3RhbmNlUmVncywgdmFsdWVSZWdzLCBjb25zdHJ1Y3RvckdQUiwgaGFzSW5z
dGFuY2VSZWdzKSk7CisgICAgbV9qaXQubW92ZShoYXNJbnN0YW5jZVJlZ3MucGF5bG9hZEdQUigp
LCByZXN1bHRHUFIpOworCisgICAgdW5ibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5v
ZGUpOworI2Vsc2UKKworICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKworICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIHNsb3dDYXNlID0gbV9qaXQuanVtcCgpOworCisgICAgYWRkU2xvd1BhdGhH
ZW5lcmF0b3IoCisgICAgICAgIHNsb3dQYXRoQ2FsbChzbG93Q2FzZSwgdGhpcywgb3BlcmF0aW9u
SW5zdGFuY2VPZkN1c3RvbSwgcmVzdWx0UmVncywgdmFsdWVSZWdzLCBjb25zdHJ1Y3RvckdQUiwg
aGFzSW5zdGFuY2VSZWdzKSk7CisKKyAgICB1bmJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpLCBub2RlKTsKKyNlbmRpZgorfQorCiB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQXJpdGhBZGQoTm9kZSogbm9kZSkKIHsKICAgICBzd2l0Y2ggKG5vZGUtPmJpbmFy
eVVzZUtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCmluZGV4IDRiODM1ZWY4Y2NiNGNiMTRhNmZjMTUwNWVlZTU0ZGNmMzA1MGE1MjUuLjA2
OTU3ZmVmY2ZiMGM4NDVhYWRmZjVjOThhYzA0ZjM0ZGRjYTZkODMgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTcyNyw2ICs3MjcsNyBAQCBw
dWJsaWM6CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW5zdGFuY2VPZkZvck9iamVjdChOb2RlKiwg
R1BSUmVnIHZhbHVlUmVnLCBHUFJSZWcgcHJvdG90eXBlUmVnLCBHUFJSZWcgc2NyYXRjaEFuZFJl
c3VsdFJlZywgR1BSUmVnIHNjcmF0Y2gyUmVnKTsKICAgICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9m
KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKE5vZGUqKTsKICAgICAK
ICAgICB2b2lkIGVtaXRDYWxsKE5vZGUqKTsKICAgICAKQEAgLTE0MzcsNiArMTQzOCwxNSBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIHJl
c3VsdC5wYXlsb2FkR1BSKCksIGFyZzEucGF5bG9hZEdQUigpLCBhcmcyLnBheWxvYWRHUFIoKSk7
CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpPSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJn
MiwgR1BSUmVnIGFyZzMpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0
UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSk9KIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3Vs
dCwgSlNWYWx1ZVJlZ3MgYXJnMSwgR1BSUmVnIGFyZzIsIEpTVmFsdWVSZWdzIGFyZzMpCisgICAg
eworICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdCwgYXJnMS5w
YXlsb2FkR1BSKCksIGFyZzIsIGFyZzMucGF5bG9hZEdQUigpKTsKKyAgICB9CiAgICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBH
UFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAgICBt
X2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CkBAIC0xNzYwLDYg
KzE3NzAsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRp
b24sIHJlc3VsdC50YWdHUFIoKSwgcmVzdWx0LnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwg
YXJnMS5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCksIGFyZzIucGF5bG9hZEdQUigpKTsKICAg
ICB9CiAKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9u
X0VKT0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwg
R1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzIsIEdQUlJlZyBh
cmczVGFnLCBHUFJSZWcgYXJnM1BheWxvYWQpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFy
ZzFUYWcsIGFyZzIsIEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzNQYXlsb2FkLCBhcmczVGFnKTsK
KyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHRQYXls
b2FkLCByZXN1bHRUYWcpOworICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpT
VmFsdWVSZWdzIGFyZzEsIEdQUlJlZyBhcmcyLCBKU1ZhbHVlUmVncyBhcmczKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCByZXN1bHQudGFnR1BSKCksIHJl
c3VsdC5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzEucGF5bG9hZEdQUigpLCBhcmcy
LCBhcmczLnRhZ0dQUigpLCBhcmczLnBheWxvYWRHUFIoKSk7CisgICAgfQorCiAgICAgSklUQ29t
cGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FQ0ogb3BlcmF0aW9uLCBH
UFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzEsIEdQUlJl
ZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMlBheWxvYWQsIGFyZzJUYWcpOwpAQCAt
MjE5OSw2ICsyMjE5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb21waWxlR2V0QXJyYXlMZW5n
dGgoTm9kZSopOwogCisgICAgdm9pZCBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKE5vZGUqKTsK
ICAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUqKTsKICAgICAKICAgICB2b2lkIGNvbXBp
bGVWYWx1ZVJlcChOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCBlNjJhOWNiOGViYWEzMmRhMmY0YWNiZTJh
NzgzNGM2MjZhMGY4ZDdmLi5lY2VlYjI3NzQ3YzgwMDhhNTY3NTZkNmRmNTliMDkwMmQzYmNmNDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAKQEAgLTQyMjQsMTcgKzQyMjQsNDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENo
ZWNrVHlwZUluZm9GbGFnczogeworICAgICAgICBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKG5v
ZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6
IHsKKworICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVN5bWJvbE5vZGUgPSBub2RlLT5jaGlsZDIo
KS5ub2RlKCk7CisgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9u
ID0ganNDYXN0PEpTRnVuY3Rpb24qPihub2RlLT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpKTsKKwor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3REZWZhdWx0SGFzSW5zdGFuY2VTeW1ib2w7
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGhhc0luc3RhbmNlU3ltYm9sTm90Q2VsbDsK
ICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7CisgICAgICAgIEpTVmFsdWVP
cGVyYW5kIGhhc0luc3RhbmNlU3ltYm9sKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKIAotICAgICAgICAvLyBTcGVjdWxhdGUgdGhhdCBi
YXNlICdJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlJy4KLSAgICAgICAgc3BlY3VsYXRpb25D
aGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDgoCi0g
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6WmVybywgCi0gICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyhiYXNlLmdwcigpLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSks
IAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVm
YXVsdEhhc0luc3RhbmNlKSkpOworICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0Lmdw
cigpOwogCi0gICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICAvLyBJZiB3ZSBoYXZlIHBy
b3ZlbiB0aGF0IHRoZSBjb25zdHJ1Y3RvcidzIFN5bWJvbC5oYXNJbnN0YW5jZSB3aWxsIGFsd2F5
cyBiZSB0aGUgb25lIG9uCisgICAgICAgIC8vIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFz
SW5zdGFuY2VdIHRoZW4gd2UgZG9uJ3QgbmVlZCBhIHJ1bnRpbWUgY2hlY2sgaGVyZS4gV2UgZG9u
J3Qgd29ycnkKKyAgICAgICAgLy8gYWJvdXQgdGhlIGNhc2Ugd2hlcmUgdGhlIGNvbnN0cnVjdG9y
J3MgU3ltYm9sLmhhc0luc3RhbmNlIGlzIGEgY29uc3RhbnQgYnV0IGlzIG5vdCB0aGUgZGVmYXVs
dAorICAgICAgICAvLyBvbmUgYXMgZml4dXAgc2hvdWxkIGhhdmUgY29udmVydGVkIHRoaXMgY2hl
Y2sgdG8gdHJ1ZS4KKyAgICAgICAgQVNTRVJUKCFoYXNJbnN0YW5jZVN5bWJvbE5vZGUtPmlzQ2Vs
bENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24gPT0gaGFzSW5zdGFuY2VT
eW1ib2xOb2RlLT5hc0NlbGwoKSk7CisgICAgICAgIGlmICghaGFzSW5zdGFuY2VTeW1ib2xOb2Rl
LT5pc0NlbGxDb25zdGFudCgpKSB7CisKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGhhc0luc3Rh
bmNlU3ltYm9sUmVncyA9IGhhc0luc3RhbmNlU3ltYm9sLmpzVmFsdWVSZWdzKCk7CisgICAgICAg
ICAgICBoYXNJbnN0YW5jZVN5bWJvbE5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoaGFz
SW5zdGFuY2VTeW1ib2xSZWdzKTsKKyAgICAgICAgICAgIG5vdERlZmF1bHRIYXNJbnN0YW5jZVN5
bWJvbCA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGhhc0luc3Rh
bmNlU3ltYm9sUmVncy5wYXlsb2FkR1BSKCksIFRydXN0ZWRJbW1QdHIoZGVmYXVsdEhhc0luc3Rh
bmNlRnVuY3Rpb24pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoYXQgY29uc3Ry
dWN0b3IgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgorICAgICAgICBtX2ppdC50ZXN0
OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZS5ncHIo
KSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCByZXN1bHRHUFIpOworICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOworCisgICAgICAgIGlm
ICghaGFzSW5zdGFuY2VTeW1ib2xOb2RlLT5pc0NlbGxDb25zdGFudCgpKSB7CisgICAgICAgICAg
ICBoYXNJbnN0YW5jZVN5bWJvbE5vdENlbGwubGluaygmbV9qaXQpOworICAgICAgICAgICAgbm90
RGVmYXVsdEhhc0luc3RhbmNlU3ltYm9sLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG1vdmVG
YWxzZVRvKHJlc3VsdEdQUik7CisgICAgICAgIH0KKworICAgICAgICBkb25lLmxpbmsoJm1faml0
KTsKKyAgICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogICAgICAgICBicmVh
azsKICAgICB9CiAKQEAgLTQyNDMsNiArNDI3NCwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgSW5z
dGFuY2VPZkN1c3RvbTogeworICAgICAgICBjb21waWxlSW5zdGFuY2VPZkN1c3RvbShub2RlKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBJc1VuZGVmaW5lZDogewogICAgICAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQ
UlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAwYzVmOWY0OGVmMTk5NjM3MTNkOTdhMzM1
Y2Y2ZmUzYWNlMWM1NTM0Li5jYzcyMDYxMGEyNzdlMzU2OTBjODliMThmMmRiMzc5ZGI4M2QyMjIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTQyMDgsMTcgKzQyMDgsNDQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrVHlw
ZUluZm9GbGFnczogeworICAgICAgICBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKG5vZGUpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6IHsKKwor
ICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVN5bWJvbE5vZGUgPSBub2RlLT5jaGlsZDIoKS5ub2Rl
KCk7CisgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uID0ganND
YXN0PEpTRnVuY3Rpb24qPihub2RlLT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpKTsKKworICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3REZWZhdWx0OwogICAgICAgICBTcGVjdWxhdGVDZWxs
T3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5
IHN0cnVjdHVyZSh0aGlzKTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaGFzSW5zdGFuY2VTeW1i
b2wodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRo
aXMpOwogCi0gICAgICAgIC8vIFNwZWN1bGF0ZSB0aGF0IGJhc2UgJ0ltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UnLgotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKFVuY291bnRhYmxlLCBKU1Zh
bHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0OCgKLSAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpaZXJvLCAKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UuZ3By
KCksIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwgCi0gICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpKSk7Cisg
ICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAKLSAgICAgICAgbm9SZXN1
bHQobm9kZSk7CisgICAgICAgIC8vIElmIHdlIGhhdmUgcHJvdmVuIHRoYXQgdGhlIGNvbnN0cnVj
dG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIHdpbGwgYWx3YXlzIGJlIHRoZSBvbmUgb24gRnVuY3Rp
b24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0KKyAgICAgICAgLy8gdGhlbiB3ZSBkb24n
dCBuZWVkIGEgcnVudGltZSBjaGVjayBoZXJlLiBXZSBkb24ndCB3b3JyeSBhYm91dCB0aGUgY2Fz
ZSB3aGVyZSB0aGUgY29uc3RydWN0b3IncyBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgYSBjb25zdGFu
dAorICAgICAgICAvLyBidXQgaXMgbm90IHRoZSBkZWZhdWx0IG9uZSBhcyBmaXh1cCBzaG91bGQg
aGF2ZSBjb252ZXJ0ZWQgdGhpcyBjaGVjayB0byB0cnVlLgorICAgICAgICBBU1NFUlQoIWhhc0lu
c3RhbmNlU3ltYm9sTm9kZS0+aXNDZWxsQ29uc3RhbnQoKSB8fCBkZWZhdWx0SGFzSW5zdGFuY2VG
dW5jdGlvbiA9PSBoYXNJbnN0YW5jZVN5bWJvbE5vZGUtPmFzQ2VsbCgpKTsKKyAgICAgICAgaWYg
KCFoYXNJbnN0YW5jZVN5bWJvbE5vZGUtPmlzQ2VsbENvbnN0YW50KCkpIHsKKworICAgICAgICAg
ICAgbm90RGVmYXVsdCA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
IGhhc0luc3RhbmNlU3ltYm9sLmdwcigpLCBUcnVzdGVkSW1tUHRyKGRlZmF1bHRIYXNJbnN0YW5j
ZUZ1bmN0aW9uKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0aGF0IGJhc2UgJ0lt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgorICAgICAgICBtX2ppdC50ZXN0OChNYWNyb0Fz
c2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZS5ncHIoKSwgSlNDZWxs
Ojp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKElt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC5v
cjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKKworICAgICAgICBpZiAobm90RGVm
YXVsdC5pc1NldCgpKSB7CisgICAgICAgICAgICBub3REZWZhdWx0LmxpbmsoJm1faml0KTsKKyAg
ICAgICAgICAgIG1vdmVGYWxzZVRvKHJlc3VsdEdQUik7CisgICAgICAgIH0KKworICAgICAgICBk
b25lLmxpbmsoJm1faml0KTsKKyAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUs
IERhdGFGb3JtYXRKU0Jvb2xlYW4pOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTQyMjYs
NiArNDI1MywxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgICAgIGNvbXBpbGVJbnN0YW5jZU9mKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CisK
KyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206IHsKKyAgICAgICAgY29tcGlsZUluc3RhbmNlT2ZD
dXN0b20obm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBJ
c1VuZGVmaW5lZDogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAKaW5kZXggNWRkNzYzMjVhY2ZjNGFmOWQ3MWE1ZjBiZWExYTVjYzRhMjUyMDIwMy4uNjhlZTIw
NGNkNTZiZDhmMTg1ZTM5YTcwNTNiODZiZDIwYTg5ODIxMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTc0LDggKzE3NCwxMCBAQCBpbmxp
bmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIElzT2Jq
ZWN0OgogICAgIGNhc2UgSXNPYmplY3RPck51bGw6CiAgICAgY2FzZSBJc0Z1bmN0aW9uOgorICAg
IGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgogICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKICAg
ICBjYXNlIEluc3RhbmNlT2Y6CisgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgogICAgIGNhc2Ug
RG91YmxlUmVwOgogICAgIGNhc2UgVmFsdWVSZXA6CiAgICAgY2FzZSBJbnQ1MlJlcDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKaW5k
ZXggOGUzMzUyMmE1Yzc5N2Y0NGE4NjI2YWM1NDYwZWExNzY3ODFjMjUzYS4uOGE3Yjc5NDI3ODNi
N2M3MTAxZDEyZmI5Nzk5MGI5ODM2NDk2NjdhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKQEAgLTg1LDYgKzg1LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VK
LCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50NjQpKSBcCiAgICAgbWFjcm8oSl9KSVRP
cGVyYXRpb25fRUpBLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50NjQsIGludFB0cikp
IFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSkMsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50
UHRyLCBpbnQ2NCwgaW50UHRyKSkgXAorICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKT0osIGZ1
bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50UHRyLCBpbnQ2NCkpIFwKICAgICBt
YWNybyhKX0pJVE9wZXJhdGlvbl9FSkksIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2
NCwgaW50UHRyKSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKSiwgZnVuY3Rpb25UeXBl
KGludDY0LCBpbnRQdHIsIGludDY0LCBpbnQ2NCkpIFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlv
bl9FSnNjQywgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50UHRyLCBpbnRQdHIsIGludFB0cikpIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5k
ZXggYjQ4ZmQ4ODE1Y2M4YjRjOTY1OTc5ZDFhNDUzODI3ZjgwNGJhY2Q4ZC4uMTlhYjFhYTk3YzJi
ZWY3ZmE2NjdhNmJlZDJmYjM5NTlkMzJiZTI0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTg2NSwxMiArODY1LDE4IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgVHlwZU9mOgogICAgICAgICAgICAgY29tcGlsZVR5cGVPZigpOwog
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgorICAg
ICAgICAgICAgY29tcGlsZUNoZWNrVHlwZUluZm9GbGFncygpOworICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKICAgICAgICAgICAgIGNvbXBpbGVDaGVj
a0hhc0luc3RhbmNlKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbnN0YW5j
ZU9mOgogICAgICAgICAgICAgY29tcGlsZUluc3RhbmNlT2YoKTsKICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAgICAgICAgICBjb21waWxlSW5z
dGFuY2VPZkN1c3RvbSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ291bnRF
eGVjdXRpb246CiAgICAgICAgICAgICBjb21waWxlQ291bnRFeGVjdXRpb24oKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtNTI3MywxMSArNTI3OSwzNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBj
b21waWxlQ2hlY2tIYXNJbnN0YW5jZSgpCiAgICAgeworICAgICAgICBKU0Z1bmN0aW9uKiBkZWZh
dWx0SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4obV9ub2Rl
LT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpKTsKKworICAgICAgICBMVmFsdWUgY29uc3RydWN0b3Ig
PSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgaGFzSW5zdGFuY2Ug
PSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOworCisgICAgICAgIExCYXNpY0Jsb2NrIGRl
ZmF1bHRIYXNJbnN0YW5jZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQ2hlY2tIYXNJbnN0YW5j
ZSBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgZGVmYXVsdCIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sg
Y29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJDaGVja0hhc0luc3RhbmNlIGNv
bnRpbnVhdGlvbiIpKTsKKworICAgICAgICAvLyBVbmxpa2UsIHRoZSBERkcgd2UgZG9uJ3Qgd29y
cnkgYWJvdXQgY2xlYW5pbmcgdGhpcyBjb2RlIHVwIGZvciB0aGUgY2FzZSB3aGVyZSB3ZSBoYXZl
IHByb3ZlbiB0aGUgaGFzSW5zdGFuY2VTeW1ib2wgaXMgYSBjb25zdGFudCBhcyBMTFZNIHNob3Vs
ZCBmaXggaXQgZm9yIHVzLgorCisgICAgICAgIEFTU0VSVCghbV9ub2RlLT5jaGlsZDIoKS5ub2Rl
KCktPmlzQ2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24g
PT0gbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCktPmFzQ2VsbCgpKTsKKworICAgICAgICBWYWx1ZUZy
b21CbG9jayBub3REZWZhdWx0SGFzSW5zdGFuY2VSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQu
Ym9vbGVhblRydWUpOworICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90RXF1YWwoaGFzSW5z
dGFuY2UsIG1fb3V0LmNvbnN0SW50UHRyKGRlZmF1bHRIYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9u
KSksIHJhcmVseShjb250aW51YXRpb24pLCB1c3VhbGx5KGRlZmF1bHRIYXNJbnN0YW5jZSkpOwor
CisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZGVmYXVsdEhh
c0luc3RhbmNlLCBjb250aW51YXRpb24pOworICAgICAgICBWYWx1ZUZyb21CbG9jayBpbXBsZW1l
bnRzRGVmYXVsdEhhc0luc3RhbmNlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LnRlc3RJc1pl
cm84KG1fb3V0LmxvYWQ4KGNvbnN0cnVjdG9yLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdz
KSwgbV9vdXQuY29uc3RJbnQ4KEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpKSk7CisgICAg
ICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyhj
b250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgc2V0Qm9vbGVhbihtX291dC5waGkobV9v
dXQuYm9vbGVhbiwgaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZVJlc3VsdCwgbm90RGVmYXVs
dEhhc0luc3RhbmNlUmVzdWx0KSk7CisgICAgfQorCisgICAgdm9pZCBjb21waWxlQ2hlY2tUeXBl
SW5mb0ZsYWdzKCkKKyAgICB7CiAgICAgICAgIHNwZWN1bGF0ZSgKLSAgICAgICAgICAgIFVuY291
bnRhYmxlLCBub1ZhbHVlKCksIDAsCisgICAgICAgICAgICBCYWRUeXBlSW5mb0ZsYWdzLCBub1Zh
bHVlKCksIDAsCiAgICAgICAgICAgICBtX291dC50ZXN0SXNaZXJvOCgKICAgICAgICAgICAgICAg
ICBtX291dC5sb2FkOChsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQ2VsbF90
eXBlSW5mb0ZsYWdzKSwKLSAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDgoSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDgo
bV9ub2RlLT50eXBlSW5mb09wZXJhbmQoKSkpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21w
aWxlSW5zdGFuY2VPZigpCkBAIC01MzMwLDYgKzUzNjEsMTUgQEAgcHJpdmF0ZToKICAgICAgICAg
c2V0Qm9vbGVhbigKICAgICAgICAgICAgIG1fb3V0LnBoaShtX291dC5ib29sZWFuLCBub3RDZWxs
UmVzdWx0LCBpc0luc3RhbmNlUmVzdWx0LCBub3RJbnN0YW5jZVJlc3VsdCkpOwogICAgIH0KKwor
ICAgIHZvaWQgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20oKQorICAgIHsKKyAgICAgICAgTFZhbHVl
IHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGNv
bnN0cnVjdG9yID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIGhh
c0luc3RhbmNlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMygpKTsKKworICAgICAgICBzZXRC
b29sZWFuKG1fb3V0LmVxdWFsKG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbih0cnVlKSkpLCB2bUNhbGwobV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZD
dXN0b20pLCBtX2NhbGxGcmFtZSwgdmFsdWUsIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZSkpKTsK
KyAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlQ291bnRFeGVjdXRpb24oKQogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCBjZDY4NmI3MmFkZDRiNDhkOWE2MzZjMzRmZjA5
YWJmZWJkODQ4NWVlLi41MmE3MGJjOGVhNzIwYTFmMTg5YjU3ZDllYzA3ZWY3YTY3YTNiNzEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0yMjcsNiArMjI3LDcgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3Zh
bCkKICAgICAgICAgREVGSU5FX09QKG9wX2NoZWNrX2hhc19pbnN0YW5jZSkKICAgICAgICAgREVG
SU5FX09QKG9wX2luc3RhbmNlb2YpCisgICAgICAgIERFRklORV9PUChvcF9pbnN0YW5jZW9mX2N1
c3RvbSkKICAgICAgICAgREVGSU5FX09QKG9wX2lzX3VuZGVmaW5lZCkKICAgICAgICAgREVGSU5F
X09QKG9wX2lzX2Jvb2xlYW4pCiAgICAgICAgIERFRklORV9PUChvcF9pc19udW1iZXIpCkBAIC0z
OTMsOCArMzk0LDggQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAg
ICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Ao
b3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfZ2V0X2J5X3ZhbCkK
LSAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2NoZWNrX2hhc19pbnN0YW5jZSkKICAgICAg
ICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2luc3RhbmNlb2YpCisgICAgICAgIERFRklORV9TTE9X
Q0FTRV9PUChvcF9pbnN0YW5jZW9mX2N1c3RvbSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09Q
KG9wX2pmYWxzZSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2psZXNzKQogICAgICAg
ICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bfamxlc3NlcSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmlu
ZGV4IGU5NjgyOTJhYjcwMjRhOGMyYWZlYWZmZDBmZTQ1OTJjYzg1MzY0NzAuLmY1N2U1MzUwMmNk
YzU3YWU4NGY1MzdkNjQ2NDRhZDBmNTdjOGEzMDIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApA
QCAtNTA5LDYgKzUwOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3Bf
aW5pdF9sYXp5X3JlZyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfY2hlY2tf
aGFzX2luc3RhbmNlKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbnN0YW5j
ZW9mKEluc3RydWN0aW9uKik7CisgICAgICAgIHZvaWQgZW1pdF9vcF9pbnN0YW5jZW9mX2N1c3Rv
bShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfaXNfdW5kZWZpbmVkKEluc3Ry
dWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pc19ib29sZWFuKEluc3RydWN0aW9uKik7
CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pc19udW1iZXIoSW5zdHJ1Y3Rpb24qKTsKQEAgLTYxMSw4
ICs2MTIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRf
YXJndW1lbnRzX2xlbmd0aChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9u
KiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRT
bG93X29wX2dldF9hcmd1bWVudF9ieV92YWwoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VF
bnRyeT46Oml0ZXJhdG9yJik7Ci0gICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfY2hlY2tfaGFzX2lu
c3RhbmNlKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwog
ICAgICAgICB2b2lkIGVtaXRTbG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfaW5z
dGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfamZhbHNlKEluc3RydWN0aW9uKiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29w
X2psZXNzKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwog
ICAgICAgICB2b2lkIGVtaXRTbG93X29wX2psZXNzZXEoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CkBAIC03MzcsNiArNzM4LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQ
UlJlZywgQXJyYXlQcm9maWxlKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFs
SW5mbyopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKT0osIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19KSVRPcGVyYXRpb25fRUpzYywgR1BS
UmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSnNjQywgaW50LCBHUFJSZWcsIEpTQ2VsbCopOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKc2NDSiwgaW50LCBHUFJS
ZWcsIEpTQ2VsbCosIEdQUlJlZyk7CkBAIC04MDQsNiArODA2LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUosIGludCwgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSWRjLCBpbnQsIEdQUlJlZywgR1BSUmVn
LCBjb25zdCBJZGVudGlmaWVyKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcs
IEdQUlJlZyk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpPSiwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQ
UlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBBcnJh
eVByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcs
IEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFBfSklUT3BlcmF0aW9uX0VKUywgR1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4IDBjNzk5NjE0YjcxMDg5YzJhYTVkNGMyMGNk
NzEzYjZhOGJlNTJhMjMuLjc4NTIwMjQ1ZmIxMDAzMGZmNzViNDkyNmNjMjgwZmFkOWViNjdkMTgg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCkBAIC01MDMsNiArNTAzLDEy
IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9u
KEpfSklUT3BlcmF0aW9uX0VKSkJ5IG9wZXJhCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAorQUxXQVlT
X0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpPSiBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwg
R1BSUmVnIGFyZzMpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFy
ZzIsIGFyZzMpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNW
YWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJh
dGlvbl9FSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxKTsKQEAgLTYzOCw2ICs2NDQsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKIG9w
ZXJhdGkKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVS
ZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSk9KIG9wZXJhdGlvbiwg
aW50IGRzdCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzIs
IEdQUlJlZyBhcmczVGFnLCBHUFJSZWcgYXJnM1BheWxvYWQpCit7CisgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFn
LCBhcmcyLCBFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CisgICAg
cmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJh
dGlvbiwgZHN0KTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAgb3BlcmF0aW9uLCBpbnQgZHN0LCBH
UFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVn
IGFyZzJQYXlsb2FkLCBBcnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsKICAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFy
ZzFUYWcsIFNINF8zMkJJVF9EVU1NWV9BUkcgYXJnMlBheWxvYWQsIGFyZzJUYWcsIFRydXN0ZWRJ
bW1QdHIoYXJyYXlQcm9maWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
LmNwcAppbmRleCBjMWJiNzQzZmNiN2UyY2RmYjBhMmRjN2QxZDhkMzk0OTdmODYyMGM4Li4zYzI4
MzE3NmI2ZDRjNWJiODJiODlmODQ2Y2E5NzkxZjYwMzgwMzkyIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTEwNywxNSArMTA3LDI3IEBAIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9uZXdfb2JqZWN0KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZl
Y3RvcjxTbG93Q2FzCiAKIHZvaWQgSklUOjplbWl0X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIGludCBiYXNlVmFsID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgY29uc3RydWN0b3IgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kOworICAgIGludCBoYXNJbnN0YW5jZVN5bWJvbCA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CisKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGhhc0lu
c3RhbmNlU3ltYm9sLCByZWdUMCk7CisKKyAgICAvLyBXZSBkb24ndCBqdW1wIGlmIHdlIGtub3cg
d2hhdCBTeW1ib2wuaGFzSW5zdGFuY2Ugd291bGQgZG8uCisgICAgSnVtcCBjdXN0b21IYXNJbnN0
YW5jZVN5bWJvbCA9IGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW1QdHIobV9j
b2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xG
dW5jdGlvbigpKSk7CiAKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2VWYWwsIHJlZ1Qw
KTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGNvbnN0cnVjdG9yLCByZWdUMCk7CiAKLSAg
ICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgaXMgYSBjZWxsLgotICAgIGVtaXRKdW1wU2xvd0Nhc2VJ
Zk5vdEpTQ2VsbChyZWdUMCwgYmFzZVZhbCk7CisgICAgLy8gQ2hlY2sgdGhhdCBjb25zdHJ1Y3Rv
ciAnSW1wbGVtZW50c0hhc0luc3RhbmNlJyBpLmUuIHRoZSBvYmplY3QgaXMgYSBDLUFQSSB1c2Vy
IG9yIGEgYm91bmQgZnVuY3Rpb24uCisgICAgdGVzdDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlND
ZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1
bHRIYXNJbnN0YW5jZSksIHJlZ1QwKTsKKyAgICBlbWl0VGFnQm9vbChyZWdUMCk7CisgICAgSnVt
cCBkb25lID0ganVtcCgpOwogCi0gICAgLy8gQ2hlY2sgdGhhdCBiYXNlVmFsICdJbXBsZW1lbnRz
SGFzSW5zdGFuY2UnLgotICAgIGFkZFNsb3dDYXNlKGJyYW5jaFRlc3Q4KFplcm8sIEFkZHJlc3Mo
cmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEltcGxl
bWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpKSk7CisgICAgY3VzdG9tSGFzSW5zdGFuY2VTeW1ib2wu
bGluayh0aGlzKTsKKyAgICBtb3ZlKFRydXN0ZWRJbW0zMihWYWx1ZVRydWUpLCByZWdUMCk7CisK
KyAgICBkb25lLmxpbmsodGhpcyk7CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwog
fQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCkBAIC0xMjksNyArMTQxLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2Vv
ZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIodmFsdWUsIHJlZ1QyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3RvLCBy
ZWdUMSk7CiAKLSAgICAvLyBDaGVjayB0aGF0IHByb3RvIGFyZSBjZWxscy4gIGJhc2VWYWwgbXVz
dCBiZSBhIGNlbGwgLSB0aGlzIGlzIGNoZWNrZWQgYnkgb3BfY2hlY2tfaGFzX2luc3RhbmNlLgor
ICAgIC8vIENoZWNrIHRoYXQgcHJvdG8gYXJlIGNlbGxzLiBiYXNlVmFsIG11c3QgYmUgYSBjZWxs
IC0gdGhpcyBpcyBjaGVja2VkIGJ5IHRoZSBnZXRfYnlfaWQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZS4KICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDIsIHZhbHVlKTsKICAgICBl
bWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDEsIHByb3RvKTsKIApAQCAtMTU3LDYgKzE2
OSwxMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCit2b2lk
IEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVjdGlvbiopCit7CisgICAgLy8g
VGhpcyBhbHdheXMgZ29lcyB0byBzbG93IHBhdGggc2luY2Ugd2UgZXhwZWN0IGl0IHRvIGJlIHJh
cmUuCisgICAgYWRkU2xvd0Nhc2UoanVtcCgpKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfaXNf
dW5kZWZpbmVkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRz
dCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBAIC0zMTcsMjIgKzMzNSwxMCBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9qZXFfbnVsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIHVuc2lnbmVkIHRhcmdldCA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQ7CiAKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHNyYywgcmVnVDApOwotICAgIEp1bXAg
aXNJbW1lZGlhdGUgPSBlbWl0SnVtcElmTm90SlNDZWxsKHJlZ1QwKTsKLQotICAgIC8vIEZpcnN0
LCBoYW5kbGUgSlNDZWxsIGNhc2VzIC0gY2hlY2sgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCBiaXQg
b24gdGhlIHN0cnVjdHVyZS4KLSAgICBKdW1wIGlzTm90TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9
IGJyYW5jaFRlc3Q4KFplcm8sIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09m
ZnNldCgpKSwgVHJ1c3RlZEltbTMyKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpKTsKLSAgICBlbWl0
TG9hZFN0cnVjdHVyZShyZWdUMCwgcmVnVDIsIHJlZ1QxKTsKLSAgICBtb3ZlKFRydXN0ZWRJbW1Q
dHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKSwgcmVnVDApOwotICAgIGFkZEp1bXAoYnJh
bmNoUHRyKEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNl
dCgpKSwgcmVnVDApLCB0YXJnZXQpOwotICAgIEp1bXAgbWFzcXVlcmFkZXNHbG9iYWxPYmplY3RJ
c0ZvcmVpZ24gPSBqdW1wKCk7CisgICAgSnVtcExpc3QganVtcHMgPSBlbWl0SnVtcElmTnVsbChK
U1ZhbHVlUmVncyhyZWdUMCksIHJlZ1QxLCByZWdUMik7CiAKLSAgICAvLyBOb3cgaGFuZGxlIHRo
ZSBpbW1lZGlhdGUgY2FzZXMgLSB1bmRlZmluZWQgJiBudWxsCi0gICAgaXNJbW1lZGlhdGUubGlu
ayh0aGlzKTsKLSAgICBhbmQ2NChUcnVzdGVkSW1tMzIoflRhZ0JpdFVuZGVmaW5lZCksIHJlZ1Qw
KTsKLSAgICBhZGRKdW1wKGJyYW5jaDY0KEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTY0KEpTVmFs
dWU6OmVuY29kZShqc051bGwoKSkpKSwgdGFyZ2V0KTsgICAgICAgICAgICAKLQotICAgIGlzTm90
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5saW5rKHRoaXMpOwotICAgIG1hc3F1ZXJhZGVzR2xvYmFs
T2JqZWN0SXNGb3JlaWduLmxpbmsodGhpcyk7CisgICAgZm9yIChKdW1wIGp1bXAgOiBqdW1wcy5q
dW1wcygpKQorICAgICAgICBhZGRKdW1wKGp1bXAsIHRhcmdldCk7CiB9Owogdm9pZCBKSVQ6OmVt
aXRfb3Bfam5lcV9udWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CkBAIC04
NjgsMzMgKzg3NCwzMiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbnN0cmljdGVxKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZQogICAgIHNsb3dQYXRoQ2Fs
bC5jYWxsKCk7CiB9CiAKLXZvaWQgSklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2Uo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYgaXRlcikKK3ZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3Im
IGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7
CiAgICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBp
bnQgYmFzZVZhbCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IHBy
b3RvID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKIAotICAgIGxpbmtTbG93Q2Fz
ZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2VWYWwpOworICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxs
KGl0ZXIsIHZhbHVlKTsKKyAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBwcm90byk7
CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFs
dWUsIHJlZ1QwKTsKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2VWYWwsIHJlZ1QxKTsK
LSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNoZWNrSGFzSW5zdGFuY2UsIGRzdCwgcmVnVDAs
IHJlZ1QxKTsKLQotICAgIGVtaXRKdW1wU2xvd1RvSG90KGp1bXAoKSwgY3VycmVudEluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm90bywgcmVn
VDEpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSW5zdGFuY2VPZiwgZHN0LCByZWdUMCwg
cmVnVDEpOwogfQogCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBp
dGVyKQordm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAg
ICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBpbnQg
cHJvdG8gPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBjb25zdHJ1
Y3RvciA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGhhc0luc3Rh
bmNlU3ltYm9sID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKIAotICAgIGxpbmtT
bG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIHZhbHVlKTsKLSAgICBsaW5rU2xvd0Nhc2VJZk5vdEpT
Q2VsbChpdGVyLCBwcm90byk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1QwKTsKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KHByb3RvLCByZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mLCBk
c3QsIHJlZ1QwLCByZWdUMSk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihjb25zdHJ1Y3Rv
ciwgcmVnVDEpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoaGFzSW5zdGFuY2VTeW1ib2ws
IHJlZ1QyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIGRz
dCwgcmVnVDAsIHJlZ1QxLCByZWdUMik7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF90b19u
dW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50
cnk+OjppdGVyYXRvciYgaXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcAppbmRleCA0ZTA0MzY1ZmQ2YzI4MzY4OTliZWJmN2UwNTMzMGQxZDNkYTAw
OTA2Li45MTBiYWNmOTQ0Y2EwOGU3YThmOWFlMjhkZjJjZDc4OTA0ZmZhMDZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0xODUsMTUgKzE4
NSwyOSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbmV3X29iamVjdChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogCiB2b2lkIEpJVDo6ZW1pdF9vcF9jaGVj
a19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBp
bnQgYmFzZVZhbCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGRz
dCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IGNvbnN0cnVjdG9y
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBpbnQgaGFzSW5zdGFuY2VT
eW1ib2wgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCi0gICAgZW1pdExvYWRQ
YXlsb2FkKGJhc2VWYWwsIHJlZ1QwKTsKKyAgICBlbWl0TG9hZFBheWxvYWQoaGFzSW5zdGFuY2VT
eW1ib2wsIHJlZ1QwKTsKKyAgICAvLyBXZSBkb24ndCBqdW1wIGlmIHdlIGtub3cgd2hhdCBTeW1i
b2wuaGFzSW5zdGFuY2Ugd291bGQgZG8uCisgICAgSnVtcCBoYXNJbnN0YW5jZVN5bWJvbE5vdENl
bGwgPSBlbWl0SnVtcElmTm90SlNDZWxsKGhhc0luc3RhbmNlU3ltYm9sKTsKKyAgICBKdW1wIGN1
c3RvbUhhc0luc3RhbmNlU3ltYm9sID0gYnJhbmNoUHRyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3Rl
ZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0
YW5jZVN5bWJvbEZ1bmN0aW9uKCkpKTsKKworICAgIC8vIFdlIGtub3cgdGhhdCBjb25zdHJ1Y3Rv
ciBpcyBhbiBvYmplY3QgZnJvbSB0aGUgd2F5IGJ5dGVjb2RlIGlzIGVtaXR0ZWQgZm9yIGluc3Rh
bmNlb2YgZXhwcmVzc2lvbnMuCisgICAgZW1pdExvYWRQYXlsb2FkKGNvbnN0cnVjdG9yLCByZWdU
MCk7CisKKyAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRzSGFzSW5zdGFu
Y2UnIGkuZS4gdGhlIG9iamVjdCBpcyBhIEMtQVBJIHVzZXIgb3IgYSBib3VuZCBmdW5jdGlvbi4K
KyAgICB0ZXN0OChaZXJvLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZz
ZXQoKSksIFRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSwgcmVnVDAp
OworICAgIEp1bXAgZG9uZSA9IGp1bXAoKTsKKworICAgIGhhc0luc3RhbmNlU3ltYm9sTm90Q2Vs
bC5saW5rKHRoaXMpOworICAgIGN1c3RvbUhhc0luc3RhbmNlU3ltYm9sLmxpbmsodGhpcyk7Cisg
ICAgbW92ZShUcnVzdGVkSW1tMzIoMSksIHJlZ1QwKTsKKworICAgIGRvbmUubGluayh0aGlzKTsK
KyAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmVnVDApOwogCi0gICAgLy8gQ2hlY2sgdGhhdCBiYXNl
VmFsIGlzIGEgY2VsbC4KLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZVZhbCk7
Ci0gICAgCi0gICAgLy8gQ2hlY2sgdGhhdCBiYXNlVmFsICdJbXBsZW1lbnRzSGFzSW5zdGFuY2Un
LgotICAgIGFkZFNsb3dDYXNlKGJyYW5jaFRlc3Q4KFplcm8sIEFkZHJlc3MocmVnVDAsIEpTQ2Vs
bDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UpKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2YoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTIzNSwyMCArMjQ5LDEwIEBAIHZvaWQgSklU
OjplbWl0X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAg
ICBlbWl0U3RvcmVCb29sKGRzdCwgcmVnVDApOwogfQogCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
Y2hlY2tfaGFzX2luc3RhbmNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0
YW5jZW9mX2N1c3RvbShJbnN0cnVjdGlvbiopCiB7Ci0gICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQ7Ci0gICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZDsKLSAgICBpbnQgYmFzZVZhbCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQ7Ci0KLSAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlVmFsKTsK
LSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7Ci0KLSAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDEsIHJl
Z1QwKTsKLSAgICBlbWl0TG9hZChiYXNlVmFsLCByZWdUMywgcmVnVDIpOwotICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZSwgZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1Qz
LCByZWdUMik7Ci0KLSAgICBlbWl0SnVtcFNsb3dUb0hvdChqdW1wKCksIGN1cnJlbnRJbnN0cnVj
dGlvbls0XS51Lm9wZXJhbmQpOworICAgIC8vIFRoaXMgYWx3YXlzIGdvZXMgdG8gc2xvdyBwYXRo
IHNpbmNlIHdlIGV4cGVjdCBpdCB0byBiZSByYXJlLgorICAgIGFkZFNsb3dDYXNlKGp1bXAoKSk7
CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBA
IC0yNjYsNiArMjcwLDIxIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25JbnN0YW5jZU9mLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1Qy
KTsKIH0KIAordm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3Im
IGl0ZXIpCit7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7
CisgICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBp
bnQgY29uc3RydWN0b3IgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGlu
dCBoYXNJbnN0YW5jZVN5bWJvbCA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQ7CisK
KyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CisKKyAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDEsIHJl
Z1QwKTsKKyAgICBlbWl0TG9hZFBheWxvYWQoY29uc3RydWN0b3IsIHJlZ1QyKTsKKyAgICBlbWl0
TG9hZChoYXNJbnN0YW5jZVN5bWJvbCwgcmVnVDQsIHJlZ1QzKTsKKyAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMiwgcmVn
VDQsIHJlZ1QzKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfaXNfdW5kZWZpbmVkKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcAppbmRleCBkODczYTFkZGQ2NTdhMjg5NjhhMGU1MWY5MDYzNmQxZGUyZmNmODE2Li44
NDAzYmQxMmJmMjU2NWU5NzAzNzFlYzg5YmQzOTQzODA4YjdjOTgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTE0NjcsMjUgKzE0NjcsMTcgQEAg
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbChFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY28KICAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGV4
ZWMsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25DaGVja0hhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZh
bCkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFuY2VPZkN1c3Rv
bShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3Qq
IGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpCiB7CiAgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2
bSwgZXhlYyk7CiAKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSk7Ci0gICAgSlNWYWx1ZSBiYXNlVmFsID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNl
VmFsKTsKLQotICAgIGlmIChiYXNlVmFsLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgSlNPYmplY3Qq
IGJhc2VPYmplY3QgPSBhc09iamVjdChiYXNlVmFsKTsKLSAgICAgICAgQVNTRVJUKCFiYXNlT2Jq
ZWN0LT5zdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLmltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UoKSk7Ci0gICAgICAgIGlmIChiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygp
LmltcGxlbWVudHNIYXNJbnN0YW5jZSgpKSB7Ci0gICAgICAgICAgICBib29sIHJlc3VsdCA9IGJh
c2VPYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Y3VzdG9tSGFzSW5zdGFuY2UoYmFzZU9iamVjdCwg
ZXhlYywgdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4ocmVzdWx0KSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgSlNWYWx1ZSBoYXNJbnN0YW5jZVN5
bWJvbCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkSGFzSW5zdGFuY2UpOworCisgICAgQVNTRVJU
KGhhc0luc3RhbmNlU3ltYm9sICE9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZnVuY3Rp
b25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSB8fCAhY29uc3RydWN0b3ItPnN0cnVj
dHVyZSgpLT50eXBlSW5mbygpLmltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UoKSk7CiAKLSAg
ICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRl
ckVycm9yKGV4ZWMsIGJhc2VWYWwpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFs
dWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oY29uc3RydWN0b3It
Pmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBoYXNJbnN0YW5jZVN5bWJvbCkpKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCBmNmM1N2YzZDFj
YjdlNDU2MjI2MzYyYTkyYTBmZDA5OTQwNTk5ZDQ1Li5mMTdmNjdkY2FhYTNmMjU4NjAyMmU5OGEz
ZTZmNjhmNjFhOTAxOGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaApAQCAtMTExLDYgKzExMSw3IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiAoKkpfSklUT3BlcmF0aW9uX0VJKShFeGVjU3RhdGUqLCBVbmlxdWVkU3RyCiB0eXBlZGVm
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICgqSl9KSVRPcGVyYXRpb25fRUpaKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50
MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJh
dGlvbl9FSkMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU0NlbGwqKTsKK3R5cGVkZWYg
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKT0opKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVk
ZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKQSkoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQXJyYXkqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSSkoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSklkYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIGNvbnN0IElkZW50aWZpZXIqKTsKQEAgLTMyNCw3ICszMjUsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHVzaEZ1bmN0aW9uTmFtZVNjb3BlKEV4ZWNTdGF0ZSosIGludDMy
X3QsIFN5bWJvbFRhYgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNT
dGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Qcm9maWxlRGlkQ2FsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFM
Owogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25DaGVja0hhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBiYXNlVmFsKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20oRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRIYXNJbnN0YW5jZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZh
bEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVS
TkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmlu
ZyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCmluZGV4IDIwMWUzYWIyYmZhMDM2YzI3YzVm
ZDZiZDYzYTQ4YmNjOGQ2MjdiMjkuLjVmNjdlYWJmZDk2OWFmNzI2N2I5YWUyMjUzNDViYmZmNWI3
MTZlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VK
SVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKQEAg
LTY4LDYgKzY4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEp1bXAgZW1pdEp1bXBJZk5v
dE51bWJlcihSZWdpc3RlcklEKTsKICAgICAgICAgdm9pZCBlbWl0VGFnSW50KFJlZ2lzdGVySUQg
c3JjLCBSZWdpc3RlcklEIGRlc3QpOwogI2VuZGlmCisgICAgICAgIEp1bXBMaXN0IGVtaXRKdW1w
SWZOdWxsKEpTVmFsdWVSZWdzIHNyYywgUmVnaXN0ZXJJRCBzY3JhdGNoMSwgUmVnaXN0ZXJJRCBz
Y3JhdGNoMik7CiAKICAgICAgICAgSnVtcCBlbWl0SnVtcElmTm90VHlwZShSZWdpc3RlcklEIGJh
c2VSZWcsIEpTVHlwZSk7CiAKQEAgLTE2MCw2ICsxNjEsMzEgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgewogICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZywgdGFnVHlwZU51bWJl
clJlZ2lzdGVyKTsKICAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIEpTSW50ZXJmYWNlSklUOjpK
dW1wTGlzdCBKU0ludGVyZmFjZUpJVDo6ZW1pdEp1bXBJZk51bGwoSlNWYWx1ZVJlZ3MgcmVnLCBH
UFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMikgeworICAgICAgICBHUFJSZWcgdmFsdWUg
PSByZWcuZ3ByKCk7CisgICAgICAgIEp1bXAgaXNJbW1lZGlhdGUgPSBlbWl0SnVtcElmTm90SlND
ZWxsKHZhbHVlKTsKKworICAgICAgICBKdW1wTGlzdCBqdW1wczsKKworICAgICAgICAvLyBGaXJz
dCwgaGFuZGxlIEpTQ2VsbCBjYXNlcyAtIGNoZWNrIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgYml0
IG9uIHRoZSBzdHJ1Y3R1cmUuCisgICAgICAgIEp1bXAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkID0gYnJhbmNoVGVzdDgoWmVybywgQWRkcmVzcyh2YWx1ZSwgSlNDZWxsOjp0eXBlSW5mb0Zs
YWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkpOworICAg
ICAgICBlbWl0TG9hZFN0cnVjdHVyZSh2YWx1ZSwgc2NyYXRjaDIsIHNjcmF0Y2gxKTsKKyAgICAg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSksIHZhbHVl
KTsKKyAgICAgICAganVtcHMuYXBwZW5kKGJyYW5jaFB0cihFcXVhbCwgQWRkcmVzcyhzY3JhdGNo
MiwgU3RydWN0dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSksIHZhbHVlKSk7CisgICAgICAgIEp1
bXAgbWFzcXVlcmFkZXNHbG9iYWxPYmplY3RJc0ZvcmVpZ24gPSBqdW1wKCk7CisKKyAgICAgICAg
Ly8gTm93IGhhbmRsZSB0aGUgaW1tZWRpYXRlIGNhc2VzIC0gdW5kZWZpbmVkICYgbnVsbAorICAg
ICAgICBpc0ltbWVkaWF0ZS5saW5rKHRoaXMpOworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIo
flRhZ0JpdFVuZGVmaW5lZCksIHZhbHVlKTsKKyAgICAgICAganVtcHMuYXBwZW5kKGJyYW5jaDY0
KEVxdWFsLCB2YWx1ZSwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShqc051bGwoKSkpKSk7
CisKKyAgICAgICAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmxpbmsodGhpcyk7CisgICAg
ICAgIG1hc3F1ZXJhZGVzR2xvYmFsT2JqZWN0SXNGb3JlaWduLmxpbmsodGhpcyk7CisKKyAgICAg
ICAgcmV0dXJuIGp1bXBzOworICAgIH0KKwogICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVt
cCBKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVy
SW5kZXgsIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbG9hZDY0KGFkZHJlc3NGb3Io
dmlydHVhbFJlZ2lzdGVySW5kZXgpLCBkc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnREYXRhLmNwcAppbmRleCAwMTkyN2I2MzA0YzIzYzBkNWZiODQ0NjdmN2IzOThhOGE0YzFl
ZTNhLi5mMzNjMGIzNWYwYzZjZTI4YmY5ZjNkMzgyYTA5MTFiMGZhMTY4Njk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3Bjb2Rl
LmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKKyNpbmNsdWRlICJXcml0ZUJhcnJpZXIu
aCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAKQEAgLTE1NCw2ICsxNTUs
NyBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQoRnVu
Y3Rpb25Db2RlID09IDIpOwogICAgIEFTU0VSVChNb2R1bGVDb2RlID09IDMpOwogCisgICAgQVNT
RVJUKCEocmVpbnRlcnByZXRfY2FzdDxwdHJkaWZmX3Q+KChyZWludGVycHJldF9jYXN0PFdyaXRl
QmFycmllcjxKU0NlbGw+Kj4oMHg0MDAwKS0+c2xvdCgpKSkgLSAweDQwMDApKTsKICAgICBzdGF0
aWNfYXNzZXJ0KFB1dEJ5SWRQcmltYXJ5VHlwZU1hc2sgPT0gMHg2LCAiTExJbnQgYXNzdW1lcyBQ
dXRCeUlkUHJpbWFyeVR5cGVNYXNrIGlzID09IDB4NiIpOwogICAgIHN0YXRpY19hc3NlcnQoUHV0
QnlJZFByaW1hcnlUeXBlU2Vjb25kYXJ5ID09IDB4MCwgIkxMSW50IGFzc3VtZXMgUHV0QnlJZFBy
aW1hcnlUeXBlU2Vjb25kYXJ5IGlzID09IDB4MCIpOwogICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJ
ZFByaW1hcnlUeXBlT2JqZWN0V2l0aFN0cnVjdHVyZSA9PSAweDIsICJMTEludCBhc3N1bWVzIFB1
dEJ5SWRQcmltYXJ5VHlwZU9iamVjdFdpdGhTdHJ1Y3R1cmUgaXMgPT0gMHgyIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCA3NjVmMTk3
OTUwZTMyM2YwNTY2ZTcyYzczYjRlZWQ2M2UzYjIwOGM1Li4zMTgzNTY4ZDNlMmY3OTFhYTZkZDlh
MmIzMjAxOTY5ZDkxZjNjODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5jcHAKQEAgLTUyMSwzMCArNTIxLDI4IEBAIExMSU5UX1NMT1dfUEFUSF9E
RUNMKHNsb3dfcGF0aF9uZXdfcmVnZXhwKQogICAgIExMSU5UX1JFVFVSTihSZWdFeHBPYmplY3Q6
OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5yZWdFeHBTdHJ1Y3R1cmUo
KSwgcmVnRXhwKSk7CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jaGVja19o
YXNfaW5zdGFuY2UpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZikK
IHsKICAgICBMTElOVF9CRUdJTigpOwotICAgIAogICAgIEpTVmFsdWUgdmFsdWUgPSBMTElOVF9P
UF9DKDIpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIGJhc2VWYWwgPSBMTElOVF9PUF9DKDMpLmpz
VmFsdWUoKTsKLSAgICBpZiAoYmFzZVZhbC5pc09iamVjdCgpKSB7Ci0gICAgICAgIEpTT2JqZWN0
KiBiYXNlT2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbCk7Ci0gICAgICAgIEFTU0VSVCghYmFzZU9i
amVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5j
ZSgpKTsKLSAgICAgICAgaWYgKGJhc2VPYmplY3QtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLmlt
cGxlbWVudHNIYXNJbnN0YW5jZSgpKSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpz
Qm9vbGVhbihiYXNlT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5jdXN0b21IYXNJbnN0YW5jZShiYXNl
T2JqZWN0LCBleGVjLCB2YWx1ZSkpOwotICAgICAgICAgICAgTExJTlRfUkVUVVJOX1dJVEhfUENf
QURKVVNUTUVOVChyZXN1bHQsIHBjWzRdLnUub3BlcmFuZCk7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgTExJTlRfVEhST1coY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcihleGVj
LCBiYXNlVmFsKSk7CisgICAgSlNWYWx1ZSBwcm90byA9IExMSU5UX09QX0MoMykuanNWYWx1ZSgp
OworICAgIEFTU0VSVCghdmFsdWUuaXNPYmplY3QoKSB8fCAhcHJvdG8uaXNPYmplY3QoKSk7Cisg
ICAgTExJTlRfUkVUVVJOKGpzQm9vbGVhbihKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKGV4
ZWMsIHZhbHVlLCBwcm90bykpKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRo
X2luc3RhbmNlb2YpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZl9j
dXN0b20pCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKKwogICAgIEpTVmFsdWUgdmFsdWUgPSBMTElO
VF9PUF9DKDIpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHByb3RvID0gTExJTlRfT1BfQygzKS5q
c1ZhbHVlKCk7Ci0gICAgQVNTRVJUKCF2YWx1ZS5pc09iamVjdCgpIHx8ICFwcm90by5pc09iamVj
dCgpKTsKLSAgICBMTElOVF9SRVRVUk4oanNCb29sZWFuKEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5z
dGFuY2UoZXhlYywgdmFsdWUsIHByb3RvKSkpOworICAgIEpTVmFsdWUgY29uc3RydWN0b3IgPSBM
TElOVF9PUF9DKDMpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGhhc0luc3RhbmNlU3ltYm9sID0g
TExJTlRfT1BfQyg0KS5qc1ZhbHVlKCk7CisKKyAgICBBU1NFUlQoY29uc3RydWN0b3IuaXNPYmpl
Y3QoKSk7CisgICAgQVNTRVJUKGhhc0luc3RhbmNlU3ltYm9sICE9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSB8fCAh
Y29uc3RydWN0b3IuZ2V0T2JqZWN0KCktPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLmltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UoKSk7CisKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVh
bihjb25zdHJ1Y3Rvci5nZXRPYmplY3QoKS0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIGhhc0lu
c3RhbmNlU3ltYm9sKSk7CisgICAgTExJTlRfUkVUVVJOKHJlc3VsdCk7CiB9CiAKIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5oCmluZGV4IGUyNDQ4MjlmZGQxZTJmMTUwNmEzNWQxMGE0
ZWI4MWZjYmUzMmM1MzEuLjI1ZjIwNzIzYTViMzZiMTY1ZGUxZTM1OGQ5NjFhODFhMGZmZTVjMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCkBAIC02
Nyw4ICs2Nyw4IEBAIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2Fy
cmF5KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2FycmF5X3dp
dGhfc2l6ZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25ld19hcnJh
eV9idWZmZXIpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfcmVn
ZXhwKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY2hlY2tfaGFzX2lu
c3RhbmNlKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW5zdGFuY2Vv
Zik7CitMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2ZfY3Vz
dG9tKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKTsK
IExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2FyZ3VtZW50c19sZW5n
dGgpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbQppbmRleCA1MmVmYmU2M2FmOTA3N2QyYWQyMDBiZTdhMDI4NDMzZTUxMGM1
MWY0Li45ZGJhZmM3OWQ0NTViMDM5OWQ3MGE0NmUzNzQxZDg2MWYyNTUwOGY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbQpAQCAtMTE3NywxNSArMTE3NywzMiBAQCBfbGxpbnRfb3BfYml0b3I6CiAKIF9sbGlu
dF9vcF9jaGVja19oYXNfaW5zdGFuY2U6CiAgICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRp
IDEyW1BDXSwgdDEKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MSwgQ2VsbFRh
ZywgdDAsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93KQotICAgIGJ0YnogSlNDZWxsOjptX2ZsYWdz
W3QwXSwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNs
b3cKLSAgICBkaXNwYXRjaCg1KQogCi0ub3BDaGVja0hhc0luc3RhbmNlU2xvdzoKLSAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCi0gICAgZGlzcGF0
Y2goMCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDMpCisgICAgc3RvcmVpIEJvb2xl
YW5UYWcsIFRhZ09mZnNldFtjZnIsIHQzLCA4XQogCisgICAgIyBGaXJzdCBjaGVjayBpZiBoYXNJ
bnN0YW5jZVN5bWJvbCBpcyB0aGUgb25lIG9uIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFz
SW5zdGFuY2VdCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDMsIHQwKQorICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGUodDAsIHQxLCB0MikKKyAgICBiaW5lcSB0MSwgQ2VsbFRhZywgLm9wQ2hl
Y2tIYXNJbnN0YW5jZVN5bWJvbE5vdENlbGwKKworICAgICMgV2UgZG9uJ3QgbmVlZCBoYXNJbnN0
YW5jZVN5bWJvbCdzIHRhZyByZWdpc3RlciBhbnltb3JlLgorICAgIGxvYWRwIENvZGVCbG9ja1tj
ZnJdLCB0MQorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDFdLCB0MQorICAg
IGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1
bmN0aW9uW3QxXSwgdDEKKyAgICBiaW5lcSB0MSwgdDIsIC5vcENoZWNrSGFzSW5zdGFuY2VTeW1i
b2xOb3REZWZhdWx0CisKKyAgICAjIFdlIGtub3cgdGhlIGNvbnN0cnVjdG9yIGlzIGEgY2VsbC4K
KyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZVBheWxvYWRVbmNoZWNrZWQodDAsIHQxKQorICAgIHRieiBKU0NlbGw6Om1fZmxhZ3NbdDFd
LCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCB0MAorICAgIHN0b3JlaSB0MCwgUGF5bG9h
ZE9mZnNldFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKy5vcENoZWNrSGFzSW5zdGFu
Y2VTeW1ib2xOb3RDZWxsOgorLm9wQ2hlY2tIYXNJbnN0YW5jZVN5bWJvbE5vdERlZmF1bHQ6Cisg
ICAgc3RvcmVwIDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg0KQog
CiBfbGxpbnRfb3BfaW5zdGFuY2VvZjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCkBAIC0xMjE1LDYg
KzEyMzIsMTEgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfaW5zdGFuY2VvZikKICAgICBkaXNwYXRjaCg0KQogCitfbGxpbnRfb3BfaW5z
dGFuY2VvZl9jdXN0b206CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKQorICAgIGRpc3BhdGNoKDUpCisKIAog
X2xsaW50X29wX2lzX3VuZGVmaW5lZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmlu
ZGV4IGM5MmQ4ZWE4ODQ3YjRiYWM1NTQ0OGE3MDI4ZjA5YjdkYWEyNTI3N2UuLjcyOWQ3MGJkZTJk
NjhhZmM0MDlkMGI3OWVjYWMxNzUwYjdkNTIwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMDcxLDE0ICsx
MDcxLDI2IEBAIF9sbGludF9vcF9iaXRvcjoKIAogX2xsaW50X29wX2NoZWNrX2hhc19pbnN0YW5j
ZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQz
KQorCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDMsIHQxKQotICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGVDZWxsKHQxLCB0MCwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cpCi0gICAgYnRieiBK
U0NlbGw6Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCAub3BDaGVj
a0hhc0luc3RhbmNlU2xvdwotICAgIGRpc3BhdGNoKDUpCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZSh0MSwgdDApCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbG9hZHAgQ29k
ZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0Ml0sIHQyCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6
Om1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb25bdDJdLCB0MgorICAgIGJx
bmVxIHQwLCB0MiwgLm9wQ2hlY2tIYXNJbnN0YW5jZU5vdERlZmF1bHRTeW1ib2wKIAotLm9wQ2hl
Y2tIYXNJbnN0YW5jZVNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY2hl
Y2tfaGFzX2luc3RhbmNlKQotICAgIGRpc3BhdGNoKDApCisgICAgbG9hZGlzRnJvbUluc3RydWN0
aW9uKDIsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAgIHRieiBK
U0NlbGw6Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCB0MQorICAg
IG9ycSBWYWx1ZUZhbHNlLCB0MQorICAgIHN0b3JlcSB0MSwgW2NmciwgdDMsIDhdCisgICAgZGlz
cGF0Y2goNCkKKworLm9wQ2hlY2tIYXNJbnN0YW5jZU5vdERlZmF1bHRTeW1ib2w6CisgICAgc3Rv
cmVxIFZhbHVlVHJ1ZSwgdDEKKyAgICBzdG9yZXEgdDEsIFtjZnIsIHQzLCA4XQorICAgIGRpc3Bh
dGNoKDQpCiAKIAogX2xsaW50X29wX2luc3RhbmNlb2Y6CkBAIC0xMTA5LDYgKzExMjEsMTAgQEAg
X2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
aW5zdGFuY2VvZikKICAgICBkaXNwYXRjaCg0KQogCitfbGxpbnRfb3BfaW5zdGFuY2VvZl9jdXN0
b206CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX2luc3RhbmNlb2ZfY3VzdG9tKQorICAgIGRpc3BhdGNoKDUpCiAKIF9sbGludF9vcF9pc191
bmRlZmluZWQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNGNmNjU5MGE5YjAxNjA4ODU2
MmJlZThkNzU1MzU1ZDg3YTNiMzNiMS4uZGM3N2Y0ZmJkY2E1YTcxMzJkMDI3YTZjZTFkODlkMmI0
NzU4NDEyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
SWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25J
ZGVudGlmaWVycy5oCkBAIC0yNDksNyArMjQ5LDYgQEAKICAgICBtYWNybyh5aWVsZCkKIAogI2Rl
ZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJP
TF9OT1RfSU1QTEVNRU5URURfWUVUKG1hY3JvKVwKLSAgICBtYWNybyhoYXNJbnN0YW5jZSkgXAog
ICAgIG1hY3JvKGlzQ29uY2F0U3ByZWFkYWJsZSkgXAogICAgIG1hY3JvKG1hdGNoKSBcCiAgICAg
bWFjcm8ocmVwbGFjZSkgXApAQCAtMjU5LDYgKzI1OCw3IEBACiAgICAgbWFjcm8odG9QcmltaXRp
dmUpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9L
Tk9XTl9TWU1CT0wobWFjcm8pIFwKKyAgICBtYWNybyhoYXNJbnN0YW5jZSkgXAogICAgIG1hY3Jv
KGl0ZXJhdG9yKSBcCiAgICAgbWFjcm8odW5zY29wYWJsZXMpIFwKICAgICBtYWNybyh0b1N0cmlu
Z1RhZykKQEAgLTMyOSw2ICszMjksOSBAQAogICAgIG1hY3JvKFVpbnQzMkFycmF5KSBcCiAgICAg
bWFjcm8oRmxvYXQzMkFycmF5KSBcCiAgICAgbWFjcm8oRmxvYXQ2NEFycmF5KSBcCisgICAgbWFj
cm8oaXNCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9u
KSBcCisgICAgbWFjcm8oaW5zdGFuY2VPZikKIAogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXgg
MDEzMWI5ZjFjM2QzMzRiYWUwNWMxYzliNjAyYjBiOWQ1MjlmM2EzMC4uNGM0NmNlMDdhMzYzMDM4
NTU2YTVjOWVlNDg1MDk0ZWU3Mzg4NDEwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCBzdGF0
aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYg
b3JpZ2luYWxNZXNzYWdlLCBjbwogICAgIHJldHVybiBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUs
ICIgaXMgbm90IGFuIE9iamVjdC4gKGV2YWx1YXRpbmcgJyIsIHNvdXJjZVRleHQsICInKSIpOwog
fQogCi1zdGF0aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5k
ZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4
dCwgUnVudGltZVR5cGUsIEVycm9ySW5zdGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJy
ZWQgb2NjdXJyZW5jZSkKK2lubGluZSBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZT
b3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
YWxNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVRleHQsIFJ1bnRpbWVUeXBlLCBFcnJvcklu
c3RhbmNlOjpTb3VyY2VUZXh0V2hlcmVFcnJvck9jY3VycmVkIG9jY3VycmVuY2UpCiB7CiAgICAg
aWYgKG9jY3VycmVuY2UgPT0gRXJyb3JJbnN0YW5jZTo6Rm91bmRBcHByb3hpbWF0ZVNvdXJjZSkK
ICAgICAgICAgcmV0dXJuIGRlZmF1bHRBcHByb3hpbWF0ZVNvdXJjZUVycm9yKG9yaWdpbmFsTWVz
c2FnZSwgc291cmNlVGV4dCk7CkBAIC0yMjIsNyArMjIyLDE3IEBAIHN0YXRpYyBTdHJpbmcgaW52
YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdp
bmFsTWVzCiAKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW5zdGFuY2VvZkxlbmd0aCA9IDEw
OwogICAgIFN0cmluZyByaWdodEhhbmRTaWRlID0gc291cmNlVGV4dC5zdWJzdHJpbmcoaW5zdGFu
Y2VvZkluZGV4ICsgaW5zdGFuY2VvZkxlbmd0aCkuc2ltcGxpZnlXaGl0ZVNwYWNlKCk7Ci0gICAg
cmV0dXJuIG1ha2VTdHJpbmcocmlnaHRIYW5kU2lkZSwgIiBpcyBub3QgYSBmdW5jdGlvbi4gKGV2
YWx1YXRpbmcgJyIsIHNvdXJjZVRleHQsICInKSIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKHJp
Z2h0SGFuZFNpZGUsIGNvbnRlbnQsICIuIChldmFsdWF0aW5nICciLCBzb3VyY2VUZXh0LCAiJyki
KTsKK30KKworc3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZk5vdEZ1bmN0
aW9uU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5cGUgcnVudGltZVR5cGUsIEVycm9ySW5zdGFuY2U6
OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkKK3sKKyAgICByZXR1cm4g
aW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRlcihXVEY6Om1ha2VTdHJpbmco
IiBpcyBub3QgYSBmdW5jdGlvbiIpLCBvcmlnaW5hbE1lc3NhZ2UsIHNvdXJjZVRleHQsIHJ1bnRp
bWVUeXBlLCBvY2N1cnJlbmNlKTsKK30KKworc3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVy
SW5zdGFuY2VvZkhhc0luc3RhbmNlU3ltYm9sTm90RnVuY3Rpb25Tb3VyY2VBcHBlbmRlcihjb25z
dCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50
aW1lVHlwZSBydW50aW1lVHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JP
Y2N1cnJlZCBvY2N1cnJlbmNlKQoreworICAgIHJldHVybiBpbnZhbGlkUGFyYW1ldGVySW5zdGFu
Y2VvZlNvdXJjZUFwcGVuZGVyKFdURjo6bWFrZVN0cmluZygiW1N5bWJvbC5oYXNJbnN0YW5jZV0g
aXMgbm90IGEgZnVuY3Rpb24sIHVuZGVmaW5lZCwgb3IgbnVsbCIpLCBvcmlnaW5hbE1lc3NhZ2Us
IHNvdXJjZVRleHQsIHJ1bnRpbWVUeXBlLCBvY2N1cnJlbmNlKTsKIH0KIAogSlNPYmplY3QqIGNy
ZWF0ZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRlcikKQEAgLTI0NSw5
ICsyNTUsMTQgQEAgSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJblBhcmFtZXRlckVycm9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywg
dmFsdWUsIG1ha2VTdHJpbmcoImlzIG5vdCBhbiBPYmplY3QuIiksIGludmFsaWRQYXJhbWV0ZXJJ
blNvdXJjZUFwcGVuZGVyKTsKIH0KIAotSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9m
UGFyYW1ldGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorSlNPYmplY3Qq
IGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JOb3RGdW5jdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMs
IHZhbHVlLCBtYWtlU3RyaW5nKCIgaXMgbm90IGEgZnVuY3Rpb24iKSwgaW52YWxpZFBhcmFtZXRl
ckluc3RhbmNlb2ZOb3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKTsKK30KKworSlNPYmplY3QqIGNy
ZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JIYXNJbnN0YW5jZVN5bWJvbE5vdEZ1
bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gY3Jl
YXRlRXJyb3IoZXhlYywgdmFsdWUsIG1ha2VTdHJpbmcoImlzIG5vdCBhIGZ1bmN0aW9uLiIpLCBp
bnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKTsKKyAgICByZXR1cm4gY3Jl
YXRlRXJyb3IoZXhlYywgdmFsdWUsIG1ha2VTdHJpbmcoIltTeW1ib2wuaGFzSW5zdGFuY2VdIGlz
IG5vdCBhIGZ1bmN0aW9uLCB1bmRlZmluZWQsIG9yIG51bGwiKSwgaW52YWxpZFBhcmFtZXRlcklu
c3RhbmNlb2ZIYXNJbnN0YW5jZVN5bWJvbE5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOwogfQog
CiBKU09iamVjdCogY3JlYXRlTm90QUNvbnN0cnVjdG9yRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhjZXB0aW9uSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0
aW9uSGVscGVycy5oCmluZGV4IGM2YmEwMmUzZmJiMDMzYjIxZjFkOTNhMTFlYTdjZDlkMzBmMTkz
OWEuLjdkZDEyZTY2YjUzMGRiNjVkZGEyZTU3Nzc3YjFlNmYwYzE4OGRkZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgKQEAgLTQ1LDcg
KzQ1LDggQEAgSlNPYmplY3QqIGNyZWF0ZVREWkVycm9yKEV4ZWNTdGF0ZSopOwogSlNPYmplY3Qq
IGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCog
Y3JlYXRlSW52YWxpZEZ1bmN0aW9uQXBwbHlQYXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqLCBKU1Zh
bHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5QYXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUq
LCBKU1ZhbHVlKTsKLUpTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVy
cm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOworSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5j
ZW9mUGFyYW1ldGVyRXJyb3JOb3RGdW5jdGlvbihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKK0pTT2Jq
ZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9ySGFzSW5zdGFuY2VTeW1i
b2xOb3RGdW5jdGlvbihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVOb3RB
Q29uc3RydWN0b3JFcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVO
b3RBRnVuY3Rpb25FcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVF
cnJvckZvckludmFsaWRHbG9iYWxBc3NpZ25tZW50KEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuY3BwCmluZGV4IDk3MGQwMTI4NmNhODA5ZjgwYzkxZjMxMzc1Y2YyZmMyODM2MzIyYjQuLmFh
ODc1NjEwM2I3MjQwN2QyNzc3ZWRiNmFmZDYxNWRhZmY0NmQxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTUzLDcg
KzUzLDcgQEAgdm9pZCBGdW5jdGlvblByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKIH0KIAotdm9pZCBGdW5jdGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Q
cm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNGdW5jdGlvbioqIGNhbGxGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGFwcGx5RnVuY3Rpb24pCit2
b2lkIEZ1bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Z1bmN0aW9uKiogY2FsbEZ1bmN0
aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGhhc0luc3RhbmNl
U3ltYm9sRnVuY3Rpb24pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKIApAQCAtNjIsNiAr
NjIsNyBAQCB2b2lkIEZ1bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlvblByb3BlcnRpZXMoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZwogCiAgICAgKmFwcGx5RnVuY3Rpb24gPSBw
dXREaXJlY3RCdWlsdGluRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0
LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcHBseVB1YmxpY05hbWUoKSwgZnVu
Y3Rpb25Qcm90b3R5cGVBcHBseUNvZGVHZW5lcmF0b3Iodm0pLCBEb250RW51bSk7CiAgICAgKmNh
bGxGdW5jdGlvbiA9IHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZt
LCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNhbGxQdWJs
aWNOYW1lKCksIGZ1bmN0aW9uUHJvdG90eXBlQ2FsbENvZGVHZW5lcmF0b3Iodm0pLCBEb250RW51
bSk7CisgICAgKmhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24gPSBwdXREaXJlY3RCdWlsdGluRnVu
Y3Rpb24odm0sIGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+aGFzSW5zdGFuY2VTeW1i
b2wsIGZ1bmN0aW9uUHJvdG90eXBlU3ltYm9sSGFzSW5zdGFuY2VDb2RlR2VuZXJhdG9yKHZtKSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogCiAgICAgSlNGdW5jdGlvbiogYmlu
ZEZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIDEsIHZtLnBy
b3BlcnR5TmFtZXMtPmJpbmQuc3RyaW5nKCksIGZ1bmN0aW9uUHJvdG9GdW5jQmluZCk7CiAgICAg
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJpbmQsIGJp
bmRGdW5jdGlvbiwgRG9udEVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKaW5kZXggNTJjZThmMTFjNWRkN2QxMDMxNTU2OTAzZTVh
Y2FiMGQyYWQ0YzBmOC4uYWJlNTMzYTMzYTFmMzc4ZmVkYjgyMTRmNTZjYzVhZmUwZmExZTY5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlw
ZS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsK
ICAgICB9CiAKLSAgICB2b2lkIGFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqLCBKU0ds
b2JhbE9iamVjdCosIEpTRnVuY3Rpb24qKiBjYWxsRnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBhcHBs
eUZ1bmN0aW9uKTsKKyAgICB2b2lkIGFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIEpTRnVuY3Rpb24qKiBjYWxsRnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBh
cHBseUZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogaGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAK
ICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCmluZGV4IDhjNWNjMmVk
MzkwNDgyZWFjMmU3NzVhNGYwYzJkMmQ1YzRjOTllNjEuLjBmMDQ5ZjkwZmZiZTZhYjczYjkxN2U5
MTE3M2UyZDFmMWIyODE5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZEZ1bmN0aW9uLmNwcApAQCAtNzQsNiArNzQsMjAgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdChleGVjLCB0YXJnZXRGdW5jdGlvbiwg
Y29uc3RydWN0VHlwZSwgY29uc3RydWN0RGF0YSwgYXJncykpOwogfQogCitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGlzQm91bmRGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKHN0YXRpY19jYXN0PGJvb2w+KGpzRHluYW1p
Y0Nhc3Q8SlNCb3VuZEZ1bmN0aW9uKj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpKSkpOwor
fQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhhc0luc3RhbmNlQm91bmRGdW5jdGlv
bihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNCb3VuZEZ1bmN0aW9uKiBib3VuZE9iamVjdCA9
IGpzQ2FzdDxKU0JvdW5kRnVuY3Rpb24qPihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7Cisg
ICAgSlNWYWx1ZSB2YWx1ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOworCisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYm91bmRPYmplY3QtPnRhcmdldEZ1bmN0aW9u
KCktPmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlKSkpOworfQorCisKIEpTQm91bmRGdW5jdGlvbiog
SlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24sIEpTVmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVl
IGJvdW5kQXJncywgaW50IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIENvbnN0
cnVjdERhdGEgY29uc3RydWN0RGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZEZ1bmN0aW9uLmgKaW5kZXggYWYyYTYzMjNkNTM3MWUyMDU2MGMwZjI1NTZjYzVi
ODdmNjI1NjhlOS4uYzM4ZGM2N2Q0M2M2OWI4NTM1ZGQ1YWFkOTEwZmIzNmIyZTcwY2Q0NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKQEAg
LTMyLDYgKzMyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QoRXhlY1N0YXRlKik7CitFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGlzQm91bmRGdW5jdGlvbihFeGVjU3RhdGUqKTsKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSop
OwogCiBjbGFzcyBKU0JvdW5kRnVuY3Rpb24gOiBwdWJsaWMgSlNGdW5jdGlvbiB7CiBwdWJsaWM6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAK
aW5kZXggY2JhNWFjMWFhMDU4YWMzOWVlNmU5NjI1MjVhNDdjYzg2OGIxMjg5MS4uYWRjN2FmZTgx
NGExODdlYTRkZjBjN2UyOTBhZWJlYjRiNzdjMjY1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMjgyLDEyICsyODIsMTQgQEAg
dm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgbV9pbnRlcm5hbEZ1bmN0aW9u
U3RydWN0dXJlLnNldCh2bSwgdGhpcywgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSk7CiAgICAgSlNGdW5jdGlvbiog
Y2FsbEZ1bmN0aW9uID0gMDsKICAgICBKU0Z1bmN0aW9uKiBhcHBseUZ1bmN0aW9uID0gMDsKLSAg
ICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5hZGRGdW5jdGlvblByb3BlcnRpZXMoZXhlYywgdGhpcywg
JmNhbGxGdW5jdGlvbiwgJmFwcGx5RnVuY3Rpb24pOworICAgIEpTRnVuY3Rpb24qIGhhc0luc3Rh
bmNlU3ltYm9sRnVuY3Rpb24gPSAwOworICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPmFkZEZ1bmN0
aW9uUHJvcGVydGllcyhleGVjLCB0aGlzLCAmY2FsbEZ1bmN0aW9uLCAmYXBwbHlGdW5jdGlvbiwg
Jmhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogICAgIG1fY2FsbEZ1bmN0aW9uLnNldCh2bSwg
dGhpcywgY2FsbEZ1bmN0aW9uKTsKICAgICBtX2FwcGx5RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBh
cHBseUZ1bmN0aW9uKTsKICAgICBtX2FycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbi5zZXQodm0sIHRo
aXMsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgdm0ucHJvcGVydHlOYW1lcy0+dmFs
dWVzLnN0cmluZygpLCBhcnJheVByb3RvRnVuY1ZhbHVlcykpOwogICAgIG1faW5pdGlhbGl6ZVBy
b21pc2VGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5j
dGlvbih2bSwgb3BlcmF0aW9uc1Byb21pc2VJbml0aWFsaXplUHJvbWlzZUNvZGVHZW5lcmF0b3Io
dm0pLCB0aGlzKSk7CiAgICAgbV9uZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uLnNldCh2bSwg
dGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBvcGVyYXRpb25zUHJv
bWlzZU5ld1Byb21pc2VDYXBhYmlsaXR5Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpKTsKKyAgICBt
X2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uLnNldCh2bSwgdGhpcywgaGFz
SW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAgICAgbV9udWxsR2V0dGVyRnVuY3Rpb24uc2V0KHZt
LCB0aGlzLCBOdWxsR2V0dGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgTnVsbEdldHRlckZ1bmN0aW9u
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKSk7
CiAgICAgbV9udWxsU2V0dGVyRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBOdWxsU2V0dGVyRnVuY3Rp
b246OmNyZWF0ZSh2bSwgTnVsbFNldHRlckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRo
aXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKSk7CiAgICAgbV9vYmplY3RQcm90b3R5cGUu
c2V0KHZtLCB0aGlzLCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgT2JqZWN0UHJv
dG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIGpzTnVsbCgpKSkpOwpAQCAtNTA2LDYg
KzUwOCw5IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0
ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGds
b2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKICAgICBKU0Z1bmN0
aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0s
IHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsKICAg
ICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0ID0gSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQp
OworICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uID0gSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgaXNCb3VuZEZ1bmN0aW9uKTsKKyAgICBK
U0Z1bmN0aW9uKiBwcml2YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiA9IEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGhhc0luc3RhbmNlQm91bmRGdW5jdGlv
bik7CisgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNJbnN0YW5jZU9mID0gSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9m
KTsKIAogICAgIEdsb2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7CiAgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5OYU4sIGpzTmFOKCksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKQEAgLTUyMCw2ICs1MjUsOSBAQCBwdXREaXJl
Y3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJO
YW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+VHlwZUVycm9yUHJpdmF0ZU5hbWUsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0KCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlMZW5ndGhQcml2YXRlTmFtZSwgcHJp
dmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBlZEFy
cmF5U29ydFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0LCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5pc0JvdW5kRnVuY3Rpb25Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJc0Jv
dW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmhhc0luc3RhbmNlQm91bmRGdW5j
dGlvblByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiwgRG9u
dEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+aW5zdGFuY2VPZlByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0lu
c3RhbmNlT2YsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkJ1aWx0aW5Mb2dQcml2YXRlTmFtZSwg
YnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+QXJyYXlQcml2YXRlTmFtZSwgYXJy
YXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TnVtYmVyUHJpdmF0ZU5hbWUs
IG51bWJlckNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCkBA
IC04MDksNiArODE3LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tX2FycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbik7CiAgICAgdmlzaXRvci5hcHBlbmQo
JnRoaXNPYmplY3QtPm1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbik7CiAgICAgdmlzaXRvci5h
cHBlbmQoJnRoaXNPYmplY3QtPm1fbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbik7CisgICAg
dmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3lt
Ym9sRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Rocm93VHlw
ZUVycm9yR2V0dGVyU2V0dGVyKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9t
b2R1bGVMb2FkZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAppbmRleCA4ZTE2MjljNWJiZWE2Nzk0OTQ4M2FkM2NjNzgxODkzYjg0ZDg1MTA0
Li41ZjM4YTI0ZjhiOTFiNzliNzM2YmExYzk0YTg2YjE2N2Y1ZjBlYjhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTIyMCw2ICsyMjAs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fYXJyYXlQcm90
b1ZhbHVlc0Z1bmN0aW9uOwogICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2luaXRpYWxp
emVQcm9taXNlRnVuY3Rpb247CiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fbmV3UHJv
bWlzZUNhcGFiaWxpdHlGdW5jdGlvbjsKKyAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9m
dW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbjsKICAgICBXcml0ZUJhcnJpZXI8
R2V0dGVyU2V0dGVyPiBtX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyOwogCiAgICAgV3JpdGVC
YXJyaWVyPE1vZHVsZUxvYWRlck9iamVjdD4gbV9tb2R1bGVMb2FkZXI7CkBAIC00MzMsNiArNDM0
LDcgQEAgcHVibGljOgogICAgIEpTRnVuY3Rpb24qIGFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uLmdldCgpOyB9CiAgICAg
SlNGdW5jdGlvbiogaW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
aW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbi5nZXQoKTsgfQogICAgIEpTRnVuY3Rpb24qIG5ld1By
b21pc2VDYXBhYmlsaXR5RnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX25ld1Byb21pc2VDYXBh
YmlsaXR5RnVuY3Rpb24uZ2V0KCk7IH0KKyAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvblByb3RvSGFz
SW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25Qcm90b0hh
c0luc3RhbmNlU3ltYm9sRnVuY3Rpb24uZ2V0KCk7IH0KICAgICBHZXR0ZXJTZXR0ZXIqIHRocm93
VHlwZUVycm9yR2V0dGVyU2V0dGVyKFZNJiB2bSkKICAgICB7CiAgICAgICAgIGlmICghbV90aHJv
d1R5cGVFcnJvckdldHRlclNldHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmNwcAppbmRleCAwYjBmYTJkNDRkOGJmZTZiMWIyMGVjZjJlZmFhYjg1NTQ2NDAyMWI4
Li42YjJmZTQzOGI0ZDYxYjA2ZDUxOTU2Y2I3OTFjNTQ4OTk1NTUzMzAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0xNDU3LDE4ICsxNDU3LDQwIEBA
IGNvbnN0IEhhc2hUYWJsZVZhbHVlKiBKU09iamVjdDo6ZmluZFByb3BlcnR5SGFzaEVudHJ5KFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgSlNPYmpl
Y3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK2Jvb2wgSlNP
YmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1
ZSBoYXNJbnN0YW5jZVN5bWJvbCkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworCisgICAg
aWYgKCFoYXNJbnN0YW5jZVN5bWJvbC5pc1VuZGVmaW5lZE9yTnVsbCgpICYmIGhhc0luc3RhbmNl
U3ltYm9sICE9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0lu
c3RhbmNlU3ltYm9sRnVuY3Rpb24oKSkgeworICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAg
ICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBKU0M6OmdldENhbGxEYXRhKGhhc0luc3RhbmNlU3lt
Ym9sLCBjYWxsRGF0YSk7CisgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsK
KyAgICAgICAgICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZUludmFsaWRJbnN0YW5j
ZW9mUGFyYW1ldGVyRXJyb3JIYXNJbnN0YW5jZVN5bWJvbE5vdEZ1bmN0aW9uKGV4ZWMsIHRoaXMp
KTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgICAgIGFyZ3MuYXBwZW5kKHZhbHVlKTsKKyAgICAg
ICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGV4ZWMsIGhhc0luc3RhbmNlU3ltYm9sLCBjYWxsVHlw
ZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3MpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvQm9vbGVh
bihleGVjKTsKKyAgICB9CisKICAgICBUeXBlSW5mbyBpbmZvID0gc3RydWN0dXJlKHZtKS0+dHlw
ZUluZm8oKTsKICAgICBpZiAoaW5mby5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpCiAg
ICAgICAgIHJldHVybiBkZWZhdWx0SGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIGdldChleGVjLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlKSk7CiAgICAgaWYgKGluZm8uaW1wbGVtZW50
c0hhc0luc3RhbmNlKCkpCiAgICAgICAgIHJldHVybiBtZXRob2RUYWJsZSh2bSktPmN1c3RvbUhh
c0luc3RhbmNlKHRoaXMsIGV4ZWMsIHZhbHVlKTsKLSAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVj
LCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKGV4ZWMsIHRoaXMpKTsKKyAg
ICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRl
ckVycm9yTm90RnVuY3Rpb24oZXhlYywgdGhpcykpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
Ym9vbCBKU09iamVjdDo6aGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQoreworICAgIEpTVmFsdWUgaGFzSW5zdGFuY2VTeW1ib2wgPSBnZXQoZXhlYywgZXhlYy0+cHJv
cGVydHlOYW1lcygpLmhhc0luc3RhbmNlU3ltYm9sKTsKKworICAgIHJldHVybiBoYXNJbnN0YW5j
ZShleGVjLCB2YWx1ZSwgaGFzSW5zdGFuY2VTeW1ib2wpOworfQorCiBib29sIEpTT2JqZWN0Ojpk
ZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVl
IHByb3RvKQogewogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKQEAgLTE0ODcsNiArMTUwOSwx
NCBAQCBib29sIEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YoRXhl
Y1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgdmFsdWUgPSBleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgwKTsKKyAgICBKU1ZhbHVlIHByb3RvID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSk7
CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihKU09iamVjdDo6ZGVmYXVs
dEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90bykpKTsKK30KKwogdm9pZCBKU09iamVjdDo6
Z2V0UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAg
ICBvYmplY3QtPm1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCBhYmY1YTViZDk2ZjdlMTQyYWVkMDlmNzdhMzM5ZjQzZTg4
YWEwZjZmLi4zYmRlOTkwZmUxMzA5ZTlhNzVlNWNiOTI0Y2E3MDZlZjBkNmIyMmNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTQ4NSw2ICs0ODUsNyBAQCBw
dWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgSlNWYWx1ZSBkZWZhdWx0VmFs
dWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKTsK
IAorICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNW
YWx1ZSB2YWx1ZSwgSlNWYWx1ZSBoYXNJbnN0YW5jZVN5bWJvbCk7CiAgICAgYm9vbCBoYXNJbnN0
YW5jZShFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBkZWZhdWx0SGFzSW5z
dGFuY2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgSlNWYWx1ZSBwcm90b3R5cGVQcm9wZXJ0eSk7CiAK
QEAgLTk3NCw2ICs5NzUsOCBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKK0pTX0VYUE9SVF9QUklW
QVRFIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5j
ZU9mKEV4ZWNTdGF0ZSopOworCiBpbmxpbmUgSlNGaW5hbE9iamVjdCogSlNGaW5hbE9iamVjdDo6
Y3JlYXRlKAogICAgIEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRl
cmZseSogYnV0dGVyZmx5KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvV3JpdGVCYXJyaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0
ZUJhcnJpZXIuaAppbmRleCAwZjcwZTFlYTAwYzYyMjBhZmQ4MDI3ODk2ODFiOWQ5OGNhYTg0YTk2
Li5iNzI3ZDE4NWU0ZDcwZTE5OWVmZmNlMGUxYWNhMDRjZjk1MjgzNTY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaApAQCAtMTUyLDE0ICsxNTIsOSBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0dldHRlclNldHRlcigpIGNvbnN0IHsgcmV0dXJuIGdldCgp
LmlzR2V0dGVyU2V0dGVyKCk7IH0KICAgICBib29sIGlzQ3VzdG9tR2V0dGVyU2V0dGVyKCkgY29u
c3QgeyByZXR1cm4gZ2V0KCkuaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKTsgfQogICAgIAotICAgIEpT
VmFsdWUqIHNsb3QoKQorICAgIEpTVmFsdWUqIHNsb3QoKSBjb25zdAogICAgIHsgCi0gICAgICAg
IHVuaW9uIHsKLSAgICAgICAgICAgIEVuY29kZWRKU1ZhbHVlKiB2OwotICAgICAgICAgICAgSlNW
YWx1ZSogc2xvdDsKLSAgICAgICAgfSB1OwotICAgICAgICB1LnYgPSAmbV92YWx1ZTsKLSAgICAg
ICAgcmV0dXJuIHUuc2xvdDsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxKU1ZhbHVlKj4o
Jm1fdmFsdWUpOwogICAgIH0KICAgICAKICAgICBpbnQzMl90KiB0YWdQb2ludGVyKCkgeyByZXR1
cm4gJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFsdWVEZXNjcmlwdG9yKj4oJm1fdmFsdWUpLT5hc0Jp
dHMudGFnOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3N5bWJvbC1oYXNJbnN0YW5jZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3Mvc3ltYm9sLWhhc0luc3RhbmNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4MDFlYjhiNGQ3ZGNmMWJmM2Fj
NjdlYmY2NGVmZDcyZjZmYTNkMzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3N5bWJvbC1oYXNJbnN0YW5jZS5qcwpAQCAtMCwwICsxLDU0IEBA
CisvLyBUaGlzIGZpbGUgdGVzdHMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgU3ltYm9sLmhhc0luc3Rh
bmNlLgorCisKKy8vIFRlc3QgYSBjdXN0b20gU3ltYm9sLmhhc0luc3RhbmNlIG9uIGEgZnVuY3Rp
b24gb2JqZWN0LgorZnVuY3Rpb24gQ29uc3RydWN0b3IoeCkge30KK2ZvbyA9IG5ldyBDb25zdHJ1
Y3RvcigpOworCitpZiAoIShmb28gaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpCisgICAgdGhyb3cg
InNob3VsZCBiZSBpbnN0YW5jZW9mIjsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbnN0cnVj
dG9yLCBTeW1ib2wuaGFzSW5zdGFuY2UsIHt2YWx1ZTogZnVuY3Rpb24odmFsdWUpIHsKKyAgICBp
ZiAodGhpcyAhPT0gQ29uc3RydWN0b3IpCisgICAgICAgIHRocm93ICJ8dGhpc3wgc2hvdWxkIGJl
IENvbnN0cnVjdG9yIjsKKyAgICBpZiAodmFsdWUgIT09IGZvbykKKyAgICAgICAgdGhyb3cgImZp
cnN0IGFyZ3VtZW50IHNob3VsZCBiZSBmb28iOworICAgIHJldHVybiBmYWxzZTsKK30gfSk7CisK
KworaWYgKGZvbyBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKQorICAgIHRocm93ICJzaG91bGQgbm90
IGJlIGluc3RhbmNlb2YiOworCisKKy8vIFRlc3QgU3ltYm9sLmhhc0luc3RhbmNlIG9uIGFuIG9y
ZGluYXJ5IG9iamVjdC4KK09iamVjdENsYXNzID0ge30KK09iamVjdENsYXNzW1N5bWJvbC5oYXNJ
bnN0YW5jZV0gPSBmdW5jdGlvbiAodmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgIT09IG51bGwg
JiYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIHZhbHVlID09PSAiZnVuY3Rp
b24iKTsKK30KKworaWYgKCEoZm9vIGluc3RhbmNlb2YgT2JqZWN0Q2xhc3MpKQorICAgIHRocm93
ICJmb28gc2hvdWxkIGJlIGFuIGluc3RhbmNlb2YgT2JqZWN0Q2xhc3MiOworCitpZiAoIShDb25z
dHJ1Y3RvciBpbnN0YW5jZW9mIE9iamVjdENsYXNzKSkKKyAgICB0aHJvdyAiQ29uc3RydWN0b3Ig
c2hvdWxkIGJlIGFuIGluc3RhbmNlb2YgT2JqZWN0Q2xhc3MiOworCitOdW1iZXJDbGFzcyA9IHt9
CitOdW1iZXJDbGFzc1tTeW1ib2wuaGFzSW5zdGFuY2VdID0gZnVuY3Rpb24gKHZhbHVlKSB7Cisg
ICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJlciI7Cit9CisKK2lmICghKDEgaW5zdGFu
Y2VvZiBOdW1iZXJDbGFzcykpCisgICAgdGhyb3cgIjEgc2hvdWxkIGJlIGFuIGluc3RhbmNlb2Yg
TnVtYmVyQ2xhc3MiOworCitpZiAoZm9vIGluc3RhbmNlb2YgTnVtYmVyQ2xhc3MpCisgICAgdGhy
b3cgImZvbyBzaG91bGQgYmUgYW4gaW5zdGFuY2VvZiBOdW1iZXJDbGFzcyI7CisKKworLy8gVGVz
dCB0aGUgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0gd29ya3Mgd2hlbiBh
Y3R1YWxseSBjYWxsZWQuCitkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihGdW5jdGlvbi5wcm90b3R5cGUsIFN5bWJvbC5oYXNJbnN0YW5jZSk7CitpZiAoZGVzY3Jp
cHRvci53cml0YWJsZSAhPT0gZmFsc2UgfHwgZGVzY3JpcHRvci5jb25maWd1cmFibGUgIT09IGZh
bHNlIHx8IGRlc2NyaXB0b3IuZW51bWVyYWJsZSAhPT0gZmFsc2UpCisgICAgdGhyb3cgIkZ1bmN0
aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdIGhhcyBhIGJhZCBkZXNjcmlwdG9yIjsK
KworaWYgKCFGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXS5jYWxsKENvbnN0
cnVjdG9yLCBmb28pKQorICAgIHRocm93ICJGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0lu
c3RhbmNlXSBzaG91bGQgY2xhaW0gdGhhdCBmb28gaXMgYW4gaW5zdGFuY2VvZiBDb25zdHJ1Y3Rv
ciI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYWVkMTg3YzdiNjhkMWQ2OGM2NzFiMzFiMWQxODAzOGM5YTJmM2YwOS4uYTEy
NzYyNTk3ZWM3NDVlZjE1YzhiMjRiY2FjYjU3ZTViMjZjNGNjNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDE1LTEyLTA3ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFtFUzZdIEFkZCBzdXBwb3J0IGZvciBTeW1ib2wuaGFzSW5zdGFuY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTgzOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0ZXN0cyB0byBy
ZWZsZWN0IHRoZSBjaGFuZ2VzIHRvIGluc3RhbmNlb2YgaW4gRVM2LgorCisgICAgICAgIEFkZGVk
IGEgbmV3IHJlZ3Jlc3Npb24gdGVzdCBmb3IgYm91bmQgZnVuY3Rpb25zIGluIGluc3RhbmNlb2YK
KyAgICAgICAgYXMgdGhlIHBlcmZvbWFuY2Ugb24gYm91bmQgZnVuY3Rpb25zIHNob3VsZCwgdG8g
c29tZSBkZWdyZWUsCisgICAgICAgIHJlZmxlY3QgdGhlIHBlcmZvcm1hbmNlIG9uIEMtQVBJIHVz
ZXJzLgorCisgICAgICAgICoganMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGpzL2V4Y2VwdGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBqcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQ6CisgICAgICAg
ICoganMvaW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMv
cmVncmVzcy9pbnN0YW5jZW9mLWJvdW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
anMvcmVncmVzcy9pbnN0YW5jZW9mLWJvdW5kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2luc3RhbmNlb2YtYm91bmQuanM6IEFkZGVkLgorICAgICAgICAo
Q29uc3RydWN0b3IpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3Rz
L09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzOgorCiAyMDE1LTExLTEwICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yY2UgZGlzcGxheTogYmxvY2sgb24g
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CmluZGV4IGNhZTIxOWJhZjkyYjU5
NTBiZTc3Zjk0NTdkYTAyY2M1MTk2N2Y5ODMuLjdmNWRlNWY4MjI3OGZiNzE5OGE4OTI5MTYyMjUx
MmUzZTBlMjhkYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9w
ZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3du
UHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKQEAgLTYxLDcgKzYxLDcgQEAgUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKEVycm9yKSBpcyBbJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlw
ZSddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRXJyb3IucHJvdG90eXBlKSBpcyBb
J2NvbnN0cnVjdG9yJywgJ21lc3NhZ2UnLCAnbmFtZScsICd0b1N0cmluZyddCiBQQVNTIGdldFNv
cnRlZE93blByb3BlcnR5TmFtZXMoTWF0aCkgaXMgWydFJywnTE4xMCcsJ0xOMicsJ0xPRzEwRScs
J0xPRzJFJywnUEknLCdTUVJUMV8yJywnU1FSVDInLCdhYnMnLCdhY29zJywnYWNvc2gnLCdhc2lu
JywnYXNpbmgnLCdhdGFuJywnYXRhbjInLCdhdGFuaCcsJ2NicnQnLCdjZWlsJywnY2x6MzInLCdj
b3MnLCdjb3NoJywnZXhwJywnZXhwbTEnLCdmbG9vcicsJ2Zyb3VuZCcsJ2h5cG90JywnaW11bCcs
J2xvZycsJ2xvZzEwJywnbG9nMXAnLCdsb2cyJywnbWF4JywnbWluJywncG93JywncmFuZG9tJywn
cm91bmQnLCdzaWduJywnc2luJywnc2luaCcsJ3NxcnQnLCd0YW4nLCd0YW5oJywndHJ1bmMnXQog
UEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEpTT04pIGlzIFsncGFyc2UnLCAnc3RyaW5n
aWZ5J10KLVBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTeW1ib2wpIGlzIFsnZm9yJywg
J2l0ZXJhdG9yJywgJ2tleUZvcicsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnLCAndG9T
dHJpbmdUYWcnLCAndW5zY29wYWJsZXMnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KFN5bWJvbCkgaXMgWydmb3InLCAnaGFzSW5zdGFuY2UnLCAnaXRlcmF0b3InLCAna2V5Rm9yJywg
J2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZScsICd0b1N0cmluZ1RhZycsICd1bnNjb3BhYmxl
cyddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3ltYm9sLnByb3RvdHlwZSkgaXMg
Wydjb25zdHJ1Y3RvcicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10KIFBBU1MgZ2xvYmFsUHJvcGVy
dHlOYW1lcy5pbmRleE9mKCdOYU4nKSAhPSAtMSBpcyB0cnVlCiBQQVNTIGdsb2JhbFByb3BlcnR5
TmFtZXMuaW5kZXhPZignSW5maW5pdHknKSAhPSAtMSBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9leGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9leGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBlY3RlZC50eHQKaW5kZXggOWY5YWU2
OWM4NmNlOWYwZWFhNzEwZmYwYTZhMGQ1NTNhMThlMGEyYy4uNzc0ZDIyN2QwMzVhZGYxN2YzYmNl
MDk4MDUxMWYyZTMyZTQyNzVlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9u
LWZvci1ub25vYmplY3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlv
bi1mb3Itbm9ub2JqZWN0LWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUKIAogCiBQQVNTIG5ldyB7fS51bmRlZmluZWQgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcg
e30udW5kZWZpbmVkJykuCi1QQVNTIDEgaW5zdGFuY2VvZiB7fS51bmRlZmluZWQgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjoge30udW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVh
dGluZyAnMSBpbnN0YW5jZW9mIHt9LnVuZGVmaW5lZCcpLgorUEFTUyAxIGluc3RhbmNlb2Yge30u
dW5kZWZpbmVkIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBp
bnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlv
bi1pbnN0YW5jZW9mLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1pbnN0
YW5jZW9mLWV4cGVjdGVkLnR4dAppbmRleCBlZDY4YjZjYzhhMDdhNWE3NTI5NTk1NzNlMzNlMTg1
YWVhMzE5NWI2Li4wZWZkN2E4NmUwOWM0NzAwZDRjZDFkNjhlZDI5OWZmZmE4MzI3Yzk1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0CkBA
IC0zLDExICszLDExIEBAIFRlc3QgZm9yIGVycm9yIG1lc3NhZ2VzIGZvciBpbnN0YW5jZW9mCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyAnaW5zdGFuY2VvZicgaW5zdGFuY2Vv
ZiAgICAnaW5zdGFuY2VvZicgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogImluc3RhbmNlb2Yi
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnJ2luc3RhbmNlb2YnIGluc3RhbmNlb2Yg
ICAgJ2luc3RhbmNlb2YnJykuCi1QQVNTIDIwIGluc3RhbmNlb2YgICAgICdoZWxsbycgICB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiAnaGVsbG8nIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVh
dGluZyAnMjAgaW5zdGFuY2VvZiAgICAgJ2hlbGxvJycpLgorUEFTUyAnaW5zdGFuY2VvZicgaW5z
dGFuY2VvZiAgICAnaW5zdGFuY2VvZicgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQg
aGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KK1BBU1MgMjAgaW5zdGFu
Y2VvZiAgICAgJ2hlbGxvJyAgIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQg
c2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCiBQQVNTIDIwIGluc3RhbmNlb2Yg
ICAgIHt9ICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjoge30gaXMgbm90IGEgZnVuY3Rpb24u
IChldmFsdWF0aW5nICcyMCBpbnN0YW5jZW9mICAgICB7fScpLgotUEFTUyAyMCBpbnN0YW5jZW9m
ICAgICB7fS5mb28gIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHt9LmZvbyBpcyBub3QgYSBm
dW5jdGlvbi4gKGV2YWx1YXRpbmcgJzIwIGluc3RhbmNlb2YgICAgIHt9LmZvbycpLgotUEFTUyAy
MCBpbnN0YW5jZW9mICAgICB0cnVlICAgICAgIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHRy
dWUgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcyMCBpbnN0YW5jZW9mICAgICB0cnVl
JykuCitQQVNTIDIwIGluc3RhbmNlb2YgICAgIHt9LmZvbyAgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KK1BB
U1MgMjAgaW5zdGFuY2VvZiAgICAgdHJ1ZSAgICAgICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9pbnN0YW5jZS1vZi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL2luc3RhbmNlLW9mLWltbWVkaWF0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDExMDBk
YjhhYjdiYzlhZGMwZTZlNGZiNmQxMWVkOTVhNmNlYzhkOTUuLmU2ZWZjNmE1NzExNWZkZjgwOTQ0
ZDE1M2M2YWZkZGEyMjZkYjY0NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2luc3RhbmNl
LW9mLWltbWVkaWF0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2luc3RhbmNl
LW9mLWltbWVkaWF0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zLDkgKzMsOSBAQCBUaGlzIHRlc3QgbWFr
ZXMgc3VyZSB0aGF0IGluc3RhbmNlIG9mIGJlaGF2ZXMgY29ycmVjdGx5IHdoZW4gdGhlIHZhbHVl
LCBjb25zdHJ1YwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgKDEgaW5zdGFu
Y2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAxIGlzIG5vdCBhIGZ1bmN0aW9uLiAo
ZXZhbHVhdGluZyAnMSBpbnN0YW5jZW9mIDEnKS4KLVBBU1MgKHt9IGluc3RhbmNlb2YgMSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogMSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcg
J3t9IGluc3RhbmNlb2YgMScpLgotUEFTUyAob2JqIGluc3RhbmNlb2YgMSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogMSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJ29iaiBpbnN0
YW5jZW9mIDEnKS4KK1BBU1MgKDEgaW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgorUEFT
UyAoe30gaW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5k
IHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgorUEFTUyAob2JqIGluc3RhbmNl
b2YgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3Rh
bmNlb2YgaXMgbm90IGFuIG9iamVjdC4KIFBBU1MgKDEgaW5zdGFuY2VvZiB7fSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjoge30gaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcxIGlu
c3RhbmNlb2Yge30nKS4KIFBBU1MgKHt9IGluc3RhbmNlb2Yge30pIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IHt9IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAne30gaW5zdGFuY2Vv
ZiB7fScpLgogUEFTUyAob2JqIGluc3RhbmNlb2Yge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IHt9IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnb2JqIGluc3RhbmNlb2Yge30n
KS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91bmQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4MmJjYmViOTlkNGY1YjFjMjQ4ODk3OGI2NDkzMDM5ZWQ4
ZTZlYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNl
b2YtYm91bmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9pbnN0YW5j
ZW9mLWJvdW5kCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2Vw
dGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91
bmQuaHRtbCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY1MTIwNjRjNWI2ZTdmN2Q5M2VjMjEzZDZlNDE2YjJjMTBkNGJlNDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91bmQuaHRt
bApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9pbnN0YW5jZW9mLWJvdW5kLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2luc3Rh
bmNlb2YtYm91bmQuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9pbnN0
YW5jZW9mLWJvdW5kLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkZjhlNTM1ZTU1NjhkNTVmNDgzMmEzNWI1MTBl
YjJkYjdmMDU1MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9pbnN0YW5jZW9mLWJvdW5kLmpzCkBAIC0wLDAgKzEsMzAgQEAKKy8vIFRoaXMg
dGVzdHMgdGhhdCB3ZSBkbyBub3QgY29uc3RhbnRseSBPU1Igb24gaW5zdGFuY2VvZiB3aGVyZSB0
aGUgUkhTIGlzIGEgYm91bmQgZnVuY3Rpb24uCisvLyBXaGlsZSB0aGlzIGJvdW5kIGZ1bmN0aW9u
cyBhcmUgdW5saWtlbHkgdG8gYmUgcGFzc2VkIHRvIGluc3RhbmNlb2Ygb2Z0ZW4gQy1BUEkgdXNl
cnMgdXNlCisvLyB0aGUgc2FtZSBtZXRob2Qgb2Ygb3ZlcnJpZGluZyBpbnN0YW5jZW9mIGV4cHJl
c3Npb25zLgorCisKK2Z1bmN0aW9uIENvbnN0cnVjdG9yKHgpIHsKKyAgICB0aGlzLnggPSB4Owor
fQorCitDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSB7fQorCitCb3VuZENvbnN0cnVjdG9yID0gQ29u
c3RydWN0b3IuYmluZCgpOworZm9vID0gbmV3IENvbnN0cnVjdG9yKDEpOworYmFyID0gbmV3IEJv
dW5kQ29uc3RydWN0b3IoMSk7CisKK2kgPSAwOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBp
ZiAoIShmb28gaW5zdGFuY2VvZiBCb3VuZENvbnN0cnVjdG9yKSkgeworICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoImZvbyBzaG91bGQgYmUgYW4gaW5zdGFuY2VvZiBCb3VuZENvbnN0cnVjdG9yIik7
CisgICAgfQorICAgIGxldCBqID0gMDsKKyAgICBmb3IgKDtqIDwgMTAwMDsgaisrKSB7fQorICAg
IHJldHVybiBqOworfQorbm9JbmxpbmUodGVzdCk7CisKK2ZvciAoaSA9IDA7IGkgPCA1MDAwMDsg
aSsrKQorICAgIHRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwppbmRleCBjYjVlYzI0ZmFmOTA3Zjgw
MjM3OTg1ZjhjOGFjZTgzOGRkNjhlMDg5Li43NGJjYjc4YTUyMGM4YzcwZmRkZTg2NDA3NjgxODJj
MDcyMzY1M2E2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0
LWdldE93blByb3BlcnR5TmFtZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCkBAIC03MCw3ICs3MCw3IEBAIHZhciBleHBl
Y3RlZFByb3BlcnR5TmFtZXNTZXQgPSB7CiAgICAgIkVycm9yLnByb3RvdHlwZSI6ICJbJ2NvbnN0
cnVjdG9yJywgJ21lc3NhZ2UnLCAnbmFtZScsICd0b1N0cmluZyddIiwKICAgICAiTWF0aCI6ICJb
J0UnLCdMTjEwJywnTE4yJywnTE9HMTBFJywnTE9HMkUnLCdQSScsJ1NRUlQxXzInLCdTUVJUMics
J2FicycsJ2Fjb3MnLCdhY29zaCcsJ2FzaW4nLCdhc2luaCcsJ2F0YW4nLCdhdGFuMicsJ2F0YW5o
JywnY2JydCcsJ2NlaWwnLCdjbHozMicsJ2NvcycsJ2Nvc2gnLCdleHAnLCdleHBtMScsJ2Zsb29y
JywnZnJvdW5kJywnaHlwb3QnLCdpbXVsJywnbG9nJywnbG9nMTAnLCdsb2cxcCcsJ2xvZzInLCdt
YXgnLCdtaW4nLCdwb3cnLCdyYW5kb20nLCdyb3VuZCcsJ3NpZ24nLCdzaW4nLCdzaW5oJywnc3Fy
dCcsJ3RhbicsJ3RhbmgnLCd0cnVuYyddIiwKICAgICAiSlNPTiI6ICJbJ3BhcnNlJywgJ3N0cmlu
Z2lmeSddIiwKLSAgICAiU3ltYm9sIjogIlsnZm9yJywgJ2l0ZXJhdG9yJywgJ2tleUZvcicsICds
ZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnLCAndG9TdHJpbmdUYWcnLCAndW5zY29wYWJsZXMn
XSIsCisgICAgIlN5bWJvbCI6ICJbJ2ZvcicsICdoYXNJbnN0YW5jZScsICdpdGVyYXRvcicsICdr
ZXlGb3InLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3RyaW5nVGFnJywgJ3Vu
c2NvcGFibGVzJ10iLAogICAgICJTeW1ib2wucHJvdG90eXBlIjogIlsnY29uc3RydWN0b3InLCAn
dG9TdHJpbmcnLCAndmFsdWVPZiddIgogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266830</attachid>
            <date>2015-12-07 16:26:27 -0800</date>
            <delta_ts>2015-12-07 16:48:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151839-20151207162558.patch</filename>
            <type>text/plain</type>
            <size>114514</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YzE5MjRjZGM0MmU0YWNjYTY3ZDlmNjc4MDU4OGQ2YzE4M2Y4YjI3Li5hYjMzMThkMTBiMTFiMTEz
NjBiZjJjNTcxZjA2ZDJkY2NkM2FhZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNTQgQEAKKzIwMTUtMTItMDcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0g
U3RpbGwgbmVlZCB0byBkbyAzMi1iaXQsIGFkZCB0ZXN0cywgYW5kIGNsZWFudXAgYnV0IHNob3Vs
ZCBiZSByb3VnaGx5IGRvbmUuCisgICAgICAgIEJlbmNobWFya3MgaW5kaWNhdGUgbm8gcGVyZm9y
bWFuY2UgcmVncmVzc2lvbnMgZnJvbSB0aGVzZSBjaGFuZ2VzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBzdXBwb3J0IGZvciBTeW1ib2wuaGFzSW5zdGFuY2UsIHVuZm9ydHVuYXRlbHkgaW4g
b3JkZXIgdG8gcHJldmVudAorICAgICAgICByZWdyZXNzaW9ucyBzZXZlcmFsIG5ldyBieXRlY29k
ZXMgYW5kIERGRyBJUiBub2RlcyB3ZXJlIG5lY2Vzc2FyeS4gQmVmb3JlLCBTeW1ib2wuaGFzSW5z
dGFuY2UKKyAgICAgICAgd2hlbiBleGVjdXRpbmcgYW4gaW5zdGFuY2VvZiBleHByZXNzaW9uIHdl
IHdvdWxkIGVtaXQgdGhyZWUgYnl0ZWNvZGVzOiBjaGVja19oYXNfaW5zdGFuY2UsIGdldF9ieV9p
ZCwKKyAgICAgICAgdGhlbiBpbnN0YW5jZW9mLiBBcyB0aGUgc3BlYyBoYXMgY2hhbmdlZCwgd2Ug
ZW1pdCBhIG1vcmUgY29tcGxpY2F0ZWQgc2V0IG9mIGJ5dGVjb2RlcyBpbiBhZGRpdGlvbiB0byBz
b21lCisgICAgICAgIG5ldyBvbmVzLiBGaXJzdCB0aGUgcm9sZSBvZiBjaGVja19oYXNfaW5zdGFu
Y2UgYW5kIGl0cyBjb3JyZXNwb25kaW5nIERGRyBub2RlIGhhdmUgY2hhbmdlZC4gTm93IGl0IHJl
dHVybnMKKyAgICAgICAgYSBqcy1ib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgUkhTIG9m
IHRoZSBpbnN0YW5jZW9mIGV4cHJlc3Npb24gKGZyb20gaGVyZSBvbiBjYWxsZWQgdGhlIGNvbnN0
cnVjdG9yIGZvciBzaW1wbGljaXR5KQorICAgICAgICBuZWVkcyBub24tZGVmYXVsdCBiZWhhdmlv
ciBmb3IgcmVzb2x2aW5nIHRoZSBleHByZXNzaW9uLiBpLmUuIFRoZSBjb25zdHJ1Y3RvciBoYXMg
YSBTeW1ib2wuaGFzSW5zdGFuY2UgdGhhdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBvbgorICAgICAg
ICBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSBvciBpcyBhIGJvdW5kL0Mt
QVBJIGZ1bmN0aW9uLiBPbmNlIHdlIGdldCB0byB0aGUgREZHIHRoaXMgbm9kZSBpcyBnZW5lcmFs
bHkgZWxpbWluYXRlZCBhcworICAgICAgICB3ZSBjYW4gcHJvdmUgdGhlIHZhbHVlIG9mIFN5bWJv
bC5oYXNJbnN0YW5jZSBpcyBhIGNvbnN0YW50LiBUaGUgc2Vjb25kIG5ldyBieXRlY29kZSBpcyBp
bnN0YW5jZW9mX2N1c3RvbS4gaW5zbnRhbmNlb2ZfY3VzdG9tLCBqdXN0CisgICAgICAgIGVtaXRz
IGEgY2FsbCB0byBzbG93IHBhdGggY29kZSB0aGF0IGNvbXB1dGVzIHRoZSByZXN1bHQuCisKKyAg
ICAgICAgSW4gdGhlIERGRywgdGhlcmUgaXMgYWxzbyBhIG5ldyBub2RlLCBDaGVja1R5cGVJbmZv
LCB3aGljaCBjaGVja3MgdGhlIHR5cGUgaW5mbyBmbGFncyBhcmUgY29uc2lzdGVudCB3aXRoIHRo
ZSBvbmVzIHByb3ZpZGVkIGFuZAorICAgICAgICBPU1IgZXhpdHMgaWYgdGhlIGZsYWdzIGFyZSBu
b3QuIEFkZGl0aW9uYWxseSwgd2UgYXR0ZW1wdCB0byBwcm92ZSB0aGF0IHRoZSByZXN1bHQgb2Yg
Q2hlY2tIYXNJbnN0YW5jZSB3aWxsIGJlIGEgY29uc3RhbnQgYW5kIHRyYW5zZm9ybQorICAgICAg
ICBpdCBpbnRvIGEgQ2hlY2tUeXBlSW5mbyBmb2xsb3dlZCBieSBhIEpTQ29uc3RhbnQuCisKKyAg
ICAgICAgKiBidWlsdGlucy9GdW5jdGlvbi5wcm90b3R5cGUuanM6CisgICAgICAgIChzeW1ib2xI
YXNJbnN0YW5jZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcDoK
KyAgICAgICAgKEpTQzo6aXNCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5
dGVjb2RlTGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6Cisg
ICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlND
Ojpjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2luZFRvU3Ry
aW5nKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHA6CisgICAgICAgIChKU0M6OmdldEp1bXBUYXJnZXRzRm9y
Qnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2hl
Y2tIYXNJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SW5z
dGFuY2VPZkN1c3RvbSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SXNG
dW5jdGlvbik6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6Cisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6Oklu
c3RhbmNlT2ZOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0
ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6
cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6
ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdE
b2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9k
ZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnBy
aW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uaDoKKyAgICAgICAg
KiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0NlbGxPcGVyYW5k
KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNUeXBlSW5mb09wZXJhbmQpOgorICAgICAg
ICAoSlNDOjpERkc6Ok5vZGU6OnR5cGVJbmZvT3BlcmFuZCk6CisgICAgICAgICogZGZnL0RGR05v
ZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFn
YXRlKToKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpE
Rkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja1R5cGVJbmZv
RmxhZ3MpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFu
Y2VPZkN1c3RvbSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAg
KiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxl
KToKKyAgICAgICAgKiBmdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oOgorICAgICAgICAqIGZ0
bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVDaGVja0hhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlSW5zdGFuY2VPZkN1c3RvbSk6Cisg
ICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVN
YWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgor
ICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NoZWNrX2hhc19pbnN0YW5jZSk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2luc3RhbmNlb2ZfY3VzdG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2pl
cV9udWxsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mX2N1c3RvbSk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfY2hlY2tfaGFzX2luc3RhbmNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2NoZWNrX2hhc19pbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0
YW5jZW9mX2N1c3RvbSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2Vv
Zl9jdXN0b20pOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0
YW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pTSW50ZXJmYWNlSklULmg6
CisgICAgICAgIChKU0M6OkpTSW50ZXJmYWNlSklUOjplbWl0SnVtcElmTnVsbCk6CisgICAgICAg
ICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZv
cm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAg
ICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogbGxpbnQv
TExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OmludmFsaWRQYXJhbWV0ZXJJbnN0YW5j
ZW9mU291cmNlQXBwZW5kZXIpOgorICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5zdGFu
Y2VvZk5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOgorICAgICAgICAoSlNDOjppbnZhbGlkUGFy
YW1ldGVySW5zdGFuY2VvZkhhc0luc3RhbmNlU3ltYm9sTm90RnVuY3Rpb25Tb3VyY2VBcHBlbmRl
cik6CisgICAgICAgIChKU0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JO
b3RGdW5jdGlvbik6CisgICAgICAgIChKU0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1l
dGVyRXJyb3JIYXNJbnN0YW5jZVN5bWJvbE5vdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6Y3Jl
YXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlv
blByb3BlcnRpZXMpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmlzQm91
bmRGdW5jdGlvbik6CisgICAgICAgIChKU0M6Omhhc0luc3RhbmNlQm91bmRGdW5jdGlvbik6Cisg
ICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRp
bWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6aGFzSW5zdGFuY2UpOgor
ICAgICAgICAoSlNDOjpvYmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1dyaXRlQmFycmllci5oOgorICAg
ICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+OjpzbG90KToKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3Mvc3ltYm9sLWhhc0luc3RhbmNlLmpzOiBBZGRlZC4KKyAgICAgICAgKENvbnN0
cnVjdG9yKToKKyAgICAgICAgKHZhbHVlKToKKyAgICAgICAgKE9iamVjdENsYXNzLlN5bWJvbC5o
YXNJbnN0YW5jZSk6CisgICAgICAgIChOdW1iZXJDbGFzcy5TeW1ib2wuaGFzSW5zdGFuY2UpOgor
CiAyMDE1LTEyLTA3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFVwZGF0ZSBKU0MgZmVhdHVyZSBsaXN0IGZvciByZXN0IHBhcmFtZXRlcnMgYW5kIGdlbmVyYXRv
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlvblBy
b3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlvblByb3Rv
dHlwZS5qcwppbmRleCAxYWEwMjQyMmIxODA0ZWVmYzAzNmY1NWNhMWUyNWVhN2ZjMTMwZjJkLi4z
NjRiYzQzMjg4MjU4NDMxZTBiNmI2YmQxMjMzNjYxOWJkYWMwNTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpzCkBAIC0zNiwz
ICszNiwxOCBAQCBmdW5jdGlvbiBhcHBseSh0aGlzVmFsdWUsIGFyZ3VtZW50VmFsdWVzKQogCiAg
ICAgcmV0dXJuIHRoaXMuQGFwcGx5KHRoaXNWYWx1ZSwgYXJndW1lbnRWYWx1ZXMpOwogfQorCisv
LyBGSVhNRTogdGhpcyBzaG91bGQgaGF2ZSBhIGRpZmZlcmVudCBuYW1lOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzYzCitmdW5jdGlvbiBzeW1ib2xIYXNJbnN0
YW5jZSh2YWx1ZSkKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICBpZiAodHlwZW9mIHRoaXMg
IT09ICJmdW5jdGlvbiIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChAaXNCb3Vu
ZEZ1bmN0aW9uKHRoaXMpKQorICAgICAgICByZXR1cm4gQGhhc0luc3RhbmNlQm91bmRGdW5jdGlv
bih0aGlzLCB2YWx1ZSk7CisKKyAgICBsZXQgdGFyZ2V0ID0gdGhpcy5wcm90b3R5cGU7CisgICAg
cmV0dXJuIEBpbnN0YW5jZU9mKHZhbHVlLCB0YXJnZXQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAppbmRleCA1OTYw
NjRjNDA2ODI0OTc4MDg5YzQ2NDNmMWMzZGZiZDA1MzRiOTlmLi5mMzI5ZDBiMGY4OTJkY2UwYjAz
OGVmMWUzZWM5YjAzZjQyY2VlYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcApAQCAtNTgsNyArNTgsNiBAQCBzdGF0
aWMgYm9vbCBpc0JyYW5jaChPcGNvZGVJRCBvcGNvZGVJRCkKICAgICBjYXNlIG9wX3N3aXRjaF9p
bW06CiAgICAgY2FzZSBvcF9zd2l0Y2hfY2hhcjoKICAgICBjYXNlIG9wX3N3aXRjaF9zdHJpbmc6
Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CiAgICAgY2FzZSBvcF9zYXZlOgogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCmluZGV4IDAzZjQ2YTkzZDBmMjc4Yjk4Nzll
YWQwZmZkZTlmY2MyYzBiMWRjYzEuLjdkOGM3OGIwOTZiZWQwMDNlNmYwZTVlYzhiM2FiODIzOTYw
Y2Y3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZUxpc3QuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0Lmpzb24KQEAgLTQ1LDggKzQ1LDkgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2Jp
dGFuZCIsICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfYml0eG9y
IiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9iaXRvciIsICJs
ZW5ndGgiIDogNSB9LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfY2hlY2tfaGFzX2luc3Rh
bmNlIiwgImxlbmd0aCIgOiA1IH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9jaGVja19o
YXNfaW5zdGFuY2UiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9w
X2luc3RhbmNlb2YiLCAibGVuZ3RoIiA6IDQgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9w
X2luc3RhbmNlb2ZfY3VzdG9tIiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF90eXBlb2YiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDog
Im9wX2lzX3VuZGVmaW5lZCIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfaXNfYm9vbGVhbiIsICJsZW5ndGgiIDogMyB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCBjNmU5ZGZhMGM3NmRhOTk3Y2Iw
MzIwODEwNzkxMTIwOTBiMjQ2YWEyLi5lZTUzZDdlMzE2ZWIyYWYzMTA2ODcyNDljN2U5NGRhNGY3
MTc4NzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaApAQCAtMTcwLDcgKzE3MCw2IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9m
ZnNldCgKICAgICBjYXNlIG9wX2dldF9ieV92YWw6CiAgICAgY2FzZSBvcF9pbjoKICAgICBjYXNl
IG9wX2luc3RhbmNlb2Y6Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CiAgICAgY2Fz
ZSBvcF9hZGQ6CiAgICAgY2FzZSBvcF9tdWw6CiAgICAgY2FzZSBvcF9kaXY6CkBAIC0xOTYsNiAr
MTk1LDggQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgICAgICBmdW5j
dG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2lu
c3RhbmNlOgorICAgIGNhc2Ugb3BfaW5zdGFuY2VvZl9jdXN0b206CiAgICAgY2FzZSBvcF9oYXNf
c3RydWN0dXJlX3Byb3BlcnR5OgogICAgIGNhc2Ugb3BfY29uc3RydWN0X3ZhcmFyZ3M6CiAgICAg
Y2FzZSBvcF9jYWxsX3ZhcmFyZ3M6CkBAIC0zNTMsNiArMzU0LDcgQEAgdm9pZCBjb21wdXRlRGVm
c0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUJhc2ljQmxv
Y2sqIGJsb2MKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CiAgICAgY2FzZSBvcF9jaGVj
a19oYXNfaW5zdGFuY2U6CiAgICAgY2FzZSBvcF9pbnN0YW5jZW9mOgorICAgIGNhc2Ugb3BfaW5z
dGFuY2VvZl9jdXN0b206CiAgICAgY2FzZSBvcF9nZXRfYnlfdmFsOgogICAgIGNhc2Ugb3BfdHlw
ZW9mOgogICAgIGNhc2Ugb3BfaXNfdW5kZWZpbmVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCBhMzkwYzYwOWZjZGRhZmFkMjAyYWQxMjhmOWVh
YzFiZWViYWRiNDA2Li4xMDg0OWIwMjVjYTEwMzliNTM2ZmM2ODUwZDhjMDE4YTllNGM1MDE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMTAy
Miw5ICsxMDIyLDggQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAgICAg
IGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQp
LT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKLSAg
ICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIHBy
aW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImNoZWNrX2hhc19pbnN0
YW5jZSIpOwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcywgJWQoLT4lZCkiLCBy
ZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShyMikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAg
IG91dC5wcmludGYoIiVzLCAlcywgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewpAQCAtMTAz
NSw2ICsxMDM0LDE1IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAg
ICBvdXQucHJpbnRmKCIlcywgJXMsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOiB7
CisgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGlu
dCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51
Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgcjMgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAg
ICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImluc3Rh
bmNlb2ZfY3VzdG9tIik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzLCAlcyIs
IHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKHIyKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMykuZGF0YSgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdW5zaWduZWQ6IHsKICAgICAgICAg
ICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInVuc2lnbmVkIik7CiAg
ICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9FeGl0S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtp
bmQuY3BwCmluZGV4IDI1MjQzMDBmNzMzNzY5ZWQ5YmUwMDFkNzY2MGYzNjg1OWI2ZDg5MDYuLjMw
YzVlNjQxYTc5NjY2ODJkY2JiNzcwNDJmNTMwYWYzNDI1MTMxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcApAQCAtNTAsNiArNTAsOCBAQCBjb25zdCBj
aGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtpbmQpCiAgICAgICAgIHJldHVybiAiQmFk
Q29uc3RhbnRDYWNoZSI7CiAgICAgY2FzZSBCYWRJbmRleGluZ1R5cGU6CiAgICAgICAgIHJldHVy
biAiQmFkSW5kZXhpbmdUeXBlIjsKKyAgICBjYXNlIEJhZFR5cGVJbmZvRmxhZ3M6CisgICAgICAg
IHJldHVybiAiQmFkVHlwZUluZm9GbGFncyI7CiAgICAgY2FzZSBPdmVyZmxvdzoKICAgICAgICAg
cmV0dXJuICJPdmVyZmxvdyI7CiAgICAgY2FzZSBOZWdhdGl2ZVplcm86CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCmluZGV4IDZmOGM1MTIwMDcwMDUwNWJmOTFkZWY3
NDkwMDNlMzAwNWUzZjcxODYuLjcwMGQzODgxZjQxNzI4MjFhZjg5N2VjY2Q1ZTllYThmNzUzNTE0
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCkBAIC0zNyw2
ICszNyw3IEBAIGVudW0gRXhpdEtpbmQgOiB1aW50OF90IHsKICAgICBCYWRDYWNoZSwgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2UgYW4gaW5saW5lIGNhY2hlIHdhcyB3cm9uZy4KICAgICBCYWRDb25zdGFu
dENhY2hlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIGNhY2hlIG9uIGEgd2VhayBjb25zdGFudCAo
dXN1YWxseSBhIHByb3RvdHlwZSkgd2FzIHdyb25nLgogICAgIEJhZEluZGV4aW5nVHlwZSwgLy8g
V2UgZXhpdGVkIGJlY2F1c2UgYW4gaW5kZXhpbmcgdHlwZSB3YXMgd3JvbmcuCisgICAgQmFkVHlw
ZUluZm9GbGFncywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNz
dW1wdGlvbiBhYm91dCB3aGF0IFR5cGVJbmZvIGZsYWdzIHdlIHdvdWxkIHNlZS4KICAgICBPdmVy
ZmxvdywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugb2Ygb3ZlcmZsb3cuCiAgICAgTmVnYXRpdmVaZXJv
LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBlbmNvdW50ZXJlZCBuZWdhdGl2ZSB6ZXJvLgogICAg
IEludDUyT3ZlcmZsb3csIC8vIFdlIGV4aXRlZCBiZWNhdXNlIG9mIGFuIEludDUyIG92ZXJmbG93
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1w
VGFyZ2V0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBU
YXJnZXRzLmNwcAppbmRleCAyYmJmMzEzNDQ1NmE5YWU1MmE2MTkyOGJjNGFlMDcxMzVlYTYxZTNj
Li5lMmNiMDAwNDgzNzk0YmE5MmQ1MTBkY2Y1ZmE5OTQ4ODVhMjNkYzNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcApA
QCAtNzQsOSArNzQsNiBAQCBzdGF0aWMgdm9pZCBnZXRKdW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zm
c2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBJbnRlcnByZXRlciogaQogICAgICAgICBvdXQuYXBw
ZW5kKGJ5dGVjb2RlT2Zmc2V0ICsgY3VycmVudFsyXS51Lm9wZXJhbmQpOwogICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6Ci0gICAgICAgIG91dC5h
cHBlbmQoYnl0ZWNvZGVPZmZzZXQgKyBjdXJyZW50WzRdLnUub3BlcmFuZCk7Ci0gICAgICAgIGJy
ZWFrOwogICAgIGNhc2Ugb3BfbG9vcF9oaW50OgogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVjb2Rl
T2Zmc2V0KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDM3MmM3NGM2NmZj
NGRmYTg2YjNiMzllOTc4OWVmN2Y3ZTcxMDk0ZmQuLmMxN2NmMjFhNDliZDI1NjhlMTBmOGU2Yzg2
YTMyOTE1OTQzNDQ5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0yMDA5LDE0ICsyMDA5LDEzIEBA
IHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmNyZWF0ZVZhcmlhYmxlKAogICAgIH0KIH0KIAotdm9p
ZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNrSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0
LCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCogYmFzZSwgTGFiZWwqIHRhcmdldCkKK1Jl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2hlY2tIYXNJbnN0YW5jZShSZWdpc3Rl
cklEKiBkc3QsIFJlZ2lzdGVySUQqIGNvbnN0cnVjdG9yLCBSZWdpc3RlcklEKiBoYXNJbnN0YW5j
ZVN5bWJvbCkKIHsKLSAgICBzaXplX3QgYmVnaW4gPSBpbnN0cnVjdGlvbnMoKS5zaXplKCk7CiAg
ICAgZW1pdE9wY29kZShvcF9jaGVja19oYXNfaW5zdGFuY2UpOwogICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZChkc3QtPmluZGV4KCkpOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh2YWx1ZS0+
aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGJhc2UtPmluZGV4KCkpOwotICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQtPmJpbmQoYmVnaW4sIGluc3RydWN0aW9ucygp
LnNpemUoKSkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjb25zdHJ1Y3Rvci0+aW5kZXgo
KSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGhhc0luc3RhbmNlU3ltYm9sLT5pbmRleCgp
KTsKKyAgICByZXR1cm4gZHN0OwogfQogCiAvLyBJbmRpY2F0ZXMgdGhlIGxlYXN0IHVwcGVyIGJv
dW5kIG9mIHJlc29sdmUgdHlwZSBiYXNlZCBvbiBsb2NhbCBzY29wZS4gVGhlIGJ5dGVjb2RlIGxp
bmtlcgpAQCAtMjE4Myw2ICsyMTgyLDE2IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0SW5zdGFuY2VPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlCiAgICAg
cmV0dXJuIGRzdDsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJbnN0
YW5jZU9mQ3VzdG9tKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVy
SUQqIGNvbnN0cnVjdG9yLCBSZWdpc3RlcklEKiBoYXNJbnN0YW5jZVN5bWJvbCkKK3sKKyAgICBl
bWl0T3Bjb2RlKG9wX2luc3RhbmNlb2ZfY3VzdG9tKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoZHN0LT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodmFsdWUtPmluZGV4
KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjb25zdHJ1Y3Rvci0+aW5kZXgoKSk7Cisg
ICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGhhc0luc3RhbmNlU3ltYm9sLT5pbmRleCgpKTsKKyAg
ICByZXR1cm4gZHN0OworfQorCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdl
dEJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eSkKIHsKICAgICBtX2NvZGVCbG9jay0+YWRkUHJvcGVydHlBY2Nlc3NJbnN0cnVj
dGlvbihpbnN0cnVjdGlvbnMoKS5zaXplKCkpOwpAQCAtMzg0Myw2ICszODUyLDE0IEBAIFJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SXNPYmplY3QoUmVnaXN0ZXJJRCogZHN0LCBS
ZWdpc3RlcklEKiBzcmMpCiAgICAgcmV0dXJuIGRzdDsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRJc0Z1bmN0aW9uKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCog
c3JjKQoreworICAgIGVtaXRPcGNvZGUob3BfaXNfZnVuY3Rpb24pOworICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChkc3QtPmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMt
PmluZGV4KCkpOworICAgIHJldHVybiBkc3Q7Cit9CisKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0SXNVbmRlZmluZWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMp
CiB7CiAgICAgZW1pdE9wY29kZShvcF9pc191bmRlZmluZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDNl
MTc4N2RkNjZmNDFhYWY3YzI0MTVkNzBlZGY4M2RjYzlhNzNiYjQuLjAwZTE2MDkzMjcxNTJmMWMx
ZDJhZmMxOTRiYTM0NzRlYTY4NWEzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTUxOSw4ICs1MTksOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEluYyhSZWdpc3RlcklE
KiBzcmNEc3QpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0RGVjKFJlZ2lzdGVySUQqIHNyY0Rz
dCk7CiAKLSAgICAgICAgdm9pZCBlbWl0Q2hlY2tIYXNJbnN0YW5jZShSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBiYXNlLCBMYWJlbCogdGFyZ2V0KTsKKyAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdENoZWNrSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBS
ZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VTeW1ib2wpOwog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW5zdGFuY2VPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lz
dGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBiYXNlUHJvdG90eXBlKTsKKyAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdEluc3RhbmNlT2ZDdXN0b20oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2
YWx1ZSwgUmVnaXN0ZXJJRCogY29uc3RydWN0b3IsIFJlZ2lzdGVySUQqIGhhc0luc3RhbmNlU3lt
Ym9sKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFR5cGVPZihSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdFVuYXJ5T3Aob3BfdHlwZW9mLCBkc3QsIHNyYyk7
IH0KICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEluKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogcHJvcGVydHksIFJlZ2lzdGVySUQqIGJhc2UpIHsgcmV0dXJuIGVtaXRCaW5hcnlPcChvcF9p
biwgZHN0LCBwcm9wZXJ0eSwgYmFzZSwgT3BlcmFuZFR5cGVzKCkpOyB9CiAKQEAgLTU5OSw2ICs2
MDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFRvSW5kZXhT
dHJpbmcoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBpbmRleCk7CiAKICAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdElzT2JqZWN0KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElzRnVuY3Rpb24oUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBzcmMpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SXNVbmRlZmluZWQoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpOwogICAgICAgICB2b2lkIGVtaXRSZXF1aXJlT2Jq
ZWN0Q29lcmNpYmxlKFJlZ2lzdGVySUQqIHZhbHVlLCBjb25zdCBTdHJpbmcmIGVycm9yKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwCmluZGV4IDk5NTYxYmM3ZWQ1ODhiNmY4MGQwZTljMWM2NjY1NDNkMTYzYTZlZGUuLjMwYzRi
ZTI3MzQxNjZhNTNkMWY4ZDBkNDQ2Mjc2ZmRlMWIwYjViMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE2MzMsMjIg
KzE2MzMsNDkgQEAgUmVnaXN0ZXJJRCogVGhyb3dhYmxlQmluYXJ5T3BOb2RlOjplbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmUKIAogUmVnaXN0ZXJJRCogSW5zdGFu
Y2VPZk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBkc3QpCiB7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzEgPSBnZW5lcmF0b3Iu
ZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9leHByMSwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBt
X2V4cHIyLT5pc1B1cmUoZ2VuZXJhdG9yKSk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzIg
PSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMik7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGhh
c0luc3RhbmNlU3ltYm9sID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOworICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBpc09iamVjdCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKyAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gaXNDdXN0b20gPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IHByb3RvdHlwZSA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsK
LSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gZHN0UmVnID0gZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRp
b24oZHN0LCBzcmMxLmdldCgpKTsKLSAgICBSZWZQdHI8TGFiZWw+IHRhcmdldCA9IGdlbmVyYXRv
ci5uZXdMYWJlbCgpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGdlbmVyYXRvci5l
bWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2V4cHIxLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1f
ZXhwcjItPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gY29uc3Ry
dWN0b3IgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMik7CisgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IGRzdFJlZyA9IGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgdmFsdWUuZ2V0KCkp
OworICAgIFJlZlB0cjxMYWJlbD4gY3VzdG9tID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAg
UmVmUHRyPExhYmVsPiBkb25lID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgUmVmUHRyPExh
YmVsPiB0eXBlRXJyb3IgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKIAogICAgIGdlbmVyYXRvci5l
bWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKLSAg
ICBnZW5lcmF0b3IuZW1pdENoZWNrSGFzSW5zdGFuY2UoZHN0UmVnLmdldCgpLCBzcmMxLmdldCgp
LCBzcmMyLmdldCgpLCB0YXJnZXQuZ2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0SXNPYmplY3Qo
aXNPYmplY3QuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdEp1
bXBJZkZhbHNlKGlzT2JqZWN0LmdldCgpLCB0eXBlRXJyb3IuZ2V0KCkpOwogCiAgICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkp
OwotICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIHNyYzIuZ2V0KCks
IGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUpOworICAgIGdlbmVyYXRv
ci5lbWl0R2V0QnlJZChoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSwgY29uc3RydWN0b3IuZ2V0KCks
IGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5jZVN5bWJvbCk7CiAKICAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2
b3RFbmQoKSk7Ci0gICAgUmVnaXN0ZXJJRCogcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRJbnN0YW5j
ZU9mKGRzdFJlZy5nZXQoKSwgc3JjMS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKLSAgICBnZW5l
cmF0b3IuZW1pdExhYmVsKHRhcmdldC5nZXQoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBn
ZW5lcmF0b3IuZW1pdENoZWNrSGFzSW5zdGFuY2UoaXNDdXN0b20uZ2V0KCksIGNvbnN0cnVjdG9y
LmdldCgpLCBoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4
cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2Vu
ZXJhdG9yLmVtaXRKdW1wSWZUcnVlKGlzQ3VzdG9tLmdldCgpLCBjdXN0b20uZ2V0KCkpOworCisg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRp
dm90RW5kKCkpOworICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIGNv
bnN0cnVjdG9yLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBl
KTsKKworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFy
dCgpLCBkaXZvdEVuZCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdEluc3RhbmNlT2YoZHN0UmVnLmdl
dCgpLCB2YWx1ZS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0
SnVtcChkb25lLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwodHlwZUVycm9yLmdl
dCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFRocm93VHlwZUVycm9yKCJSaWdodCBoYW5kIHNpZGUg
b2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0Iik7CisKKyAgICBnZW5lcmF0b3IuZW1pdExh
YmVsKGN1c3RvbS5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRp
dm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRJbnN0
YW5jZU9mQ3VzdG9tKGRzdFJlZy5nZXQoKSwgdmFsdWUuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgp
LCBoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGRv
bmUuZ2V0KCkpOworCisgICAgcmV0dXJuIGRzdFJlZy5nZXQoKTsKIH0KIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIExvZ2ljYWxPcE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDM2MTMxNzg3OWNjNzJiZjU0OThiZWIzOThi
ZGMwODVjNTY2NWMwNjcuLjU4ZTQ5ZjBkM2NkNjNjMDk5YThmNWFkZDA5MTcxYjQ3NzBjYTU1ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTI0NTQsMTEgKzI0NTQsMTYgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIENoZWNr
SGFzSW5zdGFuY2U6Ci0gICAgICAgIC8vIFNhZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZh
Y3QgdGhhdCB3ZSd2ZSBkb25lIENoZWNrSGFzSW5zdGFuY2UKKyAgICAgICAgZm9yTm9kZShub2Rl
KS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAg
ICBjYXNlIEluc3RhbmNlT2Y6Ci0gICAgICAgIC8vIEFnYWluLCBzYWRseSwgd2UgZG9uJ3QgcHJv
cGFnYXRlIHRoZSBmYWN0IHRoYXQgd2UndmUgZG9uZSBJbnN0YW5jZU9mCisgICAgICAgIC8vIFNh
ZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZhY3QgdGhhdCB3ZSd2ZSBkb25lIEluc3RhbmNl
T2YKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAgICAgIGNsb2JiZXJXb3Js
ZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CiAgICAgICAgIGZvck5vZGUo
bm9kZSkuc2V0VHlwZShTcGVjQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
CkBAIC0yNTE1LDYgKzI1MjAsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RT
dGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2Ug
Q291bnRFeGVjdXRpb246CiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKICAgICBjYXNlIENo
ZWNrVGllclVwQXRSZXR1cm46CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDb3B5UmVzdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNGEwZWQxMTI0Mzg5MzlkZDAwZWUxNDA1
NTkwNTQ3ZWQ3OGIwYWZhYi4uM2IzM2MwNjQzZDBhYTc5ZDRlZWJjYjMxYjEzYTU5OTlhYzhiYzll
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKQEAgLTM0OTcsOSArMzQ5NywxNSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2Nr
KHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY2hlY2tfdGR6KTsK
ICAgICAgICAgfQogCi0gICAgICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgotICAgICAg
ICAgICAgYWRkVG9HcmFwaChDaGVja0hhc0luc3RhbmNlLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7CisgICAgICAgIGNhc2Ugb3BfY2hlY2tf
aGFzX2luc3RhbmNlOiB7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBkZWZhdWx0SGFzSW5zdGFu
Y2VTeW1ib2xGdW5jdGlvbiA9IG1faW5saW5lU3RhY2tUb3AtPm1fY29kZUJsb2NrLT5nbG9iYWxP
YmplY3RGb3IoY3VycmVudENvZGVPcmlnaW4oKSktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5
bWJvbEZ1bmN0aW9uKCk7CisKKyAgICAgICAgICAgIE5vZGUqIGNvbnN0cnVjdG9yID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAg
ICAgICBOb2RlKiBoYXNJbnN0YW5jZVN5bWJvbCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworCisgICAgICAgICAgICBzZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKENoZWNr
SGFzSW5zdGFuY2UsIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZShkZWZhdWx0SGFzSW5zdGFuY2VTeW1i
b2xGdW5jdGlvbikpLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VTeW1ib2wpKTsKICAgICAgICAg
ICAgIE5FWFRfT1BDT0RFKG9wX2NoZWNrX2hhc19pbnN0YW5jZSk7CisgICAgICAgIH0KIAogICAg
ICAgICBjYXNlIG9wX2luc3RhbmNlb2Y6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CkBAIC0z
NTA3LDcgKzM1MTMsMTUgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25l
ZCBsaW1pdCkKICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoSW5zdGFuY2VPZiwgdmFsdWUsIHByb3RvdHlw
ZSkpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZik7CiAgICAgICAgIH0K
LSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZl9jdXN0b206IHsKKyAg
ICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBjb25zdHJ1Y3RvciA9IGdl
dChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworICAg
ICAgICAgICAgTm9kZSogaGFzSW5zdGFuY2VTeW1ib2wgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIHNldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoSW5z
dGFuY2VPZkN1c3RvbSwgdmFsdWUsIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVN5bWJvbCkpOwor
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZl9jdXN0b20pOworICAgICAgICB9
CisKICAgICAgICAgY2FzZSBvcF9pc191bmRlZmluZWQ6IHsKICAgICAgICAgICAgIE5vZGUqIHZh
bHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
KSk7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKElzVW5kZWZpbmVkLCB2YWx1ZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDFlMGNjMDgwNjI0
ZWUyNzJhMjZjOWIyZmFlZTc5NDhhOGI0ZTliODcuLjM4MjkwMmFkMzAxYzViMjE0OGYxMWUyNTkx
N2ZlZWMyMDYzMzdlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5jcHAKQEAgLTEzMCw2ICsxMzAsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0
eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1Ywog
ICAgIGNhc2Ugb3BfbW92OgogICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgogICAgIGNh
c2Ugb3BfaW5zdGFuY2VvZjoKKyAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOgogICAgIGNh
c2Ugb3BfaXNfdW5kZWZpbmVkOgogICAgIGNhc2Ugb3BfaXNfYm9vbGVhbjoKICAgICBjYXNlIG9w
X2lzX251bWJlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5k
ZXggNDE3ZDA2ZjcwMzliNGJiZmQyOGVhOWZmYzhmMTU4YzhlNDdlNjEwNy4uNTBjOWJiYTFiNzY3
MmE1NzE2YWYwNTU0ZjI5Yzk2YzYxMDZkOTI3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKQEAgLTcyOCw2ICs3MjgsMTEgQEAgdm9pZCBjbG9iYmVyaXplKEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdy
aXRlRnUKICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICByZXR1cm47
CiAKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKKyAgICAgICAgcmVhZChKU0NlbGxfdHlw
ZUluZm9GbGFncyk7CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQ2hlY2tUeXBlSW5mb0ZsYWdz
TG9jLCBKU0NlbGxfdHlwZUluZm9GbGFncywgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2Rl
KSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKICAgICAg
ICAgcmVhZChKU0NlbGxfdHlwZUluZm9GbGFncyk7CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24o
Q2hlY2tIYXNJbnN0YW5jZUxvYywgSlNDZWxsX3R5cGVJbmZvRmxhZ3MsIG5vZGUtPmNoaWxkMSgp
KSwgTGF6eU5vZGUobm9kZSkpOwpAQCAtNzM4LDYgKzc0MywxMSBAQCB2b2lkIGNsb2JiZXJpemUo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3Qg
V3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEluc3RhbmNlT2ZMb2MsIEpTQ2VsbF9z
dHJ1Y3R1cmVJRCwgbm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6eU5vZGUobm9k
ZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAg
ICAgIHJlYWQoV29ybGQpOworICAgICAgICB3cml0ZShIZWFwKTsKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CiAgICAgICAgIHdyaXRlKEpTQ2VsbF9zdHJ1Y3R1cmVJ
RCk7CiAgICAgICAgIHdyaXRlKEpTQ2VsbF90eXBlSW5mb1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IGIyNmUwYTVmMzgzYTAwYTAyZWJmMjhlMTg1NTc5
MjM5NDlhYmY3NzIuLjZjNWRmOTI2MzkyZTI2MGFlMmM0Mjk1YTY1MTdiM2I3N2M3OGJkNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTE0NCw2ICsxNDQsNyBA
QCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQcm9maWxl
Q29udHJvbEZsb3c6CiAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFu
Y2VPZjoKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoK
ICAgICBjYXNlIElzQm9vbGVhbjoKICAgICBjYXNlIElzTnVtYmVyOgpAQCAtMTgxLDYgKzE4Miw3
IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNr
SW5Cb3VuZHM6CiAgICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hl
Y2s6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgY2FzZSBNdWx0aUdldEJ5T2Zm
c2V0OgogICAgIGNhc2UgVmFsdWVSZXA6CiAgICAgY2FzZSBEb3VibGVSZXA6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCBiMjE5NDUyYTkzMzg1N2Fk
MWI4ZGUyMWUzNjJlMDkyNmRjMzBmMzViLi5hYWIxMmFmNTI3OGM5Yjk1ZGQzYWNkYzBmODJkZTVj
NmVmM2I1MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKQEAgLTEwOTUsMTAgKzEwOTUsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8
RnVuY3Rpb25Vc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CisKKyAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOiB7CisgICAgICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQyKCkubm9kZSgpLT5pc0NlbGxDb25zdGFudCgpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG5vZGUtPmNoaWxkMigpLm5vZGUoKS0+YXNDZWxsKCkgIT0gbV9ncmFwaC5nbG9iYWxP
YmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNl
U3ltYm9sRnVuY3Rpb24oKSkgeworCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGguY29udmVy
dFRvQ29uc3RhbnQobm9kZSwganNCb29sZWFuKHRydWUpKTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCFtX2dyYXBo
Lmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgQmFkVHlwZUluZm9GbGFncykpIHsK
KyAgICAgICAgICAgICAgICAgICAgLy8gSGVyZSB3ZSBvcHRpbWlzdGljYWxseSBhc3N1bWUgdGhh
dCB3ZSB3aWxsIG5vdCBzZWUgYW4gYm91bmQvQy1BUEkgZnVuY3Rpb24gaGVyZS4KKyAgICAgICAg
ICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9jaywgU3Bl
Y05vbmUsIENoZWNrVHlwZUluZm9GbGFncywgbm9kZS0+b3JpZ2luLCBPcEluZm8oSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSksIEVkZ2Uobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBDZWxsVXNl
KSk7CisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGguY29udmVydFRvQ29uc3RhbnQobm9kZSwg
anNCb29sZWFuKGZhbHNlKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihu
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICAg
ICAgCiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxs
OgotICAgICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CiAgICAgICAgIGNhc2UgQ3JlYXRlVGhp
czoKICAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CiAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5
UmVhZE9ubHk6IHsKQEAgLTExNTksNyArMTE3OCwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAg
Zml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQotICAgICAgICAgICAgCisKKyAgICAgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgor
ICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAg
ICBicmVhazsKKwogICAgICAgICBjYXNlIEluOiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIGF0IHNvbWUgcG9pbnQgaGF2ZSBhcnJheSBwcm9maWxpbmcgb24gb3BfaW4sIGluIHdo
aWNoCiAgICAgICAgICAgICAvLyBjYXNlIHdlIHdvdWxkIGJlIGFibGUgdG8gdHVybiB0aGlzIGlu
dG8gYSBraW5kIG9mIEdldEJ5VmFsLgpAQCAtMTQwNSw2ICsxNDI4LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBOb3RpZnlXcml0ZToKICAgICAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBv
aW50OgogICAgICAgICBjYXNlIENhbGw6CisgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdz
OgogICAgICAgICBjYXNlIFRhaWxDYWxsSW5saW5lZENhbGxlcjoKICAgICAgICAgY2FzZSBDb25z
dHJ1Y3Q6CiAgICAgICAgIGNhc2UgQ2FsbFZhcmFyZ3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKaW5kZXggNjkyMzY1NjM5NjExZmVhZjczZjRlODYx
NThhMDAxYjM2ZDEzNTI3Yi4uMmExNWIzN2M5MWQyODA4ZDc5ZjNlN2VjYzhjNmEzNzc3ZDkwMTI2
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcApA
QCAtOTUsNyArOTUsMTEgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIExv
Y2F0aW9uS2luZCBraW5kKQogICAgIGNhc2UgQnV0dGVyZmx5UmVhZE9ubHlMb2M6CiAgICAgICAg
IG91dC5wcmludCgiQnV0dGVyZmx5UmVhZE9ubHlMb2MiKTsKICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAKKworICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzTG9jOgorICAgICAgICBvdXQucHJp
bnQoIkNoZWNrVHlwZUluZm9GbGFnc0xvYyIpOworICAgICAgICByZXR1cm47CisKICAgICBjYXNl
IENoZWNrSGFzSW5zdGFuY2VMb2M6CiAgICAgICAgIG91dC5wcmludCgiQ2hlY2tIYXNJbnN0YW5j
ZUxvYyIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdI
ZWFwTG9jYXRpb24uaAppbmRleCA0OTVkMzAwM2NlYTZjMWM1N2M1MDJkZTRjMWVmNGUxMTVhYmJl
MGIwLi41M2ZmOTZjNTRhYTUwYmZiZjE0ZTYzY2ExYTgzNDA0YmQ0MTJmYWE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKQEAgLTQwLDYgKzQwLDcgQEAg
ZW51bSBMb2NhdGlvbktpbmQgewogICAgIEFycmF5TGVuZ3RoTG9jLAogICAgIEJ1dHRlcmZseUxv
YywKICAgICBCdXR0ZXJmbHlSZWFkT25seUxvYywKKyAgICBDaGVja1R5cGVJbmZvRmxhZ3NMb2Ms
CiAgICAgQ2hlY2tIYXNJbnN0YW5jZUxvYywKICAgICBDbG9zdXJlVmFyaWFibGVMb2MsCiAgICAg
RGlyZWN0QXJndW1lbnRzTG9jLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBm
OTZhN2VmZjhmNjZkYzhmZDEyYmI1NWM2MmMzZDVlMzVhNDg2NWMxLi43NzE1YjkzY2RjMDIyMjM4
MmU4ZjJmYTcwNjc2ZTg2MjdmZjkyMDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
aApAQCAtMTM1NCw2ICsxMzU0LDcgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgc3dp
dGNoIChvcCgpKSB7CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgorICAgICAgICBjYXNlIENoZWNr
SGFzSW5zdGFuY2U6CiAgICAgICAgIGNhc2UgTmV3RnVuY3Rpb246CiAgICAgICAgIGNhc2UgTmV3
QXJyb3dGdW5jdGlvbjoKICAgICAgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOgpAQCAtMTQxNSw2
ICsxNDE2LDE3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7CiAgICAgfQogCisgICAgYm9vbCBoYXNU
eXBlSW5mb09wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tUeXBl
SW5mb0ZsYWdzOworICAgIH0KKworICAgIHVuc2lnbmVkIHR5cGVJbmZvT3BlcmFuZCgpCisgICAg
eworICAgICAgICBBU1NFUlQoaGFzVHlwZUluZm9PcGVyYW5kKCkgJiYgbV9vcEluZm8gPD0gVUNI
QVJfTUFYKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29wSW5mbyk7
CisgICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRj
aCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDJl
ZDNjZTRkYWE0ZTc4MGYwNjllY2I5YjlhYWM1ODZmMzg5YzFhYjkuLmFjNmNlOGI1OTZkMDQwODFk
ZWM5ZjJhNzc0OTE2NzM4NjVlNzZiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CiAgICAgbWFjcm8oQ2hlY2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFj
cm8oQ2hlY2tJbkJvdW5kcywgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSWRl
bnQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja1R5cGVJbmZvRmxhZ3MsIE5v
ZGVNdXN0R2VuZXJhdGUpIC8qIFRha2VzIGFuIE9wSW5mbyB3aXRoIHRoZSBmbGFncyB5b3Ugd2Fu
dCB0byB0ZXN0IGFyZSBzZXQgKi9cCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFy
cmF5IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5v
ZGVNdXN0R2VuZXJhdGUpIFwKQEAgLTI3OSw4ICsyODAsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQnJlYWtwb2ludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAog
ICAgIG1hY3JvKFByb2ZpbGVXaWxsQ2FsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KFByb2ZpbGVEaWRDYWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oQ2hlY2tIYXNJ
bnN0YW5jZSwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKENoZWNrSGFzSW5zdGFuY2Us
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEluc3Rh
bmNlT2YsIE5vZGVSZXN1bHRCb29sZWFuKSBcCisgICAgbWFjcm8oSW5zdGFuY2VPZkN1c3RvbSwg
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNVbmRl
ZmluZWQsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNCb29sZWFuLCBOb2RlUmVz
dWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzTnVtYmVyLCBOb2RlUmVzdWx0Qm9vbGVhbikgXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCA0MGNlYzc2MDMyNDUxMTAxMjk2NTg5OTJlN2E5YjJj
NGM5ZTk1MGZlLi4xOGY3YjE4YTEwYzNlYjIwMzFiZjI5ZmNjZjdmYjc1ZjVmZDAwNmQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlv
blBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMzk4LDcgKzM5OCw5IEBAIHByaXZhdGU6CiAgICAgICAg
IGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKICAgICAgICAgY2FzZSBDb21wYXJlRXE6CiAgICAgICAg
IGNhc2UgQ29tcGFyZVN0cmljdEVxOgorICAgICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CiAg
ICAgICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICAgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgog
ICAgICAgICBjYXNlIElzVW5kZWZpbmVkOgogICAgICAgICBjYXNlIElzQm9vbGVhbjoKICAgICAg
ICAgY2FzZSBJc051bWJlcjoKQEAgLTU2NSw2ICs1NjcsNyBAQCBwcml2YXRlOgogICAgICAgICBj
YXNlIERvdWJsZUFzSW50MzI6CiAgICAgICAgIGNhc2UgR2V0TG9jYWxVbmxpbmtlZDoKICAgICAg
ICAgY2FzZSBDaGVja0FycmF5OgorICAgICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKICAg
ICAgICAgY2FzZSBBcnJheWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgog
ICAgICAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOgpAQCAtNjgwLDcgKzY4Myw2IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgICAgIGNhc2UgUHJvZmlsZVR5
cGU6CiAgICAgICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgotICAgICAgICBjYXNlIENoZWNr
SGFzSW5zdGFuY2U6CiAgICAgICAgIGNhc2UgVGhyb3dSZWZlcmVuY2VFcnJvcjoKICAgICAgICAg
Y2FzZSBGb3JjZU9TUkV4aXQ6CiAgICAgICAgIGNhc2UgU2V0QXJndW1lbnQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGY1YzY4ZGI4MjRlMTVm
YTdkNjY3OGEyZjNkZDY2YjMwNGFhZDIzOTYuLjQ0MjU4MDc1MzQ0ZmNkNWE5N2NhMjRiNjQ1M2U1
Njg1ZTc5MDVmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oCkBAIC0yNDIsOCArMjQyLDEwIEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0
YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFByb2Zp
bGVEaWRDYWxsOgogICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAgICAgY2FzZSBQcm9maWxlQ29udHJv
bEZsb3c6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgY2FzZSBDaGVja0hhc0lu
c3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206
CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVhbjoKICAgICBjYXNlIElz
TnVtYmVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAppbmRleCAyNzI3MzRkMmZiNjg2NWQ4NzAxMTQwYzcxNmVhNGE1OGY4MmEyYmM1Li43MTNi
ZDExOTU0MzI1YmM5OWNkZWM0ZjIxMTdjNzg5NDNkMjNjZGUwIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjczNyw2ICsyNzM3LDE3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yT2JqZWN0KE5vZGUq
LCBHUFJSZWcgdmFsdWVSZWcsIEdQUlJlZyBwCiAgICAgcHV0UmVzdWx0LmxpbmsoJm1faml0KTsK
IH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyhOb2Rl
KiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworCisgICAgc3BlY3Vs
YXRpb25DaGVjayhCYWRUeXBlSW5mb0ZsYWdzLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFu
Y2hUZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFz
ZUdQUiwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKG5vZGUtPnR5cGVJbmZvT3BlcmFuZCgpKSkpOworCisgICAgbm9SZXN1bHQobm9k
ZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mKE5vZGUqIG5v
ZGUpCiB7CiAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKSB7
CkBAIC0yOTA1LDYgKzI5MTYsNDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVl
QWRkKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlSW5zdGFuY2VPZkN1c3RvbShOb2RlKiBub2RlKQoreworICAgIC8vIFdlIGNvdWxkIGRv
IHNvbWV0aGluZyBzbWFydGVyIGhlcmUgYnV0IHRoaXMgY2FzZSBpcyBjdXJyZW50bHkgc3VwZXIg
cmFyZSBhbmQgdW5sZXNzCisgICAgLy8gU3ltYm9sLmhhc0luc3RhbmNlIGJlY29tZXMgcG9wdWxh
ciB3aWxsIGxpa2VseSByZW1haW4gdGhhdCB3YXkuCisKKyAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgY29uc3Ry
dWN0b3IodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIEpTVmFsdWVPcGVyYW5kIGhhc0luc3Rh
bmNlU3ltYm9sKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKworICAgIEpTVmFsdWVSZWdzIHZhbHVl
UmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CisgICAgR1BSUmVnIGNvbnN0cnVjdG9yR1BSID0g
Y29uc3RydWN0b3IuZ3ByKCk7CisgICAgSlNWYWx1ZVJlZ3MgaGFzSW5zdGFuY2VSZWdzID0gaGFz
SW5zdGFuY2VTeW1ib2wuanNWYWx1ZVJlZ3MoKTsKKworI2lmIENQVShYODYpCisgICAgLy8gTm90
ZSB0aGF0IHdlIGludGVudGlvbmFsbHkgY2xvYmJlciB0aGUgaGFzSW5zdGFuY2VTeW1ib2wgcmVn
aXN0ZXIgaGVyZSBvbiB4ODYgYmVjYXVzZSB3ZQorICAgIC8vIGFyZSBzaG9ydCBvbiByZWdpc3Rl
cnMuIFRoaXMgaXMgdmFsaWQgYmVjYXVzZSB3ZSBrbm93IEluc3RhbmNlT2ZDdXN0b20gaXMgdGhl
IGxhc3QgdXNlCisgICAgLy8gb2YgdGhlIEdldEJ5SWQgd2hpY2ggcHJvZHVjZXMgaXQuCisgICAg
UkVMRUFTRV9BU1NFUlQoY2FuUmV1c2Uobm9kZS0+Y2hpbGQzKCkpKTsKKyAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMpOworICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisK
KyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZSA9IG1faml0Lmp1bXAoKTsKKworICAg
IGFkZFNsb3dQYXRoR2VuZXJhdG9yKAorICAgICAgICBzbG93UGF0aENhbGwoc2xvd0Nhc2UsIHRo
aXMsIG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIGhhc0luc3RhbmNlUmVncywgdmFsdWVSZWdz
LCBjb25zdHJ1Y3RvckdQUiwgaGFzSW5zdGFuY2VSZWdzKSk7CisgICAgbV9qaXQubW92ZShoYXNJ
bnN0YW5jZVJlZ3MucGF5bG9hZEdQUigpLCByZXN1bHRHUFIpOworCisgICAgdW5ibGVzc2VkQm9v
bGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOworI2Vsc2UKKworICAgIEpTVmFsdWVSZWdzVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0
LnJlZ3MoKTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlID0gbV9qaXQuanVt
cCgpOworCisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCisgICAgICAgIHNsb3dQYXRoQ2FsbChz
bG93Q2FzZSwgdGhpcywgb3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwgcmVzdWx0UmVncywgdmFs
dWVSZWdzLCBjb25zdHJ1Y3RvckdQUiwgaGFzSW5zdGFuY2VSZWdzKSk7CisKKyAgICB1bmJsZXNz
ZWRCb29sZWFuUmVzdWx0KHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCBub2RlKTsKKyNlbmRpZgor
fQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhBZGQoTm9kZSogbm9kZSkKIHsK
ICAgICBzd2l0Y2ggKG5vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDg2NjBiMDRmMDhjMGVhZmM1NTU0
NjVlODM0ZDMwOGUxZDQzYjNlMWEuLjAyMzdkZDc3ODVhZTU1YzA3NWU5ZjYzZjk2OTE2OTFjNmEx
ZTgwZTQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmgKQEAgLTcyNyw2ICs3MjcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW5z
dGFuY2VPZkZvck9iamVjdChOb2RlKiwgR1BSUmVnIHZhbHVlUmVnLCBHUFJSZWcgcHJvdG90eXBl
UmVnLCBHUFJSZWcgc2NyYXRjaEFuZFJlc3VsdFJlZywgR1BSUmVnIHNjcmF0Y2gyUmVnKTsKICAg
ICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVJbnN0YW5j
ZU9mQ3VzdG9tKE5vZGUqKTsKICAgICAKICAgICB2b2lkIGVtaXRDYWxsKE5vZGUqKTsKICAgICAK
QEAgLTE0NDMsNiArMTQ0NCwxNSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BSKCksIGFyZzEucGF5bG9hZEdQ
UigpLCBhcmcyLnBheWxvYWRHUFIoKSk7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQs
IEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMpCisgICAgeworICAgICAgICBt
X2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAg
ICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9
CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSk9K
IG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgR1BSUmVnIGFyZzIs
IEpTVmFsdWVSZWdzIGFyZzMpCisgICAgeworICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihv
cGVyYXRpb24sIHJlc3VsdCwgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzIsIGFyZzMucGF5bG9hZEdQ
UigpKTsKKyAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
YXJnMSwgYXJnMik7CkBAIC0xNzY2LDYgKzE3NzYsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdC50YWdHUFIoKSwgcmVzdWx0LnBheWxv
YWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCks
IGFyZzIucGF5bG9hZEdQUigpKTsKICAgICB9CiAKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFn
LCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9h
ZCwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczVGFnLCBHUFJSZWcgYXJnM1BheWxvYWQpCisgICAg
eworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9E
VU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzIsIEVBQklfMzJCSVRfRFVNTVlfQVJH
IGFyZzNQYXlsb2FkLCBhcmczVGFnKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1
bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOworICAgIH0KKyAgICBKSVRD
b21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9u
LCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEdQUlJlZyBhcmcyLCBKU1Zh
bHVlUmVncyBhcmczKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uLCByZXN1bHQudGFnR1BSKCksIHJlc3VsdC5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCks
IGFyZzEucGF5bG9hZEdQUigpLCBhcmcyLCBhcmczLnRhZ0dQUigpLCBhcmczLnBheWxvYWRHUFIo
KSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FQ0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5
bG9hZCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQpCiAg
ICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJn
MlBheWxvYWQsIGFyZzJUYWcpOwpAQCAtMjIwNSw2ICsyMjI1LDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSopOwogCisgICAgdm9pZCBjb21waWxlQ2hl
Y2tUeXBlSW5mb0ZsYWdzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUq
KTsKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA0
NWI5NTQzZWIxZmEwNmUyNTc4YWY0ZGNmYjgzYjViNjc4M2UzNDY2Li42ZTkwODg1ZGI3ZGVhMGE1
M2Y3MzQ2NDlhZWI2N2VmNWFiZGY5MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTQyMDUsMTcgKzQyMDUsNDgg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVh
azsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczogeworICAgICAgICBjb21w
aWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAg
ICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6IHsKKworICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVN5
bWJvbE5vZGUgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCk7CisgICAgICAgIEpTRnVuY3Rpb24qIGRl
ZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihub2RlLT5jZWxs
T3BlcmFuZCgpLT52YWx1ZSgpKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RE
ZWZhdWx0SGFzSW5zdGFuY2VTeW1ib2w7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGhh
c0luc3RhbmNlU3ltYm9sTm90Q2VsbDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFz
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUo
dGhpcyk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIGhhc0luc3RhbmNlU3ltYm9sKHRoaXMsIG5v
ZGUtPmNoaWxkMigpKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKIAotICAg
ICAgICAvLyBTcGVjdWxhdGUgdGhhdCBiYXNlICdJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNl
Jy4KLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwg
MCwgbV9qaXQuYnJhbmNoVGVzdDgoCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6WmVybywg
Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlLmdwcigpLCBKU0NlbGw6
OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOworICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCi0gICAgICAgIG5vUmVzdWx0KG5vZGUpOwor
ICAgICAgICAvLyBJZiB3ZSBoYXZlIHByb3ZlbiB0aGF0IHRoZSBjb25zdHJ1Y3RvcidzIFN5bWJv
bC5oYXNJbnN0YW5jZSB3aWxsIGFsd2F5cyBiZSB0aGUgb25lIG9uCisgICAgICAgIC8vIEZ1bmN0
aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdIHRoZW4gd2UgZG9uJ3QgbmVlZCBhIHJ1
bnRpbWUgY2hlY2sgaGVyZS4gV2UgZG9uJ3Qgd29ycnkKKyAgICAgICAgLy8gYWJvdXQgdGhlIGNh
c2Ugd2hlcmUgdGhlIGNvbnN0cnVjdG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIGlzIGEgY29uc3Rh
bnQgYnV0IGlzIG5vdCB0aGUgZGVmYXVsdAorICAgICAgICAvLyBvbmUgYXMgZml4dXAgc2hvdWxk
IGhhdmUgY29udmVydGVkIHRoaXMgY2hlY2sgdG8gdHJ1ZS4KKyAgICAgICAgQVNTRVJUKCFoYXNJ
bnN0YW5jZVN5bWJvbE5vZGUtPmlzQ2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3RhbmNl
RnVuY3Rpb24gPT0gaGFzSW5zdGFuY2VTeW1ib2xOb2RlLT5hc0NlbGwoKSk7CisgICAgICAgIGlm
ICghaGFzSW5zdGFuY2VTeW1ib2xOb2RlLT5pc0NlbGxDb25zdGFudCgpKSB7CisKKyAgICAgICAg
ICAgIEpTVmFsdWVSZWdzIGhhc0luc3RhbmNlU3ltYm9sUmVncyA9IGhhc0luc3RhbmNlU3ltYm9s
LmpzVmFsdWVSZWdzKCk7CisgICAgICAgICAgICBoYXNJbnN0YW5jZVN5bWJvbE5vdENlbGwgPSBt
X2ppdC5icmFuY2hJZk5vdENlbGwoaGFzSW5zdGFuY2VTeW1ib2xSZWdzKTsKKyAgICAgICAgICAg
IG5vdERlZmF1bHRIYXNJbnN0YW5jZVN5bWJvbCA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6Tm90RXF1YWwsIGhhc0luc3RhbmNlU3ltYm9sUmVncy5wYXlsb2FkR1BSKCksIFRydXN0
ZWRJbW1QdHIoZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24pKTsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIENoZWNrIHRoYXQgY29uc3RydWN0b3IgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UnLgorICAgICAgICBtX2ppdC50ZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoYmFzZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkp
LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UpLCByZXN1bHRHUFIpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9q
aXQuanVtcCgpOworCisgICAgICAgIGlmICghaGFzSW5zdGFuY2VTeW1ib2xOb2RlLT5pc0NlbGxD
b25zdGFudCgpKSB7CisgICAgICAgICAgICBoYXNJbnN0YW5jZVN5bWJvbE5vdENlbGwubGluaygm
bV9qaXQpOworICAgICAgICAgICAgbm90RGVmYXVsdEhhc0luc3RhbmNlU3ltYm9sLmxpbmsoJm1f
aml0KTsKKyAgICAgICAgICAgIG1vdmVGYWxzZVRvKHJlc3VsdEdQUik7CisgICAgICAgIH0KKwor
ICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHRH
UFIsIG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTQyMjQsNiArNDI1NSwxMSBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAorICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbTogeworICAgICAgICBjb21waWxl
SW5zdGFuY2VPZkN1c3RvbShub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2Fz
ZSBJc1VuZGVmaW5lZDogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAz
ODdlZDZjZjY1NmQ1YTk4OGY3YTg2OWVhZDg4NWE5NzE5NWEwODQzLi4zNzk0YWJiNjFiZjYyNDAw
OWExY2QxNDMyZWJkMzFhN2JiZDBlN2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQxOTUsMTcgKzQxOTUsNDQgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAg
ICB9CiAKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczogeworICAgICAgICBjb21waWxlQ2hl
Y2tUeXBlSW5mb0ZsYWdzKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNl
IENoZWNrSGFzSW5zdGFuY2U6IHsKKworICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVN5bWJvbE5v
ZGUgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCk7CisgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRI
YXNJbnN0YW5jZUZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihub2RlLT5jZWxsT3BlcmFu
ZCgpLT52YWx1ZSgpKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3REZWZhdWx0
OwogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgp
KTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKKyAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgaGFzSW5zdGFuY2VTeW1ib2wodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogCi0gICAgICAgIC8vIFNwZWN1bGF0ZSB0aGF0
IGJhc2UgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgotICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0OCgK
LSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpaZXJvLCAKLSAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgp
KSwgCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNE
ZWZhdWx0SGFzSW5zdGFuY2UpKSk7CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQu
Z3ByKCk7CiAKLSAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIC8vIElmIHdlIGhhdmUg
cHJvdmVuIHRoYXQgdGhlIGNvbnN0cnVjdG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIHdpbGwgYWx3
YXlzIGJlIHRoZSBvbmUgb24gRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0K
KyAgICAgICAgLy8gdGhlbiB3ZSBkb24ndCBuZWVkIGEgcnVudGltZSBjaGVjayBoZXJlLiBXZSBk
b24ndCB3b3JyeSBhYm91dCB0aGUgY2FzZSB3aGVyZSB0aGUgY29uc3RydWN0b3IncyBTeW1ib2wu
aGFzSW5zdGFuY2UgaXMgYSBjb25zdGFudAorICAgICAgICAvLyBidXQgaXMgbm90IHRoZSBkZWZh
dWx0IG9uZSBhcyBmaXh1cCBzaG91bGQgaGF2ZSBjb252ZXJ0ZWQgdGhpcyBjaGVjayB0byB0cnVl
LgorICAgICAgICBBU1NFUlQoIWhhc0luc3RhbmNlU3ltYm9sTm9kZS0+aXNDZWxsQ29uc3RhbnQo
KSB8fCBkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9PSBoYXNJbnN0YW5jZVN5bWJvbE5vZGUt
PmFzQ2VsbCgpKTsKKyAgICAgICAgaWYgKCFoYXNJbnN0YW5jZVN5bWJvbE5vZGUtPmlzQ2VsbENv
bnN0YW50KCkpIHsKKworICAgICAgICAgICAgbm90RGVmYXVsdCA9IG1faml0LmJyYW5jaFB0cihN
YWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGhhc0luc3RhbmNlU3ltYm9sLmdwcigpLCBUcnVzdGVk
SW1tUHRyKGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uKSk7CisgICAgICAgIH0KKworICAgICAg
ICAvLyBDaGVjayB0aGF0IGJhc2UgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgorICAg
ICAgICBtX2ppdC50ZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoYmFzZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCByZXN1
bHRHUFIpOworICAgICAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVz
dWx0R1BSKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAo
KTsKKworICAgICAgICBpZiAobm90RGVmYXVsdC5pc1NldCgpKSB7CisgICAgICAgICAgICBub3RE
ZWZhdWx0LmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG1vdmVGYWxzZVRvKHJlc3VsdEdQUik7
CisgICAgICAgIH0KKworICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAganNWYWx1
ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUsIERhdGFGb3JtYXRKU0Jvb2xlYW4pOwogICAgICAgICBi
cmVhazsKICAgICB9CiAKQEAgLTQyMTMsNiArNDI0MCwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVJbnN0YW5jZU9mKG5vZGUpOwog
ICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206IHsKKyAg
ICAgICAgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20obm9kZSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KICAgICAgICAgCiAgICAgY2FzZSBJc1VuZGVmaW5lZDogewogICAgICAgICBKU1ZhbHVlT3Bl
cmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggNjRhNDgyMjcwOTI4NmMyN2I4ODZhN2Zj
NjM4NjM5ZDE0YTEyZjJhYS4uMDQyZWQzMmRlMGU1YmYzYjZlYmUyOThjZTYxYmJlOTY5ZjNhNzVh
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApA
QCAtMTc1LDggKzE3NSwxMCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICBjYXNlIElzT2JqZWN0OgogICAgIGNhc2UgSXNPYmplY3RPck51bGw6CiAg
ICAgY2FzZSBJc0Z1bmN0aW9uOgorICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgogICAgIGNh
c2UgQ2hlY2tIYXNJbnN0YW5jZToKICAgICBjYXNlIEluc3RhbmNlT2Y6CisgICAgY2FzZSBJbnN0
YW5jZU9mQ3VzdG9tOgogICAgIGNhc2UgRG91YmxlUmVwOgogICAgIGNhc2UgVmFsdWVSZXA6CiAg
ICAgY2FzZSBJbnQ1MlJlcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSW50cmluc2ljUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bnRyaW5zaWNSZXBvc2l0b3J5LmgKaW5kZXggZjVmNGVhNzFhMWY3ZGZmMzgyMjQxNTAyMmY1MzNl
YWU2NWUxMWYzMC4uMmViMTlhZGJmMGU5NmY0OWJhNTFjNDVjODE2N2I1MTU0MGJmMTQzYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5
LmgKQEAgLTg5LDYgKzg5LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAg
IG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50
NjQpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUpBLCBmdW5jdGlvblR5cGUoaW50NjQs
IGludFB0ciwgaW50NjQsIGludFB0cikpIFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSkMs
IGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50UHRyKSkgXAorICAgIG1hY3Jv
KEpfSklUT3BlcmF0aW9uX0VKT0osIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwg
aW50UHRyLCBpbnQ2NCkpIFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSkksIGZ1bmN0aW9u
VHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50UHRyKSkgXAogICAgIG1hY3JvKEpfSklUT3Bl
cmF0aW9uX0VKSiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0LCBpbnQ2NCkpIFwK
ICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSnNjQywgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50
UHRyLCBpbnRQdHIsIGludFB0cikpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggM2UwY2RhZTNlZTgwZTA2OWIzNWM4NDI1N2UwYTVl
MTY2OWZmOGZlYS4uOWE2N2MxMjFjODYyM2UzZDQ1Y2UwYmNmYjc0NTc4NDg1MDkyZWUzOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAg
LTkyMiwxMiArOTIyLDE4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlwZU9mOgogICAgICAg
ICAgICAgY29tcGlsZVR5cGVPZigpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q2hlY2tUeXBlSW5mb0ZsYWdzOgorICAgICAgICAgICAgY29tcGlsZUNoZWNrVHlwZUluZm9GbGFn
cygpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToK
ICAgICAgICAgICAgIGNvbXBpbGVDaGVja0hhc0luc3RhbmNlKCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBJbnN0YW5jZU9mOgogICAgICAgICAgICAgY29tcGlsZUluc3RhbmNl
T2YoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206
CisgICAgICAgICAgICBjb21waWxlSW5zdGFuY2VPZkN1c3RvbSgpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgICAgICAgICBjb21waWxlQ291
bnRFeGVjdXRpb24oKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTY4NSwxMSArNTY5MSwzNiBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21waWxlQ2hlY2tIYXNJbnN0YW5jZSgpCiAgICAgewor
ICAgICAgICBKU0Z1bmN0aW9uKiBkZWZhdWx0SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbiA9IGpz
Q2FzdDxKU0Z1bmN0aW9uKj4obV9ub2RlLT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpKTsKKworICAg
ICAgICBMVmFsdWUgY29uc3RydWN0b3IgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICBMVmFsdWUgaGFzSW5zdGFuY2UgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwor
CisgICAgICAgIExCYXNpY0Jsb2NrIGRlZmF1bHRIYXNJbnN0YW5jZSA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQ2hlY2tIYXNJbnN0YW5jZSBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgZGVmYXVsdCIp
KTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJDaGVja0hhc0luc3RhbmNlIGNvbnRpbnVhdGlvbiIpKTsKKworICAgICAgICAvLyBVbmxp
a2UsIHRoZSBERkcgd2UgZG9uJ3Qgd29ycnkgYWJvdXQgY2xlYW5pbmcgdGhpcyBjb2RlIHVwIGZv
ciB0aGUgY2FzZSB3aGVyZSB3ZSBoYXZlIHByb3ZlbiB0aGUgaGFzSW5zdGFuY2VTeW1ib2wgaXMg
YSBjb25zdGFudCBhcyBMTFZNIHNob3VsZCBmaXggaXQgZm9yIHVzLgorCisgICAgICAgIEFTU0VS
VCghbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCktPmlzQ2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhh
c0luc3RhbmNlU3ltYm9sRnVuY3Rpb24gPT0gbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCktPmFzQ2Vs
bCgpKTsKKworICAgICAgICBWYWx1ZUZyb21CbG9jayBub3REZWZhdWx0SGFzSW5zdGFuY2VSZXN1
bHQgPSBtX291dC5hbmNob3IobV9vdXQuYm9vbGVhblRydWUpOworICAgICAgICBtX291dC5icmFu
Y2gobV9vdXQubm90RXF1YWwoaGFzSW5zdGFuY2UsIG1fb3V0LmNvbnN0SW50UHRyKGRlZmF1bHRI
YXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKSksIHJhcmVseShjb250aW51YXRpb24pLCB1c3VhbGx5
KGRlZmF1bHRIYXNJbnN0YW5jZSkpOworCisgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0g
bV9vdXQuYXBwZW5kVG8oZGVmYXVsdEhhc0luc3RhbmNlLCBjb250aW51YXRpb24pOworICAgICAg
ICBWYWx1ZUZyb21CbG9jayBpbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlUmVzdWx0ID0gbV9v
dXQuYW5jaG9yKG1fb3V0LnRlc3RJc1plcm84KG1fb3V0LmxvYWQ4KGNvbnN0cnVjdG9yLCBtX2hl
YXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwgbV9vdXQuY29uc3RJbnQ4KEltcGxlbWVudHNEZWZh
dWx0SGFzSW5zdGFuY2UpKSk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKwor
ICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAg
c2V0Qm9vbGVhbihtX291dC5waGkobV9vdXQuYm9vbGVhbiwgaW1wbGVtZW50c0RlZmF1bHRIYXNJ
bnN0YW5jZVJlc3VsdCwgbm90RGVmYXVsdEhhc0luc3RhbmNlUmVzdWx0KSk7CisgICAgfQorCisg
ICAgdm9pZCBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKCkKKyAgICB7CiAgICAgICAgIHNwZWN1
bGF0ZSgKLSAgICAgICAgICAgIFVuY291bnRhYmxlLCBub1ZhbHVlKCksIDAsCisgICAgICAgICAg
ICBCYWRUeXBlSW5mb0ZsYWdzLCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAgICBtX291dC50ZXN0
SXNaZXJvMzIoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIobG93Q2VsbCht
X25vZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9GbGFncyksCi0gICAgICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkp
OworICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIobV9ub2RlLT50eXBlSW5mb09wZXJh
bmQoKSkpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW5zdGFuY2VPZigpCkBAIC01
NzQyLDYgKzU3NzMsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgc2V0Qm9vbGVhbigKICAgICAgICAg
ICAgIG1fb3V0LnBoaShtX291dC5ib29sZWFuLCBub3RDZWxsUmVzdWx0LCBpc0luc3RhbmNlUmVz
dWx0LCBub3RJbnN0YW5jZVJlc3VsdCkpOwogICAgIH0KKworICAgIHZvaWQgY29tcGlsZUluc3Rh
bmNlT2ZDdXN0b20oKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZSht
X25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGNvbnN0cnVjdG9yID0gbG93Q2VsbCht
X25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIGhhc0luc3RhbmNlID0gbG93SlNWYWx1
ZShtX25vZGUtPmNoaWxkMygpKTsKKworICAgICAgICBzZXRCb29sZWFuKG1fb3V0LmVxdWFsKG1f
b3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0cnVlKSkpLCB2bUNhbGwo
bV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20pLCBtX2NhbGxGcmFtZSwg
dmFsdWUsIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZSkpKTsKKyAgICB9CiAgICAgCiAgICAgdm9p
ZCBjb21waWxlQ291bnRFeGVjdXRpb24oKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNw
cAppbmRleCA1YjY3YTA1MjdlMTk5MjNhMTY5YzRjM2Q3NzM0MDI3MzBlOTYyZmQyLi4xZTgwMDBk
ZDJiMDFlN2MwYTliYWVhNjI5Mzg0YWFiZTUyM2E0NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCkBAIC0yMzEsNiArMjMxLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBh
c3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3ZhbCkKICAgICAgICAgREVGSU5FX09Q
KG9wX2NoZWNrX2hhc19pbnN0YW5jZSkKICAgICAgICAgREVGSU5FX09QKG9wX2luc3RhbmNlb2Yp
CisgICAgICAgIERFRklORV9PUChvcF9pbnN0YW5jZW9mX2N1c3RvbSkKICAgICAgICAgREVGSU5F
X09QKG9wX2lzX3VuZGVmaW5lZCkKICAgICAgICAgREVGSU5FX09QKG9wX2lzX2Jvb2xlYW4pCiAg
ICAgICAgIERFRklORV9PUChvcF9pc19udW1iZXIpCkBAIC00MDAsOCArNDAxLDggQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlf
bGVuZ3RoOgogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAg
ICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfZ2V0X2J5X3ZhbCkKLSAgICAgICAgREVGSU5FX1NMT1dD
QVNFX09QKG9wX2NoZWNrX2hhc19pbnN0YW5jZSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09Q
KG9wX2luc3RhbmNlb2YpCisgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9pbnN0YW5jZW9m
X2N1c3RvbSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2pmYWxzZSkKICAgICAgICAg
REVGSU5FX1NMT1dDQVNFX09QKG9wX2psZXNzKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Ao
b3Bfamxlc3NlcSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDIwZjBlOWM0ODkyNzgzYmUz
ZWU5NjllM2ZiN2ZhMmVlYjcwOGNlZTkuLmNlOTYwNDU2NDNiNDQyN2JiMjY3NjliZmUzYTg1YzJl
ZDc4OGI2ZTQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNTEyLDYgKzUxMiw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3BfaW5pdF9sYXp5X3JlZyhJbnN0cnVj
dGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKEluc3RydWN0
aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKik7Cisg
ICAgICAgIHZvaWQgZW1pdF9vcF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVjdGlvbiopOwogICAg
ICAgICB2b2lkIGVtaXRfb3BfaXNfdW5kZWZpbmVkKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZv
aWQgZW1pdF9vcF9pc19ib29sZWFuKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9v
cF9pc19udW1iZXIoSW5zdHJ1Y3Rpb24qKTsKQEAgLTYxNyw4ICs2MTgsOCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRfYXJndW1lbnRzX2xlbmd0aChJbnN0
cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9p
ZCBlbWl0U2xvd19vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50
cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2dldF9hcmd1bWVudF9i
eV92YWwoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7Ci0g
ICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfY2hlY2tfaGFzX2luc3RhbmNlKEluc3RydWN0aW9uKiwg
VmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93
X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJik7CisgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1
Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQg
ZW1pdFNsb3dfb3BfamZhbHNlKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2psZXNzKEluc3RydWN0aW9uKiwg
VmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93
X29wX2psZXNzZXEoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9y
Jik7CkBAIC03NDUsNiArNzQ2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJl
ZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOworICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0osIGludCwg
R1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oQ19KSVRPcGVyYXRpb25fRUpzYywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSnNjQywgaW50LCBH
UFJSZWcsIEpTQ2VsbCopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKc2NDSiwgaW50LCBHUFJSZWcsIEpTQ2VsbCosIEdQUlJlZyk7
CkBAIC04MTIsNiArODE0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUosIGludCwgR1BSUmVnLCBH
UFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKSWRjLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBjb25zdCBJZGVudGlmaWVyKik7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpPSiwgaW50
LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwg
R1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwg
aW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VKUywg
R1BSUmVnLCBHUFJSZWcsIHNpemVfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
cy5oCmluZGV4IGNhZGIwODMwOGNjYzA2MWI3Yzc3N2Q1MGIyYWMyMzgzZDM5OGU5ZGUuLjAyYjRk
OGRjZGQzNDc4YTljY2ExZDEwNzAyOTQxMTE1MjhkODlhY2MgMTAwNzU1Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCkBAIC01MDMsNiArNTAzLDEyIEBAIEFMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5
IG9wZXJhCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVl
UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRpb24s
IGludCBkc3QsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMpCit7CisgICAg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24s
IGRzdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEdQ
UlJlZyBhcmcxKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxKTsKQEAg
LTYzOCw2ICs2NDQsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6
OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGkKICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3Qp
OwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSk9KIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzFU
YWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczVGFnLCBHUFJS
ZWcgYXJnM1BheWxvYWQpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklf
MzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBhcmcyLCBFQUJJXzMyQklUX0RV
TU1ZX0FSRyBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRo
RXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKK30KKwogQUxX
QVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKQXAgb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVn
IGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkLCBBcnJheVBy
b2ZpbGUqIGFycmF5UHJvZmlsZSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
RUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIFNINF8zMkJJVF9EVU1N
WV9BUkcgYXJnMlBheWxvYWQsIGFyZzJUYWcsIFRydXN0ZWRJbW1QdHIoYXJyYXlQcm9maWxlKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA5OWMwMWM4ZDFl
OGEwZGY4NGM4N2ZlNTVmZWNhYWYzMmI0MGUxNDUzLi5mYWNiY2NhMGMwZjg4MGFkYTE4ZGFlM2I3
N2I5ZWIyZDUxMTM1N2Q4IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKQEAgLTEwNywxNSArMTA3LDI3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9uZXdfb2JqZWN0
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAKIHZvaWQg
SklUOjplbWl0X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogewotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZDsKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAg
ICBpbnQgY29uc3RydWN0b3IgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAg
IGludCBoYXNJbnN0YW5jZVN5bWJvbCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7
CisKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGhhc0luc3RhbmNlU3ltYm9sLCByZWdUMCk7
CisKKyAgICAvLyBXZSBkb24ndCBqdW1wIGlmIHdlIGtub3cgd2hhdCBTeW1ib2wuaGFzSW5zdGFu
Y2Ugd291bGQgZG8uCisgICAgSnVtcCBjdXN0b21IYXNJbnN0YW5jZVN5bWJvbCA9IGJyYW5jaFB0
cihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVj
dCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpKSk7CiAKLSAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2VWYWwsIHJlZ1QwKTsKKyAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKGNvbnN0cnVjdG9yLCByZWdUMCk7CiAKLSAgICAvLyBDaGVjayB0aGF0IGJhc2VW
YWwgaXMgYSBjZWxsLgotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFz
ZVZhbCk7CisgICAgLy8gQ2hlY2sgdGhhdCBjb25zdHJ1Y3RvciAnSW1wbGVtZW50c0hhc0luc3Rh
bmNlJyBpLmUuIHRoZSBvYmplY3QgaXMgYSBDLUFQSSB1c2VyIG9yIGEgYm91bmQgZnVuY3Rpb24u
CisgICAgdGVzdDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zm
c2V0KCkpLCBUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSksIHJlZ1Qw
KTsKKyAgICBlbWl0VGFnQm9vbChyZWdUMCk7CisgICAgSnVtcCBkb25lID0ganVtcCgpOwogCi0g
ICAgLy8gQ2hlY2sgdGhhdCBiYXNlVmFsICdJbXBsZW1lbnRzSGFzSW5zdGFuY2UnLgotICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaFRlc3Q4KFplcm8sIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUlu
Zm9GbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UpKSk7CisgICAgY3VzdG9tSGFzSW5zdGFuY2VTeW1ib2wubGluayh0aGlzKTsKKyAgICBtb3Zl
KFRydXN0ZWRJbW0zMihWYWx1ZVRydWUpLCByZWdUMCk7CisKKyAgICBkb25lLmxpbmsodGhpcyk7
CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC0xMjksNyAr
MTQxLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1QyKTsK
ICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3RvLCByZWdUMSk7CiAKLSAgICAvLyBDaGVj
ayB0aGF0IHByb3RvIGFyZSBjZWxscy4gIGJhc2VWYWwgbXVzdCBiZSBhIGNlbGwgLSB0aGlzIGlz
IGNoZWNrZWQgYnkgb3BfY2hlY2tfaGFzX2luc3RhbmNlLgorICAgIC8vIENoZWNrIHRoYXQgcHJv
dG8gYXJlIGNlbGxzLiBiYXNlVmFsIG11c3QgYmUgYSBjZWxsIC0gdGhpcyBpcyBjaGVja2VkIGJ5
IHRoZSBnZXRfYnlfaWQgZm9yIFN5bWJvbC5oYXNJbnN0YW5jZS4KICAgICBlbWl0SnVtcFNsb3dD
YXNlSWZOb3RKU0NlbGwocmVnVDIsIHZhbHVlKTsKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RK
U0NlbGwocmVnVDEsIHByb3RvKTsKIApAQCAtMTU3LDYgKzE2OSwxMiBAQCB2b2lkIEpJVDo6ZW1p
dF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1p
dFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQogCit2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5j
ZW9mX2N1c3RvbShJbnN0cnVjdGlvbiopCit7CisgICAgLy8gVGhpcyBhbHdheXMgZ29lcyB0byBz
bG93IHBhdGggc2luY2Ugd2UgZXhwZWN0IGl0IHRvIGJlIHJhcmUuCisgICAgYWRkU2xvd0Nhc2Uo
anVtcCgpKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfaXNfdW5kZWZpbmVkKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7CkBAIC0zMTcsMjIgKzMzNSwxMCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9q
ZXFfbnVsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHVuc2lnbmVkIHRh
cmdldCA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAKICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKHNyYywgcmVnVDApOwotICAgIEp1bXAgaXNJbW1lZGlhdGUgPSBlbWl0SnVt
cElmTm90SlNDZWxsKHJlZ1QwKTsKLQotICAgIC8vIEZpcnN0LCBoYW5kbGUgSlNDZWxsIGNhc2Vz
IC0gY2hlY2sgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCBiaXQgb24gdGhlIHN0cnVjdHVyZS4KLSAg
ICBKdW1wIGlzTm90TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IGJyYW5jaFRlc3Q4KFplcm8sIEFk
ZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMy
KE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpKTsKLSAgICBlbWl0TG9hZFN0cnVjdHVyZShyZWdUMCwg
cmVnVDIsIHJlZ1QxKTsKLSAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2Jh
bE9iamVjdCgpKSwgcmVnVDApOwotICAgIGFkZEp1bXAoYnJhbmNoUHRyKEVxdWFsLCBBZGRyZXNz
KHJlZ1QyLCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSwgcmVnVDApLCB0YXJnZXQp
OwotICAgIEp1bXAgbWFzcXVlcmFkZXNHbG9iYWxPYmplY3RJc0ZvcmVpZ24gPSBqdW1wKCk7Cisg
ICAgSnVtcExpc3QganVtcHMgPSBlbWl0SnVtcElmTnVsbChKU1ZhbHVlUmVncyhyZWdUMCksIHJl
Z1QxLCByZWdUMik7CiAKLSAgICAvLyBOb3cgaGFuZGxlIHRoZSBpbW1lZGlhdGUgY2FzZXMgLSB1
bmRlZmluZWQgJiBudWxsCi0gICAgaXNJbW1lZGlhdGUubGluayh0aGlzKTsKLSAgICBhbmQ2NChU
cnVzdGVkSW1tMzIoflRhZ0JpdFVuZGVmaW5lZCksIHJlZ1QwKTsKLSAgICBhZGRKdW1wKGJyYW5j
aDY0KEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShqc051bGwoKSkp
KSwgdGFyZ2V0KTsgICAgICAgICAgICAKLQotICAgIGlzTm90TWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZC5saW5rKHRoaXMpOwotICAgIG1hc3F1ZXJhZGVzR2xvYmFsT2JqZWN0SXNGb3JlaWduLmxpbmso
dGhpcyk7CisgICAgZm9yIChKdW1wIGp1bXAgOiBqdW1wcy5qdW1wcygpKQorICAgICAgICBhZGRK
dW1wKGp1bXAsIHRhcmdldCk7CiB9Owogdm9pZCBKSVQ6OmVtaXRfb3Bfam5lcV9udWxsKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CkBAIC04MzcsMzMgKzg0MywzMiBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfbnN0cmljdGVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbG93Q2FzZQogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiB9CiAKLXZvaWQg
SklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3ZvaWQg
SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRz
dCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IHZhbHVlID0gY3Vy
cmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBpbnQgYmFzZVZhbCA9IGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IHByb3RvID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZDsKIAotICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJh
c2VWYWwpOworICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIHZhbHVlKTsKKyAgICBs
aW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBwcm90byk7CiAgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1QwKTsKLSAgICBlbWl0
R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2VWYWwsIHJlZ1QxKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbkNoZWNrSGFzSW5zdGFuY2UsIGRzdCwgcmVnVDAsIHJlZ1QxKTsKLQotICAgIGVtaXRK
dW1wU2xvd1RvSG90KGp1bXAoKSwgY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7Cisg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm90bywgcmVnVDEpOworICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uSW5zdGFuY2VPZiwgZHN0LCByZWdUMCwgcmVnVDEpOwogfQogCi12b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordm9pZCBKSVQ6OmVtaXRT
bG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24s
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IHZhbHVlID0gY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBpbnQgcHJvdG8gPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBjb25zdHJ1Y3RvciA9IGN1cnJlbnRJbnN0cnVj
dGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGhhc0luc3RhbmNlU3ltYm9sID0gY3VycmVudElu
c3RydWN0aW9uWzRdLnUub3BlcmFuZDsKIAotICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0
ZXIsIHZhbHVlKTsKLSAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBwcm90byk7CiAg
ICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUs
IHJlZ1QwKTsKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3RvLCByZWdUMSk7Ci0gICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mLCBkc3QsIHJlZ1QwLCByZWdUMSk7Cisg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihjb25zdHJ1Y3RvciwgcmVnVDEpOworICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIoaGFzSW5zdGFuY2VTeW1ib2wsIHJlZ1QyKTsKKyAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIGRzdCwgcmVnVDAsIHJlZ1QxLCByZWdU
Mik7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA0
ZTA0MzY1ZmQ2YzI4MzY4OTliZWJmN2UwNTMzMGQxZDNkYTAwOTA2Li45MTBiYWNmOTQ0Y2EwOGU3
YThmOWFlMjhkZjJjZDc4OTA0ZmZhMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0xODUsMTUgKzE4NSwyOSBAQCB2b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfbmV3X29iamVjdChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0
b3I8U2xvd0NhcwogCiB2b2lkIEpJVDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBpbnQgYmFzZVZhbCA9IGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7CisgICAgaW50IGNvbnN0cnVjdG9yID0gY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZDsKKyAgICBpbnQgaGFzSW5zdGFuY2VTeW1ib2wgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kOwogCi0gICAgZW1pdExvYWRQYXlsb2FkKGJhc2VWYWwsIHJlZ1Qw
KTsKKyAgICBlbWl0TG9hZFBheWxvYWQoaGFzSW5zdGFuY2VTeW1ib2wsIHJlZ1QwKTsKKyAgICAv
LyBXZSBkb24ndCBqdW1wIGlmIHdlIGtub3cgd2hhdCBTeW1ib2wuaGFzSW5zdGFuY2Ugd291bGQg
ZG8uCisgICAgSnVtcCBoYXNJbnN0YW5jZVN5bWJvbE5vdENlbGwgPSBlbWl0SnVtcElmTm90SlND
ZWxsKGhhc0luc3RhbmNlU3ltYm9sKTsKKyAgICBKdW1wIGN1c3RvbUhhc0luc3RhbmNlU3ltYm9s
ID0gYnJhbmNoUHRyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+
Z2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkp
KTsKKworICAgIC8vIFdlIGtub3cgdGhhdCBjb25zdHJ1Y3RvciBpcyBhbiBvYmplY3QgZnJvbSB0
aGUgd2F5IGJ5dGVjb2RlIGlzIGVtaXR0ZWQgZm9yIGluc3RhbmNlb2YgZXhwcmVzc2lvbnMuCisg
ICAgZW1pdExvYWRQYXlsb2FkKGNvbnN0cnVjdG9yLCByZWdUMCk7CisKKyAgICAvLyBDaGVjayB0
aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRzSGFzSW5zdGFuY2UnIGkuZS4gdGhlIG9iamVjdCBp
cyBhIEMtQVBJIHVzZXIgb3IgYSBib3VuZCBmdW5jdGlvbi4KKyAgICB0ZXN0OChaZXJvLCBBZGRy
ZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSwgcmVnVDApOworICAgIEp1bXAgZG9uZSA9IGp1
bXAoKTsKKworICAgIGhhc0luc3RhbmNlU3ltYm9sTm90Q2VsbC5saW5rKHRoaXMpOworICAgIGN1
c3RvbUhhc0luc3RhbmNlU3ltYm9sLmxpbmsodGhpcyk7CisgICAgbW92ZShUcnVzdGVkSW1tMzIo
MSksIHJlZ1QwKTsKKworICAgIGRvbmUubGluayh0aGlzKTsKKyAgICBlbWl0U3RvcmVCb29sKGRz
dCwgcmVnVDApOwogCi0gICAgLy8gQ2hlY2sgdGhhdCBiYXNlVmFsIGlzIGEgY2VsbC4KLSAgICBl
bWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZVZhbCk7Ci0gICAgCi0gICAgLy8gQ2hlY2sg
dGhhdCBiYXNlVmFsICdJbXBsZW1lbnRzSGFzSW5zdGFuY2UnLgotICAgIGFkZFNsb3dDYXNlKGJy
YW5jaFRlc3Q4KFplcm8sIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNl
dCgpKSwgVHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpKSk7CiB9CiAK
IHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKQEAgLTIzNSwyMCArMjQ5LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2Yo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0U3RvcmVCb29sKGRzdCwg
cmVnVDApOwogfQogCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY2hlY2tfaGFzX2luc3RhbmNlKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImIGl0ZXIpCit2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVj
dGlvbiopCiB7Ci0gICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7
Ci0gICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBp
bnQgYmFzZVZhbCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0KLSAgICBsaW5r
U2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlVmFsKTsKLSAgICBsaW5rU2xvd0Nhc2UoaXRl
cik7Ci0KLSAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDEsIHJlZ1QwKTsKLSAgICBlbWl0TG9hZChi
YXNlVmFsLCByZWdUMywgcmVnVDIpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ2hlY2tI
YXNJbnN0YW5jZSwgZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMik7Ci0KLSAgICBlbWl0
SnVtcFNsb3dUb0hvdChqdW1wKCksIGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwor
ICAgIC8vIFRoaXMgYWx3YXlzIGdvZXMgdG8gc2xvdyBwYXRoIHNpbmNlIHdlIGV4cGVjdCBpdCB0
byBiZSByYXJlLgorICAgIGFkZFNsb3dDYXNlKGp1bXAoKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0
U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBAIC0yNjYsNiArMjcwLDIxIEBAIHZv
aWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5j
ZU9mLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyKTsKIH0KIAordm9pZCBKSVQ6OmVt
aXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgaW50IGRz
dCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IHZhbHVlID0gY3Vy
cmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBpbnQgY29uc3RydWN0b3IgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBoYXNJbnN0YW5jZVN5bWJvbCA9
IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQ7CisKKyAgICBsaW5rU2xvd0Nhc2UoaXRl
cik7CisKKyAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDEsIHJlZ1QwKTsKKyAgICBlbWl0TG9hZFBh
eWxvYWQoY29uc3RydWN0b3IsIHJlZ1QyKTsKKyAgICBlbWl0TG9hZChoYXNJbnN0YW5jZVN5bWJv
bCwgcmVnVDQsIHJlZ1QzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZD
dXN0b20sIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMiwgcmVnVDQsIHJlZ1QzKTsKK30KKwogdm9p
ZCBKSVQ6OmVtaXRfb3BfaXNfdW5kZWZpbmVkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24pCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCBjYWQ5MzQ2
OWMxYmNiZDJiNTdkY2I1MjAyM2FiZTlmNzIzZjc0NDQ1Li5iYjc0Y2YwOWIxMzk5YTRlYmQ4OWMx
N2U3MTc2NjJkNGI2YzRmMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKQEAgLTE0ODcsMjUgKzE0ODcsMTcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblByb2ZpbGVXaWxsQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y28KICAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGV4ZWMsIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25DaGVja0hhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbCkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbShFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgSlNWYWx1ZSBi
YXNlVmFsID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlVmFsKTsKLQotICAgIGlmIChiYXNl
VmFsLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgSlNPYmplY3QqIGJhc2VPYmplY3QgPSBhc09iamVj
dChiYXNlVmFsKTsKLSAgICAgICAgQVNTRVJUKCFiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT50
eXBlSW5mbygpLmltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UoKSk7Ci0gICAgICAgIGlmIChi
YXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLmltcGxlbWVudHNIYXNJbnN0YW5j
ZSgpKSB7Ci0gICAgICAgICAgICBib29sIHJlc3VsdCA9IGJhc2VPYmplY3QtPm1ldGhvZFRhYmxl
KHZtKS0+Y3VzdG9tSGFzSW5zdGFuY2UoYmFzZU9iamVjdCwgZXhlYywgdmFsdWUpOwotICAgICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0KSk7Ci0gICAgICAg
IH0KLSAgICB9CisgICAgSlNWYWx1ZSBoYXNJbnN0YW5jZVN5bWJvbCA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkSGFzSW5zdGFuY2UpOworCisgICAgQVNTRVJUKGhhc0luc3RhbmNlU3ltYm9sICE9
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3lt
Ym9sRnVuY3Rpb24oKSB8fCAhY29uc3RydWN0b3ItPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLmlt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UoKSk7CiAKLSAgICB2bS50aHJvd0V4Y2VwdGlvbihl
eGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKGV4ZWMsIGJhc2VWYWwp
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oY29uc3RydWN0b3ItPmhhc0luc3RhbmNlKGV4ZWMsIHZh
bHVlLCBoYXNJbnN0YW5jZVN5bWJvbCkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCAyNTQyNTUwMjI5ZGE0MWUxYWRkNDZiMGIwMjU4ZThl
NDk5NWI5YjZkLi41YzJjODE0MTk0ZmZkYzg3ZTdlZDNkNThlMTBkZjViM2FkZWVhMTU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTEyLDYgKzExMiw3
IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9u
X0VJKShFeGVjU3RhdGUqLCBVbmlxdWVkU3RyCiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUp
OwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25f
RUpaKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkMpKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBKU0NlbGwqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKT0opKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKQSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEpTQXJyYXkqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpf
SklUT3BlcmF0aW9uX0VKSSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJp
bmdJbXBsKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSklkYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGNvbnN0IElkZW50aWZp
ZXIqKTsKQEAgLTMyOCw3ICszMjksNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHVz
aEZ1bmN0aW9uTmFtZVNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5bWJvbFRhYgogdm9pZCBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9J
TlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlRGlkQ2FsbChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RG
X0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DaGVja0hh
c0luc3RhbmNlKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBiYXNl
VmFsKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkluc3RhbmNlT2ZDdXN0b20oRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5j
ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25H
ZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7
CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlW
YWxJbmZvKikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KU0ludGVyZmFjZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVy
ZmFjZUpJVC5oCmluZGV4IDIwMWUzYWIyYmZhMDM2YzI3YzVmZDZiZDYzYTQ4YmNjOGQ2MjdiMjku
LjVmNjdlYWJmZDk2OWFmNzI2N2I5YWUyMjUzNDViYmZmNWI3MTZlNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKQEAgLTY4LDYgKzY4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIEp1bXAgZW1pdEp1bXBJZk5vdE51bWJlcihSZWdpc3RlcklEKTsK
ICAgICAgICAgdm9pZCBlbWl0VGFnSW50KFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3Qp
OwogI2VuZGlmCisgICAgICAgIEp1bXBMaXN0IGVtaXRKdW1wSWZOdWxsKEpTVmFsdWVSZWdzIHNy
YywgUmVnaXN0ZXJJRCBzY3JhdGNoMSwgUmVnaXN0ZXJJRCBzY3JhdGNoMik7CiAKICAgICAgICAg
SnVtcCBlbWl0SnVtcElmTm90VHlwZShSZWdpc3RlcklEIGJhc2VSZWcsIEpTVHlwZSk7CiAKQEAg
LTE2MCw2ICsxNjEsMzEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgICAgICByZXR1cm4g
YnJhbmNoVGVzdDY0KFplcm8sIHJlZywgdGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKICAgICB9CisK
KyAgICBBTFdBWVNfSU5MSU5FIEpTSW50ZXJmYWNlSklUOjpKdW1wTGlzdCBKU0ludGVyZmFjZUpJ
VDo6ZW1pdEp1bXBJZk51bGwoSlNWYWx1ZVJlZ3MgcmVnLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJl
ZyBzY3JhdGNoMikgeworICAgICAgICBHUFJSZWcgdmFsdWUgPSByZWcuZ3ByKCk7CisgICAgICAg
IEp1bXAgaXNJbW1lZGlhdGUgPSBlbWl0SnVtcElmTm90SlNDZWxsKHZhbHVlKTsKKworICAgICAg
ICBKdW1wTGlzdCBqdW1wczsKKworICAgICAgICAvLyBGaXJzdCwgaGFuZGxlIEpTQ2VsbCBjYXNl
cyAtIGNoZWNrIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgYml0IG9uIHRoZSBzdHJ1Y3R1cmUuCisg
ICAgICAgIEp1bXAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gYnJhbmNoVGVzdDgoWmVy
bywgQWRkcmVzcyh2YWx1ZSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVk
SW1tMzIoTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkpOworICAgICAgICBlbWl0TG9hZFN0cnVjdHVy
ZSh2YWx1ZSwgc2NyYXRjaDIsIHNjcmF0Y2gxKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSksIHZhbHVlKTsKKyAgICAgICAganVtcHMuYXBw
ZW5kKGJyYW5jaFB0cihFcXVhbCwgQWRkcmVzcyhzY3JhdGNoMiwgU3RydWN0dXJlOjpnbG9iYWxP
YmplY3RPZmZzZXQoKSksIHZhbHVlKSk7CisgICAgICAgIEp1bXAgbWFzcXVlcmFkZXNHbG9iYWxP
YmplY3RJc0ZvcmVpZ24gPSBqdW1wKCk7CisKKyAgICAgICAgLy8gTm93IGhhbmRsZSB0aGUgaW1t
ZWRpYXRlIGNhc2VzIC0gdW5kZWZpbmVkICYgbnVsbAorICAgICAgICBpc0ltbWVkaWF0ZS5saW5r
KHRoaXMpOworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIoflRhZ0JpdFVuZGVmaW5lZCksIHZh
bHVlKTsKKyAgICAgICAganVtcHMuYXBwZW5kKGJyYW5jaDY0KEVxdWFsLCB2YWx1ZSwgVHJ1c3Rl
ZEltbTY0KEpTVmFsdWU6OmVuY29kZShqc051bGwoKSkpKSk7CisKKyAgICAgICAgaXNOb3RNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkLmxpbmsodGhpcyk7CisgICAgICAgIG1hc3F1ZXJhZGVzR2xvYmFs
T2JqZWN0SXNGb3JlaWduLmxpbmsodGhpcyk7CisKKyAgICAgICAgcmV0dXJuIGp1bXBzOworICAg
IH0KKwogICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0ludGVyZmFjZUpJVDo6ZW1p
dExvYWRKU0NlbGwodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lzdGVySUQgZHN0
KQogICAgIHsKICAgICAgICAgbG9hZDY0KGFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVySW5kZXgp
LCBkc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0
YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCAw
MTkyN2I2MzA0YzIzYzBkNWZiODQ0NjdmN2IzOThhOGE0YzFlZTNhLi5mMzNjMGIzNWYwYzZjZTI4
YmY5ZjNkMzgyYTA5MTFiMGZhMTY4Njk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnREYXRhLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50
Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlPZmZzZXQuaCIKKyNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBMTEludCB7CiAKQEAgLTE1NCw2ICsxNTUsNyBAQCB2b2lkIERhdGE6OnBlcmZv
cm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQoRnVuY3Rpb25Db2RlID09IDIpOwogICAg
IEFTU0VSVChNb2R1bGVDb2RlID09IDMpOwogCisgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2Fz
dDxwdHJkaWZmX3Q+KChyZWludGVycHJldF9jYXN0PFdyaXRlQmFycmllcjxKU0NlbGw+Kj4oMHg0
MDAwKS0+c2xvdCgpKSkgLSAweDQwMDApKTsKICAgICBzdGF0aWNfYXNzZXJ0KFB1dEJ5SWRQcmlt
YXJ5VHlwZU1hc2sgPT0gMHg2LCAiTExJbnQgYXNzdW1lcyBQdXRCeUlkUHJpbWFyeVR5cGVNYXNr
IGlzID09IDB4NiIpOwogICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJZFByaW1hcnlUeXBlU2Vjb25k
YXJ5ID09IDB4MCwgIkxMSW50IGFzc3VtZXMgUHV0QnlJZFByaW1hcnlUeXBlU2Vjb25kYXJ5IGlz
ID09IDB4MCIpOwogICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJZFByaW1hcnlUeXBlT2JqZWN0V2l0
aFN0cnVjdHVyZSA9PSAweDIsICJMTEludCBhc3N1bWVzIFB1dEJ5SWRQcmltYXJ5VHlwZU9iamVj
dFdpdGhTdHJ1Y3R1cmUgaXMgPT0gMHgyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCBjZGI1OWY0NGJlYjZjMjM1YzYzOTAzNDdkOTY4
ZjE2NWQzYzY2YWJiLi41YjQ3ZDhjMDU5YTI1ODg5OWEwZDMxNjUxYWNhMDgwYTUzZjc4YjVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAg
LTUyMiwzMCArNTIyLDI4IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9uZXdfcmVn
ZXhwKQogICAgIExMSU5UX1JFVFVSTihSZWdFeHBPYmplY3Q6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVnRXhwKSk7CiB9CiAKLUxM
SU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCitMTElOVF9T
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZikKIHsKICAgICBMTElOVF9CRUdJTigp
OwotICAgIAogICAgIEpTVmFsdWUgdmFsdWUgPSBMTElOVF9PUF9DKDIpLmpzVmFsdWUoKTsKLSAg
ICBKU1ZhbHVlIGJhc2VWYWwgPSBMTElOVF9PUF9DKDMpLmpzVmFsdWUoKTsKLSAgICBpZiAoYmFz
ZVZhbC5pc09iamVjdCgpKSB7Ci0gICAgICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmpl
Y3QoYmFzZVZhbCk7Ci0gICAgICAgIEFTU0VSVCghYmFzZU9iamVjdC0+c3RydWN0dXJlKCktPnR5
cGVJbmZvKCkuaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSgpKTsKLSAgICAgICAgaWYgKGJh
c2VPYmplY3QtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLmltcGxlbWVudHNIYXNJbnN0YW5jZSgp
KSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihiYXNlT2JqZWN0LT5t
ZXRob2RUYWJsZSgpLT5jdXN0b21IYXNJbnN0YW5jZShiYXNlT2JqZWN0LCBleGVjLCB2YWx1ZSkp
OwotICAgICAgICAgICAgTExJTlRfUkVUVVJOX1dJVEhfUENfQURKVVNUTUVOVChyZXN1bHQsIHBj
WzRdLnUub3BlcmFuZCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgTExJTlRfVEhST1coY3JlYXRl
SW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcihleGVjLCBiYXNlVmFsKSk7CisgICAgSlNW
YWx1ZSBwcm90byA9IExMSU5UX09QX0MoMykuanNWYWx1ZSgpOworICAgIEFTU0VSVCghdmFsdWUu
aXNPYmplY3QoKSB8fCAhcHJvdG8uaXNPYmplY3QoKSk7CisgICAgTExJTlRfUkVUVVJOKGpzQm9v
bGVhbihKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90bykpKTsK
IH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2YpCitMTElOVF9T
TE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pCiB7CiAgICAgTExJTlRf
QkVHSU4oKTsKKwogICAgIEpTVmFsdWUgdmFsdWUgPSBMTElOVF9PUF9DKDIpLmpzVmFsdWUoKTsK
LSAgICBKU1ZhbHVlIHByb3RvID0gTExJTlRfT1BfQygzKS5qc1ZhbHVlKCk7Ci0gICAgQVNTRVJU
KCF2YWx1ZS5pc09iamVjdCgpIHx8ICFwcm90by5pc09iamVjdCgpKTsKLSAgICBMTElOVF9SRVRV
Uk4oanNCb29sZWFuKEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIHBy
b3RvKSkpOworICAgIEpTVmFsdWUgY29uc3RydWN0b3IgPSBMTElOVF9PUF9DKDMpLmpzVmFsdWUo
KTsKKyAgICBKU1ZhbHVlIGhhc0luc3RhbmNlU3ltYm9sID0gTExJTlRfT1BfQyg0KS5qc1ZhbHVl
KCk7CisKKyAgICBBU1NFUlQoY29uc3RydWN0b3IuaXNPYmplY3QoKSk7CisgICAgQVNTRVJUKGhh
c0luc3RhbmNlU3ltYm9sICE9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZnVuY3Rpb25Q
cm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSB8fCAhY29uc3RydWN0b3IuZ2V0T2JqZWN0
KCktPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLmltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2Uo
KSk7CisKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihjb25zdHJ1Y3Rvci5nZXRPYmpl
Y3QoKS0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIGhhc0luc3RhbmNlU3ltYm9sKSk7CisgICAg
TExJTlRfUkVUVVJOKHJlc3VsdCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9nZXRfYnlfaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRo
cy5oCmluZGV4IDI3MTMyNGIxODQ1M2Q3MmRjOGI3NjE4MGJhMDMwNGFiNDU2NTk1OTcuLjBkNWM4
ZGE0M2IwMDlhYjk3YWIyZjcyYTg3NWMxNGViNTY2MDM5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCkBAIC02Nyw4ICs2Nyw4IEBAIExMSU5UX1NM
T1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2FycmF5KTsKIExMSU5UX1NMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2FycmF5X3dpdGhfc2l6ZSk7CiBMTElOVF9TTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25ld19hcnJheV9idWZmZXIpOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfcmVnZXhwKTsKLUxMSU5UX1NMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKTsKIExMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZik7CitMTElOVF9TTE9XX1BBVEhf
SElEREVOX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKTsKIExMSU5UX1NMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKTsKIExMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfZ2V0X2FyZ3VtZW50c19sZW5ndGgpOwogTExJTlRfU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBl
MWQxMjJjZDAzMDY1MmM1Mjg1YjBjNDA1MmEzOGUwMDQyZGJhNzVlLi5hOGVlMTZlOGY1MGViNWIw
NWYyNzQxZDI5ZDI2NjVjODIxNmFlM2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMTE3NywxNSAr
MTE3NywzMiBAQCBfbGxpbnRfb3BfYml0b3I6CiAKIF9sbGludF9vcF9jaGVja19oYXNfaW5zdGFu
Y2U6CiAgICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDEyW1BDXSwgdDEKLSAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MSwgQ2VsbFRhZywgdDAsIC5vcENoZWNrSGFzSW5z
dGFuY2VTbG93KQotICAgIGJ0YnogSlNDZWxsOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50c0RlZmF1
bHRIYXNJbnN0YW5jZSwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cKLSAgICBkaXNwYXRjaCg1KQog
Ci0ub3BDaGVja0hhc0luc3RhbmNlU2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCi0gICAgZGlzcGF0Y2goMCkKKyAgICBsb2FkaXNGcm9t
SW5zdHJ1Y3Rpb24oMSwgdDMpCisgICAgc3RvcmVpIEJvb2xlYW5UYWcsIFRhZ09mZnNldFtjZnIs
IHQzLCA4XQogCisgICAgIyBGaXJzdCBjaGVjayBpZiBoYXNJbnN0YW5jZVN5bWJvbCBpcyB0aGUg
b25lIG9uIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdCisgICAgbG9hZGlz
RnJvbUluc3RydWN0aW9uKDMsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQx
LCB0MikKKyAgICBiaW5lcSB0MSwgQ2VsbFRhZywgLm9wQ2hlY2tIYXNJbnN0YW5jZVN5bWJvbE5v
dENlbGwKKworICAgICMgV2UgZG9uJ3QgbmVlZCBoYXNJbnN0YW5jZVN5bWJvbCdzIHRhZyByZWdp
c3RlciBhbnltb3JlLgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDFdLCB0MQorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0
OjptX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uW3QxXSwgdDEKKyAgICBi
aW5lcSB0MSwgdDIsIC5vcENoZWNrSGFzSW5zdGFuY2VTeW1ib2xOb3REZWZhdWx0CisKKyAgICAj
IFdlIGtub3cgdGhlIGNvbnN0cnVjdG9yIGlzIGEgY2VsbC4KKyAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oMiwgdDApCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWRVbmNoZWNrZWQo
dDAsIHQxKQorICAgIHRieiBKU0NlbGw6Om1fZmxhZ3NbdDFdLCBJbXBsZW1lbnRzRGVmYXVsdEhh
c0luc3RhbmNlLCB0MAorICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQzLCA4XQor
ICAgIGRpc3BhdGNoKDQpCisKKy5vcENoZWNrSGFzSW5zdGFuY2VTeW1ib2xOb3RDZWxsOgorLm9w
Q2hlY2tIYXNJbnN0YW5jZVN5bWJvbE5vdERlZmF1bHQ6CisgICAgc3RvcmVwIDAsIFBheWxvYWRP
ZmZzZXRbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg0KQogCiBfbGxpbnRfb3BfaW5zdGFuY2Vv
ZjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCkBAIC0xMjE1LDYgKzEyMzIsMTEgQEAgX2xsaW50X29w
X2luc3RhbmNlb2Y6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2Vv
ZikKICAgICBkaXNwYXRjaCg0KQogCitfbGxpbnRfb3BfaW5zdGFuY2VvZl9jdXN0b206CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luc3Rh
bmNlb2ZfY3VzdG9tKQorICAgIGRpc3BhdGNoKDUpCisKIAogX2xsaW50X29wX2lzX3VuZGVmaW5l
ZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IDQ5ZjNjZDdhNzQ2Mzg0ZTBl
NzE5MmQwMWE4NjlhNzQwMDQxZDc5NTkuLmFiNGIwNzY2Y2I1ODJkNGM2YzY3Y2M2ZTU5YzQzYjY0
MjgyOTJkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMDcxLDE0ICsxMDcxLDI2IEBAIF9sbGludF9vcF9i
aXRvcjoKIAogX2xsaW50X29wX2NoZWNrX2hhc19pbnN0YW5jZToKICAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQzKQorCiAgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDMsIHQxKQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQxLCB0MCwg
Lm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cpCi0gICAgYnRieiBKU0NlbGw6Om1fZmxhZ3NbdDBdLCBJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdwotICAg
IGRpc3BhdGNoKDUpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgbG9h
ZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVj
dFt0Ml0sIHQyCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZnVuY3Rpb25Qcm90b0hhc0lu
c3RhbmNlU3ltYm9sRnVuY3Rpb25bdDJdLCB0MgorICAgIGJxbmVxIHQwLCB0MiwgLm9wQ2hlY2tI
YXNJbnN0YW5jZU5vdERlZmF1bHRTeW1ib2wKIAotLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3c6Ci0g
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKQotICAg
IGRpc3BhdGNoKDApCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDIsIHQxKQorICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAgIHRieiBKU0NlbGw6Om1fZmxhZ3NbdDBdLCBJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCB0MQorICAgIG9ycSBWYWx1ZUZhbHNlLCB0MQor
ICAgIHN0b3JlcSB0MSwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLm9wQ2hlY2tI
YXNJbnN0YW5jZU5vdERlZmF1bHRTeW1ib2w6CisgICAgc3RvcmVxIFZhbHVlVHJ1ZSwgdDEKKyAg
ICBzdG9yZXEgdDEsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQpCiAKIAogX2xsaW50X29w
X2luc3RhbmNlb2Y6CkBAIC0xMTA5LDYgKzExMjEsMTAgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6
CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZikKICAgICBkaXNw
YXRjaCg0KQogCitfbGxpbnRfb3BfaW5zdGFuY2VvZl9jdXN0b206CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9t
KQorICAgIGRpc3BhdGNoKDUpCiAKIF9sbGludF9vcF9pc191bmRlZmluZWQ6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmgKaW5kZXggMzdjNTRkMmZlZDU2MmQ4MGJmYjA1ZjJmZjg5NTI5MDg4NjhiZTYw
MC4uNmM2NGI2MTFlMzZhNmNiMDM0NjRlYWIwYTVkMzViMjk1ZDE5Mzk3MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yNTAs
NyArMjUwLDYgQEAKICAgICBtYWNybyh5aWVsZCkKIAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZB
VEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTF9OT1RfSU1QTEVNRU5URURfWUVU
KG1hY3JvKVwKLSAgICBtYWNybyhoYXNJbnN0YW5jZSkgXAogICAgIG1hY3JvKGlzQ29uY2F0U3By
ZWFkYWJsZSkgXAogICAgIG1hY3JvKG1hdGNoKSBcCiAgICAgbWFjcm8ocmVwbGFjZSkgXApAQCAt
MjYwLDYgKzI1OSw3IEBACiAgICAgbWFjcm8odG9QcmltaXRpdmUpCiAKICNkZWZpbmUgSlNDX0NP
TU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0wobWFjcm8pIFwK
KyAgICBtYWNybyhoYXNJbnN0YW5jZSkgXAogICAgIG1hY3JvKGl0ZXJhdG9yKSBcCiAgICAgbWFj
cm8odW5zY29wYWJsZXMpIFwKICAgICBtYWNybyh0b1N0cmluZ1RhZykKQEAgLTM0MSw2ICszNDEs
OSBAQAogICAgIG1hY3JvKENvbGxhdG9yKSBcCiAgICAgbWFjcm8oRGF0ZVRpbWVGb3JtYXQpIFwK
ICAgICBtYWNybyhOdW1iZXJGb3JtYXQpIFwKKyAgICBtYWNybyhpc0JvdW5kRnVuY3Rpb24pIFwK
KyAgICBtYWNybyhoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pIFwKKyAgICBtYWNybyhpbnN0YW5j
ZU9mKSBcCiAKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IDAxMzFiOWYxYzNkMzM0YmFlMDVj
MWM5YjYwMmIwYjlkNTI5ZjNhMzAuLjRjNDZjZTA3YTM2MzAzODU1NmE1YzllZTQ4NTA5NGVlNzM4
ODQxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgc3RhdGljIFN0cmluZyBpbnZhbGlkUGFy
YW1ldGVySW5Tb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY28K
ICAgICByZXR1cm4gbWFrZVN0cmluZyhyaWdodEhhbmRTaWRlLCAiIGlzIG5vdCBhbiBPYmplY3Qu
IChldmFsdWF0aW5nICciLCBzb3VyY2VUZXh0LCAiJykiKTsKIH0KIAotc3RhdGljIFN0cmluZyBp
bnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3Jp
Z2luYWxNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVRleHQsIFJ1bnRpbWVUeXBlLCBFcnJv
ckluc3RhbmNlOjpTb3VyY2VUZXh0V2hlcmVFcnJvck9jY3VycmVkIG9jY3VycmVuY2UpCitpbmxp
bmUgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIoY29uc3Qg
U3RyaW5nJiBjb250ZW50LCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdo
ZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNlKQogewogICAgIGlmIChvY2N1cnJlbmNlID09IEVy
cm9ySW5zdGFuY2U6OkZvdW5kQXBwcm94aW1hdGVTb3VyY2UpCiAgICAgICAgIHJldHVybiBkZWZh
dWx0QXBwcm94aW1hdGVTb3VyY2VFcnJvcihvcmlnaW5hbE1lc3NhZ2UsIHNvdXJjZVRleHQpOwpA
QCAtMjIyLDcgKzIyMiwxNyBAQCBzdGF0aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5j
ZW9mU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lcwogCiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIGluc3RhbmNlb2ZMZW5ndGggPSAxMDsKICAgICBTdHJpbmcgcmlnaHRI
YW5kU2lkZSA9IHNvdXJjZVRleHQuc3Vic3RyaW5nKGluc3RhbmNlb2ZJbmRleCArIGluc3RhbmNl
b2ZMZW5ndGgpLnNpbXBsaWZ5V2hpdGVTcGFjZSgpOwotICAgIHJldHVybiBtYWtlU3RyaW5nKHJp
Z2h0SGFuZFNpZGUsICIgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICciLCBzb3VyY2VU
ZXh0LCAiJykiKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZyhyaWdodEhhbmRTaWRlLCBjb250ZW50
LCAiLiAoZXZhbHVhdGluZyAnIiwgc291cmNlVGV4dCwgIicpIik7Cit9CisKK3N0YXRpYyBTdHJp
bmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZOb3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKGNv
bnN0IFN0cmluZyYgb3JpZ2luYWxNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVRleHQsIFJ1
bnRpbWVUeXBlIHJ1bnRpbWVUeXBlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VUZXh0V2hlcmVFcnJv
ck9jY3VycmVkIG9jY3VycmVuY2UpCit7CisgICAgcmV0dXJuIGludmFsaWRQYXJhbWV0ZXJJbnN0
YW5jZW9mU291cmNlQXBwZW5kZXIoV1RGOjptYWtlU3RyaW5nKCIgaXMgbm90IGEgZnVuY3Rpb24i
KSwgb3JpZ2luYWxNZXNzYWdlLCBzb3VyY2VUZXh0LCBydW50aW1lVHlwZSwgb2NjdXJyZW5jZSk7
Cit9CisKK3N0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZIYXNJbnN0YW5j
ZVN5bWJvbE5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5cGUgcnVudGltZVR5cGUs
IEVycm9ySW5zdGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkK
K3sKKyAgICByZXR1cm4gaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRlcihX
VEY6Om1ha2VTdHJpbmcoIltTeW1ib2wuaGFzSW5zdGFuY2VdIGlzIG5vdCBhIGZ1bmN0aW9uLCB1
bmRlZmluZWQsIG9yIG51bGwiKSwgb3JpZ2luYWxNZXNzYWdlLCBzb3VyY2VUZXh0LCBydW50aW1l
VHlwZSwgb2NjdXJyZW5jZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5j
ZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCkBAIC0yNDUsOSArMjU1LDE0IEBAIEpTT2JqZWN0
KiBjcmVhdGVJbnZhbGlkSW5QYXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
dmFsdWUpCiAgICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMsIHZhbHVlLCBtYWtlU3RyaW5nKCJp
cyBub3QgYW4gT2JqZWN0LiIpLCBpbnZhbGlkUGFyYW1ldGVySW5Tb3VyY2VBcHBlbmRlcik7CiB9
CiAKLUpTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFu
Y2VvZlBhcmFtZXRlckVycm9yTm90RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZh
bHVlKQoreworICAgIHJldHVybiBjcmVhdGVFcnJvcihleGVjLCB2YWx1ZSwgbWFrZVN0cmluZygi
IGlzIG5vdCBhIGZ1bmN0aW9uIiksIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mTm90RnVuY3Rp
b25Tb3VyY2VBcHBlbmRlcik7Cit9CisKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2Vv
ZlBhcmFtZXRlckVycm9ySGFzSW5zdGFuY2VTeW1ib2xOb3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMsIHZhbHVl
LCBtYWtlU3RyaW5nKCJpcyBub3QgYSBmdW5jdGlvbi4iKSwgaW52YWxpZFBhcmFtZXRlckluc3Rh
bmNlb2ZTb3VyY2VBcHBlbmRlcik7CisgICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMsIHZhbHVl
LCBtYWtlU3RyaW5nKCJbU3ltYm9sLmhhc0luc3RhbmNlXSBpcyBub3QgYSBmdW5jdGlvbiwgdW5k
ZWZpbmVkLCBvciBudWxsIiksIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mSGFzSW5zdGFuY2VT
eW1ib2xOb3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZU5v
dEFDb25zdHJ1Y3RvckVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAppbmRleCBj
NmJhMDJlM2ZiYjAzM2IyMWYxZDkzYTExZWE3Y2Q5ZDMwZjE5MzlhLi43ZGQxMmU2NmI1MzBkYjY1
ZGRhMmU1Nzc3N2IxZTZmMGMxODhkZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCkBAIC00NSw3ICs0NSw4IEBAIEpTT2JqZWN0KiBj
cmVhdGVURFpFcnJvcihFeGVjU3RhdGUqKTsKIEpTT2JqZWN0KiBjcmVhdGVOb3RBbk9iamVjdEVy
cm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwogSlNPYmplY3QqIGNyZWF0ZUludmFsaWRGdW5jdGlv
bkFwcGx5UGFyYW1ldGVyRXJyb3IoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3Jl
YXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3IoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7Ci1KU09iamVj
dCogY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqLCBKU1Zh
bHVlKTsKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yTm90
RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CitKU09iamVjdCogY3JlYXRlSW52YWxpZElu
c3RhbmNlb2ZQYXJhbWV0ZXJFcnJvckhhc0luc3RhbmNlU3ltYm9sTm90RnVuY3Rpb24oRXhlY1N0
YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlTm90QUNvbnN0cnVjdG9yRXJyb3IoRXhl
Y1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlTm90QUZ1bmN0aW9uRXJyb3IoRXhl
Y1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlRXJyb3JGb3JJbnZhbGlkR2xvYmFs
QXNzaWdubWVudChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCA5NzBkMDEy
ODZjYTgwOWY4MGM5MWYzMTM3NWNmMmZjMjgzNjMyMmI0Li5hYTg3NTYxMDNiNzI0MDdkMjc3N2Vk
YjZhZmQ2MTVkYWZmNDZkMTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgRnVuY3Rp
b25Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CiAK
LXZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTRnVuY3Rpb24qKiBjYWxsRnVu
Y3Rpb24sIEpTRnVuY3Rpb24qKiBhcHBseUZ1bmN0aW9uKQordm9pZCBGdW5jdGlvblByb3RvdHlw
ZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNGdW5jdGlvbioqIGNhbGxGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGFw
cGx5RnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBoYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAKQEAgLTYyLDYgKzYyLDcgQEAgdm9pZCBGdW5jdGlv
blByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGcKIAogICAgICphcHBseUZ1bmN0aW9uID0gcHV0RGlyZWN0QnVpbHRpbkZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuYXBwbHlQdWJsaWNOYW1lKCksIGZ1bmN0aW9uUHJvdG90eXBlQXBwbHlD
b2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOwogICAgICpjYWxsRnVuY3Rpb24gPSBwdXREaXJl
Y3RCdWlsdGluRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jYWxsUHVibGljTmFtZSgpLCBmdW5jdGlvblBy
b3RvdHlwZUNhbGxDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOworICAgICpoYXNJbnN0YW5j
ZVN5bWJvbEZ1bmN0aW9uID0gcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QsIHZtLnByb3BlcnR5TmFtZXMtPmhhc0luc3RhbmNlU3ltYm9sLCBmdW5jdGlvblByb3RvdHlw
ZVN5bWJvbEhhc0luc3RhbmNlQ29kZUdlbmVyYXRvcih2bSksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKIAogICAgIEpTRnVuY3Rpb24qIGJpbmRGdW5jdGlvbiA9IEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAxLCB2bS5wcm9wZXJ0eU5hbWVzLT5iaW5kLnN0
cmluZygpLCBmdW5jdGlvblByb3RvRnVuY0JpbmQpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5iaW5kLCBiaW5kRnVuY3Rpb24sIERvbnRFbnVt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlw
ZS5oCmluZGV4IDUyY2U4ZjExYzVkZDdkMTAzMTU1NjkwM2U1YWNhYjBkMmFkNGMwZjguLmFiZTUz
M2EzM2ExZjM3OGZlZGI4MjE0ZjU2Y2M1YWZlMGZhMWU2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtMzYsNyArMzYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgfQogCi0gICAgdm9pZCBh
ZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU0Z1bmN0
aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7CisgICAgdm9p
ZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU0Z1
bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbiwgSlNGdW5j
dGlvbioqIGhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90bykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAppbmRleCA4YzVjYzJlZDM5MDQ4MmVhYzJlNzc1YTRmMGMy
ZDJkNWM0Yzk5ZTYxLi4wZjA0OWY5MGZmYmU2YWI3M2I5MTdlOTExNzNlMmQxZjFiMjgxOTRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5j
cHAKQEAgLTc0LDYgKzc0LDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRG
dW5jdGlvbkNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjb25zdHJ1Y3QoZXhlYywgdGFyZ2V0RnVuY3Rpb24sIGNvbnN0cnVjdFR5cGUsIGNvbnN0
cnVjdERhdGEsIGFyZ3MpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpc0Jv
dW5kRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNWYWx1ZShzdGF0aWNfY2FzdDxib29sPihqc0R5bmFtaWNDYXN0PEpTQm91bmRGdW5jdGlv
bio+KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQor
eworICAgIEpTQm91bmRGdW5jdGlvbiogYm91bmRPYmplY3QgPSBqc0Nhc3Q8SlNCb3VuZEZ1bmN0
aW9uKj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIEpTVmFsdWUgdmFsdWUgPSBl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNCb29sZWFuKGJvdW5kT2JqZWN0LT50YXJnZXRGdW5jdGlvbigpLT5oYXNJbnN0YW5jZShleGVj
LCB2YWx1ZSkpKTsKK30KKworCiBKU0JvdW5kRnVuY3Rpb24qIEpTQm91bmRGdW5jdGlvbjo6Y3Jl
YXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRhcmdl
dEZ1bmN0aW9uLCBKU1ZhbHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBib3VuZEFyZ3MsIGludCBsZW5n
dGgsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBDb25zdHJ1Y3REYXRhIGNvbnN0cnVjdERh
dGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVu
Y3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5o
CmluZGV4IGFmMmE2MzIzZDUzNzFlMjA1NjBjMGYyNTU2Y2M1Yjg3ZjYyNTY4ZTkuLmMzOGRjNjdk
NDNjNjliODUzNWRkNWFhZDkxMGZiMzZiMmU3MGNkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCkBAIC0zMiw2ICszMiw4IEBAIG5hbWVz
cGFjZSBKU0MgewogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25D
YWxsKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0
aW9uQ29uc3RydWN0KEV4ZWNTdGF0ZSopOworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBp
c0JvdW5kRnVuY3Rpb24oRXhlY1N0YXRlKik7CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbihFeGVjU3RhdGUqKTsKIAogY2xhc3MgSlNCb3VuZEZ1
bmN0aW9uIDogcHVibGljIEpTRnVuY3Rpb24gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDdkOTk2ODAxMTI0ZTVh
NTRhMjkwOTE1ZTE3ZDRkMDY1MDM5NjhkOTIuLjIzNmM1YzliMzk1ZTU4NmMzZjFjNTE0OTJiYmY5
ZTYyZTE4NzM1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKQEAgLTI4NiwxMiArMjg2LDE0IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6
OmluaXQoVk0mIHZtKQogICAgIG1faW50ZXJuYWxGdW5jdGlvblN0cnVjdHVyZS5zZXQodm0sIHRo
aXMsIEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlv
blByb3RvdHlwZS5nZXQoKSkpOwogICAgIEpTRnVuY3Rpb24qIGNhbGxGdW5jdGlvbiA9IDA7CiAg
ICAgSlNGdW5jdGlvbiogYXBwbHlGdW5jdGlvbiA9IDA7Ci0gICAgbV9mdW5jdGlvblByb3RvdHlw
ZS0+YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKGV4ZWMsIHRoaXMsICZjYWxsRnVuY3Rpb24sICZhcHBs
eUZ1bmN0aW9uKTsKKyAgICBKU0Z1bmN0aW9uKiBoYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uID0g
MDsKKyAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5hZGRGdW5jdGlvblByb3BlcnRpZXMoZXhlYywg
dGhpcywgJmNhbGxGdW5jdGlvbiwgJmFwcGx5RnVuY3Rpb24sICZoYXNJbnN0YW5jZVN5bWJvbEZ1
bmN0aW9uKTsKICAgICBtX2NhbGxGdW5jdGlvbi5zZXQodm0sIHRoaXMsIGNhbGxGdW5jdGlvbik7
CiAgICAgbV9hcHBseUZ1bmN0aW9uLnNldCh2bSwgdGhpcywgYXBwbHlGdW5jdGlvbik7CiAgICAg
bV9hcnJheVByb3RvVmFsdWVzRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDAsIHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlcy5zdHJpbmcoKSwgYXJyYXlQ
cm90b0Z1bmNWYWx1ZXMpKTsKICAgICBtX2luaXRpYWxpemVQcm9taXNlRnVuY3Rpb24uc2V0KHZt
LCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVy
YXRpb25zSW5pdGlhbGl6ZVByb21pc2VDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcykpOwogICAgIG1f
bmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNy
ZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNOZXdQcm9taXNlQ2FwYWJp
bGl0eUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSk7CisgICAgbV9mdW5jdGlvblByb3RvSGFzSW5z
dGFuY2VTeW1ib2xGdW5jdGlvbi5zZXQodm0sIHRoaXMsIGhhc0luc3RhbmNlU3ltYm9sRnVuY3Rp
b24pOwogICAgIG1fbnVsbEdldHRlckZ1bmN0aW9uLnNldCh2bSwgdGhpcywgTnVsbEdldHRlckZ1
bmN0aW9uOjpjcmVhdGUodm0sIE51bGxHZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKHZt
LCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSkpOwogICAgIG1fbnVsbFNldHRlckZ1
bmN0aW9uLnNldCh2bSwgdGhpcywgTnVsbFNldHRlckZ1bmN0aW9uOjpjcmVhdGUodm0sIE51bGxT
ZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90
eXBlLmdldCgpKSkpOwogICAgIG1fb2JqZWN0UHJvdG90eXBlLnNldCh2bSwgdGhpcywgT2JqZWN0
UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIE9iamVjdFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0
dXJlKHZtLCB0aGlzLCBqc051bGwoKSkpKTsKQEAgLTUyMSw2ICs1MjMsOSBAQCBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1l
ICMjIENvbnN0cnVjdAogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVG9JbnRlZ2VyID0gSlNG
dW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3RUb0ludGVnZXJD
b2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUeXBl
ZEFycmF5TGVuZ3RoID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwg
dHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aCk7CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0
ZUZ1bmNUeXBlZEFycmF5U29ydCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KTsKKyAgICBKU0Z1bmN0aW9uKiBw
cml2YXRlRnVuY0lzQm91bmRGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MCwgU3RyaW5nKCksIGlzQm91bmRGdW5jdGlvbik7CisgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1
bmNIYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMs
IDAsIFN0cmluZygpLCBoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pOworICAgIEpTRnVuY3Rpb24q
IHByaXZhdGVGdW5jSW5zdGFuY2VPZiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwg
U3RyaW5nKCksIG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZik7CiAKICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8gc3RhdGljR2xvYmFsc1tdID0gewogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+TmFOLCBqc05hTigpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCkBAIC01MzUsNiArNTQwLDkgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPlR5cGVFcnJvclByaXZh
dGVOYW1lLCBtX3R5cGVFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT50eXBlZEFycmF5TGVuZ3RoUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jVHlwZWRBcnJheUxl
bmd0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheVNvcnRQcml2YXRlTmFtZSwg
cHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aXNCb3Vu
ZEZ1bmN0aW9uUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb25Qcml2YXRlTmFtZSwgcHJp
dmF0ZUZ1bmNIYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
Pmluc3RhbmNlT2ZQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJbnN0YW5jZU9mLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5CdWlsdGluTG9nUHJpdmF0ZU5hbWUsIGJ1aWx0aW5Mb2csIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPkFycmF5UHJpdmF0ZU5hbWUsIGFycmF5Q29uc3RydWN0b3IsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPk51bWJlclByaXZhdGVOYW1lLCBudW1iZXJDb25zdHJ1Y3Rvciwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLApAQCAtODMyLDYgKzg0MCw3IEBAIHZv
aWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9hcnJheVByb3Rv
VmFsdWVzRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2luaXRp
YWxpemVQcm9taXNlRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5t
X25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24pOworICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKTsKICAgICB2
aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV90aHJvd1R5cGVFcnJvckdldHRlclNldHRlcik7
CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbW9kdWxlTG9hZGVyKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggMDMy
NTMyNDk4NWEwMzhlNjk3ODE0Yzk4MDc5YmNkZDQzZWI3NjcyOS4uM2NlZmVlNmE0Zjg2ODlkZjAx
NWYyZTdjNzdkMGFmNjkxZDYwNjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0yMjIsNiArMjIyLDcgQEAgcHJvdGVjdGVkOgogICAg
IFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2FycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbjsKICAg
ICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9pbml0aWFsaXplUHJvbWlzZUZ1bmN0aW9uOwog
ICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rp
b247CisgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fZnVuY3Rpb25Qcm90b0hhc0luc3Rh
bmNlU3ltYm9sRnVuY3Rpb247CiAgICAgV3JpdGVCYXJyaWVyPEdldHRlclNldHRlcj4gbV90aHJv
d1R5cGVFcnJvckdldHRlclNldHRlcjsKIAogICAgIFdyaXRlQmFycmllcjxNb2R1bGVMb2FkZXJP
YmplY3Q+IG1fbW9kdWxlTG9hZGVyOwpAQCAtNDM4LDYgKzQzOSw3IEBAIHB1YmxpYzoKICAgICBK
U0Z1bmN0aW9uKiBhcnJheVByb3RvVmFsdWVzRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Fy
cmF5UHJvdG9WYWx1ZXNGdW5jdGlvbi5nZXQoKTsgfQogICAgIEpTRnVuY3Rpb24qIGluaXRpYWxp
emVQcm9taXNlRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxpemVQcm9taXNlRnVu
Y3Rpb24uZ2V0KCk7IH0KICAgICBKU0Z1bmN0aW9uKiBuZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9uZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uLmdldCgp
OyB9CisgICAgSlNGdW5jdGlvbiogZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0
aW9uLmdldCgpOyB9CiAgICAgR2V0dGVyU2V0dGVyKiB0aHJvd1R5cGVFcnJvckdldHRlclNldHRl
cihWTSYgdm0pCiAgICAgewogICAgICAgICBpZiAoIW1fdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggYTBm
NzcxOTQ3YzA4ZjdlMTMyMTA5NjcyYmE4MzNjZDIxYjgyYmQzNC4uNDQ3MzA5ZTI5ODEyYzg5YjNk
NTE3YjkzYjdjNDQ1YTEzMDc1MDYyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcApAQCAtMTQ1NywxOCArMTQ1Nyw0MCBAQCBjb25zdCBIYXNoVGFibGVWYWx1
ZSogSlNPYmplY3Q6OmZpbmRQcm9wZXJ0eUhhc2hFbnRyeShQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKQogICAgIHJldHVybiAwOwogfQogCi1ib29sIEpTT2JqZWN0OjpoYXNJbnN0YW5jZShFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitib29sIEpTT2JqZWN0OjpoYXNJbnN0YW5jZShF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUgaGFzSW5zdGFuY2VTeW1ib2wp
CiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKworICAgIGlmICghaGFzSW5zdGFuY2VTeW1i
b2wuaXNVbmRlZmluZWRPck51bGwoKSAmJiBoYXNJbnN0YW5jZVN5bWJvbCAhPSBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9u
KCkpIHsKKyAgICAgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgICAgIENhbGxUeXBlIGNhbGxU
eXBlID0gSlNDOjpnZXRDYWxsRGF0YShoYXNJbnN0YW5jZVN5bWJvbCwgY2FsbERhdGEpOworICAg
ICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7CisgICAgICAgICAgICB2bS50aHJv
d0V4Y2VwdGlvbihleGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9ySGFz
SW5zdGFuY2VTeW1ib2xOb3RGdW5jdGlvbihleGVjLCB0aGlzKSk7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdz
OworICAgICAgICBhcmdzLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0g
Y2FsbChleGVjLCBoYXNJbnN0YW5jZVN5bWJvbCwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzLCBh
cmdzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b0Jvb2xlYW4oZXhlYyk7CisgICAgfQorCiAg
ICAgVHlwZUluZm8gaW5mbyA9IHN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCk7CiAgICAgaWYgKGlu
Zm8uaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSgpKQogICAgICAgICByZXR1cm4gZGVmYXVs
dEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBnZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSkpOwogICAgIGlmIChpbmZvLmltcGxlbWVudHNIYXNJbnN0YW5jZSgpKQogICAg
ICAgICByZXR1cm4gbWV0aG9kVGFibGUodm0pLT5jdXN0b21IYXNJbnN0YW5jZSh0aGlzLCBleGVj
LCB2YWx1ZSk7Ci0gICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlSW52YWxpZEluc3Rh
bmNlb2ZQYXJhbWV0ZXJFcnJvcihleGVjLCB0aGlzKSk7CisgICAgdm0udGhyb3dFeGNlcHRpb24o
ZXhlYywgY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvck5vdEZ1bmN0aW9uKGV4
ZWMsIHRoaXMpKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgSlNPYmplY3Q6Omhhc0lu
c3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1ZhbHVlIGhh
c0luc3RhbmNlU3ltYm9sID0gZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5oYXNJbnN0
YW5jZVN5bWJvbCk7CisKKyAgICByZXR1cm4gaGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIGhhc0lu
c3RhbmNlU3ltYm9sKTsKK30KKwogYm9vbCBKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90bykKIHsKICAgICBpZiAo
IXZhbHVlLmlzT2JqZWN0KCkpCkBAIC0xNDg3LDYgKzE1MDksMTQgQEAgYm9vbCBKU09iamVjdDo6
ZGVmYXVsdEhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1
ZSBwcm90bykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAg
ICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCk7CisgICAgSlNWYWx1
ZSBwcm90byA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOworCisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0YW5jZShleGVjLCB2
YWx1ZSwgcHJvdG8pKSk7Cit9CisKIHZvaWQgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVy
dHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgb2JqZWN0LT5tZXRob2RUYWJs
ZShleGVjLT52bSgpKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGV4ZWMsIHByb3BlcnR5
TmFtZXMsIG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5k
ZXggYWJmNWE1YmQ5NmY3ZTE0MmFlZDA5Zjc3YTMzOWY0M2U4OGFhMGY2Zi4uM2JkZTk5MGZlMTMw
OWU5YTc1ZTVjYjkyNGNhNzA2ZWYwZDZiMjJjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCkBAIC00ODUsNiArNDg1LDcgQEAgcHVibGljOgogCiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIEpTVmFsdWUgZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0Kiwg
RXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSk7CiAKKyAgICBKU19FWFBPUlRfUFJJ
VkFURSBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUg
aGFzSW5zdGFuY2VTeW1ib2wpOwogICAgIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNW
YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZGVmYXVsdEhhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEpT
VmFsdWUsIEpTVmFsdWUgcHJvdG90eXBlUHJvcGVydHkpOwogCkBAIC05NzQsNiArOTc1LDggQEAg
cHJpdmF0ZToKICAgICB9CiB9OwogCitKU19FWFBPUlRfUFJJVkFURSBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZihFeGVjU3RhdGUqKTsKKwog
aW5saW5lIEpTRmluYWxPYmplY3QqIEpTRmluYWxPYmplY3Q6OmNyZWF0ZSgKICAgICBFeGVjU3Rh
dGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKaW5kZXggMGY3
MGUxZWEwMGM2MjIwYWZkODAyNzg5NjgxYjlkOThjYWE4NGE5Ni4uYjcyN2QxODVlNGQ3MGUxOTll
ZmZjZTBlMWFjYTA0Y2Y5NTI4MzU2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV3JpdGVCYXJyaWVyLmgKQEAgLTE1MiwxNCArMTUyLDkgQEAgcHVibGljOgogICAgIGJvb2wg
aXNHZXR0ZXJTZXR0ZXIoKSBjb25zdCB7IHJldHVybiBnZXQoKS5pc0dldHRlclNldHRlcigpOyB9
CiAgICAgYm9vbCBpc0N1c3RvbUdldHRlclNldHRlcigpIGNvbnN0IHsgcmV0dXJuIGdldCgpLmlz
Q3VzdG9tR2V0dGVyU2V0dGVyKCk7IH0KICAgICAKLSAgICBKU1ZhbHVlKiBzbG90KCkKKyAgICBK
U1ZhbHVlKiBzbG90KCkgY29uc3QKICAgICB7IAotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAg
ICBFbmNvZGVkSlNWYWx1ZSogdjsKLSAgICAgICAgICAgIEpTVmFsdWUqIHNsb3Q7Ci0gICAgICAg
IH0gdTsKLSAgICAgICAgdS52ID0gJm1fdmFsdWU7Ci0gICAgICAgIHJldHVybiB1LnNsb3Q7Cisg
ICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SlNWYWx1ZSo+KCZtX3ZhbHVlKTsKICAgICB9CiAg
ICAgCiAgICAgaW50MzJfdCogdGFnUG9pbnRlcigpIHsgcmV0dXJuICZiaXR3aXNlX2Nhc3Q8RW5j
b2RlZFZhbHVlRGVzY3JpcHRvcio+KCZtX3ZhbHVlKS0+YXNCaXRzLnRhZzsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zeW1ib2wtaGFzSW5zdGFuY2Uu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N5bWJvbC1oYXNJbnN0YW5j
ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ODAxZWI4YjRkN2RjZjFiZjNhYzY3ZWJmNjRlZmQ3MmY2ZmEzZDMz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9z
eW1ib2wtaGFzSW5zdGFuY2UuanMKQEAgLTAsMCArMSw1NCBAQAorLy8gVGhpcyBmaWxlIHRlc3Rz
IHRoZSBmdW5jdGlvbmFsaXR5IG9mIFN5bWJvbC5oYXNJbnN0YW5jZS4KKworCisvLyBUZXN0IGEg
Y3VzdG9tIFN5bWJvbC5oYXNJbnN0YW5jZSBvbiBhIGZ1bmN0aW9uIG9iamVjdC4KK2Z1bmN0aW9u
IENvbnN0cnVjdG9yKHgpIHt9Citmb28gPSBuZXcgQ29uc3RydWN0b3IoKTsKKworaWYgKCEoZm9v
IGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKQorICAgIHRocm93ICJzaG91bGQgYmUgaW5zdGFuY2Vv
ZiI7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShDb25zdHJ1Y3RvciwgU3ltYm9sLmhhc0luc3Rh
bmNlLCB7dmFsdWU6IGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgaWYgKHRoaXMgIT09IENvbnN0cnVj
dG9yKQorICAgICAgICB0aHJvdyAifHRoaXN8IHNob3VsZCBiZSBDb25zdHJ1Y3RvciI7CisgICAg
aWYgKHZhbHVlICE9PSBmb28pCisgICAgICAgIHRocm93ICJmaXJzdCBhcmd1bWVudCBzaG91bGQg
YmUgZm9vIjsKKyAgICByZXR1cm4gZmFsc2U7Cit9IH0pOworCisKK2lmIChmb28gaW5zdGFuY2Vv
ZiBDb25zdHJ1Y3RvcikKKyAgICB0aHJvdyAic2hvdWxkIG5vdCBiZSBpbnN0YW5jZW9mIjsKKwor
CisvLyBUZXN0IFN5bWJvbC5oYXNJbnN0YW5jZSBvbiBhbiBvcmRpbmFyeSBvYmplY3QuCitPYmpl
Y3RDbGFzcyA9IHt9CitPYmplY3RDbGFzc1tTeW1ib2wuaGFzSW5zdGFuY2VdID0gZnVuY3Rpb24g
KHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmICh0eXBlb2YgdmFsdWUgPT09
ICJvYmplY3QiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gImZ1bmN0aW9uIik7Cit9CisKK2lmICghKGZv
byBpbnN0YW5jZW9mIE9iamVjdENsYXNzKSkKKyAgICB0aHJvdyAiZm9vIHNob3VsZCBiZSBhbiBp
bnN0YW5jZW9mIE9iamVjdENsYXNzIjsKKworaWYgKCEoQ29uc3RydWN0b3IgaW5zdGFuY2VvZiBP
YmplY3RDbGFzcykpCisgICAgdGhyb3cgIkNvbnN0cnVjdG9yIHNob3VsZCBiZSBhbiBpbnN0YW5j
ZW9mIE9iamVjdENsYXNzIjsKKworTnVtYmVyQ2xhc3MgPSB7fQorTnVtYmVyQ2xhc3NbU3ltYm9s
Lmhhc0luc3RhbmNlXSA9IGZ1bmN0aW9uICh2YWx1ZSkgeworICAgIHJldHVybiB0eXBlb2YgdmFs
dWUgPT09ICJudW1iZXIiOworfQorCitpZiAoISgxIGluc3RhbmNlb2YgTnVtYmVyQ2xhc3MpKQor
ICAgIHRocm93ICIxIHNob3VsZCBiZSBhbiBpbnN0YW5jZW9mIE51bWJlckNsYXNzIjsKKworaWYg
KGZvbyBpbnN0YW5jZW9mIE51bWJlckNsYXNzKQorICAgIHRocm93ICJmb28gc2hvdWxkIGJlIGFu
IGluc3RhbmNlb2YgTnVtYmVyQ2xhc3MiOworCisKKy8vIFRlc3QgdGhlIEZ1bmN0aW9uLnByb3Rv
dHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdIHdvcmtzIHdoZW4gYWN0dWFsbHkgY2FsbGVkLgorZGVz
Y3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRnVuY3Rpb24ucHJvdG90
eXBlLCBTeW1ib2wuaGFzSW5zdGFuY2UpOworaWYgKGRlc2NyaXB0b3Iud3JpdGFibGUgIT09IGZh
bHNlIHx8IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlICE9PSBmYWxzZSB8fCBkZXNjcmlwdG9yLmVu
dW1lcmFibGUgIT09IGZhbHNlKQorICAgIHRocm93ICJGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9s
Lmhhc0luc3RhbmNlXSBoYXMgYSBiYWQgZGVzY3JpcHRvciI7CisKK2lmICghRnVuY3Rpb24ucHJv
dG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0uY2FsbChDb25zdHJ1Y3RvciwgZm9vKSkKKyAgICB0
aHJvdyAiRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0gc2hvdWxkIGNsYWlt
IHRoYXQgZm9vIGlzIGFuIGluc3RhbmNlb2YgQ29uc3RydWN0b3IiOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk3YThmNjlh
YTZlODk5ZGJjOWUwYjgxMmY5YTZmYTUzMzZjOTE4OWMuLjE5YzFjZDZlNzBlZDIyMWViYTU2MDI3
ZTIzOTVjYjlhMGYyNzBiZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNS0xMi0wNyAgS2Vp
dGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBbRVM2XSBBZGQg
c3VwcG9ydCBmb3IgU3ltYm9sLmhhc0luc3RhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGVzdHMgdG8gcmVmbGVjdCB0aGUgY2hhbmdlcyB0
byBpbnN0YW5jZW9mIGluIEVTNi4KKworICAgICAgICBBZGRlZCBhIG5ldyByZWdyZXNzaW9uIHRl
c3QgZm9yIGJvdW5kIGZ1bmN0aW9ucyBpbiBpbnN0YW5jZW9mCisgICAgICAgIGFzIHRoZSBwZXJm
b21hbmNlIG9uIGJvdW5kIGZ1bmN0aW9ucyBzaG91bGQsIHRvIHNvbWUgZGVncmVlLAorICAgICAg
ICByZWZsZWN0IHRoZSBwZXJmb3JtYW5jZSBvbiBDLUFQSSB1c2Vycy4KKworICAgICAgICAqIGpz
L09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9l
eGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZXhjZXB0
aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2luc3RhbmNlLW9mLWlt
bWVkaWF0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1i
b3VuZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvaW5zdGFuY2Vv
Zi1ib3VuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9p
bnN0YW5jZW9mLWJvdW5kLmpzOiBBZGRlZC4KKyAgICAgICAgKENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVy
dHlOYW1lcy5qczoKKwogMjAxNS0xMi0wNyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTW9kZXJuIElEQjogTWlzY2VsbGFuZW91cyB0ZXN0IGNsZWFudXAuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBl
Y3RlZC50eHQKaW5kZXggY2FlMjE5YmFmOTJiNTk1MGJlNzdmOTQ1N2RhMDJjYzUxOTY3Zjk4My4u
N2Y1ZGU1ZjgyMjc4ZmI3MTk4YTg5MjkxNjIyNTEyZTNlMGUyOGRhOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApA
QCAtNjEsNyArNjEsNyBAQCBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRXJyb3IpIGlz
IFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVy
dHlOYW1lcyhFcnJvci5wcm90b3R5cGUpIGlzIFsnY29uc3RydWN0b3InLCAnbWVzc2FnZScsICdu
YW1lJywgJ3RvU3RyaW5nJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhNYXRoKSBp
cyBbJ0UnLCdMTjEwJywnTE4yJywnTE9HMTBFJywnTE9HMkUnLCdQSScsJ1NRUlQxXzInLCdTUVJU
MicsJ2FicycsJ2Fjb3MnLCdhY29zaCcsJ2FzaW4nLCdhc2luaCcsJ2F0YW4nLCdhdGFuMicsJ2F0
YW5oJywnY2JydCcsJ2NlaWwnLCdjbHozMicsJ2NvcycsJ2Nvc2gnLCdleHAnLCdleHBtMScsJ2Zs
b29yJywnZnJvdW5kJywnaHlwb3QnLCdpbXVsJywnbG9nJywnbG9nMTAnLCdsb2cxcCcsJ2xvZzIn
LCdtYXgnLCdtaW4nLCdwb3cnLCdyYW5kb20nLCdyb3VuZCcsJ3NpZ24nLCdzaW4nLCdzaW5oJywn
c3FydCcsJ3RhbicsJ3RhbmgnLCd0cnVuYyddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoSlNPTikgaXMgWydwYXJzZScsICdzdHJpbmdpZnknXQotUEFTUyBnZXRTb3J0ZWRPd25Qcm9w
ZXJ0eU5hbWVzKFN5bWJvbCkgaXMgWydmb3InLCAnaXRlcmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0
aCcsICduYW1lJywgJ3Byb3RvdHlwZScsICd0b1N0cmluZ1RhZycsICd1bnNjb3BhYmxlcyddCitQ
QVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3ltYm9sKSBpcyBbJ2ZvcicsICdoYXNJbnN0
YW5jZScsICdpdGVyYXRvcicsICdrZXlGb3InLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBl
JywgJ3RvU3RyaW5nVGFnJywgJ3Vuc2NvcGFibGVzJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVy
dHlOYW1lcyhTeW1ib2wucHJvdG90eXBlKSBpcyBbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywg
J3ZhbHVlT2YnXQogUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ05hTicpICE9IC0x
IGlzIHRydWUKIFBBU1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCdJbmZpbml0eScpICE9
IC0xIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1mb3Itbm9u
b2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1mb3Itbm9ub2Jq
ZWN0LWV4cGVjdGVkLnR4dAppbmRleCA5ZjlhZTY5Yzg2Y2U5ZjBlYWE3MTBmZjBhNmEwZDU1M2Ex
OGUwYTJjLi43NzRkMjI3ZDAzNWFkZjE3ZjNiY2UwOTgwNTExZjJlMzJlNDI3NWU4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWZvci1ub25vYmplY3QtZXhwZWN0ZWQudHh0
CkBAIC00LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgbmV3IHt9
LnVuZGVmaW5lZCB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGEg
Y29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyB7fS51bmRlZmluZWQnKS4KLVBBU1MgMSBpbnN0
YW5jZW9mIHt9LnVuZGVmaW5lZCB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fS51bmRlZmlu
ZWQgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcxIGluc3RhbmNlb2Yge30udW5kZWZp
bmVkJykuCitQQVNTIDEgaW5zdGFuY2VvZiB7fS51bmRlZmluZWQgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4K
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0CmluZGV4IGVk
NjhiNmNjOGEwN2E1YTc1Mjk1OTU3M2UzM2UxODVhZWEzMTk1YjYuLjBlZmQ3YTg2ZTA5YzQ3MDBk
NGNkMWQ2OGVkMjk5ZmZmYTgzMjdjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2V4Y2Vw
dGlvbi1pbnN0YW5jZW9mLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9leGNlcHRp
b24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQKQEAgLTMsMTEgKzMsMTEgQEAgVGVzdCBmb3IgZXJy
b3IgbWVzc2FnZXMgZm9yIGluc3RhbmNlb2YKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAog
Ci1QQVNTICdpbnN0YW5jZW9mJyBpbnN0YW5jZW9mICAgICdpbnN0YW5jZW9mJyB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiAiaW5zdGFuY2VvZiIgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0
aW5nICcnaW5zdGFuY2VvZicgaW5zdGFuY2VvZiAgICAnaW5zdGFuY2VvZicnKS4KLVBBU1MgMjAg
aW5zdGFuY2VvZiAgICAgJ2hlbGxvJyAgIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6ICdoZWxs
bycgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcyMCBpbnN0YW5jZW9mICAgICAnaGVs
bG8nJykuCitQQVNTICdpbnN0YW5jZW9mJyBpbnN0YW5jZW9mICAgICdpbnN0YW5jZW9mJyB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBu
b3QgYW4gb2JqZWN0LgorUEFTUyAyMCBpbnN0YW5jZW9mICAgICAnaGVsbG8nICAgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFu
IG9iamVjdC4KIFBBU1MgMjAgaW5zdGFuY2VvZiAgICAge30gICB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiB7fSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzIwIGluc3RhbmNlb2Yg
ICAgIHt9JykuCi1QQVNTIDIwIGluc3RhbmNlb2YgICAgIHt9LmZvbyAgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjoge30uZm9vIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnMjAgaW5z
dGFuY2VvZiAgICAge30uZm9vJykuCi1QQVNTIDIwIGluc3RhbmNlb2YgICAgIHRydWUgICAgICAg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdHJ1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1
YXRpbmcgJzIwIGluc3RhbmNlb2YgICAgIHRydWUnKS4KK1BBU1MgMjAgaW5zdGFuY2VvZiAgICAg
e30uZm9vICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5z
dGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgorUEFTUyAyMCBpbnN0YW5jZW9mICAgICB0cnVlICAg
ICAgIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5j
ZW9mIGlzIG5vdCBhbiBvYmplY3QuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2luc3RhbmNlLW9mLWlt
bWVkaWF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvaW5zdGFuY2Utb2YtaW1tZWRp
YXRlcy1leHBlY3RlZC50eHQKaW5kZXggMTEwMGRiOGFiN2JjOWFkYzBlNmU0ZmI2ZDExZWQ5NWE2
Y2VjOGQ5NS4uZTZlZmM2YTU3MTE1ZmRmODA5NDRkMTUzYzZhZmRkYTIyNmRiNjQ1MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvanMvaW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvanMvaW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQK
QEAgLTMsOSArMyw5IEBAIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgaW5zdGFuY2Ugb2YgYmVo
YXZlcyBjb3JyZWN0bHkgd2hlbiB0aGUgdmFsdWUsIGNvbnN0cnVjCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAotUEFTUyAoMSBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IDEgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcxIGluc3RhbmNlb2YgMScp
LgotUEFTUyAoe30gaW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAxIGlz
IG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAne30gaW5zdGFuY2VvZiAxJykuCi1QQVNTIChv
YmogaW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAxIGlzIG5vdCBhIGZ1
bmN0aW9uLiAoZXZhbHVhdGluZyAnb2JqIGluc3RhbmNlb2YgMScpLgorUEFTUyAoMSBpbnN0YW5j
ZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0
YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCitQQVNTICh7fSBpbnN0YW5jZW9mIDEpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBh
biBvYmplY3QuCitQQVNTIChvYmogaW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgogUEFT
UyAoMSBpbnN0YW5jZW9mIHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fSBpcyBub3Qg
YSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzEgaW5zdGFuY2VvZiB7fScpLgogUEFTUyAoe30gaW5z
dGFuY2VvZiB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjoge30gaXMgbm90IGEgZnVuY3Rp
b24uIChldmFsdWF0aW5nICd7fSBpbnN0YW5jZW9mIHt9JykuCiBQQVNTIChvYmogaW5zdGFuY2Vv
ZiB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjoge30gaXMgbm90IGEgZnVuY3Rpb24uIChl
dmFsdWF0aW5nICdvYmogaW5zdGFuY2VvZiB7fScpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9pbnN0YW5jZW9mLWJvdW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODgyYmNi
ZWI5OWQ0ZjViMWMyNDg4OTc4YjY0OTMwMzllZDhlNmVhNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorSlNSZWdyZXNzL2luc3RhbmNlb2YtYm91bmQKKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9pbnN0YW5jZW9mLWJvdW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUxMjA2NGM1YjZlN2Y3ZDkz
ZWMyMTNkNmU0MTZiMmMxMGQ0YmU0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2luc3RhbmNlb2YtYm91bmQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvaW5zdGFuY2VvZi1ib3VuZC5qcyBiL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2luc3RhbmNlb2YtYm91bmQuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGRmOGU1MzVlNTU2OGQ1NWY0ODMyYTM1YjUxMGViMmRiN2YwNTUyNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2luc3RhbmNlb2YtYm91bmQu
anMKQEAgLTAsMCArMSwzMCBAQAorLy8gVGhpcyB0ZXN0cyB0aGF0IHdlIGRvIG5vdCBjb25zdGFu
dGx5IE9TUiBvbiBpbnN0YW5jZW9mIHdoZXJlIHRoZSBSSFMgaXMgYSBib3VuZCBmdW5jdGlvbi4K
Ky8vIFdoaWxlIHRoaXMgYm91bmQgZnVuY3Rpb25zIGFyZSB1bmxpa2VseSB0byBiZSBwYXNzZWQg
dG8gaW5zdGFuY2VvZiBvZnRlbiBDLUFQSSB1c2VycyB1c2UKKy8vIHRoZSBzYW1lIG1ldGhvZCBv
ZiBvdmVycmlkaW5nIGluc3RhbmNlb2YgZXhwcmVzc2lvbnMuCisKKworZnVuY3Rpb24gQ29uc3Ry
dWN0b3IoeCkgeworICAgIHRoaXMueCA9IHg7Cit9CisKK0NvbnN0cnVjdG9yLnByb3RvdHlwZSA9
IHt9CisKK0JvdW5kQ29uc3RydWN0b3IgPSBDb25zdHJ1Y3Rvci5iaW5kKCk7Citmb28gPSBuZXcg
Q29uc3RydWN0b3IoMSk7CitiYXIgPSBuZXcgQm91bmRDb25zdHJ1Y3RvcigxKTsKKworaSA9IDA7
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICghKGZvbyBpbnN0YW5jZW9mIEJvdW5kQ29u
c3RydWN0b3IpKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiZm9vIHNob3VsZCBiZSBhbiBp
bnN0YW5jZW9mIEJvdW5kQ29uc3RydWN0b3IiKTsKKyAgICB9CisgICAgbGV0IGogPSAwOworICAg
IGZvciAoO2ogPCAxMDAwOyBqKyspIHt9CisgICAgcmV0dXJuIGo7Cit9Citub0lubGluZSh0ZXN0
KTsKKworZm9yIChpID0gMDsgaSA8IDUwMDAwOyBpKyspCisgICAgdGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVz
LmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5h
bWVzLmpzCmluZGV4IGNiNWVjMjRmYWY5MDdmODAyMzc5ODVmOGM4YWNlODM4ZGQ2OGUwODkuLjc0
YmNiNzhhNTIwYzhjNzBmZGRlODY0MDc2ODE4MmMwNzIzNjUzYTYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcworKysg
Yi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMu
anMKQEAgLTcwLDcgKzcwLDcgQEAgdmFyIGV4cGVjdGVkUHJvcGVydHlOYW1lc1NldCA9IHsKICAg
ICAiRXJyb3IucHJvdG90eXBlIjogIlsnY29uc3RydWN0b3InLCAnbWVzc2FnZScsICduYW1lJywg
J3RvU3RyaW5nJ10iLAogICAgICJNYXRoIjogIlsnRScsJ0xOMTAnLCdMTjInLCdMT0cxMEUnLCdM
T0cyRScsJ1BJJywnU1FSVDFfMicsJ1NRUlQyJywnYWJzJywnYWNvcycsJ2Fjb3NoJywnYXNpbics
J2FzaW5oJywnYXRhbicsJ2F0YW4yJywnYXRhbmgnLCdjYnJ0JywnY2VpbCcsJ2NsejMyJywnY29z
JywnY29zaCcsJ2V4cCcsJ2V4cG0xJywnZmxvb3InLCdmcm91bmQnLCdoeXBvdCcsJ2ltdWwnLCds
b2cnLCdsb2cxMCcsJ2xvZzFwJywnbG9nMicsJ21heCcsJ21pbicsJ3BvdycsJ3JhbmRvbScsJ3Jv
dW5kJywnc2lnbicsJ3NpbicsJ3NpbmgnLCdzcXJ0JywndGFuJywndGFuaCcsJ3RydW5jJ10iLAog
ICAgICJKU09OIjogIlsncGFyc2UnLCAnc3RyaW5naWZ5J10iLAotICAgICJTeW1ib2wiOiAiWydm
b3InLCAnaXRlcmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZScs
ICd0b1N0cmluZ1RhZycsICd1bnNjb3BhYmxlcyddIiwKKyAgICAiU3ltYm9sIjogIlsnZm9yJywg
J2hhc0luc3RhbmNlJywgJ2l0ZXJhdG9yJywgJ2tleUZvcicsICdsZW5ndGgnLCAnbmFtZScsICdw
cm90b3R5cGUnLCAndG9TdHJpbmdUYWcnLCAndW5zY29wYWJsZXMnXSIsCiAgICAgIlN5bWJvbC5w
cm90b3R5cGUiOiAiWydjb25zdHJ1Y3RvcicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10iCiB9Owog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266833</attachid>
            <date>2015-12-07 16:48:28 -0800</date>
            <delta_ts>2015-12-08 12:32:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151839-20151207164759.patch</filename>
            <type>text/plain</type>
            <size>118074</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YzE5MjRjZGM0MmU0YWNjYTY3ZDlmNjc4MDU4OGQ2YzE4M2Y4YjI3Li5hYjMzMThkMTBiMTFiMTEz
NjBiZjJjNTcxZjA2ZDJkY2NkM2FhZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNTQgQEAKKzIwMTUtMTItMDcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1dJUF0g
U3RpbGwgbmVlZCB0byBkbyAzMi1iaXQsIGFkZCB0ZXN0cywgYW5kIGNsZWFudXAgYnV0IHNob3Vs
ZCBiZSByb3VnaGx5IGRvbmUuCisgICAgICAgIEJlbmNobWFya3MgaW5kaWNhdGUgbm8gcGVyZm9y
bWFuY2UgcmVncmVzc2lvbnMgZnJvbSB0aGVzZSBjaGFuZ2VzLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBzdXBwb3J0IGZvciBTeW1ib2wuaGFzSW5zdGFuY2UsIHVuZm9ydHVuYXRlbHkgaW4g
b3JkZXIgdG8gcHJldmVudAorICAgICAgICByZWdyZXNzaW9ucyBzZXZlcmFsIG5ldyBieXRlY29k
ZXMgYW5kIERGRyBJUiBub2RlcyB3ZXJlIG5lY2Vzc2FyeS4gQmVmb3JlLCBTeW1ib2wuaGFzSW5z
dGFuY2UKKyAgICAgICAgd2hlbiBleGVjdXRpbmcgYW4gaW5zdGFuY2VvZiBleHByZXNzaW9uIHdl
IHdvdWxkIGVtaXQgdGhyZWUgYnl0ZWNvZGVzOiBjaGVja19oYXNfaW5zdGFuY2UsIGdldF9ieV9p
ZCwKKyAgICAgICAgdGhlbiBpbnN0YW5jZW9mLiBBcyB0aGUgc3BlYyBoYXMgY2hhbmdlZCwgd2Ug
ZW1pdCBhIG1vcmUgY29tcGxpY2F0ZWQgc2V0IG9mIGJ5dGVjb2RlcyBpbiBhZGRpdGlvbiB0byBz
b21lCisgICAgICAgIG5ldyBvbmVzLiBGaXJzdCB0aGUgcm9sZSBvZiBjaGVja19oYXNfaW5zdGFu
Y2UgYW5kIGl0cyBjb3JyZXNwb25kaW5nIERGRyBub2RlIGhhdmUgY2hhbmdlZC4gTm93IGl0IHJl
dHVybnMKKyAgICAgICAgYSBqcy1ib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgUkhTIG9m
IHRoZSBpbnN0YW5jZW9mIGV4cHJlc3Npb24gKGZyb20gaGVyZSBvbiBjYWxsZWQgdGhlIGNvbnN0
cnVjdG9yIGZvciBzaW1wbGljaXR5KQorICAgICAgICBuZWVkcyBub24tZGVmYXVsdCBiZWhhdmlv
ciBmb3IgcmVzb2x2aW5nIHRoZSBleHByZXNzaW9uLiBpLmUuIFRoZSBjb25zdHJ1Y3RvciBoYXMg
YSBTeW1ib2wuaGFzSW5zdGFuY2UgdGhhdCBkaWZmZXJzIGZyb20gdGhlIG9uZSBvbgorICAgICAg
ICBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSBvciBpcyBhIGJvdW5kL0Mt
QVBJIGZ1bmN0aW9uLiBPbmNlIHdlIGdldCB0byB0aGUgREZHIHRoaXMgbm9kZSBpcyBnZW5lcmFs
bHkgZWxpbWluYXRlZCBhcworICAgICAgICB3ZSBjYW4gcHJvdmUgdGhlIHZhbHVlIG9mIFN5bWJv
bC5oYXNJbnN0YW5jZSBpcyBhIGNvbnN0YW50LiBUaGUgc2Vjb25kIG5ldyBieXRlY29kZSBpcyBp
bnN0YW5jZW9mX2N1c3RvbS4gaW5zbnRhbmNlb2ZfY3VzdG9tLCBqdXN0CisgICAgICAgIGVtaXRz
IGEgY2FsbCB0byBzbG93IHBhdGggY29kZSB0aGF0IGNvbXB1dGVzIHRoZSByZXN1bHQuCisKKyAg
ICAgICAgSW4gdGhlIERGRywgdGhlcmUgaXMgYWxzbyBhIG5ldyBub2RlLCBDaGVja1R5cGVJbmZv
LCB3aGljaCBjaGVja3MgdGhlIHR5cGUgaW5mbyBmbGFncyBhcmUgY29uc2lzdGVudCB3aXRoIHRo
ZSBvbmVzIHByb3ZpZGVkIGFuZAorICAgICAgICBPU1IgZXhpdHMgaWYgdGhlIGZsYWdzIGFyZSBu
b3QuIEFkZGl0aW9uYWxseSwgd2UgYXR0ZW1wdCB0byBwcm92ZSB0aGF0IHRoZSByZXN1bHQgb2Yg
Q2hlY2tIYXNJbnN0YW5jZSB3aWxsIGJlIGEgY29uc3RhbnQgYW5kIHRyYW5zZm9ybQorICAgICAg
ICBpdCBpbnRvIGEgQ2hlY2tUeXBlSW5mbyBmb2xsb3dlZCBieSBhIEpTQ29uc3RhbnQuCisKKyAg
ICAgICAgKiBidWlsdGlucy9GdW5jdGlvbi5wcm90b3R5cGUuanM6CisgICAgICAgIChzeW1ib2xI
YXNJbnN0YW5jZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcDoK
KyAgICAgICAgKEpTQzo6aXNCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5
dGVjb2RlTGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6Cisg
ICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlND
Ojpjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2luZFRvU3Ry
aW5nKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHA6CisgICAgICAgIChKU0M6OmdldEp1bXBUYXJnZXRzRm9y
Qnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2hl
Y2tIYXNJbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SW5z
dGFuY2VPZkN1c3RvbSk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SXNG
dW5jdGlvbik6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6Cisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6Oklu
c3RhbmNlT2ZOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0
ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6
cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6
ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdE
b2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9k
ZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnBy
aW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uaDoKKyAgICAgICAg
KiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0NlbGxPcGVyYW5k
KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNUeXBlSW5mb09wZXJhbmQpOgorICAgICAg
ICAoSlNDOjpERkc6Ok5vZGU6OnR5cGVJbmZvT3BlcmFuZCk6CisgICAgICAgICogZGZnL0RGR05v
ZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFn
YXRlKToKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpE
Rkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja1R5cGVJbmZv
RmxhZ3MpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFu
Y2VPZkN1c3RvbSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAg
KiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxl
KToKKyAgICAgICAgKiBmdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oOgorICAgICAgICAqIGZ0
bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVDaGVja0hhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9MTFZNOjpjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlSW5zdGFuY2VPZkN1c3RvbSk6Cisg
ICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVN
YWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgor
ICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NoZWNrX2hhc19pbnN0YW5jZSk6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKToKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX2luc3RhbmNlb2ZfY3VzdG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2pl
cV9udWxsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKToKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mX2N1c3RvbSk6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfY2hlY2tfaGFzX2luc3RhbmNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX2NoZWNrX2hhc19pbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0
YW5jZW9mX2N1c3RvbSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2Vv
Zl9jdXN0b20pOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0
YW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L0pTSW50ZXJmYWNlSklULmg6
CisgICAgICAgIChKU0M6OkpTSW50ZXJmYWNlSklUOjplbWl0SnVtcElmTnVsbCk6CisgICAgICAg
ICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZv
cm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAg
ICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogbGxpbnQv
TExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OmludmFsaWRQYXJhbWV0ZXJJbnN0YW5j
ZW9mU291cmNlQXBwZW5kZXIpOgorICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5zdGFu
Y2VvZk5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOgorICAgICAgICAoSlNDOjppbnZhbGlkUGFy
YW1ldGVySW5zdGFuY2VvZkhhc0luc3RhbmNlU3ltYm9sTm90RnVuY3Rpb25Tb3VyY2VBcHBlbmRl
cik6CisgICAgICAgIChKU0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JO
b3RGdW5jdGlvbik6CisgICAgICAgIChKU0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1l
dGVyRXJyb3JIYXNJbnN0YW5jZVN5bWJvbE5vdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6Y3Jl
YXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmg6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlv
blByb3BlcnRpZXMpOgorICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmlzQm91
bmRGdW5jdGlvbik6CisgICAgICAgIChKU0M6Omhhc0luc3RhbmNlQm91bmRGdW5jdGlvbik6Cisg
ICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRp
bWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6aGFzSW5zdGFuY2UpOgor
ICAgICAgICAoSlNDOjpvYmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1dyaXRlQmFycmllci5oOgorICAg
ICAgICAoSlNDOjpXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+OjpzbG90KToKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3Mvc3ltYm9sLWhhc0luc3RhbmNlLmpzOiBBZGRlZC4KKyAgICAgICAgKENvbnN0
cnVjdG9yKToKKyAgICAgICAgKHZhbHVlKToKKyAgICAgICAgKE9iamVjdENsYXNzLlN5bWJvbC5o
YXNJbnN0YW5jZSk6CisgICAgICAgIChOdW1iZXJDbGFzcy5TeW1ib2wuaGFzSW5zdGFuY2UpOgor
CiAyMDE1LTEyLTA3ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFVwZGF0ZSBKU0MgZmVhdHVyZSBsaXN0IGZvciByZXN0IHBhcmFtZXRlcnMgYW5kIGdlbmVyYXRv
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlvblBy
b3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlvblByb3Rv
dHlwZS5qcwppbmRleCAxYWEwMjQyMmIxODA0ZWVmYzAzNmY1NWNhMWUyNWVhN2ZjMTMwZjJkLi4z
NjRiYzQzMjg4MjU4NDMxZTBiNmI2YmQxMjMzNjYxOWJkYWMwNTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpzCkBAIC0zNiwz
ICszNiwxOCBAQCBmdW5jdGlvbiBhcHBseSh0aGlzVmFsdWUsIGFyZ3VtZW50VmFsdWVzKQogCiAg
ICAgcmV0dXJuIHRoaXMuQGFwcGx5KHRoaXNWYWx1ZSwgYXJndW1lbnRWYWx1ZXMpOwogfQorCisv
LyBGSVhNRTogdGhpcyBzaG91bGQgaGF2ZSBhIGRpZmZlcmVudCBuYW1lOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMzYzCitmdW5jdGlvbiBzeW1ib2xIYXNJbnN0
YW5jZSh2YWx1ZSkKK3sKKyAgICAidXNlIHN0cmljdCI7CisKKyAgICBpZiAodHlwZW9mIHRoaXMg
IT09ICJmdW5jdGlvbiIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChAaXNCb3Vu
ZEZ1bmN0aW9uKHRoaXMpKQorICAgICAgICByZXR1cm4gQGhhc0luc3RhbmNlQm91bmRGdW5jdGlv
bih0aGlzLCB2YWx1ZSk7CisKKyAgICBsZXQgdGFyZ2V0ID0gdGhpcy5wcm90b3R5cGU7CisgICAg
cmV0dXJuIEBpbnN0YW5jZU9mKHZhbHVlLCB0YXJnZXQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAppbmRleCA1OTYw
NjRjNDA2ODI0OTc4MDg5YzQ2NDNmMWMzZGZiZDA1MzRiOTlmLi5mMzI5ZDBiMGY4OTJkY2UwYjAz
OGVmMWUzZWM5YjAzZjQyY2VlYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcApAQCAtNTgsNyArNTgsNiBAQCBzdGF0
aWMgYm9vbCBpc0JyYW5jaChPcGNvZGVJRCBvcGNvZGVJRCkKICAgICBjYXNlIG9wX3N3aXRjaF9p
bW06CiAgICAgY2FzZSBvcF9zd2l0Y2hfY2hhcjoKICAgICBjYXNlIG9wX3N3aXRjaF9zdHJpbmc6
Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CiAgICAgY2FzZSBvcF9zYXZlOgogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCmluZGV4IDAzZjQ2YTkzZDBmMjc4Yjk4Nzll
YWQwZmZkZTlmY2MyYzBiMWRjYzEuLjdkOGM3OGIwOTZiZWQwMDNlNmYwZTVlYzhiM2FiODIzOTYw
Y2Y3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZUxpc3QuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0Lmpzb24KQEAgLTQ1LDggKzQ1LDkgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2Jp
dGFuZCIsICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfYml0eG9y
IiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9iaXRvciIsICJs
ZW5ndGgiIDogNSB9LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfY2hlY2tfaGFzX2luc3Rh
bmNlIiwgImxlbmd0aCIgOiA1IH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9jaGVja19o
YXNfaW5zdGFuY2UiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9w
X2luc3RhbmNlb2YiLCAibGVuZ3RoIiA6IDQgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9w
X2luc3RhbmNlb2ZfY3VzdG9tIiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF90eXBlb2YiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDog
Im9wX2lzX3VuZGVmaW5lZCIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfaXNfYm9vbGVhbiIsICJsZW5ndGgiIDogMyB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCBjNmU5ZGZhMGM3NmRhOTk3Y2Iw
MzIwODEwNzkxMTIwOTBiMjQ2YWEyLi5lZTUzZDdlMzE2ZWIyYWYzMTA2ODcyNDljN2U5NGRhNGY3
MTc4NzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaApAQCAtMTcwLDcgKzE3MCw2IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9m
ZnNldCgKICAgICBjYXNlIG9wX2dldF9ieV92YWw6CiAgICAgY2FzZSBvcF9pbjoKICAgICBjYXNl
IG9wX2luc3RhbmNlb2Y6Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CiAgICAgY2Fz
ZSBvcF9hZGQ6CiAgICAgY2FzZSBvcF9tdWw6CiAgICAgY2FzZSBvcF9kaXY6CkBAIC0xOTYsNiAr
MTk1LDggQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgICAgICBmdW5j
dG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2lu
c3RhbmNlOgorICAgIGNhc2Ugb3BfaW5zdGFuY2VvZl9jdXN0b206CiAgICAgY2FzZSBvcF9oYXNf
c3RydWN0dXJlX3Byb3BlcnR5OgogICAgIGNhc2Ugb3BfY29uc3RydWN0X3ZhcmFyZ3M6CiAgICAg
Y2FzZSBvcF9jYWxsX3ZhcmFyZ3M6CkBAIC0zNTMsNiArMzU0LDcgQEAgdm9pZCBjb21wdXRlRGVm
c0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUJhc2ljQmxv
Y2sqIGJsb2MKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CiAgICAgY2FzZSBvcF9jaGVj
a19oYXNfaW5zdGFuY2U6CiAgICAgY2FzZSBvcF9pbnN0YW5jZW9mOgorICAgIGNhc2Ugb3BfaW5z
dGFuY2VvZl9jdXN0b206CiAgICAgY2FzZSBvcF9nZXRfYnlfdmFsOgogICAgIGNhc2Ugb3BfdHlw
ZW9mOgogICAgIGNhc2Ugb3BfaXNfdW5kZWZpbmVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCBhMzkwYzYwOWZjZGRhZmFkMjAyYWQxMjhmOWVh
YzFiZWViYWRiNDA2Li4xMDg0OWIwMjVjYTEwMzliNTM2ZmM2ODUwZDhjMDE4YTllNGM1MDE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMTAy
Miw5ICsxMDIyLDggQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAgICAg
IGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQp
LT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKLSAg
ICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIHBy
aW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImNoZWNrX2hhc19pbnN0
YW5jZSIpOwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcywgJWQoLT4lZCkiLCBy
ZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShyMikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAg
IG91dC5wcmludGYoIiVzLCAlcywgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewpAQCAtMTAz
NSw2ICsxMDM0LDE1IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAg
ICBvdXQucHJpbnRmKCIlcywgJXMsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOiB7
CisgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGlu
dCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51
Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgcjMgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAg
ICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImluc3Rh
bmNlb2ZfY3VzdG9tIik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzLCAlcyIs
IHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKHIyKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMykuZGF0YSgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdW5zaWduZWQ6IHsKICAgICAgICAg
ICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInVuc2lnbmVkIik7CiAg
ICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9FeGl0S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtp
bmQuY3BwCmluZGV4IDI1MjQzMDBmNzMzNzY5ZWQ5YmUwMDFkNzY2MGYzNjg1OWI2ZDg5MDYuLjMw
YzVlNjQxYTc5NjY2ODJkY2JiNzcwNDJmNTMwYWYzNDI1MTMxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcApAQCAtNTAsNiArNTAsOCBAQCBjb25zdCBj
aGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtpbmQpCiAgICAgICAgIHJldHVybiAiQmFk
Q29uc3RhbnRDYWNoZSI7CiAgICAgY2FzZSBCYWRJbmRleGluZ1R5cGU6CiAgICAgICAgIHJldHVy
biAiQmFkSW5kZXhpbmdUeXBlIjsKKyAgICBjYXNlIEJhZFR5cGVJbmZvRmxhZ3M6CisgICAgICAg
IHJldHVybiAiQmFkVHlwZUluZm9GbGFncyI7CiAgICAgY2FzZSBPdmVyZmxvdzoKICAgICAgICAg
cmV0dXJuICJPdmVyZmxvdyI7CiAgICAgY2FzZSBOZWdhdGl2ZVplcm86CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCmluZGV4IDZmOGM1MTIwMDcwMDUwNWJmOTFkZWY3
NDkwMDNlMzAwNWUzZjcxODYuLjcwMGQzODgxZjQxNzI4MjFhZjg5N2VjY2Q1ZTllYThmNzUzNTE0
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCkBAIC0zNyw2
ICszNyw3IEBAIGVudW0gRXhpdEtpbmQgOiB1aW50OF90IHsKICAgICBCYWRDYWNoZSwgLy8gV2Ug
ZXhpdGVkIGJlY2F1c2UgYW4gaW5saW5lIGNhY2hlIHdhcyB3cm9uZy4KICAgICBCYWRDb25zdGFu
dENhY2hlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIGNhY2hlIG9uIGEgd2VhayBjb25zdGFudCAo
dXN1YWxseSBhIHByb3RvdHlwZSkgd2FzIHdyb25nLgogICAgIEJhZEluZGV4aW5nVHlwZSwgLy8g
V2UgZXhpdGVkIGJlY2F1c2UgYW4gaW5kZXhpbmcgdHlwZSB3YXMgd3JvbmcuCisgICAgQmFkVHlw
ZUluZm9GbGFncywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNz
dW1wdGlvbiBhYm91dCB3aGF0IFR5cGVJbmZvIGZsYWdzIHdlIHdvdWxkIHNlZS4KICAgICBPdmVy
ZmxvdywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugb2Ygb3ZlcmZsb3cuCiAgICAgTmVnYXRpdmVaZXJv
LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBlbmNvdW50ZXJlZCBuZWdhdGl2ZSB6ZXJvLgogICAg
IEludDUyT3ZlcmZsb3csIC8vIFdlIGV4aXRlZCBiZWNhdXNlIG9mIGFuIEludDUyIG92ZXJmbG93
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1w
VGFyZ2V0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBU
YXJnZXRzLmNwcAppbmRleCAyYmJmMzEzNDQ1NmE5YWU1MmE2MTkyOGJjNGFlMDcxMzVlYTYxZTNj
Li5lMmNiMDAwNDgzNzk0YmE5MmQ1MTBkY2Y1ZmE5OTQ4ODVhMjNkYzNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcApA
QCAtNzQsOSArNzQsNiBAQCBzdGF0aWMgdm9pZCBnZXRKdW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zm
c2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBJbnRlcnByZXRlciogaQogICAgICAgICBvdXQuYXBw
ZW5kKGJ5dGVjb2RlT2Zmc2V0ICsgY3VycmVudFsyXS51Lm9wZXJhbmQpOwogICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6Ci0gICAgICAgIG91dC5h
cHBlbmQoYnl0ZWNvZGVPZmZzZXQgKyBjdXJyZW50WzRdLnUub3BlcmFuZCk7Ci0gICAgICAgIGJy
ZWFrOwogICAgIGNhc2Ugb3BfbG9vcF9oaW50OgogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVjb2Rl
T2Zmc2V0KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDM3MmM3NGM2NmZj
NGRmYTg2YjNiMzllOTc4OWVmN2Y3ZTcxMDk0ZmQuLmMxN2NmMjFhNDliZDI1NjhlMTBmOGU2Yzg2
YTMyOTE1OTQzNDQ5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0yMDA5LDE0ICsyMDA5LDEzIEBA
IHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmNyZWF0ZVZhcmlhYmxlKAogICAgIH0KIH0KIAotdm9p
ZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNrSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0
LCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCogYmFzZSwgTGFiZWwqIHRhcmdldCkKK1Jl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2hlY2tIYXNJbnN0YW5jZShSZWdpc3Rl
cklEKiBkc3QsIFJlZ2lzdGVySUQqIGNvbnN0cnVjdG9yLCBSZWdpc3RlcklEKiBoYXNJbnN0YW5j
ZVN5bWJvbCkKIHsKLSAgICBzaXplX3QgYmVnaW4gPSBpbnN0cnVjdGlvbnMoKS5zaXplKCk7CiAg
ICAgZW1pdE9wY29kZShvcF9jaGVja19oYXNfaW5zdGFuY2UpOwogICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZChkc3QtPmluZGV4KCkpOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh2YWx1ZS0+
aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGJhc2UtPmluZGV4KCkpOwotICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQtPmJpbmQoYmVnaW4sIGluc3RydWN0aW9ucygp
LnNpemUoKSkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjb25zdHJ1Y3Rvci0+aW5kZXgo
KSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGhhc0luc3RhbmNlU3ltYm9sLT5pbmRleCgp
KTsKKyAgICByZXR1cm4gZHN0OwogfQogCiAvLyBJbmRpY2F0ZXMgdGhlIGxlYXN0IHVwcGVyIGJv
dW5kIG9mIHJlc29sdmUgdHlwZSBiYXNlZCBvbiBsb2NhbCBzY29wZS4gVGhlIGJ5dGVjb2RlIGxp
bmtlcgpAQCAtMjE4Myw2ICsyMTgyLDE2IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0SW5zdGFuY2VPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlCiAgICAg
cmV0dXJuIGRzdDsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJbnN0
YW5jZU9mQ3VzdG9tKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVy
SUQqIGNvbnN0cnVjdG9yLCBSZWdpc3RlcklEKiBoYXNJbnN0YW5jZVN5bWJvbCkKK3sKKyAgICBl
bWl0T3Bjb2RlKG9wX2luc3RhbmNlb2ZfY3VzdG9tKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoZHN0LT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodmFsdWUtPmluZGV4
KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjb25zdHJ1Y3Rvci0+aW5kZXgoKSk7Cisg
ICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGhhc0luc3RhbmNlU3ltYm9sLT5pbmRleCgpKTsKKyAg
ICByZXR1cm4gZHN0OworfQorCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdl
dEJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eSkKIHsKICAgICBtX2NvZGVCbG9jay0+YWRkUHJvcGVydHlBY2Nlc3NJbnN0cnVj
dGlvbihpbnN0cnVjdGlvbnMoKS5zaXplKCkpOwpAQCAtMzg0Myw2ICszODUyLDE0IEBAIFJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SXNPYmplY3QoUmVnaXN0ZXJJRCogZHN0LCBS
ZWdpc3RlcklEKiBzcmMpCiAgICAgcmV0dXJuIGRzdDsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRJc0Z1bmN0aW9uKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCog
c3JjKQoreworICAgIGVtaXRPcGNvZGUob3BfaXNfZnVuY3Rpb24pOworICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChkc3QtPmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMt
PmluZGV4KCkpOworICAgIHJldHVybiBkc3Q7Cit9CisKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0SXNVbmRlZmluZWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMp
CiB7CiAgICAgZW1pdE9wY29kZShvcF9pc191bmRlZmluZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDNl
MTc4N2RkNjZmNDFhYWY3YzI0MTVkNzBlZGY4M2RjYzlhNzNiYjQuLjAwZTE2MDkzMjcxNTJmMWMx
ZDJhZmMxOTRiYTM0NzRlYTY4NWEzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTUxOSw4ICs1MTksOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEluYyhSZWdpc3RlcklE
KiBzcmNEc3QpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0RGVjKFJlZ2lzdGVySUQqIHNyY0Rz
dCk7CiAKLSAgICAgICAgdm9pZCBlbWl0Q2hlY2tIYXNJbnN0YW5jZShSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBiYXNlLCBMYWJlbCogdGFyZ2V0KTsKKyAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdENoZWNrSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBS
ZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VTeW1ib2wpOwog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW5zdGFuY2VPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lz
dGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBiYXNlUHJvdG90eXBlKTsKKyAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdEluc3RhbmNlT2ZDdXN0b20oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2
YWx1ZSwgUmVnaXN0ZXJJRCogY29uc3RydWN0b3IsIFJlZ2lzdGVySUQqIGhhc0luc3RhbmNlU3lt
Ym9sKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFR5cGVPZihSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIHNyYykgeyByZXR1cm4gZW1pdFVuYXJ5T3Aob3BfdHlwZW9mLCBkc3QsIHNyYyk7
IH0KICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEluKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogcHJvcGVydHksIFJlZ2lzdGVySUQqIGJhc2UpIHsgcmV0dXJuIGVtaXRCaW5hcnlPcChvcF9p
biwgZHN0LCBwcm9wZXJ0eSwgYmFzZSwgT3BlcmFuZFR5cGVzKCkpOyB9CiAKQEAgLTU5OSw2ICs2
MDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFRvSW5kZXhT
dHJpbmcoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBpbmRleCk7CiAKICAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdElzT2JqZWN0KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdElzRnVuY3Rpb24oUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBzcmMpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SXNVbmRlZmluZWQoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpOwogICAgICAgICB2b2lkIGVtaXRSZXF1aXJlT2Jq
ZWN0Q29lcmNpYmxlKFJlZ2lzdGVySUQqIHZhbHVlLCBjb25zdCBTdHJpbmcmIGVycm9yKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwCmluZGV4IDk5NTYxYmM3ZWQ1ODhiNmY4MGQwZTljMWM2NjY1NDNkMTYzYTZlZGUuLjMwYzRi
ZTI3MzQxNjZhNTNkMWY4ZDBkNDQ2Mjc2ZmRlMWIwYjViMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE2MzMsMjIg
KzE2MzMsNDkgQEAgUmVnaXN0ZXJJRCogVGhyb3dhYmxlQmluYXJ5T3BOb2RlOjplbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmUKIAogUmVnaXN0ZXJJRCogSW5zdGFu
Y2VPZk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiBkc3QpCiB7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzEgPSBnZW5lcmF0b3Iu
ZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9leHByMSwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBt
X2V4cHIyLT5pc1B1cmUoZ2VuZXJhdG9yKSk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzIg
PSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMik7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGhh
c0luc3RhbmNlU3ltYm9sID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOworICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBpc09iamVjdCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKyAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gaXNDdXN0b20gPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IHByb3RvdHlwZSA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsK
LSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gZHN0UmVnID0gZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRp
b24oZHN0LCBzcmMxLmdldCgpKTsKLSAgICBSZWZQdHI8TGFiZWw+IHRhcmdldCA9IGdlbmVyYXRv
ci5uZXdMYWJlbCgpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB2YWx1ZSA9IGdlbmVyYXRvci5l
bWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2V4cHIxLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1f
ZXhwcjItPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gY29uc3Ry
dWN0b3IgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMik7CisgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IGRzdFJlZyA9IGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgdmFsdWUuZ2V0KCkp
OworICAgIFJlZlB0cjxMYWJlbD4gY3VzdG9tID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAg
UmVmUHRyPExhYmVsPiBkb25lID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgUmVmUHRyPExh
YmVsPiB0eXBlRXJyb3IgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKIAogICAgIGdlbmVyYXRvci5l
bWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKLSAg
ICBnZW5lcmF0b3IuZW1pdENoZWNrSGFzSW5zdGFuY2UoZHN0UmVnLmdldCgpLCBzcmMxLmdldCgp
LCBzcmMyLmdldCgpLCB0YXJnZXQuZ2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0SXNPYmplY3Qo
aXNPYmplY3QuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdEp1
bXBJZkZhbHNlKGlzT2JqZWN0LmdldCgpLCB0eXBlRXJyb3IuZ2V0KCkpOwogCiAgICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkp
OwotICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIHNyYzIuZ2V0KCks
IGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUpOworICAgIGdlbmVyYXRv
ci5lbWl0R2V0QnlJZChoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSwgY29uc3RydWN0b3IuZ2V0KCks
IGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5jZVN5bWJvbCk7CiAKICAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2
b3RFbmQoKSk7Ci0gICAgUmVnaXN0ZXJJRCogcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRJbnN0YW5j
ZU9mKGRzdFJlZy5nZXQoKSwgc3JjMS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKLSAgICBnZW5l
cmF0b3IuZW1pdExhYmVsKHRhcmdldC5nZXQoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBn
ZW5lcmF0b3IuZW1pdENoZWNrSGFzSW5zdGFuY2UoaXNDdXN0b20uZ2V0KCksIGNvbnN0cnVjdG9y
LmdldCgpLCBoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4
cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2Vu
ZXJhdG9yLmVtaXRKdW1wSWZUcnVlKGlzQ3VzdG9tLmdldCgpLCBjdXN0b20uZ2V0KCkpOworCisg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRp
dm90RW5kKCkpOworICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIGNv
bnN0cnVjdG9yLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBl
KTsKKworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFy
dCgpLCBkaXZvdEVuZCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdEluc3RhbmNlT2YoZHN0UmVnLmdl
dCgpLCB2YWx1ZS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0
SnVtcChkb25lLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwodHlwZUVycm9yLmdl
dCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFRocm93VHlwZUVycm9yKCJSaWdodCBoYW5kIHNpZGUg
b2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0Iik7CisKKyAgICBnZW5lcmF0b3IuZW1pdExh
YmVsKGN1c3RvbS5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRp
dm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRJbnN0
YW5jZU9mQ3VzdG9tKGRzdFJlZy5nZXQoKSwgdmFsdWUuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgp
LCBoYXNJbnN0YW5jZVN5bWJvbC5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGRv
bmUuZ2V0KCkpOworCisgICAgcmV0dXJuIGRzdFJlZy5nZXQoKTsKIH0KIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIExvZ2ljYWxPcE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDM2MTMxNzg3OWNjNzJiZjU0OThiZWIzOThi
ZGMwODVjNTY2NWMwNjcuLjU4ZTQ5ZjBkM2NkNjNjMDk5YThmNWFkZDA5MTcxYjQ3NzBjYTU1ZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTI0NTQsMTEgKzI0NTQsMTYgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIENoZWNr
SGFzSW5zdGFuY2U6Ci0gICAgICAgIC8vIFNhZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZh
Y3QgdGhhdCB3ZSd2ZSBkb25lIENoZWNrSGFzSW5zdGFuY2UKKyAgICAgICAgZm9yTm9kZShub2Rl
KS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAg
ICBjYXNlIEluc3RhbmNlT2Y6Ci0gICAgICAgIC8vIEFnYWluLCBzYWRseSwgd2UgZG9uJ3QgcHJv
cGFnYXRlIHRoZSBmYWN0IHRoYXQgd2UndmUgZG9uZSBJbnN0YW5jZU9mCisgICAgICAgIC8vIFNh
ZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZhY3QgdGhhdCB3ZSd2ZSBkb25lIEluc3RhbmNl
T2YKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAgICAgIGNsb2JiZXJXb3Js
ZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CiAgICAgICAgIGZvck5vZGUo
bm9kZSkuc2V0VHlwZShTcGVjQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
CkBAIC0yNTE1LDYgKzI1MjAsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RT
dGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2Ug
Q291bnRFeGVjdXRpb246CiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKICAgICBjYXNlIENo
ZWNrVGllclVwQXRSZXR1cm46CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBDb3B5UmVzdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNGEwZWQxMTI0Mzg5MzlkZDAwZWUxNDA1
NTkwNTQ3ZWQ3OGIwYWZhYi4uM2IzM2MwNjQzZDBhYTc5ZDRlZWJjYjMxYjEzYTU5OTlhYzhiYzll
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAKQEAgLTM0OTcsOSArMzQ5NywxNSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2Nr
KHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY2hlY2tfdGR6KTsK
ICAgICAgICAgfQogCi0gICAgICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgotICAgICAg
ICAgICAgYWRkVG9HcmFwaChDaGVja0hhc0luc3RhbmNlLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7CisgICAgICAgIGNhc2Ugb3BfY2hlY2tf
aGFzX2luc3RhbmNlOiB7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBkZWZhdWx0SGFzSW5zdGFu
Y2VTeW1ib2xGdW5jdGlvbiA9IG1faW5saW5lU3RhY2tUb3AtPm1fY29kZUJsb2NrLT5nbG9iYWxP
YmplY3RGb3IoY3VycmVudENvZGVPcmlnaW4oKSktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5
bWJvbEZ1bmN0aW9uKCk7CisKKyAgICAgICAgICAgIE5vZGUqIGNvbnN0cnVjdG9yID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAg
ICAgICBOb2RlKiBoYXNJbnN0YW5jZVN5bWJvbCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworCisgICAgICAgICAgICBzZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKENoZWNr
SGFzSW5zdGFuY2UsIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZShkZWZhdWx0SGFzSW5zdGFuY2VTeW1i
b2xGdW5jdGlvbikpLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VTeW1ib2wpKTsKICAgICAgICAg
ICAgIE5FWFRfT1BDT0RFKG9wX2NoZWNrX2hhc19pbnN0YW5jZSk7CisgICAgICAgIH0KIAogICAg
ICAgICBjYXNlIG9wX2luc3RhbmNlb2Y6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CkBAIC0z
NTA3LDcgKzM1MTMsMTUgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25l
ZCBsaW1pdCkKICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoSW5zdGFuY2VPZiwgdmFsdWUsIHByb3RvdHlw
ZSkpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZik7CiAgICAgICAgIH0K
LSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZl9jdXN0b206IHsKKyAg
ICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBjb25zdHJ1Y3RvciA9IGdl
dChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworICAg
ICAgICAgICAgTm9kZSogaGFzSW5zdGFuY2VTeW1ib2wgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIHNldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoSW5z
dGFuY2VPZkN1c3RvbSwgdmFsdWUsIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVN5bWJvbCkpOwor
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZl9jdXN0b20pOworICAgICAgICB9
CisKICAgICAgICAgY2FzZSBvcF9pc191bmRlZmluZWQ6IHsKICAgICAgICAgICAgIE5vZGUqIHZh
bHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
KSk7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKElzVW5kZWZpbmVkLCB2YWx1ZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDFlMGNjMDgwNjI0
ZWUyNzJhMjZjOWIyZmFlZTc5NDhhOGI0ZTliODcuLjM4MjkwMmFkMzAxYzViMjE0OGYxMWUyNTkx
N2ZlZWMyMDYzMzdlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5jcHAKQEAgLTEzMCw2ICsxMzAsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0
eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1Ywog
ICAgIGNhc2Ugb3BfbW92OgogICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgogICAgIGNh
c2Ugb3BfaW5zdGFuY2VvZjoKKyAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOgogICAgIGNh
c2Ugb3BfaXNfdW5kZWZpbmVkOgogICAgIGNhc2Ugb3BfaXNfYm9vbGVhbjoKICAgICBjYXNlIG9w
X2lzX251bWJlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5k
ZXggNDE3ZDA2ZjcwMzliNGJiZmQyOGVhOWZmYzhmMTU4YzhlNDdlNjEwNy4uNTBjOWJiYTFiNzY3
MmE1NzE2YWYwNTU0ZjI5Yzk2YzYxMDZkOTI3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKQEAgLTcyOCw2ICs3MjgsMTEgQEAgdm9pZCBjbG9iYmVyaXplKEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdy
aXRlRnUKICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICByZXR1cm47
CiAKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKKyAgICAgICAgcmVhZChKU0NlbGxfdHlw
ZUluZm9GbGFncyk7CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQ2hlY2tUeXBlSW5mb0ZsYWdz
TG9jLCBKU0NlbGxfdHlwZUluZm9GbGFncywgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2Rl
KSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKICAgICAg
ICAgcmVhZChKU0NlbGxfdHlwZUluZm9GbGFncyk7CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24o
Q2hlY2tIYXNJbnN0YW5jZUxvYywgSlNDZWxsX3R5cGVJbmZvRmxhZ3MsIG5vZGUtPmNoaWxkMSgp
KSwgTGF6eU5vZGUobm9kZSkpOwpAQCAtNzM4LDYgKzc0MywxMSBAQCB2b2lkIGNsb2JiZXJpemUo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3Qg
V3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEluc3RhbmNlT2ZMb2MsIEpTQ2VsbF9z
dHJ1Y3R1cmVJRCwgbm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6eU5vZGUobm9k
ZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAg
ICAgIHJlYWQoV29ybGQpOworICAgICAgICB3cml0ZShIZWFwKTsKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CiAgICAgICAgIHdyaXRlKEpTQ2VsbF9zdHJ1Y3R1cmVJ
RCk7CiAgICAgICAgIHdyaXRlKEpTQ2VsbF90eXBlSW5mb1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IGIyNmUwYTVmMzgzYTAwYTAyZWJmMjhlMTg1NTc5
MjM5NDlhYmY3NzIuLjZjNWRmOTI2MzkyZTI2MGFlMmM0Mjk1YTY1MTdiM2I3N2M3OGJkNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTE0NCw2ICsxNDQsNyBA
QCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQcm9maWxl
Q29udHJvbEZsb3c6CiAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFu
Y2VPZjoKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoK
ICAgICBjYXNlIElzQm9vbGVhbjoKICAgICBjYXNlIElzTnVtYmVyOgpAQCAtMTgxLDYgKzE4Miw3
IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNr
SW5Cb3VuZHM6CiAgICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hl
Y2s6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgY2FzZSBNdWx0aUdldEJ5T2Zm
c2V0OgogICAgIGNhc2UgVmFsdWVSZXA6CiAgICAgY2FzZSBEb3VibGVSZXA6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCBiMjE5NDUyYTkzMzg1N2Fk
MWI4ZGUyMWUzNjJlMDkyNmRjMzBmMzViLi5hYWIxMmFmNTI3OGM5Yjk1ZGQzYWNkYzBmODJkZTVj
NmVmM2I1MWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKQEAgLTEwOTUsMTAgKzEwOTUsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8
RnVuY3Rpb25Vc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CisKKyAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOiB7CisgICAgICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQyKCkubm9kZSgpLT5pc0NlbGxDb25zdGFudCgpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG5vZGUtPmNoaWxkMigpLm5vZGUoKS0+YXNDZWxsKCkgIT0gbV9ncmFwaC5nbG9iYWxP
YmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNl
U3ltYm9sRnVuY3Rpb24oKSkgeworCisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGguY29udmVy
dFRvQ29uc3RhbnQobm9kZSwganNCb29sZWFuKHRydWUpKTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCFtX2dyYXBo
Lmhhc0V4aXRTaXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgQmFkVHlwZUluZm9GbGFncykpIHsK
KyAgICAgICAgICAgICAgICAgICAgLy8gSGVyZSB3ZSBvcHRpbWlzdGljYWxseSBhc3N1bWUgdGhh
dCB3ZSB3aWxsIG5vdCBzZWUgYW4gYm91bmQvQy1BUEkgZnVuY3Rpb24gaGVyZS4KKyAgICAgICAg
ICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZShtX2luZGV4SW5CbG9jaywgU3Bl
Y05vbmUsIENoZWNrVHlwZUluZm9GbGFncywgbm9kZS0+b3JpZ2luLCBPcEluZm8oSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSksIEVkZ2Uobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBDZWxsVXNl
KSk7CisgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGguY29udmVydFRvQ29uc3RhbnQobm9kZSwg
anNCb29sZWFuKGZhbHNlKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihu
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICAg
ICAgCiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxs
OgotICAgICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CiAgICAgICAgIGNhc2UgQ3JlYXRlVGhp
czoKICAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CiAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5
UmVhZE9ubHk6IHsKQEAgLTExNTksNyArMTE3OCwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAg
Zml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQotICAgICAgICAgICAgCisKKyAgICAgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgor
ICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAg
ICBicmVhazsKKwogICAgICAgICBjYXNlIEluOiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIGF0IHNvbWUgcG9pbnQgaGF2ZSBhcnJheSBwcm9maWxpbmcgb24gb3BfaW4sIGluIHdo
aWNoCiAgICAgICAgICAgICAvLyBjYXNlIHdlIHdvdWxkIGJlIGFibGUgdG8gdHVybiB0aGlzIGlu
dG8gYSBraW5kIG9mIEdldEJ5VmFsLgpAQCAtMTQwNSw2ICsxNDI4LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBOb3RpZnlXcml0ZToKICAgICAgICAgY2FzZSBWYXJJbmplY3Rpb25XYXRjaHBv
aW50OgogICAgICAgICBjYXNlIENhbGw6CisgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdz
OgogICAgICAgICBjYXNlIFRhaWxDYWxsSW5saW5lZENhbGxlcjoKICAgICAgICAgY2FzZSBDb25z
dHJ1Y3Q6CiAgICAgICAgIGNhc2UgQ2FsbFZhcmFyZ3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKaW5kZXggNjkyMzY1NjM5NjExZmVhZjczZjRlODYx
NThhMDAxYjM2ZDEzNTI3Yi4uMmExNWIzN2M5MWQyODA4ZDc5ZjNlN2VjYzhjNmEzNzc3ZDkwMTI2
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcApA
QCAtOTUsNyArOTUsMTEgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIExv
Y2F0aW9uS2luZCBraW5kKQogICAgIGNhc2UgQnV0dGVyZmx5UmVhZE9ubHlMb2M6CiAgICAgICAg
IG91dC5wcmludCgiQnV0dGVyZmx5UmVhZE9ubHlMb2MiKTsKICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAKKworICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzTG9jOgorICAgICAgICBvdXQucHJp
bnQoIkNoZWNrVHlwZUluZm9GbGFnc0xvYyIpOworICAgICAgICByZXR1cm47CisKICAgICBjYXNl
IENoZWNrSGFzSW5zdGFuY2VMb2M6CiAgICAgICAgIG91dC5wcmludCgiQ2hlY2tIYXNJbnN0YW5j
ZUxvYyIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdI
ZWFwTG9jYXRpb24uaAppbmRleCA0OTVkMzAwM2NlYTZjMWM1N2M1MDJkZTRjMWVmNGUxMTVhYmJl
MGIwLi41M2ZmOTZjNTRhYTUwYmZiZjE0ZTYzY2ExYTgzNDA0YmQ0MTJmYWE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKQEAgLTQwLDYgKzQwLDcgQEAg
ZW51bSBMb2NhdGlvbktpbmQgewogICAgIEFycmF5TGVuZ3RoTG9jLAogICAgIEJ1dHRlcmZseUxv
YywKICAgICBCdXR0ZXJmbHlSZWFkT25seUxvYywKKyAgICBDaGVja1R5cGVJbmZvRmxhZ3NMb2Ms
CiAgICAgQ2hlY2tIYXNJbnN0YW5jZUxvYywKICAgICBDbG9zdXJlVmFyaWFibGVMb2MsCiAgICAg
RGlyZWN0QXJndW1lbnRzTG9jLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCBm
OTZhN2VmZjhmNjZkYzhmZDEyYmI1NWM2MmMzZDVlMzVhNDg2NWMxLi43NzE1YjkzY2RjMDIyMjM4
MmU4ZjJmYTcwNjc2ZTg2MjdmZjkyMDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUu
aApAQCAtMTM1NCw2ICsxMzU0LDcgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgc3dp
dGNoIChvcCgpKSB7CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgorICAgICAgICBjYXNlIENoZWNr
SGFzSW5zdGFuY2U6CiAgICAgICAgIGNhc2UgTmV3RnVuY3Rpb246CiAgICAgICAgIGNhc2UgTmV3
QXJyb3dGdW5jdGlvbjoKICAgICAgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOgpAQCAtMTQxNSw2
ICsxNDE2LDE3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7CiAgICAgfQogCisgICAgYm9vbCBoYXNU
eXBlSW5mb09wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tUeXBl
SW5mb0ZsYWdzOworICAgIH0KKworICAgIHVuc2lnbmVkIHR5cGVJbmZvT3BlcmFuZCgpCisgICAg
eworICAgICAgICBBU1NFUlQoaGFzVHlwZUluZm9PcGVyYW5kKCkgJiYgbV9vcEluZm8gPD0gVUNI
QVJfTUFYKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29wSW5mbyk7
CisgICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRj
aCAob3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
VHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDJl
ZDNjZTRkYWE0ZTc4MGYwNjllY2I5YjlhYWM1ODZmMzg5YzFhYjkuLmFjNmNlOGI1OTZkMDQwODFk
ZWM5ZjJhNzc0OTE2NzM4NjVlNzZiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERG
RyB7CiAgICAgbWFjcm8oQ2hlY2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFj
cm8oQ2hlY2tJbkJvdW5kcywgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSWRl
bnQsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja1R5cGVJbmZvRmxhZ3MsIE5v
ZGVNdXN0R2VuZXJhdGUpIC8qIFRha2VzIGFuIE9wSW5mbyB3aXRoIHRoZSBmbGFncyB5b3Ugd2Fu
dCB0byB0ZXN0IGFyZSBzZXQgKi9cCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFy
cmF5IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5v
ZGVNdXN0R2VuZXJhdGUpIFwKQEAgLTI3OSw4ICsyODAsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQnJlYWtwb2ludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAog
ICAgIG1hY3JvKFByb2ZpbGVXaWxsQ2FsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KFByb2ZpbGVEaWRDYWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oQ2hlY2tIYXNJ
bnN0YW5jZSwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKENoZWNrSGFzSW5zdGFuY2Us
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEluc3Rh
bmNlT2YsIE5vZGVSZXN1bHRCb29sZWFuKSBcCisgICAgbWFjcm8oSW5zdGFuY2VPZkN1c3RvbSwg
Tm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNVbmRl
ZmluZWQsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNCb29sZWFuLCBOb2RlUmVz
dWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzTnVtYmVyLCBOb2RlUmVzdWx0Qm9vbGVhbikgXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCA0MGNlYzc2MDMyNDUxMTAxMjk2NTg5OTJlN2E5YjJj
NGM5ZTk1MGZlLi4xOGY3YjE4YTEwYzNlYjIwMzFiZjI5ZmNjZjdmYjc1ZjVmZDAwNmQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlv
blBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMzk4LDcgKzM5OCw5IEBAIHByaXZhdGU6CiAgICAgICAg
IGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKICAgICAgICAgY2FzZSBDb21wYXJlRXE6CiAgICAgICAg
IGNhc2UgQ29tcGFyZVN0cmljdEVxOgorICAgICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CiAg
ICAgICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICAgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgog
ICAgICAgICBjYXNlIElzVW5kZWZpbmVkOgogICAgICAgICBjYXNlIElzQm9vbGVhbjoKICAgICAg
ICAgY2FzZSBJc051bWJlcjoKQEAgLTU2NSw2ICs1NjcsNyBAQCBwcml2YXRlOgogICAgICAgICBj
YXNlIERvdWJsZUFzSW50MzI6CiAgICAgICAgIGNhc2UgR2V0TG9jYWxVbmxpbmtlZDoKICAgICAg
ICAgY2FzZSBDaGVja0FycmF5OgorICAgICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKICAg
ICAgICAgY2FzZSBBcnJheWlmeToKICAgICAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgog
ICAgICAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOgpAQCAtNjgwLDcgKzY4Myw2IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgICAgIGNhc2UgUHJvZmlsZVR5
cGU6CiAgICAgICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgotICAgICAgICBjYXNlIENoZWNr
SGFzSW5zdGFuY2U6CiAgICAgICAgIGNhc2UgVGhyb3dSZWZlcmVuY2VFcnJvcjoKICAgICAgICAg
Y2FzZSBGb3JjZU9TUkV4aXQ6CiAgICAgICAgIGNhc2UgU2V0QXJndW1lbnQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGY1YzY4ZGI4MjRlMTVm
YTdkNjY3OGEyZjNkZDY2YjMwNGFhZDIzOTYuLjQ0MjU4MDc1MzQ0ZmNkNWE5N2NhMjRiNjQ1M2U1
Njg1ZTc5MDVmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oCkBAIC0yNDIsOCArMjQyLDEwIEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0
YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFByb2Zp
bGVEaWRDYWxsOgogICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAgICAgY2FzZSBQcm9maWxlQ29udHJv
bEZsb3c6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgY2FzZSBDaGVja0hhc0lu
c3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206
CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVhbjoKICAgICBjYXNlIElz
TnVtYmVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAppbmRleCAyNzI3MzRkMmZiNjg2NWQ4NzAxMTQwYzcxNmVhNGE1OGY4MmEyYmM1Li43MTNi
ZDExOTU0MzI1YmM5OWNkZWM0ZjIxMTdjNzg5NDNkMjNjZGUwIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjczNyw2ICsyNzM3LDE3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yT2JqZWN0KE5vZGUq
LCBHUFJSZWcgdmFsdWVSZWcsIEdQUlJlZyBwCiAgICAgcHV0UmVzdWx0LmxpbmsoJm1faml0KTsK
IH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyhOb2Rl
KiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworCisgICAgc3BlY3Vs
YXRpb25DaGVjayhCYWRUeXBlSW5mb0ZsYWdzLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFu
Y2hUZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFz
ZUdQUiwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKG5vZGUtPnR5cGVJbmZvT3BlcmFuZCgpKSkpOworCisgICAgbm9SZXN1bHQobm9k
ZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mKE5vZGUqIG5v
ZGUpCiB7CiAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKSB7
CkBAIC0yOTA1LDYgKzI5MTYsNDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVl
QWRkKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlSW5zdGFuY2VPZkN1c3RvbShOb2RlKiBub2RlKQoreworICAgIC8vIFdlIGNvdWxkIGRv
IHNvbWV0aGluZyBzbWFydGVyIGhlcmUgYnV0IHRoaXMgY2FzZSBpcyBjdXJyZW50bHkgc3VwZXIg
cmFyZSBhbmQgdW5sZXNzCisgICAgLy8gU3ltYm9sLmhhc0luc3RhbmNlIGJlY29tZXMgcG9wdWxh
ciB3aWxsIGxpa2VseSByZW1haW4gdGhhdCB3YXkuCisKKyAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgY29uc3Ry
dWN0b3IodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIEpTVmFsdWVPcGVyYW5kIGhhc0luc3Rh
bmNlU3ltYm9sKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKworICAgIEpTVmFsdWVSZWdzIHZhbHVl
UmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CisgICAgR1BSUmVnIGNvbnN0cnVjdG9yR1BSID0g
Y29uc3RydWN0b3IuZ3ByKCk7CisgICAgSlNWYWx1ZVJlZ3MgaGFzSW5zdGFuY2VSZWdzID0gaGFz
SW5zdGFuY2VTeW1ib2wuanNWYWx1ZVJlZ3MoKTsKKworI2lmIENQVShYODYpCisgICAgLy8gTm90
ZSB0aGF0IHdlIGludGVudGlvbmFsbHkgY2xvYmJlciB0aGUgaGFzSW5zdGFuY2VTeW1ib2wgcmVn
aXN0ZXIgaGVyZSBvbiB4ODYgYmVjYXVzZSB3ZQorICAgIC8vIGFyZSBzaG9ydCBvbiByZWdpc3Rl
cnMuIFRoaXMgaXMgdmFsaWQgYmVjYXVzZSB3ZSBrbm93IEluc3RhbmNlT2ZDdXN0b20gaXMgdGhl
IGxhc3QgdXNlCisgICAgLy8gb2YgdGhlIEdldEJ5SWQgd2hpY2ggcHJvZHVjZXMgaXQuCisgICAg
UkVMRUFTRV9BU1NFUlQoY2FuUmV1c2Uobm9kZS0+Y2hpbGQzKCkpKTsKKyAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMpOworICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisK
KyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZSA9IG1faml0Lmp1bXAoKTsKKworICAg
IGFkZFNsb3dQYXRoR2VuZXJhdG9yKAorICAgICAgICBzbG93UGF0aENhbGwoc2xvd0Nhc2UsIHRo
aXMsIG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIGhhc0luc3RhbmNlUmVncywgdmFsdWVSZWdz
LCBjb25zdHJ1Y3RvckdQUiwgaGFzSW5zdGFuY2VSZWdzKSk7CisgICAgbV9qaXQubW92ZShoYXNJ
bnN0YW5jZVJlZ3MucGF5bG9hZEdQUigpLCByZXN1bHRHUFIpOworCisgICAgdW5ibGVzc2VkQm9v
bGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOworI2Vsc2UKKworICAgIEpTVmFsdWVSZWdzVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0
LnJlZ3MoKTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlID0gbV9qaXQuanVt
cCgpOworCisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCisgICAgICAgIHNsb3dQYXRoQ2FsbChz
bG93Q2FzZSwgdGhpcywgb3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwgcmVzdWx0UmVncywgdmFs
dWVSZWdzLCBjb25zdHJ1Y3RvckdQUiwgaGFzSW5zdGFuY2VSZWdzKSk7CisKKyAgICB1bmJsZXNz
ZWRCb29sZWFuUmVzdWx0KHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCBub2RlKTsKKyNlbmRpZgor
fQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhBZGQoTm9kZSogbm9kZSkKIHsK
ICAgICBzd2l0Y2ggKG5vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDg2NjBiMDRmMDhjMGVhZmM1NTU0
NjVlODM0ZDMwOGUxZDQzYjNlMWEuLjAyMzdkZDc3ODVhZTU1YzA3NWU5ZjYzZjk2OTE2OTFjNmEx
ZTgwZTQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmgKQEAgLTcyNyw2ICs3MjcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW5z
dGFuY2VPZkZvck9iamVjdChOb2RlKiwgR1BSUmVnIHZhbHVlUmVnLCBHUFJSZWcgcHJvdG90eXBl
UmVnLCBHUFJSZWcgc2NyYXRjaEFuZFJlc3VsdFJlZywgR1BSUmVnIHNjcmF0Y2gyUmVnKTsKICAg
ICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVJbnN0YW5j
ZU9mQ3VzdG9tKE5vZGUqKTsKICAgICAKICAgICB2b2lkIGVtaXRDYWxsKE5vZGUqKTsKICAgICAK
QEAgLTE0NDMsNiArMTQ0NCwxNSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BSKCksIGFyZzEucGF5bG9hZEdQ
UigpLCBhcmcyLnBheWxvYWRHUFIoKSk7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQs
IEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMpCisgICAgeworICAgICAgICBt
X2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAg
ICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9
CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSk9K
IG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgR1BSUmVnIGFyZzIs
IEpTVmFsdWVSZWdzIGFyZzMpCisgICAgeworICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihv
cGVyYXRpb24sIHJlc3VsdCwgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzIsIGFyZzMucGF5bG9hZEdQ
UigpKTsKKyAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVn
IGFyZzIpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
YXJnMSwgYXJnMik7CkBAIC0xNzY2LDYgKzE3NzYsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdC50YWdHUFIoKSwgcmVzdWx0LnBheWxv
YWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCks
IGFyZzIucGF5bG9hZEdQUigpKTsKICAgICB9CiAKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFn
LCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9h
ZCwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczVGFnLCBHUFJSZWcgYXJnM1BheWxvYWQpCisgICAg
eworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9E
VU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzIsIEVBQklfMzJCSVRfRFVNTVlfQVJH
IGFyZzNQYXlsb2FkLCBhcmczVGFnKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1
bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOworICAgIH0KKyAgICBKSVRD
b21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9u
LCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEdQUlJlZyBhcmcyLCBKU1Zh
bHVlUmVncyBhcmczKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uLCByZXN1bHQudGFnR1BSKCksIHJlc3VsdC5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCks
IGFyZzEucGF5bG9hZEdQUigpLCBhcmcyLCBhcmczLnRhZ0dQUigpLCBhcmczLnBheWxvYWRHUFIo
KSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FQ0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5
bG9hZCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQpCiAg
ICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJn
MlBheWxvYWQsIGFyZzJUYWcpOwpAQCAtMjIwNSw2ICsyMjI1LDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSopOwogCisgICAgdm9pZCBjb21waWxlQ2hl
Y2tUeXBlSW5mb0ZsYWdzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUq
KTsKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA0
NWI5NTQzZWIxZmEwNmUyNTc4YWY0ZGNmYjgzYjViNjc4M2UzNDY2Li42ZTkwODg1ZGI3ZGVhMGE1
M2Y3MzQ2NDlhZWI2N2VmNWFiZGY5MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTQyMDUsMTcgKzQyMDUsNDgg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVh
azsKICAgICB9CiAKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczogeworICAgICAgICBjb21w
aWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAg
ICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6IHsKKworICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVN5
bWJvbE5vZGUgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCk7CisgICAgICAgIEpTRnVuY3Rpb24qIGRl
ZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihub2RlLT5jZWxs
T3BlcmFuZCgpLT52YWx1ZSgpKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RE
ZWZhdWx0SGFzSW5zdGFuY2VTeW1ib2w7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGhh
c0luc3RhbmNlU3ltYm9sTm90Q2VsbDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFz
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUo
dGhpcyk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIGhhc0luc3RhbmNlU3ltYm9sKHRoaXMsIG5v
ZGUtPmNoaWxkMigpKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKIAotICAg
ICAgICAvLyBTcGVjdWxhdGUgdGhhdCBiYXNlICdJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNl
Jy4KLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwg
MCwgbV9qaXQuYnJhbmNoVGVzdDgoCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6WmVybywg
Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlLmdwcigpLCBKU0NlbGw6
OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOworICAgICAgICBHUFJS
ZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCi0gICAgICAgIG5vUmVzdWx0KG5vZGUpOwor
ICAgICAgICAvLyBJZiB3ZSBoYXZlIHByb3ZlbiB0aGF0IHRoZSBjb25zdHJ1Y3RvcidzIFN5bWJv
bC5oYXNJbnN0YW5jZSB3aWxsIGFsd2F5cyBiZSB0aGUgb25lIG9uCisgICAgICAgIC8vIEZ1bmN0
aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdIHRoZW4gd2UgZG9uJ3QgbmVlZCBhIHJ1
bnRpbWUgY2hlY2sgaGVyZS4gV2UgZG9uJ3Qgd29ycnkKKyAgICAgICAgLy8gYWJvdXQgdGhlIGNh
c2Ugd2hlcmUgdGhlIGNvbnN0cnVjdG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIGlzIGEgY29uc3Rh
bnQgYnV0IGlzIG5vdCB0aGUgZGVmYXVsdAorICAgICAgICAvLyBvbmUgYXMgZml4dXAgc2hvdWxk
IGhhdmUgY29udmVydGVkIHRoaXMgY2hlY2sgdG8gdHJ1ZS4KKyAgICAgICAgQVNTRVJUKCFoYXNJ
bnN0YW5jZVN5bWJvbE5vZGUtPmlzQ2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3RhbmNl
RnVuY3Rpb24gPT0gaGFzSW5zdGFuY2VTeW1ib2xOb2RlLT5hc0NlbGwoKSk7CisgICAgICAgIGlm
ICghaGFzSW5zdGFuY2VTeW1ib2xOb2RlLT5pc0NlbGxDb25zdGFudCgpKSB7CisKKyAgICAgICAg
ICAgIEpTVmFsdWVSZWdzIGhhc0luc3RhbmNlU3ltYm9sUmVncyA9IGhhc0luc3RhbmNlU3ltYm9s
LmpzVmFsdWVSZWdzKCk7CisgICAgICAgICAgICBoYXNJbnN0YW5jZVN5bWJvbE5vdENlbGwgPSBt
X2ppdC5icmFuY2hJZk5vdENlbGwoaGFzSW5zdGFuY2VTeW1ib2xSZWdzKTsKKyAgICAgICAgICAg
IG5vdERlZmF1bHRIYXNJbnN0YW5jZVN5bWJvbCA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2Vt
Ymxlcjo6Tm90RXF1YWwsIGhhc0luc3RhbmNlU3ltYm9sUmVncy5wYXlsb2FkR1BSKCksIFRydXN0
ZWRJbW1QdHIoZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24pKTsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIENoZWNrIHRoYXQgY29uc3RydWN0b3IgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UnLgorICAgICAgICBtX2ppdC50ZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoYmFzZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkp
LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UpLCByZXN1bHRHUFIpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9q
aXQuanVtcCgpOworCisgICAgICAgIGlmICghaGFzSW5zdGFuY2VTeW1ib2xOb2RlLT5pc0NlbGxD
b25zdGFudCgpKSB7CisgICAgICAgICAgICBoYXNJbnN0YW5jZVN5bWJvbE5vdENlbGwubGluaygm
bV9qaXQpOworICAgICAgICAgICAgbm90RGVmYXVsdEhhc0luc3RhbmNlU3ltYm9sLmxpbmsoJm1f
aml0KTsKKyAgICAgICAgICAgIG1vdmVGYWxzZVRvKHJlc3VsdEdQUik7CisgICAgICAgIH0KKwor
ICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHRH
UFIsIG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTQyMjQsNiArNDI1NSwxMSBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAorICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbTogeworICAgICAgICBjb21waWxl
SW5zdGFuY2VPZkN1c3RvbShub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2Fz
ZSBJc1VuZGVmaW5lZDogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAz
ODdlZDZjZjY1NmQ1YTk4OGY3YTg2OWVhZDg4NWE5NzE5NWEwODQzLi4zNzk0YWJiNjFiZjYyNDAw
OWExY2QxNDMyZWJkMzFhN2JiZDBlN2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQxOTUsMTcgKzQxOTUsNDQgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAg
ICB9CiAKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczogeworICAgICAgICBjb21waWxlQ2hl
Y2tUeXBlSW5mb0ZsYWdzKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNl
IENoZWNrSGFzSW5zdGFuY2U6IHsKKworICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVN5bWJvbE5v
ZGUgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCk7CisgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRI
YXNJbnN0YW5jZUZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihub2RlLT5jZWxsT3BlcmFu
ZCgpLT52YWx1ZSgpKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3REZWZhdWx0
OwogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgp
KTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKKyAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgaGFzSW5zdGFuY2VTeW1ib2wodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogCi0gICAgICAgIC8vIFNwZWN1bGF0ZSB0aGF0
IGJhc2UgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgotICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0OCgK
LSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpaZXJvLCAKLSAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgp
KSwgCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNE
ZWZhdWx0SGFzSW5zdGFuY2UpKSk7CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQu
Z3ByKCk7CiAKLSAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIC8vIElmIHdlIGhhdmUg
cHJvdmVuIHRoYXQgdGhlIGNvbnN0cnVjdG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIHdpbGwgYWx3
YXlzIGJlIHRoZSBvbmUgb24gRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0K
KyAgICAgICAgLy8gdGhlbiB3ZSBkb24ndCBuZWVkIGEgcnVudGltZSBjaGVjayBoZXJlLiBXZSBk
b24ndCB3b3JyeSBhYm91dCB0aGUgY2FzZSB3aGVyZSB0aGUgY29uc3RydWN0b3IncyBTeW1ib2wu
aGFzSW5zdGFuY2UgaXMgYSBjb25zdGFudAorICAgICAgICAvLyBidXQgaXMgbm90IHRoZSBkZWZh
dWx0IG9uZSBhcyBmaXh1cCBzaG91bGQgaGF2ZSBjb252ZXJ0ZWQgdGhpcyBjaGVjayB0byB0cnVl
LgorICAgICAgICBBU1NFUlQoIWhhc0luc3RhbmNlU3ltYm9sTm9kZS0+aXNDZWxsQ29uc3RhbnQo
KSB8fCBkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9PSBoYXNJbnN0YW5jZVN5bWJvbE5vZGUt
PmFzQ2VsbCgpKTsKKyAgICAgICAgaWYgKCFoYXNJbnN0YW5jZVN5bWJvbE5vZGUtPmlzQ2VsbENv
bnN0YW50KCkpIHsKKworICAgICAgICAgICAgbm90RGVmYXVsdCA9IG1faml0LmJyYW5jaFB0cihN
YWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGhhc0luc3RhbmNlU3ltYm9sLmdwcigpLCBUcnVzdGVk
SW1tUHRyKGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uKSk7CisgICAgICAgIH0KKworICAgICAg
ICAvLyBDaGVjayB0aGF0IGJhc2UgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgorICAg
ICAgICBtX2ppdC50ZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3MoYmFzZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCByZXN1
bHRHUFIpOworICAgICAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVz
dWx0R1BSKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAo
KTsKKworICAgICAgICBpZiAobm90RGVmYXVsdC5pc1NldCgpKSB7CisgICAgICAgICAgICBub3RE
ZWZhdWx0LmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG1vdmVGYWxzZVRvKHJlc3VsdEdQUik7
CisgICAgICAgIH0KKworICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAganNWYWx1
ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUsIERhdGFGb3JtYXRKU0Jvb2xlYW4pOwogICAgICAgICBi
cmVhazsKICAgICB9CiAKQEAgLTQyMTMsNiArNDI0MCwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVJbnN0YW5jZU9mKG5vZGUpOwog
ICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206IHsKKyAg
ICAgICAgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20obm9kZSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KICAgICAgICAgCiAgICAgY2FzZSBJc1VuZGVmaW5lZDogewogICAgICAgICBKU1ZhbHVlT3Bl
cmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggNjRhNDgyMjcwOTI4NmMyN2I4ODZhN2Zj
NjM4NjM5ZDE0YTEyZjJhYS4uMDQyZWQzMmRlMGU1YmYzYjZlYmUyOThjZTYxYmJlOTY5ZjNhNzVh
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApA
QCAtMTc1LDggKzE3NSwxMCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICBjYXNlIElzT2JqZWN0OgogICAgIGNhc2UgSXNPYmplY3RPck51bGw6CiAg
ICAgY2FzZSBJc0Z1bmN0aW9uOgorICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgogICAgIGNh
c2UgQ2hlY2tIYXNJbnN0YW5jZToKICAgICBjYXNlIEluc3RhbmNlT2Y6CisgICAgY2FzZSBJbnN0
YW5jZU9mQ3VzdG9tOgogICAgIGNhc2UgRG91YmxlUmVwOgogICAgIGNhc2UgVmFsdWVSZXA6CiAg
ICAgY2FzZSBJbnQ1MlJlcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSW50cmluc2ljUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bnRyaW5zaWNSZXBvc2l0b3J5LmgKaW5kZXggZjVmNGVhNzFhMWY3ZGZmMzgyMjQxNTAyMmY1MzNl
YWU2NWUxMWYzMC4uMmViMTlhZGJmMGU5NmY0OWJhNTFjNDVjODE2N2I1MTU0MGJmMTQzYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5
LmgKQEAgLTg5LDYgKzg5LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAg
IG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50
NjQpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUpBLCBmdW5jdGlvblR5cGUoaW50NjQs
IGludFB0ciwgaW50NjQsIGludFB0cikpIFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSkMs
IGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50UHRyKSkgXAorICAgIG1hY3Jv
KEpfSklUT3BlcmF0aW9uX0VKT0osIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwg
aW50UHRyLCBpbnQ2NCkpIFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSkksIGZ1bmN0aW9u
VHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50UHRyKSkgXAogICAgIG1hY3JvKEpfSklUT3Bl
cmF0aW9uX0VKSiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0LCBpbnQ2NCkpIFwK
ICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSnNjQywgZnVuY3Rpb25UeXBlKGludFB0ciwgaW50
UHRyLCBpbnRQdHIsIGludFB0cikpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggM2UwY2RhZTNlZTgwZTA2OWIzNWM4NDI1N2UwYTVl
MTY2OWZmOGZlYS4uN2EyOGNmMzUyMDIyZTcyNjljYjgzODU0MzI2YTAwZWNjZDUyNjQ0NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAg
LTkyMiwxMiArOTIyLDE4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlwZU9mOgogICAgICAg
ICAgICAgY29tcGlsZVR5cGVPZigpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q2hlY2tUeXBlSW5mb0ZsYWdzOgorICAgICAgICAgICAgY29tcGlsZUNoZWNrVHlwZUluZm9GbGFn
cygpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToK
ICAgICAgICAgICAgIGNvbXBpbGVDaGVja0hhc0luc3RhbmNlKCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBJbnN0YW5jZU9mOgogICAgICAgICAgICAgY29tcGlsZUluc3RhbmNl
T2YoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206
CisgICAgICAgICAgICBjb21waWxlSW5zdGFuY2VPZkN1c3RvbSgpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgICAgICAgICBjb21waWxlQ291
bnRFeGVjdXRpb24oKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTY4NSwxMSArNTY5MSwzOCBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21waWxlQ2hlY2tIYXNJbnN0YW5jZSgpCiAgICAgewor
ICAgICAgICBKU0Z1bmN0aW9uKiBkZWZhdWx0SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbiA9IGpz
Q2FzdDxKU0Z1bmN0aW9uKj4obV9ub2RlLT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpKTsKKworICAg
ICAgICBMVmFsdWUgY29uc3RydWN0b3IgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICBMVmFsdWUgaGFzSW5zdGFuY2UgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwor
CisgICAgICAgIExCYXNpY0Jsb2NrIGRlZmF1bHRIYXNJbnN0YW5jZSA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQ2hlY2tIYXNJbnN0YW5jZSBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgZGVmYXVsdCIp
KTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291
dCwgKCJDaGVja0hhc0luc3RhbmNlIGNvbnRpbnVhdGlvbiIpKTsKKworICAgICAgICAvLyBVbmxp
a2UsIHRoZSBERkcgd2UgZG9uJ3Qgd29ycnkgYWJvdXQgY2xlYW5pbmcgdGhpcyBjb2RlIHVwIGZv
ciB0aGUgY2FzZSB3aGVyZSB3ZSBoYXZlIHByb3ZlbiB0aGUgaGFzSW5zdGFuY2VTeW1ib2wgaXMg
YSBjb25zdGFudCBhcyBMTFZNIHNob3VsZCBmaXggaXQgZm9yIHVzLgorCisgICAgICAgIEFTU0VS
VCghbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCktPmlzQ2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhh
c0luc3RhbmNlU3ltYm9sRnVuY3Rpb24gPT0gbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCktPmFzQ2Vs
bCgpKTsKKworICAgICAgICBWYWx1ZUZyb21CbG9jayBub3REZWZhdWx0SGFzSW5zdGFuY2VSZXN1
bHQgPSBtX291dC5hbmNob3IobV9vdXQuYm9vbGVhblRydWUpOworICAgICAgICBtX291dC5icmFu
Y2gobV9vdXQubm90RXF1YWwoaGFzSW5zdGFuY2UsIG1fb3V0LmNvbnN0SW50UHRyKGRlZmF1bHRI
YXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKSksIHVuc3VyZShjb250aW51YXRpb24pLCB1bnN1cmUo
ZGVmYXVsdEhhc0luc3RhbmNlKSk7CisKKyAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBt
X291dC5hcHBlbmRUbyhkZWZhdWx0SGFzSW5zdGFuY2UsIGNvbnRpbnVhdGlvbik7CisgICAgICAg
IFZhbHVlRnJvbUJsb2NrIGltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2VSZXN1bHQgPSBtX291
dC5hbmNob3IobV9vdXQudGVzdElzWmVybzMyKAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJv
RXh0MzIoY29uc3RydWN0b3IsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAorICAgICAg
ICAgICAgbV9vdXQuY29uc3RJbnQzMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOwor
ICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHNldEJvb2xlYW4obV9vdXQucGhp
KG1fb3V0LmJvb2xlYW4sIGltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2VSZXN1bHQsIG5vdERl
ZmF1bHRIYXNJbnN0YW5jZVJlc3VsdCkpOworICAgIH0KKworICAgIHZvaWQgY29tcGlsZUNoZWNr
VHlwZUluZm9GbGFncygpCisgICAgewogICAgICAgICBzcGVjdWxhdGUoCi0gICAgICAgICAgICBV
bmNvdW50YWJsZSwgbm9WYWx1ZSgpLCAwLAorICAgICAgICAgICAgQmFkVHlwZUluZm9GbGFncywg
bm9WYWx1ZSgpLCAwLAogICAgICAgICAgICAgbV9vdXQudGVzdElzWmVybzMyKAogICAgICAgICAg
ICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1f
aGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAotICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50MzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKKyAgICAgICAgICAgICAgICBt
X291dC5jb25zdEludDMyKG1fbm9kZS0+dHlwZUluZm9PcGVyYW5kKCkpKSk7CiAgICAgfQogICAg
IAogICAgIHZvaWQgY29tcGlsZUluc3RhbmNlT2YoKQpAQCAtNTc0Miw2ICs1Nzc1LDE1IEBAIHBy
aXZhdGU6CiAgICAgICAgIHNldEJvb2xlYW4oCiAgICAgICAgICAgICBtX291dC5waGkobV9vdXQu
Ym9vbGVhbiwgbm90Q2VsbFJlc3VsdCwgaXNJbnN0YW5jZVJlc3VsdCwgbm90SW5zdGFuY2VSZXN1
bHQpKTsKICAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKCkKKyAgICB7
CisgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgIExWYWx1ZSBjb25zdHJ1Y3RvciA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDIoKSk7Cisg
ICAgICAgIExWYWx1ZSBoYXNJbnN0YW5jZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDMoKSk7
CisKKyAgICAgICAgc2V0Qm9vbGVhbihtX291dC5lcXVhbChtX291dC5jb25zdEludDY0KEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpKSwgdm1DYWxsKG1fb3V0LmludDY0LCBtX291dC5v
cGVyYXRpb24ob3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSksIG1fY2FsbEZyYW1lLCB2YWx1ZSwg
Y29uc3RydWN0b3IsIGhhc0luc3RhbmNlKSkpOworICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBp
bGVDb3VudEV4ZWN1dGlvbigpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4
IDViNjdhMDUyN2UxOTkyM2ExNjljNGMzZDc3MzQwMjczMGU5NjJmZDIuLjFlODAwMGRkMmIwMWU3
YzBhOWJhZWE2MjkzODRhYWJlNTIzYTQ2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAK
QEAgLTIzMSw2ICsyMzEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAg
ICAgICAgIERFRklORV9PUChvcF9nZXRfYnlfdmFsKQogICAgICAgICBERUZJTkVfT1Aob3BfY2hl
Y2tfaGFzX2luc3RhbmNlKQogICAgICAgICBERUZJTkVfT1Aob3BfaW5zdGFuY2VvZikKKyAgICAg
ICAgREVGSU5FX09QKG9wX2luc3RhbmNlb2ZfY3VzdG9tKQogICAgICAgICBERUZJTkVfT1Aob3Bf
aXNfdW5kZWZpbmVkKQogICAgICAgICBERUZJTkVfT1Aob3BfaXNfYm9vbGVhbikKICAgICAgICAg
REVGSU5FX09QKG9wX2lzX251bWJlcikKQEAgLTQwMCw4ICs0MDEsOCBAQCB2b2lkIEpJVDo6cHJp
dmF0ZUNvbXBpbGVTbG93Q2FzZXMoKQogICAgICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6
CiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9nZXRfYnlfaWQpCiAgICAgICAgIERFRklO
RV9TTE9XQ0FTRV9PUChvcF9nZXRfYnlfdmFsKQotICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Ao
b3BfY2hlY2tfaGFzX2luc3RhbmNlKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaW5z
dGFuY2VvZikKKyAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2luc3RhbmNlb2ZfY3VzdG9t
KQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfamZhbHNlKQogICAgICAgICBERUZJTkVf
U0xPV0NBU0VfT1Aob3Bfamxlc3MpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9qbGVz
c2VxKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggMjBmMGU5YzQ4OTI3ODNiZTNlZTk2OWUz
ZmI3ZmEyZWViNzA4Y2VlOS4uY2U5NjA0NTY0M2I0NDI3YmIyNjc2OWJmZTNhODVjMmVkNzg4YjZl
NCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC01MTIsNiArNTEyLDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbml0X2xhenlfcmVnKEluc3RydWN0aW9uKik7
CiAgICAgICAgIHZvaWQgZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qKTsK
ICAgICAgICAgdm9pZCBlbWl0X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAg
dm9pZCBlbWl0X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZv
aWQgZW1pdF9vcF9pc191bmRlZmluZWQoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX2lzX2Jvb2xlYW4oSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2lzX251
bWJlcihJbnN0cnVjdGlvbiopOwpAQCAtNjE3LDggKzYxOCw4IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICB2b2lkIGVtaXRTbG93X29wX2dldF9hcmd1bWVudHNfbGVuZ3RoKEluc3RydWN0aW9u
KiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRT
bG93X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbChJ
bnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKLSAgICAgICAg
dm9pZCBlbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfaW5z
dGFuY2VvZihJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsK
KyAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVjdGlvbios
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xv
d19vcF9qZmFsc2UoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9y
Jik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bfamxlc3MoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bfamxl
c3NlcShJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKQEAg
LTc0NSw2ICs3NDYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkosIGludCwgR1BSUmVnLCBHUFJS
ZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpC
eSwgaW50LCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpPSiwgaW50LCBHUFJSZWcs
IEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihDX0pJVE9wZXJhdGlvbl9FSnNjLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKc2NDLCBpbnQsIEdQUlJlZywg
SlNDZWxsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpzY0NKLCBpbnQsIEdQUlJlZywgSlNDZWxsKiwgR1BSUmVnKTsKQEAgLTgx
Miw2ICs4MTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSiwgaW50LCBHUFJSZWcsIEdQUlJlZyk7
CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpJZGMsIGludCwgR1BSUmVnLCBHUFJSZWcsIGNvbnN0IElkZW50aWZpZXIqKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkos
IGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnKTsKKyAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSk9KLCBpbnQsIEdQUlJl
ZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcs
IEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEFycmF5UHJvZmlsZSopOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5LCBpbnQsIEdQ
UlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oUF9KSVRPcGVyYXRpb25fRUpTLCBHUFJSZWcs
IEdQUlJlZywgc2l6ZV90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5k
ZXggY2FkYjA4MzA4Y2NjMDYxYjdjNzc3ZDUwYjJhYzIzODNkMzk4ZTlkZS4uMDJiNGQ4ZGNkZDM0
NzhhOWNjYTFkMTA3MDI5NDExMTUyOGQ4OWFjYyAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVzLmgKQEAgLTUwMyw2ICs1MDMsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnkgb3BlcmEK
ICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQo
b3BlcmF0aW9uLCBkc3QpOwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSk9KIG9wZXJhdGlvbiwgaW50IGRz
dCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMykKK3sKKyAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAgcmV0dXJuIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsK
K30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRp
b25Ob0V4Y2VwdGlvbkNoZWNrKFZfSklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwgR1BSUmVnIGFy
ZzEpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEpOwpAQCAtNjM4LDYg
KzY0NCwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9w
ZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aQogICAgIHJldHVybiBhcHBlbmRDYWxs
V2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAK
K0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BS
UmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzNUYWcsIEdQUlJlZyBhcmcz
UGF5bG9hZCkKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9E
VU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzIsIEVBQklfMzJCSVRfRFVNTVlfQVJH
IGFyZzNQYXlsb2FkLCBhcmczVGFnKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRp
b25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FSkpBcCBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBh
eWxvYWQsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQsIEFycmF5UHJvZmlsZSog
YXJyYXlQcm9maWxlKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMy
QklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBh
cmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1c3RlZEltbVB0cihhcnJheVByb2ZpbGUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDk5YzAxYzhkMWU4YTBkZjg0
Yzg3ZmU1NWZlY2FhZjMyYjQwZTE0NTMuLmZhY2JjY2EwYzBmODgwYWRhMThkYWUzYjc3YjllYjJk
NTExMzU3ZDggMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAt
MTA3LDE1ICsxMDcsMjcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX25ld19vYmplY3QoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKIAogdm9pZCBKSVQ6OmVt
aXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiB7Ci0gICAgaW50IGJhc2VWYWwgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwor
ICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBj
b25zdHJ1Y3RvciA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisgICAgaW50IGhh
c0luc3RhbmNlU3ltYm9sID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKworICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoaGFzSW5zdGFuY2VTeW1ib2wsIHJlZ1QwKTsKKworICAg
IC8vIFdlIGRvbid0IGp1bXAgaWYgd2Uga25vdyB3aGF0IFN5bWJvbC5oYXNJbnN0YW5jZSB3b3Vs
ZCBkby4KKyAgICBKdW1wIGN1c3RvbUhhc0luc3RhbmNlU3ltYm9sID0gYnJhbmNoUHRyKE5vdEVx
dWFsLCByZWdUMCwgVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmZ1
bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkpKTsKIAotICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIoYmFzZVZhbCwgcmVnVDApOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0
ZXIoY29uc3RydWN0b3IsIHJlZ1QwKTsKIAotICAgIC8vIENoZWNrIHRoYXQgYmFzZVZhbCBpcyBh
IGNlbGwuCi0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlVmFsKTsK
KyAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRzSGFzSW5zdGFuY2UnIGku
ZS4gdGhlIG9iamVjdCBpcyBhIEMtQVBJIHVzZXIgb3IgYSBib3VuZCBmdW5jdGlvbi4KKyAgICB0
ZXN0OChaZXJvLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSks
IFRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSwgcmVnVDApOworICAg
IGVtaXRUYWdCb29sKHJlZ1QwKTsKKyAgICBKdW1wIGRvbmUgPSBqdW1wKCk7CiAKLSAgICAvLyBD
aGVjayB0aGF0IGJhc2VWYWwgJ0ltcGxlbWVudHNIYXNJbnN0YW5jZScuCi0gICAgYWRkU2xvd0Nh
c2UoYnJhbmNoVGVzdDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdz
T2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsK
KyAgICBjdXN0b21IYXNJbnN0YW5jZVN5bWJvbC5saW5rKHRoaXMpOworICAgIG1vdmUoVHJ1c3Rl
ZEltbTMyKFZhbHVlVHJ1ZSksIHJlZ1QwKTsKKworICAgIGRvbmUubGluayh0aGlzKTsKKyAgICBl
bWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2luc3Rh
bmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTEyOSw3ICsxNDEsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDIpOwogICAgIGVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvdG8sIHJlZ1QxKTsKIAotICAgIC8vIENoZWNrIHRoYXQg
cHJvdG8gYXJlIGNlbGxzLiAgYmFzZVZhbCBtdXN0IGJlIGEgY2VsbCAtIHRoaXMgaXMgY2hlY2tl
ZCBieSBvcF9jaGVja19oYXNfaW5zdGFuY2UuCisgICAgLy8gQ2hlY2sgdGhhdCBwcm90byBhcmUg
Y2VsbHMuIGJhc2VWYWwgbXVzdCBiZSBhIGNlbGwgLSB0aGlzIGlzIGNoZWNrZWQgYnkgdGhlIGdl
dF9ieV9pZCBmb3IgU3ltYm9sLmhhc0luc3RhbmNlLgogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbChyZWdUMiwgdmFsdWUpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChy
ZWdUMSwgcHJvdG8pOwogCkBAIC0xNTcsNiArMTY5LDEyIEBAIHZvaWQgSklUOjplbWl0X29wX2lu
c3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0Vmly
dHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3Vz
dG9tKEluc3RydWN0aW9uKikKK3sKKyAgICAvLyBUaGlzIGFsd2F5cyBnb2VzIHRvIHNsb3cgcGF0
aCBzaW5jZSB3ZSBleHBlY3QgaXQgdG8gYmUgcmFyZS4KKyAgICBhZGRTbG93Q2FzZShqdW1wKCkp
OworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9pc191bmRlZmluZWQoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKQEAgLTMxNywyMiArMzM1LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX2plcV9udWxs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgdGFyZ2V0ID0g
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKIAogICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIoc3JjLCByZWdUMCk7Ci0gICAgSnVtcCBpc0ltbWVkaWF0ZSA9IGVtaXRKdW1wSWZOb3RK
U0NlbGwocmVnVDApOwotCi0gICAgLy8gRmlyc3QsIGhhbmRsZSBKU0NlbGwgY2FzZXMgLSBjaGVj
ayBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIGJpdCBvbiB0aGUgc3RydWN0dXJlLgotICAgIEp1bXAg
aXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gYnJhbmNoVGVzdDgoWmVybywgQWRkcmVzcyhy
ZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoTWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCkpOwotICAgIGVtaXRMb2FkU3RydWN0dXJlKHJlZ1QwLCByZWdUMiwg
cmVnVDEpOwotICAgIG1vdmUoVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0
KCkpLCByZWdUMCk7Ci0gICAgYWRkSnVtcChicmFuY2hQdHIoRXF1YWwsIEFkZHJlc3MocmVnVDIs
IFN0cnVjdHVyZTo6Z2xvYmFsT2JqZWN0T2Zmc2V0KCkpLCByZWdUMCksIHRhcmdldCk7Ci0gICAg
SnVtcCBtYXNxdWVyYWRlc0dsb2JhbE9iamVjdElzRm9yZWlnbiA9IGp1bXAoKTsKKyAgICBKdW1w
TGlzdCBqdW1wcyA9IGVtaXRKdW1wSWZOdWxsKEpTVmFsdWVSZWdzKHJlZ1QwKSwgcmVnVDEsIHJl
Z1QyKTsKIAotICAgIC8vIE5vdyBoYW5kbGUgdGhlIGltbWVkaWF0ZSBjYXNlcyAtIHVuZGVmaW5l
ZCAmIG51bGwKLSAgICBpc0ltbWVkaWF0ZS5saW5rKHRoaXMpOwotICAgIGFuZDY0KFRydXN0ZWRJ
bW0zMih+VGFnQml0VW5kZWZpbmVkKSwgcmVnVDApOwotICAgIGFkZEp1bXAoYnJhbmNoNjQoRXF1
YWwsIHJlZ1QwLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKSkpLCB0YXJn
ZXQpOyAgICAgICAgICAgIAotCi0gICAgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmxpbmso
dGhpcyk7Ci0gICAgbWFzcXVlcmFkZXNHbG9iYWxPYmplY3RJc0ZvcmVpZ24ubGluayh0aGlzKTsK
KyAgICBmb3IgKEp1bXAganVtcCA6IGp1bXBzLmp1bXBzKCkpCisgICAgICAgIGFkZEp1bXAoanVt
cCwgdGFyZ2V0KTsKIH07CiB2b2lkIEpJVDo6ZW1pdF9vcF9qbmVxX251bGwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKQEAgLTgzNywzMyArODQzLDMyIEBAIHZvaWQgSklUOjpl
bWl0U2xvd19vcF9uc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlCiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAotdm9pZCBKSVQ6OmVt
aXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordm9pZCBKSVQ6OmVt
aXRTbG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgcHJvdG8gPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kOwogCi0gICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZVZhbCk7
CisgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgdmFsdWUpOworICAgIGxpbmtTbG93
Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIHByb3RvKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAg
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDApOwotICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIoYmFzZVZhbCwgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
Q2hlY2tIYXNJbnN0YW5jZSwgZHN0LCByZWdUMCwgcmVnVDEpOwotCi0gICAgZW1pdEp1bXBTbG93
VG9Ib3QoanVtcCgpLCBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBlbWl0
R2V0VmlydHVhbFJlZ2lzdGVyKHByb3RvLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25JbnN0YW5jZU9mLCBkc3QsIHJlZ1QwLCByZWdUMSk7CiB9CiAKLXZvaWQgSklUOjplbWl0
U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
aW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9y
PFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIGludCBwcm90byA9IGN1cnJlbnRJbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQ7CisgICAgaW50IGNvbnN0cnVjdG9yID0gY3VycmVudEluc3RydWN0aW9uWzNd
LnUub3BlcmFuZDsKKyAgICBpbnQgaGFzSW5zdGFuY2VTeW1ib2wgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5vcGVyYW5kOwogCi0gICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgdmFs
dWUpOwotICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIHByb3RvKTsKICAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDAp
OwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvdG8sIHJlZ1QxKTsKLSAgICBjYWxsT3Bl
cmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2YsIGRzdCwgcmVnVDAsIHJlZ1QxKTsKKyAgICBlbWl0
R2V0VmlydHVhbFJlZ2lzdGVyKGNvbnN0cnVjdG9yLCByZWdUMSk7CisgICAgZW1pdEdldFZpcnR1
YWxSZWdpc3RlcihoYXNJbnN0YW5jZVN5bWJvbCwgcmVnVDIpOworICAgIGNhbGxPcGVyYXRpb24o
b3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwgZHN0LCByZWdUMCwgcmVnVDEsIHJlZ1QyKTsKIH0K
IAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX3RvX251bWJlcihJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDRlMDQzNjVm
ZDZjMjgzNjg5OWJlYmY3ZTA1MzMwZDFkM2RhMDA5MDYuLjkxMGJhY2Y5NDRjYTA4ZTdhOGY5YWUy
OGRmMmNkNzg5MDRmZmEwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMzMl82NC5jcHAKQEAgLTE4NSwxNSArMTg1LDI5IEBAIHZvaWQgSklUOjplbWl0U2xvd19v
cF9uZXdfb2JqZWN0KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93
Q2FzCiAKIHZvaWQgSklUOjplbWl0X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogewotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKKyAgICBpbnQgY29uc3RydWN0b3IgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOworICAgIGludCBoYXNJbnN0YW5jZVN5bWJvbCA9IGN1cnJlbnRJbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQ7CiAKLSAgICBlbWl0TG9hZFBheWxvYWQoYmFzZVZhbCwgcmVnVDApOworICAg
IGVtaXRMb2FkUGF5bG9hZChoYXNJbnN0YW5jZVN5bWJvbCwgcmVnVDApOworICAgIC8vIFdlIGRv
bid0IGp1bXAgaWYgd2Uga25vdyB3aGF0IFN5bWJvbC5oYXNJbnN0YW5jZSB3b3VsZCBkby4KKyAg
ICBKdW1wIGhhc0luc3RhbmNlU3ltYm9sTm90Q2VsbCA9IGVtaXRKdW1wSWZOb3RKU0NlbGwoaGFz
SW5zdGFuY2VTeW1ib2wpOworICAgIEp1bXAgY3VzdG9tSGFzSW5zdGFuY2VTeW1ib2wgPSBicmFu
Y2hQdHIoTm90RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrLT5nbG9iYWxP
YmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSkpOworCisg
ICAgLy8gV2Uga25vdyB0aGF0IGNvbnN0cnVjdG9yIGlzIGFuIG9iamVjdCBmcm9tIHRoZSB3YXkg
Ynl0ZWNvZGUgaXMgZW1pdHRlZCBmb3IgaW5zdGFuY2VvZiBleHByZXNzaW9ucy4KKyAgICBlbWl0
TG9hZFBheWxvYWQoY29uc3RydWN0b3IsIHJlZ1QwKTsKKworICAgIC8vIENoZWNrIHRoYXQgY29u
c3RydWN0b3IgJ0ltcGxlbWVudHNIYXNJbnN0YW5jZScgaS5lLiB0aGUgb2JqZWN0IGlzIGEgQy1B
UEkgdXNlciBvciBhIGJvdW5kIGZ1bmN0aW9uLgorICAgIHRlc3Q4KFplcm8sIEFkZHJlc3MocmVn
VDAsIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UpLCByZWdUMCk7CisgICAgSnVtcCBkb25lID0ganVtcCgpOwor
CisgICAgaGFzSW5zdGFuY2VTeW1ib2xOb3RDZWxsLmxpbmsodGhpcyk7CisgICAgY3VzdG9tSGFz
SW5zdGFuY2VTeW1ib2wubGluayh0aGlzKTsKKyAgICBtb3ZlKFRydXN0ZWRJbW0zMigxKSwgcmVn
VDApOworCisgICAgZG9uZS5saW5rKHRoaXMpOworICAgIGVtaXRTdG9yZUJvb2woZHN0LCByZWdU
MCk7CiAKLSAgICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgaXMgYSBjZWxsLgotICAgIGVtaXRKdW1w
U2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlVmFsKTsKLSAgICAKLSAgICAvLyBDaGVjayB0aGF0IGJh
c2VWYWwgJ0ltcGxlbWVudHNIYXNJbnN0YW5jZScuCi0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoVGVz
dDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBU
cnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKIH0KIAogdm9pZCBK
SVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpA
QCAtMjM1LDIwICsyNDksMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRTdG9yZUJvb2woZHN0LCByZWdUMCk7
CiB9CiAKLXZvaWQgSklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYg
aXRlcikKK3ZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKikK
IHsKLSAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKLSAgICBp
bnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIGludCBiYXNl
VmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLQotICAgIGxpbmtTbG93Q2Fz
ZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2VWYWwpOwotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKLQot
ICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRMb2FkKGJhc2VWYWws
IHJlZ1QzLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25DaGVja0hhc0luc3Rh
bmNlLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyKTsKLQotICAgIGVtaXRKdW1wU2xv
d1RvSG90KGp1bXAoKSwgY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgLy8g
VGhpcyBhbHdheXMgZ29lcyB0byBzbG93IHBhdGggc2luY2Ugd2UgZXhwZWN0IGl0IHRvIGJlIHJh
cmUuCisgICAgYWRkU2xvd0Nhc2UoanVtcCgpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29w
X2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTI2Niw2ICsyNzAsMjEgQEAgdm9pZCBKSVQ6
OmVtaXRTbG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdG9yPFNsb3dDYXMKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2YsIGRz
dCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIpOwogfQogCit2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3sKKyAgICBpbnQgZHN0ID0gY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBjb25zdHJ1Y3RvciA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGhhc0luc3RhbmNlU3ltYm9sID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKKworICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKwor
ICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMSwgcmVnVDApOworICAgIGVtaXRMb2FkUGF5bG9hZChj
b25zdHJ1Y3RvciwgcmVnVDIpOworICAgIGVtaXRMb2FkKGhhc0luc3RhbmNlU3ltYm9sLCByZWdU
NCwgcmVnVDMpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwg
ZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QyLCByZWdUNCwgcmVnVDMpOworfQorCiB2b2lkIEpJVDo6
ZW1pdF9vcF9pc191bmRlZmluZWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsK
ICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGNhZDkzNDY5YzFiY2Jk
MmI1N2RjYjUyMDIzYWJlOWY3MjNmNzQ0NDUuLmJiNzRjZjA5YjEzOTlhNGViZDg5YzE3ZTcxNzY2
MmQ0YjZjNGYwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcApAQCAtMTQ4NywyNSArMTQ4NywxNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UHJvZmlsZVdpbGxDYWxsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jbwogICAg
ICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNr
SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFsKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRIYXNJbnN0YW5jZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKIAogICAgIEpTVmFsdWUgdmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBKU1ZhbHVlIGJhc2VWYWwg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2VWYWwpOwotCi0gICAgaWYgKGJhc2VWYWwuaXNP
YmplY3QoKSkgewotICAgICAgICBKU09iamVjdCogYmFzZU9iamVjdCA9IGFzT2JqZWN0KGJhc2VW
YWwpOwotICAgICAgICBBU1NFUlQoIWJhc2VPYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZv
KCkuaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSgpKTsKLSAgICAgICAgaWYgKGJhc2VPYmpl
Y3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW1wbGVtZW50c0hhc0luc3RhbmNlKCkpIHsK
LSAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gYmFzZU9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5j
dXN0b21IYXNJbnN0YW5jZShiYXNlT2JqZWN0LCBleGVjLCB2YWx1ZSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZXN1bHQpKTsKLSAgICAgICAgfQotICAg
IH0KKyAgICBKU1ZhbHVlIGhhc0luc3RhbmNlU3ltYm9sID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRIYXNJbnN0YW5jZSk7CisKKyAgICBBU1NFUlQoaGFzSW5zdGFuY2VTeW1ib2wgIT0gZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5j
dGlvbigpIHx8ICFjb25zdHJ1Y3Rvci0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSgpKTsKIAotICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3IoZXhlYywgYmFzZVZhbCkpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzQm9vbGVhbihjb25zdHJ1Y3Rvci0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIGhh
c0luc3RhbmNlU3ltYm9sKSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5oCmluZGV4IDI1NDI1NTAyMjlkYTQxZTFhZGQ0NmIwYjAyNThlOGU0OTk1Yjli
NmQuLjVjMmM4MTQxOTRmZmRjODdlN2VkM2Q1OGUxMGRmNWIzYWRlZWExNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0xMTIsNiArMTEyLDcgQEAgdHlw
ZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUkpKEV4
ZWNTdGF0ZSosIFVuaXF1ZWRTdHIKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiAoKkpfSklUT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSlopKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKQykoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIEpTQ2VsbCopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
ICgqSl9KSVRPcGVyYXRpb25fRUpPSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICgqSl9KSVRPcGVyYXRpb25fRUpBKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSlNB
cnJheSopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVy
YXRpb25fRUpJKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwq
KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9u
X0VKSWRjKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciopOwpA
QCAtMzI4LDcgKzMyOSw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXNoRnVuY3Rp
b25OYW1lU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3ltYm9sVGFiCiB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFM
Owogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uUHJvZmlsZVdpbGxDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJO
QUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNrSGFzSW5zdGFu
Y2UoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGJhc2VWYWwpIFdU
Rl9JTlRFUk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFu
Y2VPZkN1c3RvbShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNlKSBXVEZf
SU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFs
T3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vi
c2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8q
KSBXVEZfSU5URVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pT
SW50ZXJmYWNlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklU
LmgKaW5kZXggMjAxZTNhYjJiZmEwMzZjMjdjNWZkNmJkNjNhNDhiY2M4ZDYyN2IyOS4uNWY2N2Vh
YmZkOTY5YWY3MjY3YjlhZTIyNTM0NWJiZmY1YjcxNmU2YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaApAQCAtNjgsNiArNjgsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgSnVtcCBlbWl0SnVtcElmTm90TnVtYmVyKFJlZ2lzdGVySUQpOwogICAgICAg
ICB2b2lkIGVtaXRUYWdJbnQoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCk7CiAjZW5k
aWYKKyAgICAgICAgSnVtcExpc3QgZW1pdEp1bXBJZk51bGwoSlNWYWx1ZVJlZ3Mgc3JjLCBSZWdp
c3RlcklEIHNjcmF0Y2gxLCBSZWdpc3RlcklEIHNjcmF0Y2gyKTsKIAogICAgICAgICBKdW1wIGVt
aXRKdW1wSWZOb3RUeXBlKFJlZ2lzdGVySUQgYmFzZVJlZywgSlNUeXBlKTsKIApAQCAtMTYwLDYg
KzE2MSwzMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgICAgIHJldHVybiBicmFuY2hU
ZXN0NjQoWmVybywgcmVnLCB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOwogICAgIH0KKworICAgIEFM
V0FZU19JTkxJTkUgSlNJbnRlcmZhY2VKSVQ6Okp1bXBMaXN0IEpTSW50ZXJmYWNlSklUOjplbWl0
SnVtcElmTnVsbChKU1ZhbHVlUmVncyByZWcsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0
Y2gyKSB7CisgICAgICAgIEdQUlJlZyB2YWx1ZSA9IHJlZy5ncHIoKTsKKyAgICAgICAgSnVtcCBp
c0ltbWVkaWF0ZSA9IGVtaXRKdW1wSWZOb3RKU0NlbGwodmFsdWUpOworCisgICAgICAgIEp1bXBM
aXN0IGp1bXBzOworCisgICAgICAgIC8vIEZpcnN0LCBoYW5kbGUgSlNDZWxsIGNhc2VzIC0gY2hl
Y2sgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCBiaXQgb24gdGhlIHN0cnVjdHVyZS4KKyAgICAgICAg
SnVtcCBpc05vdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPSBicmFuY2hUZXN0OChaZXJvLCBBZGRy
ZXNzKHZhbHVlLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkKSk7CisgICAgICAgIGVtaXRMb2FkU3RydWN0dXJlKHZhbHVl
LCBzY3JhdGNoMiwgc2NyYXRjaDEpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobV9jb2Rl
QmxvY2stPmdsb2JhbE9iamVjdCgpKSwgdmFsdWUpOworICAgICAgICBqdW1wcy5hcHBlbmQoYnJh
bmNoUHRyKEVxdWFsLCBBZGRyZXNzKHNjcmF0Y2gyLCBTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9m
ZnNldCgpKSwgdmFsdWUpKTsKKyAgICAgICAgSnVtcCBtYXNxdWVyYWRlc0dsb2JhbE9iamVjdElz
Rm9yZWlnbiA9IGp1bXAoKTsKKworICAgICAgICAvLyBOb3cgaGFuZGxlIHRoZSBpbW1lZGlhdGUg
Y2FzZXMgLSB1bmRlZmluZWQgJiBudWxsCisgICAgICAgIGlzSW1tZWRpYXRlLmxpbmsodGhpcyk7
CisgICAgICAgIGFuZDY0KFRydXN0ZWRJbW0zMih+VGFnQml0VW5kZWZpbmVkKSwgdmFsdWUpOwor
ICAgICAgICBqdW1wcy5hcHBlbmQoYnJhbmNoNjQoRXF1YWwsIHZhbHVlLCBUcnVzdGVkSW1tNjQo
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKSkpKTsKKworICAgICAgICBpc05vdE1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQubGluayh0aGlzKTsKKyAgICAgICAgbWFzcXVlcmFkZXNHbG9iYWxPYmplY3RJ
c0ZvcmVpZ24ubGluayh0aGlzKTsKKworICAgICAgICByZXR1cm4ganVtcHM7CisgICAgfQorCiAg
ICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpKdW1wIEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZEpT
Q2VsbCh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBkc3QpCiAgICAg
ewogICAgICAgICBsb2FkNjQoYWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXJJbmRleCksIGRzdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCmluZGV4IDAxOTI3YjYz
MDRjMjNjMGQ1ZmI4NDQ2N2Y3YjM5OGE4YTRjMWVlM2EuLmYzM2MwYjM1ZjBjNmNlMjhiZjlmM2Qz
ODJhMDkxMWIwZmExNjg2OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludERhdGEuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERh
dGEuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93
UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNl
dC5oIgorI2luY2x1ZGUgIldyaXRlQmFycmllci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIExMSW50IHsKIApAQCAtMTU0LDYgKzE1NSw3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2Vy
dGlvbnMoVk0mIHZtKQogICAgIEFTU0VSVChGdW5jdGlvbkNvZGUgPT0gMik7CiAgICAgQVNTRVJU
KE1vZHVsZUNvZGUgPT0gMyk7CiAKKyAgICBBU1NFUlQoIShyZWludGVycHJldF9jYXN0PHB0cmRp
ZmZfdD4oKHJlaW50ZXJwcmV0X2Nhc3Q8V3JpdGVCYXJyaWVyPEpTQ2VsbD4qPigweDQwMDApLT5z
bG90KCkpKSAtIDB4NDAwMCkpOwogICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJZFByaW1hcnlUeXBl
TWFzayA9PSAweDYsICJMTEludCBhc3N1bWVzIFB1dEJ5SWRQcmltYXJ5VHlwZU1hc2sgaXMgPT0g
MHg2Iik7CiAgICAgc3RhdGljX2Fzc2VydChQdXRCeUlkUHJpbWFyeVR5cGVTZWNvbmRhcnkgPT0g
MHgwLCAiTExJbnQgYXNzdW1lcyBQdXRCeUlkUHJpbWFyeVR5cGVTZWNvbmRhcnkgaXMgPT0gMHgw
Iik7CiAgICAgc3RhdGljX2Fzc2VydChQdXRCeUlkUHJpbWFyeVR5cGVPYmplY3RXaXRoU3RydWN0
dXJlID09IDB4MiwgIkxMSW50IGFzc3VtZXMgUHV0QnlJZFByaW1hcnlUeXBlT2JqZWN0V2l0aFN0
cnVjdHVyZSBpcyA9PSAweDIiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwCmluZGV4IGNkYjU5ZjQ0YmViNmMyMzVjNjM5MDM0N2Q5NjhmMTY1ZDNj
NjZhYmIuLjViNDdkOGMwNTlhMjU4ODk5YTBkMzE2NTFhY2EwODBhNTNmNzhiNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtNTIyLDMw
ICs1MjIsMjggQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX25ld19yZWdleHApCiAg
ICAgTExJTlRfUkVUVVJOKFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdFeHApKTsKIH0KIAotTExJTlRfU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2NoZWNrX2hhc19pbnN0YW5jZSkKK0xMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mKQogewogICAgIExMSU5UX0JFR0lOKCk7Ci0gICAg
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5UX09QX0MoMikuanNWYWx1ZSgpOwotICAgIEpTVmFs
dWUgYmFzZVZhbCA9IExMSU5UX09QX0MoMykuanNWYWx1ZSgpOwotICAgIGlmIChiYXNlVmFsLmlz
T2JqZWN0KCkpIHsKLSAgICAgICAgSlNPYmplY3QqIGJhc2VPYmplY3QgPSBhc09iamVjdChiYXNl
VmFsKTsKLSAgICAgICAgQVNTRVJUKCFiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8o
KS5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpOwotICAgICAgICBpZiAoYmFzZU9iamVj
dC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW1wbGVtZW50c0hhc0luc3RhbmNlKCkpIHsKLSAg
ICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29sZWFuKGJhc2VPYmplY3QtPm1ldGhvZFRh
YmxlKCktPmN1c3RvbUhhc0luc3RhbmNlKGJhc2VPYmplY3QsIGV4ZWMsIHZhbHVlKSk7Ci0gICAg
ICAgICAgICBMTElOVF9SRVRVUk5fV0lUSF9QQ19BREpVU1RNRU5UKHJlc3VsdCwgcGNbNF0udS5v
cGVyYW5kKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBMTElOVF9USFJPVyhjcmVhdGVJbnZhbGlk
SW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKGV4ZWMsIGJhc2VWYWwpKTsKKyAgICBKU1ZhbHVlIHBy
b3RvID0gTExJTlRfT1BfQygzKS5qc1ZhbHVlKCk7CisgICAgQVNTRVJUKCF2YWx1ZS5pc09iamVj
dCgpIHx8ICFwcm90by5pc09iamVjdCgpKTsKKyAgICBMTElOVF9SRVRVUk4oanNCb29sZWFuKEpT
T2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIHByb3RvKSkpOwogfQogCi1M
TElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZikKK0xMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mX2N1c3RvbSkKIHsKICAgICBMTElOVF9CRUdJTigp
OworCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5UX09QX0MoMikuanNWYWx1ZSgpOwotICAgIEpT
VmFsdWUgcHJvdG8gPSBMTElOVF9PUF9DKDMpLmpzVmFsdWUoKTsKLSAgICBBU1NFUlQoIXZhbHVl
LmlzT2JqZWN0KCkgfHwgIXByb3RvLmlzT2JqZWN0KCkpOwotICAgIExMSU5UX1JFVFVSTihqc0Jv
b2xlYW4oSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0YW5jZShleGVjLCB2YWx1ZSwgcHJvdG8pKSk7
CisgICAgSlNWYWx1ZSBjb25zdHJ1Y3RvciA9IExMSU5UX09QX0MoMykuanNWYWx1ZSgpOworICAg
IEpTVmFsdWUgaGFzSW5zdGFuY2VTeW1ib2wgPSBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKTsKKwor
ICAgIEFTU0VSVChjb25zdHJ1Y3Rvci5pc09iamVjdCgpKTsKKyAgICBBU1NFUlQoaGFzSW5zdGFu
Y2VTeW1ib2wgIT0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFz
SW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpIHx8ICFjb25zdHJ1Y3Rvci5nZXRPYmplY3QoKS0+c3Ry
dWN0dXJlKCktPnR5cGVJbmZvKCkuaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSgpKTsKKwor
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29sZWFuKGNvbnN0cnVjdG9yLmdldE9iamVjdCgpLT5o
YXNJbnN0YW5jZShleGVjLCB2YWx1ZSwgaGFzSW5zdGFuY2VTeW1ib2wpKTsKKyAgICBMTElOVF9S
RVRVUk4ocmVzdWx0KTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2dldF9i
eV9pZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKaW5k
ZXggMjcxMzI0YjE4NDUzZDcyZGM4Yjc2MTgwYmEwMzA0YWI0NTY1OTU5Ny4uMGQ1YzhkYTQzYjAw
OWFiOTdhYjJmNzJhODc1YzE0ZWI1NjYwMzliOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmgKQEAgLTY3LDggKzY3LDggQEAgTExJTlRfU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfYXJyYXkpOwogTExJTlRfU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9uZXdfYXJyYXlfd2l0aF9zaXplKTsKIExMSU5UX1NMT1dfUEFUSF9I
SURERU5fREVDTChzbG93X3BhdGhfbmV3X2FycmF5X2J1ZmZlcik7CiBMTElOVF9TTE9XX1BBVEhf
SElEREVOX0RFQ0woc2xvd19wYXRoX25ld19yZWdleHApOwotTExJTlRfU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpOwogTExJTlRfU0xPV19QQVRIX0hJ
RERFTl9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9mKTsKK0xMSU5UX1NMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pOwogTExJTlRfU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNM
KHNsb3dfcGF0aF9nZXRfYXJndW1lbnRzX2xlbmd0aCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVO
X0RFQ0woc2xvd19wYXRoX3B1dF9ieV9pZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IGUxZDEyMmNk
MDMwNjUyYzUyODViMGM0MDUyYTM4ZTAwNDJkYmE3NWUuLmE4ZWUxNmU4ZjUwZWI1YjA1ZjI3NDFk
MjlkMjY2NWM4MjE2YWUzZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0xMTc3LDE1ICsxMTc3LDMy
IEBAIF9sbGludF9vcF9iaXRvcjoKIAogX2xsaW50X29wX2NoZWNrX2hhc19pbnN0YW5jZToKICAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZGkgMTJbUENdLCB0MQotICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGVQYXlsb2FkKHQxLCBDZWxsVGFnLCB0MCwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNs
b3cpCi0gICAgYnRieiBKU0NlbGw6Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdwotICAgIGRpc3BhdGNoKDUpCiAKLS5vcENo
ZWNrSGFzSW5zdGFuY2VTbG93OgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2No
ZWNrX2hhc19pbnN0YW5jZSkKLSAgICBkaXNwYXRjaCgwKQorICAgIGxvYWRpc0Zyb21JbnN0cnVj
dGlvbigxLCB0MykKKyAgICBzdG9yZWkgQm9vbGVhblRhZywgVGFnT2Zmc2V0W2NmciwgdDMsIDhd
CiAKKyAgICAjIEZpcnN0IGNoZWNrIGlmIGhhc0luc3RhbmNlU3ltYm9sIGlzIHRoZSBvbmUgb24g
RnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0KKyAgICBsb2FkaXNGcm9tSW5z
dHJ1Y3Rpb24oMywgdDApCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEsIHQyKQor
ICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAub3BDaGVja0hhc0luc3RhbmNlU3ltYm9sTm90Q2VsbAor
CisgICAgIyBXZSBkb24ndCBuZWVkIGhhc0luc3RhbmNlU3ltYm9sJ3MgdGFnIHJlZ2lzdGVyIGFu
eW1vcmUuCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCisgICAgbG9hZHAgQ29kZUJsb2Nr
OjptX2dsb2JhbE9iamVjdFt0MV0sIHQxCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZnVu
Y3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb25bdDFdLCB0MQorICAgIGJpbmVxIHQx
LCB0MiwgLm9wQ2hlY2tIYXNJbnN0YW5jZVN5bWJvbE5vdERlZmF1bHQKKworICAgICMgV2Uga25v
dyB0aGUgY29uc3RydWN0b3IgaXMgYSBjZWxsLgorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigy
LCB0MCkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZFVuY2hlY2tlZCh0MCwgdDEp
CisgICAgdGJ6IEpTQ2VsbDo6bV9mbGFnc1t0MV0sIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UsIHQwCisgICAgc3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdCisgICAgZGlz
cGF0Y2goNCkKKworLm9wQ2hlY2tIYXNJbnN0YW5jZVN5bWJvbE5vdENlbGw6Cisub3BDaGVja0hh
c0luc3RhbmNlU3ltYm9sTm90RGVmYXVsdDoKKyAgICBzdG9yZXAgMCwgUGF5bG9hZE9mZnNldFtj
ZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQpCiAKIF9sbGludF9vcF9pbnN0YW5jZW9mOgogICAg
IHRyYWNlRXhlY3V0aW9uKCkKQEAgLTEyMTUsNiArMTIzMiwxMSBAQCBfbGxpbnRfb3BfaW5zdGFu
Y2VvZjoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbnN0YW5jZW9mKQogICAg
IGRpc3BhdGNoKDQpCiAKK19sbGludF9vcF9pbnN0YW5jZW9mX2N1c3RvbToKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZl9j
dXN0b20pCisgICAgZGlzcGF0Y2goNSkKKwogCiBfbGxpbnRfb3BfaXNfdW5kZWZpbmVkOgogICAg
IHRyYWNlRXhlY3V0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggNDlmM2NkN2E3NDYzODRlMGU3MTkyZDAx
YTg2OWE3NDAwNDFkNzk1OS4uYWI0YjA3NjZjYjU4MmQ0YzZjNjdjYzZlNTljNDNiNjQyODI5MmRh
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXI2NC5hc20KQEAgLTEwNzEsMTQgKzEwNzEsMjYgQEAgX2xsaW50X29wX2JpdG9yOgog
CiBfbGxpbnRfb3BfY2hlY2tfaGFzX2luc3RhbmNlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDMpCisKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rp
b24oMywgdDEpCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDEsIHQwLCAub3BDaGVj
a0hhc0luc3RhbmNlU2xvdykKLSAgICBidGJ6IEpTQ2VsbDo6bV9mbGFnc1t0MF0sIEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93Ci0gICAgZGlzcGF0
Y2goNSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCkKKyAgICBsb2FkcCBDb2Rl
QmxvY2tbY2ZyXSwgdDIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QyXSwg
dDIKKyAgICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VT
eW1ib2xGdW5jdGlvblt0Ml0sIHQyCisgICAgYnFuZXEgdDAsIHQyLCAub3BDaGVja0hhc0luc3Rh
bmNlTm90RGVmYXVsdFN5bWJvbAogCi0ub3BDaGVja0hhc0luc3RhbmNlU2xvdzoKLSAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCi0gICAgZGlzcGF0
Y2goMCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDEpCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MSwgdDApCisgICAgdGJ6IEpTQ2VsbDo6bV9mbGFnc1t0MF0sIEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UsIHQxCisgICAgb3JxIFZhbHVlRmFsc2UsIHQxCisgICAgc3Rv
cmVxIHQxLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg0KQorCisub3BDaGVja0hhc0luc3Rh
bmNlTm90RGVmYXVsdFN5bWJvbDoKKyAgICBzdG9yZXEgVmFsdWVUcnVlLCB0MQorICAgIHN0b3Jl
cSB0MSwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKIAogCiBfbGxpbnRfb3BfaW5zdGFu
Y2VvZjoKQEAgLTExMDksNiArMTEyMSwxMCBAQCBfbGxpbnRfb3BfaW5zdGFuY2VvZjoKICAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbnN0YW5jZW9mKQogICAgIGRpc3BhdGNoKDQp
CiAKK19sbGludF9vcF9pbnN0YW5jZW9mX2N1c3RvbToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pCisgICAg
ZGlzcGF0Y2goNSkKIAogX2xsaW50X29wX2lzX3VuZGVmaW5lZDoKICAgICB0cmFjZUV4ZWN1dGlv
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVu
dGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuaAppbmRleCAzN2M1NGQyZmVkNTYyZDgwYmZiMDVmMmZmODk1MjkwODg2OGJlNjAwLi42YzY0
YjYxMWUzNmE2Y2IwMzQ2NGVhYjBhNWQzNWIyOTVkMTkzOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTI1MCw3ICsyNTAs
NiBAQAogICAgIG1hY3JvKHlpZWxkKQogCiAjZGVmaW5lIEpTQ19DT01NT05fUFJJVkFURV9JREVO
VElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MX05PVF9JTVBMRU1FTlRFRF9ZRVQobWFjcm8p
XAotICAgIG1hY3JvKGhhc0luc3RhbmNlKSBcCiAgICAgbWFjcm8oaXNDb25jYXRTcHJlYWRhYmxl
KSBcCiAgICAgbWFjcm8obWF0Y2gpIFwKICAgICBtYWNybyhyZXBsYWNlKSBcCkBAIC0yNjAsNiAr
MjU5LDcgQEAKICAgICBtYWNybyh0b1ByaW1pdGl2ZSkKIAogI2RlZmluZSBKU0NfQ09NTU9OX1BS
SVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChtYWNybykgXAorICAgIG1h
Y3JvKGhhc0luc3RhbmNlKSBcCiAgICAgbWFjcm8oaXRlcmF0b3IpIFwKICAgICBtYWNybyh1bnNj
b3BhYmxlcykgXAogICAgIG1hY3JvKHRvU3RyaW5nVGFnKQpAQCAtMzQxLDYgKzM0MSw5IEBACiAg
ICAgbWFjcm8oQ29sbGF0b3IpIFwKICAgICBtYWNybyhEYXRlVGltZUZvcm1hdCkgXAogICAgIG1h
Y3JvKE51bWJlckZvcm1hdCkgXAorICAgIG1hY3JvKGlzQm91bmRGdW5jdGlvbikgXAorICAgIG1h
Y3JvKGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbikgXAorICAgIG1hY3JvKGluc3RhbmNlT2YpIFwK
IAogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXggMDEzMWI5ZjFjM2QzMzRiYWUwNWMxYzliNjAy
YjBiOWQ1MjlmM2EzMC4uNGM0NmNlMDdhMzYzMDM4NTU2YTVjOWVlNDg1MDk0ZWU3Mzg4NDEwNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVy
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVy
cy5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCBzdGF0aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJ
blNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXNzYWdlLCBjbwogICAgIHJl
dHVybiBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUsICIgaXMgbm90IGFuIE9iamVjdC4gKGV2YWx1
YXRpbmcgJyIsIHNvdXJjZVRleHQsICInKSIpOwogfQogCi1zdGF0aWMgU3RyaW5nIGludmFsaWRQ
YXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5cGUsIEVycm9ySW5zdGFu
Y2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkKK2lubGluZSBTdHJp
bmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcm
IGNvbnRlbnQsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVRleHQsIFJ1bnRpbWVUeXBlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VUZXh0V2hlcmVFcnJv
ck9jY3VycmVkIG9jY3VycmVuY2UpCiB7CiAgICAgaWYgKG9jY3VycmVuY2UgPT0gRXJyb3JJbnN0
YW5jZTo6Rm91bmRBcHByb3hpbWF0ZVNvdXJjZSkKICAgICAgICAgcmV0dXJuIGRlZmF1bHRBcHBy
b3hpbWF0ZVNvdXJjZUVycm9yKG9yaWdpbmFsTWVzc2FnZSwgc291cmNlVGV4dCk7CkBAIC0yMjIs
NyArMjIyLDE3IEBAIHN0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3Vy
Y2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzCiAKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW5zdGFuY2VvZkxlbmd0aCA9IDEwOwogICAgIFN0cmluZyByaWdodEhhbmRTaWRl
ID0gc291cmNlVGV4dC5zdWJzdHJpbmcoaW5zdGFuY2VvZkluZGV4ICsgaW5zdGFuY2VvZkxlbmd0
aCkuc2ltcGxpZnlXaGl0ZVNwYWNlKCk7Ci0gICAgcmV0dXJuIG1ha2VTdHJpbmcocmlnaHRIYW5k
U2lkZSwgIiBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJyIsIHNvdXJjZVRleHQsICIn
KSIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUsIGNvbnRlbnQsICIuIChl
dmFsdWF0aW5nICciLCBzb3VyY2VUZXh0LCAiJykiKTsKK30KKworc3RhdGljIFN0cmluZyBpbnZh
bGlkUGFyYW1ldGVySW5zdGFuY2VvZk5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIoY29uc3QgU3Ry
aW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5
cGUgcnVudGltZVR5cGUsIEVycm9ySW5zdGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJy
ZWQgb2NjdXJyZW5jZSkKK3sKKyAgICByZXR1cm4gaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZT
b3VyY2VBcHBlbmRlcihXVEY6Om1ha2VTdHJpbmcoIiBpcyBub3QgYSBmdW5jdGlvbiIpLCBvcmln
aW5hbE1lc3NhZ2UsIHNvdXJjZVRleHQsIHJ1bnRpbWVUeXBlLCBvY2N1cnJlbmNlKTsKK30KKwor
c3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZkhhc0luc3RhbmNlU3ltYm9s
Tm90RnVuY3Rpb25Tb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSBydW50aW1lVHlwZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNlKQoreworICAg
IHJldHVybiBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKFdURjo6bWFr
ZVN0cmluZygiW1N5bWJvbC5oYXNJbnN0YW5jZV0gaXMgbm90IGEgZnVuY3Rpb24sIHVuZGVmaW5l
ZCwgb3IgbnVsbCIpLCBvcmlnaW5hbE1lc3NhZ2UsIHNvdXJjZVRleHQsIHJ1bnRpbWVUeXBlLCBv
Y2N1cnJlbmNlKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3Vy
Y2VBcHBlbmRlciBhcHBlbmRlcikKQEAgLTI0NSw5ICsyNTUsMTQgQEAgSlNPYmplY3QqIGNyZWF0
ZUludmFsaWRJblBhcmFtZXRlckVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkK
ICAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywgdmFsdWUsIG1ha2VTdHJpbmcoImlzIG5vdCBh
biBPYmplY3QuIiksIGludmFsaWRQYXJhbWV0ZXJJblNvdXJjZUFwcGVuZGVyKTsKIH0KIAotSlNP
YmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3IoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHZhbHVlKQorSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFy
YW1ldGVyRXJyb3JOb3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7
CisgICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMsIHZhbHVlLCBtYWtlU3RyaW5nKCIgaXMgbm90
IGEgZnVuY3Rpb24iKSwgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZOb3RGdW5jdGlvblNvdXJj
ZUFwcGVuZGVyKTsKK30KKworSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1l
dGVyRXJyb3JIYXNJbnN0YW5jZVN5bWJvbE5vdEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywgdmFsdWUsIG1ha2VT
dHJpbmcoImlzIG5vdCBhIGZ1bmN0aW9uLiIpLCBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZlNv
dXJjZUFwcGVuZGVyKTsKKyAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywgdmFsdWUsIG1ha2VT
dHJpbmcoIltTeW1ib2wuaGFzSW5zdGFuY2VdIGlzIG5vdCBhIGZ1bmN0aW9uLCB1bmRlZmluZWQs
IG9yIG51bGwiKSwgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZIYXNJbnN0YW5jZVN5bWJvbE5v
dEZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOwogfQogCiBKU09iamVjdCogY3JlYXRlTm90QUNvbnN0
cnVjdG9yRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCmluZGV4IGM2YmEwMmUz
ZmJiMDMzYjIxZjFkOTNhMTFlYTdjZDlkMzBmMTkzOWEuLjdkZDEyZTY2YjUzMGRiNjVkZGEyZTU3
Nzc3YjFlNmYwYzE4OGRkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmgKQEAgLTQ1LDcgKzQ1LDggQEAgSlNPYmplY3QqIGNyZWF0ZVRE
WkVycm9yKEV4ZWNTdGF0ZSopOwogSlNPYmplY3QqIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoRXhl
Y1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlSW52YWxpZEZ1bmN0aW9uQXBwbHlQ
YXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVJbnZh
bGlkSW5QYXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKLUpTT2JqZWN0KiBjcmVh
dGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwor
SlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JOb3RGdW5jdGlv
bihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2Vv
ZlBhcmFtZXRlckVycm9ySGFzSW5zdGFuY2VTeW1ib2xOb3RGdW5jdGlvbihFeGVjU3RhdGUqLCBK
U1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVOb3RBQ29uc3RydWN0b3JFcnJvcihFeGVjU3RhdGUq
LCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVOb3RBRnVuY3Rpb25FcnJvcihFeGVjU3RhdGUq
LCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVFcnJvckZvckludmFsaWRHbG9iYWxBc3NpZ25t
ZW50KEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IDk3MGQwMTI4NmNhODA5
ZjgwYzkxZjMxMzc1Y2YyZmMyODM2MzIyYjQuLmFhODc1NjEwM2I3MjQwN2QyNzc3ZWRiNmFmZDYx
NWRhZmY0NmQxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBGdW5jdGlvblByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNO
dW1iZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIAotdm9pZCBG
dW5jdGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNGdW5jdGlvbioqIGNhbGxGdW5jdGlvbiwg
SlNGdW5jdGlvbioqIGFwcGx5RnVuY3Rpb24pCit2b2lkIEZ1bmN0aW9uUHJvdG90eXBlOjphZGRG
dW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0Z1bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5j
dGlvbiwgSlNGdW5jdGlvbioqIGhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pCiB7CiAgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKIApAQCAtNjIsNiArNjIsNyBAQCB2b2lkIEZ1bmN0aW9uUHJvdG90
eXBlOjphZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZwogCiAgICAgKmFwcGx5RnVuY3Rpb24gPSBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGlu
TmFtZXMoKS5hcHBseVB1YmxpY05hbWUoKSwgZnVuY3Rpb25Qcm90b3R5cGVBcHBseUNvZGVHZW5l
cmF0b3Iodm0pLCBEb250RW51bSk7CiAgICAgKmNhbGxGdW5jdGlvbiA9IHB1dERpcmVjdEJ1aWx0
aW5GdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNhbGxQdWJsaWNOYW1lKCksIGZ1bmN0aW9uUHJvdG90eXBl
Q2FsbENvZGVHZW5lcmF0b3Iodm0pLCBEb250RW51bSk7CisgICAgKmhhc0luc3RhbmNlU3ltYm9s
RnVuY3Rpb24gPSBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgdm0u
cHJvcGVydHlOYW1lcy0+aGFzSW5zdGFuY2VTeW1ib2wsIGZ1bmN0aW9uUHJvdG90eXBlU3ltYm9s
SGFzSW5zdGFuY2VDb2RlR2VuZXJhdG9yKHZtKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9u
dEVudW0pOwogCiAgICAgSlNGdW5jdGlvbiogYmluZEZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIDEsIHZtLnByb3BlcnR5TmFtZXMtPmJpbmQuc3RyaW5nKCks
IGZ1bmN0aW9uUHJvdG9GdW5jQmluZCk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJpbmQsIGJpbmRGdW5jdGlvbiwgRG9udEVudW0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKaW5k
ZXggNTJjZThmMTFjNWRkN2QxMDMxNTU2OTAzZTVhY2FiMGQyYWQ0YzBmOC4uYWJlNTMzYTMzYTFm
Mzc4ZmVkYjgyMTRmNTZjYzVhZmUwZmExZTY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICB9CiAKLSAgICB2b2lkIGFkZEZ1bmN0
aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTRnVuY3Rpb24qKiBj
YWxsRnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBhcHBseUZ1bmN0aW9uKTsKKyAgICB2b2lkIGFkZEZ1
bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTRnVuY3Rpb24q
KiBjYWxsRnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBhcHBseUZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiog
aGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQm91bmRGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uY3BwCmluZGV4IDhjNWNjMmVkMzkwNDgyZWFjMmU3NzVhNGYwYzJkMmQ1YzRj
OTllNjEuLjBmMDQ5ZjkwZmZiZTZhYjczYjkxN2U5MTE3M2UyZDFmMWIyODE5NGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcApAQCAt
NzQsNiArNzQsMjAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9u
Q29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNv
bnN0cnVjdChleGVjLCB0YXJnZXRGdW5jdGlvbiwgY29uc3RydWN0VHlwZSwgY29uc3RydWN0RGF0
YSwgYXJncykpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlzQm91bmRGdW5j
dGlvbihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Zh
bHVlKHN0YXRpY19jYXN0PGJvb2w+KGpzRHluYW1pY0Nhc3Q8SlNCb3VuZEZ1bmN0aW9uKj4oZXhl
Yy0+dW5jaGVja2VkQXJndW1lbnQoMCkpKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAg
SlNCb3VuZEZ1bmN0aW9uKiBib3VuZE9iamVjdCA9IGpzQ2FzdDxKU0JvdW5kRnVuY3Rpb24qPihl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDEpOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oYm91bmRPYmplY3QtPnRhcmdldEZ1bmN0aW9uKCktPmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVl
KSkpOworfQorCisKIEpTQm91bmRGdW5jdGlvbiogSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGFyZ2V0RnVuY3Rp
b24sIEpTVmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVlIGJvdW5kQXJncywgaW50IGxlbmd0aCwgY29u
c3QgU3RyaW5nJiBuYW1lKQogewogICAgIENvbnN0cnVjdERhdGEgY29uc3RydWN0RGF0YTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKaW5kZXgg
YWYyYTYzMjNkNTM3MWUyMDU2MGMwZjI1NTZjYzViODdmNjI1NjhlOS4uYzM4ZGM2N2Q0M2M2OWI4
NTM1ZGQ1YWFkOTEwZmIzNmIyZTcwY2Q0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKQEAgLTMyLDYgKzMyLDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoRXhl
Y1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25z
dHJ1Y3QoRXhlY1N0YXRlKik7CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlzQm91bmRG
dW5jdGlvbihFeGVjU3RhdGUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaGFzSW5z
dGFuY2VCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSopOwogCiBjbGFzcyBKU0JvdW5kRnVuY3Rpb24g
OiBwdWJsaWMgSlNGdW5jdGlvbiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggN2Q5OTY4MDExMjRlNWE1NGEyOTA5
MTVlMTdkNGQwNjUwMzk2OGQ5Mi4uMjM2YzVjOWIzOTVlNTg2YzNmMWM1MTQ5MmJiZjllNjJlMTg3
MzVhZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcApAQCAtMjg2LDEyICsyODYsMTQgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChW
TSYgdm0pCiAgICAgbV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSW50
ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90
eXBlLmdldCgpKSk7CiAgICAgSlNGdW5jdGlvbiogY2FsbEZ1bmN0aW9uID0gMDsKICAgICBKU0Z1
bmN0aW9uKiBhcHBseUZ1bmN0aW9uID0gMDsKLSAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5hZGRG
dW5jdGlvblByb3BlcnRpZXMoZXhlYywgdGhpcywgJmNhbGxGdW5jdGlvbiwgJmFwcGx5RnVuY3Rp
b24pOworICAgIEpTRnVuY3Rpb24qIGhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24gPSAwOworICAg
IG1fZnVuY3Rpb25Qcm90b3R5cGUtPmFkZEZ1bmN0aW9uUHJvcGVydGllcyhleGVjLCB0aGlzLCAm
Y2FsbEZ1bmN0aW9uLCAmYXBwbHlGdW5jdGlvbiwgJmhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24p
OwogICAgIG1fY2FsbEZ1bmN0aW9uLnNldCh2bSwgdGhpcywgY2FsbEZ1bmN0aW9uKTsKICAgICBt
X2FwcGx5RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBhcHBseUZ1bmN0aW9uKTsKICAgICBtX2FycmF5
UHJvdG9WYWx1ZXNGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwg
dGhpcywgMCwgdm0ucHJvcGVydHlOYW1lcy0+dmFsdWVzLnN0cmluZygpLCBhcnJheVByb3RvRnVu
Y1ZhbHVlcykpOwogICAgIG1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbi5zZXQodm0sIHRoaXMs
IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNJ
bml0aWFsaXplUHJvbWlzZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSk7CiAgICAgbV9uZXdQcm9t
aXNlQ2FwYWJpbGl0eUZ1bmN0aW9uLnNldCh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlQnVp
bHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc05ld1Byb21pc2VDYXBhYmlsaXR5Q29k
ZUdlbmVyYXRvcih2bSksIHRoaXMpKTsKKyAgICBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5
bWJvbEZ1bmN0aW9uLnNldCh2bSwgdGhpcywgaGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAg
ICAgbV9udWxsR2V0dGVyRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBOdWxsR2V0dGVyRnVuY3Rpb246
OmNyZWF0ZSh2bSwgTnVsbEdldHRlckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMs
IG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKSk7CiAgICAgbV9udWxsU2V0dGVyRnVuY3Rpb24u
c2V0KHZtLCB0aGlzLCBOdWxsU2V0dGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgTnVsbFNldHRlckZ1
bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0
KCkpKSk7CiAgICAgbV9vYmplY3RQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBPYmplY3RQcm90b3R5
cGU6OmNyZWF0ZSh2bSwgdGhpcywgT2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIGpzTnVsbCgpKSkpOwpAQCAtNTIxLDYgKzUyMyw5IEBAIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29u
c3RydWN0CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9u
OjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5l
cmF0b3Iodm0pLCB0aGlzKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlM
ZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFy
cmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5
cGVkQXJyYXlTb3J0ID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwg
dHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQpOworICAgIEpTRnVuY3Rpb24qIHByaXZhdGVG
dW5jSXNCb3VuZEZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJp
bmcoKSwgaXNCb3VuZEZ1bmN0aW9uKTsKKyAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0hhc0lu
c3RhbmNlQm91bmRGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3Ry
aW5nKCksIGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbik7CisgICAgSlNGdW5jdGlvbiogcHJpdmF0
ZUZ1bmNJbnN0YW5jZU9mID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmco
KSwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKTsKIAogICAgIEdsb2JhbFByb3BlcnR5SW5m
byBzdGF0aWNHbG9iYWxzW10gPSB7CiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5OYU4sIGpzTmFOKCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKQEAgLTUzNSw2ICs1NDAsOSBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+VHlwZUVycm9yUHJpdmF0ZU5hbWUs
IG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5
cGVkQXJyYXlMZW5ndGhQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5
SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5U29ydFByaXZhdGVOYW1lLCBwcml2YXRl
RnVuY1R5cGVkQXJyYXlTb3J0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0JvdW5kRnVuY3Rp
b25Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmhhc0luc3RhbmNlQm91bmRGdW5jdGlvblByaXZhdGVOYW1lLCBwcml2YXRlRnVu
Y0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aW5zdGFu
Y2VPZlByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0luc3RhbmNlT2YsIERvbnRFbnVtIHwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5
TmFtZXMtPkJ1aWx0aW5Mb2dQcml2YXRlTmFtZSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+QXJyYXlQcml2YXRlTmFtZSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+TnVtYmVyUHJpdmF0ZU5hbWUsIG51bWJlckNvbnN0cnVjdG9yLCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCkBAIC04MzIsNiArODQwLDcgQEAgdm9pZCBKU0ds
b2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2FycmF5UHJvdG9WYWx1ZXNG
dW5jdGlvbik7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1faW5pdGlhbGl6ZVBy
b21pc2VGdW5jdGlvbik7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbmV3UHJv
bWlzZUNhcGFiaWxpdHlGdW5jdGlvbik7CisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3Qt
Pm1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogICAgIHZpc2l0b3Iu
YXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKTsKICAgICB2
aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9tb2R1bGVMb2FkZXIpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCAwMzI1MzI0OTg1
YTAzOGU2OTc4MTRjOTgwNzliY2RkNDNlYjc2NzI5Li4zY2VmZWU2YTRmODY4OWRmMDE1ZjJlN2M3
N2QwYWY2OTFkNjA2NjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgV3JpdGVC
YXJyaWVyPEpTRnVuY3Rpb24+IG1fYXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uOwogICAgIFdyaXRl
QmFycmllcjxKU0Z1bmN0aW9uPiBtX2luaXRpYWxpemVQcm9taXNlRnVuY3Rpb247CiAgICAgV3Jp
dGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbjsKKyAg
ICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1i
b2xGdW5jdGlvbjsKICAgICBXcml0ZUJhcnJpZXI8R2V0dGVyU2V0dGVyPiBtX3Rocm93VHlwZUVy
cm9yR2V0dGVyU2V0dGVyOwogCiAgICAgV3JpdGVCYXJyaWVyPE1vZHVsZUxvYWRlck9iamVjdD4g
bV9tb2R1bGVMb2FkZXI7CkBAIC00MzgsNiArNDM5LDcgQEAgcHVibGljOgogICAgIEpTRnVuY3Rp
b24qIGFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlQcm90
b1ZhbHVlc0Z1bmN0aW9uLmdldCgpOyB9CiAgICAgSlNGdW5jdGlvbiogaW5pdGlhbGl6ZVByb21p
c2VGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbi5n
ZXQoKTsgfQogICAgIEpTRnVuY3Rpb24qIG5ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24uZ2V0KCk7IH0KKyAg
ICBKU0Z1bmN0aW9uKiBmdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24uZ2V0
KCk7IH0KICAgICBHZXR0ZXJTZXR0ZXIqIHRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKFZNJiB2
bSkKICAgICB7CiAgICAgICAgIGlmICghbV90aHJvd1R5cGVFcnJvckdldHRlclNldHRlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBhMGY3NzE5NDdj
MDhmN2UxMzIxMDk2NzJiYTgzM2NkMjFiODJiZDM0Li40NDczMDllMjk4MTJjODliM2Q1MTdiOTNi
N2M0NDVhMTMwNzUwNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwCkBAIC0xNDU3LDE4ICsxNDU3LDQwIEBAIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiBKU09i
amVjdDo6ZmluZFByb3BlcnR5SGFzaEVudHJ5KFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiAg
ICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgSlNPYmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK2Jvb2wgSlNPYmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBoYXNJbnN0YW5jZVN5bWJvbCkKIHsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOworCisgICAgaWYgKCFoYXNJbnN0YW5jZVN5bWJvbC5pc1Vu
ZGVmaW5lZE9yTnVsbCgpICYmIGhhc0luc3RhbmNlU3ltYm9sICE9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSkgewor
ICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBK
U0M6OmdldENhbGxEYXRhKGhhc0luc3RhbmNlU3ltYm9sLCBjYWxsRGF0YSk7CisgICAgICAgIGlm
IChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKKyAgICAgICAgICAgIHZtLnRocm93RXhjZXB0
aW9uKGV4ZWMsIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JIYXNJbnN0YW5j
ZVN5bWJvbE5vdEZ1bmN0aW9uKGV4ZWMsIHRoaXMpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorCisgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAg
ICAgIGFyZ3MuYXBwZW5kKHZhbHVlKTsKKyAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGV4
ZWMsIGhhc0luc3RhbmNlU3ltYm9sLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3MpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0LnRvQm9vbGVhbihleGVjKTsKKyAgICB9CisKICAgICBUeXBl
SW5mbyBpbmZvID0gc3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKTsKICAgICBpZiAoaW5mby5pbXBs
ZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpCiAgICAgICAgIHJldHVybiBkZWZhdWx0SGFzSW5z
dGFuY2UoZXhlYywgdmFsdWUsIGdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90
eXBlKSk7CiAgICAgaWYgKGluZm8uaW1wbGVtZW50c0hhc0luc3RhbmNlKCkpCiAgICAgICAgIHJl
dHVybiBtZXRob2RUYWJsZSh2bSktPmN1c3RvbUhhc0luc3RhbmNlKHRoaXMsIGV4ZWMsIHZhbHVl
KTsKLSAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBh
cmFtZXRlckVycm9yKGV4ZWMsIHRoaXMpKTsKKyAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBj
cmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yTm90RnVuY3Rpb24oZXhlYywgdGhp
cykpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBKU09iamVjdDo6aGFzSW5zdGFuY2Uo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVmFsdWUgaGFzSW5zdGFu
Y2VTeW1ib2wgPSBnZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmhhc0luc3RhbmNlU3lt
Ym9sKTsKKworICAgIHJldHVybiBoYXNJbnN0YW5jZShleGVjLCB2YWx1ZSwgaGFzSW5zdGFuY2VT
eW1ib2wpOworfQorCiBib29sIEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvKQogewogICAgIGlmICghdmFsdWUu
aXNPYmplY3QoKSkKQEAgLTE0ODcsNiArMTUwOSwxNCBAQCBib29sIEpTT2JqZWN0OjpkZWZhdWx0
SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3Rv
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFs
dWUgdmFsdWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIHByb3Rv
ID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBw
cm90bykpKTsKK30KKwogdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVz
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKGV4ZWMt
PnZtKCkpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lcywg
bW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBhYmY1
YTViZDk2ZjdlMTQyYWVkMDlmNzdhMzM5ZjQzZTg4YWEwZjZmLi4zYmRlOTkwZmUxMzA5ZTlhNzVl
NWNiOTI0Y2E3MDZlZjBkNmIyMmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKQEAgLTQ4NSw2ICs0ODUsNyBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBzdGF0aWMgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3Rh
dGUqLCBQcmVmZXJyZWRQcmltaXRpdmVUeXBlKTsKIAorICAgIEpTX0VYUE9SVF9QUklWQVRFIGJv
b2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBoYXNJbnN0
YW5jZVN5bWJvbCk7CiAgICAgYm9vbCBoYXNJbnN0YW5jZShFeGVjU3RhdGUqLCBKU1ZhbHVlKTsK
ICAgICBzdGF0aWMgYm9vbCBkZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSwg
SlNWYWx1ZSBwcm90b3R5cGVQcm9wZXJ0eSk7CiAKQEAgLTk3NCw2ICs5NzUsOCBAQCBwcml2YXRl
OgogICAgIH0KIH07CiAKK0pTX0VYUE9SVF9QUklWQVRFIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKEV4ZWNTdGF0ZSopOworCiBpbmxpbmUg
SlNGaW5hbE9iamVjdCogSlNGaW5hbE9iamVjdDo6Y3JlYXRlKAogICAgIEV4ZWNTdGF0ZSogZXhl
YywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZseSogYnV0dGVyZmx5KQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaAppbmRleCAwZjcwZTFlYTAw
YzYyMjBhZmQ4MDI3ODk2ODFiOWQ5OGNhYTg0YTk2Li5iNzI3ZDE4NWU0ZDcwZTE5OWVmZmNlMGUx
YWNhMDRjZjk1MjgzNTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Xcml0ZUJhcnJpZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0
ZUJhcnJpZXIuaApAQCAtMTUyLDE0ICsxNTIsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0dldHRl
clNldHRlcigpIGNvbnN0IHsgcmV0dXJuIGdldCgpLmlzR2V0dGVyU2V0dGVyKCk7IH0KICAgICBi
b29sIGlzQ3VzdG9tR2V0dGVyU2V0dGVyKCkgY29uc3QgeyByZXR1cm4gZ2V0KCkuaXNDdXN0b21H
ZXR0ZXJTZXR0ZXIoKTsgfQogICAgIAotICAgIEpTVmFsdWUqIHNsb3QoKQorICAgIEpTVmFsdWUq
IHNsb3QoKSBjb25zdAogICAgIHsgCi0gICAgICAgIHVuaW9uIHsKLSAgICAgICAgICAgIEVuY29k
ZWRKU1ZhbHVlKiB2OwotICAgICAgICAgICAgSlNWYWx1ZSogc2xvdDsKLSAgICAgICAgfSB1Owot
ICAgICAgICB1LnYgPSAmbV92YWx1ZTsKLSAgICAgICAgcmV0dXJuIHUuc2xvdDsKKyAgICAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxKU1ZhbHVlKj4oJm1fdmFsdWUpOwogICAgIH0KICAgICAKICAg
ICBpbnQzMl90KiB0YWdQb2ludGVyKCkgeyByZXR1cm4gJmJpdHdpc2VfY2FzdDxFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yKj4oJm1fdmFsdWUpLT5hc0JpdHMudGFnOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N5bWJvbC1oYXNJbnN0YW5jZS5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc3ltYm9sLWhhc0luc3RhbmNlLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg4MDFlYjhiNGQ3ZGNmMWJmM2FjNjdlYmY2NGVmZDcyZjZmYTNkMzMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N5bWJvbC1o
YXNJbnN0YW5jZS5qcwpAQCAtMCwwICsxLDU0IEBACisvLyBUaGlzIGZpbGUgdGVzdHMgdGhlIGZ1
bmN0aW9uYWxpdHkgb2YgU3ltYm9sLmhhc0luc3RhbmNlLgorCisKKy8vIFRlc3QgYSBjdXN0b20g
U3ltYm9sLmhhc0luc3RhbmNlIG9uIGEgZnVuY3Rpb24gb2JqZWN0LgorZnVuY3Rpb24gQ29uc3Ry
dWN0b3IoeCkge30KK2ZvbyA9IG5ldyBDb25zdHJ1Y3RvcigpOworCitpZiAoIShmb28gaW5zdGFu
Y2VvZiBDb25zdHJ1Y3RvcikpCisgICAgdGhyb3cgInNob3VsZCBiZSBpbnN0YW5jZW9mIjsKKwor
T2JqZWN0LmRlZmluZVByb3BlcnR5KENvbnN0cnVjdG9yLCBTeW1ib2wuaGFzSW5zdGFuY2UsIHt2
YWx1ZTogZnVuY3Rpb24odmFsdWUpIHsKKyAgICBpZiAodGhpcyAhPT0gQ29uc3RydWN0b3IpCisg
ICAgICAgIHRocm93ICJ8dGhpc3wgc2hvdWxkIGJlIENvbnN0cnVjdG9yIjsKKyAgICBpZiAodmFs
dWUgIT09IGZvbykKKyAgICAgICAgdGhyb3cgImZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBmb28i
OworICAgIHJldHVybiBmYWxzZTsKK30gfSk7CisKKworaWYgKGZvbyBpbnN0YW5jZW9mIENvbnN0
cnVjdG9yKQorICAgIHRocm93ICJzaG91bGQgbm90IGJlIGluc3RhbmNlb2YiOworCisKKy8vIFRl
c3QgU3ltYm9sLmhhc0luc3RhbmNlIG9uIGFuIG9yZGluYXJ5IG9iamVjdC4KK09iamVjdENsYXNz
ID0ge30KK09iamVjdENsYXNzW1N5bWJvbC5oYXNJbnN0YW5jZV0gPSBmdW5jdGlvbiAodmFsdWUp
IHsKKyAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVj
dCIgfHwgdHlwZW9mIHZhbHVlID09PSAiZnVuY3Rpb24iKTsKK30KKworaWYgKCEoZm9vIGluc3Rh
bmNlb2YgT2JqZWN0Q2xhc3MpKQorICAgIHRocm93ICJmb28gc2hvdWxkIGJlIGFuIGluc3RhbmNl
b2YgT2JqZWN0Q2xhc3MiOworCitpZiAoIShDb25zdHJ1Y3RvciBpbnN0YW5jZW9mIE9iamVjdENs
YXNzKSkKKyAgICB0aHJvdyAiQ29uc3RydWN0b3Igc2hvdWxkIGJlIGFuIGluc3RhbmNlb2YgT2Jq
ZWN0Q2xhc3MiOworCitOdW1iZXJDbGFzcyA9IHt9CitOdW1iZXJDbGFzc1tTeW1ib2wuaGFzSW5z
dGFuY2VdID0gZnVuY3Rpb24gKHZhbHVlKSB7CisgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0g
Im51bWJlciI7Cit9CisKK2lmICghKDEgaW5zdGFuY2VvZiBOdW1iZXJDbGFzcykpCisgICAgdGhy
b3cgIjEgc2hvdWxkIGJlIGFuIGluc3RhbmNlb2YgTnVtYmVyQ2xhc3MiOworCitpZiAoZm9vIGlu
c3RhbmNlb2YgTnVtYmVyQ2xhc3MpCisgICAgdGhyb3cgImZvbyBzaG91bGQgYmUgYW4gaW5zdGFu
Y2VvZiBOdW1iZXJDbGFzcyI7CisKKworLy8gVGVzdCB0aGUgRnVuY3Rpb24ucHJvdG90eXBlW1N5
bWJvbC5oYXNJbnN0YW5jZV0gd29ya3Mgd2hlbiBhY3R1YWxseSBjYWxsZWQuCitkZXNjcmlwdG9y
ID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihGdW5jdGlvbi5wcm90b3R5cGUsIFN5
bWJvbC5oYXNJbnN0YW5jZSk7CitpZiAoZGVzY3JpcHRvci53cml0YWJsZSAhPT0gZmFsc2UgfHwg
ZGVzY3JpcHRvci5jb25maWd1cmFibGUgIT09IGZhbHNlIHx8IGRlc2NyaXB0b3IuZW51bWVyYWJs
ZSAhPT0gZmFsc2UpCisgICAgdGhyb3cgIkZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5z
dGFuY2VdIGhhcyBhIGJhZCBkZXNjcmlwdG9yIjsKKworaWYgKCFGdW5jdGlvbi5wcm90b3R5cGVb
U3ltYm9sLmhhc0luc3RhbmNlXS5jYWxsKENvbnN0cnVjdG9yLCBmb28pKQorICAgIHRocm93ICJG
dW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSBzaG91bGQgY2xhaW0gdGhhdCBm
b28gaXMgYW4gaW5zdGFuY2VvZiBDb25zdHJ1Y3RvciI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBjMjhhMTBkYzg0NTZmYWM5MDdhYjA5MGMyZTRjMzZlMWI5
YzMxYjUyLi5kMmI4ZmM4YTQ0MzEyNDc5ZGI2NGE2NmNmZmM5ZTJhODMyN2Y0OGYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg2LDcgKzg2LDYgQEAKIAkJ
MUZBNDdDOEIxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQx
QiAvKiBXZWJDb3JlVGhyZWFkLmggKi87IH07CiAJCTI2MTQ3QjBBMTVERENDREMwMEREQjkwNyAv
KiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRv
U3RyaW5nQ29udmVyc2lvbi5oICovOyB9OwogCQkyNjI5OUI2RTE3QTlFNUI4MDBBREVCRTUgLyog
UmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjI5
OUI2RDE3QTlFNUI4MDBBREVCRTUgLyogUmVmLmggKi87IH07Ci0JCTI2ODRENDM2MUMwMDBENDAw
MDgxRDY2MyAvKiBJbmRleFNwYXJzZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjY4NEQ0MzUxQzAwMEQ0MDAwODFENjYzIC8qIEluZGV4U3BhcnNl
U2V0LmggKi87IH07CiAJCTJDMDUzODU0MTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRl
VGltZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMw
NTM4NTMxNUJDODE5MDAwRjIxQjk2IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmggKi87IH07CiAJCTJD
Q0Q4OTJBMTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAzOTAyMDAy
ODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwICovOyB9OwogCQkyQ0RFRDBFRjE4MTE1QzM4
MDA0REJBNzAgLyogUnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3Bw
ICovOyB9OwpAQCAtMzg3LDcgKzM4Niw2IEBACiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAv
KiBXZWJDb3JlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
cmVUaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NE
QzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyNjI5OUI2RDE3QTlFNUI4MDBBREVCRTUgLyogUmVmLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkyNjg0RDQzNTFDMDAwRDQwMDA4MUQ2NjMgLyogSW5kZXhTcGFyc2VTZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZXhTcGFyc2VTZXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMwNTM4NTMxNUJDODE5MDAwRjIxQjk2IC8qIEdyZWdv
cmlhbkRhdGVUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyZWdvcmlh
bkRhdGVUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDQ0Q4OTI5MTVDMDM5
MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcmVnb3JpYW5EYXRlVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcENGLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwMyw3ICs4MDEsNiBAQAogCQkJCUE4QTQ3MkI5MTUx
QTgyNUEwMDQxMjNGRiAvKiBIYXNoVGFibGUuaCAqLywKIAkJCQlBOEE0NzJCQTE1MUE4MjVBMDA0
MTIzRkYgLyogSGFzaFRyYWl0cy5oICovLAogCQkJCUE4QTQ3MkJCMTUxQTgyNUEwMDQxMjNGRiAv
KiBIZXhOdW1iZXIuaCAqLywKLQkJCQkyNjg0RDQzNTFDMDAwRDQwMDA4MUQ2NjMgLyogSW5kZXhT
cGFyc2VTZXQuaCAqLywKIAkJCQlBOEE0NzJCQzE1MUE4MjVBMDA0MTIzRkYgLyogSW5saW5lQVNN
LmggKi8sCiAJCQkJQTcwREEwODIxNzk5RjA0RDAwNTI5QTlCIC8qIEluc2VydGlvbi5oICovLAog
CQkJCTdDREQ3RkY3MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0b3JzLmggKi8sCkBA
IC0xMjMyLDcgKzEyMjksNiBAQAogCQkJCUE3NDg3NDUzMTdBMEJEQUUwMEZBMDRDQiAvKiBTaXhD
aGFyYWN0ZXJIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQyNjE1MUE4MjVCMDA0MTIz
RkYgLyogU3BlY3RydW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDI4MTUxQTgyNUIwMDQx
MjNGRiAvKiBTdGFja0JvdW5kcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMjY4NEQ0MzYxQzAwMEQ0
MDAwODFENjYzIC8qIEluZGV4U3BhcnNlU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRURBQ0Qz
RTE2MzBGODNGMDBDNjk2MzQgLyogU3RhY2tTdGF0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThB
NDc0MjkxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YXRpY0NvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDc0MkExNTFBODI1QjAwNDEyM0ZGIC8qIFN0ZExpYkV4dHJhcy5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggOTdhOGY2OWFhNmU4OTlkYmM5ZTBiODEyZjlhNmZhNTMzNmM5MTg5
Yy4uMTljMWNkNmU3MGVkMjIxZWJhNTYwMjdlMjM5NWNiOWEwZjI3MGJkZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI3IEBACisyMDE1LTEyLTA3ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFtFUzZdIEFkZCBzdXBwb3J0IGZvciBTeW1ib2wuaGFzSW5zdGFuY2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTgzOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0ZXN0
cyB0byByZWZsZWN0IHRoZSBjaGFuZ2VzIHRvIGluc3RhbmNlb2YgaW4gRVM2LgorCisgICAgICAg
IEFkZGVkIGEgbmV3IHJlZ3Jlc3Npb24gdGVzdCBmb3IgYm91bmQgZnVuY3Rpb25zIGluIGluc3Rh
bmNlb2YKKyAgICAgICAgYXMgdGhlIHBlcmZvbWFuY2Ugb24gYm91bmQgZnVuY3Rpb25zIHNob3Vs
ZCwgdG8gc29tZSBkZWdyZWUsCisgICAgICAgIHJlZmxlY3QgdGhlIHBlcmZvcm1hbmNlIG9uIEMt
QVBJIHVzZXJzLgorCisgICAgICAgICoganMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2V4Y2VwdGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBqcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICoganMvaW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICoganMvcmVncmVzcy9pbnN0YW5jZW9mLWJvdW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9pbnN0YW5jZW9mLWJvdW5kLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2luc3RhbmNlb2YtYm91bmQuanM6IEFkZGVkLgorICAg
ICAgICAoQ29uc3RydWN0b3IpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICoganMvc2NyaXB0
LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzOgorCiAyMDE1LTEyLTA3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBNaXNj
ZWxsYW5lb3VzIHRlc3QgY2xlYW51cC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dAppbmRleCBjYWUyMTliYWY5MmI1OTUw
YmU3N2Y5NDU3ZGEwMmNjNTE5NjdmOTgzLi43ZjVkZTVmODIyNzhmYjcxOThhODkyOTE2MjI1MTJl
M2UwZTI4ZGE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVy
dHlOYW1lcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blBy
b3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CkBAIC02MSw3ICs2MSw3IEBAIFBBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyhFcnJvcikgaXMgWydsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUn
XQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEVycm9yLnByb3RvdHlwZSkgaXMgWydj
b25zdHJ1Y3RvcicsICdtZXNzYWdlJywgJ25hbWUnLCAndG9TdHJpbmcnXQogUEFTUyBnZXRTb3J0
ZWRPd25Qcm9wZXJ0eU5hbWVzKE1hdGgpIGlzIFsnRScsJ0xOMTAnLCdMTjInLCdMT0cxMEUnLCdM
T0cyRScsJ1BJJywnU1FSVDFfMicsJ1NRUlQyJywnYWJzJywnYWNvcycsJ2Fjb3NoJywnYXNpbics
J2FzaW5oJywnYXRhbicsJ2F0YW4yJywnYXRhbmgnLCdjYnJ0JywnY2VpbCcsJ2NsejMyJywnY29z
JywnY29zaCcsJ2V4cCcsJ2V4cG0xJywnZmxvb3InLCdmcm91bmQnLCdoeXBvdCcsJ2ltdWwnLCds
b2cnLCdsb2cxMCcsJ2xvZzFwJywnbG9nMicsJ21heCcsJ21pbicsJ3BvdycsJ3JhbmRvbScsJ3Jv
dW5kJywnc2lnbicsJ3NpbicsJ3NpbmgnLCdzcXJ0JywndGFuJywndGFuaCcsJ3RydW5jJ10KIFBB
U1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhKU09OKSBpcyBbJ3BhcnNlJywgJ3N0cmluZ2lm
eSddCi1QQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3ltYm9sKSBpcyBbJ2ZvcicsICdp
dGVyYXRvcicsICdrZXlGb3InLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3Ry
aW5nVGFnJywgJ3Vuc2NvcGFibGVzJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhT
eW1ib2wpIGlzIFsnZm9yJywgJ2hhc0luc3RhbmNlJywgJ2l0ZXJhdG9yJywgJ2tleUZvcicsICds
ZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnLCAndG9TdHJpbmdUYWcnLCAndW5zY29wYWJsZXMn
XQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFN5bWJvbC5wcm90b3R5cGUpIGlzIFsn
Y29uc3RydWN0b3InLCAndG9TdHJpbmcnLCAndmFsdWVPZiddCiBQQVNTIGdsb2JhbFByb3BlcnR5
TmFtZXMuaW5kZXhPZignTmFOJykgIT0gLTEgaXMgdHJ1ZQogUEFTUyBnbG9iYWxQcm9wZXJ0eU5h
bWVzLmluZGV4T2YoJ0luZmluaXR5JykgIT0gLTEgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZXhjZXB0aW9uLWZvci1ub25vYmplY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvZXhjZXB0aW9uLWZvci1ub25vYmplY3QtZXhwZWN0ZWQudHh0CmluZGV4IDlmOWFlNjlj
ODZjZTlmMGVhYTcxMGZmMGE2YTBkNTUzYTE4ZTBhMmMuLjc3NGQyMjdkMDM1YWRmMTdmM2JjZTA5
ODA1MTFmMmUzMmU0Mjc1ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1m
b3Itbm9ub2JqZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24t
Zm9yLW5vbm9iamVjdC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFCiAKIAogUEFTUyBuZXcge30udW5kZWZpbmVkIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IHt9
LnVuZGVmaW5lZCcpLgotUEFTUyAxIGluc3RhbmNlb2Yge30udW5kZWZpbmVkIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IHt9LnVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRp
bmcgJzEgaW5zdGFuY2VvZiB7fS51bmRlZmluZWQnKS4KK1BBU1MgMSBpbnN0YW5jZW9mIHt9LnVu
ZGVmaW5lZCB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5z
dGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24t
aW5zdGFuY2VvZi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24taW5zdGFu
Y2VvZi1leHBlY3RlZC50eHQKaW5kZXggZWQ2OGI2Y2M4YTA3YTVhNzUyOTU5NTczZTMzZTE4NWFl
YTMxOTViNi4uMGVmZDdhODZlMDljNDcwMGQ0Y2QxZDY4ZWQyOTlmZmZhODMyN2M5NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1pbnN0YW5jZW9mLWV4cGVjdGVkLnR4dApAQCAt
MywxMSArMywxMSBAQCBUZXN0IGZvciBlcnJvciBtZXNzYWdlcyBmb3IgaW5zdGFuY2VvZgogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgJ2luc3RhbmNlb2YnIGluc3RhbmNlb2Yg
ICAgJ2luc3RhbmNlb2YnIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6ICJpbnN0YW5jZW9mIiBp
cyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJydpbnN0YW5jZW9mJyBpbnN0YW5jZW9mICAg
ICdpbnN0YW5jZW9mJycpLgotUEFTUyAyMCBpbnN0YW5jZW9mICAgICAnaGVsbG8nICAgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogJ2hlbGxvJyBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRp
bmcgJzIwIGluc3RhbmNlb2YgICAgICdoZWxsbycnKS4KK1BBU1MgJ2luc3RhbmNlb2YnIGluc3Rh
bmNlb2YgICAgJ2luc3RhbmNlb2YnIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhh
bmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCitQQVNTIDIwIGluc3RhbmNl
b2YgICAgICdoZWxsbycgICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNp
ZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgogUEFTUyAyMCBpbnN0YW5jZW9mICAg
ICB7fSAgIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHt9IGlzIG5vdCBhIGZ1bmN0aW9uLiAo
ZXZhbHVhdGluZyAnMjAgaW5zdGFuY2VvZiAgICAge30nKS4KLVBBU1MgMjAgaW5zdGFuY2VvZiAg
ICAge30uZm9vICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fS5mb28gaXMgbm90IGEgZnVu
Y3Rpb24uIChldmFsdWF0aW5nICcyMCBpbnN0YW5jZW9mICAgICB7fS5mb28nKS4KLVBBU1MgMjAg
aW5zdGFuY2VvZiAgICAgdHJ1ZSAgICAgICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB0cnVl
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnMjAgaW5zdGFuY2VvZiAgICAgdHJ1ZScp
LgorUEFTUyAyMCBpbnN0YW5jZW9mICAgICB7fS5mb28gIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCitQQVNT
IDIwIGluc3RhbmNlb2YgICAgIHRydWUgICAgICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
UmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvaW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9qcy9pbnN0YW5jZS1vZi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4dAppbmRleCAxMTAwZGI4
YWI3YmM5YWRjMGU2ZTRmYjZkMTFlZDk1YTZjZWM4ZDk1Li5lNmVmYzZhNTcxMTVmZGY4MDk0NGQx
NTNjNmFmZGRhMjI2ZGI2NDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9pbnN0YW5jZS1v
Zi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9pbnN0YW5jZS1v
Zi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4dApAQCAtMyw5ICszLDkgQEAgVGhpcyB0ZXN0IG1ha2Vz
IHN1cmUgdGhhdCBpbnN0YW5jZSBvZiBiZWhhdmVzIGNvcnJlY3RseSB3aGVuIHRoZSB2YWx1ZSwg
Y29uc3RydWMKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTICgxIGluc3RhbmNl
b2YgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogMSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2
YWx1YXRpbmcgJzEgaW5zdGFuY2VvZiAxJykuCi1QQVNTICh7fSBpbnN0YW5jZW9mIDEpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IDEgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICd7
fSBpbnN0YW5jZW9mIDEnKS4KLVBBU1MgKG9iaiBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IDEgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICdvYmogaW5zdGFu
Y2VvZiAxJykuCitQQVNTICgxIGluc3RhbmNlb2YgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KK1BBU1Mg
KHt9IGluc3RhbmNlb2YgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBz
aWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KK1BBU1MgKG9iaiBpbnN0YW5jZW9m
IDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5j
ZW9mIGlzIG5vdCBhbiBvYmplY3QuCiBQQVNTICgxIGluc3RhbmNlb2Yge30pIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IHt9IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnMSBpbnN0
YW5jZW9mIHt9JykuCiBQQVNTICh7fSBpbnN0YW5jZW9mIHt9KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiB7fSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJ3t9IGluc3RhbmNlb2Yg
e30nKS4KIFBBU1MgKG9iaiBpbnN0YW5jZW9mIHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiB7fSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJ29iaiBpbnN0YW5jZW9mIHt9Jyku
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91bmQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnN0YW5jZW9mLWJvdW5kLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ODJiY2JlYjk5ZDRmNWIxYzI0ODg5NzhiNjQ5MzAzOWVkOGU2
ZWE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnN0YW5jZW9m
LWJvdW5kLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvaW5zdGFuY2Vv
Zi1ib3VuZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRp
b24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnN0YW5jZW9mLWJvdW5k
Lmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91bmQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NTEyMDY0YzViNmU3ZjdkOTNlYzIxM2Q2ZTQxNmIyYzEwZDRiZTQ5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnN0YW5jZW9mLWJvdW5kLmh0bWwK
QEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvaW5zdGFuY2VvZi1ib3VuZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9pbnN0YW5j
ZW9mLWJvdW5kLmpzIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvaW5zdGFu
Y2VvZi1ib3VuZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGY4ZTUzNWU1NTY4ZDU1ZjQ4MzJhMzViNTEwZWIy
ZGI3ZjA1NTI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvaW5zdGFuY2VvZi1ib3VuZC5qcwpAQCAtMCwwICsxLDMwIEBACisvLyBUaGlzIHRl
c3RzIHRoYXQgd2UgZG8gbm90IGNvbnN0YW50bHkgT1NSIG9uIGluc3RhbmNlb2Ygd2hlcmUgdGhl
IFJIUyBpcyBhIGJvdW5kIGZ1bmN0aW9uLgorLy8gV2hpbGUgdGhpcyBib3VuZCBmdW5jdGlvbnMg
YXJlIHVubGlrZWx5IHRvIGJlIHBhc3NlZCB0byBpbnN0YW5jZW9mIG9mdGVuIEMtQVBJIHVzZXJz
IHVzZQorLy8gdGhlIHNhbWUgbWV0aG9kIG9mIG92ZXJyaWRpbmcgaW5zdGFuY2VvZiBleHByZXNz
aW9ucy4KKworCitmdW5jdGlvbiBDb25zdHJ1Y3Rvcih4KSB7CisgICAgdGhpcy54ID0geDsKK30K
KworQ29uc3RydWN0b3IucHJvdG90eXBlID0ge30KKworQm91bmRDb25zdHJ1Y3RvciA9IENvbnN0
cnVjdG9yLmJpbmQoKTsKK2ZvbyA9IG5ldyBDb25zdHJ1Y3RvcigxKTsKK2JhciA9IG5ldyBCb3Vu
ZENvbnN0cnVjdG9yKDEpOworCitpID0gMDsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYg
KCEoZm9vIGluc3RhbmNlb2YgQm91bmRDb25zdHJ1Y3RvcikpIHsKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJmb28gc2hvdWxkIGJlIGFuIGluc3RhbmNlb2YgQm91bmRDb25zdHJ1Y3RvciIpOwor
ICAgIH0KKyAgICBsZXQgaiA9IDA7CisgICAgZm9yICg7aiA8IDEwMDA7IGorKykge30KKyAgICBy
ZXR1cm4gajsKK30KK25vSW5saW5lKHRlc3QpOworCitmb3IgKGkgPSAwOyBpIDwgNTAwMDA7IGkr
KykKKyAgICB0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
T2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKaW5kZXggY2I1ZWMyNGZhZjkwN2Y4MDIz
Nzk4NWY4YzhhY2U4MzhkZDY4ZTA4OS4uNzRiY2I3OGE1MjBjOGM3MGZkZGU4NjQwNzY4MTgyYzA3
MjM2NTNhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1n
ZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9P
YmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwpAQCAtNzAsNyArNzAsNyBAQCB2YXIgZXhwZWN0
ZWRQcm9wZXJ0eU5hbWVzU2V0ID0gewogICAgICJFcnJvci5wcm90b3R5cGUiOiAiWydjb25zdHJ1
Y3RvcicsICdtZXNzYWdlJywgJ25hbWUnLCAndG9TdHJpbmcnXSIsCiAgICAgIk1hdGgiOiAiWydF
JywnTE4xMCcsJ0xOMicsJ0xPRzEwRScsJ0xPRzJFJywnUEknLCdTUVJUMV8yJywnU1FSVDInLCdh
YnMnLCdhY29zJywnYWNvc2gnLCdhc2luJywnYXNpbmgnLCdhdGFuJywnYXRhbjInLCdhdGFuaCcs
J2NicnQnLCdjZWlsJywnY2x6MzInLCdjb3MnLCdjb3NoJywnZXhwJywnZXhwbTEnLCdmbG9vcics
J2Zyb3VuZCcsJ2h5cG90JywnaW11bCcsJ2xvZycsJ2xvZzEwJywnbG9nMXAnLCdsb2cyJywnbWF4
JywnbWluJywncG93JywncmFuZG9tJywncm91bmQnLCdzaWduJywnc2luJywnc2luaCcsJ3NxcnQn
LCd0YW4nLCd0YW5oJywndHJ1bmMnXSIsCiAgICAgIkpTT04iOiAiWydwYXJzZScsICdzdHJpbmdp
ZnknXSIsCi0gICAgIlN5bWJvbCI6ICJbJ2ZvcicsICdpdGVyYXRvcicsICdrZXlGb3InLCAnbGVu
Z3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3RyaW5nVGFnJywgJ3Vuc2NvcGFibGVzJ10i
LAorICAgICJTeW1ib2wiOiAiWydmb3InLCAnaGFzSW5zdGFuY2UnLCAnaXRlcmF0b3InLCAna2V5
Rm9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZScsICd0b1N0cmluZ1RhZycsICd1bnNj
b3BhYmxlcyddIiwKICAgICAiU3ltYm9sLnByb3RvdHlwZSI6ICJbJ2NvbnN0cnVjdG9yJywgJ3Rv
U3RyaW5nJywgJ3ZhbHVlT2YnXSIKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266927</attachid>
            <date>2015-12-08 12:32:25 -0800</date>
            <delta_ts>2015-12-09 17:33:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151839-20151208123155.patch</filename>
            <type>text/plain</type>
            <size>112626</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YzE5MjRjZGM0MmU0YWNjYTY3ZDlmNjc4MDU4OGQ2YzE4M2Y4YjI3Li4zZTQwOTgyOTAzZDVjZjU4
ODVjOWRlMDNjZGM5NGQ3M2YyZDUwZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNTIgQEAKKzIwMTUtMTItMDggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5jZSwgdW5mb3J0dW5hdGVseSBp
biBvcmRlciB0byBwcmV2ZW50CisgICAgICAgIHJlZ3Jlc3Npb25zIHNldmVyYWwgbmV3IGJ5dGVj
b2RlcyBhbmQgREZHIElSIG5vZGVzIHdlcmUgbmVjZXNzYXJ5LiBCZWZvcmUsIFN5bWJvbC5oYXNJ
bnN0YW5jZQorICAgICAgICB3aGVuIGV4ZWN1dGluZyBhbiBpbnN0YW5jZW9mIGV4cHJlc3Npb24g
d2Ugd291bGQgZW1pdCB0aHJlZSBieXRlY29kZXM6IG92ZXJyaWRlc19oYXNfaW5zdGFuY2UsIGdl
dF9ieV9pZCwKKyAgICAgICAgdGhlbiBpbnN0YW5jZW9mLiBBcyB0aGUgc3BlYyBoYXMgY2hhbmdl
ZCwgd2UgZW1pdCBhIG1vcmUgY29tcGxpY2F0ZWQgc2V0IG9mIGJ5dGVjb2RlcyBpbiBhZGRpdGlv
biB0byBzb21lCisgICAgICAgIG5ldyBvbmVzLiBGaXJzdCB0aGUgcm9sZSBvZiBvdmVycmlkZXNf
aGFzX2luc3RhbmNlIGFuZCBpdHMgY29ycmVzcG9uZGluZyBERkcgbm9kZSBoYXZlIGNoYW5nZWQu
IE5vdyBpdCByZXR1cm5zCisgICAgICAgIGEganMtYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIg
dGhlIFJIUyBvZiB0aGUgaW5zdGFuY2VvZiBleHByZXNzaW9uIChmcm9tIGhlcmUgb24gY2FsbGVk
IHRoZSBjb25zdHJ1Y3RvciBmb3Igc2ltcGxpY2l0eSkKKyAgICAgICAgbmVlZHMgbm9uLWRlZmF1
bHQgYmVoYXZpb3IgZm9yIHJlc29sdmluZyB0aGUgZXhwcmVzc2lvbi4gaS5lLiBUaGUgY29uc3Ry
dWN0b3IgaGFzIGEgU3ltYm9sLmhhc0luc3RhbmNlIHRoYXQgZGlmZmVycyBmcm9tIHRoZSBvbmUg
b24KKyAgICAgICAgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0gb3IgaXMg
YSBib3VuZC9DLUFQSSBmdW5jdGlvbi4gT25jZSB3ZSBnZXQgdG8gdGhlIERGRyB0aGlzIG5vZGUg
aXMgZ2VuZXJhbGx5IGVsaW1pbmF0ZWQgYXMKKyAgICAgICAgd2UgY2FuIHByb3ZlIHRoZSB2YWx1
ZSBvZiBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgYSBjb25zdGFudC4gVGhlIHNlY29uZCBuZXcgYnl0
ZWNvZGUgaXMgaW5zdGFuY2VvZl9jdXN0b20uIGluc250YW5jZW9mX2N1c3RvbSwganVzdAorICAg
ICAgICBlbWl0cyBhIGNhbGwgdG8gc2xvdyBwYXRoIGNvZGUgdGhhdCBjb21wdXRlcyB0aGUgcmVz
dWx0LgorCisgICAgICAgIEluIHRoZSBERkcsIHRoZXJlIGlzIGFsc28gYSBuZXcgbm9kZSwgQ2hl
Y2tUeXBlSW5mb0ZsYWdzLCB3aGljaCBjaGVja3MgdGhlIHR5cGUgaW5mbyBmbGFncyBhcmUgY29u
c2lzdGVudCB3aXRoIHRoZSBvbmVzIHByb3ZpZGVkIGFuZAorICAgICAgICBPU1IgZXhpdHMgaWYg
dGhlIGZsYWdzIGFyZSBub3QuIEFkZGl0aW9uYWxseSwgd2UgYXR0ZW1wdCB0byBwcm92ZSB0aGF0
IHRoZSByZXN1bHQgb2YgQ2hlY2tIYXNWYWx1ZSB3aWxsIGJlIGEgY29uc3RhbnQgYW5kIHRyYW5z
Zm9ybQorICAgICAgICBpdCBpbnRvIGEgQ2hlY2tUeXBlSW5mb0ZsYWdzIGZvbGxvd2VkIGJ5IGEg
SlNDb25zdGFudC4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAg
ICogYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanM6CisgICAgICAgIChzeW1ib2xIYXNJbnN0
YW5jZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6aXNCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6CisgICAgICAg
IChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpjb21w
dXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2su
Y3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAgICAgICog
Ynl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2luZFRvU3RyaW5nKToK
KyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1ByZWNp
c2VKdW1wVGFyZ2V0cy5jcHA6CisgICAgICAgIChKU0M6OmdldEp1bXBUYXJnZXRzRm9yQnl0ZWNv
ZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0T3ZlcnJpZGVz
SGFzSW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEluc3Rh
bmNlT2ZDdXN0b20pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNr
SGFzSW5zdGFuY2UpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAg
ICAgICAoSlNDOjpJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAg
ICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBo
YXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3BwOgorICAg
ICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHSGVhcExvY2F0aW9u
Lmg6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNDZWxsT3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzVHlwZUluZm9PcGVy
YW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjp0eXBlSW5mb09wZXJhbmQpOgorICAgICAg
ICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
Q2hlY2tUeXBlSW5mb0ZsYWdzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUluc3RhbmNlT2ZDdXN0b20pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoK
KyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja1R5cGVJbmZvRmxh
Z3MpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVJbnN0
YW5jZU9mQ3VzdG9tKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlQ2hlY2tIYXNJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChK
U0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoK
KyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVy
YXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfaW5zdGFuY2VvZik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9m
X2N1c3RvbSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZik6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20pOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVkLgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9pbnN0YW5jZW9mKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3Vz
dG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mX2N1c3RvbSk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5jZSk6IERl
bGV0ZWQuCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9M
TEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhf
REVDTCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
OgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6
OmludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIpOgorICAgICAgICAoSlND
OjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZk5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOgor
ICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZmhhc0luc3RhbmNlVmFsdWVO
b3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlSW52YWxpZElu
c3RhbmNlb2ZQYXJhbWV0ZXJFcnJvck5vdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
SW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcmhhc0luc3RhbmNlVmFsdWVOb3RGdW5jdGlv
bik6CisgICAgICAgIChKU0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlv
blByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiBydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3Bw
OgorICAgICAgICAoSlNDOjppc0JvdW5kRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpoYXNJbnN0
YW5jZUJvdW5kRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6Omhhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJpdmF0ZUZ1bmNJbnN0
YW5jZU9mKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGlt
ZS9KU1R5cGVJbmZvLmg6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpUeXBlSW5mbyk6CisgICAg
ICAgIChKU0M6OlR5cGVJbmZvOjpvdmVycmlkZXNIYXNJbnN0YW5jZSk6CisgICAgICAgICogcnVu
dGltZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTxVbmtu
b3duPjo6c2xvdCk6CisgICAgICAgICogdGVzdHMvZXM2LnlhbWw6CisKIDIwMTUtMTItMDcgIFNh
YW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIEpTQyBmZWF0
dXJlIGxpc3QgZm9yIHJlc3QgcGFyYW1ldGVycyBhbmQgZ2VuZXJhdG9ycwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCBhMWE3N2ZkODhhZDNhM2E5
YzJiNWRmNzk4Yzc3MTdhNTA0MmNlMWFjLi4yYjQ3MzRkYjQ0N2VhOTE0NzVmYTM4NmIzMGM5YjA3
YzU4N2RkMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByb3RlY3RlZDoKIAogcHVibGljOgogICAgIHR5cGVk
ZWYgUGFyZW50IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcgfCBPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3Zl
cnJpZGVzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgVHlwZU9mU2hv
dWxkQ2FsbEdldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgUHJvaGliaXRzUHJvcGVydHlDYWNoaW5nIHwg
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xv
dEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8
IE92ZXJyaWRlc0hhc0luc3RhbmNlRmxhZyB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBU
eXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERhdGE7CiAKICAgICB+SlNDYWxsYmFja09iamVjdCgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvRnVuY3Rpb25Qcm90
b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5
cGUuanMKaW5kZXggMWFhMDI0MjJiMTgwNGVlZmMwMzZmNTVjYTFlMjVlYTdmYzEzMGYyZC4uMzY0
YmM0MzI4ODI1ODQzMWUwYjZiNmJkMTIzMzY2MTliZGFjMDUyZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpzCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlvblByb3RvdHlwZS5qcwpAQCAtMzYsMyAr
MzYsMTggQEAgZnVuY3Rpb24gYXBwbHkodGhpc1ZhbHVlLCBhcmd1bWVudFZhbHVlcykKIAogICAg
IHJldHVybiB0aGlzLkBhcHBseSh0aGlzVmFsdWUsIGFyZ3VtZW50VmFsdWVzKTsKIH0KKworLy8g
RklYTUU6IHRoaXMgc2hvdWxkIGhhdmUgYSBkaWZmZXJlbnQgbmFtZTogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM2MworZnVuY3Rpb24gc3ltYm9sSGFzSW5zdGFu
Y2UodmFsdWUpCit7CisgICAgInVzZSBzdHJpY3QiOworCisgICAgaWYgKHR5cGVvZiB0aGlzICE9
PSAiZnVuY3Rpb24iKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoQGlzQm91bmRG
dW5jdGlvbih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24o
dGhpcywgdmFsdWUpOworCisgICAgbGV0IHRhcmdldCA9IHRoaXMucHJvdG90eXBlOworICAgIHJl
dHVybiBAaW5zdGFuY2VPZih2YWx1ZSwgdGFyZ2V0KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJhc2ljQmxvY2suY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKaW5kZXggNTk2MDY0
YzQwNjgyNDk3ODA4OWM0NjQzZjFjM2RmYmQwNTM0Yjk5Zi4uZjMyOWQwYjBmODkyZGNlMGIwMzhl
ZjFlM2VjOWIwM2Y0MmNlZWM3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKQEAgLTU4LDcgKzU4LDYgQEAgc3RhdGlj
IGJvb2wgaXNCcmFuY2goT3Bjb2RlSUQgb3Bjb2RlSUQpCiAgICAgY2FzZSBvcF9zd2l0Y2hfaW1t
OgogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAgY2FzZSBvcF9zd2l0Y2hfc3RyaW5nOgot
ICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgogICAgIGNhc2Ugb3Bfc2F2ZToKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgppbmRleCAwM2Y0NmE5M2QwZjI3OGI5ODc5ZWFk
MGZmZGU5ZmNjMmMwYjFkY2MxLi5mYWMwZTk5NmJlZmY0OTk4MzExMjEwOTYzNDhhNGZlYmJkYzAx
NjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlz
dC5qc29uCkBAIC00NSw4ICs0NSw5IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9iaXRh
bmQiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2JpdHhvciIs
ICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfYml0b3IiLCAibGVu
Z3RoIiA6IDUgfSwKLSAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2NoZWNrX2hhc19pbnN0YW5j
ZSIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAgICAgeyAibmFtZSIgOiAib3Bfb3ZlcnJpZGVz
X2hhc19pbnN0YW5jZSIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAi
b3BfaW5zdGFuY2VvZiIsICJsZW5ndGgiIDogNCB9LAorICAgICAgICAgICAgeyAibmFtZSIgOiAi
b3BfaW5zdGFuY2VvZl9jdXN0b20iLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5h
bWUiIDogIm9wX3R5cGVvZiIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfaXNfdW5kZWZpbmVkIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF9pc19ib29sZWFuIiwgImxlbmd0aCIgOiAzIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IGM2ZTlkZmEwYzc2ZGE5OTdj
YjAzMjA4MTA3OTExMjA5MGIyNDZhYTIuLmNkZDRhOGM3YTA5MmQ5OTAzYTIzZGY3Nzk0MTY1Mzdj
ZjFlYzg3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZVVzZURlZi5oCkBAIC0xNzAsNyArMTcwLDYgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2Rl
T2Zmc2V0KAogICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbDoKICAgICBjYXNlIG9wX2luOgogICAgIGNh
c2Ugb3BfaW5zdGFuY2VvZjoKLSAgICBjYXNlIG9wX2NoZWNrX2hhc19pbnN0YW5jZToKICAgICBj
YXNlIG9wX2FkZDoKICAgICBjYXNlIG9wX211bDoKICAgICBjYXNlIG9wX2RpdjoKQEAgLTE5Niw2
ICsxOTUsOCBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgICAgIGZ1
bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBvcF9vdmVycmlkZXNf
aGFzX2luc3RhbmNlOgorICAgIGNhc2Ugb3BfaW5zdGFuY2VvZl9jdXN0b206CiAgICAgY2FzZSBv
cF9oYXNfc3RydWN0dXJlX3Byb3BlcnR5OgogICAgIGNhc2Ugb3BfY29uc3RydWN0X3ZhcmFyZ3M6
CiAgICAgY2FzZSBvcF9jYWxsX3ZhcmFyZ3M6CkBAIC0zNTEsOCArMzUyLDkgQEAgdm9pZCBjb21w
dXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUJh
c2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX2NvbnN0cnVjdDoKICAgICBjYXNlIG9wX2dldF9i
eV9pZDoKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6Ci0gICAgY2FzZSBvcF9jaGVja19o
YXNfaW5zdGFuY2U6CisgICAgY2FzZSBvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgogICAgIGNh
c2Ugb3BfaW5zdGFuY2VvZjoKKyAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOgogICAgIGNh
c2Ugb3BfZ2V0X2J5X3ZhbDoKICAgICBjYXNlIG9wX3R5cGVvZjoKICAgICBjYXNlIG9wX2lzX3Vu
ZGVmaW5lZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
aW5kZXggYTM5MGM2MDlmY2RkYWZhZDIwMmFkMTI4ZjllYWMxYmVlYmFkYjQwNi4uMmQ5MTU3Y2Y0
Nzc4NTMxYzZkNTRhMjRlNjRlOTVmNGNjNDliOGJlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTEwMTgsMTMgKzEwMTgsMTIgQEAgdm9pZCBD
b2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAgICAgICsraXQ7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIG9wX2NoZWNrX2hhc19pbnN0YW5jZTogewor
ICAgICAgICBjYXNlIG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2U6IHsKICAgICAgICAgICAgIGlu
dCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAg
ICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIHByaW50
TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImNoZWNrX2hhc19pbnN0YW5j
ZSIpOwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcywgJWQoLT4lZCkiLCByZWdp
c3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFt
ZShyMikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKKyAgICAgICAgICAgIHBy
aW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgIm92ZXJyaWRlc19oYXNf
aW5zdGFuY2UiKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIiVzLCAlcywgJXMiLCByZWdpc3Rl
ck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShy
MikuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfaW5zdGFuY2VvZjogewpAQCAtMTAzNSw2ICsxMDM0LDE1IEBAIHZvaWQgQ29kZUJsb2NrOjpk
dW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzIiwgcmVnaXN0
ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUo
cjIpLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNl
IG9wX2luc3RhbmNlb2ZfY3VzdG9tOiB7CisgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUu
b3BlcmFuZDsKKyAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAg
ICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgcjMgPSAo
KytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4
ZWMsIGxvY2F0aW9uLCBpdCwgImluc3RhbmNlb2ZfY3VzdG9tIik7CisgICAgICAgICAgICBvdXQu
cHJpbnRmKCIlcywgJXMsICVzLCAlcyIsIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUocjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIyKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShy
MykuZGF0YSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfdW5zaWduZWQ6IHsKICAgICAgICAgICAgIHByaW50VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0
aW9uLCBpdCwgInVuc2lnbmVkIik7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCmluZGV4IDI1MjQzMDBmNzMzNzY5ZWQ5YmUw
MDFkNzY2MGYzNjg1OWI2ZDg5MDYuLjMwYzVlNjQxYTc5NjY2ODJkY2JiNzcwNDJmNTMwYWYzNDI1
MTMxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2lu
ZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcApA
QCAtNTAsNiArNTAsOCBAQCBjb25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtp
bmQpCiAgICAgICAgIHJldHVybiAiQmFkQ29uc3RhbnRDYWNoZSI7CiAgICAgY2FzZSBCYWRJbmRl
eGluZ1R5cGU6CiAgICAgICAgIHJldHVybiAiQmFkSW5kZXhpbmdUeXBlIjsKKyAgICBjYXNlIEJh
ZFR5cGVJbmZvRmxhZ3M6CisgICAgICAgIHJldHVybiAiQmFkVHlwZUluZm9GbGFncyI7CiAgICAg
Y2FzZSBPdmVyZmxvdzoKICAgICAgICAgcmV0dXJuICJPdmVyZmxvdyI7CiAgICAgY2FzZSBOZWdh
dGl2ZVplcm86CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhp
dEtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCmluZGV4
IDZmOGM1MTIwMDcwMDUwNWJmOTFkZWY3NDkwMDNlMzAwNWUzZjcxODYuLjcwMGQzODgxZjQxNzI4
MjFhZjg5N2VjY2Q1ZTllYThmNzUzNTE0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9FeGl0S2luZC5oCkBAIC0zNyw2ICszNyw3IEBAIGVudW0gRXhpdEtpbmQgOiB1aW50OF90
IHsKICAgICBCYWRDYWNoZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYW4gaW5saW5lIGNhY2hlIHdh
cyB3cm9uZy4KICAgICBCYWRDb25zdGFudENhY2hlLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBhIGNh
Y2hlIG9uIGEgd2VhayBjb25zdGFudCAodXN1YWxseSBhIHByb3RvdHlwZSkgd2FzIHdyb25nLgog
ICAgIEJhZEluZGV4aW5nVHlwZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYW4gaW5kZXhpbmcgdHlw
ZSB3YXMgd3JvbmcuCisgICAgQmFkVHlwZUluZm9GbGFncywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ug
d2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBhYm91dCB3aGF0IFR5cGVJbmZvIGZsYWdz
IHdlIHdvdWxkIHNlZS4KICAgICBPdmVyZmxvdywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugb2Ygb3Zl
cmZsb3cuCiAgICAgTmVnYXRpdmVaZXJvLCAvLyBXZSBleGl0ZWQgYmVjYXVzZSB3ZSBlbmNvdW50
ZXJlZCBuZWdhdGl2ZSB6ZXJvLgogICAgIEludDUyT3ZlcmZsb3csIC8vIFdlIGV4aXRlZCBiZWNh
dXNlIG9mIGFuIEludDUyIG92ZXJmbG93LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcAppbmRleCAyYmJmMzEzNDQ1NmE5YWU1
MmE2MTkyOGJjNGFlMDcxMzVlYTYxZTNjLi5lMmNiMDAwNDgzNzk0YmE5MmQ1MTBkY2Y1ZmE5OTQ4
ODVhMjNkYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJl
Y2lzZUp1bXBUYXJnZXRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
UHJlY2lzZUp1bXBUYXJnZXRzLmNwcApAQCAtNzQsOSArNzQsNiBAQCBzdGF0aWMgdm9pZCBnZXRK
dW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBJbnRlcnBy
ZXRlciogaQogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0ICsgY3VycmVudFsyXS51
Lm9wZXJhbmQpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBvcF9jaGVja19oYXNf
aW5zdGFuY2U6Ci0gICAgICAgIG91dC5hcHBlbmQoYnl0ZWNvZGVPZmZzZXQgKyBjdXJyZW50WzRd
LnUub3BlcmFuZCk7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2Ugb3BfbG9vcF9oaW50OgogICAg
ICAgICBvdXQuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCmluZGV4IDM3MmM3NGM2NmZjNGRmYTg2YjNiMzllOTc4OWVmN2Y3ZTcxMDk0ZmQuLmY0
MmZmODczMzVkZDhlNmY2YjEyNzhiOWZmNDIzZmM0YjE3YmY2ODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
CkBAIC0yMDA5LDE0ICsyMDA5LDEzIEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmNyZWF0ZVZh
cmlhYmxlKAogICAgIH0KIH0KIAotdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNrSGFz
SW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCog
YmFzZSwgTGFiZWwqIHRhcmdldCkKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
T3ZlcnJpZGVzSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBjb25zdHJ1
Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1ZSkKIHsKLSAgICBzaXplX3QgYmVnaW4g
PSBpbnN0cnVjdGlvbnMoKS5zaXplKCk7Ci0gICAgZW1pdE9wY29kZShvcF9jaGVja19oYXNfaW5z
dGFuY2UpOworICAgIGVtaXRPcGNvZGUob3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSk7CiAgICAg
aW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKHZhbHVlLT5pbmRleCgpKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYmFzZS0+
aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHRhcmdldC0+YmluZChiZWdpbiwg
aW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGNvbnN0
cnVjdG9yLT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoaGFzSW5zdGFuY2VW
YWx1ZS0+aW5kZXgoKSk7CisgICAgcmV0dXJuIGRzdDsKIH0KIAogLy8gSW5kaWNhdGVzIHRoZSBs
ZWFzdCB1cHBlciBib3VuZCBvZiByZXNvbHZlIHR5cGUgYmFzZWQgb24gbG9jYWwgc2NvcGUuIFRo
ZSBieXRlY29kZSBsaW5rZXIKQEAgLTIxODMsNiArMjE4MiwxNiBAQCBSZWdpc3RlcklEKiBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdEluc3RhbmNlT2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiB2YWx1ZQogICAgIHJldHVybiBkc3Q7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0SW5zdGFuY2VPZkN1c3RvbShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZh
bHVlLCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1
ZSkKK3sKKyAgICBlbWl0T3Bjb2RlKG9wX2luc3RhbmNlb2ZfY3VzdG9tKTsKKyAgICBpbnN0cnVj
dGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
dmFsdWUtPmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjb25zdHJ1Y3Rvci0+
aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGhhc0luc3RhbmNlVmFsdWUtPmlu
ZGV4KCkpOworICAgIHJldHVybiBkc3Q7Cit9CisKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0R2V0QnlJZChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5KQogewogICAgIG1fY29kZUJsb2NrLT5hZGRQcm9wZXJ0eUFj
Y2Vzc0luc3RydWN0aW9uKGluc3RydWN0aW9ucygpLnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXgg
M2UxNzg3ZGQ2NmY0MWFhZjdjMjQxNWQ3MGVkZjgzZGNjOWE3M2JiNC4uZmVlOGU4ZTkyYWJjMWFj
ZjhiYTRkY2QzYWFlZGJhMTBhNjViMzk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAtNTE5LDggKzUxOSw5
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW5jKFJlZ2lzdGVy
SUQqIHNyY0RzdCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREZWMoUmVnaXN0ZXJJRCogc3Jj
RHN0KTsKIAotICAgICAgICB2b2lkIGVtaXRDaGVja0hhc0luc3RhbmNlKFJlZ2lzdGVySUQqIGRz
dCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQqIGJhc2UsIExhYmVsKiB0YXJnZXQpOwor
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0T3ZlcnJpZGVzSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1
ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbnN0YW5jZU9mKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQqIGJhc2VQcm90b3R5cGUpOworICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0SW5zdGFuY2VPZkN1c3RvbShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVy
SUQqIHZhbHVlLCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFu
Y2VWYWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRUeXBlT2YoUmVnaXN0ZXJJRCogZHN0
LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRVbmFyeU9wKG9wX3R5cGVvZiwgZHN0LCBz
cmMpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lz
dGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiBiYXNlKSB7IHJldHVybiBlbWl0QmluYXJ5T3Ao
b3BfaW4sIGRzdCwgcHJvcGVydHksIGJhc2UsIE9wZXJhbmRUeXBlcygpKTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5k
ZXggOTk1NjFiYzdlZDU4OGI2ZjgwZDBlOWMxYzY2NjU0M2QxNjNhNmVkZS4uMTZjYjE1ZDBjMTE2
YWEyMmUxZmJkZWRiNjY4MjhlZWZlNTNiNTIwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMTYzMywyMiArMTYzMyw0
OSBAQCBSZWdpc3RlcklEKiBUaHJvd2FibGVCaW5hcnlPcE5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogCiBSZWdpc3RlcklEKiBJbnN0YW5jZU9mTm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IGRzdCkKIHsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3JjMSA9IGdlbmVyYXRvci5lbWl0Tm9k
ZUZvckxlZnRIYW5kU2lkZShtX2V4cHIxLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fZXhwcjIt
PmlzUHVyZShnZW5lcmF0b3IpKTsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3JjMiA9IGdlbmVy
YXRvci5lbWl0Tm9kZShtX2V4cHIyKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaGFzSW5zdGFu
Y2VWYWx1ZSA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJ
RD4gaXNPYmplY3QgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IGlzQ3VzdG9tID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOwogICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBwcm90b3R5cGUgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7Ci0gICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IGRzdFJlZyA9IGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwg
c3JjMS5nZXQoKSk7Ci0gICAgUmVmUHRyPExhYmVsPiB0YXJnZXQgPSBnZW5lcmF0b3IubmV3TGFi
ZWwoKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3IuZW1pdE5vZGVG
b3JMZWZ0SGFuZFNpZGUobV9leHByMSwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX2V4cHIyLT5p
c1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGNvbnN0cnVjdG9yID0g
Z2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcjIpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBkc3RS
ZWcgPSBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHZhbHVlLmdldCgpKTsKKyAgICBS
ZWZQdHI8TGFiZWw+IGN1c3RvbSA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgIFJlZlB0cjxM
YWJlbD4gZG9uZSA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgIFJlZlB0cjxMYWJlbD4gdHlw
ZUVycm9yID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CiAKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJl
c3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgZ2VuZXJh
dG9yLmVtaXRDaGVja0hhc0luc3RhbmNlKGRzdFJlZy5nZXQoKSwgc3JjMS5nZXQoKSwgc3JjMi5n
ZXQoKSwgdGFyZ2V0LmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdElzT2JqZWN0KGlzT2JqZWN0
LmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZGYWxz
ZShpc09iamVjdC5nZXQoKSwgdHlwZUVycm9yLmdldCgpKTsKIAogICAgIGdlbmVyYXRvci5lbWl0
RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKLSAgICBn
ZW5lcmF0b3IuZW1pdEdldEJ5SWQocHJvdG90eXBlLmdldCgpLCBzcmMyLmdldCgpLCBnZW5lcmF0
b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlKTsKKyAgICBnZW5lcmF0b3IuZW1pdEdl
dEJ5SWQoaGFzSW5zdGFuY2VWYWx1ZS5nZXQoKSwgY29uc3RydWN0b3IuZ2V0KCksIGdlbmVyYXRv
ci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5jZVN5bWJvbCk7CiAKICAgICBnZW5lcmF0
b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7
Ci0gICAgUmVnaXN0ZXJJRCogcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRJbnN0YW5jZU9mKGRzdFJl
Zy5nZXQoKSwgc3JjMS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1p
dExhYmVsKHRhcmdldC5nZXQoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBnZW5lcmF0b3Iu
ZW1pdE92ZXJyaWRlc0hhc0luc3RhbmNlKGlzQ3VzdG9tLmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQo
KSwgaGFzSW5zdGFuY2VWYWx1ZS5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Np
b25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9y
LmVtaXRKdW1wSWZUcnVlKGlzQ3VzdG9tLmdldCgpLCBjdXN0b20uZ2V0KCkpOworCisgICAgZ2Vu
ZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5k
KCkpOworICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIGNvbnN0cnVj
dG9yLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlKTsKKwor
ICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBk
aXZvdEVuZCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdEluc3RhbmNlT2YoZHN0UmVnLmdldCgpLCB2
YWx1ZS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0SnVtcChk
b25lLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwodHlwZUVycm9yLmdldCgpKTsK
KyAgICBnZW5lcmF0b3IuZW1pdFRocm93VHlwZUVycm9yKCJSaWdodCBoYW5kIHNpZGUgb2YgaW5z
dGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0Iik7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGN1
c3RvbS5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCks
IGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRJbnN0YW5jZU9m
Q3VzdG9tKGRzdFJlZy5nZXQoKSwgdmFsdWUuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgpLCBoYXNJ
bnN0YW5jZVZhbHVlLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoZG9uZS5nZXQo
KSk7CisKKyAgICByZXR1cm4gZHN0UmVnLmdldCgpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gTG9naWNhbE9wTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggMzYxMzE3ODc5Y2M3MmJmNTQ5OGJlYjM5OGJkYzA4NWM1
NjY1YzA2Ny4uYjJmZmI3YWVhNjExYTY2ZGM4MjRlZDJlYTBhYjJkM2Q0MTNiNTQ1NSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaApAQCAtMjQ1MywxMiArMjQ1MywxNyBAQCBib29sIEFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVy
TGltaQogICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Ci0gICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgotICAgICAgICAvLyBTYWRseSwgd2UgZG9uJ3Qg
cHJvcGFnYXRlIHRoZSBmYWN0IHRoYXQgd2UndmUgZG9uZSBDaGVja0hhc0luc3RhbmNlCisgICAg
Y2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBl
KFNwZWNCb29sZWFuKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIElu
c3RhbmNlT2Y6Ci0gICAgICAgIC8vIEFnYWluLCBzYWRseSwgd2UgZG9uJ3QgcHJvcGFnYXRlIHRo
ZSBmYWN0IHRoYXQgd2UndmUgZG9uZSBJbnN0YW5jZU9mCisgICAgICAgIC8vIFNhZGx5LCB3ZSBk
b24ndCBwcm9wYWdhdGUgdGhlIGZhY3QgdGhhdCB3ZSd2ZSBkb25lIEluc3RhbmNlT2YKKyAgICAg
ICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CiAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0
VHlwZShTcGVjQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCkBAIC0yNTE1
LDYgKzI1MjAsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgQ291bnRFeGVj
dXRpb246CiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKICAgICBjYXNlIENoZWNrVGllclVw
QXRSZXR1cm46CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBDb3B5UmVzdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNGEwZWQxMTI0Mzg5MzlkZDAwZWUxNDA1NTkwNTQ3ZWQ3
OGIwYWZhYi4uMjZmYzJmNDM4YjFjODRhNDU3ODc2NjMzMGU2MDhmODk3M2RmN2IzMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTM0
OTcsOSArMzQ5NywxNSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVk
IGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY2hlY2tfdGR6KTsKICAgICAgICAg
fQogCi0gICAgICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgotICAgICAgICAgICAgYWRk
VG9HcmFwaChDaGVja0hhc0luc3RhbmNlLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7Ci0gICAgICAgICAgICBORVhUX09QQ09ERShvcF9jaGVj
a19oYXNfaW5zdGFuY2UpOworICAgICAgICBjYXNlIG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2U6
IHsKKyAgICAgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRIYXNJbnN0YW5jZVN5bWJvbEZ1bmN0
aW9uID0gbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihjdXJy
ZW50Q29kZU9yaWdpbigpKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24o
KTsKKworICAgICAgICAgICAgTm9kZSogY29uc3RydWN0b3IgPSBnZXQoVmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIGhh
c0luc3RhbmNlVmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQpKTsKKworICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFwaChPdmVycmlkZXNIYXNJbnN0YW5j
ZSwgT3BJbmZvKG1fZ3JhcGguZnJlZXplKGRlZmF1bHRIYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9u
KSksIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVZhbHVlKSk7CisgICAgICAgICAgICBORVhUX09Q
Q09ERShvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlKTsKKyAgICAgICAgfQogCiAgICAgICAgIGNh
c2Ugb3BfaW5zdGFuY2VvZjogewogICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKQEAgLTM1MDcsNyAr
MzUxMywxNSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0
KQogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKSwgYWRkVG9HcmFwaChJbnN0YW5jZU9mLCB2YWx1ZSwgcHJvdG90eXBlKSk7CiAg
ICAgICAgICAgICBORVhUX09QQ09ERShvcF9pbnN0YW5jZW9mKTsKICAgICAgICAgfQotICAgICAg
ICAgICAgCisKKyAgICAgICAgY2FzZSBvcF9pbnN0YW5jZW9mX2N1c3RvbTogeworICAgICAgICAg
ICAgTm9kZSogdmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIGNvbnN0cnVjdG9yID0gZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisgICAgICAgICAg
ICBOb2RlKiBoYXNJbnN0YW5jZVZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bNF0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKEluc3RhbmNlT2ZD
dXN0b20sIHZhbHVlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VWYWx1ZSkpOworICAgICAgICAg
ICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZl9jdXN0b20pOworICAgICAgICB9CisKICAgICAg
ICAgY2FzZSBvcF9pc191bmRlZmluZWQ6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CiAgICAg
ICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQpLCBhZGRUb0dyYXBoKElzVW5kZWZpbmVkLCB2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDFlMGNjMDgwNjI0ZWUyNzJhMjZj
OWIyZmFlZTc5NDhhOGI0ZTliODcuLmNmZWU3NzVlOWY3N2Q3OTllYmM0ZDM5ZjRhMDIzYjlkNjIy
ZmEyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0
aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAKQEAgLTEyOCw4ICsxMjgsOSBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9w
Y29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ug
b3BfcHJvZmlsZV90eXBlOgogICAgIGNhc2Ugb3BfcHJvZmlsZV9jb250cm9sX2Zsb3c6CiAgICAg
Y2FzZSBvcF9tb3Y6Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CisgICAgY2FzZSBv
cF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgogICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjoKKyAgICBj
YXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOgogICAgIGNhc2Ugb3BfaXNfdW5kZWZpbmVkOgogICAg
IGNhc2Ugb3BfaXNfYm9vbGVhbjoKICAgICBjYXNlIG9wX2lzX251bWJlcjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggNDE3ZDA2ZjcwMzliNGJiZmQyOGVh
OWZmYzhmMTU4YzhlNDdlNjEwNy4uYjM2M2U5NjE0YmJiNDExNmUwOGU1NWM3NmU2YTUzYmU0MjJl
ZTM1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTcy
OCw5ICs3MjgsMTQgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwg
Y29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgcmVhZChKU0Nl
bGxfc3RydWN0dXJlSUQpOwogICAgICAgICByZXR1cm47CiAKLSAgICBjYXNlIENoZWNrSGFzSW5z
dGFuY2U6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAgIHJlYWQoSlNDZWxs
X3R5cGVJbmZvRmxhZ3MpOwotICAgICAgICBkZWYoSGVhcExvY2F0aW9uKENoZWNrSGFzSW5zdGFu
Y2VMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5v
ZGUpKTsKKyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihDaGVja1R5cGVJbmZvRmxhZ3NMb2MsIEpT
Q2VsbF90eXBlSW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKKyAgICAgICAg
cmVhZChKU0NlbGxfdHlwZUluZm9GbGFncyk7CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oT3Zl
cnJpZGVzSGFzSW5zdGFuY2VMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEo
KSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBJbnN0YW5j
ZU9mOgpAQCAtNzM4LDYgKzc0MywxMSBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBO
b2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAg
ICBkZWYoSGVhcExvY2F0aW9uKEluc3RhbmNlT2ZMb2MsIEpTQ2VsbF9zdHJ1Y3R1cmVJRCwgbm9k
ZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICBy
ZXR1cm47CiAKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAgICAgIHJlYWQoV29ybGQp
OworICAgICAgICB3cml0ZShIZWFwKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBQdXRT
dHJ1Y3R1cmU6CiAgICAgICAgIHdyaXRlKEpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CiAgICAgICAgIHdy
aXRlKEpTQ2VsbF90eXBlSW5mb1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwCmluZGV4IGIyNmUwYTVmMzgzYTAwYTAyZWJmMjhlMTg1NTc5MjM5NDlhYmY3NzIuLjlh
NGNmMjAxZjAxNmNjMGRjMTRjZDFiZjFkNWM0NWNmYjAwYmVmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTE0Miw4ICsxNDIsOSBAQCBib29sIGRvZXNHQyhH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBj
YXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgotICAgIGNhc2Ug
Q2hlY2tIYXNJbnN0YW5jZToKKyAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgIGNh
c2UgSW5zdGFuY2VPZjoKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAgY2FzZSBJc1Vu
ZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVhbjoKICAgICBjYXNlIElzTnVtYmVyOgpAQCAtMTgx
LDYgKzE4Miw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBj
YXNlIENoZWNrSW5Cb3VuZHM6CiAgICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgogICAg
IGNhc2UgQ2hlY2s6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgY2FzZSBNdWx0
aUdldEJ5T2Zmc2V0OgogICAgIGNhc2UgVmFsdWVSZXA6CiAgICAgY2FzZSBEb3VibGVSZXA6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCBiMjE5NDUy
YTkzMzg1N2FkMWI4ZGUyMWUzNjJlMDkyNmRjMzBmMzViLi4wYWNjZjEzZDg4MzA4ZjFhMDYwNzdl
ODc1ZDc0MjY0M2FmMDc1NzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAKQEAgLTEwOTUsMTAgKzEwOTUsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IGZpeEVkZ2U8RnVuY3Rpb25Vc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZTogeworICAg
ICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLm5vZGUoKS0+aXNDZWxsQ29uc3RhbnQoKSkgewor
ICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDIoKS5ub2RlKCktPmFzQ2VsbCgpICE9IG1f
Z3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmZ1bmN0aW9uUHJv
dG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkpIHsKKworICAgICAgICAgICAgICAgICAgICBt
X2dyYXBoLmNvbnZlcnRUb0NvbnN0YW50KG5vZGUsIGpzQm9vbGVhbih0cnVlKSk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGlmICghbV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZFR5cGVJ
bmZvRmxhZ3MpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEhlcmUgd2Ugb3B0aW1pc3RpY2Fs
bHkgYXNzdW1lIHRoYXQgd2Ugd2lsbCBub3Qgc2VlIGFuIGJvdW5kL0MtQVBJIGZ1bmN0aW9uIGhl
cmUuCisgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9pbmRl
eEluQmxvY2ssIFNwZWNOb25lLCBDaGVja1R5cGVJbmZvRmxhZ3MsIG5vZGUtPm9yaWdpbiwgT3BJ
bmZvKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCBFZGdlKG5vZGUtPmNoaWxkMSgpLm5v
ZGUoKSwgQ2VsbFVzZSkpOworICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmNvbnZlcnRUb0Nv
bnN0YW50KG5vZGUsIGpzQm9vbGVhbihmYWxzZSkpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZpeEVk
Z2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgICAgICBj
YXNlIENoZWNrQ2VsbDoKLSAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgICAgICBj
YXNlIENyZWF0ZVRoaXM6CiAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAgICAgICBjYXNl
IEdldEJ1dHRlcmZseVJlYWRPbmx5OiB7CkBAIC0xMTU5LDcgKzExNzgsMTEgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2UgSW5zdGFu
Y2VPZkN1c3RvbToKKyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkp
OworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBJbjogewogICAgICAgICAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBhdCBzb21lIHBvaW50IGhhdmUgYXJyYXkgcHJvZmlsaW5nIG9u
IG9wX2luLCBpbiB3aGljaAogICAgICAgICAgICAgLy8gY2FzZSB3ZSB3b3VsZCBiZSBhYmxlIHRv
IHR1cm4gdGhpcyBpbnRvIGEga2luZCBvZiBHZXRCeVZhbC4KQEAgLTE0MDUsNiArMTQyOCw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAgICAgICAgIGNhc2UgVmFySW5q
ZWN0aW9uV2F0Y2hwb2ludDoKICAgICAgICAgY2FzZSBDYWxsOgorICAgICAgICBjYXNlIENoZWNr
VHlwZUluZm9GbGFnczoKICAgICAgICAgY2FzZSBUYWlsQ2FsbElubGluZWRDYWxsZXI6CiAgICAg
ICAgIGNhc2UgQ29uc3RydWN0OgogICAgICAgICBjYXNlIENhbGxWYXJhcmdzOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCmluZGV4IDY5MjM2NTYzOTYx
MWZlYWY3M2Y0ZTg2MTU4YTAwMWIzNmQxMzUyN2IuLjU1ZDg0Y2Y1NjVhMTI2MmEzZTE3OTIyZGQ4
ZmJkMjY4ZmU4OTdmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SGVhcExvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBM
b2NhdGlvbi5jcHAKQEAgLTk1LDkgKzk1LDEzIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0
cmVhbSYgb3V0LCBMb2NhdGlvbktpbmQga2luZCkKICAgICBjYXNlIEJ1dHRlcmZseVJlYWRPbmx5
TG9jOgogICAgICAgICBvdXQucHJpbnQoIkJ1dHRlcmZseVJlYWRPbmx5TG9jIik7CiAgICAgICAg
IHJldHVybjsKLSAgICAgICAgCi0gICAgY2FzZSBDaGVja0hhc0luc3RhbmNlTG9jOgotICAgICAg
ICBvdXQucHJpbnQoIkNoZWNrSGFzSW5zdGFuY2VMb2MiKTsKKworICAgIGNhc2UgQ2hlY2tUeXBl
SW5mb0ZsYWdzTG9jOgorICAgICAgICBvdXQucHJpbnQoIkNoZWNrVHlwZUluZm9GbGFnc0xvYyIp
OworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlTG9jOgor
ICAgICAgICBvdXQucHJpbnQoIk92ZXJyaWRlc0hhc0luc3RhbmNlTG9jIik7CiAgICAgICAgIHJl
dHVybjsKICAgICAgICAgCiAgICAgY2FzZSBDbG9zdXJlVmFyaWFibGVMb2M6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAppbmRleCA0OTVkMzAwM2NlYTZjMWM1
N2M1MDJkZTRjMWVmNGUxMTVhYmJlMGIwLi5iODVmYTI2MDQ5MWQ0ZDMxOTIxYTRjYzZjNzBhMmM4
ZDJiZTRlODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBM
b2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9u
LmgKQEAgLTQwLDcgKzQwLDggQEAgZW51bSBMb2NhdGlvbktpbmQgewogICAgIEFycmF5TGVuZ3Ro
TG9jLAogICAgIEJ1dHRlcmZseUxvYywKICAgICBCdXR0ZXJmbHlSZWFkT25seUxvYywKLSAgICBD
aGVja0hhc0luc3RhbmNlTG9jLAorICAgIENoZWNrVHlwZUluZm9GbGFnc0xvYywKKyAgICBPdmVy
cmlkZXNIYXNJbnN0YW5jZUxvYywKICAgICBDbG9zdXJlVmFyaWFibGVMb2MsCiAgICAgRGlyZWN0
QXJndW1lbnRzTG9jLAogICAgIEdldHRlckxvYywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2Rl
LmgKaW5kZXggZjk2YTdlZmY4ZjY2ZGM4ZmQxMmJiNTVjNjJjM2Q1ZTM1YTQ4NjVjMS4uZmQ5ODY1
OGE4MmMzNTJhOGI1YTg3NTI3M2RmNWJhNWFjMDQxMTE5YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKQEAgLTEzNTQsNiArMTM1NCw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAg
ICAgICAgIHN3aXRjaCAob3AoKSkgewogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKKyAgICAgICAg
Y2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAgICAgICAgY2FzZSBOZXdGdW5jdGlvbjoKICAg
ICAgICAgY2FzZSBOZXdBcnJvd0Z1bmN0aW9uOgogICAgICAgICBjYXNlIENyZWF0ZUFjdGl2YXRp
b246CkBAIC0xNDE1LDYgKzE0MTYsMTcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxVbmlxdWVkU3RyaW5nSW1wbCo+KG1fb3BJbmZvKTsKICAgICB9CiAK
KyAgICBib29sIGhhc1R5cGVJbmZvT3BlcmFuZCgpCisgICAgeworICAgICAgICByZXR1cm4gb3Ao
KSA9PSBDaGVja1R5cGVJbmZvRmxhZ3M7CisgICAgfQorCisgICAgdW5zaWduZWQgdHlwZUluZm9P
cGVyYW5kKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNUeXBlSW5mb09wZXJhbmQoKSAmJiBt
X29wSW5mbyA8PSBVQ0hBUl9NQVgpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KG1fb3BJbmZvKTsKKyAgICB9CisKICAgICBib29sIGhhc1RyYW5zaXRpb24oKQogICAgIHsK
ICAgICAgICAgc3dpdGNoIChvcCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKaW5kZXggMmVkM2NlNGRhYTRlNzgwZjA2OWVjYjliOWFhYzU4NmYzODljMWFiOS4uNWMw
YjlmY2MzM2I4NDFhOTI0ODExYzg2NzBhZTVkOTU4YWE0OTcyNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMjIyLDYgKzIyMiw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhDaGVja0JhZENlbGwsIE5vZGVNdXN0R2VuZXJh
dGUpIFwKICAgICBtYWNybyhDaGVja0luQm91bmRzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAg
bWFjcm8oQ2hlY2tJZGVudCwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKENoZWNrVHlw
ZUluZm9GbGFncywgTm9kZU11c3RHZW5lcmF0ZSkgLyogVGFrZXMgYW4gT3BJbmZvIHdpdGggdGhl
IGZsYWdzIHlvdSB3YW50IHRvIHRlc3QgYXJlIHNldCAqL1wKICAgICBcCiAgICAgLyogT3B0aW1p
emF0aW9ucyBmb3IgYXJyYXkgbXV0YXRpb24uICovXAogICAgIG1hY3JvKEFycmF5UHVzaCwgTm9k
ZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXApAQCAtMjc5LDggKzI4MCw5IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhCcmVha3BvaW50LCBOb2RlTXVz
dEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHJvZmlsZVdpbGxDYWxsLCBOb2RlTXVzdEdlbmVyYXRl
KSBcCiAgICAgbWFjcm8oUHJvZmlsZURpZENhbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBt
YWNybyhDaGVja0hhc0luc3RhbmNlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oT3Zl
cnJpZGVzSGFzSW5zdGFuY2UsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikg
XAogICAgIG1hY3JvKEluc3RhbmNlT2YsIE5vZGVSZXN1bHRCb29sZWFuKSBcCisgICAgbWFjcm8o
SW5zdGFuY2VPZkN1c3RvbSwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRCb29sZWFuKSBc
CiAgICAgbWFjcm8oSXNVbmRlZmluZWQsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8o
SXNCb29sZWFuLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzTnVtYmVyLCBOb2Rl
UmVzdWx0Qm9vbGVhbikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCA0MGNlYzc2MDMyNDUx
MTAxMjk2NTg5OTJlN2E5YjJjNGM5ZTk1MGZlLi44YzI4Y2I1N2U1MWViNmJlYjI2ZWU5ZjhkNzg4
NjkwOTNjODhlZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMzk4LDcgKzM5OCw5IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKICAgICAgICAgY2FzZSBD
b21wYXJlRXE6CiAgICAgICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgorICAgICAgICBjYXNlIE92
ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgICAgICBjYXNlIEluc3RhbmNlT2Y6CisgICAgICAgIGNh
c2UgSW5zdGFuY2VPZkN1c3RvbToKICAgICAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICAgICAg
Y2FzZSBJc0Jvb2xlYW46CiAgICAgICAgIGNhc2UgSXNOdW1iZXI6CkBAIC01NjUsNiArNTY3LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVBc0ludDMyOgogICAgICAgICBjYXNlIEdl
dExvY2FsVW5saW5rZWQ6CiAgICAgICAgIGNhc2UgQ2hlY2tBcnJheToKKyAgICAgICAgY2FzZSBD
aGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgICAgIGNhc2Ug
QXJyYXlpZnlUb1N0cnVjdHVyZToKICAgICAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKQEAg
LTY4MCw3ICs2ODMsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgog
ICAgICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxv
dzoKLSAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgICAgICBjYXNlIFRocm93UmVm
ZXJlbmNlRXJyb3I6CiAgICAgICAgIGNhc2UgRm9yY2VPU1JFeGl0OgogICAgICAgICBjYXNlIFNl
dEFyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZl
VG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aAppbmRleCBmNWM2OGRiODI0ZTE1ZmE3ZDY2NzhhMmYzZGQ2NmIzMDRhYWQyMzk2Li4yOGY5MTY3
YjE5OWRkOTFiOGY5YjFkNGM2YjFmMGVkZDg1ZmI5N2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtMjQyLDggKzI0MiwxMCBAQCBib29sIHNh
ZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgog
ICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgotICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToK
KyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKKyAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3Rh
bmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CiAg
ICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVhbjoKICAgICBjYXNlIElzTnVt
YmVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAppbmRleCAyNzI3MzRkMmZiNjg2NWQ4NzAxMTQwYzcxNmVhNGE1OGY4MmEyYmM1Li4zOGVmMTll
M2ViODA1ZjFhNWEyNDNkMzQwYzViMjM5OWY0MDYzOWZlIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjczNyw2ICsyNzM3LDE3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mRm9yT2JqZWN0KE5vZGUqLCBH
UFJSZWcgdmFsdWVSZWcsIEdQUlJlZyBwCiAgICAgcHV0UmVzdWx0LmxpbmsoJm1faml0KTsKIH0K
IAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyhOb2RlKiBu
b2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworCisgICAgc3BlY3VsYXRp
b25DaGVjayhCYWRUeXBlSW5mb0ZsYWdzLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hU
ZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQ
UiwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbTMyKG5vZGUtPnR5cGVJbmZvT3BlcmFuZCgpKSkpOworCisgICAgbm9SZXN1bHQobm9kZSk7
Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mKE5vZGUqIG5vZGUp
CiB7CiAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKSB7CkBA
IC0yOTA1LDYgKzI5MTYsNDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRk
KE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlSW5zdGFuY2VPZkN1c3RvbShOb2RlKiBub2RlKQoreworICAgIC8vIFdlIGNvdWxkIGRvIHNv
bWV0aGluZyBzbWFydGVyIGhlcmUgYnV0IHRoaXMgY2FzZSBpcyBjdXJyZW50bHkgc3VwZXIgcmFy
ZSBhbmQgdW5sZXNzCisgICAgLy8gU3ltYm9sLmhhc0luc3RhbmNlIGJlY29tZXMgcG9wdWxhciB3
aWxsIGxpa2VseSByZW1haW4gdGhhdCB3YXkuCisKKyAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgY29uc3RydWN0
b3IodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIEpTVmFsdWVPcGVyYW5kIGhhc0luc3RhbmNl
VmFsdWUodGhpcywgbm9kZS0+Y2hpbGQzKCkpOworCisgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdz
ID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKyAgICBHUFJSZWcgY29uc3RydWN0b3JHUFIgPSBjb25z
dHJ1Y3Rvci5ncHIoKTsKKyAgICBKU1ZhbHVlUmVncyBoYXNJbnN0YW5jZVJlZ3MgPSBoYXNJbnN0
YW5jZVZhbHVlLmpzVmFsdWVSZWdzKCk7CisKKyNpZiBDUFUoWDg2KQorICAgIC8vIE5vdGUgdGhh
dCB3ZSBpbnRlbnRpb25hbGx5IGNsb2JiZXIgdGhlIGhhc0luc3RhbmNlVmFsdWUgcmVnaXN0ZXIg
aGVyZSBvbiB4ODYgYmVjYXVzZSB3ZQorICAgIC8vIGFyZSBzaG9ydCBvbiByZWdpc3RlcnMuIFRo
aXMgaXMgdmFsaWQgYmVjYXVzZSB3ZSBrbm93IEluc3RhbmNlT2ZDdXN0b20gaXMgdGhlIGxhc3Qg
dXNlCisgICAgLy8gb2YgdGhlIEdldEJ5SWQgd2hpY2ggcHJvZHVjZXMgaXQuCisgICAgUkVMRUFT
RV9BU1NFUlQoY2FuUmV1c2Uobm9kZS0+Y2hpbGQzKCkpKTsKKyAgICBHUFJUZW1wb3JhcnkgcmVz
dWx0KHRoaXMpOworICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZSA9IG1faml0Lmp1bXAoKTsKKworICAgIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKAorICAgICAgICBzbG93UGF0aENhbGwoc2xvd0Nhc2UsIHRoaXMsIG9w
ZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIGhhc0luc3RhbmNlUmVncywgdmFsdWVSZWdzLCBjb25z
dHJ1Y3RvckdQUiwgaGFzSW5zdGFuY2VSZWdzKSk7CisgICAgbV9qaXQubW92ZShoYXNJbnN0YW5j
ZVJlZ3MucGF5bG9hZEdQUigpLCByZXN1bHRHUFIpOworCisgICAgdW5ibGVzc2VkQm9vbGVhblJl
c3VsdChyZXN1bHRHUFIsIG5vZGUpOworI2Vsc2UKKworICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3Mo
KTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNlID0gbV9qaXQuanVtcCgpOwor
CisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCisgICAgICAgIHNsb3dQYXRoQ2FsbChzbG93Q2Fz
ZSwgdGhpcywgb3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwgcmVzdWx0UmVncywgdmFsdWVSZWdz
LCBjb25zdHJ1Y3RvckdQUiwgaGFzSW5zdGFuY2VSZWdzKSk7CisKKyAgICB1bmJsZXNzZWRCb29s
ZWFuUmVzdWx0KHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCBub2RlKTsKKyNlbmRpZgorfQorCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhBZGQoTm9kZSogbm9kZSkKIHsKICAgICBz
d2l0Y2ggKG5vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDg2NjBiMDRmMDhjMGVhZmM1NTU0NjVlODM0
ZDMwOGUxZDQzYjNlMWEuLjAyMzdkZDc3ODVhZTU1YzA3NWU5ZjYzZjk2OTE2OTFjNmExZTgwZTQg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAg
LTcyNyw2ICs3MjcsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW5zdGFuY2VP
ZkZvck9iamVjdChOb2RlKiwgR1BSUmVnIHZhbHVlUmVnLCBHUFJSZWcgcHJvdG90eXBlUmVnLCBH
UFJSZWcgc2NyYXRjaEFuZFJlc3VsdFJlZywgR1BSUmVnIHNjcmF0Y2gyUmVnKTsKICAgICB2b2lk
IGNvbXBpbGVJbnN0YW5jZU9mKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mQ3Vz
dG9tKE5vZGUqKTsKICAgICAKICAgICB2b2lkIGVtaXRDYWxsKE5vZGUqKTsKICAgICAKQEAgLTE0
NDMsNiArMTQ0NCwxNSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gY2FsbE9wZXJh
dGlvbihvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BSKCksIGFyZzEucGF5bG9hZEdQUigpLCBh
cmcyLnBheWxvYWRHUFIoKSk7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJl
ZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMpCisgICAgeworICAgICAgICBtX2ppdC5z
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAgICAgIHJl
dHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9CisgICAg
SklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSk9KIG9wZXJh
dGlvbiwgR1BSUmVnIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJnMSwgR1BSUmVnIGFyZzIsIEpTVmFs
dWVSZWdzIGFyZzMpCisgICAgeworICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRp
b24sIHJlc3VsdCwgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzIsIGFyZzMucGF5bG9hZEdQUigpKTsK
KyAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FQ0Mgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIp
CiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
YXJnMik7CkBAIC0xNzY2LDYgKzE3NzYsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdC50YWdHUFIoKSwgcmVzdWx0LnBheWxvYWRHUFIo
KSwgYXJnMS50YWdHUFIoKSwgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCksIGFyZzIu
cGF5bG9hZEdQUigpKTsKICAgICB9CiAKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJS
ZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BS
UmVnIGFyZzIsIEdQUlJlZyBhcmczVGFnLCBHUFJSZWcgYXJnM1BheWxvYWQpCisgICAgeworICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9B
UkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzIsIEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzNQ
YXlsb2FkLCBhcmczVGFnKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3Bl
cmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOworICAgIH0KKyAgICBKSVRDb21waWxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBKU1Zh
bHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEdQUlJlZyBhcmcyLCBKU1ZhbHVlUmVn
cyBhcmczKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCBy
ZXN1bHQudGFnR1BSKCksIHJlc3VsdC5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzEu
cGF5bG9hZEdQUigpLCBhcmcyLCBhcmczLnRhZ0dQUigpLCBhcmczLnBheWxvYWRHUFIoKSk7Cisg
ICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FQ0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwg
R1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQpCiAgICAgewog
ICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMlBheWxv
YWQsIGFyZzJUYWcpOwpAQCAtMjIwNSw2ICsyMjI1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBj
b21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSopOwogCisgICAgdm9pZCBjb21waWxlQ2hlY2tUeXBl
SW5mb0ZsYWdzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDaGVja0lkZW50KE5vZGUqKTsKICAg
ICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA0NWI5NTQz
ZWIxZmEwNmUyNTc4YWY0ZGNmYjgzYjViNjc4M2UzNDY2Li41MGRlMDQ1YzdmNDIzZjZlNjUwZjU2
ZjNmM2U1NTNlNjM1MjczYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTQyMDUsMTcgKzQyMDUsNDggQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAg
ICB9CiAKLSAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6IHsKKyAgICBjYXNlIENoZWNrVHlwZUlu
Zm9GbGFnczogeworICAgICAgICBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKG5vZGUpOworICAg
ICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOiB7CisK
KyAgICAgICAgTm9kZSogaGFzSW5zdGFuY2VWYWx1ZU5vZGUgPSBub2RlLT5jaGlsZDIoKS5ub2Rl
KCk7CisgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uID0ganND
YXN0PEpTRnVuY3Rpb24qPihub2RlLT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpKTsKKworICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3REZWZhdWx0aGFzSW5zdGFuY2VWYWx1ZTsKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaGFzSW5zdGFuY2VWYWx1ZU5vdENlbGw7CiAgICAgICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAg
ICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlKHRoaXMpOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCBo
YXNJbnN0YW5jZVZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgR1BSVGVtcG9y
YXJ5IHJlc3VsdCh0aGlzKTsKIAotICAgICAgICAvLyBTcGVjdWxhdGUgdGhhdCBiYXNlICdJbXBs
ZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlJy4KLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhVbmNv
dW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDgoCi0gICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6WmVybywgCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhiYXNlLmdwcigpLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIAotICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlKSkpOworICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCi0g
ICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICAvLyBJZiB3ZSBoYXZlIHByb3ZlbiB0aGF0
IHRoZSBjb25zdHJ1Y3RvcidzIFN5bWJvbC5oYXNJbnN0YW5jZSB3aWxsIGFsd2F5cyBiZSB0aGUg
b25lIG9uCisgICAgICAgIC8vIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2Vd
IHRoZW4gd2UgZG9uJ3QgbmVlZCBhIHJ1bnRpbWUgY2hlY2sgaGVyZS4gV2UgZG9uJ3Qgd29ycnkK
KyAgICAgICAgLy8gYWJvdXQgdGhlIGNhc2Ugd2hlcmUgdGhlIGNvbnN0cnVjdG9yJ3MgU3ltYm9s
Lmhhc0luc3RhbmNlIGlzIGEgY29uc3RhbnQgYnV0IGlzIG5vdCB0aGUgZGVmYXVsdAorICAgICAg
ICAvLyBvbmUgYXMgZml4dXAgc2hvdWxkIGhhdmUgY29udmVydGVkIHRoaXMgY2hlY2sgdG8gdHJ1
ZS4KKyAgICAgICAgQVNTRVJUKCFoYXNJbnN0YW5jZVZhbHVlTm9kZS0+aXNDZWxsQ29uc3RhbnQo
KSB8fCBkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9PSBoYXNJbnN0YW5jZVZhbHVlTm9kZS0+
YXNDZWxsKCkpOworICAgICAgICBpZiAoIWhhc0luc3RhbmNlVmFsdWVOb2RlLT5pc0NlbGxDb25z
dGFudCgpKSB7CisKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGhhc0luc3RhbmNlVmFsdWVSZWdz
ID0gaGFzSW5zdGFuY2VWYWx1ZS5qc1ZhbHVlUmVncygpOworICAgICAgICAgICAgaGFzSW5zdGFu
Y2VWYWx1ZU5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoaGFzSW5zdGFuY2VWYWx1ZVJl
Z3MpOworICAgICAgICAgICAgbm90RGVmYXVsdGhhc0luc3RhbmNlVmFsdWUgPSBtX2ppdC5icmFu
Y2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBoYXNJbnN0YW5jZVZhbHVlUmVncy5wYXls
b2FkR1BSKCksIFRydXN0ZWRJbW1QdHIoZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24pKTsKKyAg
ICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoYXQgY29uc3RydWN0b3IgJ0ltcGxlbWVudHNE
ZWZhdWx0SGFzSW5zdGFuY2UnLgorICAgICAgICBtX2ppdC50ZXN0OChNYWNyb0Fzc2VtYmxlcjo6
WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5m
b0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNE
ZWZhdWx0SGFzSW5zdGFuY2UpLCByZXN1bHRHUFIpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOworCisgICAgICAgIGlmICghaGFzSW5zdGFuY2VWYWx1
ZU5vZGUtPmlzQ2VsbENvbnN0YW50KCkpIHsKKyAgICAgICAgICAgIGhhc0luc3RhbmNlVmFsdWVO
b3RDZWxsLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG5vdERlZmF1bHRoYXNJbnN0YW5jZVZh
bHVlLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG1vdmVUcnVlVG8ocmVzdWx0R1BSKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGRvbmUubGluaygmbV9qaXQpOworICAgICAgICBib29sZWFuUmVz
dWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtNDIyNCw2
ICs0MjU1LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOiB7CisgICAg
ICAgIGNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9
CisKICAgICBjYXNlIElzVW5kZWZpbmVkOiB7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVl
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCmluZGV4IDM4N2VkNmNmNjU2ZDVhOTg4ZjdhODY5ZWFkODg1YTk3MTk1YTA4NDMuLjc2Mzlk
OWJjOWRiYWY1ZmZmMTNjZjI1ZTFjZGIyOWM3ZTU1ZDM0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNDE5NSwxNyArNDE5
NSw0MiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZTogeworICAgIGNhc2Ug
Q2hlY2tUeXBlSW5mb0ZsYWdzOiB7CisgICAgICAgIGNvbXBpbGVDaGVja1R5cGVJbmZvRmxhZ3Mo
bm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5z
dGFuY2U6IHsKKworICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVZhbHVlTm9kZSA9IG5vZGUtPmNo
aWxkMigpLm5vZGUoKTsKKyAgICAgICAgSlNGdW5jdGlvbiogZGVmYXVsdEhhc0luc3RhbmNlRnVu
Y3Rpb24gPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KG5vZGUtPmNlbGxPcGVyYW5kKCktPnZhbHVlKCkp
OworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdERlZmF1bHQ7CiAgICAgICAgIFNw
ZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBH
UFJUZW1wb3Jhcnkgc3RydWN0dXJlKHRoaXMpOworICAgICAgICBKU1ZhbHVlT3BlcmFuZCBoYXNJ
bnN0YW5jZVZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzKTsKIAotICAgICAgICAvLyBTcGVjdWxhdGUgdGhhdCBiYXNlICdJbXBsZW1l
bnRzRGVmYXVsdEhhc0luc3RhbmNlJy4KLSAgICAgICAgc3BlY3VsYXRpb25DaGVjayhVbmNvdW50
YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDgoCi0gICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6WmVybywgCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhiYXNlLmdwcigpLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIAotICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlKSkpOworICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCi0gICAg
ICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICAvLyBJZiB3ZSBoYXZlIHByb3ZlbiB0aGF0IHRo
ZSBjb25zdHJ1Y3RvcidzIFN5bWJvbC5oYXNJbnN0YW5jZSB3aWxsIGFsd2F5cyBiZSB0aGUgb25l
IG9uIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdCisgICAgICAgIC8vIHRo
ZW4gd2UgZG9uJ3QgbmVlZCBhIHJ1bnRpbWUgY2hlY2sgaGVyZS4gV2UgZG9uJ3Qgd29ycnkgYWJv
dXQgdGhlIGNhc2Ugd2hlcmUgdGhlIGNvbnN0cnVjdG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIGlz
IGEgY29uc3RhbnQKKyAgICAgICAgLy8gYnV0IGlzIG5vdCB0aGUgZGVmYXVsdCBvbmUgYXMgZml4
dXAgc2hvdWxkIGhhdmUgY29udmVydGVkIHRoaXMgY2hlY2sgdG8gdHJ1ZS4KKyAgICAgICAgQVNT
RVJUKCFoYXNJbnN0YW5jZVZhbHVlTm9kZS0+aXNDZWxsQ29uc3RhbnQoKSB8fCBkZWZhdWx0SGFz
SW5zdGFuY2VGdW5jdGlvbiA9PSBoYXNJbnN0YW5jZVZhbHVlTm9kZS0+YXNDZWxsKCkpOworICAg
ICAgICBpZiAoIWhhc0luc3RhbmNlVmFsdWVOb2RlLT5pc0NlbGxDb25zdGFudCgpKQorICAgICAg
ICAgICAgbm90RGVmYXVsdCA9IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1
YWwsIGhhc0luc3RhbmNlVmFsdWUuZ3ByKCksIFRydXN0ZWRJbW1QdHIoZGVmYXVsdEhhc0luc3Rh
bmNlRnVuY3Rpb24pKTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IGJhc2UgJ0ltcGxlbWVudHNE
ZWZhdWx0SGFzSW5zdGFuY2UnLgorICAgICAgICBtX2ppdC50ZXN0OChNYWNyb0Fzc2VtYmxlcjo6
WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5m
b0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNE
ZWZhdWx0SGFzSW5zdGFuY2UpLCByZXN1bHRHUFIpOworICAgICAgICBtX2ppdC5vcjMyKFRydXN0
ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKKworICAgICAgICBpZiAobm90RGVmYXVsdC5pc1Nl
dCgpKSB7CisgICAgICAgICAgICBub3REZWZhdWx0LmxpbmsoJm1faml0KTsKKyAgICAgICAgICAg
IG1vdmVUcnVlVG8ocmVzdWx0R1BSKTsKKyAgICAgICAgfQorCisgICAgICAgIGRvbmUubGluaygm
bV9qaXQpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSwgRGF0YUZvcm1h
dEpTQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtNDIxMyw2ICs0MjM4LDEx
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29t
cGlsZUluc3RhbmNlT2Yobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGNhc2Ug
SW5zdGFuY2VPZkN1c3RvbTogeworICAgICAgICBjb21waWxlSW5zdGFuY2VPZkN1c3RvbShub2Rl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgICAgICAKICAgICBjYXNlIElzVW5kZWZpbmVk
OiB7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCA2
NGE0ODIyNzA5Mjg2YzI3Yjg4NmE3ZmM2Mzg2MzlkMTRhMTJmMmFhLi4xNzhmMDNhNDgwODkyZmMy
NWM2YTBkZmZiOWE0NTE3MzY5OGI0ODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xNzUsOCArMTc1LDEwIEBAIGlubGluZSBDYXBhYmls
aXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgSXNPYmplY3Q6CiAgICAg
Y2FzZSBJc09iamVjdE9yTnVsbDoKICAgICBjYXNlIElzRnVuY3Rpb246Ci0gICAgY2FzZSBDaGVj
a0hhc0luc3RhbmNlOgorICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgorICAgIGNhc2UgT3Zl
cnJpZGVzSGFzSW5zdGFuY2U6CiAgICAgY2FzZSBJbnN0YW5jZU9mOgorICAgIGNhc2UgSW5zdGFu
Y2VPZkN1c3RvbToKICAgICBjYXNlIERvdWJsZVJlcDoKICAgICBjYXNlIFZhbHVlUmVwOgogICAg
IGNhc2UgSW50NTJSZXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEludHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50
cmluc2ljUmVwb3NpdG9yeS5oCmluZGV4IGY1ZjRlYTcxYTFmN2RmZjM4MjI0MTUwMjJmNTMzZWFl
NjVlMTFmMzAuLjJlYjE5YWRiZjBlOTZmNDliYTUxYzQ1YzgxNjdiNTE1NDBiZjE0M2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5o
CkBAIC04OSw2ICs4OSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBt
YWNybyhKX0pJVE9wZXJhdGlvbl9FSiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0
KSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKQSwgZnVuY3Rpb25UeXBlKGludDY0LCBp
bnRQdHIsIGludDY0LCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUpDLCBm
dW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50NjQsIGludFB0cikpIFwKKyAgICBtYWNybyhK
X0pJVE9wZXJhdGlvbl9FSk9KLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50NjQsIGlu
dFB0ciwgaW50NjQpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUpJLCBmdW5jdGlvblR5
cGUoaW50NjQsIGludFB0ciwgaW50NjQsIGludFB0cikpIFwKICAgICBtYWNybyhKX0pJVE9wZXJh
dGlvbl9FSkosIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50NjQpKSBcCiAg
ICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUpzY0MsIGZ1bmN0aW9uVHlwZShpbnRQdHIsIGludFB0
ciwgaW50UHRyLCBpbnRQdHIpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwCmluZGV4IDNlMGNkYWUzZWU4MGUwNjliMzVjODQyNTdlMGE1ZTE2
NjlmZjhmZWEuLmMyNzBlYzllMjhjODZhN2E2MTY4ZTQ3YWI0OTQ3NmM4ODBjOTUyYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC05
MjIsMTIgKzkyMiwxOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVPZjoKICAgICAgICAg
ICAgIGNvbXBpbGVUeXBlT2YoKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENo
ZWNrSGFzSW5zdGFuY2U6Ci0gICAgICAgICAgICBjb21waWxlQ2hlY2tIYXNJbnN0YW5jZSgpOwor
ICAgICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKKyAgICAgICAgICAgIGNvbXBpbGVDaGVj
a1R5cGVJbmZvRmxhZ3MoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE92ZXJy
aWRlc0hhc0luc3RhbmNlOgorICAgICAgICAgICAgY29tcGlsZU92ZXJyaWRlc0hhc0luc3RhbmNl
KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbnN0YW5jZU9mOgogICAgICAg
ICAgICAgY29tcGlsZUluc3RhbmNlT2YoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAgICAgICAgICBjb21waWxlSW5zdGFuY2VPZkN1c3Rv
bSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAg
ICAgICAgICAgICBjb21waWxlQ291bnRFeGVjdXRpb24oKTsKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNTY4MywxMyArNTY4OSw0MCBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfQogCi0gICAgdm9p
ZCBjb21waWxlQ2hlY2tIYXNJbnN0YW5jZSgpCisgICAgdm9pZCBjb21waWxlT3ZlcnJpZGVzSGFz
SW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgSlNGdW5jdGlvbiogZGVmYXVsdEhhc0luc3RhbmNl
RnVuY3Rpb24gPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KG1fbm9kZS0+Y2VsbE9wZXJhbmQoKS0+dmFs
dWUoKSk7CisKKyAgICAgICAgTFZhbHVlIGNvbnN0cnVjdG9yID0gbG93Q2VsbChtX25vZGUtPmNo
aWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGhhc0luc3RhbmNlID0gbG93SlNWYWx1ZShtX25vZGUt
PmNoaWxkMigpKTsKKworICAgICAgICBMQmFzaWNCbG9jayBkZWZhdWx0SGFzSW5zdGFuY2UgPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIk92ZXJyaWRlc0hhc0luc3RhbmNlIFN5bWJvbC5oYXNJbnN0
YW5jZSBpcyBkZWZhdWx0IikpOworICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIk92ZXJyaWRlc0hhc0luc3RhbmNlIGNvbnRpbnVhdGlvbiIp
KTsKKworICAgICAgICAvLyBVbmxpa2UsIHRoZSBERkcgd2UgZG9uJ3Qgd29ycnkgYWJvdXQgY2xl
YW5pbmcgdGhpcyBjb2RlIHVwIGZvciB0aGUgY2FzZSB3aGVyZSB3ZSBoYXZlIHByb3ZlbiB0aGUg
aGFzSW5zdGFuY2VWYWx1ZSBpcyBhIGNvbnN0YW50IGFzIExMVk0gc2hvdWxkIGZpeCBpdCBmb3Ig
dXMuCisKKyAgICAgICAgQVNTRVJUKCFtX25vZGUtPmNoaWxkMigpLm5vZGUoKS0+aXNDZWxsQ29u
c3RhbnQoKSB8fCBkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9PSBtX25vZGUtPmNoaWxkMigp
Lm5vZGUoKS0+YXNDZWxsKCkpOworCisgICAgICAgIFZhbHVlRnJvbUJsb2NrIG5vdERlZmF1bHRI
YXNJbnN0YW5jZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5ib29sZWFuVHJ1ZSk7CisgICAg
ICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3RFcXVhbChoYXNJbnN0YW5jZSwgbV9vdXQuY29uc3RJ
bnRQdHIoZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24pKSwgdW5zdXJlKGNvbnRpbnVhdGlvbiks
IHVuc3VyZShkZWZhdWx0SGFzSW5zdGFuY2UpKTsKKworICAgICAgICBMQmFzaWNCbG9jayBsYXN0
TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGRlZmF1bHRIYXNJbnN0YW5jZSwgY29udGludWF0aW9uKTsK
KyAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZVJlc3Vs
dCA9IG1fb3V0LmFuY2hvcihtX291dC50ZXN0SXNaZXJvMzIoCisgICAgICAgICAgICBtX291dC5s
b2FkOFplcm9FeHQzMihjb25zdHJ1Y3RvciwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9GbGFncyks
CisgICAgICAgICAgICBtX291dC5jb25zdEludDMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UpKSk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICBtX291
dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0KTsKKyAgICAgICAgc2V0Qm9vbGVhbiht
X291dC5waGkobV9vdXQuYm9vbGVhbiwgaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZVJlc3Vs
dCwgbm90RGVmYXVsdEhhc0luc3RhbmNlUmVzdWx0KSk7CisgICAgfQorCisgICAgdm9pZCBjb21w
aWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKCkKICAgICB7CiAgICAgICAgIHNwZWN1bGF0ZSgKLSAgICAg
ICAgICAgIFVuY291bnRhYmxlLCBub1ZhbHVlKCksIDAsCisgICAgICAgICAgICBCYWRUeXBlSW5m
b0ZsYWdzLCBub1ZhbHVlKCksIDAsCiAgICAgICAgICAgICBtX291dC50ZXN0SXNaZXJvMzIoCiAg
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIobG93Q2VsbChtX25vZGUtPmNoaWxk
MSgpKSwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9GbGFncyksCi0gICAgICAgICAgICAgICAgbV9v
dXQuY29uc3RJbnQzMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOworICAgICAgICAg
ICAgICAgIG1fb3V0LmNvbnN0SW50MzIobV9ub2RlLT50eXBlSW5mb09wZXJhbmQoKSkpKTsKICAg
ICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW5zdGFuY2VPZigpCkBAIC01NzQyLDYgKzU3NzUs
MTUgQEAgcHJpdmF0ZToKICAgICAgICAgc2V0Qm9vbGVhbigKICAgICAgICAgICAgIG1fb3V0LnBo
aShtX291dC5ib29sZWFuLCBub3RDZWxsUmVzdWx0LCBpc0luc3RhbmNlUmVzdWx0LCBub3RJbnN0
YW5jZVJlc3VsdCkpOwogICAgIH0KKworICAgIHZvaWQgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20o
KQorICAgIHsKKyAgICAgICAgTFZhbHVlIHZhbHVlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxk
MSgpKTsKKyAgICAgICAgTFZhbHVlIGNvbnN0cnVjdG9yID0gbG93Q2VsbChtX25vZGUtPmNoaWxk
MigpKTsKKyAgICAgICAgTFZhbHVlIGhhc0luc3RhbmNlID0gbG93SlNWYWx1ZShtX25vZGUtPmNo
aWxkMygpKTsKKworICAgICAgICBzZXRCb29sZWFuKG1fb3V0LmVxdWFsKG1fb3V0LmNvbnN0SW50
NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0cnVlKSkpLCB2bUNhbGwobV9vdXQuaW50NjQs
IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKSwgbV9jYWxsRnJhbWUs
IHZhbHVlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2UpKSk7CisgICAgfQogICAgIAogICAgIHZv
aWQgY29tcGlsZUNvdW50RXhlY3V0aW9uKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKaW5kZXggNWI2N2EwNTI3ZTE5OTIzYTE2OWM0YzNkNzczNDAyNzMwZTk2MmZkMi4uZWIxMGMx
MmUwMjFmY2M3YzE4YzkyZGQ4MmI5YmE5OTgyYjFjMmZmNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcApAQCAtMjI5LDggKzIyOSw5IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5Q
YXNzKCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgICAgICBERUZJTkVf
T1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3ZhbCkKLSAgICAg
ICAgREVGSU5FX09QKG9wX2NoZWNrX2hhc19pbnN0YW5jZSkKKyAgICAgICAgREVGSU5FX09QKG9w
X292ZXJyaWRlc19oYXNfaW5zdGFuY2UpCiAgICAgICAgIERFRklORV9PUChvcF9pbnN0YW5jZW9m
KQorICAgICAgICBERUZJTkVfT1Aob3BfaW5zdGFuY2VvZl9jdXN0b20pCiAgICAgICAgIERFRklO
RV9PUChvcF9pc191bmRlZmluZWQpCiAgICAgICAgIERFRklORV9PUChvcF9pc19ib29sZWFuKQog
ICAgICAgICBERUZJTkVfT1Aob3BfaXNfbnVtYmVyKQpAQCAtNDAwLDggKzQwMSw4IEBAIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5
X2xlbmd0aDoKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2dldF9ieV9pZCkKICAgICAg
ICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2dldF9ieV92YWwpCi0gICAgICAgIERFRklORV9TTE9X
Q0FTRV9PUChvcF9jaGVja19oYXNfaW5zdGFuY2UpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9P
UChvcF9pbnN0YW5jZW9mKQorICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaW5zdGFuY2Vv
Zl9jdXN0b20pCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9qZmFsc2UpCiAgICAgICAg
IERFRklORV9TTE9XQ0FTRV9PUChvcF9qbGVzcykKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09Q
KG9wX2psZXNzZXEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCAyMGYwZTljNDg5Mjc4M2Jl
M2VlOTY5ZTNmYjdmYTJlZWI3MDhjZWU5Li4wZjdjMjIwODk3MmU5OWJjOTRhMmFjMzYzOTAxMGY3
MDYxYTcxOWRhIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTUxMCw4ICs1MTAsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rp
b24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9hcmd1bWVudF9ieV92YWwoSW5zdHJ1Y3Rp
b24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2luaXRfbGF6eV9yZWcoSW5zdHJ1Y3Rpb24qKTsK
LSAgICAgICAgdm9pZCBlbWl0X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiopOwor
ICAgICAgICB2b2lkIGVtaXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiop
OwogICAgICAgICB2b2lkIGVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiopOworICAgICAg
ICB2b2lkIGVtaXRfb3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAg
dm9pZCBlbWl0X29wX2lzX3VuZGVmaW5lZChJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVt
aXRfb3BfaXNfYm9vbGVhbihJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfaXNf
bnVtYmVyKEluc3RydWN0aW9uKik7CkBAIC02MTcsOCArNjE4LDggQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZ2V0X2FyZ3VtZW50c19sZW5ndGgoSW5zdHJ1Y3Rp
b24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6
aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRfYXJndW1lbnRfYnlfdmFs
KEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwotICAgICAg
ICB2b2lkIGVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiosIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9p
bnN0YW5jZW9mKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYp
OworICAgICAgICB2b2lkIGVtaXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9u
KiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRT
bG93X29wX2pmYWxzZShJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0
b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9qbGVzcyhJbnN0cnVjdGlvbiosIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9q
bGVzc2VxKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwpA
QCAtNzQ1LDYgKzc0Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQ
UlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEFycmF5UHJvZmlsZSopOwogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
SkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBCeVZhbEluZm8qKTsKKyAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSk9KLCBpbnQsIEdQUlJl
ZywgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKENfSklUT3BlcmF0aW9uX0VKc2MsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpzY0MsIGludCwgR1BSUmVn
LCBKU0NlbGwqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSnNjQ0osIGludCwgR1BSUmVnLCBKU0NlbGwqLCBHUFJSZWcpOwpAQCAt
ODEyLDYgKzgxNCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKLCBpbnQsIEdQUlJlZywgR1BSUmVn
KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJh
dGlvbl9FSklkYywgaW50LCBHUFJSZWcsIEdQUlJlZywgY29uc3QgSWRlbnRpZmllciopOwogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
SiwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcpOworICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0osIGludCwgR1BS
UmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJl
ZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwg
R1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9FSlMsIEdQUlJl
ZywgR1BSUmVnLCBzaXplX3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApp
bmRleCBjYWRiMDgzMDhjY2MwNjFiN2M3NzdkNTBiMmFjMjM4M2QzOThlOWRlLi4wMmI0ZDhkY2Rk
MzQ3OGE5Y2NhMWQxMDcwMjk0MTExNTI4ZDg5YWNjIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZXMuaApAQCAtNTAzLDYgKzUwMywxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSBvcGVy
YQogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3Vs
dChvcGVyYXRpb24sIGRzdCk7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBpbnQg
ZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQoreworICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3Qp
OworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJh
dGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcg
YXJnMSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSk7CkBAIC02Mzgs
NiArNjQ0LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpCiAgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0K
IAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRpb24sIGludCBkc3QsIEdQUlJlZyBhcmcxVGFnLCBH
UFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnM1RhZywgR1BSUmVnIGFy
ZzNQYXlsb2FkKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklU
X0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMiwgRUFCSV8zMkJJVF9EVU1NWV9B
UkcgYXJnM1BheWxvYWQsIGFyZzNUYWcpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7Cit9CisKIEFMV0FZU19J
TkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0
aW9uX0VKSkFwIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcx
UGF5bG9hZCwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwgQXJyYXlQcm9maWxl
KiBhcnJheVByb2ZpbGUpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklf
MzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBTSDRfMzJCSVRfRFVNTVlfQVJH
IGFyZzJQYXlsb2FkLCBhcmcyVGFnLCBUcnVzdGVkSW1tUHRyKGFycmF5UHJvZmlsZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggOTljMDFjOGQxZThhMGRm
ODRjODdmZTU1ZmVjYWFmMzJiNDBlMTQ1My4uNjhiNzkzMmNjNzM1MDBkYjk3ODIxNDVjYzE2NmEz
YWQ1ZGE2NDhkOSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNv
ZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBA
IC0xMDUsMTcgKzEwNSwyOSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbmV3X29iamVjdChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRTdG9y
ZUNlbGwoZHN0LCByZXR1cm5WYWx1ZUdQUik7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX2NoZWNr
X2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQordm9pZCBKSVQ6
OmVtaXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogewotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZDsKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAg
ICBpbnQgY29uc3RydWN0b3IgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAg
IGludCBoYXNJbnN0YW5jZVZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
KworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoaGFzSW5zdGFuY2VWYWx1ZSwgcmVnVDApOwor
CisgICAgLy8gV2UgZG9uJ3QganVtcCBpZiB3ZSBrbm93IHdoYXQgU3ltYm9sLmhhc0luc3RhbmNl
IHdvdWxkIGRvLgorICAgIEp1bXAgY3VzdG9taGFzSW5zdGFuY2VWYWx1ZSA9IGJyYW5jaFB0cihO
b3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgp
LT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpKSk7CiAKLSAgICBlbWl0
R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2VWYWwsIHJlZ1QwKTsKKyAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKGNvbnN0cnVjdG9yLCByZWdUMCk7CisKKyAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVj
dG9yICdJbXBsZW1lbnRzSGFzSW5zdGFuY2UnIGkuZS4gdGhlIG9iamVjdCBpcyBhIEMtQVBJIHVz
ZXIgb3IgYSBib3VuZCBmdW5jdGlvbi4KKyAgICB0ZXN0OChaZXJvLCBBZGRyZXNzKHJlZ1QwLCBK
U0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVm
YXVsdEhhc0luc3RhbmNlKSwgcmVnVDApOworICAgIGVtaXRUYWdCb29sKHJlZ1QwKTsKKyAgICBK
dW1wIGRvbmUgPSBqdW1wKCk7CiAKLSAgICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgaXMgYSBjZWxs
LgotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZVZhbCk7CisgICAg
Y3VzdG9taGFzSW5zdGFuY2VWYWx1ZS5saW5rKHRoaXMpOworICAgIG1vdmUoVHJ1c3RlZEltbTMy
KFZhbHVlVHJ1ZSksIHJlZ1QwKTsKIAotICAgIC8vIENoZWNrIHRoYXQgYmFzZVZhbCAnSW1wbGVt
ZW50c0hhc0luc3RhbmNlJy4KLSAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0OChaZXJvLCBBZGRy
ZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOworICAgIGRvbmUubGluayh0aGlzKTsKKyAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2lu
c3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTEyOSw3ICsxNDEs
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDIpOwogICAg
IGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvdG8sIHJlZ1QxKTsKIAotICAgIC8vIENoZWNrIHRo
YXQgcHJvdG8gYXJlIGNlbGxzLiAgYmFzZVZhbCBtdXN0IGJlIGEgY2VsbCAtIHRoaXMgaXMgY2hl
Y2tlZCBieSBvcF9jaGVja19oYXNfaW5zdGFuY2UuCisgICAgLy8gQ2hlY2sgdGhhdCBwcm90byBh
cmUgY2VsbHMuIGJhc2VWYWwgbXVzdCBiZSBhIGNlbGwgLSB0aGlzIGlzIGNoZWNrZWQgYnkgdGhl
IGdldF9ieV9pZCBmb3IgU3ltYm9sLmhhc0luc3RhbmNlLgogICAgIGVtaXRKdW1wU2xvd0Nhc2VJ
Zk5vdEpTQ2VsbChyZWdUMiwgdmFsdWUpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2Vs
bChyZWdUMSwgcHJvdG8pOwogCkBAIC0xNTcsNiArMTY5LDEyIEBAIHZvaWQgSklUOjplbWl0X29w
X2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2Zf
Y3VzdG9tKEluc3RydWN0aW9uKikKK3sKKyAgICAvLyBUaGlzIGFsd2F5cyBnb2VzIHRvIHNsb3cg
cGF0aCBzaW5jZSB3ZSBleHBlY3QgaXQgdG8gYmUgcmFyZS4KKyAgICBhZGRTbG93Q2FzZShqdW1w
KCkpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9pc191bmRlZmluZWQoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZDsKQEAgLTgzNywzMyArODU1LDMyIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9u
c3RyaWN0ZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNl
CiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX2No
ZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordm9pZCBKSVQ6OmVtaXRTbG93X29wX2lu
c3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kOwotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZDsKKyAgICBpbnQgcHJvdG8gPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwog
Ci0gICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZVZhbCk7CisgICAgbGlua1Ns
b3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgdmFsdWUpOworICAgIGxpbmtTbG93Q2FzZUlmTm90SlND
ZWxsKGl0ZXIsIHByb3RvKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgZW1pdEdldFZp
cnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDApOwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIo
YmFzZVZhbCwgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ2hlY2tIYXNJbnN0
YW5jZSwgZHN0LCByZWdUMCwgcmVnVDEpOwotCi0gICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgp
LCBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKHByb3RvLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5j
ZU9mLCBkc3QsIHJlZ1QwLCByZWdUMSk7CiB9CiAKLXZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0
YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9j
dXN0b20oSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50
cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwotICAgIGludCBwcm90byA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7
CisgICAgaW50IGNvbnN0cnVjdG9yID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
KyAgICBpbnQgaGFzSW5zdGFuY2VWYWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJh
bmQ7CiAKLSAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCB2YWx1ZSk7Ci0gICAgbGlu
a1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgcHJvdG8pOwogICAgIGxpbmtTbG93Q2FzZShpdGVy
KTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZhbHVlLCByZWdUMCk7Ci0gICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3Rlcihwcm90bywgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uSW5zdGFuY2VPZiwgZHN0LCByZWdUMCwgcmVnVDEpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIoY29uc3RydWN0b3IsIHJlZ1QxKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGhh
c0luc3RhbmNlVmFsdWUsIHJlZ1QyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3Rh
bmNlT2ZDdXN0b20sIGRzdCwgcmVnVDAsIHJlZ1QxLCByZWdUMik7CiB9CiAKIHZvaWQgSklUOjpl
bWl0U2xvd19vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVj
dG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA0ZTA0MzY1ZmQ2YzI4MzY4OTliZWJm
N2UwNTMzMGQxZDNkYTAwOTA2Li5lYjUzNzA1NGMwOTU4YWZhZWZiMmFjMTJkY2YwMzExOGJkNTlh
ZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CkBAIC0xODMsMTcgKzE4MywzMSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbmV3X29iamVjdChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRT
dG9yZUNlbGwoZHN0LCByZXR1cm5WYWx1ZUdQUik7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX2No
ZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQordm9pZCBK
SVQ6OmVtaXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogewotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsK
KyAgICBpbnQgY29uc3RydWN0b3IgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwor
ICAgIGludCBoYXNJbnN0YW5jZVZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKIAotICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlVmFsLCByZWdUMCk7CisgICAgZW1pdExvYWRQ
YXlsb2FkKGhhc0luc3RhbmNlVmFsdWUsIHJlZ1QwKTsKKyAgICAvLyBXZSBkb24ndCBqdW1wIGlm
IHdlIGtub3cgd2hhdCBTeW1ib2wuaGFzSW5zdGFuY2Ugd291bGQgZG8uCisgICAgSnVtcCBoYXNJ
bnN0YW5jZVZhbHVlTm90Q2VsbCA9IGVtaXRKdW1wSWZOb3RKU0NlbGwoaGFzSW5zdGFuY2VWYWx1
ZSk7CisgICAgSnVtcCBjdXN0b21oYXNJbnN0YW5jZVZhbHVlID0gYnJhbmNoUHRyKE5vdEVxdWFs
LCByZWdUMCwgVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmZ1bmN0
aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkpKTsKKworICAgIC8vIFdlIGtub3cg
dGhhdCBjb25zdHJ1Y3RvciBpcyBhbiBvYmplY3QgZnJvbSB0aGUgd2F5IGJ5dGVjb2RlIGlzIGVt
aXR0ZWQgZm9yIGluc3RhbmNlb2YgZXhwcmVzc2lvbnMuCisgICAgZW1pdExvYWRQYXlsb2FkKGNv
bnN0cnVjdG9yLCByZWdUMCk7CisKKyAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVjdG9yICdJbXBs
ZW1lbnRzSGFzSW5zdGFuY2UnIGkuZS4gdGhlIG9iamVjdCBpcyBhIEMtQVBJIHVzZXIgb3IgYSBi
b3VuZCBmdW5jdGlvbi4KKyAgICB0ZXN0OChaZXJvLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5
cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlKSwgcmVnVDApOworICAgIEp1bXAgZG9uZSA9IGp1bXAoKTsKKworICAgIGhhc0luc3Rh
bmNlVmFsdWVOb3RDZWxsLmxpbmsodGhpcyk7CisgICAgY3VzdG9taGFzSW5zdGFuY2VWYWx1ZS5s
aW5rKHRoaXMpOworICAgIG1vdmUoVHJ1c3RlZEltbTMyKDEpLCByZWdUMCk7CisKKyAgICBkb25l
LmxpbmsodGhpcyk7CisgICAgZW1pdFN0b3JlQm9vbChkc3QsIHJlZ1QwKTsKIAotICAgIC8vIENo
ZWNrIHRoYXQgYmFzZVZhbCBpcyBhIGNlbGwuCi0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlND
ZWxsKGJhc2VWYWwpOwotICAgIAotICAgIC8vIENoZWNrIHRoYXQgYmFzZVZhbCAnSW1wbGVtZW50
c0hhc0luc3RhbmNlJy4KLSAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0OChaZXJvLCBBZGRyZXNz
KHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJbXBs
ZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0
YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC0yMDcsNyArMjIxLDcg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogICAgIGVtaXRMb2FkUGF5bG9hZCh2YWx1ZSwgcmVnVDIpOwogICAgIGVtaXRMb2Fk
UGF5bG9hZChwcm90bywgcmVnVDEpOwogCi0gICAgLy8gQ2hlY2sgdGhhdCBwcm90byBhcmUgY2Vs
bHMuICBiYXNlVmFsIG11c3QgYmUgYSBjZWxsIC0gdGhpcyBpcyBjaGVja2VkIGJ5IG9wX2NoZWNr
X2hhc19pbnN0YW5jZS4KKyAgICAvLyBDaGVjayB0aGF0IHByb3RvIGFyZSBjZWxscy4gYmFzZVZh
bCBtdXN0IGJlIGEgY2VsbCAtIHRoaXMgaXMgY2hlY2tlZCBieSB0aGUgZ2V0X2J5X2lkIGZvciBT
eW1ib2wuaGFzSW5zdGFuY2UuCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHZhbHVl
KTsKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocHJvdG8pOwogICAgIApAQCAtMjM1
LDIwICsyNDksMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRTdG9yZUJvb2woZHN0LCByZWdUMCk7CiB9CiAK
LXZvaWQgSklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikK
K3ZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKikKIHsKLSAg
ICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKLSAgICBpbnQgdmFs
dWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIGludCBiYXNlVmFsID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLQotICAgIGxpbmtTbG93Q2FzZUlmTm90
SlNDZWxsKGl0ZXIsIGJhc2VWYWwpOwotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKLQotICAgIGVt
aXRMb2FkKHZhbHVlLCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRMb2FkKGJhc2VWYWwsIHJlZ1Qz
LCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25DaGVja0hhc0luc3RhbmNlLCBk
c3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyKTsKLQotICAgIGVtaXRKdW1wU2xvd1RvSG90
KGp1bXAoKSwgY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgLy8gVGhpcyBh
bHdheXMgZ29lcyB0byBzbG93IHBhdGggc2luY2Ugd2UgZXhwZWN0IGl0IHRvIGJlIHJhcmUuCisg
ICAgYWRkU2xvd0Nhc2UoanVtcCgpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3Rh
bmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50
cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTI2Niw2ICsyNzAsMjEgQEAgdm9pZCBKSVQ6OmVtaXRT
bG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9y
PFNsb3dDYXMKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2YsIGRzdCwgcmVn
VDEsIHJlZ1QwLCByZWdUMywgcmVnVDIpOwogfQogCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaW5z
dGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNs
b3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3sKKyAgICBpbnQgZHN0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kOworICAgIGludCBjb25zdHJ1Y3RvciA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CisgICAgaW50IGhhc0luc3RhbmNlVmFsdWUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kOworCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworCisgICAgZW1p
dExvYWQodmFsdWUsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdExvYWRQYXlsb2FkKGNvbnN0cnVj
dG9yLCByZWdUMik7CisgICAgZW1pdExvYWQoaGFzSW5zdGFuY2VWYWx1ZSwgcmVnVDQsIHJlZ1Qz
KTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIGRzdCwgcmVn
VDEsIHJlZ1QwLCByZWdUMiwgcmVnVDQsIHJlZ1QzKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3Bf
aXNfdW5kZWZpbmVkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50
IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCBjYWQ5MzQ2OWMxYmNiZDJiNTdkY2I1
MjAyM2FiZTlmNzIzZjc0NDQ1Li41ZDJhZTZiYmM1OTExOTZiNWI0MTAyOWU4N2U1OTViNTZiZWY2
MDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAg
LTE0ODcsMjUgKzE0ODcsMTcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVX
aWxsQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY28KICAgICAgICAgcHJv
ZmlsZXItPndpbGxFeGVjdXRlKGV4ZWMsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DaGVja0hhc0luc3Rh
bmNlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZVZhbCkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uSW5zdGFuY2VPZkN1c3RvbShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
SGFzSW5zdGFuY2UpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgSlNWYWx1ZSBiYXNlVmFsID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRCYXNlVmFsKTsKLQotICAgIGlmIChiYXNlVmFsLmlzT2JqZWN0KCkp
IHsKLSAgICAgICAgSlNPYmplY3QqIGJhc2VPYmplY3QgPSBhc09iamVjdChiYXNlVmFsKTsKLSAg
ICAgICAgQVNTRVJUKCFiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLmltcGxl
bWVudHNEZWZhdWx0SGFzSW5zdGFuY2UoKSk7Ci0gICAgICAgIGlmIChiYXNlT2JqZWN0LT5zdHJ1
Y3R1cmUodm0pLT50eXBlSW5mbygpLmltcGxlbWVudHNIYXNJbnN0YW5jZSgpKSB7Ci0gICAgICAg
ICAgICBib29sIHJlc3VsdCA9IGJhc2VPYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Y3VzdG9tSGFz
SW5zdGFuY2UoYmFzZU9iamVjdCwgZXhlYywgdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0KSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAg
SlNWYWx1ZSBoYXNJbnN0YW5jZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRIYXNJbnN0
YW5jZSk7CisKKyAgICBBU1NFUlQoaGFzSW5zdGFuY2VWYWx1ZSAhPSBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkgfHwg
IWNvbnN0cnVjdG9yLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5pbXBsZW1lbnRzRGVmYXVsdEhh
c0luc3RhbmNlKCkpOwogCi0gICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlSW52YWxp
ZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcihleGVjLCBiYXNlVmFsKSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGNvbnN0cnVjdG9yLT5oYXNJbnN0YW5jZShleGVjLCB2YWx1ZSwgaGFzSW5zdGFuY2VW
YWx1ZSkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
aAppbmRleCAyNTQyNTUwMjI5ZGE0MWUxYWRkNDZiMGIwMjU4ZThlNDk5NWI5YjZkLi41YzJjODE0
MTk0ZmZkYzg3ZTdlZDNkNThlMTBkZjViM2FkZWVhMTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTEyLDYgKzExMiw3IEBAIHR5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VJKShFeGVjU3RhdGUqLCBV
bmlxdWVkU3RyCiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpaKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgaW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBK
U0NlbGwqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3Bl
cmF0aW9uX0VKT0opKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU09iamVjdCosIEVuY29k
ZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklU
T3BlcmF0aW9uX0VKQSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQXJyYXkqKTsKIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSSko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKik7CiB0eXBlZGVm
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSklkYykoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXIqKTsKQEAgLTMyOCw3ICsz
MjksNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHVzaEZ1bmN0aW9uTmFtZVNjb3Bl
KEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5bWJvbFRhYgogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvblBvcFNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlRGlkQ2FsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVX
aWxsQ2FsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25DaGVja0hhc0luc3RhbmNlKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBiYXNlVmFsKSBXVEZfSU5URVJOQUw7
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20o
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3Ry
dWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkgV1RGX0lOVEVSTkFMOwog
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlW
YWxJbmZvKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVS
TkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCAwMTky
N2I2MzA0YzIzYzBkNWZiODQ0NjdmN2IzOThhOGE0YzFlZTNhLi5mMzNjMGIzNWYwYzZjZTI4YmY5
ZjNkMzgyYTA5MTFiMGZhMTY4Njk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnREYXRhLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9y
U2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlP
ZmZzZXQuaCIKKyNpbmNsdWRlICJXcml0ZUJhcnJpZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBMTEludCB7CiAKQEAgLTE1NCw2ICsxNTUsNyBAQCB2b2lkIERhdGE6OnBlcmZvcm1B
c3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQoRnVuY3Rpb25Db2RlID09IDIpOwogICAgIEFT
U0VSVChNb2R1bGVDb2RlID09IDMpOwogCisgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxw
dHJkaWZmX3Q+KChyZWludGVycHJldF9jYXN0PFdyaXRlQmFycmllcjxKU0NlbGw+Kj4oMHg0MDAw
KS0+c2xvdCgpKSkgLSAweDQwMDApKTsKICAgICBzdGF0aWNfYXNzZXJ0KFB1dEJ5SWRQcmltYXJ5
VHlwZU1hc2sgPT0gMHg2LCAiTExJbnQgYXNzdW1lcyBQdXRCeUlkUHJpbWFyeVR5cGVNYXNrIGlz
ID09IDB4NiIpOwogICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJZFByaW1hcnlUeXBlU2Vjb25kYXJ5
ID09IDB4MCwgIkxMSW50IGFzc3VtZXMgUHV0QnlJZFByaW1hcnlUeXBlU2Vjb25kYXJ5IGlzID09
IDB4MCIpOwogICAgIHN0YXRpY19hc3NlcnQoUHV0QnlJZFByaW1hcnlUeXBlT2JqZWN0V2l0aFN0
cnVjdHVyZSA9PSAweDIsICJMTEludCBhc3N1bWVzIFB1dEJ5SWRQcmltYXJ5VHlwZU9iamVjdFdp
dGhTdHJ1Y3R1cmUgaXMgPT0gMHgyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCBjZGI1OWY0NGJlYjZjMjM1YzYzOTAzNDdkOTY4ZjE2
NWQzYzY2YWJiLi42MTA4ZmU5ZTFiYTg2ZmIyYzcyNTFlYTQ1ZTk4NTQ4YjFiZTIwMzAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTUy
MiwzMCArNTIyLDI4IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9uZXdfcmVnZXhw
KQogICAgIExMSU5UX1JFVFVSTihSZWdFeHBPYmplY3Q6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVnRXhwKSk7CiB9CiAKLUxMSU5U
X1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCitMTElOVF9TTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZikKIHsKICAgICBMTElOVF9CRUdJTigpOwot
ICAgIAogICAgIEpTVmFsdWUgdmFsdWUgPSBMTElOVF9PUF9DKDIpLmpzVmFsdWUoKTsKLSAgICBK
U1ZhbHVlIGJhc2VWYWwgPSBMTElOVF9PUF9DKDMpLmpzVmFsdWUoKTsKLSAgICBpZiAoYmFzZVZh
bC5pc09iamVjdCgpKSB7Ci0gICAgICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmplY3Qo
YmFzZVZhbCk7Ci0gICAgICAgIEFTU0VSVCghYmFzZU9iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJ
bmZvKCkuaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSgpKTsKLSAgICAgICAgaWYgKGJhc2VP
YmplY3QtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLmltcGxlbWVudHNIYXNJbnN0YW5jZSgpKSB7
Ci0gICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihiYXNlT2JqZWN0LT5tZXRo
b2RUYWJsZSgpLT5jdXN0b21IYXNJbnN0YW5jZShiYXNlT2JqZWN0LCBleGVjLCB2YWx1ZSkpOwot
ICAgICAgICAgICAgTExJTlRfUkVUVVJOX1dJVEhfUENfQURKVVNUTUVOVChyZXN1bHQsIHBjWzRd
LnUub3BlcmFuZCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgTExJTlRfVEhST1coY3JlYXRlSW52
YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcihleGVjLCBiYXNlVmFsKSk7CisgICAgSlNWYWx1
ZSBwcm90byA9IExMSU5UX09QX0MoMykuanNWYWx1ZSgpOworICAgIEFTU0VSVCghdmFsdWUuaXNP
YmplY3QoKSB8fCAhcHJvdG8uaXNPYmplY3QoKSk7CisgICAgTExJTlRfUkVUVVJOKGpzQm9vbGVh
bihKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90bykpKTsKIH0K
IAotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2YpCitMTElOVF9TTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pCiB7CiAgICAgTExJTlRfQkVH
SU4oKTsKKwogICAgIEpTVmFsdWUgdmFsdWUgPSBMTElOVF9PUF9DKDIpLmpzVmFsdWUoKTsKLSAg
ICBKU1ZhbHVlIHByb3RvID0gTExJTlRfT1BfQygzKS5qc1ZhbHVlKCk7Ci0gICAgQVNTRVJUKCF2
YWx1ZS5pc09iamVjdCgpIHx8ICFwcm90by5pc09iamVjdCgpKTsKLSAgICBMTElOVF9SRVRVUk4o
anNCb29sZWFuKEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIHByb3Rv
KSkpOworICAgIEpTVmFsdWUgY29uc3RydWN0b3IgPSBMTElOVF9PUF9DKDMpLmpzVmFsdWUoKTsK
KyAgICBKU1ZhbHVlIGhhc0luc3RhbmNlVmFsdWUgPSBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKTsK
KworICAgIEFTU0VSVChjb25zdHJ1Y3Rvci5pc09iamVjdCgpKTsKKyAgICBBU1NFUlQoaGFzSW5z
dGFuY2VWYWx1ZSAhPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9I
YXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkgfHwgIWNvbnN0cnVjdG9yLmdldE9iamVjdCgpLT5z
dHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpOwor
CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xlYW4oY29uc3RydWN0b3IuZ2V0T2JqZWN0KCkt
Pmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBoYXNJbnN0YW5jZVZhbHVlKSk7CisgICAgTExJTlRf
UkVUVVJOKHJlc3VsdCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRf
YnlfaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCmlu
ZGV4IDI3MTMyNGIxODQ1M2Q3MmRjOGI3NjE4MGJhMDMwNGFiNDU2NTk1OTcuLjBkNWM4ZGE0M2Iw
MDlhYjk3YWIyZjcyYTg3NWMxNGViNTY2MDM5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5oCkBAIC02Nyw4ICs2Nyw4IEBAIExMSU5UX1NMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2FycmF5KTsKIExMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfbmV3X2FycmF5X3dpdGhfc2l6ZSk7CiBMTElOVF9TTE9XX1BBVEhf
SElEREVOX0RFQ0woc2xvd19wYXRoX25ld19hcnJheV9idWZmZXIpOwogTExJTlRfU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfcmVnZXhwKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKTsKIExMSU5UX1NMT1dfUEFUSF9I
SURERU5fREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZik7CitMTElOVF9TTE9XX1BBVEhfSElEREVO
X0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKTsKIExMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfZ2V0X2FyZ3VtZW50c19sZW5ndGgpOwogTExJTlRfU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBlMWQxMjJj
ZDAzMDY1MmM1Mjg1YjBjNDA1MmEzOGUwMDQyZGJhNzVlLi44MmMwNGNiZmE1NmUxYzdmYmYzMzE3
YmY0YWY3YTBhOTJiOWU1OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMTE3NSwxNyArMTE3NSwz
NCBAQCBfbGxpbnRfb3BfYml0b3I6CiAgICAgICAgIDUpCiAKIAotX2xsaW50X29wX2NoZWNrX2hh
c19pbnN0YW5jZToKK19sbGludF9vcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgogICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBsb2FkaSAxMltQQ10sIHQxCi0gICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZVBheWxvYWQodDEsIENlbGxUYWcsIHQwLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdykKLSAg
ICBidGJ6IEpTQ2VsbDo6bV9mbGFnc1t0MF0sIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2Us
IC5vcENoZWNrSGFzSW5zdGFuY2VTbG93Ci0gICAgZGlzcGF0Y2goNSkKIAotLm9wQ2hlY2tIYXNJ
bnN0YW5jZVNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFz
X2luc3RhbmNlKQotICAgIGRpc3BhdGNoKDApCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEs
IHQzKQorICAgIHN0b3JlaSBCb29sZWFuVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MywgOF0KIAorICAg
ICMgRmlyc3QgY2hlY2sgaWYgaGFzSW5zdGFuY2VWYWx1ZSBpcyB0aGUgb25lIG9uIEZ1bmN0aW9u
LnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9u
KDMsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQxLCB0MikKKyAgICBiaW5l
cSB0MSwgQ2VsbFRhZywgLm9wT3ZlcnJpZGVzaGFzSW5zdGFuY2VWYWx1ZU5vdENlbGwKKworICAg
ICMgV2UgZG9uJ3QgbmVlZCBoYXNJbnN0YW5jZVZhbHVlJ3MgdGFnIHJlZ2lzdGVyIGFueW1vcmUu
CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2ds
b2JhbE9iamVjdFt0MV0sIHQxCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZnVuY3Rpb25Q
cm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb25bdDFdLCB0MQorICAgIGJpbmVxIHQxLCB0Miwg
Lm9wT3ZlcnJpZGVzaGFzSW5zdGFuY2VWYWx1ZU5vdERlZmF1bHQKKworICAgICMgV2Uga25vdyB0
aGUgY29uc3RydWN0b3IgaXMgYSBjZWxsLgorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0
MCkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZFVuY2hlY2tlZCh0MCwgdDEpCisg
ICAgdGJ6IEpTQ2VsbDo6bV9mbGFnc1t0MV0sIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2Us
IHQwCisgICAgc3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdCisgICAgZGlzcGF0
Y2goNCkKKworLm9wT3ZlcnJpZGVzaGFzSW5zdGFuY2VWYWx1ZU5vdENlbGw6Cisub3BPdmVycmlk
ZXNoYXNJbnN0YW5jZVZhbHVlTm90RGVmYXVsdDoKKyAgICBzdG9yZXAgMCwgUGF5bG9hZE9mZnNl
dFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQpCiAKIF9sbGludF9vcF9pbnN0YW5jZW9mOgog
ICAgIHRyYWNlRXhlY3V0aW9uKCkKQEAgLTEyMTUsNiArMTIzMiwxMSBAQCBfbGxpbnRfb3BfaW5z
dGFuY2VvZjoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbnN0YW5jZW9mKQog
ICAgIGRpc3BhdGNoKDQpCiAKK19sbGludF9vcF9pbnN0YW5jZW9mX2N1c3RvbToKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2Vv
Zl9jdXN0b20pCisgICAgZGlzcGF0Y2goNSkKKwogCiBfbGxpbnRfb3BfaXNfdW5kZWZpbmVkOgog
ICAgIHRyYWNlRXhlY3V0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggNDlmM2NkN2E3NDYzODRlMGU3MTky
ZDAxYTg2OWE3NDAwNDFkNzk1OS4uMTYzYWNiYjhkZDcwOGVjNDliNTUyZWJhZjg3MmVhMTQ1NGJh
YWE4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc20KQEAgLTEwNjksMTYgKzEwNjksMjggQEAgX2xsaW50X29wX2JpdG9y
OgogICAgICAgICA1KQogCiAKLV9sbGludF9vcF9jaGVja19oYXNfaW5zdGFuY2U6CitfbGxpbnRf
b3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9h
ZGlzRnJvbUluc3RydWN0aW9uKDEsIHQzKQorCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDMs
IHQxKQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQxLCB0MCwgLm9wQ2hlY2tIYXNJ
bnN0YW5jZVNsb3cpCi0gICAgYnRieiBKU0NlbGw6Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVm
YXVsdEhhc0luc3RhbmNlLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdwotICAgIGRpc3BhdGNoKDUp
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHQyCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0Ml0sIHQyCisg
ICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9s
RnVuY3Rpb25bdDJdLCB0MgorICAgIGJxbmVxIHQwLCB0MiwgLm9wT3ZlcnJpZGVzSGFzSW5zdGFu
Y2VOb3REZWZhdWx0U3ltYm9sCiAKLS5vcENoZWNrSGFzSW5zdGFuY2VTbG93OgotICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NoZWNrX2hhc19pbnN0YW5jZSkKLSAgICBkaXNwYXRj
aCgwKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MSkKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHQxLCB0MCkKKyAgICB0YnogSlNDZWxsOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSwgdDEKKyAgICBvcnEgVmFsdWVGYWxzZSwgdDEKKyAgICBzdG9y
ZXEgdDEsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKy5vcE92ZXJyaWRlc0hhc0lu
c3RhbmNlTm90RGVmYXVsdFN5bWJvbDoKKyAgICBzdG9yZXEgVmFsdWVUcnVlLCB0MQorICAgIHN0
b3JlcSB0MSwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKIAogCiBfbGxpbnRfb3BfaW5z
dGFuY2VvZjoKQEAgLTExMDksNiArMTEyMSwxMCBAQCBfbGxpbnRfb3BfaW5zdGFuY2VvZjoKICAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbnN0YW5jZW9mKQogICAgIGRpc3BhdGNo
KDQpCiAKK19sbGludF9vcF9pbnN0YW5jZW9mX2N1c3RvbToKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pCisg
ICAgZGlzcGF0Y2goNSkKIAogX2xsaW50X29wX2lzX3VuZGVmaW5lZDoKICAgICB0cmFjZUV4ZWN1
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25J
ZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaAppbmRleCAzN2M1NGQyZmVkNTYyZDgwYmZiMDVmMmZmODk1MjkwODg2OGJlNjAwLi42
YzY0YjYxMWUzNmE2Y2IwMzQ2NGVhYjBhNWQzNWIyOTVkMTkzOTcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTI1MCw3ICsy
NTAsNiBAQAogICAgIG1hY3JvKHlpZWxkKQogCiAjZGVmaW5lIEpTQ19DT01NT05fUFJJVkFURV9J
REVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lNQk9MX05PVF9JTVBMRU1FTlRFRF9ZRVQobWFj
cm8pXAotICAgIG1hY3JvKGhhc0luc3RhbmNlKSBcCiAgICAgbWFjcm8oaXNDb25jYXRTcHJlYWRh
YmxlKSBcCiAgICAgbWFjcm8obWF0Y2gpIFwKICAgICBtYWNybyhyZXBsYWNlKSBcCkBAIC0yNjAs
NiArMjU5LDcgQEAKICAgICBtYWNybyh0b1ByaW1pdGl2ZSkKIAogI2RlZmluZSBKU0NfQ09NTU9O
X1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTChtYWNybykgXAorICAg
IG1hY3JvKGhhc0luc3RhbmNlKSBcCiAgICAgbWFjcm8oaXRlcmF0b3IpIFwKICAgICBtYWNybyh1
bnNjb3BhYmxlcykgXAogICAgIG1hY3JvKHRvU3RyaW5nVGFnKQpAQCAtMzQxLDYgKzM0MSw5IEBA
CiAgICAgbWFjcm8oQ29sbGF0b3IpIFwKICAgICBtYWNybyhEYXRlVGltZUZvcm1hdCkgXAogICAg
IG1hY3JvKE51bWJlckZvcm1hdCkgXAorICAgIG1hY3JvKGlzQm91bmRGdW5jdGlvbikgXAorICAg
IG1hY3JvKGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbikgXAorICAgIG1hY3JvKGluc3RhbmNlT2Yp
IFwKIAogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXggMDEzMWI5ZjFjM2QzMzRiYWUwNWMxYzli
NjAyYjBiOWQ1MjlmM2EzMC4uMTk2YmUyZTFjM2RjZTUxYmEyYjYyZWY4ODdlN2JjY2U4ZTFmOTIw
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVs
cGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVs
cGVycy5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCBzdGF0aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0
ZXJJblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXNzYWdlLCBjbwogICAg
IHJldHVybiBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUsICIgaXMgbm90IGFuIE9iamVjdC4gKGV2
YWx1YXRpbmcgJyIsIHNvdXJjZVRleHQsICInKSIpOwogfQogCi1zdGF0aWMgU3RyaW5nIGludmFs
aWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5h
bE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5cGUsIEVycm9ySW5z
dGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkKK2lubGluZSBT
dHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRlcihjb25zdCBTdHJp
bmcmIGNvbnRlbnQsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVRleHQsIFJ1bnRpbWVUeXBlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VUZXh0V2hlcmVF
cnJvck9jY3VycmVkIG9jY3VycmVuY2UpCiB7CiAgICAgaWYgKG9jY3VycmVuY2UgPT0gRXJyb3JJ
bnN0YW5jZTo6Rm91bmRBcHByb3hpbWF0ZVNvdXJjZSkKICAgICAgICAgcmV0dXJuIGRlZmF1bHRB
cHByb3hpbWF0ZVNvdXJjZUVycm9yKG9yaWdpbmFsTWVzc2FnZSwgc291cmNlVGV4dCk7CkBAIC0y
MjIsNyArMjIyLDE3IEBAIHN0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZT
b3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzCiAKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgaW5zdGFuY2VvZkxlbmd0aCA9IDEwOwogICAgIFN0cmluZyByaWdodEhhbmRT
aWRlID0gc291cmNlVGV4dC5zdWJzdHJpbmcoaW5zdGFuY2VvZkluZGV4ICsgaW5zdGFuY2VvZkxl
bmd0aCkuc2ltcGxpZnlXaGl0ZVNwYWNlKCk7Ci0gICAgcmV0dXJuIG1ha2VTdHJpbmcocmlnaHRI
YW5kU2lkZSwgIiBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJyIsIHNvdXJjZVRleHQs
ICInKSIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUsIGNvbnRlbnQsICIu
IChldmFsdWF0aW5nICciLCBzb3VyY2VUZXh0LCAiJykiKTsKK30KKworc3RhdGljIFN0cmluZyBp
bnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZk5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIoY29uc3Qg
U3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGlt
ZVR5cGUgcnVudGltZVR5cGUsIEVycm9ySW5zdGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2Nj
dXJyZWQgb2NjdXJyZW5jZSkKK3sKKyAgICByZXR1cm4gaW52YWxpZFBhcmFtZXRlckluc3RhbmNl
b2ZTb3VyY2VBcHBlbmRlcihXVEY6Om1ha2VTdHJpbmcoIiBpcyBub3QgYSBmdW5jdGlvbiIpLCBv
cmlnaW5hbE1lc3NhZ2UsIHNvdXJjZVRleHQsIHJ1bnRpbWVUeXBlLCBvY2N1cnJlbmNlKTsKK30K
Kworc3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZmhhc0luc3RhbmNlVmFs
dWVOb3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXNzYWdl
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVRleHQsIFJ1bnRpbWVUeXBlIHJ1bnRpbWVUeXBlLCBFcnJv
ckluc3RhbmNlOjpTb3VyY2VUZXh0V2hlcmVFcnJvck9jY3VycmVkIG9jY3VycmVuY2UpCit7Cisg
ICAgcmV0dXJuIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIoV1RGOjpt
YWtlU3RyaW5nKCJbU3ltYm9sLmhhc0luc3RhbmNlXSBpcyBub3QgYSBmdW5jdGlvbiwgdW5kZWZp
bmVkLCBvciBudWxsIiksIG9yaWdpbmFsTWVzc2FnZSwgc291cmNlVGV4dCwgcnVudGltZVR5cGUs
IG9jY3VycmVuY2UpOwogfQogCiBKU09iamVjdCogY3JlYXRlRXJyb3IoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEVycm9ySW5zdGFuY2U6OlNv
dXJjZUFwcGVuZGVyIGFwcGVuZGVyKQpAQCAtMjQ1LDkgKzI1NSwxNCBAQCBKU09iamVjdCogY3Jl
YXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQogICAgIHJldHVybiBjcmVhdGVFcnJvcihleGVjLCB2YWx1ZSwgbWFrZVN0cmluZygiaXMgbm90
IGFuIE9iamVjdC4iKSwgaW52YWxpZFBhcmFtZXRlckluU291cmNlQXBwZW5kZXIpOwogfQogCi1K
U09iamVjdCogY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitKU09iamVjdCogY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQ
YXJhbWV0ZXJFcnJvck5vdEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkK
K3sKKyAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywgdmFsdWUsIG1ha2VTdHJpbmcoIiBpcyBu
b3QgYSBmdW5jdGlvbiIpLCBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZk5vdEZ1bmN0aW9uU291
cmNlQXBwZW5kZXIpOworfQorCitKU09iamVjdCogY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJh
bWV0ZXJFcnJvcmhhc0luc3RhbmNlVmFsdWVOb3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMsIHZhbHVlLCBtYWtl
U3RyaW5nKCJpcyBub3QgYSBmdW5jdGlvbi4iKSwgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZT
b3VyY2VBcHBlbmRlcik7CisgICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMsIHZhbHVlLCBtYWtl
U3RyaW5nKCJbU3ltYm9sLmhhc0luc3RhbmNlXSBpcyBub3QgYSBmdW5jdGlvbiwgdW5kZWZpbmVk
LCBvciBudWxsIiksIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9maGFzSW5zdGFuY2VWYWx1ZU5v
dEZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOwogfQogCiBKU09iamVjdCogY3JlYXRlTm90QUNvbnN0
cnVjdG9yRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCmluZGV4IGM2YmEwMmUz
ZmJiMDMzYjIxZjFkOTNhMTFlYTdjZDlkMzBmMTkzOWEuLjU0YzVkNzA5NjQyZDAyOWM5NDBkMjFm
NjdlYmEzMTE4MzBhN2IzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGNlcHRpb25IZWxwZXJzLmgKQEAgLTQ1LDcgKzQ1LDggQEAgSlNPYmplY3QqIGNyZWF0ZVRE
WkVycm9yKEV4ZWNTdGF0ZSopOwogSlNPYmplY3QqIGNyZWF0ZU5vdEFuT2JqZWN0RXJyb3IoRXhl
Y1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlSW52YWxpZEZ1bmN0aW9uQXBwbHlQ
YXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVJbnZh
bGlkSW5QYXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKLUpTT2JqZWN0KiBjcmVh
dGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwor
SlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JOb3RGdW5jdGlv
bihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2Vv
ZlBhcmFtZXRlckVycm9yaGFzSW5zdGFuY2VWYWx1ZU5vdEZ1bmN0aW9uKEV4ZWNTdGF0ZSosIEpT
VmFsdWUpOwogSlNPYmplY3QqIGNyZWF0ZU5vdEFDb25zdHJ1Y3RvckVycm9yKEV4ZWNTdGF0ZSos
IEpTVmFsdWUpOwogSlNPYmplY3QqIGNyZWF0ZU5vdEFGdW5jdGlvbkVycm9yKEV4ZWNTdGF0ZSos
IEpTVmFsdWUpOwogSlNPYmplY3QqIGNyZWF0ZUVycm9yRm9ySW52YWxpZEdsb2JhbEFzc2lnbm1l
bnQoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggOTcwZDAxMjg2Y2E4MDlm
ODBjOTFmMzEzNzVjZjJmYzI4MzYzMjJiNC4uYWE4NzU2MTAzYjcyNDA3ZDI3NzdlZGI2YWZkNjE1
ZGFmZjQ2ZDE3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIEZ1bmN0aW9uUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICBwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051
bWJlcigwKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCi12b2lkIEZ1
bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Z1bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBK
U0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbikKK3ZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmFkZEZ1
bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTRnVuY3Rpb24qKiBjYWxsRnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBhcHBseUZ1bmN0
aW9uLCBKU0Z1bmN0aW9uKiogaGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbikKIHsKICAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwogCkBAIC02Miw2ICs2Miw3IEBAIHZvaWQgRnVuY3Rpb25Qcm90b3R5
cGU6OmFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnCiAKICAgICAqYXBwbHlGdW5jdGlvbiA9IHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbldpdGhv
dXRUcmFuc2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmFwcGx5UHVibGljTmFtZSgpLCBmdW5jdGlvblByb3RvdHlwZUFwcGx5Q29kZUdlbmVy
YXRvcih2bSksIERvbnRFbnVtKTsKICAgICAqY2FsbEZ1bmN0aW9uID0gcHV0RGlyZWN0QnVpbHRp
bkZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuY2FsbFB1YmxpY05hbWUoKSwgZnVuY3Rpb25Qcm90b3R5cGVD
YWxsQ29kZUdlbmVyYXRvcih2bSksIERvbnRFbnVtKTsKKyAgICAqaGFzSW5zdGFuY2VTeW1ib2xG
dW5jdGlvbiA9IHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5w
cm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5jZVN5bWJvbCwgZnVuY3Rpb25Qcm90b3R5cGVTeW1ib2xI
YXNJbnN0YW5jZUNvZGVHZW5lcmF0b3Iodm0pLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250
RW51bSk7CiAKICAgICBKU0Z1bmN0aW9uKiBiaW5kRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgMSwgdm0ucHJvcGVydHlOYW1lcy0+YmluZC5zdHJpbmcoKSwg
ZnVuY3Rpb25Qcm90b0Z1bmNCaW5kKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+YmluZCwgYmluZEZ1bmN0aW9uLCBEb250RW51bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaAppbmRl
eCA1MmNlOGYxMWM1ZGQ3ZDEwMzE1NTY5MDNlNWFjYWIwZDJhZDRjMGY4Li5hYmU1MzNhMzNhMWYz
NzhmZWRiODIxNGY1NmNjNWFmZTBmYTFlNjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgIH0KIAotICAgIHZvaWQgYWRkRnVuY3Rp
b25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNGdW5jdGlvbioqIGNh
bGxGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGFwcGx5RnVuY3Rpb24pOworICAgIHZvaWQgYWRkRnVu
Y3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNGdW5jdGlvbioq
IGNhbGxGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGFwcGx5RnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBo
YXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKTsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
cHJvdG8pCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCb3VuZEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91
bmRGdW5jdGlvbi5jcHAKaW5kZXggOGM1Y2MyZWQzOTA0ODJlYWMyZTc3NWE0ZjBjMmQyZDVjNGM5
OWU2MS4uMGYwNDlmOTBmZmJlNmFiNzNiOTE3ZTkxMTczZTJkMWYxYjI4MTk0YSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC03
NCw2ICs3NCwyMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25D
b25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29u
c3RydWN0KGV4ZWMsIHRhcmdldEZ1bmN0aW9uLCBjb25zdHJ1Y3RUeXBlLCBjb25zdHJ1Y3REYXRh
LCBhcmdzKSk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNCb3VuZEZ1bmN0
aW9uKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFs
dWUoc3RhdGljX2Nhc3Q8Ym9vbD4oanNEeW5hbWljQ2FzdDxKU0JvdW5kRnVuY3Rpb24qPihleGVj
LT51bmNoZWNrZWRBcmd1bWVudCgwKSkpKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBK
U0JvdW5kRnVuY3Rpb24qIGJvdW5kT2JqZWN0ID0ganNDYXN0PEpTQm91bmRGdW5jdGlvbio+KGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVh
bihib3VuZE9iamVjdC0+dGFyZ2V0RnVuY3Rpb24oKS0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUp
KSk7Cit9CisKKwogSlNCb3VuZEZ1bmN0aW9uKiBKU0JvdW5kRnVuY3Rpb246OmNyZWF0ZShWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlv
biwgSlNWYWx1ZSBib3VuZFRoaXMsIEpTVmFsdWUgYm91bmRBcmdzLCBpbnQgbGVuZ3RoLCBjb25z
dCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgQ29uc3RydWN0RGF0YSBjb25zdHJ1Y3REYXRhOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAppbmRleCBh
ZjJhNjMyM2Q1MzcxZTIwNTYwYzBmMjU1NmNjNWI4N2Y2MjU2OGU5Li4wNDBlY2JmNzgyNjc0MmM1
N2Y3ODkwNmExNTZhMDQ4Nzg3NTkyNzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaApAQCAtMzIsMTEgKzMyLDEzIEBAIG5hbWVzcGFjZSBK
U0MgewogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25DYWxsKEV4
ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ29u
c3RydWN0KEV4ZWNTdGF0ZSopOworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpc0JvdW5k
RnVuY3Rpb24oRXhlY1N0YXRlKik7CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhhc0lu
c3RhbmNlQm91bmRGdW5jdGlvbihFeGVjU3RhdGUqKTsKIAogY2xhc3MgSlNCb3VuZEZ1bmN0aW9u
IDogcHVibGljIEpTRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSlNGdW5jdGlvbiBC
YXNlOwotICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0hhc0luc3RhbmNlIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgY29uc3Qgc3RhdGljIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzSGFzSW5zdGFuY2VGbGFnIHwgQmFzZTo6
U3RydWN0dXJlRmxhZ3M7CiAKICAgICBzdGF0aWMgSlNCb3VuZEZ1bmN0aW9uKiBjcmVhdGUoVk0m
LCBKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlvbiwgSlNWYWx1ZSBib3Vu
ZFRoaXMsIEpTVmFsdWUgYm91bmRBcmdzLCBpbnQsIGNvbnN0IFN0cmluZyYpOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4
IDdkOTk2ODAxMTI0ZTVhNTRhMjkwOTE1ZTE3ZDRkMDY1MDM5NjhkOTIuLjIzNmM1YzliMzk1ZTU4
NmMzZjFjNTE0OTJiYmY5ZTYyZTE4NzM1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTI4NiwxMiArMjg2LDE0IEBAIHZvaWQg
SlNHbG9iYWxPYmplY3Q6OmluaXQoVk0mIHZtKQogICAgIG1faW50ZXJuYWxGdW5jdGlvblN0cnVj
dHVyZS5zZXQodm0sIHRoaXMsIEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
dGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOwogICAgIEpTRnVuY3Rpb24qIGNhbGxG
dW5jdGlvbiA9IDA7CiAgICAgSlNGdW5jdGlvbiogYXBwbHlGdW5jdGlvbiA9IDA7Ci0gICAgbV9m
dW5jdGlvblByb3RvdHlwZS0+YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKGV4ZWMsIHRoaXMsICZjYWxs
RnVuY3Rpb24sICZhcHBseUZ1bmN0aW9uKTsKKyAgICBKU0Z1bmN0aW9uKiBoYXNJbnN0YW5jZVN5
bWJvbEZ1bmN0aW9uID0gMDsKKyAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5hZGRGdW5jdGlvblBy
b3BlcnRpZXMoZXhlYywgdGhpcywgJmNhbGxGdW5jdGlvbiwgJmFwcGx5RnVuY3Rpb24sICZoYXNJ
bnN0YW5jZVN5bWJvbEZ1bmN0aW9uKTsKICAgICBtX2NhbGxGdW5jdGlvbi5zZXQodm0sIHRoaXMs
IGNhbGxGdW5jdGlvbik7CiAgICAgbV9hcHBseUZ1bmN0aW9uLnNldCh2bSwgdGhpcywgYXBwbHlG
dW5jdGlvbik7CiAgICAgbV9hcnJheVByb3RvVmFsdWVzRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBK
U0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIHZtLnByb3BlcnR5TmFtZXMtPnZhbHVlcy5z
dHJpbmcoKSwgYXJyYXlQcm90b0Z1bmNWYWx1ZXMpKTsKICAgICBtX2luaXRpYWxpemVQcm9taXNl
RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24o
dm0sIHByb21pc2VPcGVyYXRpb25zSW5pdGlhbGl6ZVByb21pc2VDb2RlR2VuZXJhdG9yKHZtKSwg
dGhpcykpOwogICAgIG1fbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbi5zZXQodm0sIHRoaXMs
IEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNO
ZXdQcm9taXNlQ2FwYWJpbGl0eUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSk7CisgICAgbV9mdW5j
dGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbi5zZXQodm0sIHRoaXMsIGhhc0luc3Rh
bmNlU3ltYm9sRnVuY3Rpb24pOwogICAgIG1fbnVsbEdldHRlckZ1bmN0aW9uLnNldCh2bSwgdGhp
cywgTnVsbEdldHRlckZ1bmN0aW9uOjpjcmVhdGUodm0sIE51bGxHZXR0ZXJGdW5jdGlvbjo6Y3Jl
YXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSkpOwogICAg
IG1fbnVsbFNldHRlckZ1bmN0aW9uLnNldCh2bSwgdGhpcywgTnVsbFNldHRlckZ1bmN0aW9uOjpj
cmVhdGUodm0sIE51bGxTZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBt
X2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSkpOwogICAgIG1fb2JqZWN0UHJvdG90eXBlLnNldCh2
bSwgdGhpcywgT2JqZWN0UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIE9iamVjdFByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBqc051bGwoKSkpKTsKQEAgLTUyMSw2ICs1MjMs
OSBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpz
TmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5j
VG9JbnRlZ2VyID0gSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxP
YmplY3RUb0ludGVnZXJDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyk7CiAgICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlz
LCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aCk7CiAgICAgSlNG
dW5jdGlvbiogcHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgdGhpcywgMCwgU3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KTsKKyAg
ICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0lzQm91bmRGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNy
ZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGlzQm91bmRGdW5jdGlvbik7CisgICAgSlNGdW5j
dGlvbiogcHJpdmF0ZUZ1bmNIYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpj
cmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCBoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pOwor
ICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jSW5zdGFuY2VPZiA9IEpTRnVuY3Rpb246OmNyZWF0
ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZik7CiAK
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8gc3RhdGljR2xvYmFsc1tdID0gewogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TmFOLCBqc05hTigpLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCkBAIC01MzUsNiArNTQwLDkgQEAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAj
IyBDb25zdHJ1Y3QKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PlR5cGVFcnJvclByaXZhdGVOYW1lLCBtX3R5cGVFcnJvckNvbnN0cnVjdG9yLmdldCgpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5TGVuZ3RoUHJpdmF0ZU5hbWUsIHByaXZhdGVG
dW5jVHlwZWRBcnJheUxlbmd0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAog
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+dHlwZWRBcnJheVNv
cnRQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5U29ydCwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+aXNCb3VuZEZ1bmN0aW9uUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSXNCb3VuZEZ1
bmN0aW9uLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb25Q
cml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNIYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24sIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmluc3RhbmNlT2ZQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJbnN0YW5j
ZU9mLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5CdWlsdGluTG9nUHJpdmF0ZU5hbWUsIGJ1aWx0
aW5Mb2csIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkFycmF5UHJpdmF0ZU5hbWUsIGFycmF5Q29u
c3RydWN0b3IsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPk51bWJlclByaXZhdGVOYW1lLCBudW1i
ZXJDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLApAQCAtODMy
LDYgKzg0MCw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVj
dC0+bV9hcnJheVByb3RvVmFsdWVzRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tX2luaXRpYWxpemVQcm9taXNlRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5k
KCZ0aGlzT2JqZWN0LT5tX25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24pOworICAgIHZpc2l0
b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1
bmN0aW9uKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV90aHJvd1R5cGVFcnJv
ckdldHRlclNldHRlcik7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbW9kdWxl
TG9hZGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgKaW5kZXggMDMyNTMyNDk4NWEwMzhlNjk3ODE0Yzk4MDc5YmNkZDQzZWI3NjcyOS4uM2Nl
ZmVlNmE0Zjg2ODlkZjAxNWYyZTdjNzdkMGFmNjkxZDYwNjY0NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0yMjIsNiArMjIyLDcgQEAg
cHJvdGVjdGVkOgogICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2FycmF5UHJvdG9WYWx1
ZXNGdW5jdGlvbjsKICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9pbml0aWFsaXplUHJv
bWlzZUZ1bmN0aW9uOwogICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX25ld1Byb21pc2VD
YXBhYmlsaXR5RnVuY3Rpb247CisgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fZnVuY3Rp
b25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb247CiAgICAgV3JpdGVCYXJyaWVyPEdldHRl
clNldHRlcj4gbV90aHJvd1R5cGVFcnJvckdldHRlclNldHRlcjsKIAogICAgIFdyaXRlQmFycmll
cjxNb2R1bGVMb2FkZXJPYmplY3Q+IG1fbW9kdWxlTG9hZGVyOwpAQCAtNDM4LDYgKzQzOSw3IEBA
IHB1YmxpYzoKICAgICBKU0Z1bmN0aW9uKiBhcnJheVByb3RvVmFsdWVzRnVuY3Rpb24oKSBjb25z
dCB7IHJldHVybiBtX2FycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbi5nZXQoKTsgfQogICAgIEpTRnVu
Y3Rpb24qIGluaXRpYWxpemVQcm9taXNlRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2luaXRp
YWxpemVQcm9taXNlRnVuY3Rpb24uZ2V0KCk7IH0KICAgICBKU0Z1bmN0aW9uKiBuZXdQcm9taXNl
Q2FwYWJpbGl0eUZ1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9uZXdQcm9taXNlQ2FwYWJpbGl0
eUZ1bmN0aW9uLmdldCgpOyB9CisgICAgSlNGdW5jdGlvbiogZnVuY3Rpb25Qcm90b0hhc0luc3Rh
bmNlU3ltYm9sRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0
YW5jZVN5bWJvbEZ1bmN0aW9uLmdldCgpOyB9CiAgICAgR2V0dGVyU2V0dGVyKiB0aHJvd1R5cGVF
cnJvckdldHRlclNldHRlcihWTSYgdm0pCiAgICAgewogICAgICAgICBpZiAoIW1fdGhyb3dUeXBl
RXJyb3JHZXR0ZXJTZXR0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5jcHAKaW5kZXggYTBmNzcxOTQ3YzA4ZjdlMTMyMTA5NjcyYmE4MzNjZDIxYjgyYmQzNC4uMDNl
ODhhYTZjOWZkZGUwNzczY2ViMjdjY2E3YjM1MDQxZTE0ODZiOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtMTQ1NywxOCArMTQ1Nyw0MCBAQCBjb25z
dCBIYXNoVGFibGVWYWx1ZSogSlNPYmplY3Q6OmZpbmRQcm9wZXJ0eUhhc2hFbnRyeShQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKQogICAgIHJldHVybiAwOwogfQogCi1ib29sIEpTT2JqZWN0Ojpo
YXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitib29sIEpTT2JqZWN0
OjpoYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUgaGFz
SW5zdGFuY2VWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworCisgICAgaWYgKCFo
YXNJbnN0YW5jZVZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgaGFzSW5zdGFuY2VWYWx1ZSAh
PSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5
bWJvbEZ1bmN0aW9uKCkpIHsKKyAgICAgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgICAgIENh
bGxUeXBlIGNhbGxUeXBlID0gSlNDOjpnZXRDYWxsRGF0YShoYXNJbnN0YW5jZVZhbHVlLCBjYWxs
RGF0YSk7CisgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKKyAgICAgICAg
ICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1l
dGVyRXJyb3JoYXNJbnN0YW5jZVZhbHVlTm90RnVuY3Rpb24oZXhlYywgdGhpcykpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJnczsKKyAgICAgICAgYXJncy5hcHBlbmQodmFsdWUpOworICAgICAgICBKU1ZhbHVl
IHJlc3VsdCA9IGNhbGwoZXhlYywgaGFzSW5zdGFuY2VWYWx1ZSwgY2FsbFR5cGUsIGNhbGxEYXRh
LCB0aGlzLCBhcmdzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b0Jvb2xlYW4oZXhlYyk7Cisg
ICAgfQorCiAgICAgVHlwZUluZm8gaW5mbyA9IHN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCk7CiAg
ICAgaWYgKGluZm8uaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSgpKQogICAgICAgICByZXR1
cm4gZGVmYXVsdEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBnZXQoZXhlYywgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLnByb3RvdHlwZSkpOwogICAgIGlmIChpbmZvLmltcGxlbWVudHNIYXNJbnN0YW5j
ZSgpKQogICAgICAgICByZXR1cm4gbWV0aG9kVGFibGUodm0pLT5jdXN0b21IYXNJbnN0YW5jZSh0
aGlzLCBleGVjLCB2YWx1ZSk7Ci0gICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlSW52
YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcihleGVjLCB0aGlzKSk7CisgICAgdm0udGhyb3dF
eGNlcHRpb24oZXhlYywgY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvck5vdEZ1
bmN0aW9uKGV4ZWMsIHRoaXMpKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgSlNPYmpl
Y3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBK
U1ZhbHVlIGhhc0luc3RhbmNlVmFsdWUgPSBnZXQoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmhhc0luc3RhbmNlU3ltYm9sKTsKKworICAgIHJldHVybiBoYXNJbnN0YW5jZShleGVjLCB2YWx1
ZSwgaGFzSW5zdGFuY2VWYWx1ZSk7Cit9CisKIGJvb2wgSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0
YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUgcHJvdG8pCiB7CiAg
ICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQpAQCAtMTQ4Nyw2ICsxNTA5LDE0IEBAIGJvb2wgSlNP
YmplY3Q6OmRlZmF1bHRIYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUs
IEpTVmFsdWUgcHJvdG8pCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZihFeGVjU3RhdGUqIGV4ZWMp
Cit7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApOworICAg
IEpTVmFsdWUgcHJvdG8gPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKKworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2Uo
ZXhlYywgdmFsdWUsIHByb3RvKSkpOworfQorCiB2b2lkIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eU5h
bWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIG9iamVjdC0+bWV0
aG9kVGFibGUoZXhlYy0+dm0oKSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBw
cm9wZXJ0eU5hbWVzLCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCmluZGV4IGFiZjVhNWJkOTZmN2UxNDJhZWQwOWY3N2EzMzlmNDNlODhhYTBmNmYuLjg2NzE2
ZmNlMmJkM2MzYmZkN2I2NTQ0MGFlZmVjNjU4NGY1ZTFkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtNDg1LDYgKzQ4NSw3IEBAIHB1YmxpYzoKIAogICAg
IEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBKU1ZhbHVlIGRlZmF1bHRWYWx1ZShjb25zdCBKU09i
amVjdCosIEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpOwogCisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgYm9vbCBoYXNJbnN0YW5jZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBK
U1ZhbHVlIGhhc0luc3RhbmNlVmFsdWUpOwogICAgIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRl
KiwgSlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZGVmYXVsdEhhc0luc3RhbmNlKEV4ZWNTdGF0
ZSosIEpTVmFsdWUsIEpTVmFsdWUgcHJvdG90eXBlUHJvcGVydHkpOwogCkBAIC05NzQsNiArOTc1
LDggQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCitKU19FWFBPUlRfUFJJVkFURSBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZihFeGVjU3RhdGUq
KTsKKwogaW5saW5lIEpTRmluYWxPYmplY3QqIEpTRmluYWxPYmplY3Q6OmNyZWF0ZSgKICAgICBF
eGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCdXR0ZXJmbHkqIGJ1dHRlcmZs
eSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUlu
Zm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAppbmRleCBj
YTExMjBjYmU1Y2Y0NWRhZjg1MTA5ZmUzMDEzYWI5MzU1ZWRjM2ZjLi4wNzE4YmE3NzM3MDk4MjI0
OTY1ZWNlMTMxNDZmMjAwMGM5ZjUwYTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGVJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNUeXBlSW5mby5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJh
Y3RvcjsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPSAx
OyAvLyBXZWJDb3JlIHVzZXMgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCB0byBtYWtlIGRvY3VtZW50
LmFsbCB1bmRldGVjdGFibGUuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW1wbGVtZW50c0hhc0lu
c3RhbmNlID0gMSA8PCAxOwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIE92ZXJyaWRlc0hhc0luc3Rh
bmNlID0gMSA8PCAyOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIE92ZXJyaWRlc0hhc0luc3RhbmNl
RmxhZyA9IDEgPDwgMjsgLy8gRml4TWU6IFRoaXMgaXMgb25seSB0cml2aWFsbHkgdXNlZCBieSB0
aGUgcnVudGltZSBhbmQgc2hvdWxkIGJlIHJlbW92ZWQ6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTIwMDUKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbXBsZW1lbnRz
RGVmYXVsdEhhc0luc3RhbmNlID0gMSA8PCAzOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIFR5cGVP
ZlNob3VsZENhbGxHZXRDYWxsRGF0YSA9IDEgPDwgNDsgLy8gTmVlZCB0aGlzIGZsYWcgaWYgeW91
IG92ZXJyaWRlIGdldENhbGxEYXRhKCkgYW5kIHlvdSB3YW50IHR5cGVvZiB0byB1c2UgdGhpcyB0
byBkZXRlcm1pbmUgaWYgaXQgc2hvdWxkIHNheSAiZnVuY3Rpb24iLiBDdXJyZW50bHkgd2UgYWx3
YXlzIHNldCB0aGlzIGZsYWcgd2hlbiB3ZSBvdmVycmlkZSBnZXRDYWxsRGF0YSgpLgogc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCA9IDEgPDwgNTsKQEAg
LTY4LDkgKzY4LDkgQEAgcHVibGljOgogICAgICAgICAsIG1fZmxhZ3MyKG91dE9mTGluZVR5cGVG
bGFncykKICAgICB7CiAgICAgICAgIC8vIE5vIG9iamVjdCB0aGF0IGRvZXNuJ3QgSW1wbGVtZW50
c0hhc0luc3RhbmNlIHNob3VsZCBvdmVycmlkZSBpdCEKLSAgICAgICAgQVNTRVJUKChtX2ZsYWdz
ICYgKEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlKSkgIT0gT3Zl
cnJpZGVzSGFzSW5zdGFuY2UpOworICAgICAgICBBU1NFUlQoKG1fZmxhZ3MgJiAoSW1wbGVtZW50
c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2VGbGFnKSkgIT0gT3ZlcnJpZGVzSGFz
SW5zdGFuY2UpOwogICAgICAgICAvLyBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlIG1lYW5z
IChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgJiAhT3ZlcnJpZGVzSGFzSW5zdGFuY2UpCi0gICAgICAg
IGlmICgobV9mbGFncyAmIChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNIYXNJbnN0
YW5jZSkpID09IEltcGxlbWVudHNIYXNJbnN0YW5jZSkKKyAgICAgICAgaWYgKChtX2ZsYWdzICYg
KEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlRmxhZykpID09IElt
cGxlbWVudHNIYXNJbnN0YW5jZSkKICAgICAgICAgICAgIG1fZmxhZ3MgfD0gSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZTsKICAgICB9CiAKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAg
IHVuc2lnbmVkIGZsYWdzKCkgY29uc3QgeyByZXR1cm4gKHN0YXRpY19jYXN0PHVuc2lnbmVkPiht
X2ZsYWdzMikgPDwgOCkgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9mbGFncyk7IH0KICAgICBi
b29sIG1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3Mx
KE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpOyB9CiAgICAgYm9vbCBpbXBsZW1lbnRzSGFzSW5zdGFu
Y2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKEltcGxlbWVudHNIYXNJbnN0YW5jZSk7
IH0KLSAgICBib29sIG92ZXJyaWRlc0hhc0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRP
bkZsYWdzMShPdmVycmlkZXNIYXNJbnN0YW5jZSk7IH0KKyAgICBib29sIG92ZXJyaWRlc0hhc0lu
c3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShPdmVycmlkZXNIYXNJbnN0YW5j
ZUZsYWcpOyB9CiAgICAgYm9vbCBpbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkgY29uc3Qg
eyByZXR1cm4gaXNTZXRPbkZsYWdzMShJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKTsgfQog
ICAgIGJvb2wgdHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhKCkgY29uc3QgeyByZXR1cm4gaXNT
ZXRPbkZsYWdzMShUeXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERhdGEpOyB9CiAgICAgYm9vbCBvdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoKSBjb25zdCB7IHJldHVybiBvdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QoaW5saW5lVHlwZUZsYWdzKCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dyaXRlQmFycmllci5oCmluZGV4IDBmNzBlMWVhMDBjNjIyMGFmZDgwMjc4OTY4
MWI5ZDk4Y2FhODRhOTYuLmI3MjdkMTg1ZTRkNzBlMTk5ZWZmY2UwZTFhY2EwNGNmOTUyODM1NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCkBAIC0x
NTIsMTQgKzE1Miw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzR2V0dGVyU2V0dGVyKCkgY29uc3Qg
eyByZXR1cm4gZ2V0KCkuaXNHZXR0ZXJTZXR0ZXIoKTsgfQogICAgIGJvb2wgaXNDdXN0b21HZXR0
ZXJTZXR0ZXIoKSBjb25zdCB7IHJldHVybiBnZXQoKS5pc0N1c3RvbUdldHRlclNldHRlcigpOyB9
CiAgICAgCi0gICAgSlNWYWx1ZSogc2xvdCgpCisgICAgSlNWYWx1ZSogc2xvdCgpIGNvbnN0CiAg
ICAgeyAKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgRW5jb2RlZEpTVmFsdWUqIHY7Ci0g
ICAgICAgICAgICBKU1ZhbHVlKiBzbG90OwotICAgICAgICB9IHU7Ci0gICAgICAgIHUudiA9ICZt
X3ZhbHVlOwotICAgICAgICByZXR1cm4gdS5zbG90OworICAgICAgICByZXR1cm4gYml0d2lzZV9j
YXN0PEpTVmFsdWUqPigmbV92YWx1ZSk7CiAgICAgfQogICAgIAogICAgIGludDMyX3QqIHRhZ1Bv
aW50ZXIoKSB7IHJldHVybiAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURlc2NyaXB0b3IqPigm
bV92YWx1ZSktPmFzQml0cy50YWc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYueWFtbCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbApp
bmRleCBjOTUyZDMyNTMwMTNiYzQyMjgwMzU0YTc0OWYwZjVkNzFlNzExODkyLi5mNzc3ODg0ODA5
Y2Q2Y2ZkOWQzNzFiYjhjOGIyZDU2M2ZkNjA0M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2LnlhbWwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi55YW1sCkBAIC0xMTgzLDcgKzExODMsNyBAQAogLSBwYXRoOiBlczYvV2Vha1NldF9pdGVy
YXRvcl9jbG9zaW5nLmpzCiAgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVzNi93ZWxsLWtu
b3duX3N5bWJvbHNfU3ltYm9sLmhhc0luc3RhbmNlLmpzCi0gIGNtZDogcnVuRVM2IDpmYWlsCisg
IGNtZDogcnVuRVM2IDpub3JtYWwKIC0gcGF0aDogZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1i
b2wuaXNDb25jYXRTcHJlYWRhYmxlLmpzCiAgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVz
Ni93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLm1hdGNoLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTdhOGY2OWFhNmU4
OTlkYmM5ZTBiODEyZjlhNmZhNTMzNmM5MTg5Yy4uNDk4M2NiNDRjMTM5Mzc4MjNmZWFjNDY4OTIx
YzRjZTc0MDYxMjk0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTEyLTA4ICBLZWl0aCBN
aWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtFUzZdIEFkZCBzdXBw
b3J0IGZvciBTeW1ib2wuaGFzSW5zdGFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MTgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEZpeCB0ZXN0cyB0byByZWZsZWN0IHRoZSBjaGFuZ2VzIHRvIGlu
c3RhbmNlb2YgaW4gRVM2LgorCisgICAgICAgIEFkZGVkIGEgbmV3IHJlZ3Jlc3Npb24gdGVzdCBm
b3IgYm91bmQgZnVuY3Rpb25zIGluIGluc3RhbmNlb2YKKyAgICAgICAgYXMgdGhlIHBlcmZvbWFu
Y2Ugb24gYm91bmQgZnVuY3Rpb25zIHNob3VsZCwgdG8gc29tZSBkZWdyZWUsCisgICAgICAgIHJl
ZmxlY3QgdGhlIHBlcmZvcm1hbmNlIG9uIEMtQVBJIHVzZXJzLgorCisgICAgICAgICoganMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2V4Y2Vw
dGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9leGNlcHRpb24t
aW5zdGFuY2VvZi1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvaW5zdGFuY2Utb2YtaW1tZWRp
YXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRP
d25Qcm9wZXJ0eU5hbWVzLmpzOgorCiAyMDE1LTEyLTA3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBNaXNjZWxsYW5lb3VzIHRlc3QgY2xl
YW51cC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5h
bWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5h
bWVzLWV4cGVjdGVkLnR4dAppbmRleCBjYWUyMTliYWY5MmI1OTUwYmU3N2Y5NDU3ZGEwMmNjNTE5
NjdmOTgzLi43ZjVkZTVmODIyNzhmYjcxOThhODkyOTE2MjI1MTJlM2UwZTI4ZGE4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0
ZWQudHh0CkBAIC02MSw3ICs2MSw3IEBAIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhF
cnJvcikgaXMgWydsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQogUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKEVycm9yLnByb3RvdHlwZSkgaXMgWydjb25zdHJ1Y3RvcicsICdtZXNz
YWdlJywgJ25hbWUnLCAndG9TdHJpbmcnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVz
KE1hdGgpIGlzIFsnRScsJ0xOMTAnLCdMTjInLCdMT0cxMEUnLCdMT0cyRScsJ1BJJywnU1FSVDFf
MicsJ1NRUlQyJywnYWJzJywnYWNvcycsJ2Fjb3NoJywnYXNpbicsJ2FzaW5oJywnYXRhbicsJ2F0
YW4yJywnYXRhbmgnLCdjYnJ0JywnY2VpbCcsJ2NsejMyJywnY29zJywnY29zaCcsJ2V4cCcsJ2V4
cG0xJywnZmxvb3InLCdmcm91bmQnLCdoeXBvdCcsJ2ltdWwnLCdsb2cnLCdsb2cxMCcsJ2xvZzFw
JywnbG9nMicsJ21heCcsJ21pbicsJ3BvdycsJ3JhbmRvbScsJ3JvdW5kJywnc2lnbicsJ3Npbics
J3NpbmgnLCdzcXJ0JywndGFuJywndGFuaCcsJ3RydW5jJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJv
cGVydHlOYW1lcyhKU09OKSBpcyBbJ3BhcnNlJywgJ3N0cmluZ2lmeSddCi1QQVNTIGdldFNvcnRl
ZE93blByb3BlcnR5TmFtZXMoU3ltYm9sKSBpcyBbJ2ZvcicsICdpdGVyYXRvcicsICdrZXlGb3In
LCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3RyaW5nVGFnJywgJ3Vuc2NvcGFi
bGVzJ10KK1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTeW1ib2wpIGlzIFsnZm9yJywg
J2hhc0luc3RhbmNlJywgJ2l0ZXJhdG9yJywgJ2tleUZvcicsICdsZW5ndGgnLCAnbmFtZScsICdw
cm90b3R5cGUnLCAndG9TdHJpbmdUYWcnLCAndW5zY29wYWJsZXMnXQogUEFTUyBnZXRTb3J0ZWRP
d25Qcm9wZXJ0eU5hbWVzKFN5bWJvbC5wcm90b3R5cGUpIGlzIFsnY29uc3RydWN0b3InLCAndG9T
dHJpbmcnLCAndmFsdWVPZiddCiBQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignTmFO
JykgIT0gLTEgaXMgdHJ1ZQogUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ0luZmlu
aXR5JykgIT0gLTEgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9u
LWZvci1ub25vYmplY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWZv
ci1ub25vYmplY3QtZXhwZWN0ZWQudHh0CmluZGV4IDlmOWFlNjljODZjZTlmMGVhYTcxMGZmMGE2
YTBkNTUzYTE4ZTBhMmMuLjc3NGQyMjdkMDM1YWRmMTdmM2JjZTA5ODA1MTFmMmUzMmU0Mjc1ZTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBl
Y3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogUEFT
UyBuZXcge30udW5kZWZpbmVkIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBp
cyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IHt9LnVuZGVmaW5lZCcpLgotUEFT
UyAxIGluc3RhbmNlb2Yge30udW5kZWZpbmVkIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHt9
LnVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzEgaW5zdGFuY2VvZiB7
fS51bmRlZmluZWQnKS4KK1BBU1MgMSBpbnN0YW5jZW9mIHt9LnVuZGVmaW5lZCB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4g
b2JqZWN0LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQK
aW5kZXggZWQ2OGI2Y2M4YTA3YTVhNzUyOTU5NTczZTMzZTE4NWFlYTMxOTViNi4uMGVmZDdhODZl
MDljNDcwMGQ0Y2QxZDY4ZWQyOTlmZmZhODMyN2M5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
anMvZXhjZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pz
L2V4Y2VwdGlvbi1pbnN0YW5jZW9mLWV4cGVjdGVkLnR4dApAQCAtMywxMSArMywxMSBAQCBUZXN0
IGZvciBlcnJvciBtZXNzYWdlcyBmb3IgaW5zdGFuY2VvZgogT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgogCiAKLVBBU1MgJ2luc3RhbmNlb2YnIGluc3RhbmNlb2YgICAgJ2luc3RhbmNlb2YnIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6ICJpbnN0YW5jZW9mIiBpcyBub3QgYSBmdW5jdGlvbi4g
KGV2YWx1YXRpbmcgJydpbnN0YW5jZW9mJyBpbnN0YW5jZW9mICAgICdpbnN0YW5jZW9mJycpLgot
UEFTUyAyMCBpbnN0YW5jZW9mICAgICAnaGVsbG8nICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogJ2hlbGxvJyBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzIwIGluc3RhbmNlb2Yg
ICAgICdoZWxsbycnKS4KK1BBU1MgJ2luc3RhbmNlb2YnIGluc3RhbmNlb2YgICAgJ2luc3RhbmNl
b2YnIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5j
ZW9mIGlzIG5vdCBhbiBvYmplY3QuCitQQVNTIDIwIGluc3RhbmNlb2YgICAgICdoZWxsbycgICB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBp
cyBub3QgYW4gb2JqZWN0LgogUEFTUyAyMCBpbnN0YW5jZW9mICAgICB7fSAgIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IHt9IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnMjAgaW5z
dGFuY2VvZiAgICAge30nKS4KLVBBU1MgMjAgaW5zdGFuY2VvZiAgICAge30uZm9vICB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiB7fS5mb28gaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5n
ICcyMCBpbnN0YW5jZW9mICAgICB7fS5mb28nKS4KLVBBU1MgMjAgaW5zdGFuY2VvZiAgICAgdHJ1
ZSAgICAgICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB0cnVlIGlzIG5vdCBhIGZ1bmN0aW9u
LiAoZXZhbHVhdGluZyAnMjAgaW5zdGFuY2VvZiAgICAgdHJ1ZScpLgorUEFTUyAyMCBpbnN0YW5j
ZW9mICAgICB7fS5mb28gIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lk
ZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCitQQVNTIDIwIGluc3RhbmNlb2YgICAg
IHRydWUgICAgICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9m
IGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvaW5zdGFu
Y2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9pbnN0YW5jZS1v
Zi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4dAppbmRleCAxMTAwZGI4YWI3YmM5YWRjMGU2ZTRmYjZk
MTFlZDk1YTZjZWM4ZDk1Li5lNmVmYzZhNTcxMTVmZGY4MDk0NGQxNTNjNmFmZGRhMjI2ZGI2NDUx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9pbnN0YW5jZS1vZi1pbW1lZGlhdGVzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9pbnN0YW5jZS1vZi1pbW1lZGlhdGVzLWV4cGVj
dGVkLnR4dApAQCAtMyw5ICszLDkgQEAgVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBpbnN0YW5j
ZSBvZiBiZWhhdmVzIGNvcnJlY3RseSB3aGVuIHRoZSB2YWx1ZSwgY29uc3RydWMKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTICgxIGluc3RhbmNlb2YgMSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogMSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzEgaW5zdGFu
Y2VvZiAxJykuCi1QQVNTICh7fSBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IDEgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICd7fSBpbnN0YW5jZW9mIDEnKS4K
LVBBU1MgKG9iaiBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IDEgaXMg
bm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICdvYmogaW5zdGFuY2VvZiAxJykuCitQQVNTICgx
IGluc3RhbmNlb2YgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRl
IG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KK1BBU1MgKHt9IGluc3RhbmNlb2YgMSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2Yg
aXMgbm90IGFuIG9iamVjdC4KK1BBU1MgKG9iaiBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmpl
Y3QuCiBQQVNTICgxIGluc3RhbmNlb2Yge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHt9
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnMSBpbnN0YW5jZW9mIHt9JykuCiBQQVNT
ICh7fSBpbnN0YW5jZW9mIHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fSBpcyBub3Qg
YSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJ3t9IGluc3RhbmNlb2Yge30nKS4KIFBBU1MgKG9iaiBp
bnN0YW5jZW9mIHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fSBpcyBub3QgYSBmdW5j
dGlvbi4gKGV2YWx1YXRpbmcgJ29iaiBpbnN0YW5jZW9mIHt9JykuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMgYi9M
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMK
aW5kZXggY2I1ZWMyNGZhZjkwN2Y4MDIzNzk4NWY4YzhhY2U4MzhkZDY4ZTA4OS4uNzRiY2I3OGE1
MjBjOGM3MGZkZGU4NjQwNzY4MTgyYzA3MjM2NTNhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
anMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCisrKyBiL0xheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwpAQCAt
NzAsNyArNzAsNyBAQCB2YXIgZXhwZWN0ZWRQcm9wZXJ0eU5hbWVzU2V0ID0gewogICAgICJFcnJv
ci5wcm90b3R5cGUiOiAiWydjb25zdHJ1Y3RvcicsICdtZXNzYWdlJywgJ25hbWUnLCAndG9TdHJp
bmcnXSIsCiAgICAgIk1hdGgiOiAiWydFJywnTE4xMCcsJ0xOMicsJ0xPRzEwRScsJ0xPRzJFJywn
UEknLCdTUVJUMV8yJywnU1FSVDInLCdhYnMnLCdhY29zJywnYWNvc2gnLCdhc2luJywnYXNpbmgn
LCdhdGFuJywnYXRhbjInLCdhdGFuaCcsJ2NicnQnLCdjZWlsJywnY2x6MzInLCdjb3MnLCdjb3No
JywnZXhwJywnZXhwbTEnLCdmbG9vcicsJ2Zyb3VuZCcsJ2h5cG90JywnaW11bCcsJ2xvZycsJ2xv
ZzEwJywnbG9nMXAnLCdsb2cyJywnbWF4JywnbWluJywncG93JywncmFuZG9tJywncm91bmQnLCdz
aWduJywnc2luJywnc2luaCcsJ3NxcnQnLCd0YW4nLCd0YW5oJywndHJ1bmMnXSIsCiAgICAgIkpT
T04iOiAiWydwYXJzZScsICdzdHJpbmdpZnknXSIsCi0gICAgIlN5bWJvbCI6ICJbJ2ZvcicsICdp
dGVyYXRvcicsICdrZXlGb3InLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3Ry
aW5nVGFnJywgJ3Vuc2NvcGFibGVzJ10iLAorICAgICJTeW1ib2wiOiAiWydmb3InLCAnaGFzSW5z
dGFuY2UnLCAnaXRlcmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlw
ZScsICd0b1N0cmluZ1RhZycsICd1bnNjb3BhYmxlcyddIiwKICAgICAiU3ltYm9sLnByb3RvdHlw
ZSI6ICJbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267058</attachid>
            <date>2015-12-09 17:33:14 -0800</date>
            <delta_ts>2015-12-11 12:56:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151839-20151209173242.patch</filename>
            <type>text/plain</type>
            <size>112677</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MjA2MWIwYTQyNzZkOGNiYWIwYTJkZGVmYWQ3MDJlMjgwMTA2NmY0Li42MWMxNmM2ZjdiOWU1NzUz
NmJlZTk1YjRhNTcxYjVmOTI0NDMyOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNTIgQEAKKzIwMTUtMTItMDggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5jZSwgdW5mb3J0dW5hdGVseSBp
biBvcmRlciB0byBwcmV2ZW50CisgICAgICAgIHJlZ3Jlc3Npb25zIHNldmVyYWwgbmV3IGJ5dGVj
b2RlcyBhbmQgREZHIElSIG5vZGVzIHdlcmUgbmVjZXNzYXJ5LiBCZWZvcmUsIFN5bWJvbC5oYXNJ
bnN0YW5jZQorICAgICAgICB3aGVuIGV4ZWN1dGluZyBhbiBpbnN0YW5jZW9mIGV4cHJlc3Npb24g
d2Ugd291bGQgZW1pdCB0aHJlZSBieXRlY29kZXM6IG92ZXJyaWRlc19oYXNfaW5zdGFuY2UsIGdl
dF9ieV9pZCwKKyAgICAgICAgdGhlbiBpbnN0YW5jZW9mLiBBcyB0aGUgc3BlYyBoYXMgY2hhbmdl
ZCwgd2UgZW1pdCBhIG1vcmUgY29tcGxpY2F0ZWQgc2V0IG9mIGJ5dGVjb2RlcyBpbiBhZGRpdGlv
biB0byBzb21lCisgICAgICAgIG5ldyBvbmVzLiBGaXJzdCB0aGUgcm9sZSBvZiBvdmVycmlkZXNf
aGFzX2luc3RhbmNlIGFuZCBpdHMgY29ycmVzcG9uZGluZyBERkcgbm9kZSBoYXZlIGNoYW5nZWQu
IE5vdyBpdCByZXR1cm5zCisgICAgICAgIGEganMtYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIg
dGhlIFJIUyBvZiB0aGUgaW5zdGFuY2VvZiBleHByZXNzaW9uIChmcm9tIGhlcmUgb24gY2FsbGVk
IHRoZSBjb25zdHJ1Y3RvciBmb3Igc2ltcGxpY2l0eSkKKyAgICAgICAgbmVlZHMgbm9uLWRlZmF1
bHQgYmVoYXZpb3IgZm9yIHJlc29sdmluZyB0aGUgZXhwcmVzc2lvbi4gaS5lLiBUaGUgY29uc3Ry
dWN0b3IgaGFzIGEgU3ltYm9sLmhhc0luc3RhbmNlIHRoYXQgZGlmZmVycyBmcm9tIHRoZSBvbmUg
b24KKyAgICAgICAgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0gb3IgaXMg
YSBib3VuZC9DLUFQSSBmdW5jdGlvbi4gT25jZSB3ZSBnZXQgdG8gdGhlIERGRyB0aGlzIG5vZGUg
aXMgZ2VuZXJhbGx5IGVsaW1pbmF0ZWQgYXMKKyAgICAgICAgd2UgY2FuIHByb3ZlIHRoZSB2YWx1
ZSBvZiBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgYSBjb25zdGFudC4gVGhlIHNlY29uZCBuZXcgYnl0
ZWNvZGUgaXMgaW5zdGFuY2VvZl9jdXN0b20uIGluc250YW5jZW9mX2N1c3RvbSwganVzdAorICAg
ICAgICBlbWl0cyBhIGNhbGwgdG8gc2xvdyBwYXRoIGNvZGUgdGhhdCBjb21wdXRlcyB0aGUgcmVz
dWx0LgorCisgICAgICAgIEluIHRoZSBERkcsIHRoZXJlIGlzIGFsc28gYSBuZXcgbm9kZSwgQ2hl
Y2tUeXBlSW5mb0ZsYWdzLCB3aGljaCBjaGVja3MgdGhlIHR5cGUgaW5mbyBmbGFncyBhcmUgY29u
c2lzdGVudCB3aXRoIHRoZSBvbmVzIHByb3ZpZGVkIGFuZAorICAgICAgICBPU1IgZXhpdHMgaWYg
dGhlIGZsYWdzIGFyZSBub3QuIEFkZGl0aW9uYWxseSwgd2UgYXR0ZW1wdCB0byBwcm92ZSB0aGF0
IHRoZSByZXN1bHQgb2YgQ2hlY2tIYXNWYWx1ZSB3aWxsIGJlIGEgY29uc3RhbnQgYW5kIHRyYW5z
Zm9ybQorICAgICAgICBpdCBpbnRvIGEgQ2hlY2tUeXBlSW5mb0ZsYWdzIGZvbGxvd2VkIGJ5IGEg
SlNDb25zdGFudC4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAg
ICogYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanM6CisgICAgICAgIChzeW1ib2xIYXNJbnN0
YW5jZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6aXNCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6CisgICAgICAg
IChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpjb21w
dXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2su
Y3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAgICAgICog
Ynl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2luZFRvU3RyaW5nKToK
KyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1ByZWNp
c2VKdW1wVGFyZ2V0cy5jcHA6CisgICAgICAgIChKU0M6OmdldEp1bXBUYXJnZXRzRm9yQnl0ZWNv
ZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0T3ZlcnJpZGVz
SGFzSW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEluc3Rh
bmNlT2ZDdXN0b20pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNr
SGFzSW5zdGFuY2UpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAg
ICAgICAoSlNDOjpJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAg
ICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBo
YXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3BwOgorICAg
ICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHSGVhcExvY2F0aW9u
Lmg6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNDZWxsT3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzVHlwZUluZm9PcGVy
YW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjp0eXBlSW5mb09wZXJhbmQpOgorICAgICAg
ICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
Q2hlY2tUeXBlSW5mb0ZsYWdzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUluc3RhbmNlT2ZDdXN0b20pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoK
KyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja1R5cGVJbmZvRmxh
Z3MpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVJbnN0
YW5jZU9mQ3VzdG9tKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlQ2hlY2tIYXNJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChK
U0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoK
KyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVy
YXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfaW5zdGFuY2VvZik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9m
X2N1c3RvbSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZik6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20pOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVkLgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9pbnN0YW5jZW9mKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3Vz
dG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mX2N1c3RvbSk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5jZSk6IERl
bGV0ZWQuCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9M
TEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhf
REVDTCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
OgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6
OmludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIpOgorICAgICAgICAoSlND
OjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZk5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOgor
ICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZmhhc0luc3RhbmNlVmFsdWVO
b3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlSW52YWxpZElu
c3RhbmNlb2ZQYXJhbWV0ZXJFcnJvck5vdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
SW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcmhhc0luc3RhbmNlVmFsdWVOb3RGdW5jdGlv
bik6CisgICAgICAgIChKU0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlv
blByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiBydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3Bw
OgorICAgICAgICAoSlNDOjppc0JvdW5kRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpoYXNJbnN0
YW5jZUJvdW5kRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6Omhhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJpdmF0ZUZ1bmNJbnN0
YW5jZU9mKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGlt
ZS9KU1R5cGVJbmZvLmg6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpUeXBlSW5mbyk6CisgICAg
ICAgIChKU0M6OlR5cGVJbmZvOjpvdmVycmlkZXNIYXNJbnN0YW5jZSk6CisgICAgICAgICogcnVu
dGltZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTxVbmtu
b3duPjo6c2xvdCk6CisgICAgICAgICogdGVzdHMvZXM2LnlhbWw6CisKIDIwMTUtMTItMDkgIFNh
YW0gYmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGdlbmVyYXRv
cnMnIGZlYXR1cmVzLmpzb24gdG8gaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIGEgc3BlYyBjb21wbGlh
bnQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0LmgKaW5kZXggYTFhNzdmZDg4YWQzYTNhOWMyYjVkZjc5OGM3NzE3YTUwNDJjZTFhYy4u
MmI0NzM0ZGI0NDdlYTkxNDc1ZmEzODZiMzBjOWIwN2M1ODdkZDJjNyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBw
cm90ZWN0ZWQ6CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIFBhcmVudCBCYXNlOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
UHJvaGliaXRzUHJvcGVydHlDYWNoaW5nIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVy
byB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlIHwgT3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lcyB8IFR5cGVPZlNob3VsZENhbGxHZXRDYWxsRGF0YTsKKyAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFn
cyB8IFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNIYXNJbnN0YW5jZUZsYWcg
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgVHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRh
OwogCiAgICAgfkpTQ2FsbGJhY2tPYmplY3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpzCmluZGV4IDFhYTAyNDIyYjE4MDRl
ZWZjMDM2ZjU1Y2ExZTI1ZWE3ZmMxMzBmMmQuLjM2NGJjNDMyODgyNTg0MzFlMGI2YjZiZDEyMzM2
NjE5YmRhYzA1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9G
dW5jdGlvblByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
RnVuY3Rpb25Qcm90b3R5cGUuanMKQEAgLTM2LDMgKzM2LDE4IEBAIGZ1bmN0aW9uIGFwcGx5KHRo
aXNWYWx1ZSwgYXJndW1lbnRWYWx1ZXMpCiAKICAgICByZXR1cm4gdGhpcy5AYXBwbHkodGhpc1Zh
bHVlLCBhcmd1bWVudFZhbHVlcyk7CiB9CisKKy8vIEZJWE1FOiB0aGlzIHNob3VsZCBoYXZlIGEg
ZGlmZmVyZW50IG5hbWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTEzNjMKK2Z1bmN0aW9uIHN5bWJvbEhhc0luc3RhbmNlKHZhbHVlKQoreworICAgICJ1c2Ugc3Ry
aWN0IjsKKworICAgIGlmICh0eXBlb2YgdGhpcyAhPT0gImZ1bmN0aW9uIikKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKEBpc0JvdW5kRnVuY3Rpb24odGhpcykpCisgICAgICAgIHJl
dHVybiBAaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKHRoaXMsIHZhbHVlKTsKKworICAgIGxldCB0
YXJnZXQgPSB0aGlzLnByb3RvdHlwZTsKKyAgICByZXR1cm4gQGluc3RhbmNlT2YodmFsdWUsIHRh
cmdldCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVCYXNpY0Jsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUJhc2ljQmxvY2suY3BwCmluZGV4IDU5NjA2NGM0MDY4MjQ5NzgwODljNDY0M2YxYzNkZmJk
MDUzNGI5OWYuLmYzMjlkMGIwZjg5MmRjZTBiMDM4ZWYxZTNlYzliMDNmNDJjZWVjNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJhc2ljQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJhc2ljQmxv
Y2suY3BwCkBAIC01OCw3ICs1OCw2IEBAIHN0YXRpYyBib29sIGlzQnJhbmNoKE9wY29kZUlEIG9w
Y29kZUlEKQogICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbToKICAgICBjYXNlIG9wX3N3aXRjaF9jaGFy
OgogICAgIGNhc2Ugb3Bfc3dpdGNoX3N0cmluZzoKLSAgICBjYXNlIG9wX2NoZWNrX2hhc19pbnN0
YW5jZToKICAgICBjYXNlIG9wX3NhdmU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1
bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpz
b24KaW5kZXggYmNjYWIwNGNkOWZiODBjNzQwMjA3NTE0MDRjNDkzMjYxODM3YWRjZC4uMDUzYjhk
YzliODY0ZjFiODZiNGNlYzdhYTYwMWY3Y2UyZjAzZjJlNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtNDUsOCArNDUsOSBAQAog
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfYml0YW5kIiwgImxlbmd0aCIgOiA1IH0sCiAgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9iaXR4b3IiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2JpdG9yIiwgImxlbmd0aCIgOiA1IH0sCi0gICAgICAgICAgICB7
ICJuYW1lIiA6ICJvcF9jaGVja19oYXNfaW5zdGFuY2UiLCAibGVuZ3RoIiA6IDUgfSwKKyAgICAg
ICAgICAgIHsgIm5hbWUiIDogIm9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UiLCAibGVuZ3RoIiA6
IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2luc3RhbmNlb2YiLCAibGVuZ3RoIiA6
IDQgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2luc3RhbmNlb2ZfY3VzdG9tIiwgImxl
bmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90eXBlb2YiLCAibGVuZ3Ro
IiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2lzX3VuZGVmaW5lZCIsICJsZW5n
dGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaXNfYm9vbGVhbiIsICJsZW5n
dGgiIDogMyB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaAppbmRleCBkOGNjYzY3ZDg0NjhmNDE2ZGFlMWM5NDBiMGY3MTRjMmEyZTljYTc5Li45
ZWRhOTM3MjQ4Yzg5NTdlYjE4M2QxMjQxMmQyZjhmM2RkNWE0NTlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaApAQCAtMTY5LDcgKzE2OSw2
IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCgKICAgICBjYXNlIG9wX2dldF9i
eV92YWw6CiAgICAgY2FzZSBvcF9pbjoKICAgICBjYXNlIG9wX2luc3RhbmNlb2Y6Ci0gICAgY2Fz
ZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CiAgICAgY2FzZSBvcF9hZGQ6CiAgICAgY2FzZSBvcF9t
dWw6CiAgICAgY2FzZSBvcF9kaXY6CkBAIC0xOTUsNiArMTk0LDggQEAgdm9pZCBjb21wdXRlVXNl
c0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rp
b24sIG9wY29kZUlELCBpbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQorICAgIGNhc2Ugb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZToKKyAgICBjYXNlIG9w
X2luc3RhbmNlb2ZfY3VzdG9tOgogICAgIGNhc2Ugb3BfaGFzX3N0cnVjdHVyZV9wcm9wZXJ0eToK
ICAgICBjYXNlIG9wX2NvbnN0cnVjdF92YXJhcmdzOgogICAgIGNhc2Ugb3BfY2FsbF92YXJhcmdz
OgpAQCAtMzUwLDggKzM1MSw5IEBAIHZvaWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldChD
b2RlQmxvY2sqIGNvZGVCbG9jaywgQnl0ZWNvZGVCYXNpY0Jsb2NrKiBibG9jCiAgICAgY2FzZSBv
cF9jb25zdHJ1Y3Q6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6CiAgICAgY2FzZSBvcF9nZXRfYXJy
YXlfbGVuZ3RoOgotICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgorICAgIGNhc2Ugb3Bf
b3ZlcnJpZGVzX2hhc19pbnN0YW5jZToKICAgICBjYXNlIG9wX2luc3RhbmNlb2Y6CisgICAgY2Fz
ZSBvcF9pbnN0YW5jZW9mX2N1c3RvbToKICAgICBjYXNlIG9wX2dldF9ieV92YWw6CiAgICAgY2Fz
ZSBvcF90eXBlb2Y6CiAgICAgY2FzZSBvcF9pc191bmRlZmluZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGEyZjMyNmJmMWRjYTJjMmUwOTg2
OGZmOTNiMDNlNTJiM2NhMWFiN2YuLjdiYWY5M2M5ZDk0ZmFmOGI3OTNmYzhmMzY3ODI3YmQwYTk2
ZGM3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CkBAIC0xMDEzLDEzICsxMDEzLDEyIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAg
ICAgICAgICAgICArK2l0OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAg
Y2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6IHsKKyAgICAgICAgY2FzZSBvcF9vdmVycmlkZXNf
aGFzX2luc3RhbmNlOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50
IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQp
LT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBleGVjLCBs
b2NhdGlvbiwgaXQsICJjaGVja19oYXNfaW5zdGFuY2UiKTsKLSAgICAgICAgICAgIG91dC5wcmlu
dGYoIiVzLCAlcywgJXMsICVkKC0+JWQpIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSwgb2Zmc2V0LCBsb2Nh
dGlvbiArIG9mZnNldCk7CisgICAgICAgICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBleGVj
LCBsb2NhdGlvbiwgaXQsICJvdmVycmlkZXNfaGFzX2luc3RhbmNlIik7CisgICAgICAgICAgICBv
dXQucHJpbnRmKCIlcywgJXMsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2luc3RhbmNlb2Y6IHsKQEAgLTEwMzAs
NiArMTAyOSwxNSBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAg
b3V0LnByaW50ZigiJXMsICVzLCAlcyIsIHJlZ2lzdGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUocjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIyKS5kYXRhKCkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBvcF9pbnN0YW5jZW9mX2N1c3RvbTogewor
ICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQg
cjEgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCByMiA9ICgrK2l0KS0+dS5v
cGVyYW5kOworICAgICAgICAgICAgaW50IHIzID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAg
ICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJpbnN0YW5j
ZW9mX2N1c3RvbSIpOworICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcywgJXMiLCBy
ZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShyMikuZGF0YSgpLCByZWdpc3Rlck5hbWUocjMpLmRhdGEoKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Vuc2lnbmVkOiB7CiAgICAgICAgICAg
ICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJ1bnNpZ25lZCIpOwogICAg
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvRXhpdEtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5k
LmNwcAppbmRleCAyNTI0MzAwZjczMzc2OWVkOWJlMDAxZDc2NjBmMzY4NTliNmQ4OTA2Li4zMGM1
ZTY0MWE3OTY2NjgyZGNiYjc3MDQyZjUzMGFmMzQyNTEzMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKQEAgLTUwLDYgKzUwLDggQEAgY29uc3QgY2hh
ciogZXhpdEtpbmRUb1N0cmluZyhFeGl0S2luZCBraW5kKQogICAgICAgICByZXR1cm4gIkJhZENv
bnN0YW50Q2FjaGUiOwogICAgIGNhc2UgQmFkSW5kZXhpbmdUeXBlOgogICAgICAgICByZXR1cm4g
IkJhZEluZGV4aW5nVHlwZSI7CisgICAgY2FzZSBCYWRUeXBlSW5mb0ZsYWdzOgorICAgICAgICBy
ZXR1cm4gIkJhZFR5cGVJbmZvRmxhZ3MiOwogICAgIGNhc2UgT3ZlcmZsb3c6CiAgICAgICAgIHJl
dHVybiAiT3ZlcmZsb3ciOwogICAgIGNhc2UgTmVnYXRpdmVaZXJvOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAppbmRleCA2ZjhjNTEyMDA3MDA1MDViZjkxZGVmNzQ5
MDAzZTMwMDVlM2Y3MTg2Li43MDBkMzg4MWY0MTcyODIxYWY4OTdlY2NkNWU5ZWE4Zjc1MzUxNDg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaApAQCAtMzcsNiAr
MzcsNyBAQCBlbnVtIEV4aXRLaW5kIDogdWludDhfdCB7CiAgICAgQmFkQ2FjaGUsIC8vIFdlIGV4
aXRlZCBiZWNhdXNlIGFuIGlubGluZSBjYWNoZSB3YXMgd3JvbmcuCiAgICAgQmFkQ29uc3RhbnRD
YWNoZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSBjYWNoZSBvbiBhIHdlYWsgY29uc3RhbnQgKHVz
dWFsbHkgYSBwcm90b3R5cGUpIHdhcyB3cm9uZy4KICAgICBCYWRJbmRleGluZ1R5cGUsIC8vIFdl
IGV4aXRlZCBiZWNhdXNlIGFuIGluZGV4aW5nIHR5cGUgd2FzIHdyb25nLgorICAgIEJhZFR5cGVJ
bmZvRmxhZ3MsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3Vt
cHRpb24gYWJvdXQgd2hhdCBUeXBlSW5mbyBmbGFncyB3ZSB3b3VsZCBzZWUuCiAgICAgT3ZlcmZs
b3csIC8vIFdlIGV4aXRlZCBiZWNhdXNlIG9mIG92ZXJmbG93LgogICAgIE5lZ2F0aXZlWmVybywg
Ly8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgZW5jb3VudGVyZWQgbmVnYXRpdmUgemVyby4KICAgICBJ
bnQ1Mk92ZXJmbG93LCAvLyBXZSBleGl0ZWQgYmVjYXVzZSBvZiBhbiBJbnQ1MiBvdmVyZmxvdy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRh
cmdldHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFy
Z2V0cy5jcHAKaW5kZXggMmJiZjMxMzQ0NTZhOWFlNTJhNjE5MjhiYzRhZTA3MTM1ZWE2MWUzYy4u
ZTJjYjAwMDQ4Mzc5NGJhOTJkNTEwZGNmNWZhOTk0ODg1YTIzZGMzZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAKQEAg
LTc0LDkgKzc0LDYgQEAgc3RhdGljIHZvaWQgZ2V0SnVtcFRhcmdldHNGb3JCeXRlY29kZU9mZnNl
dChDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW50ZXJwcmV0ZXIqIGkKICAgICAgICAgb3V0LmFwcGVu
ZChieXRlY29kZU9mZnNldCArIGN1cnJlbnRbMl0udS5vcGVyYW5kKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgotICAgICAgICBvdXQuYXBw
ZW5kKGJ5dGVjb2RlT2Zmc2V0ICsgY3VycmVudFs0XS51Lm9wZXJhbmQpOwotICAgICAgICBicmVh
azsKICAgICBjYXNlIG9wX2xvb3BfaGludDoKICAgICAgICAgb3V0LmFwcGVuZChieXRlY29kZU9m
ZnNldCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCA0YTRmNjMzODcwZGE1
MzcwMGQ1NDRhNTc2OTUzZGVkMjMwZDMzODkyLi5kYzliMzcwYzBlNDI5Y2QxODE4ZDZiMzFiNGYx
YTllM2RlYjBhZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMjA5OSwxNCArMjA5OSwxMyBAQCB2
b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpjcmVhdGVWYXJpYWJsZSgKICAgICB9CiB9CiAKLXZvaWQg
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDaGVja0hhc0luc3RhbmNlKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQqIGJhc2UsIExhYmVsKiB0YXJnZXQpCitSZWdp
c3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdE92ZXJyaWRlc0hhc0luc3RhbmNlKFJlZ2lz
dGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogY29uc3RydWN0b3IsIFJlZ2lzdGVySUQqIGhhc0luc3Rh
bmNlVmFsdWUpCiB7Ci0gICAgc2l6ZV90IGJlZ2luID0gaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOwot
ICAgIGVtaXRPcGNvZGUob3BfY2hlY2tfaGFzX2luc3RhbmNlKTsKKyAgICBlbWl0T3Bjb2RlKG9w
X292ZXJyaWRlc19oYXNfaW5zdGFuY2UpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3Qt
PmluZGV4KCkpOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh2YWx1ZS0+aW5kZXgoKSk7Ci0g
ICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGJhc2UtPmluZGV4KCkpOwotICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZCh0YXJnZXQtPmJpbmQoYmVnaW4sIGluc3RydWN0aW9ucygpLnNpemUoKSkpOwor
ICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjb25zdHJ1Y3Rvci0+aW5kZXgoKSk7CisgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKGhhc0luc3RhbmNlVmFsdWUtPmluZGV4KCkpOworICAgIHJldHVy
biBkc3Q7CiB9CiAKIC8vIEluZGljYXRlcyB0aGUgbGVhc3QgdXBwZXIgYm91bmQgb2YgcmVzb2x2
ZSB0eXBlIGJhc2VkIG9uIGxvY2FsIHNjb3BlLiBUaGUgYnl0ZWNvZGUgbGlua2VyCkBAIC0yMjcz
LDYgKzIyNzIsMTYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJbnN0YW5j
ZU9mKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUKICAgICByZXR1cm4gZHN0Owog
fQogCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEluc3RhbmNlT2ZDdXN0b20o
UmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCogY29uc3RydWN0
b3IsIFJlZ2lzdGVySUQqIGhhc0luc3RhbmNlVmFsdWUpCit7CisgICAgZW1pdE9wY29kZShvcF9p
bnN0YW5jZW9mX2N1c3RvbSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgo
KSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHZhbHVlLT5pbmRleCgpKTsKKyAgICBpbnN0
cnVjdGlvbnMoKS5hcHBlbmQoY29uc3RydWN0b3ItPmluZGV4KCkpOworICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChoYXNJbnN0YW5jZVZhbHVlLT5pbmRleCgpKTsKKyAgICByZXR1cm4gZHN0Owor
fQorCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEdldEJ5SWQoUmVnaXN0ZXJJ
RCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSkKIHsK
ICAgICBtX2NvZGVCbG9jay0+YWRkUHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbihpbnN0cnVjdGlv
bnMoKS5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IGFjYzcyY2ZjYmU1NWJmZjBlNjFiYjFiZTYz
NDYyMTRhZjhhMjk5NjUuLjAwYjRmZGUzNzdhZGEyMjhiMWYxMWUwNzk4YzUyZTM4ZmM3OThlZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmgKQEAgLTUzNCw4ICs1MzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdEluYyhSZWdpc3RlcklEKiBzcmNEc3QpOwogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0RGVjKFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAKLSAgICAgICAgdm9pZCBlbWl0
Q2hlY2tIYXNJbnN0YW5jZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdp
c3RlcklEKiBiYXNlLCBMYWJlbCogdGFyZ2V0KTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdE92
ZXJyaWRlc0hhc0luc3RhbmNlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogY29uc3RydWN0
b3IsIFJlZ2lzdGVySUQqIGhhc0luc3RhbmNlVmFsdWUpOwogICAgICAgICBSZWdpc3RlcklEKiBl
bWl0SW5zdGFuY2VPZihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3Rl
cklEKiBiYXNlUHJvdG90eXBlKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEluc3RhbmNlT2ZD
dXN0b20oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCogY29u
c3RydWN0b3IsIFJlZ2lzdGVySUQqIGhhc0luc3RhbmNlVmFsdWUpOwogICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0VHlwZU9mKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKSB7IHJldHVy
biBlbWl0VW5hcnlPcChvcF90eXBlb2YsIGRzdCwgc3JjKTsgfQogICAgICAgICBSZWdpc3RlcklE
KiBlbWl0SW4oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJ
RCogYmFzZSkgeyByZXR1cm4gZW1pdEJpbmFyeU9wKG9wX2luLCBkc3QsIHByb3BlcnR5LCBiYXNl
LCBPcGVyYW5kVHlwZXMoKSk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IGFkZDk3OWM1NDc4MDJiNDAyMGRlYmI2
ODIyNGUzMmMyMjAxNTJmNzMuLjQ3OTRiM2M5NGQ5MTBkYjI2Y2IzMTA5Y2NhYWJiZDQ5ZDk2N2E4
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKQEAgLTE2NTksMjIgKzE2NTksNDkgQEAgUmVnaXN0ZXJJRCogVGhyb3dhYmxl
QmluYXJ5T3BOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmUKIAogUmVnaXN0ZXJJRCogSW5zdGFuY2VPZk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7Ci0gICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IHNyYzEgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9leHByMSwg
bV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX2V4cHIyLT5pc1B1cmUoZ2VuZXJhdG9yKSk7Ci0gICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IHNyYzIgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMik7Cisg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGhhc0luc3RhbmNlVmFsdWUgPSBnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGlzT2JqZWN0ID0gZ2VuZXJhdG9yLm5l
d1RlbXBvcmFyeSgpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBpc0N1c3RvbSA9IGdlbmVyYXRv
ci5uZXdUZW1wb3JhcnkoKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvdG90eXBlID0gZ2Vu
ZXJhdG9yLm5ld1RlbXBvcmFyeSgpOwotICAgIFJlZlB0cjxSZWdpc3RlcklEPiBkc3RSZWcgPSBn
ZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHNyYzEuZ2V0KCkpOwotICAgIFJlZlB0cjxM
YWJlbD4gdGFyZ2V0ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IHZhbHVlID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fZXhwcjEsIG1f
cmlnaHRIYXNBc3NpZ25tZW50cywgbV9leHByMi0+aXNQdXJlKGdlbmVyYXRvcikpOworICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBjb25zdHJ1Y3RvciA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIy
KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gZHN0UmVnID0gZ2VuZXJhdG9yLmZpbmFsRGVzdGlu
YXRpb24oZHN0LCB2YWx1ZS5nZXQoKSk7CisgICAgUmVmUHRyPExhYmVsPiBjdXN0b20gPSBnZW5l
cmF0b3IubmV3TGFiZWwoKTsKKyAgICBSZWZQdHI8TGFiZWw+IGRvbmUgPSBnZW5lcmF0b3IubmV3
TGFiZWwoKTsKKyAgICBSZWZQdHI8TGFiZWw+IHR5cGVFcnJvciA9IGdlbmVyYXRvci5uZXdMYWJl
bCgpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0
YXJ0KCksIGRpdm90RW5kKCkpOwotICAgIGdlbmVyYXRvci5lbWl0Q2hlY2tIYXNJbnN0YW5jZShk
c3RSZWcuZ2V0KCksIHNyYzEuZ2V0KCksIHNyYzIuZ2V0KCksIHRhcmdldC5nZXQoKSk7CisgICAg
Z2VuZXJhdG9yLmVtaXRJc09iamVjdChpc09iamVjdC5nZXQoKSwgY29uc3RydWN0b3IuZ2V0KCkp
OworICAgIGdlbmVyYXRvci5lbWl0SnVtcElmRmFsc2UoaXNPYmplY3QuZ2V0KCksIHR5cGVFcnJv
ci5nZXQoKSk7CiAKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRp
dm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKHByb3Rv
dHlwZS5nZXQoKSwgc3JjMi5nZXQoKSwgZ2VuZXJhdG9yLnZtKCktPnByb3BlcnR5TmFtZXMtPnBy
b3RvdHlwZSk7CisgICAgZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGhhc0luc3RhbmNlVmFsdWUuZ2V0
KCksIGNvbnN0cnVjdG9yLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+aGFz
SW5zdGFuY2VTeW1ib2wpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZv
dCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwotICAgIFJlZ2lzdGVySUQqIHJlc3VsdCA9
IGdlbmVyYXRvci5lbWl0SW5zdGFuY2VPZihkc3RSZWcuZ2V0KCksIHNyYzEuZ2V0KCksIHByb3Rv
dHlwZS5nZXQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRMYWJlbCh0YXJnZXQuZ2V0KCkpOwotICAg
IHJldHVybiByZXN1bHQ7CisgICAgZ2VuZXJhdG9yLmVtaXRPdmVycmlkZXNIYXNJbnN0YW5jZShp
c0N1c3RvbS5nZXQoKSwgY29uc3RydWN0b3IuZ2V0KCksIGhhc0luc3RhbmNlVmFsdWUuZ2V0KCkp
OworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0
KCksIGRpdm90RW5kKCkpOworICAgIGdlbmVyYXRvci5lbWl0SnVtcElmVHJ1ZShpc0N1c3RvbS5n
ZXQoKSwgY3VzdG9tLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8o
ZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdEdl
dEJ5SWQocHJvdG90eXBlLmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSwgZ2VuZXJhdG9yLnZtKCkt
PnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Np
b25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9y
LmVtaXRJbnN0YW5jZU9mKGRzdFJlZy5nZXQoKSwgdmFsdWUuZ2V0KCksIHByb3RvdHlwZS5nZXQo
KSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEp1bXAoZG9uZS5nZXQoKSk7CisKKyAgICBnZW5lcmF0
b3IuZW1pdExhYmVsKHR5cGVFcnJvci5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRUaHJvd1R5
cGVFcnJvcigiUmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdCIp
OworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChjdXN0b20uZ2V0KCkpOworCisgICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkp
OworICAgIGdlbmVyYXRvci5lbWl0SW5zdGFuY2VPZkN1c3RvbShkc3RSZWcuZ2V0KCksIHZhbHVl
LmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSwgaGFzSW5zdGFuY2VWYWx1ZS5nZXQoKSk7CisKKyAg
ICBnZW5lcmF0b3IuZW1pdExhYmVsKGRvbmUuZ2V0KCkpOworCisgICAgcmV0dXJuIGRzdFJlZy5n
ZXQoKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIExvZ2ljYWxPcE5v
ZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGRj
NTdmZGJmMTcxZTI1NzQ0MmFlY2RlZGEzNWI4Y2IyYjc3ODY0ZjUuLjZhNjA2NDcwNWNiMzI2ZWQ2
MzE2MzgzOTljMDI3ZWUyNGU1MGQyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTI0NDgsMTIg
KzI0NDgsMTcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6
ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICBjYXNlIE5vdGlmeVdyaXRl
OgogICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5j
ZToKLSAgICAgICAgLy8gU2FkbHksIHdlIGRvbid0IHByb3BhZ2F0ZSB0aGUgZmFjdCB0aGF0IHdl
J3ZlIGRvbmUgQ2hlY2tIYXNJbnN0YW5jZQorICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6
CisgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjQm9vbGVhbik7CiAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCiAgICAgY2FzZSBJbnN0YW5jZU9mOgotICAgICAgICAvLyBBZ2Fp
biwgc2FkbHksIHdlIGRvbid0IHByb3BhZ2F0ZSB0aGUgZmFjdCB0aGF0IHdlJ3ZlIGRvbmUgSW5z
dGFuY2VPZgorICAgICAgICAvLyBTYWRseSwgd2UgZG9uJ3QgcHJvcGFnYXRlIHRoZSBmYWN0IHRo
YXQgd2UndmUgZG9uZSBJbnN0YW5jZU9mCisgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShT
cGVjQm9vbGVhbik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9t
OgorICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBjbG9iYmVyTGlt
aXQpOwogICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0Jvb2xlYW4pOwogICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIApAQCAtMjUxMCw2ICsyNTE1LDcgQEAgYm9vbCBBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQg
Y2xvYmJlckxpbWkKICAgICBjYXNlIENvdW50RXhlY3V0aW9uOgogICAgIGNhc2UgQ2hlY2tUaWVy
VXBJbkxvb3A6CiAgICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgorICAgIGNhc2UgQ2hlY2tU
eXBlSW5mb0ZsYWdzOgogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ29weVJlc3Q6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDAw
ZTkxYTQyOGI2MTVhYjg4ZDBiOTg0YmJlM2VhNjJkM2ViNDU1MjMuLjY5MWQ1MTczMjQzYmQ3YWQw
MmI1MzM1OWIwM2I4ZWU5ZDNlZWIyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zNDk3LDkgKzM0OTcsMTUgQEAgYm9vbCBCeXRl
Q29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIE5FWFRf
T1BDT0RFKG9wX2NoZWNrX3Rkeik7CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIG9wX2NoZWNr
X2hhc19pbnN0YW5jZToKLSAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tIYXNJbnN0YW5jZSwg
Z2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSkpOwot
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfY2hlY2tfaGFzX2luc3RhbmNlKTsKKyAgICAgICAg
Y2FzZSBvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOiB7CisgICAgICAgICAgICBKU0Z1bmN0aW9u
KiBkZWZhdWx0SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbiA9IG1faW5saW5lU3RhY2tUb3AtPm1f
Y29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3IoY3VycmVudENvZGVPcmlnaW4oKSktPmZ1bmN0aW9u
UHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCk7CisKKyAgICAgICAgICAgIE5vZGUqIGNv
bnN0cnVjdG9yID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVZhbHVlID0gZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisKKyAgICAgICAg
ICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCks
IGFkZFRvR3JhcGgoT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZShk
ZWZhdWx0SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbikpLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFu
Y2VWYWx1ZSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3Bfb3ZlcnJpZGVzX2hhc19pbnN0
YW5jZSk7CisgICAgICAgIH0KIAogICAgICAgICBjYXNlIG9wX2luc3RhbmNlb2Y6IHsKICAgICAg
ICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKSk7CkBAIC0zNTA3LDcgKzM1MTMsMTUgQEAgYm9vbCBCeXRlQ29kZVBh
cnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIHNldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoSW5z
dGFuY2VPZiwgdmFsdWUsIHByb3RvdHlwZSkpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3Bf
aW5zdGFuY2VvZik7CiAgICAgICAgIH0KLSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2Ugb3Bf
aW5zdGFuY2VvZl9jdXN0b206IHsKKyAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAg
ICBOb2RlKiBjb25zdHJ1Y3RvciA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZSogaGFzSW5zdGFuY2VWYWx1ZSA9
IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkpOwor
ICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kKSwgYWRkVG9HcmFwaChJbnN0YW5jZU9mQ3VzdG9tLCB2YWx1ZSwgY29uc3RydWN0b3Is
IGhhc0luc3RhbmNlVmFsdWUpKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2luc3RhbmNl
b2ZfY3VzdG9tKTsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2Ugb3BfaXNfdW5kZWZpbmVkOiB7
CiAgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFwaChJc1VuZGVmaW5l
ZCwgdmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2Fw
YWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVz
LmNwcAppbmRleCBiYjViMWQxMTVkNWE3ZDE3NTNjYzI3OTc3N2E1OTBkYTU4OWRlOTI1Li5iNWIy
YmVlZjgwZjMwMDM4ODUyMTg4ZmFhNTUyMDNiZjAzMjQxMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMjgsOCArMTI4LDkgQEAgQ2Fw
YWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9wX3Byb2ZpbGVfdHlwZToKICAgICBjYXNl
IG9wX3Byb2ZpbGVfY29udHJvbF9mbG93OgogICAgIGNhc2Ugb3BfbW92OgotICAgIGNhc2Ugb3Bf
Y2hlY2tfaGFzX2luc3RhbmNlOgorICAgIGNhc2Ugb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZToK
ICAgICBjYXNlIG9wX2luc3RhbmNlb2Y6CisgICAgY2FzZSBvcF9pbnN0YW5jZW9mX2N1c3RvbToK
ICAgICBjYXNlIG9wX2lzX3VuZGVmaW5lZDoKICAgICBjYXNlIG9wX2lzX2Jvb2xlYW46CiAgICAg
Y2FzZSBvcF9pc19udW1iZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6
ZS5oCmluZGV4IDI5ZmU1MGMxNzEzNTYxMzlmYmMyYmNmYzliMzdiNTg2MTE0NGQ5YWEuLmU4M2Ji
MDgxZTQ4OTUzMDI5N2E2OGQ1YWU3MjBhYjVmNjU3Nzk0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC03MjcsOSArNzI3LDE0IEBAIHZvaWQgY2xvYmJl
cml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBj
b25zdCBXcml0ZUZ1CiAgICAgICAgIHJlYWQoSlNDZWxsX3N0cnVjdHVyZUlEKTsKICAgICAgICAg
cmV0dXJuOwogCi0gICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgorICAgIGNhc2UgQ2hlY2tUeXBl
SW5mb0ZsYWdzOgogICAgICAgICByZWFkKEpTQ2VsbF90eXBlSW5mb0ZsYWdzKTsKLSAgICAgICAg
ZGVmKEhlYXBMb2NhdGlvbihDaGVja0hhc0luc3RhbmNlTG9jLCBKU0NlbGxfdHlwZUluZm9GbGFn
cywgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CisgICAgICAgIGRlZihIZWFwTG9j
YXRpb24oQ2hlY2tUeXBlSW5mb0ZsYWdzTG9jLCBKU0NlbGxfdHlwZUluZm9GbGFncywgbm9kZS0+
Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CisgICAgICAgIHJldHVybjsKKworICAgIGNhc2Ug
T3ZlcnJpZGVzSGFzSW5zdGFuY2U6CisgICAgICAgIHJlYWQoSlNDZWxsX3R5cGVJbmZvRmxhZ3Mp
OworICAgICAgICBkZWYoSGVhcExvY2F0aW9uKE92ZXJyaWRlc0hhc0luc3RhbmNlTG9jLCBKU0Nl
bGxfdHlwZUluZm9GbGFncywgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAg
ICAgIHJldHVybjsKIAogICAgIGNhc2UgSW5zdGFuY2VPZjoKQEAgLTczNyw2ICs3NDIsMTEgQEAg
dm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0
b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihJbnN0YW5j
ZU9mTG9jLCBKU0NlbGxfc3RydWN0dXJlSUQsIG5vZGUtPmNoaWxkMSgpLCBub2RlLT5jaGlsZDIo
KSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBJbnN0YW5j
ZU9mQ3VzdG9tOgorICAgICAgICByZWFkKFdvcmxkKTsKKyAgICAgICAgd3JpdGUoSGVhcCk7Cisg
ICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAgICB3cml0ZShK
U0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICB3cml0ZShKU0NlbGxfdHlwZUluZm9UeXBlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCAxNmY5NzNkMDk2MzE2
MTI2YjRhMmFiZmY2NmU1YmM2YjdlNDRiOWZkLi5mMDk5NDgzOTRkY2RhM2UzNmY3M2M5MmYzYmYx
MTZhNjZjOTAwYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBA
IC0xNDEsOCArMTQxLDkgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQog
ICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNl
IFByb2ZpbGVDb250cm9sRmxvdzoKLSAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2Fz
ZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAgICBjYXNlIEluc3RhbmNlT2Y6CisgICAgY2FzZSBJ
bnN0YW5jZU9mQ3VzdG9tOgogICAgIGNhc2UgSXNVbmRlZmluZWQ6CiAgICAgY2FzZSBJc0Jvb2xl
YW46CiAgICAgY2FzZSBJc051bWJlcjoKQEAgLTE4MCw2ICsxODEsNyBAQCBib29sIGRvZXNHQyhH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja0luQm91bmRzOgogICAgIGNh
c2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICBjYXNlIENoZWNrOgorICAgIGNhc2UgQ2hl
Y2tUeXBlSW5mb0ZsYWdzOgogICAgIGNhc2UgTXVsdGlHZXRCeU9mZnNldDoKICAgICBjYXNlIFZh
bHVlUmVwOgogICAgIGNhc2UgRG91YmxlUmVwOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKaW5kZXggYmU0ZTBlYzQ5NzRmNDA3MDRhOWJmNTdiZGM2MTdmOGJh
NGIxMTc4My4uMzE4OTg3YjIxNjFjZDMxYzA0NDBmZTVkNmVlYTFkZjU4ZDhiNjQ5OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMTAwLDEwICsx
MTAwLDI5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBmaXhFZGdlPEZ1bmN0aW9uVXNlPihub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorCisgICAgICAgIGNh
c2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6IHsKKyAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDIo
KS5ub2RlKCktPmlzQ2VsbENvbnN0YW50KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+
Y2hpbGQyKCkubm9kZSgpLT5hc0NlbGwoKSAhPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2Rl
LT5vcmlnaW4uc2VtYW50aWMpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlv
bigpKSB7CisKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC5jb252ZXJ0VG9Db25zdGFudChu
b2RlLCBqc0Jvb2xlYW4odHJ1ZSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIW1fZ3JhcGguaGFzRXhpdFNpdGUo
bm9kZS0+b3JpZ2luLnNlbWFudGljLCBCYWRUeXBlSW5mb0ZsYWdzKSkgeworICAgICAgICAgICAg
ICAgICAgICAvLyBIZXJlIHdlIG9wdGltaXN0aWNhbGx5IGFzc3VtZSB0aGF0IHdlIHdpbGwgbm90
IHNlZSBhbiBib3VuZC9DLUFQSSBmdW5jdGlvbiBoZXJlLgorICAgICAgICAgICAgICAgICAgICBt
X2luc2VydGlvblNldC5pbnNlcnROb2RlKG1faW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgQ2hlY2tU
eXBlSW5mb0ZsYWdzLCBub2RlLT5vcmlnaW4sIE9wSW5mbyhJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlKSwgRWRnZShub2RlLT5jaGlsZDEoKS5ub2RlKCksIENlbGxVc2UpKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9ncmFwaC5jb252ZXJ0VG9Db25zdGFudChub2RlLCBqc0Jvb2xlYW4oZmFs
c2UpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAg
Y2FzZSBDaGVja1N0cnVjdHVyZToKICAgICAgICAgY2FzZSBDaGVja0NlbGw6Ci0gICAgICAgIGNh
c2UgQ2hlY2tIYXNJbnN0YW5jZToKICAgICAgICAgY2FzZSBDcmVhdGVUaGlzOgogICAgICAgICBj
YXNlIEdldEJ1dHRlcmZseToKICAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHlSZWFkT25seTogewpA
QCAtMTE2NCw3ICsxMTgzLDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxV
c2U+KG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAg
ICAgICAgICAKKworICAgICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAgICAgICAgICBm
aXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIGJyZWFrOworCiAg
ICAgICAgIGNhc2UgSW46IHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXQgc29t
ZSBwb2ludCBoYXZlIGFycmF5IHByb2ZpbGluZyBvbiBvcF9pbiwgaW4gd2hpY2gKICAgICAgICAg
ICAgIC8vIGNhc2Ugd2Ugd291bGQgYmUgYWJsZSB0byB0dXJuIHRoaXMgaW50byBhIGtpbmQgb2Yg
R2V0QnlWYWwuCkBAIC0xNDEwLDYgKzE0MzMsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIE5v
dGlmeVdyaXRlOgogICAgICAgICBjYXNlIFZhckluamVjdGlvbldhdGNocG9pbnQ6CiAgICAgICAg
IGNhc2UgQ2FsbDoKKyAgICAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAgIGNh
c2UgVGFpbENhbGxJbmxpbmVkQ2FsbGVyOgogICAgICAgICBjYXNlIENvbnN0cnVjdDoKICAgICAg
ICAgY2FzZSBDYWxsVmFyYXJnczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSGVhcExvY2F0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVh
cExvY2F0aW9uLmNwcAppbmRleCA2OTIzNjU2Mzk2MTFmZWFmNzNmNGU4NjE1OGEwMDFiMzZkMTM1
MjdiLi41NWQ4NGNmNTY1YTEyNjJhM2UxNzkyMmRkOGZiZDI2OGZlODk3ZmM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCkBAIC05NSw5ICs5NSwx
MyBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgTG9jYXRpb25LaW5kIGtp
bmQpCiAgICAgY2FzZSBCdXR0ZXJmbHlSZWFkT25seUxvYzoKICAgICAgICAgb3V0LnByaW50KCJC
dXR0ZXJmbHlSZWFkT25seUxvYyIpOwogICAgICAgICByZXR1cm47Ci0gICAgICAgIAotICAgIGNh
c2UgQ2hlY2tIYXNJbnN0YW5jZUxvYzoKLSAgICAgICAgb3V0LnByaW50KCJDaGVja0hhc0luc3Rh
bmNlTG9jIik7CisKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnc0xvYzoKKyAgICAgICAgb3V0
LnByaW50KCJDaGVja1R5cGVJbmZvRmxhZ3NMb2MiKTsKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZUxvYzoKKyAgICAgICAgb3V0LnByaW50KCJPdmVycmlk
ZXNIYXNJbnN0YW5jZUxvYyIpOwogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIGNhc2Ug
Q2xvc3VyZVZhcmlhYmxlTG9jOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdIZWFwTG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExv
Y2F0aW9uLmgKaW5kZXggNDk1ZDMwMDNjZWE2YzFjNTdjNTAyZGU0YzFlZjRlMTE1YWJiZTBiMC4u
Yjg1ZmEyNjA0OTFkNGQzMTkyMWE0Y2M2YzcwYTJjOGQyYmU0ZTg0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCkBAIC00MCw3ICs0MCw4IEBAIGVudW0g
TG9jYXRpb25LaW5kIHsKICAgICBBcnJheUxlbmd0aExvYywKICAgICBCdXR0ZXJmbHlMb2MsCiAg
ICAgQnV0dGVyZmx5UmVhZE9ubHlMb2MsCi0gICAgQ2hlY2tIYXNJbnN0YW5jZUxvYywKKyAgICBD
aGVja1R5cGVJbmZvRmxhZ3NMb2MsCisgICAgT3ZlcnJpZGVzSGFzSW5zdGFuY2VMb2MsCiAgICAg
Q2xvc3VyZVZhcmlhYmxlTG9jLAogICAgIERpcmVjdEFyZ3VtZW50c0xvYywKICAgICBHZXR0ZXJM
b2MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IGY5NmE3ZWZmOGY2NmRjOGZk
MTJiYjU1YzYyYzNkNWUzNWE0ODY1YzEuLmZkOTg2NThhODJjMzUyYThiNWE4NzUyNzNkZjViYTVh
YzA0MTExOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xMzU0LDYgKzEz
NTQsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgewogICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKICAg
ICAgICAgY2FzZSBDaGVja0NlbGw6CisgICAgICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6
CiAgICAgICAgIGNhc2UgTmV3RnVuY3Rpb246CiAgICAgICAgIGNhc2UgTmV3QXJyb3dGdW5jdGlv
bjoKICAgICAgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOgpAQCAtMTQxNSw2ICsxNDE2LDE3IEBA
IHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VW5pcXVlZFN0
cmluZ0ltcGwqPihtX29wSW5mbyk7CiAgICAgfQogCisgICAgYm9vbCBoYXNUeXBlSW5mb09wZXJh
bmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tUeXBlSW5mb0ZsYWdzOwor
ICAgIH0KKworICAgIHVuc2lnbmVkIHR5cGVJbmZvT3BlcmFuZCgpCisgICAgeworICAgICAgICBB
U1NFUlQoaGFzVHlwZUluZm9PcGVyYW5kKCkgJiYgbV9vcEluZm8gPD0gVUNIQVJfTUFYKTsKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29wSW5mbyk7CisgICAgfQorCiAg
ICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDAwOGQ4YzczMjgzMmEz
M2I4MWUyZDYzODdkM2ExZDJhZDRjNjM0MzUuLmI2OTVmZWJhMjZlYWM3NWJmYmFmZGQwZjFhNmM3
OGQxMWM1ZGIyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAg
LTIyMSw2ICsyMjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFj
cm8oQ2hlY2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tJbkJv
dW5kcywgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSWRlbnQsIE5vZGVNdXN0
R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja1R5cGVJbmZvRmxhZ3MsIE5vZGVNdXN0R2VuZXJh
dGUpIC8qIFRha2VzIGFuIE9wSW5mbyB3aXRoIHRoZSBmbGFncyB5b3Ugd2FudCB0byB0ZXN0IGFy
ZSBzZXQgKi9cCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5IG11dGF0aW9u
LiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJh
dGUpIFwKQEAgLTI3OCw4ICsyNzksOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAgICAgbWFjcm8oQnJlYWtwb2ludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFBy
b2ZpbGVXaWxsQ2FsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFByb2ZpbGVEaWRD
YWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oQ2hlY2tIYXNJbnN0YW5jZSwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKE92ZXJyaWRlc0hhc0luc3RhbmNlLCBOb2RlTXVz
dEdlbmVyYXRlIHwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJbnN0YW5jZU9mLCBO
b2RlUmVzdWx0Qm9vbGVhbikgXAorICAgIG1hY3JvKEluc3RhbmNlT2ZDdXN0b20sIE5vZGVNdXN0
R2VuZXJhdGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzVW5kZWZpbmVkLCBO
b2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzQm9vbGVhbiwgTm9kZVJlc3VsdEJvb2xl
YW4pIFwKICAgICBtYWNybyhJc051bWJlciwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAKaW5kZXggYTM0ZDQ0NjQwZGMwOWVjYzUxZTcyNzdlZjI0YTRlM2RhM2U4MDkz
OS4uNDUwZjY2ODI2NDZiYjA5N2FiMTQ2ZTJiZDBkZmU3MWRlZDA2ZDY5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAKQEAgLTQwMiw3ICs0MDIsOSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENv
bXBhcmVHcmVhdGVyRXE6CiAgICAgICAgIGNhc2UgQ29tcGFyZUVxOgogICAgICAgICBjYXNlIENv
bXBhcmVTdHJpY3RFcToKKyAgICAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAgICAg
ICAgY2FzZSBJbnN0YW5jZU9mOgorICAgICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAg
ICAgIGNhc2UgSXNVbmRlZmluZWQ6CiAgICAgICAgIGNhc2UgSXNCb29sZWFuOgogICAgICAgICBj
YXNlIElzTnVtYmVyOgpAQCAtNTY5LDYgKzU3MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2Ug
RG91YmxlQXNJbnQzMjoKICAgICAgICAgY2FzZSBHZXRMb2NhbFVubGlua2VkOgogICAgICAgICBj
YXNlIENoZWNrQXJyYXk6CisgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgogICAgICAg
ICBjYXNlIEFycmF5aWZ5OgogICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CiAgICAg
ICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CkBAIC02ODAsNyArNjgzLDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICAgICAgY2FzZSBQcm9maWxlVHlwZToK
ICAgICAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6Ci0gICAgICAgIGNhc2UgQ2hlY2tIYXNJ
bnN0YW5jZToKICAgICAgICAgY2FzZSBUaHJvd1JlZmVyZW5jZUVycm9yOgogICAgICAgICBjYXNl
IEZvcmNlT1NSRXhpdDoKICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggNjE2YzNiMDgyMjIxOWNiMWQw
YTJlZDMwNTJkZjQ1YzAxOWJlOGE0Ni4uNWQ4OWJmYmVhN2Y4MWY2Y2RkYzhiY2ZiZjE3NzNkNDVh
YTRlMGYyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9F
eGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRl
LmgKQEAgLTI0MSw4ICsyNDEsMTAgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVU
eXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgUHJvZmlsZURp
ZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxv
dzoKLSAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxh
Z3M6CisgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAgICBjYXNlIEluc3RhbmNlT2Y6
CisgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgogICAgIGNhc2UgSXNVbmRlZmluZWQ6CiAgICAg
Y2FzZSBJc0Jvb2xlYW46CiAgICAgY2FzZSBJc051bWJlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggNGI0MGU2NzA3MzE5YTllNjFh
ZDFmZmQ0YWI3YzUyOTk1NzRhNzc3MS4uZjMyYTYxNDg3NDE4OGI2YmJhMjJkMGE1M2IxYzBhMjFi
ZjRlZDRlOCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTI3MzgsNiArMjczOCwxNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlSW5zdGFuY2VPZkZvck9iamVjdChOb2RlKiwgR1BSUmVnIHZhbHVlUmVnLCBHUFJSZWcgcAog
ICAgIHB1dFJlc3VsdC5saW5rKCZtX2ppdCk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVDaGVja1R5cGVJbmZvRmxhZ3MoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxs
T3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKworICAgIEdQUlJlZyBiYXNlR1BS
ID0gYmFzZS5ncHIoKTsKKworICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZUluZm9GbGFncywg
SlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDgoTWFjcm9Bc3NlbWJsZXI6Olplcm8s
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09m
ZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihub2RlLT50eXBlSW5mb09wZXJh
bmQoKSkpKTsKKworICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlSW5zdGFuY2VPZihOb2RlKiBub2RlKQogewogICAgIGlmIChub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkgewpAQCAtMjk1MCw2ICsyOTYxLDQ4IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFkZChOb2RlKiBub2RlKQogICAgIHJldHVybjsK
IH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2ZDdXN0b20oTm9kZSog
bm9kZSkKK3sKKyAgICAvLyBXZSBjb3VsZCBkbyBzb21ldGhpbmcgc21hcnRlciBoZXJlIGJ1dCB0
aGlzIGNhc2UgaXMgY3VycmVudGx5IHN1cGVyIHJhcmUgYW5kIHVubGVzcworICAgIC8vIFN5bWJv
bC5oYXNJbnN0YW5jZSBiZWNvbWVzIHBvcHVsYXIgd2lsbCBsaWtlbHkgcmVtYWluIHRoYXQgd2F5
LgorCisgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGNvbnN0cnVjdG9yKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsK
KyAgICBKU1ZhbHVlT3BlcmFuZCBoYXNJbnN0YW5jZVZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMygp
KTsKKworICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7Cisg
ICAgR1BSUmVnIGNvbnN0cnVjdG9yR1BSID0gY29uc3RydWN0b3IuZ3ByKCk7CisgICAgSlNWYWx1
ZVJlZ3MgaGFzSW5zdGFuY2VSZWdzID0gaGFzSW5zdGFuY2VWYWx1ZS5qc1ZhbHVlUmVncygpOwor
CisjaWYgQ1BVKFg4NikKKyAgICAvLyBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBjbG9iYmVy
IHRoZSBoYXNJbnN0YW5jZVZhbHVlIHJlZ2lzdGVyIGhlcmUgb24geDg2IGJlY2F1c2Ugd2UKKyAg
ICAvLyBhcmUgc2hvcnQgb24gcmVnaXN0ZXJzLiBUaGlzIGlzIHZhbGlkIGJlY2F1c2Ugd2Uga25v
dyBJbnN0YW5jZU9mQ3VzdG9tIGlzIHRoZSBsYXN0IHVzZQorICAgIC8vIG9mIHRoZSBHZXRCeUlk
IHdoaWNoIHByb2R1Y2VzIGl0LgorICAgIFJFTEVBU0VfQVNTRVJUKGNhblJldXNlKG5vZGUtPmNo
aWxkMygpKSk7CisgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICBHUFJSZWcgcmVz
dWx0R1BSID0gcmVzdWx0LmdwcigpOworCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nh
c2UgPSBtX2ppdC5qdW1wKCk7CisKKyAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKKyAgICAgICAg
c2xvd1BhdGhDYWxsKHNsb3dDYXNlLCB0aGlzLCBvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tLCBo
YXNJbnN0YW5jZVJlZ3MsIHZhbHVlUmVncywgY29uc3RydWN0b3JHUFIsIGhhc0luc3RhbmNlUmVn
cykpOworICAgIG1faml0Lm1vdmUoaGFzSW5zdGFuY2VSZWdzLnBheWxvYWRHUFIoKSwgcmVzdWx0
R1BSKTsKKworICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyNl
bHNlCisKKyAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCBzbG93Q2FzZSA9IG1faml0Lmp1bXAoKTsKKworICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KAorICAgICAgICBzbG93UGF0aENhbGwoc2xvd0Nhc2UsIHRoaXMsIG9wZXJhdGlvbkluc3RhbmNl
T2ZDdXN0b20sIHJlc3VsdFJlZ3MsIHZhbHVlUmVncywgY29uc3RydWN0b3JHUFIsIGhhc0luc3Rh
bmNlUmVncykpOworCisgICAgdW5ibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRSZWdzLnBheWxv
YWRHUFIoKSwgbm9kZSk7CisjZW5kaWYKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUFyaXRoQWRkKE5vZGUqIG5vZGUpCiB7CiAgICAgc3dpdGNoIChub2RlLT5iaW5hcnlVc2VLaW5k
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApp
bmRleCA5MzlhY2ExYzgxZGVlYzMzN2Q3NGNhYmZjNDBmYjg4NzBjMDdjNjliLi5iMWJiMTIwOWRj
YTFkMjNlMGNhNDczMGZjOTg0YzUwY2JjOTE5NmU0IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC03MjcsNiArNzI3LDcgQEAgcHVibGljOgog
ICAgIAogICAgIHZvaWQgY29tcGlsZUluc3RhbmNlT2ZGb3JPYmplY3QoTm9kZSosIEdQUlJlZyB2
YWx1ZVJlZywgR1BSUmVnIHByb3RvdHlwZVJlZywgR1BSUmVnIHNjcmF0Y2hBbmRSZXN1bHRSZWcs
IEdQUlJlZyBzY3JhdGNoMlJlZyk7CiAgICAgdm9pZCBjb21waWxlSW5zdGFuY2VPZihOb2RlKik7
CisgICAgdm9pZCBjb21waWxlSW5zdGFuY2VPZkN1c3RvbShOb2RlKik7CiAgICAgCiAgICAgdm9p
ZCBlbWl0Q2FsbChOb2RlKik7CiAgICAgCkBAIC0xNDQzLDYgKzE0NDQsMTUgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCByZXN1bHQucGF5
bG9hZEdQUigpLCBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCkpOwogICAgIH0K
KyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0og
b3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJl
ZyBhcmczKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChv
cGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEpTVmFs
dWVSZWdzIGFyZzEsIEdQUlJlZyBhcmcyLCBKU1ZhbHVlUmVncyBhcmczKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCByZXN1bHQsIGFyZzEucGF5bG9hZEdQ
UigpLCBhcmcyLCBhcmczLnBheWxvYWRHUFIoKSk7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUNDIG9wZXJhdGlvbiwgR1BSUmVnIHJl
c3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwpAQCAtMTc2Niw2ICsxNzc2LDE2
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCByZXN1
bHQudGFnR1BSKCksIHJlc3VsdC5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzEucGF5
bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpLCBhcmcyLnBheWxvYWRHUFIoKSk7CiAgICAgfQogCisg
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSk9KIG9w
ZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBh
cmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnM1RhZywg
R1BSUmVnIGFyZzNQYXlsb2FkKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBh
cmcyLCBFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CisgICAgICAg
IHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0UGF5bG9hZCwgcmVz
dWx0VGFnKTsKKyAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSk9KIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVn
cyBhcmcxLCBHUFJSZWcgYXJnMiwgSlNWYWx1ZVJlZ3MgYXJnMykKKyAgICB7CisgICAgICAgIHJl
dHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5
bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMiwgYXJnMy50
YWdHUFIoKSwgYXJnMy5wYXlsb2FkR1BSKCkpOworICAgIH0KKwogICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUNKIG9wZXJhdGlvbiwgR1BSUmVnIHJl
c3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMlRh
ZywgR1BSUmVnIGFyZzJQYXlsb2FkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzJQYXlsb2FkLCBhcmcyVGFnKTsKQEAgLTIyMDQsNiAr
MjIyNCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29tcGlsZUdldEFycmF5TGVuZ3RoKE5vZGUq
KTsKIAorICAgIHZvaWQgY29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyhOb2RlKik7CiAgICAgdm9p
ZCBjb21waWxlQ2hlY2tJZGVudChOb2RlKik7CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVS
ZXAoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAKaW5kZXggM2I3MTk3ZDUzMWI2YjM5NmU2NTk2NTAzNjAwNjIzMzQ0
MDc0OWFhZi4uZjE5MDI5NWY0Mjk0ZWNjNDI0MjQ2MjI3NzhjMGI5MzBhYzk3YjgxNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQu
Y3BwCkBAIC00MTU5LDE3ICs0MTU5LDQ4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBDaGVja0hhc0lu
c3RhbmNlOiB7CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6IHsKKyAgICAgICAgY29tcGls
ZUNoZWNrVHlwZUluZm9GbGFncyhub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
Y2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZTogeworCisgICAgICAgIE5vZGUqIGhhc0luc3RhbmNl
VmFsdWVOb2RlID0gbm9kZS0+Y2hpbGQyKCkubm9kZSgpOworICAgICAgICBKU0Z1bmN0aW9uKiBk
ZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4obm9kZS0+Y2Vs
bE9wZXJhbmQoKS0+dmFsdWUoKSk7CisKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90
RGVmYXVsdGhhc0luc3RhbmNlVmFsdWU7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGhh
c0luc3RhbmNlVmFsdWVOb3RDZWxsOwogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNl
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0
aGlzKTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaGFzSW5zdGFuY2VWYWx1ZSh0aGlzLCBub2Rl
LT5jaGlsZDIoKSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAKLSAgICAg
ICAgLy8gU3BlY3VsYXRlIHRoYXQgYmFzZSAnSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZScu
Ci0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIDAs
IG1faml0LmJyYW5jaFRlc3Q4KAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Olplcm8sIAot
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZS5ncHIoKSwgSlNDZWxsOjp0
eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCAKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKKyAgICAgICAgR1BSUmVn
IHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAotICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAg
ICAgICAgLy8gSWYgd2UgaGF2ZSBwcm92ZW4gdGhhdCB0aGUgY29uc3RydWN0b3IncyBTeW1ib2wu
aGFzSW5zdGFuY2Ugd2lsbCBhbHdheXMgYmUgdGhlIG9uZSBvbgorICAgICAgICAvLyBGdW5jdGlv
bi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSB0aGVuIHdlIGRvbid0IG5lZWQgYSBydW50
aW1lIGNoZWNrIGhlcmUuIFdlIGRvbid0IHdvcnJ5CisgICAgICAgIC8vIGFib3V0IHRoZSBjYXNl
IHdoZXJlIHRoZSBjb25zdHJ1Y3RvcidzIFN5bWJvbC5oYXNJbnN0YW5jZSBpcyBhIGNvbnN0YW50
IGJ1dCBpcyBub3QgdGhlIGRlZmF1bHQKKyAgICAgICAgLy8gb25lIGFzIGZpeHVwIHNob3VsZCBo
YXZlIGNvbnZlcnRlZCB0aGlzIGNoZWNrIHRvIHRydWUuCisgICAgICAgIEFTU0VSVCghaGFzSW5z
dGFuY2VWYWx1ZU5vZGUtPmlzQ2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3RhbmNlRnVu
Y3Rpb24gPT0gaGFzSW5zdGFuY2VWYWx1ZU5vZGUtPmFzQ2VsbCgpKTsKKyAgICAgICAgaWYgKCFo
YXNJbnN0YW5jZVZhbHVlTm9kZS0+aXNDZWxsQ29uc3RhbnQoKSkgeworCisgICAgICAgICAgICBK
U1ZhbHVlUmVncyBoYXNJbnN0YW5jZVZhbHVlUmVncyA9IGhhc0luc3RhbmNlVmFsdWUuanNWYWx1
ZVJlZ3MoKTsKKyAgICAgICAgICAgIGhhc0luc3RhbmNlVmFsdWVOb3RDZWxsID0gbV9qaXQuYnJh
bmNoSWZOb3RDZWxsKGhhc0luc3RhbmNlVmFsdWVSZWdzKTsKKyAgICAgICAgICAgIG5vdERlZmF1
bHRoYXNJbnN0YW5jZVZhbHVlID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RF
cXVhbCwgaGFzSW5zdGFuY2VWYWx1ZVJlZ3MucGF5bG9hZEdQUigpLCBUcnVzdGVkSW1tUHRyKGRl
ZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVj
ayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlJy4KKyAgICAg
ICAgbV9qaXQudGVzdDgoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSwgcmVzdWx0
R1BSKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsK
KworICAgICAgICBpZiAoIWhhc0luc3RhbmNlVmFsdWVOb2RlLT5pc0NlbGxDb25zdGFudCgpKSB7
CisgICAgICAgICAgICBoYXNJbnN0YW5jZVZhbHVlTm90Q2VsbC5saW5rKCZtX2ppdCk7CisgICAg
ICAgICAgICBub3REZWZhdWx0aGFzSW5zdGFuY2VWYWx1ZS5saW5rKCZtX2ppdCk7CisgICAgICAg
ICAgICBtb3ZlVHJ1ZVRvKHJlc3VsdEdQUik7CisgICAgICAgIH0KKworICAgICAgICBkb25lLmxp
bmsoJm1faml0KTsKKyAgICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAKQEAgLTQxNzgsNiArNDIwOSwxMSBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAg
IGNhc2UgSW5zdGFuY2VPZkN1c3RvbTogeworICAgICAgICBjb21waWxlSW5zdGFuY2VPZkN1c3Rv
bShub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBJc1VuZGVmaW5lZDog
ewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAg
ICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBiOTg3Y2Q0ZDgyNjc1NDAw
YjQ4Nzc4NDQzN2IzYjFhMzJmZTgyZjIwLi4xNTRhMGQ4NDQ5ODk1NWFmYzY1NzM0NmNkMDBiMjYx
MzVkNjJkZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKQEAgLTQxNDksMTcgKzQxNDksNDIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBjYXNl
IENoZWNrSGFzSW5zdGFuY2U6IHsKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczogeworICAg
ICAgICBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKG5vZGUpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOiB7CisKKyAgICAgICAgTm9kZSog
aGFzSW5zdGFuY2VWYWx1ZU5vZGUgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCk7CisgICAgICAgIEpT
RnVuY3Rpb24qIGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24q
Pihub2RlLT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBub3REZWZhdWx0OwogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlz
KTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaGFzSW5zdGFuY2VWYWx1ZSh0aGlzLCBub2RlLT5j
aGlsZDIoKSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAKLSAgICAgICAg
Ly8gU3BlY3VsYXRlIHRoYXQgYmFzZSAnSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZScuCi0g
ICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCksIDAsIG1f
aml0LmJyYW5jaFRlc3Q4KAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Olplcm8sIAotICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZS5ncHIoKSwgSlNDZWxsOjp0eXBl
SW5mb0ZsYWdzT2Zmc2V0KCkpLCAKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKKyAgICAgICAgR1BSUmVnIHJl
c3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAotICAgICAgICBub1Jlc3VsdChub2RlKTsKKyAgICAg
ICAgLy8gSWYgd2UgaGF2ZSBwcm92ZW4gdGhhdCB0aGUgY29uc3RydWN0b3IncyBTeW1ib2wuaGFz
SW5zdGFuY2Ugd2lsbCBhbHdheXMgYmUgdGhlIG9uZSBvbiBGdW5jdGlvbi5wcm90b3R5cGVbU3lt
Ym9sLmhhc0luc3RhbmNlXQorICAgICAgICAvLyB0aGVuIHdlIGRvbid0IG5lZWQgYSBydW50aW1l
IGNoZWNrIGhlcmUuIFdlIGRvbid0IHdvcnJ5IGFib3V0IHRoZSBjYXNlIHdoZXJlIHRoZSBjb25z
dHJ1Y3RvcidzIFN5bWJvbC5oYXNJbnN0YW5jZSBpcyBhIGNvbnN0YW50CisgICAgICAgIC8vIGJ1
dCBpcyBub3QgdGhlIGRlZmF1bHQgb25lIGFzIGZpeHVwIHNob3VsZCBoYXZlIGNvbnZlcnRlZCB0
aGlzIGNoZWNrIHRvIHRydWUuCisgICAgICAgIEFTU0VSVCghaGFzSW5zdGFuY2VWYWx1ZU5vZGUt
PmlzQ2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24gPT0gaGFzSW5z
dGFuY2VWYWx1ZU5vZGUtPmFzQ2VsbCgpKTsKKyAgICAgICAgaWYgKCFoYXNJbnN0YW5jZVZhbHVl
Tm9kZS0+aXNDZWxsQ29uc3RhbnQoKSkKKyAgICAgICAgICAgIG5vdERlZmF1bHQgPSBtX2ppdC5i
cmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBoYXNJbnN0YW5jZVZhbHVlLmdwcigp
LCBUcnVzdGVkSW1tUHRyKGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uKSk7CisKKyAgICAgICAg
Ly8gQ2hlY2sgdGhhdCBiYXNlICdJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlJy4KKyAgICAg
ICAgbV9qaXQudGVzdDgoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSwgcmVzdWx0
R1BSKTsKKyAgICAgICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSksIHJlc3Vs
dEdQUik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7
CisKKyAgICAgICAgaWYgKG5vdERlZmF1bHQuaXNTZXQoKSkgeworICAgICAgICAgICAgbm90RGVm
YXVsdC5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICBtb3ZlVHJ1ZVRvKHJlc3VsdEdQUik7Cisg
ICAgICAgIH0KKworICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAganNWYWx1ZVJl
c3VsdChyZXN1bHRHUFIsIG5vZGUsIERhdGFGb3JtYXRKU0Jvb2xlYW4pOwogICAgICAgICBicmVh
azsKICAgICB9CiAKQEAgLTQxNjcsNiArNDE5MiwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVJbnN0YW5jZU9mKG5vZGUpOwogICAg
ICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206IHsKKyAgICAg
ICAgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20obm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
ICAgICAgICAgCiAgICAgY2FzZSBJc1VuZGVmaW5lZDogewogICAgICAgICBKU1ZhbHVlT3BlcmFu
ZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggODcyOGQ5ZTUxOWVlMzBmMTYxYjFlOTI4YTMx
YmM3N2YyOTMzNDRmMS4uZmE5MmNmZTgxNjVlNDYwMTk5MmJhZmM2MTBjNzRmNTU5M2RmZmU3YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAt
MTc0LDggKzE3NCwxMCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICBjYXNlIElzT2JqZWN0OgogICAgIGNhc2UgSXNPYmplY3RPck51bGw6CiAgICAg
Y2FzZSBJc0Z1bmN0aW9uOgotICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKKyAgICBjYXNlIENo
ZWNrVHlwZUluZm9GbGFnczoKKyAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgIGNh
c2UgSW5zdGFuY2VPZjoKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAgY2FzZSBEb3Vi
bGVSZXA6CiAgICAgY2FzZSBWYWx1ZVJlcDoKICAgICBjYXNlIEludDUyUmVwOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAppbmRleCBm
NWY0ZWE3MWExZjdkZmYzODIyNDE1MDIyZjUzM2VhZTY1ZTExZjMwLi4yZWIxOWFkYmYwZTk2ZjQ5
YmE1MWM0NWM4MTY3YjUxNTQwYmYxNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaApAQCAtODksNiArODksNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUosIGZ1
bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCkpIFwKICAgICBtYWNybyhKX0pJVE9wZXJh
dGlvbl9FSkEsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50UHRyKSkgXAog
ICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VKQywgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIs
IGludDY0LCBpbnRQdHIpKSBcCisgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUpPSiwgZnVuY3Rp
b25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0LCBpbnRQdHIsIGludDY0KSkgXAogICAgIG1hY3Jv
KEpfSklUT3BlcmF0aW9uX0VKSSwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0LCBp
bnRQdHIpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUpKLCBmdW5jdGlvblR5cGUoaW50
NjQsIGludFB0ciwgaW50NjQsIGludDY0KSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VK
c2NDLCBmdW5jdGlvblR5cGUoaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCBh
Y2UxMGIxODFiZTZmNjM3ZWZlZmNlZDM3ZmMzOTNhM2NlNDRhM2YxLi40N2YwZThlOWJjZDAzNGFm
ZmUwYTFiOGExY2ExODViMWRjZDhhYjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtOTM5LDEyICs5MzksMTggQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSBUeXBlT2Y6CiAgICAgICAgICAgICBjb21waWxlVHlwZU9mKCk7CiAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgotICAgICAgICAg
ICAgY29tcGlsZUNoZWNrSGFzSW5zdGFuY2UoKTsKKyAgICAgICAgY2FzZSBDaGVja1R5cGVJbmZv
RmxhZ3M6CisgICAgICAgICAgICBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKKyAgICAgICAg
ICAgIGNvbXBpbGVPdmVycmlkZXNIYXNJbnN0YW5jZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgSW5zdGFuY2VPZjoKICAgICAgICAgICAgIGNvbXBpbGVJbnN0YW5jZU9mKCk7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgorICAg
ICAgICAgICAgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20oKTsKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIENvdW50RXhlY3V0aW9uOgogICAgICAgICAgICAgY29tcGlsZUNvdW50RXhl
Y3V0aW9uKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTU3NjEsMTMgKzU3NjcsNDAgQEAgcHJp
dmF0ZToKICNlbmRpZgogICAgIH0KIAotICAgIHZvaWQgY29tcGlsZUNoZWNrSGFzSW5zdGFuY2Uo
KQorICAgIHZvaWQgY29tcGlsZU92ZXJyaWRlc0hhc0luc3RhbmNlKCkKKyAgICB7CisgICAgICAg
IEpTRnVuY3Rpb24qIGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rp
b24qPihtX25vZGUtPmNlbGxPcGVyYW5kKCktPnZhbHVlKCkpOworCisgICAgICAgIExWYWx1ZSBj
b25zdHJ1Y3RvciA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBo
YXNJbnN0YW5jZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSk7CisKKyAgICAgICAgTEJh
c2ljQmxvY2sgZGVmYXVsdEhhc0luc3RhbmNlID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJPdmVy
cmlkZXNIYXNJbnN0YW5jZSBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgZGVmYXVsdCIpKTsKKyAgICAg
ICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJPdmVy
cmlkZXNIYXNJbnN0YW5jZSBjb250aW51YXRpb24iKSk7CisKKyAgICAgICAgLy8gVW5saWtlLCB0
aGUgREZHIHdlIGRvbid0IHdvcnJ5IGFib3V0IGNsZWFuaW5nIHRoaXMgY29kZSB1cCBmb3IgdGhl
IGNhc2Ugd2hlcmUgd2UgaGF2ZSBwcm92ZW4gdGhlIGhhc0luc3RhbmNlVmFsdWUgaXMgYSBjb25z
dGFudCBhcyBMTFZNIHNob3VsZCBmaXggaXQgZm9yIHVzLgorCisgICAgICAgIEFTU0VSVCghbV9u
b2RlLT5jaGlsZDIoKS5ub2RlKCktPmlzQ2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3Rh
bmNlRnVuY3Rpb24gPT0gbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCktPmFzQ2VsbCgpKTsKKworICAg
ICAgICBWYWx1ZUZyb21CbG9jayBub3REZWZhdWx0SGFzSW5zdGFuY2VSZXN1bHQgPSBtX291dC5h
bmNob3IobV9vdXQuYm9vbGVhblRydWUpOworICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90
RXF1YWwoaGFzSW5zdGFuY2UsIG1fb3V0LmNvbnN0SW50UHRyKGRlZmF1bHRIYXNJbnN0YW5jZUZ1
bmN0aW9uKSksIHVuc3VyZShjb250aW51YXRpb24pLCB1bnN1cmUoZGVmYXVsdEhhc0luc3RhbmNl
KSk7CisKKyAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhkZWZh
dWx0SGFzSW5zdGFuY2UsIGNvbnRpbnVhdGlvbik7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIGlt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2VSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQudGVz
dElzWmVybzMyKAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY29uc3RydWN0b3Is
IG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJ
bnQzMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOworICAgICAgICBtX291dC5qdW1w
KGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBs
YXN0TmV4dCk7CisgICAgICAgIHNldEJvb2xlYW4obV9vdXQucGhpKG1fb3V0LmJvb2xlYW4sIGlt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2VSZXN1bHQsIG5vdERlZmF1bHRIYXNJbnN0YW5jZVJl
c3VsdCkpOworICAgIH0KKworICAgIHZvaWQgY29tcGlsZUNoZWNrVHlwZUluZm9GbGFncygpCiAg
ICAgewogICAgICAgICBzcGVjdWxhdGUoCi0gICAgICAgICAgICBVbmNvdW50YWJsZSwgbm9WYWx1
ZSgpLCAwLAorICAgICAgICAgICAgQmFkVHlwZUluZm9GbGFncywgbm9WYWx1ZSgpLCAwLAogICAg
ICAgICAgICAgbV9vdXQudGVzdElzWmVybzMyKAogICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4
WmVyb0V4dDMyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1faGVhcHMuSlNDZWxsX3R5cGVJ
bmZvRmxhZ3MpLAotICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSkpKTsKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKG1f
bm9kZS0+dHlwZUluZm9PcGVyYW5kKCkpKSk7CiAgICAgfQogICAgIAogICAgIHZvaWQgY29tcGls
ZUluc3RhbmNlT2YoKQpAQCAtNTgyMCw2ICs1ODUzLDE1IEBAIHByaXZhdGU6CiAgICAgICAgIHNl
dEJvb2xlYW4oCiAgICAgICAgICAgICBtX291dC5waGkobV9vdXQuYm9vbGVhbiwgbm90Q2VsbFJl
c3VsdCwgaXNJbnN0YW5jZVJlc3VsdCwgbm90SW5zdGFuY2VSZXN1bHQpKTsKICAgICB9CisKKyAg
ICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSB2
YWx1ZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBjb25z
dHJ1Y3RvciA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIExWYWx1ZSBoYXNJ
bnN0YW5jZSA9IGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDMoKSk7CisKKyAgICAgICAgc2V0Qm9v
bGVhbihtX291dC5lcXVhbChtX291dC5jb25zdEludDY0KEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4odHJ1ZSkpKSwgdm1DYWxsKG1fb3V0LmludDY0LCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9u
SW5zdGFuY2VPZkN1c3RvbSksIG1fY2FsbEZyYW1lLCB2YWx1ZSwgY29uc3RydWN0b3IsIGhhc0lu
c3RhbmNlKSkpOworICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVDb3VudEV4ZWN1dGlvbigp
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGYzNDMxYzk3NTFmYTM1ZGE5
NzAyNmM4NWMxODdkMjBlNjg4ZTVmZjEuLmEzYmRmYTdjZDVkMGY1NzI0N2YxYmU4YzQwYjI1MTBk
MjlkODAwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTIyOCw4ICsyMjgsOSBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIGNhc2Ugb3BfZ2V0
X2FycmF5X2xlbmd0aDoKICAgICAgICAgREVGSU5FX09QKG9wX2dldF9ieV9pZCkKICAgICAgICAg
REVGSU5FX09QKG9wX2dldF9ieV92YWwpCi0gICAgICAgIERFRklORV9PUChvcF9jaGVja19oYXNf
aW5zdGFuY2UpCisgICAgICAgIERFRklORV9PUChvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlKQog
ICAgICAgICBERUZJTkVfT1Aob3BfaW5zdGFuY2VvZikKKyAgICAgICAgREVGSU5FX09QKG9wX2lu
c3RhbmNlb2ZfY3VzdG9tKQogICAgICAgICBERUZJTkVfT1Aob3BfaXNfdW5kZWZpbmVkKQogICAg
ICAgICBERUZJTkVfT1Aob3BfaXNfYm9vbGVhbikKICAgICAgICAgREVGSU5FX09QKG9wX2lzX251
bWJlcikKQEAgLTM5OSw4ICs0MDAsOCBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2Fz
ZXMoKQogICAgICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CiAgICAgICAgIERFRklORV9T
TE9XQ0FTRV9PUChvcF9nZXRfYnlfaWQpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9n
ZXRfYnlfdmFsKQotICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfY2hlY2tfaGFzX2luc3Rh
bmNlKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaW5zdGFuY2VvZikKKyAgICAgICAg
REVGSU5FX1NMT1dDQVNFX09QKG9wX2luc3RhbmNlb2ZfY3VzdG9tKQogICAgICAgICBERUZJTkVf
U0xPV0NBU0VfT1Aob3BfamZhbHNlKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bfamxl
c3MpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9qbGVzc2VxKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKaW5kZXggOGI2MWNjMTI2ZmRlMGE0ZWQyYTZjN2VlZDE4NzdkZjdmYjA2ZmM2YS4u
NzVmZmZmYjg1MzQ1ZTA4ZTJmNzllMmE5NmI5ZjE4Y2U0NDkzZDU3NCAxMDA3NTUKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oCkBAIC01MDksOCArNTA5LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZv
aWQgZW1pdF9vcF9nZXRfYnlfdmFsKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9v
cF9nZXRfYXJndW1lbnRfYnlfdmFsKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9v
cF9pbml0X2xhenlfcmVnKEluc3RydWN0aW9uKik7Ci0gICAgICAgIHZvaWQgZW1pdF9vcF9jaGVj
a19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX292ZXJy
aWRlc19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2lu
c3RhbmNlb2YoSW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX2luc3RhbmNlb2Zf
Y3VzdG9tKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pc191bmRlZmluZWQo
SW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2lzX2Jvb2xlYW4oSW5zdHJ1Y3Rp
b24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2lzX251bWJlcihJbnN0cnVjdGlvbiopOwpAQCAt
NjE2LDggKzYxNyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRTbG93X29w
X2dldF9hcmd1bWVudHNfbGVuZ3RoKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2dldF9ieV92YWwoSW5zdHJ1
Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQg
ZW1pdFNsb3dfb3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93
Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKLSAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9jaGVja19o
YXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9y
Jik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiosIFZl
Y3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKKyAgICAgICAgdm9pZCBlbWl0U2xvd19v
cF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6
aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9qZmFsc2UoSW5zdHJ1Y3Rpb24q
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNs
b3dfb3Bfamxlc3MoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9y
Jik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bfamxlc3NlcShJbnN0cnVjdGlvbiosIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKQEAgLTc0NCw2ICs3NDUsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSkosIGludCwgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJl
ZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJSZWcsIEdQUlJlZywg
QnlWYWxJbmZvKik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpPSiwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnKTsKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihDX0pJVE9wZXJhdGlvbl9FSnNj
LCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VKc2NDLCBpbnQsIEdQUlJlZywgSlNDZWxsKik7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpzY0NKLCBpbnQs
IEdQUlJlZywgSlNDZWxsKiwgR1BSUmVnKTsKQEAgLTgxMSw2ICs4MTMsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9w
ZXJhdGlvbl9FSiwgaW50LCBHUFJSZWcsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpJZGMsIGludCwgR1BSUmVnLCBH
UFJSZWcsIGNvbnN0IElkZW50aWZpZXIqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkosIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQ
UlJlZywgR1BSUmVnKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSk9KLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJl
ZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcs
IEFycmF5UHJvZmlsZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQ
UlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oUF9KSVRPcGVyYXRpb25fRUpTLCBHUFJSZWcsIEdQUlJlZywgc2l6ZV90KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5kZXggY2FkYjA4MzA4Y2NjMDYxYjdjNzc3
ZDUwYjJhYzIzODNkMzk4ZTlkZS4uMDJiNGQ4ZGNkZDM0NzhhOWNjYTFkMTA3MDI5NDExMTUyOGQ4
OWFjYyAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKQEAgLTUwMyw2ICs1
MDMsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVy
YXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnkgb3BlcmEKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCitB
TFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSk9KIG9wZXJhdGlvbiwgaW50IGRzdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBh
cmcyLCBHUFJSZWcgYXJnMykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJn
MSwgYXJnMiwgYXJnMyk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tT
ZXRKU1ZhbHVlUmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKFZfSklU
T3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEpCiB7CiAgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGFyZzEpOwpAQCAtNjM4LDYgKzY0NCwxMiBAQCBBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
Skogb3BlcmF0aQogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNW
YWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0
aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcg
YXJnMiwgR1BSUmVnIGFyZzNUYWcsIEdQUlJlZyBhcmczUGF5bG9hZCkKK3sKKyAgICBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFy
ZzFUYWcsIGFyZzIsIEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzNQYXlsb2FkLCBhcmczVGFnKTsK
KyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQo
b3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IEpJVDo6Y2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCBvcGVyYXRpb24sIGludCBk
c3QsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFnLCBH
UFJSZWcgYXJnMlBheWxvYWQsIEFycmF5UHJvZmlsZSogYXJyYXlQcm9maWxlKQogewogICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9h
ZCwgYXJnMVRhZywgU0g0XzMyQklUX0RVTU1ZX0FSRyBhcmcyUGF5bG9hZCwgYXJnMlRhZywgVHJ1
c3RlZEltbVB0cihhcnJheVByb2ZpbGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMuY3BwCmluZGV4IDNhOTdkZDhhM2ZkZmE3NDNjY2IyZGYzMjk4YzUxNzU2OWE3NWE4M2Eu
LmRlYjhjOTlhYThlMjNjZjIwOTA5NDRmZGJhNmViNjJkNjZhZjQyYzggMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAtMTA1LDE3ICsxMDUsMjkgQEAgdm9pZCBK
SVQ6OmVtaXRTbG93X29wX25ld19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
biwgVmVjdG9yPFNsb3dDYXMKICAgICBlbWl0U3RvcmVDZWxsKGRzdCwgcmV0dXJuVmFsdWVHUFIp
OwogfQogCi12b2lkIEpJVDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKK3ZvaWQgSklUOjplbWl0X29wX292ZXJyaWRlc19oYXNfaW5z
dGFuY2UoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBpbnQgYmFzZVZh
bCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGRzdCA9IGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IGNvbnN0cnVjdG9yID0gY3VycmVu
dEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBpbnQgaGFzSW5zdGFuY2VWYWx1ZSA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKGhhc0luc3RhbmNlVmFsdWUsIHJlZ1QwKTsKKworICAgIC8vIFdlIGRvbid0IGp1bXAgaWYg
d2Uga25vdyB3aGF0IFN5bWJvbC5oYXNJbnN0YW5jZSB3b3VsZCBkby4KKyAgICBKdW1wIGN1c3Rv
bWhhc0luc3RhbmNlVmFsdWUgPSBicmFuY2hQdHIoTm90RXF1YWwsIHJlZ1QwLCBUcnVzdGVkSW1t
UHRyKG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNl
U3ltYm9sRnVuY3Rpb24oKSkpOwogCi0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlVmFs
LCByZWdUMCk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihjb25zdHJ1Y3RvciwgcmVnVDAp
OworCisgICAgLy8gQ2hlY2sgdGhhdCBjb25zdHJ1Y3RvciAnSW1wbGVtZW50c0hhc0luc3RhbmNl
JyBpLmUuIHRoZSBvYmplY3QgaXMgYSBDLUFQSSB1c2VyIG9yIGEgYm91bmQgZnVuY3Rpb24uCisg
ICAgdGVzdDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0
KCkpLCBUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSksIHJlZ1QwKTsK
KyAgICBlbWl0VGFnQm9vbChyZWdUMCk7CisgICAgSnVtcCBkb25lID0ganVtcCgpOwogCi0gICAg
Ly8gQ2hlY2sgdGhhdCBiYXNlVmFsIGlzIGEgY2VsbC4KLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZO
b3RKU0NlbGwocmVnVDAsIGJhc2VWYWwpOworICAgIGN1c3RvbWhhc0luc3RhbmNlVmFsdWUubGlu
ayh0aGlzKTsKKyAgICBtb3ZlKFRydXN0ZWRJbW0zMihWYWx1ZVRydWUpLCByZWdUMCk7CiAKLSAg
ICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgJ0ltcGxlbWVudHNIYXNJbnN0YW5jZScuCi0gICAgYWRk
U2xvd0Nhc2UoYnJhbmNoVGVzdDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5m
b0ZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5j
ZSkpKTsKKyAgICBkb25lLmxpbmsodGhpcyk7CisgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihk
c3QpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCkBAIC0xMjksNyArMTQxLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5z
dGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1QyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHBy
b3RvLCByZWdUMSk7CiAKLSAgICAvLyBDaGVjayB0aGF0IHByb3RvIGFyZSBjZWxscy4gIGJhc2VW
YWwgbXVzdCBiZSBhIGNlbGwgLSB0aGlzIGlzIGNoZWNrZWQgYnkgb3BfY2hlY2tfaGFzX2luc3Rh
bmNlLgorICAgIC8vIENoZWNrIHRoYXQgcHJvdG8gYXJlIGNlbGxzLiBiYXNlVmFsIG11c3QgYmUg
YSBjZWxsIC0gdGhpcyBpcyBjaGVja2VkIGJ5IHRoZSBnZXRfYnlfaWQgZm9yIFN5bWJvbC5oYXNJ
bnN0YW5jZS4KICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDIsIHZhbHVlKTsK
ICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDEsIHByb3RvKTsKIApAQCAtMTU3
LDYgKzE2OSwxMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3Rlcihkc3QpOwogfQog
Cit2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVjdGlvbiopCit7Cisg
ICAgLy8gVGhpcyBhbHdheXMgZ29lcyB0byBzbG93IHBhdGggc2luY2Ugd2UgZXhwZWN0IGl0IHRv
IGJlIHJhcmUuCisgICAgYWRkU2xvd0Nhc2UoanVtcCgpKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRf
b3BfaXNfdW5kZWZpbmVkKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAg
aW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBAIC04MjksMzMgKzg0
NywzMiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbnN0cmljdGVxKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZQogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7
CiB9CiAKLXZvaWQgSklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYg
aXRlcikKK3ZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7
CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50
IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBpbnQgYmFzZVZh
bCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IHByb3RvID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKIAotICAgIGxpbmtTbG93Q2FzZUlmTm90SlND
ZWxsKGl0ZXIsIGJhc2VWYWwpOworICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIHZh
bHVlKTsKKyAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBwcm90byk7CiAgICAgbGlu
a1Nsb3dDYXNlKGl0ZXIpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1Qw
KTsKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2VWYWwsIHJlZ1QxKTsKLSAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbkNoZWNrSGFzSW5zdGFuY2UsIGRzdCwgcmVnVDAsIHJlZ1QxKTsK
LQotICAgIGVtaXRKdW1wU2xvd1RvSG90KGp1bXAoKSwgY3VycmVudEluc3RydWN0aW9uWzRdLnUu
b3BlcmFuZCk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm90bywgcmVnVDEpOworICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSW5zdGFuY2VPZiwgZHN0LCByZWdUMCwgcmVnVDEpOwog
fQogCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordm9p
ZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAg
ICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAgICAgaW50IHZh
bHVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBpbnQgcHJvdG8gPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBjb25zdHJ1Y3RvciA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGhhc0luc3RhbmNlVmFsdWUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwogCi0gICAgbGlua1Nsb3dDYXNlSWZO
b3RKU0NlbGwoaXRlciwgdmFsdWUpOwotICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIs
IHByb3RvKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3Rlcih2YWx1ZSwgcmVnVDApOwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvdG8sIHJl
Z1QxKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2YsIGRzdCwgcmVnVDAs
IHJlZ1QxKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGNvbnN0cnVjdG9yLCByZWdUMSk7
CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihoYXNJbnN0YW5jZVZhbHVlLCByZWdUMik7Cisg
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tLCBkc3QsIHJlZ1QwLCBy
ZWdUMSwgcmVnVDIpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fbnVtYmVyKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0
b3ImIGl0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAKaW5kZXggODk0NTVlZGNlMDQ1NmJhZGY4ODhmYWEwMzA5ZGNhYjBkZTA3OGZjOC4uOTViMzk2
Njc4MTc3MmM4Y2ZlYjUyMDZjMTFjYWNiNTczZTEwMTE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAtMTgzLDE3ICsxODMsMzEgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX25ld19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBlbWl0U3RvcmVDZWxsKGRzdCwgcmV0dXJuVmFsdWVH
UFIpOwogfQogCi12b2lkIEpJVDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3ZvaWQgSklUOjplbWl0X29wX292ZXJyaWRlc19oYXNf
aW5zdGFuY2UoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBpbnQgYmFz
ZVZhbCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGRzdCA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IGNvbnN0cnVjdG9yID0gY3Vy
cmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBpbnQgaGFzSW5zdGFuY2VWYWx1ZSA9
IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAKLSAgICBlbWl0TG9hZFBheWxvYWQo
YmFzZVZhbCwgcmVnVDApOworICAgIGVtaXRMb2FkUGF5bG9hZChoYXNJbnN0YW5jZVZhbHVlLCBy
ZWdUMCk7CisgICAgLy8gV2UgZG9uJ3QganVtcCBpZiB3ZSBrbm93IHdoYXQgU3ltYm9sLmhhc0lu
c3RhbmNlIHdvdWxkIGRvLgorICAgIEp1bXAgaGFzSW5zdGFuY2VWYWx1ZU5vdENlbGwgPSBlbWl0
SnVtcElmTm90SlNDZWxsKGhhc0luc3RhbmNlVmFsdWUpOworICAgIEp1bXAgY3VzdG9taGFzSW5z
dGFuY2VWYWx1ZSA9IGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW1QdHIobV9j
b2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xG
dW5jdGlvbigpKSk7CisKKyAgICAvLyBXZSBrbm93IHRoYXQgY29uc3RydWN0b3IgaXMgYW4gb2Jq
ZWN0IGZyb20gdGhlIHdheSBieXRlY29kZSBpcyBlbWl0dGVkIGZvciBpbnN0YW5jZW9mIGV4cHJl
c3Npb25zLgorICAgIGVtaXRMb2FkUGF5bG9hZChjb25zdHJ1Y3RvciwgcmVnVDApOworCisgICAg
Ly8gQ2hlY2sgdGhhdCBjb25zdHJ1Y3RvciAnSW1wbGVtZW50c0hhc0luc3RhbmNlJyBpLmUuIHRo
ZSBvYmplY3QgaXMgYSBDLUFQSSB1c2VyIG9yIGEgYm91bmQgZnVuY3Rpb24uCisgICAgdGVzdDgo
WmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBUcnVz
dGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSksIHJlZ1QwKTsKKyAgICBKdW1w
IGRvbmUgPSBqdW1wKCk7CisKKyAgICBoYXNJbnN0YW5jZVZhbHVlTm90Q2VsbC5saW5rKHRoaXMp
OworICAgIGN1c3RvbWhhc0luc3RhbmNlVmFsdWUubGluayh0aGlzKTsKKyAgICBtb3ZlKFRydXN0
ZWRJbW0zMigxKSwgcmVnVDApOworCisgICAgZG9uZS5saW5rKHRoaXMpOworICAgIGVtaXRTdG9y
ZUJvb2woZHN0LCByZWdUMCk7CiAKLSAgICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgaXMgYSBjZWxs
LgotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlVmFsKTsKLSAgICAKLSAgICAv
LyBDaGVjayB0aGF0IGJhc2VWYWwgJ0ltcGxlbWVudHNIYXNJbnN0YW5jZScuCi0gICAgYWRkU2xv
d0Nhc2UoYnJhbmNoVGVzdDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0Zs
YWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkp
KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQpAQCAtMjA3LDcgKzIyMSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2luc3Rh
bmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0TG9hZFBheWxv
YWQodmFsdWUsIHJlZ1QyKTsKICAgICBlbWl0TG9hZFBheWxvYWQocHJvdG8sIHJlZ1QxKTsKIAot
ICAgIC8vIENoZWNrIHRoYXQgcHJvdG8gYXJlIGNlbGxzLiAgYmFzZVZhbCBtdXN0IGJlIGEgY2Vs
bCAtIHRoaXMgaXMgY2hlY2tlZCBieSBvcF9jaGVja19oYXNfaW5zdGFuY2UuCisgICAgLy8gQ2hl
Y2sgdGhhdCBwcm90byBhcmUgY2VsbHMuIGJhc2VWYWwgbXVzdCBiZSBhIGNlbGwgLSB0aGlzIGlz
IGNoZWNrZWQgYnkgdGhlIGdldF9ieV9pZCBmb3IgU3ltYm9sLmhhc0luc3RhbmNlLgogICAgIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbCh2YWx1ZSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SlNDZWxsKHByb3RvKTsKICAgICAKQEAgLTIzNSwyMCArMjQ5LDEwIEBAIHZvaWQgSklUOjpl
bWl0X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBl
bWl0U3RvcmVCb29sKGRzdCwgcmVnVDApOwogfQogCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY2hl
Y2tfaGFzX2luc3RhbmNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxT
bG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5j
ZW9mX2N1c3RvbShJbnN0cnVjdGlvbiopCiB7Ci0gICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQ7Ci0gICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZDsKLSAgICBpbnQgYmFzZVZhbCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9w
ZXJhbmQ7Ci0KLSAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlVmFsKTsKLSAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7Ci0KLSAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDEsIHJlZ1Qw
KTsKLSAgICBlbWl0TG9hZChiYXNlVmFsLCByZWdUMywgcmVnVDIpOwotICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZSwgZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCBy
ZWdUMik7Ci0KLSAgICBlbWl0SnVtcFNsb3dUb0hvdChqdW1wKCksIGN1cnJlbnRJbnN0cnVjdGlv
bls0XS51Lm9wZXJhbmQpOworICAgIC8vIFRoaXMgYWx3YXlzIGdvZXMgdG8gc2xvdyBwYXRoIHNp
bmNlIHdlIGV4cGVjdCBpdCB0byBiZSByYXJlLgorICAgIGFkZFNsb3dDYXNlKGp1bXAoKSk7CiB9
CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBAIC0y
NjYsNiArMjcwLDIxIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25JbnN0YW5jZU9mLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyKTsK
IH0KIAordm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIpCit7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7Cisg
ICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBpbnQg
Y29uc3RydWN0b3IgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBo
YXNJbnN0YW5jZVZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKKworICAg
IGxpbmtTbG93Q2FzZShpdGVyKTsKKworICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMSwgcmVnVDAp
OworICAgIGVtaXRMb2FkUGF5bG9hZChjb25zdHJ1Y3RvciwgcmVnVDIpOworICAgIGVtaXRMb2Fk
KGhhc0luc3RhbmNlVmFsdWUsIHJlZ1Q0LCByZWdUMyk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25JbnN0YW5jZU9mQ3VzdG9tLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDIsIHJlZ1Q0LCBy
ZWdUMyk7Cit9CisKIHZvaWQgSklUOjplbWl0X29wX2lzX3VuZGVmaW5lZChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAKaW5kZXggY2FkOTM0NjljMWJjYmQyYjU3ZGNiNTIwMjNhYmU5ZjcyM2Y3NDQ0NS4uNWQyYWU2
YmJjNTkxMTk2YjViNDEwMjllODdlNTk1YjU2YmVmNjA1NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xNDg3LDI1ICsxNDg3LDE3IEBAIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvCiAgICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShleGVjLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2VWYWwpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20oRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEpTT2JqZWN0KiBjb25z
dHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhhc0luc3RhbmNlKQogewogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4
ZWMpOwogCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIEpTVmFsdWUgYmFzZVZhbCA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZVZhbCk7
Ci0KLSAgICBpZiAoYmFzZVZhbC5pc09iamVjdCgpKSB7Ci0gICAgICAgIEpTT2JqZWN0KiBiYXNl
T2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbCk7Ci0gICAgICAgIEFTU0VSVCghYmFzZU9iamVjdC0+
c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkp
OwotICAgICAgICBpZiAoYmFzZU9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbXBs
ZW1lbnRzSGFzSW5zdGFuY2UoKSkgewotICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBiYXNlT2Jq
ZWN0LT5tZXRob2RUYWJsZSh2bSktPmN1c3RvbUhhc0luc3RhbmNlKGJhc2VPYmplY3QsIGV4ZWMs
IHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJl
c3VsdCkpOwotICAgICAgICB9Ci0gICAgfQorICAgIEpTVmFsdWUgaGFzSW5zdGFuY2VWYWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkSGFzSW5zdGFuY2UpOworCisgICAgQVNTRVJUKGhhc0lu
c3RhbmNlVmFsdWUgIT0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3Rv
SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpIHx8ICFjb25zdHJ1Y3Rvci0+c3RydWN0dXJlKCkt
PnR5cGVJbmZvKCkuaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSgpKTsKIAotICAgIHZtLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3Io
ZXhlYywgYmFzZVZhbCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihjb25zdHJ1Y3Rvci0+aGFzSW5z
dGFuY2UoZXhlYywgdmFsdWUsIGhhc0luc3RhbmNlVmFsdWUpKSk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggMjU0MjU1MDIyOWRhNDFlMWFk
ZDQ2YjBiMDI1OGU4ZTQ5OTViOWI2ZC4uNWMyYzgxNDE5NGZmZGM4N2U3ZWQzZDU4ZTEwZGY1YjNh
ZGVlYTE1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAg
LTExMiw2ICsxMTIsNyBAQCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpK
X0pJVE9wZXJhdGlvbl9FSSkoRXhlY1N0YXRlKiwgVW5pcXVlZFN0cgogdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpf
SklUT3BlcmF0aW9uX0VKWikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QpOwog
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpD
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSlNDZWxsKik7Cit0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSk9KKShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkEpKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBKU0FycmF5Kik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkkpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBVbmlxdWVkU3RyaW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICgqSl9KSVRPcGVyYXRpb25fRUpJZGMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBj
b25zdCBJZGVudGlmaWVyKik7CkBAIC0zMjgsNyArMzI5LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1i
b2xUYWIKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBp
bnQzMl90KSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmls
ZURpZENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uQ2hlY2tIYXNJbnN0YW5jZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgYmFzZVZhbCkgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkSGFzSW5zdGFuY2UpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikg
V1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRC
eVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRT
dWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50RGF0YS5jcHAKaW5kZXggMDE5MjdiNjMwNGMyM2MwZDVmYjg0NDY3ZjdiMzk4
YThhNGMxZWUzYS4uZjMzYzBiMzVmMGM2Y2UyOGJmOWYzZDM4MmEwOTExYjBmYTE2ODY5NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUg
Ik9wY29kZS5oIgogI2luY2x1ZGUgIlByb3BlcnR5T2Zmc2V0LmgiCisjaW5jbHVkZSAiV3JpdGVC
YXJyaWVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgTExJbnQgewogCkBAIC0xNTQs
NiArMTU1LDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhWTSYgdm0pCiAgICAgQVNT
RVJUKEZ1bmN0aW9uQ29kZSA9PSAyKTsKICAgICBBU1NFUlQoTW9kdWxlQ29kZSA9PSAzKTsKIAor
ICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nhc3Q8cHRyZGlmZl90PigocmVpbnRlcnByZXRfY2Fz
dDxXcml0ZUJhcnJpZXI8SlNDZWxsPio+KDB4NDAwMCktPnNsb3QoKSkpIC0gMHg0MDAwKSk7CiAg
ICAgc3RhdGljX2Fzc2VydChQdXRCeUlkUHJpbWFyeVR5cGVNYXNrID09IDB4NiwgIkxMSW50IGFz
c3VtZXMgUHV0QnlJZFByaW1hcnlUeXBlTWFzayBpcyA9PSAweDYiKTsKICAgICBzdGF0aWNfYXNz
ZXJ0KFB1dEJ5SWRQcmltYXJ5VHlwZVNlY29uZGFyeSA9PSAweDAsICJMTEludCBhc3N1bWVzIFB1
dEJ5SWRQcmltYXJ5VHlwZVNlY29uZGFyeSBpcyA9PSAweDAiKTsKICAgICBzdGF0aWNfYXNzZXJ0
KFB1dEJ5SWRQcmltYXJ5VHlwZU9iamVjdFdpdGhTdHJ1Y3R1cmUgPT0gMHgyLCAiTExJbnQgYXNz
dW1lcyBQdXRCeUlkUHJpbWFyeVR5cGVPYmplY3RXaXRoU3RydWN0dXJlIGlzID09IDB4MiIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXgg
OThmYmVkOGYyOGI4NWFiOGFkNjVjZDAzZjI2YmRiYmYyNjc5NzIxNi4uNWQ4YmZjM2VlOWI3MTUw
NzM5MzI4MTRlM2I0OWIzMGVmNmU1ZDY1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC01MjIsMzAgKzUyMiwyOCBAQCBMTElOVF9TTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfbmV3X3JlZ2V4cCkKICAgICBMTElOVF9SRVRVUk4oUmVnRXhw
T2JqZWN0OjpjcmVhdGUodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwU3Ry
dWN0dXJlKCksIHJlZ0V4cCkpOwogfQogCi1MTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
Y2hlY2tfaGFzX2luc3RhbmNlKQorTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2luc3Rh
bmNlb2YpCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKLSAgICAKICAgICBKU1ZhbHVlIHZhbHVlID0g
TExJTlRfT1BfQygyKS5qc1ZhbHVlKCk7Ci0gICAgSlNWYWx1ZSBiYXNlVmFsID0gTExJTlRfT1Bf
QygzKS5qc1ZhbHVlKCk7Ci0gICAgaWYgKGJhc2VWYWwuaXNPYmplY3QoKSkgewotICAgICAgICBK
U09iamVjdCogYmFzZU9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWwpOwotICAgICAgICBBU1NFUlQo
IWJhc2VPYmplY3QtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLmltcGxlbWVudHNEZWZhdWx0SGFz
SW5zdGFuY2UoKSk7Ci0gICAgICAgIGlmIChiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+dHlwZUlu
Zm8oKS5pbXBsZW1lbnRzSGFzSW5zdGFuY2UoKSkgewotICAgICAgICAgICAgSlNWYWx1ZSByZXN1
bHQgPSBqc0Jvb2xlYW4oYmFzZU9iamVjdC0+bWV0aG9kVGFibGUoKS0+Y3VzdG9tSGFzSW5zdGFu
Y2UoYmFzZU9iamVjdCwgZXhlYywgdmFsdWUpKTsKLSAgICAgICAgICAgIExMSU5UX1JFVFVSTl9X
SVRIX1BDX0FESlVTVE1FTlQocmVzdWx0LCBwY1s0XS51Lm9wZXJhbmQpOwotICAgICAgICB9Ci0g
ICAgfQotICAgIExMSU5UX1RIUk9XKGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJy
b3IoZXhlYywgYmFzZVZhbCkpOworICAgIEpTVmFsdWUgcHJvdG8gPSBMTElOVF9PUF9DKDMpLmpz
VmFsdWUoKTsKKyAgICBBU1NFUlQoIXZhbHVlLmlzT2JqZWN0KCkgfHwgIXByb3RvLmlzT2JqZWN0
KCkpOworICAgIExMSU5UX1JFVFVSTihqc0Jvb2xlYW4oSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0
YW5jZShleGVjLCB2YWx1ZSwgcHJvdG8pKSk7CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNs
b3dfcGF0aF9pbnN0YW5jZW9mKQorTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2luc3Rh
bmNlb2ZfY3VzdG9tKQogewogICAgIExMSU5UX0JFR0lOKCk7CisKICAgICBKU1ZhbHVlIHZhbHVl
ID0gTExJTlRfT1BfQygyKS5qc1ZhbHVlKCk7Ci0gICAgSlNWYWx1ZSBwcm90byA9IExMSU5UX09Q
X0MoMykuanNWYWx1ZSgpOwotICAgIEFTU0VSVCghdmFsdWUuaXNPYmplY3QoKSB8fCAhcHJvdG8u
aXNPYmplY3QoKSk7Ci0gICAgTExJTlRfUkVUVVJOKGpzQm9vbGVhbihKU09iamVjdDo6ZGVmYXVs
dEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90bykpKTsKKyAgICBKU1ZhbHVlIGNvbnN0cnVj
dG9yID0gTExJTlRfT1BfQygzKS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSBoYXNJbnN0YW5jZVZh
bHVlID0gTExJTlRfT1BfQyg0KS5qc1ZhbHVlKCk7CisKKyAgICBBU1NFUlQoY29uc3RydWN0b3Iu
aXNPYmplY3QoKSk7CisgICAgQVNTRVJUKGhhc0luc3RhbmNlVmFsdWUgIT0gZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigp
IHx8ICFjb25zdHJ1Y3Rvci5nZXRPYmplY3QoKS0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW1w
bGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSgpKTsKKworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNC
b29sZWFuKGNvbnN0cnVjdG9yLmdldE9iamVjdCgpLT5oYXNJbnN0YW5jZShleGVjLCB2YWx1ZSwg
aGFzSW5zdGFuY2VWYWx1ZSkpOworICAgIExMSU5UX1JFVFVSTihyZXN1bHQpOwogfQogCiBMTElO
VF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAppbmRleCAyNzEzMjRiMTg0NTNkNzJkYzhiNzYx
ODBiYTAzMDRhYjQ1NjU5NTk3Li4wZDVjOGRhNDNiMDA5YWI5N2FiMmY3MmE4NzVjMTRlYjU2NjAz
OWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0
aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaApA
QCAtNjcsOCArNjcsOCBAQCBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25l
d19hcnJheSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25ld19hcnJh
eV93aXRoX3NpemUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdf
YXJyYXlfYnVmZmVyKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3
X3JlZ2V4cCk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2NoZWNrX2hh
c19pbnN0YW5jZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luc3Rh
bmNlb2YpOworTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9m
X2N1c3RvbSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9ieV9p
ZCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9hcmd1bWVudHNf
bGVuZ3RoKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X2lk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggYzVhODdlM2IxZDM4YmUzMzY0MGVlNjJiZmJhNmI1OGMx
ZGVlNmI1Zi4uMTRkNmM2MmZhYzliOTBkY2RkMzczMDM3ZDY2OWNmYzI0NDJmOGRlYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20KQEAgLTExNzUsMTcgKzExNzUsMzQgQEAgX2xsaW50X29wX2JpdG9yOgogICAg
ICAgICA1KQogCiAKLV9sbGludF9vcF9jaGVja19oYXNfaW5zdGFuY2U6CitfbGxpbnRfb3Bfb3Zl
cnJpZGVzX2hhc19pbnN0YW5jZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZGkgMTJb
UENdLCB0MQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHQxLCBDZWxsVGFnLCB0
MCwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cpCi0gICAgYnRieiBKU0NlbGw6Om1fZmxhZ3NbdDBd
LCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdwot
ICAgIGRpc3BhdGNoKDUpCiAKLS5vcENoZWNrSGFzSW5zdGFuY2VTbG93OgotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2NoZWNrX2hhc19pbnN0YW5jZSkKLSAgICBkaXNwYXRjaCgw
KQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MykKKyAgICBzdG9yZWkgQm9vbGVhblRh
ZywgVGFnT2Zmc2V0W2NmciwgdDMsIDhdCiAKKyAgICAjIEZpcnN0IGNoZWNrIGlmIGhhc0luc3Rh
bmNlVmFsdWUgaXMgdGhlIG9uZSBvbiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3Rh
bmNlXQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigzLCB0MCkKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHQwLCB0MSwgdDIpCisgICAgYmluZXEgdDEsIENlbGxUYWcsIC5vcE92ZXJyaWRl
c2hhc0luc3RhbmNlVmFsdWVOb3RDZWxsCisKKyAgICAjIFdlIGRvbid0IG5lZWQgaGFzSW5zdGFu
Y2VWYWx1ZSdzIHRhZyByZWdpc3RlciBhbnltb3JlLgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJd
LCB0MQorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDFdLCB0MQorICAgIGxv
YWRwIEpTR2xvYmFsT2JqZWN0OjptX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0
aW9uW3QxXSwgdDEKKyAgICBiaW5lcSB0MSwgdDIsIC5vcE92ZXJyaWRlc2hhc0luc3RhbmNlVmFs
dWVOb3REZWZhdWx0CisKKyAgICAjIFdlIGtub3cgdGhlIGNvbnN0cnVjdG9yIGlzIGEgY2VsbC4K
KyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDApCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZVBheWxvYWRVbmNoZWNrZWQodDAsIHQxKQorICAgIHRieiBKU0NlbGw6Om1fZmxhZ3NbdDFd
LCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCB0MAorICAgIHN0b3JlaSB0MCwgUGF5bG9h
ZE9mZnNldFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKy5vcE92ZXJyaWRlc2hhc0lu
c3RhbmNlVmFsdWVOb3RDZWxsOgorLm9wT3ZlcnJpZGVzaGFzSW5zdGFuY2VWYWx1ZU5vdERlZmF1
bHQ6CisgICAgc3RvcmVwIDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRj
aCg0KQogCiBfbGxpbnRfb3BfaW5zdGFuY2VvZjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCkBAIC0x
MjE1LDYgKzEyMzIsMTEgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZikKICAgICBkaXNwYXRjaCg0KQogCitfbGxpbnRf
b3BfaW5zdGFuY2VvZl9jdXN0b206CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKQorICAgIGRpc3BhdGNoKDUp
CisKIAogX2xsaW50X29wX2lzX3VuZGVmaW5lZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQu
YXNtCmluZGV4IDY5ZjNlMGI1ZWEwOTFkNDQxNmI0YWE2ZGFjZjhiZWRkMTk4YTMzMzMuLjgzNzgw
MmU5ZWEwOTMyMmQ2NmE2OWU0ZTA2MzRiNGE0ZmZkOTcxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC0xMDY5
LDE2ICsxMDY5LDI4IEBAIF9sbGludF9vcF9iaXRvcjoKICAgICAgICAgNSkKIAogCi1fbGxpbnRf
b3BfY2hlY2tfaGFzX2luc3RhbmNlOgorX2xsaW50X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2U6
CiAgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MykK
KwogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigzLCB0MSkKLSAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlQ2VsbCh0MSwgdDAsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93KQotICAgIGJ0YnogSlND
ZWxsOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSwgLm9wQ2hlY2tI
YXNJbnN0YW5jZVNsb3cKLSAgICBkaXNwYXRjaCg1KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUodDEsIHQwKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgorICAgIGxvYWRwIENvZGVC
bG9jazo6bV9nbG9iYWxPYmplY3RbdDJdLCB0MgorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0Ojpt
X2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uW3QyXSwgdDIKKyAgICBicW5l
cSB0MCwgdDIsIC5vcE92ZXJyaWRlc0hhc0luc3RhbmNlTm90RGVmYXVsdFN5bWJvbAogCi0ub3BD
aGVja0hhc0luc3RhbmNlU2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9j
aGVja19oYXNfaW5zdGFuY2UpCi0gICAgZGlzcGF0Y2goMCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1
Y3Rpb24oMiwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgdGJ6
IEpTQ2VsbDo6bV9mbGFnc1t0MF0sIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UsIHQxCisg
ICAgb3JxIFZhbHVlRmFsc2UsIHQxCisgICAgc3RvcmVxIHQxLCBbY2ZyLCB0MywgOF0KKyAgICBk
aXNwYXRjaCg0KQorCisub3BPdmVycmlkZXNIYXNJbnN0YW5jZU5vdERlZmF1bHRTeW1ib2w6Cisg
ICAgc3RvcmVxIFZhbHVlVHJ1ZSwgdDEKKyAgICBzdG9yZXEgdDEsIFtjZnIsIHQzLCA4XQorICAg
IGRpc3BhdGNoKDQpCiAKIAogX2xsaW50X29wX2luc3RhbmNlb2Y6CkBAIC0xMTA5LDYgKzExMjEs
MTAgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaW5zdGFuY2VvZikKICAgICBkaXNwYXRjaCg0KQogCitfbGxpbnRfb3BfaW5zdGFuY2Vv
Zl9jdXN0b206CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKQorICAgIGRpc3BhdGNoKDUpCiAKIF9sbGludF9v
cF9pc191bmRlZmluZWQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggNjgzNWE4YTZkN2Yy
NzUzZGY4MTJhNzMzMWY3NTMzNTg0MjYyYTlhZS4uNWZmMDY0ODg4N2NkMGY5ODI3ZWZmNGFiM2Yz
ODgwNTNkYTY2NGU3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25JZGVudGlmaWVycy5oCkBAIC0yNTAsNyArMjUwLDYgQEAKICAgICBtYWNybyh5aWVsZCkK
IAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dO
X1NZTUJPTF9OT1RfSU1QTEVNRU5URURfWUVUKG1hY3JvKVwKLSAgICBtYWNybyhoYXNJbnN0YW5j
ZSkgXAogICAgIG1hY3JvKGlzQ29uY2F0U3ByZWFkYWJsZSkgXAogICAgIG1hY3JvKG1hdGNoKSBc
CiAgICAgbWFjcm8ocmVwbGFjZSkgXApAQCAtMjYwLDYgKzI1OSw3IEBACiAgICAgbWFjcm8odG9Q
cmltaXRpdmUpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hf
V0VMTF9LTk9XTl9TWU1CT0wobWFjcm8pIFwKKyAgICBtYWNybyhoYXNJbnN0YW5jZSkgXAogICAg
IG1hY3JvKGl0ZXJhdG9yKSBcCiAgICAgbWFjcm8odW5zY29wYWJsZXMpIFwKICAgICBtYWNybyh0
b1N0cmluZ1RhZykKQEAgLTM0Myw2ICszNDMsOSBAQAogICAgIG1hY3JvKE51bWJlckZvcm1hdCkg
XAogICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCiAgICAgbWFjcm8oZGVyaXZlZENvbnN0cnVj
dG9yKSBcCisgICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaGFzSW5zdGFu
Y2VCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaW5zdGFuY2VPZikgXAogCiAKIG5hbWVzcGFj
ZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0
aW9uSGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25I
ZWxwZXJzLmNwcAppbmRleCAwMTMxYjlmMWMzZDMzNGJhZTA1YzFjOWI2MDJiMGI5ZDUyOWYzYTMw
Li4xOTZiZTJlMWMzZGNlNTFiYTJiNjJlZjg4N2U3YmNjZThlMWY5MjBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApAQCAtMjA5
LDcgKzIwOSw3IEBAIHN0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluU291cmNlQXBwZW5k
ZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvCiAgICAgcmV0dXJuIG1ha2VTdHJp
bmcocmlnaHRIYW5kU2lkZSwgIiBpcyBub3QgYW4gT2JqZWN0LiAoZXZhbHVhdGluZyAnIiwgc291
cmNlVGV4dCwgIicpIik7CiB9CiAKLXN0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3Rh
bmNlb2ZTb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4
dFdoZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNlKQoraW5saW5lIFN0cmluZyBpbnZhbGlkUGFy
YW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgY29udGVudCwgY29u
c3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVu
dGltZVR5cGUsIEVycm9ySW5zdGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2Nj
dXJyZW5jZSkKIHsKICAgICBpZiAob2NjdXJyZW5jZSA9PSBFcnJvckluc3RhbmNlOjpGb3VuZEFw
cHJveGltYXRlU291cmNlKQogICAgICAgICByZXR1cm4gZGVmYXVsdEFwcHJveGltYXRlU291cmNl
RXJyb3Iob3JpZ2luYWxNZXNzYWdlLCBzb3VyY2VUZXh0KTsKQEAgLTIyMiw3ICsyMjIsMTcgQEAg
c3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKGNv
bnN0IFN0cmluZyYgb3JpZ2luYWxNZXMKIAogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnN0
YW5jZW9mTGVuZ3RoID0gMTA7CiAgICAgU3RyaW5nIHJpZ2h0SGFuZFNpZGUgPSBzb3VyY2VUZXh0
LnN1YnN0cmluZyhpbnN0YW5jZW9mSW5kZXggKyBpbnN0YW5jZW9mTGVuZ3RoKS5zaW1wbGlmeVdo
aXRlU3BhY2UoKTsKLSAgICByZXR1cm4gbWFrZVN0cmluZyhyaWdodEhhbmRTaWRlLCAiIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnIiwgc291cmNlVGV4dCwgIicpIik7CisgICAgcmV0
dXJuIG1ha2VTdHJpbmcocmlnaHRIYW5kU2lkZSwgY29udGVudCwgIi4gKGV2YWx1YXRpbmcgJyIs
IHNvdXJjZVRleHQsICInKSIpOworfQorCitzdGF0aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJ
bnN0YW5jZW9mTm90RnVuY3Rpb25Tb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFs
TWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSBydW50aW1lVHlw
ZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNl
KQoreworICAgIHJldHVybiBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVy
KFdURjo6bWFrZVN0cmluZygiIGlzIG5vdCBhIGZ1bmN0aW9uIiksIG9yaWdpbmFsTWVzc2FnZSwg
c291cmNlVGV4dCwgcnVudGltZVR5cGUsIG9jY3VycmVuY2UpOworfQorCitzdGF0aWMgU3RyaW5n
IGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9maGFzSW5zdGFuY2VWYWx1ZU5vdEZ1bmN0aW9uU291
cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVGV4dCwgUnVudGltZVR5cGUgcnVudGltZVR5cGUsIEVycm9ySW5zdGFuY2U6OlNvdXJj
ZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkKK3sKKyAgICByZXR1cm4gaW52YWxp
ZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRlcihXVEY6Om1ha2VTdHJpbmcoIltTeW1i
b2wuaGFzSW5zdGFuY2VdIGlzIG5vdCBhIGZ1bmN0aW9uLCB1bmRlZmluZWQsIG9yIG51bGwiKSwg
b3JpZ2luYWxNZXNzYWdlLCBzb3VyY2VUZXh0LCBydW50aW1lVHlwZSwgb2NjdXJyZW5jZSk7CiB9
CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBw
ZW5kZXIpCkBAIC0yNDUsOSArMjU1LDE0IEBAIEpTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5QYXJh
bWV0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiAgICAgcmV0dXJuIGNy
ZWF0ZUVycm9yKGV4ZWMsIHZhbHVlLCBtYWtlU3RyaW5nKCJpcyBub3QgYW4gT2JqZWN0LiIpLCBp
bnZhbGlkUGFyYW1ldGVySW5Tb3VyY2VBcHBlbmRlcik7CiB9CiAKLUpTT2JqZWN0KiBjcmVhdGVJ
bnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2
YWx1ZSkKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yTm90
RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIHJldHVybiBj
cmVhdGVFcnJvcihleGVjLCB2YWx1ZSwgbWFrZVN0cmluZygiIGlzIG5vdCBhIGZ1bmN0aW9uIiks
IGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mTm90RnVuY3Rpb25Tb3VyY2VBcHBlbmRlcik7Cit9
CisKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yaGFzSW5z
dGFuY2VWYWx1ZU5vdEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsK
LSAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywgdmFsdWUsIG1ha2VTdHJpbmcoImlzIG5vdCBh
IGZ1bmN0aW9uLiIpLCBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKTsK
KyAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywgdmFsdWUsIG1ha2VTdHJpbmcoIltTeW1ib2wu
aGFzSW5zdGFuY2VdIGlzIG5vdCBhIGZ1bmN0aW9uLCB1bmRlZmluZWQsIG9yIG51bGwiKSwgaW52
YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZoYXNJbnN0YW5jZVZhbHVlTm90RnVuY3Rpb25Tb3VyY2VB
cHBlbmRlcik7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVOb3RBQ29uc3RydWN0b3JFcnJvcihFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgKaW5kZXggYzZiYTAyZTNmYmIwMzNiMjFmMWQ5M2Ex
MWVhN2NkOWQzMGYxOTM5YS4uNTRjNWQ3MDk2NDJkMDI5Yzk0MGQyMWY2N2ViYTMxMTgzMGE3YjM4
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVs
cGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuaApAQCAtNDUsNyArNDUsOCBAQCBKU09iamVjdCogY3JlYXRlVERaRXJyb3IoRXhlY1N0YXRl
Kik7CiBKU09iamVjdCogY3JlYXRlTm90QW5PYmplY3RFcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVl
KTsKIEpTT2JqZWN0KiBjcmVhdGVJbnZhbGlkRnVuY3Rpb25BcHBseVBhcmFtZXRlckVycm9yKEV4
ZWNTdGF0ZSosIEpTVmFsdWUpOwogSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJblBhcmFtZXRlckVy
cm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwotSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5j
ZW9mUGFyYW1ldGVyRXJyb3IoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CitKU09iamVjdCogY3JlYXRl
SW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvck5vdEZ1bmN0aW9uKEV4ZWNTdGF0ZSosIEpT
VmFsdWUpOworSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3Jo
YXNJbnN0YW5jZVZhbHVlTm90RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVj
dCogY3JlYXRlTm90QUNvbnN0cnVjdG9yRXJyb3IoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09i
amVjdCogY3JlYXRlTm90QUZ1bmN0aW9uRXJyb3IoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09i
amVjdCogY3JlYXRlRXJyb3JGb3JJbnZhbGlkR2xvYmFsQXNzaWdubWVudChFeGVjU3RhdGUqLCBj
b25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCA5NzBkMDEyODZjYTgwOWY4MGM5MWYzMTM3NWNmMmZj
MjgzNjMyMmI0Li5hYTg3NTYxMDNiNzI0MDdkMjc3N2VkYjZhZmQ2MTVkYWZmNDZkMTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
Y3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CiAKLXZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6
OmFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTRnVuY3Rpb24qKiBjYWxsRnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBhcHBs
eUZ1bmN0aW9uKQordm9pZCBGdW5jdGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVz
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNGdW5jdGlv
bioqIGNhbGxGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGFwcGx5RnVuY3Rpb24sIEpTRnVuY3Rpb24q
KiBoYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CiAKQEAgLTYyLDYgKzYyLDcgQEAgdm9pZCBGdW5jdGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Q
cm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGcKIAogICAgICphcHBs
eUZ1bmN0aW9uID0gcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0s
IGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXBwbHlQdWJs
aWNOYW1lKCksIGZ1bmN0aW9uUHJvdG90eXBlQXBwbHlDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVu
dW0pOwogICAgICpjYWxsRnVuY3Rpb24gPSBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb25XaXRob3V0
VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5jYWxsUHVibGljTmFtZSgpLCBmdW5jdGlvblByb3RvdHlwZUNhbGxDb2RlR2VuZXJhdG9y
KHZtKSwgRG9udEVudW0pOworICAgICpoYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uID0gcHV0RGly
ZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmhh
c0luc3RhbmNlU3ltYm9sLCBmdW5jdGlvblByb3RvdHlwZVN5bWJvbEhhc0luc3RhbmNlQ29kZUdl
bmVyYXRvcih2bSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIAogICAgIEpT
RnVuY3Rpb24qIGJpbmRGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCAxLCB2bS5wcm9wZXJ0eU5hbWVzLT5iaW5kLnN0cmluZygpLCBmdW5jdGlvblByb3RvRnVu
Y0JpbmQpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5iaW5kLCBiaW5kRnVuY3Rpb24sIERvbnRFbnVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4IDUyY2U4ZjExYzVkZDdk
MTAzMTU1NjkwM2U1YWNhYjBkMmFkNGMwZjguLmFiZTUzM2EzM2ExZjM3OGZlZGI4MjE0ZjU2Y2M1
YWZlMGZhMWU2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBwcm90b3R5cGU7CiAgICAgfQogCi0gICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU0Z1bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1
bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7CisgICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU0Z1bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBK
U0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGhhc0luc3RhbmNlU3ltYm9s
RnVuY3Rpb24pOwogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcApp
bmRleCA4YzVjYzJlZDM5MDQ4MmVhYzJlNzc1YTRmMGMyZDJkNWM0Yzk5ZTYxLi4wZjA0OWY5MGZm
YmU2YWI3M2I5MTdlOTExNzNlMmQxZjFiMjgxOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKQEAgLTc0LDYgKzc0LDIwIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNvbnN0cnVjdChFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3QoZXhlYywgdGFy
Z2V0RnVuY3Rpb24sIGNvbnN0cnVjdFR5cGUsIGNvbnN0cnVjdERhdGEsIGFyZ3MpKTsKIH0KIAor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpc0JvdW5kRnVuY3Rpb24oRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShzdGF0aWNfY2FzdDxi
b29sPihqc0R5bmFtaWNDYXN0PEpTQm91bmRGdW5jdGlvbio+KGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKSkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBoYXNJbnN0YW5j
ZUJvdW5kRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTQm91bmRGdW5jdGlvbiog
Ym91bmRPYmplY3QgPSBqc0Nhc3Q8SlNCb3VuZEZ1bmN0aW9uKj4oZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkpOworICAgIEpTVmFsdWUgdmFsdWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgx
KTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGJvdW5kT2JqZWN0LT50
YXJnZXRGdW5jdGlvbigpLT5oYXNJbnN0YW5jZShleGVjLCB2YWx1ZSkpKTsKK30KKworCiBKU0Jv
dW5kRnVuY3Rpb24qIEpTQm91bmRGdW5jdGlvbjo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uLCBKU1ZhbHVlIGJvdW5k
VGhpcywgSlNWYWx1ZSBib3VuZEFyZ3MsIGludCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgbmFtZSkK
IHsKICAgICBDb25zdHJ1Y3REYXRhIGNvbnN0cnVjdERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCmluZGV4IGFmMmE2MzIzZDUzNzFlMjA1
NjBjMGYyNTU2Y2M1Yjg3ZjYyNTY4ZTkuLjA0MGVjYmY3ODI2NzQyYzU3Zjc4OTA2YTE1NmEwNDg3
ODc1OTI3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91
bmRGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRG
dW5jdGlvbi5oCkBAIC0zMiwxMSArMzIsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoRXhlY1N0YXRlKik7CiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QoRXhlY1N0YXRl
Kik7CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlzQm91bmRGdW5jdGlvbihFeGVjU3Rh
dGUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaGFzSW5zdGFuY2VCb3VuZEZ1bmN0
aW9uKEV4ZWNTdGF0ZSopOwogCiBjbGFzcyBKU0JvdW5kRnVuY3Rpb24gOiBwdWJsaWMgSlNGdW5j
dGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Z1bmN0aW9uIEJhc2U7Ci0gICAgY29uc3Qg
c3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzSGFzSW5zdGFuY2UgfCBC
YXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBPdmVycmlkZXNIYXNJbnN0YW5jZUZsYWcgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsK
IAogICAgIHN0YXRpYyBKU0JvdW5kRnVuY3Rpb24qIGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uLCBKU1ZhbHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBi
b3VuZEFyZ3MsIGludCwgY29uc3QgU3RyaW5nJik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggZWNjODJiYTYyOGJmMTZm
MjExNzlhMmM0OGRiYTczYWY3ZWU3MmE4MS4uODJmMjQxMTZjYWEyNmM5NDIzZTVmYTAxYjllNDky
OWE0ODJiZjA2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcApAQCAtMjg2LDEyICsyODYsMTQgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6
aW5pdChWTSYgdm0pCiAgICAgbV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhp
cywgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9u
UHJvdG90eXBlLmdldCgpKSk7CiAgICAgSlNGdW5jdGlvbiogY2FsbEZ1bmN0aW9uID0gMDsKICAg
ICBKU0Z1bmN0aW9uKiBhcHBseUZ1bmN0aW9uID0gMDsKLSAgICBtX2Z1bmN0aW9uUHJvdG90eXBl
LT5hZGRGdW5jdGlvblByb3BlcnRpZXMoZXhlYywgdGhpcywgJmNhbGxGdW5jdGlvbiwgJmFwcGx5
RnVuY3Rpb24pOworICAgIEpTRnVuY3Rpb24qIGhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24gPSAw
OworICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPmFkZEZ1bmN0aW9uUHJvcGVydGllcyhleGVjLCB0
aGlzLCAmY2FsbEZ1bmN0aW9uLCAmYXBwbHlGdW5jdGlvbiwgJmhhc0luc3RhbmNlU3ltYm9sRnVu
Y3Rpb24pOwogICAgIG1fY2FsbEZ1bmN0aW9uLnNldCh2bSwgdGhpcywgY2FsbEZ1bmN0aW9uKTsK
ICAgICBtX2FwcGx5RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBhcHBseUZ1bmN0aW9uKTsKICAgICBt
X2FycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0
ZSh2bSwgdGhpcywgMCwgdm0ucHJvcGVydHlOYW1lcy0+dmFsdWVzLnN0cmluZygpLCBhcnJheVBy
b3RvRnVuY1ZhbHVlcykpOwogICAgIG1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbi5zZXQodm0s
IHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJh
dGlvbnNJbml0aWFsaXplUHJvbWlzZUNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSk7CiAgICAgbV9u
ZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uLnNldCh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3Jl
YXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9uc05ld1Byb21pc2VDYXBhYmls
aXR5Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpKTsKKyAgICBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0
YW5jZVN5bWJvbEZ1bmN0aW9uLnNldCh2bSwgdGhpcywgaGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlv
bik7CiAgICAgbV9udWxsR2V0dGVyRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBOdWxsR2V0dGVyRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgTnVsbEdldHRlckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKSk7CiAgICAgbV9udWxsU2V0dGVyRnVu
Y3Rpb24uc2V0KHZtLCB0aGlzLCBOdWxsU2V0dGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgTnVsbFNl
dHRlckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5
cGUuZ2V0KCkpKSk7CiAgICAgbV9vYmplY3RQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBPYmplY3RQ
cm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgT2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoaXMsIGpzTnVsbCgpKSkpOwpAQCAtNTIxLDYgKzUyMyw5IEBAIHB1dERpcmVjdFdp
dGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUg
IyMgQ29uc3RydWN0CiAgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1
bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdFRvSW50ZWdlckNv
ZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVk
QXJyYXlMZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRl
RnVuY1R5cGVkQXJyYXlTb3J0ID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJp
bmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQpOworICAgIEpTRnVuY3Rpb24qIHBy
aXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAw
LCBTdHJpbmcoKSwgaXNCb3VuZEZ1bmN0aW9uKTsKKyAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVu
Y0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywg
MCwgU3RyaW5nKCksIGhhc0luc3RhbmNlQm91bmRGdW5jdGlvbik7CisgICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNJbnN0YW5jZU9mID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBT
dHJpbmcoKSwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKTsKIAogICAgIEdsb2JhbFByb3Bl
cnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7CiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5OYU4sIGpzTmFOKCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5KSwKQEAgLTUzNSw2ICs1NDAsOSBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+VHlwZUVycm9yUHJpdmF0
ZU5hbWUsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFt
ZXMtPnR5cGVkQXJyYXlMZW5ndGhQcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVu
Z3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFBy
b3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBlZEFycmF5U29ydFByaXZhdGVOYW1lLCBw
cml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0LCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pc0JvdW5k
RnVuY3Rpb25Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmhhc0luc3RhbmNlQm91bmRGdW5jdGlvblByaXZhdGVOYW1lLCBwcml2
YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
aW5zdGFuY2VPZlByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0luc3RhbmNlT2YsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPkJ1aWx0aW5Mb2dQcml2YXRlTmFtZSwgYnVpbHRpbkxvZywgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+QXJyYXlQcml2YXRlTmFtZSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVu
dW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8o
dm0ucHJvcGVydHlOYW1lcy0+TnVtYmVyUHJpdmF0ZU5hbWUsIG51bWJlckNvbnN0cnVjdG9yLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCkBAIC04MzIsNiArODQwLDcgQEAgdm9p
ZCBKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2FycmF5UHJvdG9W
YWx1ZXNGdW5jdGlvbik7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1faW5pdGlh
bGl6ZVByb21pc2VGdW5jdGlvbik7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1f
bmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbik7CisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNP
YmplY3QtPm1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKTsK
ICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9tb2R1bGVMb2FkZXIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA2MmQx
NDk1ZTE5ZTk2ZDE1ZDUzMjY3NDcxYjRkMzY4NDRlM2M5MmEyLi45YTBhZTYyMmY2NjRmMDk3ZjU5
ZThjMDk4Njc3ODViMzkzOGM1YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
V3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fYXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uOwogICAg
IFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2luaXRpYWxpemVQcm9taXNlRnVuY3Rpb247CiAg
ICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlv
bjsKKyAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9mdW5jdGlvblByb3RvSGFzSW5zdGFu
Y2VTeW1ib2xGdW5jdGlvbjsKICAgICBXcml0ZUJhcnJpZXI8R2V0dGVyU2V0dGVyPiBtX3Rocm93
VHlwZUVycm9yR2V0dGVyU2V0dGVyOwogCiAgICAgV3JpdGVCYXJyaWVyPE1vZHVsZUxvYWRlck9i
amVjdD4gbV9tb2R1bGVMb2FkZXI7CkBAIC00MzgsNiArNDM5LDcgQEAgcHVibGljOgogICAgIEpT
RnVuY3Rpb24qIGFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYXJy
YXlQcm90b1ZhbHVlc0Z1bmN0aW9uLmdldCgpOyB9CiAgICAgSlNGdW5jdGlvbiogaW5pdGlhbGl6
ZVByb21pc2VGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbGl6ZVByb21pc2VGdW5j
dGlvbi5nZXQoKTsgfQogICAgIEpTRnVuY3Rpb24qIG5ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX25ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24uZ2V0KCk7
IH0KKyAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rp
b24uZ2V0KCk7IH0KICAgICBHZXR0ZXJTZXR0ZXIqIHRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVy
KFZNJiB2bSkKICAgICB7CiAgICAgICAgIGlmICghbV90aHJvd1R5cGVFcnJvckdldHRlclNldHRl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCBhMGY3
NzE5NDdjMDhmN2UxMzIxMDk2NzJiYTgzM2NkMjFiODJiZDM0Li4wM2U4OGFhNmM5ZmRkZTA3NzNj
ZWIyN2NjYTdiMzUwNDFlMTQ4NmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCkBAIC0xNDU3LDE4ICsxNDU3LDQwIEBAIGNvbnN0IEhhc2hUYWJsZVZhbHVl
KiBKU09iamVjdDo6ZmluZFByb3BlcnR5SGFzaEVudHJ5KFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgSlNPYmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK2Jvb2wgSlNPYmplY3Q6Omhhc0luc3RhbmNlKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBoYXNJbnN0YW5jZVZhbHVlKQog
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisKKyAgICBpZiAoIWhhc0luc3RhbmNlVmFsdWUu
aXNVbmRlZmluZWRPck51bGwoKSAmJiBoYXNJbnN0YW5jZVZhbHVlICE9IGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSkg
eworICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUg
PSBKU0M6OmdldENhbGxEYXRhKGhhc0luc3RhbmNlVmFsdWUsIGNhbGxEYXRhKTsKKyAgICAgICAg
aWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgeworICAgICAgICAgICAgdm0udGhyb3dFeGNl
cHRpb24oZXhlYywgY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcmhhc0luc3Rh
bmNlVmFsdWVOb3RGdW5jdGlvbihleGVjLCB0aGlzKSk7CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KKworICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAg
ICAgICBhcmdzLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChl
eGVjLCBoYXNJbnN0YW5jZVZhbHVlLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3MpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0LnRvQm9vbGVhbihleGVjKTsKKyAgICB9CisKICAgICBUeXBl
SW5mbyBpbmZvID0gc3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKTsKICAgICBpZiAoaW5mby5pbXBs
ZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpCiAgICAgICAgIHJldHVybiBkZWZhdWx0SGFzSW5z
dGFuY2UoZXhlYywgdmFsdWUsIGdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90
eXBlKSk7CiAgICAgaWYgKGluZm8uaW1wbGVtZW50c0hhc0luc3RhbmNlKCkpCiAgICAgICAgIHJl
dHVybiBtZXRob2RUYWJsZSh2bSktPmN1c3RvbUhhc0luc3RhbmNlKHRoaXMsIGV4ZWMsIHZhbHVl
KTsKLSAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBh
cmFtZXRlckVycm9yKGV4ZWMsIHRoaXMpKTsKKyAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBj
cmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yTm90RnVuY3Rpb24oZXhlYywgdGhp
cykpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBKU09iamVjdDo6aGFzSW5zdGFuY2Uo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVmFsdWUgaGFzSW5zdGFu
Y2VWYWx1ZSA9IGdldChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaGFzSW5zdGFuY2VTeW1i
b2wpOworCisgICAgcmV0dXJuIGhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBoYXNJbnN0YW5jZVZh
bHVlKTsKK30KKwogYm9vbCBKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90bykKIHsKICAgICBpZiAoIXZhbHVlLmlz
T2JqZWN0KCkpCkBAIC0xNDg3LDYgKzE1MDksMTQgQEAgYm9vbCBKU09iamVjdDo6ZGVmYXVsdEhh
c0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90bykK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2Jq
ZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVl
IHZhbHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCk7CisgICAgSlNWYWx1ZSBwcm90byA9
IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc0Jvb2xlYW4oSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0YW5jZShleGVjLCB2YWx1ZSwgcHJv
dG8pKSk7Cit9CisKIHZvaWQgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZShleGVjLT52
bSgpKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1v
ZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggYWJmNWE1
YmQ5NmY3ZTE0MmFlZDA5Zjc3YTMzOWY0M2U4OGFhMGY2Zi4uODY3MTZmY2UyYmQzYzNiZmQ3YjY1
NDQwYWVmZWM2NTg0ZjVlMWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCkBAIC00ODUsNiArNDg1LDcgQEAgcHVibGljOgogCiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIEpTVmFsdWUgZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRl
KiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSk7CiAKKyAgICBKU19FWFBPUlRfUFJJVkFURSBib29s
IGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUsIEpTVmFsdWUgaGFzSW5zdGFu
Y2VWYWx1ZSk7CiAgICAgYm9vbCBoYXNJbnN0YW5jZShFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKICAg
ICBzdGF0aWMgYm9vbCBkZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgSlNW
YWx1ZSBwcm90b3R5cGVQcm9wZXJ0eSk7CiAKQEAgLTk3NCw2ICs5NzUsOCBAQCBwcml2YXRlOgog
ICAgIH0KIH07CiAKK0pTX0VYUE9SVF9QUklWQVRFIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKEV4ZWNTdGF0ZSopOworCiBpbmxpbmUgSlNG
aW5hbE9iamVjdCogSlNGaW5hbE9iamVjdDo6Y3JlYXRlKAogICAgIEV4ZWNTdGF0ZSogZXhlYywg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZseSogYnV0dGVyZmx5KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCmluZGV4IGNhMTEyMGNiZTVjZjQ1ZGFm
ODUxMDlmZTMwMTNhYjkzNTVlZGMzZmMuLjA3MThiYTc3MzcwOTgyMjQ5NjVlY2UxMzE0NmYyMDAw
YzlmNTBhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZUluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgK
QEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCiBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDE7IC8vIFdlYkNvcmUgdXNl
cyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9jdW1lbnQuYWxsIHVuZGV0ZWN0YWJs
ZS4KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgPSAxIDw8IDE7
Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVzSGFzSW5zdGFuY2UgPSAxIDw8IDI7Citz
dGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVzSGFzSW5zdGFuY2VGbGFnID0gMSA8PCAyOyAv
LyBGaXhNZTogVGhpcyBpcyBvbmx5IHRyaXZpYWxseSB1c2VkIGJ5IHRoZSBydW50aW1lIGFuZCBz
aG91bGQgYmUgcmVtb3ZlZDogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MjAwNQogc3RhdGljIGNvbnN0IHVuc2lnbmVkIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2UgPSAxIDw8IDM7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgVHlwZU9mU2hvdWxkQ2FsbEdldENh
bGxEYXRhID0gMSA8PCA0OyAvLyBOZWVkIHRoaXMgZmxhZyBpZiB5b3Ugb3ZlcnJpZGUgZ2V0Q2Fs
bERhdGEoKSBhbmQgeW91IHdhbnQgdHlwZW9mIHRvIHVzZSB0aGlzIHRvIGRldGVybWluZSBpZiBp
dCBzaG91bGQgc2F5ICJmdW5jdGlvbiIuIEN1cnJlbnRseSB3ZSBhbHdheXMgc2V0IHRoaXMgZmxh
ZyB3aGVuIHdlIG92ZXJyaWRlIGdldENhbGxEYXRhKCkuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQg
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90ID0gMSA8PCA1OwpAQCAtNjgsOSArNjgsOSBAQCBw
dWJsaWM6CiAgICAgICAgICwgbV9mbGFnczIob3V0T2ZMaW5lVHlwZUZsYWdzKQogICAgIHsKICAg
ICAgICAgLy8gTm8gb2JqZWN0IHRoYXQgZG9lc24ndCBJbXBsZW1lbnRzSGFzSW5zdGFuY2Ugc2hv
dWxkIG92ZXJyaWRlIGl0IQotICAgICAgICBBU1NFUlQoKG1fZmxhZ3MgJiAoSW1wbGVtZW50c0hh
c0luc3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2UpKSAhPSBPdmVycmlkZXNIYXNJbnN0YW5j
ZSk7CisgICAgICAgIEFTU0VSVCgobV9mbGFncyAmIChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBP
dmVycmlkZXNIYXNJbnN0YW5jZUZsYWcpKSAhPSBPdmVycmlkZXNIYXNJbnN0YW5jZSk7CiAgICAg
ICAgIC8vIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgbWVhbnMgKEltcGxlbWVudHNIYXNJ
bnN0YW5jZSAmICFPdmVycmlkZXNIYXNJbnN0YW5jZSkKLSAgICAgICAgaWYgKChtX2ZsYWdzICYg
KEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlKSkgPT0gSW1wbGVt
ZW50c0hhc0luc3RhbmNlKQorICAgICAgICBpZiAoKG1fZmxhZ3MgJiAoSW1wbGVtZW50c0hhc0lu
c3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2VGbGFnKSkgPT0gSW1wbGVtZW50c0hhc0luc3Rh
bmNlKQogICAgICAgICAgICAgbV9mbGFncyB8PSBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNl
OwogICAgIH0KIApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgZmxhZ3Mo
KSBjb25zdCB7IHJldHVybiAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fZmxhZ3MyKSA8PCA4KSB8
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2ZsYWdzKTsgfQogICAgIGJvb2wgbWFzcXVlcmFkZXNB
c1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczEoTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCk7IH0KICAgICBib29sIGltcGxlbWVudHNIYXNJbnN0YW5jZSgpIGNvbnN0IHsgcmV0
dXJuIGlzU2V0T25GbGFnczEoSW1wbGVtZW50c0hhc0luc3RhbmNlKTsgfQotICAgIGJvb2wgb3Zl
cnJpZGVzSGFzSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKE92ZXJyaWRl
c0hhc0luc3RhbmNlKTsgfQorICAgIGJvb2wgb3ZlcnJpZGVzSGFzSW5zdGFuY2UoKSBjb25zdCB7
IHJldHVybiBpc1NldE9uRmxhZ3MxKE92ZXJyaWRlc0hhc0luc3RhbmNlRmxhZyk7IH0KICAgICBi
b29sIGltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9u
RmxhZ3MxKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpOyB9CiAgICAgYm9vbCB0eXBlT2ZT
aG91bGRDYWxsR2V0Q2FsbERhdGEoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKFR5cGVP
ZlNob3VsZENhbGxHZXRDYWxsRGF0YSk7IH0KICAgICBib29sIG92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCgpIGNvbnN0IHsgcmV0dXJuIG92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdChpbmxp
bmVUeXBlRmxhZ3MoKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dyaXRlQmFycmllci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVC
YXJyaWVyLmgKaW5kZXggMGY3MGUxZWEwMGM2MjIwYWZkODAyNzg5NjgxYjlkOThjYWE4NGE5Ni4u
YjcyN2QxODVlNGQ3MGUxOTllZmZjZTBlMWFjYTA0Y2Y5NTI4MzU2NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKQEAgLTE1MiwxNCArMTUyLDkgQEAg
cHVibGljOgogICAgIGJvb2wgaXNHZXR0ZXJTZXR0ZXIoKSBjb25zdCB7IHJldHVybiBnZXQoKS5p
c0dldHRlclNldHRlcigpOyB9CiAgICAgYm9vbCBpc0N1c3RvbUdldHRlclNldHRlcigpIGNvbnN0
IHsgcmV0dXJuIGdldCgpLmlzQ3VzdG9tR2V0dGVyU2V0dGVyKCk7IH0KICAgICAKLSAgICBKU1Zh
bHVlKiBzbG90KCkKKyAgICBKU1ZhbHVlKiBzbG90KCkgY29uc3QKICAgICB7IAotICAgICAgICB1
bmlvbiB7Ci0gICAgICAgICAgICBFbmNvZGVkSlNWYWx1ZSogdjsKLSAgICAgICAgICAgIEpTVmFs
dWUqIHNsb3Q7Ci0gICAgICAgIH0gdTsKLSAgICAgICAgdS52ID0gJm1fdmFsdWU7Ci0gICAgICAg
IHJldHVybiB1LnNsb3Q7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SlNWYWx1ZSo+KCZt
X3ZhbHVlKTsKICAgICB9CiAgICAgCiAgICAgaW50MzJfdCogdGFnUG9pbnRlcigpIHsgcmV0dXJu
ICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KCZtX3ZhbHVlKS0+YXNCaXRz
LnRhZzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1s
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1sCmluZGV4IDdlNjNhYmQ4MmVm
NGNiYjU5NGMyNTBlM2U5ZDhlN2EwODEzYTcyZmIuLmYxMTk3ZDEzZGZlNWJmMTVlOTk0ZjRkYWMy
YWEzODNjNTMzNzEyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYueWFtbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwKQEAgLTEx
ODMsNyArMTE4Myw3IEBACiAtIHBhdGg6IGVzNi9XZWFrU2V0X2l0ZXJhdG9yX2Nsb3NpbmcuanMK
ICAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1i
b2wuaGFzSW5zdGFuY2UuanMKLSAgY21kOiBydW5FUzYgOmZhaWwKKyAgY21kOiBydW5FUzYgOm5v
cm1hbAogLSBwYXRoOiBlczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5pc0NvbmNhdFNwcmVh
ZGFibGUuanMKICAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3dlbGwta25vd25fc3lt
Ym9sc19TeW1ib2wubWF0Y2guanMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwODYxYWRmNWJmZTYzM2MyNGYyOGE1MjUwNWU2
NGU5ZTQ2NmRhYjBjLi41MzdkYjJkZGI2NWZiYWNlNjgyMmNkZTQ3NjE3NDU3N2VlNTg4OTA1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUtMTItMDggIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5o
YXNJbnN0YW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRml4IHRlc3RzIHRvIHJlZmxlY3QgdGhlIGNoYW5nZXMgdG8gaW5zdGFuY2VvZiBpbiBFUzYu
CisKKyAgICAgICAgQWRkZWQgYSBuZXcgcmVncmVzc2lvbiB0ZXN0IGZvciBib3VuZCBmdW5jdGlv
bnMgaW4gaW5zdGFuY2VvZgorICAgICAgICBhcyB0aGUgcGVyZm9tYW5jZSBvbiBib3VuZCBmdW5j
dGlvbnMgc2hvdWxkLCB0byBzb21lIGRlZ3JlZSwKKyAgICAgICAgcmVmbGVjdCB0aGUgcGVyZm9y
bWFuY2Ugb24gQy1BUEkgdXNlcnMuCisKKyAgICAgICAgKiBqcy9PYmplY3QtZ2V0T3duUHJvcGVy
dHlOYW1lcy1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZXhjZXB0aW9uLWZvci1ub25vYmpl
Y3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2V4Y2VwdGlvbi1pbnN0YW5jZW9mLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBqcy9pbnN0YW5jZS1vZi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMu
anM6CisKIDIwMTUtMTItMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAg
ICAgICAgIE1vZGVybiBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL21ldGFkYXRhLmh0bWwgZmFpbHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4
cGVjdGVkLnR4dAppbmRleCBjYWUyMTliYWY5MmI1OTUwYmU3N2Y5NDU3ZGEwMmNjNTE5NjdmOTgz
Li43ZjVkZTVmODIyNzhmYjcxOThhODkyOTE2MjI1MTJlM2UwZTI4ZGE4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0
CkBAIC02MSw3ICs2MSw3IEBAIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhFcnJvcikg
aXMgWydsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9w
ZXJ0eU5hbWVzKEVycm9yLnByb3RvdHlwZSkgaXMgWydjb25zdHJ1Y3RvcicsICdtZXNzYWdlJywg
J25hbWUnLCAndG9TdHJpbmcnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKE1hdGgp
IGlzIFsnRScsJ0xOMTAnLCdMTjInLCdMT0cxMEUnLCdMT0cyRScsJ1BJJywnU1FSVDFfMicsJ1NR
UlQyJywnYWJzJywnYWNvcycsJ2Fjb3NoJywnYXNpbicsJ2FzaW5oJywnYXRhbicsJ2F0YW4yJywn
YXRhbmgnLCdjYnJ0JywnY2VpbCcsJ2NsejMyJywnY29zJywnY29zaCcsJ2V4cCcsJ2V4cG0xJywn
Zmxvb3InLCdmcm91bmQnLCdoeXBvdCcsJ2ltdWwnLCdsb2cnLCdsb2cxMCcsJ2xvZzFwJywnbG9n
MicsJ21heCcsJ21pbicsJ3BvdycsJ3JhbmRvbScsJ3JvdW5kJywnc2lnbicsJ3NpbicsJ3Npbmgn
LCdzcXJ0JywndGFuJywndGFuaCcsJ3RydW5jJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlO
YW1lcyhKU09OKSBpcyBbJ3BhcnNlJywgJ3N0cmluZ2lmeSddCi1QQVNTIGdldFNvcnRlZE93blBy
b3BlcnR5TmFtZXMoU3ltYm9sKSBpcyBbJ2ZvcicsICdpdGVyYXRvcicsICdrZXlGb3InLCAnbGVu
Z3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3RyaW5nVGFnJywgJ3Vuc2NvcGFibGVzJ10K
K1BBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTeW1ib2wpIGlzIFsnZm9yJywgJ2hhc0lu
c3RhbmNlJywgJ2l0ZXJhdG9yJywgJ2tleUZvcicsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5
cGUnLCAndG9TdHJpbmdUYWcnLCAndW5zY29wYWJsZXMnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9w
ZXJ0eU5hbWVzKFN5bWJvbC5wcm90b3R5cGUpIGlzIFsnY29uc3RydWN0b3InLCAndG9TdHJpbmcn
LCAndmFsdWVPZiddCiBQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMuaW5kZXhPZignTmFOJykgIT0g
LTEgaXMgdHJ1ZQogUEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ0luZmluaXR5Jykg
IT0gLTEgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWZvci1u
b25vYmplY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWZvci1ub25v
YmplY3QtZXhwZWN0ZWQudHh0CmluZGV4IDlmOWFlNjljODZjZTlmMGVhYTcxMGZmMGE2YTBkNTUz
YTE4ZTBhMmMuLjc3NGQyMjdkMDM1YWRmMTdmM2JjZTA5ODA1MTFmMmUzMmU0Mjc1ZTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBlY3RlZC50
eHQKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogUEFTUyBuZXcg
e30udW5kZWZpbmVkIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3Qg
YSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IHt9LnVuZGVmaW5lZCcpLgotUEFTUyAxIGlu
c3RhbmNlb2Yge30udW5kZWZpbmVkIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHt9LnVuZGVm
aW5lZCBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzEgaW5zdGFuY2VvZiB7fS51bmRl
ZmluZWQnKS4KK1BBU1MgMSBpbnN0YW5jZW9mIHt9LnVuZGVmaW5lZCB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0
LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQKaW5kZXgg
ZWQ2OGI2Y2M4YTA3YTVhNzUyOTU5NTczZTMzZTE4NWFlYTMxOTViNi4uMGVmZDdhODZlMDljNDcw
MGQ0Y2QxZDY4ZWQyOTlmZmZhODMyN2M5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZXhj
ZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2V4Y2Vw
dGlvbi1pbnN0YW5jZW9mLWV4cGVjdGVkLnR4dApAQCAtMywxMSArMywxMSBAQCBUZXN0IGZvciBl
cnJvciBtZXNzYWdlcyBmb3IgaW5zdGFuY2VvZgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgog
CiAKLVBBU1MgJ2luc3RhbmNlb2YnIGluc3RhbmNlb2YgICAgJ2luc3RhbmNlb2YnIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6ICJpbnN0YW5jZW9mIiBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1
YXRpbmcgJydpbnN0YW5jZW9mJyBpbnN0YW5jZW9mICAgICdpbnN0YW5jZW9mJycpLgotUEFTUyAy
MCBpbnN0YW5jZW9mICAgICAnaGVsbG8nICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogJ2hl
bGxvJyBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzIwIGluc3RhbmNlb2YgICAgICdo
ZWxsbycnKS4KK1BBU1MgJ2luc3RhbmNlb2YnIGluc3RhbmNlb2YgICAgJ2luc3RhbmNlb2YnIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlz
IG5vdCBhbiBvYmplY3QuCitQQVNTIDIwIGluc3RhbmNlb2YgICAgICdoZWxsbycgICB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3Qg
YW4gb2JqZWN0LgogUEFTUyAyMCBpbnN0YW5jZW9mICAgICB7fSAgIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IHt9IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnMjAgaW5zdGFuY2Vv
ZiAgICAge30nKS4KLVBBU1MgMjAgaW5zdGFuY2VvZiAgICAge30uZm9vICB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiB7fS5mb28gaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcyMCBp
bnN0YW5jZW9mICAgICB7fS5mb28nKS4KLVBBU1MgMjAgaW5zdGFuY2VvZiAgICAgdHJ1ZSAgICAg
ICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB0cnVlIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZh
bHVhdGluZyAnMjAgaW5zdGFuY2VvZiAgICAgdHJ1ZScpLgorUEFTUyAyMCBpbnN0YW5jZW9mICAg
ICB7fS5mb28gIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBp
bnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCitQQVNTIDIwIGluc3RhbmNlb2YgICAgIHRydWUg
ICAgICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3Rh
bmNlb2YgaXMgbm90IGFuIG9iamVjdC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvaW5zdGFuY2Utb2Yt
aW1tZWRpYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9pbnN0YW5jZS1vZi1pbW1l
ZGlhdGVzLWV4cGVjdGVkLnR4dAppbmRleCAxMTAwZGI4YWI3YmM5YWRjMGU2ZTRmYjZkMTFlZDk1
YTZjZWM4ZDk1Li5lNmVmYzZhNTcxMTVmZGY4MDk0NGQxNTNjNmFmZGRhMjI2ZGI2NDUxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9pbnN0YW5jZS1vZi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9qcy9pbnN0YW5jZS1vZi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4
dApAQCAtMyw5ICszLDkgQEAgVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBpbnN0YW5jZSBvZiBi
ZWhhdmVzIGNvcnJlY3RseSB3aGVuIHRoZSB2YWx1ZSwgY29uc3RydWMKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KIAogCi1QQVNTICgxIGluc3RhbmNlb2YgMSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogMSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzEgaW5zdGFuY2VvZiAx
JykuCi1QQVNTICh7fSBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IDEg
aXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICd7fSBpbnN0YW5jZW9mIDEnKS4KLVBBU1Mg
KG9iaiBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IDEgaXMgbm90IGEg
ZnVuY3Rpb24uIChldmFsdWF0aW5nICdvYmogaW5zdGFuY2VvZiAxJykuCitQQVNTICgxIGluc3Rh
bmNlb2YgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGlu
c3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KK1BBU1MgKHt9IGluc3RhbmNlb2YgMSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90
IGFuIG9iamVjdC4KK1BBU1MgKG9iaiBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCiBQ
QVNTICgxIGluc3RhbmNlb2Yge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHt9IGlzIG5v
dCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnMSBpbnN0YW5jZW9mIHt9JykuCiBQQVNTICh7fSBp
bnN0YW5jZW9mIHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fSBpcyBub3QgYSBmdW5j
dGlvbi4gKGV2YWx1YXRpbmcgJ3t9IGluc3RhbmNlb2Yge30nKS4KIFBBU1MgKG9iaiBpbnN0YW5j
ZW9mIHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fSBpcyBub3QgYSBmdW5jdGlvbi4g
KGV2YWx1YXRpbmcgJ29iaiBpbnN0YW5jZW9mIHt9JykuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMgYi9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKaW5kZXgg
Y2I1ZWMyNGZhZjkwN2Y4MDIzNzk4NWY4YzhhY2U4MzhkZDY4ZTA4OS4uNzRiY2I3OGE1MjBjOGM3
MGZkZGU4NjQwNzY4MTgyYzA3MjM2NTNhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCisrKyBiL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwpAQCAtNzAsNyAr
NzAsNyBAQCB2YXIgZXhwZWN0ZWRQcm9wZXJ0eU5hbWVzU2V0ID0gewogICAgICJFcnJvci5wcm90
b3R5cGUiOiAiWydjb25zdHJ1Y3RvcicsICdtZXNzYWdlJywgJ25hbWUnLCAndG9TdHJpbmcnXSIs
CiAgICAgIk1hdGgiOiAiWydFJywnTE4xMCcsJ0xOMicsJ0xPRzEwRScsJ0xPRzJFJywnUEknLCdT
UVJUMV8yJywnU1FSVDInLCdhYnMnLCdhY29zJywnYWNvc2gnLCdhc2luJywnYXNpbmgnLCdhdGFu
JywnYXRhbjInLCdhdGFuaCcsJ2NicnQnLCdjZWlsJywnY2x6MzInLCdjb3MnLCdjb3NoJywnZXhw
JywnZXhwbTEnLCdmbG9vcicsJ2Zyb3VuZCcsJ2h5cG90JywnaW11bCcsJ2xvZycsJ2xvZzEwJywn
bG9nMXAnLCdsb2cyJywnbWF4JywnbWluJywncG93JywncmFuZG9tJywncm91bmQnLCdzaWduJywn
c2luJywnc2luaCcsJ3NxcnQnLCd0YW4nLCd0YW5oJywndHJ1bmMnXSIsCiAgICAgIkpTT04iOiAi
WydwYXJzZScsICdzdHJpbmdpZnknXSIsCi0gICAgIlN5bWJvbCI6ICJbJ2ZvcicsICdpdGVyYXRv
cicsICdrZXlGb3InLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3RyaW5nVGFn
JywgJ3Vuc2NvcGFibGVzJ10iLAorICAgICJTeW1ib2wiOiAiWydmb3InLCAnaGFzSW5zdGFuY2Un
LCAnaXRlcmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZScsICd0
b1N0cmluZ1RhZycsICd1bnNjb3BhYmxlcyddIiwKICAgICAiU3ltYm9sLnByb3RvdHlwZSI6ICJb
J2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXSIKIH07CiAK
</data>
<flag name="review"
          id="292107"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>267064</attachid>
            <date>2015-12-09 19:30:55 -0800</date>
            <delta_ts>2015-12-09 19:30:55 -0800</delta_ts>
            <desc>Benchmark results</desc>
            <filename>rV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Keiths-MacBook-Pro-5_20151207_1327_report.txt</filename>
            <type>text/plain</type>
            <size>64257</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0
YW5lLCBLcmFrZW4sIEpTUmVncmVzcywgQXNtQmVuY2gsIGFuZCBDb21wcmVzc2lvbkJlbmNoIG9u
IEtlaXRocy1NYWNCb29rLVByby01IChNYWNCb29rUHJvMTEsMykuCgpWTXMgdGVzdGVkOgoiVE9U
IiBhdCAvVm9sdW1lcy9EYXRhL2NsZWFuL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9q
c2MKIkhhc0luc3RhbmNlIiBhdCAvVm9sdW1lcy9EYXRhL3dzMi9PcGVuU291cmNlL1dlYktpdEJ1
aWxkL1JlbGVhc2UvanNjCgpDb2xsZWN0ZWQgNCBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdp
dGggNCBWTSBpbnZvY2F0aW9ucyBwZXIgYmVuY2htYXJrLiBFbWl0dGVkIGEgY2FsbCB0byBnYygp
IGJldHdlZW4gc2FtcGxlIG1lYXN1cmVtZW50cy4KVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24g
cGVyIFZNIGludm9jYXRpb24gZm9yIHdhcm0tdXAuIFVzZWQgdGhlIGpzYy1zcGVjaWZpYyBwcmVj
aXNlVGltZSgpIGZ1bmN0aW9uIHRvIGdldCBtaWNyb3NlY29uZC1sZXZlbAp0aW1pbmcuIFJlcG9y
dGluZyBiZW5jaG1hcmsgZXhlY3V0aW9uIHRpbWVzIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2
YWxzIGluIG1pbGxpc2Vjb25kcy4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVE9UICAgICAgICAgICAgICAgICAgIEhhc0luc3RhbmNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClN1blNwaWRlcjoKICAgM2QtY3Vi
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44NjAwKy0xLjIz
MDcgICAgICAgICAgICA0LjQ1ODArLTAuMTc2NyAgICAgICAgICBtaWdodCBiZSAxLjA5MDJ4IGZh
c3RlcgogICAzZC1tb3JwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0Ljg2NDArLTAuMjg3NCAgICAgPyAgICAgIDUuMDI3NSstMC4xNjQ3ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDMzNnggc2xvd2VyCiAgIDNkLXJheXRyYWNlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDUuMzgxMistMS4xNDY4ICAgICAgICAgICAgNS4yNDQ1Ky0wLjgzNDIg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjYxeCBmYXN0ZXIKICAgYWNjZXNzLWJpbmFyeS10cmVlcyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wNzQ1Ky0wLjEyMjQgICAgID8gICAgICAy
LjA5NzArLTAuMDk0OCAgICAgICAgPyBtaWdodCBiZSAxLjAxMDl4IHNsb3dlcgogICBhY2Nlc3Mt
ZmFubmt1Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjM4OTUrLTAuMTQ2
MiAgICAgPyAgICAgIDUuNjIyOSstMC42NDMxICAgICAgICA/IG1pZ2h0IGJlIDEuMDQzM3ggc2xv
d2VyCiAgIGFjY2Vzcy1uYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuNDQ4MCstMC4yMTExICAgICAgICAgICAgMi4zOTQ3Ky0wLjA1OTkgICAgICAgICAgbWlnaHQg
YmUgMS4wMjIzeCBmYXN0ZXIKICAgYWNjZXNzLW5zaWV2ZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi45OTAzKy0wLjM5MTEgICAgICAgICAgICAyLjk4MTArLTAuMzEzNSAg
ICAgICAgCiAgIGJpdG9wcy0zYml0LWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuMTAxMystMC4wNjM3ICAgICA/ICAgICAgMS4xMDkxKy0wLjEyNTMgICAgICAgID8KICAg
Yml0b3BzLWJpdHMtaW4tYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4wNTgz
Ky0wLjA4MTUgICAgID8gICAgICAzLjE4MjYrLTAuMjYwMiAgICAgICAgPyBtaWdodCBiZSAxLjA0
MDZ4IHNsb3dlcgogICBiaXRvcHMtYml0d2lzZS1hbmQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxLjkyMzgrLTAuMTA0NyAgICAgICAgICAgIDEuOTA3NCstMC4wODE3ICAgICAgICAK
ICAgYml0b3BzLW5zaWV2ZS1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44
OTk1Ky0wLjA4NjEgICAgICAgICAgICAyLjgxOTMrLTAuMDUyNyAgICAgICAgICBtaWdodCBiZSAx
LjAyODR4IGZhc3RlcgogICBjb250cm9sZmxvdy1yZWN1cnNpdmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjI1NDYrLTAuMDk1NCAgICAgPyAgICAgIDIuNDg0NCstMC42ODMxICAgICAg
ICA/IG1pZ2h0IGJlIDEuMTAxOXggc2xvd2VyCiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTIxOCstMC4zMzUzICAgICAgICAgICAgMy43OTkz
Ky0wLjA4ODUgICAgICAgICAgbWlnaHQgYmUgMS4wMzIyeCBmYXN0ZXIKICAgY3J5cHRvLW1kNSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40NjA4Ky0wLjE0MTMgICAg
ICAgICAgICAyLjM4NTcrLTAuMDk1NiAgICAgICAgICBtaWdodCBiZSAxLjAzMTV4IGZhc3Rlcgog
ICBjcnlwdG8tc2hhMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjgy
MzYrLTAuNzkwMCAgICAgICAgICAgIDIuNDA0MCstMC4yMTQyICAgICAgICAgIG1pZ2h0IGJlIDEu
MTc0NXggZmFzdGVyCiAgIGRhdGUtZm9ybWF0LXRvZnRlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDYuMzE3NystMC4zMzEwICAgICA/ICAgICAgNi40OTE5Ky0wLjE0MzEgICAgICAg
ID8gbWlnaHQgYmUgMS4wMjc2eCBzbG93ZXIKICAgZGF0ZS1mb3JtYXQteHBhcmIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC40MzY5Ky0wLjE5NzEgICAgICAgICAgICA0LjQxNDIr
LTAuMzkyMiAgICAgICAgCiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuNzQ0NCstMC4yMTczICAgICAgICAgICAgMi42NTExKy0wLjAyODkgICAg
ICAgICAgbWlnaHQgYmUgMS4wMzUyeCBmYXN0ZXIKICAgbWF0aC1wYXJ0aWFsLXN1bXMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44ODAyKy0xLjEzNDQgICAgICAgICAgICA0LjY1
MDArLTAuNDk2OCAgICAgICAgICBtaWdodCBiZSAxLjA0OTV4IGZhc3RlcgogICBtYXRoLXNwZWN0
cmFsLW5vcm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjg2NzYrLTAuMDgyNCAg
ICAgICAgICAgIDEuODY1OCstMC4xMzM4ICAgICAgICAKICAgcmVnZXhwLWRuYSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi4yODc0Ky0wLjkyMjYgICAgICAgICAgICA2
LjIwOTIrLTEuMzEzNiAgICAgICAgICBtaWdodCBiZSAxLjAxMjZ4IGZhc3RlcgogICBzdHJpbmct
YmFzZTY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjMxNzgrLTAuNDg0
MCAgICAgICAgICAgIDQuMDk2MystMC4yMzU2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDU0MXggZmFz
dGVyCiAgIHN0cmluZy1mYXN0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDUuNjQwNSstMC4wOTg4ICAgICAgICAgICAgNS41ODY1Ky0wLjA5MzAgICAgICAgIAogICBzdHJp
bmctdGFnY2xvdWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjU3OTMrLTAu
MDU4OSAgICAgPyAgICAgIDcuOTIwNSstMC44NDMzICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ1MHgg
c2xvd2VyCiAgIHN0cmluZy11bnBhY2stY29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTguODQ0OSstMS4yMDQzICAgICAgICAgICAxOC4yOTg2Ky0wLjQxMjkgICAgICAgICAgbWln
aHQgYmUgMS4wMjk5eCBmYXN0ZXIKICAgc3RyaW5nLXZhbGlkYXRlLWlucHV0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNC4yMTY1Ky0wLjA3NDAgICAgICAgICAgICA0LjE3NTcrLTAuMDUw
NyAgICAgICAgCgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0LjQ0NTYrLTAuMTA2NSAgICAgICAgICAgIDQuMzk1MystMC4xNDM4ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDExNHggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPVCAgICAgICAgICAgICAgICAgICBIYXNJbnN0
YW5jZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApMb25nU3BpZGVyOgogICAz
ZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzkwLjExNTgr
LTE3LjY4MzEgICAgICAgICA3NzIuOTUyNistOC4yNjYxICAgICAgICAgIG1pZ2h0IGJlIDEuMDIy
MnggZmFzdGVyCiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDE0MzAuNDM1MystOS45NDY2ICAgICAgICAgMTQyNS41MjEyKy0xMi4zMTM3ICAgICAgIAog
ICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTc4LjY2
MDcrLTEzLjE0MjQgICAgPyAgICA1ODEuNDcxMystMTMuOTM3MiAgICAgICA/CiAgIGFjY2Vzcy1i
aW5hcnktdHJlZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NTYuNzQwOSstOC45NDQ2
ICAgICA/ICAgIDc2Ny4wMTY4Ky0xNC40NTQ1ICAgICAgID8gbWlnaHQgYmUgMS4wMTM2eCBzbG93
ZXIKICAgYWNjZXNzLWZhbm5rdWNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4
MS44NzkwKy0xMS44ODM3ICAgICAgICAgMjc5LjU4NTMrLTkuNjk3NyAgICAgICAgCiAgIGFjY2Vz
cy1uYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0ODkuNDEwOCstMy4y
ODY1ICAgICA/ICAgIDQ4OS45NDMyKy05Ljg1NTUgICAgICAgID8KICAgYWNjZXNzLW5zaWV2ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1NS4yNjg2Ky0yMi4xNjU3ICAgID8g
ICAgMzU2LjI3MzcrLTE2LjIzNjIgICAgICAgPwogICBiaXRvcHMtM2JpdC1iaXRzLWluLWJ5dGUg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMyLjEzMjgrLTEuMDU3NiAgICAgPyAgICAgMzIuNTc2
NSstMi4xNzM1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzOHggc2xvd2VyCiAgIGJpdG9wcy1iaXRz
LWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzEuMDM3OCstMC43NTk4ICAg
ICA/ICAgICA3Mi42NTU2Ky01LjU0NjcgICAgICAgID8gbWlnaHQgYmUgMS4wMjI4eCBzbG93ZXIK
ICAgYml0b3BzLW5zaWV2ZS1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM5Ny45
NTkwKy0yMi45MjI3ICAgICAgICAgMzkyLjU3MDUrLTEwLjc2NTAgICAgICAgICBtaWdodCBiZSAx
LjAxMzd4IGZhc3RlcgogICBjb250cm9sZmxvdy1yZWN1cnNpdmUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNDQzLjUwMjMrLTc3LjI0NjkgICAgICAgICA0MjQuNTkwMystMjYuMTU3MiAgICAg
ICAgIG1pZ2h0IGJlIDEuMDQ0NXggZmFzdGVyCiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA1MzYuOTI1NCstNy4yNzgzICAgICAgICAgIDUzMy43MTkz
Ky03Ljk0NzYgICAgICAgIAogICBjcnlwdG8tbWQ1ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNDQ1LjAxNDUrLTUuNDExNiAgICAgPyAgICA0OTIuMTM3OCstNTcuNjM5NSAg
ICAgICA/IG1pZ2h0IGJlIDEuMTA1OXggc2xvd2VyCiAgIGNyeXB0by1zaGExICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA2NDAuMDg2OSstNC44NDQwICAgICA/ICAgIDY1OS4z
MDU3Ky00Ny4yNzk0ICAgICAgID8gbWlnaHQgYmUgMS4wMzAweCBzbG93ZXIKICAgZGF0ZS1mb3Jt
YXQtdG9mdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ4Ni42MzE1Ky0zLjg0MDcg
ICAgID8gICAgNTA0LjgxODIrLTM3LjU1NzEgICAgICAgPyBtaWdodCBiZSAxLjAzNzR4IHNsb3dl
cgogICBkYXRlLWZvcm1hdC14cGFyYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjIx
LjcwNjYrLTEwLjgxNjYgICAgICAgICA2MTcuNzY2MSstNy4wOTA0ICAgICAgICAKICAgaGFzaC1t
YXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE0MS43NzY1Ky0yLjAz
ODUgICAgICAgICAgMTQwLjQ4NjUrLTMuOTkxOCAgICAgICAgCiAgIG1hdGgtY29yZGljICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NjYuOTkyMistOS40Nzg0ICAgICA/ICAg
IDQ3NS4zNTk2Ky00MC44Njc1ICAgICAgID8gbWlnaHQgYmUgMS4wMTc5eCBzbG93ZXIKICAgbWF0
aC1wYXJ0aWFsLXN1bXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0Ni43MDgwKy0z
LjExNTEgICAgICAgICAgNDQ2LjM3NTMrLTExLjA1ODIgICAgICAgCiAgIG1hdGgtc3BlY3RyYWwt
bm9ybSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MjYuOTk2NSstOC4wNzQyICAgICAg
ICAgIDUyMi40ODYzKy0zLjI1MjMgICAgICAgIAogICBzdHJpbmctYmFzZTY0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzQyLjIxNDUrLTMuODk5OCAgICAgPyAgICAzNTQuNzI4
OCstMTAuMTIyMyAgICAgICA/IG1pZ2h0IGJlIDEuMDM2Nnggc2xvd2VyCiAgIHN0cmluZy1mYXN0
YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNDMuOTM1MystNi4zNTM5ICAg
ICAgICAgIDM0MC4yMDQ4Ky04LjEyODkgICAgICAgICAgbWlnaHQgYmUgMS4wMTEweCBmYXN0ZXIK
ICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3My4w
MzY5Ky02LjkzNTAgICAgICAgICAgMTY5LjUyOTgrLTIuNzM5MiAgICAgICAgICBtaWdodCBiZSAx
LjAyMDd4IGZhc3RlcgoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDM3My4xODI4Ky0xLjU3NjYgICAgID8gICAgMzc1LjIwODUrLTIuNjAxNSAgICAg
ICAgPyBtaWdodCBiZSAxLjAwNTR4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUT1QgICAgICAgICAgICAgICAgICAgSGFz
SW5zdGFuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKVjhTcGlkZXI6CiAg
IGNyeXB0byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQuOTYw
MCstMC4xNDg5ICAgICAhICAgICA0Ny4yMDE4Ky0xLjg2MjkgICAgICAgICEgZGVmaW5pdGVseSAx
LjA0OTl4IHNsb3dlcgogICBkZWx0YWJsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDcyLjI5MTcrLTMuOTUwNSAgICAgPyAgICAgNzQuMTc0MystNy4xMjc3ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI2MHggc2xvd2VyCiAgIGVhcmxleS1ib3llciAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzguOTM1OCstMC42MDA3ICAgICA/ICAgICA0MC4xNjA5
Ky0yLjI4NzggICAgICAgID8gbWlnaHQgYmUgMS4wMzE1eCBzbG93ZXIKICAgcmF5dHJhY2UgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOC4yNjM3Ky0yLjAzNDkgICAg
ICAgICAgIDI2LjkwODMrLTAuODQ3NSAgICAgICAgICBtaWdodCBiZSAxLjA1MDR4IGZhc3Rlcgog
ICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4LjE3
MDArLTEuNzkzMSAgICAgPyAgICAgNTguNzg2OCstMy4yNDcyICAgICAgICA/IG1pZ2h0IGJlIDEu
MDEwNnggc2xvd2VyCiAgIHJpY2hhcmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNDguNzk3NCstMS4wNjMxICAgICA/ICAgICA0OS40NTg5Ky0wLjcyMTIgICAgICAg
ID8gbWlnaHQgYmUgMS4wMTM2eCBzbG93ZXIKICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzMy4zNTY1Ky0wLjkyMTkgICAgID8gICAgIDMzLjk0ODEr
LTAuMzQ2MCAgICAgICAgPyBtaWdodCBiZSAxLjAxNzd4IHNsb3dlcgoKICAgPGdlb21ldHJpYz4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NC4zNjI3Ky0wLjQ2MTQgICAg
ID8gICAgIDQ0Ljk4NDIrLTEuMzA1NSAgICAgICAgPyBtaWdodCBiZSAxLjAxNDB4IHNsb3dlcgoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUT1QgICAgICAgICAgICAgICAgICAgSGFzSW5zdGFuY2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKT2N0YW5lOgogICBlbmNyeXB0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAuMTQ5NDkrLTAuMDAxMTQgICAgICAgICAgMC4xNDc4MSstMC4w
MDI2NiAgICAgICAgIG1pZ2h0IGJlIDEuMDExM3ggZmFzdGVyCiAgIGRlY3J5cHQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43NzUzNistMC4wNjE0MiAgICAgICAg
ICAyLjc2NDE4Ky0wLjAzMTQ2ICAgICAgIAogICBkZWx0YWJsdWUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHgyICAgICAgIDAuMTMxODUrLTAuMDAyMDYgICAgICAgICAgMC4xMzE2Nyst
MC4wMDI1MCAgICAgICAKICAgZWFybGV5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLjI3MTAwKy0wLjAwMjAyICAgID8gICAgIDAuMjcxNjQrLTAuMDAzNjUgICAg
ICAgPwogICBib3llciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuMDk1NzgrLTAuMDYwNjcgICAgPyAgICAgNC4xNDMwMistMC4wNTc4NCAgICAgICA/IG1pZ2h0
IGJlIDEuMDExNXggc2xvd2VyCiAgIG5hdmllci1zdG9rZXMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeDIgICAgICAgNC42MzA1NSstMC4wNzExNCAgICA/ICAgICA0LjY0NTUzKy0wLjA0NDQ1
ICAgICAgID8KICAgcmF5dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAg
ICAgICAwLjgyMDI4Ky0wLjAwNTQ0ICAgID8gICAgIDAuODMxMzUrLTAuMDEyMzYgICAgICAgPyBt
aWdodCBiZSAxLjAxMzV4IHNsb3dlcgogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHgyICAgICAgIDAuMDgyOTUrLTAuMDAwNTggICAgPyAgICAgMC4wODQwMystMC4w
MDI1NCAgICAgICA/IG1pZ2h0IGJlIDEuMDEzMXggc2xvd2VyCiAgIHNwbGF5ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC4zMzA2NSstMC4wMDk3MSAgICA/ICAg
ICAwLjMzNDc0Ky0wLjAxMTcyICAgICAgID8gbWlnaHQgYmUgMS4wMTI0eCBzbG93ZXIKICAgcmVn
ZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgIDIzLjUzMDgwKy0x
LjY2MTczICAgICAgICAgMjMuMzE5MTYrLTAuOTY2OTIgICAgICAgCiAgIHBkZmpzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAzNS44MjYzNCstMC4zNzkzOSAgICA/
ICAgIDM1Ljk2Mzc3Ky0wLjUxNDQxICAgICAgID8KICAgbWFuZHJlZWwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB4MiAgICAgIDQwLjIwMzA2Ky0wLjUxMTk0ICAgICAgICAgNDAuMTAx
NjkrLTAuNzYzMzggICAgICAgCiAgIGdiZW11ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeDIgICAgICAyNy4yNjkwNistMC41MTI3NCAgICA/ICAgIDI3LjQ1NzUxKy0wLjUyMDcy
ICAgICAgID8KICAgY2xvc3VyZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjU1NTk2Ky0wLjAwMzc3ICAgID8gICAgIDAuNTU4MDArLTAuMDA3MjIgICAgICAgPwog
ICBqcXVlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMDU5
NzkrLTAuMDg5OTIgICAgPyAgICAgNy4xMTk1MSstMC4wMzc4MCAgICAgICA/CiAgIGJveDJkICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgOC44MDg0NistMC4xMDgy
OSAgICAgICAgICA4LjgwNDE2Ky0wLjEyMjM2ICAgICAgIAogICB6bGliICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAzNzAuMDY0MDUrLTEyLjQzMzM5ICAgPyAgIDM3
NC43MzYwMistNy4yNDk4OCAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNnggc2xvd2VyCiAgIHR5cGVz
Y3JpcHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgIDY0My4zNDc3OCstMjMu
NTk3NTUgICAgICAgNjM5Ljk1OTcyKy0yLjg3NzU1ICAgICAgIAoKICAgPGdlb21ldHJpYz4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjA1Mjk1Ky0wLjAzOTY5ICAgID8g
ICAgIDUuMDcwNjMrLTAuMDM5NjkgICAgICAgPyBtaWdodCBiZSAxLjAwMzV4IHNsb3dlcgoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU
T1QgICAgICAgICAgICAgICAgICAgSGFzSW5zdGFuY2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKS3Jha2VuOgogICBhaS1hc3RhciAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEyMy41MTArLTIuNzIwICAgICAgICAgICAgMTIzLjQ2NSstNi4yMzYg
ICAgICAgICAKICAgYXVkaW8tYmVhdC1kZXRlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNDUuMjcwKy0wLjUwOSAgICAgID8gICAgICA0NS45MDErLTEuOTc5ICAgICAgICAgPyBt
aWdodCBiZSAxLjAxMzl4IHNsb3dlcgogICBhdWRpby1kZnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA5My41MDIrLTMuNzQxICAgICAgICAgICAgIDkyLjUwNCstMi41
NzIgICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwOHggZmFzdGVyCiAgIGF1ZGlvLWZmdCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMzLjI2MSstMC4zOTggICAgICA/ICAg
ICAgMzMuNDM2Ky0wLjYzNyAgICAgICAgID8KICAgYXVkaW8tb3NjaWxsYXRvciAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNTQuMjk2Ky0wLjM2MSAgICAgICAgICAgICA1NC4xNzcr
LTAuMjUzICAgICAgICAgCiAgIGltYWdpbmctZGFya3Jvb20gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDU4Ljk4OCstNy42MjggICAgICAgICAgICAgNTguMDg3Ky00LjM0NiAgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTU1eCBmYXN0ZXIKICAgaW1hZ2luZy1kZXNhdHVyYXRlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNDYuODY5Ky0yLjE2NiAgICAgICAgICAgICA0NS4z
OTIrLTAuMTI5ICAgICAgICAgICBtaWdodCBiZSAxLjAzMjV4IGZhc3RlcgogICBpbWFnaW5nLWdh
dXNzaWFuLWJsdXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4NC43MzcrLTMuNzUwICAg
ICAgPyAgICAgIDg1LjI5MystNi4xNDQgICAgICAgICA/CiAgIGpzb24tcGFyc2UtZmluYW5jaWFs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM1LjI0NystMS4yMzAgICAgICA/ICAgICAg
MzYuMDI5Ky0zLjU2MiAgICAgICAgID8gbWlnaHQgYmUgMS4wMjIyeCBzbG93ZXIKICAganNvbi1z
dHJpbmdpZnktdGluZGVyYm94ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUuMTQ5Ky0yLjIz
NiAgICAgICAgICAgICAyMy43OTArLTEuMTQxICAgICAgICAgICBtaWdodCBiZSAxLjA1NzF4IGZh
c3RlcgogICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzOS43MTIrLTAuODIyICAgICAgPyAgICAgIDM5Ljg2MistMi4yMjEgICAgICAgICA/CiAgIHN0
YW5mb3JkLWNyeXB0by1jY20gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMzLjc1Nyst
MS4zNTUgICAgICA/ICAgICAgMzQuNzA4Ky0yLjQwMSAgICAgICAgID8gbWlnaHQgYmUgMS4wMjgy
eCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLXBia2RmMiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOTEuMTQzKy0xLjMwMSAgICAgID8gICAgICA5MS42NjIrLTEuNzgyICAgICAgICAgPwog
ICBzdGFuZm9yZC1jcnlwdG8tc2hhMjU2LWl0ZXJhdGl2ZSAgICAgICAgICAgICAgICAgICAzNC45
OTYrLTAuNzE5ICAgICAgICAgICAgIDM0Ljk4NistMS4xNDUgICAgICAgICAKCiAgIDxhcml0aG1l
dGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU3LjE3NCstMC44NTAg
ICAgICAgICAgICAgNTcuMDkyKy0wLjUxNSAgICAgICAgICAgbWlnaHQgYmUgMS4wMDE0eCBmYXN0
ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVE9UICAgICAgICAgICAgICAgICAgIEhhc0luc3RhbmNlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCkpTUmVncmVzczoKICAgYWJjLWZvcndhcmQtbG9vcC1lcXVhbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyOC40OTkwKy0yLjE0OTYgICAgICAgICAgIDI4LjIy
MjIrLTAuNzg5NCAgICAgICAgCiAgIGFiYy1wb3N0Zml4LWJhY2t3YXJkLWxvb3AgICAgICAgICAg
ICAgICAgICAgICAgICAgMjguNjg1NystMS42NjMzICAgICA/ICAgICAyOS41MDYzKy0yLjA1MjYg
ICAgICAgID8gbWlnaHQgYmUgMS4wMjg2eCBzbG93ZXIKICAgYWJjLXNpbXBsZS1iYWNrd2FyZC1s
b29wICAgICAgICAgICAgICAgICAgICAgICAgICAyOS40MTQ3Ky00LjQwOTQgICAgICAgICAgIDI3
Ljc2NTQrLTEuNTkzOCAgICAgICAgICBtaWdodCBiZSAxLjA1OTR4IGZhc3RlcgogICBhYmMtc2lt
cGxlLWZvcndhcmQtbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5LjI2NDgrLTMuMzA1
OSAgICAgICAgICAgMjguOTYyMCstNC42NjQxICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwNXggZmFz
dGVyCiAgIGFiYy1za2lwcHktbG9vcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MjEuMTc5OCstMS45OTI0ICAgICAgICAgICAyMS4wOTk5Ky0wLjY3MDQgICAgICAgIAogICBhYnMt
Ym9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc4ODkrLTEu
MjE4MCAgICAgICAgICAgIDIuMzk3MistMC4xODAyICAgICAgICAgIG1pZ2h0IGJlIDEuMTYzNHgg
ZmFzdGVyCiAgIGFkYXB0LXRvLWRvdWJsZS1kaXZpZGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTYuNDQ1MistMC42MzU5ICAgICAgICAgICAxNS45NDM3Ky0xLjA1MzQgICAgICAgICAgbWln
aHQgYmUgMS4wMzE1eCBmYXN0ZXIKICAgYWxpYXNlZC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAg
ICAgICAgICAgICAgICAgICAgMS4wODU2Ky0wLjA4MzkgICAgID8gICAgICAxLjE1OTQrLTAuMTEz
MiAgICAgICAgPyBtaWdodCBiZSAxLjA2ODB4IHNsb3dlcgogICBhbGxvY2F0ZS1iaWctb2JqZWN0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM0OTMrLTAuMjU5NiAgICAgPyAgICAg
IDIuMzcyMistMC4xMzUxICAgICAgICA/CiAgIGFyZ3VtZW50cy1uYW1lZC1hbmQtcmVmbGVjdGl2
ZSAgICAgICAgICAgICAgICAgICAgMTAuMzg3MSstMC42MzcxICAgICAgICAgICAxMC4xODkxKy0w
LjIzNzkgICAgICAgICAgbWlnaHQgYmUgMS4wMTk0eCBmYXN0ZXIKICAgYXJndW1lbnRzLW91dC1v
Zi1ib3VuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS41Mzg4Ky0xLjExOTEgICAgICAg
ICAgICA4LjY0NjgrLTAuNDI1OCAgICAgICAgICBtaWdodCBiZSAxLjEwMzJ4IGZhc3RlcgogICBh
cmd1bWVudHMtc3RyaWN0LW1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjMwNjMr
LTEuNjUwMSAgICAgICAgICAgIDguODU0MistMC4yNjcwICAgICAgICAgIG1pZ2h0IGJlIDEuMDUx
MXggZmFzdGVyCiAgIGFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDguMzEwNCstMC43MzMyICAgICAgICAgICAgNy44NTQyKy0wLjMwMzcgICAgICAgICAg
bWlnaHQgYmUgMS4wNTgxeCBmYXN0ZXIKICAgYXJpdHktbWlzbWF0Y2gtaW5saW5pbmcgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMC44MzczKy0wLjAyOTQgICAgID8gICAgICAwLjg1NjYrLTAu
MDUzMyAgICAgICAgPyBtaWdodCBiZSAxLjAyMzF4IHNsb3dlcgogICBhcnJheS1hY2Nlc3MtcG9s
eW1vcnBoaWMtc3RydWN0dXJlICAgICAgICAgICAgICAgICA3LjAyNTMrLTAuNDQ4NSAgICAgICAg
ICAgIDYuODUwNSstMC4xMDgyICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1NXggZmFzdGVyCiAgIGFy
cmF5LW5vbmFycmF5LXBvbHltb3JocGljLWFjY2VzcyAgICAgICAgICAgICAgICAgMjMuMTU0Nist
MS4yNTEyICAgICA/ICAgICAyMy44Mzk2Ky0wLjMwNzQgICAgICAgID8gbWlnaHQgYmUgMS4wMjk2
eCBzbG93ZXIKICAgYXJyYXktcHJvdG90eXBlLWV2ZXJ5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA3Ni44NzY1Ky01LjE2MTUgICAgICAgICAgIDczLjg0NTUrLTEuMzU0NCAgICAgICAgICBt
aWdodCBiZSAxLjA0MTB4IGZhc3RlcgogICBhcnJheS1wcm90b3R5cGUtZm9yRWFjaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDc3LjUyOTcrLTQuOTcxMiAgICAgICAgICAgNzQuNDk5MCstNC4x
Nzg2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQwN3ggZmFzdGVyCiAgIGFycmF5LXByb3RvdHlwZS1t
YXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzkuNzAyMystMi4yMjI2ICAgICAgICAg
ICA3OS40ODA2Ky0wLjgxMzcgICAgICAgIAogICBhcnJheS1wcm90b3R5cGUtcmVkdWNlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDcyLjk4NTMrLTQuNDQ5NSAgICAgICAgICAgNjkuMDM3Mist
MC4zMzAzICAgICAgICAgIG1pZ2h0IGJlIDEuMDU3MnggZmFzdGVyCiAgIGFycmF5LXByb3RvdHlw
ZS1yZWR1Y2VSaWdodCAgICAgICAgICAgICAgICAgICAgICAgNzIuNDAyMCstNy44MTE2ICAgICAg
ICAgICA2OS4xOTM1Ky0wLjczMzEgICAgICAgICAgbWlnaHQgYmUgMS4wNDY0eCBmYXN0ZXIKICAg
YXJyYXktcHJvdG90eXBlLXNvbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ni4zOTE1
Ky01LjI1MDEgICAgICAgICAgIDc0LjM3MjArLTMuMDI4NSAgICAgICAgICBtaWdodCBiZSAxLjAy
NzJ4IGZhc3RlcgogICBhcnJheS1zcGxpY2UtY29udGlndW91cyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDI0LjQ3ODErLTMuNTQ4OSAgICAgICAgICAgMjQuMjI5MistMS41MDYwICAgICAgICAg
IG1pZ2h0IGJlIDEuMDEwM3ggZmFzdGVyCiAgIGFycmF5LXdpdGgtZG91YmxlLWFkZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuMzgyNSstMC4wODkzICAgICA/ICAgICAgMy43NTE1Ky0x
LjE3NDEgICAgICAgID8gbWlnaHQgYmUgMS4xMDkxeCBzbG93ZXIKICAgYXJyYXktd2l0aC1kb3Vi
bGUtaW5jcmVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgMy4wMzkxKy0wLjIwNDYgICAgICAg
ICAgICAyLjk2NTgrLTAuMDQ4NSAgICAgICAgICBtaWdodCBiZSAxLjAyNDd4IGZhc3RlcgogICBh
cnJheS13aXRoLWRvdWJsZS1tdWwtYWRkICAgICAgICAgICAgICAgICAgICAgICAgICA0LjY0MzYr
LTEuNDI5NiAgICAgICAgICAgIDQuMTk1NistMC4xMjA4ICAgICAgICAgIG1pZ2h0IGJlIDEuMTA2
OHggZmFzdGVyCiAgIGFycmF5LXdpdGgtZG91YmxlLXN1bSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMuMDU2NistMC4wNDUxICAgICAgICAgICAgMy4wNDcyKy0wLjAzMzMgICAgICAgIAog
ICBhcnJheS13aXRoLWludDMyLWFkZC1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljky
MTYrLTAuMDQ4NCAgICAgPyAgICAgIDYuMjE1MystMS4xODA2ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDQ5Nnggc2xvd2VyCiAgIGFycmF5LXdpdGgtaW50MzItb3ItZG91YmxlLXN1bSAgICAgICAgICAg
ICAgICAgICAgIDMuMDk1MistMC4wMjY3ICAgICA/ICAgICAgMy4xMTQzKy0wLjExOTYgICAgICAg
ID8KICAgQXJyYXlCdWZmZXItRGF0YVZpZXctYWxsb2MtbGFyZ2UtbG9uZy1saXZlZCAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0LjQzMjQr
LTAuNDIxMSAgICAgPyAgICAgMjQuNDY1MCstMC41Mzk3ICAgICAgICA/CiAgIEFycmF5QnVmZmVy
LURhdGFWaWV3LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgMTIuNDUyMCstMS40MjI5ICAg
ICAgICAgICAxMS43NjU0Ky0xLjYyNDUgICAgICAgICAgbWlnaHQgYmUgMS4wNTg0eCBmYXN0ZXIK
ICAgQXJyYXlCdWZmZXItSW50MzJBcnJheS1ieXRlT2Zmc2V0ICAgICAgICAgICAgICAgICAgMy42
NDE3Ky0wLjM5MTUgICAgICAgICAgICAzLjI5ODgrLTAuMDg1MCAgICAgICAgICBtaWdodCBiZSAx
LjEwMzl4IGZhc3RlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MtbGFyZ2UtbG9uZy1s
aXZlZCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDI0Ljg3NzYrLTAuNTYxNCAgICAgICAgICAgMjQuNzE4MCstMC43Mjk0ICAgICAgICAKICAg
QXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQtYnVmZmVyICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuNzA0OCstMy41
ODIwICAgICAgICAgICAxOS4zOTEwKy0zLjM2ODkgICAgICAgICAgbWlnaHQgYmUgMS4wMTYyeCBm
YXN0ZXIKICAgQXJyYXlCdWZmZXItSW50OEFycmF5LWFsbG9jLWxvbmctbGl2ZWQgICAgICAgICAg
ICAxMi40MTA5Ky0xLjg3MTcgICAgICAgICAgIDExLjk1OTgrLTIuNDc2OCAgICAgICAgICBtaWdo
dCBiZSAxLjAzNzd4IGZhc3RlcgogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXktYWxsb2MgICAgICAg
ICAgICAgICAgICAgICAgIDEwLjQ3MzYrLTMuMjc3MSAgICAgICAgICAgIDkuNzY3NistMS42MTkz
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDcyM3ggZmFzdGVyCiAgIGFycm93ZnVuY3Rpb24tY2FsbCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNzM5MSstMC42NDE1ICAgICAgICAgICAx
MC4yNzY0Ky0wLjEzMDIgICAgICAgICAgbWlnaHQgYmUgMS4wNDUweCBmYXN0ZXIKICAgYXNtanNf
Ym9vbF9idWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy42MDk5Ky0wLjEz
NjYgICAgICAgICAgICA3LjUzODErLTAuMDg0OCAgICAgICAgCiAgIGFzc2lnbi1jdXN0b20tc2V0
dGVyLXBvbHltb3JwaGljICAgICAgICAgICAgICAgICAgIDIuMzExMistMC4xMTIyICAgICA/ICAg
ICAgMi4zNTU1Ky0wLjE0NDggICAgICAgID8gbWlnaHQgYmUgMS4wMTkyeCBzbG93ZXIKICAgYXNz
aWduLWN1c3RvbS1zZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zNjYzKy0w
LjQ0OTYgICAgICAgICAgICAzLjI3ODcrLTAuMjAwMiAgICAgICAgICBtaWdodCBiZSAxLjAyNjd4
IGZhc3RlcgogICBiYXNpYy1zZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA3LjY4OTArLTEuNDI1NSAgICAgICAgICAgIDcuNTk1MCstMS4wNTI2ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDEyNHggZmFzdGVyCiAgIGJpZy1pbnQtbXVsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuMzEzNCstMC4wMzcwICAgICA/ICAgICAgMy43MjQzKy0xLjI2
NjYgICAgICAgID8gbWlnaHQgYmUgMS4xMjQweCBzbG93ZXIKICAgYm9vbGVhbi10ZXN0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44NDQ0Ky0wLjA0NzQgICAgID8gICAg
ICAyLjg2NDArLTAuMDU5NiAgICAgICAgPwogICBicmFuY2gtZm9sZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjQ5NjgrLTAuMTc0OCAgICAgICAgICAgIDMuNDgxNSst
MC4xMjMyICAgICAgICAKICAgYnJhbmNoLW9uLXN0cmluZy1hcy1ib29sZWFuICAgICAgICAgICAg
ICAgICAgICAgICAxNi42MTk0Ky0xLjY1NzMgICAgICAgICAgIDE2LjIzNjArLTIuMDQ4MyAgICAg
ICAgICBtaWdodCBiZSAxLjAyMzZ4IGZhc3RlcgogICBieS12YWwtZ2VuZXJpYyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjM1MzUrLTAuMTY1NSAgICAgICAgICAgIDIuMzUx
NSstMC4wNjQwICAgICAgICAKICAgY2FsbC1zcHJlYWQtYXBwbHkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyNi4xNjkzKy0xLjExNjUgICAgID8gICAgIDI3LjQxODMrLTAuODc0NiAg
ICAgICAgPyBtaWdodCBiZSAxLjA0Nzd4IHNsb3dlcgogICBjYWxsLXNwcmVhZC1jYWxsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjg3NzYrLTEuMjAwNyAgICAgPyAgICAgMjEu
MzE5MistMS40NDI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxMnggc2xvd2VyCiAgIGNhcHR1cmVk
LWFzc2lnbm1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNDA0OSstMC4wMDk5
ICAgICAhICAgICAgMC40MjQ5Ky0wLjAwOTUgICAgICAgICEgZGVmaW5pdGVseSAxLjA0OTR4IHNs
b3dlcgogICBjYXN0LWludC10by1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0Ljg3MTArLTAuMDIxMCAgICAgPyAgICAgIDUuMTQ2MistMS4wOTYwICAgICAgICA/IG1pZ2h0
IGJlIDEuMDU2NXggc2xvd2VyCiAgIGNlbGwtYXJndW1lbnQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDUuNTY3NSstMC4wNjczICAgICAgICAgICAgNS41MzgzKy0wLjE1OTgg
ICAgICAgIAogICBjZmctc2ltcGxpZnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjc5MDArLTAuMDk1OSAgICAgICAgICAgIDIuNzY5MCstMC4xNDc5ICAgICAgICAKICAg
Y2hhaW4tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC4yNjEw
Ky0xLjM4NDcgICAgICAgICAgICA4LjIxNTIrLTEuMDQwNiAgICAgICAgCiAgIGNtcGVxLW9iai10
by1vYmotb3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuNDk2OSstMS4xNDAzICAg
ICAgICAgICAxMy4wMDg3Ky0wLjc0NjkgICAgICAgICAgbWlnaHQgYmUgMS4wMzc1eCBmYXN0ZXIK
ICAgY29uc3RhbnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNC41
NjU5Ky0wLjA1MDcgICAgID8gICAgICA0LjU5MzErLTAuMDk0NCAgICAgICAgPwogICBjcmVhdGUt
bG90cy1vZi1mdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjE0MjgrLTEuMDIz
OSAgICAgICAgICAgIDguOTYyMCstMS4zMTMxICAgICAgICAgIG1pZ2h0IGJlIDEuMDIwMnggZmFz
dGVyCiAgIGNzZS1uZXctYXJyYXktYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuNDc3NSstMC43MzE1ICAgICAgICAgICAgMi4yNDY4Ky0wLjI1NzYgICAgICAgICAgbWlnaHQg
YmUgMS4xMDI3eCBmYXN0ZXIKICAgY3NlLW5ldy1hcnJheSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi42MzI3Ky0wLjc0MzkgICAgICAgICAgICAyLjM1ODUrLTAuMDk4MCAg
ICAgICAgICBtaWdodCBiZSAxLjExNjJ4IGZhc3RlcgogICBjdXN0b20tc2V0dGVyLWdldHRlci1h
cy1wdXQtZ2V0LWJ5LWlkICAgICAgICAgICAgICAwLjQ5MzArLTAuMDUxNiAgICAgPyAgICAgIDAu
NTA0NSstMC4xNDQ4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzM3ggc2xvd2VyCiAgIERhdGFWaWV3
LWN1c3RvbS1wcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgMjkuMjk1MSstMC40OTY5
ICAgICAgICAgICAyOS4wMDk5Ky0wLjIyMTcgICAgICAgIAogICBkZWxheS10ZWFyLW9mZi1hcmd1
bWVudHMtc3RyaWN0bW9kZSAgICAgICAgICAgICAgIDEyLjQ1NTQrLTAuNDMzMiAgICAgICAgICAg
MTIuMDUxMystMC4zMjIwICAgICAgICAgIG1pZ2h0IGJlIDEuMDMzNXggZmFzdGVyCiAgIGRlbHRh
Ymx1ZS12YXJhcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTMuMDI2OCstMi4w
NDM1ICAgICAgICAgIDE0OS44NjUyKy0xLjQzMDAgICAgICAgICAgbWlnaHQgYmUgMS4wMjExeCBm
YXN0ZXIKICAgZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMgICAgICAgICAgICAgICAgICAgICAgICAg
IDE1OS41NjA2Ky03LjQyMTcgICAgICAgICAgMTU1LjQ4ODIrLTEuOTIwNSAgICAgICAgICBtaWdo
dCBiZSAxLjAyNjJ4IGZhc3RlcgogICBkZXN0cnVjdHVyaW5nLXBhcmFtZXRlcnMtb3ZlcnJpZGRl
bi1ieS1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAwLjQ1NzQrLTAuMTIwOSAgICAgPyAgICAgIDAuNTMxMSstMC4zMjUwICAg
ICAgICA/IG1pZ2h0IGJlIDEuMTYxMXggc2xvd2VyCiAgIGRlc3RydWN0dXJpbmctc3dhcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTgzOSstMC4xNTIyICAgICA/ICAgICAgNC43
Nzc4Ky0wLjgxNjIgICAgICAgID8gbWlnaHQgYmUgMS4wNDIzeCBzbG93ZXIKICAgZGlyZWN0LWFy
Z3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgMS4xMjg3Ky0wLjA3ODIg
ICAgICAgICAgICAxLjExNDMrLTAuMjA4MyAgICAgICAgICBtaWdodCBiZSAxLjAxMjl4IGZhc3Rl
cgogICBkaXYtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1
LjMxMzgrLTAuODk5MyAgICAgICAgICAgIDQuOTgzMystMC4wNzQwICAgICAgICAgIG1pZ2h0IGJl
IDEuMDY2M3ggZmFzdGVyCiAgIGRpdi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcuNjQ0NystMC4wMzMyICAgICA/ICAgICAgNy43NjEyKy0wLjE5MjMgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTUyeCBzbG93ZXIKICAgZG91YmxlLWdldC1ieS12YWwtb3V0LW9m
LWJvdW5kcyAgICAgICAgICAgICAgICAgICAgNC40MTc1Ky0wLjIwNjMgICAgICAgICAgICA0LjM2
ODIrLTAuMTU0OSAgICAgICAgICBtaWdodCBiZSAxLjAxMTN4IGZhc3RlcgogICBkb3VibGUtcG9s
bHV0aW9uLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgICA4LjI4OTQrLTEuMDE4MCAg
ICAgICAgICAgIDcuODc0MSstMC4wOTI2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDUyN3ggZmFzdGVy
CiAgIGRvdWJsZS1wb2xsdXRpb24tcHV0YnlvZmZzZXQgICAgICAgICAgICAgICAgICAgICAgIDMu
NTU1NCstMC4xODYzICAgICAgICAgICAgMy4zOTczKy0wLjA1NjYgICAgICAgICAgbWlnaHQgYmUg
MS4wNDY1eCBmYXN0ZXIKICAgZG91YmxlLXJlYWwtdXNlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyNC42MDUwKy0zLjE2NzkgICAgID8gICAgIDI1LjE1MjQrLTMuMTAzMSAgICAg
ICAgPyBtaWdodCBiZSAxLjAyMjJ4IHNsb3dlcgogICBkb3VibGUtdG8taW50MzItdHlwZWQtYXJy
YXktbm8taW5saW5lICAgICAgICAgICAgICAyLjA3OTIrLTAuMTY0MCAgICAgPyAgICAgIDIuMTA4
NSstMC4wNjYyICAgICAgICA/IG1pZ2h0IGJlIDEuMDE0MXggc2xvd2VyCiAgIGRvdWJsZS10by1p
bnQzMi10eXBlZC1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgIDIuMjExMSstMC43MTU1ICAg
ICAgICAgICAgMS45OTAyKy0wLjA4NzIgICAgICAgICAgbWlnaHQgYmUgMS4xMTEweCBmYXN0ZXIK
ICAgZG91YmxlLXRvLXVpbnQzMi10eXBlZC1hcnJheS1uby1pbmxpbmUgICAgICAgICAgICAgMi4x
NDg3Ky0wLjE1ODEgICAgID8gICAgICAyLjI0MzIrLTAuMTA1MyAgICAgICAgPyBtaWdodCBiZSAx
LjA0NDB4IHNsb3dlcgogICBkb3VibGUtdG8tdWludDMyLXR5cGVkLWFycmF5ICAgICAgICAgICAg
ICAgICAgICAgICAxLjk4OTUrLTAuMDkzMyAgICAgICAgICAgIDEuOTQ4NSstMC4wNzQ1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDIxMHggZmFzdGVyCiAgIGVsaWRhYmxlLW5ldy1vYmplY3QtZGFnICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzEuOTgwNystMC41NjQwICAgICA/ICAgICAzMy4wMzc4
Ky0yLjUyMDkgICAgICAgID8gbWlnaHQgYmUgMS4wMzMxeCBzbG93ZXIKICAgZWxpZGFibGUtbmV3
LW9iamVjdC1yb2ZsY29wdGVyICAgICAgICAgICAgICAgICAgICAzMS4zNDc0Ky0wLjE3NzQgICAg
ID8gICAgIDMxLjUwMjQrLTAuMTM0OSAgICAgICAgPwogICBlbGlkYWJsZS1uZXctb2JqZWN0LXRo
ZW4tY2FsbCAgICAgICAgICAgICAgICAgICAgIDI5LjM1NTArLTAuMzQ2MCAgICAgPyAgICAgMzAu
MzY2NSstMS4wNjg4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM0NXggc2xvd2VyCiAgIGVsaWRhYmxl
LW5ldy1vYmplY3QtdHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgMzUuNDI0MystMS4zODEz
ICAgICAgICAgICAzNS4xNDE4Ky0wLjUyNTMgICAgICAgIAogICBlbXB0eS1zdHJpbmctcGx1cy1p
bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjUyNDArLTAuMTYzMiAgICAgPyAgICAg
IDQuNTI2MystMC4xMjYyICAgICAgICA/CiAgIGVtc2NyaXB0ZW4tY3ViZTJoYXNoICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMjYuNDQ4NystMS42MTEyICAgICA/ICAgICAyNy4yMDc5Ky0x
LjUxOTcgICAgICAgID8gbWlnaHQgYmUgMS4wMjg3eCBzbG93ZXIKICAgZXhpdC1sZW5ndGgtb24t
cGxhaW4tb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAxNS40MzM3Ky0xLjczNTYgICAgICAg
ICAgIDE1LjQxNzErLTIuMDI3MiAgICAgICAgCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1nZXRieXZh
bCAgICAgICAgICAgICAgICAgICAgICAgIDEuMjQ0MistMC4xMTc2ICAgICA/ICAgICAgMS4yNjE1
Ky0wLjA4NTAgICAgICAgID8gbWlnaHQgYmUgMS4wMTM5eCBzbG93ZXIKICAgZXh0ZXJuYWwtYXJn
dW1lbnRzLXB1dGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgMi4yNDUzKy0wLjE3NzAgICAg
ICAgICAgICAyLjA2MzgrLTAuMDgzNCAgICAgICAgICBtaWdodCBiZSAxLjA4Nzl4IGZhc3Rlcgog
ICBmaXhlZC10eXBlZC1hcnJheS1zdG9yYWdlLXZhci1pbmRleCAgICAgICAgICAgICAgICAxLjE4
MTIrLTAuMDA3NyAgICAgPyAgICAgIDEuMjM1NCstMC4yMjExICAgICAgICA/IG1pZ2h0IGJlIDEu
MDQ1OHggc2xvd2VyCiAgIGZpeGVkLXR5cGVkLWFycmF5LXN0b3JhZ2UgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAuODY2MistMC4wMjczICAgICA/ICAgICAgMC44Njk3Ky0wLjAxNjYgICAgICAg
ID8KICAgRmxvYXQzMkFycmF5LW1hdHJpeC1tdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC4wMjkxKy0wLjA1MzggICAgID8gICAgICA0LjE2NTgrLTAuMjIzMCAgICAgICAgPyBtaWdodCBi
ZSAxLjAzMzl4IHNsb3dlcgogICBGbG9hdDMyQXJyYXktdG8tRmxvYXQ2NEFycmF5LXNldCAgICAg
ICAgICAgICAgICAgIDQ1LjI4NTYrLTIuOTE1NiAgICAgPyAgICAgNDUuNTE4OCstMy45MzUwICAg
ICAgICA/CiAgIEZsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAg
ICAgNTUuOTQ5MCstMC45MjA1ICAgICA/ICAgICA1Ni4xMDkzKy0wLjg2MDQgICAgICAgID8KICAg
RmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXktc2V0ICAgICAgICAgICAgICAgICAgICA1NC40ODI4
Ky0wLjg1MjYgICAgID8gICAgIDU0LjgxODIrLTEuNTc0MiAgICAgICAgPwogICBmb2xkLWRvdWJs
ZS10by1pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjc5ODMrLTIuMDgxOCAg
ICAgICAgICAgMTEuNzQzMistMC4yOTc2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDg5OHggZmFzdGVy
CiAgIGZvbGQtZ2V0LWJ5LWlkLXRvLW11bHRpLWdldC1ieS1vZmZzZXQtcmFyZS1pbnQgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4yMTk2
Ky0xLjMwNDQgICAgICAgICAgICA5Ljc5MzgrLTEuNTk5OSAgICAgICAgICBtaWdodCBiZSAxLjA0
MzV4IGZhc3RlcgogICBmb2xkLWdldC1ieS1pZC10by1tdWx0aS1nZXQtYnktb2Zmc2V0ICAgICAg
ICAgICAgICA5LjU1MDcrLTAuODE5MyAgICAgICAgICAgIDkuNTA3NSstMS4xMjM3ICAgICAgICAK
ICAgZm9sZC1tdWx0aS1nZXQtYnktb2Zmc2V0LXRvLWdldC1ieS1vZmZzZXQgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOC41ODkzKy00LjY4
NTIgICAgICAgICAgICA2LjY3NDErLTEuODkyOCAgICAgICAgICBtaWdodCBiZSAxLjI4NzB4IGZh
c3RlcgogICBmb2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8tcG9seS1nZXQtYnktb2Zmc2V0ICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgu
MDU2NSstMi4zODk5ICAgICA/ICAgICAgOC4wOTAxKy0wLjk1MzAgICAgICAgID8KICAgZm9sZC1t
dWx0aS1wdXQtYnktb2Zmc2V0LXRvLXBvbHktcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LjIzMjIrLTIuMDA4MyAg
ICAgPyAgICAgIDguOTQ3MCstMi45MDkyICAgICAgICA/IG1pZ2h0IGJlIDEuMDg2OHggc2xvd2Vy
CiAgIGZvbGQtbXVsdGktcHV0LWJ5LW9mZnNldC10by1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuNTE3MystNC4z
Mzg0ICAgICAgICAgICAgOS41MDQ2Ky0wLjQ5MDAgICAgICAgICAgbWlnaHQgYmUgMS4xMDY1eCBm
YXN0ZXIKICAgZm9sZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXJlcGxhY2Utb3ItdHJhbnNpdGlv
bi1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDguNzIwMistMC40MzMzICAgICAgICAgICAgOC40OTk2Ky0wLjA3NTAg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjYweCBmYXN0ZXIKICAgZm9sZC1wdXQtYnktaWQtdG8tbXVs
dGktcHV0LWJ5LW9mZnNldCAgICAgICAgICAgICAgOS43MzgzKy0wLjYwMDcgICAgID8gICAgIDEw
LjM4MzArLTIuNzAwNSAgICAgICAgPyBtaWdodCBiZSAxLjA2NjJ4IHNsb3dlcgogICBmb2xkLXB1
dC1ieS12YWwtd2l0aC1zdHJpbmctdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjUzOTQrLTAuNzYw
MiAgICAgPyAgICAgMTEuMTE2NSstMi42MDE4ICAgICAgICA/IG1pZ2h0IGJlIDEuMTY1M3ggc2xv
d2VyCiAgIGZvbGQtcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC10by1tdWx0aS1wdXQtYnktb2Zmc2V0
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTAuNjM3NSstMi4wNTM4ICAgICAgICAgICAgOS43NDA3Ky0xLjE2NjYgICAgICAgICAgbWlnaHQg
YmUgMS4wOTIxeCBmYXN0ZXIKICAgZm9sZC1wdXQtc3RydWN0dXJlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNy43MzU0Ky0wLjE3NzcgICAgICAgICAgICA3LjU4NjUrLTAuMzAxMSAg
ICAgICAgICBtaWdodCBiZSAxLjAxOTZ4IGZhc3RlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS1l
bnRyaWVzICAgICAgICAgICAgICAgICAgICAgIDExLjA4MDUrLTAuNjI2OSAgICAgICAgICAgMTAu
NjY2MystMC42MTAwICAgICAgICAgIG1pZ2h0IGJlIDEuMDM4OHggZmFzdGVyCiAgIGZvci1vZi1p
dGVyYXRlLWFycmF5LWtleXMgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTM3MistMC4xNzE5
ICAgICA/ICAgICAgMy41NTE0Ky0wLjM4MjggICAgICAgID8KICAgZm9yLW9mLWl0ZXJhdGUtYXJy
YXktdmFsdWVzICAgICAgICAgICAgICAgICAgICAgICAgMy4zNjkwKy0wLjIzNjkgICAgICAgICAg
ICAzLjM1NjUrLTAuMTc3MCAgICAgICAgCiAgIGZyb3VuZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTcuMTM5NSstMC45MDEwICAgICA/ICAgICAxOC4yMTMzKy0x
Ljk5MTEgICAgICAgID8gbWlnaHQgYmUgMS4wNjI3eCBzbG93ZXIKICAgZnRsLWxpYnJhcnktaW5s
aW5pbmctZGF0YXZpZXcgICAgICAgICAgICAgICAgICAgICA1My4zMzc1Ky0wLjQ1NDAgICAgID8g
ICAgIDU0Ljg2MjIrLTMuNTIwMyAgICAgICAgPyBtaWdodCBiZSAxLjAyODZ4IHNsb3dlcgogICBm
dGwtbGlicmFyeS1pbmxpbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3LjAxNDIr
LTMuMzk4NiAgICAgICAgICAgNzYuOTU3MystNi4wMTU3ICAgICAgICAKICAgZnRsLW9iamVjdC1z
dWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4OS40MzgzKy0yLjIwMTQgICAg
ID8gICAgMzAzLjI2MjgrLTE1LjQzMDUgICAgICAgPyBtaWdodCBiZSAxLjA0Nzh4IHNsb3dlcgog
ICBmdW5jdGlvbi1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjYy
MTkrLTAuNDA5NyAgICAgICAgICAgMTAuNTExMCstMC42NjM0ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDEwNnggZmFzdGVyCiAgIGZ1bmN0aW9uLWRvdC1hcHBseSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuMDE0NistMC4wNjM1ICAgICA/ICAgICAgMi4yMTE1Ky0wLjc2NTEgICAgICAg
ID8gbWlnaHQgYmUgMS4wOTc4eCBzbG93ZXIKICAgZnVuY3Rpb24tdGVzdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMi42NTcyKy0wLjE1MjEgICAgICAgICAgICAyLjUxNTQr
LTAuMDIxNCAgICAgICAgICBtaWdodCBiZSAxLjA1NjR4IGZhc3RlcgogICBmdW5jdGlvbi13aXRo
LWV2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgwLjYyMTIrLTMuODc2NiAgICAg
ICAgICAgNzguMTI1OSstNS40NzA2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMxOXggZmFzdGVyCiAg
IGdjc2UtcG9seS1nZXQtbGVzcy1vYnZpb3VzICAgICAgICAgICAgICAgICAgICAgICAgMjAuNzM2
NystMS4wOTYyICAgICA/ICAgICAyMS4xOTc4Ky0xLjYzNDggICAgICAgID8gbWlnaHQgYmUgMS4w
MjIyeCBzbG93ZXIKICAgZ2NzZS1wb2x5LWdldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyMS45ODE4Ky0zLjc5ODAgICAgICAgICAgIDIxLjU3OTArLTAuMjQ5MSAgICAgICAg
ICBtaWdodCBiZSAxLjAxODd4IGZhc3RlcgogICBnY3NlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjU4MzcrLTEuMjY5NSAgICAgICAgICAgIDMuNDQzNyst
MC43NTg5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQwN3ggZmFzdGVyCiAgIGdldC1ieS1pZC1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjQ4NDErLTAuMTEzNyAg
ICAgPyAgICAgIDIuNTIxNSstMC4xMTUyICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1MXggc2xvd2Vy
CiAgIGdldC1ieS1pZC1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjU4
NSstMC40NzkxICAgICAgICAgICAgNC41NjEzKy0wLjE3NTIgICAgICAgICAgbWlnaHQgYmUgMS4w
MjEzeCBmYXN0ZXIKICAgZ2V0LWJ5LWlkLWNoYWluLWZyb20tdHJ5LWJsb2NrICAgICAgICAgICAg
ICAgICAgICAgMi40OTg4Ky0wLjExMTcgICAgICAgICAgICAyLjQ4MTcrLTAuMDI1MyAgICAgICAg
CiAgIGdldC1ieS1pZC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAgICAgICAgICAgIDMu
ODcwMistMC4zMDI4ICAgICAgICAgICAgMy42OTA3Ky0wLjAxNjAgICAgICAgICAgbWlnaHQgYmUg
MS4wNDg3eCBmYXN0ZXIKICAgZ2V0LWJ5LWlkLXByb3RvLW9yLXNlbGYgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxNi4zNjEyKy0xLjczMzMgICAgID8gICAgIDE3Ljg5OTcrLTEuNzM4OSAgICAg
ICAgPyBtaWdodCBiZSAxLjA5NDB4IHNsb3dlcgogICBnZXQtYnktaWQtcXVhZG1vcnBoaWMtY2hl
Y2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjkyOTcrLTAuNDY0OCAgICAgPyAgICAg
IDMuMjE1NSstMC45NzExICAgICAgICA/IG1pZ2h0IGJlIDEuMDk3NXggc2xvd2VyCiAgIGdldC1i
eS1pZC1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYuNTA3NistMi4y
MTE0ICAgICAgICAgICAxNS40MTM5Ky0xLjA2MzAgICAgICAgICAgbWlnaHQgYmUgMS4wNzEweCBm
YXN0ZXIKICAgZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC4xMDM2Ky0wLjEzOTggICAgID8gICAgICA0LjEwNzQrLTAuMjkyNyAgICAgICAgPwogICBn
ZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24tc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuNjA5NystMC4wNTcwICAgICAgICAgICAgMi41NTkxKy0wLjA2NDUgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTk4eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1iaW1v
cnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNzY1MCstMC4wNjIwICAgICA/ICAg
ICAgNS44MDI4Ky0wLjEwMzAgICAgICAgID8KICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1jaGFp
bi1mcm9tLXRyeS1ibG9jayAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjU1MDUrLTAuMjE3NyAgICAgICAgICAgIDIuNTExOCstMC4wMTUw
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1NHggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zdHJp
bmctY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuNTEzNSstMC44MzY4ICAgICAgICAgICAg
NS4yNTYxKy0wLjE3NzMgICAgICAgICAgbWlnaHQgYmUgMS4wNDkweCBmYXN0ZXIKICAgZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1wcm90by1vci1zZWxmICAgICAgICAgICAgICAxNi4zNzgyKy0yLjA4
OTAgICAgICAgICAgIDE1LjU3OTcrLTAuOTY3MSAgICAgICAgICBtaWdodCBiZSAxLjA1MTN4IGZh
c3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLXF1YWRtb3JwaGljLWNoZWNrLXN0cnVjdHVy
ZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy4wMjg3Ky0wLjAzMTkgICAgID8gICAgICAzLjEwODIrLTAu
MTg5MCAgICAgICAgPyBtaWdodCBiZSAxLjAyNjJ4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgt
c3RyaW5nLXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAgIDE2LjE2MTYrLTIuNjMxNiAgICAgPyAg
ICAgMTYuNTAxOCstMS41MjE3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxMXggc2xvd2VyCiAgIGdl
dC1ieS12YWwtd2l0aC1zeW1ib2wtYmltb3JwaGljLWNoZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlv
bi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi44NDg4Ky0wLjA3NzQgICAgICAgICAgICAyLjc0NDgrLTAuMDU4MCAgICAgICAg
ICBtaWdodCBiZSAxLjAzNzl4IGZhc3RlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9y
cGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS44NTM4Ky0wLjY3NjMgICAgICAgICAg
IDExLjYwMDMrLTAuMDY3MyAgICAgICAgICBtaWdodCBiZSAxLjAyMTl4IGZhc3RlcgogICBnZXQt
YnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDkxOSstMC4wNzUwICAg
ICA/ICAgICAgMi42NTk1Ky0wLjMxMDcgICAgICAgID8gbWlnaHQgYmUgMS4wNjcyeCBzbG93ZXIK
ICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24gICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC43
MzI1Ky0wLjEzMTggICAgID8gICAgIDExLjAwNjcrLTAuNjY0NyAgICAgICAgPyBtaWdodCBiZSAx
LjAyNTV4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3ltYm9sLXByb3RvLW9yLXNlbGYgICAg
ICAgICAgICAgIDE2LjY5NzYrLTMuNDU0OCAgICAgICAgICAgMTYuMDA4NSstMS4yMzQ1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDQzMHggZmFzdGVyCiAgIGdldC1ieS12YWwtd2l0aC1zeW1ib2wtcXVh
ZG1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjUwMDkrLTAuMDQ0
OCAgICAgICAgICAgIDMuNDcwMCstMC4wMjI1ICAgICAgICAKICAgZ2V0LWJ5LXZhbC13aXRoLXN5
bWJvbC1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAxNS44MzczKy0xLjIyMzEgICAgID8gICAg
IDE2Ljc2NjgrLTEuOTkzMCAgICAgICAgPyBtaWdodCBiZSAxLjA1ODd4IHNsb3dlcgogICBnZXRf
Y2FsbGVlX21vbm9tb3JwaGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjI0MzMrLTAu
MTIyNCAgICAgPyAgICAgIDIuMjgyNystMC4wOTIwICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3Nngg
c2xvd2VyCiAgIGdldF9jYWxsZWVfcG9seW1vcnBoaWMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuMjkzMystMC4wODExICAgICA/ICAgICAgMy40MzAxKy0wLjk3MTYgICAgICAgID8gbWln
aHQgYmUgMS4wNDE1eCBzbG93ZXIKICAgZ2V0dGVyLW5vLWFjdGl2YXRpb24gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNC41OTM1Ky0wLjIyNDggICAgICAgICAgICA0LjQzNjgrLTAuMTEz
NyAgICAgICAgICBtaWdodCBiZSAxLjAzNTN4IGZhc3RlcgogICBnZXR0ZXItcHJvdG90eXBlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjQyNjIrLTAuMTc5OCAgICAgPyAgICAg
IDcuNzM2MCstMC43ODkxICAgICAgICA/IG1pZ2h0IGJlIDEuMDQxN3ggc2xvd2VyCiAgIGdldHRl
ci1yaWNoYXJkcy10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICA5NTguNzkxNystMjIu
Mjk2OSAgICAgICAgIDk1Ny4xMTQ3Ky0zMi4xNTYzICAgICAgIAogICBnZXR0ZXItcmljaGFyZHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA3LjU1NDArLTguMzA4MCAgICAgICAg
ICAxMDYuNzY2NCstMy4zMjUxICAgICAgICAKICAgZ2V0dGVyICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNC45MTMzKy0wLjEzMTMgICAgID8gICAgICA2LjEwMzkr
LTEuMzU3NCAgICAgICAgPyBtaWdodCBiZSAxLjI0MjN4IHNsb3dlcgogICBnbG9iYWwtb2JqZWN0
LWFjY2Vzcy13aXRoLW11dGF0aW5nLXN0cnVjdHVyZSAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LjIzNzUrLTAuMTU5NSAgICAgPyAgICAg
IDUuMzA4OCstMC4xMjU2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzNnggc2xvd2VyCiAgIGdsb2Jh
bC12YXItY29uc3QtaW5mZXItZmlyZS1mcm9tLW9wdCAgICAgICAgICAgICAgIDAuNjYzNistMC4w
MjI2ICAgICA/ICAgICAgMC42NjkyKy0wLjAyNjkgICAgICAgID8KICAgZ2xvYmFsLXZhci1jb25z
dC1pbmZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC42MDEzKy0wLjAxOTQgICAgICAg
ICAgICAwLjU4ODgrLTAuMDE5NyAgICAgICAgICBtaWdodCBiZSAxLjAyMTF4IGZhc3RlcgogICBo
YXJkLW92ZXJmbG93LWNoZWNrLWVxdWFsICAgICAgICAgICAgICAgICAgICAgICAgIDI1Ljc3NTIr
LTEuMTQwNCAgICAgICAgICAgMjUuNzUyMCstMi4zNjI1ICAgICAgICAKICAgaGFyZC1vdmVyZmxv
dy1jaGVjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNi41OTg0Ky0zLjg4MzkgICAg
ID8gICAgIDI2LjY3MTArLTIuMzkxNCAgICAgICAgPwogICBIYXNoTWFwLXB1dC1nZXQtaXRlcmF0
ZS1rZXlzICAgICAgICAgICAgICAgICAgICAgIDIyLjkxNTMrLTEuMjE4NyAgICAgPyAgICAgMjMu
MTkwMistMi4zMzQ2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyMHggc2xvd2VyCiAgIEhhc2hNYXAt
cHV0LWdldC1pdGVyYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYuNDE5NSstMS45MTM4
ICAgICA/ICAgICAyNi40NDY4Ky0xLjAzNzcgICAgICAgID8KICAgSGFzaE1hcC1zdHJpbmctcHV0
LWdldC1pdGVyYXRlICAgICAgICAgICAgICAgICAgICAyMi40NzI1Ky0xLjA2ODEgICAgICAgICAg
IDIyLjI1NzcrLTEuMTQ5MSAgICAgICAgCiAgIGhvaXN0LW1ha2Utcm9wZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDcuNjg4NystMS4xNzYxICAgICA/ICAgICAgOS4wNTc5Ky0y
LjA1MzMgICAgICAgID8gbWlnaHQgYmUgMS4xNzgxeCBzbG93ZXIKICAgaG9pc3QtcG9seS1jaGVj
ay1zdHJ1Y3R1cmUtZWZmZWN0ZnVsLWxvb3AgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41NzU1Ky0wLjIyODMgICAgICAgICAgICAzLjQ2
ODQrLTAuMDMzMCAgICAgICAgICBtaWdodCBiZSAxLjAzMDl4IGZhc3RlcgogICBob2lzdC1wb2x5
LWNoZWNrLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAyLjk2MjgrLTAuMTY5NiAg
ICAgICAgICAgIDIuOTExNSstMC4xMDczICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3NnggZmFzdGVy
CiAgIGltdWwtZG91YmxlLW9ubHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcu
NDYxMystMC41OTczICAgICBeICAgICAgNi41NTg5Ky0wLjA5MjUgICAgICAgIF4gZGVmaW5pdGVs
eSAxLjEzNzZ4IGZhc3RlcgogICBpbXVsLWludC1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA3LjkyOTYrLTEuNzM4NSAgICAgICAgICAgIDcuMzYxOCstMC45NjEyICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDc3MXggZmFzdGVyCiAgIGltdWwtbWl4ZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuOTc2NSstMS43NDcwICAgICAgICAgICAgNi41
OTYwKy0wLjMyODMgICAgICAgICAgbWlnaHQgYmUgMS4wNTc3eCBmYXN0ZXIKICAgaW4tZm91ci1j
YXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOC4xMzgyKy0wLjkxODMg
ICAgICAgICAgIDE4LjEzNTkrLTEuMDc2NSAgICAgICAgCiAgIGluLW9uZS1jYXNlLWZhbHNlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuMjM0NSstMC45NDkxICAgICAgICAgICAg
OS42Mzg5Ky0wLjI1OTUgICAgICAgICAgbWlnaHQgYmUgMS4wNjE4eCBmYXN0ZXIKICAgaW4tb25l
LWNhc2UtdHJ1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4xMDMwKy0wLjc3
MjggICAgICAgICAgICA5LjYyMTUrLTAuMjE3OCAgICAgICAgICBtaWdodCBiZSAxLjA1MDB4IGZh
c3RlcgogICBpbi10d28tY2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA5LjkwMTQrLTAuMTE2NyAgICAgICAgICAgIDkuODgwMSstMC4yODg4ICAgICAgICAKICAgaW5k
ZXhlZC1wcm9wZXJ0aWVzLWluLW9iamVjdHMgICAgICAgICAgICAgICAgICAgICAgMi44Mzc0Ky0w
LjIzNDggICAgICAgICAgICAyLjY4MjErLTAuMDYyMCAgICAgICAgICBtaWdodCBiZSAxLjA1Nzl4
IGZhc3RlcgogICBpbmZlci1jbG9zdXJlLWNvbnN0LXRoZW4tbW92LW5vLWlubGluZSAgICAgICAg
ICAgICAzLjQyNDkrLTAuMDQyOSAgICAgPyAgICAgIDMuNDQ1NistMC4wODYzICAgICAgICA/CiAg
IGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3YgICAgICAgICAgICAgICAgICAgICAgMTUuNDQw
OSstMC42MDg0ICAgICAgICAgICAxNS4zNDIzKy0xLjExMTAgICAgICAgIAogICBpbmZlci1jbG9z
dXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlLW5vLWlubGluZSAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjIxNjIrLTAuMjQxMyAgICAg
PyAgICAgMTAuMjE4MCstMC4zNzY5ICAgICAgICA/CiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhl
bi1wdXQtdG8tc2NvcGUgICAgICAgICAgICAgMjMuODc0MistMy4yNzYwICAgICAgICAgICAyMS45
MTg2Ky0wLjc2ODcgICAgICAgICAgbWlnaHQgYmUgMS4wODkyeCBmYXN0ZXIKICAgaW5mZXItY2xv
c3VyZS1jb25zdC10aGVuLXJlZW50ZXItbm8taW5saW5lICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuMTQzNSstMS43NTY2ICAgICA/ICAg
ICA0NS40OTUyKy0yLjY1MzIgICAgICAgID8KICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVuLXJl
ZW50ZXIgICAgICAgICAgICAgICAgICAyMy4zNTAzKy0yLjc5MjMgICAgID8gICAgIDIzLjY4MDgr
LTIuNzUwNSAgICAgICAgPyBtaWdodCBiZSAxLjAxNDJ4IHNsb3dlcgogICBpbmZlci1jb25zdGFu
dC1nbG9iYWwtcHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAzLjM0MDgrLTAuMTEyMyAgICAg
ICAgICAgIDMuMjc1NystMC4wNjQwICAgICAgICAgIG1pZ2h0IGJlIDEuMDE5OXggZmFzdGVyCiAg
IGluZmVyLWNvbnN0YW50LXByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjE0
MCstMC4yMDU3ICAgICAgICAgICAgMi40ODY5Ky0wLjAzMDIgICAgICAgICAgbWlnaHQgYmUgMS4w
NTExeCBmYXN0ZXIKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10ZW4tdmFycyAgICAgICAgICAg
ICAgICAgICAgNy4zNTc0Ky0wLjA3MjYgICAgICAgICAgICA3LjI2MzkrLTAuMTgxNiAgICAgICAg
ICBtaWdodCBiZSAxLjAxMjl4IGZhc3RlcgogICBpbmZlci1vbmUtdGltZS1jbG9zdXJlLXR3by12
YXJzICAgICAgICAgICAgICAgICAgICA3LjA3NjUrLTAuODYwNSAgICAgICAgICAgIDYuOTI0Myst
MC4xOTQ2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyMHggZmFzdGVyCiAgIGluZmVyLW9uZS10aW1l
LWNsb3N1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMTE2NSstMS4zMTcyICAgICAg
ICAgICAgNi44MjI2Ky0wLjIyMDQgICAgICAgICAgbWlnaHQgYmUgMS4wNDMxeCBmYXN0ZXIKICAg
aW5mZXItb25lLXRpbWUtZGVlcC1jbG9zdXJlICAgICAgICAgICAgICAgICAgICAgICAxMC40ODc4
Ky0wLjk5ODEgICAgICAgICAgIDEwLjI5NTErLTAuNzkwOSAgICAgICAgICBtaWdodCBiZSAxLjAx
ODd4IGZhc3RlcgogICBpbmxpbmUtYXJndW1lbnRzLWFjY2VzcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLjc0ODIrLTAuOTc5MSAgICAgICAgICAgIDMuMzc2NystMC4yMTgzICAgICAgICAg
IG1pZ2h0IGJlIDEuMTEwMHggZmFzdGVyCiAgIGlubGluZS1hcmd1bWVudHMtYWxpYXNlZC1hY2Nl
c3MgICAgICAgICAgICAgICAgICAgIDMuNjI0MSstMC40MzIxICAgICAgICAgICAgMy40NTE2Ky0w
LjEyMTYgICAgICAgICAgbWlnaHQgYmUgMS4wNTAweCBmYXN0ZXIKICAgaW5saW5lLWFyZ3VtZW50
cy1sb2NhbC1lc2NhcGUgICAgICAgICAgICAgICAgICAgICAgMy40MjgzKy0wLjAxNDMgICAgICAg
ICAgICAzLjQwNjgrLTAuMDk3OSAgICAgICAgCiAgIGlubGluZS1nZXQtc2NvcGVkLXZhciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDgxOCstMC4zMjA5ICAgICAgICAgICAgNC4yODgy
Ky0wLjE3NzUgICAgICAgICAgbWlnaHQgYmUgMS4wNDUxeCBmYXN0ZXIKICAgaW5saW5lZC1wdXQt
YnktaWQtdHJhbnNpdGlvbiAgICAgICAgICAgICAgICAgICAgICAgOC44ODExKy0xLjExNzMgICAg
ICAgICAgICA4Ljg1MTArLTAuNjc0NSAgICAgICAgCiAgIGlubGluZWQtcHV0LWJ5LXZhbC13aXRo
LXN0cmluZy10cmFuc2l0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMzcuOTc4NSstMC4yMjI0ICAgICA/ICAgICA0MC41MDU1Ky0zLjAx
NzYgICAgICAgID8gbWlnaHQgYmUgMS4wNjY1eCBzbG93ZXIKICAgaW5saW5lZC1wdXQtYnktdmFs
LXdpdGgtc3ltYm9sLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzNy44MTAwKy0wLjQ5MjkgICAgICAgICAgIDM3Ljc0NDIr
LTAuODE1NyAgICAgICAgCiAgIGludC1vci1vdGhlci1hYnMtdGhlbi1nZXQtYnktdmFsICAgICAg
ICAgICAgICAgICAgIDQuNTk2OSstMS4wMjgzICAgICAgICAgICAgNC4zMjAxKy0wLjE0MDAgICAg
ICAgICAgbWlnaHQgYmUgMS4wNjQxeCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLWFicy16ZXJvLXRo
ZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAxNS4yNzM1Ky0xLjM2MDkgICAgID8gICAgIDE1LjMw
MDErLTAuODc0NyAgICAgICAgPwogICBpbnQtb3Itb3RoZXItYWRkLXRoZW4tZ2V0LWJ5LXZhbCAg
ICAgICAgICAgICAgICAgICA0LjIxNjArLTAuMzM4NSAgICAgICAgICAgIDQuMjA3OSstMC43NjM1
ICAgICAgICAKICAgaW50LW9yLW90aGVyLWFkZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNC43NzE1Ky0wLjIzNTAgICAgICAgICAgICA0LjcxMzErLTAuMDEwNCAgICAgICAgICBt
aWdodCBiZSAxLjAxMjR4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItZGl2LXRoZW4tZ2V0LWJ5LXZh
bCAgICAgICAgICAgICAgICAgICA0LjA3MTcrLTEuMTM0MyAgICAgICAgICAgIDMuNjU3NystMC4w
NjE5ICAgICAgICAgIG1pZ2h0IGJlIDEuMTEzMnggZmFzdGVyCiAgIGludC1vci1vdGhlci1tYXgt
dGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuNzc3NSstMC4zMzMxICAgICAgICAg
ICAgMy42NzU4Ky0wLjA2MzMgICAgICAgICAgbWlnaHQgYmUgMS4wMjc2eCBmYXN0ZXIKICAgaW50
LW9yLW90aGVyLW1pbi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgMy43MjcxKy0w
LjA5MDMgICAgID8gICAgICAzLjkwNzArLTAuNzc3MiAgICAgICAgPyBtaWdodCBiZSAxLjA0ODN4
IHNsb3dlcgogICBpbnQtb3Itb3RoZXItbW9kLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAg
ICAgICAzLjUwNjMrLTAuMTE3NCAgICAgICAgICAgIDMuNDk3MistMC4wNDQwICAgICAgICAKICAg
aW50LW9yLW90aGVyLW11bC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgMy4zOTk1
Ky0wLjA4OTYgICAgID8gICAgICAzLjQ5OTUrLTAuMTcwNSAgICAgICAgPyBtaWdodCBiZSAxLjAy
OTR4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItbmVnLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAg
ICAgICAgICA0LjA5MDUrLTAuMTY2NCAgICAgICAgICAgIDMuOTQ5NystMC4wNjE5ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDM1NnggZmFzdGVyCiAgIGludC1vci1vdGhlci1uZWctemVyby10aGVuLWdl
dC1ieS12YWwgICAgICAgICAgICAgMTUuNTczNystMC45OTAyICAgICAgICAgICAxNS4zMzE3Ky0x
LjM0NDMgICAgICAgICAgbWlnaHQgYmUgMS4wMTU4eCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLXN1
Yi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNC4xNjAyKy0wLjUyMjUgICAgICAg
ICAgICAzLjkzNzgrLTAuMDg4MiAgICAgICAgICBtaWdodCBiZSAxLjA1NjV4IGZhc3RlcgogICBp
bnQtb3Itb3RoZXItc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjMyNjYr
LTAuMTQyMCAgICAgPyAgICAgIDMuMzM5NystMC4xMDg1ICAgICAgICA/CiAgIGludC1vdmVyZmxv
dy1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuOTQ0NystMC4xMjk0ICAg
ICA/ICAgICAgNC4yMTAwKy0wLjkwMzYgICAgICAgID8gbWlnaHQgYmUgMS4wNjcyeCBzbG93ZXIK
ICAgSW50MTZBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAgICA0MC4w
MjQ3Ky0wLjMxMTEgICAgICAgICAgIDM5LjkzNTkrLTAuMjc1NiAgICAgICAgCiAgIEludDE2QXJy
YXktYnViYmxlLXNvcnQtd2l0aC1ieXRlTGVuZ3RoICAgICAgICAgICAgMjIuNDU4NystMy4yNzky
ICAgICAgICAgICAyMS4zNzQwKy0xLjM4MDggICAgICAgICAgbWlnaHQgYmUgMS4wNTA4eCBmYXN0
ZXIKICAgSW50MTZBcnJheS1idWJibGUtc29ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
OS43MTU1Ky0wLjk3NzIgICAgID8gICAgIDIxLjc4NzcrLTEuMjA3OCAgICAgICAgPyBtaWdodCBi
ZSAxLjEwNTF4IHNsb3dlcgogICBJbnQxNkFycmF5LWxvYWQtaW50LW11bCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxLjQwODcrLTAuMDIxNiAgICAgPyAgICAgIDEuNDA5NSstMC4wMTc2ICAg
ICAgICA/CiAgIEludDE2QXJyYXktdG8tSW50MzJBcnJheS1zZXQgICAgICAgICAgICAgICAgICAg
ICAgNDIuNzk2MSstMC4xMDA3ICAgICAgICAgICA0Mi42NTkyKy0wLjUzMzIgICAgICAgIAogICBJ
bnQzMkFycmF5LWFsbG9jLWxhcmdlICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjMzOTQr
LTIuMjE5NCAgICAgICAgICAgMTEuOTI1MystMS42NjIyICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0
N3ggZmFzdGVyCiAgIEludDMyQXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAgICAg
ICAgICAgNDUuMDQ4NSstMC4yMTYxICAgICA/ICAgICA0NS4yMjA2Ky0wLjQ3OTIgICAgICAgID8K
ICAgSW50MzJBcnJheS1hbGxvYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44
NTUyKy0wLjQzMTcgICAgICAgICAgICAyLjc4NDcrLTAuMjA1NSAgICAgICAgICBtaWdodCBiZSAx
LjAyNTN4IGZhc3RlcgogICBJbnQzMkFycmF5LUludDhBcnJheS12aWV3LWFsbG9jICAgICAgICAg
ICAgICAgICAgICA1LjkzMjUrLTEuMDk4OCAgICAgICAgICAgIDUuNjU4MCstMC41NTk3ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDQ4NXggZmFzdGVyCiAgIGludDUyLXNwaWxsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDQuMzg2MystMC4yMDc3ICAgICA/ICAgICAgNC40OTYy
Ky0wLjg5NzkgICAgICAgID8gbWlnaHQgYmUgMS4wMjUxeCBzbG93ZXIKICAgSW50OEFycmF5LWFs
bG9jLWxvbmctbGl2ZWQgICAgICAgICAgICAgICAgICAgICAgICAzNS45ODU3Ky0xLjI5MTEgICAg
ICAgICAgIDM1LjgxOTYrLTAuMjUwNSAgICAgICAgCiAgIEludDhBcnJheS1sb2FkLXdpdGgtYnl0
ZUxlbmd0aCAgICAgICAgICAgICAgICAgICAgIDMuMjExNystMC4wNDE2ICAgICA/ICAgICAgMy42
MDYyKy0xLjIwMTQgICAgICAgID8gbWlnaHQgYmUgMS4xMjI4eCBzbG93ZXIKICAgSW50OEFycmF5
LWxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy40MDE5Ky0wLjMxMTgg
ICAgICAgICAgICAzLjIxNjIrLTAuMDA5MiAgICAgICAgICBtaWdodCBiZSAxLjA1Nzd4IGZhc3Rl
cgogICBpbnRlZ2VyLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5
Ljc3OTArLTAuMDg3NCAgICAgPyAgICAgMTAuNTAzMystMC45MjAxICAgICAgICA/IG1pZ2h0IGJl
IDEuMDc0MXggc2xvd2VyCiAgIGludGVnZXItbW9kdWxvICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEuNTQyNSstMC4wMjg0ICAgICAgICAgICAgMS41MjgwKy0wLjE2MDUgICAg
ICAgIAogICBpcy1ib29sZWFuLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLjgwMTArLTAuNjc1OCAgICAgICAgICAgIDMuNTgyNSstMC4wNDIwICAgICAgICAgIG1pZ2h0
IGJlIDEuMDYxMHggZmFzdGVyCiAgIGlzLWJvb2xlYW4tZm9sZCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNTI0MCstMC4wMTQ0ICAgICA/ICAgICAgMi41NTYyKy0wLjA5MDIg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTI3eCBzbG93ZXIKICAgaXMtZnVuY3Rpb24tZm9sZC10cmlj
a3ktaW50ZXJuYWwtZnVuY3Rpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOS4xMjE2Ky0wLjE5MjAgICAgIF4gICAgICA4LjgzMjArLTAu
MDU2MCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDMyOHggZmFzdGVyCiAgIGlzLWZ1bmN0aW9uLWZv
bGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuODkwNystMC4xMDcyICAgICAg
ICAgICAgMy44ODEwKy0wLjI4ODggICAgICAgIAogICBpcy1mdW5jdGlvbi1mb2xkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU4NTErLTAuMDQ4OSAgICAgPyAgICAgIDIuODQ4
OSstMC45ODI5ICAgICAgICA/IG1pZ2h0IGJlIDEuMTAyMXggc2xvd2VyCiAgIGlzLW51bWJlci1m
b2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzE2OSstMC4wMzg2ICAg
ICA/ICAgICAgMy43NDIxKy0wLjA5MzMgICAgICAgID8KICAgaXMtbnVtYmVyLWZvbGQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44OTQxKy0wLjk3NTUgICAgICAgICAgICAy
LjUzMTArLTAuMDE3NyAgICAgICAgICBtaWdodCBiZSAxLjE0MzV4IGZhc3RlcgogICBpcy1vYmpl
Y3Qtb3ItbnVsbC1mb2xkLWZ1bmN0aW9ucyAgICAgICAgICAgICAgICAgICAyLjU2NjArLTAuMDI2
NSAgICAgICAgICAgIDIuNTYzMistMC4wMTA5ICAgICAgICAKICAgaXMtb2JqZWN0LW9yLW51bGwt
Zm9sZC1sZXNzLXRyaWNreSAgICAgICAgICAgICAgICAgMy45ODA4Ky0wLjQxMjQgICAgICAgICAg
ICAzLjgwODUrLTAuMDUyNyAgICAgICAgICBtaWdodCBiZSAxLjA0NTJ4IGZhc3RlcgogICBpcy1v
YmplY3Qtb3ItbnVsbC1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICA0LjUyODQrLTAu
MDczOSAgICAgPyAgICAgIDQuOTQxNSstMS4wOTk2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDkxMngg
c2xvd2VyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuNTUzNystMC4wNDYwICAgICA/ICAgICAgMi41NjMyKy0wLjEwODMgICAgICAgID8KICAg
aXMtb2JqZWN0LW9yLW51bGwtdHJpY2tpZXItZnVuY3Rpb24gICAgICAgICAgICAgICAgMy44MTcw
Ky0wLjA0ODUgICAgID8gICAgICA0LjA2NzIrLTAuOTU1OCAgICAgICAgPyBtaWdodCBiZSAxLjA2
NTV4IHNsb3dlcgogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlja2llci1pbnRlcm5hbC1mdW5jdGlv
biAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA5LjYzOTYrLTAuNzg4MyAgICAgICAgICAgIDkuNTgyNSstMS4wMjEzICAgICAgICAKICAgaXMt
b2JqZWN0LW9yLW51bGwtdHJpY2t5LWZ1bmN0aW9uICAgICAgICAgICAgICAgICAgMy44MjI5Ky0w
LjEzMzcgICAgID8gICAgICA0LjAxNTQrLTAuNzEyMCAgICAgICAgPyBtaWdodCBiZSAxLjA1MDR4
IHNsb3dlcgogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlja3ktaW50ZXJuYWwtZnVuY3Rpb24gICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy4z
NTczKy0wLjkwMTAgICAgICAgICAgICA3LjA2NzcrLTAuMjcxOSAgICAgICAgICBtaWdodCBiZSAx
LjA0MTB4IGZhc3RlcgogICBpcy1zdHJpbmctZm9sZC10cmlja3kgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjczMTUrLTAuMDQ5NyAgICAgPyAgICAgIDQuMDA3OCstMC44OTE3ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDc0MHggc2xvd2VyCiAgIGlzLXN0cmluZy1mb2xkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIuNTA4MSstMC4wNDg3ICAgICA/ICAgICAgMi42NjY0
Ky0wLjE2NTggICAgICAgID8gbWlnaHQgYmUgMS4wNjMxeCBzbG93ZXIKICAgaXMtdW5kZWZpbmVk
LWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xNTQwKy0wLjA2NTYgICAg
ID8gICAgICAzLjIxMzMrLTAuMTgxNCAgICAgICAgPyBtaWdodCBiZSAxLjAxODh4IHNsb3dlcgog
ICBpcy11bmRlZmluZWQtZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU0
NTIrLTAuMjQwMCAgICAgICAgICAgIDIuNTIyMistMC4xMTMwICAgICAgICAKICAgSlNPTlAtbmVn
YXRpdmUtMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yMzkxKy0wLjAwODUg
ICAgID8gICAgICAwLjI2NjcrLTAuMDM5MSAgICAgICAgPyBtaWdodCBiZSAxLjExNTR4IHNsb3dl
cgogICBsYXJnZS1pbnQtY2FwdHVyZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
LjAyMzUrLTAuNDIyMyAgICAgICAgICAgIDMuODIwMystMC4xNDAwICAgICAgICAgIG1pZ2h0IGJl
IDEuMDUzMnggZmFzdGVyCiAgIGxhcmdlLWludC1uZWcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTQuMTE1MSstMS4wNjMxICAgICA/ICAgICAxNC4yMzc1Ky0wLjM1MzcgICAg
ICAgID8KICAgbGFyZ2UtaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxMi45MzQ0Ky0xLjcwMTggICAgICAgICAgIDEyLjc0ODMrLTAuOTMyOCAgICAgICAgICBtaWdo
dCBiZSAxLjAxNDZ4IGZhc3RlcgogICBsb2FkLXZhcmFyZ3MtZWxpbWluYXRpb24gICAgICAgICAg
ICAgICAgICAgICAgICAgIDIwLjEzNTMrLTIuODQ4MyAgICAgICAgICAgMTkuODQzOSstMS41MzEz
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0N3ggZmFzdGVyCiAgIGxvZ2ljYWwtbm90LXdlaXJkLXR5
cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuODgzNCstMC4wNzMxICAgICAgICAgICAg
Mi44ODAyKy0wLjA3NDYgICAgICAgIAogICBsb2dpY2FsLW5vdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0LjU2MTArLTEuMTk5MyAgICAgICAgICAgIDQuMTE5NCstMC4x
MDYxICAgICAgICAgIG1pZ2h0IGJlIDEuMTA3MnggZmFzdGVyCiAgIGxvdHMtb2YtZmllbGRzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMjU0NSstMS4wODM5ICAgICAgICAg
ICAgOC45NzUyKy0wLjc3NTMgICAgICAgICAgbWlnaHQgYmUgMS4wMzExeCBmYXN0ZXIKICAgbWFr
ZS1pbmRleGVkLXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42MzIzKy0w
LjMxMjEgICAgID8gICAgICAyLjcxMTArLTAuMTQzMiAgICAgICAgPyBtaWdodCBiZSAxLjAyOTl4
IHNsb3dlcgogICBtYWtlLXJvcGUtY3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzLjU5ODArLTAuNzU5MyAgICAgPyAgICAgIDMuNzQ2NSstMC45NTQyICAgICAgICA/IG1p
Z2h0IGJlIDEuMDQxM3ggc2xvd2VyCiAgIG1hcnNhZ2xpYS1sYXJnZXItaW50cyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMzEuMTE1MystMy4yNzE2ICAgICAgICAgICAzMC45ODMyKy0xLjMw
MjAgICAgICAgIAogICBtYXJzYWdsaWEtb3NyLWVudHJ5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIwLjcyMzgrLTIuNTc3MCAgICAgICAgICAgMjAuMzA5MCstMS45NDIwICAgICAgICAg
IG1pZ2h0IGJlIDEuMDIwNHggZmFzdGVyCiAgIG1hdGgtd2l0aC1vdXQtb2YtYm91bmRzLWFycmF5
LXZhbHVlcyAgICAgICAgICAgICAgMjQuMDM1NCstMi40MDcwICAgICAgICAgICAyMi4yMTUwKy0x
LjYzNzkgICAgICAgICAgbWlnaHQgYmUgMS4wODE5eCBmYXN0ZXIKICAgbWF4LWJvb2xlYW4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi41NTk4Ky0wLjEwMTAgICAgICAg
ICAgICAyLjQ5MjcrLTAuMTAwMyAgICAgICAgICBtaWdodCBiZSAxLjAyNjl4IGZhc3RlcgogICBt
ZXRob2Qtb24tbnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjI5NzMr
LTEuMzMyNiAgICAgPyAgICAgMTYuNjI2MystMy4yMDQzICAgICAgICA/IG1pZ2h0IGJlIDEuMDIw
Mnggc2xvd2VyCiAgIG1pbi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuNTM3MCstMC4wNjM5ICAgICA/ICAgICAgMi42MDQyKy0wLjE4NzIgICAgICAgID8g
bWlnaHQgYmUgMS4wMjY1eCBzbG93ZXIKICAgbWludXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy4wOTcwKy0wLjU1ODMgICAgID8gICAgICAzLjE1OTQrLTAu
NTY5MiAgICAgICAgPyBtaWdodCBiZSAxLjAyMDF4IHNsb3dlcgogICBtaW51cy1ib29sZWFuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjI2MjgrLTAuMDkzNSAgICAgICAg
ICAgIDIuMjU0OSstMC4xMDA5ICAgICAgICAKICAgbWlzYy1zdHJpY3QtZXEgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyNy41MzA5Ky0xLjMxNzcgICAgID8gICAgIDI4LjY0OTMr
LTIuMTU0OCAgICAgICAgPyBtaWdodCBiZSAxLjA0MDZ4IHNsb3dlcgogICBtb2QtYm9vbGVhbi1k
b3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjQyMDUrLTAuMDc4NCAgICAg
PyAgICAgMTAuNjg2OSstMC45NDQyICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1Nnggc2xvd2VyCiAg
IG1vZC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuODMw
NystMC4wNDY4ICAgICAgICAgICAgNy44MDU1Ky0wLjAxMDggICAgICAgIAogICBtdWwtYm9vbGVh
bi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjQ2MDErLTAuMDczMyAg
ICAgICAgICAgIDMuNDQwOCstMC4wNTEyICAgICAgICAKICAgbXVsLWJvb2xlYW4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi45Njg4Ky0wLjgyMjYgICAgICAgICAgICAy
LjY4NzMrLTAuMDY0NyAgICAgICAgICBtaWdodCBiZSAxLjEwNDh4IGZhc3RlcgogICBuZWctYm9v
bGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjk2NzMrLTAuMDY0
NyAgICAgICAgICAgIDIuOTA2MistMC4wOTUyICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxMHggZmFz
dGVyCiAgIG5lZ2F0aXZlLXplcm8tZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuMzMyMistMC4wMTk3ICAgICA/ICAgICAgMC4zNDAwKy0wLjAwMzIgICAgICAgID8gbWlnaHQg
YmUgMS4wMjM3eCBzbG93ZXIKICAgbmVnYXRpdmUtemVyby1tb2R1bG8gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMC4zNDg5Ky0wLjAzMTkgICAgICAgICAgICAwLjMyNDMrLTAuMDA3NSAg
ICAgICAgICBtaWdodCBiZSAxLjA3NTh4IGZhc3RlcgogICBuZWdhdGl2ZS16ZXJvLW5lZ2F0ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjQ5NDUrLTAuNTI1MiAgICAgICAgICAgIDAu
MzUyNystMC4wNzIxICAgICAgICAgIG1pZ2h0IGJlIDEuNDAyMHggZmFzdGVyCiAgIG5lc3RlZC1m
dW5jdGlvbi1wYXJzaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgNDEuODIzNystMC44MTQ5
ICAgICA/ICAgICA0MS45NjYyKy0yLjA4MTcgICAgICAgID8KICAgbmV3LWFycmF5LWJ1ZmZlci1k
ZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MS42Mzc3Ky0wLjU5NzQgICAgID8gICAg
IDgzLjUwMjMrLTIuOTI0OCAgICAgICAgPyBtaWdodCBiZSAxLjAyMjh4IHNsb3dlcgogICBuZXct
YXJyYXktYnVmZmVyLXB1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ljc1NzUrLTAu
MDU2OSAgICAgPyAgICAgIDYuMDY5OCstMC44MzE2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDU0Mngg
c2xvd2VyCiAgIG5ldy1hcnJheS1kZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTQuNjI0MystMi4zOTM5ICAgICA/ICAgICAxNC43NTQ1Ky0zLjE5NDEgICAgICAgID8KICAg
bmV3LWFycmF5LXB1c2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zNzQ5
Ky0wLjMwMjkgICAgID8gICAgICAzLjY0NDgrLTAuODQ0MSAgICAgICAgPyBtaWdodCBiZSAxLjA4
MDB4IHNsb3dlcgogICBuby1pbmxpbmUtY29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDI5LjA0NjQrLTAuMzMxNSAgICAgPyAgICAgMjkuMzA2MSstMS40Mzk1ICAgICAgICA/
CiAgIG51bWJlci10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
ODE4OCstMC4xMTI0ICAgICA/ICAgICAgMi44ODA0Ky0wLjA2NTAgICAgICAgID8gbWlnaHQgYmUg
MS4wMjE5eCBzbG93ZXIKICAgb2JqZWN0LWNsb3N1cmUtY2FsbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC44NzMwKy0wLjk1ODUgICAgICAgICAgICA0Ljc1MTIrLTAuMzYwNyAgICAg
ICAgICBtaWdodCBiZSAxLjAyNTd4IGZhc3RlcgogICBvYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1z
eW1ib2xzLW9uLWxhcmdlLWFycmF5ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDMuODMzNystMC4xMDE4ICAgICA/ICAgICAgMy44NTcxKy0w
LjMxMTUgICAgICAgID8KICAgb2JqZWN0LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMi45MjM2Ky0wLjQ5MjAgICAgICAgICAgICAyLjYwMjErLTAuMTA0MyAgICAg
ICAgICBtaWdodCBiZSAxLjEyMzZ4IGZhc3RlcgogICBvYnZpb3VzLXNpbmstcGF0aG9sb2d5LXRh
a2VuICAgICAgICAgICAgICAgICAgICAgIDk0LjM5NTgrLTIuNTQ5NiAgICAgICAgICAgOTIuOTYx
NSstMS4yMDg3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE1NHggZmFzdGVyCiAgIG9idmlvdXMtc2lu
ay1wYXRob2xvZ3kgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjguNTk2NystMS40ODU0ICAg
ICAgICAgICAyOC4xMDkxKy0wLjM4NjYgICAgICAgICAgbWlnaHQgYmUgMS4wMTczeCBmYXN0ZXIK
ICAgb2J2aW91c2x5LWVsaWRhYmxlLW5ldy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAyNy4z
MDM1Ky0xLjI0OTkgICAgID8gICAgIDI3LjM5NjErLTAuNzI2OCAgICAgICAgPwogICBwbHVzLWJv
b2xlYW4tYXJpdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjMxNDgrLTAuMTMx
MSAgICAgICAgICAgIDIuMjg5NystMC4wMTUzICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwOXggZmFz
dGVyCiAgIHBsdXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuOTU3MCstMC4wMjg5ICAgICA/ICAgICAgMi45OTQ0Ky0wLjEyNDEgICAgICAgID8gbWlnaHQg
YmUgMS4wMTI3eCBzbG93ZXIKICAgcGx1cy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMi40MDg2Ky0wLjA0NjcgICAgICAgICAgICAyLjQwNzArLTAuMDg4MyAg
ICAgICAgCiAgIHBvbHktY2hhaW4tYWNjZXNzLWRpZmZlcmVudC1wcm90b3R5cGVzLXNpbXBsZSAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjUwMTMrLTAuMjQxMiAgICAgPyAgICAgIDIuODI2NystMS4xMTAxICAgICAgICA/IG1pZ2h0IGJl
IDEuMTMwMXggc2xvd2VyCiAgIHBvbHktY2hhaW4tYWNjZXNzLWRpZmZlcmVudC1wcm90b3R5cGVz
ICAgICAgICAgICAgIDIuNDA5MystMC4wNDAwICAgICA/ICAgICAgMi40NDY1Ky0wLjA2NDggICAg
ICAgID8gbWlnaHQgYmUgMS4wMTU0eCBzbG93ZXIKICAgcG9seS1jaGFpbi1hY2Nlc3Mtc2ltcGxl
ciAgICAgICAgICAgICAgICAgICAgICAgICAgMi40NDI2Ky0wLjA2NTQgICAgID8gICAgICAyLjQ3
MDQrLTAuMDUwOSAgICAgICAgPyBtaWdodCBiZSAxLjAxMTR4IHNsb3dlcgogICBwb2x5LWNoYWlu
LWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjQzMzUrLTAuMTA4NiAg
ICAgPyAgICAgIDIuNDYyNistMC4yMDgxICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyMHggc2xvd2Vy
CiAgIHBvbHktc3RyaWN0ZXEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTEu
MTE0MCstMS4yMDI4ICAgICAgICAgICA0OS45MzM0Ky0wLjQ3MzcgICAgICAgICAgbWlnaHQgYmUg
MS4wMjM2eCBmYXN0ZXIKICAgcG9seW1vcnBoaWMtYXJyYXktY2FsbCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMS4yMzUwKy0wLjIxMDIgICAgICAgICAgICAxLjE2NDErLTAuMTMwMiAgICAg
ICAgICBtaWdodCBiZSAxLjA2MTB4IGZhc3RlcgogICBwb2x5bW9ycGhpYy1nZXQtYnktaWQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc4NzYrLTAuMTYzOCAgICAgICAgICAgIDIuNzEx
MistMC4wNzkzICAgICAgICAgIG1pZ2h0IGJlIDEuMDI4MnggZmFzdGVyCiAgIHBvbHltb3JwaGlj
LXB1dC1ieS1pZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjkuMjg2NCstMS44NjY4ICAg
ICAgICAgICAyNy4xMzMyKy0yLjM0NjEgICAgICAgICAgbWlnaHQgYmUgMS4wNzk0eCBmYXN0ZXIK
ICAgcG9seW1vcnBoaWMtcHV0LWJ5LXZhbC13aXRoLXN0cmluZyAgICAgICAgICAgICAgICAyNi45
MzU0Ky0xLjE0ODcgICAgID8gICAgIDI4LjE2NzUrLTMuNzU1MyAgICAgICAgPyBtaWdodCBiZSAx
LjA0NTd4IHNsb3dlcgogICBwb2x5bW9ycGhpYy1wdXQtYnktdmFsLXdpdGgtc3ltYm9sICAgICAg
ICAgICAgICAgIDI3LjcyMzgrLTIuMDE3NiAgICAgPyAgICAgMjguNzk4NystMi4yODgwICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDM4OHggc2xvd2VyCiAgIHBvbHltb3JwaGljLXN0cnVjdHVyZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTEuODI0MistMC4zMjI1ICAgICA/ICAgICAxMS45Nzgw
Ky0wLjYzMDggICAgICAgID8gbWlnaHQgYmUgMS4wMTMweCBzbG93ZXIKICAgcG9seXZhcmlhbnQt
bW9ub21vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgNS45NDExKy0wLjQyMzQgICAg
ID8gICAgICA2LjgwODUrLTIuMDUwNCAgICAgICAgPyBtaWdodCBiZSAxLjE0NjB4IHNsb3dlcgog
ICBwcm90by1nZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ljk4
MjErLTAuODg1OCAgICAgICAgICAgIDcuNzQzNystMC4yNjc1ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDMwOHggZmFzdGVyCiAgIHByb3RvdHlwZS1hY2Nlc3Mtd2l0aC1tdXRhdGluZy1wcm90b3R5cGUg
ICAgICAgICAgIDUuMTIxMSstMC4yODMwICAgICA/ICAgICAgNS4zNDgwKy0wLjkwOTYgICAgICAg
ID8gbWlnaHQgYmUgMS4wNDQzeCBzbG93ZXIKICAgcHV0LWJ5LWlkLXJlcGxhY2UtYW5kLXRyYW5z
aXRpb24gICAgICAgICAgICAgICAgICAgNy44MzU1Ky0xLjAwMjMgICAgICAgICAgICA3LjYwNzIr
LTEuMTc0OCAgICAgICAgICBtaWdodCBiZSAxLjAzMDB4IGZhc3RlcgogICBwdXQtYnktaWQtc2xp
Z2h0bHktcG9seW1vcnBoaWMgICAgICAgICAgICAgICAgICAgICAyLjU3NDIrLTAuMDIyMCAgICAg
ICAgICAgIDIuNTczMystMC4wOTA3ICAgICAgICAKICAgcHV0LWJ5LWlkICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4xMjE4Ky0wLjExNDcgICAgID8gICAgICA5LjE3
NjkrLTAuMzI4MiAgICAgICAgPwogICBwdXQtYnktdmFsLWRpcmVjdCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLjMzMzMrLTAuMDMzOCAgICAgICAgICAgIDAuMzIzMCstMC4wMTM5
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMxOXggZmFzdGVyCiAgIHB1dC1ieS12YWwtbGFyZ2UtaW5k
ZXgtYmxhbmstaW5kZXhpbmctdHlwZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0Ljk4MzUrLTAuMjU0MiAgICAgPyAgICAgIDUuMjA1NSst
MC4zOTU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ0Nnggc2xvd2VyCiAgIHB1dC1ieS12YWwtbWFj
aGluZS1pbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDQyNCstMC4yNDMxICAgICAg
ICAgICAgMi4zNzUxKy0wLjE1OTcgICAgICAgICAgbWlnaHQgYmUgMS4wMjg0eCBmYXN0ZXIKICAg
cHV0LWJ5LXZhbC13aXRoLXN0cmluZy1yZXBsYWNlLWFuZC10cmFuc2l0aW9uICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuODU5MSstMS4w
ODk0ICAgICAgICAgICAgOS41ODE3Ky0wLjE2NTAgICAgICAgICAgbWlnaHQgYmUgMS4wMjg5eCBm
YXN0ZXIKICAgcHV0LWJ5LXZhbC13aXRoLXN0cmluZy1zbGlnaHRseS1wb2x5bW9ycGhpYyAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjg0
NTMrLTAuMDc5MCAgICAgICAgICAgIDIuODE2NystMC4wMzQxICAgICAgICAgIG1pZ2h0IGJlIDEu
MDEwMnggZmFzdGVyCiAgIHB1dC1ieS12YWwtd2l0aC1zdHJpbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDkuODc2NSstMS4wNDUyICAgICA/ICAgICAxMC40MjQwKy0wLjgzNTEgICAgICAg
ID8gbWlnaHQgYmUgMS4wNTU0eCBzbG93ZXIKICAgcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC1yZXBs
YWNlLWFuZC10cmFuc2l0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTEuMDQ1NSstMC45MzA1ICAgICA/ICAgICAxMS42OTE4Ky0wLjg2
NTggICAgICAgID8gbWlnaHQgYmUgMS4wNTg1eCBzbG93ZXIKICAgcHV0LWJ5LXZhbC13aXRoLXN5
bWJvbC1zbGlnaHRseS1wb2x5bW9ycGhpYyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjAzMjErLTAuMTY1OCAgICAgICAgICAgIDMuMDA0
NistMC4xMjI3ICAgICAgICAKICAgcHV0LWJ5LXZhbC13aXRoLXN5bWJvbCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOS44NjA3Ky0wLjg1ODEgICAgICAgICAgICA5LjY3NTgrLTAuMTg1MyAg
ICAgICAgICBtaWdodCBiZSAxLjAxOTF4IGZhc3RlcgogICByYXJlLW9zci1leGl0LW9uLWxvY2Fs
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjIwOTArLTAuMTQyMCAgICAgICAgICAgMTMu
MTcxMistMC40ODI4ICAgICAgICAKICAgcmF5dHJhY2Utd2l0aC1lbXB0eS10cnktY2F0Y2ggICAg
ICAgICAgICAgICAgICAgICAgNS4yMjk0Ky0wLjMwODcgICAgICAgICAgICA1LjIyNDQrLTAuMjQx
NiAgICAgICAgCiAgIHJheXRyYWNlLXdpdGgtdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDkuOTk1MCstMC40NTQxICAgICA/ICAgICAxMC4zMzkyKy0wLjI4NTggICAgICAgID8g
bWlnaHQgYmUgMS4wMzQ0eCBzbG93ZXIKICAgcmVnaXN0ZXItcHJlc3N1cmUtZnJvbS1vc3IgICAg
ICAgICAgICAgICAgICAgICAgICAxNi4zNzM1Ky0wLjg3ODUgICAgID8gICAgIDE2LjQ3NjMrLTEu
MDYzNiAgICAgICAgPwogICByZXBlYXQtbXVsdGktZ2V0LWJ5LW9mZnNldCAgICAgICAgICAgICAg
ICAgICAgICAgIDIyLjQ0OTArLTMuMTkwNCAgICAgICAgICAgMjEuOTMzNSstMy42NjYxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDIzNXggZmFzdGVyCiAgIHJpY2hhcmRzLWVtcHR5LXRyeS1jYXRjaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgNTYuNjI0MystMS4xNzkxICAgICAgICAgICA1NS4zODcz
Ky0wLjk2OTQgICAgICAgICAgbWlnaHQgYmUgMS4wMjIzeCBmYXN0ZXIKICAgcmljaGFyZHMtdHJ5
LWNhdGNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyNS44MDM2Ky01LjIzMzggICAg
ID8gICAgMjI3LjE0MDYrLTguNTM4MyAgICAgICAgPwogICBzZXR0ZXItcHJvdG90eXBlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjM2NTYrLTAuMTg4MiAgICAgPyAgICAgIDcu
Nzc2MystMS4wMjczICAgICAgICA/IG1pZ2h0IGJlIDEuMDU1OHggc2xvd2VyCiAgIHNldHRlciAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNDc1MystMS4yMzg3
ICAgICAgICAgICAgNS4wNDYxKy0wLjYyNjUgICAgICAgICAgbWlnaHQgYmUgMS4yODMyeCBmYXN0
ZXIKICAgc2ltcGxlLWFjdGl2YXRpb24tZGVtbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
NC4yNTk4Ky0zLjU1OTIgICAgICAgICAgIDIzLjEwODIrLTEuMTQ1MSAgICAgICAgICBtaWdodCBi
ZSAxLjA0OTh4IGZhc3RlcgogICBzaW1wbGUtZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEwLjA2NzcrLTAuMzMyMiAgICAgPyAgICAgMTAuMjc0NCstMC44MzQ0ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDIwNXggc2xvd2VyCiAgIHNpbXBsZS1wb2x5LWNhbGwtbmVzdGVk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMDU3NSstMC42NzE1ICAgICA/ICAgICAgOC4z
NzUxKy0wLjMwMDYgICAgICAgID8gbWlnaHQgYmUgMS4wMzk0eCBzbG93ZXIKICAgc2ltcGxlLXBv
bHktY2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4yMTU5Ky0wLjAyNzMg
ICAgID8gICAgICAxLjU3ODMrLTEuMTkyNSAgICAgICAgPyBtaWdodCBiZSAxLjI5ODF4IHNsb3dl
cgogICBzaW4tYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3
LjMwMTYrLTEuMDQ2MyAgICAgPyAgICAgMTguMDA3MistMC45MzU5ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDQwOHggc2xvd2VyCiAgIHNpbmdsZXRvbi1zY29wZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTcuMjQ1MCstMC45MjQyICAgICA/ICAgICA1OC4xMDAwKy0yLjE0NTIgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTQ5eCBzbG93ZXIKICAgc2luay1mdW5jdGlvbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4zMzI4Ky0xLjE4NTQgICAgICAgICAgICA5LjI5
MjMrLTEuMjY0OSAgICAgICAgCiAgIHNpbmstaHVnZS1hY3RpdmF0aW9uICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTYuMDQ1MistMS40MTExICAgICAgICAgICAxNC44NjgyKy0xLjU2OTIg
ICAgICAgICAgbWlnaHQgYmUgMS4wNzkyeCBmYXN0ZXIKICAgc2lua2FibGUtbmV3LW9iamVjdC1k
YWcgICAgICAgICAgICAgICAgICAgICAgICAgICA0OC4xNDAyKy0zLjI1NjkgICAgICAgICAgIDQ3
LjczODMrLTMuNDIzMyAgICAgICAgCiAgIHNpbmthYmxlLW5ldy1vYmplY3QtdGFrZW4gICAgICAg
ICAgICAgICAgICAgICAgICAgMzcuNjU4OSstMC44OTEzICAgICAgICAgICAzNy40OTM1Ky0wLjY0
NjAgICAgICAgIAogICBzaW5rYWJsZS1uZXctb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDI4LjAwNTMrLTAuMjY2OCAgICAgICAgICAgMjcuOTk3OCstMC4zMzIyICAgICAgICAK
ICAgc2xvdy1hcnJheS1wcm9maWxlLWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgMi40
MDQ0Ky0wLjAzMTMgICAgID8gICAgICAyLjUzNDMrLTAuMzExMiAgICAgICAgPyBtaWdodCBiZSAx
LjA1NDB4IHNsb3dlcgogICBzbG93LWNvbnZlcmdlbmNlICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjM2NDYrLTAuMTE1OSAgICAgICAgICAgIDIuMzU4MistMC4wMjg4ICAgICAg
ICAKICAgc2xvdy10ZXJuYXJpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
Ni44NDQ3Ky0wLjkxODAgICAgICAgICAgIDE2LjU1NDErLTAuNzU1NiAgICAgICAgICBtaWdodCBi
ZSAxLjAxNzZ4IGZhc3RlcgogICBzb3J0aW5nLWJlbmNobWFyayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE3LjAzODMrLTEuMzY4MCAgICAgPyAgICAgMTcuNTUyOCstMi40NzYwICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDMwMnggc2xvd2VyCiAgIHNwYXJzZS1jb25kaXRpb25hbCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMTEzNistMC4wMzIzICAgICA/ICAgICAgMS4x
NzkwKy0wLjEyMDMgICAgICAgID8gbWlnaHQgYmUgMS4wNTg3eCBzbG93ZXIKICAgc3BsaWNlLXRv
LXJlbW92ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMy4yMTk4Ky0xLjYyMzQg
ICAgICAgICAgIDEyLjQ3MDArLTEuMDgwNCAgICAgICAgICBtaWdodCBiZSAxLjA2MDF4IGZhc3Rl
cgogICBzdHJpbmctY2hhci1jb2RlLWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEy
LjU5ODArLTEuMTg5NyAgICAgPyAgICAgMTMuMTI1OSstMC41Njg3ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDQxOXggc2xvd2VyCiAgIHN0cmluZy1jb25jYXQtb2JqZWN0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuMTk2OCstMC4zODU5ICAgICAgICAgICAgMi4wMDgyKy0wLjMzODEgICAg
ICAgICAgbWlnaHQgYmUgMS4wOTM5eCBmYXN0ZXIKICAgc3RyaW5nLWNvbmNhdC1wYWlyLW9iamVj
dCAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wMzk4Ky0wLjA2MTEgICAgID8gICAgICAyLjA3
MDkrLTAuMjY2MiAgICAgICAgPyBtaWdodCBiZSAxLjAxNTN4IHNsb3dlcgogICBzdHJpbmctY29u
Y2F0LXBhaXItc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICA4LjkwNjUrLTAuNzgwNiAg
ICAgICAgICAgIDguODUwMystMS4zMDY1ICAgICAgICAKICAgc3RyaW5nLWNvbmNhdC1zaW1wbGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4yODYxKy0yLjAzODggICAgID8gICAgICA5
LjQwMTUrLTEuNDUyNCAgICAgICAgPyBtaWdodCBiZSAxLjAxMjR4IHNsb3dlcgogICBzdHJpbmct
Y29ucy1yZXBlYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjQ1MDUrLTAuNTMw
MSAgICAgICAgICAgIDYuMTcyMSstMC4xNTk0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ1MXggZmFz
dGVyCiAgIHN0cmluZy1jb25zLXRvd2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDYuNzE1MCstMC45ODQzICAgICAgICAgICAgNi41OTkwKy0wLjQ4MzEgICAgICAgICAgbWlnaHQg
YmUgMS4wMTc2eCBmYXN0ZXIKICAgc3RyaW5nLWVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxOS4zNTQwKy0yLjM5MjYgICAgICAgICAgIDE3LjY4NjMrLTIuMTc3MCAg
ICAgICAgICBtaWdodCBiZSAxLjA5NDN4IGZhc3RlcgogICBzdHJpbmctZ2V0LWJ5LXZhbC1iaWct
Y2hhciAgICAgICAgICAgICAgICAgICAgICAgICA2LjE3NzMrLTAuMTQ1OCAgICAgICAgICAgIDYu
MDQ5MSstMC4wNjQ3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIxMnggZmFzdGVyCiAgIHN0cmluZy1n
ZXQtYnktdmFsLW91dC1vZi1ib3VuZHMtaW5zYW5lICAgICAgICAgICAgIDMuMDQ1NSstMC4yMjIw
ICAgICAgICAgICAgMy4wMTg1Ky0wLjE5NzYgICAgICAgIAogICBzdHJpbmctZ2V0LWJ5LXZhbC1v
dXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICAzLjk3OTIrLTAuODMzOCAgICAgICAgICAg
IDMuODQ1MCstMC40NTg5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0OXggZmFzdGVyCiAgIHN0cmlu
Zy1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNjg4NSstMC4w
NTI2ICAgICA/ICAgICAgMi43MzY5Ky0wLjIzNzMgICAgICAgID8gbWlnaHQgYmUgMS4wMTgweCBz
bG93ZXIKICAgc3RyaW5nLWhhc2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMS43OTU4Ky0wLjAzMTUgICAgID8gICAgICAxLjgzNTUrLTAuMTUyMyAgICAgICAgPyBtaWdo
dCBiZSAxLjAyMjF4IHNsb3dlcgogICBzdHJpbmctbG9uZy1pZGVudC1lcXVhbGl0eSAgICAgICAg
ICAgICAgICAgICAgICAgIDE0LjQ5MzIrLTAuOTI4NyAgICAgICAgICAgMTQuNDM2MystMC44NDU5
ICAgICAgICAKICAgc3RyaW5nLW91dC1vZi1ib3VuZHMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxMC4yMzcwKy0xLjYzODYgICAgICAgICAgICA5LjQxOTgrLTAuMzQzNCAgICAgICAgICBt
aWdodCBiZSAxLjA4Njh4IGZhc3RlcgogICBzdHJpbmctcmVwZWF0LWFyaXRoICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDI2Ljk2NDIrLTEuNDMwOCAgICAgPyAgICAgMzAuMDkzNSstNi4w
NDQxICAgICAgICA/IG1pZ2h0IGJlIDEuMTE2MXggc2xvd2VyCiAgIHN0cmluZy1yb3BlLXdpdGgt
b2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuOTk4OCstMi4zMjQ4ICAgICA/ICAg
ICAyMC40MDQ1Ky0zLjEzMzAgICAgICAgID8gbWlnaHQgYmUgMS4wMjAzeCBzbG93ZXIKICAgc3Ry
aW5nLXN1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMy45NDc1Ky0w
LjA4NjYgICAgID8gICAgIDM1LjU1NTcrLTQuMDI2NyAgICAgICAgPyBtaWdodCBiZSAxLjA0NzR4
IHNsb3dlcgogICBzdHJpbmctdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjc1NjgrLTAuMDUwMiAgICAgICAgICAgIDIuNzI3MistMC4wODc3ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDEwOXggZmFzdGVyCiAgIHN0cmluZy12YXItZXF1YWxpdHkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjYuMzMzMystMS45MTQ5ICAgICAgICAgICAyNi4zMjM0Ky0xLjg4
NzkgICAgICAgIAogICBzdHJ1Y3R1cmUtaG9pc3Qtb3Zlci10cmFuc2l0aW9ucyAgICAgICAgICAg
ICAgICAgICAyLjI5NjkrLTAuMTA2OCAgICAgICAgICAgIDIuMjU2MistMC4xODczICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE4MXggZmFzdGVyCiAgIHN1YnN0cmluZy1jb25jYXQtd2VpcmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMzQuNTg2MistNC4xNTIwICAgICAgICAgICAzNC4zNDYyKy0y
LjY1MDAgICAgICAgIAogICBzdWJzdHJpbmctY29uY2F0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDM4Ljc0MTgrLTUuMzY1MSAgICAgICAgICAgMzYuNDI4MistMC4zMzY3ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDYzNXggZmFzdGVyCiAgIHN1YnN0cmluZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNDIuOTMyNCstMS4xOTgxICAgICAgICAgICA0Mi43NTY3
Ky0xLjA3MzYgICAgICAgIAogICBzd2l0Y2gtY2hhci1jb25zdGFudCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjYxNTUrLTAuMTUxMiAgICAgICAgICAgIDIuNTIzNystMC4wNzQ1ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDM2NHggZmFzdGVyCiAgIHN3aXRjaC1jaGFyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMzY2NCstMS4wNjcxICAgICA/ICAgICAgNS45
MTM0Ky0xLjY5NjMgICAgICAgID8gbWlnaHQgYmUgMS4xMDE5eCBzbG93ZXIKICAgc3dpdGNoLWNv
bnN0YW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNy41NTEwKy0wLjcwNzIg
ICAgICAgICAgICA2Ljk4OTArLTAuNjk1MSAgICAgICAgICBtaWdodCBiZSAxLjA4MDR4IGZhc3Rl
cgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLWJpZy12YXIgICAgICAgICAgICAgICAgICAgICAgIDE0
Ljg2MDIrLTIuMDg2MCAgICAgICAgICAgMTQuODQ1OSstMi4yNTQ3ICAgICAgICAKICAgc3dpdGNo
LXN0cmluZy1iYXNpYy1iaWcgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC42OTQ1Ky0xLjI5
OTAgICAgICAgICAgIDE0LjA5OTMrLTAuMDMyMCAgICAgICAgICBtaWdodCBiZSAxLjA0MjJ4IGZh
c3RlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljLXZhciAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEzLjQyNjUrLTEuMzM5NCAgICAgICAgICAgMTMuMTU3MistMC42MjUyICAgICAgICAgIG1pZ2h0
IGJlIDEuMDIwNXggZmFzdGVyCiAgIHN3aXRjaC1zdHJpbmctYmFzaWMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTMuMTg4MystMS4xMzYwICAgICAgICAgICAxMi41MDU0Ky0wLjg0NTQg
ICAgICAgICAgbWlnaHQgYmUgMS4wNTQ2eCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1iaWctbGVu
Z3RoLXRvd2VyLXZhciAgICAgICAgICAgICAgICAxOC41NTI5Ky0yLjI5ODAgICAgICAgICAgIDE3
LjYzMTQrLTEuMTYzMSAgICAgICAgICBtaWdodCBiZSAxLjA1MjN4IGZhc3RlcgogICBzd2l0Y2gt
c3RyaW5nLWxlbmd0aC10b3dlci12YXIgICAgICAgICAgICAgICAgICAgIDEyLjY0NDArLTAuMDg0
OCAgICAgPyAgICAgMTMuMjA4NistMS4zODc4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQ0N3ggc2xv
d2VyCiAgIHN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2VyICAgICAgICAgICAgICAgICAgICAgICAg
MTEuMzY1NystMC4xNzg1ICAgICA/ICAgICAxMS40NTAyKy0wLjI5ODcgICAgICAgID8KICAgc3dp
dGNoLXN0cmluZy1zaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS45MjE0Ky0x
LjI1MTIgICAgID8gICAgIDEyLjEwMDUrLTEuMDUwNyAgICAgICAgPyBtaWdodCBiZSAxLjAxNTB4
IHNsb3dlcgogICBzd2l0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEwLjQwNTArLTAuNzg4OSAgICAgPyAgICAgMTEuMDExMystMi4wODgxICAgICAgICA/IG1p
Z2h0IGJlIDEuMDU4M3ggc2xvd2VyCiAgIHRlYXItb2ZmLWFyZ3VtZW50cy1zaW1wbGUgICAgICAg
ICAgICAgICAgICAgICAgICAgIDMuMTYxNCstMC4zMjI1ICAgICA/ICAgICAgMy4yNDk1Ky0wLjMz
NTggICAgICAgID8gbWlnaHQgYmUgMS4wMjc5eCBzbG93ZXIKICAgdGVhci1vZmYtYXJndW1lbnRz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44ODA5Ky0wLjA2OTMgICAgID8gICAg
ICAzLjk1OTArLTAuMTg4NCAgICAgICAgPyBtaWdodCBiZSAxLjAyMDF4IHNsb3dlcgogICB0ZW1w
b3JhbC1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjE5MjcrLTAu
NDA3OCAgICAgPyAgICAgMTEuMjc1MCstMC4zODg2ICAgICAgICA/CiAgIHRvLWludDMyLWJvb2xl
YW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEuNjc0MistMC4xOTY5ICAgICA/
ICAgICAxMi4zNDQyKy0wLjcwMTggICAgICAgID8gbWlnaHQgYmUgMS4wNTc0eCBzbG93ZXIKICAg
dHJ5LWNhdGNoLWdldC1ieS12YWwtY2xvbmVkLWFyZ3VtZW50cyAgICAgICAgICAgICAgOC43NTkw
Ky0wLjI1OTkgICAgID8gICAgICA5LjE5NDErLTAuMzUwNiAgICAgICAgPyBtaWdodCBiZSAxLjA0
OTd4IHNsb3dlcgogICB0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1kaXJlY3QtYXJndW1lbnRzICAgICAg
ICAgICAgICAyLjE5ODQrLTAuMTE3OCAgICAgICAgICAgIDIuMTkzMistMC4xMDQ4ICAgICAgICAK
ICAgdHJ5LWNhdGNoLWdldC1ieS12YWwtc2NvcGVkLWFyZ3VtZW50cyAgICAgICAgICAgICAgNC42
NjA2Ky0xLjEzODEgICAgICAgICAgICA0LjM2ODgrLTAuMTE0MyAgICAgICAgICBtaWdodCBiZSAx
LjA2Njh4IGZhc3RlcgogICB0eXBlZC1hcnJheS1nZXQtc2V0LWJ5LXZhbC1wcm9maWxpbmcgICAg
ICAgICAgICAgIDI2LjU4MjIrLTEuNDYxNSAgICAgPyAgICAgMjcuMjc4MCstMS43MjMxICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDI2Mnggc2xvd2VyCiAgIHVuZGVmaW5lZC1wcm9wZXJ0eS1hY2Nlc3Mg
ICAgICAgICAgICAgICAgICAgICAgICAyMDcuMTAxNCstNy4wNTIwICAgICAgICAgIDIwNS42NjI5
Ky01LjA1NTEgICAgICAgIAogICB1bmRlZmluZWQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjg0ODgrLTAuMDI0OCAgICAgICAgICAgIDIuODM2NCstMC4wNDYxICAg
ICAgICAKICAgdW5wcm9maWxlZC1saWNtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOC41MzM4Ky0wLjMxMzIgICAgID8gICAgICA4LjY4MTkrLTAuNDg2OSAgICAgICAgPyBtaWdo
dCBiZSAxLjAxNzR4IHNsb3dlcgogICB2OC1yYXl0cmFjZS13aXRoLWVtcHR5LXRyeS1jYXRjaCAg
ICAgICAgICAgICAgICAgIDUzLjQzNjYrLTAuNDI5MyAgICAgICAgICAgNTMuMzk3MystMS44OTIw
ICAgICAgICAKICAgdjgtcmF5dHJhY2Utd2l0aC10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAg
ICAgICA2My4wMjY2Ky0yLjMyOTEgICAgID8gICAgIDYzLjA0OTYrLTEuMjc0MyAgICAgICAgPwog
ICB2YXJhcmdzLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjIx
NjUrLTEuMDU4OSAgICAgICAgICAgMTIuMzIyNCstMC4xMTMxICAgICAgICAgIG1pZ2h0IGJlIDEu
MDcyNnggZmFzdGVyCiAgIHZhcmFyZ3MtY29uc3RydWN0LWlubGluZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjEuMTk0OSstMS41OTUyICAgICAgICAgICAyMS4xMTE4Ky0xLjI2ODcgICAgICAg
IAogICB2YXJhcmdzLWNvbnN0cnVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIw
LjAyNDgrLTEuMTY3MCAgICAgPyAgICAgMjAuODA5NCstMS44MTA5ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDM5Mnggc2xvd2VyCiAgIHZhcmFyZ3MtaW5saW5lICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDguODI5NSstMS4yMzU5ICAgICAgICAgICAgOC40NTEyKy0wLjM1NzYgICAg
ICAgICAgbWlnaHQgYmUgMS4wNDQ4eCBmYXN0ZXIKICAgdmFyYXJncy1zdHJpY3QtbW9kZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4yMjUzKy0wLjk2MTggICAgICAgICAgICA5LjM4
NjgrLTAuMTUyNCAgICAgICAgICBtaWdodCBiZSAxLjA4OTN4IGZhc3RlcgogICB2YXJhcmdzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjY2MDYrLTEuMDExNSAg
ICAgICAgICAgIDkuMzM1NCstMC4wODY1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0OHggZmFzdGVy
CiAgIHdlaXJkLWlubGluaW5nLWNvbnN0LXByb3AgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
MTIyMystMC4xNTgyICAgICAgICAgICAgMi4wNDM2Ky0wLjEzOTEgICAgICAgICAgbWlnaHQgYmUg
MS4wMzg1eCBmYXN0ZXIKCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcuODMzNCstMC4wNjA5ICAgICAgICAgICAgNy43OTMxKy0wLjAzODQgICAg
ICAgICAgbWlnaHQgYmUgMS4wMDUyeCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9UICAgICAgICAgICAgICAgICAgIEhh
c0luc3RhbmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkFzbUJlbmNoOgog
ICBiaWdmaWIuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDI3Ljk2
MTgrLTguNDAxNyAgICAgPyAgICA0MzUuNjk1NSstMTIuODQwOSAgICAgICA/IG1pZ2h0IGJlIDEu
MDE4MXggc2xvd2VyCiAgIGNyYXkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzNzcuOTQwMSstOC43ODU5ICAgICAgICAgIDM3Mi43MjM4Ky02LjIzNTUgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTQweCBmYXN0ZXIKICAgZHJ5LmMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDQwMS42OTA4Ky0xNC45NDAzICAgICAgICAgNDAxLjMyNzYr
LTIwLjY2MTcgICAgICAgCiAgIEZsb2F0TU0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA2NjMuNzI5OCstMzIuODEyOSAgICAgICAgIDY2MC4xMTI1Ky0xNC41OTkzICAg
ICAgIAogICBnY2MtbG9vcHMuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
Mjk5LjUzNzgrLTM0LjM0MzMgICAgICAgIDMyNzMuNjQyMCstMTkuMzIzOCAgICAgICAKICAgbi1i
b2R5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc4Ni43MjQ3Ky0x
Ni45NDEyICAgID8gICAgNzk2LjA4MTIrLTE0LjEzMzMgICAgICAgPyBtaWdodCBiZSAxLjAxMTl4
IHNsb3dlcgogICBRdWlja3NvcnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMzkwLjIyMjgrLTYuMjgwNSAgICAgICAgICAzODguOTIxMystNi43ODUwICAgICAgICAKICAg
c3RlcGFub3ZfY29udGFpbmVyLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgMzQwNy41NzE0
Ky0yNS42OTAzICAgICAgICAzMzc3LjM5NzgrLTU3LjExNjMgICAgICAgCiAgIFRvd2Vycy5jICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMjcuMDg2NSstNS4yODg3ICAg
ICAgICAgIDIyNi40NjAxKy0xLjc3NjMgICAgICAgIAoKICAgPGdlb21ldHJpYz4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY4Ni4yOTc3Ky03LjY1ODUgICAgICAgICAgNjg1
LjI4MDcrLTUuOTg0MiAgICAgICAgICBtaWdodCBiZSAxLjAwMTV4IGZhc3RlcgoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUT1QgICAg
ICAgICAgICAgICAgICAgSGFzSW5zdGFuY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKQ29tcHJlc3Npb25CZW5jaDoKICAgaHVmZm1hbiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1NC43NTA0Ky0wLjcxMTQgICAgID8gICAgIDU0LjgyODUrLTEu
MzA4MCAgICAgICAgPwogICBhcml0aG1ldGljLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMjYwLjcxNTgrLTMuNTQyNCAgICAgPyAgICAyNjEuNDU5MSstOC41NTAxICAgICAg
ICA/CiAgIGFyaXRobWV0aWMtcHJlY2lzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
MzQuMjY1MSstMC40Nzg0ICAgICA/ICAgIDIzNy42MTk5Ky02LjExNDIgICAgICAgID8gbWlnaHQg
YmUgMS4wMTQzeCBzbG93ZXIKICAgYXJpdGhtZXRpYy1jb21wbGV4LXByZWNpc2UgICAgICAgICAg
ICAgICAgICAgICAgIDIzOS4wNzA5Ky04LjQzODUgICAgICAgICAgMjM4LjMzMTcrLTYuOTU3OCAg
ICAgICAgCiAgIGFyaXRobWV0aWMtcHJlY2lzZS1vcmRlci0wICAgICAgICAgICAgICAgICAgICAg
ICAyNzEuMjAwNCstOC4zMjg2ICAgICAgICAgIDI3MC40MTQ5Ky0zLjI0MjUgICAgICAgIAogICBh
cml0aG1ldGljLXByZWNpc2Utb3JkZXItMSAgICAgICAgICAgICAgICAgICAgICAgMjkwLjk5MzAr
LTkuMzMwMSAgICAgICAgICAyODkuODI1OCstNS4xNzQzICAgICAgICAKICAgYXJpdGhtZXRpYy1w
cmVjaXNlLW9yZGVyLTIgICAgICAgICAgICAgICAgICAgICAgIDM0Mi4wMzMzKy02LjQ0NTggICAg
ID8gICAgMzQ1LjA2OTArLTIzLjgyMzcgICAgICAgPwogICBhcml0aG1ldGljLXNpbXBsZS1vcmRl
ci0xICAgICAgICAgICAgICAgICAgICAgICAgMzA2LjQ4MDUrLTYuMzUyNyAgICAgPyAgICAzMDku
NTM5NystOS44MDI2ICAgICAgICA/CiAgIGFyaXRobWV0aWMtc2ltcGxlLW9yZGVyLTIgICAgICAg
ICAgICAgICAgICAgICAgICAzNjMuNTY2NSstMTUuMjA2NiAgICA/ICAgIDM2NS45ODEyKy0xMS43
OTUxICAgICAgID8KICAgbHotc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMxOS4xNTAzKy00LjU3MTMgICAgICAgICAgMzE4Ljk3NjcrLTI3LjEwNTYgICAgICAg
CgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQ0
LjYwMzMrLTEuMjEzMiAgICAgPyAgICAyNDUuMzg2MistMy41MzgyICAgICAgICA/IG1pZ2h0IGJl
IDEuMDAzMnggc2xvd2VyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRPVCAgICAgICAgICAgICAgICAgICBIYXNJbnN0YW5jZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApHZW9tZWFuIG9mIHByZWZlcnJlZCBtZWFu
czoKICAgPHNjYWxlZC1yZXN1bHQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
Ny45NTIxKy0wLjEzODMgICAgID8gICAgIDQ3Ljk5MDgrLTAuMzcwNiAgICAgICAgPyBtaWdodCBi
ZSAxLjAwMDh4IHNsb3dlcgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267069</attachid>
            <date>2015-12-09 20:21:35 -0800</date>
            <delta_ts>2015-12-10 17:21:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151839-20151209202104.patch</filename>
            <type>text/plain</type>
            <size>118528</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MjA2MWIwYTQyNzZkOGNiYWIwYTJkZGVmYWQ3MDJlMjgwMTA2NmY0Li5iOTVkNzZjODA3ZDllYmU5
YmZkZjEwZjkyNzk5OGVlY2EyMDRjMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjIgQEAKKzIwMTUtMTItMDkgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5jZSwgdW5mb3J0dW5hdGVseSBp
biBvcmRlciB0byBwcmV2ZW50CisgICAgICAgIHJlZ3Jlc3Npb25zIHNldmVyYWwgbmV3IGJ5dGVj
b2RlcyBhbmQgREZHIElSIG5vZGVzIHdlcmUgbmVjZXNzYXJ5LiBCZWZvcmUsIFN5bWJvbC5oYXNJ
bnN0YW5jZQorICAgICAgICB3aGVuIGV4ZWN1dGluZyBhbiBpbnN0YW5jZW9mIGV4cHJlc3Npb24g
d2Ugd291bGQgZW1pdCB0aHJlZSBieXRlY29kZXM6IG92ZXJyaWRlc19oYXNfaW5zdGFuY2UsIGdl
dF9ieV9pZCwKKyAgICAgICAgdGhlbiBpbnN0YW5jZW9mLiBBcyB0aGUgc3BlYyBoYXMgY2hhbmdl
ZCwgd2UgZW1pdCBhIG1vcmUgY29tcGxpY2F0ZWQgc2V0IG9mIGJ5dGVjb2RlcyBpbiBhZGRpdGlv
biB0byBzb21lCisgICAgICAgIG5ldyBvbmVzLiBGaXJzdCB0aGUgcm9sZSBvZiBvdmVycmlkZXNf
aGFzX2luc3RhbmNlIGFuZCBpdHMgY29ycmVzcG9uZGluZyBERkcgbm9kZSBoYXZlIGNoYW5nZWQu
IE5vdyBpdCByZXR1cm5zCisgICAgICAgIGEganMtYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIg
dGhlIFJIUyBvZiB0aGUgaW5zdGFuY2VvZiBleHByZXNzaW9uIChmcm9tIGhlcmUgb24gY2FsbGVk
IHRoZSBjb25zdHJ1Y3RvciBmb3Igc2ltcGxpY2l0eSkKKyAgICAgICAgbmVlZHMgbm9uLWRlZmF1
bHQgYmVoYXZpb3IgZm9yIHJlc29sdmluZyB0aGUgZXhwcmVzc2lvbi4gaS5lLiBUaGUgY29uc3Ry
dWN0b3IgaGFzIGEgU3ltYm9sLmhhc0luc3RhbmNlIHRoYXQgZGlmZmVycyBmcm9tIHRoZSBvbmUg
b24KKyAgICAgICAgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0gb3IgaXMg
YSBib3VuZC9DLUFQSSBmdW5jdGlvbi4gT25jZSB3ZSBnZXQgdG8gdGhlIERGRyB0aGlzIG5vZGUg
aXMgZ2VuZXJhbGx5IGVsaW1pbmF0ZWQgYXMKKyAgICAgICAgd2UgY2FuIHByb3ZlIHRoZSB2YWx1
ZSBvZiBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgYSBjb25zdGFudC4gVGhlIHNlY29uZCBuZXcgYnl0
ZWNvZGUgaXMgaW5zdGFuY2VvZl9jdXN0b20uIGluc250YW5jZW9mX2N1c3RvbSwganVzdAorICAg
ICAgICBlbWl0cyBhIGNhbGwgdG8gc2xvdyBwYXRoIGNvZGUgdGhhdCBjb21wdXRlcyB0aGUgcmVz
dWx0LgorCisgICAgICAgIEluIHRoZSBERkcsIHRoZXJlIGlzIGFsc28gYSBuZXcgbm9kZSwgQ2hl
Y2tUeXBlSW5mb0ZsYWdzLCB3aGljaCBjaGVja3MgdGhlIHR5cGUgaW5mbyBmbGFncyBhcmUgY29u
c2lzdGVudCB3aXRoIHRoZSBvbmVzIHByb3ZpZGVkIGFuZAorICAgICAgICBPU1IgZXhpdHMgaWYg
dGhlIGZsYWdzIGFyZSBub3QuIEFkZGl0aW9uYWxseSwgd2UgYXR0ZW1wdCB0byBwcm92ZSB0aGF0
IHRoZSByZXN1bHQgb2YgQ2hlY2tIYXNWYWx1ZSB3aWxsIGJlIGEgY29uc3RhbnQgYW5kIHRyYW5z
Zm9ybQorICAgICAgICBpdCBpbnRvIGEgQ2hlY2tUeXBlSW5mb0ZsYWdzIGZvbGxvd2VkIGJ5IGEg
SlNDb25zdGFudC4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAg
ICogYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanM6CisgICAgICAgIChzeW1ib2xIYXNJbnN0
YW5jZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6aXNCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6CisgICAgICAg
IChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpjb21w
dXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2su
Y3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAgICAgICog
Ynl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2luZFRvU3RyaW5nKToK
KyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1ByZWNp
c2VKdW1wVGFyZ2V0cy5jcHA6CisgICAgICAgIChKU0M6OmdldEp1bXBUYXJnZXRzRm9yQnl0ZWNv
ZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0T3ZlcnJpZGVz
SGFzSW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEluc3Rh
bmNlT2ZDdXN0b20pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNr
SGFzSW5zdGFuY2UpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAg
ICAgICAoSlNDOjpJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAg
ICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBo
YXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3BwOgorICAg
ICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHSGVhcExvY2F0aW9u
Lmg6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNDZWxsT3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzVHlwZUluZm9PcGVy
YW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjp0eXBlSW5mb09wZXJhbmQpOgorICAgICAg
ICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
Q2hlY2tUeXBlSW5mb0ZsYWdzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUluc3RhbmNlT2ZDdXN0b20pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoK
KyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja1R5cGVJbmZvRmxh
Z3MpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVJbnN0
YW5jZU9mQ3VzdG9tKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlQ2hlY2tIYXNJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChK
U0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoK
KyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVy
YXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfaW5zdGFuY2VvZik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9m
X2N1c3RvbSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZik6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20pOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVkLgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9pbnN0YW5jZW9mKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3Vz
dG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mX2N1c3RvbSk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5jZSk6IERl
bGV0ZWQuCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9M
TEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhf
REVDTCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
OgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6
OmludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIpOgorICAgICAgICAoSlND
OjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZk5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOgor
ICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZmhhc0luc3RhbmNlVmFsdWVO
b3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlSW52YWxpZElu
c3RhbmNlb2ZQYXJhbWV0ZXJFcnJvck5vdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
SW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcmhhc0luc3RhbmNlVmFsdWVOb3RGdW5jdGlv
bik6CisgICAgICAgIChKU0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlv
blByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiBydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3Bw
OgorICAgICAgICAoSlNDOjppc0JvdW5kRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpoYXNJbnN0
YW5jZUJvdW5kRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6Omhhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJpdmF0ZUZ1bmNJbnN0
YW5jZU9mKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGlt
ZS9KU1R5cGVJbmZvLmg6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpUeXBlSW5mbyk6CisgICAg
ICAgIChKU0M6OlR5cGVJbmZvOjpvdmVycmlkZXNIYXNJbnN0YW5jZSk6CisgICAgICAgICogcnVu
dGltZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTxVbmtu
b3duPjo6c2xvdCk6CisgICAgICAgICogdGVzdHMvZXM2LnlhbWw6CisgICAgICAgICogdGVzdHMv
c3RyZXNzL2luc3RhbmNlb2YtY3VzdG9tLWhhc2luc3RhbmNlc3ltYm9sLmpzOiBBZGRlZC4KKyAg
ICAgICAgKENvbnN0cnVjdG9yKToKKyAgICAgICAgKHZhbHVlKToKKyAgICAgICAgKGluc3RhbmNl
T2YpOgorICAgICAgICAoYm9keSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3N5bWJvbC1oYXNJ
bnN0YW5jZS5qczogQWRkZWQuCisgICAgICAgIChDb25zdHJ1Y3Rvcik6CisgICAgICAgICh2YWx1
ZSk6CisgICAgICAgIChPYmplY3RDbGFzcy5TeW1ib2wuaGFzSW5zdGFuY2UpOgorICAgICAgICAo
TnVtYmVyQ2xhc3MuU3ltYm9sLmhhc0luc3RhbmNlKToKKwogMjAxNS0xMi0wOSAgU2FhbSBiYXJh
dGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgZ2VuZXJhdG9ycycgZmVh
dHVyZXMuanNvbiB0byBpbmRpY2F0ZSB0aGF0IHdlIGhhdmUgYSBzcGVjIGNvbXBsaWFudCBpbXBs
ZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
aAppbmRleCBhMWE3N2ZkODhhZDNhM2E5YzJiNWRmNzk4Yzc3MTdhNTA0MmNlMWFjLi4yYjQ3MzRk
YjQ0N2VhOTE0NzVmYTM4NmIzMGM5YjA3YzU4N2RkMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByb3RlY3Rl
ZDoKIAogcHVibGljOgogICAgIHR5cGVkZWYgUGFyZW50IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBQcm9oaWJp
dHNQcm9wZXJ0eUNhY2hpbmcgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNl
cHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSW1w
bGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzIHwgVHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhOworICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgUHJv
aGliaXRzUHJvcGVydHlDYWNoaW5nIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8
IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlRmxhZyB8IE92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMgfCBUeXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERhdGE7CiAKICAg
ICB+SlNDYWxsYmFja09iamVjdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanMKaW5kZXggMWFhMDI0MjJiMTgwNGVlZmMwMzZm
NTVjYTFlMjVlYTdmYzEzMGYyZC4uMzY0YmM0MzI4ODI1ODQzMWUwYjZiNmJkMTIzMzY2MTliZGFj
MDUyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9u
UHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlv
blByb3RvdHlwZS5qcwpAQCAtMzYsMyArMzYsMTggQEAgZnVuY3Rpb24gYXBwbHkodGhpc1ZhbHVl
LCBhcmd1bWVudFZhbHVlcykKIAogICAgIHJldHVybiB0aGlzLkBhcHBseSh0aGlzVmFsdWUsIGFy
Z3VtZW50VmFsdWVzKTsKIH0KKworLy8gRklYTUU6IHRoaXMgc2hvdWxkIGhhdmUgYSBkaWZmZXJl
bnQgbmFtZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM2Mwor
ZnVuY3Rpb24gc3ltYm9sSGFzSW5zdGFuY2UodmFsdWUpCit7CisgICAgInVzZSBzdHJpY3QiOwor
CisgICAgaWYgKHR5cGVvZiB0aGlzICE9PSAiZnVuY3Rpb24iKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoQGlzQm91bmRGdW5jdGlvbih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBo
YXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24odGhpcywgdmFsdWUpOworCisgICAgbGV0IHRhcmdldCA9
IHRoaXMucHJvdG90eXBlOworICAgIHJldHVybiBAaW5zdGFuY2VPZih2YWx1ZSwgdGFyZ2V0KTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJh
c2ljQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFz
aWNCbG9jay5jcHAKaW5kZXggNTk2MDY0YzQwNjgyNDk3ODA4OWM0NjQzZjFjM2RmYmQwNTM0Yjk5
Zi4uZjMyOWQwYjBmODkyZGNlMGIwMzhlZjFlM2VjOWIwM2Y0MmNlZWM3MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAK
QEAgLTU4LDcgKzU4LDYgQEAgc3RhdGljIGJvb2wgaXNCcmFuY2goT3Bjb2RlSUQgb3Bjb2RlSUQp
CiAgICAgY2FzZSBvcF9zd2l0Y2hfaW1tOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAg
Y2FzZSBvcF9zd2l0Y2hfc3RyaW5nOgotICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgog
ICAgIGNhc2Ugb3Bfc2F2ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNv
biBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgppbmRl
eCBiY2NhYjA0Y2Q5ZmI4MGM3NDAyMDc1MTQwNGM0OTMyNjE4MzdhZGNkLi4wNTNiOGRjOWI4NjRm
MWI4NmI0Y2VjN2FhNjAxZjdjZTJmMDNmMmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC00NSw4ICs0NSw5IEBACiAgICAgICAg
ICAgICB7ICJuYW1lIiA6ICJvcF9iaXRhbmQiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX2JpdHhvciIsICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfYml0b3IiLCAibGVuZ3RoIiA6IDUgfSwKLSAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX2NoZWNrX2hhc19pbnN0YW5jZSIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAgICAg
eyAibmFtZSIgOiAib3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSIsICJsZW5ndGgiIDogNCB9LAog
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW5zdGFuY2VvZiIsICJsZW5ndGgiIDogNCB9LAor
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW5zdGFuY2VvZl9jdXN0b20iLCAibGVuZ3RoIiA6
IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3R5cGVvZiIsICJsZW5ndGgiIDogMyB9
LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaXNfdW5kZWZpbmVkIiwgImxlbmd0aCIgOiAz
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pc19ib29sZWFuIiwgImxlbmd0aCIgOiAz
IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5o
CmluZGV4IGQ4Y2NjNjdkODQ2OGY0MTZkYWUxYzk0MGIwZjcxNGMyYTJlOWNhNzkuLjllZGE5Mzcy
NDhjODk1N2ViMTgzZDEyNDEyZDJmOGYzZGQ1YTQ1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC0xNjksNyArMTY5LDYgQEAgdm9p
ZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbDoK
ICAgICBjYXNlIG9wX2luOgogICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjoKLSAgICBjYXNlIG9wX2No
ZWNrX2hhc19pbnN0YW5jZToKICAgICBjYXNlIG9wX2FkZDoKICAgICBjYXNlIG9wX211bDoKICAg
ICBjYXNlIG9wX2RpdjoKQEAgLTE5NSw2ICsxOTQsOCBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0
ZWNvZGVPZmZzZXQoCiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bj
b2RlSUQsIGluc3RydWN0aW9uWzNdLnUub3BlcmFuZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CisgICAgY2FzZSBvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgorICAgIGNhc2Ugb3BfaW5zdGFu
Y2VvZl9jdXN0b206CiAgICAgY2FzZSBvcF9oYXNfc3RydWN0dXJlX3Byb3BlcnR5OgogICAgIGNh
c2Ugb3BfY29uc3RydWN0X3ZhcmFyZ3M6CiAgICAgY2FzZSBvcF9jYWxsX3ZhcmFyZ3M6CkBAIC0z
NTAsOCArMzUxLDkgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9j
ayogY29kZUJsb2NrLCBCeXRlY29kZUJhc2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX2NvbnN0
cnVjdDoKICAgICBjYXNlIG9wX2dldF9ieV9pZDoKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5n
dGg6Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CisgICAgY2FzZSBvcF9vdmVycmlk
ZXNfaGFzX2luc3RhbmNlOgogICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjoKKyAgICBjYXNlIG9wX2lu
c3RhbmNlb2ZfY3VzdG9tOgogICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbDoKICAgICBjYXNlIG9wX3R5
cGVvZjoKICAgICBjYXNlIG9wX2lzX3VuZGVmaW5lZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggYTJmMzI2YmYxZGNhMmMyZTA5ODY4ZmY5M2Iw
M2U1MmIzY2ExYWI3Zi4uN2JhZjkzYzlkOTRmYWY4Yjc5M2ZjOGYzNjc4MjdiZDBhOTZkYzcwMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTEw
MTMsMTMgKzEwMTMsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAg
ICAgICsraXQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIG9w
X2NoZWNrX2hhc19pbnN0YW5jZTogeworICAgICAgICBjYXNlIG9wX292ZXJyaWRlc19oYXNfaW5z
dGFuY2U6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAo
KytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3Bl
cmFuZDsKLSAgICAgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9u
LCBpdCwgImNoZWNrX2hhc19pbnN0YW5jZSIpOwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMs
ICVzLCAlcywgJWQoLT4lZCkiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1l
KHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsg
b2Zmc2V0KTsKKyAgICAgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0
aW9uLCBpdCwgIm92ZXJyaWRlc19oYXNfaW5zdGFuY2UiKTsKKyAgICAgICAgICAgIG91dC5wcmlu
dGYoIiVzLCAlcywgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIx
KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewpAQCAtMTAzMCw2ICsxMDI5
LDE1IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBvdXQucHJp
bnRmKCIlcywgJXMsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShy
MSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOiB7CisgICAgICAg
ICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCByMSA9ICgr
K2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7
CisgICAgICAgICAgICBpbnQgcjMgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIHBy
aW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImluc3RhbmNlb2ZfY3Vz
dG9tIik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzLCAlcyIsIHJlZ2lzdGVy
TmFtZShyMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIy
KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMykuZGF0YSgpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdW5zaWduZWQ6IHsKICAgICAgICAgICAgIHByaW50
VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInVuc2lnbmVkIik7CiAgICAgICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0
S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCmlu
ZGV4IDI1MjQzMDBmNzMzNzY5ZWQ5YmUwMDFkNzY2MGYzNjg1OWI2ZDg5MDYuLjMwYzVlNjQxYTc5
NjY2ODJkY2JiNzcwNDJmNTMwYWYzNDI1MTMxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRLaW5kLmNwcApAQCAtNTAsNiArNTAsOCBAQCBjb25zdCBjaGFyKiBleGl0
S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtpbmQpCiAgICAgICAgIHJldHVybiAiQmFkQ29uc3RhbnRD
YWNoZSI7CiAgICAgY2FzZSBCYWRJbmRleGluZ1R5cGU6CiAgICAgICAgIHJldHVybiAiQmFkSW5k
ZXhpbmdUeXBlIjsKKyAgICBjYXNlIEJhZFR5cGVJbmZvRmxhZ3M6CisgICAgICAgIHJldHVybiAi
QmFkVHlwZUluZm9GbGFncyI7CiAgICAgY2FzZSBPdmVyZmxvdzoKICAgICAgICAgcmV0dXJuICJP
dmVyZmxvdyI7CiAgICAgY2FzZSBOZWdhdGl2ZVplcm86CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9FeGl0S2luZC5oCmluZGV4IDZmOGM1MTIwMDcwMDUwNWJmOTFkZWY3NDkwMDNlMzAw
NWUzZjcxODYuLjcwMGQzODgxZjQxNzI4MjFhZjg5N2VjY2Q1ZTllYThmNzUzNTE0ODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCkBAIC0zNyw2ICszNyw3IEBA
IGVudW0gRXhpdEtpbmQgOiB1aW50OF90IHsKICAgICBCYWRDYWNoZSwgLy8gV2UgZXhpdGVkIGJl
Y2F1c2UgYW4gaW5saW5lIGNhY2hlIHdhcyB3cm9uZy4KICAgICBCYWRDb25zdGFudENhY2hlLCAv
LyBXZSBleGl0ZWQgYmVjYXVzZSBhIGNhY2hlIG9uIGEgd2VhayBjb25zdGFudCAodXN1YWxseSBh
IHByb3RvdHlwZSkgd2FzIHdyb25nLgogICAgIEJhZEluZGV4aW5nVHlwZSwgLy8gV2UgZXhpdGVk
IGJlY2F1c2UgYW4gaW5kZXhpbmcgdHlwZSB3YXMgd3JvbmcuCisgICAgQmFkVHlwZUluZm9GbGFn
cywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBh
Ym91dCB3aGF0IFR5cGVJbmZvIGZsYWdzIHdlIHdvdWxkIHNlZS4KICAgICBPdmVyZmxvdywgLy8g
V2UgZXhpdGVkIGJlY2F1c2Ugb2Ygb3ZlcmZsb3cuCiAgICAgTmVnYXRpdmVaZXJvLCAvLyBXZSBl
eGl0ZWQgYmVjYXVzZSB3ZSBlbmNvdW50ZXJlZCBuZWdhdGl2ZSB6ZXJvLgogICAgIEludDUyT3Zl
cmZsb3csIC8vIFdlIGV4aXRlZCBiZWNhdXNlIG9mIGFuIEludDUyIG92ZXJmbG93LgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNw
cAppbmRleCAyYmJmMzEzNDQ1NmE5YWU1MmE2MTkyOGJjNGFlMDcxMzVlYTYxZTNjLi5lMmNiMDAw
NDgzNzk0YmE5MmQ1MTBkY2Y1ZmE5OTQ4ODVhMjNkYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcApAQCAtNzQsOSAr
NzQsNiBAQCBzdGF0aWMgdm9pZCBnZXRKdW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVC
bG9jayogY29kZUJsb2NrLCBJbnRlcnByZXRlciogaQogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVj
b2RlT2Zmc2V0ICsgY3VycmVudFsyXS51Lm9wZXJhbmQpOwogICAgICAgICBicmVhazsKICAgICB9
Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6Ci0gICAgICAgIG91dC5hcHBlbmQoYnl0
ZWNvZGVPZmZzZXQgKyBjdXJyZW50WzRdLnUub3BlcmFuZCk7Ci0gICAgICAgIGJyZWFrOwogICAg
IGNhc2Ugb3BfbG9vcF9oaW50OgogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0KTsK
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDRhNGY2MzM4NzBkYTUzNzAwZDU0
NGE1NzY5NTNkZWQyMzBkMzM4OTIuLmRjOWIzNzBjMGU0MjljZDE4MThkNmIzMWI0ZjFhOWUzZGVi
MGFmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0yMDk5LDE0ICsyMDk5LDEzIEBAIHZvaWQgQnl0
ZWNvZGVHZW5lcmF0b3I6OmNyZWF0ZVZhcmlhYmxlKAogICAgIH0KIH0KIAotdm9pZCBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdENoZWNrSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3Rl
cklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCogYmFzZSwgTGFiZWwqIHRhcmdldCkKK1JlZ2lzdGVySUQq
IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0T3ZlcnJpZGVzSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1
ZSkKIHsKLSAgICBzaXplX3QgYmVnaW4gPSBpbnN0cnVjdGlvbnMoKS5zaXplKCk7Ci0gICAgZW1p
dE9wY29kZShvcF9jaGVja19oYXNfaW5zdGFuY2UpOworICAgIGVtaXRPcGNvZGUob3Bfb3ZlcnJp
ZGVzX2hhc19pbnN0YW5jZSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgo
KSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHZhbHVlLT5pbmRleCgpKTsKLSAgICBpbnN0
cnVjdGlvbnMoKS5hcHBlbmQoYmFzZS0+aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKHRhcmdldC0+YmluZChiZWdpbiwgaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7CisgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKGNvbnN0cnVjdG9yLT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoaGFzSW5zdGFuY2VWYWx1ZS0+aW5kZXgoKSk7CisgICAgcmV0dXJuIGRzdDsK
IH0KIAogLy8gSW5kaWNhdGVzIHRoZSBsZWFzdCB1cHBlciBib3VuZCBvZiByZXNvbHZlIHR5cGUg
YmFzZWQgb24gbG9jYWwgc2NvcGUuIFRoZSBieXRlY29kZSBsaW5rZXIKQEAgLTIyNzMsNiArMjI3
MiwxNiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEluc3RhbmNlT2YoUmVn
aXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZQogICAgIHJldHVybiBkc3Q7CiB9CiAKK1Jl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SW5zdGFuY2VPZkN1c3RvbShSZWdpc3Rl
cklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVn
aXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1ZSkKK3sKKyAgICBlbWl0T3Bjb2RlKG9wX2luc3RhbmNl
b2ZfY3VzdG9tKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKKyAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodmFsdWUtPmluZGV4KCkpOworICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChjb25zdHJ1Y3Rvci0+aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKGhhc0luc3RhbmNlVmFsdWUtPmluZGV4KCkpOworICAgIHJldHVybiBkc3Q7Cit9CisKIFJl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0QnlJZChSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5KQogewogICAgIG1f
Y29kZUJsb2NrLT5hZGRQcm9wZXJ0eUFjY2Vzc0luc3RydWN0aW9uKGluc3RydWN0aW9ucygpLnNp
emUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXggYWNjNzJjZmNiZTU1YmZmMGU2MWJiMWJlNjM0NjIxNGFm
OGEyOTk2NS4uMDBiNGZkZTM3N2FkYTIyOGIxZjExZTA3OThjNTJlMzhmYzc5OGVlOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaApAQCAtNTM0LDggKzUzNCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0SW5jKFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXREZWMoUmVnaXN0ZXJJRCogc3JjRHN0KTsKIAotICAgICAgICB2b2lkIGVtaXRDaGVja0hh
c0luc3RhbmNlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQq
IGJhc2UsIExhYmVsKiB0YXJnZXQpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0T3ZlcnJpZGVz
SGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVn
aXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbnN0
YW5jZU9mKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQqIGJh
c2VQcm90b3R5cGUpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW5zdGFuY2VPZkN1c3RvbShS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBjb25zdHJ1Y3Rv
ciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRUeXBlT2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRV
bmFyeU9wKG9wX3R5cGVvZiwgZHN0LCBzcmMpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJ
bihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiBiYXNl
KSB7IHJldHVybiBlbWl0QmluYXJ5T3Aob3BfaW4sIGRzdCwgcHJvcGVydHksIGJhc2UsIE9wZXJh
bmRUeXBlcygpKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggYWRkOTc5YzU0NzgwMmI0MDIwZGViYjY4MjI0ZTMy
YzIyMDE1MmY3My4uNDc5NGIzYzk0ZDkxMGRiMjZjYjMxMDljY2FhYmJkNDlkOTY3YTg0MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcApAQCAtMTY1OSwyMiArMTY1OSw0OSBAQCBSZWdpc3RlcklEKiBUaHJvd2FibGVCaW5hcnlP
cE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogCiBS
ZWdpc3RlcklEKiBJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
c3JjMSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2V4cHIxLCBtX3JpZ2h0
SGFzQXNzaWdubWVudHMsIG1fZXhwcjItPmlzUHVyZShnZW5lcmF0b3IpKTsKLSAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gc3JjMiA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIyKTsKKyAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gaGFzSW5zdGFuY2VWYWx1ZSA9IGdlbmVyYXRvci5uZXdUZW1wb3Jhcnko
KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaXNPYmplY3QgPSBnZW5lcmF0b3IubmV3VGVtcG9y
YXJ5KCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGlzQ3VzdG9tID0gZ2VuZXJhdG9yLm5ld1Rl
bXBvcmFyeSgpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm90b3R5cGUgPSBnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGRzdFJlZyA9IGdlbmVyYXRv
ci5maW5hbERlc3RpbmF0aW9uKGRzdCwgc3JjMS5nZXQoKSk7Ci0gICAgUmVmUHRyPExhYmVsPiB0
YXJnZXQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFs
dWUgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9leHByMSwgbV9yaWdodEhh
c0Fzc2lnbm1lbnRzLCBtX2V4cHIyLT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IGNvbnN0cnVjdG9yID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcjIpOworICAg
IFJlZlB0cjxSZWdpc3RlcklEPiBkc3RSZWcgPSBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihk
c3QsIHZhbHVlLmdldCgpKTsKKyAgICBSZWZQdHI8TGFiZWw+IGN1c3RvbSA9IGdlbmVyYXRvci5u
ZXdMYWJlbCgpOworICAgIFJlZlB0cjxMYWJlbD4gZG9uZSA9IGdlbmVyYXRvci5uZXdMYWJlbCgp
OworICAgIFJlZlB0cjxMYWJlbD4gdHlwZUVycm9yID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CiAK
ICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwg
ZGl2b3RFbmQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRDaGVja0hhc0luc3RhbmNlKGRzdFJlZy5n
ZXQoKSwgc3JjMS5nZXQoKSwgc3JjMi5nZXQoKSwgdGFyZ2V0LmdldCgpKTsKKyAgICBnZW5lcmF0
b3IuZW1pdElzT2JqZWN0KGlzT2JqZWN0LmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSk7CisgICAg
Z2VuZXJhdG9yLmVtaXRKdW1wSWZGYWxzZShpc09iamVjdC5nZXQoKSwgdHlwZUVycm9yLmdldCgp
KTsKIAogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFy
dCgpLCBkaXZvdEVuZCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQocHJvdG90eXBlLmdl
dCgpLCBzcmMyLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBl
KTsKKyAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoaGFzSW5zdGFuY2VWYWx1ZS5nZXQoKSwgY29u
c3RydWN0b3IuZ2V0KCksIGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5j
ZVN5bWJvbCk7CiAKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRp
dm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgUmVnaXN0ZXJJRCogcmVzdWx0ID0gZ2VuZXJh
dG9yLmVtaXRJbnN0YW5jZU9mKGRzdFJlZy5nZXQoKSwgc3JjMS5nZXQoKSwgcHJvdG90eXBlLmdl
dCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHRhcmdldC5nZXQoKSk7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKKyAgICBnZW5lcmF0b3IuZW1pdE92ZXJyaWRlc0hhc0luc3RhbmNlKGlzQ3VzdG9t
LmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSwgaGFzSW5zdGFuY2VWYWx1ZS5nZXQoKSk7CisKKyAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2
b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZUcnVlKGlzQ3VzdG9tLmdldCgpLCBj
dXN0b20uZ2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgp
LCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChw
cm90b3R5cGUuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlKTsKKworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8o
ZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdElu
c3RhbmNlT2YoZHN0UmVnLmdldCgpLCB2YWx1ZS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKKwor
ICAgIGdlbmVyYXRvci5lbWl0SnVtcChkb25lLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0
TGFiZWwodHlwZUVycm9yLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFRocm93VHlwZUVycm9y
KCJSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0Iik7CisKKyAg
ICBnZW5lcmF0b3IuZW1pdExhYmVsKGN1c3RvbS5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1p
dEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAg
Z2VuZXJhdG9yLmVtaXRJbnN0YW5jZU9mQ3VzdG9tKGRzdFJlZy5nZXQoKSwgdmFsdWUuZ2V0KCks
IGNvbnN0cnVjdG9yLmdldCgpLCBoYXNJbnN0YW5jZVZhbHVlLmdldCgpKTsKKworICAgIGdlbmVy
YXRvci5lbWl0TGFiZWwoZG9uZS5nZXQoKSk7CisKKyAgICByZXR1cm4gZHN0UmVnLmdldCgpOwog
fQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9naWNhbE9wTm9kZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggZGM1N2ZkYmYx
NzFlMjU3NDQyYWVjZGVkYTM1YjhjYjJiNzc4NjRmNS4uNmE2MDY0NzA1Y2IzMjZlZDYzMTYzODM5
OWMwMjdlZTI0ZTUwZDJlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjQ0OCwxMiArMjQ0OCwx
NyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgotICAg
ICAgICAvLyBTYWRseSwgd2UgZG9uJ3QgcHJvcGFnYXRlIHRoZSBmYWN0IHRoYXQgd2UndmUgZG9u
ZSBDaGVja0hhc0luc3RhbmNlCisgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKKyAgICAg
ICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAKICAgICBjYXNlIEluc3RhbmNlT2Y6Ci0gICAgICAgIC8vIEFnYWluLCBzYWRs
eSwgd2UgZG9uJ3QgcHJvcGFnYXRlIHRoZSBmYWN0IHRoYXQgd2UndmUgZG9uZSBJbnN0YW5jZU9m
CisgICAgICAgIC8vIFNhZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZhY3QgdGhhdCB3ZSd2
ZSBkb25lIEluc3RhbmNlT2YKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNCb29s
ZWFuKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAg
ICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CiAg
ICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjQm9vbGVhbik7CiAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCkBAIC0yNTEwLDYgKzI1MTUsNyBAQCBib29sIEFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVy
TGltaQogICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9v
cDoKICAgICBjYXNlIENoZWNrVGllclVwQXRSZXR1cm46CisgICAgY2FzZSBDaGVja1R5cGVJbmZv
RmxhZ3M6CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDb3B5UmVzdDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMDBlOTFhNDI4
YjYxNWFiODhkMGI5ODRiYmUzZWE2MmQzZWI0NTUyMy4uNjkxZDUxNzMyNDNiZDdhZDAyYjUzMzU5
YjAzYjhlZTlkM2VlYjIwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKQEAgLTM0OTcsOSArMzQ5NywxNSBAQCBib29sIEJ5dGVDb2RlUGFy
c2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUo
b3BfY2hlY2tfdGR6KTsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2lu
c3RhbmNlOgotICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0hhc0luc3RhbmNlLCBnZXQoVmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7Ci0gICAgICAg
ICAgICBORVhUX09QQ09ERShvcF9jaGVja19oYXNfaW5zdGFuY2UpOworICAgICAgICBjYXNlIG9w
X292ZXJyaWRlc19oYXNfaW5zdGFuY2U6IHsKKyAgICAgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1
bHRIYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uID0gbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxv
Y2stPmdsb2JhbE9iamVjdEZvcihjdXJyZW50Q29kZU9yaWdpbigpKS0+ZnVuY3Rpb25Qcm90b0hh
c0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKTsKKworICAgICAgICAgICAgTm9kZSogY29uc3RydWN0
b3IgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
KTsKKyAgICAgICAgICAgIE5vZGUqIGhhc0luc3RhbmNlVmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lz
dGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKworICAgICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9H
cmFwaChPdmVycmlkZXNIYXNJbnN0YW5jZSwgT3BJbmZvKG1fZ3JhcGguZnJlZXplKGRlZmF1bHRI
YXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKSksIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVZhbHVl
KSk7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlKTsK
KyAgICAgICAgfQogCiAgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewogICAgICAgICAgICAg
Tm9kZSogdmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQpKTsKQEAgLTM1MDcsNyArMzUxMywxNSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFwaChJbnN0YW5jZU9m
LCB2YWx1ZSwgcHJvdG90eXBlKSk7CiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9pbnN0YW5j
ZW9mKTsKICAgICAgICAgfQotICAgICAgICAgICAgCisKKyAgICAgICAgY2FzZSBvcF9pbnN0YW5j
ZW9mX2N1c3RvbTogeworICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lz
dGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUq
IGNvbnN0cnVjdG9yID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVZhbHVlID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKSk7CisgICAgICAg
ICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQp
LCBhZGRUb0dyYXBoKEluc3RhbmNlT2ZDdXN0b20sIHZhbHVlLCBjb25zdHJ1Y3RvciwgaGFzSW5z
dGFuY2VWYWx1ZSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZl9jdXN0
b20pOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBvcF9pc191bmRlZmluZWQ6IHsKICAgICAg
ICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKSk7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKElzVW5kZWZpbmVkLCB2YWx1
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmlu
ZGV4IGJiNWIxZDExNWQ1YTdkMTc1M2NjMjc5Nzc3YTU5MGRhNTg5ZGU5MjUuLmI1YjJiZWVmODBm
MzAwMzg4NTIxODhmYWE1NTIwM2JmMDMyNDEwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTEyOCw4ICsxMjgsOSBAQCBDYXBhYmlsaXR5
TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3BfcHJvZmlsZV90eXBlOgogICAgIGNhc2Ugb3BfcHJv
ZmlsZV9jb250cm9sX2Zsb3c6CiAgICAgY2FzZSBvcF9tb3Y6Ci0gICAgY2FzZSBvcF9jaGVja19o
YXNfaW5zdGFuY2U6CisgICAgY2FzZSBvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgogICAgIGNh
c2Ugb3BfaW5zdGFuY2VvZjoKKyAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOgogICAgIGNh
c2Ugb3BfaXNfdW5kZWZpbmVkOgogICAgIGNhc2Ugb3BfaXNfYm9vbGVhbjoKICAgICBjYXNlIG9w
X2lzX251bWJlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5k
ZXggMjlmZTUwYzE3MTM1NjEzOWZiYzJiY2ZjOWIzN2I1ODYxMTQ0ZDlhYS4uZTgzYmIwODFlNDg5
NTMwMjk3YTY4ZDVhZTcyMGFiNWY2NTc3OTQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKQEAgLTcyNyw5ICs3MjcsMTQgQEAgdm9pZCBjbG9iYmVyaXplKEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdy
aXRlRnUKICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICByZXR1cm47
CiAKLSAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxh
Z3M6CiAgICAgICAgIHJlYWQoSlNDZWxsX3R5cGVJbmZvRmxhZ3MpOwotICAgICAgICBkZWYoSGVh
cExvY2F0aW9uKENoZWNrSGFzSW5zdGFuY2VMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2Rl
LT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihD
aGVja1R5cGVJbmZvRmxhZ3NMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEo
KSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FzZSBPdmVycmlk
ZXNIYXNJbnN0YW5jZToKKyAgICAgICAgcmVhZChKU0NlbGxfdHlwZUluZm9GbGFncyk7CisgICAg
ICAgIGRlZihIZWFwTG9jYXRpb24oT3ZlcnJpZGVzSGFzSW5zdGFuY2VMb2MsIEpTQ2VsbF90eXBl
SW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0
dXJuOwogCiAgICAgY2FzZSBJbnN0YW5jZU9mOgpAQCAtNzM3LDYgKzc0MiwxMSBAQCB2b2lkIGNs
b2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVh
ZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEluc3RhbmNlT2ZMb2Ms
IEpTQ2VsbF9zdHJ1Y3R1cmVJRCwgbm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6
eU5vZGUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0
b206CisgICAgICAgIHJlYWQoV29ybGQpOworICAgICAgICB3cml0ZShIZWFwKTsKKyAgICAgICAg
cmV0dXJuOworCiAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CiAgICAgICAgIHdyaXRlKEpTQ2VsbF9z
dHJ1Y3R1cmVJRCk7CiAgICAgICAgIHdyaXRlKEpTQ2VsbF90eXBlSW5mb1R5cGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDE2Zjk3M2QwOTYzMTYxMjZiNGEy
YWJmZjY2ZTViYzZiN2U0NGI5ZmQuLmYwOTk0ODM5NGRjZGEzZTM2ZjczYzkyZjNiZjExNmE2NmM5
MDBhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTE0MSw4
ICsxNDEsOSBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJvZmls
ZUNvbnRyb2xGbG93OgotICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKKyAgICBjYXNlIE92ZXJy
aWRlc0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICBjYXNlIEluc3RhbmNl
T2ZDdXN0b206CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVhbjoKICAg
ICBjYXNlIElzTnVtYmVyOgpAQCAtMTgwLDYgKzE4MSw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6CiAgICAgY2FzZSBDb25z
dGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CisgICAgY2FzZSBDaGVja1R5cGVJ
bmZvRmxhZ3M6CiAgICAgY2FzZSBNdWx0aUdldEJ5T2Zmc2V0OgogICAgIGNhc2UgVmFsdWVSZXA6
CiAgICAgY2FzZSBEb3VibGVSZXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAppbmRleCBiZTRlMGVjNDk3NGY0MDcwNGE5YmY1N2JkYzYxN2Y4YmE0YjExNzgz
Li4zMTg5ODdiMjE2MWNkMzFjMDQ0MGZlNWQ2ZWVhMWRmNThkOGI2NDk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTExMDAsMTAgKzExMDAsMjkg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8RnVuY3Rpb25Vc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBPdmVy
cmlkZXNIYXNJbnN0YW5jZTogeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLm5vZGUo
KS0+aXNDZWxsQ29uc3RhbnQoKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDIo
KS5ub2RlKCktPmFzQ2VsbCgpICE9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYyktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkpIHsK
KworICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmNvbnZlcnRUb0NvbnN0YW50KG5vZGUsIGpz
Qm9vbGVhbih0cnVlKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGlmICghbV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5v
cmlnaW4uc2VtYW50aWMsIEJhZFR5cGVJbmZvRmxhZ3MpKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIEhlcmUgd2Ugb3B0aW1pc3RpY2FsbHkgYXNzdW1lIHRoYXQgd2Ugd2lsbCBub3Qgc2VlIGFu
IGJvdW5kL0MtQVBJIGZ1bmN0aW9uIGhlcmUuCisgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNOb25lLCBDaGVja1R5cGVJbmZv
RmxhZ3MsIG5vZGUtPm9yaWdpbiwgT3BJbmZvKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2Up
LCBFZGdlKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgQ2VsbFVzZSkpOworICAgICAgICAgICAgICAg
ICAgICBtX2dyYXBoLmNvbnZlcnRUb0NvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihmYWxzZSkpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIENo
ZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKLSAgICAgICAgY2FzZSBDaGVj
a0hhc0luc3RhbmNlOgogICAgICAgICBjYXNlIENyZWF0ZVRoaXM6CiAgICAgICAgIGNhc2UgR2V0
QnV0dGVyZmx5OgogICAgICAgICBjYXNlIEdldEJ1dHRlcmZseVJlYWRPbmx5OiB7CkBAIC0xMTY0
LDcgKzExODMsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9k
ZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgICAg
IAorCisgICAgICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKKyAgICAgICAgICAgIGZpeEVkZ2U8
Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAg
Y2FzZSBJbjogewogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhdCBzb21lIHBvaW50
IGhhdmUgYXJyYXkgcHJvZmlsaW5nIG9uIG9wX2luLCBpbiB3aGljaAogICAgICAgICAgICAgLy8g
Y2FzZSB3ZSB3b3VsZCBiZSBhYmxlIHRvIHR1cm4gdGhpcyBpbnRvIGEga2luZCBvZiBHZXRCeVZh
bC4KQEAgLTE0MTAsNiArMTQzMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgTm90aWZ5V3Jp
dGU6CiAgICAgICAgIGNhc2UgVmFySW5qZWN0aW9uV2F0Y2hwb2ludDoKICAgICAgICAgY2FzZSBD
YWxsOgorICAgICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKICAgICAgICAgY2FzZSBUYWls
Q2FsbElubGluZWRDYWxsZXI6CiAgICAgICAgIGNhc2UgQ29uc3RydWN0OgogICAgICAgICBjYXNl
IENhbGxWYXJhcmdzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdI
ZWFwTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRp
b24uY3BwCmluZGV4IDY5MjM2NTYzOTYxMWZlYWY3M2Y0ZTg2MTU4YTAwMWIzNmQxMzUyN2IuLjU1
ZDg0Y2Y1NjVhMTI2MmEzZTE3OTIyZGQ4ZmJkMjY4ZmU4OTdmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKQEAgLTk1LDkgKzk1LDEzIEBAIHZv
aWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBMb2NhdGlvbktpbmQga2luZCkKICAg
ICBjYXNlIEJ1dHRlcmZseVJlYWRPbmx5TG9jOgogICAgICAgICBvdXQucHJpbnQoIkJ1dHRlcmZs
eVJlYWRPbmx5TG9jIik7CiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgY2FzZSBDaGVj
a0hhc0luc3RhbmNlTG9jOgotICAgICAgICBvdXQucHJpbnQoIkNoZWNrSGFzSW5zdGFuY2VMb2Mi
KTsKKworICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzTG9jOgorICAgICAgICBvdXQucHJpbnQo
IkNoZWNrVHlwZUluZm9GbGFnc0xvYyIpOworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIE92
ZXJyaWRlc0hhc0luc3RhbmNlTG9jOgorICAgICAgICBvdXQucHJpbnQoIk92ZXJyaWRlc0hhc0lu
c3RhbmNlTG9jIik7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgY2FzZSBDbG9zdXJl
VmFyaWFibGVMb2M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hl
YXBMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24u
aAppbmRleCA0OTVkMzAwM2NlYTZjMWM1N2M1MDJkZTRjMWVmNGUxMTVhYmJlMGIwLi5iODVmYTI2
MDQ5MWQ0ZDMxOTIxYTRjYzZjNzBhMmM4ZDJiZTRlODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKQEAgLTQwLDcgKzQwLDggQEAgZW51bSBMb2NhdGlv
bktpbmQgewogICAgIEFycmF5TGVuZ3RoTG9jLAogICAgIEJ1dHRlcmZseUxvYywKICAgICBCdXR0
ZXJmbHlSZWFkT25seUxvYywKLSAgICBDaGVja0hhc0luc3RhbmNlTG9jLAorICAgIENoZWNrVHlw
ZUluZm9GbGFnc0xvYywKKyAgICBPdmVycmlkZXNIYXNJbnN0YW5jZUxvYywKICAgICBDbG9zdXJl
VmFyaWFibGVMb2MsCiAgICAgRGlyZWN0QXJndW1lbnRzTG9jLAogICAgIEdldHRlckxvYywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggZjk2YTdlZmY4ZjY2ZGM4ZmQxMmJiNTVj
NjJjM2Q1ZTM1YTQ4NjVjMS4uZmQ5ODY1OGE4MmMzNTJhOGI1YTg3NTI3M2RmNWJhNWFjMDQxMTE5
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTEzNTQsNiArMTM1NCw3IEBA
IHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewogICAgICAgICBj
YXNlIENoZWNrQ2VsbDoKKyAgICAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAgICAg
ICAgY2FzZSBOZXdGdW5jdGlvbjoKICAgICAgICAgY2FzZSBOZXdBcnJvd0Z1bmN0aW9uOgogICAg
ICAgICBjYXNlIENyZWF0ZUFjdGl2YXRpb246CkBAIC0xNDE1LDYgKzE0MTYsMTcgQEAgc3RydWN0
IE5vZGUgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxVbmlxdWVkU3RyaW5nSW1w
bCo+KG1fb3BJbmZvKTsKICAgICB9CiAKKyAgICBib29sIGhhc1R5cGVJbmZvT3BlcmFuZCgpCisg
ICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDaGVja1R5cGVJbmZvRmxhZ3M7CisgICAgfQor
CisgICAgdW5zaWduZWQgdHlwZUluZm9PcGVyYW5kKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCho
YXNUeXBlSW5mb09wZXJhbmQoKSAmJiBtX29wSW5mbyA8PSBVQ0hBUl9NQVgpOworICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fb3BJbmZvKTsKKyAgICB9CisKICAgICBib29s
IGhhc1RyYW5zaXRpb24oKQogICAgIHsKICAgICAgICAgc3dpdGNoIChvcCgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggMDA4ZDhjNzMyODMyYTMzYjgxZTJk
NjM4N2QzYTFkMmFkNGM2MzQzNS4uYjY5NWZlYmEyNmVhYzc1YmZiYWZkZDBmMWE2Yzc4ZDExYzVk
YjIxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMjIxLDYg
KzIyMSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhDaGVj
a0JhZENlbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja0luQm91bmRzLCBO
b2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tJZGVudCwgTm9kZU11c3RHZW5lcmF0
ZSkgXAorICAgIG1hY3JvKENoZWNrVHlwZUluZm9GbGFncywgTm9kZU11c3RHZW5lcmF0ZSkgLyog
VGFrZXMgYW4gT3BJbmZvIHdpdGggdGhlIGZsYWdzIHlvdSB3YW50IHRvIHRlc3QgYXJlIHNldCAq
L1wKICAgICBcCiAgICAgLyogT3B0aW1pemF0aW9ucyBmb3IgYXJyYXkgbXV0YXRpb24uICovXAog
ICAgIG1hY3JvKEFycmF5UHVzaCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXApA
QCAtMjc4LDggKzI3OSw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBt
YWNybyhCcmVha3BvaW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHJvZmlsZVdp
bGxDYWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHJvZmlsZURpZENhbGwsIE5v
ZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhDaGVja0hhc0luc3RhbmNlLCBOb2RlTXVzdEdl
bmVyYXRlKSBcCisgICAgbWFjcm8oT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIE5vZGVNdXN0R2VuZXJh
dGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEluc3RhbmNlT2YsIE5vZGVSZXN1
bHRCb29sZWFuKSBcCisgICAgbWFjcm8oSW5zdGFuY2VPZkN1c3RvbSwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNVbmRlZmluZWQsIE5vZGVSZXN1
bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNCb29sZWFuLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAog
ICAgIG1hY3JvKElzTnVtYmVyLCBOb2RlUmVzdWx0Qm9vbGVhbikgXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAppbmRleCBhMzRkNDQ2NDBkYzA5ZWNjNTFlNzI3N2VmMjRhNGUzZGEzZTgwOTM5Li40NTBm
NjY4MjY0NmJiMDk3YWIxNDZlMmJkMGRmZTcxZGVkMDZkNjllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcApAQCAtNDAyLDcgKzQwMiw5IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ29tcGFyZUdy
ZWF0ZXJFcToKICAgICAgICAgY2FzZSBDb21wYXJlRXE6CiAgICAgICAgIGNhc2UgQ29tcGFyZVN0
cmljdEVxOgorICAgICAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgICAgICBjYXNl
IEluc3RhbmNlT2Y6CisgICAgICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKICAgICAgICAgY2Fz
ZSBJc1VuZGVmaW5lZDoKICAgICAgICAgY2FzZSBJc0Jvb2xlYW46CiAgICAgICAgIGNhc2UgSXNO
dW1iZXI6CkBAIC01NjksNiArNTcxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVB
c0ludDMyOgogICAgICAgICBjYXNlIEdldExvY2FsVW5saW5rZWQ6CiAgICAgICAgIGNhc2UgQ2hl
Y2tBcnJheToKKyAgICAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAgIGNhc2Ug
QXJyYXlpZnk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKICAgICAgICAgY2Fz
ZSBDaGVja1RpZXJVcEluTG9vcDoKQEAgLTY4MCw3ICs2ODMsNiBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgICAg
ICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKLSAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNl
OgogICAgICAgICBjYXNlIFRocm93UmVmZXJlbmNlRXJyb3I6CiAgICAgICAgIGNhc2UgRm9yY2VP
U1JFeGl0OgogICAgICAgICBjYXNlIFNldEFyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA2MTZjM2IwODIyMjE5Y2IxZDBhMmVkMzA1
MmRmNDVjMDE5YmU4YTQ2Li41ZDg5YmZiZWE3ZjgxZjZjZGRjOGJjZmJmMTc3M2Q0NWFhNGUwZjJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAt
MjQxLDggKzI0MSwxMCBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0
YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoK
ICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgotICAg
IGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKKyAg
ICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICBj
YXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElz
Qm9vbGVhbjoKICAgICBjYXNlIElzTnVtYmVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA0YjQwZTY3MDczMTlhOWU2MWFkMWZmZDRh
YjdjNTI5OTU3NGE3NzcxLi5mMzJhNjE0ODc0MTg4YjZiYmEyMmQwYTUzYjFjMGEyMWJmNGVkNGU4
IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cApAQCAtMjczOCw2ICsyNzM4LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0
YW5jZU9mRm9yT2JqZWN0KE5vZGUqLCBHUFJSZWcgdmFsdWVSZWcsIEdQUlJlZyBwCiAgICAgcHV0
UmVzdWx0LmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrVHlwZUluZm9GbGFncyhOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNl
LmdwcigpOworCisgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlSW5mb0ZsYWdzLCBKU1ZhbHVl
UmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkp
LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG5vZGUtPnR5cGVJbmZvT3BlcmFuZCgpKSkp
OworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVJbnN0YW5jZU9mKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBVbnR5cGVkVXNlKSB7CkBAIC0yOTUwLDYgKzI5NjEsNDggQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuOwogfQogCit2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZkN1c3RvbShOb2RlKiBub2RlKQor
eworICAgIC8vIFdlIGNvdWxkIGRvIHNvbWV0aGluZyBzbWFydGVyIGhlcmUgYnV0IHRoaXMgY2Fz
ZSBpcyBjdXJyZW50bHkgc3VwZXIgcmFyZSBhbmQgdW5sZXNzCisgICAgLy8gU3ltYm9sLmhhc0lu
c3RhbmNlIGJlY29tZXMgcG9wdWxhciB3aWxsIGxpa2VseSByZW1haW4gdGhhdCB3YXkuCisKKyAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQgY29uc3RydWN0b3IodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIEpT
VmFsdWVPcGVyYW5kIGhhc0luc3RhbmNlVmFsdWUodGhpcywgbm9kZS0+Y2hpbGQzKCkpOworCisg
ICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKyAgICBHUFJS
ZWcgY29uc3RydWN0b3JHUFIgPSBjb25zdHJ1Y3Rvci5ncHIoKTsKKyAgICBKU1ZhbHVlUmVncyBo
YXNJbnN0YW5jZVJlZ3MgPSBoYXNJbnN0YW5jZVZhbHVlLmpzVmFsdWVSZWdzKCk7CisKKyNpZiBD
UFUoWDg2KQorICAgIC8vIE5vdGUgdGhhdCB3ZSBpbnRlbnRpb25hbGx5IGNsb2JiZXIgdGhlIGhh
c0luc3RhbmNlVmFsdWUgcmVnaXN0ZXIgaGVyZSBvbiB4ODYgYmVjYXVzZSB3ZQorICAgIC8vIGFy
ZSBzaG9ydCBvbiByZWdpc3RlcnMuIFRoaXMgaXMgdmFsaWQgYmVjYXVzZSB3ZSBrbm93IEluc3Rh
bmNlT2ZDdXN0b20gaXMgdGhlIGxhc3QgdXNlCisgICAgLy8gb2YgdGhlIEdldEJ5SWQgd2hpY2gg
cHJvZHVjZXMgaXQuCisgICAgUkVMRUFTRV9BU1NFUlQoY2FuUmV1c2Uobm9kZS0+Y2hpbGQzKCkp
KTsKKyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7CisKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93Q2FzZSA9IG1f
aml0Lmp1bXAoKTsKKworICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAorICAgICAgICBzbG93UGF0
aENhbGwoc2xvd0Nhc2UsIHRoaXMsIG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIGhhc0luc3Rh
bmNlUmVncywgdmFsdWVSZWdzLCBjb25zdHJ1Y3RvckdQUiwgaGFzSW5zdGFuY2VSZWdzKSk7Cisg
ICAgbV9qaXQubW92ZShoYXNJbnN0YW5jZVJlZ3MucGF5bG9hZEdQUigpLCByZXN1bHRHUFIpOwor
CisgICAgdW5ibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOworI2Vsc2UKKwor
ICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICBKU1ZhbHVlUmVncyBy
ZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNs
b3dDYXNlID0gbV9qaXQuanVtcCgpOworCisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCisgICAg
ICAgIHNsb3dQYXRoQ2FsbChzbG93Q2FzZSwgdGhpcywgb3BlcmF0aW9uSW5zdGFuY2VPZkN1c3Rv
bSwgcmVzdWx0UmVncywgdmFsdWVSZWdzLCBjb25zdHJ1Y3RvckdQUiwgaGFzSW5zdGFuY2VSZWdz
KSk7CisKKyAgICB1bmJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3VsdFJlZ3MucGF5bG9hZEdQUigp
LCBub2RlKTsKKyNlbmRpZgorfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhB
ZGQoTm9kZSogbm9kZSkKIHsKICAgICBzd2l0Y2ggKG5vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDkz
OWFjYTFjODFkZWVjMzM3ZDc0Y2FiZmM0MGZiODg3MGMwN2M2OWIuLmIxYmIxMjA5ZGNhMWQyM2Uw
Y2E0NzMwZmM5ODRjNTBjYmM5MTk2ZTQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTcyNyw2ICs3MjcsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdm9pZCBjb21waWxlSW5zdGFuY2VPZkZvck9iamVjdChOb2RlKiwgR1BSUmVnIHZhbHVlUmVn
LCBHUFJSZWcgcHJvdG90eXBlUmVnLCBHUFJSZWcgc2NyYXRjaEFuZFJlc3VsdFJlZywgR1BSUmVn
IHNjcmF0Y2gyUmVnKTsKICAgICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mKE5vZGUqKTsKKyAgICB2
b2lkIGNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKE5vZGUqKTsKICAgICAKICAgICB2b2lkIGVtaXRD
YWxsKE5vZGUqKTsKICAgICAKQEAgLTE0NDMsNiArMTQ0NCwxNSBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BS
KCksIGFyZzEucGF5bG9hZEdQUigpLCBhcmcyLnBheWxvYWRHUFIoKSk7CiAgICAgfQorICAgIEpJ
VENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRp
b24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMp
CisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
YXJnMiwgYXJnMyk7CisgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlv
biwgcmVzdWx0KTsKKyAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihK
X0pJVE9wZXJhdGlvbl9FSk9KIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgSlNWYWx1ZVJlZ3Mg
YXJnMSwgR1BSUmVnIGFyZzIsIEpTVmFsdWVSZWdzIGFyZzMpCisgICAgeworICAgICAgICByZXR1
cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdCwgYXJnMS5wYXlsb2FkR1BSKCksIGFy
ZzIsIGFyZzMucGF5bG9hZEdQUigpKTsKKyAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FQ0Mgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBH
UFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CkBAIC0xNzY2LDYgKzE3NzYsMTYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbihvcGVyYXRpb24sIHJlc3VsdC50YWdH
UFIoKSwgcmVzdWx0LnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMS5wYXlsb2FkR1BS
KCksIGFyZzIudGFnR1BSKCksIGFyZzIucGF5bG9hZEdQUigpKTsKICAgICB9CiAKKyAgICBKSVRD
b21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9u
LCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcs
IEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczVGFnLCBHUFJSZWcg
YXJnM1BheWxvYWQpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzIsIEVB
QklfMzJCSVRfRFVNTVlfQVJHIGFyZzNQYXlsb2FkLCBhcmczVGFnKTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcp
OworICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0
aW9uX0VKT0ogb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEs
IEdQUlJlZyBhcmcyLCBKU1ZhbHVlUmVncyBhcmczKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uLCByZXN1bHQudGFnR1BSKCksIHJlc3VsdC5wYXlsb2FkR1BS
KCksIGFyZzEudGFnR1BSKCksIGFyZzEucGF5bG9hZEdQUigpLCBhcmcyLCBhcmczLnRhZ0dQUigp
LCBhcmczLnBheWxvYWRHUFIoKSk7CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FQ0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFn
LCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBHUFJS
ZWcgYXJnMlBheWxvYWQpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMSwgYXJnMlBheWxvYWQsIGFyZzJUYWcpOwpAQCAtMjIwNCw2ICsyMjI0LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBjb21waWxlR2V0QXJyYXlMZW5ndGgoTm9kZSopOwogCisg
ICAgdm9pZCBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBp
bGVDaGVja0lkZW50KE5vZGUqKTsKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2Rl
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAppbmRleCAzYjcxOTdkNTMxYjZiMzk2ZTY1OTY1MDM2MDA2MjMzNDQwNzQ5YWFm
Li5mMTkwMjk1ZjQyOTRlY2M0MjQyNDYyMjc3OGMwYjkzMGFjOTdiODE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAg
LTQxNTksMTcgKzQxNTksNDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6
IHsKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczogeworICAgICAgICBjb21waWxlQ2hlY2tU
eXBlSW5mb0ZsYWdzKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIE92
ZXJyaWRlc0hhc0luc3RhbmNlOiB7CisKKyAgICAgICAgTm9kZSogaGFzSW5zdGFuY2VWYWx1ZU5v
ZGUgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCk7CisgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRI
YXNJbnN0YW5jZUZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihub2RlLT5jZWxsT3BlcmFu
ZCgpLT52YWx1ZSgpKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3REZWZhdWx0
aGFzSW5zdGFuY2VWYWx1ZTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgaGFzSW5zdGFu
Y2VWYWx1ZU5vdENlbGw7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlKHRoaXMpOwor
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBoYXNJbnN0YW5jZVZhbHVlKHRoaXMsIG5vZGUtPmNoaWxk
MigpKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKIAotICAgICAgICAvLyBT
cGVjdWxhdGUgdGhhdCBiYXNlICdJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlJy4KLSAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQu
YnJhbmNoVGVzdDgoCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6WmVybywgCi0gICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlLmdwcigpLCBKU0NlbGw6OnR5cGVJbmZv
RmxhZ3NPZmZzZXQoKSksIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOworICAgICAgICBHUFJSZWcgcmVzdWx0
R1BSID0gcmVzdWx0LmdwcigpOwogCi0gICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICAv
LyBJZiB3ZSBoYXZlIHByb3ZlbiB0aGF0IHRoZSBjb25zdHJ1Y3RvcidzIFN5bWJvbC5oYXNJbnN0
YW5jZSB3aWxsIGFsd2F5cyBiZSB0aGUgb25lIG9uCisgICAgICAgIC8vIEZ1bmN0aW9uLnByb3Rv
dHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdIHRoZW4gd2UgZG9uJ3QgbmVlZCBhIHJ1bnRpbWUgY2hl
Y2sgaGVyZS4gV2UgZG9uJ3Qgd29ycnkKKyAgICAgICAgLy8gYWJvdXQgdGhlIGNhc2Ugd2hlcmUg
dGhlIGNvbnN0cnVjdG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIGlzIGEgY29uc3RhbnQgYnV0IGlz
IG5vdCB0aGUgZGVmYXVsdAorICAgICAgICAvLyBvbmUgYXMgZml4dXAgc2hvdWxkIGhhdmUgY29u
dmVydGVkIHRoaXMgY2hlY2sgdG8gdHJ1ZS4KKyAgICAgICAgQVNTRVJUKCFoYXNJbnN0YW5jZVZh
bHVlTm9kZS0+aXNDZWxsQ29uc3RhbnQoKSB8fCBkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9
PSBoYXNJbnN0YW5jZVZhbHVlTm9kZS0+YXNDZWxsKCkpOworICAgICAgICBpZiAoIWhhc0luc3Rh
bmNlVmFsdWVOb2RlLT5pc0NlbGxDb25zdGFudCgpKSB7CisKKyAgICAgICAgICAgIEpTVmFsdWVS
ZWdzIGhhc0luc3RhbmNlVmFsdWVSZWdzID0gaGFzSW5zdGFuY2VWYWx1ZS5qc1ZhbHVlUmVncygp
OworICAgICAgICAgICAgaGFzSW5zdGFuY2VWYWx1ZU5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5v
dENlbGwoaGFzSW5zdGFuY2VWYWx1ZVJlZ3MpOworICAgICAgICAgICAgbm90RGVmYXVsdGhhc0lu
c3RhbmNlVmFsdWUgPSBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBo
YXNJbnN0YW5jZVZhbHVlUmVncy5wYXlsb2FkR1BSKCksIFRydXN0ZWRJbW1QdHIoZGVmYXVsdEhh
c0luc3RhbmNlRnVuY3Rpb24pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoYXQg
Y29uc3RydWN0b3IgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgorICAgICAgICBtX2pp
dC50ZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFz
ZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCByZXN1bHRHUFIpOwor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOworCisgICAg
ICAgIGlmICghaGFzSW5zdGFuY2VWYWx1ZU5vZGUtPmlzQ2VsbENvbnN0YW50KCkpIHsKKyAgICAg
ICAgICAgIGhhc0luc3RhbmNlVmFsdWVOb3RDZWxsLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAg
IG5vdERlZmF1bHRoYXNJbnN0YW5jZVZhbHVlLmxpbmsoJm1faml0KTsKKyAgICAgICAgICAgIG1v
dmVUcnVlVG8ocmVzdWx0R1BSKTsKKyAgICAgICAgfQorCisgICAgICAgIGRvbmUubGluaygmbV9q
aXQpOworICAgICAgICBib29sZWFuUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIApAQCAtNDE3OCw2ICs0MjA5LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBJ
bnN0YW5jZU9mQ3VzdG9tOiB7CisgICAgICAgIGNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKG5vZGUp
OworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIElzVW5kZWZpbmVkOiB7CiAgICAg
ICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGI5ODdjZDRkODI2NzU0MDBiNDg3Nzg0
NDM3YjNiMWEzMmZlODJmMjAuLjE1NGEwZDg0NDk4OTU1YWZjNjU3MzQ2Y2QwMGIyNjEzNWQ2MmRl
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcApAQCAtNDE0OSwxNyArNDE0OSw0MiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgQ2hlY2tI
YXNJbnN0YW5jZTogeworICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOiB7CisgICAgICAgIGNv
bXBpbGVDaGVja1R5cGVJbmZvRmxhZ3Mobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6IHsKKworICAgICAgICBOb2RlKiBoYXNJbnN0
YW5jZVZhbHVlTm9kZSA9IG5vZGUtPmNoaWxkMigpLm5vZGUoKTsKKyAgICAgICAgSlNGdW5jdGlv
biogZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24gPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KG5vZGUt
PmNlbGxPcGVyYW5kKCktPnZhbHVlKCkpOworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IG5vdERlZmF1bHQ7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOwotICAgICAgICBHUFJUZW1wb3Jhcnkgc3RydWN0dXJlKHRoaXMpOworICAg
ICAgICBKU1ZhbHVlT3BlcmFuZCBoYXNJbnN0YW5jZVZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigp
KTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKIAotICAgICAgICAvLyBTcGVj
dWxhdGUgdGhhdCBiYXNlICdJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlJy4KLSAgICAgICAg
c3BlY3VsYXRpb25DaGVjayhVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJh
bmNoVGVzdDgoCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6WmVybywgCi0gICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlLmdwcigpLCBKU0NlbGw6OnR5cGVJbmZvRmxh
Z3NPZmZzZXQoKSksIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOworICAgICAgICBHUFJSZWcgcmVzdWx0R1BS
ID0gcmVzdWx0LmdwcigpOwogCi0gICAgICAgIG5vUmVzdWx0KG5vZGUpOworICAgICAgICAvLyBJ
ZiB3ZSBoYXZlIHByb3ZlbiB0aGF0IHRoZSBjb25zdHJ1Y3RvcidzIFN5bWJvbC5oYXNJbnN0YW5j
ZSB3aWxsIGFsd2F5cyBiZSB0aGUgb25lIG9uIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFz
SW5zdGFuY2VdCisgICAgICAgIC8vIHRoZW4gd2UgZG9uJ3QgbmVlZCBhIHJ1bnRpbWUgY2hlY2sg
aGVyZS4gV2UgZG9uJ3Qgd29ycnkgYWJvdXQgdGhlIGNhc2Ugd2hlcmUgdGhlIGNvbnN0cnVjdG9y
J3MgU3ltYm9sLmhhc0luc3RhbmNlIGlzIGEgY29uc3RhbnQKKyAgICAgICAgLy8gYnV0IGlzIG5v
dCB0aGUgZGVmYXVsdCBvbmUgYXMgZml4dXAgc2hvdWxkIGhhdmUgY29udmVydGVkIHRoaXMgY2hl
Y2sgdG8gdHJ1ZS4KKyAgICAgICAgQVNTRVJUKCFoYXNJbnN0YW5jZVZhbHVlTm9kZS0+aXNDZWxs
Q29uc3RhbnQoKSB8fCBkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9PSBoYXNJbnN0YW5jZVZh
bHVlTm9kZS0+YXNDZWxsKCkpOworICAgICAgICBpZiAoIWhhc0luc3RhbmNlVmFsdWVOb2RlLT5p
c0NlbGxDb25zdGFudCgpKQorICAgICAgICAgICAgbm90RGVmYXVsdCA9IG1faml0LmJyYW5jaFB0
cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGhhc0luc3RhbmNlVmFsdWUuZ3ByKCksIFRydXN0
ZWRJbW1QdHIoZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24pKTsKKworICAgICAgICAvLyBDaGVj
ayB0aGF0IGJhc2UgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgorICAgICAgICBtX2pp
dC50ZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFz
ZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpLCByZXN1bHRHUFIpOwor
ICAgICAgICBtX2ppdC5vcjMyKFRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKKworICAg
ICAgICBpZiAobm90RGVmYXVsdC5pc1NldCgpKSB7CisgICAgICAgICAgICBub3REZWZhdWx0Lmxp
bmsoJm1faml0KTsKKyAgICAgICAgICAgIG1vdmVUcnVlVG8ocmVzdWx0R1BSKTsKKyAgICAgICAg
fQorCisgICAgICAgIGRvbmUubGluaygmbV9qaXQpOworICAgICAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdEdQUiwgbm9kZSwgRGF0YUZvcm1hdEpTQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIApAQCAtNDE2Nyw2ICs0MTkyLDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUluc3RhbmNlT2Yobm9kZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KKworICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbTogeworICAgICAgICBjb21w
aWxlSW5zdGFuY2VPZkN1c3RvbShub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgICAg
ICAKICAgICBjYXNlIElzVW5kZWZpbmVkOiB7CiAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVl
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcAppbmRleCA4NzI4ZDllNTE5ZWUzMGYxNjFiMWU5MjhhMzFiYzc3ZjI5
MzM0NGYxLi5mYTkyY2ZlODE2NWU0NjAxOTkyYmFmYzYxMGM3NGY1NTkzZGZmZTdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xNzQsOCAr
MTc0LDEwIEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQog
ICAgIGNhc2UgSXNPYmplY3Q6CiAgICAgY2FzZSBJc09iamVjdE9yTnVsbDoKICAgICBjYXNlIElz
RnVuY3Rpb246Ci0gICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgorICAgIGNhc2UgQ2hlY2tUeXBl
SW5mb0ZsYWdzOgorICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6CiAgICAgY2FzZSBJbnN0
YW5jZU9mOgorICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKICAgICBjYXNlIERvdWJsZVJlcDoK
ICAgICBjYXNlIFZhbHVlUmVwOgogICAgIGNhc2UgSW50NTJSZXA6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCmluZGV4IGY1ZjRlYTcx
YTFmN2RmZjM4MjI0MTUwMjJmNTMzZWFlNjVlMTFmMzAuLjJlYjE5YWRiZjBlOTZmNDliYTUxYzQ1
YzgxNjdiNTE1NDBiZjE0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSW50cmluc2ljUmVwb3NpdG9yeS5oCkBAIC04OSw2ICs4OSw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSiwgZnVuY3Rpb25U
eXBlKGludDY0LCBpbnRQdHIsIGludDY0KSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VK
QSwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0LCBpbnRQdHIpKSBcCiAgICAgbWFj
cm8oSl9KSVRPcGVyYXRpb25fRUpDLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50NjQs
IGludFB0cikpIFwKKyAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSk9KLCBmdW5jdGlvblR5cGUo
aW50NjQsIGludFB0ciwgaW50NjQsIGludFB0ciwgaW50NjQpKSBcCiAgICAgbWFjcm8oSl9KSVRP
cGVyYXRpb25fRUpJLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50NjQsIGludFB0cikp
IFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSkosIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50
UHRyLCBpbnQ2NCwgaW50NjQpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUpzY0MsIGZ1
bmN0aW9uVHlwZShpbnRQdHIsIGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4IGFjZTEwYjE4
MWJlNmY2MzdlZmVmY2VkMzdmYzM5M2EzY2U0NGEzZjEuLmQ5ODY0YmFkNDg2MGNmODBiMmIwZTMw
NDZjNGUyMmFmYTZmNDgzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwCkBAIC05MzksMTIgKzkzOSwxOCBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIFR5cGVPZjoKICAgICAgICAgICAgIGNvbXBpbGVUeXBlT2YoKTsKICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6Ci0gICAgICAgICAgICBjb21w
aWxlQ2hlY2tIYXNJbnN0YW5jZSgpOworICAgICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoK
KyAgICAgICAgICAgIGNvbXBpbGVDaGVja1R5cGVJbmZvRmxhZ3MoKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgorICAgICAgICAgICAgY29t
cGlsZU92ZXJyaWRlc0hhc0luc3RhbmNlKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBJbnN0YW5jZU9mOgogICAgICAgICAgICAgY29tcGlsZUluc3RhbmNlT2YoKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAgICAgICAg
ICBjb21waWxlSW5zdGFuY2VPZkN1c3RvbSgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgICAgICAgICBjb21waWxlQ291bnRFeGVjdXRpb24o
KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTc2MSwxMyArNTc2Nyw0MCBAQCBwcml2YXRlOgog
I2VuZGlmCiAgICAgfQogCi0gICAgdm9pZCBjb21waWxlQ2hlY2tIYXNJbnN0YW5jZSgpCisgICAg
dm9pZCBjb21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgSlNGdW5j
dGlvbiogZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24gPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KG1f
bm9kZS0+Y2VsbE9wZXJhbmQoKS0+dmFsdWUoKSk7CisKKyAgICAgICAgTFZhbHVlIGNvbnN0cnVj
dG9yID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGhhc0luc3Rh
bmNlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKTsKKworICAgICAgICBMQmFzaWNCbG9j
ayBkZWZhdWx0SGFzSW5zdGFuY2UgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk92ZXJyaWRlc0hh
c0luc3RhbmNlIFN5bWJvbC5oYXNJbnN0YW5jZSBpcyBkZWZhdWx0IikpOworICAgICAgICBMQmFz
aWNCbG9jayBjb250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIk92ZXJyaWRlc0hh
c0luc3RhbmNlIGNvbnRpbnVhdGlvbiIpKTsKKworICAgICAgICAvLyBVbmxpa2UgaW4gdGhlIERG
Rywgd2UgZG9uJ3Qgd29ycnkgYWJvdXQgY2xlYW5pbmcgdGhpcyBjb2RlIHVwIGZvciB0aGUgY2Fz
ZSB3aGVyZSB3ZSBoYXZlIHByb3ZlbiB0aGUgaGFzSW5zdGFuY2VWYWx1ZSBpcyBhIGNvbnN0YW50
IGFzIExMVk0gc2hvdWxkIGZpeCBpdCBmb3IgdXMuCisKKyAgICAgICAgQVNTRVJUKCFtX25vZGUt
PmNoaWxkMigpLm5vZGUoKS0+aXNDZWxsQ29uc3RhbnQoKSB8fCBkZWZhdWx0SGFzSW5zdGFuY2VG
dW5jdGlvbiA9PSBtX25vZGUtPmNoaWxkMigpLm5vZGUoKS0+YXNDZWxsKCkpOworCisgICAgICAg
IFZhbHVlRnJvbUJsb2NrIG5vdERlZmF1bHRIYXNJbnN0YW5jZVJlc3VsdCA9IG1fb3V0LmFuY2hv
cihtX291dC5ib29sZWFuVHJ1ZSk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5ub3RFcXVh
bChoYXNJbnN0YW5jZSwgbV9vdXQuY29uc3RJbnRQdHIoZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rp
b24pKSwgdW5zdXJlKGNvbnRpbnVhdGlvbiksIHVuc3VyZShkZWZhdWx0SGFzSW5zdGFuY2UpKTsK
KworICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRvKGRlZmF1bHRI
YXNJbnN0YW5jZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgaW1wbGVt
ZW50c0RlZmF1bHRIYXNJbnN0YW5jZVJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC50ZXN0SXNa
ZXJvMzIoCisgICAgICAgICAgICBtX291dC5sb2FkOFplcm9FeHQzMihjb25zdHJ1Y3RvciwgbV9o
ZWFwcy5KU0NlbGxfdHlwZUluZm9GbGFncyksCisgICAgICAgICAgICBtX291dC5jb25zdEludDMy
KEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpKSk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29u
dGludWF0aW9uKTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3RO
ZXh0KTsKKyAgICAgICAgc2V0Qm9vbGVhbihtX291dC5waGkobV9vdXQuYm9vbGVhbiwgaW1wbGVt
ZW50c0RlZmF1bHRIYXNJbnN0YW5jZVJlc3VsdCwgbm90RGVmYXVsdEhhc0luc3RhbmNlUmVzdWx0
KSk7CisgICAgfQorCisgICAgdm9pZCBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKCkKICAgICB7
CiAgICAgICAgIHNwZWN1bGF0ZSgKLSAgICAgICAgICAgIFVuY291bnRhYmxlLCBub1ZhbHVlKCks
IDAsCisgICAgICAgICAgICBCYWRUeXBlSW5mb0ZsYWdzLCBub1ZhbHVlKCksIDAsCiAgICAgICAg
ICAgICBtX291dC50ZXN0SXNaZXJvMzIoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJv
RXh0MzIobG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9G
bGFncyksCi0gICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlKSkpOworICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIobV9ub2Rl
LT50eXBlSW5mb09wZXJhbmQoKSkpKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW5z
dGFuY2VPZigpCkBAIC01ODIwLDYgKzU4NTMsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgc2V0Qm9v
bGVhbigKICAgICAgICAgICAgIG1fb3V0LnBoaShtX291dC5ib29sZWFuLCBub3RDZWxsUmVzdWx0
LCBpc0luc3RhbmNlUmVzdWx0LCBub3RJbnN0YW5jZVJlc3VsdCkpOwogICAgIH0KKworICAgIHZv
aWQgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20oKQorICAgIHsKKyAgICAgICAgTFZhbHVlIHZhbHVl
ID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGNvbnN0cnVj
dG9yID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIGhhc0luc3Rh
bmNlID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMygpKTsKKworICAgICAgICBzZXRCb29sZWFu
KG1fb3V0LmVxdWFsKG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0
cnVlKSkpLCB2bUNhbGwobV9vdXQuaW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25JbnN0
YW5jZU9mQ3VzdG9tKSwgbV9jYWxsRnJhbWUsIHZhbHVlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFu
Y2UpKSk7CisgICAgfQogICAgIAogICAgIHZvaWQgY29tcGlsZUNvdW50RXhlY3V0aW9uKCkKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggZjM0MzFjOTc1MWZhMzVkYTk3MDI2
Yzg1YzE4N2QyMGU2ODhlNWZmMS4uYTNiZGZhN2NkNWQwZjU3MjQ3ZjFiZThjNDBiMjUxMGQyOWQ4
MDBmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMjI4LDggKzIyOCw5IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJy
YXlfbGVuZ3RoOgogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJ
TkVfT1Aob3BfZ2V0X2J5X3ZhbCkKLSAgICAgICAgREVGSU5FX09QKG9wX2NoZWNrX2hhc19pbnN0
YW5jZSkKKyAgICAgICAgREVGSU5FX09QKG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpCiAgICAg
ICAgIERFRklORV9PUChvcF9pbnN0YW5jZW9mKQorICAgICAgICBERUZJTkVfT1Aob3BfaW5zdGFu
Y2VvZl9jdXN0b20pCiAgICAgICAgIERFRklORV9PUChvcF9pc191bmRlZmluZWQpCiAgICAgICAg
IERFRklORV9PUChvcF9pc19ib29sZWFuKQogICAgICAgICBERUZJTkVfT1Aob3BfaXNfbnVtYmVy
KQpAQCAtMzk5LDggKzQwMCw4IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygp
CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FycmF5X2xlbmd0aDoKICAgICAgICAgREVGSU5FX1NMT1dD
QVNFX09QKG9wX2dldF9ieV9pZCkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2dldF9i
eV92YWwpCi0gICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9jaGVja19oYXNfaW5zdGFuY2Up
CiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9pbnN0YW5jZW9mKQorICAgICAgICBERUZJ
TkVfU0xPV0NBU0VfT1Aob3BfaW5zdGFuY2VvZl9jdXN0b20pCiAgICAgICAgIERFRklORV9TTE9X
Q0FTRV9PUChvcF9qZmFsc2UpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9qbGVzcykK
ICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2psZXNzZXEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaAppbmRleCA4YjYxY2MxMjZmZGUwYTRlZDJhNmM3ZWVkMTg3N2RmN2ZiMDZmYzZhLi43NWZm
ZmZiODUzNDVlMDhlMmY3OWUyYTk2YjlmMThjZTQ0OTNkNTc0IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgKQEAgLTUwOSw4ICs1MDksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBl
bWl0X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2dl
dF9hcmd1bWVudF9ieV92YWwoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2lu
aXRfbGF6eV9yZWcoSW5zdHJ1Y3Rpb24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX2NoZWNrX2hh
c19pbnN0YW5jZShJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3Bfb3ZlcnJpZGVz
X2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfaW5zdGFu
Y2VvZihJbnN0cnVjdGlvbiopOworICAgICAgICB2b2lkIGVtaXRfb3BfaW5zdGFuY2VvZl9jdXN0
b20oSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2lzX3VuZGVmaW5lZChJbnN0
cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfaXNfYm9vbGVhbihJbnN0cnVjdGlvbiop
OwogICAgICAgICB2b2lkIGVtaXRfb3BfaXNfbnVtYmVyKEluc3RydWN0aW9uKik7CkBAIC02MTYs
OCArNjE3LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZ2V0
X2FyZ3VtZW50c19sZW5ndGgoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlv
biosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0
U2xvd19vcF9nZXRfYXJndW1lbnRfYnlfdmFsKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYpOwotICAgICAgICB2b2lkIGVtaXRTbG93X29wX2NoZWNrX2hhc19p
bnN0YW5jZShJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsK
ICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiwgVmVjdG9y
PFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOworICAgICAgICB2b2lkIGVtaXRTbG93X29wX2lu
c3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVy
YXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2pmYWxzZShJbnN0cnVjdGlvbiosIFZl
Y3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19v
cF9qbGVzcyhJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsK
ICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9qbGVzc2VxKEluc3RydWN0aW9uKiwgVmVjdG9yPFNs
b3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwpAQCAtNzQ0LDYgKzc0NSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBH
UFJSZWcsIEFycmF5UHJvZmlsZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBCeVZh
bEluZm8qKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJ
VE9wZXJhdGlvbl9FSk9KLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcpOwogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VKc2MsIEdQ
UlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRUpzY0MsIGludCwgR1BSUmVnLCBKU0NlbGwqKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSnNjQ0osIGludCwgR1BS
UmVnLCBKU0NlbGwqLCBHUFJSZWcpOwpAQCAtODExLDYgKzgxMyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0
aW9uX0VKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSklkYywgaW50LCBHUFJSZWcsIEdQUlJl
ZywgY29uc3QgSWRlbnRpZmllciopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVn
LCBHUFJSZWcpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpf
SklUT3BlcmF0aW9uX0VKT0osIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBH
UFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklU
T3BlcmF0aW9uX0VKSkFwLCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgQXJy
YXlQcm9maWxlKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVn
LCBCeVZhbEluZm8qKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihQX0pJVE9wZXJhdGlvbl9FSlMsIEdQUlJlZywgR1BSUmVnLCBzaXplX3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCBjYWRiMDgzMDhjY2MwNjFiN2M3NzdkNTBi
MmFjMjM4M2QzOThlOWRlLi4wMmI0ZDhkY2RkMzQ3OGE5Y2NhMWQxMDcwMjk0MTExNTI4ZDg5YWNj
IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtNTAzLDYgKzUwMywx
MiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkpCeSBvcGVyYQogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVyYXRpb24sIGRzdCk7CiB9CiAKK0FMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBpbnQgZHN0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIs
IEdQUlJlZyBhcmczKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBh
cmcyLCBhcmczKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpT
VmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVy
YXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSkKIHsKICAgICBzZXR1cEFyZ3VtZW50c1dp
dGhFeGVjU3RhdGUoYXJnMSk7CkBAIC02MzgsNiArNjQ0LDEyIEBAIEFMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiBv
cGVyYXRpCiAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVl
UmVzdWx0KG9wZXJhdGlvbiwgZHN0KTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRpb24s
IGludCBkc3QsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcy
LCBHUFJSZWcgYXJnM1RhZywgR1BSUmVnIGFyZzNQYXlsb2FkKQoreworICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRh
ZywgYXJnMiwgRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnM1BheWxvYWQsIGFyZzNUYWcpOworICAg
IHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdChvcGVy
YXRpb24sIGRzdCk7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkFwIG9wZXJhdGlvbiwgaW50IGRzdCwg
R1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzJUYWcsIEdQUlJl
ZyBhcmcyUGF5bG9hZCwgQXJyYXlQcm9maWxlKiBhcnJheVByb2ZpbGUpCiB7CiAgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBh
cmcxVGFnLCBTSDRfMzJCSVRfRFVNTVlfQVJHIGFyZzJQYXlsb2FkLCBhcmcyVGFnLCBUcnVzdGVk
SW1tUHRyKGFycmF5UHJvZmlsZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKaW5kZXggM2E5N2RkOGEzZmRmYTc0M2NjYjJkZjMyOThjNTE3NTY5YTc1YTgzYS4uZGVi
OGM5OWFhOGUyM2NmMjA5MDk0NGZkYmE2ZWI2MmQ2NmFmNDJjOCAxMDA3NTUKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xMDUsMTcgKzEwNSwyOSBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfbmV3X29iamVjdChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBW
ZWN0b3I8U2xvd0NhcwogICAgIGVtaXRTdG9yZUNlbGwoZHN0LCByZXR1cm5WYWx1ZUdQUik7CiB9
CiAKLXZvaWQgSklUOjplbWl0X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQordm9pZCBKSVQ6OmVtaXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5j
ZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIGludCBiYXNlVmFsID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgZHN0ID0gY3VycmVudElu
c3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgY29uc3RydWN0b3IgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBoYXNJbnN0YW5jZVZhbHVlID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIo
aGFzSW5zdGFuY2VWYWx1ZSwgcmVnVDApOworCisgICAgLy8gV2UgZG9uJ3QganVtcCBpZiB3ZSBr
bm93IHdoYXQgU3ltYm9sLmhhc0luc3RhbmNlIHdvdWxkIGRvLgorICAgIEp1bXAgY3VzdG9taGFz
SW5zdGFuY2VWYWx1ZSA9IGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW1QdHIo
bV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1i
b2xGdW5jdGlvbigpKSk7CiAKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGJhc2VWYWwsIHJl
Z1QwKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGNvbnN0cnVjdG9yLCByZWdUMCk7CisK
KyAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRzSGFzSW5zdGFuY2UnIGku
ZS4gdGhlIG9iamVjdCBpcyBhIEMtQVBJIHVzZXIgb3IgYSBib3VuZCBmdW5jdGlvbi4KKyAgICB0
ZXN0OChaZXJvLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSks
IFRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSwgcmVnVDApOworICAg
IGVtaXRUYWdCb29sKHJlZ1QwKTsKKyAgICBKdW1wIGRvbmUgPSBqdW1wKCk7CiAKLSAgICAvLyBD
aGVjayB0aGF0IGJhc2VWYWwgaXMgYSBjZWxsLgotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpT
Q2VsbChyZWdUMCwgYmFzZVZhbCk7CisgICAgY3VzdG9taGFzSW5zdGFuY2VWYWx1ZS5saW5rKHRo
aXMpOworICAgIG1vdmUoVHJ1c3RlZEltbTMyKFZhbHVlVHJ1ZSksIHJlZ1QwKTsKIAotICAgIC8v
IENoZWNrIHRoYXQgYmFzZVZhbCAnSW1wbGVtZW50c0hhc0luc3RhbmNlJy4KLSAgICBhZGRTbG93
Q2FzZShicmFuY2hUZXN0OChaZXJvLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxh
Z3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkp
OworICAgIGRvbmUubGluayh0aGlzKTsKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7
CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKQEAgLTEyOSw3ICsxNDEsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5j
ZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3Rlcih2YWx1ZSwgcmVnVDIpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvdG8s
IHJlZ1QxKTsKIAotICAgIC8vIENoZWNrIHRoYXQgcHJvdG8gYXJlIGNlbGxzLiAgYmFzZVZhbCBt
dXN0IGJlIGEgY2VsbCAtIHRoaXMgaXMgY2hlY2tlZCBieSBvcF9jaGVja19oYXNfaW5zdGFuY2Uu
CisgICAgLy8gQ2hlY2sgdGhhdCBwcm90byBhcmUgY2VsbHMuIGJhc2VWYWwgbXVzdCBiZSBhIGNl
bGwgLSB0aGlzIGlzIGNoZWNrZWQgYnkgdGhlIGdldF9ieV9pZCBmb3IgU3ltYm9sLmhhc0luc3Rh
bmNlLgogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMiwgdmFsdWUpOwogICAg
IGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMSwgcHJvdG8pOwogCkBAIC0xNTcsNiAr
MTY5LDEyIEBAIHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKK3Zv
aWQgSklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKikKK3sKKyAgICAv
LyBUaGlzIGFsd2F5cyBnb2VzIHRvIHNsb3cgcGF0aCBzaW5jZSB3ZSBleHBlY3QgaXQgdG8gYmUg
cmFyZS4KKyAgICBhZGRTbG93Q2FzZShqdW1wKCkpOworfQorCiB2b2lkIEpJVDo6ZW1pdF9vcF9p
c191bmRlZmluZWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQg
ZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKQEAgLTgyOSwzMyArODQ3LDMy
IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9uc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlCiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0K
IAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQordm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAg
ICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgdmFs
dWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIGludCBiYXNlVmFsID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgcHJvdG8gPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCi0gICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwo
aXRlciwgYmFzZVZhbCk7CisgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgdmFsdWUp
OworICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIHByb3RvKTsKICAgICBsaW5rU2xv
d0Nhc2UoaXRlcik7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDApOwot
ICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYmFzZVZhbCwgcmVnVDEpOwotICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZSwgZHN0LCByZWdUMCwgcmVnVDEpOwotCi0g
ICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVy
YW5kKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3RvLCByZWdUMSk7CisgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mLCBkc3QsIHJlZ1QwLCByZWdUMSk7CiB9CiAK
LXZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit2b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBp
bnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICBpbnQgdmFsdWUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIGludCBwcm90byA9IGN1cnJl
bnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGNvbnN0cnVjdG9yID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgaGFzSW5zdGFuY2VWYWx1ZSA9IGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQ7CiAKLSAgICBsaW5rU2xvd0Nhc2VJZk5vdEpT
Q2VsbChpdGVyLCB2YWx1ZSk7Ci0gICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgcHJv
dG8pOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVy
KHZhbHVlLCByZWdUMCk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm90bywgcmVnVDEp
OwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSW5zdGFuY2VPZiwgZHN0LCByZWdUMCwgcmVn
VDEpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY29uc3RydWN0b3IsIHJlZ1QxKTsKKyAg
ICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGhhc0luc3RhbmNlVmFsdWUsIHJlZ1QyKTsKKyAgICBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIGRzdCwgcmVnVDAsIHJlZ1Qx
LCByZWdUMik7CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF90b19udW1iZXIoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYg
aXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMy
XzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcApp
bmRleCA4OTQ1NWVkY2UwNDU2YmFkZjg4OGZhYTAzMDlkY2FiMGRlMDc4ZmM4Li45NWIzOTY2Nzgx
NzcyYzhjZmViNTIwNmMxMWNhY2I1NzNlMTAxMTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0xODMsMTcgKzE4MywzMSBAQCB2b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfbmV3X29iamVjdChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
LCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRTdG9yZUNlbGwoZHN0LCByZXR1cm5WYWx1ZUdQUik7
CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQordm9pZCBKSVQ6OmVtaXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0
YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIGludCBiYXNlVmFs
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgZHN0ID0gY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgY29uc3RydWN0b3IgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBoYXNJbnN0YW5jZVZhbHVlID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKIAotICAgIGVtaXRMb2FkUGF5bG9hZChiYXNl
VmFsLCByZWdUMCk7CisgICAgZW1pdExvYWRQYXlsb2FkKGhhc0luc3RhbmNlVmFsdWUsIHJlZ1Qw
KTsKKyAgICAvLyBXZSBkb24ndCBqdW1wIGlmIHdlIGtub3cgd2hhdCBTeW1ib2wuaGFzSW5zdGFu
Y2Ugd291bGQgZG8uCisgICAgSnVtcCBoYXNJbnN0YW5jZVZhbHVlTm90Q2VsbCA9IGVtaXRKdW1w
SWZOb3RKU0NlbGwoaGFzSW5zdGFuY2VWYWx1ZSk7CisgICAgSnVtcCBjdXN0b21oYXNJbnN0YW5j
ZVZhbHVlID0gYnJhbmNoUHRyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbVB0cihtX2NvZGVC
bG9jay0+Z2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0
aW9uKCkpKTsKKworICAgIC8vIFdlIGtub3cgdGhhdCBjb25zdHJ1Y3RvciBpcyBhbiBvYmplY3Qg
ZnJvbSB0aGUgd2F5IGJ5dGVjb2RlIGlzIGVtaXR0ZWQgZm9yIGluc3RhbmNlb2YgZXhwcmVzc2lv
bnMuCisgICAgZW1pdExvYWRQYXlsb2FkKGNvbnN0cnVjdG9yLCByZWdUMCk7CisKKyAgICAvLyBD
aGVjayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRzSGFzSW5zdGFuY2UnIGkuZS4gdGhlIG9i
amVjdCBpcyBhIEMtQVBJIHVzZXIgb3IgYSBib3VuZCBmdW5jdGlvbi4KKyAgICB0ZXN0OChaZXJv
LCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJ
bW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSwgcmVnVDApOworICAgIEp1bXAgZG9u
ZSA9IGp1bXAoKTsKKworICAgIGhhc0luc3RhbmNlVmFsdWVOb3RDZWxsLmxpbmsodGhpcyk7Cisg
ICAgY3VzdG9taGFzSW5zdGFuY2VWYWx1ZS5saW5rKHRoaXMpOworICAgIG1vdmUoVHJ1c3RlZElt
bTMyKDEpLCByZWdUMCk7CisKKyAgICBkb25lLmxpbmsodGhpcyk7CisgICAgZW1pdFN0b3JlQm9v
bChkc3QsIHJlZ1QwKTsKIAotICAgIC8vIENoZWNrIHRoYXQgYmFzZVZhbCBpcyBhIGNlbGwuCi0g
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2VWYWwpOwotICAgIAotICAgIC8vIENo
ZWNrIHRoYXQgYmFzZVZhbCAnSW1wbGVtZW50c0hhc0luc3RhbmNlJy4KLSAgICBhZGRTbG93Q2Fz
ZShicmFuY2hUZXN0OChaZXJvLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NP
ZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOwog
fQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCkBAIC0yMDcsNyArMjIxLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2Vv
ZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRMb2FkUGF5bG9hZCh2
YWx1ZSwgcmVnVDIpOwogICAgIGVtaXRMb2FkUGF5bG9hZChwcm90bywgcmVnVDEpOwogCi0gICAg
Ly8gQ2hlY2sgdGhhdCBwcm90byBhcmUgY2VsbHMuICBiYXNlVmFsIG11c3QgYmUgYSBjZWxsIC0g
dGhpcyBpcyBjaGVja2VkIGJ5IG9wX2NoZWNrX2hhc19pbnN0YW5jZS4KKyAgICAvLyBDaGVjayB0
aGF0IHByb3RvIGFyZSBjZWxscy4gYmFzZVZhbCBtdXN0IGJlIGEgY2VsbCAtIHRoaXMgaXMgY2hl
Y2tlZCBieSB0aGUgZ2V0X2J5X2lkIGZvciBTeW1ib2wuaGFzSW5zdGFuY2UuCiAgICAgZW1pdEp1
bXBTbG93Q2FzZUlmTm90SlNDZWxsKHZhbHVlKTsKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RK
U0NlbGwocHJvdG8pOwogICAgIApAQCAtMjM1LDIwICsyNDksMTAgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRT
dG9yZUJvb2woZHN0LCByZWdUMCk7CiB9CiAKLXZvaWQgSklUOjplbWl0U2xvd19vcF9jaGVja19o
YXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3ZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2Zf
Y3VzdG9tKEluc3RydWN0aW9uKikKIHsKLSAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9u
WzFdLnUub3BlcmFuZDsKLSAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZDsKLQotICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIsIGJhc2VWYWwpOwotICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsKLQotICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMSwgcmVnVDApOwot
ICAgIGVtaXRMb2FkKGJhc2VWYWwsIHJlZ1QzLCByZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25DaGVja0hhc0luc3RhbmNlLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1Qy
KTsKLQotICAgIGVtaXRKdW1wU2xvd1RvSG90KGp1bXAoKSwgY3VycmVudEluc3RydWN0aW9uWzRd
LnUub3BlcmFuZCk7CisgICAgLy8gVGhpcyBhbHdheXMgZ29lcyB0byBzbG93IHBhdGggc2luY2Ug
d2UgZXhwZWN0IGl0IHRvIGJlIHJhcmUuCisgICAgYWRkU2xvd0Nhc2UoanVtcCgpKTsKIH0KIAog
dm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKQEAgLTI2Niw2
ICsyNzAsMjEgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbkluc3RhbmNlT2YsIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMywgcmVnVDIpOwogfQog
Cit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qIGN1
cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikK
K3sKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBp
bnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBjb25z
dHJ1Y3RvciA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGhhc0lu
c3RhbmNlVmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOworCisgICAgbGlu
a1Nsb3dDYXNlKGl0ZXIpOworCisgICAgZW1pdExvYWQodmFsdWUsIHJlZ1QxLCByZWdUMCk7Cisg
ICAgZW1pdExvYWRQYXlsb2FkKGNvbnN0cnVjdG9yLCByZWdUMik7CisgICAgZW1pdExvYWQoaGFz
SW5zdGFuY2VWYWx1ZSwgcmVnVDQsIHJlZ1QzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
bkluc3RhbmNlT2ZDdXN0b20sIGRzdCwgcmVnVDEsIHJlZ1QwLCByZWdUMiwgcmVnVDQsIHJlZ1Qz
KTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfaXNfdW5kZWZpbmVkKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApp
bmRleCBjYWQ5MzQ2OWMxYmNiZDJiNTdkY2I1MjAyM2FiZTlmNzIzZjc0NDQ1Li41ZDJhZTZiYmM1
OTExOTZiNWI0MTAyOWU4N2U1OTViNTZiZWY2MDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTE0ODcsMjUgKzE0ODcsMTcgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIGVuY28KICAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGV4ZWMsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25DaGVja0hhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbCkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbShFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVj
dG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpCiB7CiAgICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7
CiAKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0g
ICAgSlNWYWx1ZSBiYXNlVmFsID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlVmFsKTsKLQot
ICAgIGlmIChiYXNlVmFsLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgSlNPYmplY3QqIGJhc2VPYmpl
Y3QgPSBhc09iamVjdChiYXNlVmFsKTsKLSAgICAgICAgQVNTRVJUKCFiYXNlT2JqZWN0LT5zdHJ1
Y3R1cmUodm0pLT50eXBlSW5mbygpLmltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UoKSk7Ci0g
ICAgICAgIGlmIChiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLmltcGxlbWVu
dHNIYXNJbnN0YW5jZSgpKSB7Ci0gICAgICAgICAgICBib29sIHJlc3VsdCA9IGJhc2VPYmplY3Qt
Pm1ldGhvZFRhYmxlKHZtKS0+Y3VzdG9tSGFzSW5zdGFuY2UoYmFzZU9iamVjdCwgZXhlYywgdmFs
dWUpOwotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVzdWx0
KSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgSlNWYWx1ZSBoYXNJbnN0YW5jZVZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRIYXNJbnN0YW5jZSk7CisKKyAgICBBU1NFUlQoaGFzSW5zdGFu
Y2VWYWx1ZSAhPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJ
bnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkgfHwgIWNvbnN0cnVjdG9yLT5zdHJ1Y3R1cmUoKS0+dHlw
ZUluZm8oKS5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpOwogCi0gICAgdm0udGhyb3dF
eGNlcHRpb24oZXhlYywgY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcihleGVj
LCBiYXNlVmFsKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGNvbnN0cnVjdG9yLT5oYXNJbnN0YW5j
ZShleGVjLCB2YWx1ZSwgaGFzSW5zdGFuY2VWYWx1ZSkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCAyNTQyNTUwMjI5ZGE0MWUxYWRkNDZi
MGIwMjU4ZThlNDk5NWI5YjZkLi41YzJjODE0MTk0ZmZkYzg3ZTdlZDNkNThlMTBkZjViM2FkZWVh
MTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTEy
LDYgKzExMiw3IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklU
T3BlcmF0aW9uX0VJKShFeGVjU3RhdGUqLCBVbmlxdWVkU3RyCiB0eXBlZGVmIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRP
cGVyYXRpb25fRUpaKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCk7CiB0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkMpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU0NlbGwqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKT0opKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKQSkoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEpTQXJyYXkqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFVu
aXF1ZWRTdHJpbmdJbXBsKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
KCpKX0pJVE9wZXJhdGlvbl9FSklkYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIGNvbnN0
IElkZW50aWZpZXIqKTsKQEAgLTMyOCw3ICszMjksNyBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHVzaEZ1bmN0aW9uTmFtZVNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5bWJvbFRh
Ygogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0ZSosIGludDMy
X3QpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlRGlk
Q2FsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSkgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25DaGVja0hhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBiYXNlVmFsKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20oRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRI
YXNJbnN0YW5jZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZf
SU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFs
R2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwogRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNj
cmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnREYXRhLmNwcAppbmRleCAwMTkyN2I2MzA0YzIzYzBkNWZiODQ0NjdmN2IzOThhOGE0
YzFlZTNhLi5mMzNjMGIzNWYwYzZjZTI4YmY5ZjNkMzgyYTA5MTFiMGZhMTY4Njk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgiCiAjaW5jbHVkZSAiT3Bj
b2RlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKKyNpbmNsdWRlICJXcml0ZUJhcnJp
ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7CiAKQEAgLTE1NCw2ICsx
NTUsNyBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2bSkKICAgICBBU1NFUlQo
RnVuY3Rpb25Db2RlID09IDIpOwogICAgIEFTU0VSVChNb2R1bGVDb2RlID09IDMpOwogCisgICAg
QVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxwdHJkaWZmX3Q+KChyZWludGVycHJldF9jYXN0PFdy
aXRlQmFycmllcjxKU0NlbGw+Kj4oMHg0MDAwKS0+c2xvdCgpKSkgLSAweDQwMDApKTsKICAgICBz
dGF0aWNfYXNzZXJ0KFB1dEJ5SWRQcmltYXJ5VHlwZU1hc2sgPT0gMHg2LCAiTExJbnQgYXNzdW1l
cyBQdXRCeUlkUHJpbWFyeVR5cGVNYXNrIGlzID09IDB4NiIpOwogICAgIHN0YXRpY19hc3NlcnQo
UHV0QnlJZFByaW1hcnlUeXBlU2Vjb25kYXJ5ID09IDB4MCwgIkxMSW50IGFzc3VtZXMgUHV0QnlJ
ZFByaW1hcnlUeXBlU2Vjb25kYXJ5IGlzID09IDB4MCIpOwogICAgIHN0YXRpY19hc3NlcnQoUHV0
QnlJZFByaW1hcnlUeXBlT2JqZWN0V2l0aFN0cnVjdHVyZSA9PSAweDIsICJMTEludCBhc3N1bWVz
IFB1dEJ5SWRQcmltYXJ5VHlwZU9iamVjdFdpdGhTdHJ1Y3R1cmUgaXMgPT0gMHgyIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCA5OGZi
ZWQ4ZjI4Yjg1YWI4YWQ2NWNkMDNmMjZiZGJiZjI2Nzk3MjE2Li41ZDhiZmMzZWU5YjcxNTA3Mzkz
MjgxNGUzYjQ5YjMwZWY2ZTVkNjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTUyMiwzMCArNTIyLDI4IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9uZXdfcmVnZXhwKQogICAgIExMSU5UX1JFVFVSTihSZWdFeHBPYmpl
Y3Q6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5yZWdFeHBTdHJ1Y3R1
cmUoKSwgcmVnRXhwKSk7CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jaGVj
a19oYXNfaW5zdGFuY2UpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2Vv
ZikKIHsKICAgICBMTElOVF9CRUdJTigpOwotICAgIAogICAgIEpTVmFsdWUgdmFsdWUgPSBMTElO
VF9PUF9DKDIpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIGJhc2VWYWwgPSBMTElOVF9PUF9DKDMp
LmpzVmFsdWUoKTsKLSAgICBpZiAoYmFzZVZhbC5pc09iamVjdCgpKSB7Ci0gICAgICAgIEpTT2Jq
ZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbCk7Ci0gICAgICAgIEFTU0VSVCghYmFz
ZU9iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0
YW5jZSgpKTsKLSAgICAgICAgaWYgKGJhc2VPYmplY3QtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygp
LmltcGxlbWVudHNIYXNJbnN0YW5jZSgpKSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzQm9vbGVhbihiYXNlT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5jdXN0b21IYXNJbnN0YW5jZShi
YXNlT2JqZWN0LCBleGVjLCB2YWx1ZSkpOwotICAgICAgICAgICAgTExJTlRfUkVUVVJOX1dJVEhf
UENfQURKVVNUTUVOVChyZXN1bHQsIHBjWzRdLnUub3BlcmFuZCk7Ci0gICAgICAgIH0KLSAgICB9
Ci0gICAgTExJTlRfVEhST1coY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcihl
eGVjLCBiYXNlVmFsKSk7CisgICAgSlNWYWx1ZSBwcm90byA9IExMSU5UX09QX0MoMykuanNWYWx1
ZSgpOworICAgIEFTU0VSVCghdmFsdWUuaXNPYmplY3QoKSB8fCAhcHJvdG8uaXNPYmplY3QoKSk7
CisgICAgTExJTlRfUkVUVVJOKGpzQm9vbGVhbihKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNl
KGV4ZWMsIHZhbHVlLCBwcm90bykpKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19w
YXRoX2luc3RhbmNlb2YpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5zdGFuY2Vv
Zl9jdXN0b20pCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKKwogICAgIEpTVmFsdWUgdmFsdWUgPSBM
TElOVF9PUF9DKDIpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHByb3RvID0gTExJTlRfT1BfQygz
KS5qc1ZhbHVlKCk7Ci0gICAgQVNTRVJUKCF2YWx1ZS5pc09iamVjdCgpIHx8ICFwcm90by5pc09i
amVjdCgpKTsKLSAgICBMTElOVF9SRVRVUk4oanNCb29sZWFuKEpTT2JqZWN0OjpkZWZhdWx0SGFz
SW5zdGFuY2UoZXhlYywgdmFsdWUsIHByb3RvKSkpOworICAgIEpTVmFsdWUgY29uc3RydWN0b3Ig
PSBMTElOVF9PUF9DKDMpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGhhc0luc3RhbmNlVmFsdWUg
PSBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKTsKKworICAgIEFTU0VSVChjb25zdHJ1Y3Rvci5pc09i
amVjdCgpKTsKKyAgICBBU1NFUlQoaGFzSW5zdGFuY2VWYWx1ZSAhPSBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkgfHwg
IWNvbnN0cnVjdG9yLmdldE9iamVjdCgpLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5pbXBsZW1l
bnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpOworCisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xl
YW4oY29uc3RydWN0b3IuZ2V0T2JqZWN0KCktPmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBoYXNJ
bnN0YW5jZVZhbHVlKSk7CisgICAgTExJTlRfUkVUVVJOKHJlc3VsdCk7CiB9CiAKIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5oCmluZGV4IDI3MTMyNGIxODQ1M2Q3MmRjOGI3NjE4MGJh
MDMwNGFiNDU2NTk1OTcuLjBkNWM4ZGE0M2IwMDlhYjk3YWIyZjcyYTg3NWMxNGViNTY2MDM5Yjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCkBAIC02
Nyw4ICs2Nyw4IEBAIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2Fy
cmF5KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2FycmF5X3dp
dGhfc2l6ZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25ld19hcnJh
eV9idWZmZXIpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfcmVn
ZXhwKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfY2hlY2tfaGFzX2lu
c3RhbmNlKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW5zdGFuY2Vv
Zik7CitMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2ZfY3Vz
dG9tKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X2lkKTsK
IExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2FyZ3VtZW50c19sZW5n
dGgpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbQppbmRleCBjNWE4N2UzYjFkMzhiZTMzNjQwZWU2MmJmYmE2YjU4YzFkZWU2
YjVmLi4xNGQ2YzYyZmFjOWI5MGRjZGQzNzMwMzdkNjY5Y2ZjMjQ0MmY4ZGViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMy
XzY0LmFzbQpAQCAtMTE3NSwxNyArMTE3NSwzNCBAQCBfbGxpbnRfb3BfYml0b3I6CiAgICAgICAg
IDUpCiAKIAotX2xsaW50X29wX2NoZWNrX2hhc19pbnN0YW5jZToKK19sbGludF9vcF9vdmVycmlk
ZXNfaGFzX2luc3RhbmNlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkaSAxMltQQ10s
IHQxCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDEsIENlbGxUYWcsIHQwLCAu
b3BDaGVja0hhc0luc3RhbmNlU2xvdykKLSAgICBidGJ6IEpTQ2VsbDo6bV9mbGFnc1t0MF0sIElt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93Ci0gICAg
ZGlzcGF0Y2goNSkKIAotLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3c6Ci0gICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKQotICAgIGRpc3BhdGNoKDApCisg
ICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQzKQorICAgIHN0b3JlaSBCb29sZWFuVGFnLCBU
YWdPZmZzZXRbY2ZyLCB0MywgOF0KIAorICAgICMgRmlyc3QgY2hlY2sgaWYgaGFzSW5zdGFuY2VW
YWx1ZSBpcyB0aGUgb25lIG9uIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2Vd
CisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDMsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUodDAsIHQxLCB0MikKKyAgICBiaW5lcSB0MSwgQ2VsbFRhZywgLm9wT3ZlcnJpZGVzaGFz
SW5zdGFuY2VWYWx1ZU5vdENlbGwKKworICAgICMgV2UgZG9uJ3QgbmVlZCBoYXNJbnN0YW5jZVZh
bHVlJ3MgdGFnIHJlZ2lzdGVyIGFueW1vcmUuCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQx
CisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MV0sIHQxCisgICAgbG9hZHAg
SlNHbG9iYWxPYmplY3Q6Om1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb25b
dDFdLCB0MQorICAgIGJpbmVxIHQxLCB0MiwgLm9wT3ZlcnJpZGVzaGFzSW5zdGFuY2VWYWx1ZU5v
dERlZmF1bHQKKworICAgICMgV2Uga25vdyB0aGUgY29uc3RydWN0b3IgaXMgYSBjZWxsLgorICAg
IGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MCkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
UGF5bG9hZFVuY2hlY2tlZCh0MCwgdDEpCisgICAgdGJ6IEpTQ2VsbDo6bV9mbGFnc1t0MV0sIElt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UsIHQwCisgICAgc3RvcmVpIHQwLCBQYXlsb2FkT2Zm
c2V0W2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLm9wT3ZlcnJpZGVzaGFzSW5zdGFu
Y2VWYWx1ZU5vdENlbGw6Cisub3BPdmVycmlkZXNoYXNJbnN0YW5jZVZhbHVlTm90RGVmYXVsdDoK
KyAgICBzdG9yZXAgMCwgUGF5bG9hZE9mZnNldFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQp
CiAKIF9sbGludF9vcF9pbnN0YW5jZW9mOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKQEAgLTEyMTUs
NiArMTIzMiwxMSBAQCBfbGxpbnRfb3BfaW5zdGFuY2VvZjoKICAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9pbnN0YW5jZW9mKQogICAgIGRpc3BhdGNoKDQpCiAKK19sbGludF9vcF9p
bnN0YW5jZW9mX2N1c3RvbToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pCisgICAgZGlzcGF0Y2goNSkKKwog
CiBfbGxpbnRfb3BfaXNfdW5kZWZpbmVkOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20K
aW5kZXggNjlmM2UwYjVlYTA5MWQ0NDE2YjRhYTZkYWNmOGJlZGQxOThhMzMzMy4uODM3ODAyZTll
YTA5MzIyZDY2YTY5ZTRlMDYzNGI0YTRmZmQ5NzE2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTEwNjksMTYg
KzEwNjksMjggQEAgX2xsaW50X29wX2JpdG9yOgogICAgICAgICA1KQogCiAKLV9sbGludF9vcF9j
aGVja19oYXNfaW5zdGFuY2U6CitfbGxpbnRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZToKICAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQzKQorCiAg
ICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDMsIHQxKQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGVDZWxsKHQxLCB0MCwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cpCi0gICAgYnRieiBKU0NlbGw6
Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCAub3BDaGVja0hhc0lu
c3RhbmNlU2xvdwotICAgIGRpc3BhdGNoKDUpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0
MSwgdDApCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbG9hZHAgQ29kZUJsb2Nr
OjptX2dsb2JhbE9iamVjdFt0Ml0sIHQyCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZnVu
Y3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb25bdDJdLCB0MgorICAgIGJxbmVxIHQw
LCB0MiwgLm9wT3ZlcnJpZGVzSGFzSW5zdGFuY2VOb3REZWZhdWx0U3ltYm9sCiAKLS5vcENoZWNr
SGFzSW5zdGFuY2VTbG93OgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NoZWNr
X2hhc19pbnN0YW5jZSkKLSAgICBkaXNwYXRjaCgwKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlv
bigyLCB0MSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCkKKyAgICB0YnogSlND
ZWxsOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSwgdDEKKyAgICBv
cnEgVmFsdWVGYWxzZSwgdDEKKyAgICBzdG9yZXEgdDEsIFtjZnIsIHQzLCA4XQorICAgIGRpc3Bh
dGNoKDQpCisKKy5vcE92ZXJyaWRlc0hhc0luc3RhbmNlTm90RGVmYXVsdFN5bWJvbDoKKyAgICBz
dG9yZXEgVmFsdWVUcnVlLCB0MQorICAgIHN0b3JlcSB0MSwgW2NmciwgdDMsIDhdCisgICAgZGlz
cGF0Y2goNCkKIAogCiBfbGxpbnRfb3BfaW5zdGFuY2VvZjoKQEAgLTExMDksNiArMTEyMSwxMCBA
QCBfbGxpbnRfb3BfaW5zdGFuY2VvZjoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9pbnN0YW5jZW9mKQogICAgIGRpc3BhdGNoKDQpCiAKK19sbGludF9vcF9pbnN0YW5jZW9mX2N1
c3RvbToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pCisgICAgZGlzcGF0Y2goNSkKIAogX2xsaW50X29wX2lz
X3VuZGVmaW5lZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCA2ODM1YThhNmQ3ZjI3NTNk
ZjgxMmE3MzMxZjc1MzM1ODQyNjJhOWFlLi41ZmYwNjQ4ODg3Y2QwZjk4MjdlZmY0YWIzZjM4ODA1
M2RhNjY0ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
bklkZW50aWZpZXJzLmgKQEAgLTI1MCw3ICsyNTAsNiBAQAogICAgIG1hY3JvKHlpZWxkKQogCiAj
ZGVmaW5lIEpTQ19DT01NT05fUFJJVkFURV9JREVOVElGSUVSU19FQUNIX1dFTExfS05PV05fU1lN
Qk9MX05PVF9JTVBMRU1FTlRFRF9ZRVQobWFjcm8pXAotICAgIG1hY3JvKGhhc0luc3RhbmNlKSBc
CiAgICAgbWFjcm8oaXNDb25jYXRTcHJlYWRhYmxlKSBcCiAgICAgbWFjcm8obWF0Y2gpIFwKICAg
ICBtYWNybyhyZXBsYWNlKSBcCkBAIC0yNjAsNiArMjU5LDcgQEAKICAgICBtYWNybyh0b1ByaW1p
dGl2ZSkKIAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURFTlRJRklFUlNfRUFDSF9XRUxM
X0tOT1dOX1NZTUJPTChtYWNybykgXAorICAgIG1hY3JvKGhhc0luc3RhbmNlKSBcCiAgICAgbWFj
cm8oaXRlcmF0b3IpIFwKICAgICBtYWNybyh1bnNjb3BhYmxlcykgXAogICAgIG1hY3JvKHRvU3Ry
aW5nVGFnKQpAQCAtMzQzLDYgKzM0Myw5IEBACiAgICAgbWFjcm8oTnVtYmVyRm9ybWF0KSBcCiAg
ICAgbWFjcm8obmV3VGFyZ2V0TG9jYWwpIFwKICAgICBtYWNybyhkZXJpdmVkQ29uc3RydWN0b3Ip
IFwKKyAgICBtYWNybyhpc0JvdW5kRnVuY3Rpb24pIFwKKyAgICBtYWNybyhoYXNJbnN0YW5jZUJv
dW5kRnVuY3Rpb24pIFwKKyAgICBtYWNybyhpbnN0YW5jZU9mKSBcCiAKIAogbmFtZXNwYWNlIEpT
QyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25I
ZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCmluZGV4IDAxMzFiOWYxYzNkMzM0YmFlMDVjMWM5YjYwMmIwYjlkNTI5ZjNhMzAuLjE5
NmJlMmUxYzNkY2U1MWJhMmI2MmVmODg3ZTdiY2NlOGUxZjkyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkBAIC0yMDksNyAr
MjA5LDcgQEAgc3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5Tb3VyY2VBcHBlbmRlcihj
b25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY28KICAgICByZXR1cm4gbWFrZVN0cmluZyhy
aWdodEhhbmRTaWRlLCAiIGlzIG5vdCBhbiBPYmplY3QuIChldmFsdWF0aW5nICciLCBzb3VyY2VU
ZXh0LCAiJykiKTsKIH0KIAotc3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2Vv
ZlNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXNzYWdlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVRleHQsIFJ1bnRpbWVUeXBlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VUZXh0V2hl
cmVFcnJvck9jY3VycmVkIG9jY3VycmVuY2UpCitpbmxpbmUgU3RyaW5nIGludmFsaWRQYXJhbWV0
ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBjb250ZW50LCBjb25zdCBT
dHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1l
VHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJl
bmNlKQogewogICAgIGlmIChvY2N1cnJlbmNlID09IEVycm9ySW5zdGFuY2U6OkZvdW5kQXBwcm94
aW1hdGVTb3VyY2UpCiAgICAgICAgIHJldHVybiBkZWZhdWx0QXBwcm94aW1hdGVTb3VyY2VFcnJv
cihvcmlnaW5hbE1lc3NhZ2UsIHNvdXJjZVRleHQpOwpAQCAtMjIyLDcgKzIyMiwxNyBAQCBzdGF0
aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIoY29uc3Qg
U3RyaW5nJiBvcmlnaW5hbE1lcwogCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluc3RhbmNl
b2ZMZW5ndGggPSAxMDsKICAgICBTdHJpbmcgcmlnaHRIYW5kU2lkZSA9IHNvdXJjZVRleHQuc3Vi
c3RyaW5nKGluc3RhbmNlb2ZJbmRleCArIGluc3RhbmNlb2ZMZW5ndGgpLnNpbXBsaWZ5V2hpdGVT
cGFjZSgpOwotICAgIHJldHVybiBtYWtlU3RyaW5nKHJpZ2h0SGFuZFNpZGUsICIgaXMgbm90IGEg
ZnVuY3Rpb24uIChldmFsdWF0aW5nICciLCBzb3VyY2VUZXh0LCAiJykiKTsKKyAgICByZXR1cm4g
bWFrZVN0cmluZyhyaWdodEhhbmRTaWRlLCBjb250ZW50LCAiLiAoZXZhbHVhdGluZyAnIiwgc291
cmNlVGV4dCwgIicpIik7Cit9CisKK3N0YXRpYyBTdHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3Rh
bmNlb2ZOb3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVRleHQsIFJ1bnRpbWVUeXBlIHJ1bnRpbWVUeXBlLCBF
cnJvckluc3RhbmNlOjpTb3VyY2VUZXh0V2hlcmVFcnJvck9jY3VycmVkIG9jY3VycmVuY2UpCit7
CisgICAgcmV0dXJuIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIoV1RG
OjptYWtlU3RyaW5nKCIgaXMgbm90IGEgZnVuY3Rpb24iKSwgb3JpZ2luYWxNZXNzYWdlLCBzb3Vy
Y2VUZXh0LCBydW50aW1lVHlwZSwgb2NjdXJyZW5jZSk7Cit9CisKK3N0YXRpYyBTdHJpbmcgaW52
YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZoYXNJbnN0YW5jZVZhbHVlTm90RnVuY3Rpb25Tb3VyY2VB
cHBlbmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VUZXh0LCBSdW50aW1lVHlwZSBydW50aW1lVHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4
dFdoZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNlKQoreworICAgIHJldHVybiBpbnZhbGlkUGFy
YW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKFdURjo6bWFrZVN0cmluZygiW1N5bWJvbC5o
YXNJbnN0YW5jZV0gaXMgbm90IGEgZnVuY3Rpb24sIHVuZGVmaW5lZCwgb3IgbnVsbCIpLCBvcmln
aW5hbE1lc3NhZ2UsIHNvdXJjZVRleHQsIHJ1bnRpbWVUeXBlLCBvY2N1cnJlbmNlKTsKIH0KIAog
SlNPYmplY3QqIGNyZWF0ZUVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBFcnJvckluc3RhbmNlOjpTb3VyY2VBcHBlbmRlciBhcHBlbmRl
cikKQEAgLTI0NSw5ICsyNTUsMTQgQEAgSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJblBhcmFtZXRl
ckVycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKICAgICByZXR1cm4gY3JlYXRl
RXJyb3IoZXhlYywgdmFsdWUsIG1ha2VTdHJpbmcoImlzIG5vdCBhbiBPYmplY3QuIiksIGludmFs
aWRQYXJhbWV0ZXJJblNvdXJjZUFwcGVuZGVyKTsKIH0KIAotSlNPYmplY3QqIGNyZWF0ZUludmFs
aWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQorSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JOb3RGdW5j
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgcmV0dXJuIGNyZWF0
ZUVycm9yKGV4ZWMsIHZhbHVlLCBtYWtlU3RyaW5nKCIgaXMgbm90IGEgZnVuY3Rpb24iKSwgaW52
YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZOb3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKTsKK30KKwor
SlNPYmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JoYXNJbnN0YW5j
ZVZhbHVlTm90RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogewotICAg
IHJldHVybiBjcmVhdGVFcnJvcihleGVjLCB2YWx1ZSwgbWFrZVN0cmluZygiaXMgbm90IGEgZnVu
Y3Rpb24uIiksIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIpOworICAg
IHJldHVybiBjcmVhdGVFcnJvcihleGVjLCB2YWx1ZSwgbWFrZVN0cmluZygiW1N5bWJvbC5oYXNJ
bnN0YW5jZV0gaXMgbm90IGEgZnVuY3Rpb24sIHVuZGVmaW5lZCwgb3IgbnVsbCIpLCBpbnZhbGlk
UGFyYW1ldGVySW5zdGFuY2VvZmhhc0luc3RhbmNlVmFsdWVOb3RGdW5jdGlvblNvdXJjZUFwcGVu
ZGVyKTsKIH0KIAogSlNPYmplY3QqIGNyZWF0ZU5vdEFDb25zdHJ1Y3RvckVycm9yKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaAppbmRleCBjNmJhMDJlM2ZiYjAzM2IyMWYxZDkzYTExZWE3
Y2Q5ZDMwZjE5MzlhLi41NGM1ZDcwOTY0MmQwMjljOTQwZDIxZjY3ZWJhMzExODMwYTdiMzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5o
CkBAIC00NSw3ICs0NSw4IEBAIEpTT2JqZWN0KiBjcmVhdGVURFpFcnJvcihFeGVjU3RhdGUqKTsK
IEpTT2JqZWN0KiBjcmVhdGVOb3RBbk9iamVjdEVycm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwog
SlNPYmplY3QqIGNyZWF0ZUludmFsaWRGdW5jdGlvbkFwcGx5UGFyYW1ldGVyRXJyb3IoRXhlY1N0
YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3Io
RXhlY1N0YXRlKiwgSlNWYWx1ZSk7Ci1KU09iamVjdCogY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQ
YXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKK0pTT2JqZWN0KiBjcmVhdGVJbnZh
bGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yTm90RnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNWYWx1
ZSk7CitKU09iamVjdCogY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcmhhc0lu
c3RhbmNlVmFsdWVOb3RGdW5jdGlvbihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBj
cmVhdGVOb3RBQ29uc3RydWN0b3JFcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0
KiBjcmVhdGVOb3RBRnVuY3Rpb25FcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0
KiBjcmVhdGVFcnJvckZvckludmFsaWRHbG9iYWxBc3NpZ25tZW50KEV4ZWNTdGF0ZSosIGNvbnN0
IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Qcm90b3R5cGUuY3BwCmluZGV4IDk3MGQwMTI4NmNhODA5ZjgwYzkxZjMxMzc1Y2YyZmMyODM2
MzIyYjQuLmFhODc1NjEwM2I3MjQwN2QyNzc3ZWRiNmFmZDYxNWRhZmY0NmQxNzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAK
QEAgLTUzLDcgKzUzLDcgQEAgdm9pZCBGdW5jdGlvblByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIERvbnREZWxldGUg
fCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIAotdm9pZCBGdW5jdGlvblByb3RvdHlwZTo6YWRk
RnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNGdW5jdGlvbioqIGNhbGxGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGFwcGx5RnVu
Y3Rpb24pCit2b2lkIEZ1bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlvblByb3BlcnRpZXMoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Z1bmN0aW9uKiog
Y2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGhh
c0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKIApA
QCAtNjIsNiArNjIsNyBAQCB2b2lkIEZ1bmN0aW9uUHJvdG90eXBlOjphZGRGdW5jdGlvblByb3Bl
cnRpZXMoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZwogCiAgICAgKmFwcGx5RnVu
Y3Rpb24gPSBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xv
YmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5hcHBseVB1YmxpY05h
bWUoKSwgZnVuY3Rpb25Qcm90b3R5cGVBcHBseUNvZGVHZW5lcmF0b3Iodm0pLCBEb250RW51bSk7
CiAgICAgKmNhbGxGdW5jdGlvbiA9IHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKHZtLCBnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmNhbGxQdWJsaWNOYW1lKCksIGZ1bmN0aW9uUHJvdG90eXBlQ2FsbENvZGVHZW5lcmF0b3Iodm0p
LCBEb250RW51bSk7CisgICAgKmhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24gPSBwdXREaXJlY3RC
dWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+aGFzSW5z
dGFuY2VTeW1ib2wsIGZ1bmN0aW9uUHJvdG90eXBlU3ltYm9sSGFzSW5zdGFuY2VDb2RlR2VuZXJh
dG9yKHZtKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogCiAgICAgSlNGdW5j
dGlvbiogYmluZEZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IDEsIHZtLnByb3BlcnR5TmFtZXMtPmJpbmQuc3RyaW5nKCksIGZ1bmN0aW9uUHJvdG9GdW5jQmlu
ZCk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMt
PmJpbmQsIGJpbmRGdW5jdGlvbiwgRG9udEVudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKaW5kZXggNTJjZThmMTFjNWRkN2QxMDMx
NTU2OTAzZTVhY2FiMGQyYWQ0YzBmOC4uYWJlNTMzYTMzYTFmMzc4ZmVkYjgyMTRmNTZjYzVhZmUw
ZmExZTY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Qcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
blByb3RvdHlwZS5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHBy
b3RvdHlwZTsKICAgICB9CiAKLSAgICB2b2lkIGFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIEpTRnVuY3Rpb24qKiBjYWxsRnVuY3Rpb24sIEpTRnVuY3Rp
b24qKiBhcHBseUZ1bmN0aW9uKTsKKyAgICB2b2lkIGFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTRnVuY3Rpb24qKiBjYWxsRnVuY3Rpb24sIEpTRnVu
Y3Rpb24qKiBhcHBseUZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogaGFzSW5zdGFuY2VTeW1ib2xGdW5j
dGlvbik7CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCmluZGV4
IDhjNWNjMmVkMzkwNDgyZWFjMmU3NzVhNGYwYzJkMmQ1YzRjOTllNjEuLjBmMDQ5ZjkwZmZiZTZh
YjczYjkxN2U5MTE3M2UyZDFmMWIyODE5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcApAQCAtNzQsNiArNzQsMjAgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ29uc3RydWN0KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdChleGVjLCB0YXJnZXRG
dW5jdGlvbiwgY29uc3RydWN0VHlwZSwgY29uc3RydWN0RGF0YSwgYXJncykpOwogfQogCitFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlzQm91bmRGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMp
Cit7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKHN0YXRpY19jYXN0PGJvb2w+
KGpzRHluYW1pY0Nhc3Q8SlNCb3VuZEZ1bmN0aW9uKj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MCkpKSkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhhc0luc3RhbmNlQm91
bmRGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNCb3VuZEZ1bmN0aW9uKiBib3Vu
ZE9iamVjdCA9IGpzQ2FzdDxKU0JvdW5kRnVuY3Rpb24qPihleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOwor
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYm91bmRPYmplY3QtPnRhcmdl
dEZ1bmN0aW9uKCktPmhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlKSkpOworfQorCisKIEpTQm91bmRG
dW5jdGlvbiogSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogdGFyZ2V0RnVuY3Rpb24sIEpTVmFsdWUgYm91bmRUaGlz
LCBKU1ZhbHVlIGJvdW5kQXJncywgaW50IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewog
ICAgIENvbnN0cnVjdERhdGEgY29uc3RydWN0RGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKaW5kZXggYWYyYTYzMjNkNTM3MWUyMDU2MGMw
ZjI1NTZjYzViODdmNjI1NjhlOS4uMDQwZWNiZjc4MjY3NDJjNTdmNzg5MDZhMTU2YTA0ODc4NzU5
MjcwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1
bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmgKQEAgLTMyLDExICszMiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ2FsbChFeGVjU3RhdGUqKTsKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNvbnN0cnVjdChFeGVjU3RhdGUqKTsK
K0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSop
OworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24o
RXhlY1N0YXRlKik7CiAKIGNsYXNzIEpTQm91bmRGdW5jdGlvbiA6IHB1YmxpYyBKU0Z1bmN0aW9u
IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRnVuY3Rpb24gQmFzZTsKLSAgICBjb25zdCBzdGF0
aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNIYXNJbnN0YW5jZSB8IEJhc2U6
OlN0cnVjdHVyZUZsYWdzOworICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IE92ZXJyaWRlc0hhc0luc3RhbmNlRmxhZyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAg
ICAgc3RhdGljIEpTQm91bmRGdW5jdGlvbiogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBK
U09iamVjdCogdGFyZ2V0RnVuY3Rpb24sIEpTVmFsdWUgYm91bmRUaGlzLCBKU1ZhbHVlIGJvdW5k
QXJncywgaW50LCBjb25zdCBTdHJpbmcmKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCBlY2M4MmJhNjI4YmYxNmYyMTE3
OWEyYzQ4ZGJhNzNhZjdlZTcyYTgxLi44MmYyNDExNmNhYTI2Yzk0MjNlNWZhMDFiOWU0OTI5YTQ4
MmJmMDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCkBAIC0yODYsMTIgKzI4NiwxNCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Ojppbml0
KFZNJiB2bSkKICAgICBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBJ
bnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90
b3R5cGUuZ2V0KCkpKTsKICAgICBKU0Z1bmN0aW9uKiBjYWxsRnVuY3Rpb24gPSAwOwogICAgIEpT
RnVuY3Rpb24qIGFwcGx5RnVuY3Rpb24gPSAwOwotICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPmFk
ZEZ1bmN0aW9uUHJvcGVydGllcyhleGVjLCB0aGlzLCAmY2FsbEZ1bmN0aW9uLCAmYXBwbHlGdW5j
dGlvbik7CisgICAgSlNGdW5jdGlvbiogaGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbiA9IDA7Cisg
ICAgbV9mdW5jdGlvblByb3RvdHlwZS0+YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKGV4ZWMsIHRoaXMs
ICZjYWxsRnVuY3Rpb24sICZhcHBseUZ1bmN0aW9uLCAmaGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlv
bik7CiAgICAgbV9jYWxsRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBjYWxsRnVuY3Rpb24pOwogICAg
IG1fYXBwbHlGdW5jdGlvbi5zZXQodm0sIHRoaXMsIGFwcGx5RnVuY3Rpb24pOwogICAgIG1fYXJy
YXlQcm90b1ZhbHVlc0Z1bmN0aW9uLnNldCh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCB0aGlzLCAwLCB2bS5wcm9wZXJ0eU5hbWVzLT52YWx1ZXMuc3RyaW5nKCksIGFycmF5UHJvdG9G
dW5jVmFsdWVzKSk7CiAgICAgbV9pbml0aWFsaXplUHJvbWlzZUZ1bmN0aW9uLnNldCh2bSwgdGhp
cywgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3BlcmF0aW9u
c0luaXRpYWxpemVQcm9taXNlQ29kZUdlbmVyYXRvcih2bSksIHRoaXMpKTsKICAgICBtX25ld1By
b21pc2VDYXBhYmlsaXR5RnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBKU0Z1bmN0aW9uOjpjcmVhdGVC
dWlsdGluRnVuY3Rpb24odm0sIHByb21pc2VPcGVyYXRpb25zTmV3UHJvbWlzZUNhcGFiaWxpdHlD
b2RlR2VuZXJhdG9yKHZtKSwgdGhpcykpOworICAgIG1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNl
U3ltYm9sRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBoYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKTsK
ICAgICBtX251bGxHZXR0ZXJGdW5jdGlvbi5zZXQodm0sIHRoaXMsIE51bGxHZXR0ZXJGdW5jdGlv
bjo6Y3JlYXRlKHZtLCBOdWxsR2V0dGVyRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhp
cywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpKTsKICAgICBtX251bGxTZXR0ZXJGdW5jdGlv
bi5zZXQodm0sIHRoaXMsIE51bGxTZXR0ZXJGdW5jdGlvbjo6Y3JlYXRlKHZtLCBOdWxsU2V0dGVy
RnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5n
ZXQoKSkpKTsKICAgICBtX29iamVjdFByb3RvdHlwZS5zZXQodm0sIHRoaXMsIE9iamVjdFByb3Rv
dHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywganNOdWxsKCkpKSk7CkBAIC01MjEsNiArNTIzLDkgQEAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBD
b25zdHJ1Y3QKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1RvSW50ZWdlciA9IEpTRnVuY3Rp
b246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0VG9JbnRlZ2VyQ29kZUdl
bmVyYXRvcih2bSksIHRoaXMpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jVHlwZWRBcnJh
eUxlbmd0aCA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIHR5cGVk
QXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgpOwogICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5j
VHlwZWRBcnJheVNvcnQgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmluZygp
LCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk7CisgICAgSlNGdW5jdGlvbiogcHJpdmF0
ZUZ1bmNJc0JvdW5kRnVuY3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0
cmluZygpLCBpc0JvdW5kRnVuY3Rpb24pOworICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jSGFz
SW5zdGFuY2VCb3VuZEZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBT
dHJpbmcoKSwgaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKTsKKyAgICBKU0Z1bmN0aW9uKiBwcml2
YXRlRnVuY0luc3RhbmNlT2YgPSBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIHRoaXMsIDAsIFN0cmlu
ZygpLCBvYmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YpOwogCiAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPk5hTiwganNOYU4oKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLApAQCAtNTM1LDYgKzU0MCw5IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5UeXBlRXJyb3JQcml2YXRlTmFt
ZSwgbV90eXBlRXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
dHlwZWRBcnJheUxlbmd0aFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGgs
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlTb3J0UHJpdmF0ZU5hbWUsIHByaXZh
dGVGdW5jVHlwZWRBcnJheVNvcnQsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwK
KyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmlzQm91bmRGdW5j
dGlvblByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0lzQm91bmRGdW5jdGlvbiwgRG9udEVudW0gfCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+aGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uUHJpdmF0ZU5hbWUsIHByaXZhdGVG
dW5jSGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5pbnN0
YW5jZU9mUHJpdmF0ZU5hbWUsIHByaXZhdGVGdW5jSW5zdGFuY2VPZiwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+QnVpbHRpbkxvZ1ByaXZhdGVOYW1lLCBidWlsdGluTG9nLCBEb250RW51bSB8IERv
bnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9w
ZXJ0eU5hbWVzLT5BcnJheVByaXZhdGVOYW1lLCBhcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSB8
IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5w
cm9wZXJ0eU5hbWVzLT5OdW1iZXJQcml2YXRlTmFtZSwgbnVtYmVyQ29uc3RydWN0b3IsIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKQEAgLTgzMiw2ICs4NDAsNyBAQCB2b2lkIEpT
R2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fYXJyYXlQcm90b1ZhbHVl
c0Z1bmN0aW9uKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9pbml0aWFsaXpl
UHJvbWlzZUZ1bmN0aW9uKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9uZXdQ
cm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uKTsKKyAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVj
dC0+bV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAgICAgdmlzaXRv
ci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIpOwogICAg
IHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX21vZHVsZUxvYWRlcik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDYyZDE0OTVl
MTllOTZkMTVkNTMyNjc0NzFiNGQzNjg0NGUzYzkyYTIuLjlhMGFlNjIyZjY2NGYwOTdmNTllOGMw
OTg2Nzc4NWIzOTM4YzVhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaApAQCAtMjIyLDYgKzIyMiw3IEBAIHByb3RlY3RlZDoKICAgICBXcml0
ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9hcnJheVByb3RvVmFsdWVzRnVuY3Rpb247CiAgICAgV3Jp
dGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbjsKICAgICBX
cml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gbV9uZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uOwor
ICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5
bWJvbEZ1bmN0aW9uOwogICAgIFdyaXRlQmFycmllcjxHZXR0ZXJTZXR0ZXI+IG1fdGhyb3dUeXBl
RXJyb3JHZXR0ZXJTZXR0ZXI7CiAKICAgICBXcml0ZUJhcnJpZXI8TW9kdWxlTG9hZGVyT2JqZWN0
PiBtX21vZHVsZUxvYWRlcjsKQEAgLTQzOCw2ICs0MzksNyBAQCBwdWJsaWM6CiAgICAgSlNGdW5j
dGlvbiogYXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hcnJheVBy
b3RvVmFsdWVzRnVuY3Rpb24uZ2V0KCk7IH0KICAgICBKU0Z1bmN0aW9uKiBpbml0aWFsaXplUHJv
bWlzZUZ1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFsaXplUHJvbWlzZUZ1bmN0aW9u
LmdldCgpOyB9CiAgICAgSlNGdW5jdGlvbiogbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbi5nZXQoKTsgfQor
ICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbi5n
ZXQoKTsgfQogICAgIEdldHRlclNldHRlciogdGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoVk0m
IHZtKQogICAgIHsKICAgICAgICAgaWYgKCFtX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IGEwZjc3MTk0
N2MwOGY3ZTEzMjEwOTY3MmJhODMzY2QyMWI4MmJkMzQuLjAzZTg4YWE2YzlmZGRlMDc3M2NlYjI3
Y2NhN2IzNTA0MWUxNDg2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5jcHAKQEAgLTE0NTcsMTggKzE0NTcsNDAgQEAgY29uc3QgSGFzaFRhYmxlVmFsdWUqIEpT
T2JqZWN0OjpmaW5kUHJvcGVydHlIYXNoRW50cnkoUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkK
ICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBKU09iamVjdDo6aGFzSW5zdGFuY2UoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorYm9vbCBKU09iamVjdDo6aGFzSW5zdGFuY2UoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIGhhc0luc3RhbmNlVmFsdWUpCiB7CiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKworICAgIGlmICghaGFzSW5zdGFuY2VWYWx1ZS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpICYmIGhhc0luc3RhbmNlVmFsdWUgIT0gZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpKSB7Cisg
ICAgICAgIENhbGxEYXRhIGNhbGxEYXRhOworICAgICAgICBDYWxsVHlwZSBjYWxsVHlwZSA9IEpT
Qzo6Z2V0Q2FsbERhdGEoaGFzSW5zdGFuY2VWYWx1ZSwgY2FsbERhdGEpOworICAgICAgICBpZiAo
Y2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7CisgICAgICAgICAgICB2bS50aHJvd0V4Y2VwdGlv
bihleGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yaGFzSW5zdGFuY2VW
YWx1ZU5vdEZ1bmN0aW9uKGV4ZWMsIHRoaXMpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorCisgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgICAg
IGFyZ3MuYXBwZW5kKHZhbHVlKTsKKyAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBjYWxsKGV4ZWMs
IGhhc0luc3RhbmNlVmFsdWUsIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpcywgYXJncyk7CisgICAg
ICAgIHJldHVybiByZXN1bHQudG9Cb29sZWFuKGV4ZWMpOworICAgIH0KKwogICAgIFR5cGVJbmZv
IGluZm8gPSBzdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpOwogICAgIGlmIChpbmZvLmltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UoKSkKICAgICAgICAgcmV0dXJuIGRlZmF1bHRIYXNJbnN0YW5j
ZShleGVjLCB2YWx1ZSwgZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUp
KTsKICAgICBpZiAoaW5mby5pbXBsZW1lbnRzSGFzSW5zdGFuY2UoKSkKICAgICAgICAgcmV0dXJu
IG1ldGhvZFRhYmxlKHZtKS0+Y3VzdG9tSGFzSW5zdGFuY2UodGhpcywgZXhlYywgdmFsdWUpOwot
ICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1l
dGVyRXJyb3IoZXhlYywgdGhpcykpOworICAgIHZtLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0
ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JOb3RGdW5jdGlvbihleGVjLCB0aGlzKSk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEpTT2JqZWN0OjpoYXNJbnN0YW5jZShFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgSlNWYWx1ZSBoYXNJbnN0YW5jZVZh
bHVlID0gZ2V0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5oYXNJbnN0YW5jZVN5bWJvbCk7
CisKKyAgICByZXR1cm4gaGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIGhhc0luc3RhbmNlVmFsdWUp
OworfQorCiBib29sIEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvKQogewogICAgIGlmICghdmFsdWUuaXNPYmpl
Y3QoKSkKQEAgLTE0ODcsNiArMTUwOSwxNCBAQCBib29sIEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5z
dGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQ
cml2YXRlRnVuY0luc3RhbmNlT2YoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgdmFs
dWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKKyAgICBKU1ZhbHVlIHByb3RvID0gZXhl
Yy0+dW5jaGVja2VkQXJndW1lbnQoMSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
Qm9vbGVhbihKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90bykp
KTsKK30KKwogdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVt
ZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKGV4ZWMtPnZtKCkp
LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBhYmY1YTViZDk2
ZjdlMTQyYWVkMDlmNzdhMzM5ZjQzZTg4YWEwZjZmLi44NjcxNmZjZTJiZDNjM2JmZDdiNjU0NDBh
ZWZlYzY1ODRmNWUxZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKQEAgLTQ4NSw2ICs0ODUsNyBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBz
dGF0aWMgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoY29uc3QgSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQ
cmVmZXJyZWRQcmltaXRpdmVUeXBlKTsKIAorICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgaGFz
SW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBoYXNJbnN0YW5jZVZh
bHVlKTsKICAgICBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwogICAgIHN0
YXRpYyBib29sIGRlZmF1bHRIYXNJbnN0YW5jZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBKU1ZhbHVl
IHByb3RvdHlwZVByb3BlcnR5KTsKIApAQCAtOTc0LDYgKzk3NSw4IEBAIHByaXZhdGU6CiAgICAg
fQogfTsKIAorSlNfRVhQT1JUX1BSSVZBVEUgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YoRXhlY1N0YXRlKik7CisKIGlubGluZSBKU0ZpbmFs
T2JqZWN0KiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGUoCiAgICAgRXhlY1N0YXRlKiBleGVjLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKaW5kZXggY2ExMTIwY2JlNWNmNDVkYWY4NTEw
OWZlMzAxM2FiOTM1NWVkYzNmYy4uMDlkODFlOTY5ZjJmOTc5ZDY3OThmODU5NWI2MmJhNjFkNWM4
ODlhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5m
by5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaApAQCAt
MzgsNyArMzgsNyBAQCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gMTsgLy8gV2ViQ29yZSB1c2VzIE1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQgdG8gbWFrZSBkb2N1bWVudC5hbGwgdW5kZXRlY3RhYmxlLgog
c3RhdGljIGNvbnN0IHVuc2lnbmVkIEltcGxlbWVudHNIYXNJbnN0YW5jZSA9IDEgPDwgMTsKLXN0
YXRpYyBjb25zdCB1bnNpZ25lZCBPdmVycmlkZXNIYXNJbnN0YW5jZSA9IDEgPDwgMjsKK3N0YXRp
YyBjb25zdCB1bnNpZ25lZCBPdmVycmlkZXNIYXNJbnN0YW5jZUZsYWcgPSAxIDw8IDI7IC8vIEZJ
WE1FOiBUaGlzIGlzIG9ubHkgdHJpdmlhbGx5IHVzZWQgYnkgdGhlIHJ1bnRpbWUgYW5kIHNob3Vs
ZCBiZSByZW1vdmVkOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUy
MDA1CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9
IDEgPDwgMzsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBUeXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERh
dGEgPSAxIDw8IDQ7IC8vIE5lZWQgdGhpcyBmbGFnIGlmIHlvdSBvdmVycmlkZSBnZXRDYWxsRGF0
YSgpIGFuZCB5b3Ugd2FudCB0eXBlb2YgdG8gdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIGl0IHNo
b3VsZCBzYXkgImZ1bmN0aW9uIi4gQ3VycmVudGx5IHdlIGFsd2F5cyBzZXQgdGhpcyBmbGFnIHdo
ZW4gd2Ugb3ZlcnJpZGUgZ2V0Q2FsbERhdGEoKS4KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgPSAxIDw8IDU7CkBAIC02OCw5ICs2OCw5IEBAIHB1Ymxp
YzoKICAgICAgICAgLCBtX2ZsYWdzMihvdXRPZkxpbmVUeXBlRmxhZ3MpCiAgICAgewogICAgICAg
ICAvLyBObyBvYmplY3QgdGhhdCBkb2Vzbid0IEltcGxlbWVudHNIYXNJbnN0YW5jZSBzaG91bGQg
b3ZlcnJpZGUgaXQhCi0gICAgICAgIEFTU0VSVCgobV9mbGFncyAmIChJbXBsZW1lbnRzSGFzSW5z
dGFuY2UgfCBPdmVycmlkZXNIYXNJbnN0YW5jZSkpICE9IE92ZXJyaWRlc0hhc0luc3RhbmNlKTsK
KyAgICAgICAgQVNTRVJUKChtX2ZsYWdzICYgKEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJy
aWRlc0hhc0luc3RhbmNlRmxhZykpICE9IE92ZXJyaWRlc0hhc0luc3RhbmNlRmxhZyk7CiAgICAg
ICAgIC8vIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgbWVhbnMgKEltcGxlbWVudHNIYXNJ
bnN0YW5jZSAmICFPdmVycmlkZXNIYXNJbnN0YW5jZSkKLSAgICAgICAgaWYgKChtX2ZsYWdzICYg
KEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlKSkgPT0gSW1wbGVt
ZW50c0hhc0luc3RhbmNlKQorICAgICAgICBpZiAoKG1fZmxhZ3MgJiAoSW1wbGVtZW50c0hhc0lu
c3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2VGbGFnKSkgPT0gSW1wbGVtZW50c0hhc0luc3Rh
bmNlKQogICAgICAgICAgICAgbV9mbGFncyB8PSBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNl
OwogICAgIH0KIApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgZmxhZ3Mo
KSBjb25zdCB7IHJldHVybiAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fZmxhZ3MyKSA8PCA4KSB8
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2ZsYWdzKTsgfQogICAgIGJvb2wgbWFzcXVlcmFkZXNB
c1VuZGVmaW5lZCgpIGNvbnN0IHsgcmV0dXJuIGlzU2V0T25GbGFnczEoTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCk7IH0KICAgICBib29sIGltcGxlbWVudHNIYXNJbnN0YW5jZSgpIGNvbnN0IHsgcmV0
dXJuIGlzU2V0T25GbGFnczEoSW1wbGVtZW50c0hhc0luc3RhbmNlKTsgfQotICAgIGJvb2wgb3Zl
cnJpZGVzSGFzSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKE92ZXJyaWRl
c0hhc0luc3RhbmNlKTsgfQorICAgIGJvb2wgb3ZlcnJpZGVzSGFzSW5zdGFuY2UoKSBjb25zdCB7
IHJldHVybiBpc1NldE9uRmxhZ3MxKE92ZXJyaWRlc0hhc0luc3RhbmNlRmxhZyk7IH0KICAgICBi
b29sIGltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9u
RmxhZ3MxKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UpOyB9CiAgICAgYm9vbCB0eXBlT2ZT
aG91bGRDYWxsR2V0Q2FsbERhdGEoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKFR5cGVP
ZlNob3VsZENhbGxHZXRDYWxsRGF0YSk7IH0KICAgICBib29sIG92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCgpIGNvbnN0IHsgcmV0dXJuIG92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdChpbmxp
bmVUeXBlRmxhZ3MoKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dyaXRlQmFycmllci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVC
YXJyaWVyLmgKaW5kZXggMGY3MGUxZWEwMGM2MjIwYWZkODAyNzg5NjgxYjlkOThjYWE4NGE5Ni4u
YjcyN2QxODVlNGQ3MGUxOTllZmZjZTBlMWFjYTA0Y2Y5NTI4MzU2NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV3JpdGVCYXJyaWVyLmgKQEAgLTE1MiwxNCArMTUyLDkgQEAg
cHVibGljOgogICAgIGJvb2wgaXNHZXR0ZXJTZXR0ZXIoKSBjb25zdCB7IHJldHVybiBnZXQoKS5p
c0dldHRlclNldHRlcigpOyB9CiAgICAgYm9vbCBpc0N1c3RvbUdldHRlclNldHRlcigpIGNvbnN0
IHsgcmV0dXJuIGdldCgpLmlzQ3VzdG9tR2V0dGVyU2V0dGVyKCk7IH0KICAgICAKLSAgICBKU1Zh
bHVlKiBzbG90KCkKKyAgICBKU1ZhbHVlKiBzbG90KCkgY29uc3QKICAgICB7IAotICAgICAgICB1
bmlvbiB7Ci0gICAgICAgICAgICBFbmNvZGVkSlNWYWx1ZSogdjsKLSAgICAgICAgICAgIEpTVmFs
dWUqIHNsb3Q7Ci0gICAgICAgIH0gdTsKLSAgICAgICAgdS52ID0gJm1fdmFsdWU7Ci0gICAgICAg
IHJldHVybiB1LnNsb3Q7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SlNWYWx1ZSo+KCZt
X3ZhbHVlKTsKICAgICB9CiAgICAgCiAgICAgaW50MzJfdCogdGFnUG9pbnRlcigpIHsgcmV0dXJu
ICZiaXR3aXNlX2Nhc3Q8RW5jb2RlZFZhbHVlRGVzY3JpcHRvcio+KCZtX3ZhbHVlKS0+YXNCaXRz
LnRhZzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1s
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1sCmluZGV4IDdlNjNhYmQ4MmVm
NGNiYjU5NGMyNTBlM2U5ZDhlN2EwODEzYTcyZmIuLmYxMTk3ZDEzZGZlNWJmMTVlOTk0ZjRkYWMy
YWEzODNjNTMzNzEyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYueWFtbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwKQEAgLTEx
ODMsNyArMTE4Myw3IEBACiAtIHBhdGg6IGVzNi9XZWFrU2V0X2l0ZXJhdG9yX2Nsb3NpbmcuanMK
ICAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1i
b2wuaGFzSW5zdGFuY2UuanMKLSAgY21kOiBydW5FUzYgOmZhaWwKKyAgY21kOiBydW5FUzYgOm5v
cm1hbAogLSBwYXRoOiBlczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5pc0NvbmNhdFNwcmVh
ZGFibGUuanMKICAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3dlbGwta25vd25fc3lt
Ym9sc19TeW1ib2wubWF0Y2guanMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvaW5zdGFuY2VvZi1jdXN0b20taGFzaW5zdGFuY2VzeW1ib2wuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2luc3RhbmNlb2YtY3VzdG9tLWhhc2luc3Rh
bmNlc3ltYm9sLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0MjFhOWQyYWI4YTY1NTI2MzZiOTllZWIzYTFkYzk5
NmJlNjVlOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2luc3RhbmNlb2YtY3VzdG9tLWhhc2luc3RhbmNlc3ltYm9sLmpzCkBAIC0wLDAgKzEs
MjYgQEAKK2Z1bmN0aW9uIENvbnN0cnVjdG9yKHgpIHt9CisKK2ZvbyA9IENvbnN0cnVjdG9yLmJp
bmQodGhpcyk7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShDb25zdHJ1Y3RvciwgU3ltYm9sLmhh
c0luc3RhbmNlLCB7dmFsdWU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH19KTsKKworeCA9
IG5ldyBDb25zdHJ1Y3RvcigpOworCitmdW5jdGlvbiBpbnN0YW5jZU9mKGEsIGIpIHsKKyAgICBy
ZXR1cm4gYSBpbnN0YW5jZW9mIGI7Cit9Citub0lubGluZShpbnN0YW5jZU9mKTsKKworZnVuY3Rp
b24gYm9keSgpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDsgaSsrKSB7CisgICAgICAgIGlmIChpbnN0YW5jZU9mKHgsIENvbnN0cnVjdG9yKSkK
KyAgICAgICAgICAgIHJlc3VsdCsrOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9Citu
b0lubGluZShib2R5KTsKKworaWYgKGJvZHkoKSkKKyAgICB0aHJvdyAicmVzdWx0IGluY29ycmVj
dCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N5bWJv
bC1oYXNJbnN0YW5jZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc3lt
Ym9sLWhhc0luc3RhbmNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4MDFlYjhiNGQ3ZGNmMWJmM2FjNjdlYmY2
NGVmZDcyZjZmYTNkMzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3N5bWJvbC1oYXNJbnN0YW5jZS5qcwpAQCAtMCwwICsxLDU0IEBACisvLyBU
aGlzIGZpbGUgdGVzdHMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgU3ltYm9sLmhhc0luc3RhbmNlLgor
CisKKy8vIFRlc3QgYSBjdXN0b20gU3ltYm9sLmhhc0luc3RhbmNlIG9uIGEgZnVuY3Rpb24gb2Jq
ZWN0LgorZnVuY3Rpb24gQ29uc3RydWN0b3IoeCkge30KK2ZvbyA9IG5ldyBDb25zdHJ1Y3Rvcigp
OworCitpZiAoIShmb28gaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpCisgICAgdGhyb3cgInNob3Vs
ZCBiZSBpbnN0YW5jZW9mIjsKKworT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbnN0cnVjdG9yLCBT
eW1ib2wuaGFzSW5zdGFuY2UsIHt2YWx1ZTogZnVuY3Rpb24odmFsdWUpIHsKKyAgICBpZiAodGhp
cyAhPT0gQ29uc3RydWN0b3IpCisgICAgICAgIHRocm93ICJ8dGhpc3wgc2hvdWxkIGJlIENvbnN0
cnVjdG9yIjsKKyAgICBpZiAodmFsdWUgIT09IGZvbykKKyAgICAgICAgdGhyb3cgImZpcnN0IGFy
Z3VtZW50IHNob3VsZCBiZSBmb28iOworICAgIHJldHVybiBmYWxzZTsKK30gfSk7CisKKworaWYg
KGZvbyBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKQorICAgIHRocm93ICJzaG91bGQgbm90IGJlIGlu
c3RhbmNlb2YiOworCisKKy8vIFRlc3QgU3ltYm9sLmhhc0luc3RhbmNlIG9uIGFuIG9yZGluYXJ5
IG9iamVjdC4KK09iamVjdENsYXNzID0ge30KK09iamVjdENsYXNzW1N5bWJvbC5oYXNJbnN0YW5j
ZV0gPSBmdW5jdGlvbiAodmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgKHR5
cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIgfHwgdHlwZW9mIHZhbHVlID09PSAiZnVuY3Rpb24iKTsK
K30KKworaWYgKCEoZm9vIGluc3RhbmNlb2YgT2JqZWN0Q2xhc3MpKQorICAgIHRocm93ICJmb28g
c2hvdWxkIGJlIGFuIGluc3RhbmNlb2YgT2JqZWN0Q2xhc3MiOworCitpZiAoIShDb25zdHJ1Y3Rv
ciBpbnN0YW5jZW9mIE9iamVjdENsYXNzKSkKKyAgICB0aHJvdyAiQ29uc3RydWN0b3Igc2hvdWxk
IGJlIGFuIGluc3RhbmNlb2YgT2JqZWN0Q2xhc3MiOworCitOdW1iZXJDbGFzcyA9IHt9CitOdW1i
ZXJDbGFzc1tTeW1ib2wuaGFzSW5zdGFuY2VdID0gZnVuY3Rpb24gKHZhbHVlKSB7CisgICAgcmV0
dXJuIHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJlciI7Cit9CisKK2lmICghKDEgaW5zdGFuY2VvZiBO
dW1iZXJDbGFzcykpCisgICAgdGhyb3cgIjEgc2hvdWxkIGJlIGFuIGluc3RhbmNlb2YgTnVtYmVy
Q2xhc3MiOworCitpZiAoZm9vIGluc3RhbmNlb2YgTnVtYmVyQ2xhc3MpCisgICAgdGhyb3cgImZv
byBzaG91bGQgYmUgYW4gaW5zdGFuY2VvZiBOdW1iZXJDbGFzcyI7CisKKworLy8gVGVzdCB0aGUg
RnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0gd29ya3Mgd2hlbiBhY3R1YWxs
eSBjYWxsZWQuCitkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihG
dW5jdGlvbi5wcm90b3R5cGUsIFN5bWJvbC5oYXNJbnN0YW5jZSk7CitpZiAoZGVzY3JpcHRvci53
cml0YWJsZSAhPT0gZmFsc2UgfHwgZGVzY3JpcHRvci5jb25maWd1cmFibGUgIT09IGZhbHNlIHx8
IGRlc2NyaXB0b3IuZW51bWVyYWJsZSAhPT0gZmFsc2UpCisgICAgdGhyb3cgIkZ1bmN0aW9uLnBy
b3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdIGhhcyBhIGJhZCBkZXNjcmlwdG9yIjsKKworaWYg
KCFGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXS5jYWxsKENvbnN0cnVjdG9y
LCBmb28pKQorICAgIHRocm93ICJGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNl
XSBzaG91bGQgY2xhaW0gdGhhdCBmb28gaXMgYW4gaW5zdGFuY2VvZiBDb25zdHJ1Y3RvciI7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMDg2MWFkZjViZmU2MzNjMjRmMjhhNTI1MDVlNjRlOWU0NjZkYWIwYy4uMDkzNjdhZWNk
NTkxZmJiMzcwNDQ4ZjAyNGE0NWJiYTBhMTZkMGIyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisy
MDE1LTEyLTA5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFtFUzZdIEFkZCBzdXBwb3J0IGZvciBTeW1ib2wuaGFzSW5zdGFuY2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTgzOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0ZXN0cyB0byByZWZsZWN0
IHRoZSBjaGFuZ2VzIHRvIGluc3RhbmNlb2YgaW4gRVM2LgorCisgICAgICAgIEFkZGVkIGEgbmV3
IHJlZ3Jlc3Npb24gdGVzdCBmb3IgYm91bmQgZnVuY3Rpb25zIGluIGluc3RhbmNlb2YKKyAgICAg
ICAgYXMgdGhlIHBlcmZvbWFuY2Ugb24gYm91bmQgZnVuY3Rpb25zIHNob3VsZCwgdG8gc29tZSBk
ZWdyZWUsCisgICAgICAgIHJlZmxlY3QgdGhlIHBlcmZvcm1hbmNlIG9uIEMtQVBJIHVzZXJzLgor
CisgICAgICAgICoganMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGpzL2V4Y2VwdGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBqcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMv
aW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvcmVncmVz
cy9pbnN0YW5jZW9mLWJvdW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVn
cmVzcy9pbnN0YW5jZW9mLWJvdW5kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2luc3RhbmNlb2YtYm91bmQuanM6IEFkZGVkLgorICAgICAgICAoQ29uc3Ry
dWN0b3IpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzOgorCiAyMDE1LTEyLTA5ICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBzdG9yYWdlL2luZGV4ZWRk
Yi9tZXRhZGF0YS5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9PYmplY3Qt
Z2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9PYmplY3Qt
Z2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKaW5kZXggY2FlMjE5YmFmOTJiNTk1MGJl
NzdmOTQ1N2RhMDJjYzUxOTY3Zjk4My4uN2Y1ZGU1ZjgyMjc4ZmI3MTk4YTg5MjkxNjIyNTEyZTNl
MGUyOGRhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5
TmFtZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9w
ZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApAQCAtNjEsNyArNjEsNyBAQCBQQVNTIGdldFNvcnRlZE93
blByb3BlcnR5TmFtZXMoRXJyb3IpIGlzIFsnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJ10K
IFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhFcnJvci5wcm90b3R5cGUpIGlzIFsnY29u
c3RydWN0b3InLCAnbWVzc2FnZScsICduYW1lJywgJ3RvU3RyaW5nJ10KIFBBU1MgZ2V0U29ydGVk
T3duUHJvcGVydHlOYW1lcyhNYXRoKSBpcyBbJ0UnLCdMTjEwJywnTE4yJywnTE9HMTBFJywnTE9H
MkUnLCdQSScsJ1NRUlQxXzInLCdTUVJUMicsJ2FicycsJ2Fjb3MnLCdhY29zaCcsJ2FzaW4nLCdh
c2luaCcsJ2F0YW4nLCdhdGFuMicsJ2F0YW5oJywnY2JydCcsJ2NlaWwnLCdjbHozMicsJ2Nvcycs
J2Nvc2gnLCdleHAnLCdleHBtMScsJ2Zsb29yJywnZnJvdW5kJywnaHlwb3QnLCdpbXVsJywnbG9n
JywnbG9nMTAnLCdsb2cxcCcsJ2xvZzInLCdtYXgnLCdtaW4nLCdwb3cnLCdyYW5kb20nLCdyb3Vu
ZCcsJ3NpZ24nLCdzaW4nLCdzaW5oJywnc3FydCcsJ3RhbicsJ3RhbmgnLCd0cnVuYyddCiBQQVNT
IGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoSlNPTikgaXMgWydwYXJzZScsICdzdHJpbmdpZnkn
XQotUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFN5bWJvbCkgaXMgWydmb3InLCAnaXRl
cmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZScsICd0b1N0cmlu
Z1RhZycsICd1bnNjb3BhYmxlcyddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3lt
Ym9sKSBpcyBbJ2ZvcicsICdoYXNJbnN0YW5jZScsICdpdGVyYXRvcicsICdrZXlGb3InLCAnbGVu
Z3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3RyaW5nVGFnJywgJ3Vuc2NvcGFibGVzJ10K
IFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTeW1ib2wucHJvdG90eXBlKSBpcyBbJ2Nv
bnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXQogUEFTUyBnbG9iYWxQcm9wZXJ0eU5h
bWVzLmluZGV4T2YoJ05hTicpICE9IC0xIGlzIHRydWUKIFBBU1MgZ2xvYmFsUHJvcGVydHlOYW1l
cy5pbmRleE9mKCdJbmZpbml0eScpICE9IC0xIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL2V4Y2VwdGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL2V4Y2VwdGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVjdGVkLnR4dAppbmRleCA5ZjlhZTY5Yzg2
Y2U5ZjBlYWE3MTBmZjBhNmEwZDU1M2ExOGUwYTJjLi43NzRkMjI3ZDAzNWFkZjE3ZjNiY2UwOTgw
NTExZjJlMzJlNDI3NWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24tZm9y
LW5vbm9iamVjdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWZv
ci1ub25vYmplY3QtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiAKIFBBU1MgbmV3IHt9LnVuZGVmaW5lZCB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyB7fS51
bmRlZmluZWQnKS4KLVBBU1MgMSBpbnN0YW5jZW9mIHt9LnVuZGVmaW5lZCB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiB7fS51bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5n
ICcxIGluc3RhbmNlb2Yge30udW5kZWZpbmVkJykuCitQQVNTIDEgaW5zdGFuY2VvZiB7fS51bmRl
ZmluZWQgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3Rh
bmNlb2YgaXMgbm90IGFuIG9iamVjdC4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWlu
c3RhbmNlb2YtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWluc3RhbmNl
b2YtZXhwZWN0ZWQudHh0CmluZGV4IGVkNjhiNmNjOGEwN2E1YTc1Mjk1OTU3M2UzM2UxODVhZWEz
MTk1YjYuLjBlZmQ3YTg2ZTA5YzQ3MDBkNGNkMWQ2OGVkMjk5ZmZmYTgzMjdjOTUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1pbnN0YW5jZW9mLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQKQEAgLTMs
MTEgKzMsMTEgQEAgVGVzdCBmb3IgZXJyb3IgbWVzc2FnZXMgZm9yIGluc3RhbmNlb2YKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTICdpbnN0YW5jZW9mJyBpbnN0YW5jZW9mICAg
ICdpbnN0YW5jZW9mJyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAiaW5zdGFuY2VvZiIgaXMg
bm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcnaW5zdGFuY2VvZicgaW5zdGFuY2VvZiAgICAn
aW5zdGFuY2VvZicnKS4KLVBBU1MgMjAgaW5zdGFuY2VvZiAgICAgJ2hlbGxvJyAgIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6ICdoZWxsbycgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5n
ICcyMCBpbnN0YW5jZW9mICAgICAnaGVsbG8nJykuCitQQVNTICdpbnN0YW5jZW9mJyBpbnN0YW5j
ZW9mICAgICdpbnN0YW5jZW9mJyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5k
IHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgorUEFTUyAyMCBpbnN0YW5jZW9m
ICAgICAnaGVsbG8nICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRl
IG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KIFBBU1MgMjAgaW5zdGFuY2VvZiAgICAg
e30gICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2
YWx1YXRpbmcgJzIwIGluc3RhbmNlb2YgICAgIHt9JykuCi1QQVNTIDIwIGluc3RhbmNlb2YgICAg
IHt9LmZvbyAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjoge30uZm9vIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoZXZhbHVhdGluZyAnMjAgaW5zdGFuY2VvZiAgICAge30uZm9vJykuCi1QQVNTIDIwIGlu
c3RhbmNlb2YgICAgIHRydWUgICAgICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogdHJ1ZSBp
cyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzIwIGluc3RhbmNlb2YgICAgIHRydWUnKS4K
K1BBU1MgMjAgaW5zdGFuY2VvZiAgICAge30uZm9vICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgorUEFTUyAy
MCBpbnN0YW5jZW9mICAgICB0cnVlICAgICAgIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJp
Z2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2luc3RhbmNlLW9mLWltbWVkaWF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvaW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQKaW5kZXggMTEwMGRiOGFi
N2JjOWFkYzBlNmU0ZmI2ZDExZWQ5NWE2Y2VjOGQ5NS4uZTZlZmM2YTU3MTE1ZmRmODA5NDRkMTUz
YzZhZmRkYTIyNmRiNjQ1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvaW5zdGFuY2Utb2Yt
aW1tZWRpYXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvaW5zdGFuY2Utb2Yt
aW1tZWRpYXRlcy1leHBlY3RlZC50eHQKQEAgLTMsOSArMyw5IEBAIFRoaXMgdGVzdCBtYWtlcyBz
dXJlIHRoYXQgaW5zdGFuY2Ugb2YgYmVoYXZlcyBjb3JyZWN0bHkgd2hlbiB0aGUgdmFsdWUsIGNv
bnN0cnVjCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyAoMSBpbnN0YW5jZW9m
IDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IDEgaXMgbm90IGEgZnVuY3Rpb24uIChldmFs
dWF0aW5nICcxIGluc3RhbmNlb2YgMScpLgotUEFTUyAoe30gaW5zdGFuY2VvZiAxKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiAxIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAne30g
aW5zdGFuY2VvZiAxJykuCi1QQVNTIChvYmogaW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiAxIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnb2JqIGluc3RhbmNl
b2YgMScpLgorUEFTUyAoMSBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCitQQVNTICh7
fSBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lk
ZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCitQQVNTIChvYmogaW5zdGFuY2VvZiAx
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2Vv
ZiBpcyBub3QgYW4gb2JqZWN0LgogUEFTUyAoMSBpbnN0YW5jZW9mIHt9KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiB7fSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzEgaW5zdGFu
Y2VvZiB7fScpLgogUEFTUyAoe30gaW5zdGFuY2VvZiB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjoge30gaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICd7fSBpbnN0YW5jZW9mIHt9
JykuCiBQQVNTIChvYmogaW5zdGFuY2VvZiB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
e30gaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICdvYmogaW5zdGFuY2VvZiB7fScpLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnN0YW5jZW9mLWJvdW5kLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODgyYmNiZWI5OWQ0ZjViMWMyNDg4OTc4YjY0OTMwMzllZDhlNmVh
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1i
b3VuZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2luc3RhbmNlb2Yt
Ym91bmQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9u
IHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC5o
dG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnN0YW5jZW9mLWJvdW5kLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjUxMjA2NGM1YjZlN2Y3ZDkzZWMyMTNkNmU0MTZiMmMxMGQ0YmU0OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC5odG1sCkBA
IC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2luc3RhbmNlb2YtYm91bmQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvaW5zdGFuY2Vv
Zi1ib3VuZC5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2luc3RhbmNl
b2YtYm91bmQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRmOGU1MzVlNTU2OGQ1NWY0ODMyYTM1YjUxMGViMmRi
N2YwNTUyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2luc3RhbmNlb2YtYm91bmQuanMKQEAgLTAsMCArMSwzMCBAQAorLy8gVGhpcyB0ZXN0
cyB0aGF0IHdlIGRvIG5vdCBjb25zdGFudGx5IE9TUiBvbiBpbnN0YW5jZW9mIHdoZXJlIHRoZSBS
SFMgaXMgYSBib3VuZCBmdW5jdGlvbi4KKy8vIFdoaWxlIHRoaXMgYm91bmQgZnVuY3Rpb25zIGFy
ZSB1bmxpa2VseSB0byBiZSBwYXNzZWQgdG8gaW5zdGFuY2VvZiBvZnRlbiBDLUFQSSB1c2VycyB1
c2UKKy8vIHRoZSBzYW1lIG1ldGhvZCBvZiBvdmVycmlkaW5nIGluc3RhbmNlb2YgZXhwcmVzc2lv
bnMuCisKKworZnVuY3Rpb24gQ29uc3RydWN0b3IoeCkgeworICAgIHRoaXMueCA9IHg7Cit9CisK
K0NvbnN0cnVjdG9yLnByb3RvdHlwZSA9IHt9CisKK0JvdW5kQ29uc3RydWN0b3IgPSBDb25zdHJ1
Y3Rvci5iaW5kKCk7Citmb28gPSBuZXcgQ29uc3RydWN0b3IoMSk7CitiYXIgPSBuZXcgQm91bmRD
b25zdHJ1Y3RvcigxKTsKKworaSA9IDA7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICgh
KGZvbyBpbnN0YW5jZW9mIEJvdW5kQ29uc3RydWN0b3IpKSB7CisgICAgICAgIHRocm93IG5ldyBF
cnJvcigiZm9vIHNob3VsZCBiZSBhbiBpbnN0YW5jZW9mIEJvdW5kQ29uc3RydWN0b3IiKTsKKyAg
ICB9CisgICAgbGV0IGogPSAwOworICAgIGZvciAoO2ogPCAxMDAwOyBqKyspIHt9CisgICAgcmV0
dXJuIGo7Cit9Citub0lubGluZSh0ZXN0KTsKKworZm9yIChpID0gMDsgaSA8IDUwMDAwOyBpKysp
CisgICAgdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09i
amVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCmluZGV4IGNiNWVjMjRmYWY5MDdmODAyMzc5
ODVmOGM4YWNlODM4ZGQ2OGUwODkuLjc0YmNiNzhhNTIwYzhjNzBmZGRlODY0MDc2ODE4MmMwNzIz
NjUzYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0
T3duUHJvcGVydHlOYW1lcy5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2Jq
ZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKQEAgLTcwLDcgKzcwLDcgQEAgdmFyIGV4cGVjdGVk
UHJvcGVydHlOYW1lc1NldCA9IHsKICAgICAiRXJyb3IucHJvdG90eXBlIjogIlsnY29uc3RydWN0
b3InLCAnbWVzc2FnZScsICduYW1lJywgJ3RvU3RyaW5nJ10iLAogICAgICJNYXRoIjogIlsnRScs
J0xOMTAnLCdMTjInLCdMT0cxMEUnLCdMT0cyRScsJ1BJJywnU1FSVDFfMicsJ1NRUlQyJywnYWJz
JywnYWNvcycsJ2Fjb3NoJywnYXNpbicsJ2FzaW5oJywnYXRhbicsJ2F0YW4yJywnYXRhbmgnLCdj
YnJ0JywnY2VpbCcsJ2NsejMyJywnY29zJywnY29zaCcsJ2V4cCcsJ2V4cG0xJywnZmxvb3InLCdm
cm91bmQnLCdoeXBvdCcsJ2ltdWwnLCdsb2cnLCdsb2cxMCcsJ2xvZzFwJywnbG9nMicsJ21heCcs
J21pbicsJ3BvdycsJ3JhbmRvbScsJ3JvdW5kJywnc2lnbicsJ3NpbicsJ3NpbmgnLCdzcXJ0Jywn
dGFuJywndGFuaCcsJ3RydW5jJ10iLAogICAgICJKU09OIjogIlsncGFyc2UnLCAnc3RyaW5naWZ5
J10iLAotICAgICJTeW1ib2wiOiAiWydmb3InLCAnaXRlcmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0
aCcsICduYW1lJywgJ3Byb3RvdHlwZScsICd0b1N0cmluZ1RhZycsICd1bnNjb3BhYmxlcyddIiwK
KyAgICAiU3ltYm9sIjogIlsnZm9yJywgJ2hhc0luc3RhbmNlJywgJ2l0ZXJhdG9yJywgJ2tleUZv
cicsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnLCAndG9TdHJpbmdUYWcnLCAndW5zY29w
YWJsZXMnXSIsCiAgICAgIlN5bWJvbC5wcm90b3R5cGUiOiAiWydjb25zdHJ1Y3RvcicsICd0b1N0
cmluZycsICd2YWx1ZU9mJ10iCiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267142</attachid>
            <date>2015-12-10 17:20:19 -0800</date>
            <delta_ts>2015-12-17 13:25:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151839-20151210171946.patch</filename>
            <type>text/plain</type>
            <size>118013</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MjA2MWIwYTQyNzZkOGNiYWIwYTJkZGVmYWQ3MDJlMjgwMTA2NmY0Li5lNDRmMjBmNjdkZDFjNmU4
MjNmYThmOTFkNTg2MWQwMGRkODM3YzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjIgQEAKKzIwMTUtMTItMTAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBhZGRzIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5jZSwgdW5mb3J0dW5hdGVseSBp
biBvcmRlciB0byBwcmV2ZW50CisgICAgICAgIHJlZ3Jlc3Npb25zIHNldmVyYWwgbmV3IGJ5dGVj
b2RlcyBhbmQgREZHIElSIG5vZGVzIHdlcmUgbmVjZXNzYXJ5LiBCZWZvcmUsIFN5bWJvbC5oYXNJ
bnN0YW5jZQorICAgICAgICB3aGVuIGV4ZWN1dGluZyBhbiBpbnN0YW5jZW9mIGV4cHJlc3Npb24g
d2Ugd291bGQgZW1pdCB0aHJlZSBieXRlY29kZXM6IG92ZXJyaWRlc19oYXNfaW5zdGFuY2UsIGdl
dF9ieV9pZCwKKyAgICAgICAgdGhlbiBpbnN0YW5jZW9mLiBBcyB0aGUgc3BlYyBoYXMgY2hhbmdl
ZCwgd2UgZW1pdCBhIG1vcmUgY29tcGxpY2F0ZWQgc2V0IG9mIGJ5dGVjb2RlcyBpbiBhZGRpdGlv
biB0byBzb21lCisgICAgICAgIG5ldyBvbmVzLiBGaXJzdCB0aGUgcm9sZSBvZiBvdmVycmlkZXNf
aGFzX2luc3RhbmNlIGFuZCBpdHMgY29ycmVzcG9uZGluZyBERkcgbm9kZSBoYXZlIGNoYW5nZWQu
IE5vdyBpdCByZXR1cm5zCisgICAgICAgIGEganMtYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIg
dGhlIFJIUyBvZiB0aGUgaW5zdGFuY2VvZiBleHByZXNzaW9uIChmcm9tIGhlcmUgb24gY2FsbGVk
IHRoZSBjb25zdHJ1Y3RvciBmb3Igc2ltcGxpY2l0eSkKKyAgICAgICAgbmVlZHMgbm9uLWRlZmF1
bHQgYmVoYXZpb3IgZm9yIHJlc29sdmluZyB0aGUgZXhwcmVzc2lvbi4gaS5lLiBUaGUgY29uc3Ry
dWN0b3IgaGFzIGEgU3ltYm9sLmhhc0luc3RhbmNlIHRoYXQgZGlmZmVycyBmcm9tIHRoZSBvbmUg
b24KKyAgICAgICAgRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0gb3IgaXMg
YSBib3VuZC9DLUFQSSBmdW5jdGlvbi4gT25jZSB3ZSBnZXQgdG8gdGhlIERGRyB0aGlzIG5vZGUg
aXMgZ2VuZXJhbGx5IGVsaW1pbmF0ZWQgYXMKKyAgICAgICAgd2UgY2FuIHByb3ZlIHRoZSB2YWx1
ZSBvZiBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgYSBjb25zdGFudC4gVGhlIHNlY29uZCBuZXcgYnl0
ZWNvZGUgaXMgaW5zdGFuY2VvZl9jdXN0b20uIGluc250YW5jZW9mX2N1c3RvbSwganVzdAorICAg
ICAgICBlbWl0cyBhIGNhbGwgdG8gc2xvdyBwYXRoIGNvZGUgdGhhdCBjb21wdXRlcyB0aGUgcmVz
dWx0LgorCisgICAgICAgIEluIHRoZSBERkcsIHRoZXJlIGlzIGFsc28gYSBuZXcgbm9kZSwgQ2hl
Y2tUeXBlSW5mb0ZsYWdzLCB3aGljaCBjaGVja3MgdGhlIHR5cGUgaW5mbyBmbGFncyBhcmUgY29u
c2lzdGVudCB3aXRoIHRoZSBvbmVzIHByb3ZpZGVkIGFuZAorICAgICAgICBPU1IgZXhpdHMgaWYg
dGhlIGZsYWdzIGFyZSBub3QuIEFkZGl0aW9uYWxseSwgd2UgYXR0ZW1wdCB0byBwcm92ZSB0aGF0
IHRoZSByZXN1bHQgb2YgQ2hlY2tIYXNWYWx1ZSB3aWxsIGJlIGEgY29uc3RhbnQgYW5kIHRyYW5z
Zm9ybQorICAgICAgICBpdCBpbnRvIGEgQ2hlY2tUeXBlSW5mb0ZsYWdzIGZvbGxvd2VkIGJ5IGEg
SlNDb25zdGFudC4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAg
ICogYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanM6CisgICAgICAgIChzeW1ib2xIYXNJbnN0
YW5jZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcDoKKyAgICAg
ICAgKEpTQzo6aXNCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6CisgICAgICAg
IChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpjb21w
dXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2su
Y3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAgICAgICog
Ynl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2luZFRvU3RyaW5nKToK
KyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5dGVjb2RlL1ByZWNp
c2VKdW1wVGFyZ2V0cy5jcHA6CisgICAgICAgIChKU0M6OmdldEp1bXBUYXJnZXRzRm9yQnl0ZWNv
ZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0T3ZlcnJpZGVz
SGFzSW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEluc3Rh
bmNlT2ZDdXN0b20pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNr
SGFzSW5zdGFuY2UpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAg
ICAgICAoSlNDOjpJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBkZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAg
ICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAg
ICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBo
YXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3BwOgorICAg
ICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHSGVhcExvY2F0aW9u
Lmg6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNDZWxsT3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzVHlwZUluZm9PcGVy
YW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjp0eXBlSW5mb09wZXJhbmQpOgorICAgICAg
ICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
Q2hlY2tUeXBlSW5mb0ZsYWdzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUluc3RhbmNlT2ZDdXN0b20pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKToK
KyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaDoK
KyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja1R5cGVJbmZvRmxh
Z3MpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVJbnN0
YW5jZU9mQ3VzdG9tKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlQ2hlY2tIYXNJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVC5jcHA6
CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChK
U0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoK
KyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVy
YXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfaW5zdGFuY2VvZik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9m
X2N1c3RvbSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZik6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20pOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVkLgor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9pbnN0YW5jZW9mKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3Vz
dG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mX2N1c3RvbSk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5jZSk6IERl
bGV0ZWQuCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9M
TEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhf
REVDTCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
OgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAgIChKU0M6
OmludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIpOgorICAgICAgICAoSlND
OjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZk5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIpOgor
ICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZmhhc0luc3RhbmNlVmFsdWVO
b3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlSW52YWxpZElu
c3RhbmNlb2ZQYXJhbWV0ZXJFcnJvck5vdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6Y3JlYXRl
SW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcmhhc0luc3RhbmNlVmFsdWVOb3RGdW5jdGlv
bik6CisgICAgICAgIChKU0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlv
blByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiBydW50aW1lL0Z1
bmN0aW9uUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3Bw
OgorICAgICAgICAoSlNDOjppc0JvdW5kRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpoYXNJbnN0
YW5jZUJvdW5kRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6
CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpT
R2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OnZpc2l0
Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6Omhhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJpdmF0ZUZ1bmNJbnN0
YW5jZU9mKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGlt
ZS9KU1R5cGVJbmZvLmg6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpUeXBlSW5mbyk6CisgICAg
ICAgIChKU0M6OlR5cGVJbmZvOjpvdmVycmlkZXNIYXNJbnN0YW5jZSk6CisgICAgICAgICogcnVu
dGltZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTxVbmtu
b3duPjo6c2xvdCk6CisgICAgICAgICogdGVzdHMvZXM2LnlhbWw6CisgICAgICAgICogdGVzdHMv
c3RyZXNzL2luc3RhbmNlb2YtY3VzdG9tLWhhc2luc3RhbmNlc3ltYm9sLmpzOiBBZGRlZC4KKyAg
ICAgICAgKENvbnN0cnVjdG9yKToKKyAgICAgICAgKHZhbHVlKToKKyAgICAgICAgKGluc3RhbmNl
T2YpOgorICAgICAgICAoYm9keSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3N5bWJvbC1oYXNJ
bnN0YW5jZS5qczogQWRkZWQuCisgICAgICAgIChDb25zdHJ1Y3Rvcik6CisgICAgICAgICh2YWx1
ZSk6CisgICAgICAgIChPYmplY3RDbGFzcy5TeW1ib2wuaGFzSW5zdGFuY2UpOgorICAgICAgICAo
TnVtYmVyQ2xhc3MuU3ltYm9sLmhhc0luc3RhbmNlKToKKwogMjAxNS0xMi0wOSAgU2FhbSBiYXJh
dGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgZ2VuZXJhdG9ycycgZmVh
dHVyZXMuanNvbiB0byBpbmRpY2F0ZSB0aGF0IHdlIGhhdmUgYSBzcGVjIGNvbXBsaWFudCBpbXBs
ZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3Qu
aAppbmRleCBhMWE3N2ZkODhhZDNhM2E5YzJiNWRmNzk4Yzc3MTdhNTA0MmNlMWFjLi4yYjQ3MzRk
YjQ0N2VhOTE0NzVmYTM4NmIzMGM5YjA3YzU4N2RkMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByb3RlY3Rl
ZDoKIAogcHVibGljOgogICAgIHR5cGVkZWYgUGFyZW50IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBQcm9oaWJp
dHNQcm9wZXJ0eUNhY2hpbmcgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNl
cHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgSW1w
bGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzIHwgVHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhOworICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgUHJv
aGliaXRzUHJvcGVydHlDYWNoaW5nIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50
ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8
IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlRmxhZyB8IE92ZXJy
aWRlc0dldFByb3BlcnR5TmFtZXMgfCBUeXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERhdGE7CiAKICAg
ICB+SlNDYWxsYmFja09iamVjdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanMKaW5kZXggMWFhMDI0MjJiMTgwNGVlZmMwMzZm
NTVjYTFlMjVlYTdmYzEzMGYyZC4uMzY0YmM0MzI4ODI1ODQzMWUwYjZiNmJkMTIzMzY2MTliZGFj
MDUyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0Z1bmN0aW9u
UHJvdG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlv
blByb3RvdHlwZS5qcwpAQCAtMzYsMyArMzYsMTggQEAgZnVuY3Rpb24gYXBwbHkodGhpc1ZhbHVl
LCBhcmd1bWVudFZhbHVlcykKIAogICAgIHJldHVybiB0aGlzLkBhcHBseSh0aGlzVmFsdWUsIGFy
Z3VtZW50VmFsdWVzKTsKIH0KKworLy8gRklYTUU6IHRoaXMgc2hvdWxkIGhhdmUgYSBkaWZmZXJl
bnQgbmFtZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM2Mwor
ZnVuY3Rpb24gc3ltYm9sSGFzSW5zdGFuY2UodmFsdWUpCit7CisgICAgInVzZSBzdHJpY3QiOwor
CisgICAgaWYgKHR5cGVvZiB0aGlzICE9PSAiZnVuY3Rpb24iKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoQGlzQm91bmRGdW5jdGlvbih0aGlzKSkKKyAgICAgICAgcmV0dXJuIEBo
YXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24odGhpcywgdmFsdWUpOworCisgICAgbGV0IHRhcmdldCA9
IHRoaXMucHJvdG90eXBlOworICAgIHJldHVybiBAaW5zdGFuY2VPZih2YWx1ZSwgdGFyZ2V0KTsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJh
c2ljQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFz
aWNCbG9jay5jcHAKaW5kZXggNTk2MDY0YzQwNjgyNDk3ODA4OWM0NjQzZjFjM2RmYmQwNTM0Yjk5
Zi4uZjMyOWQwYjBmODkyZGNlMGIwMzhlZjFlM2VjOWIwM2Y0MmNlZWM3MiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAK
QEAgLTU4LDcgKzU4LDYgQEAgc3RhdGljIGJvb2wgaXNCcmFuY2goT3Bjb2RlSUQgb3Bjb2RlSUQp
CiAgICAgY2FzZSBvcF9zd2l0Y2hfaW1tOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAg
Y2FzZSBvcF9zd2l0Y2hfc3RyaW5nOgotICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2luc3RhbmNlOgog
ICAgIGNhc2Ugb3Bfc2F2ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNv
biBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgppbmRl
eCBiY2NhYjA0Y2Q5ZmI4MGM3NDAyMDc1MTQwNGM0OTMyNjE4MzdhZGNkLi4wNTNiOGRjOWI4NjRm
MWI4NmI0Y2VjN2FhNjAxZjdjZTJmMDNmMmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC00NSw4ICs0NSw5IEBACiAgICAgICAg
ICAgICB7ICJuYW1lIiA6ICJvcF9iaXRhbmQiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAg
IHsgIm5hbWUiIDogIm9wX2JpdHhvciIsICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfYml0b3IiLCAibGVuZ3RoIiA6IDUgfSwKLSAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX2NoZWNrX2hhc19pbnN0YW5jZSIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAgICAg
eyAibmFtZSIgOiAib3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSIsICJsZW5ndGgiIDogNCB9LAog
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW5zdGFuY2VvZiIsICJsZW5ndGgiIDogNCB9LAor
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaW5zdGFuY2VvZl9jdXN0b20iLCAibGVuZ3RoIiA6
IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3R5cGVvZiIsICJsZW5ndGgiIDogMyB9
LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfaXNfdW5kZWZpbmVkIiwgImxlbmd0aCIgOiAz
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pc19ib29sZWFuIiwgImxlbmd0aCIgOiAz
IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5o
CmluZGV4IGQ4Y2NjNjdkODQ2OGY0MTZkYWUxYzk0MGIwZjcxNGMyYTJlOWNhNzkuLjllZGE5Mzcy
NDhjODk1N2ViMTgzZDEyNDEyZDJmOGYzZGQ1YTQ1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC0xNjksNyArMTY5LDYgQEAgdm9p
ZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbDoK
ICAgICBjYXNlIG9wX2luOgogICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjoKLSAgICBjYXNlIG9wX2No
ZWNrX2hhc19pbnN0YW5jZToKICAgICBjYXNlIG9wX2FkZDoKICAgICBjYXNlIG9wX211bDoKICAg
ICBjYXNlIG9wX2RpdjoKQEAgLTE5NSw2ICsxOTQsOCBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0
ZWNvZGVPZmZzZXQoCiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bj
b2RlSUQsIGluc3RydWN0aW9uWzNdLnUub3BlcmFuZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CisgICAgY2FzZSBvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgorICAgIGNhc2Ugb3BfaW5zdGFu
Y2VvZl9jdXN0b206CiAgICAgY2FzZSBvcF9oYXNfc3RydWN0dXJlX3Byb3BlcnR5OgogICAgIGNh
c2Ugb3BfY29uc3RydWN0X3ZhcmFyZ3M6CiAgICAgY2FzZSBvcF9jYWxsX3ZhcmFyZ3M6CkBAIC0z
NTAsOCArMzUxLDkgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9j
ayogY29kZUJsb2NrLCBCeXRlY29kZUJhc2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX2NvbnN0
cnVjdDoKICAgICBjYXNlIG9wX2dldF9ieV9pZDoKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5n
dGg6Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CisgICAgY2FzZSBvcF9vdmVycmlk
ZXNfaGFzX2luc3RhbmNlOgogICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjoKKyAgICBjYXNlIG9wX2lu
c3RhbmNlb2ZfY3VzdG9tOgogICAgIGNhc2Ugb3BfZ2V0X2J5X3ZhbDoKICAgICBjYXNlIG9wX3R5
cGVvZjoKICAgICBjYXNlIG9wX2lzX3VuZGVmaW5lZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggYTJmMzI2YmYxZGNhMmMyZTA5ODY4ZmY5M2Iw
M2U1MmIzY2ExYWI3Zi4uN2JhZjkzYzlkOTRmYWY4Yjc5M2ZjOGYzNjc4MjdiZDBhOTZkYzcwMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTEw
MTMsMTMgKzEwMTMsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAg
ICAgICsraXQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIG9w
X2NoZWNrX2hhc19pbnN0YW5jZTogeworICAgICAgICBjYXNlIG9wX292ZXJyaWRlc19oYXNfaW5z
dGFuY2U6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAo
KytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3Bl
cmFuZDsKLSAgICAgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9u
LCBpdCwgImNoZWNrX2hhc19pbnN0YW5jZSIpOwotICAgICAgICAgICAgb3V0LnByaW50ZigiJXMs
ICVzLCAlcywgJWQoLT4lZCkiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1l
KHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsg
b2Zmc2V0KTsKKyAgICAgICAgICAgIHByaW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0
aW9uLCBpdCwgIm92ZXJyaWRlc19oYXNfaW5zdGFuY2UiKTsKKyAgICAgICAgICAgIG91dC5wcmlu
dGYoIiVzLCAlcywgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIx
KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewpAQCAtMTAzMCw2ICsxMDI5
LDE1IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBvdXQucHJp
bnRmKCIlcywgJXMsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShy
MSkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjIpLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOiB7CisgICAgICAg
ICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCByMSA9ICgr
K2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7
CisgICAgICAgICAgICBpbnQgcjMgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIHBy
aW50TG9jYXRpb25BbmRPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImluc3RhbmNlb2ZfY3Vz
dG9tIik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzLCAlcyIsIHJlZ2lzdGVy
TmFtZShyMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIy
KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMykuZGF0YSgpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdW5zaWduZWQ6IHsKICAgICAgICAgICAgIHByaW50
VW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInVuc2lnbmVkIik7CiAgICAgICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0
S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwCmlu
ZGV4IDI1MjQzMDBmNzMzNzY5ZWQ5YmUwMDFkNzY2MGYzNjg1OWI2ZDg5MDYuLjMwYzVlNjQxYTc5
NjY2ODJkY2JiNzcwNDJmNTMwYWYzNDI1MTMxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0V4aXRLaW5kLmNwcApAQCAtNTAsNiArNTAsOCBAQCBjb25zdCBjaGFyKiBleGl0
S2luZFRvU3RyaW5nKEV4aXRLaW5kIGtpbmQpCiAgICAgICAgIHJldHVybiAiQmFkQ29uc3RhbnRD
YWNoZSI7CiAgICAgY2FzZSBCYWRJbmRleGluZ1R5cGU6CiAgICAgICAgIHJldHVybiAiQmFkSW5k
ZXhpbmdUeXBlIjsKKyAgICBjYXNlIEJhZFR5cGVJbmZvRmxhZ3M6CisgICAgICAgIHJldHVybiAi
QmFkVHlwZUluZm9GbGFncyI7CiAgICAgY2FzZSBPdmVyZmxvdzoKICAgICAgICAgcmV0dXJuICJP
dmVyZmxvdyI7CiAgICAgY2FzZSBOZWdhdGl2ZVplcm86CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9FeGl0S2luZC5oCmluZGV4IDZmOGM1MTIwMDcwMDUwNWJmOTFkZWY3NDkwMDNlMzAw
NWUzZjcxODYuLjcwMGQzODgxZjQxNzI4MjFhZjg5N2VjY2Q1ZTllYThmNzUzNTE0ODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCkBAIC0zNyw2ICszNyw3IEBA
IGVudW0gRXhpdEtpbmQgOiB1aW50OF90IHsKICAgICBCYWRDYWNoZSwgLy8gV2UgZXhpdGVkIGJl
Y2F1c2UgYW4gaW5saW5lIGNhY2hlIHdhcyB3cm9uZy4KICAgICBCYWRDb25zdGFudENhY2hlLCAv
LyBXZSBleGl0ZWQgYmVjYXVzZSBhIGNhY2hlIG9uIGEgd2VhayBjb25zdGFudCAodXN1YWxseSBh
IHByb3RvdHlwZSkgd2FzIHdyb25nLgogICAgIEJhZEluZGV4aW5nVHlwZSwgLy8gV2UgZXhpdGVk
IGJlY2F1c2UgYW4gaW5kZXhpbmcgdHlwZSB3YXMgd3JvbmcuCisgICAgQmFkVHlwZUluZm9GbGFn
cywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbWFkZSBhbiBpbmNvcnJlY3QgYXNzdW1wdGlvbiBh
Ym91dCB3aGF0IFR5cGVJbmZvIGZsYWdzIHdlIHdvdWxkIHNlZS4KICAgICBPdmVyZmxvdywgLy8g
V2UgZXhpdGVkIGJlY2F1c2Ugb2Ygb3ZlcmZsb3cuCiAgICAgTmVnYXRpdmVaZXJvLCAvLyBXZSBl
eGl0ZWQgYmVjYXVzZSB3ZSBlbmNvdW50ZXJlZCBuZWdhdGl2ZSB6ZXJvLgogICAgIEludDUyT3Zl
cmZsb3csIC8vIFdlIGV4aXRlZCBiZWNhdXNlIG9mIGFuIEludDUyIG92ZXJmbG93LgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNw
cAppbmRleCAyYmJmMzEzNDQ1NmE5YWU1MmE2MTkyOGJjNGFlMDcxMzVlYTYxZTNjLi5lMmNiMDAw
NDgzNzk0YmE5MmQ1MTBkY2Y1ZmE5OTQ4ODVhMjNkYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1bXBUYXJnZXRzLmNwcApAQCAtNzQsOSAr
NzQsNiBAQCBzdGF0aWMgdm9pZCBnZXRKdW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVC
bG9jayogY29kZUJsb2NrLCBJbnRlcnByZXRlciogaQogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVj
b2RlT2Zmc2V0ICsgY3VycmVudFsyXS51Lm9wZXJhbmQpOwogICAgICAgICBicmVhazsKICAgICB9
Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6Ci0gICAgICAgIG91dC5hcHBlbmQoYnl0
ZWNvZGVPZmZzZXQgKyBjdXJyZW50WzRdLnUub3BlcmFuZCk7Ci0gICAgICAgIGJyZWFrOwogICAg
IGNhc2Ugb3BfbG9vcF9oaW50OgogICAgICAgICBvdXQuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0KTsK
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDRhNGY2MzM4NzBkYTUzNzAwZDU0
NGE1NzY5NTNkZWQyMzBkMzM4OTIuLmRjOWIzNzBjMGU0MjljZDE4MThkNmIzMWI0ZjFhOWUzZGVi
MGFmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0yMDk5LDE0ICsyMDk5LDEzIEBAIHZvaWQgQnl0
ZWNvZGVHZW5lcmF0b3I6OmNyZWF0ZVZhcmlhYmxlKAogICAgIH0KIH0KIAotdm9pZCBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdENoZWNrSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3Rl
cklEKiB2YWx1ZSwgUmVnaXN0ZXJJRCogYmFzZSwgTGFiZWwqIHRhcmdldCkKK1JlZ2lzdGVySUQq
IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0T3ZlcnJpZGVzSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1
ZSkKIHsKLSAgICBzaXplX3QgYmVnaW4gPSBpbnN0cnVjdGlvbnMoKS5zaXplKCk7Ci0gICAgZW1p
dE9wY29kZShvcF9jaGVja19oYXNfaW5zdGFuY2UpOworICAgIGVtaXRPcGNvZGUob3Bfb3ZlcnJp
ZGVzX2hhc19pbnN0YW5jZSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgo
KSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHZhbHVlLT5pbmRleCgpKTsKLSAgICBpbnN0
cnVjdGlvbnMoKS5hcHBlbmQoYmFzZS0+aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKHRhcmdldC0+YmluZChiZWdpbiwgaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7CisgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKGNvbnN0cnVjdG9yLT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoaGFzSW5zdGFuY2VWYWx1ZS0+aW5kZXgoKSk7CisgICAgcmV0dXJuIGRzdDsK
IH0KIAogLy8gSW5kaWNhdGVzIHRoZSBsZWFzdCB1cHBlciBib3VuZCBvZiByZXNvbHZlIHR5cGUg
YmFzZWQgb24gbG9jYWwgc2NvcGUuIFRoZSBieXRlY29kZSBsaW5rZXIKQEAgLTIyNzMsNiArMjI3
MiwxNiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEluc3RhbmNlT2YoUmVn
aXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2YWx1ZQogICAgIHJldHVybiBkc3Q7CiB9CiAKK1Jl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SW5zdGFuY2VPZkN1c3RvbShSZWdpc3Rl
cklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVn
aXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1ZSkKK3sKKyAgICBlbWl0T3Bjb2RlKG9wX2luc3RhbmNl
b2ZfY3VzdG9tKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKKyAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodmFsdWUtPmluZGV4KCkpOworICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChjb25zdHJ1Y3Rvci0+aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKGhhc0luc3RhbmNlVmFsdWUtPmluZGV4KCkpOworICAgIHJldHVybiBkc3Q7Cit9CisKIFJl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0QnlJZChSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5KQogewogICAgIG1f
Y29kZUJsb2NrLT5hZGRQcm9wZXJ0eUFjY2Vzc0luc3RydWN0aW9uKGluc3RydWN0aW9ucygpLnNp
emUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXggYWNjNzJjZmNiZTU1YmZmMGU2MWJiMWJlNjM0NjIxNGFm
OGEyOTk2NS4uMDBiNGZkZTM3N2FkYTIyOGIxZjExZTA3OThjNTJlMzhmYzc5OGVlOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaApAQCAtNTM0LDggKzUzNCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdp
c3RlcklEKiBlbWl0SW5jKFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXREZWMoUmVnaXN0ZXJJRCogc3JjRHN0KTsKIAotICAgICAgICB2b2lkIGVtaXRDaGVja0hh
c0luc3RhbmNlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQq
IGJhc2UsIExhYmVsKiB0YXJnZXQpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0T3ZlcnJpZGVz
SGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVn
aXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbnN0
YW5jZU9mKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQqIGJh
c2VQcm90b3R5cGUpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW5zdGFuY2VPZkN1c3RvbShS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklEKiBjb25zdHJ1Y3Rv
ciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRUeXBlT2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRV
bmFyeU9wKG9wX3R5cGVvZiwgZHN0LCBzcmMpOyB9CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJ
bihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiBiYXNl
KSB7IHJldHVybiBlbWl0QmluYXJ5T3Aob3BfaW4sIGRzdCwgcHJvcGVydHksIGJhc2UsIE9wZXJh
bmRUeXBlcygpKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggYWRkOTc5YzU0NzgwMmI0MDIwZGViYjY4MjI0ZTMy
YzIyMDE1MmY3My4uNDc5NGIzYzk0ZDkxMGRiMjZjYjMxMDljY2FhYmJkNDlkOTY3YTg0MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcApAQCAtMTY1OSwyMiArMTY1OSw0OSBAQCBSZWdpc3RlcklEKiBUaHJvd2FibGVCaW5hcnlP
cE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogCiBS
ZWdpc3RlcklEKiBJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
c3JjMSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2V4cHIxLCBtX3JpZ2h0
SGFzQXNzaWdubWVudHMsIG1fZXhwcjItPmlzUHVyZShnZW5lcmF0b3IpKTsKLSAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gc3JjMiA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIyKTsKKyAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gaGFzSW5zdGFuY2VWYWx1ZSA9IGdlbmVyYXRvci5uZXdUZW1wb3Jhcnko
KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaXNPYmplY3QgPSBnZW5lcmF0b3IubmV3VGVtcG9y
YXJ5KCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGlzQ3VzdG9tID0gZ2VuZXJhdG9yLm5ld1Rl
bXBvcmFyeSgpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm90b3R5cGUgPSBnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGRzdFJlZyA9IGdlbmVyYXRv
ci5maW5hbERlc3RpbmF0aW9uKGRzdCwgc3JjMS5nZXQoKSk7Ci0gICAgUmVmUHRyPExhYmVsPiB0
YXJnZXQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFs
dWUgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9leHByMSwgbV9yaWdodEhh
c0Fzc2lnbm1lbnRzLCBtX2V4cHIyLT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IGNvbnN0cnVjdG9yID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcjIpOworICAg
IFJlZlB0cjxSZWdpc3RlcklEPiBkc3RSZWcgPSBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihk
c3QsIHZhbHVlLmdldCgpKTsKKyAgICBSZWZQdHI8TGFiZWw+IGN1c3RvbSA9IGdlbmVyYXRvci5u
ZXdMYWJlbCgpOworICAgIFJlZlB0cjxMYWJlbD4gZG9uZSA9IGdlbmVyYXRvci5uZXdMYWJlbCgp
OworICAgIFJlZlB0cjxMYWJlbD4gdHlwZUVycm9yID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CiAK
ICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwg
ZGl2b3RFbmQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRDaGVja0hhc0luc3RhbmNlKGRzdFJlZy5n
ZXQoKSwgc3JjMS5nZXQoKSwgc3JjMi5nZXQoKSwgdGFyZ2V0LmdldCgpKTsKKyAgICBnZW5lcmF0
b3IuZW1pdElzT2JqZWN0KGlzT2JqZWN0LmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSk7CisgICAg
Z2VuZXJhdG9yLmVtaXRKdW1wSWZGYWxzZShpc09iamVjdC5nZXQoKSwgdHlwZUVycm9yLmdldCgp
KTsKIAogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFy
dCgpLCBkaXZvdEVuZCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQocHJvdG90eXBlLmdl
dCgpLCBzcmMyLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBl
KTsKKyAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoaGFzSW5zdGFuY2VWYWx1ZS5nZXQoKSwgY29u
c3RydWN0b3IuZ2V0KCksIGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVzLT5oYXNJbnN0YW5j
ZVN5bWJvbCk7CiAKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRp
dm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgUmVnaXN0ZXJJRCogcmVzdWx0ID0gZ2VuZXJh
dG9yLmVtaXRJbnN0YW5jZU9mKGRzdFJlZy5nZXQoKSwgc3JjMS5nZXQoKSwgcHJvdG90eXBlLmdl
dCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHRhcmdldC5nZXQoKSk7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKKyAgICBnZW5lcmF0b3IuZW1pdE92ZXJyaWRlc0hhc0luc3RhbmNlKGlzQ3VzdG9t
LmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSwgaGFzSW5zdGFuY2VWYWx1ZS5nZXQoKSk7CisKKyAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2
b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZUcnVlKGlzQ3VzdG9tLmdldCgpLCBj
dXN0b20uZ2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgp
LCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChw
cm90b3R5cGUuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVy
dHlOYW1lcy0+cHJvdG90eXBlKTsKKworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8o
ZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdElu
c3RhbmNlT2YoZHN0UmVnLmdldCgpLCB2YWx1ZS5nZXQoKSwgcHJvdG90eXBlLmdldCgpKTsKKwor
ICAgIGdlbmVyYXRvci5lbWl0SnVtcChkb25lLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0
TGFiZWwodHlwZUVycm9yLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFRocm93VHlwZUVycm9y
KCJSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0Iik7CisKKyAg
ICBnZW5lcmF0b3IuZW1pdExhYmVsKGN1c3RvbS5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1p
dEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAg
Z2VuZXJhdG9yLmVtaXRJbnN0YW5jZU9mQ3VzdG9tKGRzdFJlZy5nZXQoKSwgdmFsdWUuZ2V0KCks
IGNvbnN0cnVjdG9yLmdldCgpLCBoYXNJbnN0YW5jZVZhbHVlLmdldCgpKTsKKworICAgIGdlbmVy
YXRvci5lbWl0TGFiZWwoZG9uZS5nZXQoKSk7CisKKyAgICByZXR1cm4gZHN0UmVnLmdldCgpOwog
fQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9naWNhbE9wTm9kZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggZGM1N2ZkYmYx
NzFlMjU3NDQyYWVjZGVkYTM1YjhjYjJiNzc4NjRmNS4uNmE2MDY0NzA1Y2IzMjZlZDYzMTYzODM5
OWMwMjdlZTI0ZTUwZDJlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjQ0OCwxMiArMjQ0OCwx
NyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgotICAg
ICAgICAvLyBTYWRseSwgd2UgZG9uJ3QgcHJvcGFnYXRlIHRoZSBmYWN0IHRoYXQgd2UndmUgZG9u
ZSBDaGVja0hhc0luc3RhbmNlCisgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKKyAgICAg
ICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAKICAgICBjYXNlIEluc3RhbmNlT2Y6Ci0gICAgICAgIC8vIEFnYWluLCBzYWRs
eSwgd2UgZG9uJ3QgcHJvcGFnYXRlIHRoZSBmYWN0IHRoYXQgd2UndmUgZG9uZSBJbnN0YW5jZU9m
CisgICAgICAgIC8vIFNhZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZhY3QgdGhhdCB3ZSd2
ZSBkb25lIEluc3RhbmNlT2YKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNCb29s
ZWFuKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CisgICAg
ICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CiAg
ICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjQm9vbGVhbik7CiAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCkBAIC0yNTEwLDYgKzI1MTUsNyBAQCBib29sIEFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVy
TGltaQogICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9v
cDoKICAgICBjYXNlIENoZWNrVGllclVwQXRSZXR1cm46CisgICAgY2FzZSBDaGVja1R5cGVJbmZv
RmxhZ3M6CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDb3B5UmVzdDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMDBlOTFhNDI4
YjYxNWFiODhkMGI5ODRiYmUzZWE2MmQzZWI0NTUyMy4uNjkxZDUxNzMyNDNiZDdhZDAyYjUzMzU5
YjAzYjhlZTlkM2VlYjIwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKQEAgLTM0OTcsOSArMzQ5NywxNSBAQCBib29sIEJ5dGVDb2RlUGFy
c2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUo
b3BfY2hlY2tfdGR6KTsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2Ugb3BfY2hlY2tfaGFzX2lu
c3RhbmNlOgotICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0hhc0luc3RhbmNlLCBnZXQoVmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKSk7Ci0gICAgICAg
ICAgICBORVhUX09QQ09ERShvcF9jaGVja19oYXNfaW5zdGFuY2UpOworICAgICAgICBjYXNlIG9w
X292ZXJyaWRlc19oYXNfaW5zdGFuY2U6IHsKKyAgICAgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1
bHRIYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uID0gbV9pbmxpbmVTdGFja1RvcC0+bV9jb2RlQmxv
Y2stPmdsb2JhbE9iamVjdEZvcihjdXJyZW50Q29kZU9yaWdpbigpKS0+ZnVuY3Rpb25Qcm90b0hh
c0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKTsKKworICAgICAgICAgICAgTm9kZSogY29uc3RydWN0
b3IgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
KTsKKyAgICAgICAgICAgIE5vZGUqIGhhc0luc3RhbmNlVmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lz
dGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKworICAgICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9H
cmFwaChPdmVycmlkZXNIYXNJbnN0YW5jZSwgT3BJbmZvKG1fZ3JhcGguZnJlZXplKGRlZmF1bHRI
YXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKSksIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVZhbHVl
KSk7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlKTsK
KyAgICAgICAgfQogCiAgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewogICAgICAgICAgICAg
Tm9kZSogdmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQpKTsKQEAgLTM1MDcsNyArMzUxMywxNSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFwaChJbnN0YW5jZU9m
LCB2YWx1ZSwgcHJvdG90eXBlKSk7CiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9pbnN0YW5j
ZW9mKTsKICAgICAgICAgfQotICAgICAgICAgICAgCisKKyAgICAgICAgY2FzZSBvcF9pbnN0YW5j
ZW9mX2N1c3RvbTogeworICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lz
dGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUq
IGNvbnN0cnVjdG9yID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVZhbHVlID0gZ2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKSk7CisgICAgICAg
ICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQp
LCBhZGRUb0dyYXBoKEluc3RhbmNlT2ZDdXN0b20sIHZhbHVlLCBjb25zdHJ1Y3RvciwgaGFzSW5z
dGFuY2VWYWx1ZSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5zdGFuY2VvZl9jdXN0
b20pOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBvcF9pc191bmRlZmluZWQ6IHsKICAgICAg
ICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKSk7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKElzVW5kZWZpbmVkLCB2YWx1
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRp
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmlu
ZGV4IGJiNWIxZDExNWQ1YTdkMTc1M2NjMjc5Nzc3YTU5MGRhNTg5ZGU5MjUuLmI1YjJiZWVmODBm
MzAwMzg4NTIxODhmYWE1NTIwM2JmMDMyNDEwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTEyOCw4ICsxMjgsOSBAQCBDYXBhYmlsaXR5
TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3BfcHJvZmlsZV90eXBlOgogICAgIGNhc2Ugb3BfcHJv
ZmlsZV9jb250cm9sX2Zsb3c6CiAgICAgY2FzZSBvcF9tb3Y6Ci0gICAgY2FzZSBvcF9jaGVja19o
YXNfaW5zdGFuY2U6CisgICAgY2FzZSBvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgogICAgIGNh
c2Ugb3BfaW5zdGFuY2VvZjoKKyAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOgogICAgIGNh
c2Ugb3BfaXNfdW5kZWZpbmVkOgogICAgIGNhc2Ugb3BfaXNfYm9vbGVhbjoKICAgICBjYXNlIG9w
X2lzX251bWJlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xv
YmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5k
ZXggMjlmZTUwYzE3MTM1NjEzOWZiYzJiY2ZjOWIzN2I1ODYxMTQ0ZDlhYS4uZTgzYmIwODFlNDg5
NTMwMjk3YTY4ZDVhZTcyMGFiNWY2NTc3OTQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKQEAgLTcyNyw5ICs3MjcsMTQgQEAgdm9pZCBjbG9iYmVyaXplKEdy
YXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdy
aXRlRnUKICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwogICAgICAgICByZXR1cm47
CiAKLSAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxh
Z3M6CiAgICAgICAgIHJlYWQoSlNDZWxsX3R5cGVJbmZvRmxhZ3MpOwotICAgICAgICBkZWYoSGVh
cExvY2F0aW9uKENoZWNrSGFzSW5zdGFuY2VMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2Rl
LT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihD
aGVja1R5cGVJbmZvRmxhZ3NMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEo
KSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FzZSBPdmVycmlk
ZXNIYXNJbnN0YW5jZToKKyAgICAgICAgcmVhZChKU0NlbGxfdHlwZUluZm9GbGFncyk7CisgICAg
ICAgIGRlZihIZWFwTG9jYXRpb24oT3ZlcnJpZGVzSGFzSW5zdGFuY2VMb2MsIEpTQ2VsbF90eXBl
SW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0
dXJuOwogCiAgICAgY2FzZSBJbnN0YW5jZU9mOgpAQCAtNzM3LDYgKzc0MiwxMSBAQCB2b2lkIGNs
b2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVh
ZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEluc3RhbmNlT2ZMb2Ms
IEpTQ2VsbF9zdHJ1Y3R1cmVJRCwgbm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKSwgTGF6
eU5vZGUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0
b206CisgICAgICAgIHJlYWQoV29ybGQpOworICAgICAgICB3cml0ZShIZWFwKTsKKyAgICAgICAg
cmV0dXJuOworCiAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CiAgICAgICAgIHdyaXRlKEpTQ2VsbF9z
dHJ1Y3R1cmVJRCk7CiAgICAgICAgIHdyaXRlKEpTQ2VsbF90eXBlSW5mb1R5cGUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDE2Zjk3M2QwOTYzMTYxMjZiNGEy
YWJmZjY2ZTViYzZiN2U0NGI5ZmQuLmYwOTk0ODM5NGRjZGEzZTM2ZjczYzkyZjNiZjExNmE2NmM5
MDBhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTE0MSw4
ICsxNDEsOSBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJvZmls
ZUNvbnRyb2xGbG93OgotICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKKyAgICBjYXNlIE92ZXJy
aWRlc0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICBjYXNlIEluc3RhbmNl
T2ZDdXN0b206CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElzQm9vbGVhbjoKICAg
ICBjYXNlIElzTnVtYmVyOgpAQCAtMTgwLDYgKzE4MSw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6CiAgICAgY2FzZSBDb25z
dGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CisgICAgY2FzZSBDaGVja1R5cGVJ
bmZvRmxhZ3M6CiAgICAgY2FzZSBNdWx0aUdldEJ5T2Zmc2V0OgogICAgIGNhc2UgVmFsdWVSZXA6
CiAgICAgY2FzZSBEb3VibGVSZXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAppbmRleCBiZTRlMGVjNDk3NGY0MDcwNGE5YmY1N2JkYzYxN2Y4YmE0YjExNzgz
Li4zMTg5ODdiMjE2MWNkMzFjMDQ0MGZlNWQ2ZWVhMWRmNThkOGI2NDk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTExMDAsMTAgKzExMDAsMjkg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8RnVuY3Rpb25Vc2U+KG5vZGUtPmNoaWxk
MSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBPdmVy
cmlkZXNIYXNJbnN0YW5jZTogeworICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLm5vZGUo
KS0+aXNDZWxsQ29uc3RhbnQoKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDIo
KS5ub2RlKCktPmFzQ2VsbCgpICE9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYyktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkpIHsK
KworICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmNvbnZlcnRUb0NvbnN0YW50KG5vZGUsIGpz
Qm9vbGVhbih0cnVlKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGlmICghbV9ncmFwaC5oYXNFeGl0U2l0ZShub2RlLT5v
cmlnaW4uc2VtYW50aWMsIEJhZFR5cGVJbmZvRmxhZ3MpKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIEhlcmUgd2Ugb3B0aW1pc3RpY2FsbHkgYXNzdW1lIHRoYXQgd2Ugd2lsbCBub3Qgc2VlIGFu
IGJvdW5kL0MtQVBJIGZ1bmN0aW9uIGhlcmUuCisgICAgICAgICAgICAgICAgICAgIG1faW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNOb25lLCBDaGVja1R5cGVJbmZv
RmxhZ3MsIG5vZGUtPm9yaWdpbiwgT3BJbmZvKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2Up
LCBFZGdlKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgQ2VsbFVzZSkpOworICAgICAgICAgICAgICAg
ICAgICBtX2dyYXBoLmNvbnZlcnRUb0NvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihmYWxzZSkpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIENo
ZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKLSAgICAgICAgY2FzZSBDaGVj
a0hhc0luc3RhbmNlOgogICAgICAgICBjYXNlIENyZWF0ZVRoaXM6CiAgICAgICAgIGNhc2UgR2V0
QnV0dGVyZmx5OgogICAgICAgICBjYXNlIEdldEJ1dHRlcmZseVJlYWRPbmx5OiB7CkBAIC0xMTY0
LDcgKzExODMsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9k
ZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgICAg
IAorCisgICAgICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKKyAgICAgICAgICAgIGZpeEVkZ2U8
Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAg
Y2FzZSBJbjogewogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhdCBzb21lIHBvaW50
IGhhdmUgYXJyYXkgcHJvZmlsaW5nIG9uIG9wX2luLCBpbiB3aGljaAogICAgICAgICAgICAgLy8g
Y2FzZSB3ZSB3b3VsZCBiZSBhYmxlIHRvIHR1cm4gdGhpcyBpbnRvIGEga2luZCBvZiBHZXRCeVZh
bC4KQEAgLTE0MTAsNiArMTQzMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgTm90aWZ5V3Jp
dGU6CiAgICAgICAgIGNhc2UgVmFySW5qZWN0aW9uV2F0Y2hwb2ludDoKICAgICAgICAgY2FzZSBD
YWxsOgorICAgICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKICAgICAgICAgY2FzZSBUYWls
Q2FsbElubGluZWRDYWxsZXI6CiAgICAgICAgIGNhc2UgQ29uc3RydWN0OgogICAgICAgICBjYXNl
IENhbGxWYXJhcmdzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdI
ZWFwTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRp
b24uY3BwCmluZGV4IDY5MjM2NTYzOTYxMWZlYWY3M2Y0ZTg2MTU4YTAwMWIzNmQxMzUyN2IuLjU1
ZDg0Y2Y1NjVhMTI2MmEzZTE3OTIyZGQ4ZmJkMjY4ZmU4OTdmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKQEAgLTk1LDkgKzk1LDEzIEBAIHZv
aWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBMb2NhdGlvbktpbmQga2luZCkKICAg
ICBjYXNlIEJ1dHRlcmZseVJlYWRPbmx5TG9jOgogICAgICAgICBvdXQucHJpbnQoIkJ1dHRlcmZs
eVJlYWRPbmx5TG9jIik7CiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgY2FzZSBDaGVj
a0hhc0luc3RhbmNlTG9jOgotICAgICAgICBvdXQucHJpbnQoIkNoZWNrSGFzSW5zdGFuY2VMb2Mi
KTsKKworICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzTG9jOgorICAgICAgICBvdXQucHJpbnQo
IkNoZWNrVHlwZUluZm9GbGFnc0xvYyIpOworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIE92
ZXJyaWRlc0hhc0luc3RhbmNlTG9jOgorICAgICAgICBvdXQucHJpbnQoIk92ZXJyaWRlc0hhc0lu
c3RhbmNlTG9jIik7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgY2FzZSBDbG9zdXJl
VmFyaWFibGVMb2M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hl
YXBMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24u
aAppbmRleCA0OTVkMzAwM2NlYTZjMWM1N2M1MDJkZTRjMWVmNGUxMTVhYmJlMGIwLi5iODVmYTI2
MDQ5MWQ0ZDMxOTIxYTRjYzZjNzBhMmM4ZDJiZTRlODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKQEAgLTQwLDcgKzQwLDggQEAgZW51bSBMb2NhdGlv
bktpbmQgewogICAgIEFycmF5TGVuZ3RoTG9jLAogICAgIEJ1dHRlcmZseUxvYywKICAgICBCdXR0
ZXJmbHlSZWFkT25seUxvYywKLSAgICBDaGVja0hhc0luc3RhbmNlTG9jLAorICAgIENoZWNrVHlw
ZUluZm9GbGFnc0xvYywKKyAgICBPdmVycmlkZXNIYXNJbnN0YW5jZUxvYywKICAgICBDbG9zdXJl
VmFyaWFibGVMb2MsCiAgICAgRGlyZWN0QXJndW1lbnRzTG9jLAogICAgIEdldHRlckxvYywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggZjk2YTdlZmY4ZjY2ZGM4ZmQxMmJiNTVj
NjJjM2Q1ZTM1YTQ4NjVjMS4uZmQ5ODY1OGE4MmMzNTJhOGI1YTg3NTI3M2RmNWJhNWFjMDQxMTE5
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTEzNTQsNiArMTM1NCw3IEBA
IHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewogICAgICAgICBj
YXNlIENoZWNrQ2VsbDoKKyAgICAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAgICAg
ICAgY2FzZSBOZXdGdW5jdGlvbjoKICAgICAgICAgY2FzZSBOZXdBcnJvd0Z1bmN0aW9uOgogICAg
ICAgICBjYXNlIENyZWF0ZUFjdGl2YXRpb246CkBAIC0xNDE1LDYgKzE0MTYsMTcgQEAgc3RydWN0
IE5vZGUgewogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxVbmlxdWVkU3RyaW5nSW1w
bCo+KG1fb3BJbmZvKTsKICAgICB9CiAKKyAgICBib29sIGhhc1R5cGVJbmZvT3BlcmFuZCgpCisg
ICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDaGVja1R5cGVJbmZvRmxhZ3M7CisgICAgfQor
CisgICAgdW5zaWduZWQgdHlwZUluZm9PcGVyYW5kKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCho
YXNUeXBlSW5mb09wZXJhbmQoKSAmJiBtX29wSW5mbyA8PSBVQ0hBUl9NQVgpOworICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fb3BJbmZvKTsKKyAgICB9CisKICAgICBib29s
IGhhc1RyYW5zaXRpb24oKQogICAgIHsKICAgICAgICAgc3dpdGNoIChvcCgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggMDA4ZDhjNzMyODMyYTMzYjgxZTJk
NjM4N2QzYTFkMmFkNGM2MzQzNS4uYjY5NWZlYmEyNmVhYzc1YmZiYWZkZDBmMWE2Yzc4ZDExYzVk
YjIxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMjIxLDYg
KzIyMSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhDaGVj
a0JhZENlbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhDaGVja0luQm91bmRzLCBO
b2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tJZGVudCwgTm9kZU11c3RHZW5lcmF0
ZSkgXAorICAgIG1hY3JvKENoZWNrVHlwZUluZm9GbGFncywgTm9kZU11c3RHZW5lcmF0ZSkgLyog
VGFrZXMgYW4gT3BJbmZvIHdpdGggdGhlIGZsYWdzIHlvdSB3YW50IHRvIHRlc3QgYXJlIHNldCAq
L1wKICAgICBcCiAgICAgLyogT3B0aW1pemF0aW9ucyBmb3IgYXJyYXkgbXV0YXRpb24uICovXAog
ICAgIG1hY3JvKEFycmF5UHVzaCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXApA
QCAtMjc4LDggKzI3OSw5IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBt
YWNybyhCcmVha3BvaW50LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHJvZmlsZVdp
bGxDYWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHJvZmlsZURpZENhbGwsIE5v
ZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhDaGVja0hhc0luc3RhbmNlLCBOb2RlTXVzdEdl
bmVyYXRlKSBcCisgICAgbWFjcm8oT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIE5vZGVNdXN0R2VuZXJh
dGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEluc3RhbmNlT2YsIE5vZGVSZXN1
bHRCb29sZWFuKSBcCisgICAgbWFjcm8oSW5zdGFuY2VPZkN1c3RvbSwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNVbmRlZmluZWQsIE5vZGVSZXN1
bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNCb29sZWFuLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAog
ICAgIG1hY3JvKElzTnVtYmVyLCBOb2RlUmVzdWx0Qm9vbGVhbikgXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAppbmRleCBhMzRkNDQ2NDBkYzA5ZWNjNTFlNzI3N2VmMjRhNGUzZGEzZTgwOTM5Li40NTBm
NjY4MjY0NmJiMDk3YWIxNDZlMmJkMGRmZTcxZGVkMDZkNjllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcApAQCAtNDAyLDcgKzQwMiw5IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ29tcGFyZUdy
ZWF0ZXJFcToKICAgICAgICAgY2FzZSBDb21wYXJlRXE6CiAgICAgICAgIGNhc2UgQ29tcGFyZVN0
cmljdEVxOgorICAgICAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgICAgICBjYXNl
IEluc3RhbmNlT2Y6CisgICAgICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKICAgICAgICAgY2Fz
ZSBJc1VuZGVmaW5lZDoKICAgICAgICAgY2FzZSBJc0Jvb2xlYW46CiAgICAgICAgIGNhc2UgSXNO
dW1iZXI6CkBAIC01NjksNiArNTcxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVB
c0ludDMyOgogICAgICAgICBjYXNlIEdldExvY2FsVW5saW5rZWQ6CiAgICAgICAgIGNhc2UgQ2hl
Y2tBcnJheToKKyAgICAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAgIGNhc2Ug
QXJyYXlpZnk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKICAgICAgICAgY2Fz
ZSBDaGVja1RpZXJVcEluTG9vcDoKQEAgLTY4MCw3ICs2ODMsNiBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgICAg
ICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKLSAgICAgICAgY2FzZSBDaGVja0hhc0luc3RhbmNl
OgogICAgICAgICBjYXNlIFRocm93UmVmZXJlbmNlRXJyb3I6CiAgICAgICAgIGNhc2UgRm9yY2VP
U1JFeGl0OgogICAgICAgICBjYXNlIFNldEFyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCA2MTZjM2IwODIyMjE5Y2IxZDBhMmVkMzA1
MmRmNDVjMDE5YmU4YTQ2Li41ZDg5YmZiZWE3ZjgxZjZjZGRjOGJjZmJmMTc3M2Q0NWFhNGUwZjJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAt
MjQxLDggKzI0MSwxMCBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0
YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoK
ICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgotICAg
IGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKKyAg
ICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICBj
YXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElz
Qm9vbGVhbjoKICAgICBjYXNlIElzTnVtYmVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA0YjQwZTY3MDczMTlhOWU2MWFkMWZmZDRh
YjdjNTI5OTU3NGE3NzcxLi5lMWQxMjY3MzFjZTgyMTlhNTIxMmRlNjVmNWE0MWNmMmYyZGIxYWI4
IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cApAQCAtMjczOCw2ICsyNzM4LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0
YW5jZU9mRm9yT2JqZWN0KE5vZGUqLCBHUFJSZWcgdmFsdWVSZWcsIEdQUlJlZyBwCiAgICAgcHV0
UmVzdWx0LmxpbmsoJm1faml0KTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrVHlwZUluZm9GbGFncyhOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNl
LmdwcigpOworCisgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlSW5mb0ZsYWdzLCBKU1ZhbHVl
UmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkp
LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG5vZGUtPnR5cGVJbmZvT3BlcmFuZCgpKSkp
OworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVJbnN0YW5jZU9mKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBVbnR5cGVkVXNlKSB7CkBAIC0yOTUwLDYgKzI5NjEsMjggQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVZhbHVlQWRkKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuOwogfQogCit2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZkN1c3RvbShOb2RlKiBub2RlKQor
eworICAgIC8vIFdlIGNvdWxkIGRvIHNvbWV0aGluZyBzbWFydGVyIGhlcmUgYnV0IHRoaXMgY2Fz
ZSBpcyBjdXJyZW50bHkgc3VwZXIgcmFyZSBhbmQgdW5sZXNzCisgICAgLy8gU3ltYm9sLmhhc0lu
c3RhbmNlIGJlY29tZXMgcG9wdWxhciB3aWxsIGxpa2VseSByZW1haW4gdGhhdCB3YXkuCisKKyAg
ICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQgY29uc3RydWN0b3IodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgIEpT
VmFsdWVPcGVyYW5kIGhhc0luc3RhbmNlVmFsdWUodGhpcywgbm9kZS0+Y2hpbGQzKCkpOworICAg
IEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisKKyAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3Mg
PSB2YWx1ZS5qc1ZhbHVlUmVncygpOworICAgIEdQUlJlZyBjb25zdHJ1Y3RvckdQUiA9IGNvbnN0
cnVjdG9yLmdwcigpOworICAgIEpTVmFsdWVSZWdzIGhhc0luc3RhbmNlUmVncyA9IGhhc0luc3Rh
bmNlVmFsdWUuanNWYWx1ZVJlZ3MoKTsKKyAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0Lmdw
cigpOworCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd0Nhc2UgPSBtX2ppdC5qdW1wKCk7
CisKKyAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoc2xvd0Nhc2UsIHRoaXMs
IG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIHJlc3VsdEdQUiwgdmFsdWVSZWdzLCBjb25zdHJ1
Y3RvckdQUiwgaGFzSW5zdGFuY2VSZWdzKSk7CisKKyAgICB1bmJsZXNzZWRCb29sZWFuUmVzdWx0
KHJlc3VsdEdQUiwgbm9kZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0
aEFkZChOb2RlKiBub2RlKQogewogICAgIHN3aXRjaCAobm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXgg
OTM5YWNhMWM4MWRlZWMzMzdkNzRjYWJmYzQwZmI4ODcwYzA3YzY5Yi4uZmYyNTY2NGM5NmNkYjAy
MDNiYWY3OGVkMGU1ZTNjYzc3M2U0NGZmMyAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzI3LDYgKzcyNyw3IEBAIHB1YmxpYzoKICAgICAK
ICAgICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mRm9yT2JqZWN0KE5vZGUqLCBHUFJSZWcgdmFsdWVS
ZWcsIEdQUlJlZyBwcm90b3R5cGVSZWcsIEdQUlJlZyBzY3JhdGNoQW5kUmVzdWx0UmVnLCBHUFJS
ZWcgc2NyYXRjaDJSZWcpOwogICAgIHZvaWQgY29tcGlsZUluc3RhbmNlT2YoTm9kZSopOworICAg
IHZvaWQgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20oTm9kZSopOwogICAgIAogICAgIHZvaWQgZW1p
dENhbGwoTm9kZSopOwogICAgIApAQCAtMTUxMSw2ICsxNTEyLDE3IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIFRydXN0ZWRJ
bW0zMihhcmczKSwgYXJnNCk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9w
ZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CisKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJS
ZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIHsKKyAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQorICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpPSiBvcGVy
YXRpb24sIEdQUlJlZyByZXN1bHQsIEpTVmFsdWVSZWdzIGFyZzEsIEdQUlJlZyBhcmcyLCBKU1Zh
bHVlUmVncyBhcmczKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uLCByZXN1bHQsIGFyZzEucGF5bG9hZEdQUigpLCBhcmcyLCBhcmczLnBheWxvYWRHUFIoKSk7
CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJh
dGlvbl9FSlogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgdW5zaWduZWQg
YXJnMikKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShh
cmcxLCBUcnVzdGVkSW1tMzIoYXJnMikpOwpAQCAtMTgzMiw2ICsxODQ0LDE2IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9CiAKKyAgICBKSVRD
b21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9u
LCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJS
ZWcgYXJnMiwgR1BSUmVnIGFyZzNUYWcsIEdQUlJlZyBhcmczUGF5bG9hZCkKKyAgICB7CisgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FS
RyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMiwgRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnM1Bh
eWxvYWQsIGFyZzNUYWcpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVy
YXRpb24sIHJlc3VsdCk7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oWl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEpTVmFsdWVS
ZWdzIGFyZzEsIEdQUlJlZyBhcmcyLCBKU1ZhbHVlUmVncyBhcmczKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uLCByZXN1bHQsIGFyZzEudGFnR1BSKCksIGFy
ZzEucGF5bG9hZEdQUigpLCBhcmcyLCBhcmczLnRhZ0dQUigpLCBhcmczLnBheWxvYWRHUFIoKSk7
CisgICAgfQorCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJh
dGlvbl9FSlpaIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJl
ZyBhcmcxUGF5bG9hZCwgdW5zaWduZWQgYXJnMiwgdW5zaWduZWQgYXJnMykKICAgICB7CiAgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FS
RyAgYXJnMVBheWxvYWQsIGFyZzFUYWcsIFRydXN0ZWRJbW0zMihhcmcyKSwgVHJ1c3RlZEltbTMy
KGFyZzMpKTsKQEAgLTIyMDQsNiArMjIyNiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29tcGls
ZUdldEFycmF5TGVuZ3RoKE5vZGUqKTsKIAorICAgIHZvaWQgY29tcGlsZUNoZWNrVHlwZUluZm9G
bGFncyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQ2hlY2tJZGVudChOb2RlKik7CiAgICAgCiAg
ICAgdm9pZCBjb21waWxlVmFsdWVSZXAoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggM2I3MTk3ZDUzMWI2
YjM5NmU2NTk2NTAzNjAwNjIzMzQ0MDc0OWFhZi4uZjE5MDI5NWY0Mjk0ZWNjNDI0MjQ2MjI3Nzhj
MGI5MzBhYzk3YjgxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC00MTU5LDE3ICs0MTU5LDQ4IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQog
Ci0gICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOiB7CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxh
Z3M6IHsKKyAgICAgICAgY29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyhub2RlKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZTogeworCisgICAg
ICAgIE5vZGUqIGhhc0luc3RhbmNlVmFsdWVOb2RlID0gbm9kZS0+Y2hpbGQyKCkubm9kZSgpOwor
ICAgICAgICBKU0Z1bmN0aW9uKiBkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9IGpzQ2FzdDxK
U0Z1bmN0aW9uKj4obm9kZS0+Y2VsbE9wZXJhbmQoKS0+dmFsdWUoKSk7CisKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6Okp1bXAgbm90RGVmYXVsdGhhc0luc3RhbmNlVmFsdWU7CisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIGhhc0luc3RhbmNlVmFsdWVOb3RDZWxsOwogICAgICAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BS
VGVtcG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaGFzSW5z
dGFuY2VWYWx1ZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHQodGhpcyk7CiAKLSAgICAgICAgLy8gU3BlY3VsYXRlIHRoYXQgYmFzZSAnSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZScuCi0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soVW5jb3VudGFi
bGUsIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaFRlc3Q4KAotICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6Olplcm8sIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
YmFzZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCAKLSAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5j
ZSkpKTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAotICAgICAg
ICBub1Jlc3VsdChub2RlKTsKKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBwcm92ZW4gdGhhdCB0aGUg
Y29uc3RydWN0b3IncyBTeW1ib2wuaGFzSW5zdGFuY2Ugd2lsbCBhbHdheXMgYmUgdGhlIG9uZSBv
bgorICAgICAgICAvLyBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSB0aGVu
IHdlIGRvbid0IG5lZWQgYSBydW50aW1lIGNoZWNrIGhlcmUuIFdlIGRvbid0IHdvcnJ5CisgICAg
ICAgIC8vIGFib3V0IHRoZSBjYXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvcidzIFN5bWJvbC5oYXNJ
bnN0YW5jZSBpcyBhIGNvbnN0YW50IGJ1dCBpcyBub3QgdGhlIGRlZmF1bHQKKyAgICAgICAgLy8g
b25lIGFzIGZpeHVwIHNob3VsZCBoYXZlIGNvbnZlcnRlZCB0aGlzIGNoZWNrIHRvIHRydWUuCisg
ICAgICAgIEFTU0VSVCghaGFzSW5zdGFuY2VWYWx1ZU5vZGUtPmlzQ2VsbENvbnN0YW50KCkgfHwg
ZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24gPT0gaGFzSW5zdGFuY2VWYWx1ZU5vZGUtPmFzQ2Vs
bCgpKTsKKyAgICAgICAgaWYgKCFoYXNJbnN0YW5jZVZhbHVlTm9kZS0+aXNDZWxsQ29uc3RhbnQo
KSkgeworCisgICAgICAgICAgICBKU1ZhbHVlUmVncyBoYXNJbnN0YW5jZVZhbHVlUmVncyA9IGhh
c0luc3RhbmNlVmFsdWUuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgICAgIGhhc0luc3RhbmNlVmFs
dWVOb3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKGhhc0luc3RhbmNlVmFsdWVSZWdzKTsK
KyAgICAgICAgICAgIG5vdERlZmF1bHRoYXNJbnN0YW5jZVZhbHVlID0gbV9qaXQuYnJhbmNoUHRy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgaGFzSW5zdGFuY2VWYWx1ZVJlZ3MucGF5bG9hZEdQ
UigpLCBUcnVzdGVkSW1tUHRyKGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uKSk7CisgICAgICAg
IH0KKworICAgICAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlJy4KKyAgICAgICAgbV9qaXQudGVzdDgoTWFjcm9Bc3NlbWJsZXI6Olplcm8s
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFn
c09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
ZG9uZSA9IG1faml0Lmp1bXAoKTsKKworICAgICAgICBpZiAoIWhhc0luc3RhbmNlVmFsdWVOb2Rl
LT5pc0NlbGxDb25zdGFudCgpKSB7CisgICAgICAgICAgICBoYXNJbnN0YW5jZVZhbHVlTm90Q2Vs
bC5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICBub3REZWZhdWx0aGFzSW5zdGFuY2VWYWx1ZS5s
aW5rKCZtX2ppdCk7CisgICAgICAgICAgICBtb3ZlVHJ1ZVRvKHJlc3VsdEdQUik7CisgICAgICAg
IH0KKworICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKKyAgICAgICAgYm9vbGVhblJlc3VsdChy
ZXN1bHRHUFIsIG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTQxNzgsNiArNDIw
OSwxMSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbTogeworICAgICAgICBj
b21waWxlSW5zdGFuY2VPZkN1c3RvbShub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAg
ICAgY2FzZSBJc1VuZGVmaW5lZDogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlz
LCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApp
bmRleCBiOTg3Y2Q0ZDgyNjc1NDAwYjQ4Nzc4NDQzN2IzYjFhMzJmZTgyZjIwLi4xNTRhMGQ4NDQ5
ODk1NWFmYzY1NzM0NmNkMDBiMjYxMzVkNjJkZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQxNDksMTcgKzQxNDksNDIg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVh
azsKICAgICB9CiAKLSAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6IHsKKyAgICBjYXNlIENoZWNr
VHlwZUluZm9GbGFnczogeworICAgICAgICBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKG5vZGUp
OworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNl
OiB7CisKKyAgICAgICAgTm9kZSogaGFzSW5zdGFuY2VWYWx1ZU5vZGUgPSBub2RlLT5jaGlsZDIo
KS5ub2RlKCk7CisgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9u
ID0ganNDYXN0PEpTRnVuY3Rpb24qPihub2RlLT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpKTsKKwor
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3REZWZhdWx0OwogICAgICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAgR1BSVGVt
cG9yYXJ5IHN0cnVjdHVyZSh0aGlzKTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaGFzSW5zdGFu
Y2VWYWx1ZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1
bHQodGhpcyk7CiAKLSAgICAgICAgLy8gU3BlY3VsYXRlIHRoYXQgYmFzZSAnSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZScuCi0gICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soVW5jb3VudGFibGUs
IEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5jaFRlc3Q4KAotICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Olplcm8sIAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFz
ZS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCAKLSAgICAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkp
KTsKKyAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKIAotICAgICAgICBu
b1Jlc3VsdChub2RlKTsKKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBwcm92ZW4gdGhhdCB0aGUgY29u
c3RydWN0b3IncyBTeW1ib2wuaGFzSW5zdGFuY2Ugd2lsbCBhbHdheXMgYmUgdGhlIG9uZSBvbiBG
dW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXQorICAgICAgICAvLyB0aGVuIHdl
IGRvbid0IG5lZWQgYSBydW50aW1lIGNoZWNrIGhlcmUuIFdlIGRvbid0IHdvcnJ5IGFib3V0IHRo
ZSBjYXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvcidzIFN5bWJvbC5oYXNJbnN0YW5jZSBpcyBhIGNv
bnN0YW50CisgICAgICAgIC8vIGJ1dCBpcyBub3QgdGhlIGRlZmF1bHQgb25lIGFzIGZpeHVwIHNo
b3VsZCBoYXZlIGNvbnZlcnRlZCB0aGlzIGNoZWNrIHRvIHRydWUuCisgICAgICAgIEFTU0VSVCgh
aGFzSW5zdGFuY2VWYWx1ZU5vZGUtPmlzQ2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3Rh
bmNlRnVuY3Rpb24gPT0gaGFzSW5zdGFuY2VWYWx1ZU5vZGUtPmFzQ2VsbCgpKTsKKyAgICAgICAg
aWYgKCFoYXNJbnN0YW5jZVZhbHVlTm9kZS0+aXNDZWxsQ29uc3RhbnQoKSkKKyAgICAgICAgICAg
IG5vdERlZmF1bHQgPSBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBo
YXNJbnN0YW5jZVZhbHVlLmdwcigpLCBUcnVzdGVkSW1tUHRyKGRlZmF1bHRIYXNJbnN0YW5jZUZ1
bmN0aW9uKSk7CisKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCBiYXNlICdJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlJy4KKyAgICAgICAgbV9qaXQudGVzdDgoTWFjcm9Bc3NlbWJsZXI6Olplcm8s
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFn
c09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgbV9qaXQub3IzMihUcnVzdGVkSW1t
MzIoVmFsdWVGYWxzZSksIHJlc3VsdEdQUik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IGRvbmUgPSBtX2ppdC5qdW1wKCk7CisKKyAgICAgICAgaWYgKG5vdERlZmF1bHQuaXNTZXQoKSkg
eworICAgICAgICAgICAgbm90RGVmYXVsdC5saW5rKCZtX2ppdCk7CisgICAgICAgICAgICBtb3Zl
VHJ1ZVRvKHJlc3VsdEdQUik7CisgICAgICAgIH0KKworICAgICAgICBkb25lLmxpbmsoJm1faml0
KTsKKyAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUsIERhdGFGb3JtYXRKU0Jv
b2xlYW4pOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTQxNjcsNiArNDE5MiwxMSBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVJ
bnN0YW5jZU9mKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAgICBjYXNlIEluc3Rh
bmNlT2ZDdXN0b206IHsKKyAgICAgICAgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20obm9kZSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBJc1VuZGVmaW5lZDogewog
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggODcyOGQ5
ZTUxOWVlMzBmMTYxYjFlOTI4YTMxYmM3N2YyOTMzNDRmMS4uZmE5MmNmZTgxNjVlNDYwMTk5MmJh
ZmM2MTBjNzRmNTU5M2RmZmU3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcApAQCAtMTc0LDggKzE3NCwxMCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxl
dmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIElzT2JqZWN0OgogICAgIGNhc2Ug
SXNPYmplY3RPck51bGw6CiAgICAgY2FzZSBJc0Z1bmN0aW9uOgotICAgIGNhc2UgQ2hlY2tIYXNJ
bnN0YW5jZToKKyAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKKyAgICBjYXNlIE92ZXJyaWRl
c0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICBjYXNlIEluc3RhbmNlT2ZD
dXN0b206CiAgICAgY2FzZSBEb3VibGVSZXA6CiAgICAgY2FzZSBWYWx1ZVJlcDoKICAgICBjYXNl
IEludDUyUmVwOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRy
aW5zaWNSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNp
Y1JlcG9zaXRvcnkuaAppbmRleCBmNWY0ZWE3MWExZjdkZmYzODIyNDE1MDIyZjUzM2VhZTY1ZTEx
ZjMwLi5jOGYwODFjZWMwZjExMDYwOGZiMGU0NTNjMDJjMWUyYmFiYTM0ZTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaApAQCAt
MTI4LDYgKzEyOCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNy
byhaX0pJVE9wZXJhdGlvbl9ELCBmdW5jdGlvblR5cGUoaW50MzIsIGRvdWJsZVR5cGUpKSBcCiAg
ICAgbWFjcm8oWl9KSVRPcGVyYXRpb25fRUMsIGZ1bmN0aW9uVHlwZShpbnQzMiwgaW50UHRyLCBp
bnRQdHIpKSBcCiAgICAgbWFjcm8oWl9KSVRPcGVyYXRpb25fRUdDLCBmdW5jdGlvblR5cGUoaW50
MzIsIGludFB0ciwgaW50UHRyLCBpbnRQdHIpKSBcCisgICAgbWFjcm8oWl9KSVRPcGVyYXRpb25f
RUpPSiwgZnVuY3Rpb25UeXBlKGludDMyLCBpbnRQdHIsIGludDY0LCBpbnRQdHIsIGludDY0KSkg
XAogICAgIG1hY3JvKFpfSklUT3BlcmF0aW9uX0VKWiwgZnVuY3Rpb25UeXBlKGludDMyLCBpbnRQ
dHIsIGludDY0LCBpbnQzMikpIFwKICAgICBtYWNybyhaX0pJVE9wZXJhdGlvbl9FU0pzcywgZnVu
Y3Rpb25UeXBlKGludDMyLCBpbnRQdHIsIGludFB0ciwgaW50NjQpKSBcCiAgICAgbWFjcm8oVl9K
SVRPcGVyYXRpb25fRUNSVWlVaSwgZnVuY3Rpb25UeXBlKHZvaWRUeXBlLCBpbnRQdHIsIGludFB0
ciwgaW50UHRyLCBpbnQzMiwgaW50MzIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCBhY2UxMGIxODFiZTZmNjM3ZWZlZmNlZDM3ZmMz
OTNhM2NlNDRhM2YxLi4wYTNmODAxOTdmZTRjOTMyODUyNzgzNDRkZjc2YmJhZWVjMTliOTFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcApA
QCAtOTM5LDEyICs5MzksMTggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlT2Y6CiAgICAg
ICAgICAgICBjb21waWxlVHlwZU9mKCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDaGVja0hhc0luc3RhbmNlOgotICAgICAgICAgICAgY29tcGlsZUNoZWNrSGFzSW5zdGFuY2Uo
KTsKKyAgICAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CisgICAgICAgICAgICBjb21waWxl
Q2hlY2tUeXBlSW5mb0ZsYWdzKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBP
dmVycmlkZXNIYXNJbnN0YW5jZToKKyAgICAgICAgICAgIGNvbXBpbGVPdmVycmlkZXNIYXNJbnN0
YW5jZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSW5zdGFuY2VPZjoKICAg
ICAgICAgICAgIGNvbXBpbGVJbnN0YW5jZU9mKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgorICAgICAgICAgICAgY29tcGlsZUluc3RhbmNlT2ZD
dXN0b20oKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENvdW50RXhlY3V0aW9u
OgogICAgICAgICAgICAgY29tcGlsZUNvdW50RXhlY3V0aW9uKCk7CiAgICAgICAgICAgICBicmVh
azsKQEAgLTU3NjEsMTMgKzU3NjcsNDAgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIH0KIAotICAg
IHZvaWQgY29tcGlsZUNoZWNrSGFzSW5zdGFuY2UoKQorICAgIHZvaWQgY29tcGlsZU92ZXJyaWRl
c0hhc0luc3RhbmNlKCkKKyAgICB7CisgICAgICAgIEpTRnVuY3Rpb24qIGRlZmF1bHRIYXNJbnN0
YW5jZUZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihtX25vZGUtPmNlbGxPcGVyYW5kKCkt
PnZhbHVlKCkpOworCisgICAgICAgIExWYWx1ZSBjb25zdHJ1Y3RvciA9IGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBoYXNJbnN0YW5jZSA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDIoKSk7CisKKyAgICAgICAgTEJhc2ljQmxvY2sgZGVmYXVsdEhhc0luc3RhbmNl
ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJPdmVycmlkZXNIYXNJbnN0YW5jZSBTeW1ib2wuaGFz
SW5zdGFuY2UgaXMgZGVmYXVsdCIpKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9u
ID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJPdmVycmlkZXNIYXNJbnN0YW5jZSBjb250aW51YXRp
b24iKSk7CisKKyAgICAgICAgLy8gVW5saWtlIGluIHRoZSBERkcsIHdlIGRvbid0IHdvcnJ5IGFi
b3V0IGNsZWFuaW5nIHRoaXMgY29kZSB1cCBmb3IgdGhlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBwcm92
ZW4gdGhlIGhhc0luc3RhbmNlVmFsdWUgaXMgYSBjb25zdGFudCBhcyBMTFZNIHNob3VsZCBmaXgg
aXQgZm9yIHVzLgorCisgICAgICAgIEFTU0VSVCghbV9ub2RlLT5jaGlsZDIoKS5ub2RlKCktPmlz
Q2VsbENvbnN0YW50KCkgfHwgZGVmYXVsdEhhc0luc3RhbmNlRnVuY3Rpb24gPT0gbV9ub2RlLT5j
aGlsZDIoKS5ub2RlKCktPmFzQ2VsbCgpKTsKKworICAgICAgICBWYWx1ZUZyb21CbG9jayBub3RE
ZWZhdWx0SGFzSW5zdGFuY2VSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuYm9vbGVhblRydWUp
OworICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90RXF1YWwoaGFzSW5zdGFuY2UsIG1fb3V0
LmNvbnN0SW50UHRyKGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uKSksIHVuc3VyZShjb250aW51
YXRpb24pLCB1bnN1cmUoZGVmYXVsdEhhc0luc3RhbmNlKSk7CisKKyAgICAgICAgTEJhc2ljQmxv
Y2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhkZWZhdWx0SGFzSW5zdGFuY2UsIGNvbnRpbnVh
dGlvbik7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIGltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2VSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQudGVzdElzWmVybzMyKAorICAgICAgICAgICAg
bV9vdXQubG9hZDhaZXJvRXh0MzIoY29uc3RydWN0b3IsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZv
RmxhZ3MpLAorICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihJbXBsZW1lbnRzRGVmYXVsdEhh
c0luc3RhbmNlKSkpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAg
ICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHNldEJv
b2xlYW4obV9vdXQucGhpKG1fb3V0LmJvb2xlYW4sIGltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFu
Y2VSZXN1bHQsIG5vdERlZmF1bHRIYXNJbnN0YW5jZVJlc3VsdCkpOworICAgIH0KKworICAgIHZv
aWQgY29tcGlsZUNoZWNrVHlwZUluZm9GbGFncygpCiAgICAgewogICAgICAgICBzcGVjdWxhdGUo
Ci0gICAgICAgICAgICBVbmNvdW50YWJsZSwgbm9WYWx1ZSgpLCAwLAorICAgICAgICAgICAgQmFk
VHlwZUluZm9GbGFncywgbm9WYWx1ZSgpLCAwLAogICAgICAgICAgICAgbV9vdXQudGVzdElzWmVy
bzMyKAogICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDEoKSksIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvRmxhZ3MpLAotICAgICAgICAgICAg
ICAgIG1fb3V0LmNvbnN0SW50MzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKKyAg
ICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKG1fbm9kZS0+dHlwZUluZm9PcGVyYW5kKCkp
KSk7CiAgICAgfQogICAgIAogICAgIHZvaWQgY29tcGlsZUluc3RhbmNlT2YoKQpAQCAtNTgyMCw2
ICs1ODUzLDE1IEBAIHByaXZhdGU6CiAgICAgICAgIHNldEJvb2xlYW4oCiAgICAgICAgICAgICBt
X291dC5waGkobV9vdXQuYm9vbGVhbiwgbm90Q2VsbFJlc3VsdCwgaXNJbnN0YW5jZVJlc3VsdCwg
bm90SW5zdGFuY2VSZXN1bHQpKTsKICAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9m
Q3VzdG9tKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUobV9ub2Rl
LT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBjb25zdHJ1Y3RvciA9IGxvd0NlbGwobV9ub2Rl
LT5jaGlsZDIoKSk7CisgICAgICAgIExWYWx1ZSBoYXNJbnN0YW5jZSA9IGxvd0pTVmFsdWUobV9u
b2RlLT5jaGlsZDMoKSk7CisKKyAgICAgICAgc2V0Qm9vbGVhbihtX291dC5iaXROb3QobV9vdXQu
ZXF1YWwobV9vdXQuY29uc3RJbnQzMigwKSwgdm1DYWxsKG1fb3V0LmludDMyLCBtX291dC5vcGVy
YXRpb24ob3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSksIG1fY2FsbEZyYW1lLCB2YWx1ZSwgY29u
c3RydWN0b3IsIGhhc0luc3RhbmNlKSkpKTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxl
Q291bnRFeGVjdXRpb24oKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCBm
MzQzMWM5NzUxZmEzNWRhOTcwMjZjODVjMTg3ZDIwZTY4OGU1ZmYxLi5hM2JkZmE3Y2Q1ZDBmNTcy
NDdmMWJlOGM0MGIyNTEwZDI5ZDgwMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBA
IC0yMjgsOCArMjI4LDkgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAg
ICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CiAgICAgICAgIERFRklORV9PUChvcF9nZXRf
YnlfaWQpCiAgICAgICAgIERFRklORV9PUChvcF9nZXRfYnlfdmFsKQotICAgICAgICBERUZJTkVf
T1Aob3BfY2hlY2tfaGFzX2luc3RhbmNlKQorICAgICAgICBERUZJTkVfT1Aob3Bfb3ZlcnJpZGVz
X2hhc19pbnN0YW5jZSkKICAgICAgICAgREVGSU5FX09QKG9wX2luc3RhbmNlb2YpCisgICAgICAg
IERFRklORV9PUChvcF9pbnN0YW5jZW9mX2N1c3RvbSkKICAgICAgICAgREVGSU5FX09QKG9wX2lz
X3VuZGVmaW5lZCkKICAgICAgICAgREVGSU5FX09QKG9wX2lzX2Jvb2xlYW4pCiAgICAgICAgIERF
RklORV9PUChvcF9pc19udW1iZXIpCkBAIC0zOTksOCArNDAwLDggQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlU2xvd0Nhc2VzKCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgog
ICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVf
U0xPV0NBU0VfT1Aob3BfZ2V0X2J5X3ZhbCkKLSAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9w
X2NoZWNrX2hhc19pbnN0YW5jZSkKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2luc3Rh
bmNlb2YpCisgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9pbnN0YW5jZW9mX2N1c3RvbSkK
ICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2pmYWxzZSkKICAgICAgICAgREVGSU5FX1NM
T1dDQVNFX09QKG9wX2psZXNzKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3Bfamxlc3Nl
cSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDhiNjFjYzEyNmZkZTBhNGVkMmE2YzdlZWQx
ODc3ZGY3ZmIwNmZjNmEuLmY0OWE5YTQ2NjNkNDE0ZTc5ZjBlOGIyOWRiZWRkOGM5OGNlZmQ5MzYg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNTA5LDggKzUwOSw5IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB2b2lkIGVtaXRfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiopOwogICAg
ICAgICB2b2lkIGVtaXRfb3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbChJbnN0cnVjdGlvbiopOwogICAg
ICAgICB2b2lkIGVtaXRfb3BfaW5pdF9sYXp5X3JlZyhJbnN0cnVjdGlvbiopOwotICAgICAgICB2
b2lkIGVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKEluc3RydWN0aW9uKik7CisgICAgICAgIHZv
aWQgZW1pdF9vcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlKEluc3RydWN0aW9uKik7CiAgICAgICAg
IHZvaWQgZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKik7CisgICAgICAgIHZvaWQgZW1p
dF9vcF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfaXNfdW5kZWZpbmVkKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pc19i
b29sZWFuKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pc19udW1iZXIoSW5z
dHJ1Y3Rpb24qKTsKQEAgLTYxNiw4ICs2MTcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
dm9pZCBlbWl0U2xvd19vcF9nZXRfYXJndW1lbnRzX2xlbmd0aChJbnN0cnVjdGlvbiosIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9n
ZXRfYnlfdmFsKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYp
OwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2dldF9hcmd1bWVudF9ieV92YWwoSW5zdHJ1Y3Rp
b24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7Ci0gICAgICAgIHZvaWQgZW1p
dFNsb3dfb3BfY2hlY2tfaGFzX2luc3RhbmNlKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2luc3RhbmNlb2Yo
SW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CisgICAgICAg
IHZvaWQgZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfamZh
bHNlKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAg
ICAgICB2b2lkIGVtaXRTbG93X29wX2psZXNzKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2psZXNzZXEoSW5z
dHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CkBAIC03NDQsNiAr
NzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgQXJyYXlQcm9maWxlKik7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnksIGludCwg
R1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0osIEdQUlJlZywgR1BSUmVnLCBHUFJS
ZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3Bl
cmF0aW9uX0VKc2MsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpzY0MsIGludCwgR1BSUmVnLCBKU0NlbGwqKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SnNjQ0osIGludCwgR1BSUmVnLCBKU0NlbGwqLCBHUFJSZWcpOwpAQCAtODExLDYgKzgxMyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VKLCBpbnQsIEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSklkYywgaW50
LCBHUFJSZWcsIEdQUlJlZywgY29uc3QgSWRlbnRpZmllciopOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJSZWcs
IEdQUlJlZywgR1BSUmVnLCBHUFJSZWcpOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0osIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcs
IEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihKX0pJVE9wZXJhdGlvbl9FSkpBcCwgaW50LCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBH
UFJSZWcsIEFycmF5UHJvZmlsZSopOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBHUFJS
ZWcsIEdQUlJlZywgQnlWYWxJbmZvKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oUF9KSVRPcGVyYXRpb25fRUpTLCBHUFJSZWcsIEdQUlJlZywgc2l6ZV90KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKaW5kZXggY2FkYjA4MzA4Y2NjMDYx
YjdjNzc3ZDUwYjJhYzIzODNkMzk4ZTlkZS4uNzdhZGMwMmRmOGIwODU5ZjViNjFjODU3MWEyZDIx
NTZkODNjMmM5YyAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKQEAgLTUw
Myw2ICs1MDMsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQnkgb3BlcmEKICAgICByZXR1cm4gYXBwZW5k
Q2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHQob3BlcmF0aW9uLCBkc3QpOwog
fQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihaX0pJVE9wZXJhdGlvbl9FSk9KIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
LCBHUFJSZWcgYXJnMykKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
YXJnMiwgYXJnMyk7CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3Bl
cmF0aW9uKTsKK30KKwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKFZfSklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwg
R1BSUmVnIGFyZzEpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEpOwpA
QCAtNTk2LDYgKzYwMiwxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJ
VDo6Y2FsbE9wZXJhdGlvbk5vRXhjZXB0aW9uQ2hlY2soVl9KSVRPcGVyYQogICAgIHJldHVybiBh
cHBlbmRDYWxsKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBH
UFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFy
ZzNUYWcsIEdQUlJlZyBhcmczUGF5bG9hZCkKK3sKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzIsIEVB
QklfMzJCSVRfRFVNTVlfQVJHIGFyZzNQYXlsb2FkLCBhcmczVGFnKTsKKyAgICByZXR1cm4gYXBw
ZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9F
SlpaIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgaW50MzJf
dCBhcmcyLCBpbnQzMl90IGFyZzMpCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBUcnVzdGVkSW1tMzIo
YXJnMiksIFRydXN0ZWRJbW0zMihhcmczKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcAppbmRleCAzYTk3ZGQ4YTNmZGZhNzQzY2NiMmRmMzI5OGM1MTc1NjlhNzVhODNh
Li5iMjIzNWJjNDg4OGM1Nzc3NTljZGMyNmM0ZDJlMmMxMDU4OTczMGIzIDEwMDc1NQotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTEwNSwxNyArMTA1LDI5IEBAIHZvaWQg
SklUOjplbWl0U2xvd19vcF9uZXdfb2JqZWN0KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbG93Q2FzCiAgICAgZW1pdFN0b3JlQ2VsbChkc3QsIHJldHVyblZhbHVlR1BS
KTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit2b2lkIEpJVDo6ZW1pdF9vcF9vdmVycmlkZXNfaGFzX2lu
c3RhbmNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgaW50IGJhc2VW
YWwgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBkc3QgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGludCBjb25zdHJ1Y3RvciA9IGN1cnJl
bnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CisgICAgaW50IGhhc0luc3RhbmNlVmFsdWUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworCisgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihoYXNJbnN0YW5jZVZhbHVlLCByZWdUMCk7CiAKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lz
dGVyKGJhc2VWYWwsIHJlZ1QwKTsKKyAgICAvLyBXZSBkb24ndCBqdW1wIGlmIHdlIGtub3cgd2hh
dCBTeW1ib2wuaGFzSW5zdGFuY2Ugd291bGQgZG8uCisgICAgSnVtcCBjdXN0b21oYXNJbnN0YW5j
ZVZhbHVlID0gYnJhbmNoUHRyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbVB0cihtX2NvZGVC
bG9jay0+Z2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0
aW9uKCkpKTsKIAotICAgIC8vIENoZWNrIHRoYXQgYmFzZVZhbCBpcyBhIGNlbGwuCi0gICAgZW1p
dEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QwLCBiYXNlVmFsKTsKKyAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKGNvbnN0cnVjdG9yLCByZWdUMCk7CiAKLSAgICAvLyBDaGVjayB0aGF0IGJh
c2VWYWwgJ0ltcGxlbWVudHNIYXNJbnN0YW5jZScuCi0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoVGVz
dDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBU
cnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKKyAgICAvLyBDaGVj
ayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1lbnRzSGFzSW5zdGFuY2UnIGkuZS4gdGhlIG9iamVj
dCBpcyBhIEMtQVBJIHVzZXIgb3IgYSBib3VuZCBmdW5jdGlvbi4KKyAgICB0ZXN0OChaZXJvLCBB
ZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0z
MihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKSwgcmVnVDApOworICAgIGVtaXRUYWdCb29s
KHJlZ1QwKTsKKyAgICBKdW1wIGRvbmUgPSBqdW1wKCk7CisKKyAgICBjdXN0b21oYXNJbnN0YW5j
ZVZhbHVlLmxpbmsodGhpcyk7CisgICAgbW92ZShUcnVzdGVkSW1tMzIoVmFsdWVUcnVlKSwgcmVn
VDApOworCisgICAgZG9uZS5saW5rKHRoaXMpOworICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIo
ZHN0KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQpAQCAtMTI5LDcgKzE0MSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2lu
c3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKHZhbHVlLCByZWdUMik7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihw
cm90bywgcmVnVDEpOwogCi0gICAgLy8gQ2hlY2sgdGhhdCBwcm90byBhcmUgY2VsbHMuICBiYXNl
VmFsIG11c3QgYmUgYSBjZWxsIC0gdGhpcyBpcyBjaGVja2VkIGJ5IG9wX2NoZWNrX2hhc19pbnN0
YW5jZS4KKyAgICAvLyBDaGVjayB0aGF0IHByb3RvIGFyZSBjZWxscy4gYmFzZVZhbCBtdXN0IGJl
IGEgY2VsbCAtIHRoaXMgaXMgY2hlY2tlZCBieSB0aGUgZ2V0X2J5X2lkIGZvciBTeW1ib2wuaGFz
SW5zdGFuY2UuCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QyLCB2YWx1ZSk7
CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHJlZ1QxLCBwcm90byk7CiAKQEAgLTE1
Nyw2ICsxNjksMTIgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoZHN0KTsKIH0K
IAordm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qKQorewor
ICAgIC8vIFRoaXMgYWx3YXlzIGdvZXMgdG8gc2xvdyBwYXRoIHNpbmNlIHdlIGV4cGVjdCBpdCB0
byBiZSByYXJlLgorICAgIGFkZFNsb3dDYXNlKGp1bXAoKSk7Cit9CisKIHZvaWQgSklUOjplbWl0
X29wX2lzX3VuZGVmaW5lZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAg
IGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAtODI5LDMzICs4
NDcsMzQgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX25zdHJpY3RlcShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAgICBzbG93UGF0aENhbGwuY2FsbCgp
OwogfQogCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY2hlY2tfaGFzX2luc3RhbmNlKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3Im
IGl0ZXIpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQog
ewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGlu
dCB2YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7Ci0gICAgaW50IGJhc2VW
YWwgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBwcm90byA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAKLSAgICBsaW5rU2xvd0Nhc2VJZk5vdEpT
Q2VsbChpdGVyLCBiYXNlVmFsKTsKKyAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCB2
YWx1ZSk7CisgICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgcHJvdG8pOwogICAgIGxp
bmtTbG93Q2FzZShpdGVyKTsKICAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZhbHVlLCByZWdU
MCk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihiYXNlVmFsLCByZWdUMSk7Ci0gICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25DaGVja0hhc0luc3RhbmNlLCBkc3QsIHJlZ1QwLCByZWdUMSk7
Ci0KLSAgICBlbWl0SnVtcFNsb3dUb0hvdChqdW1wKCksIGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
Lm9wZXJhbmQpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIocHJvdG8sIHJlZ1QxKTsKKyAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2YsIGRzdCwgcmVnVDAsIHJlZ1QxKTsK
IH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3Zv
aWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewog
ICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCB2
YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7Ci0gICAgaW50IHByb3RvID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgY29uc3RydWN0b3IgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBoYXNJbnN0YW5jZVZhbHVl
ID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKIAotICAgIGxpbmtTbG93Q2FzZUlm
Tm90SlNDZWxsKGl0ZXIsIHZhbHVlKTsKLSAgICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVy
LCBwcm90byk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVn
aXN0ZXIodmFsdWUsIHJlZ1QwKTsKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHByb3RvLCBy
ZWdUMSk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mLCBkc3QsIHJlZ1Qw
LCByZWdUMSk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihjb25zdHJ1Y3RvciwgcmVnVDEp
OworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoaGFzSW5zdGFuY2VWYWx1ZSwgcmVnVDIpOwor
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbSwgcmVnVDAsIHJlZ1Qx
LCByZWdUMik7CisgICAgZW1pdFRhZ0Jvb2wocmV0dXJuVmFsdWVHUFIpOworICAgIGVtaXRQdXRW
aXJ0dWFsUmVnaXN0ZXIoZHN0LCByZXR1cm5WYWx1ZUdQUik7CiB9CiAKIHZvaWQgSklUOjplbWl0
U2xvd19vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9y
PFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAppbmRleCA4OTQ1NWVkY2UwNDU2YmFkZjg4OGZhYTAz
MDlkY2FiMGRlMDc4ZmM4Li44ZmMzYjkyMGY1OGMxZjhiNjAwY2NkOGNjNDUxMmMwM2VkZThlMjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBA
IC0xODMsMTcgKzE4MywzMSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbmV3X29iamVjdChJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRTdG9y
ZUNlbGwoZHN0LCByZXR1cm5WYWx1ZUdQUik7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX2NoZWNr
X2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQordm9pZCBKSVQ6
OmVtaXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogewotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZDsKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAg
ICBpbnQgY29uc3RydWN0b3IgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAg
IGludCBoYXNJbnN0YW5jZVZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsK
IAotICAgIGVtaXRMb2FkUGF5bG9hZChiYXNlVmFsLCByZWdUMCk7CisgICAgZW1pdExvYWRQYXls
b2FkKGhhc0luc3RhbmNlVmFsdWUsIHJlZ1QwKTsKKyAgICAvLyBXZSBkb24ndCBqdW1wIGlmIHdl
IGtub3cgd2hhdCBTeW1ib2wuaGFzSW5zdGFuY2Ugd291bGQgZG8uCisgICAgSnVtcCBoYXNJbnN0
YW5jZVZhbHVlTm90Q2VsbCA9IGVtaXRKdW1wSWZOb3RKU0NlbGwoaGFzSW5zdGFuY2VWYWx1ZSk7
CisgICAgSnVtcCBjdXN0b21oYXNJbnN0YW5jZVZhbHVlID0gYnJhbmNoUHRyKE5vdEVxdWFsLCBy
ZWdUMCwgVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9u
UHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkpKTsKKworICAgIC8vIFdlIGtub3cgdGhh
dCBjb25zdHJ1Y3RvciBpcyBhbiBvYmplY3QgZnJvbSB0aGUgd2F5IGJ5dGVjb2RlIGlzIGVtaXR0
ZWQgZm9yIGluc3RhbmNlb2YgZXhwcmVzc2lvbnMuCisgICAgZW1pdExvYWRQYXlsb2FkKGNvbnN0
cnVjdG9yLCByZWdUMCk7CisKKyAgICAvLyBDaGVjayB0aGF0IGNvbnN0cnVjdG9yICdJbXBsZW1l
bnRzSGFzSW5zdGFuY2UnIGkuZS4gdGhlIG9iamVjdCBpcyBhIEMtQVBJIHVzZXIgb3IgYSBib3Vu
ZCBmdW5jdGlvbi4KKyAgICB0ZXN0OChaZXJvLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OnR5cGVJ
bmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlKSwgcmVnVDApOworICAgIEp1bXAgZG9uZSA9IGp1bXAoKTsKKworICAgIGhhc0luc3RhbmNl
VmFsdWVOb3RDZWxsLmxpbmsodGhpcyk7CisgICAgY3VzdG9taGFzSW5zdGFuY2VWYWx1ZS5saW5r
KHRoaXMpOworICAgIG1vdmUoVHJ1c3RlZEltbTMyKDEpLCByZWdUMCk7CisKKyAgICBkb25lLmxp
bmsodGhpcyk7CisgICAgZW1pdFN0b3JlQm9vbChkc3QsIHJlZ1QwKTsKIAotICAgIC8vIENoZWNr
IHRoYXQgYmFzZVZhbCBpcyBhIGNlbGwuCi0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxs
KGJhc2VWYWwpOwotICAgIAotICAgIC8vIENoZWNrIHRoYXQgYmFzZVZhbCAnSW1wbGVtZW50c0hh
c0luc3RhbmNlJy4KLSAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0OChaZXJvLCBBZGRyZXNzKHJl
Z1QwLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihJbXBsZW1l
bnRzRGVmYXVsdEhhc0luc3RhbmNlKSkpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5j
ZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCkBAIC0yMDcsNyArMjIxLDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGVtaXRMb2FkUGF5bG9hZCh2YWx1ZSwgcmVnVDIpOwogICAgIGVtaXRMb2FkUGF5
bG9hZChwcm90bywgcmVnVDEpOwogCi0gICAgLy8gQ2hlY2sgdGhhdCBwcm90byBhcmUgY2VsbHMu
ICBiYXNlVmFsIG11c3QgYmUgYSBjZWxsIC0gdGhpcyBpcyBjaGVja2VkIGJ5IG9wX2NoZWNrX2hh
c19pbnN0YW5jZS4KKyAgICAvLyBDaGVjayB0aGF0IHByb3RvIGFyZSBjZWxscy4gYmFzZVZhbCBt
dXN0IGJlIGEgY2VsbCAtIHRoaXMgaXMgY2hlY2tlZCBieSB0aGUgZ2V0X2J5X2lkIGZvciBTeW1i
b2wuaGFzSW5zdGFuY2UuCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHZhbHVlKTsK
ICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocHJvdG8pOwogICAgIApAQCAtMjM1LDIw
ICsyNDksMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogICAgIGVtaXRTdG9yZUJvb2woZHN0LCByZWdUMCk7CiB9CiAKLXZv
aWQgSklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3Zv
aWQgSklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKikKIHsKLSAgICBp
bnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKLSAgICBpbnQgdmFsdWUg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwotICAgIGludCBiYXNlVmFsID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLQotICAgIGxpbmtTbG93Q2FzZUlmTm90SlND
ZWxsKGl0ZXIsIGJhc2VWYWwpOwotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKLQotICAgIGVtaXRM
b2FkKHZhbHVlLCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRMb2FkKGJhc2VWYWwsIHJlZ1QzLCBy
ZWdUMik7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25DaGVja0hhc0luc3RhbmNlLCBkc3Qs
IHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyKTsKLQotICAgIGVtaXRKdW1wU2xvd1RvSG90KGp1
bXAoKSwgY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgLy8gVGhpcyBhbHdh
eXMgZ29lcyB0byBzbG93IHBhdGggc2luY2Ugd2UgZXhwZWN0IGl0IHRvIGJlIHJhcmUuCisgICAg
YWRkU2xvd0Nhc2UoanVtcCgpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNl
b2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+
OjppdGVyYXRvciYgaXRlcikKQEAgLTI2Niw2ICsyNzAsMjIgQEAgdm9pZCBKSVQ6OmVtaXRTbG93
X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNs
b3dDYXMKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2YsIGRzdCwgcmVnVDEs
IHJlZ1QwLCByZWdUMywgcmVnVDIpOwogfQogCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFu
Y2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKK3sKKyAgICBpbnQgZHN0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
Ml0udS5vcGVyYW5kOworICAgIGludCBjb25zdHJ1Y3RvciA9IGN1cnJlbnRJbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQ7CisgICAgaW50IGhhc0luc3RhbmNlVmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5vcGVyYW5kOworCisgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOworCisgICAgZW1pdExv
YWQodmFsdWUsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdExvYWRQYXlsb2FkKGNvbnN0cnVjdG9y
LCByZWdUMik7CisgICAgZW1pdExvYWQoaGFzSW5zdGFuY2VWYWx1ZSwgcmVnVDQsIHJlZ1QzKTsK
KyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20sIHJlZ1QxLCByZWdU
MCwgcmVnVDIsIHJlZ1Q0LCByZWdUMyk7CisgICAgZW1pdFN0b3JlQm9vbChkc3QsIHJldHVyblZh
bHVlR1BSKTsKK30KKwogdm9pZCBKSVQ6OmVtaXRfb3BfaXNfdW5kZWZpbmVkKEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcAppbmRleCBjYWQ5MzQ2OWMxYmNiZDJiNTdkY2I1MjAyM2FiZTlmNzIzZjc0NDQ1Li5jZmY4
NDU4OTQ5N2Y4ZGNjMDU0M2Q2NjBlZDE2NDE3MjlhNWFkYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTE0ODcsMjUgKzE0ODcsMTkgQEAgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbChFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY28KICAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGV4ZWMs
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25DaGVja0hhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbCkK
K2ludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0
b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
IAogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAg
ICBKU1ZhbHVlIGJhc2VWYWwgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2VWYWwpOwotCi0g
ICAgaWYgKGJhc2VWYWwuaXNPYmplY3QoKSkgewotICAgICAgICBKU09iamVjdCogYmFzZU9iamVj
dCA9IGFzT2JqZWN0KGJhc2VWYWwpOwotICAgICAgICBBU1NFUlQoIWJhc2VPYmplY3QtPnN0cnVj
dHVyZSh2bSktPnR5cGVJbmZvKCkuaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSgpKTsKLSAg
ICAgICAgaWYgKGJhc2VPYmplY3QtPnN0cnVjdHVyZSh2bSktPnR5cGVJbmZvKCkuaW1wbGVtZW50
c0hhc0luc3RhbmNlKCkpIHsKLSAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gYmFzZU9iamVjdC0+
bWV0aG9kVGFibGUodm0pLT5jdXN0b21IYXNJbnN0YW5jZShiYXNlT2JqZWN0LCBleGVjLCB2YWx1
ZSk7Ci0gICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZXN1bHQp
KTsKLSAgICAgICAgfQotICAgIH0KKyAgICBKU1ZhbHVlIGhhc0luc3RhbmNlVmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZEhhc0luc3RhbmNlKTsKIAotICAgIHZtLnRocm93RXhjZXB0aW9u
KGV4ZWMsIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3IoZXhlYywgYmFzZVZh
bCkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICBBU1NFUlQo
aGFzSW5zdGFuY2VWYWx1ZSAhPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9u
UHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKCkgfHwgIWNvbnN0cnVjdG9yLT5zdHJ1Y3R1
cmUoKS0+dHlwZUluZm8oKS5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpOworCisgICAg
aWYgKGNvbnN0cnVjdG9yLT5oYXNJbnN0YW5jZShleGVjLCB2YWx1ZSwgaGFzSW5zdGFuY2VWYWx1
ZSkpCisgICAgICAgIHJldHVybiAxOworICAgIHJldHVybiAwOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IDI1NDI1NTAyMjlkYTQxZTFhZGQ0
NmIwYjAyNThlOGU0OTk1YjliNmQuLjNkZTE3ODRkMGZmOWU4MDY4MTE1NmFlNzNlYjFkMDU3OTdk
MDk0OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0x
NzUsNiArMTc1LDcgQEAgdHlwZWRlZiBpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpaX0pJVE9wZXJh
dGlvbl9FQykoRXhlY1N0YXRlKiwgSlNDZWxsKik7CiB0eXBlZGVmIGludDMyX3QgSklUX09QRVJB
VElPTiAoKlpfSklUT3BlcmF0aW9uX0VHQykoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBK
U0NlbGwqKTsKIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25f
RVNKc3MpKEV4ZWNTdGF0ZSosIHNpemVfdCwgSlNTdHJpbmcqKTsKIHR5cGVkZWYgaW50MzJfdCBK
SVRfT1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25fRUopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlKTsKK3R5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25fRUpP
SikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUp
OwogdHlwZWRlZiBpbnQzMl90IEpJVF9PUEVSQVRJT04gKCpaX0pJVE9wZXJhdGlvbl9FSlopKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KTsKIHR5cGVkZWYgaW50MzJfdCBKSVRf
T1BFUkFUSU9OICgqWl9KSVRPcGVyYXRpb25fRUpaWikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiBzaXplX3QgSklUX09QRVJBVElPTiAoKlNf
SklUT3BlcmF0aW9uX0VDQykoRXhlY1N0YXRlKiwgSlNDZWxsKiwgSlNDZWxsKik7CkBAIC0zMjgs
NyArMzI5LDYgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVT
Y29wZShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWIKIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZURpZENhbGwoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9m
aWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgYmFzZVZhbCkgV1RGX0lOVEVS
TkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGlt
aXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlw
dCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RG
X0lOVEVSTkFMOwpAQCAtMzU3LDYgKzM1Nyw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Jbml0R2xvYmFsQ29uc3QoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qKTsKIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25FeGNlcHRpb25GdXp6KEV4ZWNTdGF0ZSopOwogCiBpbnQzMl90IEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tJZkV4Y2VwdGlvbklzVW5jYXRjaGFibGVBbmROb3Rp
ZnlQcm9maWxlcihFeGVjU3RhdGUqKTsKK2ludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25J
bnN0YW5jZU9mQ3VzdG9tKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
SlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2Up
IFdURl9JTlRFUk5BTDsKIAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25I
YXNHZW5lcmljUHJvcGVydHkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEpTQ2VsbCopOwog
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNJbmRleGVkUHJvcGVydHko
RXhlY1N0YXRlKiwgSlNDZWxsKiwgaW50MzJfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9MTEludERhdGEuY3BwCmluZGV4IDAxOTI3YjYzMDRjMjNjMGQ1ZmI4NDQ2N2Y3YjM5OGE4YTRj
MWVlM2EuLmYzM2MwYjM1ZjBjNmNlMjhiZjlmM2QzODJhMDkxMWIwZmExNjg2OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCIKICNpbmNsdWRlICJPcGNv
ZGUuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU9mZnNldC5oIgorI2luY2x1ZGUgIldyaXRlQmFycmll
ci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKIApAQCAtMTU0LDYgKzE1
NSw3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMoVk0mIHZtKQogICAgIEFTU0VSVChG
dW5jdGlvbkNvZGUgPT0gMik7CiAgICAgQVNTRVJUKE1vZHVsZUNvZGUgPT0gMyk7CiAKKyAgICBB
U1NFUlQoIShyZWludGVycHJldF9jYXN0PHB0cmRpZmZfdD4oKHJlaW50ZXJwcmV0X2Nhc3Q8V3Jp
dGVCYXJyaWVyPEpTQ2VsbD4qPigweDQwMDApLT5zbG90KCkpKSAtIDB4NDAwMCkpOwogICAgIHN0
YXRpY19hc3NlcnQoUHV0QnlJZFByaW1hcnlUeXBlTWFzayA9PSAweDYsICJMTEludCBhc3N1bWVz
IFB1dEJ5SWRQcmltYXJ5VHlwZU1hc2sgaXMgPT0gMHg2Iik7CiAgICAgc3RhdGljX2Fzc2VydChQ
dXRCeUlkUHJpbWFyeVR5cGVTZWNvbmRhcnkgPT0gMHgwLCAiTExJbnQgYXNzdW1lcyBQdXRCeUlk
UHJpbWFyeVR5cGVTZWNvbmRhcnkgaXMgPT0gMHgwIik7CiAgICAgc3RhdGljX2Fzc2VydChQdXRC
eUlkUHJpbWFyeVR5cGVPYmplY3RXaXRoU3RydWN0dXJlID09IDB4MiwgIkxMSW50IGFzc3VtZXMg
UHV0QnlJZFByaW1hcnlUeXBlT2JqZWN0V2l0aFN0cnVjdHVyZSBpcyA9PSAweDIiKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IDk4ZmJl
ZDhmMjhiODVhYjhhZDY1Y2QwM2YyNmJkYmJmMjY3OTcyMTYuLjVkOGJmYzNlZTliNzE1MDczOTMy
ODE0ZTNiNDliMzBlZjZlNWQ2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtNTIyLDMwICs1MjIsMjggQEAgTExJTlRfU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX25ld19yZWdleHApCiAgICAgTExJTlRfUkVUVVJOKFJlZ0V4cE9iamVj
dDo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cFN0cnVjdHVy
ZSgpLCByZWdFeHApKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NoZWNr
X2hhc19pbnN0YW5jZSkKK0xMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9m
KQogewogICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5U
X09QX0MoMikuanNWYWx1ZSgpOwotICAgIEpTVmFsdWUgYmFzZVZhbCA9IExMSU5UX09QX0MoMyku
anNWYWx1ZSgpOwotICAgIGlmIChiYXNlVmFsLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgSlNPYmpl
Y3QqIGJhc2VPYmplY3QgPSBhc09iamVjdChiYXNlVmFsKTsKLSAgICAgICAgQVNTRVJUKCFiYXNl
T2JqZWN0LT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlKCkpOwotICAgICAgICBpZiAoYmFzZU9iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCku
aW1wbGVtZW50c0hhc0luc3RhbmNlKCkpIHsKLSAgICAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNCb29sZWFuKGJhc2VPYmplY3QtPm1ldGhvZFRhYmxlKCktPmN1c3RvbUhhc0luc3RhbmNlKGJh
c2VPYmplY3QsIGV4ZWMsIHZhbHVlKSk7Ci0gICAgICAgICAgICBMTElOVF9SRVRVUk5fV0lUSF9Q
Q19BREpVU1RNRU5UKHJlc3VsdCwgcGNbNF0udS5vcGVyYW5kKTsKLSAgICAgICAgfQotICAgIH0K
LSAgICBMTElOVF9USFJPVyhjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKGV4
ZWMsIGJhc2VWYWwpKTsKKyAgICBKU1ZhbHVlIHByb3RvID0gTExJTlRfT1BfQygzKS5qc1ZhbHVl
KCk7CisgICAgQVNTRVJUKCF2YWx1ZS5pc09iamVjdCgpIHx8ICFwcm90by5pc09iamVjdCgpKTsK
KyAgICBMTElOVF9SRVRVUk4oanNCb29sZWFuKEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2Uo
ZXhlYywgdmFsdWUsIHByb3RvKSkpOwogfQogCi1MTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3Bh
dGhfaW5zdGFuY2VvZikKK0xMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9m
X2N1c3RvbSkKIHsKICAgICBMTElOVF9CRUdJTigpOworCiAgICAgSlNWYWx1ZSB2YWx1ZSA9IExM
SU5UX09QX0MoMikuanNWYWx1ZSgpOwotICAgIEpTVmFsdWUgcHJvdG8gPSBMTElOVF9PUF9DKDMp
LmpzVmFsdWUoKTsKLSAgICBBU1NFUlQoIXZhbHVlLmlzT2JqZWN0KCkgfHwgIXByb3RvLmlzT2Jq
ZWN0KCkpOwotICAgIExMSU5UX1JFVFVSTihqc0Jvb2xlYW4oSlNPYmplY3Q6OmRlZmF1bHRIYXNJ
bnN0YW5jZShleGVjLCB2YWx1ZSwgcHJvdG8pKSk7CisgICAgSlNWYWx1ZSBjb25zdHJ1Y3RvciA9
IExMSU5UX09QX0MoMykuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgaGFzSW5zdGFuY2VWYWx1ZSA9
IExMSU5UX09QX0MoNCkuanNWYWx1ZSgpOworCisgICAgQVNTRVJUKGNvbnN0cnVjdG9yLmlzT2Jq
ZWN0KCkpOworICAgIEFTU0VSVChoYXNJbnN0YW5jZVZhbHVlICE9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSB8fCAh
Y29uc3RydWN0b3IuZ2V0T2JqZWN0KCktPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLmltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UoKSk7CisKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVh
bihjb25zdHJ1Y3Rvci5nZXRPYmplY3QoKS0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIGhhc0lu
c3RhbmNlVmFsdWUpKTsKKyAgICBMTElOVF9SRVRVUk4ocmVzdWx0KTsKIH0KIAogTExJTlRfU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2dldF9ieV9pZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmgKaW5kZXggMjcxMzI0YjE4NDUzZDcyZGM4Yjc2MTgwYmEw
MzA0YWI0NTY1OTU5Ny4uMGQ1YzhkYTQzYjAwOWFiOTdhYjJmNzJhODc1YzE0ZWI1NjYwMzliOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKQEAgLTY3
LDggKzY3LDggQEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfYXJy
YXkpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9uZXdfYXJyYXlfd2l0
aF9zaXplKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbmV3X2FycmF5
X2J1ZmZlcik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX25ld19yZWdl
eHApOwotTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9jaGVja19oYXNfaW5z
dGFuY2UpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbnN0YW5jZW9m
KTsKK0xMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW5zdGFuY2VvZl9jdXN0
b20pOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpOwog
TExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYXJndW1lbnRzX2xlbmd0
aCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF9ieV9pZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyMzJfNjQuYXNtCmluZGV4IGM1YTg3ZTNiMWQzOGJlMzM2NDBlZTYyYmZiYTZiNThjMWRlZTZi
NWYuLjRhM2FhY2YwOTQ4OGQ1OWE2NjU4NmZmZDJmYjAzNWNhM2Q3MjI2MWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJf
NjQuYXNtCkBAIC0xMTc1LDE3ICsxMTc1LDM1IEBAIF9sbGludF9vcF9iaXRvcjoKICAgICAgICAg
NSkKIAogCi1fbGxpbnRfb3BfY2hlY2tfaGFzX2luc3RhbmNlOgorX2xsaW50X29wX292ZXJyaWRl
c19oYXNfaW5zdGFuY2U6CiAgICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDEyW1BDXSwg
dDEKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MSwgQ2VsbFRhZywgdDAsIC5v
cENoZWNrSGFzSW5zdGFuY2VTbG93KQotICAgIGJ0YnogSlNDZWxsOjptX2ZsYWdzW3QwXSwgSW1w
bGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cKLSAgICBk
aXNwYXRjaCg1KQogCi0ub3BDaGVja0hhc0luc3RhbmNlU2xvdzoKLSAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCi0gICAgZGlzcGF0Y2goMCkKKyAg
ICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDMpCisgICAgc3RvcmVpIEJvb2xlYW5UYWcsIFRh
Z09mZnNldFtjZnIsIHQzLCA4XQogCisgICAgIyBGaXJzdCBjaGVjayBpZiBoYXNJbnN0YW5jZVZh
bHVlIGlzIHRoZSBvbmUgb24gRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0K
KyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMywgdDApCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZVBheWxvYWQodDAsIENlbGxUYWcsIHQyLCAub3BPdmVycmlkZXNoYXNJbnN0YW5jZVZhbHVl
Tm90Q2VsbCkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MSwgdDIpCisgICAgYmlu
ZXEgdDEsIENlbGxUYWcsIC5vcE92ZXJyaWRlc2hhc0luc3RhbmNlVmFsdWVOb3RDZWxsCisKKyAg
ICAjIFdlIGRvbid0IG5lZWQgaGFzSW5zdGFuY2VWYWx1ZSdzIHRhZyByZWdpc3RlciBhbnltb3Jl
LgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGxvYWRwIENvZGVCbG9jazo6bV9n
bG9iYWxPYmplY3RbdDFdLCB0MQorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX2Z1bmN0aW9u
UHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uW3QxXSwgdDEKKyAgICBiaW5lcSB0MSwgdDIs
IC5vcE92ZXJyaWRlc2hhc0luc3RhbmNlVmFsdWVOb3REZWZhdWx0CisKKyAgICAjIFdlIGtub3cg
dGhlIGNvbnN0cnVjdG9yIGlzIGEgY2VsbC4KKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwg
dDApCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWRVbmNoZWNrZWQodDAsIHQxKQor
ICAgIHRieiBKU0NlbGw6Om1fZmxhZ3NbdDFdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNl
LCB0MAorICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQzLCA4XQorICAgIGRpc3Bh
dGNoKDQpCisKKy5vcE92ZXJyaWRlc2hhc0luc3RhbmNlVmFsdWVOb3RDZWxsOgorLm9wT3ZlcnJp
ZGVzaGFzSW5zdGFuY2VWYWx1ZU5vdERlZmF1bHQ6CisgICAgc3RvcmVpIDEsIFBheWxvYWRPZmZz
ZXRbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg0KQogCiBfbGxpbnRfb3BfaW5zdGFuY2VvZjoK
ICAgICB0cmFjZUV4ZWN1dGlvbigpCkBAIC0xMjE1LDYgKzEyMzMsMTEgQEAgX2xsaW50X29wX2lu
c3RhbmNlb2Y6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZikK
ICAgICBkaXNwYXRjaCg0KQogCitfbGxpbnRfb3BfaW5zdGFuY2VvZl9jdXN0b206CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luc3RhbmNl
b2ZfY3VzdG9tKQorICAgIGRpc3BhdGNoKDUpCisKIAogX2xsaW50X29wX2lzX3VuZGVmaW5lZDoK
ICAgICB0cmFjZUV4ZWN1dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IDY5ZjNlMGI1ZWEwOTFkNDQxNmI0
YWE2ZGFjZjhiZWRkMTk4YTMzMzMuLjgzNzgwMmU5ZWEwOTMyMmQ2NmE2OWU0ZTA2MzRiNGE0ZmZk
OTcxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyNjQuYXNtCkBAIC0xMDY5LDE2ICsxMDY5LDI4IEBAIF9sbGludF9vcF9iaXRv
cjoKICAgICAgICAgNSkKIAogCi1fbGxpbnRfb3BfY2hlY2tfaGFzX2luc3RhbmNlOgorX2xsaW50
X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2U6CiAgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MykKKwogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigz
LCB0MSkKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MSwgdDAsIC5vcENoZWNrSGFz
SW5zdGFuY2VTbG93KQotICAgIGJ0YnogSlNDZWxsOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cKLSAgICBkaXNwYXRjaCg1
KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCB0MgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDJdLCB0Mgor
ICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJv
bEZ1bmN0aW9uW3QyXSwgdDIKKyAgICBicW5lcSB0MCwgdDIsIC5vcE92ZXJyaWRlc0hhc0luc3Rh
bmNlTm90RGVmYXVsdFN5bWJvbAogCi0ub3BDaGVja0hhc0luc3RhbmNlU2xvdzoKLSAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCi0gICAgZGlzcGF0
Y2goMCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDEpCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MSwgdDApCisgICAgdGJ6IEpTQ2VsbDo6bV9mbGFnc1t0MF0sIEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UsIHQxCisgICAgb3JxIFZhbHVlRmFsc2UsIHQxCisgICAgc3Rv
cmVxIHQxLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg0KQorCisub3BPdmVycmlkZXNIYXNJ
bnN0YW5jZU5vdERlZmF1bHRTeW1ib2w6CisgICAgc3RvcmVxIFZhbHVlVHJ1ZSwgdDEKKyAgICBz
dG9yZXEgdDEsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQpCiAKIAogX2xsaW50X29wX2lu
c3RhbmNlb2Y6CkBAIC0xMTA5LDYgKzExMjEsMTAgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZikKICAgICBkaXNwYXRj
aCg0KQogCitfbGxpbnRfb3BfaW5zdGFuY2VvZl9jdXN0b206CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKQor
ICAgIGRpc3BhdGNoKDUpCiAKIF9sbGludF9vcF9pc191bmRlZmluZWQ6CiAgICAgdHJhY2VFeGVj
dXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
SWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmgKaW5kZXggNjgzNWE4YTZkN2YyNzUzZGY4MTJhNzMzMWY3NTMzNTg0MjYyYTlhZS4u
NWZmMDY0ODg4N2NkMGY5ODI3ZWZmNGFiM2YzODgwNTNkYTY2NGU3MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yNTAsNyAr
MjUwLDYgQEAKICAgICBtYWNybyh5aWVsZCkKIAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVf
SURFTlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTF9OT1RfSU1QTEVNRU5URURfWUVUKG1h
Y3JvKVwKLSAgICBtYWNybyhoYXNJbnN0YW5jZSkgXAogICAgIG1hY3JvKGlzQ29uY2F0U3ByZWFk
YWJsZSkgXAogICAgIG1hY3JvKG1hdGNoKSBcCiAgICAgbWFjcm8ocmVwbGFjZSkgXApAQCAtMjYw
LDYgKzI1OSw3IEBACiAgICAgbWFjcm8odG9QcmltaXRpdmUpCiAKICNkZWZpbmUgSlNDX0NPTU1P
Tl9QUklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0wobWFjcm8pIFwKKyAg
ICBtYWNybyhoYXNJbnN0YW5jZSkgXAogICAgIG1hY3JvKGl0ZXJhdG9yKSBcCiAgICAgbWFjcm8o
dW5zY29wYWJsZXMpIFwKICAgICBtYWNybyh0b1N0cmluZ1RhZykKQEAgLTM0Myw2ICszNDMsOSBA
QAogICAgIG1hY3JvKE51bWJlckZvcm1hdCkgXAogICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBc
CiAgICAgbWFjcm8oZGVyaXZlZENvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oaXNCb3VuZEZ1bmN0
aW9uKSBcCisgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8o
aW5zdGFuY2VPZikgXAogCiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAppbmRleCAwMTMxYjlmMWMzZDMz
NGJhZTA1YzFjOWI2MDJiMGI5ZDUyOWYzYTMwLi4xOTZiZTJlMWMzZGNlNTFiYTJiNjJlZjg4N2U3
YmNjZThlMWY5MjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGNlcHRpb25IZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGNlcHRpb25IZWxwZXJzLmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHN0YXRpYyBTdHJpbmcgaW52
YWxpZFBhcmFtZXRlckluU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3Nh
Z2UsIGNvCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcocmlnaHRIYW5kU2lkZSwgIiBpcyBub3QgYW4g
T2JqZWN0LiAoZXZhbHVhdGluZyAnIiwgc291cmNlVGV4dCwgIicpIik7CiB9CiAKLXN0YXRpYyBT
dHJpbmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRlcihjb25zdCBTdHJp
bmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlw
ZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNl
KQoraW5saW5lIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVy
KGNvbnN0IFN0cmluZyYgY29udGVudCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5cGUsIEVycm9ySW5zdGFuY2U6OlNvdXJj
ZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkKIHsKICAgICBpZiAob2NjdXJyZW5j
ZSA9PSBFcnJvckluc3RhbmNlOjpGb3VuZEFwcHJveGltYXRlU291cmNlKQogICAgICAgICByZXR1
cm4gZGVmYXVsdEFwcHJveGltYXRlU291cmNlRXJyb3Iob3JpZ2luYWxNZXNzYWdlLCBzb3VyY2VU
ZXh0KTsKQEAgLTIyMiw3ICsyMjIsMTcgQEAgc3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVy
SW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXMKIAogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnN0YW5jZW9mTGVuZ3RoID0gMTA7CiAgICAgU3RyaW5n
IHJpZ2h0SGFuZFNpZGUgPSBzb3VyY2VUZXh0LnN1YnN0cmluZyhpbnN0YW5jZW9mSW5kZXggKyBp
bnN0YW5jZW9mTGVuZ3RoKS5zaW1wbGlmeVdoaXRlU3BhY2UoKTsKLSAgICByZXR1cm4gbWFrZVN0
cmluZyhyaWdodEhhbmRTaWRlLCAiIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnIiwg
c291cmNlVGV4dCwgIicpIik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcocmlnaHRIYW5kU2lkZSwg
Y29udGVudCwgIi4gKGV2YWx1YXRpbmcgJyIsIHNvdXJjZVRleHQsICInKSIpOworfQorCitzdGF0
aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mTm90RnVuY3Rpb25Tb3VyY2VBcHBl
bmRlcihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VU
ZXh0LCBSdW50aW1lVHlwZSBydW50aW1lVHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdo
ZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNlKQoreworICAgIHJldHVybiBpbnZhbGlkUGFyYW1l
dGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKFdURjo6bWFrZVN0cmluZygiIGlzIG5vdCBhIGZ1
bmN0aW9uIiksIG9yaWdpbmFsTWVzc2FnZSwgc291cmNlVGV4dCwgcnVudGltZVR5cGUsIG9jY3Vy
cmVuY2UpOworfQorCitzdGF0aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9maGFz
SW5zdGFuY2VWYWx1ZU5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmln
aW5hbE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5cGUgcnVudGlt
ZVR5cGUsIEVycm9ySW5zdGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJy
ZW5jZSkKK3sKKyAgICByZXR1cm4gaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBl
bmRlcihXVEY6Om1ha2VTdHJpbmcoIltTeW1ib2wuaGFzSW5zdGFuY2VdIGlzIG5vdCBhIGZ1bmN0
aW9uLCB1bmRlZmluZWQsIG9yIG51bGwiKSwgb3JpZ2luYWxNZXNzYWdlLCBzb3VyY2VUZXh0LCBy
dW50aW1lVHlwZSwgb2NjdXJyZW5jZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJ
bnN0YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCkBAIC0yNDUsOSArMjU1LDE0IEBAIEpT
T2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5QYXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdmFsdWUpCiAgICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMsIHZhbHVlLCBtYWtlU3Ry
aW5nKCJpcyBub3QgYW4gT2JqZWN0LiIpLCBpbnZhbGlkUGFyYW1ldGVySW5Tb3VyY2VBcHBlbmRl
cik7CiB9CiAKLUpTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9y
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlk
SW5zdGFuY2VvZlBhcmFtZXRlckVycm9yTm90RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHZhbHVlKQoreworICAgIHJldHVybiBjcmVhdGVFcnJvcihleGVjLCB2YWx1ZSwgbWFrZVN0
cmluZygiIGlzIG5vdCBhIGZ1bmN0aW9uIiksIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mTm90
RnVuY3Rpb25Tb3VyY2VBcHBlbmRlcik7Cit9CisKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5z
dGFuY2VvZlBhcmFtZXRlckVycm9yaGFzSW5zdGFuY2VWYWx1ZU5vdEZ1bmN0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywg
dmFsdWUsIG1ha2VTdHJpbmcoImlzIG5vdCBhIGZ1bmN0aW9uLiIpLCBpbnZhbGlkUGFyYW1ldGVy
SW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKTsKKyAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywg
dmFsdWUsIG1ha2VTdHJpbmcoIltTeW1ib2wuaGFzSW5zdGFuY2VdIGlzIG5vdCBhIGZ1bmN0aW9u
LCB1bmRlZmluZWQsIG9yIG51bGwiKSwgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZoYXNJbnN0
YW5jZVZhbHVlTm90RnVuY3Rpb25Tb3VyY2VBcHBlbmRlcik7CiB9CiAKIEpTT2JqZWN0KiBjcmVh
dGVOb3RBQ29uc3RydWN0b3JFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgKaW5k
ZXggYzZiYTAyZTNmYmIwMzNiMjFmMWQ5M2ExMWVhN2NkOWQzMGYxOTM5YS4uNTRjNWQ3MDk2NDJk
MDI5Yzk0MGQyMWY2N2ViYTMxMTgzMGE3YjM4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaApAQCAtNDUsNyArNDUsOCBAQCBKU09iamVj
dCogY3JlYXRlVERaRXJyb3IoRXhlY1N0YXRlKik7CiBKU09iamVjdCogY3JlYXRlTm90QW5PYmpl
Y3RFcnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVJbnZhbGlkRnVu
Y3Rpb25BcHBseVBhcmFtZXRlckVycm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwogSlNPYmplY3Qq
IGNyZWF0ZUludmFsaWRJblBhcmFtZXRlckVycm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwotSlNP
YmplY3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3IoRXhlY1N0YXRlKiwg
SlNWYWx1ZSk7CitKU09iamVjdCogY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJv
ck5vdEZ1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOworSlNPYmplY3QqIGNyZWF0ZUludmFs
aWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JoYXNJbnN0YW5jZVZhbHVlTm90RnVuY3Rpb24oRXhl
Y1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlTm90QUNvbnN0cnVjdG9yRXJyb3Io
RXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlTm90QUZ1bmN0aW9uRXJyb3Io
RXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlRXJyb3JGb3JJbnZhbGlkR2xv
YmFsQXNzaWdubWVudChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCA5NzBk
MDEyODZjYTgwOWY4MGM5MWYzMTM3NWNmMmZjMjgzNjMyMmI0Li5hYTg3NTYxMDNiNzI0MDdkMjc3
N2VkYjZhZmQ2MTVkYWZmNDZkMTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgRnVu
Y3Rpb25Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgU3RyaW5nJiBuYW1l
KQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgsIGpzTnVtYmVyKDApLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9
CiAKLXZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTRnVuY3Rpb24qKiBjYWxs
RnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBhcHBseUZ1bmN0aW9uKQordm9pZCBGdW5jdGlvblByb3Rv
dHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNGdW5jdGlvbioqIGNhbGxGdW5jdGlvbiwgSlNGdW5jdGlvbioq
IGFwcGx5RnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBoYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKQog
ewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAKQEAgLTYyLDYgKzYyLDcgQEAgdm9pZCBGdW5j
dGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGcKIAogICAgICphcHBseUZ1bmN0aW9uID0gcHV0RGlyZWN0QnVpbHRpbkZ1
bmN0aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuYXBwbHlQdWJsaWNOYW1lKCksIGZ1bmN0aW9uUHJvdG90eXBlQXBw
bHlDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOwogICAgICpjYWxsRnVuY3Rpb24gPSBwdXRE
aXJlY3RCdWlsdGluRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jYWxsUHVibGljTmFtZSgpLCBmdW5jdGlv
blByb3RvdHlwZUNhbGxDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOworICAgICpoYXNJbnN0
YW5jZVN5bWJvbEZ1bmN0aW9uID0gcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxP
YmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmhhc0luc3RhbmNlU3ltYm9sLCBmdW5jdGlvblByb3Rv
dHlwZVN5bWJvbEhhc0luc3RhbmNlQ29kZUdlbmVyYXRvcih2bSksIERvbnREZWxldGUgfCBSZWFk
T25seSB8IERvbnRFbnVtKTsKIAogICAgIEpTRnVuY3Rpb24qIGJpbmRGdW5jdGlvbiA9IEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAxLCB2bS5wcm9wZXJ0eU5hbWVzLT5iaW5k
LnN0cmluZygpLCBmdW5jdGlvblByb3RvRnVuY0JpbmQpOwogICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5iaW5kLCBiaW5kRnVuY3Rpb24sIERvbnRF
bnVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3Rv
dHlwZS5oCmluZGV4IDUyY2U4ZjExYzVkZDdkMTAzMTU1NjkwM2U1YWNhYjBkMmFkNGMwZjguLmFi
ZTUzM2EzM2ExZjM3OGZlZGI4MjE0ZjU2Y2M1YWZlMGZhMWU2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtMzYsNyArMzYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgfQogCi0gICAgdm9p
ZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU0Z1
bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7CisgICAg
dm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBK
U0Z1bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbiwgSlNG
dW5jdGlvbioqIGhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogCiAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90bykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAppbmRleCA4YzVjYzJlZDM5MDQ4MmVhYzJlNzc1YTRm
MGMyZDJkNWM0Yzk5ZTYxLi4wZjA0OWY5MGZmYmU2YWI3M2I5MTdlOTExNzNlMmQxZjFiMjgxOTRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlv
bi5jcHAKQEAgLTc0LDYgKzc0LDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91
bmRGdW5jdGlvbkNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShjb25zdHJ1Y3QoZXhlYywgdGFyZ2V0RnVuY3Rpb24sIGNvbnN0cnVjdFR5cGUsIGNv
bnN0cnVjdERhdGEsIGFyZ3MpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBp
c0JvdW5kRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNWYWx1ZShzdGF0aWNfY2FzdDxib29sPihqc0R5bmFtaWNDYXN0PEpTQm91bmRGdW5j
dGlvbio+KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSkpKTsKK30KKworRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVj
KQoreworICAgIEpTQm91bmRGdW5jdGlvbiogYm91bmRPYmplY3QgPSBqc0Nhc3Q8SlNCb3VuZEZ1
bmN0aW9uKj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIEpTVmFsdWUgdmFsdWUg
PSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGJvdW5kT2JqZWN0LT50YXJnZXRGdW5jdGlvbigpLT5oYXNJbnN0YW5jZShl
eGVjLCB2YWx1ZSkpKTsKK30KKworCiBKU0JvdW5kRnVuY3Rpb24qIEpTQm91bmRGdW5jdGlvbjo6
Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRh
cmdldEZ1bmN0aW9uLCBKU1ZhbHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBib3VuZEFyZ3MsIGludCBs
ZW5ndGgsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBDb25zdHJ1Y3REYXRhIGNvbnN0cnVj
dERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5k
RnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlv
bi5oCmluZGV4IGFmMmE2MzIzZDUzNzFlMjA1NjBjMGYyNTU2Y2M1Yjg3ZjYyNTY4ZTkuLjA0MGVj
YmY3ODI2NzQyYzU3Zjc4OTA2YTE1NmEwNDg3ODc1OTI3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCkBAIC0zMiwxMSArMzIsMTMgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5j
dGlvbkNhbGwoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5k
RnVuY3Rpb25Db25zdHJ1Y3QoRXhlY1N0YXRlKik7CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGlzQm91bmRGdW5jdGlvbihFeGVjU3RhdGUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSopOwogCiBjbGFzcyBKU0Jv
dW5kRnVuY3Rpb24gOiBwdWJsaWMgSlNGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBK
U0Z1bmN0aW9uIEJhc2U7Ci0gICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gT3ZlcnJpZGVzSGFzSW5zdGFuY2UgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBjb25z
dCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNIYXNJbnN0YW5jZUZs
YWcgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHN0YXRpYyBKU0JvdW5kRnVuY3Rpb24q
IGNyZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uLCBK
U1ZhbHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBib3VuZEFyZ3MsIGludCwgY29uc3QgU3RyaW5nJik7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKaW5kZXggZWNjODJiYTYyOGJmMTZmMjExNzlhMmM0OGRiYTczYWY3ZWU3MmE4MS4uODJm
MjQxMTZjYWEyNmM5NDIzZTVmYTAxYjllNDkyOWE0ODJiZjA2MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMjg2LDEyICsyODYs
MTQgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgbV9pbnRlcm5hbEZ1
bmN0aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSk7CiAgICAgSlNGdW5j
dGlvbiogY2FsbEZ1bmN0aW9uID0gMDsKICAgICBKU0Z1bmN0aW9uKiBhcHBseUZ1bmN0aW9uID0g
MDsKLSAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5hZGRGdW5jdGlvblByb3BlcnRpZXMoZXhlYywg
dGhpcywgJmNhbGxGdW5jdGlvbiwgJmFwcGx5RnVuY3Rpb24pOworICAgIEpTRnVuY3Rpb24qIGhh
c0luc3RhbmNlU3ltYm9sRnVuY3Rpb24gPSAwOworICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPmFk
ZEZ1bmN0aW9uUHJvcGVydGllcyhleGVjLCB0aGlzLCAmY2FsbEZ1bmN0aW9uLCAmYXBwbHlGdW5j
dGlvbiwgJmhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogICAgIG1fY2FsbEZ1bmN0aW9uLnNl
dCh2bSwgdGhpcywgY2FsbEZ1bmN0aW9uKTsKICAgICBtX2FwcGx5RnVuY3Rpb24uc2V0KHZtLCB0
aGlzLCBhcHBseUZ1bmN0aW9uKTsKICAgICBtX2FycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbi5zZXQo
dm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgdm0ucHJvcGVydHlOYW1l
cy0+dmFsdWVzLnN0cmluZygpLCBhcnJheVByb3RvRnVuY1ZhbHVlcykpOwogICAgIG1faW5pdGlh
bGl6ZVByb21pc2VGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0
aW5GdW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNJbml0aWFsaXplUHJvbWlzZUNvZGVHZW5l
cmF0b3Iodm0pLCB0aGlzKSk7CiAgICAgbV9uZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uLnNl
dCh2bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNl
T3BlcmF0aW9uc05ld1Byb21pc2VDYXBhYmlsaXR5Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpKTsK
KyAgICBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uLnNldCh2bSwgdGhp
cywgaGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAgICAgbV9udWxsR2V0dGVyRnVuY3Rpb24u
c2V0KHZtLCB0aGlzLCBOdWxsR2V0dGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgTnVsbEdldHRlckZ1
bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0
KCkpKSk7CiAgICAgbV9udWxsU2V0dGVyRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBOdWxsU2V0dGVy
RnVuY3Rpb246OmNyZWF0ZSh2bSwgTnVsbFNldHRlckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUo
dm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKSk7CiAgICAgbV9vYmplY3RQcm90
b3R5cGUuc2V0KHZtLCB0aGlzLCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgT2Jq
ZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIGpzTnVsbCgpKSkpOwpAQCAt
NTIxLDYgKzUyMyw5IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5jdGlvbiog
cHJpdmF0ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24o
dm0sIGdsb2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKICAgICBK
U0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVh
dGUodm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3Ro
KTsKICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0ID0gSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y1NvcnQpOworICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uID0gSlNG
dW5jdGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgaXNCb3VuZEZ1bmN0aW9uKTsK
KyAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiA9IEpT
RnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGhhc0luc3RhbmNlQm91bmRG
dW5jdGlvbik7CisgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNJbnN0YW5jZU9mID0gSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0
YW5jZU9mKTsKIAogICAgIEdsb2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7CiAg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5OYU4sIGpzTmFOKCks
IERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKQEAgLTUzNSw2ICs1NDAsOSBAQCBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwg
bG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJv
cGVydHlOYW1lcy0+VHlwZUVycm9yUHJpdmF0ZU5hbWUsIG1fdHlwZUVycm9yQ29uc3RydWN0b3Iu
Z2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlMZW5ndGhQcml2YXRlTmFt
ZSwgcHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50
eXBlZEFycmF5U29ydFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0LCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5pc0JvdW5kRnVuY3Rpb25Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1
bmNJc0JvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAg
ICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmhhc0luc3RhbmNlQm91
bmRGdW5jdGlvblByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlv
biwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9w
ZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aW5zdGFuY2VPZlByaXZhdGVOYW1lLCBwcml2YXRl
RnVuY0luc3RhbmNlT2YsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkJ1aWx0aW5Mb2dQcml2YXRl
TmFtZSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+QXJyYXlQcml2YXRlTmFt
ZSwgYXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAog
ICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TnVtYmVyUHJpdmF0
ZU5hbWUsIG51bWJlckNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25s
eSksCkBAIC04MzIsNiArODQwLDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJl
bihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5k
KCZ0aGlzT2JqZWN0LT5tX2FycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbik7CiAgICAgdmlzaXRvci5h
cHBlbmQoJnRoaXNPYmplY3QtPm1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbik7CiAgICAgdmlz
aXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbik7
CisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fZnVuY3Rpb25Qcm90b0hhc0luc3Rh
bmNlU3ltYm9sRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Ro
cm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVj
dC0+bV9tb2R1bGVMb2FkZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAppbmRleCA2MmQxNDk1ZTE5ZTk2ZDE1ZDUzMjY3NDcxYjRkMzY4NDRl
M2M5MmEyLi45YTBhZTYyMmY2NjRmMDk3ZjU5ZThjMDk4Njc3ODViMzkzOGM1YWE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTIyMiw2
ICsyMjIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fYXJy
YXlQcm90b1ZhbHVlc0Z1bmN0aW9uOwogICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2lu
aXRpYWxpemVQcm9taXNlRnVuY3Rpb247CiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1f
bmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbjsKKyAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlv
bj4gbV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbjsKICAgICBXcml0ZUJh
cnJpZXI8R2V0dGVyU2V0dGVyPiBtX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyOwogCiAgICAg
V3JpdGVCYXJyaWVyPE1vZHVsZUxvYWRlck9iamVjdD4gbV9tb2R1bGVMb2FkZXI7CkBAIC00Mzgs
NiArNDM5LDcgQEAgcHVibGljOgogICAgIEpTRnVuY3Rpb24qIGFycmF5UHJvdG9WYWx1ZXNGdW5j
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uLmdldCgpOyB9
CiAgICAgSlNGdW5jdGlvbiogaW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbi5nZXQoKTsgfQogICAgIEpTRnVuY3Rpb24q
IG5ld1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX25ld1Byb21p
c2VDYXBhYmlsaXR5RnVuY3Rpb24uZ2V0KCk7IH0KKyAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvblBy
b3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25Q
cm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24uZ2V0KCk7IH0KICAgICBHZXR0ZXJTZXR0ZXIq
IHRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKFZNJiB2bSkKICAgICB7CiAgICAgICAgIGlmICgh
bV90aHJvd1R5cGVFcnJvckdldHRlclNldHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAppbmRleCBhMGY3NzE5NDdjMDhmN2UxMzIxMDk2NzJiYTgzM2NkMjFi
ODJiZDM0Li4wM2U4OGFhNmM5ZmRkZTA3NzNjZWIyN2NjYTdiMzUwNDFlMTQ4NmI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0xNDU3LDE4ICsxNDU3
LDQwIEBAIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiBKU09iamVjdDo6ZmluZFByb3BlcnR5SGFzaEVu
dHJ5KFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wg
SlNPYmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK2Jv
b2wgSlNPYmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwg
SlNWYWx1ZSBoYXNJbnN0YW5jZVZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisK
KyAgICBpZiAoIWhhc0luc3RhbmNlVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiBoYXNJbnN0
YW5jZVZhbHVlICE9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hh
c0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKSkgeworICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsK
KyAgICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBKU0M6OmdldENhbGxEYXRhKGhhc0luc3RhbmNl
VmFsdWUsIGNhbGxEYXRhKTsKKyAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkg
eworICAgICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlSW52YWxpZEluc3Rh
bmNlb2ZQYXJhbWV0ZXJFcnJvcmhhc0luc3RhbmNlVmFsdWVOb3RGdW5jdGlvbihleGVjLCB0aGlz
KSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgICAgICBhcmdzLmFwcGVuZCh2YWx1ZSk7CisgICAg
ICAgIEpTVmFsdWUgcmVzdWx0ID0gY2FsbChleGVjLCBoYXNJbnN0YW5jZVZhbHVlLCBjYWxsVHlw
ZSwgY2FsbERhdGEsIHRoaXMsIGFyZ3MpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvQm9vbGVh
bihleGVjKTsKKyAgICB9CisKICAgICBUeXBlSW5mbyBpbmZvID0gc3RydWN0dXJlKHZtKS0+dHlw
ZUluZm8oKTsKICAgICBpZiAoaW5mby5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpCiAg
ICAgICAgIHJldHVybiBkZWZhdWx0SGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIGdldChleGVjLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlKSk7CiAgICAgaWYgKGluZm8uaW1wbGVtZW50
c0hhc0luc3RhbmNlKCkpCiAgICAgICAgIHJldHVybiBtZXRob2RUYWJsZSh2bSktPmN1c3RvbUhh
c0luc3RhbmNlKHRoaXMsIGV4ZWMsIHZhbHVlKTsKLSAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVj
LCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKGV4ZWMsIHRoaXMpKTsKKyAg
ICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRl
ckVycm9yTm90RnVuY3Rpb24oZXhlYywgdGhpcykpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
Ym9vbCBKU09iamVjdDo6aGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQoreworICAgIEpTVmFsdWUgaGFzSW5zdGFuY2VWYWx1ZSA9IGdldChleGVjLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuaGFzSW5zdGFuY2VTeW1ib2wpOworCisgICAgcmV0dXJuIGhhc0luc3RhbmNl
KGV4ZWMsIHZhbHVlLCBoYXNJbnN0YW5jZVZhbHVlKTsKK30KKwogYm9vbCBKU09iamVjdDo6ZGVm
YXVsdEhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBw
cm90bykKIHsKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCkBAIC0xNDg3LDYgKzE1MDksMTQg
QEAgYm9vbCBKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90bykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKEV4ZWNT
dGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMCk7CisgICAgSlNWYWx1ZSBwcm90byA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOwor
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oSlNPYmplY3Q6OmRlZmF1bHRI
YXNJbnN0YW5jZShleGVjLCB2YWx1ZSwgcHJvdG8pKSk7Cit9CisKIHZvaWQgSlNPYmplY3Q6Omdl
dFByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAg
b2JqZWN0LT5tZXRob2RUYWJsZShleGVjLT52bSgpKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgKaW5kZXggYWJmNWE1YmQ5NmY3ZTE0MmFlZDA5Zjc3YTMzOWY0M2U4OGFh
MGY2Zi4uODY3MTZmY2UyYmQzYzNiZmQ3YjY1NDQwYWVmZWM2NTg0ZjVlMWQyZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC00ODUsNiArNDg1LDcgQEAgcHVi
bGljOgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEpTVmFsdWUgZGVmYXVsdFZhbHVl
KGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSk7CiAK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEpTVmFs
dWUgdmFsdWUsIEpTVmFsdWUgaGFzSW5zdGFuY2VWYWx1ZSk7CiAgICAgYm9vbCBoYXNJbnN0YW5j
ZShFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBkZWZhdWx0SGFzSW5zdGFu
Y2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgSlNWYWx1ZSBwcm90b3R5cGVQcm9wZXJ0eSk7CiAKQEAg
LTk3NCw2ICs5NzUsOCBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKK0pTX0VYUE9SVF9QUklWQVRF
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9m
KEV4ZWNTdGF0ZSopOworCiBpbmxpbmUgSlNGaW5hbE9iamVjdCogSlNGaW5hbE9iamVjdDo6Y3Jl
YXRlKAogICAgIEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZs
eSogYnV0dGVyZmx5KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNUeXBlSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5m
by5oCmluZGV4IGNhMTEyMGNiZTVjZjQ1ZGFmODUxMDlmZTMwMTNhYjkzNTVlZGMzZmMuLjA5ZDgx
ZTk2OWYyZjk3OWQ2Nzk4Zjg1OTViNjJiYTYxZDVjODg5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgTExJbnRP
ZmZzZXRzRXh0cmFjdG9yOwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCA9IDE7IC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1h
a2UgZG9jdW1lbnQuYWxsIHVuZGV0ZWN0YWJsZS4KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbXBs
ZW1lbnRzSGFzSW5zdGFuY2UgPSAxIDw8IDE7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJp
ZGVzSGFzSW5zdGFuY2UgPSAxIDw8IDI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVz
SGFzSW5zdGFuY2VGbGFnID0gMSA8PCAyOyAvLyBGSVhNRTogVGhpcyBpcyBvbmx5IHRyaXZpYWxs
eSB1c2VkIGJ5IHRoZSBydW50aW1lIGFuZCBzaG91bGQgYmUgcmVtb3ZlZDogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjAwNQogc3RhdGljIGNvbnN0IHVuc2lnbmVk
IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSAxIDw8IDM7CiBzdGF0aWMgY29uc3QgdW5z
aWduZWQgVHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhID0gMSA8PCA0OyAvLyBOZWVkIHRoaXMg
ZmxhZyBpZiB5b3Ugb3ZlcnJpZGUgZ2V0Q2FsbERhdGEoKSBhbmQgeW91IHdhbnQgdHlwZW9mIHRv
IHVzZSB0aGlzIHRvIGRldGVybWluZSBpZiBpdCBzaG91bGQgc2F5ICJmdW5jdGlvbiIuIEN1cnJl
bnRseSB3ZSBhbHdheXMgc2V0IHRoaXMgZmxhZyB3aGVuIHdlIG92ZXJyaWRlIGdldENhbGxEYXRh
KCkuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90ID0g
MSA8PCA1OwpAQCAtNjgsOSArNjgsOSBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9mbGFnczIob3V0
T2ZMaW5lVHlwZUZsYWdzKQogICAgIHsKICAgICAgICAgLy8gTm8gb2JqZWN0IHRoYXQgZG9lc24n
dCBJbXBsZW1lbnRzSGFzSW5zdGFuY2Ugc2hvdWxkIG92ZXJyaWRlIGl0IQotICAgICAgICBBU1NF
UlQoKG1fZmxhZ3MgJiAoSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFu
Y2UpKSAhPSBPdmVycmlkZXNIYXNJbnN0YW5jZSk7CisgICAgICAgIEFTU0VSVCgobV9mbGFncyAm
IChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNIYXNJbnN0YW5jZUZsYWcpKSAhPSBP
dmVycmlkZXNIYXNJbnN0YW5jZUZsYWcpOwogICAgICAgICAvLyBJbXBsZW1lbnRzRGVmYXVsdEhh
c0luc3RhbmNlIG1lYW5zIChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgJiAhT3ZlcnJpZGVzSGFzSW5z
dGFuY2UpCi0gICAgICAgIGlmICgobV9mbGFncyAmIChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBP
dmVycmlkZXNIYXNJbnN0YW5jZSkpID09IEltcGxlbWVudHNIYXNJbnN0YW5jZSkKKyAgICAgICAg
aWYgKChtX2ZsYWdzICYgKEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3Rh
bmNlRmxhZykpID09IEltcGxlbWVudHNIYXNJbnN0YW5jZSkKICAgICAgICAgICAgIG1fZmxhZ3Mg
fD0gSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZTsKICAgICB9CiAKQEAgLTgzLDcgKzgzLDcg
QEAgcHVibGljOgogICAgIHVuc2lnbmVkIGZsYWdzKCkgY29uc3QgeyByZXR1cm4gKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihtX2ZsYWdzMikgPDwgOCkgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9m
bGFncyk7IH0KICAgICBib29sIG1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVy
biBpc1NldE9uRmxhZ3MxKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpOyB9CiAgICAgYm9vbCBpbXBs
ZW1lbnRzSGFzSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKEltcGxlbWVu
dHNIYXNJbnN0YW5jZSk7IH0KLSAgICBib29sIG92ZXJyaWRlc0hhc0luc3RhbmNlKCkgY29uc3Qg
eyByZXR1cm4gaXNTZXRPbkZsYWdzMShPdmVycmlkZXNIYXNJbnN0YW5jZSk7IH0KKyAgICBib29s
IG92ZXJyaWRlc0hhc0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShPdmVy
cmlkZXNIYXNJbnN0YW5jZUZsYWcpOyB9CiAgICAgYm9vbCBpbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShJbXBsZW1lbnRzRGVmYXVsdEhh
c0luc3RhbmNlKTsgfQogICAgIGJvb2wgdHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhKCkgY29u
c3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShUeXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERhdGEpOyB9
CiAgICAgYm9vbCBvdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoKSBjb25zdCB7IHJldHVybiBv
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoaW5saW5lVHlwZUZsYWdzKCkpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCmluZGV4IDBmNzBlMWVhMDBj
NjIyMGFmZDgwMjc4OTY4MWI5ZDk4Y2FhODRhOTYuLmI3MjdkMTg1ZTRkNzBlMTk5ZWZmY2UwZTFh
Y2EwNGNmOTUyODM1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dyaXRlQmFycmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRl
QmFycmllci5oCkBAIC0xNTIsMTQgKzE1Miw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzR2V0dGVy
U2V0dGVyKCkgY29uc3QgeyByZXR1cm4gZ2V0KCkuaXNHZXR0ZXJTZXR0ZXIoKTsgfQogICAgIGJv
b2wgaXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSBjb25zdCB7IHJldHVybiBnZXQoKS5pc0N1c3RvbUdl
dHRlclNldHRlcigpOyB9CiAgICAgCi0gICAgSlNWYWx1ZSogc2xvdCgpCisgICAgSlNWYWx1ZSog
c2xvdCgpIGNvbnN0CiAgICAgeyAKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgRW5jb2Rl
ZEpTVmFsdWUqIHY7Ci0gICAgICAgICAgICBKU1ZhbHVlKiBzbG90OwotICAgICAgICB9IHU7Ci0g
ICAgICAgIHUudiA9ICZtX3ZhbHVlOwotICAgICAgICByZXR1cm4gdS5zbG90OworICAgICAgICBy
ZXR1cm4gYml0d2lzZV9jYXN0PEpTVmFsdWUqPigmbV92YWx1ZSk7CiAgICAgfQogICAgIAogICAg
IGludDMyX3QqIHRhZ1BvaW50ZXIoKSB7IHJldHVybiAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1
ZURlc2NyaXB0b3IqPigmbV92YWx1ZSktPmFzQml0cy50YWc7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYueWFtbAppbmRleCA3ZTYzYWJkODJlZjRjYmI1OTRjMjUwZTNlOWQ4ZTdhMDgxM2E3
MmZiLi5mMTE5N2QxM2RmZTViZjE1ZTk5NGY0ZGFjMmFhMzgzYzUzMzcxMmIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1sCkBAIC0xMTgzLDcgKzExODMsNyBAQAogLSBwYXRoOiBl
czYvV2Vha1NldF9pdGVyYXRvcl9jbG9zaW5nLmpzCiAgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBh
dGg6IGVzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLmhhc0luc3RhbmNlLmpzCi0gIGNtZDog
cnVuRVM2IDpmYWlsCisgIGNtZDogcnVuRVM2IDpub3JtYWwKIC0gcGF0aDogZXM2L3dlbGwta25v
d25fc3ltYm9sc19TeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlLmpzCiAgIGNtZDogcnVuRVM2IDpm
YWlsCiAtIHBhdGg6IGVzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLm1hdGNoLmpzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2luc3RhbmNlb2YtY3Vz
dG9tLWhhc2luc3RhbmNlc3ltYm9sLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9pbnN0YW5jZW9mLWN1c3RvbS1oYXNpbnN0YW5jZXN5bWJvbC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MmYyNDIzMGMzNDQxNDYyOGJlNWVlMjk1M2Y4NGFmMzI0MTA3ZjhmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnN0YW5jZW9mLWN1c3RvbS1o
YXNpbnN0YW5jZXN5bWJvbC5qcwpAQCAtMCwwICsxLDI0IEBACitmdW5jdGlvbiBDb25zdHJ1Y3Rv
cih4KSB7fQorCitPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsIFN5bWJvbC5oYXNJ
bnN0YW5jZSwge3ZhbHVlOiBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9fSk7CisKK3ggPSBu
ZXcgQ29uc3RydWN0b3IoKTsKKworZnVuY3Rpb24gaW5zdGFuY2VPZihhLCBiKSB7CisgICAgcmV0
dXJuIGEgaW5zdGFuY2VvZiBiOworfQorbm9JbmxpbmUoaW5zdGFuY2VPZik7CisKK2Z1bmN0aW9u
IGJvZHkoKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDA7IGkrKykgeworICAgICAgICBpZiAoaW5zdGFuY2VPZih4LCBDb25zdHJ1Y3RvcikpCisg
ICAgICAgICAgICByZXN1bHQrKzsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorbm9J
bmxpbmUoYm9keSk7CisKK2lmIChib2R5KCkpCisgICAgdGhyb3cgInJlc3VsdCBpbmNvcnJlY3Qi
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zeW1ib2wt
aGFzSW5zdGFuY2UuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N5bWJv
bC1oYXNJbnN0YW5jZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODAxZWI4YjRkN2RjZjFiZjNhYzY3ZWJmNjRl
ZmQ3MmY2ZmEzZDMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9zeW1ib2wtaGFzSW5zdGFuY2UuanMKQEAgLTAsMCArMSw1NCBAQAorLy8gVGhp
cyBmaWxlIHRlc3RzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIFN5bWJvbC5oYXNJbnN0YW5jZS4KKwor
CisvLyBUZXN0IGEgY3VzdG9tIFN5bWJvbC5oYXNJbnN0YW5jZSBvbiBhIGZ1bmN0aW9uIG9iamVj
dC4KK2Z1bmN0aW9uIENvbnN0cnVjdG9yKHgpIHt9Citmb28gPSBuZXcgQ29uc3RydWN0b3IoKTsK
KworaWYgKCEoZm9vIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKQorICAgIHRocm93ICJzaG91bGQg
YmUgaW5zdGFuY2VvZiI7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShDb25zdHJ1Y3RvciwgU3lt
Ym9sLmhhc0luc3RhbmNlLCB7dmFsdWU6IGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgaWYgKHRoaXMg
IT09IENvbnN0cnVjdG9yKQorICAgICAgICB0aHJvdyAifHRoaXN8IHNob3VsZCBiZSBDb25zdHJ1
Y3RvciI7CisgICAgaWYgKHZhbHVlICE9PSBmb28pCisgICAgICAgIHRocm93ICJmaXJzdCBhcmd1
bWVudCBzaG91bGQgYmUgZm9vIjsKKyAgICByZXR1cm4gZmFsc2U7Cit9IH0pOworCisKK2lmIChm
b28gaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikKKyAgICB0aHJvdyAic2hvdWxkIG5vdCBiZSBpbnN0
YW5jZW9mIjsKKworCisvLyBUZXN0IFN5bWJvbC5oYXNJbnN0YW5jZSBvbiBhbiBvcmRpbmFyeSBv
YmplY3QuCitPYmplY3RDbGFzcyA9IHt9CitPYmplY3RDbGFzc1tTeW1ib2wuaGFzSW5zdGFuY2Vd
ID0gZnVuY3Rpb24gKHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmICh0eXBl
b2YgdmFsdWUgPT09ICJvYmplY3QiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gImZ1bmN0aW9uIik7Cit9
CisKK2lmICghKGZvbyBpbnN0YW5jZW9mIE9iamVjdENsYXNzKSkKKyAgICB0aHJvdyAiZm9vIHNo
b3VsZCBiZSBhbiBpbnN0YW5jZW9mIE9iamVjdENsYXNzIjsKKworaWYgKCEoQ29uc3RydWN0b3Ig
aW5zdGFuY2VvZiBPYmplY3RDbGFzcykpCisgICAgdGhyb3cgIkNvbnN0cnVjdG9yIHNob3VsZCBi
ZSBhbiBpbnN0YW5jZW9mIE9iamVjdENsYXNzIjsKKworTnVtYmVyQ2xhc3MgPSB7fQorTnVtYmVy
Q2xhc3NbU3ltYm9sLmhhc0luc3RhbmNlXSA9IGZ1bmN0aW9uICh2YWx1ZSkgeworICAgIHJldHVy
biB0eXBlb2YgdmFsdWUgPT09ICJudW1iZXIiOworfQorCitpZiAoISgxIGluc3RhbmNlb2YgTnVt
YmVyQ2xhc3MpKQorICAgIHRocm93ICIxIHNob3VsZCBiZSBhbiBpbnN0YW5jZW9mIE51bWJlckNs
YXNzIjsKKworaWYgKGZvbyBpbnN0YW5jZW9mIE51bWJlckNsYXNzKQorICAgIHRocm93ICJmb28g
c2hvdWxkIGJlIGFuIGluc3RhbmNlb2YgTnVtYmVyQ2xhc3MiOworCisKKy8vIFRlc3QgdGhlIEZ1
bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdIHdvcmtzIHdoZW4gYWN0dWFsbHkg
Y2FsbGVkLgorZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRnVu
Y3Rpb24ucHJvdG90eXBlLCBTeW1ib2wuaGFzSW5zdGFuY2UpOworaWYgKGRlc2NyaXB0b3Iud3Jp
dGFibGUgIT09IGZhbHNlIHx8IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlICE9PSBmYWxzZSB8fCBk
ZXNjcmlwdG9yLmVudW1lcmFibGUgIT09IGZhbHNlKQorICAgIHRocm93ICJGdW5jdGlvbi5wcm90
b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSBoYXMgYSBiYWQgZGVzY3JpcHRvciI7CisKK2lmICgh
RnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0uY2FsbChDb25zdHJ1Y3Rvciwg
Zm9vKSkKKyAgICB0aHJvdyAiRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0g
c2hvdWxkIGNsYWltIHRoYXQgZm9vIGlzIGFuIGluc3RhbmNlb2YgQ29uc3RydWN0b3IiOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDA4NjFhZGY1YmZlNjMzYzI0ZjI4YTUyNTA1ZTY0ZTllNDY2ZGFiMGMuLmMwYWJkYjljNjM5
ZGUxYzY2ZWE3YWVmZGUyOGZhZTVlZjE5ZDIzZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAx
NS0xMi0xMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBbRVM2XSBBZGQgc3VwcG9ydCBmb3IgU3ltYm9sLmhhc0luc3RhbmNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4MzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGVzdHMgdG8gcmVmbGVjdCB0
aGUgY2hhbmdlcyB0byBpbnN0YW5jZW9mIGluIEVTNi4KKworICAgICAgICBBZGRlZCBhIG5ldyBy
ZWdyZXNzaW9uIHRlc3QgZm9yIGJvdW5kIGZ1bmN0aW9ucyBpbiBpbnN0YW5jZW9mCisgICAgICAg
IGFzIHRoZSBwZXJmb21hbmNlIG9uIGJvdW5kIGZ1bmN0aW9ucyBzaG91bGQsIHRvIHNvbWUgZGVn
cmVlLAorICAgICAgICByZWZsZWN0IHRoZSBwZXJmb3JtYW5jZSBvbiBDLUFQSSB1c2Vycy4KKwor
ICAgICAgICAqIGpzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBqcy9leGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICoganMvZXhjZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2lu
c3RhbmNlLW9mLWltbWVkaWF0ZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL3JlZ3Jlc3Mv
aW5zdGFuY2VvZi1ib3VuZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvaW5zdGFuY2VvZi1ib3VuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9pbnN0YW5jZW9mLWJvdW5kLmpzOiBBZGRlZC4KKyAgICAgICAgKENvbnN0cnVj
dG9yKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9PYmplY3Qt
Z2V0T3duUHJvcGVydHlOYW1lcy5qczoKKwogMjAxNS0xMi0wOSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElEQjogc3RvcmFnZS9pbmRleGVkZGIv
bWV0YWRhdGEuaHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdl
dE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdl
dE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CmluZGV4IGNhZTIxOWJhZjkyYjU5NTBiZTc3
Zjk0NTdkYTAyY2M1MTk2N2Y5ODMuLjdmNWRlNWY4MjI3OGZiNzE5OGE4OTI5MTYyMjUxMmUzZTBl
MjhkYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5h
bWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVy
dHlOYW1lcy1leHBlY3RlZC50eHQKQEAgLTYxLDcgKzYxLDcgQEAgUEFTUyBnZXRTb3J0ZWRPd25Q
cm9wZXJ0eU5hbWVzKEVycm9yKSBpcyBbJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZSddCiBQ
QVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRXJyb3IucHJvdG90eXBlKSBpcyBbJ2NvbnN0
cnVjdG9yJywgJ21lc3NhZ2UnLCAnbmFtZScsICd0b1N0cmluZyddCiBQQVNTIGdldFNvcnRlZE93
blByb3BlcnR5TmFtZXMoTWF0aCkgaXMgWydFJywnTE4xMCcsJ0xOMicsJ0xPRzEwRScsJ0xPRzJF
JywnUEknLCdTUVJUMV8yJywnU1FSVDInLCdhYnMnLCdhY29zJywnYWNvc2gnLCdhc2luJywnYXNp
bmgnLCdhdGFuJywnYXRhbjInLCdhdGFuaCcsJ2NicnQnLCdjZWlsJywnY2x6MzInLCdjb3MnLCdj
b3NoJywnZXhwJywnZXhwbTEnLCdmbG9vcicsJ2Zyb3VuZCcsJ2h5cG90JywnaW11bCcsJ2xvZycs
J2xvZzEwJywnbG9nMXAnLCdsb2cyJywnbWF4JywnbWluJywncG93JywncmFuZG9tJywncm91bmQn
LCdzaWduJywnc2luJywnc2luaCcsJ3NxcnQnLCd0YW4nLCd0YW5oJywndHJ1bmMnXQogUEFTUyBn
ZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKEpTT04pIGlzIFsncGFyc2UnLCAnc3RyaW5naWZ5J10K
LVBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTeW1ib2wpIGlzIFsnZm9yJywgJ2l0ZXJh
dG9yJywgJ2tleUZvcicsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnLCAndG9TdHJpbmdU
YWcnLCAndW5zY29wYWJsZXMnXQorUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFN5bWJv
bCkgaXMgWydmb3InLCAnaGFzSW5zdGFuY2UnLCAnaXRlcmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0
aCcsICduYW1lJywgJ3Byb3RvdHlwZScsICd0b1N0cmluZ1RhZycsICd1bnNjb3BhYmxlcyddCiBQ
QVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoU3ltYm9sLnByb3RvdHlwZSkgaXMgWydjb25z
dHJ1Y3RvcicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10KIFBBU1MgZ2xvYmFsUHJvcGVydHlOYW1l
cy5pbmRleE9mKCdOYU4nKSAhPSAtMSBpcyB0cnVlCiBQQVNTIGdsb2JhbFByb3BlcnR5TmFtZXMu
aW5kZXhPZignSW5maW5pdHknKSAhPSAtMSBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9leGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9q
cy9leGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBlY3RlZC50eHQKaW5kZXggOWY5YWU2OWM4NmNl
OWYwZWFhNzEwZmYwYTZhMGQ1NTNhMThlMGEyYy4uNzc0ZDIyN2QwMzVhZGYxN2YzYmNlMDk4MDUx
MWYyZTMyZTQyNzVlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWZvci1u
b25vYmplY3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1mb3It
bm9ub2JqZWN0LWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUKIAogCiBQQVNTIG5ldyB7fS51bmRlZmluZWQgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcge30udW5k
ZWZpbmVkJykuCi1QQVNTIDEgaW5zdGFuY2VvZiB7fS51bmRlZmluZWQgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjoge30udW5kZWZpbmVkIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAn
MSBpbnN0YW5jZW9mIHt9LnVuZGVmaW5lZCcpLgorUEFTUyAxIGluc3RhbmNlb2Yge30udW5kZWZp
bmVkIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5j
ZW9mIGlzIG5vdCBhbiBvYmplY3QuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1pbnN0
YW5jZW9mLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1pbnN0YW5jZW9m
LWV4cGVjdGVkLnR4dAppbmRleCBlZDY4YjZjYzhhMDdhNWE3NTI5NTk1NzNlMzNlMTg1YWVhMzE5
NWI2Li4wZWZkN2E4NmUwOWM0NzAwZDRjZDFkNjhlZDI5OWZmZmE4MzI3Yzk1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24taW5zdGFuY2VvZi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvanMvZXhjZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0CkBAIC0zLDEx
ICszLDExIEBAIFRlc3QgZm9yIGVycm9yIG1lc3NhZ2VzIGZvciBpbnN0YW5jZW9mCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyAnaW5zdGFuY2VvZicgaW5zdGFuY2VvZiAgICAn
aW5zdGFuY2VvZicgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogImluc3RhbmNlb2YiIGlzIG5v
dCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnJ2luc3RhbmNlb2YnIGluc3RhbmNlb2YgICAgJ2lu
c3RhbmNlb2YnJykuCi1QQVNTIDIwIGluc3RhbmNlb2YgICAgICdoZWxsbycgICB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiAnaGVsbG8nIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAn
MjAgaW5zdGFuY2VvZiAgICAgJ2hlbGxvJycpLgorUEFTUyAnaW5zdGFuY2VvZicgaW5zdGFuY2Vv
ZiAgICAnaW5zdGFuY2VvZicgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBz
aWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KK1BBU1MgMjAgaW5zdGFuY2VvZiAg
ICAgJ2hlbGxvJyAgIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBv
ZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCiBQQVNTIDIwIGluc3RhbmNlb2YgICAgIHt9
ICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjoge30gaXMgbm90IGEgZnVuY3Rpb24uIChldmFs
dWF0aW5nICcyMCBpbnN0YW5jZW9mICAgICB7fScpLgotUEFTUyAyMCBpbnN0YW5jZW9mICAgICB7
fS5mb28gIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHt9LmZvbyBpcyBub3QgYSBmdW5jdGlv
bi4gKGV2YWx1YXRpbmcgJzIwIGluc3RhbmNlb2YgICAgIHt9LmZvbycpLgotUEFTUyAyMCBpbnN0
YW5jZW9mICAgICB0cnVlICAgICAgIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHRydWUgaXMg
bm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcyMCBpbnN0YW5jZW9mICAgICB0cnVlJykuCitQ
QVNTIDIwIGluc3RhbmNlb2YgICAgIHt9LmZvbyAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
UmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KK1BBU1MgMjAg
aW5zdGFuY2VvZiAgICAgdHJ1ZSAgICAgICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdo
dCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9pbnN0YW5jZS1vZi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL2luc3RhbmNlLW9mLWltbWVkaWF0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDExMDBkYjhhYjdi
YzlhZGMwZTZlNGZiNmQxMWVkOTVhNmNlYzhkOTUuLmU2ZWZjNmE1NzExNWZkZjgwOTQ0ZDE1M2M2
YWZkZGEyMjZkYjY0NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2luc3RhbmNlLW9mLWlt
bWVkaWF0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2luc3RhbmNlLW9mLWlt
bWVkaWF0ZXMtZXhwZWN0ZWQudHh0CkBAIC0zLDkgKzMsOSBAQCBUaGlzIHRlc3QgbWFrZXMgc3Vy
ZSB0aGF0IGluc3RhbmNlIG9mIGJlaGF2ZXMgY29ycmVjdGx5IHdoZW4gdGhlIHZhbHVlLCBjb25z
dHJ1YwogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgKDEgaW5zdGFuY2VvZiAx
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAxIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVh
dGluZyAnMSBpbnN0YW5jZW9mIDEnKS4KLVBBU1MgKHt9IGluc3RhbmNlb2YgMSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogMSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJ3t9IGlu
c3RhbmNlb2YgMScpLgotUEFTUyAob2JqIGluc3RhbmNlb2YgMSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogMSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJ29iaiBpbnN0YW5jZW9m
IDEnKS4KK1BBU1MgKDEgaW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBS
aWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgorUEFTUyAoe30g
aW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUg
b2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgorUEFTUyAob2JqIGluc3RhbmNlb2YgMSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2Yg
aXMgbm90IGFuIG9iamVjdC4KIFBBU1MgKDEgaW5zdGFuY2VvZiB7fSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjoge30gaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcxIGluc3RhbmNl
b2Yge30nKS4KIFBBU1MgKHt9IGluc3RhbmNlb2Yge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IHt9IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAne30gaW5zdGFuY2VvZiB7fScp
LgogUEFTUyAob2JqIGluc3RhbmNlb2Yge30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHt9
IGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnb2JqIGluc3RhbmNlb2Yge30nKS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91bmQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg4MmJjYmViOTlkNGY1YjFjMjQ4ODk3OGI2NDkzMDM5ZWQ4ZTZlYTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91
bmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9pbnN0YW5jZW9mLWJv
dW5kCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0
aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91bmQuaHRt
bCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY1MTIwNjRjNWI2ZTdmN2Q5M2VjMjEzZDZlNDE2YjJjMTBkNGJlNDkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91bmQuaHRtbApAQCAt
MCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9pbnN0YW5jZW9mLWJvdW5kLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2luc3RhbmNlb2Yt
Ym91bmQuanMgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9pbnN0YW5jZW9m
LWJvdW5kLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkZjhlNTM1ZTU1NjhkNTVmNDgzMmEzNWI1MTBlYjJkYjdm
MDU1MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9pbnN0YW5jZW9mLWJvdW5kLmpzCkBAIC0wLDAgKzEsMzAgQEAKKy8vIFRoaXMgdGVzdHMg
dGhhdCB3ZSBkbyBub3QgY29uc3RhbnRseSBPU1Igb24gaW5zdGFuY2VvZiB3aGVyZSB0aGUgUkhT
IGlzIGEgYm91bmQgZnVuY3Rpb24uCisvLyBXaGlsZSB0aGlzIGJvdW5kIGZ1bmN0aW9ucyBhcmUg
dW5saWtlbHkgdG8gYmUgcGFzc2VkIHRvIGluc3RhbmNlb2Ygb2Z0ZW4gQy1BUEkgdXNlcnMgdXNl
CisvLyB0aGUgc2FtZSBtZXRob2Qgb2Ygb3ZlcnJpZGluZyBpbnN0YW5jZW9mIGV4cHJlc3Npb25z
LgorCisKK2Z1bmN0aW9uIENvbnN0cnVjdG9yKHgpIHsKKyAgICB0aGlzLnggPSB4OworfQorCitD
b25zdHJ1Y3Rvci5wcm90b3R5cGUgPSB7fQorCitCb3VuZENvbnN0cnVjdG9yID0gQ29uc3RydWN0
b3IuYmluZCgpOworZm9vID0gbmV3IENvbnN0cnVjdG9yKDEpOworYmFyID0gbmV3IEJvdW5kQ29u
c3RydWN0b3IoMSk7CisKK2kgPSAwOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAoIShm
b28gaW5zdGFuY2VvZiBCb3VuZENvbnN0cnVjdG9yKSkgeworICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoImZvbyBzaG91bGQgYmUgYW4gaW5zdGFuY2VvZiBCb3VuZENvbnN0cnVjdG9yIik7CisgICAg
fQorICAgIGxldCBqID0gMDsKKyAgICBmb3IgKDtqIDwgMTAwMDsgaisrKSB7fQorICAgIHJldHVy
biBqOworfQorbm9JbmxpbmUodGVzdCk7CisKK2ZvciAoaSA9IDA7IGkgPCA1MDAwMDsgaSsrKQor
ICAgIHRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmpl
Y3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9P
YmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwppbmRleCBjYjVlYzI0ZmFmOTA3ZjgwMjM3OTg1
ZjhjOGFjZTgzOGRkNjhlMDg5Li43NGJjYjc4YTUyMGM4YzcwZmRkZTg2NDA3NjgxODJjMDcyMzY1
M2E2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93
blByb3BlcnR5TmFtZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCkBAIC03MCw3ICs3MCw3IEBAIHZhciBleHBlY3RlZFBy
b3BlcnR5TmFtZXNTZXQgPSB7CiAgICAgIkVycm9yLnByb3RvdHlwZSI6ICJbJ2NvbnN0cnVjdG9y
JywgJ21lc3NhZ2UnLCAnbmFtZScsICd0b1N0cmluZyddIiwKICAgICAiTWF0aCI6ICJbJ0UnLCdM
TjEwJywnTE4yJywnTE9HMTBFJywnTE9HMkUnLCdQSScsJ1NRUlQxXzInLCdTUVJUMicsJ2Ficycs
J2Fjb3MnLCdhY29zaCcsJ2FzaW4nLCdhc2luaCcsJ2F0YW4nLCdhdGFuMicsJ2F0YW5oJywnY2Jy
dCcsJ2NlaWwnLCdjbHozMicsJ2NvcycsJ2Nvc2gnLCdleHAnLCdleHBtMScsJ2Zsb29yJywnZnJv
dW5kJywnaHlwb3QnLCdpbXVsJywnbG9nJywnbG9nMTAnLCdsb2cxcCcsJ2xvZzInLCdtYXgnLCdt
aW4nLCdwb3cnLCdyYW5kb20nLCdyb3VuZCcsJ3NpZ24nLCdzaW4nLCdzaW5oJywnc3FydCcsJ3Rh
bicsJ3RhbmgnLCd0cnVuYyddIiwKICAgICAiSlNPTiI6ICJbJ3BhcnNlJywgJ3N0cmluZ2lmeSdd
IiwKLSAgICAiU3ltYm9sIjogIlsnZm9yJywgJ2l0ZXJhdG9yJywgJ2tleUZvcicsICdsZW5ndGgn
LCAnbmFtZScsICdwcm90b3R5cGUnLCAndG9TdHJpbmdUYWcnLCAndW5zY29wYWJsZXMnXSIsCisg
ICAgIlN5bWJvbCI6ICJbJ2ZvcicsICdoYXNJbnN0YW5jZScsICdpdGVyYXRvcicsICdrZXlGb3In
LCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3RyaW5nVGFnJywgJ3Vuc2NvcGFi
bGVzJ10iLAogICAgICJTeW1ib2wucHJvdG90eXBlIjogIlsnY29uc3RydWN0b3InLCAndG9TdHJp
bmcnLCAndmFsdWVPZiddIgogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267579</attachid>
            <date>2015-12-17 13:26:01 -0800</date>
            <delta_ts>2015-12-17 13:47:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151839-20151217132523.patch</filename>
            <type>text/plain</type>
            <size>123223</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MGNlZDI3OTk0NWRhMWYyYzk0NGI2ZjFhYTg3ZTNlZDNmMTc1ZWI0Li45ZmVmNTU4ZTFmZmU3ZWE3
YTNkN2ExODc0NzkxOTQ2MDhjMTQwOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjYgQEAKKzIwMTUtMTItMTcgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VTNl0gQWRkIHN1cHBvcnQgZm9yIFN5bWJvbC5oYXNJbnN0YW5j
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZWQg
dmVyc2lvbiBvZiByMTkzOTg2LCByMTkzOTgzLCBhbmQgcjE5Mzk3NC4KKworICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgU3ltYm9sLmhhc0luc3RhbmNlLCB1bmZvcnR1bmF0ZWx5
IGluIG9yZGVyIHRvIHByZXZlbnQKKyAgICAgICAgcmVncmVzc2lvbnMgc2V2ZXJhbCBuZXcgYnl0
ZWNvZGVzIGFuZCBERkcgSVIgbm9kZXMgd2VyZSBuZWNlc3NhcnkuIEJlZm9yZSwgU3ltYm9sLmhh
c0luc3RhbmNlCisgICAgICAgIHdoZW4gZXhlY3V0aW5nIGFuIGluc3RhbmNlb2YgZXhwcmVzc2lv
biB3ZSB3b3VsZCBlbWl0IHRocmVlIGJ5dGVjb2Rlczogb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSwg
Z2V0X2J5X2lkLAorICAgICAgICB0aGVuIGluc3RhbmNlb2YuIEFzIHRoZSBzcGVjIGhhcyBjaGFu
Z2VkLCB3ZSBlbWl0IGEgbW9yZSBjb21wbGljYXRlZCBzZXQgb2YgYnl0ZWNvZGVzIGluIGFkZGl0
aW9uIHRvIHNvbWUKKyAgICAgICAgbmV3IG9uZXMuIEZpcnN0IHRoZSByb2xlIG9mIG92ZXJyaWRl
c19oYXNfaW5zdGFuY2UgYW5kIGl0cyBjb3JyZXNwb25kaW5nIERGRyBub2RlIGhhdmUgY2hhbmdl
ZC4gTm93IGl0IHJldHVybnMKKyAgICAgICAgYSBqcy1ib29sZWFuIGluZGljYXRpbmcgd2hldGhl
ciB0aGUgUkhTIG9mIHRoZSBpbnN0YW5jZW9mIGV4cHJlc3Npb24gKGZyb20gaGVyZSBvbiBjYWxs
ZWQgdGhlIGNvbnN0cnVjdG9yIGZvciBzaW1wbGljaXR5KQorICAgICAgICBuZWVkcyBub24tZGVm
YXVsdCBiZWhhdmlvciBmb3IgcmVzb2x2aW5nIHRoZSBleHByZXNzaW9uLiBpLmUuIFRoZSBjb25z
dHJ1Y3RvciBoYXMgYSBTeW1ib2wuaGFzSW5zdGFuY2UgdGhhdCBkaWZmZXJzIGZyb20gdGhlIG9u
ZSBvbgorICAgICAgICBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSBvciBp
cyBhIGJvdW5kL0MtQVBJIGZ1bmN0aW9uLiBPbmNlIHdlIGdldCB0byB0aGUgREZHIHRoaXMgbm9k
ZSBpcyBnZW5lcmFsbHkgZWxpbWluYXRlZCBhcworICAgICAgICB3ZSBjYW4gcHJvdmUgdGhlIHZh
bHVlIG9mIFN5bWJvbC5oYXNJbnN0YW5jZSBpcyBhIGNvbnN0YW50LiBUaGUgc2Vjb25kIG5ldyBi
eXRlY29kZSBpcyBpbnN0YW5jZW9mX2N1c3RvbS4gaW5zbnRhbmNlb2ZfY3VzdG9tLCBqdXN0Cisg
ICAgICAgIGVtaXRzIGEgY2FsbCB0byBzbG93IHBhdGggY29kZSB0aGF0IGNvbXB1dGVzIHRoZSBy
ZXN1bHQuCisKKyAgICAgICAgSW4gdGhlIERGRywgdGhlcmUgaXMgYWxzbyBhIG5ldyBub2RlLCBD
aGVja1R5cGVJbmZvRmxhZ3MsIHdoaWNoIGNoZWNrcyB0aGUgdHlwZSBpbmZvIGZsYWdzIGFyZSBj
b25zaXN0ZW50IHdpdGggdGhlIG9uZXMgcHJvdmlkZWQgYW5kCisgICAgICAgIE9TUiBleGl0cyBp
ZiB0aGUgZmxhZ3MgYXJlIG5vdC4gQWRkaXRpb25hbGx5LCB3ZSBhdHRlbXB0IHRvIHByb3ZlIHRo
YXQgdGhlIHJlc3VsdCBvZiBDaGVja0hhc1ZhbHVlIHdpbGwgYmUgYSBjb25zdGFudCBhbmQgdHJh
bnNmb3JtCisgICAgICAgIGl0IGludG8gYSBDaGVja1R5cGVJbmZvRmxhZ3MgZm9sbG93ZWQgYnkg
YSBKU0NvbnN0YW50LgorCisKKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6Cisg
ICAgICAgICogYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5cGUuanM6CisgICAgICAgIChzeW1ib2xI
YXNJbnN0YW5jZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcDoK
KyAgICAgICAgKEpTQzo6aXNCcmFuY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0J5
dGVjb2RlTGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6Cisg
ICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlND
Ojpjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAg
ICAgICogYnl0ZWNvZGUvRXhpdEtpbmQuY3BwOgorICAgICAgICAoSlNDOjpleGl0S2luZFRvU3Ry
aW5nKToKKyAgICAgICAgKiBieXRlY29kZS9FeGl0S2luZC5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHA6CisgICAgICAgIChKU0M6OmdldEp1bXBUYXJnZXRzRm9y
Qnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0T3Zl
cnJpZGVzSGFzSW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dEluc3RhbmNlT2ZDdXN0b20pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dENoZWNrSGFzSW5zdGFuY2UpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
OgorICAgICAgICAoSlNDOjpJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMp
OgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmls
aXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAg
ICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToK
KyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0Mp
OgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpG
aXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uY3Bw
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHSGVhcExv
Y2F0aW9uLmg6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpoYXNDZWxsT3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzVHlwZUlu
Zm9PcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjp0eXBlSW5mb09wZXJhbmQpOgor
ICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2ZDdXN0b20pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0
aW9uKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRv
cnkuaDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlT3ZlcnJpZGVzSGFzSW5zdGFuY2UpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVDaGVja1R5cGVJ
bmZvRmxhZ3MpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNvbXBp
bGVJbnN0YW5jZU9mQ3VzdG9tKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9M
TFZNOjpjb21waWxlQ2hlY2tIYXNJbnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJ
VC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAg
ICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAqIGppdC9K
SVQuaDoKKyAgICAgICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmNh
bGxPcGVyYXRpb24pOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3BfaW5zdGFuY2VvZik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9pbnN0
YW5jZW9mX2N1c3RvbSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2Vv
Zik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20pOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfY2hlY2tfaGFzX2luc3RhbmNlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBEZWxl
dGVkLgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSk6CisgICAgICAgIChKU0M6OkpJVDo6
ZW1pdF9vcF9pbnN0YW5jZW9mKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2luc3RhbmNl
b2ZfY3VzdG9tKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mX2N1
c3RvbSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5j
ZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAq
IGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAg
ICAgICAgKEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBs
bGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9X
X1BBVEhfREVDTCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlm
aWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHA6CisgICAgICAg
IChKU0M6OmludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mU291cmNlQXBwZW5kZXIpOgorICAgICAg
ICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZk5vdEZ1bmN0aW9uU291cmNlQXBwZW5k
ZXIpOgorICAgICAgICAoSlNDOjppbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZmhhc0luc3RhbmNl
VmFsdWVOb3RGdW5jdGlvblNvdXJjZUFwcGVuZGVyKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlSW52
YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvck5vdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6
Y3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvcmhhc0luc3RhbmNlVmFsdWVOb3RG
dW5jdGlvbik6CisgICAgICAgIChKU0M6OmNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVy
RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oOgor
ICAgICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpG
dW5jdGlvblByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiBydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rp
b24uY3BwOgorICAgICAgICAoSlNDOjppc0JvdW5kRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpo
YXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0
aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6
OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJv
bEZ1bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNPYmplY3Q6Omhhc0luc3RhbmNlKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJpdmF0ZUZ1
bmNJbnN0YW5jZU9mKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9KU1R5cGVJbmZvLmg6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpUeXBlSW5mbyk6
CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjpvdmVycmlkZXNIYXNJbnN0YW5jZSk6CisgICAgICAg
ICogcnVudGltZS9Xcml0ZUJhcnJpZXIuaDoKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFz
ZTxVbmtub3duPjo6c2xvdCk6CisgICAgICAgICogdGVzdHMvZXM2LnlhbWw6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL2luc3RhbmNlb2YtY3VzdG9tLWhhc2luc3RhbmNlc3ltYm9sLmpzOiBBZGRl
ZC4KKyAgICAgICAgKENvbnN0cnVjdG9yKToKKyAgICAgICAgKHZhbHVlKToKKyAgICAgICAgKGlu
c3RhbmNlT2YpOgorICAgICAgICAoYm9keSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3N5bWJv
bC1oYXNJbnN0YW5jZS5qczogQWRkZWQuCisgICAgICAgIChDb25zdHJ1Y3Rvcik6CisgICAgICAg
ICh2YWx1ZSk6CisgICAgICAgIChPYmplY3RDbGFzcy5TeW1ib2wuaGFzSW5zdGFuY2UpOgorICAg
ICAgICAoTnVtYmVyQ2xhc3MuU3ltYm9sLmhhc0luc3RhbmNlKToKKwogMjAxNS0xMi0xNyAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbRVM2XSBIYW5k
bGUgbmV3X2dlbmVyYXRvcl9mdW5jIC8gbmV3X2dlbmVyYXRvcl9mdW5jX2V4cCBpbiBERkcgLyBG
VEwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXgg
YTFhNzdmZDg4YWQzYTNhOWMyYjVkZjc5OGM3NzE3YTUwNDJjZTFhYy4uMmI0NzM0ZGI0NDdlYTkx
NDc1ZmEzODZiMzBjOWIwN2M1ODdkZDJjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcm90ZWN0ZWQ6CiAKIHB1
YmxpYzoKICAgICB0eXBlZGVmIFBhcmVudCBCYXNlOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgUHJvaGliaXRzUHJvcGVy
dHlDYWNoaW5nIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93
blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEltcGxlbWVudHNI
YXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcyB8IFR5cGVPZlNob3VsZENhbGxHZXRDYWxsRGF0YTsKKyAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFByb2hpYml0c1By
b3BlcnR5Q2FjaGluZyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVyY2VwdHNH
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8gfCBJbXBsZW1l
bnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNIYXNJbnN0YW5jZUZsYWcgfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzIHwgVHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhOwogCiAgICAgfkpTQ2Fs
bGJhY2tPYmplY3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0Z1bmN0aW9uUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0Z1bmN0aW9uUHJvdG90eXBlLmpzCmluZGV4IDFhYTAyNDIyYjE4MDRlZWZjMDM2ZjU1Y2ExZTI1
ZWE3ZmMxMzBmMmQuLjM2NGJjNDMyODgyNTg0MzFlMGI2YjZiZDEyMzM2NjE5YmRhYzA1MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9GdW5jdGlvblByb3RvdHlw
ZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvRnVuY3Rpb25Qcm90b3R5
cGUuanMKQEAgLTM2LDMgKzM2LDE4IEBAIGZ1bmN0aW9uIGFwcGx5KHRoaXNWYWx1ZSwgYXJndW1l
bnRWYWx1ZXMpCiAKICAgICByZXR1cm4gdGhpcy5AYXBwbHkodGhpc1ZhbHVlLCBhcmd1bWVudFZh
bHVlcyk7CiB9CisKKy8vIEZJWE1FOiB0aGlzIHNob3VsZCBoYXZlIGEgZGlmZmVyZW50IG5hbWU6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEzNjMKK2Z1bmN0aW9u
IHN5bWJvbEhhc0luc3RhbmNlKHZhbHVlKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlm
ICh0eXBlb2YgdGhpcyAhPT0gImZ1bmN0aW9uIikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKEBpc0JvdW5kRnVuY3Rpb24odGhpcykpCisgICAgICAgIHJldHVybiBAaGFzSW5zdGFu
Y2VCb3VuZEZ1bmN0aW9uKHRoaXMsIHZhbHVlKTsKKworICAgIGxldCB0YXJnZXQgPSB0aGlzLnBy
b3RvdHlwZTsKKyAgICByZXR1cm4gQGluc3RhbmNlT2YodmFsdWUsIHRhcmdldCk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2Nr
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJhc2ljQmxvY2su
Y3BwCmluZGV4IDU5NjA2NGM0MDY4MjQ5NzgwODljNDY0M2YxYzNkZmJkMDUzNGI5OWYuLmYzMjlk
MGIwZjg5MmRjZTBiMDM4ZWYxZTNlYzliMDNmNDJjZWVjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJhc2ljQmxvY2suY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUJhc2ljQmxvY2suY3BwCkBAIC01OCw3
ICs1OCw2IEBAIHN0YXRpYyBib29sIGlzQnJhbmNoKE9wY29kZUlEIG9wY29kZUlEKQogICAgIGNh
c2Ugb3Bfc3dpdGNoX2ltbToKICAgICBjYXNlIG9wX3N3aXRjaF9jaGFyOgogICAgIGNhc2Ugb3Bf
c3dpdGNoX3N0cmluZzoKLSAgICBjYXNlIG9wX2NoZWNrX2hhc19pbnN0YW5jZToKICAgICBjYXNl
IG9wX3NhdmU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggYmNjYWIw
NGNkOWZiODBjNzQwMjA3NTE0MDRjNDkzMjYxODM3YWRjZC4uMDUzYjhkYzliODY0ZjFiODZiNGNl
YzdhYTYwMWY3Y2UyZjAzZjJlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtNDUsOCArNDUsOSBAQAogICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfYml0YW5kIiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF9iaXR4b3IiLCAibGVuZ3RoIiA6IDUgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDog
Im9wX2JpdG9yIiwgImxlbmd0aCIgOiA1IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9j
aGVja19oYXNfaW5zdGFuY2UiLCAibGVuZ3RoIiA6IDUgfSwKKyAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2luc3RhbmNlb2YiLCAibGVuZ3RoIiA6IDQgfSwKKyAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2luc3RhbmNlb2ZfY3VzdG9tIiwgImxlbmd0aCIgOiA1IH0sCiAg
ICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90eXBlb2YiLCAibGVuZ3RoIiA6IDMgfSwKICAgICAg
ICAgICAgIHsgIm5hbWUiIDogIm9wX2lzX3VuZGVmaW5lZCIsICJsZW5ndGgiIDogMyB9LAogICAg
ICAgICAgICAgeyAibmFtZSIgOiAib3BfaXNfYm9vbGVhbiIsICJsZW5ndGgiIDogMyB9LApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCBk
OGNjYzY3ZDg0NjhmNDE2ZGFlMWM5NDBiMGY3MTRjMmEyZTljYTc5Li43MjBlODEwYzhjMzgzYmUz
MDY1NTk3YzkxNTdmMDVkNjljZGQ4Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaApAQCAtNzMsNiArNzMsNyBAQCB2b2lkIGNvbXB1dGVV
c2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF9kZWM6CiAgICAgY2FzZSBvcF9pbmM6
CiAgICAgY2FzZSBvcF9yZXN1bWU6IHsKKyAgICAgICAgQVNTRVJUKG9wY29kZUxlbmd0aHNbb3Bj
b2RlSURdID49IDEpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9w
Y29kZUlELCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtODUsMTIgKzg2LDE0IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCgK
ICAgICBjYXNlIG9wX2puZ3JlYXRlcmVxOgogICAgIGNhc2Ugb3Bfamxlc3M6CiAgICAgY2FzZSBv
cF9jb3B5X3Jlc3Q6IHsKKyAgICAgICAgQVNTRVJUKG9wY29kZUxlbmd0aHNbb3Bjb2RlSURdID49
IDIpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBp
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5z
dHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbF9kaXJlY3Q6CiAgICAgY2FzZSBv
cF9wdXRfYnlfdmFsOiB7CisgICAgICAgIEFTU0VSVChvcGNvZGVMZW5ndGhzW29wY29kZUlEXSA+
PSAzKTsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJRCwg
aW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGlu
c3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKTsKICAgICAgICAg
ZnVuY3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kKTsKQEAgLTEwMCwxNyArMTAzLDIwIEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRl
Y29kZU9mZnNldCgKICAgICBjYXNlIG9wX3B1dF9ieV9pZDoKICAgICBjYXNlIG9wX3B1dF90b19z
Y29wZToKICAgICBjYXNlIG9wX3B1dF90b19hcmd1bWVudHM6IHsKKyAgICAgICAgQVNTRVJUKG9w
Y29kZUxlbmd0aHNbb3Bjb2RlSURdID49IDMpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywg
aW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogICAgICAg
ICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsz
XS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2Ugb3BfcHV0X2dl
dHRlcl9ieV9pZDoKICAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlfaWQ6IHsKKyAgICAgICAgQVNT
RVJUKG9wY29kZUxlbmd0aHNbb3Bjb2RlSURdID49IDQpOwogICAgICAgICBmdW5jdG9yKGNvZGVC
bG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwog
ICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVj
dGlvbls0XS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2Ugb3Bf
cHV0X2dldHRlcl9zZXR0ZXJfYnlfaWQ6IHsKKyAgICAgICAgQVNTRVJUKG9wY29kZUxlbmd0aHNb
b3Bjb2RlSURdID49IDUpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24s
IG9wY29kZUlELCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogICAgICAgICBmdW5jdG9yKGNv
ZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQp
OwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0
cnVjdGlvbls1XS51Lm9wZXJhbmQpOwpAQCAtMTE4LDYgKzEyNCw3IEBAIHZvaWQgY29tcHV0ZVVz
ZXNGb3JCeXRlY29kZU9mZnNldCgKICAgICB9CiAgICAgY2FzZSBvcF9wdXRfZ2V0dGVyX2J5X3Zh
bDoKICAgICBjYXNlIG9wX3B1dF9zZXR0ZXJfYnlfdmFsOiB7CisgICAgICAgIEFTU0VSVChvcGNv
ZGVMZW5ndGhzW29wY29kZUlEXSA+PSA0KTsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGlu
c3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKICAgICAgICAg
ZnVuY3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNvZGVJRCwgaW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kKTsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNv
ZGVJRCwgaW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKQEAgLTE1OSw2ICsxNjYsNyBAQCB2b2lk
IGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF9nZXRfcGFyZW50X3Nj
b3BlOgogICAgIGNhc2Ugb3BfY3JlYXRlX3Njb3BlZF9hcmd1bWVudHM6CiAgICAgY2FzZSBvcF9n
ZXRfZnJvbV9hcmd1bWVudHM6IHsKKyAgICAgICAgQVNTRVJUKG9wY29kZUxlbmd0aHNbb3Bjb2Rl
SURdID49IDIpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29k
ZUlELCBpbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMTY5LDcgKzE3Nyw2IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCgKICAg
ICBjYXNlIG9wX2dldF9ieV92YWw6CiAgICAgY2FzZSBvcF9pbjoKICAgICBjYXNlIG9wX2luc3Rh
bmNlb2Y6Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CiAgICAgY2FzZSBvcF9hZGQ6
CiAgICAgY2FzZSBvcF9tdWw6CiAgICAgY2FzZSBvcF9kaXY6CkBAIC0xOTEsMjAgKzE5OCwyNSBA
QCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF9lcToKICAg
ICBjYXNlIG9wX3B1c2hfd2l0aF9zY29wZToKICAgICBjYXNlIG9wX2RlbF9ieV92YWw6IHsKKyAg
ICAgICAgQVNTRVJUKG9wY29kZUxlbmd0aHNbb3Bjb2RlSURdID49IDMpOwogICAgICAgICBmdW5j
dG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlE
LCBpbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAg
IGNhc2Ugb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZToKKyAgICBjYXNlIG9wX2luc3RhbmNlb2Zf
Y3VzdG9tOgogICAgIGNhc2Ugb3BfaGFzX3N0cnVjdHVyZV9wcm9wZXJ0eToKICAgICBjYXNlIG9w
X2NvbnN0cnVjdF92YXJhcmdzOgogICAgIGNhc2Ugb3BfY2FsbF92YXJhcmdzOgogICAgIGNhc2Ug
b3BfdGFpbF9jYWxsX3ZhcmFyZ3M6IHsKKyAgICAgICAgQVNTRVJUKG9wY29kZUxlbmd0aHNbb3Bj
b2RlSURdID49IDQpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9w
Y29kZUlELCBpbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogICAgICAgICBmdW5jdG9yKGNvZGVC
bG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpOwog
ICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVj
dGlvbls0XS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2Ugb3Bf
Z2V0X2RpcmVjdF9wbmFtZTogeworICAgICAgICBBU1NFUlQob3Bjb2RlTGVuZ3Roc1tvcGNvZGVJ
RF0gPj0gNSk7CiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bjb2Rl
SUQsIGluc3RydWN0aW9uWzJdLnUub3BlcmFuZCk7CiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2Nr
LCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9uWzNdLnUub3BlcmFuZCk7CiAgICAg
ICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9u
WzRdLnUub3BlcmFuZCk7CkBAIC0yMTQsNiArMjI2LDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5
dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3Bfc3dpdGNoX3N0cmluZzoKICAgICBjYXNlIG9wX3N3
aXRjaF9jaGFyOgogICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbTogeworICAgICAgICBBU1NFUlQob3Bj
b2RlTGVuZ3Roc1tvcGNvZGVJRF0gPj0gMyk7CiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBp
bnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3RydWN0aW9uWzNdLnUub3BlcmFuZCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0zNTAsOCArMzYzLDkgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5
dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUJhc2ljQmxvY2sqIGJs
b2MKICAgICBjYXNlIG9wX2NvbnN0cnVjdDoKICAgICBjYXNlIG9wX2dldF9ieV9pZDoKICAgICBj
YXNlIG9wX2dldF9hcnJheV9sZW5ndGg6Ci0gICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6
CisgICAgY2FzZSBvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgogICAgIGNhc2Ugb3BfaW5zdGFu
Y2VvZjoKKyAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOgogICAgIGNhc2Ugb3BfZ2V0X2J5
X3ZhbDoKICAgICBjYXNlIG9wX3R5cGVvZjoKICAgICBjYXNlIG9wX2lzX3VuZGVmaW5lZDoKQEAg
LTQwMiwxMCArNDE2LDEyIEBAIHZvaWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldChDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgQnl0ZWNvZGVCYXNpY0Jsb2NrKiBibG9jCiAgICAgY2FzZSBvcF91
bnNpZ25lZDoKICAgICBjYXNlIG9wX2dldF9mcm9tX2FyZ3VtZW50czogCiAgICAgY2FzZSBvcF9n
ZXRfcmVzdF9sZW5ndGg6IHsKKyAgICAgICAgQVNTRVJUKG9wY29kZUxlbmd0aHNbb3Bjb2RlSURd
ID49IDEpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlE
LCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGNhc2Ugb3BfY2F0Y2g6IHsKKyAgICAgICAgQVNTRVJUKG9wY29kZUxlbmd0aHNbb3Bjb2RlSURd
ID49IDIpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlE
LCBpbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywg
aW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
CmluZGV4IGE0Nzk5ZmU3NTZkZmUzMzMzZWE1MjVlMjYyYWRlYmYxNWIwYTA1NjMuLjg3OWU0MThk
YTc5ZDM3ZGQ1YzhjZGZiNGRkZGUyNDUzZTU5NTYxODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0xMDEzLDEzICsxMDEzLDEyIEBAIHZvaWQg
Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICArK2l0OwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6IHsK
KyAgICAgICAgY2FzZSBvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOiB7CiAgICAgICAgICAgICBp
bnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAg
ICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBwcmlu
dExvY2F0aW9uQW5kT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJjaGVja19oYXNfaW5zdGFu
Y2UiKTsKLSAgICAgICAgICAgIG91dC5wcmludGYoIiVzLCAlcywgJXMsICVkKC0+JWQpIiwgcmVn
aXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5h
bWUocjIpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7CisgICAgICAgICAgICBw
cmludExvY2F0aW9uQW5kT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJvdmVycmlkZXNfaGFz
X2luc3RhbmNlIik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICVzIiwgcmVnaXN0
ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUo
cjIpLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IG9wX2luc3RhbmNlb2Y6IHsKQEAgLTEwMzAsNiArMTAyOSwxNSBAQCB2b2lkIENvZGVCbG9jazo6
ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVzLCAlcyIsIHJlZ2lz
dGVyTmFtZShyMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUocjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1l
KHIyKS5kYXRhKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2Fz
ZSBvcF9pbnN0YW5jZW9mX2N1c3RvbTogeworICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51
Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAg
ICAgICAgIGludCByMiA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgaW50IHIzID0g
KCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBl
eGVjLCBsb2NhdGlvbiwgaXQsICJpbnN0YW5jZW9mX2N1c3RvbSIpOworICAgICAgICAgICAgb3V0
LnByaW50ZigiJXMsICVzLCAlcywgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpLCByZWdpc3Rlck5hbWUo
cjMpLmRhdGEoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBjYXNl
IG9wX3Vuc2lnbmVkOiB7CiAgICAgICAgICAgICBwcmludFVuYXJ5T3Aob3V0LCBleGVjLCBsb2Nh
dGlvbiwgaXQsICJ1bnNpZ25lZCIpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAppbmRleCAyNTI0MzAwZjczMzc2OWVkOWJl
MDAxZDc2NjBmMzY4NTliNmQ4OTA2Li4zMGM1ZTY0MWE3OTY2NjgyZGNiYjc3MDQyZjUzMGFmMzQy
NTEzMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtp
bmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAK
QEAgLTUwLDYgKzUwLDggQEAgY29uc3QgY2hhciogZXhpdEtpbmRUb1N0cmluZyhFeGl0S2luZCBr
aW5kKQogICAgICAgICByZXR1cm4gIkJhZENvbnN0YW50Q2FjaGUiOwogICAgIGNhc2UgQmFkSW5k
ZXhpbmdUeXBlOgogICAgICAgICByZXR1cm4gIkJhZEluZGV4aW5nVHlwZSI7CisgICAgY2FzZSBC
YWRUeXBlSW5mb0ZsYWdzOgorICAgICAgICByZXR1cm4gIkJhZFR5cGVJbmZvRmxhZ3MiOwogICAg
IGNhc2UgT3ZlcmZsb3c6CiAgICAgICAgIHJldHVybiAiT3ZlcmZsb3ciOwogICAgIGNhc2UgTmVn
YXRpdmVaZXJvOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4
aXRLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAppbmRl
eCA2ZjhjNTEyMDA3MDA1MDViZjkxZGVmNzQ5MDAzZTMwMDVlM2Y3MTg2Li43MDBkMzg4MWY0MTcy
ODIxYWY4OTdlY2NkNWU5ZWE4Zjc1MzUxNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvRXhpdEtpbmQuaApAQCAtMzcsNiArMzcsNyBAQCBlbnVtIEV4aXRLaW5kIDogdWludDhf
dCB7CiAgICAgQmFkQ2FjaGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGFuIGlubGluZSBjYWNoZSB3
YXMgd3JvbmcuCiAgICAgQmFkQ29uc3RhbnRDYWNoZSwgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSBj
YWNoZSBvbiBhIHdlYWsgY29uc3RhbnQgKHVzdWFsbHkgYSBwcm90b3R5cGUpIHdhcyB3cm9uZy4K
ICAgICBCYWRJbmRleGluZ1R5cGUsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGFuIGluZGV4aW5nIHR5
cGUgd2FzIHdyb25nLgorICAgIEJhZFR5cGVJbmZvRmxhZ3MsIC8vIFdlIGV4aXRlZCBiZWNhdXNl
IHdlIG1hZGUgYW4gaW5jb3JyZWN0IGFzc3VtcHRpb24gYWJvdXQgd2hhdCBUeXBlSW5mbyBmbGFn
cyB3ZSB3b3VsZCBzZWUuCiAgICAgT3ZlcmZsb3csIC8vIFdlIGV4aXRlZCBiZWNhdXNlIG9mIG92
ZXJmbG93LgogICAgIE5lZ2F0aXZlWmVybywgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgZW5jb3Vu
dGVyZWQgbmVnYXRpdmUgemVyby4KICAgICBJbnQ1Mk92ZXJmbG93LCAvLyBXZSBleGl0ZWQgYmVj
YXVzZSBvZiBhbiBJbnQ1MiBvdmVyZmxvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAKaW5kZXggMmJiZjMxMzQ0NTZhOWFl
NTJhNjE5MjhiYzRhZTA3MTM1ZWE2MWUzYy4uZTJjYjAwMDQ4Mzc5NGJhOTJkNTEwZGNmNWZhOTk0
ODg1YTIzZGMzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1By
ZWNpc2VKdW1wVGFyZ2V0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAKQEAgLTc0LDkgKzc0LDYgQEAgc3RhdGljIHZvaWQgZ2V0
SnVtcFRhcmdldHNGb3JCeXRlY29kZU9mZnNldChDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW50ZXJw
cmV0ZXIqIGkKICAgICAgICAgb3V0LmFwcGVuZChieXRlY29kZU9mZnNldCArIGN1cnJlbnRbMl0u
dS5vcGVyYW5kKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2Ugb3BfY2hlY2tfaGFz
X2luc3RhbmNlOgotICAgICAgICBvdXQuYXBwZW5kKGJ5dGVjb2RlT2Zmc2V0ICsgY3VycmVudFs0
XS51Lm9wZXJhbmQpOwotICAgICAgICBicmVhazsKICAgICBjYXNlIG9wX2xvb3BfaGludDoKICAg
ICAgICAgb3V0LmFwcGVuZChieXRlY29kZU9mZnNldCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcAppbmRleCBiNDQzZTc1ZjI3NThjOTBhMGYyOTJmZjRlODVjMmQ3NDMyMzY5YTM1Li43
ODU2ZTMwYmRjMzE3NDRmM2U0MDk0MDBhODE4MTc5Yzk4OGI0MGRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cApAQCAtMjA5OSwxNCArMjA5OSwxMyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpjcmVhdGVW
YXJpYWJsZSgKICAgICB9CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDaGVja0hh
c0luc3RhbmNlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQq
IGJhc2UsIExhYmVsKiB0YXJnZXQpCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dE92ZXJyaWRlc0hhc0luc3RhbmNlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogY29uc3Ry
dWN0b3IsIFJlZ2lzdGVySUQqIGhhc0luc3RhbmNlVmFsdWUpCiB7Ci0gICAgc2l6ZV90IGJlZ2lu
ID0gaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOwotICAgIGVtaXRPcGNvZGUob3BfY2hlY2tfaGFzX2lu
c3RhbmNlKTsKKyAgICBlbWl0T3Bjb2RlKG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpOwogICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkpOwotICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZCh2YWx1ZS0+aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGJhc2Ut
PmluZGV4KCkpOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQtPmJpbmQoYmVnaW4s
IGluc3RydWN0aW9ucygpLnNpemUoKSkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjb25z
dHJ1Y3Rvci0+aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGhhc0luc3RhbmNl
VmFsdWUtPmluZGV4KCkpOworICAgIHJldHVybiBkc3Q7CiB9CiAKIC8vIEluZGljYXRlcyB0aGUg
bGVhc3QgdXBwZXIgYm91bmQgb2YgcmVzb2x2ZSB0eXBlIGJhc2VkIG9uIGxvY2FsIHNjb3BlLiBU
aGUgYnl0ZWNvZGUgbGlua2VyCkBAIC0yMjczLDYgKzIyNzIsMTYgQEAgUmVnaXN0ZXJJRCogQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRJbnN0YW5jZU9mKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogdmFsdWUKICAgICByZXR1cm4gZHN0OwogfQogCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdEluc3RhbmNlT2ZDdXN0b20oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiB2
YWx1ZSwgUmVnaXN0ZXJJRCogY29uc3RydWN0b3IsIFJlZ2lzdGVySUQqIGhhc0luc3RhbmNlVmFs
dWUpCit7CisgICAgZW1pdE9wY29kZShvcF9pbnN0YW5jZW9mX2N1c3RvbSk7CisgICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KHZhbHVlLT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoY29uc3RydWN0b3It
PmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChoYXNJbnN0YW5jZVZhbHVlLT5p
bmRleCgpKTsKKyAgICByZXR1cm4gZHN0OworfQorCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdEdldEJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eSkKIHsKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFwYXJz
ZUluZGV4KHByb3BlcnR5KSwgIkluZGV4ZWQgcHJvcGVydGllcyBzaG91bGQgYmUgaGFuZGxlZCB3
aXRoIGdldF9ieV92YWwuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXggYWNjNzJjZmNiZTU1YmZmMGU2MWJi
MWJlNjM0NjIxNGFmOGEyOTk2NS4uMDBiNGZkZTM3N2FkYTIyOGIxZjExZTA3OThjNTJlMzhmYzc5
OGVlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAtNTM0LDggKzUzNCw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW5jKFJlZ2lzdGVySUQqIHNyY0RzdCk7CiAgICAgICAg
IFJlZ2lzdGVySUQqIGVtaXREZWMoUmVnaXN0ZXJJRCogc3JjRHN0KTsKIAotICAgICAgICB2b2lk
IGVtaXRDaGVja0hhc0luc3RhbmNlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUs
IFJlZ2lzdGVySUQqIGJhc2UsIExhYmVsKiB0YXJnZXQpOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0T3ZlcnJpZGVzSGFzSW5zdGFuY2UoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBjb25z
dHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRJbnN0YW5jZU9mKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIFJl
Z2lzdGVySUQqIGJhc2VQcm90b3R5cGUpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW5zdGFu
Y2VPZkN1c3RvbShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHZhbHVlLCBSZWdpc3RlcklE
KiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFuY2VWYWx1ZSk7CiAgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRUeXBlT2YoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMpIHsg
cmV0dXJuIGVtaXRVbmFyeU9wKG9wX3R5cGVvZiwgZHN0LCBzcmMpOyB9CiAgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRJbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdp
c3RlcklEKiBiYXNlKSB7IHJldHVybiBlbWl0QmluYXJ5T3Aob3BfaW4sIGRzdCwgcHJvcGVydHks
IGJhc2UsIE9wZXJhbmRUeXBlcygpKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggNDA2MDhmYThmNzg2NjFlMjI5
MWI3ODRjMDA5YTJhNmQzMzUyMmI4OS4uODc5MDUwOWFhNjcwN2UzOTgxYjAxZDY3MGNlM2Y0NzIx
ZTZlMzcxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcApAQCAtMTY2NCwyMiArMTY2NCw0OSBAQCBSZWdpc3RlcklEKiBUaHJv
d2FibGVCaW5hcnlPcE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJh
dG9yLCBSZQogCiBSZWdpc3RlcklEKiBJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gc3JjMSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2V4
cHIxLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fZXhwcjItPmlzUHVyZShnZW5lcmF0b3IpKTsK
LSAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3JjMiA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIy
KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaGFzSW5zdGFuY2VWYWx1ZSA9IGdlbmVyYXRvci5u
ZXdUZW1wb3JhcnkoKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaXNPYmplY3QgPSBnZW5lcmF0
b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGlzQ3VzdG9tID0gZ2Vu
ZXJhdG9yLm5ld1RlbXBvcmFyeSgpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm90b3R5cGUg
PSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGRzdFJl
ZyA9IGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgc3JjMS5nZXQoKSk7Ci0gICAgUmVm
UHRyPExhYmVsPiB0YXJnZXQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9leHBy
MSwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX2V4cHIyLT5pc1B1cmUoZ2VuZXJhdG9yKSk7Cisg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGNvbnN0cnVjdG9yID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1f
ZXhwcjIpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBkc3RSZWcgPSBnZW5lcmF0b3IuZmluYWxE
ZXN0aW5hdGlvbihkc3QsIHZhbHVlLmdldCgpKTsKKyAgICBSZWZQdHI8TGFiZWw+IGN1c3RvbSA9
IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgIFJlZlB0cjxMYWJlbD4gZG9uZSA9IGdlbmVyYXRv
ci5uZXdMYWJlbCgpOworICAgIFJlZlB0cjxMYWJlbD4gdHlwZUVycm9yID0gZ2VuZXJhdG9yLm5l
d0xhYmVsKCk7CiAKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRp
dm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRDaGVja0hhc0luc3Rh
bmNlKGRzdFJlZy5nZXQoKSwgc3JjMS5nZXQoKSwgc3JjMi5nZXQoKSwgdGFyZ2V0LmdldCgpKTsK
KyAgICBnZW5lcmF0b3IuZW1pdElzT2JqZWN0KGlzT2JqZWN0LmdldCgpLCBjb25zdHJ1Y3Rvci5n
ZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZGYWxzZShpc09iamVjdC5nZXQoKSwgdHlw
ZUVycm9yLmdldCgpKTsKIAogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3Qo
KSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQo
cHJvdG90eXBlLmdldCgpLCBzcmMyLmdldCgpLCBnZW5lcmF0b3Iudm0oKS0+cHJvcGVydHlOYW1l
cy0+cHJvdG90eXBlKTsKKyAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoaGFzSW5zdGFuY2VWYWx1
ZS5nZXQoKSwgY29uc3RydWN0b3IuZ2V0KCksIGdlbmVyYXRvci52bSgpLT5wcm9wZXJ0eU5hbWVz
LT5oYXNJbnN0YW5jZVN5bWJvbCk7CiAKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZv
KGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgUmVnaXN0ZXJJRCogcmVz
dWx0ID0gZ2VuZXJhdG9yLmVtaXRJbnN0YW5jZU9mKGRzdFJlZy5nZXQoKSwgc3JjMS5nZXQoKSwg
cHJvdG90eXBlLmdldCgpKTsKLSAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHRhcmdldC5nZXQoKSk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBnZW5lcmF0b3IuZW1pdE92ZXJyaWRlc0hhc0luc3Rh
bmNlKGlzQ3VzdG9tLmdldCgpLCBjb25zdHJ1Y3Rvci5nZXQoKSwgaGFzSW5zdGFuY2VWYWx1ZS5n
ZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90
U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZUcnVlKGlzQ3Vz
dG9tLmdldCgpLCBjdXN0b20uZ2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9u
SW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGdlbmVyYXRvci5l
bWl0R2V0QnlJZChwcm90b3R5cGUuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgpLCBnZW5lcmF0b3Iu
dm0oKS0+cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlKTsKKworICAgIGdlbmVyYXRvci5lbWl0RXhw
cmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBnZW5l
cmF0b3IuZW1pdEluc3RhbmNlT2YoZHN0UmVnLmdldCgpLCB2YWx1ZS5nZXQoKSwgcHJvdG90eXBl
LmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0SnVtcChkb25lLmdldCgpKTsKKworICAgIGdl
bmVyYXRvci5lbWl0TGFiZWwodHlwZUVycm9yLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFRo
cm93VHlwZUVycm9yKCJSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2Jq
ZWN0Iik7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGN1c3RvbS5nZXQoKSk7CisKKyAgICBn
ZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RF
bmQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRJbnN0YW5jZU9mQ3VzdG9tKGRzdFJlZy5nZXQoKSwg
dmFsdWUuZ2V0KCksIGNvbnN0cnVjdG9yLmdldCgpLCBoYXNJbnN0YW5jZVZhbHVlLmdldCgpKTsK
KworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoZG9uZS5nZXQoKSk7CisKKyAgICByZXR1cm4gZHN0
UmVnLmdldCgpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9naWNh
bE9wTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5k
ZXggMWEyZDcyYWJmNjlkOTRjMTkxMzlkZjg3NDcxZGE1OTRlNjljZTJkYi4uMzRlZjYzMDFlYTRk
ODRjNTFmYWEwZWM4ZjBkNzg0YWU1MWM5ZjYyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjQ2
NSwxMiArMjQ2NSwxNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgTm90aWZ5
V3JpdGU6CiAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgY2FzZSBDaGVja0hhc0lu
c3RhbmNlOgotICAgICAgICAvLyBTYWRseSwgd2UgZG9uJ3QgcHJvcGFnYXRlIHRoZSBmYWN0IHRo
YXQgd2UndmUgZG9uZSBDaGVja0hhc0luc3RhbmNlCisgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0
YW5jZToKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNCb29sZWFuKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIEluc3RhbmNlT2Y6Ci0gICAgICAgIC8v
IEFnYWluLCBzYWRseSwgd2UgZG9uJ3QgcHJvcGFnYXRlIHRoZSBmYWN0IHRoYXQgd2UndmUgZG9u
ZSBJbnN0YW5jZU9mCisgICAgICAgIC8vIFNhZGx5LCB3ZSBkb24ndCBwcm9wYWdhdGUgdGhlIGZh
Y3QgdGhhdCB3ZSd2ZSBkb25lIEluc3RhbmNlT2YKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRU
eXBlKFNwZWNCb29sZWFuKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEluc3RhbmNlT2ZD
dXN0b206CisgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2Ji
ZXJMaW1pdCk7CiAgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjQm9vbGVhbik7CiAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCkBAIC0yNTI3LDYgKzI1MzIsNyBAQCBib29sIEFi
c3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNp
Z25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgY2FzZSBDaGVj
a1RpZXJVcEluTG9vcDoKICAgICBjYXNlIENoZWNrVGllclVwQXRSZXR1cm46CisgICAgY2FzZSBD
aGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDb3B5UmVzdDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5k
ZXggNmFkMjE0MzE0OGE5YWNlZDhjYTg0NDYxMDYzN2MwM2E2NDg2YWNmZC4uNGM0ZGQxOWIwZDM5
OGU1NGJlZWMzYzcwMDU4NTdmYTA1OGU0YzM3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTM1MDUsOSArMzUwNSwxNSBAQCBib29s
IEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAg
TkVYVF9PUENPREUob3BfY2hlY2tfdGR6KTsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2Ugb3Bf
Y2hlY2tfaGFzX2luc3RhbmNlOgotICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0hhc0luc3Rh
bmNlLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQp
KSk7Ci0gICAgICAgICAgICBORVhUX09QQ09ERShvcF9jaGVja19oYXNfaW5zdGFuY2UpOworICAg
ICAgICBjYXNlIG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2U6IHsKKyAgICAgICAgICAgIEpTRnVu
Y3Rpb24qIGRlZmF1bHRIYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uID0gbV9pbmxpbmVTdGFja1Rv
cC0+bV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihjdXJyZW50Q29kZU9yaWdpbigpKS0+ZnVu
Y3Rpb25Qcm90b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24oKTsKKworICAgICAgICAgICAgTm9k
ZSogY29uc3RydWN0b3IgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIGhhc0luc3RhbmNlVmFsdWUgPSBnZXQo
VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKworICAg
ICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kKSwgYWRkVG9HcmFwaChPdmVycmlkZXNIYXNJbnN0YW5jZSwgT3BJbmZvKG1fZ3JhcGguZnJl
ZXplKGRlZmF1bHRIYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKSksIGNvbnN0cnVjdG9yLCBoYXNJ
bnN0YW5jZVZhbHVlKSk7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9vdmVycmlkZXNfaGFz
X2luc3RhbmNlKTsKKyAgICAgICAgfQogCiAgICAgICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjogewog
ICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKQEAgLTM1MTUsNyArMzUyMSwxNSBAQCBib29sIEJ5dGVD
b2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgc2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFw
aChJbnN0YW5jZU9mLCB2YWx1ZSwgcHJvdG90eXBlKSk7CiAgICAgICAgICAgICBORVhUX09QQ09E
RShvcF9pbnN0YW5jZW9mKTsKICAgICAgICAgfQotICAgICAgICAgICAgCisKKyAgICAgICAgY2Fz
ZSBvcF9pbnN0YW5jZW9mX2N1c3RvbTogeworICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQo
VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKKyAgICAg
ICAgICAgIE5vZGUqIGNvbnN0cnVjdG9yID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVZh
bHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5k
KSk7CisgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKEluc3RhbmNlT2ZDdXN0b20sIHZhbHVlLCBjb25zdHJ1
Y3RvciwgaGFzSW5zdGFuY2VWYWx1ZSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5z
dGFuY2VvZl9jdXN0b20pOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBvcF9pc191bmRlZmlu
ZWQ6IHsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJl
Z2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBoKElzVW5k
ZWZpbmVkLCB2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuY3BwCmluZGV4IGQxYzliY2U2YmU0ODFlZmQyMWYxZjU2N2ZiZTE5MmZkNWY1OGIzZmUu
LmQxMDBkOTdkNWM2MGUyNWEwNjBmZmRhNDU2NjNiM2I5NDE0MzVkYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTEyOCw4ICsxMjgsOSBA
QCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3BfcHJvZmlsZV90eXBlOgogICAg
IGNhc2Ugb3BfcHJvZmlsZV9jb250cm9sX2Zsb3c6CiAgICAgY2FzZSBvcF9tb3Y6Ci0gICAgY2Fz
ZSBvcF9jaGVja19oYXNfaW5zdGFuY2U6CisgICAgY2FzZSBvcF9vdmVycmlkZXNfaGFzX2luc3Rh
bmNlOgogICAgIGNhc2Ugb3BfaW5zdGFuY2VvZjoKKyAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3Vz
dG9tOgogICAgIGNhc2Ugb3BfaXNfdW5kZWZpbmVkOgogICAgIGNhc2Ugb3BfaXNfYm9vbGVhbjoK
ICAgICBjYXNlIG9wX2lzX251bWJlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgKaW5kZXggN2EwNjgwODU5Yjk3OTZiYzQyODZjMjlmY2Y3MmM5ZTE1OGQzZDU1ZC4u
NzJiMjRjNzdiNDBiNzcyNjM3ZmZjMzE4ZjNkMTFiOTdlOGY2OTE1NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTc0MCw5ICs3NDAsMTQgQEAgdm9pZCBj
bG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJl
YWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwogICAg
ICAgICByZXR1cm47CiAKLSAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2FzZSBDaGVj
a1R5cGVJbmZvRmxhZ3M6CiAgICAgICAgIHJlYWQoSlNDZWxsX3R5cGVJbmZvRmxhZ3MpOwotICAg
ICAgICBkZWYoSGVhcExvY2F0aW9uKENoZWNrSGFzSW5zdGFuY2VMb2MsIEpTQ2VsbF90eXBlSW5m
b0ZsYWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAgZGVmKEhl
YXBMb2NhdGlvbihDaGVja1R5cGVJbmZvRmxhZ3NMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBu
b2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAgICAgcmV0dXJuOworCisgICAg
Y2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKKyAgICAgICAgcmVhZChKU0NlbGxfdHlwZUluZm9G
bGFncyk7CisgICAgICAgIGRlZihIZWFwTG9jYXRpb24oT3ZlcnJpZGVzSGFzSW5zdGFuY2VMb2Ms
IEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBJbnN0YW5jZU9mOgpAQCAtNzUwLDYgKzc1NSwx
MSBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFk
RnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKElu
c3RhbmNlT2ZMb2MsIEpTQ2VsbF9zdHJ1Y3R1cmVJRCwgbm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNo
aWxkMigpKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIElu
c3RhbmNlT2ZDdXN0b206CisgICAgICAgIHJlYWQoV29ybGQpOworICAgICAgICB3cml0ZShIZWFw
KTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CiAgICAgICAgIHdy
aXRlKEpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CiAgICAgICAgIHdyaXRlKEpTQ2VsbF90eXBlSW5mb1R5
cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IGYwZjE2YWQ5
MDk5MTA3ZDI3MDdmMTJhMTc2NzkyNDBjYjAyN2YxYzEuLjcwMmRhNWJmMWU3YzBmMWM4ZmU1NWM2
NDg0NDU4ZmNhZDgxZTJhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKQEAgLTE0Miw4ICsxNDIsOSBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUpCiAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAg
IGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgotICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKKyAg
ICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKKyAgICBj
YXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICBjYXNlIElz
Qm9vbGVhbjoKICAgICBjYXNlIElzTnVtYmVyOgpAQCAtMTgxLDYgKzE4Miw3IEBAIGJvb2wgZG9l
c0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6CiAg
ICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CisgICAgY2Fz
ZSBDaGVja1R5cGVJbmZvRmxhZ3M6CiAgICAgY2FzZSBNdWx0aUdldEJ5T2Zmc2V0OgogICAgIGNh
c2UgVmFsdWVSZXA6CiAgICAgY2FzZSBEb3VibGVSZXA6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAxM2MzNzJkYTZjNGY2OWZkZjg3OGVjZDkwMTlm
ZWI5ZjkyMjJkNTE2Li5hOWUwYjIxNTRmODJlODA2YjMyMTEyMDNjNDViYzBlNDhhODcyZDFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTExMTEs
MTAgKzExMTEsMjkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8RnVuY3Rpb25Vc2U+
KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAg
ICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZTogeworICAgICAgICAgICAgaWYgKG5vZGUtPmNo
aWxkMigpLm5vZGUoKS0+aXNDZWxsQ29uc3RhbnQoKSkgeworICAgICAgICAgICAgICAgIGlmIChu
b2RlLT5jaGlsZDIoKS5ub2RlKCktPmFzQ2VsbCgpICE9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9y
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1
bmN0aW9uKCkpIHsKKworICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmNvbnZlcnRUb0NvbnN0
YW50KG5vZGUsIGpzQm9vbGVhbih0cnVlKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICghbV9ncmFwaC5oYXNFeGl0
U2l0ZShub2RlLT5vcmlnaW4uc2VtYW50aWMsIEJhZFR5cGVJbmZvRmxhZ3MpKSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIEhlcmUgd2Ugb3B0aW1pc3RpY2FsbHkgYXNzdW1lIHRoYXQgd2Ugd2ls
bCBub3Qgc2VlIGFuIGJvdW5kL0MtQVBJIGZ1bmN0aW9uIGhlcmUuCisgICAgICAgICAgICAgICAg
ICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUobV9pbmRleEluQmxvY2ssIFNwZWNOb25lLCBD
aGVja1R5cGVJbmZvRmxhZ3MsIG5vZGUtPm9yaWdpbiwgT3BJbmZvKEltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UpLCBFZGdlKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgQ2VsbFVzZSkpOworICAg
ICAgICAgICAgICAgICAgICBtX2dyYXBoLmNvbnZlcnRUb0NvbnN0YW50KG5vZGUsIGpzQm9vbGVh
bihmYWxzZSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hp
bGQxKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgICAgIAogICAg
ICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKLSAgICAg
ICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOgogICAgICAgICBjYXNlIENyZWF0ZVRoaXM6CiAgICAg
ICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAgICAgICBjYXNlIEdldEJ1dHRlcmZseVJlYWRPbmx5
OiB7CkBAIC0xMTc1LDcgKzExOTQsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZpeEVkZ2U8
Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKKyAgICAgICAg
ICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgYnJlYWs7
CisKICAgICAgICAgY2FzZSBJbjogewogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBh
dCBzb21lIHBvaW50IGhhdmUgYXJyYXkgcHJvZmlsaW5nIG9uIG9wX2luLCBpbiB3aGljaAogICAg
ICAgICAgICAgLy8gY2FzZSB3ZSB3b3VsZCBiZSBhYmxlIHRvIHR1cm4gdGhpcyBpbnRvIGEga2lu
ZCBvZiBHZXRCeVZhbC4KQEAgLTE0MjMsNiArMTQ0Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNh
c2UgTm90aWZ5V3JpdGU6CiAgICAgICAgIGNhc2UgVmFySW5qZWN0aW9uV2F0Y2hwb2ludDoKICAg
ICAgICAgY2FzZSBDYWxsOgorICAgICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKICAgICAg
ICAgY2FzZSBUYWlsQ2FsbElubGluZWRDYWxsZXI6CiAgICAgICAgIGNhc2UgQ29uc3RydWN0Ogog
ICAgICAgICBjYXNlIENhbGxWYXJhcmdzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdIZWFwTG9jYXRpb24uY3BwCmluZGV4IDY5MjM2NTYzOTYxMWZlYWY3M2Y0ZTg2MTU4YTAwMWIz
NmQxMzUyN2IuLjU1ZDg0Y2Y1NjVhMTI2MmEzZTE3OTIyZGQ4ZmJkMjY4ZmU4OTdmYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKQEAgLTk1LDkg
Kzk1LDEzIEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBMb2NhdGlvbktp
bmQga2luZCkKICAgICBjYXNlIEJ1dHRlcmZseVJlYWRPbmx5TG9jOgogICAgICAgICBvdXQucHJp
bnQoIkJ1dHRlcmZseVJlYWRPbmx5TG9jIik7CiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0g
ICAgY2FzZSBDaGVja0hhc0luc3RhbmNlTG9jOgotICAgICAgICBvdXQucHJpbnQoIkNoZWNrSGFz
SW5zdGFuY2VMb2MiKTsKKworICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzTG9jOgorICAgICAg
ICBvdXQucHJpbnQoIkNoZWNrVHlwZUluZm9GbGFnc0xvYyIpOworICAgICAgICByZXR1cm47CisK
KyAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlTG9jOgorICAgICAgICBvdXQucHJpbnQoIk92
ZXJyaWRlc0hhc0luc3RhbmNlTG9jIik7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAg
Y2FzZSBDbG9zdXJlVmFyaWFibGVMb2M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdI
ZWFwTG9jYXRpb24uaAppbmRleCA0OTVkMzAwM2NlYTZjMWM1N2M1MDJkZTRjMWVmNGUxMTVhYmJl
MGIwLi5iODVmYTI2MDQ5MWQ0ZDMxOTIxYTRjYzZjNzBhMmM4ZDJiZTRlODRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKQEAgLTQwLDcgKzQwLDggQEAg
ZW51bSBMb2NhdGlvbktpbmQgewogICAgIEFycmF5TGVuZ3RoTG9jLAogICAgIEJ1dHRlcmZseUxv
YywKICAgICBCdXR0ZXJmbHlSZWFkT25seUxvYywKLSAgICBDaGVja0hhc0luc3RhbmNlTG9jLAor
ICAgIENoZWNrVHlwZUluZm9GbGFnc0xvYywKKyAgICBPdmVycmlkZXNIYXNJbnN0YW5jZUxvYywK
ICAgICBDbG9zdXJlVmFyaWFibGVMb2MsCiAgICAgRGlyZWN0QXJndW1lbnRzTG9jLAogICAgIEdl
dHRlckxvYywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggYzZjMmEzYWY4MTc1
Yzg5MDllMmI5ZDQ2OTEzNGJhZWVkMTlmNWMwMC4uMzIzYTQyMDE0NTY4NGY4YzczMmE0OTk4NGM3
NzY5ZmU4NDJjYmE3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTEzNjQs
NiArMTM2NCw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkg
ewogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKKyAgICAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0
YW5jZToKICAgICAgICAgY2FzZSBOZXdGdW5jdGlvbjoKICAgICAgICAgY2FzZSBOZXdBcnJvd0Z1
bmN0aW9uOgogICAgICAgICBjYXNlIE5ld0dlbmVyYXRvckZ1bmN0aW9uOgpAQCAtMTQyNiw2ICsx
NDI3LDE3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
VW5pcXVlZFN0cmluZ0ltcGwqPihtX29wSW5mbyk7CiAgICAgfQogCisgICAgYm9vbCBoYXNUeXBl
SW5mb09wZXJhbmQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gQ2hlY2tUeXBlSW5m
b0ZsYWdzOworICAgIH0KKworICAgIHVuc2lnbmVkIHR5cGVJbmZvT3BlcmFuZCgpCisgICAgewor
ICAgICAgICBBU1NFUlQoaGFzVHlwZUluZm9PcGVyYW5kKCkgJiYgbV9vcEluZm8gPD0gVUNIQVJf
TUFYKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX29wSW5mbyk7Cisg
ICAgfQorCiAgICAgYm9vbCBoYXNUcmFuc2l0aW9uKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
b3AoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDI4MWNm
OWE5ODVkMTA1MDViNDRiMGVhOTRlYTA5YWFmNWEyMTEzMDEuLmFiY2VmNjU4OGEwNWE3NjZlNWU1
YjY2ZDQ4MGJiOTEyOTM0NTYxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKQEAgLTIyMiw2ICsyMjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7
CiAgICAgbWFjcm8oQ2hlY2tCYWRDZWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8o
Q2hlY2tJbkJvdW5kcywgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENoZWNrSWRlbnQs
IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDaGVja1R5cGVJbmZvRmxhZ3MsIE5vZGVN
dXN0R2VuZXJhdGUpIC8qIFRha2VzIGFuIE9wSW5mbyB3aXRoIHRoZSBmbGFncyB5b3Ugd2FudCB0
byB0ZXN0IGFyZSBzZXQgKi9cCiAgICAgXAogICAgIC8qIE9wdGltaXphdGlvbnMgZm9yIGFycmF5
IG11dGF0aW9uLiAqL1wKICAgICBtYWNybyhBcnJheVB1c2gsIE5vZGVSZXN1bHRKUyB8IE5vZGVN
dXN0R2VuZXJhdGUpIFwKQEAgLTI4MCw4ICsyODEsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAgICAgbWFjcm8oQnJlYWtwb2ludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAg
IG1hY3JvKFByb2ZpbGVXaWxsQ2FsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFBy
b2ZpbGVEaWRDYWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oQ2hlY2tIYXNJbnN0
YW5jZSwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKE92ZXJyaWRlc0hhc0luc3RhbmNl
LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJbnN0
YW5jZU9mLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAorICAgIG1hY3JvKEluc3RhbmNlT2ZDdXN0b20s
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzVW5k
ZWZpbmVkLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzQm9vbGVhbiwgTm9kZVJl
c3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJc051bWJlciwgTm9kZVJlc3VsdEJvb2xlYW4pIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNzIyMThkM2ZkMTE5YTFmMzUyZGM0MWI1Y2FjNWUx
Yjc3Nzc2M2VjOC4uMDRmZDI3NDJkNTkzY2U4MTlhM2EzYmNiZWY2NTdlMDIzZGMwNDY0NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTQwOCw3ICs0MDgsOSBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIENvbXBhcmVHcmVhdGVyRXE6CiAgICAgICAgIGNhc2UgQ29tcGFyZUVxOgogICAgICAg
ICBjYXNlIENvbXBhcmVTdHJpY3RFcToKKyAgICAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5j
ZToKICAgICAgICAgY2FzZSBJbnN0YW5jZU9mOgorICAgICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0
b206CiAgICAgICAgIGNhc2UgSXNVbmRlZmluZWQ6CiAgICAgICAgIGNhc2UgSXNCb29sZWFuOgog
ICAgICAgICBjYXNlIElzTnVtYmVyOgpAQCAtNTc1LDYgKzU3Nyw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIGNhc2UgRG91YmxlQXNJbnQzMjoKICAgICAgICAgY2FzZSBHZXRMb2NhbFVubGlua2VkOgog
ICAgICAgICBjYXNlIENoZWNrQXJyYXk6CisgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdz
OgogICAgICAgICBjYXNlIEFycmF5aWZ5OgogICAgICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1
cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CkBAIC02ODcsNyArNjkwLDYgQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICAgICAgY2FzZSBQcm9m
aWxlVHlwZToKICAgICAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6Ci0gICAgICAgIGNhc2Ug
Q2hlY2tIYXNJbnN0YW5jZToKICAgICAgICAgY2FzZSBUaHJvd1JlZmVyZW5jZUVycm9yOgogICAg
ICAgICBjYXNlIEZvcmNlT1NSRXhpdDoKICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggYTFiYjZlNjBm
OWYzNjc5MGQ2NDVlMzIzZGI2MWFhN2IxNDA0ZDY4NC4uMjMwZWZlZGM0ODMxNTEyYmFjNTY4YmVl
ZmRiMjc2OTYxODcyMDk0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZl
VG9FeGVjdXRlLmgKQEAgLTI0Miw4ICsyNDIsMTAgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3Ry
YWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2Ug
UHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNlIFByb2ZpbGVD
b250cm9sRmxvdzoKLSAgICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2FzZSBDaGVja1R5
cGVJbmZvRmxhZ3M6CisgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAgICBjYXNlIElu
c3RhbmNlT2Y6CisgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgogICAgIGNhc2UgSXNVbmRlZmlu
ZWQ6CiAgICAgY2FzZSBJc0Jvb2xlYW46CiAgICAgY2FzZSBJc051bWJlcjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMDJmZjgyZGFl
ODQxN2NkOWZiMjFlOTRkYzhlZmU0YTQ2MDgxOWU5OC4uMzE5NTIxY2ZiNzdjYjdiNmYxZTM0OThj
ODI2NmVmNjFlZTA1NDVmNiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTI3NDQsNiArMjc0NCwxNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlSW5zdGFuY2VPZkZvck9iamVjdChOb2RlKiwgR1BSUmVnIHZhbHVlUmVnLCBH
UFJSZWcgcAogICAgIHB1dFJlc3VsdC5saW5rKCZtX2ppdCk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVDaGVja1R5cGVJbmZvRmxhZ3MoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKworICAgIEdQUlJl
ZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKworICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZUlu
Zm9GbGFncywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDgoTWFjcm9Bc3NlbWJs
ZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIEpTQ2VsbDo6dHlwZUlu
Zm9GbGFnc09mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihub2RlLT50eXBl
SW5mb09wZXJhbmQoKSkpKTsKKworICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZihOb2RlKiBub2RlKQogewogICAgIGlmIChub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkgewpAQCAtMzE4Miw2ICszMTkzLDI4
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVWYWx1ZUFkZChOb2RlKiBub2RlKQogICAg
IHJldHVybjsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2ZDdXN0
b20oTm9kZSogbm9kZSkKK3sKKyAgICAvLyBXZSBjb3VsZCBkbyBzb21ldGhpbmcgc21hcnRlciBo
ZXJlIGJ1dCB0aGlzIGNhc2UgaXMgY3VycmVudGx5IHN1cGVyIHJhcmUgYW5kIHVubGVzcworICAg
IC8vIFN5bWJvbC5oYXNJbnN0YW5jZSBiZWNvbWVzIHBvcHVsYXIgd2lsbCBsaWtlbHkgcmVtYWlu
IHRoYXQgd2F5LgorCisgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGNvbnN0cnVjdG9yKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKKyAgICBKU1ZhbHVlT3BlcmFuZCBoYXNJbnN0YW5jZVZhbHVlKHRoaXMsIG5vZGUt
PmNoaWxkMygpKTsKKyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworCisgICAgSlNWYWx1
ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3MoKTsKKyAgICBHUFJSZWcgY29uc3Ry
dWN0b3JHUFIgPSBjb25zdHJ1Y3Rvci5ncHIoKTsKKyAgICBKU1ZhbHVlUmVncyBoYXNJbnN0YW5j
ZVJlZ3MgPSBoYXNJbnN0YW5jZVZhbHVlLmpzVmFsdWVSZWdzKCk7CisgICAgR1BSUmVnIHJlc3Vs
dEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dDYXNl
ID0gbV9qaXQuanVtcCgpOworCisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxs
KHNsb3dDYXNlLCB0aGlzLCBvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tLCByZXN1bHRHUFIsIHZh
bHVlUmVncywgY29uc3RydWN0b3JHUFIsIGhhc0luc3RhbmNlUmVncykpOworCisgICAgdW5ibGVz
c2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlQXJpdGhBZGQoTm9kZSogbm9kZSkKIHsKICAgICBzd2l0Y2ggKG5vZGUtPmJp
bmFyeVVzZUtpbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCmluZGV4IDNmY2ZkOTAwZWNjNDNhZGMyNDc0MTdmY2E3YWY2NmJlNzQ5ODk3YTYu
LjAzMjJiYjdhYmRhNGM4MzYwNjk2MmIwZmMxYTE3ZTgyYTU1NjczZDQgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTcyNyw2ICs3MjcsNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW5zdGFuY2VPZkZvck9iamVjdChOb2Rl
KiwgR1BSUmVnIHZhbHVlUmVnLCBHUFJSZWcgcHJvdG90eXBlUmVnLCBHUFJSZWcgc2NyYXRjaEFu
ZFJlc3VsdFJlZywgR1BSUmVnIHNjcmF0Y2gyUmVnKTsKICAgICB2b2lkIGNvbXBpbGVJbnN0YW5j
ZU9mKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVJbnN0YW5jZU9mQ3VzdG9tKE5vZGUqKTsKICAg
ICAKICAgICB2b2lkIGVtaXRDYWxsKE5vZGUqKTsKICAgICAKQEAgLTE1MTEsNiArMTUxMiwxNyBA
QCBwdWJsaWM6CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
LCBhcmcyLCBUcnVzdGVkSW1tMzIoYXJnMyksIGFyZzQpOwogICAgICAgICByZXR1cm4gYXBwZW5k
Q2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQorCisgICAgSklUQ29tcGls
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSk9KIG9wZXJhdGlvbiwgR1BS
UmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMykKKyAgICB7
CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBh
cmczKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1
bHQpOworICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3Bl
cmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBH
UFJSZWcgYXJnMiwgSlNWYWx1ZVJlZ3MgYXJnMykKKyAgICB7CisgICAgICAgIHJldHVybiBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbiwgcmVzdWx0LCBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMiwgYXJn
My5wYXlsb2FkR1BSKCkpOworICAgIH0KKwogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oWl9KSVRPcGVyYXRpb25fRUpaIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVn
IGFyZzEsIHVuc2lnbmVkIGFyZzIpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoYXJnMSwgVHJ1c3RlZEltbTMyKGFyZzIpKTsKQEAgLTE4MzcsNiArMTg0
OSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7CiAg
ICAgfQogCisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlv
bl9FSk9KIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBh
cmcxUGF5bG9hZCwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczVGFnLCBHUFJSZWcgYXJnM1BheWxv
YWQpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFC
SV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzIsIEVBQklfMzJCSVRf
RFVNTVlfQVJHIGFyZzNQYXlsb2FkLCBhcmczVGFnKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENh
bGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KKyAgICBKSVRDb21waWxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKFpfSklUT3BlcmF0aW9uX0VKT0ogb3BlcmF0aW9uLCBHUFJSZWcg
cmVzdWx0LCBKU1ZhbHVlUmVncyBhcmcxLCBHUFJSZWcgYXJnMiwgSlNWYWx1ZVJlZ3MgYXJnMykK
KyAgICB7CisgICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgcmVzdWx0LCBh
cmcxLnRhZ0dQUigpLCBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMiwgYXJnMy50YWdHUFIoKSwgYXJn
My5wYXlsb2FkR1BSKCkpOworICAgIH0KKwogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oWl9KSVRPcGVyYXRpb25fRUpaWiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJl
ZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIHVuc2lnbmVkIGFyZzIsIHVuc2lnbmVkIGFy
ZzMpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFC
SV8zMkJJVF9EVU1NWV9BUkcgIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBUcnVzdGVkSW1tMzIoYXJn
MiksIFRydXN0ZWRJbW0zMihhcmczKSk7CkBAIC0yMjA5LDYgKzIyMzEsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGNvbXBpbGVHZXRBcnJheUxlbmd0aChOb2RlKik7CiAKKyAgICB2b2lkIGNvbXBp
bGVDaGVja1R5cGVJbmZvRmxhZ3MoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNoZWNrSWRlbnQo
Tm9kZSopOwogICAgIAogICAgIHZvaWQgY29tcGlsZVZhbHVlUmVwKE5vZGUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmlu
ZGV4IDYyNjk3NWZiOTJlOTM5OTRkMDM5ZTI4ZWNlN2FkNzYwN2Q5NjFjYTMuLjg5YTBkYzMwMzJi
Y2M0ZmI1MDE3ZWVlMWNhY2Y2NDA0N2UyYWQwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDE2MywxNyArNDE2
Myw0OCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZTogeworICAgIGNhc2Ug
Q2hlY2tUeXBlSW5mb0ZsYWdzOiB7CisgICAgICAgIGNvbXBpbGVDaGVja1R5cGVJbmZvRmxhZ3Mo
bm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5z
dGFuY2U6IHsKKworICAgICAgICBOb2RlKiBoYXNJbnN0YW5jZVZhbHVlTm9kZSA9IG5vZGUtPmNo
aWxkMigpLm5vZGUoKTsKKyAgICAgICAgSlNGdW5jdGlvbiogZGVmYXVsdEhhc0luc3RhbmNlRnVu
Y3Rpb24gPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KG5vZGUtPmNlbGxPcGVyYW5kKCktPnZhbHVlKCkp
OworCisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG5vdERlZmF1bHRoYXNJbnN0YW5jZVZh
bHVlOworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBoYXNJbnN0YW5jZVZhbHVlTm90Q2Vs
bDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7CisgICAgICAgIEpTVmFs
dWVPcGVyYW5kIGhhc0luc3RhbmNlVmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAg
ICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogCi0gICAgICAgIC8vIFNwZWN1bGF0ZSB0aGF0
IGJhc2UgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgotICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0OCgK
LSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpaZXJvLCAKLSAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgp
KSwgCi0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNE
ZWZhdWx0SGFzSW5zdGFuY2UpKSk7CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQu
Z3ByKCk7CiAKLSAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIC8vIElmIHdlIGhhdmUg
cHJvdmVuIHRoYXQgdGhlIGNvbnN0cnVjdG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIHdpbGwgYWx3
YXlzIGJlIHRoZSBvbmUgb24KKyAgICAgICAgLy8gRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5o
YXNJbnN0YW5jZV0gdGhlbiB3ZSBkb24ndCBuZWVkIGEgcnVudGltZSBjaGVjayBoZXJlLiBXZSBk
b24ndCB3b3JyeQorICAgICAgICAvLyBhYm91dCB0aGUgY2FzZSB3aGVyZSB0aGUgY29uc3RydWN0
b3IncyBTeW1ib2wuaGFzSW5zdGFuY2UgaXMgYSBjb25zdGFudCBidXQgaXMgbm90IHRoZSBkZWZh
dWx0CisgICAgICAgIC8vIG9uZSBhcyBmaXh1cCBzaG91bGQgaGF2ZSBjb252ZXJ0ZWQgdGhpcyBj
aGVjayB0byB0cnVlLgorICAgICAgICBBU1NFUlQoIWhhc0luc3RhbmNlVmFsdWVOb2RlLT5pc0Nl
bGxDb25zdGFudCgpIHx8IGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uID09IGhhc0luc3RhbmNl
VmFsdWVOb2RlLT5hc0NlbGwoKSk7CisgICAgICAgIGlmICghaGFzSW5zdGFuY2VWYWx1ZU5vZGUt
PmlzQ2VsbENvbnN0YW50KCkpIHsKKworICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgaGFzSW5zdGFu
Y2VWYWx1ZVJlZ3MgPSBoYXNJbnN0YW5jZVZhbHVlLmpzVmFsdWVSZWdzKCk7CisgICAgICAgICAg
ICBoYXNJbnN0YW5jZVZhbHVlTm90Q2VsbCA9IG1faml0LmJyYW5jaElmTm90Q2VsbChoYXNJbnN0
YW5jZVZhbHVlUmVncyk7CisgICAgICAgICAgICBub3REZWZhdWx0aGFzSW5zdGFuY2VWYWx1ZSA9
IG1faml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIGhhc0luc3RhbmNlVmFs
dWVSZWdzLnBheWxvYWRHUFIoKSwgVHJ1c3RlZEltbVB0cihkZWZhdWx0SGFzSW5zdGFuY2VGdW5j
dGlvbikpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgdGhhdCBjb25zdHJ1Y3RvciAn
SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZScuCisgICAgICAgIG1faml0LnRlc3Q4KE1hY3Jv
QXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlLmdwcigpLCBKU0Nl
bGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSksIHJlc3VsdEdQUik7CisgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7CisKKyAgICAgICAgaWYgKCFoYXNJ
bnN0YW5jZVZhbHVlTm9kZS0+aXNDZWxsQ29uc3RhbnQoKSkgeworICAgICAgICAgICAgaGFzSW5z
dGFuY2VWYWx1ZU5vdENlbGwubGluaygmbV9qaXQpOworICAgICAgICAgICAgbm90RGVmYXVsdGhh
c0luc3RhbmNlVmFsdWUubGluaygmbV9qaXQpOworICAgICAgICAgICAgbW92ZVRydWVUbyhyZXN1
bHRHUFIpOworICAgICAgICB9CisKKyAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CisgICAgICAg
IGJvb2xlYW5SZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQog
CkBAIC00MTgyLDYgKzQyMTMsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
KiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIEluc3RhbmNlT2ZDdXN0
b206IHsKKyAgICAgICAgY29tcGlsZUluc3RhbmNlT2ZDdXN0b20obm9kZSk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKwogICAgIGNhc2UgSXNVbmRlZmluZWQ6IHsKICAgICAgICAgSlNWYWx1ZU9w
ZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKaW5kZXggMmZhY2ZhYWQwYTQ1MzA1Zjk0YTc0YzNjZWY4OGEwMTNkYWEw
Yzg3OC4uNzBlOGVhOGUzNTEwNjRjOWU0YTNiMWU1Y2JkYzZiMDVkNTU0ZDcyNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC00
MTUzLDE3ICs0MTUzLDQyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9k
ZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2FzZSBDaGVja0hhc0luc3RhbmNlOiB7
CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6IHsKKyAgICAgICAgY29tcGlsZUNoZWNrVHlw
ZUluZm9GbGFncyhub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBPdmVy
cmlkZXNIYXNJbnN0YW5jZTogeworCisgICAgICAgIE5vZGUqIGhhc0luc3RhbmNlVmFsdWVOb2Rl
ID0gbm9kZS0+Y2hpbGQyKCkubm9kZSgpOworICAgICAgICBKU0Z1bmN0aW9uKiBkZWZhdWx0SGFz
SW5zdGFuY2VGdW5jdGlvbiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4obm9kZS0+Y2VsbE9wZXJhbmQo
KS0+dmFsdWUoKSk7CisKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90RGVmYXVsdDsK
ICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
Ci0gICAgICAgIEdQUlRlbXBvcmFyeSBzdHJ1Y3R1cmUodGhpcyk7CisgICAgICAgIEpTVmFsdWVP
cGVyYW5kIGhhc0luc3RhbmNlVmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogCi0gICAgICAgIC8vIFNwZWN1bGF0ZSB0aGF0IGJh
c2UgJ0ltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UnLgotICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0OCgKLSAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpaZXJvLCAKLSAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKGJhc2UuZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwg
Ci0gICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZh
dWx0SGFzSW5zdGFuY2UpKSk7CisgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3By
KCk7CiAKLSAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIC8vIElmIHdlIGhhdmUgcHJv
dmVuIHRoYXQgdGhlIGNvbnN0cnVjdG9yJ3MgU3ltYm9sLmhhc0luc3RhbmNlIHdpbGwgYWx3YXlz
IGJlIHRoZSBvbmUgb24gRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0KKyAg
ICAgICAgLy8gdGhlbiB3ZSBkb24ndCBuZWVkIGEgcnVudGltZSBjaGVjayBoZXJlLiBXZSBkb24n
dCB3b3JyeSBhYm91dCB0aGUgY2FzZSB3aGVyZSB0aGUgY29uc3RydWN0b3IncyBTeW1ib2wuaGFz
SW5zdGFuY2UgaXMgYSBjb25zdGFudAorICAgICAgICAvLyBidXQgaXMgbm90IHRoZSBkZWZhdWx0
IG9uZSBhcyBmaXh1cCBzaG91bGQgaGF2ZSBjb252ZXJ0ZWQgdGhpcyBjaGVjayB0byB0cnVlLgor
ICAgICAgICBBU1NFUlQoIWhhc0luc3RhbmNlVmFsdWVOb2RlLT5pc0NlbGxDb25zdGFudCgpIHx8
IGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0aW9uID09IGhhc0luc3RhbmNlVmFsdWVOb2RlLT5hc0Nl
bGwoKSk7CisgICAgICAgIGlmICghaGFzSW5zdGFuY2VWYWx1ZU5vZGUtPmlzQ2VsbENvbnN0YW50
KCkpCisgICAgICAgICAgICBub3REZWZhdWx0ID0gbV9qaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1i
bGVyOjpOb3RFcXVhbCwgaGFzSW5zdGFuY2VWYWx1ZS5ncHIoKSwgVHJ1c3RlZEltbVB0cihkZWZh
dWx0SGFzSW5zdGFuY2VGdW5jdGlvbikpOworCisgICAgICAgIC8vIENoZWNrIHRoYXQgYmFzZSAn
SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZScuCisgICAgICAgIG1faml0LnRlc3Q4KE1hY3Jv
QXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlLmdwcigpLCBKU0Nl
bGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSksIHJlc3VsdEdQUik7CisgICAgICAgIG1faml0
Lm9yMzIoVHJ1c3RlZEltbTMyKFZhbHVlRmFsc2UpLCByZXN1bHRHUFIpOworICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOworCisgICAgICAgIGlmIChub3RE
ZWZhdWx0LmlzU2V0KCkpIHsKKyAgICAgICAgICAgIG5vdERlZmF1bHQubGluaygmbV9qaXQpOwor
ICAgICAgICAgICAgbW92ZVRydWVUbyhyZXN1bHRHUFIpOworICAgICAgICB9CisKKyAgICAgICAg
ZG9uZS5saW5rKCZtX2ppdCk7CisgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBub2Rl
LCBEYXRhRm9ybWF0SlNCb29sZWFuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC00MTcx
LDYgKzQxOTYsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQog
ICAgICAgICBjb21waWxlSW5zdGFuY2VPZihub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQor
CisgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOiB7CisgICAgICAgIGNvbXBpbGVJbnN0YW5jZU9m
Q3VzdG9tKG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgICAgIAogICAgIGNhc2Ug
SXNVbmRlZmluZWQ6IHsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCmluZGV4IDMyODcwYWE4MWE1MWQwYTdkOGNmOTJkNDBmZmQ2MTJiMjllNWNlNDkuLmQyYTQ5
MGMyYTY3ZTZkYjhiOWE1YTc5NjY0ZTU2NWUzZDZkOTUxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTE3Niw4ICsxNzYsMTAgQEAgaW5s
aW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBJc09i
amVjdDoKICAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgogICAgIGNhc2UgSXNGdW5jdGlvbjoKLSAg
ICBjYXNlIENoZWNrSGFzSW5zdGFuY2U6CisgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6Cisg
ICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAgICBjYXNlIEluc3RhbmNlT2Y6CisgICAg
Y2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgogICAgIGNhc2UgRG91YmxlUmVwOgogICAgIGNhc2UgVmFs
dWVSZXA6CiAgICAgY2FzZSBJbnQ1MlJlcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSW50cmluc2ljUmVwb3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKaW5kZXggZjVmNGVhNzFhMWY3ZGZmMzgyMjQx
NTAyMmY1MzNlYWU2NWUxMWYzMC4uYzhmMDgxY2VjMGYxMTA2MDhmYjBlNDUzYzAyYzFlMmJhYmEz
NGU5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNS
ZXBvc2l0b3J5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNS
ZXBvc2l0b3J5LmgKQEAgLTEyOCw2ICsxMjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEZUTCB7CiAgICAgbWFjcm8oWl9KSVRPcGVyYXRpb25fRCwgZnVuY3Rpb25UeXBlKGludDMyLCBk
b3VibGVUeXBlKSkgXAogICAgIG1hY3JvKFpfSklUT3BlcmF0aW9uX0VDLCBmdW5jdGlvblR5cGUo
aW50MzIsIGludFB0ciwgaW50UHRyKSkgXAogICAgIG1hY3JvKFpfSklUT3BlcmF0aW9uX0VHQywg
ZnVuY3Rpb25UeXBlKGludDMyLCBpbnRQdHIsIGludFB0ciwgaW50UHRyKSkgXAorICAgIG1hY3Jv
KFpfSklUT3BlcmF0aW9uX0VKT0osIGZ1bmN0aW9uVHlwZShpbnQzMiwgaW50UHRyLCBpbnQ2NCwg
aW50UHRyLCBpbnQ2NCkpIFwKICAgICBtYWNybyhaX0pJVE9wZXJhdGlvbl9FSlosIGZ1bmN0aW9u
VHlwZShpbnQzMiwgaW50UHRyLCBpbnQ2NCwgaW50MzIpKSBcCiAgICAgbWFjcm8oWl9KSVRPcGVy
YXRpb25fRVNKc3MsIGZ1bmN0aW9uVHlwZShpbnQzMiwgaW50UHRyLCBpbnRQdHIsIGludDY0KSkg
XAogICAgIG1hY3JvKFZfSklUT3BlcmF0aW9uX0VDUlVpVWksIGZ1bmN0aW9uVHlwZSh2b2lkVHlw
ZSwgaW50UHRyLCBpbnRQdHIsIGludFB0ciwgaW50MzIsIGludDMyKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggODkwMTljYjczN2Fj
NmQ4ZjFkYTYyMmJlYTRlOWU5Njk4Y2MxZmQzOS4uYmFiMzliNGM3ZjZkN2M4YjhhZDc3YzdlZGE1
YmU5YmU1NTZkYjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvTExWTS5jcHAKQEAgLTk0OCwxMiArOTQ4LDE4IEBAIHByaXZhdGU6CiAgICAgICAgIGNh
c2UgVHlwZU9mOgogICAgICAgICAgICAgY29tcGlsZVR5cGVPZigpOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQ2hlY2tIYXNJbnN0YW5jZToKLSAgICAgICAgICAgIGNvbXBpbGVD
aGVja0hhc0luc3RhbmNlKCk7CisgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgorICAg
ICAgICAgICAgY29tcGlsZUNoZWNrVHlwZUluZm9GbGFncygpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6CisgICAgICAgICAgICBjb21waWxl
T3ZlcnJpZGVzSGFzSW5zdGFuY2UoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEluc3RhbmNlT2Y6CiAgICAgICAgICAgICBjb21waWxlSW5zdGFuY2VPZigpOwogICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKKyAgICAgICAgICAgIGNv
bXBpbGVJbnN0YW5jZU9mQ3VzdG9tKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBDb3VudEV4ZWN1dGlvbjoKICAgICAgICAgICAgIGNvbXBpbGVDb3VudEV4ZWN1dGlvbigpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC01NzQ1LDEzICs1NzUxLDQwIEBAIHByaXZhdGU6CiAjZW5k
aWYKICAgICB9CiAKLSAgICB2b2lkIGNvbXBpbGVDaGVja0hhc0luc3RhbmNlKCkKKyAgICB2b2lk
IGNvbXBpbGVPdmVycmlkZXNIYXNJbnN0YW5jZSgpCisgICAgeworICAgICAgICBKU0Z1bmN0aW9u
KiBkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4obV9ub2Rl
LT5jZWxsT3BlcmFuZCgpLT52YWx1ZSgpKTsKKworICAgICAgICBMVmFsdWUgY29uc3RydWN0b3Ig
PSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgaGFzSW5zdGFuY2Ug
PSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOworCisgICAgICAgIExCYXNpY0Jsb2NrIGRl
ZmF1bHRIYXNJbnN0YW5jZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiT3ZlcnJpZGVzSGFzSW5z
dGFuY2UgU3ltYm9sLmhhc0luc3RhbmNlIGlzIGRlZmF1bHQiKSk7CisgICAgICAgIExCYXNpY0Js
b2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiT3ZlcnJpZGVzSGFzSW5z
dGFuY2UgY29udGludWF0aW9uIikpOworCisgICAgICAgIC8vIFVubGlrZSBpbiB0aGUgREZHLCB3
ZSBkb24ndCB3b3JyeSBhYm91dCBjbGVhbmluZyB0aGlzIGNvZGUgdXAgZm9yIHRoZSBjYXNlIHdo
ZXJlIHdlIGhhdmUgcHJvdmVuIHRoZSBoYXNJbnN0YW5jZVZhbHVlIGlzIGEgY29uc3RhbnQgYXMg
TExWTSBzaG91bGQgZml4IGl0IGZvciB1cy4KKworICAgICAgICBBU1NFUlQoIW1fbm9kZS0+Y2hp
bGQyKCkubm9kZSgpLT5pc0NlbGxDb25zdGFudCgpIHx8IGRlZmF1bHRIYXNJbnN0YW5jZUZ1bmN0
aW9uID09IG1fbm9kZS0+Y2hpbGQyKCkubm9kZSgpLT5hc0NlbGwoKSk7CisKKyAgICAgICAgVmFs
dWVGcm9tQmxvY2sgbm90RGVmYXVsdEhhc0luc3RhbmNlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1f
b3V0LmJvb2xlYW5UcnVlKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdEVxdWFsKGhh
c0luc3RhbmNlLCBtX291dC5jb25zdEludFB0cihkZWZhdWx0SGFzSW5zdGFuY2VGdW5jdGlvbikp
LCB1bnN1cmUoY29udGludWF0aW9uKSwgdW5zdXJlKGRlZmF1bHRIYXNJbnN0YW5jZSkpOworCisg
ICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oZGVmYXVsdEhhc0lu
c3RhbmNlLCBjb250aW51YXRpb24pOworICAgICAgICBWYWx1ZUZyb21CbG9jayBpbXBsZW1lbnRz
RGVmYXVsdEhhc0luc3RhbmNlUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LnRlc3RJc1plcm8z
MigKKyAgICAgICAgICAgIG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGNvbnN0cnVjdG9yLCBtX2hlYXBz
LkpTQ2VsbF90eXBlSW5mb0ZsYWdzKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoSW1w
bGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51
YXRpb24pOworCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQp
OworICAgICAgICBzZXRCb29sZWFuKG1fb3V0LnBoaShtX291dC5ib29sZWFuLCBpbXBsZW1lbnRz
RGVmYXVsdEhhc0luc3RhbmNlUmVzdWx0LCBub3REZWZhdWx0SGFzSW5zdGFuY2VSZXN1bHQpKTsK
KyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVDaGVja1R5cGVJbmZvRmxhZ3MoKQogICAgIHsKICAg
ICAgICAgc3BlY3VsYXRlKAotICAgICAgICAgICAgVW5jb3VudGFibGUsIG5vVmFsdWUoKSwgMCwK
KyAgICAgICAgICAgIEJhZFR5cGVJbmZvRmxhZ3MsIG5vVmFsdWUoKSwgMCwKICAgICAgICAgICAg
IG1fb3V0LnRlc3RJc1plcm8zMigKICAgICAgICAgICAgICAgICBtX291dC5sb2FkOFplcm9FeHQz
Mihsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb0ZsYWdz
KSwKLSAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKEltcGxlbWVudHNEZWZhdWx0SGFz
SW5zdGFuY2UpKSk7CisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihtX25vZGUtPnR5
cGVJbmZvT3BlcmFuZCgpKSkpOwogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVJbnN0YW5j
ZU9mKCkKQEAgLTU4MDQsNiArNTgzNywxNSBAQCBwcml2YXRlOgogICAgICAgICBzZXRCb29sZWFu
KAogICAgICAgICAgICAgbV9vdXQucGhpKG1fb3V0LmJvb2xlYW4sIG5vdENlbGxSZXN1bHQsIGlz
SW5zdGFuY2VSZXN1bHQsIG5vdEluc3RhbmNlUmVzdWx0KSk7CiAgICAgfQorCisgICAgdm9pZCBj
b21waWxlSW5zdGFuY2VPZkN1c3RvbSgpCisgICAgeworICAgICAgICBMVmFsdWUgdmFsdWUgPSBs
b3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBMVmFsdWUgY29uc3RydWN0b3Ig
PSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICBMVmFsdWUgaGFzSW5zdGFuY2Ug
PSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQzKCkpOworCisgICAgICAgIHNldEJvb2xlYW4obV9v
dXQuYml0Tm90KG1fb3V0LmVxdWFsKG1fb3V0LmNvbnN0SW50MzIoMCksIHZtQ2FsbChtX291dC5p
bnQzMiwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0b20pLCBtX2NhbGxG
cmFtZSwgdmFsdWUsIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZSkpKSk7CisgICAgfQogICAgIAog
ICAgIHZvaWQgY29tcGlsZUNvdW50RXhlY3V0aW9uKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAKaW5kZXggZjM0MzFjOTc1MWZhMzVkYTk3MDI2Yzg1YzE4N2QyMGU2ODhlNWZmMS4u
YTNiZGZhN2NkNWQwZjU3MjQ3ZjFiZThjNDBiMjUxMGQyOWQ4MDBmZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcApAQCAtMjI4LDggKzIyOCw5IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZU1haW5QYXNzKCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgICAgICBE
RUZJTkVfT1Aob3BfZ2V0X2J5X2lkKQogICAgICAgICBERUZJTkVfT1Aob3BfZ2V0X2J5X3ZhbCkK
LSAgICAgICAgREVGSU5FX09QKG9wX2NoZWNrX2hhc19pbnN0YW5jZSkKKyAgICAgICAgREVGSU5F
X09QKG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UpCiAgICAgICAgIERFRklORV9PUChvcF9pbnN0
YW5jZW9mKQorICAgICAgICBERUZJTkVfT1Aob3BfaW5zdGFuY2VvZl9jdXN0b20pCiAgICAgICAg
IERFRklORV9PUChvcF9pc191bmRlZmluZWQpCiAgICAgICAgIERFRklORV9PUChvcF9pc19ib29s
ZWFuKQogICAgICAgICBERUZJTkVfT1Aob3BfaXNfbnVtYmVyKQpAQCAtMzk5LDggKzQwMCw4IEBA
IHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIGNhc2Ugb3BfZ2V0
X2FycmF5X2xlbmd0aDoKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2dldF9ieV9pZCkK
ICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2dldF9ieV92YWwpCi0gICAgICAgIERFRklO
RV9TTE9XQ0FTRV9PUChvcF9jaGVja19oYXNfaW5zdGFuY2UpCiAgICAgICAgIERFRklORV9TTE9X
Q0FTRV9PUChvcF9pbnN0YW5jZW9mKQorICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfaW5z
dGFuY2VvZl9jdXN0b20pCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9qZmFsc2UpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9qbGVzcykKICAgICAgICAgREVGSU5FX1NMT1dD
QVNFX09QKG9wX2psZXNzZXEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCBjZTIyMDc0ODBk
ZTNiNmQ0ZTBlODljZjIyNjU0MTE5Zjc3OTA0MzBjLi5kZjdiM2RjNWU4OTIwZWU0ZWY5MmJjYWNi
YWVmZjFiNGMwMGQ5MzY5IDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTUwOSw4ICs1MDks
OSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9ieV92YWwoSW5z
dHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9hcmd1bWVudF9ieV92YWwoSW5z
dHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2luaXRfbGF6eV9yZWcoSW5zdHJ1Y3Rp
b24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlv
biopOworICAgICAgICB2b2lkIGVtaXRfb3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZShJbnN0cnVj
dGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiopOwor
ICAgICAgICB2b2lkIGVtaXRfb3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qKTsKICAg
ICAgICAgdm9pZCBlbWl0X29wX2lzX3VuZGVmaW5lZChJbnN0cnVjdGlvbiopOwogICAgICAgICB2
b2lkIGVtaXRfb3BfaXNfYm9vbGVhbihJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfaXNfbnVtYmVyKEluc3RydWN0aW9uKik7CkBAIC02MTYsOCArNjE3LDggQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZ2V0X2FyZ3VtZW50c19sZW5ndGgoSW5z
dHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZv
aWQgZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRfYXJndW1lbnRf
YnlfdmFsKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwot
ICAgICAgICB2b2lkIGVtaXRTbG93X29wX2NoZWNrX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbios
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xv
d19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVy
YXRvciYpOworICAgICAgICB2b2lkIGVtaXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3Ry
dWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lk
IGVtaXRTbG93X29wX2pmYWxzZShJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6
aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9qbGVzcyhJbnN0cnVjdGlvbios
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAgICAgdm9pZCBlbWl0U2xv
d19vcF9qbGVzc2VxKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYpOwpAQCAtNzQ0LDYgKzc0NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiwgaW50LCBHUFJS
ZWcsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBHUFJSZWcsIEFycmF5UHJvZmlsZSop
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0
aW9uX0VKSkJ5LCBpbnQsIEdQUlJlZywgR1BSUmVnLCBCeVZhbEluZm8qKTsKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSk9KLCBHUFJS
ZWcsIEdQUlJlZywgR1BSUmVnKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihDX0pJVE9wZXJhdGlvbl9FSnNjLCBHUFJSZWcpOwogICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKc2NDLCBpbnQsIEdQUlJl
ZywgSlNDZWxsKik7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Sl9KSVRPcGVyYXRpb25fRUpzY0NKLCBpbnQsIEdQUlJlZywgSlNDZWxsKiwgR1BSUmVnKTsKQEAg
LTgxMSw2ICs4MTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSiwgaW50LCBHUFJSZWcsIEdQUlJl
Zyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVy
YXRpb25fRUpJZGMsIGludCwgR1BSUmVnLCBHUFJSZWcsIGNvbnN0IElkZW50aWZpZXIqKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9F
SkosIGludCwgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnKTsKKyAgICAgICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9FSk9KLCBHUFJSZWcs
IEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEdQUlJlZyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKQXAsIGludCwgR1BSUmVnLCBH
UFJSZWcsIEdQUlJlZywgR1BSUmVnLCBBcnJheVByb2ZpbGUqKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkpCeSwgaW50LCBHUFJS
ZWcsIEdQUlJlZywgR1BSUmVnLCBHUFJSZWcsIEJ5VmFsSW5mbyopOwogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VKUywgR1BSUmVnLCBH
UFJSZWcsIHNpemVfdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCmluZGV4
IGNhZGIwODMwOGNjYzA2MWI3Yzc3N2Q1MGIyYWMyMzgzZDM5OGU5ZGUuLjc3YWRjMDJkZjhiMDg1
OWY1YjYxYzg1NzFhMmQyMTU2ZDgzYzJjOWMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lcy5oCkBAIC01MDMsNiArNTAzLDEyIEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkJ5IG9wZXJhCiAg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0KG9w
ZXJhdGlvbiwgZHN0KTsKIH0KIAorQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBK
SVQ6OmNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpPSiBvcGVyYXRpb24sIEdQUlJlZyBh
cmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMpCit7CisgICAgc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uTm9FeGNlcHRpb25DaGVjayhWX0pJVE9wZXJhdGlv
bl9FSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxKTsKQEAgLTU5Niw2ICs2MDIsMTIgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb25Ob0V4Y2VwdGlvbkNoZWNrKFZfSklUT3Bl
cmEKICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOwogfQogCitBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9F
Sk9KIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVn
IGFyZzIsIEdQUlJlZyBhcmczVGFnLCBHUFJSZWcgYXJnM1BheWxvYWQpCit7CisgICAgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBh
cmcxVGFnLCBhcmcyLCBFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmczUGF5bG9hZCwgYXJnM1RhZyk7
CisgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKK30K
KwogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24o
Wl9KSVRPcGVyYXRpb25fRUpaWiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJn
MVBheWxvYWQsIGludDMyX3QgYXJnMiwgaW50MzJfdCBhcmczKQogewogICAgIHNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRh
ZywgVHJ1c3RlZEltbTMyKGFyZzIpLCBUcnVzdGVkSW1tMzIoYXJnMykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggM2E5N2RkOGEzZmRmYTc0M2NjYjJkZjMy
OThjNTE3NTY5YTc1YTgzYS4uYjIyMzViYzQ4ODhjNTc3NzU5Y2RjMjZjNGQyZTJjMTA1ODk3MzBi
MyAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xMDUsMTcg
KzEwNSwyOSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbmV3X29iamVjdChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhcwogICAgIGVtaXRTdG9yZUNlbGwoZHN0
LCByZXR1cm5WYWx1ZUdQUik7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX2NoZWNrX2hhc19pbnN0
YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQordm9pZCBKSVQ6OmVtaXRfb3Bf
b3ZlcnJpZGVzX2hhc19pbnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ewotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAg
ICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgY29u
c3RydWN0b3IgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworICAgIGludCBoYXNJ
bnN0YW5jZVZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKworICAgIGVt
aXRHZXRWaXJ0dWFsUmVnaXN0ZXIoaGFzSW5zdGFuY2VWYWx1ZSwgcmVnVDApOwogCi0gICAgZW1p
dEdldFZpcnR1YWxSZWdpc3RlcihiYXNlVmFsLCByZWdUMCk7CisgICAgLy8gV2UgZG9uJ3QganVt
cCBpZiB3ZSBrbm93IHdoYXQgU3ltYm9sLmhhc0luc3RhbmNlIHdvdWxkIGRvLgorICAgIEp1bXAg
Y3VzdG9taGFzSW5zdGFuY2VWYWx1ZSA9IGJyYW5jaFB0cihOb3RFcXVhbCwgcmVnVDAsIFRydXN0
ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5z
dGFuY2VTeW1ib2xGdW5jdGlvbigpKSk7CiAKLSAgICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgaXMg
YSBjZWxsLgotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCwgYmFzZVZhbCk7
CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihjb25zdHJ1Y3RvciwgcmVnVDApOwogCi0gICAg
Ly8gQ2hlY2sgdGhhdCBiYXNlVmFsICdJbXBsZW1lbnRzSGFzSW5zdGFuY2UnLgotICAgIGFkZFNs
b3dDYXNlKGJyYW5jaFRlc3Q4KFplcm8sIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6dHlwZUluZm9G
bGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2Up
KSk7CisgICAgLy8gQ2hlY2sgdGhhdCBjb25zdHJ1Y3RvciAnSW1wbGVtZW50c0hhc0luc3RhbmNl
JyBpLmUuIHRoZSBvYmplY3QgaXMgYSBDLUFQSSB1c2VyIG9yIGEgYm91bmQgZnVuY3Rpb24uCisg
ICAgdGVzdDgoWmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0
KCkpLCBUcnVzdGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSksIHJlZ1QwKTsK
KyAgICBlbWl0VGFnQm9vbChyZWdUMCk7CisgICAgSnVtcCBkb25lID0ganVtcCgpOworCisgICAg
Y3VzdG9taGFzSW5zdGFuY2VWYWx1ZS5saW5rKHRoaXMpOworICAgIG1vdmUoVHJ1c3RlZEltbTMy
KFZhbHVlVHJ1ZSksIHJlZ1QwKTsKKworICAgIGRvbmUubGluayh0aGlzKTsKKyAgICBlbWl0UHV0
VmlydHVhbFJlZ2lzdGVyKGRzdCk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2Yo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTEyOSw3ICsxNDEsNyBAQCB2b2lk
IEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcih2YWx1ZSwgcmVnVDIpOwogICAgIGVtaXRHZXRW
aXJ0dWFsUmVnaXN0ZXIocHJvdG8sIHJlZ1QxKTsKIAotICAgIC8vIENoZWNrIHRoYXQgcHJvdG8g
YXJlIGNlbGxzLiAgYmFzZVZhbCBtdXN0IGJlIGEgY2VsbCAtIHRoaXMgaXMgY2hlY2tlZCBieSBv
cF9jaGVja19oYXNfaW5zdGFuY2UuCisgICAgLy8gQ2hlY2sgdGhhdCBwcm90byBhcmUgY2VsbHMu
IGJhc2VWYWwgbXVzdCBiZSBhIGNlbGwgLSB0aGlzIGlzIGNoZWNrZWQgYnkgdGhlIGdldF9ieV9p
ZCBmb3IgU3ltYm9sLmhhc0luc3RhbmNlLgogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2Vs
bChyZWdUMiwgdmFsdWUpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMSwg
cHJvdG8pOwogCkBAIC0xNTcsNiArMTY5LDEyIEBAIHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNl
b2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0VmlydHVhbFJl
Z2lzdGVyKGRzdCk7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2ZfY3VzdG9tKElu
c3RydWN0aW9uKikKK3sKKyAgICAvLyBUaGlzIGFsd2F5cyBnb2VzIHRvIHNsb3cgcGF0aCBzaW5j
ZSB3ZSBleHBlY3QgaXQgdG8gYmUgcmFyZS4KKyAgICBhZGRTbG93Q2FzZShqdW1wKCkpOworfQor
CiB2b2lkIEpJVDo6ZW1pdF9vcF9pc191bmRlZmluZWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKQEAgLTgyOSwzMyArODQ3LDM0IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9uc3RyaWN0ZXEo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlCiAgICAgc2xv
d1BhdGhDYWxsLmNhbGwoKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX2NoZWNrX2hhc19p
bnN0YW5jZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VF
bnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordm9pZCBKSVQ6OmVtaXRTbG93X29wX2luc3RhbmNlb2Yo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
OwotICAgIGludCBiYXNlVmFsID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAg
ICBpbnQgcHJvdG8gPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCi0gICAgbGlu
a1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwgYmFzZVZhbCk7CisgICAgbGlua1Nsb3dDYXNlSWZO
b3RKU0NlbGwoaXRlciwgdmFsdWUpOworICAgIGxpbmtTbG93Q2FzZUlmTm90SlNDZWxsKGl0ZXIs
IHByb3RvKTsKICAgICBsaW5rU2xvd0Nhc2UoaXRlcik7CiAgICAgZW1pdEdldFZpcnR1YWxSZWdp
c3Rlcih2YWx1ZSwgcmVnVDApOwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoYmFzZVZhbCwg
cmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZSwgZHN0
LCByZWdUMCwgcmVnVDEpOwotCi0gICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBjdXJyZW50
SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKHBy
b3RvLCByZWdUMSk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mLCBkc3Qs
IHJlZ1QwLCByZWdUMSk7CiB9CiAKLXZvaWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImIGl0ZXIpCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfaW5zdGFuY2VvZl9jdXN0b20oSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVy
YXRvciYgaXRlcikKIHsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwot
ICAgIGludCBwcm90byA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50
IGNvbnN0cnVjdG9yID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQg
aGFzSW5zdGFuY2VWYWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQ7CiAKLSAg
ICBsaW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCB2YWx1ZSk7Ci0gICAgbGlua1Nsb3dDYXNl
SWZOb3RKU0NlbGwoaXRlciwgcHJvdG8pOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKICAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKHZhbHVlLCByZWdUMCk7Ci0gICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3Rlcihwcm90bywgcmVnVDEpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSW5zdGFu
Y2VPZiwgZHN0LCByZWdUMCwgcmVnVDEpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY29u
c3RydWN0b3IsIHJlZ1QxKTsKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGhhc0luc3RhbmNl
VmFsdWUsIHJlZ1QyKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkluc3RhbmNlT2ZDdXN0
b20sIHJlZ1QwLCByZWdUMSwgcmVnVDIpOworICAgIGVtaXRUYWdCb29sKHJldHVyblZhbHVlR1BS
KTsKKyAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGRzdCwgcmV0dXJuVmFsdWVHUFIpOwogfQog
CiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fbnVtYmVyKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggODk0NTVlZGNl
MDQ1NmJhZGY4ODhmYWEwMzA5ZGNhYjBkZTA3OGZjOC4uOGZjM2I5MjBmNThjMWY4YjYwMGNjZDhj
YzQ1MTJjMDNlZGU4ZTIwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bj
b2RlczMyXzY0LmNwcApAQCAtMTgzLDE3ICsxODMsMzEgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29w
X25ld19vYmplY3QoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dD
YXMKICAgICBlbWl0U3RvcmVDZWxsKGRzdCwgcmV0dXJuVmFsdWVHUFIpOwogfQogCi12b2lkIEpJ
VDo6ZW1pdF9vcF9jaGVja19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKK3ZvaWQgSklUOjplbWl0X29wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UoSW5zdHJ1Y3Rp
b24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBpbnQgYmFzZVZhbCA9IGN1cnJlbnRJbnN0
cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7CisgICAgaW50IGNvbnN0cnVjdG9yID0gY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZDsKKyAgICBpbnQgaGFzSW5zdGFuY2VWYWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlv
blszXS51Lm9wZXJhbmQ7CiAKLSAgICBlbWl0TG9hZFBheWxvYWQoYmFzZVZhbCwgcmVnVDApOwor
ICAgIGVtaXRMb2FkUGF5bG9hZChoYXNJbnN0YW5jZVZhbHVlLCByZWdUMCk7CisgICAgLy8gV2Ug
ZG9uJ3QganVtcCBpZiB3ZSBrbm93IHdoYXQgU3ltYm9sLmhhc0luc3RhbmNlIHdvdWxkIGRvLgor
ICAgIEp1bXAgaGFzSW5zdGFuY2VWYWx1ZU5vdENlbGwgPSBlbWl0SnVtcElmTm90SlNDZWxsKGhh
c0luc3RhbmNlVmFsdWUpOworICAgIEp1bXAgY3VzdG9taGFzSW5zdGFuY2VWYWx1ZSA9IGJyYW5j
aFB0cihOb3RFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9i
amVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpKSk7CisKKyAg
ICAvLyBXZSBrbm93IHRoYXQgY29uc3RydWN0b3IgaXMgYW4gb2JqZWN0IGZyb20gdGhlIHdheSBi
eXRlY29kZSBpcyBlbWl0dGVkIGZvciBpbnN0YW5jZW9mIGV4cHJlc3Npb25zLgorICAgIGVtaXRM
b2FkUGF5bG9hZChjb25zdHJ1Y3RvciwgcmVnVDApOworCisgICAgLy8gQ2hlY2sgdGhhdCBjb25z
dHJ1Y3RvciAnSW1wbGVtZW50c0hhc0luc3RhbmNlJyBpLmUuIHRoZSBvYmplY3QgaXMgYSBDLUFQ
SSB1c2VyIG9yIGEgYm91bmQgZnVuY3Rpb24uCisgICAgdGVzdDgoWmVybywgQWRkcmVzcyhyZWdU
MCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSksIHJlZ1QwKTsKKyAgICBKdW1wIGRvbmUgPSBqdW1wKCk7CisK
KyAgICBoYXNJbnN0YW5jZVZhbHVlTm90Q2VsbC5saW5rKHRoaXMpOworICAgIGN1c3RvbWhhc0lu
c3RhbmNlVmFsdWUubGluayh0aGlzKTsKKyAgICBtb3ZlKFRydXN0ZWRJbW0zMigxKSwgcmVnVDAp
OworCisgICAgZG9uZS5saW5rKHRoaXMpOworICAgIGVtaXRTdG9yZUJvb2woZHN0LCByZWdUMCk7
CiAKLSAgICAvLyBDaGVjayB0aGF0IGJhc2VWYWwgaXMgYSBjZWxsLgotICAgIGVtaXRKdW1wU2xv
d0Nhc2VJZk5vdEpTQ2VsbChiYXNlVmFsKTsKLSAgICAKLSAgICAvLyBDaGVjayB0aGF0IGJhc2VW
YWwgJ0ltcGxlbWVudHNIYXNJbnN0YW5jZScuCi0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoVGVzdDgo
WmVybywgQWRkcmVzcyhyZWdUMCwgSlNDZWxsOjp0eXBlSW5mb0ZsYWdzT2Zmc2V0KCkpLCBUcnVz
dGVkSW1tMzIoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSkpKTsKIH0KIAogdm9pZCBKSVQ6
OmVtaXRfb3BfaW5zdGFuY2VvZihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQpAQCAt
MjA3LDcgKzIyMSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0TG9hZFBheWxvYWQodmFsdWUsIHJlZ1QyKTsK
ICAgICBlbWl0TG9hZFBheWxvYWQocHJvdG8sIHJlZ1QxKTsKIAotICAgIC8vIENoZWNrIHRoYXQg
cHJvdG8gYXJlIGNlbGxzLiAgYmFzZVZhbCBtdXN0IGJlIGEgY2VsbCAtIHRoaXMgaXMgY2hlY2tl
ZCBieSBvcF9jaGVja19oYXNfaW5zdGFuY2UuCisgICAgLy8gQ2hlY2sgdGhhdCBwcm90byBhcmUg
Y2VsbHMuIGJhc2VWYWwgbXVzdCBiZSBhIGNlbGwgLSB0aGlzIGlzIGNoZWNrZWQgYnkgdGhlIGdl
dF9ieV9pZCBmb3IgU3ltYm9sLmhhc0luc3RhbmNlLgogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5v
dEpTQ2VsbCh2YWx1ZSk7CiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHByb3RvKTsK
ICAgICAKQEAgLTIzNSwyMCArMjQ5LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX2luc3RhbmNlb2Yo
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0U3RvcmVCb29sKGRzdCwg
cmVnVDApOwogfQogCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY2hlY2tfaGFzX2luc3RhbmNlKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRl
cmF0b3ImIGl0ZXIpCit2b2lkIEpJVDo6ZW1pdF9vcF9pbnN0YW5jZW9mX2N1c3RvbShJbnN0cnVj
dGlvbiopCiB7Ci0gICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7
Ci0gICAgaW50IHZhbHVlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBp
bnQgYmFzZVZhbCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7Ci0KLSAgICBsaW5r
U2xvd0Nhc2VJZk5vdEpTQ2VsbChpdGVyLCBiYXNlVmFsKTsKLSAgICBsaW5rU2xvd0Nhc2UoaXRl
cik7Ci0KLSAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDEsIHJlZ1QwKTsKLSAgICBlbWl0TG9hZChi
YXNlVmFsLCByZWdUMywgcmVnVDIpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ2hlY2tI
YXNJbnN0YW5jZSwgZHN0LCByZWdUMSwgcmVnVDAsIHJlZ1QzLCByZWdUMik7Ci0KLSAgICBlbWl0
SnVtcFNsb3dUb0hvdChqdW1wKCksIGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOwor
ICAgIC8vIFRoaXMgYWx3YXlzIGdvZXMgdG8gc2xvdyBwYXRoIHNpbmNlIHdlIGV4cGVjdCBpdCB0
byBiZSByYXJlLgorICAgIGFkZFNsb3dDYXNlKGp1bXAoKSk7CiB9CiAKIHZvaWQgSklUOjplbWl0
U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCkBAIC0yNjYsNiArMjcwLDIyIEBAIHZv
aWQgSklUOjplbWl0U2xvd19vcF9pbnN0YW5jZW9mKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFZlY3RvcjxTbG93Q2FzCiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5j
ZU9mLCBkc3QsIHJlZ1QxLCByZWdUMCwgcmVnVDMsIHJlZ1QyKTsKIH0KIAordm9pZCBKSVQ6OmVt
aXRTbG93X29wX2luc3RhbmNlb2ZfY3VzdG9tKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgaW50IGRz
dCA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IHZhbHVlID0gY3Vy
cmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKKyAgICBpbnQgY29uc3RydWN0b3IgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBoYXNJbnN0YW5jZVZhbHVlID0g
Y3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZDsKKworICAgIGxpbmtTbG93Q2FzZShpdGVy
KTsKKworICAgIGVtaXRMb2FkKHZhbHVlLCByZWdUMSwgcmVnVDApOworICAgIGVtaXRMb2FkUGF5
bG9hZChjb25zdHJ1Y3RvciwgcmVnVDIpOworICAgIGVtaXRMb2FkKGhhc0luc3RhbmNlVmFsdWUs
IHJlZ1Q0LCByZWdUMyk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25JbnN0YW5jZU9mQ3Vz
dG9tLCByZWdUMSwgcmVnVDAsIHJlZ1QyLCByZWdUNCwgcmVnVDMpOworICAgIGVtaXRTdG9yZUJv
b2woZHN0LCByZXR1cm5WYWx1ZUdQUik7Cit9CisKIHZvaWQgSklUOjplbWl0X29wX2lzX3VuZGVm
aW5lZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGludCBkc3QgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggZWIxODdiMjgwYWEwNDRmMDI0NDM3NGY3MTBlYjg4
YTUwZWZlMjA4YS4uNGFhYmZmMTBlNTgwODA5Yjg2ZGRkNTc2ZjFhNjBhM2Q4OGIyYjlkOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xNDg3LDI1
ICsxNDg3LDE5IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvCiAgICAgICAgIHByb2ZpbGVyLT53
aWxsRXhlY3V0ZShleGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tIYXNJbnN0YW5jZShFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2VWYWwpCitpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFuY2VP
ZkN1c3RvbShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNP
YmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJh
Y2VyKCZ2bSwgZXhlYyk7CiAKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSk7Ci0gICAgSlNWYWx1ZSBiYXNlVmFsID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRCYXNlVmFsKTsKLQotICAgIGlmIChiYXNlVmFsLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgSlNP
YmplY3QqIGJhc2VPYmplY3QgPSBhc09iamVjdChiYXNlVmFsKTsKLSAgICAgICAgQVNTRVJUKCFi
YXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT50eXBlSW5mbygpLmltcGxlbWVudHNEZWZhdWx0SGFz
SW5zdGFuY2UoKSk7Ci0gICAgICAgIGlmIChiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT50eXBl
SW5mbygpLmltcGxlbWVudHNIYXNJbnN0YW5jZSgpKSB7Ci0gICAgICAgICAgICBib29sIHJlc3Vs
dCA9IGJhc2VPYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Y3VzdG9tSGFzSW5zdGFuY2UoYmFzZU9i
amVjdCwgZXhlYywgdmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Jvb2xlYW4ocmVzdWx0KSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgSlNWYWx1ZSBoYXNJbnN0
YW5jZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRIYXNJbnN0YW5jZSk7CiAKLSAgICB2
bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVy
cm9yKGV4ZWMsIGJhc2VWYWwpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
KSk7CisgICAgQVNTRVJUKGhhc0luc3RhbmNlVmFsdWUgIT0gZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLT5mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpIHx8ICFjb25z
dHJ1Y3Rvci0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0
YW5jZSgpKTsKKworICAgIGlmIChjb25zdHJ1Y3Rvci0+aGFzSW5zdGFuY2UoZXhlYywgdmFsdWUs
IGhhc0luc3RhbmNlVmFsdWUpKQorICAgICAgICByZXR1cm4gMTsKKyAgICByZXR1cm4gMDsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCBkNDQ1
NzBiN2M5NmVmNGMzMjAyOTQ0MDU2YWI2YTQzNWJhZmIxYzlhLi43MGUzZmM4MzcyYjY0OWExMjY4
MjBiZmJiNjJlMDVkMTk3ZDczMGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaApAQCAtMTc2LDYgKzE3Niw3IEBAIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFU
SU9OICgqWl9KSVRPcGVyYXRpb25fRUMpKEV4ZWNTdGF0ZSosIEpTQ2VsbCopOwogdHlwZWRlZiBp
bnQzMl90IEpJVF9PUEVSQVRJT04gKCpaX0pJVE9wZXJhdGlvbl9FR0MpKEV4ZWNTdGF0ZSosIEpT
R2xvYmFsT2JqZWN0KiwgSlNDZWxsKik7CiB0eXBlZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAo
KlpfSklUT3BlcmF0aW9uX0VTSnNzKShFeGVjU3RhdGUqLCBzaXplX3QsIEpTU3RyaW5nKik7CiB0
eXBlZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAoKlpfSklUT3BlcmF0aW9uX0VKKShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAoKlpf
SklUT3BlcmF0aW9uX0VKT0opKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBKU09iamVjdCos
IEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgaW50MzJfdCBKSVRfT1BFUkFUSU9OICgqWl9KSVRP
cGVyYXRpb25fRUpaKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCk7CiB0eXBl
ZGVmIGludDMyX3QgSklUX09QRVJBVElPTiAoKlpfSklUT3BlcmF0aW9uX0VKWlopKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90LCBpbnQzMl90KTsKIHR5cGVkZWYgc2l6ZV90IEpJ
VF9PUEVSQVRJT04gKCpTX0pJVE9wZXJhdGlvbl9FQ0MpKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpT
Q2VsbCopOwpAQCAtMzI5LDcgKzMzMCw2IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXNoRnVuY3Rpb25OYW1lU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3ltYm9sVGFiCiB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RG
X0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHJvZmlsZVdpbGxDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBX
VEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNr
SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGJh
c2VWYWwpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVS
TkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVy
aWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKQEAgLTM1OCw2ICszNTgsNyBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uSW5pdEdsb2JhbENvbnN0KEV4ZWNTdGF0ZSosIEluc3RydWN0aW9u
Kik7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRXhjZXB0aW9uRnV6eihFeGVjU3RhdGUq
KTsKIAogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNrSWZFeGNlcHRpb25Jc1Vu
Y2F0Y2hhYmxlQW5kTm90aWZ5UHJvZmlsZXIoRXhlY1N0YXRlKik7CitpbnQzMl90IEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEhhc0luc3RhbmNlKSBXVEZfSU5URVJOQUw7CiAKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uSGFzR2VuZXJpY1Byb3BlcnR5KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBKU0NlbGwqKTsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFz
SW5kZXhlZFByb3BlcnR5KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIGludDMyX3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAppbmRleCAwMTkyN2I2MzA0YzIzYzBkNWZi
ODQ0NjdmN2IzOThhOGE0YzFlZTNhLi5mMzNjMGIzNWYwYzZjZTI4YmY5ZjNkMzgyYTA5MTFiMGZh
MTY4Njk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRh
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmgi
CiAjaW5jbHVkZSAiT3Bjb2RlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKKyNpbmNs
dWRlICJXcml0ZUJhcnJpZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7
CiAKQEAgLTE1NCw2ICsxNTUsNyBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKFZNJiB2
bSkKICAgICBBU1NFUlQoRnVuY3Rpb25Db2RlID09IDIpOwogICAgIEFTU0VSVChNb2R1bGVDb2Rl
ID09IDMpOwogCisgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2FzdDxwdHJkaWZmX3Q+KChyZWlu
dGVycHJldF9jYXN0PFdyaXRlQmFycmllcjxKU0NlbGw+Kj4oMHg0MDAwKS0+c2xvdCgpKSkgLSAw
eDQwMDApKTsKICAgICBzdGF0aWNfYXNzZXJ0KFB1dEJ5SWRQcmltYXJ5VHlwZU1hc2sgPT0gMHg2
LCAiTExJbnQgYXNzdW1lcyBQdXRCeUlkUHJpbWFyeVR5cGVNYXNrIGlzID09IDB4NiIpOwogICAg
IHN0YXRpY19hc3NlcnQoUHV0QnlJZFByaW1hcnlUeXBlU2Vjb25kYXJ5ID09IDB4MCwgIkxMSW50
IGFzc3VtZXMgUHV0QnlJZFByaW1hcnlUeXBlU2Vjb25kYXJ5IGlzID09IDB4MCIpOwogICAgIHN0
YXRpY19hc3NlcnQoUHV0QnlJZFByaW1hcnlUeXBlT2JqZWN0V2l0aFN0cnVjdHVyZSA9PSAweDIs
ICJMTEludCBhc3N1bWVzIFB1dEJ5SWRQcmltYXJ5VHlwZU9iamVjdFdpdGhTdHJ1Y3R1cmUgaXMg
PT0gMHgyIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRT
bG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAppbmRleCA2MTI3N2E3NmUwM2Y3YjU0YWFiNGE2YzZmOGY3Y2IxYjM5ZTU5Yjk1Li4wYTQ3
MWNiMGU0MmY1OGE0NDY4MjNiN2YxYjNhYWJkMmNlNDE5MGNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTUyMiwzMCArNTIyLDI4IEBA
IExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9uZXdfcmVnZXhwKQogICAgIExMSU5UX1JF
VFVSTihSZWdFeHBPYmplY3Q6OmNyZWF0ZSh2bSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5yZWdFeHBTdHJ1Y3R1cmUoKSwgcmVnRXhwKSk7CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNM
KHNsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93
X3BhdGhfaW5zdGFuY2VvZikKIHsKICAgICBMTElOVF9CRUdJTigpOwotICAgIAogICAgIEpTVmFs
dWUgdmFsdWUgPSBMTElOVF9PUF9DKDIpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIGJhc2VWYWwg
PSBMTElOVF9PUF9DKDMpLmpzVmFsdWUoKTsKLSAgICBpZiAoYmFzZVZhbC5pc09iamVjdCgpKSB7
Ci0gICAgICAgIEpTT2JqZWN0KiBiYXNlT2JqZWN0ID0gYXNPYmplY3QoYmFzZVZhbCk7Ci0gICAg
ICAgIEFTU0VSVCghYmFzZU9iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkuaW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSgpKTsKLSAgICAgICAgaWYgKGJhc2VPYmplY3QtPnN0cnVjdHVy
ZSgpLT50eXBlSW5mbygpLmltcGxlbWVudHNIYXNJbnN0YW5jZSgpKSB7Ci0gICAgICAgICAgICBK
U1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihiYXNlT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5jdXN0
b21IYXNJbnN0YW5jZShiYXNlT2JqZWN0LCBleGVjLCB2YWx1ZSkpOwotICAgICAgICAgICAgTExJ
TlRfUkVUVVJOX1dJVEhfUENfQURKVVNUTUVOVChyZXN1bHQsIHBjWzRdLnUub3BlcmFuZCk7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgTExJTlRfVEhST1coY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQ
YXJhbWV0ZXJFcnJvcihleGVjLCBiYXNlVmFsKSk7CisgICAgSlNWYWx1ZSBwcm90byA9IExMSU5U
X09QX0MoMykuanNWYWx1ZSgpOworICAgIEFTU0VSVCghdmFsdWUuaXNPYmplY3QoKSB8fCAhcHJv
dG8uaXNPYmplY3QoKSk7CisgICAgTExJTlRfUkVUVVJOKGpzQm9vbGVhbihKU09iamVjdDo6ZGVm
YXVsdEhhc0luc3RhbmNlKGV4ZWMsIHZhbHVlLCBwcm90bykpKTsKIH0KIAotTExJTlRfU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX2luc3RhbmNlb2YpCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93
X3BhdGhfaW5zdGFuY2VvZl9jdXN0b20pCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKKwogICAgIEpT
VmFsdWUgdmFsdWUgPSBMTElOVF9PUF9DKDIpLmpzVmFsdWUoKTsKLSAgICBKU1ZhbHVlIHByb3Rv
ID0gTExJTlRfT1BfQygzKS5qc1ZhbHVlKCk7Ci0gICAgQVNTRVJUKCF2YWx1ZS5pc09iamVjdCgp
IHx8ICFwcm90by5pc09iamVjdCgpKTsKLSAgICBMTElOVF9SRVRVUk4oanNCb29sZWFuKEpTT2Jq
ZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIHByb3RvKSkpOworICAgIEpTVmFs
dWUgY29uc3RydWN0b3IgPSBMTElOVF9PUF9DKDMpLmpzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGhh
c0luc3RhbmNlVmFsdWUgPSBMTElOVF9PUF9DKDQpLmpzVmFsdWUoKTsKKworICAgIEFTU0VSVChj
b25zdHJ1Y3Rvci5pc09iamVjdCgpKTsKKyAgICBBU1NFUlQoaGFzSW5zdGFuY2VWYWx1ZSAhPSBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJv
bEZ1bmN0aW9uKCkgfHwgIWNvbnN0cnVjdG9yLmdldE9iamVjdCgpLT5zdHJ1Y3R1cmUoKS0+dHlw
ZUluZm8oKS5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpOworCisgICAgSlNWYWx1ZSBy
ZXN1bHQgPSBqc0Jvb2xlYW4oY29uc3RydWN0b3IuZ2V0T2JqZWN0KCktPmhhc0luc3RhbmNlKGV4
ZWMsIHZhbHVlLCBoYXNJbnN0YW5jZVZhbHVlKSk7CisgICAgTExJTlRfUkVUVVJOKHJlc3VsdCk7
CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfaWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCmluZGV4IDI3MTMyNGIxODQ1
M2Q3MmRjOGI3NjE4MGJhMDMwNGFiNDU2NTk1OTcuLjBkNWM4ZGE0M2IwMDlhYjk3YWIyZjcyYTg3
NWMxNGViNTY2MDM5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNs
b3dQYXRocy5oCkBAIC02Nyw4ICs2Nyw4IEBAIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChz
bG93X3BhdGhfbmV3X2FycmF5KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfbmV3X2FycmF5X3dpdGhfc2l6ZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX25ld19hcnJheV9idWZmZXIpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9uZXdfcmVnZXhwKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfY2hlY2tfaGFzX2luc3RhbmNlKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfaW5zdGFuY2VvZik7CitMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X2luc3RhbmNlb2ZfY3VzdG9tKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfZ2V0X2J5X2lkKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0
X2FyZ3VtZW50c19sZW5ndGgpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9wdXRfYnlfaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCBjNWE4N2UzYjFkMzhiZTMzNjQwZWU2
MmJmYmE2YjU4YzFkZWU2YjVmLi40YTNhYWNmMDk0ODhkNTlhNjY1ODZmZmQyZmIwMzVjYTNkNzIy
NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtMTE3NSwxNyArMTE3NSwzNSBAQCBfbGxpbnRfb3Bf
Yml0b3I6CiAgICAgICAgIDUpCiAKIAotX2xsaW50X29wX2NoZWNrX2hhc19pbnN0YW5jZToKK19s
bGludF9vcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBsb2FkaSAxMltQQ10sIHQxCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDEs
IENlbGxUYWcsIHQwLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdykKLSAgICBidGJ6IEpTQ2VsbDo6
bV9mbGFnc1t0MF0sIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UsIC5vcENoZWNrSGFzSW5z
dGFuY2VTbG93Ci0gICAgZGlzcGF0Y2goNSkKIAotLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3c6Ci0g
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKQotICAg
IGRpc3BhdGNoKDApCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQzKQorICAgIHN0b3Jl
aSBCb29sZWFuVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MywgOF0KIAorICAgICMgRmlyc3QgY2hlY2sg
aWYgaGFzSW5zdGFuY2VWYWx1ZSBpcyB0aGUgb25lIG9uIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1i
b2wuaGFzSW5zdGFuY2VdCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDMsIHQwKQorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHQwLCBDZWxsVGFnLCB0MiwgLm9wT3ZlcnJpZGVz
aGFzSW5zdGFuY2VWYWx1ZU5vdENlbGwpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwg
dDEsIHQyKQorICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAub3BPdmVycmlkZXNoYXNJbnN0YW5jZVZh
bHVlTm90Q2VsbAorCisgICAgIyBXZSBkb24ndCBuZWVkIGhhc0luc3RhbmNlVmFsdWUncyB0YWcg
cmVnaXN0ZXIgYW55bW9yZS4KKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKKyAgICBsb2Fk
cCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QxXSwgdDEKKyAgICBsb2FkcCBKU0dsb2JhbE9i
amVjdDo6bV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvblt0MV0sIHQxCisg
ICAgYmluZXEgdDEsIHQyLCAub3BPdmVycmlkZXNoYXNJbnN0YW5jZVZhbHVlTm90RGVmYXVsdAor
CisgICAgIyBXZSBrbm93IHRoZSBjb25zdHJ1Y3RvciBpcyBhIGNlbGwuCisgICAgbG9hZGlzRnJv
bUluc3RydWN0aW9uKDIsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkVW5j
aGVja2VkKHQwLCB0MSkKKyAgICB0YnogSlNDZWxsOjptX2ZsYWdzW3QxXSwgSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSwgdDAKKyAgICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0
MywgOF0KKyAgICBkaXNwYXRjaCg0KQorCisub3BPdmVycmlkZXNoYXNJbnN0YW5jZVZhbHVlTm90
Q2VsbDoKKy5vcE92ZXJyaWRlc2hhc0luc3RhbmNlVmFsdWVOb3REZWZhdWx0OgorICAgIHN0b3Jl
aSAxLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKIAogX2xsaW50
X29wX2luc3RhbmNlb2Y6CiAgICAgdHJhY2VFeGVjdXRpb24oKQpAQCAtMTIxNSw2ICsxMjMzLDEx
IEBAIF9sbGludF9vcF9pbnN0YW5jZW9mOgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX2luc3RhbmNlb2YpCiAgICAgZGlzcGF0Y2goNCkKIAorX2xsaW50X29wX2luc3RhbmNlb2Zf
Y3VzdG9tOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9pbnN0YW5jZW9mX2N1c3RvbSkKKyAgICBkaXNwYXRjaCg1KQorCiAKIF9sbGludF9v
cF9pc191bmRlZmluZWQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA2OWYz
ZTBiNWVhMDkxZDQ0MTZiNGFhNmRhY2Y4YmVkZDE5OGEzMzMzLi5iY2IzNDQ3MTAzNzEyZmI0N2Jm
NTJmZDAzMjc2ZDYxOTJhMDU1MTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMTA2OSwxNiArMTA2OSwyNyBA
QCBfbGxpbnRfb3BfYml0b3I6CiAgICAgICAgIDUpCiAKIAotX2xsaW50X29wX2NoZWNrX2hhc19p
bnN0YW5jZToKK19sbGludF9vcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlOgogICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMSwgdDMpCisKICAgICBsb2FkaXNG
cm9tSW5zdHJ1Y3Rpb24oMywgdDEpCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDEs
IHQwLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdykKLSAgICBidGJ6IEpTQ2VsbDo6bV9mbGFnc1t0
MF0sIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93
Ci0gICAgZGlzcGF0Y2goNSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCkKKyAg
ICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFs
T2JqZWN0W3QyXSwgdDIKKyAgICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9mdW5jdGlvblByb3Rv
SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvblt0Ml0sIHQyCisgICAgYnFuZXEgdDAsIHQyLCAub3BP
dmVycmlkZXNIYXNJbnN0YW5jZU5vdERlZmF1bHRTeW1ib2wKIAotLm9wQ2hlY2tIYXNJbnN0YW5j
ZVNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3Rh
bmNlKQotICAgIGRpc3BhdGNoKDApCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDIsIHQxKQor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAgIHRieiBKU0NlbGw6Om1fZmxh
Z3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCB0MQorICAgIG9ycSBWYWx1ZUZh
bHNlLCB0MQorICAgIHN0b3JlcSB0MSwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKKwor
Lm9wT3ZlcnJpZGVzSGFzSW5zdGFuY2VOb3REZWZhdWx0U3ltYm9sOgorICAgIHN0b3JlcSBWYWx1
ZVRydWUsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQpCiAKIAogX2xsaW50X29wX2luc3Rh
bmNlb2Y6CkBAIC0xMTA5LDYgKzExMjAsMTAgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW5zdGFuY2VvZikKICAgICBkaXNwYXRjaCg0
KQogCitfbGxpbnRfb3BfaW5zdGFuY2VvZl9jdXN0b206CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2ZfY3VzdG9tKQorICAg
IGRpc3BhdGNoKDUpCiAKIF9sbGludF9vcF9pc191bmRlZmluZWQ6CiAgICAgdHJhY2VFeGVjdXRp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRl
bnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmgKaW5kZXggOGNkN2JjYThiYWIzNTEwZTNiODc1Y2QwMDE4NGM3YjAwNDIwMzg4ZC4uM2Jl
ODliODM1N2M2YTg3MTcwNDA1MmE4YzEyM2VlZmU2NzE4NWRjZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yNTAsNyArMjUw
LDYgQEAKICAgICBtYWNybyh5aWVsZCkKIAogI2RlZmluZSBKU0NfQ09NTU9OX1BSSVZBVEVfSURF
TlRJRklFUlNfRUFDSF9XRUxMX0tOT1dOX1NZTUJPTF9OT1RfSU1QTEVNRU5URURfWUVUKG1hY3Jv
KVwKLSAgICBtYWNybyhoYXNJbnN0YW5jZSkgXAogICAgIG1hY3JvKGlzQ29uY2F0U3ByZWFkYWJs
ZSkgXAogICAgIG1hY3JvKG1hdGNoKSBcCiAgICAgbWFjcm8ocmVwbGFjZSkgXApAQCAtMjYwLDYg
KzI1OSw3IEBACiAgICAgbWFjcm8odG9QcmltaXRpdmUpCiAKICNkZWZpbmUgSlNDX0NPTU1PTl9Q
UklWQVRFX0lERU5USUZJRVJTX0VBQ0hfV0VMTF9LTk9XTl9TWU1CT0wobWFjcm8pIFwKKyAgICBt
YWNybyhoYXNJbnN0YW5jZSkgXAogICAgIG1hY3JvKGl0ZXJhdG9yKSBcCiAgICAgbWFjcm8odW5z
Y29wYWJsZXMpIFwKICAgICBtYWNybyh0b1N0cmluZ1RhZykKQEAgLTM0NSw2ICszNDUsOSBAQAog
ICAgIG1hY3JvKE51bWJlckZvcm1hdCkgXAogICAgIG1hY3JvKG5ld1RhcmdldExvY2FsKSBcCiAg
ICAgbWFjcm8oZGVyaXZlZENvbnN0cnVjdG9yKSBcCisgICAgbWFjcm8oaXNCb3VuZEZ1bmN0aW9u
KSBcCisgICAgbWFjcm8oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKSBcCisgICAgbWFjcm8oaW5z
dGFuY2VPZikgXAogCiAKIG5hbWVzcGFjZSBKU0MgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAppbmRleCAwMTMxYjlmMWMzZDMzNGJh
ZTA1YzFjOWI2MDJiMGI5ZDUyOWYzYTMwLi4xOTZiZTJlMWMzZGNlNTFiYTJiNjJlZjg4N2U3YmNj
ZThlMWY5MjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNl
cHRpb25IZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNl
cHRpb25IZWxwZXJzLmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHN0YXRpYyBTdHJpbmcgaW52YWxp
ZFBhcmFtZXRlckluU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2Us
IGNvCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcocmlnaHRIYW5kU2lkZSwgIiBpcyBub3QgYW4gT2Jq
ZWN0LiAoZXZhbHVhdGluZyAnIiwgc291cmNlVGV4dCwgIicpIik7CiB9CiAKLXN0YXRpYyBTdHJp
bmcgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRlcihjb25zdCBTdHJpbmcm
IG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSwg
RXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNlKQor
aW5saW5lIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKGNv
bnN0IFN0cmluZyYgY29udGVudCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbE1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5cGUsIEVycm9ySW5zdGFuY2U6OlNvdXJjZVRl
eHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5jZSkKIHsKICAgICBpZiAob2NjdXJyZW5jZSA9
PSBFcnJvckluc3RhbmNlOjpGb3VuZEFwcHJveGltYXRlU291cmNlKQogICAgICAgICByZXR1cm4g
ZGVmYXVsdEFwcHJveGltYXRlU291cmNlRXJyb3Iob3JpZ2luYWxNZXNzYWdlLCBzb3VyY2VUZXh0
KTsKQEAgLTIyMiw3ICsyMjIsMTcgQEAgc3RhdGljIFN0cmluZyBpbnZhbGlkUGFyYW1ldGVySW5z
dGFuY2VvZlNvdXJjZUFwcGVuZGVyKGNvbnN0IFN0cmluZyYgb3JpZ2luYWxNZXMKIAogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBpbnN0YW5jZW9mTGVuZ3RoID0gMTA7CiAgICAgU3RyaW5nIHJp
Z2h0SGFuZFNpZGUgPSBzb3VyY2VUZXh0LnN1YnN0cmluZyhpbnN0YW5jZW9mSW5kZXggKyBpbnN0
YW5jZW9mTGVuZ3RoKS5zaW1wbGlmeVdoaXRlU3BhY2UoKTsKLSAgICByZXR1cm4gbWFrZVN0cmlu
ZyhyaWdodEhhbmRTaWRlLCAiIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnIiwgc291
cmNlVGV4dCwgIicpIik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcocmlnaHRIYW5kU2lkZSwgY29u
dGVudCwgIi4gKGV2YWx1YXRpbmcgJyIsIHNvdXJjZVRleHQsICInKSIpOworfQorCitzdGF0aWMg
U3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mTm90RnVuY3Rpb25Tb3VyY2VBcHBlbmRl
cihjb25zdCBTdHJpbmcmIG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0
LCBSdW50aW1lVHlwZSBydW50aW1lVHlwZSwgRXJyb3JJbnN0YW5jZTo6U291cmNlVGV4dFdoZXJl
RXJyb3JPY2N1cnJlZCBvY2N1cnJlbmNlKQoreworICAgIHJldHVybiBpbnZhbGlkUGFyYW1ldGVy
SW5zdGFuY2VvZlNvdXJjZUFwcGVuZGVyKFdURjo6bWFrZVN0cmluZygiIGlzIG5vdCBhIGZ1bmN0
aW9uIiksIG9yaWdpbmFsTWVzc2FnZSwgc291cmNlVGV4dCwgcnVudGltZVR5cGUsIG9jY3VycmVu
Y2UpOworfQorCitzdGF0aWMgU3RyaW5nIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9maGFzSW5z
dGFuY2VWYWx1ZU5vdEZ1bmN0aW9uU291cmNlQXBwZW5kZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5h
bE1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVGV4dCwgUnVudGltZVR5cGUgcnVudGltZVR5
cGUsIEVycm9ySW5zdGFuY2U6OlNvdXJjZVRleHRXaGVyZUVycm9yT2NjdXJyZWQgb2NjdXJyZW5j
ZSkKK3sKKyAgICByZXR1cm4gaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZTb3VyY2VBcHBlbmRl
cihXVEY6Om1ha2VTdHJpbmcoIltTeW1ib2wuaGFzSW5zdGFuY2VdIGlzIG5vdCBhIGZ1bmN0aW9u
LCB1bmRlZmluZWQsIG9yIG51bGwiKSwgb3JpZ2luYWxNZXNzYWdlLCBzb3VyY2VUZXh0LCBydW50
aW1lVHlwZSwgb2NjdXJyZW5jZSk7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVFcnJvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXJyb3JJbnN0
YW5jZTo6U291cmNlQXBwZW5kZXIgYXBwZW5kZXIpCkBAIC0yNDUsOSArMjU1LDE0IEBAIEpTT2Jq
ZWN0KiBjcmVhdGVJbnZhbGlkSW5QYXJhbWV0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgdmFsdWUpCiAgICAgcmV0dXJuIGNyZWF0ZUVycm9yKGV4ZWMsIHZhbHVlLCBtYWtlU3RyaW5n
KCJpcyBub3QgYW4gT2JqZWN0LiIpLCBpbnZhbGlkUGFyYW1ldGVySW5Tb3VyY2VBcHBlbmRlcik7
CiB9CiAKLUpTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5z
dGFuY2VvZlBhcmFtZXRlckVycm9yTm90RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQoreworICAgIHJldHVybiBjcmVhdGVFcnJvcihleGVjLCB2YWx1ZSwgbWFrZVN0cmlu
ZygiIGlzIG5vdCBhIGZ1bmN0aW9uIiksIGludmFsaWRQYXJhbWV0ZXJJbnN0YW5jZW9mTm90RnVu
Y3Rpb25Tb3VyY2VBcHBlbmRlcik7Cit9CisKK0pTT2JqZWN0KiBjcmVhdGVJbnZhbGlkSW5zdGFu
Y2VvZlBhcmFtZXRlckVycm9yaGFzSW5zdGFuY2VWYWx1ZU5vdEZ1bmN0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywgdmFs
dWUsIG1ha2VTdHJpbmcoImlzIG5vdCBhIGZ1bmN0aW9uLiIpLCBpbnZhbGlkUGFyYW1ldGVySW5z
dGFuY2VvZlNvdXJjZUFwcGVuZGVyKTsKKyAgICByZXR1cm4gY3JlYXRlRXJyb3IoZXhlYywgdmFs
dWUsIG1ha2VTdHJpbmcoIltTeW1ib2wuaGFzSW5zdGFuY2VdIGlzIG5vdCBhIGZ1bmN0aW9uLCB1
bmRlZmluZWQsIG9yIG51bGwiKSwgaW52YWxpZFBhcmFtZXRlckluc3RhbmNlb2ZoYXNJbnN0YW5j
ZVZhbHVlTm90RnVuY3Rpb25Tb3VyY2VBcHBlbmRlcik7CiB9CiAKIEpTT2JqZWN0KiBjcmVhdGVO
b3RBQ29uc3RydWN0b3JFcnJvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmgKaW5kZXgg
YzZiYTAyZTNmYmIwMzNiMjFmMWQ5M2ExMWVhN2NkOWQzMGYxOTM5YS4uNTRjNWQ3MDk2NDJkMDI5
Yzk0MGQyMWY2N2ViYTMxMTgzMGE3YjM4OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuaApAQCAtNDUsNyArNDUsOCBAQCBKU09iamVjdCog
Y3JlYXRlVERaRXJyb3IoRXhlY1N0YXRlKik7CiBKU09iamVjdCogY3JlYXRlTm90QW5PYmplY3RF
cnJvcihFeGVjU3RhdGUqLCBKU1ZhbHVlKTsKIEpTT2JqZWN0KiBjcmVhdGVJbnZhbGlkRnVuY3Rp
b25BcHBseVBhcmFtZXRlckVycm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwogSlNPYmplY3QqIGNy
ZWF0ZUludmFsaWRJblBhcmFtZXRlckVycm9yKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwotSlNPYmpl
Y3QqIGNyZWF0ZUludmFsaWRJbnN0YW5jZW9mUGFyYW1ldGVyRXJyb3IoRXhlY1N0YXRlKiwgSlNW
YWx1ZSk7CitKU09iamVjdCogY3JlYXRlSW52YWxpZEluc3RhbmNlb2ZQYXJhbWV0ZXJFcnJvck5v
dEZ1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOworSlNPYmplY3QqIGNyZWF0ZUludmFsaWRJ
bnN0YW5jZW9mUGFyYW1ldGVyRXJyb3JoYXNJbnN0YW5jZVZhbHVlTm90RnVuY3Rpb24oRXhlY1N0
YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlTm90QUNvbnN0cnVjdG9yRXJyb3IoRXhl
Y1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlTm90QUZ1bmN0aW9uRXJyb3IoRXhl
Y1N0YXRlKiwgSlNWYWx1ZSk7CiBKU09iamVjdCogY3JlYXRlRXJyb3JGb3JJbnZhbGlkR2xvYmFs
QXNzaWdubWVudChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCAyMjM3NWEy
M2Y1NmU4NWQ1Y2EyMjQwNzUxOTQ3NjU5ZTU5MTQ0YjJkLi42YjdhNWQ5YmZkYzViZjFkM2QwMjMz
NWI0ODUzMGM4MDkwYzJjZDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgRnVuY3Rp
b25Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CiAK
LXZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmFkZEZ1bmN0aW9uUHJvcGVydGllcyhFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTRnVuY3Rpb24qKiBjYWxsRnVu
Y3Rpb24sIEpTRnVuY3Rpb24qKiBhcHBseUZ1bmN0aW9uKQordm9pZCBGdW5jdGlvblByb3RvdHlw
ZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNGdW5jdGlvbioqIGNhbGxGdW5jdGlvbiwgSlNGdW5jdGlvbioqIGFw
cGx5RnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBoYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAKQEAgLTYyLDYgKzYyLDcgQEAgdm9pZCBGdW5jdGlv
blByb3RvdHlwZTo6YWRkRnVuY3Rpb25Qcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGcKIAogICAgICphcHBseUZ1bmN0aW9uID0gcHV0RGlyZWN0QnVpbHRpbkZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24odm0sIGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuYXBwbHlQdWJsaWNOYW1lKCksIGZ1bmN0aW9uUHJvdG90eXBlQXBwbHlD
b2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOwogICAgICpjYWxsRnVuY3Rpb24gPSBwdXREaXJl
Y3RCdWlsdGluRnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jYWxsUHVibGljTmFtZSgpLCBmdW5jdGlvblBy
b3RvdHlwZUNhbGxDb2RlR2VuZXJhdG9yKHZtKSwgRG9udEVudW0pOworICAgICpoYXNJbnN0YW5j
ZVN5bWJvbEZ1bmN0aW9uID0gcHV0RGlyZWN0QnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QsIHZtLnByb3BlcnR5TmFtZXMtPmhhc0luc3RhbmNlU3ltYm9sLCBmdW5jdGlvblByb3RvdHlw
ZVN5bWJvbEhhc0luc3RhbmNlQ29kZUdlbmVyYXRvcih2bSksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKIAogICAgIEpTRnVuY3Rpb24qIGJpbmRGdW5jdGlvbiA9IEpTRnVuY3Rp
b246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAxLCB2bS5wcm9wZXJ0eU5hbWVzLT5iaW5kLnN0
cmluZygpLCBmdW5jdGlvblByb3RvRnVuY0JpbmQpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5iaW5kLCBiaW5kRnVuY3Rpb24sIERvbnRFbnVt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlw
ZS5oCmluZGV4IDUyY2U4ZjExYzVkZDdkMTAzMTU1NjkwM2U1YWNhYjBkMmFkNGMwZjguLmFiZTUz
M2EzM2ExZjM3OGZlZGI4MjE0ZjU2Y2M1YWZlMGZhMWU2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtMzYsNyArMzYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgfQogCi0gICAgdm9pZCBh
ZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU0Z1bmN0
aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7CisgICAgdm9p
ZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBKU0Z1
bmN0aW9uKiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbiwgSlNGdW5j
dGlvbioqIGhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogCiAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90bykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAppbmRleCA4YzVjYzJlZDM5MDQ4MmVhYzJlNzc1YTRmMGMy
ZDJkNWM0Yzk5ZTYxLi4wZjA0OWY5MGZmYmU2YWI3M2I5MTdlOTExNzNlMmQxZjFiMjgxOTRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5j
cHAKQEAgLTc0LDYgKzc0LDIwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRG
dW5jdGlvbkNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjb25zdHJ1Y3QoZXhlYywgdGFyZ2V0RnVuY3Rpb24sIGNvbnN0cnVjdFR5cGUsIGNvbnN0
cnVjdERhdGEsIGFyZ3MpKTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpc0Jv
dW5kRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNWYWx1ZShzdGF0aWNfY2FzdDxib29sPihqc0R5bmFtaWNDYXN0PEpTQm91bmRGdW5jdGlv
bio+KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSkpKTsKK30KKworRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQor
eworICAgIEpTQm91bmRGdW5jdGlvbiogYm91bmRPYmplY3QgPSBqc0Nhc3Q8SlNCb3VuZEZ1bmN0
aW9uKj4oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIEpTVmFsdWUgdmFsdWUgPSBl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNCb29sZWFuKGJvdW5kT2JqZWN0LT50YXJnZXRGdW5jdGlvbigpLT5oYXNJbnN0YW5jZShleGVj
LCB2YWx1ZSkpKTsKK30KKworCiBKU0JvdW5kRnVuY3Rpb24qIEpTQm91bmRGdW5jdGlvbjo6Y3Jl
YXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIHRhcmdl
dEZ1bmN0aW9uLCBKU1ZhbHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBib3VuZEFyZ3MsIGludCBsZW5n
dGgsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBDb25zdHJ1Y3REYXRhIGNvbnN0cnVjdERh
dGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVu
Y3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5o
CmluZGV4IGFmMmE2MzIzZDUzNzFlMjA1NjBjMGYyNTU2Y2M1Yjg3ZjYyNTY4ZTkuLjA0MGVjYmY3
ODI2NzQyYzU3Zjc4OTA2YTE1NmEwNDg3ODc1OTI3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCkBAIC0zMiwxMSArMzIsMTMgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlv
bkNhbGwoRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVu
Y3Rpb25Db25zdHJ1Y3QoRXhlY1N0YXRlKik7CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGlzQm91bmRGdW5jdGlvbihFeGVjU3RhdGUqKTsKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKEV4ZWNTdGF0ZSopOwogCiBjbGFzcyBKU0JvdW5k
RnVuY3Rpb24gOiBwdWJsaWMgSlNGdW5jdGlvbiB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Z1
bmN0aW9uIEJhc2U7Ci0gICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
T3ZlcnJpZGVzSGFzSW5zdGFuY2UgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBjb25zdCBz
dGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNIYXNJbnN0YW5jZUZsYWcg
fCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHN0YXRpYyBKU0JvdW5kRnVuY3Rpb24qIGNy
ZWF0ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uLCBKU1Zh
bHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBib3VuZEFyZ3MsIGludCwgY29uc3QgU3RyaW5nJik7CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAKaW5kZXggZWNjODJiYTYyOGJmMTZmMjExNzlhMmM0OGRiYTczYWY3ZWU3MmE4MS4uODJmMjQx
MTZjYWEyNmM5NDIzZTVmYTAxYjllNDkyOWE0ODJiZjA2MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMjg2LDEyICsyODYsMTQg
QEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aW5pdChWTSYgdm0pCiAgICAgbV9pbnRlcm5hbEZ1bmN0
aW9uU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0
dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSk7CiAgICAgSlNGdW5jdGlv
biogY2FsbEZ1bmN0aW9uID0gMDsKICAgICBKU0Z1bmN0aW9uKiBhcHBseUZ1bmN0aW9uID0gMDsK
LSAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLT5hZGRGdW5jdGlvblByb3BlcnRpZXMoZXhlYywgdGhp
cywgJmNhbGxGdW5jdGlvbiwgJmFwcGx5RnVuY3Rpb24pOworICAgIEpTRnVuY3Rpb24qIGhhc0lu
c3RhbmNlU3ltYm9sRnVuY3Rpb24gPSAwOworICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPmFkZEZ1
bmN0aW9uUHJvcGVydGllcyhleGVjLCB0aGlzLCAmY2FsbEZ1bmN0aW9uLCAmYXBwbHlGdW5jdGlv
biwgJmhhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24pOwogICAgIG1fY2FsbEZ1bmN0aW9uLnNldCh2
bSwgdGhpcywgY2FsbEZ1bmN0aW9uKTsKICAgICBtX2FwcGx5RnVuY3Rpb24uc2V0KHZtLCB0aGlz
LCBhcHBseUZ1bmN0aW9uKTsKICAgICBtX2FycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbi5zZXQodm0s
IHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgdm0ucHJvcGVydHlOYW1lcy0+
dmFsdWVzLnN0cmluZygpLCBhcnJheVByb3RvRnVuY1ZhbHVlcykpOwogICAgIG1faW5pdGlhbGl6
ZVByb21pc2VGdW5jdGlvbi5zZXQodm0sIHRoaXMsIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5G
dW5jdGlvbih2bSwgcHJvbWlzZU9wZXJhdGlvbnNJbml0aWFsaXplUHJvbWlzZUNvZGVHZW5lcmF0
b3Iodm0pLCB0aGlzKSk7CiAgICAgbV9uZXdQcm9taXNlQ2FwYWJpbGl0eUZ1bmN0aW9uLnNldCh2
bSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBwcm9taXNlT3Bl
cmF0aW9uc05ld1Byb21pc2VDYXBhYmlsaXR5Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpKTsKKyAg
ICBtX2Z1bmN0aW9uUHJvdG9IYXNJbnN0YW5jZVN5bWJvbEZ1bmN0aW9uLnNldCh2bSwgdGhpcywg
aGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbik7CiAgICAgbV9udWxsR2V0dGVyRnVuY3Rpb24uc2V0
KHZtLCB0aGlzLCBOdWxsR2V0dGVyRnVuY3Rpb246OmNyZWF0ZSh2bSwgTnVsbEdldHRlckZ1bmN0
aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkp
KSk7CiAgICAgbV9udWxsU2V0dGVyRnVuY3Rpb24uc2V0KHZtLCB0aGlzLCBOdWxsU2V0dGVyRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgTnVsbFNldHRlckZ1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUodm0s
IHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKSk7CiAgICAgbV9vYmplY3RQcm90b3R5
cGUuc2V0KHZtLCB0aGlzLCBPYmplY3RQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgT2JqZWN0
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIGpzTnVsbCgpKSkpOwpAQCAtNTIx
LDYgKzUyMyw5IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgSlNGdW5jdGlvbiogcHJp
dmF0ZUZ1bmNUb0ludGVnZXIgPSBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0s
IGdsb2JhbE9iamVjdFRvSW50ZWdlckNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKTsKICAgICBKU0Z1
bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlMZW5ndGggPSBKU0Z1bmN0aW9uOjpjcmVhdGUo
dm0sIHRoaXMsIDAsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsK
ICAgICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0ID0gSlNGdW5jdGlvbjo6
Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1Nv
cnQpOworICAgIEpTRnVuY3Rpb24qIHByaXZhdGVGdW5jSXNCb3VuZEZ1bmN0aW9uID0gSlNGdW5j
dGlvbjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgaXNCb3VuZEZ1bmN0aW9uKTsKKyAg
ICBKU0Z1bmN0aW9uKiBwcml2YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiA9IEpTRnVu
Y3Rpb246OmNyZWF0ZSh2bSwgdGhpcywgMCwgU3RyaW5nKCksIGhhc0luc3RhbmNlQm91bmRGdW5j
dGlvbik7CisgICAgSlNGdW5jdGlvbiogcHJpdmF0ZUZ1bmNJbnN0YW5jZU9mID0gSlNGdW5jdGlv
bjo6Y3JlYXRlKHZtLCB0aGlzLCAwLCBTdHJpbmcoKSwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5j
ZU9mKTsKIAogICAgIEdsb2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxzW10gPSB7CiAgICAg
ICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5OYU4sIGpzTmFOKCksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKQEAgLTUzNSw2ICs1NDAsOSBAQCBwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93
ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+VHlwZUVycm9yUHJpdmF0ZU5hbWUsIG1fdHlwZUVycm9yQ29uc3RydWN0b3IuZ2V0
KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnR5cGVkQXJyYXlMZW5ndGhQcml2YXRlTmFtZSwg
cHJpdmF0ZUZ1bmNUeXBlZEFycmF5TGVuZ3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFk
T25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT50eXBl
ZEFycmF5U29ydFByaXZhdGVOYW1lLCBwcml2YXRlRnVuY1R5cGVkQXJyYXlTb3J0LCBEb250RW51
bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2
bS5wcm9wZXJ0eU5hbWVzLT5pc0JvdW5kRnVuY3Rpb25Qcml2YXRlTmFtZSwgcHJpdmF0ZUZ1bmNJ
c0JvdW5kRnVuY3Rpb24sIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAg
ICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmhhc0luc3RhbmNlQm91bmRG
dW5jdGlvblByaXZhdGVOYW1lLCBwcml2YXRlRnVuY0hhc0luc3RhbmNlQm91bmRGdW5jdGlvbiwg
RG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0
eUluZm8odm0ucHJvcGVydHlOYW1lcy0+aW5zdGFuY2VPZlByaXZhdGVOYW1lLCBwcml2YXRlRnVu
Y0luc3RhbmNlT2YsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPkJ1aWx0aW5Mb2dQcml2YXRlTmFt
ZSwgYnVpbHRpbkxvZywgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAg
ICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+QXJyYXlQcml2YXRlTmFtZSwg
YXJyYXlDb25zdHJ1Y3RvciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+TnVtYmVyUHJpdmF0ZU5h
bWUsIG51bWJlckNvbnN0cnVjdG9yLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CkBAIC04MzIsNiArODQwLDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBwZW5kKCZ0
aGlzT2JqZWN0LT5tX2FycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbik7CiAgICAgdmlzaXRvci5hcHBl
bmQoJnRoaXNPYmplY3QtPm1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbik7CiAgICAgdmlzaXRv
ci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fbmV3UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbik7Cisg
ICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fZnVuY3Rpb25Qcm90b0hhc0luc3RhbmNl
U3ltYm9sRnVuY3Rpb24pOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Rocm93
VHlwZUVycm9yR2V0dGVyU2V0dGVyKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+
bV9tb2R1bGVMb2FkZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaAppbmRleCAxZjAxNDU1YTg1ZDIxNDkxZGZlMjlkMzdlNTlmYzhiMDQ2ODhh
ZjU3Li4xNjk4ZGNlYmM2YTU4YTQ5NWM1NDdjNjY0NjljZjFlMDM3MzRmM2FkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTIyMiw2ICsy
MjIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fYXJyYXlQ
cm90b1ZhbHVlc0Z1bmN0aW9uOwogICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBtX2luaXRp
YWxpemVQcm9taXNlRnVuY3Rpb247CiAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IG1fbmV3
UHJvbWlzZUNhcGFiaWxpdHlGdW5jdGlvbjsKKyAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4g
bV9mdW5jdGlvblByb3RvSGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbjsKICAgICBXcml0ZUJhcnJp
ZXI8R2V0dGVyU2V0dGVyPiBtX3Rocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyOwogCiAgICAgV3Jp
dGVCYXJyaWVyPE1vZHVsZUxvYWRlck9iamVjdD4gbV9tb2R1bGVMb2FkZXI7CkBAIC00MzgsNiAr
NDM5LDcgQEAgcHVibGljOgogICAgIEpTRnVuY3Rpb24qIGFycmF5UHJvdG9WYWx1ZXNGdW5jdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uLmdldCgpOyB9CiAg
ICAgSlNGdW5jdGlvbiogaW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1faW5pdGlhbGl6ZVByb21pc2VGdW5jdGlvbi5nZXQoKTsgfQogICAgIEpTRnVuY3Rpb24qIG5l
d1Byb21pc2VDYXBhYmlsaXR5RnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX25ld1Byb21pc2VD
YXBhYmlsaXR5RnVuY3Rpb24uZ2V0KCk7IH0KKyAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvblByb3Rv
SGFzSW5zdGFuY2VTeW1ib2xGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25Qcm90
b0hhc0luc3RhbmNlU3ltYm9sRnVuY3Rpb24uZ2V0KCk7IH0KICAgICBHZXR0ZXJTZXR0ZXIqIHRo
cm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKFZNJiB2bSkKICAgICB7CiAgICAgICAgIGlmICghbV90
aHJvd1R5cGVFcnJvckdldHRlclNldHRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmNwcAppbmRleCA5YTcwMjE0ZGQyNmMwMjBmMzA4Y2UwZDAzYWViYjEwNTcyNTEx
ZWRmLi42MjM3NzAwYzhkYWY0ZmM4MjY5NDRlNTYyODQwNDk1YjgzYzczOTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0xNDM3LDE4ICsxNDM3LDQw
IEBAIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiBKU09iamVjdDo6ZmluZFByb3BlcnR5SGFzaEVudHJ5
KFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgSlNP
YmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK2Jvb2wg
SlNPYmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNW
YWx1ZSBoYXNJbnN0YW5jZVZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisKKyAg
ICBpZiAoIWhhc0luc3RhbmNlVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSAmJiBoYXNJbnN0YW5j
ZVZhbHVlICE9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+ZnVuY3Rpb25Qcm90b0hhc0lu
c3RhbmNlU3ltYm9sRnVuY3Rpb24oKSkgeworICAgICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKKyAg
ICAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBKU0M6OmdldENhbGxEYXRhKGhhc0luc3RhbmNlVmFs
dWUsIGNhbGxEYXRhKTsKKyAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewor
ICAgICAgICAgICAgdm0udGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlSW52YWxpZEluc3RhbmNl
b2ZQYXJhbWV0ZXJFcnJvcmhhc0luc3RhbmNlVmFsdWVOb3RGdW5jdGlvbihleGVjLCB0aGlzKSk7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBNYXJrZWRB
cmd1bWVudEJ1ZmZlciBhcmdzOworICAgICAgICBhcmdzLmFwcGVuZCh2YWx1ZSk7CisgICAgICAg
IEpTVmFsdWUgcmVzdWx0ID0gY2FsbChleGVjLCBoYXNJbnN0YW5jZVZhbHVlLCBjYWxsVHlwZSwg
Y2FsbERhdGEsIHRoaXMsIGFyZ3MpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvQm9vbGVhbihl
eGVjKTsKKyAgICB9CisKICAgICBUeXBlSW5mbyBpbmZvID0gc3RydWN0dXJlKHZtKS0+dHlwZUlu
Zm8oKTsKICAgICBpZiAoaW5mby5pbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlKCkpCiAgICAg
ICAgIHJldHVybiBkZWZhdWx0SGFzSW5zdGFuY2UoZXhlYywgdmFsdWUsIGdldChleGVjLCBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlKSk7CiAgICAgaWYgKGluZm8uaW1wbGVtZW50c0hh
c0luc3RhbmNlKCkpCiAgICAgICAgIHJldHVybiBtZXRob2RUYWJsZSh2bSktPmN1c3RvbUhhc0lu
c3RhbmNlKHRoaXMsIGV4ZWMsIHZhbHVlKTsKLSAgICB2bS50aHJvd0V4Y2VwdGlvbihleGVjLCBj
cmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVycm9yKGV4ZWMsIHRoaXMpKTsKKyAgICB2
bS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVJbnZhbGlkSW5zdGFuY2VvZlBhcmFtZXRlckVy
cm9yTm90RnVuY3Rpb24oZXhlYywgdGhpcykpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBKU09iamVjdDo6aGFzSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQor
eworICAgIEpTVmFsdWUgaGFzSW5zdGFuY2VWYWx1ZSA9IGdldChleGVjLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkuaGFzSW5zdGFuY2VTeW1ib2wpOworCisgICAgcmV0dXJuIGhhc0luc3RhbmNlKGV4
ZWMsIHZhbHVlLCBoYXNJbnN0YW5jZVZhbHVlKTsKK30KKwogYm9vbCBKU09iamVjdDo6ZGVmYXVs
dEhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90
bykKIHsKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCkBAIC0xNDY3LDYgKzE0ODksMTQgQEAg
Ym9vbCBKU09iamVjdDo6ZGVmYXVsdEhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90bykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKEV4ZWNTdGF0
ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHZhbHVlID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MCk7CisgICAgSlNWYWx1ZSBwcm90byA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpOworCisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oSlNPYmplY3Q6OmRlZmF1bHRIYXNJ
bnN0YW5jZShleGVjLCB2YWx1ZSwgcHJvdG8pKSk7Cit9CisKIHZvaWQgSlNPYmplY3Q6OmdldFBy
b3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgb2Jq
ZWN0LT5tZXRob2RUYWJsZShleGVjLT52bSgpKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgKaW5kZXggOGE5MWRkMTRlNGViZGVjM2MyNjZlMzRjMjA0OWQ4N2RmYzY0Yzg2
Ni4uNTZjMjY4Yjg2ZjI2YzBiOWIyYTg3ZjM2MGM0MzdjNDM3MmNiNmRlMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC00ODcsNiArNDg3LDcgQEAgcHVibGlj
OgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEpTVmFsdWUgZGVmYXVsdFZhbHVlKGNv
bnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSk7CiAKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEpTVmFsdWUg
dmFsdWUsIEpTVmFsdWUgaGFzSW5zdGFuY2VWYWx1ZSk7CiAgICAgYm9vbCBoYXNJbnN0YW5jZShF
eGVjU3RhdGUqLCBKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBkZWZhdWx0SGFzSW5zdGFuY2Uo
RXhlY1N0YXRlKiwgSlNWYWx1ZSwgSlNWYWx1ZSBwcm90b3R5cGVQcm9wZXJ0eSk7CiAKQEAgLTk3
OCw2ICs5NzksOCBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKK0pTX0VYUE9SVF9QUklWQVRFIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKEV4
ZWNTdGF0ZSopOworCiBpbmxpbmUgSlNGaW5hbE9iamVjdCogSlNGaW5hbE9iamVjdDo6Y3JlYXRl
KAogICAgIEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZseSog
YnV0dGVyZmx5KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNUeXBlSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5o
CmluZGV4IGNhMTEyMGNiZTVjZjQ1ZGFmODUxMDlmZTMwMTNhYjkzNTVlZGMzZmMuLjA5ZDgxZTk2
OWYyZjk3OWQ2Nzk4Zjg1OTViNjJiYTYxZDVjODg5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGVJbmZvLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgTExJbnRPZmZz
ZXRzRXh0cmFjdG9yOwogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCA9IDE7IC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1ha2Ug
ZG9jdW1lbnQuYWxsIHVuZGV0ZWN0YWJsZS4KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbXBsZW1l
bnRzSGFzSW5zdGFuY2UgPSAxIDw8IDE7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVz
SGFzSW5zdGFuY2UgPSAxIDw8IDI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVzSGFz
SW5zdGFuY2VGbGFnID0gMSA8PCAyOyAvLyBGSVhNRTogVGhpcyBpcyBvbmx5IHRyaXZpYWxseSB1
c2VkIGJ5IHRoZSBydW50aW1lIGFuZCBzaG91bGQgYmUgcmVtb3ZlZDogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjAwNQogc3RhdGljIGNvbnN0IHVuc2lnbmVkIElt
cGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSAxIDw8IDM7CiBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgVHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhID0gMSA8PCA0OyAvLyBOZWVkIHRoaXMgZmxh
ZyBpZiB5b3Ugb3ZlcnJpZGUgZ2V0Q2FsbERhdGEoKSBhbmQgeW91IHdhbnQgdHlwZW9mIHRvIHVz
ZSB0aGlzIHRvIGRldGVybWluZSBpZiBpdCBzaG91bGQgc2F5ICJmdW5jdGlvbiIuIEN1cnJlbnRs
eSB3ZSBhbHdheXMgc2V0IHRoaXMgZmxhZyB3aGVuIHdlIG92ZXJyaWRlIGdldENhbGxEYXRhKCku
CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90ID0gMSA8
PCA1OwpAQCAtNjgsOSArNjgsOSBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9mbGFnczIob3V0T2ZM
aW5lVHlwZUZsYWdzKQogICAgIHsKICAgICAgICAgLy8gTm8gb2JqZWN0IHRoYXQgZG9lc24ndCBJ
bXBsZW1lbnRzSGFzSW5zdGFuY2Ugc2hvdWxkIG92ZXJyaWRlIGl0IQotICAgICAgICBBU1NFUlQo
KG1fZmxhZ3MgJiAoSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2Up
KSAhPSBPdmVycmlkZXNIYXNJbnN0YW5jZSk7CisgICAgICAgIEFTU0VSVCgobV9mbGFncyAmIChJ
bXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNIYXNJbnN0YW5jZUZsYWcpKSAhPSBPdmVy
cmlkZXNIYXNJbnN0YW5jZUZsYWcpOwogICAgICAgICAvLyBJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlIG1lYW5zIChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgJiAhT3ZlcnJpZGVzSGFzSW5zdGFu
Y2UpCi0gICAgICAgIGlmICgobV9mbGFncyAmIChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVy
cmlkZXNIYXNJbnN0YW5jZSkpID09IEltcGxlbWVudHNIYXNJbnN0YW5jZSkKKyAgICAgICAgaWYg
KChtX2ZsYWdzICYgKEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNl
RmxhZykpID09IEltcGxlbWVudHNIYXNJbnN0YW5jZSkKICAgICAgICAgICAgIG1fZmxhZ3MgfD0g
SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZTsKICAgICB9CiAKQEAgLTgzLDcgKzgzLDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGZsYWdzKCkgY29uc3QgeyByZXR1cm4gKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihtX2ZsYWdzMikgPDwgOCkgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9mbGFn
cyk7IH0KICAgICBib29sIG1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiBp
c1NldE9uRmxhZ3MxKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQpOyB9CiAgICAgYm9vbCBpbXBsZW1l
bnRzSGFzSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpc1NldE9uRmxhZ3MxKEltcGxlbWVudHNI
YXNJbnN0YW5jZSk7IH0KLSAgICBib29sIG92ZXJyaWRlc0hhc0luc3RhbmNlKCkgY29uc3QgeyBy
ZXR1cm4gaXNTZXRPbkZsYWdzMShPdmVycmlkZXNIYXNJbnN0YW5jZSk7IH0KKyAgICBib29sIG92
ZXJyaWRlc0hhc0luc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShPdmVycmlk
ZXNIYXNJbnN0YW5jZUZsYWcpOyB9CiAgICAgYm9vbCBpbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlKCkgY29uc3QgeyByZXR1cm4gaXNTZXRPbkZsYWdzMShJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlKTsgfQogICAgIGJvb2wgdHlwZU9mU2hvdWxkQ2FsbEdldENhbGxEYXRhKCkgY29uc3Qg
eyByZXR1cm4gaXNTZXRPbkZsYWdzMShUeXBlT2ZTaG91bGRDYWxsR2V0Q2FsbERhdGEpOyB9CiAg
ICAgYm9vbCBvdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoKSBjb25zdCB7IHJldHVybiBvdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoaW5saW5lVHlwZUZsYWdzKCkpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFycmllci5oCmluZGV4IDBmNzBlMWVhMDBjNjIy
MGFmZDgwMjc4OTY4MWI5ZDk4Y2FhODRhOTYuLmI3MjdkMTg1ZTRkNzBlMTk5ZWZmY2UwZTFhY2Ew
NGNmOTUyODM1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dy
aXRlQmFycmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dyaXRlQmFy
cmllci5oCkBAIC0xNTIsMTQgKzE1Miw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzR2V0dGVyU2V0
dGVyKCkgY29uc3QgeyByZXR1cm4gZ2V0KCkuaXNHZXR0ZXJTZXR0ZXIoKTsgfQogICAgIGJvb2wg
aXNDdXN0b21HZXR0ZXJTZXR0ZXIoKSBjb25zdCB7IHJldHVybiBnZXQoKS5pc0N1c3RvbUdldHRl
clNldHRlcigpOyB9CiAgICAgCi0gICAgSlNWYWx1ZSogc2xvdCgpCisgICAgSlNWYWx1ZSogc2xv
dCgpIGNvbnN0CiAgICAgeyAKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgRW5jb2RlZEpT
VmFsdWUqIHY7Ci0gICAgICAgICAgICBKU1ZhbHVlKiBzbG90OwotICAgICAgICB9IHU7Ci0gICAg
ICAgIHUudiA9ICZtX3ZhbHVlOwotICAgICAgICByZXR1cm4gdS5zbG90OworICAgICAgICByZXR1
cm4gYml0d2lzZV9jYXN0PEpTVmFsdWUqPigmbV92YWx1ZSk7CiAgICAgfQogICAgIAogICAgIGlu
dDMyX3QqIHRhZ1BvaW50ZXIoKSB7IHJldHVybiAmYml0d2lzZV9jYXN0PEVuY29kZWRWYWx1ZURl
c2NyaXB0b3IqPigmbV92YWx1ZSktPmFzQml0cy50YWc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYueWFtbAppbmRleCA3ZTYzYWJkODJlZjRjYmI1OTRjMjUwZTNlOWQ4ZTdhMDgxM2E3MmZi
Li5mMTE5N2QxM2RmZTViZjE1ZTk5NGY0ZGFjMmFhMzgzYzUzMzcxMmIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi55YW1sCkBAIC0xMTgzLDcgKzExODMsNyBAQAogLSBwYXRoOiBlczYv
V2Vha1NldF9pdGVyYXRvcl9jbG9zaW5nLmpzCiAgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6
IGVzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLmhhc0luc3RhbmNlLmpzCi0gIGNtZDogcnVu
RVM2IDpmYWlsCisgIGNtZDogcnVuRVM2IDpub3JtYWwKIC0gcGF0aDogZXM2L3dlbGwta25vd25f
c3ltYm9sc19TeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlLmpzCiAgIGNtZDogcnVuRVM2IDpmYWls
CiAtIHBhdGg6IGVzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLm1hdGNoLmpzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2luc3RhbmNlb2YtY3VzdG9t
LWhhc2luc3RhbmNlc3ltYm9sLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9pbnN0YW5jZW9mLWN1c3RvbS1oYXNpbnN0YW5jZXN5bWJvbC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMmYy
NDIzMGMzNDQxNDYyOGJlNWVlMjk1M2Y4NGFmMzI0MTA3ZjhmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnN0YW5jZW9mLWN1c3RvbS1oYXNp
bnN0YW5jZXN5bWJvbC5qcwpAQCAtMCwwICsxLDI0IEBACitmdW5jdGlvbiBDb25zdHJ1Y3Rvcih4
KSB7fQorCitPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsIFN5bWJvbC5oYXNJbnN0
YW5jZSwge3ZhbHVlOiBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9fSk7CisKK3ggPSBuZXcg
Q29uc3RydWN0b3IoKTsKKworZnVuY3Rpb24gaW5zdGFuY2VPZihhLCBiKSB7CisgICAgcmV0dXJu
IGEgaW5zdGFuY2VvZiBiOworfQorbm9JbmxpbmUoaW5zdGFuY2VPZik7CisKK2Z1bmN0aW9uIGJv
ZHkoKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDA7IGkrKykgeworICAgICAgICBpZiAoaW5zdGFuY2VPZih4LCBDb25zdHJ1Y3RvcikpCisgICAg
ICAgICAgICByZXN1bHQrKzsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorbm9Jbmxp
bmUoYm9keSk7CisKK2lmIChib2R5KCkpCisgICAgdGhyb3cgInJlc3VsdCBpbmNvcnJlY3QiOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zeW1ib2wtaGFz
SW5zdGFuY2UuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N5bWJvbC1o
YXNJbnN0YW5jZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODAxZWI4YjRkN2RjZjFiZjNhYzY3ZWJmNjRlZmQ3
MmY2ZmEzZDMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9zeW1ib2wtaGFzSW5zdGFuY2UuanMKQEAgLTAsMCArMSw1NCBAQAorLy8gVGhpcyBm
aWxlIHRlc3RzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIFN5bWJvbC5oYXNJbnN0YW5jZS4KKworCisv
LyBUZXN0IGEgY3VzdG9tIFN5bWJvbC5oYXNJbnN0YW5jZSBvbiBhIGZ1bmN0aW9uIG9iamVjdC4K
K2Z1bmN0aW9uIENvbnN0cnVjdG9yKHgpIHt9Citmb28gPSBuZXcgQ29uc3RydWN0b3IoKTsKKwor
aWYgKCEoZm9vIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKQorICAgIHRocm93ICJzaG91bGQgYmUg
aW5zdGFuY2VvZiI7CisKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShDb25zdHJ1Y3RvciwgU3ltYm9s
Lmhhc0luc3RhbmNlLCB7dmFsdWU6IGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgaWYgKHRoaXMgIT09
IENvbnN0cnVjdG9yKQorICAgICAgICB0aHJvdyAifHRoaXN8IHNob3VsZCBiZSBDb25zdHJ1Y3Rv
ciI7CisgICAgaWYgKHZhbHVlICE9PSBmb28pCisgICAgICAgIHRocm93ICJmaXJzdCBhcmd1bWVu
dCBzaG91bGQgYmUgZm9vIjsKKyAgICByZXR1cm4gZmFsc2U7Cit9IH0pOworCisKK2lmIChmb28g
aW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikKKyAgICB0aHJvdyAic2hvdWxkIG5vdCBiZSBpbnN0YW5j
ZW9mIjsKKworCisvLyBUZXN0IFN5bWJvbC5oYXNJbnN0YW5jZSBvbiBhbiBvcmRpbmFyeSBvYmpl
Y3QuCitPYmplY3RDbGFzcyA9IHt9CitPYmplY3RDbGFzc1tTeW1ib2wuaGFzSW5zdGFuY2VdID0g
ZnVuY3Rpb24gKHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmICh0eXBlb2Yg
dmFsdWUgPT09ICJvYmplY3QiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gImZ1bmN0aW9uIik7Cit9CisK
K2lmICghKGZvbyBpbnN0YW5jZW9mIE9iamVjdENsYXNzKSkKKyAgICB0aHJvdyAiZm9vIHNob3Vs
ZCBiZSBhbiBpbnN0YW5jZW9mIE9iamVjdENsYXNzIjsKKworaWYgKCEoQ29uc3RydWN0b3IgaW5z
dGFuY2VvZiBPYmplY3RDbGFzcykpCisgICAgdGhyb3cgIkNvbnN0cnVjdG9yIHNob3VsZCBiZSBh
biBpbnN0YW5jZW9mIE9iamVjdENsYXNzIjsKKworTnVtYmVyQ2xhc3MgPSB7fQorTnVtYmVyQ2xh
c3NbU3ltYm9sLmhhc0luc3RhbmNlXSA9IGZ1bmN0aW9uICh2YWx1ZSkgeworICAgIHJldHVybiB0
eXBlb2YgdmFsdWUgPT09ICJudW1iZXIiOworfQorCitpZiAoISgxIGluc3RhbmNlb2YgTnVtYmVy
Q2xhc3MpKQorICAgIHRocm93ICIxIHNob3VsZCBiZSBhbiBpbnN0YW5jZW9mIE51bWJlckNsYXNz
IjsKKworaWYgKGZvbyBpbnN0YW5jZW9mIE51bWJlckNsYXNzKQorICAgIHRocm93ICJmb28gc2hv
dWxkIGJlIGFuIGluc3RhbmNlb2YgTnVtYmVyQ2xhc3MiOworCisKKy8vIFRlc3QgdGhlIEZ1bmN0
aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdIHdvcmtzIHdoZW4gYWN0dWFsbHkgY2Fs
bGVkLgorZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRnVuY3Rp
b24ucHJvdG90eXBlLCBTeW1ib2wuaGFzSW5zdGFuY2UpOworaWYgKGRlc2NyaXB0b3Iud3JpdGFi
bGUgIT09IGZhbHNlIHx8IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlICE9PSBmYWxzZSB8fCBkZXNj
cmlwdG9yLmVudW1lcmFibGUgIT09IGZhbHNlKQorICAgIHRocm93ICJGdW5jdGlvbi5wcm90b3R5
cGVbU3ltYm9sLmhhc0luc3RhbmNlXSBoYXMgYSBiYWQgZGVzY3JpcHRvciI7CisKK2lmICghRnVu
Y3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0uY2FsbChDb25zdHJ1Y3RvciwgZm9v
KSkKKyAgICB0aHJvdyAiRnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0gc2hv
dWxkIGNsYWltIHRoYXQgZm9vIGlzIGFuIGluc3RhbmNlb2YgQ29uc3RydWN0b3IiOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGU0ODU2MTcyYzlkZDZmZjY0MWQxYmUyM2IzNzBkNzRmNDdjNDhiY2QuLjMyYjk1OWUyNTVlMDVi
Njk1ZGE4MDhlYTU0YzcwMWY0NmQ1MTZhZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNS0x
Mi0xNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBb
RVM2XSBBZGQgc3VwcG9ydCBmb3IgU3ltYm9sLmhhc0luc3RhbmNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGVzdHMgdG8gcmVmbGVjdCB0aGUg
Y2hhbmdlcyB0byBpbnN0YW5jZW9mIGluIEVTNi4KKworICAgICAgICBBZGRlZCBhIG5ldyByZWdy
ZXNzaW9uIHRlc3QgZm9yIGJvdW5kIGZ1bmN0aW9ucyBpbiBpbnN0YW5jZW9mCisgICAgICAgIGFz
IHRoZSBwZXJmb21hbmNlIG9uIGJvdW5kIGZ1bmN0aW9ucyBzaG91bGQsIHRvIHNvbWUgZGVncmVl
LAorICAgICAgICByZWZsZWN0IHRoZSBwZXJmb3JtYW5jZSBvbiBDLUFQSSB1c2Vycy4KKworICAg
ICAgICAqIGluc3BlY3Rvci9tb2RlbC9yZW1vdGUtb2JqZWN0LWdldC1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBqcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICoganMvZXhjZXB0aW9uLWZvci1ub25vYmplY3QtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGpzL2V4Y2VwdGlvbi1pbnN0YW5jZW9mLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBqcy9pbnN0YW5jZS1vZi1pbW1lZGlhdGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBq
cy9yZWdyZXNzL2luc3RhbmNlb2YtYm91bmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBqcy9yZWdyZXNzL2luc3RhbmNlb2YtYm91bmQuaHRtbDogQWRkZWQuCisgICAgICAgICoganMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvaW5zdGFuY2VvZi1ib3VuZC5qczogQWRkZWQuCisgICAgICAg
IChDb25zdHJ1Y3Rvcik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVz
dHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanM6CisKIDIwMTUtMTItMTcgIExvcmVuem8g
VGlsdmUgIDxsdGlsdmVAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVbnJldmlld2VkIGdh
cmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL3JlbW90ZS1v
YmplY3QtZ2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L21vZGVsL3JlbW90ZS1vYmplY3QtZ2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IGJj
NWY1OTA2YTFjMWE1NjNiMTY4Y2UxZTAyODAzODJkMDc0ZjViOGEuLmU2YzBkMDNkZmM0MDYxNjU0
MzIzMmMxMDcyMTk0MjY3ZGY2ZDBmMDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9tb2RlbC9yZW1vdGUtb2JqZWN0LWdldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1nZXQtcHJvcGVydGllcy1l
eHBlY3RlZC50eHQKQEAgLTIwMiw2ICsyMDIsNyBAQCBBTEwgUFJPUEVSVElFUzoKICAgICBjYWxs
CiAgICAgYmluZAogICAgIGNvbnN0cnVjdG9yCisgICAgU3ltYm9sKFN5bWJvbC5oYXNJbnN0YW5j
ZSkKICAgICB0b0xvY2FsZVN0cmluZwogICAgIHZhbHVlT2YKICAgICBoYXNPd25Qcm9wZXJ0eQpA
QCAtMjUxLDYgKzI1Miw3IEBAIEFMTCBQUk9QRVJUSUVTOgogICAgIGNhbGwKICAgICBiaW5kCiAg
ICAgY29uc3RydWN0b3IKKyAgICBTeW1ib2woU3ltYm9sLmhhc0luc3RhbmNlKQogICAgIHRvTG9j
YWxlU3RyaW5nCiAgICAgdmFsdWVPZgogICAgIGhhc093blByb3BlcnR5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQKaW5k
ZXggY2FlMjE5YmFmOTJiNTk1MGJlNzdmOTQ1N2RhMDJjYzUxOTY3Zjk4My4uN2Y1ZGU1ZjgyMjc4
ZmI3MTk4YTg5MjkxNjIyNTEyZTNlMGUyOGRhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMv
T2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2pzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApAQCAtNjEsNyArNjEs
NyBAQCBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoRXJyb3IpIGlzIFsnbGVuZ3RoJywg
J25hbWUnLCAncHJvdG90eXBlJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhFcnJv
ci5wcm90b3R5cGUpIGlzIFsnY29uc3RydWN0b3InLCAnbWVzc2FnZScsICduYW1lJywgJ3RvU3Ry
aW5nJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhNYXRoKSBpcyBbJ0UnLCdMTjEw
JywnTE4yJywnTE9HMTBFJywnTE9HMkUnLCdQSScsJ1NRUlQxXzInLCdTUVJUMicsJ2FicycsJ2Fj
b3MnLCdhY29zaCcsJ2FzaW4nLCdhc2luaCcsJ2F0YW4nLCdhdGFuMicsJ2F0YW5oJywnY2JydCcs
J2NlaWwnLCdjbHozMicsJ2NvcycsJ2Nvc2gnLCdleHAnLCdleHBtMScsJ2Zsb29yJywnZnJvdW5k
JywnaHlwb3QnLCdpbXVsJywnbG9nJywnbG9nMTAnLCdsb2cxcCcsJ2xvZzInLCdtYXgnLCdtaW4n
LCdwb3cnLCdyYW5kb20nLCdyb3VuZCcsJ3NpZ24nLCdzaW4nLCdzaW5oJywnc3FydCcsJ3Rhbics
J3RhbmgnLCd0cnVuYyddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoSlNPTikgaXMg
WydwYXJzZScsICdzdHJpbmdpZnknXQotUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFN5
bWJvbCkgaXMgWydmb3InLCAnaXRlcmF0b3InLCAna2V5Rm9yJywgJ2xlbmd0aCcsICduYW1lJywg
J3Byb3RvdHlwZScsICd0b1N0cmluZ1RhZycsICd1bnNjb3BhYmxlcyddCitQQVNTIGdldFNvcnRl
ZE93blByb3BlcnR5TmFtZXMoU3ltYm9sKSBpcyBbJ2ZvcicsICdoYXNJbnN0YW5jZScsICdpdGVy
YXRvcicsICdrZXlGb3InLCAnbGVuZ3RoJywgJ25hbWUnLCAncHJvdG90eXBlJywgJ3RvU3RyaW5n
VGFnJywgJ3Vuc2NvcGFibGVzJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhTeW1i
b2wucHJvdG90eXBlKSBpcyBbJ2NvbnN0cnVjdG9yJywgJ3RvU3RyaW5nJywgJ3ZhbHVlT2YnXQog
UEFTUyBnbG9iYWxQcm9wZXJ0eU5hbWVzLmluZGV4T2YoJ05hTicpICE9IC0xIGlzIHRydWUKIFBB
U1MgZ2xvYmFsUHJvcGVydHlOYW1lcy5pbmRleE9mKCdJbmZpbml0eScpICE9IC0xIGlzIHRydWUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1mb3Itbm9ub2JqZWN0LWV4cGVjdGVk
LnR4dAppbmRleCA5ZjlhZTY5Yzg2Y2U5ZjBlYWE3MTBmZjBhNmEwZDU1M2ExOGUwYTJjLi43NzRk
MjI3ZDAzNWFkZjE3ZjNiY2UwOTgwNTExZjJlMzJlNDI3NWU4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9qcy9leGNlcHRpb24tZm9yLW5vbm9iamVjdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvanMvZXhjZXB0aW9uLWZvci1ub25vYmplY3QtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQs
NyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIFBBU1MgbmV3IHt9LnVuZGVmaW5lZCB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGEgY29uc3RydWN0b3Ig
KGV2YWx1YXRpbmcgJ25ldyB7fS51bmRlZmluZWQnKS4KLVBBU1MgMSBpbnN0YW5jZW9mIHt9LnVu
ZGVmaW5lZCB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fS51bmRlZmluZWQgaXMgbm90IGEg
ZnVuY3Rpb24uIChldmFsdWF0aW5nICcxIGluc3RhbmNlb2Yge30udW5kZWZpbmVkJykuCitQQVNT
IDEgaW5zdGFuY2VvZiB7fS51bmRlZmluZWQgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmln
aHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvZXhjZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvZXhjZXB0aW9uLWluc3RhbmNlb2YtZXhwZWN0ZWQudHh0CmluZGV4IGVkNjhiNmNjOGEwN2E1
YTc1Mjk1OTU3M2UzM2UxODVhZWEzMTk1YjYuLjBlZmQ3YTg2ZTA5YzQ3MDBkNGNkMWQ2OGVkMjk5
ZmZmYTgzMjdjOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2V4Y2VwdGlvbi1pbnN0YW5j
ZW9mLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9leGNlcHRpb24taW5zdGFuY2Vv
Zi1leHBlY3RlZC50eHQKQEAgLTMsMTEgKzMsMTEgQEAgVGVzdCBmb3IgZXJyb3IgbWVzc2FnZXMg
Zm9yIGluc3RhbmNlb2YKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTICdpbnN0
YW5jZW9mJyBpbnN0YW5jZW9mICAgICdpbnN0YW5jZW9mJyB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiAiaW5zdGFuY2VvZiIgaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcnaW5zdGFu
Y2VvZicgaW5zdGFuY2VvZiAgICAnaW5zdGFuY2VvZicnKS4KLVBBU1MgMjAgaW5zdGFuY2VvZiAg
ICAgJ2hlbGxvJyAgIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6ICdoZWxsbycgaXMgbm90IGEg
ZnVuY3Rpb24uIChldmFsdWF0aW5nICcyMCBpbnN0YW5jZW9mICAgICAnaGVsbG8nJykuCitQQVNT
ICdpbnN0YW5jZW9mJyBpbnN0YW5jZW9mICAgICdpbnN0YW5jZW9mJyB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0
LgorUEFTUyAyMCBpbnN0YW5jZW9mICAgICAnaGVsbG8nICAgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogUmlnaHQgaGFuZCBzaWRlIG9mIGluc3RhbmNlb2YgaXMgbm90IGFuIG9iamVjdC4KIFBB
U1MgMjAgaW5zdGFuY2VvZiAgICAge30gICB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fSBp
cyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzIwIGluc3RhbmNlb2YgICAgIHt9JykuCi1Q
QVNTIDIwIGluc3RhbmNlb2YgICAgIHt9LmZvbyAgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
e30uZm9vIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZhbHVhdGluZyAnMjAgaW5zdGFuY2VvZiAgICAg
e30uZm9vJykuCi1QQVNTIDIwIGluc3RhbmNlb2YgICAgIHRydWUgICAgICAgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogdHJ1ZSBpcyBub3QgYSBmdW5jdGlvbi4gKGV2YWx1YXRpbmcgJzIwIGlu
c3RhbmNlb2YgICAgIHRydWUnKS4KK1BBU1MgMjAgaW5zdGFuY2VvZiAgICAge30uZm9vICB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBoYW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBu
b3QgYW4gb2JqZWN0LgorUEFTUyAyMCBpbnN0YW5jZW9mICAgICB0cnVlICAgICAgIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBh
biBvYmplY3QuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2luc3RhbmNlLW9mLWltbWVkaWF0ZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvaW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3Rl
ZC50eHQKaW5kZXggMTEwMGRiOGFiN2JjOWFkYzBlNmU0ZmI2ZDExZWQ5NWE2Y2VjOGQ5NS4uZTZl
ZmM2YTU3MTE1ZmRmODA5NDRkMTUzYzZhZmRkYTIyNmRiNjQ1MSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvanMvaW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvanMvaW5zdGFuY2Utb2YtaW1tZWRpYXRlcy1leHBlY3RlZC50eHQKQEAgLTMsOSArMyw5
IEBAIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgaW5zdGFuY2Ugb2YgYmVoYXZlcyBjb3JyZWN0
bHkgd2hlbiB0aGUgdmFsdWUsIGNvbnN0cnVjCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
IAotUEFTUyAoMSBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IDEgaXMg
bm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICcxIGluc3RhbmNlb2YgMScpLgotUEFTUyAoe30g
aW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAxIGlzIG5vdCBhIGZ1bmN0
aW9uLiAoZXZhbHVhdGluZyAne30gaW5zdGFuY2VvZiAxJykuCi1QQVNTIChvYmogaW5zdGFuY2Vv
ZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiAxIGlzIG5vdCBhIGZ1bmN0aW9uLiAoZXZh
bHVhdGluZyAnb2JqIGluc3RhbmNlb2YgMScpLgorUEFTUyAoMSBpbnN0YW5jZW9mIDEpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5v
dCBhbiBvYmplY3QuCitQQVNTICh7fSBpbnN0YW5jZW9mIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFJpZ2h0IGhhbmQgc2lkZSBvZiBpbnN0YW5jZW9mIGlzIG5vdCBhbiBvYmplY3QuCitQ
QVNTIChvYmogaW5zdGFuY2VvZiAxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBSaWdodCBo
YW5kIHNpZGUgb2YgaW5zdGFuY2VvZiBpcyBub3QgYW4gb2JqZWN0LgogUEFTUyAoMSBpbnN0YW5j
ZW9mIHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiB7fSBpcyBub3QgYSBmdW5jdGlvbi4g
KGV2YWx1YXRpbmcgJzEgaW5zdGFuY2VvZiB7fScpLgogUEFTUyAoe30gaW5zdGFuY2VvZiB7fSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjoge30gaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0
aW5nICd7fSBpbnN0YW5jZW9mIHt9JykuCiBQQVNTIChvYmogaW5zdGFuY2VvZiB7fSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjoge30gaXMgbm90IGEgZnVuY3Rpb24uIChldmFsdWF0aW5nICdv
YmogaW5zdGFuY2VvZiB7fScpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9p
bnN0YW5jZW9mLWJvdW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5z
dGFuY2VvZi1ib3VuZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODgyYmNiZWI5OWQ0ZjViMWMy
NDg4OTc4YjY0OTMwMzllZDhlNmVhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvaW5zdGFuY2VvZi1ib3VuZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
SlNSZWdyZXNzL2luc3RhbmNlb2YtYm91bmQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvaW5zdGFuY2VvZi1ib3VuZC5odG1sIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9pbnN0YW5j
ZW9mLWJvdW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUxMjA2NGM1YjZlN2Y3ZDkzZWMyMTNkNmU0MTZi
MmMxMGQ0YmU0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvaW5z
dGFuY2VvZi1ib3VuZC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2luc3RhbmNlb2YtYm91bmQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvaW5zdGFuY2VvZi1ib3VuZC5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2luc3RhbmNlb2YtYm91bmQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRmOGU1MzVlNTU2
OGQ1NWY0ODMyYTM1YjUxMGViMmRiN2YwNTUyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2luc3RhbmNlb2YtYm91bmQuanMKQEAgLTAsMCAr
MSwzMCBAQAorLy8gVGhpcyB0ZXN0cyB0aGF0IHdlIGRvIG5vdCBjb25zdGFudGx5IE9TUiBvbiBp
bnN0YW5jZW9mIHdoZXJlIHRoZSBSSFMgaXMgYSBib3VuZCBmdW5jdGlvbi4KKy8vIFdoaWxlIHRo
aXMgYm91bmQgZnVuY3Rpb25zIGFyZSB1bmxpa2VseSB0byBiZSBwYXNzZWQgdG8gaW5zdGFuY2Vv
ZiBvZnRlbiBDLUFQSSB1c2VycyB1c2UKKy8vIHRoZSBzYW1lIG1ldGhvZCBvZiBvdmVycmlkaW5n
IGluc3RhbmNlb2YgZXhwcmVzc2lvbnMuCisKKworZnVuY3Rpb24gQ29uc3RydWN0b3IoeCkgewor
ICAgIHRoaXMueCA9IHg7Cit9CisKK0NvbnN0cnVjdG9yLnByb3RvdHlwZSA9IHt9CisKK0JvdW5k
Q29uc3RydWN0b3IgPSBDb25zdHJ1Y3Rvci5iaW5kKCk7Citmb28gPSBuZXcgQ29uc3RydWN0b3Io
MSk7CitiYXIgPSBuZXcgQm91bmRDb25zdHJ1Y3RvcigxKTsKKworaSA9IDA7CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIGlmICghKGZvbyBpbnN0YW5jZW9mIEJvdW5kQ29uc3RydWN0b3IpKSB7
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiZm9vIHNob3VsZCBiZSBhbiBpbnN0YW5jZW9mIEJv
dW5kQ29uc3RydWN0b3IiKTsKKyAgICB9CisgICAgbGV0IGogPSAwOworICAgIGZvciAoO2ogPCAx
MDAwOyBqKyspIHt9CisgICAgcmV0dXJuIGo7Cit9Citub0lubGluZSh0ZXN0KTsKKworZm9yIChp
ID0gMDsgaSA8IDUwMDAwOyBpKyspCisgICAgdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzIGIvTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCmluZGV4
IGNiNWVjMjRmYWY5MDdmODAyMzc5ODVmOGM4YWNlODM4ZGQ2OGUwODkuLjc0YmNiNzhhNTIwYzhj
NzBmZGRlODY0MDc2ODE4MmMwNzIzNjUzYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3Nj
cmlwdC10ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcworKysgYi9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKQEAgLTcwLDcg
KzcwLDcgQEAgdmFyIGV4cGVjdGVkUHJvcGVydHlOYW1lc1NldCA9IHsKICAgICAiRXJyb3IucHJv
dG90eXBlIjogIlsnY29uc3RydWN0b3InLCAnbWVzc2FnZScsICduYW1lJywgJ3RvU3RyaW5nJ10i
LAogICAgICJNYXRoIjogIlsnRScsJ0xOMTAnLCdMTjInLCdMT0cxMEUnLCdMT0cyRScsJ1BJJywn
U1FSVDFfMicsJ1NRUlQyJywnYWJzJywnYWNvcycsJ2Fjb3NoJywnYXNpbicsJ2FzaW5oJywnYXRh
bicsJ2F0YW4yJywnYXRhbmgnLCdjYnJ0JywnY2VpbCcsJ2NsejMyJywnY29zJywnY29zaCcsJ2V4
cCcsJ2V4cG0xJywnZmxvb3InLCdmcm91bmQnLCdoeXBvdCcsJ2ltdWwnLCdsb2cnLCdsb2cxMCcs
J2xvZzFwJywnbG9nMicsJ21heCcsJ21pbicsJ3BvdycsJ3JhbmRvbScsJ3JvdW5kJywnc2lnbics
J3NpbicsJ3NpbmgnLCdzcXJ0JywndGFuJywndGFuaCcsJ3RydW5jJ10iLAogICAgICJKU09OIjog
IlsncGFyc2UnLCAnc3RyaW5naWZ5J10iLAotICAgICJTeW1ib2wiOiAiWydmb3InLCAnaXRlcmF0
b3InLCAna2V5Rm9yJywgJ2xlbmd0aCcsICduYW1lJywgJ3Byb3RvdHlwZScsICd0b1N0cmluZ1Rh
ZycsICd1bnNjb3BhYmxlcyddIiwKKyAgICAiU3ltYm9sIjogIlsnZm9yJywgJ2hhc0luc3RhbmNl
JywgJ2l0ZXJhdG9yJywgJ2tleUZvcicsICdsZW5ndGgnLCAnbmFtZScsICdwcm90b3R5cGUnLCAn
dG9TdHJpbmdUYWcnLCAndW5zY29wYWJsZXMnXSIsCiAgICAgIlN5bWJvbC5wcm90b3R5cGUiOiAi
Wydjb25zdHJ1Y3RvcicsICd0b1N0cmluZycsICd2YWx1ZU9mJ10iCiB9OwogCg==
</data>
<flag name="review"
          id="292603"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>