<?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>136839</bug_id>
          
          <creation_ts>2014-09-15 14:53:41 -0700</creation_ts>
          <short_desc>Generate Element casting helper functions</short_desc>
          <delta_ts>2014-10-03 21:29:29 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>137004</blocked>
    
    <blocked>137007</blocked>
    
    <blocked>137015</blocked>
    
    <blocked>137056</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035319</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-15 14:53:41 -0700</bug_when>
    <thetext>We are currently generating the isHTML*Element() type checking helpers in HTMLElementTypeHelpers.h. However, the corresponding toHTML*Element() casting helpers are being generated by the NODE_TYPE_CASTS() macro. It would be nice if we could generate those helpers automatically, so that we no longer need to use NODE_TYPE_CASTS() for most HTML / SVG / MathML types.

I think those were generated in the past but the change got reverted because the forward declarations for the HTML Elements were forcing the use of reinterpret_cast instead of static_cast, which is unsafe due to multiple inheritance.

My proposal to make it work using static_cast would be to:
- Define the following templated functions in Element.h
***
template&lt;typename T&gt; inline T&amp; toElement(Node&amp; node)
{
    ASSERT_WITH_SECURITY_IMPLICATION(isElementOfType&lt;const T&gt;(node));
    return static_cast&lt;T&amp;&gt;(node);
}
template&lt;typename T&gt; inline T* toElement(Node* node)
{
    ASSERT_WITH_SECURITY_IMPLICATION(!node || isElementOfType&lt;const T&gt;(*node));
    return static_cast&lt;T*&gt;(node);
}
template&lt;typename T&gt; inline const T&amp; toElement(const Node&amp; node)
{
    ASSERT_WITH_SECURITY_IMPLICATION(isElementOfType&lt;const T&gt;(node));
    return static_cast&lt;const T&amp;&gt;(node);
}
template&lt;typename T&gt; inline const T* toElement(const Node* node)
{
    ASSERT_WITH_SECURITY_IMPLICATION(!node || isElementOfType&lt;const T&gt;(*node));
    return static_cast&lt;const T*&gt;(node);
}
***

- Generate toHTML*Element() macros in HTMLElementTypeHelpers.h that call toElement&lt;&gt;() so that we don&apos;t need to update existing code. They would look like:
#define toHTMLDivElement(x) WebCore::toElement&lt;WebCore::HTMLDivElement&gt;(x)

Any opinion on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035355</commentid>
    <comment_count>1</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-15 18:45:11 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; We are currently generating the isHTML*Element() type checking helpers in HTMLElementTypeHelpers.h. However, the corresponding toHTML*Element() casting helpers are being generated by the NODE_TYPE_CASTS() macro. It would be nice if we could generate those helpers automatically, so that we no longer need to use NODE_TYPE_CASTS() for most HTML / SVG / MathML types.
&gt; 
&gt; I think those were generated in the past but the change got reverted because the forward declarations for the HTML Elements were forcing the use of reinterpret_cast instead of static_cast, which is unsafe due to multiple inheritance.
&gt; 
&gt; My proposal to make it work using static_cast would be to:
&gt; - Define the following templated functions in Element.h
&gt; ***
&gt; template&lt;typename T&gt; inline T&amp; toElement(Node&amp; node)
&gt; {
&gt;     ASSERT_WITH_SECURITY_IMPLICATION(isElementOfType&lt;const T&gt;(node));
&gt;     return static_cast&lt;T&amp;&gt;(node);
&gt; }
&gt; template&lt;typename T&gt; inline T* toElement(Node* node)
&gt; {
&gt;     ASSERT_WITH_SECURITY_IMPLICATION(!node || isElementOfType&lt;const T&gt;(*node));
&gt;     return static_cast&lt;T*&gt;(node);
&gt; }
&gt; template&lt;typename T&gt; inline const T&amp; toElement(const Node&amp; node)
&gt; {
&gt;     ASSERT_WITH_SECURITY_IMPLICATION(isElementOfType&lt;const T&gt;(node));
&gt;     return static_cast&lt;const T&amp;&gt;(node);
&gt; }
&gt; template&lt;typename T&gt; inline const T* toElement(const Node* node)
&gt; {
&gt;     ASSERT_WITH_SECURITY_IMPLICATION(!node || isElementOfType&lt;const T&gt;(*node));
&gt;     return static_cast&lt;const T*&gt;(node);
&gt; }
&gt; ***
&gt; 
&gt; - Generate toHTML*Element() macros in HTMLElementTypeHelpers.h that call toElement&lt;&gt;() so that we don&apos;t need to update existing code. They would look like:
&gt; #define toHTMLDivElement(x) WebCore::toElement&lt;WebCore::HTMLDivElement&gt;(x)
&gt; 
&gt; Any opinion on this?

Chris, looks good idea ! As you said, I reverted previous toFoo generation patch because of reinterpret_cast&apos;s security problem. BTW, I wonder whether this approach can handle multiple tags which are processed by same HTMLFooElement interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035357</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-15 18:54:08 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; We are currently generating the isHTML*Element() type checking helpers in HTMLElementTypeHelpers.h. However, the corresponding toHTML*Element() casting helpers are being generated by the NODE_TYPE_CASTS() macro. It would be nice if we could generate those helpers automatically, so that we no longer need to use NODE_TYPE_CASTS() for most HTML / SVG / MathML types.
&gt; &gt; 
&gt; &gt; I think those were generated in the past but the change got reverted because the forward declarations for the HTML Elements were forcing the use of reinterpret_cast instead of static_cast, which is unsafe due to multiple inheritance.
&gt; &gt; 
&gt; &gt; My proposal to make it work using static_cast would be to:
&gt; &gt; - Define the following templated functions in Element.h
&gt; &gt; ***
&gt; &gt; template&lt;typename T&gt; inline T&amp; toElement(Node&amp; node)
&gt; &gt; {
&gt; &gt;     ASSERT_WITH_SECURITY_IMPLICATION(isElementOfType&lt;const T&gt;(node));
&gt; &gt;     return static_cast&lt;T&amp;&gt;(node);
&gt; &gt; }
&gt; &gt; template&lt;typename T&gt; inline T* toElement(Node* node)
&gt; &gt; {
&gt; &gt;     ASSERT_WITH_SECURITY_IMPLICATION(!node || isElementOfType&lt;const T&gt;(*node));
&gt; &gt;     return static_cast&lt;T*&gt;(node);
&gt; &gt; }
&gt; &gt; template&lt;typename T&gt; inline const T&amp; toElement(const Node&amp; node)
&gt; &gt; {
&gt; &gt;     ASSERT_WITH_SECURITY_IMPLICATION(isElementOfType&lt;const T&gt;(node));
&gt; &gt;     return static_cast&lt;const T&amp;&gt;(node);
&gt; &gt; }
&gt; &gt; template&lt;typename T&gt; inline const T* toElement(const Node* node)
&gt; &gt; {
&gt; &gt;     ASSERT_WITH_SECURITY_IMPLICATION(!node || isElementOfType&lt;const T&gt;(*node));
&gt; &gt;     return static_cast&lt;const T*&gt;(node);
&gt; &gt; }
&gt; &gt; ***
&gt; &gt; 
&gt; &gt; - Generate toHTML*Element() macros in HTMLElementTypeHelpers.h that call toElement&lt;&gt;() so that we don&apos;t need to update existing code. They would look like:
&gt; &gt; #define toHTMLDivElement(x) WebCore::toElement&lt;WebCore::HTMLDivElement&gt;(x)
&gt; &gt; 
&gt; &gt; Any opinion on this?
&gt; 
&gt; Chris, looks good idea ! As you said, I reverted previous toFoo generation patch because of reinterpret_cast&apos;s security problem. BTW, I wonder whether this approach can handle multiple tags which are processed by same HTMLFooElement interface.

For HTML / SVG elements that need special handling (such as the case you mentioned), we would still need to use a macro. Those types already need a ElementTypeTraits specialization to be defined for them. The macro would define that specialization as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035370</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-09-15 20:09:35 -0700</bug_when>
    <thetext>Personally I like the template better than NODE_TYPE_CASTS. 

What we must avoid is mixing both. We can either
1) Make a new styleRule enforcing toXXXElement over toElement&lt;XXX&gt;. Update the style checker accordingly.
2) Get rid of toXXXElement() and update the whole code base.

I don&apos;t think (2) is that bad, that&apos;s something one can land over a weekend when there is less activity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035374</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-15 20:27:05 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Personally I like the template better than NODE_TYPE_CASTS. 
&gt; 
&gt; What we must avoid is mixing both. We can either
&gt; 1) Make a new styleRule enforcing toXXXElement over toElement&lt;XXX&gt;. Update the style checker accordingly.
&gt; 2) Get rid of toXXXElement() and update the whole code base.
&gt; 
&gt; I don&apos;t think (2) is that bad, that&apos;s something one can land over a weekend when there is less activity.

I think people are used to the toHTML*Element() helpers so I would prefer to go with 1). I prefer not to have developers learn something new if we can avoid it. Also, it is a lot less work and noise in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035622</commentid>
    <comment_count>5</comment_count>
      <attachid>238220</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-16 16:46:48 -0700</bug_when>
    <thetext>Created attachment 238220
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035630</commentid>
    <comment_count>6</comment_count>
      <attachid>238223</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-16 17:05:59 -0700</bug_when>
    <thetext>Created attachment 238223
WIP Patch

GTK and EFL build fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035638</commentid>
    <comment_count>7</comment_count>
      <attachid>238226</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-16 17:24:53 -0700</bug_when>
    <thetext>Created attachment 238226
WIP Patch

Rebaseline bindings tests and speculative GTK build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035646</commentid>
    <comment_count>8</comment_count>
      <attachid>238229</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-16 17:36:54 -0700</bug_when>
    <thetext>Created attachment 238229
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035770</commentid>
    <comment_count>9</comment_count>
      <attachid>238265</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-17 14:37:32 -0700</bug_when>
    <thetext>Created attachment 238265
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035774</commentid>
    <comment_count>10</comment_count>
      <attachid>238267</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-17 14:52:04 -0700</bug_when>
    <thetext>Created attachment 238267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035779</commentid>
    <comment_count>11</comment_count>
      <attachid>238267</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-17 14:59:00 -0700</bug_when>
    <thetext>Comment on attachment 238267
Patch

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

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h:42
&gt; +    static TestEventTarget* toImpl(JSC::JSValue);

The reason I did not use a templated to&lt;XXX&gt;() function (and specializations) for these is that:
- Some classes provide a custom implementation in their *Custom.cpp custom binding file
- The prototype actually changes quite a bit from one class to another:
  * SVG types often return different TearOff types
  * Some classes require additional arguments (vm / execState)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035957</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 10:43:02 -0700</bug_when>
    <thetext>I don&apos;t quite get the errors on the win-ews:
    1&gt;..\accessibility\AccessibilityMenuListPopup.cpp(105): error C2819: type &apos;WebCore::HTMLSelectElement&apos; does not have an overloaded member &apos;operator -&gt;&apos;
                 C:\cygwin\home\buildbot\WebKit\Source\WebCore\html\HTMLSelectElement.h(39) : see declaration of &apos;WebCore::HTMLSelectElement&apos;
                 did you intend to use &apos;.&apos; instead?
     1&gt;..\accessibility\AccessibilityMenuListPopup.cpp(105): error C2232: &apos;-&gt;WebCore::HTMLSelectElement::listItems&apos; : left operand has &apos;class&apos; type, use &apos;.&apos;
     1&gt;..\accessibility\AccessibilityMenuListPopup.cpp(106): error C2065: &apos;listItem&apos; : undeclared identifier
         BarProp.cpp
     1&gt;c:\cygwin\home\buildbot\webkit\source\webcore\accessibility\AXObjectCache.cpp(180): error C2664: &apos;WebCore::AccessibilityObject *WebCore::AXObjectCache::focusedImageMapUIElement(WebCore::HTMLAreaElement *)&apos; : cannot convert argument 1 from &apos;WebCore::HTMLAreaElement&apos; to &apos;WebCore::HTMLAreaElement *&apos; (..\accessibility\AccessibilityAllInOne.cpp)
                 No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
     1&gt;c:\cygwin\home\buildbot\webkit\source\webcore\accessibility\AXObjectCache.cpp(951): error C2819: type &apos;WebCore::HTMLLabelElement&apos; does not have an overloaded member &apos;operator -&gt;&apos; (..\accessibility\AccessibilityAllInOne.cpp)

It looks like toHTML*Element(Node*) returns a reference instead of a pointer? I don&apos;t get how this is possible yet, especially with msvc only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035958</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 11:03:03 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; I don&apos;t quite get the errors on the win-ews:
&gt;     1&gt;..\accessibility\AccessibilityMenuListPopup.cpp(105): error C2819: type &apos;WebCore::HTMLSelectElement&apos; does not have an overloaded member &apos;operator -&gt;&apos;
&gt;                  C:\cygwin\home\buildbot\WebKit\Source\WebCore\html\HTMLSelectElement.h(39) : see declaration of &apos;WebCore::HTMLSelectElement&apos;
&gt;                  did you intend to use &apos;.&apos; instead?
&gt;      1&gt;..\accessibility\AccessibilityMenuListPopup.cpp(105): error C2232: &apos;-&gt;WebCore::HTMLSelectElement::listItems&apos; : left operand has &apos;class&apos; type, use &apos;.&apos;
&gt;      1&gt;..\accessibility\AccessibilityMenuListPopup.cpp(106): error C2065: &apos;listItem&apos; : undeclared identifier
&gt;          BarProp.cpp
&gt;      1&gt;c:\cygwin\home\buildbot\webkit\source\webcore\accessibility\AXObjectCache.cpp(180): error C2664: &apos;WebCore::AccessibilityObject *WebCore::AXObjectCache::focusedImageMapUIElement(WebCore::HTMLAreaElement *)&apos; : cannot convert argument 1 from &apos;WebCore::HTMLAreaElement&apos; to &apos;WebCore::HTMLAreaElement *&apos; (..\accessibility\AccessibilityAllInOne.cpp)
&gt;                  No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
&gt;      1&gt;c:\cygwin\home\buildbot\webkit\source\webcore\accessibility\AXObjectCache.cpp(951): error C2819: type &apos;WebCore::HTMLLabelElement&apos; does not have an overloaded member &apos;operator -&gt;&apos; (..\accessibility\AccessibilityAllInOne.cpp)
&gt; 
&gt; It looks like toHTML*Element(Node*) returns a reference instead of a pointer? I don&apos;t get how this is possible yet, especially with msvc only.

Ah, msvc is using the wrong downcast&lt;&gt;() overload, it is using the &quot;Target&amp; downcast(Source&amp; source)&quot; one with Source=HTMLSelectElement* instead of using the &quot;Target* downcast(Source* source)&quot; one with Source=HTMLSelectElement.

I need to address this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035977</commentid>
    <comment_count>14</comment_count>
      <attachid>238321</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 13:18:27 -0700</bug_when>
    <thetext>Created attachment 238321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035978</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 13:19:04 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=238321) [details]
&gt; Patch

Hopefully, this one fixes the win-ews build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036011</commentid>
    <comment_count>16</comment_count>
      <attachid>238331</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 16:10:48 -0700</bug_when>
    <thetext>Created attachment 238331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036025</commentid>
    <comment_count>17</comment_count>
      <attachid>238338</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 17:07:52 -0700</bug_when>
    <thetext>Created attachment 238338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036043</commentid>
    <comment_count>18</comment_count>
      <attachid>238345</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 18:26:00 -0700</bug_when>
    <thetext>Created attachment 238345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036052</commentid>
    <comment_count>19</comment_count>
      <attachid>238345</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-18 19:35:11 -0700</bug_when>
    <thetext>Comment on attachment 238345
Patch

And the windows bot is finally green. Please take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036361</commentid>
    <comment_count>20</comment_count>
      <attachid>238345</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-09-21 12:53:56 -0700</bug_when>
    <thetext>Comment on attachment 238345
Patch

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

Looks like a step in the right direction. But one last thing: For me it’s unpleasant to see so many new call sites using the non-word “impl”. I don’t really think of the thing that’s wrapped by a wrapper as an “impl” even though we make some use of that name today. I think we should consider the function name unwrap() or even toWrapped() instead of toImpl().

&gt; Source/WebCore/bindings/js/JSDOMFormDataCustom.cpp:55
&gt;      HTMLFormElement* form = 0;
&gt;      if (exec-&gt;argumentCount() &gt; 0)
&gt; -        form = toHTMLFormElement(exec-&gt;argument(0));
&gt; +        form = toHTMLFormElementOrNull(exec-&gt;argument(0));

If there are no arguments, exec-&gt;argument(0) will return undefined and we would get null from toHTMLFormElementOrNull so we don’t really need the if statement. Also should use nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036388</commentid>
    <comment_count>21</comment_count>
      <attachid>238439</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-21 16:23:52 -0700</bug_when>
    <thetext>Created attachment 238439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036415</commentid>
    <comment_count>22</comment_count>
      <attachid>238445</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-21 20:02:40 -0700</bug_when>
    <thetext>Created attachment 238445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036421</commentid>
    <comment_count>23</comment_count>
      <attachid>238445</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-21 20:52:02 -0700</bug_when>
    <thetext>Comment on attachment 238445
Patch

Clearing flags on attachment: 238445

Committed r173804: &lt;http://trac.webkit.org/changeset/173804&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036422</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-21 20:52:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036638</commentid>
    <comment_count>25</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-09-22 17:55:26 -0700</bug_when>
    <thetext>Note: This broke 64-bit Windows builds. Working on a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036866</commentid>
    <comment_count>26</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-09-23 16:27:22 -0700</bug_when>
    <thetext>Build fix checked in for Windows in r173878 &lt;http://trac.webkit.org/changeset/173878&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036873</commentid>
    <comment_count>27</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-23 16:30:59 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Build fix checked in for Windows in r173878 &lt;http://trac.webkit.org/changeset/173878&gt;

Thanks Brent, and sorry about the breakage. I did fix the win-ews before landing but my symbol exporting wasn&apos;t entirely correct apparently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039222</commentid>
    <comment_count>28</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-03 09:09:04 -0700</bug_when>
    <thetext>Are we going to do something similar for the render tree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039243</commentid>
    <comment_count>29</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-03 10:01:48 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; Are we going to do something similar for the render tree?

Render objects are still using the TYPE_CASTS_BASE() macro + a isRendererOfType template specialization. My short-term plan is to port them to the new SPECIALIZE_TYPE_TRAITS_*() macro so that:
- We can use is&lt;&gt;() / downcast&lt;&gt;() on render objects
- We can likely drop the isRendererOfType template specialization as we will likely be able to leverage the TypeCastTraits specialization instead.

I don&apos;t know if you were talking about generating the traits specializations without macros (like we do for most HTML / SVG / MathML elements). This part I haven&apos;t thought about yet.

Right now I am still in the process of porting CSS objects over to is&lt;&gt;() / downcast&lt;&gt;().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039446</commentid>
    <comment_count>30</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-03 21:29:29 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; My short-term plan is to port them to the new SPECIALIZE_TYPE_TRAITS_*() macro

Great.

&gt; I don&apos;t know if you were talking about generating the traits specializations without macros (like we do for most HTML / SVG / MathML elements).

I wasn’t.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238220</attachid>
            <date>2014-09-16 16:46:48 -0700</date>
            <delta_ts>2014-09-16 17:05:59 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>136839_generate_cast_helpers_wip1.patch</filename>
            <type>text/plain</type>
            <size>79138</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCAzNjlhYmIxLi4zZGJmZGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCkBAIC0yMTMsNyArMjEzLDcgQEAgYm9vbCBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgLy8g
R2V0IHRoZSA8dmlkZW8+IGNyZWF0ZWQgdG8gcmVwbGFjZSB0aGUgcGx1Zy1pbi4KICAgICBKU0M6
OkpTVmFsdWUgdmFsdWUgPSByZXBsYWNlbWVudC5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4
ZWMsICJ2aWRlbyIpKTsKICAgICBpZiAoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpICYmICF2YWx1ZS5p
c1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICBtX21lZGlhRWxlbWVudCA9IHRvSFRNTFZpZGVv
RWxlbWVudCh2YWx1ZSk7CisgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gSlNIVE1MVmlkZW9FbGVt
ZW50Ojp0b0ltcGwodmFsdWUpOwogCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkgewogICAgICAg
ICBMT0coUGx1Z2lucywgIiVwIC0gRmFpbGVkIHRvIGZpbmQgPHZpZGVvPiBlbGVtZW50IGNyZWF0
ZWQgYnkgUXVpY2tUaW1lIHBsdWdpbiByZXBsYWNlbWVudCBzY3JpcHQuIiwgdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDk0ZDliNTMuLjVlMTlmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC03Nyw2ICs3Nyw3IEBAIF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLN0NHUG9pbnQK
IF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3Jl
MTBGb250R2x5cGhzMTVyZWxlYXNlRm9udERhdGFFdgogX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50
NnNfaW5mb0UKK19fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDVzY2FsZUVmCiBfX1pON1dlYkNvcmUxMExheW91dFJl
Y3Q1dW5pdGVFUktTMF8KIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdEMxRVJLTlNfOUZsb2F0UmVj
dEUKQEAgLTEyNCw3ICsxMjUsNiBAQCBfX1pON1dlYkNvcmUxMFRpbWVSYW5nZXNDMUVkZAogX19a
TjdXZWJDb3JlMTBkZWxldGVGaWxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBmaWxl
RXhpc3RzRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBzZXRDb29raWVzRVBOU184RG9j
dW1lbnRFUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMTB0b0RvY3VtZW50
RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlMTNnZXRDR0ltYWdlUmVm
RXYKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2VDMUVQN0NHSW1hZ2VQTlNfMTNJbWFnZU9ic2Vy
dmVyRQogX19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZUMxRVBOU18xM0ltYWdlT2JzZXJ2ZXJFCkBA
IC02NjcsNyArNjY3LDYgQEAgX19aTjdXZWJDb3JlMTVvcmlnaW5hbFVSTERhdGFFUDVOU1VSTAog
X19aTjdXZWJDb3JlMTVwYXRoR2V0RmlsZU5hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxNXJlcG9ydEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVQTlNfMTJD
YWNoZWRTY3JpcHRFCiBfX1pON1dlYkNvcmUxNXNldERPTUV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0
YXRlRWkKLV9fWk43V2ViQ29yZTE1dG9ET01TdHJpbmdMaXN0RVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTV2aXNpdGVkTGlua0hhc2hFUEt0agogX19aTjdXZWJD
b3JlMTV2aXNpdGVkTGlua0hhc2hFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkFwcGxp
Y2F0aW9uQ2FjaGUxOGRpc2tVc2FnZUZvck9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKQEAg
LTEyNDIsNiArMTI0MSw3IEBAIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29tbWFuZEVSS04zV1RGNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29weVVSTEVSS05TXzNVUkxFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yN291dGRlbnRFdgogX19aTjdXZWJDb3JlNkpTTm9kZTZz
X2luZm9FCitfX1pON1dlYkNvcmU2SlNOb2RlNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdX
ZWJDb3JlNkxlbmd0aEMxRU4zV1RGN1Bhc3NSZWZJTlNfMTZDYWxjdWxhdGlvblZhbHVlRUVFCiBf
X1pON1dlYkNvcmU2UmVnaW9uMjF1cGRhdGVCb3VuZHNGcm9tU2hhcGVFdgogX19aTjdXZWJDb3Jl
NlJlZ2lvbjV1bml0ZUVSS1MwXwpAQCAtMTI1OSw3ICsxMjU5LDYgQEAgX19aTjdXZWJDb3JlNldp
ZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBhcmVudEVQTlNfMTBTY3Jv
bGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2ViQ29yZTZ0b0ludDhFUE4z
SlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3Vy
YXRpb25FCi1fX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3
RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VTNF9SaQogX19aTjdX
ZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUVSS04zV1RG
MTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxlbWVudDE2Y3JlYXRlU2hhZG93Um9vdEVS
aQpAQCAtMTI3Myw2ICsxMjcyLDcgQEAgX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzEwTGF5
b3V0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19aTjdX
ZWJDb3JlN0ludFNpemVDMUVSSzZDR1NpemUKIF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUktOU185
RmxvYXRTaXplRQorX19aTjdXZWJDb3JlN0pTUmFuZ2U2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBf
X1pON1dlYkNvcmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRpbmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3
VGV4dFJ1bjIxc19hbGxvd3NSb3VuZGluZ0hhY2tzRQogX19aTjdXZWJDb3JlN1RleHRSdW4yMnNl
dEFsbG93c1JvdW5kaW5nSGFja3NFYgpAQCAtMTI4MSw3ICsxMjgxLDYgQEAgX19aTjdXZWJDb3Jl
N2pzQXJyYXlFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1dURjEw
UGFzc1JlZlB0ckkKIF9fWk43V2ViQ29yZTdtYWtlUkdCRWlpaQogX19aTjdXZWJDb3JlN3RvSW50
MTZFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNv
bmZpZ3VyYXRpb25FCiBfX1pON1dlYkNvcmU3dG9JbnQ2NEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83
SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKLV9fWk43V2ViQ29y
ZTd0b1JhbmdlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3dG9VSW50OEVQTjNKU0M5RXhl
Y1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUK
IF9fWk43V2ViQ29yZThCbG9iRGF0YTE0c2V0Q29udGVudFR5cGVFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmU4Q1NTVmFsdWU3ZGVzdHJveUV2CkBAIC0xNDk1LDYgKzE0OTQsNyBAQCBfX1pO
N1dlYkNvcmU5SW5saW5lQm94MTRkaXJ0eUxpbmVCb3hlc0V2CiBfX1pON1dlYkNvcmU5SW5saW5l
Qm94MTRzZWxlY3Rpb25TdGF0ZUV2CiBfX1pON1dlYkNvcmU5SW5saW5lQm94MTZwbGFjZUVsbGlw
c2lzQm94RWJmZmZSZlJiCiBfX1pON1dlYkNvcmU5SlNFbGVtZW50NnNfaW5mb0UKK19fWk43V2Vi
Q29yZTlKU0VsZW1lbnQ2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU5TGF5ZXJQ
b29sQzFFdgogX19aTjdXZWJDb3JlOUxheWVyUG9vbEQxRXYKIF9fWk43V2ViQ29yZTlQYWdlQ2Fj
aGUxMXNldENhcGFjaXR5RWkKQEAgLTE1MzUsNyArMTUzNSw2IEBAIF9fWk43V2ViQ29yZTlmb250
Q2FjaGVFdgogX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRVMy
XwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5cGxhaW5UZXh0RVBLTlNf
NVJhbmdlRXRiCi1fX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dl
YkNvcmU5dW5pb25SZWN0RVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFJlY3RFTG0wRU5TMF8xNUNy
YXNoT25PdmVyZmxvd0VFRQogX19aTkszSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxP
YmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3JlYXRlQ0ZTdHJpbmdFdgpAQCAtMzI1OCw3ICsz
MjU3LDcgQEAgX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVudEV2
CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjhmaW5hbGl6ZUV2CiBfX1pON1dlYkNvcmUxMk5v
dGlmaWNhdGlvbkMxRXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uRDFFdgotX19aTjdXZWJD
b3JlMTR0b05vdGlmaWNhdGlvbkVOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTRKU05vdGlm
aWNhdGlvbjZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE5cHJvdmlkZU5vdGlm
aWNhdGlvbkVQTlNfNFBhZ2VFUE5TXzE4Tm90aWZpY2F0aW9uQ2xpZW50RQogX19aTjdXZWJDb3Jl
MjJOb3RpZmljYXRpb25Db250cm9sbGVyMTBjbGllbnRGcm9tRVBOU180UGFnZUUKICNlbmRpZgpA
QCAtMzM3MCw3ICszMzY5LDcgQEAgX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxNmhhbmRsZVRv
dWNoRXZlbnRFUktOU18xOFBsYXRmb3JtVG91Y2hFdmVudEUKICNpZiBFTkFCTEUoVklERU8pCiAu
b2JqY19jbGFzc19uYW1lX1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIKIF9fWk43V2ViQ29y
ZTEwVGltZVJhbmdlczNhZGRFZGQKLV9fWk43V2ViQ29yZTEydG9UaW1lUmFuZ2VzRU4zSlNDN0pT
VmFsdWVFCitfX1pON1dlYkNvcmUxMkpTVGltZVJhbmdlczZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEyZW5kU2NydWJiaW5nRXYKIF9fWk43V2Vi
Q29yZTE2SFRNTE1lZGlhRWxlbWVudDE0YmVnaW5TY3J1YmJpbmdFdgogX19aTjdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50MTRleGl0RnVsbHNjcmVlbkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAK
aW5kZXggZTZiNTA2NC4uYWJiMDA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcApAQCAtNDEs
NyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OnNldEJ1ZmZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAg
QXVkaW9CdWZmZXIqIGJ1ZmZlciA9IHRvQXVkaW9CdWZmZXIodmFsdWUpOworICAgIEF1ZGlvQnVm
ZmVyKiBidWZmZXIgPSBKU0F1ZGlvQnVmZmVyOjp0b0ltcGwodmFsdWUpOwogICAgIGlmICghYnVm
ZmVyKSB7CiAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlw
ZUVycm9yKGV4ZWMsICJWYWx1ZSBpcyBub3Qgb2YgdHlwZSBBdWRpb0J1ZmZlciIpKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9i
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAK
aW5kZXggMjkzYWZiMy4uMDZhOTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCbG9iQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jsb2JDdXN0b20uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU0Jsb2IoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgYmxv
YkJ1aWxkZXIuYXBwZW5kKGFycmF5QnVmZmVyKTsKICAgICAgICAgZWxzZSBpZiAoUmVmUHRyPEFy
cmF5QnVmZmVyVmlldz4gYXJyYXlCdWZmZXJWaWV3ID0gdG9BcnJheUJ1ZmZlclZpZXcoaXRlbSkp
CiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYXJyYXlCdWZmZXJWaWV3LnJlbGVhc2Uo
KSk7Ci0gICAgICAgIGVsc2UgaWYgKEJsb2IqIGJsb2IgPSB0b0Jsb2IoaXRlbSkpCisgICAgICAg
IGVsc2UgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvSW1wbChpdGVtKSkKICAgICAgICAgICAg
IGJsb2JCdWlsZGVyLmFwcGVuZChibG9iKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBT
dHJpbmcgc3RyaW5nID0gaXRlbS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1
c3RvbS5jcHAKaW5kZXggNzk1NDhlOC4uZjJmZmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcApAQCAt
MTEzLDcgKzExMyw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQSUhvc3Q6OmdldEV2ZW50TGlz
dGVuZXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFs
dWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgTm9kZSog
bm9kZSA9IHRvTm9kZSh2YWx1ZSk7CisgICAgTm9kZSogbm9kZSA9IEpTTm9kZTo6dG9JbXBsKHZh
bHVlKTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCkBA
IC0xNDksNyArMTQ5LDcgQEAgSlNWYWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6ZGF0YWJhc2VJ
ZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAjaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSB0b0RhdGFiYXNl
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSBK
U0RhdGFiYXNlOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChk
YXRhYmFzZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGltcGwoKS5k
YXRhYmFzZUlkSW1wbChkYXRhYmFzZSkpOwogI2VuZGlmCkBAIC0xNjIsNyArMTYyLDcgQEAgSlNW
YWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3RvcmFnZUlkKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAKLSAgICBTdG9yYWdlKiBzdG9yYWdlID0gdG9TdG9yYWdlKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBTdG9yYWdlKiBzdG9yYWdlID0gSlNTdG9yYWdlOjp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChzdG9yYWdlKQogICAgICAgICBy
ZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgaW1wbCgpLnN0b3JhZ2VJZEltcGwoc3RvcmFn
ZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1E
YXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFD
dXN0b20uY3BwCmluZGV4IDMxYjE4MGIuLmU5ZTBiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCkBAIC00MSw5ICs0MSw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhU
TUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIEhUTUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnRPck51bGwoSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewotICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiAwOworICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiBudWxscHRyOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRlKiBleGVjKQpAQCAtNTIsNyArNTIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRl
KiBleGVjKQogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gMDsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpID4gMCkKLSAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50KGV4
ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50T3JOdWxs
KGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBSZWZQdHI8RE9NRm9ybURhdGE+IGRvbUZvcm1EYXRh
ID0gRE9NRm9ybURhdGE6OmNyZWF0ZShmb3JtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGRvbUZv
cm1EYXRhLmdldCgpKSkpOwogfQpAQCAtNjYsNyArNjYsNyBAQCBKU1ZhbHVlIEpTRE9NRm9ybURh
dGE6OmFwcGVuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWU7
CiAgICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDMgJiYgIWV4ZWMtPmFy
Z3VtZW50KDIpLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICAgICAgZmlsZW5hbWUg
PSBleGVjLT5hcmd1bWVudCgyKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgICAg
ICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIHRvQmxvYih2YWx1ZSksIGZpbGVuYW1lKTsKKyAgICAg
ICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwgSlNCbG9iOjp0b0ltcGwodmFsdWUpLCBmaWxlbmFt
ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChuYW1lLCB2YWx1
ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCmluZGV4IDIzMzM3
YjIuLmFkM2FjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
U3RyaW5nTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01TdHJpbmdMaXN0Q3VzdG9tLmNwcApAQCAtMjUsNyArMjUsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
dG9ET01TdHJpbmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gSlNET01TdHJpbmdMaXN0Ojp0b0ltcGwoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU0RPTVN0cmluZ0xp
c3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTRE9NU3RyaW5nTGlzdCo+KGFz
T2JqZWN0KHZhbHVlKSktPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA1ZjNiNTE3Li5lODRkM2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02ODQs
NyArNjg0LDcgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLURPTVdpbmRvdyog
dG9ET01XaW5kb3coSlNWYWx1ZSB2YWx1ZSkKK0RPTVdpbmRvdyogSlNET01XaW5kb3c6OnRvSW1w
bChKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApp
bmRleCAxYWYwMjZkLi40MmRhNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGljdGlvbmFyeS5jcHAKQEAgLTE1NSwyMiArMTU1LDIyIEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8U2VyaWFs
aXplCiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPERPTVdpbmRvdz4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RP
TVdpbmRvdyh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNET01XaW5kb3c6OnRvSW1wbCh2YWx1ZSk7
CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRv
RXZlbnRUYXJnZXQodmFsdWUpOworICAgIHJlc3VsdCA9IEpTRXZlbnRUYXJnZXQ6OnRvSW1wbCh2
YWx1ZSk7CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwg
SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE5vZGU+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9O
b2RlKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU05vZGU6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZv
aWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPFN0b3JhZ2U+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9TdG9yYWdlKHZhbHVl
KTsKKyAgICByZXN1bHQgPSBKU1N0b3JhZ2U6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBN
ZXNzYWdlUG9ydEFycmF5JiByZXN1bHQpCkBAIC0yMjIsNyArMjIyLDcgQEAgdm9pZCBKU0RpY3Rp
b25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPFVpbnQKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPE1lZGlhS2V5RXJyb3I+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9NZWRpYUtleUVy
cm9yKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhS2V5RXJyb3I6OnRvSW1wbCh2YWx1ZSk7
CiB9CiAjZW5kaWYKIApAQCAtMjQxLDEyICsyNDEsMTIgQEAgdm9pZCBKU0RpY3Rpb25hcnk6OmNv
bnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE1l
ZGkKICNpZiBFTkFCTEUoRk9OVF9MT0FEX0VWRU5UUykKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252
ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxDU1NG
b250RmFjZVJ1bGU+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9DU1NGb250RmFjZVJ1bGUo
dmFsdWUpOworICAgIHJlc3VsdCA9IEpTQ1NTRm9udEZhY2VSdWxlOjp0b0ltcGwodmFsdWUpOwog
fQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RE9NRXJyb3I+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0
ID0gdG9ET01FcnJvcih2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNET01FcnJvcjo6dG9JbXBsKHZh
bHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYgcmVzdWx0
KQpAQCAtMjYxLDcgKzI2MSw3IEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyCiAjaWYgRU5BQkxF
KEdBTUVQQUQpCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8R2FtZXBhZD4mIHJlc3VsdCkKIHsKLSAgICBy
ZXN1bHQgPSB0b0dhbWVwYWQodmFsdWUpOworICAgIHJlc3VsdCA9IEpTR2FtZXBhZDo6dG9JbXBs
KHZhbHVlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCmluZGV4IDUyMTBmMTIuLmY1NGE1OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCkBA
IC01OCw3ICs1OCw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50VGFyZ2V0KiB0YXJnCiAgICAgaWYgKHZhbHVlLmlu
aGVyaXRzKEpTIyNpbnRlcmZhY2VOYW1lOjppbmZvKCkpKSAgICAgICAgICAgICAgICAgICAgICBc
CiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTIyNpbnRlcmZhY2VOYW1lKj4oYXNPYmplY3QodmFs
dWUpKS0+aW1wbCgpOwogCi1FdmVudFRhcmdldCogdG9FdmVudFRhcmdldChKU0M6OkpTVmFsdWUg
dmFsdWUpCitFdmVudFRhcmdldCogSlNFdmVudFRhcmdldDo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKERPTVdpbmRvd1NoZWxs
KQogICAgIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoRXZlbnRUYXJnZXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcAppbmRleCBiZGUyNWIw
Li5mNjI2MmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2Vw
dGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhjZXB0aW9u
QmFzZS5jcHAKQEAgLTQxLDIwICs0MSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEV4Y2Vw
dGlvbkJhc2UqIHRvRXhjZXB0aW9uQmFzZShKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYg
KERPTUNvcmVFeGNlcHRpb24qIGRvbUV4Y2VwdGlvbiA9IHRvRE9NQ29yZUV4Y2VwdGlvbih2YWx1
ZSkpCisgICAgaWYgKERPTUNvcmVFeGNlcHRpb24qIGRvbUV4Y2VwdGlvbiA9IEpTRE9NQ29yZUV4
Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
RXhjZXB0aW9uQmFzZSo+KGRvbUV4Y2VwdGlvbik7Ci0gICAgaWYgKFJhbmdlRXhjZXB0aW9uKiBy
YW5nZUV4Y2VwdGlvbiA9IHRvUmFuZ2VFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChSYW5nZUV4
Y2VwdGlvbiogcmFuZ2VFeGNlcHRpb24gPSBKU1JhbmdlRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUp
KQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4ocmFuZ2VF
eGNlcHRpb24pOwotICAgIGlmIChFdmVudEV4Y2VwdGlvbiogZXZlbnRFeGNlcHRpb24gPSB0b0V2
ZW50RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoRXZlbnRFeGNlcHRpb24qIGV2ZW50RXhjZXB0
aW9uID0gSlNFdmVudEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KGV2ZW50RXhjZXB0aW9uKTsKLSAgICBpZiAo
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24qIHhtbEh0dHBFeGNlcHRpb24gPSB0b1hNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24qIHht
bEh0dHBFeGNlcHRpb24gPSBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjp0b0ltcGwodmFsdWUp
KQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4oeG1sSHR0
cEV4Y2VwdGlvbik7Ci0gICAgaWYgKFNWR0V4Y2VwdGlvbiogc3ZnRXhjZXB0aW9uID0gdG9TVkdF
eGNlcHRpb24odmFsdWUpKQorICAgIGlmIChTVkdFeGNlcHRpb24qIHN2Z0V4Y2VwdGlvbiA9IEpT
U1ZHRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxFeGNlcHRpb25CYXNlKj4oc3ZnRXhjZXB0aW9uKTsKLSAgICBpZiAoWFBhdGhFeGNlcHRp
b24qIHBhdGhFeGNlcHRpb24gPSB0b1hQYXRoRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoWFBh
dGhFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSBKU1hQYXRoRXhjZXB0aW9uOjp0b0ltcGwodmFs
dWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4ocGF0
aEV4Y2VwdGlvbik7CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBpZiAoU1FMRXhjZXB0
aW9uKiBwYXRoRXhjZXB0aW9uID0gdG9TUUxFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChTUUxF
eGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSBKU1NRTEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkK
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHBhdGhFeGNl
cHRpb24pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDFkNDBjNjAuLmJmYzFkZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVt
ZW50Q3VzdG9tLmNwcApAQCAtNDAsNyArNDAsNyBAQCB2b2lkIEpTSFRNTE1lZGlhRWxlbWVudDo6
c2V0Q29udHJvbGxlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlKQogICAgIC8vIE9uIHNldHRp
bmcsIGl0IG11c3QgZmlyc3QgcmVtb3ZlIHRoZSBlbGVtZW50J3MgbWVkaWFncm91cCBhdHRyaWJ1
dGUsIGlmIGFueSwgCiAgICAgaW1wbCgpLnNldE1lZGlhR3JvdXAoU3RyaW5nKCkpOwogICAgIC8v
IGFuZCB0aGVuIHNldCB0aGUgY3VycmVudCBtZWRpYSBjb250cm9sbGVyIHRvIHRoZSBnaXZlbiB2
YWx1ZS4KLSAgICBpbXBsKCkuc2V0Q29udHJvbGxlcih0b01lZGlhQ29udHJvbGxlcih2YWx1ZSkp
OworICAgIGltcGwoKS5zZXRDb250cm9sbGVyKEpTTWVkaWFDb250cm9sbGVyOjp0b0ltcGwodmFs
dWUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IDc0YTU4NjcuLjcxZjNk
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnND
b2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBKU0hU
TUxPcHRpb25zQ29sbGVjdGlvbjo6aW5kZXhTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBpbmRleCwgSlNWYWwKIEpTVmFsdWUgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmFkZChFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgSFRNTE9wdGlvbnNDb2xsZWN0aW9uJiBpbXAgPSBpbXBsKCk7
Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZXhl
Yy0+YXJndW1lbnQoMCkpOworICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxP
cHRpb25FbGVtZW50Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQogICAgICAgICBp
bXAuYWRkKG9wdGlvbiwgZWMpOwpAQCAtODEsNyArODEsNyBAQCBKU1ZhbHVlIEpTSFRNTE9wdGlv
bnNDb2xsZWN0aW9uOjpyZW1vdmUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIFRoZSBhcmd1
bWVudCBjYW4gYmUgYW4gSFRNTE9wdGlvbkVsZW1lbnQgb3IgYW4gaW5kZXguCiAgICAgSlNWYWx1
ZSBhcmd1bWVudCA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAgIGlmIChIVE1MT3B0aW9uRWxlbWVu
dCogb3B0aW9uID0gdG9IVE1MT3B0aW9uRWxlbWVudChhcmd1bWVudCkpCisgICAgaWYgKEhUTUxP
cHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwoYXJndW1l
bnQpKQogICAgICAgICBpbXBsKCkucmVtb3ZlKG9wdGlvbik7CiAgICAgZWxzZQogICAgICAgICBp
bXBsKCkucmVtb3ZlKGFyZ3VtZW50LnRvSW50MzIoZXhlYykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcAppbmRl
eCA0M2Y2OTRiLi5kZGQwOTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDMsNyArNDMsNyBAQCBK
U1ZhbHVlIEpTSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
ICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8g
VGhlIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUoKSBmdW5jdGlvbiBjYW4gdGFrZSBlaXRoZXIg
YW4gb3B0aW9uIG9iamVjdCBvciB0aGUgaW5kZXggb2YgYW4gb3B0aW9uLgotICAgICAgICBpZiAo
SFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZXhlYy0+YXJn
dW1lbnQoMCkpKQorICAgICAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRN
TE9wdGlvbkVsZW1lbnQ6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpCiAgICAgICAgICAgICBz
ZWxlY3QucmVtb3ZlKG9wdGlvbik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNlbGVjdC5y
ZW1vdmVCeUluZGV4KGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYykpOwpAQCAtNTgsNyAr
NTgsNyBAQCB2b2lkIHNlbGVjdEluZGV4U2V0dGVyKEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3Qs
IEpTQzo6RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZAogICAgICAgICBzZWxlY3QtPnJlbW92ZUJ5
SW5kZXgoaW5kZXgpOwogICAgIGVsc2UgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQo
dmFsdWUpOworICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9u
RWxlbWVudDo6dG9JbXBsKHZhbHVlKTsKICAgICAgICAgaWYgKCFvcHRpb24pCiAgICAgICAgICAg
ICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3Rv
bS5jcHAKaW5kZXggZjRiNTU1Zi4uZjU3NDEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcApA
QCAtMTMxLDcgKzEzMSw3IEBAIEpTVmFsdWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dD
b250ZXh0TWVudShFeGVjU3RhdGUqIGV4ZWMpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotICAgIEV2ZW50KiBldmVudCA9IHRvRXZlbnQoZXhlYy0+YXJndW1lbnQoMCkpOwor
ICAgIEV2ZW50KiBldmVudCA9IEpTRXZlbnQ6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSk7CiAK
ICAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkoZXhlYy0+YXJndW1lbnQoMSkpOwogICAgIENv
bnRleHRNZW51IG1lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01l
c3NhZ2VFdmVudEN1c3RvbS5jcHAKaW5kZXggYmE5ZTNjYy4uOWJiM2ZkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAt
OTUsNyArOTUsNyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGhhbmRsZUluaXRNZXNzYWdlRXZlbnQo
SlNNZXNzYWdlRXZlbnQqIGpzRXZlbnQsIEpTQzo6RXhlY1N0YQogICAgIGJvb2wgY2FuY2VsYWJs
ZUFyZyA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvQm9vbGVhbihleGVjKTsKICAgICBjb25zdCBTdHJp
bmcgb3JpZ2luQXJnID0gZXhlYy0+YXJndW1lbnQoNCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpOwogICAgIGNvbnN0IFN0cmluZyBsYXN0RXZlbnRJZEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDUp
LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKLSAgICBET01XaW5kb3cqIHNvdXJjZUFyZyA9
IHRvRE9NV2luZG93KGV4ZWMtPmFyZ3VtZW50KDYpKTsKKyAgICBET01XaW5kb3cqIHNvdXJjZUFy
ZyA9IEpTRE9NV2luZG93Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoNikpOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxNZXNzYWdlUG9ydEFycmF5PiBtZXNzYWdlUG9ydHM7CiAgICAgT3duUHRyPEFycmF5
QnVmZmVyQXJyYXk+IGFycmF5QnVmZmVyczsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDcpLmlz
VW5kZWZpbmVkT3JOdWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKaW5kZXggNzVhYmUxOC4uOTQ2ZmUyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKQEAg
LTg0LDcgKzg0LDcgQEAgdm9pZCBmaWxsTWVzc2FnZVBvcnRBcnJheShKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEEKICAgICAgICAgfQogCiAgICAg
ICAgIC8vIFZhbGlkYXRpb24gb2YgT2JqZWN0cyBpbXBsZW1lbnRpbmcgYW4gaW50ZXJmYWNlLCBw
ZXIgV2ViSURMIHNwZWMgNC4xLjE1LgotICAgICAgICBSZWZQdHI8TWVzc2FnZVBvcnQ+IHBvcnQg
PSB0b01lc3NhZ2VQb3J0KHZhbHVlKTsKKyAgICAgICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0
ID0gSlNNZXNzYWdlUG9ydDo6dG9JbXBsKHZhbHVlKTsKICAgICAgICAgaWYgKHBvcnQpIHsKICAg
ICAgICAgICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGUgcG9ydHMuCiAgICAgICAgICAgICBpZiAo
cG9ydEFycmF5LmNvbnRhaW5zKHBvcnQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlQ3VzdG9tLmNwcAppbmRleCBkMzYyNGUxLi5kZDdiMjM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCBib29s
IEpTTm9kZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVua25vd24+IGhhbmRsZSwgdgogSlNWYWx1ZSBKU05vZGU6Omluc2VydEJlZm9yZShFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGlt
cGwoKS5pbnNlcnRCZWZvcmUodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4ZWMt
PmFyZ3VtZW50KDEpKSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBsKCkuaW5zZXJ0QmVmb3JlKEpT
Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJn
dW1lbnQoMSkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAo
b2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE0NSw3ICsxNDUsNyBA
QCBKU1ZhbHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFsdWUg
SlNOb2RlOjpyZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkucmVwbGFjZUNoaWxkKHRvTm9kZShleGVj
LT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKKyAgICBib29s
IG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZChKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgw
KSksIEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOwogICAgIHNldERPTUV4
Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJn
dW1lbnQoMSk7CkBAIC0xNTUsNyArMTU1LDcgQEAgSlNWYWx1ZSBKU05vZGU6OnJlcGxhY2VDaGls
ZChFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTTm9kZTo6cmVtb3ZlQ2hpbGQoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBs
KCkucmVtb3ZlQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOworICAgIGJvb2wg
b2sgPSBpbXBsKCkucmVtb3ZlQ2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkp
LCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAg
ICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE2NSw3ICsxNjUsNyBAQCBKU1ZhbHVl
IEpTTm9kZTo6cmVtb3ZlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU05vZGU6OmFw
cGVuZENoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBib29sIG9rID0gaW1wbCgpLmFwcGVuZENoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgw
KSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLmFwcGVuZENoaWxkKEpTTm9kZTo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAppbmRleCAy
OGMxNmMxLi40ZTE0N2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U05vZGVGaWx0ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckN1c3RvbS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgdm9pZCBKU05vZGVGaWx0ZXI6
OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAg
dmlzaXRvci5hZGRPcGFxdWVSb290KCZpbXBsKCkpOwogfQogCi1QYXNzUmVmUHRyPE5vZGVGaWx0
ZXI+IHRvTm9kZUZpbHRlcihKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQorUGFzc1Jl
ZlB0cjxOb2RlRmlsdGVyPiBKU05vZGVGaWx0ZXI6OnRvSW1wbChKU0M6OlZNJiB2bSwgSlNDOjpK
U1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU05vZGVGaWx0ZXI6Omlu
Zm8oKSkpCiAgICAgICAgIHJldHVybiAmSlNDOjpqc0Nhc3Q8SlNOb2RlRmlsdGVyKj4oYXNPYmpl
Y3QodmFsdWUpKS0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCmluZGV4IGY0MDVhMDMuLjY4ODBhMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAK
QEAgLTE0NSw3ICsxNDUsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjplbmNyeXB0KEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAg
UmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBKU1ZhbHVlIEpT
U3VidGxlQ3J5cHRvOjpkZWNyeXB0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9Dcnlw
dG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+
IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwog
ICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAg
LTI0OCw3ICsyNDgsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpzaWduKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRy
PENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkp
OworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTI5OSw3ICsyOTksNyBAQCBKU1ZhbHVlIEpTU3VidGxl
Q3J5cHRvOjp2ZXJpZnkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0g
SlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYg
KCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtNjAwLDcg
KzYwMCw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmV4cG9ydEtleShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxD
cnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsK
KyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKGV4ZWMpOwogCkBAIC02MzAsMTEgKzYzMCwxMSBAQCBKU1ZhbHVlIEpTU3VidGxl
Q3J5cHRvOjp3cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXko
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9
IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlm
ICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKLSAgICBSZWZQ
dHI8Q3J5cHRvS2V5PiB3cmFwcGluZ0tleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDIpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiB3cmFwcGluZ0tleSA9IEpTQ3J5cHRv
S2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikpOwogICAgIGlmICgha2V5KQog
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTcxMyw3ICs3MTMsNyBA
QCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp1bndyYXBLZXkoRXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5
PiB1bndyYXBwaW5nS2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikp
OworICAgIFJlZlB0cjxDcnlwdG9LZXk+IHVud3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKICAgICBpZiAoIXVud3JhcHBpbmdLZXkp
CiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwCmluZGV4IGM1ZjIxNjEuLmZlNTFmYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAK
QEAgLTI1Nyw3ICsyNTcsNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRB
dHRhY2hlZFNoYWRlcnMoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0o
KS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0
JiBjb250ZXh0ID0gaW1wbCgpOwotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQ
cm9ncmFtKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHBy
b2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKICAgICBpZiAoIXByb2dyYW0gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5k
ZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAg
ICBWZWN0b3I8UmVmUHRyPFdlYkdMU2hhZGVyPj4gc2hhZGVyczsKQEAgLTM0MSw3ICszNDEsNyBA
QCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyKEV4
ZWNTdGF0ZSogZXhlYykKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0qIHByb2dy
YW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2Vi
R0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvSW1wbChleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJy
b3IoZXhlYyk7CiAgICAgdW5zaWduZWQgcG5hbWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgx
KS50b0ludDMyKGV4ZWMpOwpAQCAtMzY5LDcgKzM2OSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0gaW1wbCgpOwogICAgIGlmICghZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMCkuaW5oZXJpdHMoSlNXZWJHTFNoYWRlcjo6aW5mbygpKSkKICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwotICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSB0b1dl
YkdMU2hhZGVyKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFNoYWRlciog
c2hhZGVyID0gSlNXZWJHTFNoYWRlcjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKICAgICB1bnNpZ25lZCBwbmFtZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50
MzIoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKQEAgLTQwNSwxMCArNDA1LDEwIEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldFVuaWZvcm0oRXhlY1N0YXRlKiBleGVjKQogCiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0gaW1wbCgp
OwotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dlYkdMUHJv
Z3JhbTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIXByb2dy
YW0gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKLSAgICBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDEpKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdM
VW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAg
IGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlzVW5kZWZpbmVk
T3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJH
TEdldEluZm8gaW5mbyA9IGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbiwgZWMp
OwpAQCAtNDc4LDcgKzQ3OCw3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihE
YXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFdlCiAgICAgbG9uZyBp
bmRleCA9IC0xOwogICAgIAogICAgIGlmIChmdW5jdGlvbkZvclVuaWZvcm0oZikpIHsKLSAgICAg
ICAgbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKKyAgICAgICAgbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b0lt
cGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgICAgICBpZiAoIWxvY2F0aW9uICYm
ICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAg
ICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIH0gZWxzZQpAQCAtNTY0LDcg
KzU2NCw3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25U
b0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFdlCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihl
eGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAKLSAgICBXZWJHTFVu
aWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24g
PSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MCkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlz
VW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsK
ICAgCkBAIC02MjQsNyArNjI0LDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25N
YXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXQKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRo
cm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsK
IAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9j
YXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFdlYkdMVW5pZm9ybUxvY2F0
aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvSW1wbChleGVjLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKGV4ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmluZGV4IGM5ZWRjZmEuLmY5YWUxNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20u
Y3BwCkBAIC0xNDgsMTEgKzE0OCwxMSBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQo
RXhlY1N0YXRlKiBleGVjKQogICAgIGlmICh2YWwuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAg
ICAgaW1wbCgpLnNlbmQoZWMpOwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0RvY3VtZW50
OjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2VuZCh0b0RvY3VtZW50KHZhbCksIGVjKTsKKyAg
ICAgICAgaW1wbCgpLnNlbmQoSlNEb2N1bWVudDo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNl
IGlmICh2YWwuaW5oZXJpdHMoSlNCbG9iOjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2VuZCh0
b0Jsb2IodmFsKSwgZWMpOworICAgICAgICBpbXBsKCkuc2VuZChKU0Jsb2I6OnRvSW1wbCh2YWwp
LCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTRE9NRm9ybURhdGE6OmluZm8oKSkp
Ci0gICAgICAgIGltcGwoKS5zZW5kKHRvRE9NRm9ybURhdGEodmFsKSwgZWMpOworICAgICAgICBp
bXBsKCkuc2VuZChKU0RPTUZvcm1EYXRhOjp0b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYg
KHZhbC5pbmhlcml0cyhKU0FycmF5QnVmZmVyOjppbmZvKCkpKQogICAgICAgICBpbXBsKCkuc2Vu
ZCh0b0FycmF5QnVmZmVyKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNB
cnJheUJ1ZmZlclZpZXc6OmluZm8oKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDI4ZjIyZGEuLjcwZTkyMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcApAQCAtNzg0LDEyICs3ODQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICB3cml0ZShvYmotPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChGaWxlKiBmaWxl
ID0gdG9GaWxlKG9iaikpIHsKKyAgICAgICAgICAgIGlmIChGaWxlKiBmaWxlID0gSlNGaWxlOjp0
b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEZpbGVUYWcpOwogICAgICAgICAg
ICAgICAgIHdyaXRlKGZpbGUpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaWYgKEZpbGVMaXN0KiBsaXN0ID0gdG9GaWxlTGlzdChvYmop
KSB7CisgICAgICAgICAgICBpZiAoRmlsZUxpc3QqIGxpc3QgPSBKU0ZpbGVMaXN0Ojp0b0ltcGwo
b2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEZpbGVMaXN0VGFnKTsKICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKICAgICAgICAgICAgICAgICB3
cml0ZShsZW5ndGgpOwpAQCAtNzk3LDcgKzc5Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgICAgIHdyaXRlKGxpc3QtPml0ZW0oaSkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKEJsb2IqIGJsb2IgPSB0b0Jsb2Iob2Jq
KSkgeworICAgICAgICAgICAgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvSW1wbChvYmopKSB7
CiAgICAgICAgICAgICAgICAgd3JpdGUoQmxvYlRhZyk7CiAgICAgICAgICAgICAgICAgbV9ibG9i
VVJMcy5hcHBlbmQoYmxvYi0+dXJsKCkpOwogICAgICAgICAgICAgICAgIHdyaXRlKGJsb2ItPnVy
bCgpKTsKQEAgLTgwNSw3ICs4MDUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHdyaXRl
KGJsb2ItPnNpemUoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAoSW1hZ2VEYXRhKiBkYXRhID0gdG9JbWFnZURhdGEob2JqKSkg
eworICAgICAgICAgICAgaWYgKEltYWdlRGF0YSogZGF0YSA9IEpTSW1hZ2VEYXRhOjp0b0ltcGwo
b2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEltYWdlRGF0YVRhZyk7CiAgICAgICAgICAg
ICAgICAgd3JpdGUoZGF0YS0+d2lkdGgoKSk7CiAgICAgICAgICAgICAgICAgd3JpdGUoZGF0YS0+
aGVpZ2h0KCkpOwpAQCAtODY1LDcgKzg2NSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHN1Y2Nlc3M7CiAgICAgICAgICAgICB9CiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8p
Ci0gICAgICAgICAgICBpZiAoQ3J5cHRvS2V5KiBrZXkgPSB0b0NyeXB0b0tleShvYmopKSB7Cisg
ICAgICAgICAgICBpZiAoQ3J5cHRvS2V5KiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKG9iaikp
IHsKICAgICAgICAgICAgICAgICB3cml0ZShDcnlwdG9LZXlUYWcpOwogICAgICAgICAgICAgICAg
IFZlY3Rvcjx1aW50OF90PiBzZXJpYWxpemVkS2V5OwogICAgICAgICAgICAgICAgIFZlY3RvcjxT
dHJpbmc+IGR1bW15QmxvYlVSTHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDhkNTRkYTEuLmYzNDQ0ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC04NzQsNiArODc0LDE3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpOwogICAgIH0KIAorICAgICMgSlNWYWx1ZSB0
byBpbXBsZW1lbnRhdGlvbiB0eXBlCisgICAgaWYgKCEkaGFzUGFyZW50IHx8ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QifSkgeworICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGVGaWx0ZXIiKSB7CisgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAic3RhdGljIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9JbXBs
KEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUpO1xuIik7CisgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01TdHJpbmdMaXN0IikgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgInN0YXRpYyBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvSW1wbChKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJXRUJDT1JFX0VYUE9SVCBzdGF0aWMgJGltcGxUeXBlKiB0
b0ltcGwoSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICB9CisgICAgfQorCiAgICAgJGhlYWRl
clRyYWlsaW5nSW5jbHVkZXN7IiR7Y2xhc3NOYW1lfUN1c3RvbS5oIn0gPSAxIGlmICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUhlYWRlciJ9OwogCiAgICAgbXkgJG5h
bWVkR2V0dGVyRnVuY3Rpb24gPSBHZXROYW1lZEdldHRlckZ1bmN0aW9uKCRpbnRlcmZhY2UpOwpA
QCAtMTE2NiwxNSArMTE3Nyw2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmIChTaG91bGRH
ZW5lcmF0ZVRvSlNEZWNsYXJhdGlvbigkaGFzUGFyZW50LCAkaW50ZXJmYWNlKSkgewogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbXBsVHlwZSopO1xuIik7CiAg
ICAgfQotICAgIGlmICghJGhhc1BhcmVudCB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKLSAgICAgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJOb2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIlBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpTQzo6Vk0mLCBKU0M6OkpT
VmFsdWUpO1xuIik7Ci0gICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01TdHJp
bmdMaXN0IikgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlBhc3NSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gdG9ET01TdHJpbmdMaXN0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlKTtcbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIldFQkNPUkVfRVhQT1JUICRpbXBsVHlwZSogdG8ke2ludGVyZmFjZU5hbWV9KEpTQzo6
SlNWYWx1ZSk7XG4iKTsKLSAgICAgICAgfQotICAgIH0KICAgICBpZiAoJHVzZXNUb0pTTmV3bHlD
cmVhdGVkeyRpbnRlcmZhY2VOYW1lfSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
SlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4iKTsKICAgICB9CkBAIC0zMTEyLDcgKzMxMTQs
NyBAQCBFTkQKICAgICB9CiAKICAgICBpZiAoKCEkaGFzUGFyZW50IG9yICRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QifSkgYW5kICEkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Ub05hdGl2ZU9iamVjdCJ9KSB7
Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJGltcGxUeXBlKiB0byR7aW50ZXJmYWNlTmFt
ZX0oSlNDOjpKU1ZhbHVlIHZhbHVlKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
JGltcGxUeXBlKiAke2NsYXNzTmFtZX06OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpXG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSAiIC4gR2V0Q2FzdGluZ0hlbHBlckZvclRo
aXNPYmplY3QoJGludGVyZmFjZSkgLiAiKHZhbHVlKSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7XG4iKTsKQEAgLTMyNDMs
NyArMzI0NSw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogCiAgICAgICAgIGlmICgk
YXJnVHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IGN1c3RvbVJlc29sdmVyO1xuIik7
Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgWFBhdGhOU1Jlc29sdmVyKiBy
ZXNvbHZlciA9IHRvWFBhdGhOU1Jlc29sdmVyKGV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKTtc
biIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFhQYXRoTlNSZXNvbHZl
ciogcmVzb2x2ZXIgPSBKU1hQYXRoTlNSZXNvbHZlcjo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KCRh
cmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlm
ICghcmVzb2x2ZXIpIHtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICBjdXN0b21SZXNvbHZlciA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoZXhl
YywgZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkp
XG4iKTsKQEAgLTMyOTYsNyArMzI5OCw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawog
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBmb3IgKHVuc2lnbmVkIGkg
PSAkYXJnc0luZGV4LCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgaSA8IGNvdW50OyAr
K2kpIHtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAg
aWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKS5pbmhlcml0cyhKUyR7YXJnVHlwZX06Omlu
Zm8oKSkpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAg
ICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgaSwgXCIkbmFtZVwiLCBc
IiRpbnRlcmZhY2VOYW1lXCIsICRxdW90ZWRGdW5jdGlvbk5hbWUsIFwiJGFyZ1R5cGVcIik7XG4i
KTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1lLmFw
cGVuZCh0byRhcmdUeXBlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1lLmFwcGVuZChKUyR7
YXJnVHlwZX06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpO1xuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpCiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBWZWN0b3I8
JG5hdGl2ZUVsZW1lbnRUeXBlPiAkbmFtZSA9IHRvTmF0aXZlQXJndW1lbnRzPCRuYXRpdmVFbGVt
ZW50VHlwZT4oZXhlYywgJGFyZ3NJbmRleCk7XG4iKTsKQEAgLTM4NDksNyArMzg1MSw3IEBAIHN1
YiBKU1ZhbHVlVG9OYXRpdmUKIAogICAgIGlmICgkdHlwZSBlcSAiTm9kZUZpbHRlciIpIHsKICAg
ICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25kaXRpb25hbCk7Ci0gICAg
ICAgIHJldHVybiAidG8kdHlwZShleGVjLT52bSgpLCAkdmFsdWUpIjsKKyAgICAgICAgcmV0dXJu
ICJKUyR7dHlwZX06OnRvSW1wbChleGVjLT52bSgpLCAkdmFsdWUpIjsKICAgICB9CiAKICAgICBp
ZiAoJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKQEAgLTM4OTIsNyArMzg5NCw3
IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKIAogICAgICMgRGVmYXVsdCwgYXNzdW1lIGF1dG9nZW5l
cmF0ZWQgdHlwZSBjb252ZXJzaW9uIHJvdXRpbmVzCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpT
JHR5cGUuaCIsICRjb25kaXRpb25hbCk7Ci0gICAgcmV0dXJuICJ0byR0eXBlKCR2YWx1ZSkiOwor
ICAgIHJldHVybiAiSlMke3R5cGV9Ojp0b0ltcGwoJHZhbHVlKSI7CiB9CiAKIHN1YiBOYXRpdmVU
b0pTVmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFlMzdlZWMuLmI0Mjg5MTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaApAQCAtNjg5LDYgKzY4OSwyOSBAQCBzdHJ1Y3QgRWxlbWVudFR5cGVDYXN0VHJh
aXRzPEV4cGVjdGVkVHlwZSwgRXhwZWN0ZWRUeXBlPiB7CiAgICAgc3RhdGljIGJvb2wgaXMoRXhw
ZWN0ZWRUeXBlJikgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAorLy8gVGhlc2UgZnVuY3Rpb25zIGFy
ZSBjYWxsZWQgYnkgdG9YWFhFbGVtZW50KCkgY2FzdGluZyBoZWxwZXJzLgorLy8gRG8gbm90IGNh
bGwgdGhlc2UgZGlyZWN0bHkuCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCYgdG9FbGVt
ZW50KE5vZGUmIG5vZGUpCit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
aXNFbGVtZW50T2ZUeXBlPGNvbnN0IFQ+KG5vZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
VCY+KG5vZGUpOworfQordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFQqIHRvRWxlbWVudChO
b2RlKiBub2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2Rl
IHx8IGlzRWxlbWVudE9mVHlwZTxjb25zdCBUPigqbm9kZSkpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxUKj4obm9kZSk7Cit9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgY29uc3QgVCYg
dG9FbGVtZW50KGNvbnN0IE5vZGUmIG5vZGUpCit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oaXNFbGVtZW50T2ZUeXBlPGNvbnN0IFQ+KG5vZGUpKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgVCY+KG5vZGUpOworfQordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5s
aW5lIGNvbnN0IFQqIHRvRWxlbWVudChjb25zdCBOb2RlKiBub2RlKQoreworICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IGlzRWxlbWVudE9mVHlwZTxjb25zdCBU
Pigqbm9kZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUKj4obm9kZSk7Cit9CisK
IGlubGluZSBib29sIE5vZGU6Omhhc0F0dHJpYnV0ZXMoKSBjb25zdAogewogICAgIHJldHVybiBp
c0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KHRoaXMpLT5oYXNBdHRyaWJ1dGVzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDM4OWMyYjguLmYwODZmNzkgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9t
YWtlX25hbWVzLnBsCkBAIC02NjMsNiArNjYzLDggQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEFyZ1R5
cGU+CiBzdHJ1Y3QgRWxlbWVudFR5cGVDYXN0VHJhaXRzPGNvbnN0ICRjbGFzcywgQXJnVHlwZT4g
ewogICAgIHN0YXRpYyBib29sIGlzKEFyZ1R5cGUmIG5vZGUpIHsgcmV0dXJuICRjaGVja0hlbHBl
cihub2RlKTsgfQogfTsKKworI2RlZmluZSB0byRjbGFzcyh4KSBXZWJDb3JlOjp0b0VsZW1lbnQ8
V2ViQ29yZTo6JGNsYXNzPih4KQogRU5ECiAgICAgICAgIDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDQ2NjkxNjMuLjIzMmIwMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKQEAgLTE1NSw4ICsxNTUsNiBAQCBib29sIGlzRW50
ZXJLZXlLZXlkb3duRXZlbnQoRXZlbnQqKTsKIGJvb2wgaXNMaW5rQ2xpY2soRXZlbnQqKTsKIGJv
b2wgc2hvdWxkUHJvaGliaXRMaW5rcyhFbGVtZW50Kik7CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
QW5jaG9yRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRN
TEFuY2hvckVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5kZXgg
YWMwN2U5OC4uOGRiNzU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCkBA
IC03MSw4ICs3MSw2IEBAIHByaXZhdGU6CiAgICAgU2hhcGUgbV9zaGFwZTsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MQXJlYUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oCmluZGV4IDMwZDJhOGYuLjdlODY1OGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oCkBAIC00Myw4ICs0Myw2IEBA
IHByaXZhdGU6CiAgICAgSFRNTEF1ZGlvRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmLCBib29sKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQXVkaW9FbGVtZW50KQot
CiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQmFzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50
LmgKaW5kZXggNDA1NGUxNy4uYjc5OWYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQmFzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxl
bWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MQmFzZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJvZHlFbGVtZW50LmgKaW5kZXggMDE3ZWZjMi4uMGQ0ZDYwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oCkBAIC04MSw4ICs4MSw2IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+
JikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEJvZHlFbGVtZW50
KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5oCmluZGV4IDg4MzdkMDguLjhhYmRlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDYW52YXNFbGVtZW50LmgKQEAgLTE4MCw4ICsxODAsNiBAQCBwcml2YXRlOgogICAgIG11dGFi
bGUgUmVmUHRyPEltYWdlPiBtX2NvcGllZEltYWdlOyAvLyBGSVhNRTogVGhpcyBpcyB0ZW1wb3Jh
cnkgZm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUgdG8gY29weSB0aGUgaW1hZ2UgYnVmZmVyIHRvIHJl
bmRlciAoYW5kIGZvciBDU1NDYW52YXNWYWx1ZSkuCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TENhbnZhc0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAppbmRleCBjNDFmNmY0Li4wNzNjZDU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNPcGVuOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEZXRh
aWxzRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTERl
dGFpbHNFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAppbmRleCAxYjVk
MjBhLi5mZjgxYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCkBAIC00MCw4
ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxEaXZFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBIVE1MRGl2RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCmlu
ZGV4IGQ5ZmQ0NTIuLmNkZDNiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVtYmVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oCkBAIC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJhbWV0ZXJzRm9yUGx1
Z2luKFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1
ZXMpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxFbWJlZEVsZW1lbnQpCi0KIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCmluZGV4IDdjMTNl
YTAuLjNhMDIyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5o
CkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSB1aW50NjRfdCBtX2RvY3Vt
ZW50VmVyc2lvbjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRmllbGRTZXRFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5oCmluZGV4IGM0NjlkY2UuLmZjM2RiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuaApAQCAtMjAxLDggKzIwMSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MRm9ybUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEhUTUxGb3JtRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudC5oCmluZGV4IDU1NzljOTguLjZlNGZiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZyYW1l
Qm9yZGVyU2V0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGcmFtZUVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxGcmFtZUVsZW1lbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAppbmRleCA4MGU3ZjJhLi4yNzI5
MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAtMTAw
LDggKzEwMCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25vcmVzaXplOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxGcmFtZVNldEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEhUTUxGcmFtZVNldEVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0
bWxFbGVtZW50LmgKaW5kZXggYjk2NmM4Ny4uMGY4M2I5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxIdG1sRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKEhUTUxIdG1sRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggOWFlMTkz
Mi4uZjBlYmNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAt
NDcsOCArNDcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElGcmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxJRnJhbWVFbGVtZW50X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggMzI0OTQ4Yi4uNmFkNDU0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBwcml2YXRl
OgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEltYWdlRWxlbWVudCkKLQogfSAv
L25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
aW5kZXggZTM4ODViY2MuLmQ3YTY1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCkBAIC00NDgsNyArNDQ4LDUgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxJbnB1dEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAppbmRleCBhZWE1MjM3Li5jYThlZTYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaApAQCAtNTUsOCArNTUsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVj
dGlvbiwgRm9jdXNEaXJlY3Rpb24pIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhU
TUxMYWJlbEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKaW5kZXggMjQ1NjhiZC4uOTEwNGFiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtNDUsOCArNDUsNiBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0IG92ZXJy
aWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxMZWdlbmRFbGVtZW50KQotCiB9IC8vbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKaW5kZXgg
NjViMzI0MS4uY2JmNTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCkBA
IC0xMzcsOCArMTM3LDYgQEAgcHJpdmF0ZToKICAgICBQZW5kaW5nU2hlZXRUeXBlIG1fcGVuZGlu
Z1NoZWV0VHlwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTGlua0VsZW1lbnQpCi0KIH0g
Ly9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNYXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKaW5k
ZXggOWFlNDQ2Ny4uNjE3YWExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWFwRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaApA
QCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIEF0b21pY1N0cmluZyBtX25hbWU7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1hcEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlcwogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCmluZGV4IGQxMDk4
MmIuLjk2MzllOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaApA
QCAtNjQsOCArNjQsNiBAQCBwcml2YXRlOgogICAgIFJlbmRlck1hcnF1ZWUqIHJlbmRlck1hcnF1
ZWUoKSBjb25zdDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTWFycXVlZUVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxNYXJxdWVlRWxlbWVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAppbmRleCAxNTljM2FhLi4wNDU3ODE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3MoKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
TWV0YUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IDlkODIxNzIuLmEyOGNiNDQ5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKQEAgLTgxLDggKzgxLDYgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IG1fdmFsdWU7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoSFRNTE1ldGVyRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCmluZGV4IDk4OWQ3OTUuLjFmMGFh
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFJlY2FsY3VsYXRlSXRlbUNvdW50IDogMTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT0xpc3RFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IDJj
NDkxOTMuLmY4ZTdhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgK
QEAgLTEwMyw4ICsxMDMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VGYWxsYmFja0NvbnRl
bnQgOiAxOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPYmplY3RFbGVtZW50KQotCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRleCA2
ODljZTRiLi41N2EzNzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0
aW9ucygpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRHcm91cEVsZW1lbnQpCi0KIH0g
Ly9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmgKaW5kZXggNjQ3ZDAxZS4uNjU0ZWYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaApAQCAtODcsOCArODcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1NlbGVj
dGVkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRpb25FbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBh
cmFtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKaW5k
ZXggNGU4MWQyZC4uZWQ5YjRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGFyYW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50
LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVz
b3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUGFyYW1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
aAppbmRleCBlZWRiODgwLi5jN2ZkOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuaApAQCAtNjcsOCArNjcsNiBAQCBwcml2YXRlOgogICAgIFByb2dyZXNzVmFs
dWVFbGVtZW50KiBtX3ZhbHVlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxQcm9ncmVzc0Vs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5oCmluZGV4IGI4NTAxYjQuLjY4ZDk2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTY3LDggKzY3LDYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbigpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTY3JpcHRF
bGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5oCmluZGV4IGZhOWNiZTQ3Li4yN2ZlZmQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0yMTIsOCArMjEyLDYgQEAgcHJpdmF0ZToKICAg
ICBtdXRhYmxlIGJvb2wgbV9zaG91bGRSZWNhbGNMaXN0SXRlbXM7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTFNlbGVjdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCmluZGV4IDU1NTg3NWMuLjUyMmQ3NDM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCkBAIC01Nyw4ICs1Nyw2
IEBAIHByaXZhdGU6CiAgICAgVGltZXI8SFRNTFNvdXJjZUVsZW1lbnQ+IG1fZXJyb3JFdmVudFRp
bWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTb3VyY2VFbGVtZW50KQotCiB9IC8vbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5
bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAppbmRl
eCA5OTU3YmE1Li45MWYwYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
aApAQCAtNzAsOCArNzAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9sb2FkZWRTaGVldDsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU3R5bGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKaW5kZXggZmJh
YmNkZS4uYmMyMjg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5o
CkBAIC00Niw4ICs0Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29u
c3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFN1bW1hcnlFbGVtZW50KQot
CiB9CiAKICNlbmRpZiAvLyBIVE1MU3VtbWFyeUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCmluZGV4IGYwNjRlMjguLjkwNGMzMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKQEAgLTQx
LDggKzQxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAppbmRleCBjOTc2OGViLi4zY2Nl
ODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaApAQCAtMTAxLDggKzEw
MSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFN0eWxlUHJvcGVydGllcz4gbV9zaGFyZWRDZWxs
U3R5bGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRhYmxlRWxlbWVudCkKLQogfSAvL25h
bWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50
LmgKaW5kZXggMzM4Yjg3OS4uYzRiMGY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVSb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVSb3dFbGVtZW50LmgKQEAgLTUyLDggKzUyLDYgQEAgcHJpdmF0ZToKICAgICBIVE1MVGFibGVS
b3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxUYWJsZVJvd0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAppbmRleCBkN2ZmOTUx
Li5jODFmN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApA
QCAtNTYsOCArNTYsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRyPFRlbXBsYXRlQ29u
dGVudERvY3VtZW50RnJhZ21lbnQ+IG1fY29udGVudDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MVGVtcGxhdGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmgKaW5kZXggYTgwMWY5OS4uYmVkZDBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTEyNiw4ICsxMjYsNiBAQCBwcml2YXRlOgogICAg
IG11dGFibGUgYm9vbCBtX3dhc01vZGlmaWVkQnlVc2VyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxUZXh0QXJlYUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCmluZGV4IGViZTFkM2MuLjVkZTFlYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCkBAIC00Niw4ICs0Niw2IEBAIHByaXZh
dGU6CiAgICAgU3RyaW5nV2l0aERpcmVjdGlvbiBtX3RpdGxlOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxUaXRsZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCmluZGV4IDgzMTcxN2IuLjUyNmRjMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCkBAIC05NCw4ICs5NCw2IEBAIHByaXZh
dGU6CiAgICAgVGltZXI8SFRNTFRyYWNrRWxlbWVudD4gbV9sb2FkVGltZXI7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoSFRNTFRyYWNrRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggYzRkNGY5ZC4uNzZmMDE2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTEwMiw4ICsxMDIsNiBAQCBwcml2YXRl
OgogICAgIEF0b21pY1N0cmluZyBtX2RlZmF1bHRQb3N0ZXJVUkw7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTFZpZGVvRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGZkN2U5
MjMuLjM3ODY1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcApAQCAtMjAxMCw3ICsyMDEwLDcgQEAgTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6
OnNjcmlwdFZhbHVlQXNOb2RlKERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHZhbHVlKQogICAgIGlm
ICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICByZXR1cm4gdG9Ob2RlKHZhbHVlLmpzVmFsdWUoKSk7CisgICAgcmV0dXJu
IEpTTm9kZTo6dG9JbXBsKHZhbHVlLmpzVmFsdWUoKSk7CiB9CiAKIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlIEluc3BlY3RvckRPTUFnZW50Ojpub2RlQXNTY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MTWVuY2xvc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVu
Y2xvc2VFbGVtZW50LmgKaW5kZXggZGM2OWMxMS4uZWU5NzMzNSAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaApAQCAtNTAsOCArNTAsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9pc1JhZGljYWxWYWx1ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhN
YXRoTUxNZW5jbG9zZUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNQVRITUwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKaW5kZXggYWNiMmYzNS4u
YzYzZTM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaApA
QCAtMzgsOCArMzgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdBbHRHbHlwaERlZkVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKaW5kZXggNTA5NWFiNS4uNmJlOWY3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaApAQCAtNTUsOCArNTUs
NiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdBbHRHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5
cGhJdGVtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1l
bnQuaAppbmRleCA4MjQ5Y2I4Li5jN2FmZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bHRHbHlwaEl0ZW1FbGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhJdGVtRWxl
bWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmgKaW5kZXggMzY2NzgxNC4uNDE3ZDVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKQEAgLTcwLDggKzcwLDYgQEAgcHJpdmF0ZToK
ICAgICBQYXRoIG1fcGF0aDsKICAgICBQYXRoIG1fYW5pbWF0aW9uUGF0aDsKIH07Ci0KLU5PREVf
VFlQRV9DQVNUUyhTVkdBbmltYXRlTW90aW9uRWxlbWVudCkKICAgICAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuaAppbmRleCBiZGNmZjcwLi5iMWE0NGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaApAQCAtNDcsOCArNDcsNiBAQCBwcml2YXRl
OgogICAgIFNWR1RyYW5zZm9ybTo6U1ZHVHJhbnNmb3JtVHlwZSBtX3R5cGU7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCmluZGV4IDA3OWZhOTkuLmVjMTgyZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRl
OgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdDaXJjbGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBTVkdDaXJjbGVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuaAppbmRleCA4ZmRlYjAyLi45MzhjZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5oCkBAIC01Niw4ICs1Niw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVf
QU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0NsaXBQYXRoRWxl
bWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
dXJzb3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCmlu
ZGV4IGE1MzAxZTQuLmVhMjIzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
dXJzb3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQu
aApAQCAtNzIsOCArNzIsNiBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8U1ZHRWxlbWVudCo+IG1f
Y2xpZW50czsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDdXJzb3JFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsbGlwc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuaAppbmRleCBkNmIyMGY2Li41YjlmOTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxs
aXBzZUVsZW1lbnQuaApAQCAtNTUsOCArNTUsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJF
X0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdFbGxpcHNlRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaAppbmRleCA3OTlmNmQ1Li42MGVhNDQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oCkBA
IC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPExpZ2h0U291
cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmgKaW5kZXggMzFlYmI0Zi4u
YTRlNmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmgKQEAgLTMzLDgg
KzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNBRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1bmNBRWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRnVuY0JFbGVtZW50LmgKaW5kZXggMzViYzQ0OC4uYWY0OWQ2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBT
VkdGRUZ1bmNCRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1bmNCRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNH
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgKaW5kZXgg
Mzk4NTdlZC4uMWFmYTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVu
Y0dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgK
QEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNHRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1
bmNHRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgKaW5kZXggOWU3MzI3Yy4uYjBkMGViNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0
ZToKICAgICBTVkdGRUZ1bmNSRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1bmNSRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlTm9kZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9k
ZUVsZW1lbnQuaAppbmRleCA1MTU5N2ViLi43MjMzZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHByaXZhdGU6CiAgICAg
RU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R0ZFTWVyZ2VOb2RlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCmluZGV4IGI3MDFi
ZTUuLjM0NTc5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGln
aHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1l
bnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxM
aWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhTVkdGRVBvaW50TGlnaHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCmlu
ZGV4IDgwMzlhZjIuLmZmNmI0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwb3RMaWdodEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGln
aHRFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHRkVTcG90TGlnaHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKaW5kZXgg
OGVhNzNmYi4uMTkzOWUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBA
IC03NSw4ICs3NSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVS
VElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZpbHRlckVsZW1lbnQpCi0KIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCmluZGV4IDhlNDI3NGQuLmViNWM0NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNHbHlwaENhY2hlVmFsaWQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoU1ZHRm9udEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgK
aW5kZXggNmEyMTE2YS4uZGNkMDFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVs
ZW1lbnQuaApAQCAtNjYsOCArNjYsNiBAQCBwcml2YXRlOgogICAgIFNWR0ZvbnRFbGVtZW50KiBt
X2ZvbnRFbGVtZW50OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlRWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCmluZGV4IDNmMjU0
NDUuLmM2ODVmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5h
bWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1l
bnQuaApAQCAtMzksOCArMzksNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZU5hbWVFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCmluZGV4IDNiMDkxNGMuLmJhNWE2NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKQEAgLTQwLDgg
KzQwLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHRm9udEZhY2VTcmNFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlVXJpRWxlbWVudC5oCmluZGV4IDE4OWE3ODkuLjM1MGYxZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0
ZToKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBtX2NhY2hlZEZvbnQ7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VVcmlFbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAppbmRleCA3NWJiNzRiLi5hYjRkMWFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaApAQCAt
NTgsOCArNTgsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJ
RVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb3JlaWduT2JqZWN0RWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHbHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1l
bnQuaAppbmRleCA3YjdkMzhhLi40MDA5ZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2x5cGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxl
bWVudC5oCkBAIC01Nyw4ICs1Nyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlR2x5
cGhDYWNoZSgpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0dseXBoRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAppbmRleCA2ZDhjYWM3Li40NjRmZWVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCkBAIC02MSw4ICs2MSw2IEBA
IHByaXZhdGU6CiAgICAgZmxvYXQgbV9keTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdHbHlw
aFJlZkVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHSEtlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50
LmgKaW5kZXggZTVkOGI3OGYuLjFjMTllMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdIS2VybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVt
ZW50LmgKQEAgLTQyLDggKzQyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHSEtlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5oCmluZGV4IDFhMzYxYzUuLjE3Njc2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBTVkdJbWFn
ZUxvYWRlciBtX2ltYWdlTG9hZGVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ltYWdlRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVFbGVtZW50LmgKaW5kZXggNjRlNzg2My4uNTNmZWFkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFS
RV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTGluZUVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggNjhhYzZiOC4uNDZkOTJkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaApAQCAt
NTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJ
RVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVt
ZW50LmgKaW5kZXggOTczMjY0OC4uMWJlNjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01QYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVs
ZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNUGF0aEVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR01QYXRoRWxlbWVudF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAppbmRleCAxYjkzMGU2Li5iNTIyY2I3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTE2NCw4ICsxNjQsNiBAQCBw
cml2YXRlOgogICAgIG11dGFibGUgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFNW
R01hcmtlck9yaWVudFR5cGU+IG1fb3JpZW50VHlwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdNYXJrZXJFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuaAppbmRleCBmNTBhOTQ2Li4yMmVkZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFza0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJv
bml6ZVN5c3RlbUxhbmd1YWdlKCkgb3ZlcnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0
ZW1MYW5ndWFnZSh0aGlzKTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01hc2tFbGVtZW50
KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3Np
bmdHbHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVt
ZW50LmgKaW5kZXggZjU2MzdlZS4uOTRhNDI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdf
Rk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDAyMWI2ZjEuLmI2NGI0
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0xMjksOCArMTI5LDYgQEAg
cHJpdmF0ZToKICAgICBib29sIG1faXNBbmltVmFsT2JzZXJ2ZWQ7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCmluZGV4IDIyYzdjMjAuLjQ5MmNk
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBAIC04Niw4ICs4Niw2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2Uo
KSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUGF0dGVybkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9seWdvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5o
CmluZGV4IGE2MmRlMjAuLmQ5MGRkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5Z29uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxl
bWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHUG9seWdvbkVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHUG9seWdvbkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgKaW5kZXggNGI1ZTg0MS4uYTA5MWVj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaApAQCAtMzMsOCArMzMs
NiBAQCBwcml2YXRlOgogICAgIFNWR1BvbHlsaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdQb2x5bGluZUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKaW5kZXggZTU2ZmIyZi4uMTJiZjRlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTYs
OCArNTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5o
CmluZGV4IDcyZWI4NzUuLjNjZWU4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5o
CkBAIC01OCw4ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJP
UEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1JlY3RFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5k
ZXggZWZiNDJlZC4uMjc4MjI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0x
NzUsOCArMTc1LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U1ZHVmlld1NwZWM+IG1fdmlld1Nw
ZWM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU1ZHRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmlu
ZGV4IDU3MmY3OWQuLjlhY2RiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQu
aApAQCAtODYsOCArODYsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3Zn
TG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU2NyaXB0RWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BF
bGVtZW50LmgKaW5kZXggZDg3OWI0ZS4uN2RhMzdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BF
bGVtZW50LmgKQEAgLTQ5LDggKzQ5LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU3RvcEVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVF
bGVtZW50LmgKaW5kZXggNmE5MWUzOC4uMWU3MzE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1l
bnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU3R5bGVF
bGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdTdHlsZUVs
ZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAppbmRleCBhOGMwYjcyLi40MzA4
NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdUZXh0RWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAppbmRleCAwYTRmZjY3Li5mMjQ0YmMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgcHJpdmF0
ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHVGV4dFBhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCmluZGV4IGM4NGE2MDMuLjA3NWIy
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKQEAgLTQwLDggKzQwLDYgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJT
dHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHVGl0bGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXggM2YxMGVlOS4uYjczMmYxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC0xMjgsOCArMTI4LDYgQEAgcHJpdmF0ZToKICAgICBU
aW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xvYWRFdmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR1VzZUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5F
bGVtZW50LmgKaW5kZXggY2U4OGRlNS4uMTgwYmM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2Vy
bkVsZW1lbnQuaApAQCAtNDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdWS2VybkVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3RWxlbWVudC5oCmluZGV4IDI1MWQ3MzAuLjRiNDRkOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgU1ZHU3Ry
aW5nTGlzdCBtX3ZpZXdUYXJnZXQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVmlld0VsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0aW9ucy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L0RPTS9XZWJET01PcGVyYXRpb25zLm1tCmluZGV4IGU0ZmI3NjYuLjEwNTRkYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCkBAIC03NCw3ICs3NCw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQp
OwogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwotICAgIHJldHVybiBraXQodG9FbGVtZW50
KHRvSlMoZXhlYywgdmFsdWUpKSk7CisgICAgcmV0dXJuIGtpdChKU0VsZW1lbnQ6OnRvSW1wbCh0
b0pTKGV4ZWMsIHZhbHVlKSkpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggYTZmM2I1NC4uOWNlNjFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtODYyMSw3ICs4NjIxLDcgQEAgc3RhdGljIHZvaWQgZ2xpYkNvbnRleHRJdGVy
YXRpb25DYWxsYmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHkKIHsK
ICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05T
KQogICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0gW1tzZWxmIG1haW5GcmFtZV0gZ2xvYmFsQ29u
dGV4dF07Ci0gICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSB0b05vdGlm
aWNhdGlvbih0b0pTKHRvSlMoY29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CisgICAgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBKU05vdGlmaWNhdGlvbjo6dG9JbXBsKHRv
SlModG9KUyhjb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8V2ViTm90aWZpY2F0aW9uQ2xpZW50Kj4oTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50
RnJvbShfcHJpdmF0ZS0+cGFnZSkpLT5ub3RpZmljYXRpb25JREZvclRlc3Rpbmcobm90aWZpY2F0
aW9uKTsKICNlbHNlCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlLmNwcAppbmRleCBjZGRkYzgxLi4wNDVhNjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAg
c3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5kbGVDYWNoZSgpCiAKIFBhc3NSZWZQdHI8SW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3Jl
YXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgb2JqZWN0KQogewotICAgIE5vZGUqIG5vZGUg
PSB0b05vZGUodG9KUyhvYmplY3QpKTsKKyAgICBOb2RlKiBub2RlID0gSlNOb2RlOjp0b0ltcGwo
dG9KUyhvYmplY3QpKTsKICAgICByZXR1cm4gZ2V0T3JDcmVhdGUobm9kZSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKaW5kZXggZjYzMzkx
Yi4uNjVmOGU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5k
bGVDYWNoZSgpCiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUoSlNDb250ZXh0UmVmLCBKU09iamVjdFJl
ZiBvYmplY3QpCiB7Ci0gICAgUmFuZ2UqIHJhbmdlID0gdG9SYW5nZSh0b0pTKG9iamVjdCkpOwor
ICAgIFJhbmdlKiByYW5nZSA9IEpTUmFuZ2U6OnRvSW1wbCh0b0pTKG9iamVjdCkpOwogICAgIHJl
dHVybiBnZXRPckNyZWF0ZShyYW5nZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXgg
MWE2NzI3Yi4uYjY0ZTgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTU5Nyw3ICs1OTcs
NyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9ucyhXZWJQYWdlKiBwYWdlKQogdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNh
dGlvbklEKEpTQ29udGV4dFJlZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganNOb3RpZmljYXRpb24p
CiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FU
SU9OUykKLSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90aWZp
Y2F0aW9uKHRvSlModG9KUyhqc0NvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOworICAgIFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gSlNOb3RpZmljYXRpb246OnRvSW1wbCh0
b0pTKHRvSlMoanNDb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKICAgICBpZiAoIW5vdGlmaWNh
dGlvbikKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+bm90aWZpY2F0aW9uSURGb3JU
ZXN0aW5nKG5vdGlmaWNhdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238223</attachid>
            <date>2014-09-16 17:05:59 -0700</date>
            <delta_ts>2014-09-16 17:24:53 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>136839_generate_cast_helpers_wip1.patch</filename>
            <type>text/plain</type>
            <size>79879</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCAzNjlhYmIxLi4zZGJmZGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCkBAIC0yMTMsNyArMjEzLDcgQEAgYm9vbCBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgLy8g
R2V0IHRoZSA8dmlkZW8+IGNyZWF0ZWQgdG8gcmVwbGFjZSB0aGUgcGx1Zy1pbi4KICAgICBKU0M6
OkpTVmFsdWUgdmFsdWUgPSByZXBsYWNlbWVudC5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4
ZWMsICJ2aWRlbyIpKTsKICAgICBpZiAoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpICYmICF2YWx1ZS5p
c1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICBtX21lZGlhRWxlbWVudCA9IHRvSFRNTFZpZGVv
RWxlbWVudCh2YWx1ZSk7CisgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gSlNIVE1MVmlkZW9FbGVt
ZW50Ojp0b0ltcGwodmFsdWUpOwogCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkgewogICAgICAg
ICBMT0coUGx1Z2lucywgIiVwIC0gRmFpbGVkIHRvIGZpbmQgPHZpZGVvPiBlbGVtZW50IGNyZWF0
ZWQgYnkgUXVpY2tUaW1lIHBsdWdpbiByZXBsYWNlbWVudCBzY3JpcHQuIiwgdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDk0ZDliNTMuLjVlMTlmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC03Nyw2ICs3Nyw3IEBAIF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLN0NHUG9pbnQK
IF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3Jl
MTBGb250R2x5cGhzMTVyZWxlYXNlRm9udERhdGFFdgogX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50
NnNfaW5mb0UKK19fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDVzY2FsZUVmCiBfX1pON1dlYkNvcmUxMExheW91dFJl
Y3Q1dW5pdGVFUktTMF8KIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdEMxRVJLTlNfOUZsb2F0UmVj
dEUKQEAgLTEyNCw3ICsxMjUsNiBAQCBfX1pON1dlYkNvcmUxMFRpbWVSYW5nZXNDMUVkZAogX19a
TjdXZWJDb3JlMTBkZWxldGVGaWxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBmaWxl
RXhpc3RzRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBzZXRDb29raWVzRVBOU184RG9j
dW1lbnRFUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMTB0b0RvY3VtZW50
RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlMTNnZXRDR0ltYWdlUmVm
RXYKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2VDMUVQN0NHSW1hZ2VQTlNfMTNJbWFnZU9ic2Vy
dmVyRQogX19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZUMxRVBOU18xM0ltYWdlT2JzZXJ2ZXJFCkBA
IC02NjcsNyArNjY3LDYgQEAgX19aTjdXZWJDb3JlMTVvcmlnaW5hbFVSTERhdGFFUDVOU1VSTAog
X19aTjdXZWJDb3JlMTVwYXRoR2V0RmlsZU5hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxNXJlcG9ydEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVQTlNfMTJD
YWNoZWRTY3JpcHRFCiBfX1pON1dlYkNvcmUxNXNldERPTUV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0
YXRlRWkKLV9fWk43V2ViQ29yZTE1dG9ET01TdHJpbmdMaXN0RVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTV2aXNpdGVkTGlua0hhc2hFUEt0agogX19aTjdXZWJD
b3JlMTV2aXNpdGVkTGlua0hhc2hFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkFwcGxp
Y2F0aW9uQ2FjaGUxOGRpc2tVc2FnZUZvck9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKQEAg
LTEyNDIsNiArMTI0MSw3IEBAIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29tbWFuZEVSS04zV1RGNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29weVVSTEVSS05TXzNVUkxFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yN291dGRlbnRFdgogX19aTjdXZWJDb3JlNkpTTm9kZTZz
X2luZm9FCitfX1pON1dlYkNvcmU2SlNOb2RlNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdX
ZWJDb3JlNkxlbmd0aEMxRU4zV1RGN1Bhc3NSZWZJTlNfMTZDYWxjdWxhdGlvblZhbHVlRUVFCiBf
X1pON1dlYkNvcmU2UmVnaW9uMjF1cGRhdGVCb3VuZHNGcm9tU2hhcGVFdgogX19aTjdXZWJDb3Jl
NlJlZ2lvbjV1bml0ZUVSS1MwXwpAQCAtMTI1OSw3ICsxMjU5LDYgQEAgX19aTjdXZWJDb3JlNldp
ZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBhcmVudEVQTlNfMTBTY3Jv
bGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2ViQ29yZTZ0b0ludDhFUE4z
SlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3Vy
YXRpb25FCi1fX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3
RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VTNF9SaQogX19aTjdX
ZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUVSS04zV1RG
MTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxlbWVudDE2Y3JlYXRlU2hhZG93Um9vdEVS
aQpAQCAtMTI3Myw2ICsxMjcyLDcgQEAgX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzEwTGF5
b3V0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19aTjdX
ZWJDb3JlN0ludFNpemVDMUVSSzZDR1NpemUKIF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUktOU185
RmxvYXRTaXplRQorX19aTjdXZWJDb3JlN0pTUmFuZ2U2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBf
X1pON1dlYkNvcmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRpbmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3
VGV4dFJ1bjIxc19hbGxvd3NSb3VuZGluZ0hhY2tzRQogX19aTjdXZWJDb3JlN1RleHRSdW4yMnNl
dEFsbG93c1JvdW5kaW5nSGFja3NFYgpAQCAtMTI4MSw3ICsxMjgxLDYgQEAgX19aTjdXZWJDb3Jl
N2pzQXJyYXlFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1dURjEw
UGFzc1JlZlB0ckkKIF9fWk43V2ViQ29yZTdtYWtlUkdCRWlpaQogX19aTjdXZWJDb3JlN3RvSW50
MTZFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNv
bmZpZ3VyYXRpb25FCiBfX1pON1dlYkNvcmU3dG9JbnQ2NEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83
SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKLV9fWk43V2ViQ29y
ZTd0b1JhbmdlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3dG9VSW50OEVQTjNKU0M5RXhl
Y1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUK
IF9fWk43V2ViQ29yZThCbG9iRGF0YTE0c2V0Q29udGVudFR5cGVFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmU4Q1NTVmFsdWU3ZGVzdHJveUV2CkBAIC0xNDk1LDYgKzE0OTQsNyBAQCBfX1pO
N1dlYkNvcmU5SW5saW5lQm94MTRkaXJ0eUxpbmVCb3hlc0V2CiBfX1pON1dlYkNvcmU5SW5saW5l
Qm94MTRzZWxlY3Rpb25TdGF0ZUV2CiBfX1pON1dlYkNvcmU5SW5saW5lQm94MTZwbGFjZUVsbGlw
c2lzQm94RWJmZmZSZlJiCiBfX1pON1dlYkNvcmU5SlNFbGVtZW50NnNfaW5mb0UKK19fWk43V2Vi
Q29yZTlKU0VsZW1lbnQ2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU5TGF5ZXJQ
b29sQzFFdgogX19aTjdXZWJDb3JlOUxheWVyUG9vbEQxRXYKIF9fWk43V2ViQ29yZTlQYWdlQ2Fj
aGUxMXNldENhcGFjaXR5RWkKQEAgLTE1MzUsNyArMTUzNSw2IEBAIF9fWk43V2ViQ29yZTlmb250
Q2FjaGVFdgogX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRVMy
XwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5cGxhaW5UZXh0RVBLTlNf
NVJhbmdlRXRiCi1fX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dl
YkNvcmU5dW5pb25SZWN0RVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFJlY3RFTG0wRU5TMF8xNUNy
YXNoT25PdmVyZmxvd0VFRQogX19aTkszSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxP
YmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3JlYXRlQ0ZTdHJpbmdFdgpAQCAtMzI1OCw3ICsz
MjU3LDcgQEAgX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVudEV2
CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjhmaW5hbGl6ZUV2CiBfX1pON1dlYkNvcmUxMk5v
dGlmaWNhdGlvbkMxRXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uRDFFdgotX19aTjdXZWJD
b3JlMTR0b05vdGlmaWNhdGlvbkVOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTRKU05vdGlm
aWNhdGlvbjZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE5cHJvdmlkZU5vdGlm
aWNhdGlvbkVQTlNfNFBhZ2VFUE5TXzE4Tm90aWZpY2F0aW9uQ2xpZW50RQogX19aTjdXZWJDb3Jl
MjJOb3RpZmljYXRpb25Db250cm9sbGVyMTBjbGllbnRGcm9tRVBOU180UGFnZUUKICNlbmRpZgpA
QCAtMzM3MCw3ICszMzY5LDcgQEAgX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxNmhhbmRsZVRv
dWNoRXZlbnRFUktOU18xOFBsYXRmb3JtVG91Y2hFdmVudEUKICNpZiBFTkFCTEUoVklERU8pCiAu
b2JqY19jbGFzc19uYW1lX1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIKIF9fWk43V2ViQ29y
ZTEwVGltZVJhbmdlczNhZGRFZGQKLV9fWk43V2ViQ29yZTEydG9UaW1lUmFuZ2VzRU4zSlNDN0pT
VmFsdWVFCitfX1pON1dlYkNvcmUxMkpTVGltZVJhbmdlczZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEyZW5kU2NydWJiaW5nRXYKIF9fWk43V2Vi
Q29yZTE2SFRNTE1lZGlhRWxlbWVudDE0YmVnaW5TY3J1YmJpbmdFdgogX19aTjdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50MTRleGl0RnVsbHNjcmVlbkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAK
aW5kZXggZTZiNTA2NC4uYWJiMDA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcApAQCAtNDEs
NyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OnNldEJ1ZmZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAg
QXVkaW9CdWZmZXIqIGJ1ZmZlciA9IHRvQXVkaW9CdWZmZXIodmFsdWUpOworICAgIEF1ZGlvQnVm
ZmVyKiBidWZmZXIgPSBKU0F1ZGlvQnVmZmVyOjp0b0ltcGwodmFsdWUpOwogICAgIGlmICghYnVm
ZmVyKSB7CiAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlw
ZUVycm9yKGV4ZWMsICJWYWx1ZSBpcyBub3Qgb2YgdHlwZSBBdWRpb0J1ZmZlciIpKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9i
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAK
aW5kZXggMjkzYWZiMy4uMDZhOTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCbG9iQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jsb2JDdXN0b20uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU0Jsb2IoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgYmxv
YkJ1aWxkZXIuYXBwZW5kKGFycmF5QnVmZmVyKTsKICAgICAgICAgZWxzZSBpZiAoUmVmUHRyPEFy
cmF5QnVmZmVyVmlldz4gYXJyYXlCdWZmZXJWaWV3ID0gdG9BcnJheUJ1ZmZlclZpZXcoaXRlbSkp
CiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYXJyYXlCdWZmZXJWaWV3LnJlbGVhc2Uo
KSk7Ci0gICAgICAgIGVsc2UgaWYgKEJsb2IqIGJsb2IgPSB0b0Jsb2IoaXRlbSkpCisgICAgICAg
IGVsc2UgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvSW1wbChpdGVtKSkKICAgICAgICAgICAg
IGJsb2JCdWlsZGVyLmFwcGVuZChibG9iKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBT
dHJpbmcgc3RyaW5nID0gaXRlbS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1
c3RvbS5jcHAKaW5kZXggNzk1NDhlOC4uZjJmZmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcApAQCAt
MTEzLDcgKzExMyw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQSUhvc3Q6OmdldEV2ZW50TGlz
dGVuZXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFs
dWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgTm9kZSog
bm9kZSA9IHRvTm9kZSh2YWx1ZSk7CisgICAgTm9kZSogbm9kZSA9IEpTTm9kZTo6dG9JbXBsKHZh
bHVlKTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCkBA
IC0xNDksNyArMTQ5LDcgQEAgSlNWYWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6ZGF0YWJhc2VJ
ZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAjaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSB0b0RhdGFiYXNl
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSBK
U0RhdGFiYXNlOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChk
YXRhYmFzZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGltcGwoKS5k
YXRhYmFzZUlkSW1wbChkYXRhYmFzZSkpOwogI2VuZGlmCkBAIC0xNjIsNyArMTYyLDcgQEAgSlNW
YWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3RvcmFnZUlkKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAKLSAgICBTdG9yYWdlKiBzdG9yYWdlID0gdG9TdG9yYWdlKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBTdG9yYWdlKiBzdG9yYWdlID0gSlNTdG9yYWdlOjp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChzdG9yYWdlKQogICAgICAgICBy
ZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgaW1wbCgpLnN0b3JhZ2VJZEltcGwoc3RvcmFn
ZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1E
YXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFD
dXN0b20uY3BwCmluZGV4IDMxYjE4MGIuLmU5ZTBiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCkBAIC00MSw5ICs0MSw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhU
TUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIEhUTUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnRPck51bGwoSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewotICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiAwOworICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiBudWxscHRyOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRlKiBleGVjKQpAQCAtNTIsNyArNTIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRl
KiBleGVjKQogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gMDsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpID4gMCkKLSAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50KGV4
ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50T3JOdWxs
KGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBSZWZQdHI8RE9NRm9ybURhdGE+IGRvbUZvcm1EYXRh
ID0gRE9NRm9ybURhdGE6OmNyZWF0ZShmb3JtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGRvbUZv
cm1EYXRhLmdldCgpKSkpOwogfQpAQCAtNjYsNyArNjYsNyBAQCBKU1ZhbHVlIEpTRE9NRm9ybURh
dGE6OmFwcGVuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWU7
CiAgICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDMgJiYgIWV4ZWMtPmFy
Z3VtZW50KDIpLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICAgICAgZmlsZW5hbWUg
PSBleGVjLT5hcmd1bWVudCgyKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgICAg
ICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIHRvQmxvYih2YWx1ZSksIGZpbGVuYW1lKTsKKyAgICAg
ICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwgSlNCbG9iOjp0b0ltcGwodmFsdWUpLCBmaWxlbmFt
ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChuYW1lLCB2YWx1
ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCmluZGV4IDIzMzM3
YjIuLmFkM2FjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
U3RyaW5nTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01TdHJpbmdMaXN0Q3VzdG9tLmNwcApAQCAtMjUsNyArMjUsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
dG9ET01TdHJpbmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gSlNET01TdHJpbmdMaXN0Ojp0b0ltcGwoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU0RPTVN0cmluZ0xp
c3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTRE9NU3RyaW5nTGlzdCo+KGFz
T2JqZWN0KHZhbHVlKSktPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA1ZjNiNTE3Li5lODRkM2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02ODQs
NyArNjg0LDcgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLURPTVdpbmRvdyog
dG9ET01XaW5kb3coSlNWYWx1ZSB2YWx1ZSkKK0RPTVdpbmRvdyogSlNET01XaW5kb3c6OnRvSW1w
bChKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApp
bmRleCAxYWYwMjZkLi5kMzBiMjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGljdGlvbmFyeS5jcHAKQEAgLTE1NSwyMiArMTU1LDIyIEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8U2VyaWFs
aXplCiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPERPTVdpbmRvdz4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RP
TVdpbmRvdyh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNET01XaW5kb3c6OnRvSW1wbCh2YWx1ZSk7
CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRv
RXZlbnRUYXJnZXQodmFsdWUpOworICAgIHJlc3VsdCA9IEpTRXZlbnRUYXJnZXQ6OnRvSW1wbCh2
YWx1ZSk7CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwg
SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE5vZGU+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9O
b2RlKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU05vZGU6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZv
aWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPFN0b3JhZ2U+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9TdG9yYWdlKHZhbHVl
KTsKKyAgICByZXN1bHQgPSBKU1N0b3JhZ2U6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBN
ZXNzYWdlUG9ydEFycmF5JiByZXN1bHQpCkBAIC0yMjIsMzEgKzIyMiwzMSBAQCB2b2lkIEpTRGlj
dGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVl
LCBSZWZQdHI8VWludAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBS
ZWZQdHI8TWVkaWFLZXlFcnJvcj4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhS2V5
RXJyb3IodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFLZXlFcnJvcjo6dG9JbXBsKHZhbHVl
KTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgSlNEaWN0aW9u
YXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJl
ZlB0cjxNZWRpYVN0cmVhbT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhU3RyZWFt
KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhU3RyZWFtOjp0b0ltcGwodmFsdWUpOwogfQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mIHJlc3VsdCkKIHsKLSAgICBy
ZXN1bHQgPSB0b01lZGlhU3RyZWFtVHJhY2sodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFT
dHJlYW1UcmFjazo6dG9JbXBsKHZhbHVlKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEZPTlRf
TE9BRF9FVkVOVFMpCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgcmVzdWx0
KQogewotICAgIHJlc3VsdCA9IHRvQ1NTRm9udEZhY2VSdWxlKHZhbHVlKTsKKyAgICByZXN1bHQg
PSBKU0NTU0ZvbnRGYWNlUnVsZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPERPTUVycm9yPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvRE9NRXJyb3IodmFsdWUp
OworICAgIHJlc3VsdCA9IEpTRE9NRXJyb3I6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCkKQEAgLTI2MSw3ICsyNjEsNyBA
QCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cgogI2lmIEVOQUJMRShHQU1FUEFEKQogdm9pZCBKU0Rp
Y3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1
ZSwgUmVmUHRyPEdhbWVwYWQ+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9HYW1lcGFkKHZh
bHVlKTsKKyAgICByZXN1bHQgPSBKU0dhbWVwYWQ6OnRvSW1wbCh2YWx1ZSk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9t
LmNwcAppbmRleCA1MjEwZjEyLi5mNTRhNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcApAQCAtNTgsNyArNTgsNyBAQCBKU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFdmVudFRhcmdldCogdGFyZwogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKUyMjaW50ZXJmYWNl
TmFtZTo6aW5mbygpKSkgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICByZXR1cm4gJmpz
Q2FzdDxKUyMjaW50ZXJmYWNlTmFtZSo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsKIAotRXZl
bnRUYXJnZXQqIHRvRXZlbnRUYXJnZXQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorRXZlbnRUYXJnZXQq
IEpTRXZlbnRUYXJnZXQ6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVFJZX1RP
X1VOV1JBUF9XSVRIX0lOVEVSRkFDRShET01XaW5kb3dTaGVsbCkKICAgICBUUllfVE9fVU5XUkFQ
X1dJVEhfSU5URVJGQUNFKEV2ZW50VGFyZ2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKaW5kZXggYmRlMjViMC4uZjYyNjJkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3BwCkBAIC00MSwyMCAr
NDEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFeGNlcHRpb25CYXNlKiB0b0V4Y2VwdGlv
bkJhc2UoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChET01Db3JlRXhjZXB0aW9uKiBk
b21FeGNlcHRpb24gPSB0b0RPTUNvcmVFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChET01Db3Jl
RXhjZXB0aW9uKiBkb21FeGNlcHRpb24gPSBKU0RPTUNvcmVFeGNlcHRpb246OnRvSW1wbCh2YWx1
ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihkb21F
eGNlcHRpb24pOwotICAgIGlmIChSYW5nZUV4Y2VwdGlvbiogcmFuZ2VFeGNlcHRpb24gPSB0b1Jh
bmdlRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoUmFuZ2VFeGNlcHRpb24qIHJhbmdlRXhjZXB0
aW9uID0gSlNSYW5nZUV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHJhbmdlRXhjZXB0aW9uKTsKLSAgICBpZiAo
RXZlbnRFeGNlcHRpb24qIGV2ZW50RXhjZXB0aW9uID0gdG9FdmVudEV4Y2VwdGlvbih2YWx1ZSkp
CisgICAgaWYgKEV2ZW50RXhjZXB0aW9uKiBldmVudEV4Y2VwdGlvbiA9IEpTRXZlbnRFeGNlcHRp
b246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2Vw
dGlvbkJhc2UqPihldmVudEV4Y2VwdGlvbik7Ci0gICAgaWYgKFhNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uKiB4bWxIdHRwRXhjZXB0aW9uID0gdG9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbih2YWx1ZSkp
CisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKiB4bWxIdHRwRXhjZXB0aW9uID0gSlNY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHhtbEh0dHBFeGNlcHRpb24pOwotICAgIGlm
IChTVkdFeGNlcHRpb24qIHN2Z0V4Y2VwdGlvbiA9IHRvU1ZHRXhjZXB0aW9uKHZhbHVlKSkKKyAg
ICBpZiAoU1ZHRXhjZXB0aW9uKiBzdmdFeGNlcHRpb24gPSBKU1NWR0V4Y2VwdGlvbjo6dG9JbXBs
KHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+
KHN2Z0V4Y2VwdGlvbik7Ci0gICAgaWYgKFhQYXRoRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0g
dG9YUGF0aEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFhQYXRoRXhjZXB0aW9uKiBwYXRoRXhj
ZXB0aW9uID0gSlNYUGF0aEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHBhdGhFeGNlcHRpb24pOwogI2lmIEVO
QUJMRShTUUxfREFUQUJBU0UpCi0gICAgaWYgKFNRTEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlvbiA9
IHRvU1FMRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoU1FMRXhjZXB0aW9uKiBwYXRoRXhjZXB0
aW9uID0gSlNTUUxFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihwYXRoRXhjZXB0aW9uKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50
Q3VzdG9tLmNwcAppbmRleCAxZDQwYzYwLi5iZmMxZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAKQEAgLTQw
LDcgKzQwLDcgQEAgdm9pZCBKU0hUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIoRXhlY1N0
YXRlKiwgSlNWYWx1ZSB2YWx1ZSkKICAgICAvLyBPbiBzZXR0aW5nLCBpdCBtdXN0IGZpcnN0IHJl
bW92ZSB0aGUgZWxlbWVudCdzIG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBpZiBhbnksIAogICAgIGlt
cGwoKS5zZXRNZWRpYUdyb3VwKFN0cmluZygpKTsKICAgICAvLyBhbmQgdGhlbiBzZXQgdGhlIGN1
cnJlbnQgbWVkaWEgY29udHJvbGxlciB0byB0aGUgZ2l2ZW4gdmFsdWUuCi0gICAgaW1wbCgpLnNl
dENvbnRyb2xsZXIodG9NZWRpYUNvbnRyb2xsZXIodmFsdWUpKTsKKyAgICBpbXBsKCkuc2V0Q29u
dHJvbGxlcihKU01lZGlhQ29udHJvbGxlcjo6dG9JbXBsKHZhbHVlKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9u
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uQ3VzdG9tLmNwcAppbmRleCA3NGE1ODY3Li43MWYzZGRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25D
dXN0b20uY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246
OmluZGV4U2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsCiBKU1Zh
bHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjphZGQoRXhlY1N0YXRlKiBleGVjKQogewogICAg
IEhUTUxPcHRpb25zQ29sbGVjdGlvbiYgaW1wID0gaW1wbCgpOwotICAgIEhUTUxPcHRpb25FbGVt
ZW50KiBvcHRpb24gPSB0b0hUTUxPcHRpb25FbGVtZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAg
ICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKICAgICAgICAgaW1wLmFkZChvcHRpb24sIGVjKTsK
QEAgLTgxLDcgKzgxLDcgQEAgSlNWYWx1ZSBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6cmVtb3Zl
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyBUaGUgYXJndW1lbnQgY2FuIGJlIGFuIEhUTUxP
cHRpb25FbGVtZW50IG9yIGFuIGluZGV4LgogICAgIEpTVmFsdWUgYXJndW1lbnQgPSBleGVjLT5h
cmd1bWVudCgwKTsKLSAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9w
dGlvbkVsZW1lbnQoYXJndW1lbnQpKQorICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9u
ID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBsKGFyZ3VtZW50KSkKICAgICAgICAgaW1wbCgp
LnJlbW92ZShvcHRpb24pOwogICAgIGVsc2UKICAgICAgICAgaW1wbCgpLnJlbW92ZShhcmd1bWVu
dC50b0ludDMyKGV4ZWMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggNDNmNjk0Yi4uZGRkMDkyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVu
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0
RWxlbWVudEN1c3RvbS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgSlNWYWx1ZSBKU0hUTUxTZWxlY3RF
bGVtZW50OjpyZW1vdmUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgZWMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFRoZSBIVE1MU2VsZWN0RWxlbWVu
dDo6cmVtb3ZlKCkgZnVuY3Rpb24gY2FuIHRha2UgZWl0aGVyIGFuIG9wdGlvbiBvYmplY3Qgb3Ig
dGhlIGluZGV4IG9mIGFuIG9wdGlvbi4KLSAgICAgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBv
cHRpb24gPSB0b0hUTUxPcHRpb25FbGVtZW50KGV4ZWMtPmFyZ3VtZW50KDApKSkKKyAgICAgICAg
aWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMCkpKQogICAgICAgICAgICAgc2VsZWN0LnJlbW92ZShvcHRpb24p
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZWxlY3QucmVtb3ZlQnlJbmRleChleGVjLT5h
cmd1bWVudCgwKS50b0ludDMyKGV4ZWMpKTsKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBzZWxlY3RJ
bmRleFNldHRlcihIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQKICAgICAgICAgc2VsZWN0LT5yZW1vdmVCeUluZGV4KGluZGV4KTsKICAgICBl
bHNlIHsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIEhUTUxPcHRpb25F
bGVtZW50KiBvcHRpb24gPSB0b0hUTUxPcHRpb25FbGVtZW50KHZhbHVlKTsKKyAgICAgICAgSFRN
TE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbCh2YWx1
ZSk7CiAgICAgICAgIGlmICghb3B0aW9uKQogICAgICAgICAgICAgZWMgPSBUWVBFX01JU01BVENI
X0VSUjsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCmluZGV4IGY0YjU1NWYu
LmY1NzQxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVj
dG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBK
U1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaG93Q29udGV4dE1lbnUoRXhlY1N0YXRl
KiBleGVjKQogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAyKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICBFdmVudCog
ZXZlbnQgPSB0b0V2ZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBFdmVudCogZXZlbnQgPSBK
U0V2ZW50Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpOwogCiAgICAgSlNBcnJheSogYXJyYXkg
PSBhc0FycmF5KGV4ZWMtPmFyZ3VtZW50KDEpKTsKICAgICBDb250ZXh0TWVudSBtZW51OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3Bw
CmluZGV4IGJhOWUzY2MuLjliYjNmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBoYW5kbGVJbml0TWVzc2FnZUV2ZW50KEpTTWVzc2FnZUV2ZW50KiBqc0V2
ZW50LCBKU0M6OkV4ZWNTdGEKICAgICBib29sIGNhbmNlbGFibGVBcmcgPSBleGVjLT5hcmd1bWVu
dCgyKS50b0Jvb2xlYW4oZXhlYyk7CiAgICAgY29uc3QgU3RyaW5nIG9yaWdpbkFyZyA9IGV4ZWMt
PmFyZ3VtZW50KDQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBjb25zdCBTdHJp
bmcgbGFzdEV2ZW50SWRBcmcgPSBleGVjLT5hcmd1bWVudCg1KS50b1N0cmluZyhleGVjKS0+dmFs
dWUoZXhlYyk7Ci0gICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSB0b0RPTVdpbmRvdyhleGVjLT5h
cmd1bWVudCg2KSk7CisgICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSBKU0RPTVdpbmRvdzo6dG9J
bXBsKGV4ZWMtPmFyZ3VtZW50KDYpKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRB
cnJheT4gbWVzc2FnZVBvcnRzOwogICAgIE93blB0cjxBcnJheUJ1ZmZlckFycmF5PiBhcnJheUJ1
ZmZlcnM7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCg3KS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20u
Y3BwCmluZGV4IDc1YWJlMTguLjk0NmZlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQg
ZmlsbE1lc3NhZ2VQb3J0QXJyYXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2
YWx1ZSwgTWVzc2FnZVBvcnRBCiAgICAgICAgIH0KIAogICAgICAgICAvLyBWYWxpZGF0aW9uIG9m
IE9iamVjdHMgaW1wbGVtZW50aW5nIGFuIGludGVyZmFjZSwgcGVyIFdlYklETCBzcGVjIDQuMS4x
NS4KLSAgICAgICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0ID0gdG9NZXNzYWdlUG9ydCh2YWx1
ZSk7CisgICAgICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydCA9IEpTTWVzc2FnZVBvcnQ6OnRv
SW1wbCh2YWx1ZSk7CiAgICAgICAgIGlmIChwb3J0KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBm
b3IgZHVwbGljYXRlIHBvcnRzLgogICAgICAgICAgICAgaWYgKHBvcnRBcnJheS5jb250YWlucyhw
b3J0KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5k
ZXggZDM2MjRlMS4uZGQ3YjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBKU05vZGVPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHYK
IEpTVmFsdWUgSlNOb2RlOjppbnNlcnRCZWZvcmUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkuaW5zZXJ0QmVmb3JlKHRv
Tm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgxKSksIGVjKTsK
KyAgICBib29sIG9rID0gaW1wbCgpLmluc2VydEJlZm9yZShKU05vZGU6OnRvSW1wbChleGVjLT5h
cmd1bWVudCgwKSksIEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOwogICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4g
ZXhlYy0+YXJndW1lbnQoMCk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgSlNWYWx1ZSBKU05vZGU6Omlu
c2VydEJlZm9yZShFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTTm9kZTo6cmVwbGFjZUNoaWxk
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29s
IG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCB0b05v
ZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7CisgICAgYm9vbCBvayA9IGltcGwoKS5yZXBsYWNl
Q2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpLCBKU05vZGU6OnRvSW1wbChl
eGVjLT5hcmd1bWVudCgxKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwog
ICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50KDEpOwpAQCAtMTU1LDcg
KzE1NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjpyZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQog
SlNWYWx1ZSBKU05vZGU6OnJlbW92ZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLnJlbW92ZUNoaWxkKHRvTm9k
ZShleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLnJlbW92ZUNo
aWxkKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOwogICAgIHNldERPTUV4
Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJn
dW1lbnQoMCk7CkBAIC0xNjUsNyArMTY1LDcgQEAgSlNWYWx1ZSBKU05vZGU6OnJlbW92ZUNoaWxk
KEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFsdWUgSlNOb2RlOjphcHBlbmRDaGlsZChFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcGwo
KS5hcHBlbmRDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCBlYyk7CisgICAgYm9vbCBv
ayA9IGltcGwoKS5hcHBlbmRDaGlsZChKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSks
IGVjKTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAg
ICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKaW5kZXggMjhjMTZjMS4uNGUxNDdkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3Bw
CkBAIC0zNSw3ICszNSw3IEBAIHZvaWQgSlNOb2RlRmlsdGVyOjp2aXNpdEFkZGl0aW9uYWxDaGls
ZHJlbihKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9v
dCgmaW1wbCgpKTsKIH0KIAotUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIoSlND
OjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gSlNO
b2RlRmlsdGVyOjp0b0ltcGwoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBpZiAodmFsdWUuaW5oZXJpdHMoSlNOb2RlRmlsdGVyOjppbmZvKCkpKQogICAgICAgICByZXR1
cm4gJkpTQzo6anNDYXN0PEpTTm9kZUZpbHRlcio+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcAppbmRleCBmNDA1YTAzLi42ODgwYTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAg
SlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZW5jcnlwdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtl
eSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8
Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4
ZWMpOwogCkBAIC0xOTcsNyArMTk3LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGVjcnlw
dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0K
IAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6
dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC0yNDgsNyArMjQ4LDcgQEAgSlNW
YWx1ZSBKU1N1YnRsZUNyeXB0bzo6c2lnbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRv
Q3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRv
S2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwog
CkBAIC0yOTksNyArMjk5LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dmVyaWZ5KEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAg
UmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCBKU1ZhbHVlIEpT
U3VidGxlQ3J5cHRvOjpleHBvcnRLZXkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0Ny
eXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tl
eT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7
CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApA
QCAtNjMwLDExICs2MzAsMTEgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6d3JhcEtleShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAg
IFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBs
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCi0gICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBp
bmdLZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgUmVm
UHRyPENyeXB0b0tleT4gd3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDIpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKGV4ZWMpOwogCkBAIC03MTMsNyArNzEzLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNy
eXB0bzo6dW53cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4gdW53cmFwcGluZ0tleSA9IHRv
Q3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBSZWZQdHI8Q3J5cHRv
S2V5PiB1bndyYXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgyKSk7CiAgICAgaWYgKCF1bndyYXBwaW5nS2V5KQogICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCBjNWYyMTYx
Li5mZTUxZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAg
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhl
YywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsK
LSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dy
YW06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFt
ICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAg
ICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJH
TFNoYWRlcj4+IHNoYWRlcnM7CkBAIC0zNDEsNyArMzQxLDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRl
eHQgPSBpbXBsKCk7Ci0gICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0o
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9
IEpTV2ViR0xQcm9ncmFtOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAg
IGlmICghcHJvZ3JhbSAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIHVuc2ln
bmVkIHBuYW1lID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKQEAg
LTM2OSw3ICszNjksNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFk
ZXJQYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYg
Y29udGV4dCA9IGltcGwoKTsKICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlz
VW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmluaGVyaXRz
KEpTV2ViR0xTaGFkZXI6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihl
eGVjKTsKLSAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gdG9XZWJHTFNoYWRlcihleGVjLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xTaGFk
ZXI6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5h
bWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC00
MDUsMTAgKzQwNSwxMCBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlm
b3JtKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0q
IHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7Cisg
ICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvSW1wbChleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYyk7Ci0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9X
ZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgV2Vi
R0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xHZXRJbmZvIGluZm8gPSBjb250
ZXh0LmdldFVuaWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24sIGVjKTsKQEAgLTQ3OCw3ICs0NzgsNyBA
QCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYs
IEpTQzo6RXhlY1N0YXRlKiBleGVjLCBXZQogICAgIGxvbmcgaW5kZXggPSAtMTsKICAgICAKICAg
ICBpZiAoZnVuY3Rpb25Gb3JVbmlmb3JtKGYpKSB7Ci0gICAgICAgIGxvY2F0aW9uID0gdG9XZWJH
TFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgICAgIGxv
Y2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDApKTsKICAgICAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5
cGVFcnJvcihleGVjKTsKICAgICB9IGVsc2UKQEAgLTU2NCw3ICs1NjQsNyBAQCBzdGF0aWMgSlND
OjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBXZQogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAg
ICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoZXhlYykpOwogCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0
aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7
CisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2Nh
dGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0
aW9uICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQog
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgIApAQCAtNjI0LDcgKzYyNCw3
IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1h
dHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSAhPSAzKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAKLSAgICBXZWJHTFVuaWZvcm1M
b2NhdGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dl
YkdMVW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwog
ICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcAppbmRleCBjOWVkY2ZhLi5mOWFlMTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMTQ4LDExICsxNDgs
MTEgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAodmFsLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIGltcGwoKS5zZW5kKGVjKTsK
ICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNEb2N1bWVudDo6aW5mbygpKSkKLSAgICAgICAg
aW1wbCgpLnNlbmQodG9Eb2N1bWVudCh2YWwpLCBlYyk7CisgICAgICAgIGltcGwoKS5zZW5kKEpT
RG9jdW1lbnQ6OnRvSW1wbCh2YWwpLCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpT
QmxvYjo6aW5mbygpKSkKLSAgICAgICAgaW1wbCgpLnNlbmQodG9CbG9iKHZhbCksIGVjKTsKKyAg
ICAgICAgaW1wbCgpLnNlbmQoSlNCbG9iOjp0b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYg
KHZhbC5pbmhlcml0cyhKU0RPTUZvcm1EYXRhOjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2Vu
ZCh0b0RPTUZvcm1EYXRhKHZhbCksIGVjKTsKKyAgICAgICAgaW1wbCgpLnNlbmQoSlNET01Gb3Jt
RGF0YTo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNBcnJh
eUJ1ZmZlcjo6aW5mbygpKSkKICAgICAgICAgaW1wbCgpLnNlbmQodG9BcnJheUJ1ZmZlcih2YWwp
LCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTQXJyYXlCdWZmZXJWaWV3OjppbmZv
KCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcAppbmRleCAyOGYyMmRhLi43MGU5MjFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTc4NCwx
MiArNzg0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgd3JpdGUob2JqLT5pbnRlcm5h
bFZhbHVlKCkuYXNOdW1iZXIoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoRmlsZSogZmlsZSA9IHRvRmlsZShvYmopKSB7Cisg
ICAgICAgICAgICBpZiAoRmlsZSogZmlsZSA9IEpTRmlsZTo6dG9JbXBsKG9iaikpIHsKICAgICAg
ICAgICAgICAgICB3cml0ZShGaWxlVGFnKTsKICAgICAgICAgICAgICAgICB3cml0ZShmaWxlKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChGaWxlTGlzdCogbGlzdCA9IHRvRmlsZUxpc3Qob2JqKSkgeworICAgICAgICAgICAgaWYg
KEZpbGVMaXN0KiBsaXN0ID0gSlNGaWxlTGlzdDo6dG9JbXBsKG9iaikpIHsKICAgICAgICAgICAg
ICAgICB3cml0ZShGaWxlTGlzdFRhZyk7CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3Ro
ID0gbGlzdC0+bGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgd3JpdGUobGVuZ3RoKTsKQEAgLTc5
Nyw3ICs3OTcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICB3cml0ZShsaXN0LT5p
dGVtKGkpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChCbG9iKiBibG9iID0gdG9CbG9iKG9iaikpIHsKKyAgICAgICAgICAgIGlm
IChCbG9iKiBibG9iID0gSlNCbG9iOjp0b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdy
aXRlKEJsb2JUYWcpOwogICAgICAgICAgICAgICAgIG1fYmxvYlVSTHMuYXBwZW5kKGJsb2ItPnVy
bCgpKTsKICAgICAgICAgICAgICAgICB3cml0ZShibG9iLT51cmwoKSk7CkBAIC04MDUsNyArODA1
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB3cml0ZShibG9iLT5zaXplKCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KEltYWdlRGF0YSogZGF0YSA9IHRvSW1hZ2VEYXRhKG9iaikpIHsKKyAgICAgICAgICAgIGlmIChJ
bWFnZURhdGEqIGRhdGEgPSBKU0ltYWdlRGF0YTo6dG9JbXBsKG9iaikpIHsKICAgICAgICAgICAg
ICAgICB3cml0ZShJbWFnZURhdGFUYWcpOwogICAgICAgICAgICAgICAgIHdyaXRlKGRhdGEtPndp
ZHRoKCkpOwogICAgICAgICAgICAgICAgIHdyaXRlKGRhdGEtPmhlaWdodCgpKTsKQEAgLTg2NSw3
ICs4NjUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZXNzOwogICAg
ICAgICAgICAgfQogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotICAgICAgICAgICAgaWYgKENy
eXB0b0tleSoga2V5ID0gdG9DcnlwdG9LZXkob2JqKSkgeworICAgICAgICAgICAgaWYgKENyeXB0
b0tleSoga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChvYmopKSB7CiAgICAgICAgICAgICAgICAg
d3JpdGUoQ3J5cHRvS2V5VGFnKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4gc2Vy
aWFsaXplZEtleTsKICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBkdW1teUJsb2JVUkxz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQppbmRleCA4ZDU0ZGExLi5mMzQ0NGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtODc0LDYgKzg3NCwxNyBAQCBz
dWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7XG4iKTsKICAgICB9CiAKKyAgICAjIEpTVmFsdWUgdG8gaW1wbGVtZW50YXRpb24gdHlw
ZQorICAgIGlmICghJGhhc1BhcmVudCB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJOb2RlRmlsdGVyIikgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
InN0YXRpYyBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvSW1wbChKU0M6OlZNJiwgSlNDOjpKU1Zh
bHVlKTtcbiIpOworICAgICAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5n
TGlzdCIpIHsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJzdGF0aWMgUGFzc1Jl
ZlB0cjxET01TdHJpbmdMaXN0PiB0b0ltcGwoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUp
O1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiV0VCQ09SRV9FWFBPUlQgc3RhdGljICRpbXBsVHlwZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7
XG4iKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgICRoZWFkZXJUcmFpbGluZ0luY2x1ZGVzeyIk
e2NsYXNzTmFtZX1DdXN0b20uaCJ9ID0gMSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSlNDdXN0b21IZWFkZXIifTsKIAogICAgIG15ICRuYW1lZEdldHRlckZ1bmN0aW9uID0g
R2V0TmFtZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJmYWNlKTsKQEAgLTExNjYsMTUgKzExNzcsNiBA
QCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoU2hvdWxkR2VuZXJhdGVUb0pTRGVjbGFyYXRp
b24oJGhhc1BhcmVudCwgJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIldFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCAkaW1wbFR5cGUqKTtcbiIpOwogICAgIH0KLSAgICBpZiAoISRoYXNQ
YXJlbnQgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVUb05h
dGl2ZU9iamVjdCJ9KSB7Ci0gICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZUZpbHRl
ciIpIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJQYXNzUmVmUHRyPE5vZGVG
aWx0ZXI+IHRvTm9kZUZpbHRlcihKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTtcbiIpOwotICAgICAg
ICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5nTGlzdCIpIHsKLSAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvRE9N
U3RyaW5nTGlzdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7XG4iKTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJXRUJDT1JFX0VYUE9S
VCAkaW1wbFR5cGUqIHRvJHtpbnRlcmZhY2VOYW1lfShKU0M6OkpTVmFsdWUpO1xuIik7Ci0gICAg
ICAgIH0KLSAgICB9CiAgICAgaWYgKCR1c2VzVG9KU05ld2x5Q3JlYXRlZHskaW50ZXJmYWNlTmFt
ZX0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTTmV3
bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCAkaW50ZXJmYWNl
TmFtZSopO1xuIik7CiAgICAgfQpAQCAtMzExMiw3ICszMTE0LDcgQEAgRU5ECiAgICAgfQogCiAg
ICAgaWYgKCghJGhhc1BhcmVudCBvciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIGFuZCAhJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkpTQ3VzdG9tVG9OYXRpdmVPYmplY3QifSkgewotICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiRpbXBsVHlwZSogdG8ke2ludGVyZmFjZU5hbWV9KEpTQzo6SlNWYWx1ZSB2YWx1
ZSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiRpbXBsVHlwZSogJHtjbGFzc05h
bWV9Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChhdXRv
KiB3cmFwcGVyID0gIiAuIEdldENhc3RpbmdIZWxwZXJGb3JUaGlzT2JqZWN0KCRpbnRlcmZhY2Up
IC4gIih2YWx1ZSkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJl
dHVybiAmd3JhcHBlci0+aW1wbCgpO1xuIik7CkBAIC0zMjQzLDcgKzMyNDUsNyBAQCBzdWIgR2Vu
ZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKIAogICAgICAgICBpZiAoJGFyZ1R5cGUgZXEgIlhQYXRoTlNS
ZXNvbHZlciIpIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSZWZQdHI8
WFBhdGhOU1Jlc29sdmVyPiBjdXN0b21SZXNvbHZlcjtcbiIpOwotICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIFhQYXRoTlNSZXNvbHZlciogcmVzb2x2ZXIgPSB0b1hQYXRoTlNS
ZXNvbHZlcihleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSk7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBYUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyID0gSlNYUGF0
aE5TUmVzb2x2ZXI6OnRvSW1wbChleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSk7XG4iKTsKICAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIXJlc29sdmVyKSB7XG4iKTsK
ICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgY3VzdG9tUmVzb2x2ZXIg
PSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KCRh
cmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAg
ICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKVxuIik7CkBAIC0zMjk2LDcgKzMy
OTgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgZm9yICh1bnNpZ25lZCBpID0gJGFyZ3NJbmRleCwgY291bnQg
PSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7XG4iKTsKICAgICAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmICghZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoaSkuaW5oZXJpdHMoSlMke2FyZ1R5cGV9OjppbmZvKCkpKVxuIik7CiAgICAgICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAgcmV0dXJuIHRocm93QXJn
dW1lbnRUeXBlRXJyb3IoKmV4ZWMsIGksIFwiJG5hbWVcIiwgXCIkaW50ZXJmYWNlTmFtZVwiLCAk
cXVvdGVkRnVuY3Rpb25OYW1lLCBcIiRhcmdUeXBlXCIpO1xuIik7Ci0gICAgICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZS5hcHBlbmQodG8kYXJnVHlwZShleGVj
LT51bmNoZWNrZWRBcmd1bWVudChpKSkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICAkbmFtZS5hcHBlbmQoSlMke2FyZ1R5cGV9Ojp0b0ltcGwoZXhl
Yy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICB9XG4iKQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVmVjdG9yPCRuYXRpdmVFbGVtZW50VHlwZT4g
JG5hbWUgPSB0b05hdGl2ZUFyZ3VtZW50czwkbmF0aXZlRWxlbWVudFR5cGU+KGV4ZWMsICRhcmdz
SW5kZXgpO1xuIik7CkBAIC0zODQ5LDcgKzM4NTEsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAK
ICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1
ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwpOwotICAgICAgICByZXR1cm4gInRvJHR5cGUo
ZXhlYy0+dm0oKSwgJHZhbHVlKSI7CisgICAgICAgIHJldHVybiAiSlMke3R5cGV9Ojp0b0ltcGwo
ZXhlYy0+dm0oKSwgJHZhbHVlKSI7CiAgICAgfQogCiAgICAgaWYgKCR0eXBlIGVxICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUiKSB7CkBAIC0zODkyLDcgKzM4OTQsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0
aXZlCiAKICAgICAjIERlZmF1bHQsIGFzc3VtZSBhdXRvZ2VuZXJhdGVkIHR5cGUgY29udmVyc2lv
biByb3V0aW5lcwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9u
YWwpOwotICAgIHJldHVybiAidG8kdHlwZSgkdmFsdWUpIjsKKyAgICByZXR1cm4gIkpTJHt0eXBl
fTo6dG9JbXBsKCR2YWx1ZSkiOwogfQogCiBzdWIgTmF0aXZlVG9KU1ZhbHVlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAppbmRleCAxZTM3ZWVjLi5iNDI4OTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTY4OSw2
ICs2ODksMjkgQEAgc3RydWN0IEVsZW1lbnRUeXBlQ2FzdFRyYWl0czxFeHBlY3RlZFR5cGUsIEV4
cGVjdGVkVHlwZT4gewogICAgIHN0YXRpYyBib29sIGlzKEV4cGVjdGVkVHlwZSYpIHsgcmV0dXJu
IHRydWU7IH0KIH07CiAKKy8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGJ5IHRvWFhYRWxl
bWVudCgpIGNhc3RpbmcgaGVscGVycy4KKy8vIERvIG5vdCBjYWxsIHRoZXNlIGRpcmVjdGx5Lgor
dGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFQmIHRvRWxlbWVudChOb2RlJiBub2RlKQorewor
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGlzRWxlbWVudE9mVHlwZTxjb25z
dCBUPihub2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQmPihub2RlKTsKK30KK3RlbXBs
YXRlPHR5cGVuYW1lIFQ+IGlubGluZSBUKiB0b0VsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBpc0VsZW1lbnRPZlR5cGU8
Y29uc3QgVD4oKm5vZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG5vZGUpOworfQor
dGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGNvbnN0IFQmIHRvRWxlbWVudChjb25zdCBOb2Rl
JiBub2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGlzRWxlbWVu
dE9mVHlwZTxjb25zdCBUPihub2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFQm
Pihub2RlKTsKK30KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBjb25zdCBUKiB0b0VsZW1l
bnQoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighbm9kZSB8fCBpc0VsZW1lbnRPZlR5cGU8Y29uc3QgVD4oKm5vZGUpKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVCo+KG5vZGUpOworfQorCiBpbmxpbmUgYm9vbCBOb2RlOjpo
YXNBdHRyaWJ1dGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNFbGVtZW50Tm9kZSgpICYmIHRv
RWxlbWVudCh0aGlzKS0+aGFzQXR0cmlidXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbApp
bmRleCAzODljMmI4Li5mMDg2Zjc5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFr
ZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbApAQCAtNjYz
LDYgKzY2Myw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBBcmdUeXBlPgogc3RydWN0IEVsZW1lbnRU
eXBlQ2FzdFRyYWl0czxjb25zdCAkY2xhc3MsIEFyZ1R5cGU+IHsKICAgICBzdGF0aWMgYm9vbCBp
cyhBcmdUeXBlJiBub2RlKSB7IHJldHVybiAkY2hlY2tIZWxwZXIobm9kZSk7IH0KIH07CisKKyNk
ZWZpbmUgdG8kY2xhc3MoeCkgV2ViQ29yZTo6dG9FbGVtZW50PFdlYkNvcmU6OiRjbGFzcz4oeCkK
IEVORAogICAgICAgICA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaApp
bmRleCA0NjY5MTYzLi4yMzJiMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5oCkBAIC0xNTUsOCArMTU1LDYgQEAgYm9vbCBpc0VudGVyS2V5S2V5ZG93bkV2ZW50KEV2
ZW50Kik7CiBib29sIGlzTGlua0NsaWNrKEV2ZW50Kik7CiBib29sIHNob3VsZFByb2hpYml0TGlu
a3MoRWxlbWVudCopOwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEFuY2hvckVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxBbmNob3JFbGVtZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCmluZGV4IGFjMDdlOTguLjhkYjc1ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaApAQCAtNzEsOCArNzEsNiBAQCBwcml2
YXRlOgogICAgIFNoYXBlIG1fc2hhcGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEFyZWFF
bGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
dWRpb0VsZW1lbnQuaAppbmRleCAzMGQyYThmLi43ZTg2NThjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBdWRpb0VsZW1lbnQuaApAQCAtNDMsOCArNDMsNiBAQCBwcml2YXRlOgogICAgIEhUTUxB
dWRpb0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCk7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTEF1ZGlvRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCmluZGV4IDQwNTRlMTcuLmI3
OTlmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaApAQCAtNDQsOCArNDQs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2Rl
Jikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEJhc2VFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJvZHlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5o
CmluZGV4IDAxN2VmYzIuLjBkNGQ2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1l
bnQuaApAQCAtODEsOCArODEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJy
ZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IG92ZXJyaWRlOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxCb2R5RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA4ODM3
ZDA4Li44YWJkZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBA
IC0xODAsOCArMTgwLDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxJbWFnZT4gbV9j
b3BpZWRJbWFnZTsgLy8gRklYTUU6IFRoaXMgaXMgdGVtcG9yYXJ5IGZvciBwbGF0Zm9ybXMgdGhh
dCBoYXZlIHRvIGNvcHkgdGhlIGltYWdlIGJ1ZmZlciB0byByZW5kZXIgKGFuZCBmb3IgQ1NTQ2Fu
dmFzVmFsdWUpLgogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxDYW52YXNFbGVtZW50KQotCiB9
IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGF0YUxpc3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVs
ZW1lbnQuaAppbmRleCA2N2ZiMWRiLi5jZjFkM2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEYXRhTGlzdEVsZW1lbnQuaApAQCAtNTAsOCArNTAsNiBAQCBwcml2YXRlOgogICAgIEhUTUxE
YXRhTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTERhdGFMaXN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogI2VuZGlmIC8vIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAppbmRleCBjNDFmNmY0Li4wNzNjZDU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNPcGVuOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEZXRh
aWxzRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTERl
dGFpbHNFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAppbmRleCAxYjVk
MjBhLi5mZjgxYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCkBAIC00MCw4
ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxEaXZFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBIVE1MRGl2RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCmlu
ZGV4IGQ5ZmQ0NTIuLmNkZDNiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVtYmVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oCkBAIC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJhbWV0ZXJzRm9yUGx1
Z2luKFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1
ZXMpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxFbWJlZEVsZW1lbnQpCi0KIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCmluZGV4IDdjMTNl
YTAuLjNhMDIyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5o
CkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSB1aW50NjRfdCBtX2RvY3Vt
ZW50VmVyc2lvbjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRmllbGRTZXRFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5oCmluZGV4IGM0NjlkY2UuLmZjM2RiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuaApAQCAtMjAxLDggKzIwMSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MRm9ybUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEhUTUxGb3JtRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudC5oCmluZGV4IDU1NzljOTguLjZlNGZiMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZyYW1l
Qm9yZGVyU2V0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGcmFtZUVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxGcmFtZUVsZW1lbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAppbmRleCA4MGU3ZjJhLi4yNzI5
MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAtMTAw
LDggKzEwMCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25vcmVzaXplOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxGcmFtZVNldEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEhUTUxGcmFtZVNldEVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0
bWxFbGVtZW50LmgKaW5kZXggYjk2NmM4Ny4uMGY4M2I5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxIdG1sRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKEhUTUxIdG1sRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggOWFlMTkz
Mi4uZjBlYmNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAt
NDcsOCArNDcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElGcmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxJRnJhbWVFbGVtZW50X2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggMzI0OTQ4Yi4uNmFkNDU0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBwcml2YXRl
OgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEltYWdlRWxlbWVudCkKLQogfSAv
L25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
aW5kZXggZTM4ODViY2MuLmQ3YTY1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCkBAIC00NDgsNyArNDQ4LDUgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxJbnB1dEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAppbmRleCBhZWE1MjM3Li5jYThlZTYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaApAQCAtNTUsOCArNTUsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVj
dGlvbiwgRm9jdXNEaXJlY3Rpb24pIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhU
TUxMYWJlbEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKaW5kZXggMjQ1NjhiZC4uOTEwNGFiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApAQCAtNDUsOCArNDUsNiBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0IG92ZXJy
aWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxMZWdlbmRFbGVtZW50KQotCiB9IC8vbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKaW5kZXgg
NjViMzI0MS4uY2JmNTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCkBA
IC0xMzcsOCArMTM3LDYgQEAgcHJpdmF0ZToKICAgICBQZW5kaW5nU2hlZXRUeXBlIG1fcGVuZGlu
Z1NoZWV0VHlwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTGlua0VsZW1lbnQpCi0KIH0g
Ly9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNYXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKaW5k
ZXggOWFlNDQ2Ny4uNjE3YWExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWFwRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaApA
QCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIEF0b21pY1N0cmluZyBtX25hbWU7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1hcEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlcwogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCmluZGV4IGQxMDk4
MmIuLjk2MzllOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaApA
QCAtNjQsOCArNjQsNiBAQCBwcml2YXRlOgogICAgIFJlbmRlck1hcnF1ZWUqIHJlbmRlck1hcnF1
ZWUoKSBjb25zdDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTWFycXVlZUVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxNYXJxdWVlRWxlbWVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAppbmRleCAxNTljM2FhLi4wNDU3ODE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3MoKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
TWV0YUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IDlkODIxNzIuLmEyOGNiNDQ5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKQEAgLTgxLDggKzgxLDYgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IG1fdmFsdWU7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoSFRNTE1ldGVyRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCmluZGV4IDk4OWQ3OTUuLjFmMGFh
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFJlY2FsY3VsYXRlSXRlbUNvdW50IDogMTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT0xpc3RFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IDJj
NDkxOTMuLmY4ZTdhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgK
QEAgLTEwMyw4ICsxMDMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VGYWxsYmFja0NvbnRl
bnQgOiAxOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPYmplY3RFbGVtZW50KQotCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRleCA2
ODljZTRiLi41N2EzNzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0
aW9ucygpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRHcm91cEVsZW1lbnQpCi0KIH0g
Ly9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmgKaW5kZXggNjQ3ZDAxZS4uNjU0ZWYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaApAQCAtODcsOCArODcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1NlbGVj
dGVkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRpb25FbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBh
cmFtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKaW5k
ZXggNGU4MWQyZC4uZWQ5YjRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGFyYW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50
LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVz
b3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUGFyYW1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
aAppbmRleCBlZWRiODgwLi5jN2ZkOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuaApAQCAtNjcsOCArNjcsNiBAQCBwcml2YXRlOgogICAgIFByb2dyZXNzVmFs
dWVFbGVtZW50KiBtX3ZhbHVlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxQcm9ncmVzc0Vs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5oCmluZGV4IGI4NTAxYjQuLjY4ZDk2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTY3LDggKzY3LDYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNB
bmRDaGlsZHJlbigpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTY3JpcHRF
bGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5oCmluZGV4IGZhOWNiZTQ3Li4yN2ZlZmQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0yMTIsOCArMjEyLDYgQEAgcHJpdmF0ZToKICAg
ICBtdXRhYmxlIGJvb2wgbV9zaG91bGRSZWNhbGNMaXN0SXRlbXM7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTFNlbGVjdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCmluZGV4IDU1NTg3NWMuLjUyMmQ3NDM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCkBAIC01Nyw4ICs1Nyw2
IEBAIHByaXZhdGU6CiAgICAgVGltZXI8SFRNTFNvdXJjZUVsZW1lbnQ+IG1fZXJyb3JFdmVudFRp
bWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTb3VyY2VFbGVtZW50KQotCiB9IC8vbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5
bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAppbmRl
eCA5OTU3YmE1Li45MWYwYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
aApAQCAtNzAsOCArNzAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9sb2FkZWRTaGVldDsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU3R5bGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKaW5kZXggZmJh
YmNkZS4uYmMyMjg0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5o
CkBAIC00Niw4ICs0Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29u
c3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFN1bW1hcnlFbGVtZW50KQot
CiB9CiAKICNlbmRpZiAvLyBIVE1MU3VtbWFyeUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCmluZGV4IGYwNjRlMjguLjkwNGMzMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKQEAgLTQx
LDggKzQxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAppbmRleCBjOTc2OGViLi4zY2Nl
ODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaApAQCAtMTAxLDggKzEw
MSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFN0eWxlUHJvcGVydGllcz4gbV9zaGFyZWRDZWxs
U3R5bGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRhYmxlRWxlbWVudCkKLQogfSAvL25h
bWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50
LmgKaW5kZXggMzM4Yjg3OS4uYzRiMGY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVSb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVSb3dFbGVtZW50LmgKQEAgLTUyLDggKzUyLDYgQEAgcHJpdmF0ZToKICAgICBIVE1MVGFibGVS
b3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxUYWJsZVJvd0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAppbmRleCBkN2ZmOTUx
Li5jODFmN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApA
QCAtNTYsOCArNTYsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRyPFRlbXBsYXRlQ29u
dGVudERvY3VtZW50RnJhZ21lbnQ+IG1fY29udGVudDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MVGVtcGxhdGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmgKaW5kZXggYTgwMWY5OS4uYmVkZDBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTEyNiw4ICsxMjYsNiBAQCBwcml2YXRlOgogICAg
IG11dGFibGUgYm9vbCBtX3dhc01vZGlmaWVkQnlVc2VyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxUZXh0QXJlYUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCmluZGV4IGViZTFkM2MuLjVkZTFlYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCkBAIC00Niw4ICs0Niw2IEBAIHByaXZh
dGU6CiAgICAgU3RyaW5nV2l0aERpcmVjdGlvbiBtX3RpdGxlOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxUaXRsZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCmluZGV4IDgzMTcxN2IuLjUyNmRjMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCkBAIC05NCw4ICs5NCw2IEBAIHByaXZh
dGU6CiAgICAgVGltZXI8SFRNTFRyYWNrRWxlbWVudD4gbV9sb2FkVGltZXI7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoSFRNTFRyYWNrRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggYzRkNGY5ZC4uNzZmMDE2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTEwMiw4ICsxMDIsNiBAQCBwcml2YXRl
OgogICAgIEF0b21pY1N0cmluZyBtX2RlZmF1bHRQb3N0ZXJVUkw7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTFZpZGVvRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGZkN2U5
MjMuLjM3ODY1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcApAQCAtMjAxMCw3ICsyMDEwLDcgQEAgTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6
OnNjcmlwdFZhbHVlQXNOb2RlKERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHZhbHVlKQogICAgIGlm
ICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKLSAgICByZXR1cm4gdG9Ob2RlKHZhbHVlLmpzVmFsdWUoKSk7CisgICAgcmV0dXJu
IEpTTm9kZTo6dG9JbXBsKHZhbHVlLmpzVmFsdWUoKSk7CiB9CiAKIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlIEluc3BlY3RvckRPTUFnZW50Ojpub2RlQXNTY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSogc3RhdGUsIE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MTWVuY2xvc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVu
Y2xvc2VFbGVtZW50LmgKaW5kZXggZGM2OWMxMS4uZWU5NzMzNSAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaApAQCAtNTAsOCArNTAsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9pc1JhZGljYWxWYWx1ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhN
YXRoTUxNZW5jbG9zZUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNQVRITUwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKaW5kZXggYWNiMmYzNS4u
YzYzZTM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaApA
QCAtMzgsOCArMzgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdBbHRHbHlwaERlZkVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKaW5kZXggNTA5NWFiNS4uNmJlOWY3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaApAQCAtNTUsOCArNTUs
NiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdBbHRHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5
cGhJdGVtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1l
bnQuaAppbmRleCA4MjQ5Y2I4Li5jN2FmZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bHRHbHlwaEl0ZW1FbGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhJdGVtRWxl
bWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmgKaW5kZXggMzY2NzgxNC4uNDE3ZDVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKQEAgLTcwLDggKzcwLDYgQEAgcHJpdmF0ZToK
ICAgICBQYXRoIG1fcGF0aDsKICAgICBQYXRoIG1fYW5pbWF0aW9uUGF0aDsKIH07Ci0KLU5PREVf
VFlQRV9DQVNUUyhTVkdBbmltYXRlTW90aW9uRWxlbWVudCkKICAgICAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuaAppbmRleCBiZGNmZjcwLi5iMWE0NGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaApAQCAtNDcsOCArNDcsNiBAQCBwcml2YXRl
OgogICAgIFNWR1RyYW5zZm9ybTo6U1ZHVHJhbnNmb3JtVHlwZSBtX3R5cGU7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCmluZGV4IDA3OWZhOTkuLmVjMTgyZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRl
OgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdDaXJjbGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBTVkdDaXJjbGVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuaAppbmRleCA4ZmRlYjAyLi45MzhjZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5oCkBAIC01Niw4ICs1Niw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVf
QU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0NsaXBQYXRoRWxl
bWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
dXJzb3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCmlu
ZGV4IGE1MzAxZTQuLmVhMjIzZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
dXJzb3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQu
aApAQCAtNzIsOCArNzIsNiBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8U1ZHRWxlbWVudCo+IG1f
Y2xpZW50czsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDdXJzb3JFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsbGlwc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuaAppbmRleCBkNmIyMGY2Li41YjlmOTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxs
aXBzZUVsZW1lbnQuaApAQCAtNTUsOCArNTUsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJF
X0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdFbGxpcHNlRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaAppbmRleCA3OTlmNmQ1Li42MGVhNDQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oCkBA
IC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPExpZ2h0U291
cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmgKaW5kZXggMzFlYmI0Zi4u
YTRlNmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmgKQEAgLTMzLDgg
KzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNBRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1bmNBRWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRnVuY0JFbGVtZW50LmgKaW5kZXggMzViYzQ0OC4uYWY0OWQ2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBT
VkdGRUZ1bmNCRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1bmNCRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNH
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgKaW5kZXgg
Mzk4NTdlZC4uMWFmYTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVu
Y0dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgK
QEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNHRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1
bmNHRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgKaW5kZXggOWU3MzI3Yy4uYjBkMGViNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0
ZToKICAgICBTVkdGRUZ1bmNSRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1bmNSRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlTm9kZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9k
ZUVsZW1lbnQuaAppbmRleCA1MTU5N2ViLi43MjMzZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHByaXZhdGU6CiAgICAg
RU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R0ZFTWVyZ2VOb2RlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCmluZGV4IGI3MDFi
ZTUuLjM0NTc5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGln
aHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1l
bnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxM
aWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhTVkdGRVBvaW50TGlnaHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCmlu
ZGV4IDgwMzlhZjIuLmZmNmI0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwb3RMaWdodEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGln
aHRFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHRkVTcG90TGlnaHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKaW5kZXgg
OGVhNzNmYi4uMTkzOWUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBA
IC03NSw4ICs3NSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVS
VElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZpbHRlckVsZW1lbnQpCi0KIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCmluZGV4IDhlNDI3NGQuLmViNWM0NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNHbHlwaENhY2hlVmFsaWQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoU1ZHRm9udEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgK
aW5kZXggNmEyMTE2YS4uZGNkMDFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVs
ZW1lbnQuaApAQCAtNjYsOCArNjYsNiBAQCBwcml2YXRlOgogICAgIFNWR0ZvbnRFbGVtZW50KiBt
X2ZvbnRFbGVtZW50OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlRWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCmluZGV4IDNmMjU0
NDUuLmM2ODVmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5h
bWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1l
bnQuaApAQCAtMzksOCArMzksNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZU5hbWVFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCmluZGV4IDNiMDkxNGMuLmJhNWE2NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKQEAgLTQwLDgg
KzQwLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHRm9udEZhY2VTcmNFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlVXJpRWxlbWVudC5oCmluZGV4IDE4OWE3ODkuLjM1MGYxZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0
ZToKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBtX2NhY2hlZEZvbnQ7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VVcmlFbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAppbmRleCA3NWJiNzRiLi5hYjRkMWFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaApAQCAt
NTgsOCArNTgsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJ
RVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb3JlaWduT2JqZWN0RWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHbHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1l
bnQuaAppbmRleCA3YjdkMzhhLi40MDA5ZmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2x5cGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxl
bWVudC5oCkBAIC01Nyw4ICs1Nyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlR2x5
cGhDYWNoZSgpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0dseXBoRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAppbmRleCA2ZDhjYWM3Li40NjRmZWVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCkBAIC02MSw4ICs2MSw2IEBA
IHByaXZhdGU6CiAgICAgZmxvYXQgbV9keTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdHbHlw
aFJlZkVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHSEtlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50
LmgKaW5kZXggZTVkOGI3OGYuLjFjMTllMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdIS2VybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVt
ZW50LmgKQEAgLTQyLDggKzQyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHSEtlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5oCmluZGV4IDFhMzYxYzUuLjE3Njc2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBTVkdJbWFn
ZUxvYWRlciBtX2ltYWdlTG9hZGVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ltYWdlRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVFbGVtZW50LmgKaW5kZXggNjRlNzg2My4uNTNmZWFkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFS
RV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTGluZUVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggNjhhYzZiOC4uNDZkOTJkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaApAQCAt
NTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJ
RVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVt
ZW50LmgKaW5kZXggOTczMjY0OC4uMWJlNjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01QYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVs
ZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNUGF0aEVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR01QYXRoRWxlbWVudF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAppbmRleCAxYjkzMGU2Li5iNTIyY2I3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTE2NCw4ICsxNjQsNiBAQCBw
cml2YXRlOgogICAgIG11dGFibGUgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFNW
R01hcmtlck9yaWVudFR5cGU+IG1fb3JpZW50VHlwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdNYXJrZXJFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuaAppbmRleCBmNTBhOTQ2Li4yMmVkZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFza0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJv
bml6ZVN5c3RlbUxhbmd1YWdlKCkgb3ZlcnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0
ZW1MYW5ndWFnZSh0aGlzKTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01hc2tFbGVtZW50
KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3Np
bmdHbHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVt
ZW50LmgKaW5kZXggZjU2MzdlZS4uOTRhNDI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdf
Rk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDAyMWI2ZjEuLmI2NGI0
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0xMjksOCArMTI5LDYgQEAg
cHJpdmF0ZToKICAgICBib29sIG1faXNBbmltVmFsT2JzZXJ2ZWQ7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCmluZGV4IDIyYzdjMjAuLjQ5MmNk
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBAIC04Niw4ICs4Niw2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2Uo
KSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUGF0dGVybkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9seWdvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5o
CmluZGV4IGE2MmRlMjAuLmQ5MGRkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5Z29uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxl
bWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHUG9seWdvbkVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHUG9seWdvbkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgKaW5kZXggNGI1ZTg0MS4uYTA5MWVj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaApAQCAtMzMsOCArMzMs
NiBAQCBwcml2YXRlOgogICAgIFNWR1BvbHlsaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdQb2x5bGluZUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKaW5kZXggZTU2ZmIyZi4uMTJiZjRlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTYs
OCArNTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5o
CmluZGV4IDcyZWI4NzUuLjNjZWU4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5o
CkBAIC01OCw4ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJP
UEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1JlY3RFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5k
ZXggZWZiNDJlZC4uMjc4MjI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0x
NzUsOCArMTc1LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U1ZHVmlld1NwZWM+IG1fdmlld1Nw
ZWM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU1ZHRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmlu
ZGV4IDU3MmY3OWQuLjlhY2RiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQu
aApAQCAtODYsOCArODYsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3Zn
TG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU2NyaXB0RWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BF
bGVtZW50LmgKaW5kZXggZDg3OWI0ZS4uN2RhMzdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BF
bGVtZW50LmgKQEAgLTQ5LDggKzQ5LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU3RvcEVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVF
bGVtZW50LmgKaW5kZXggNmE5MWUzOC4uMWU3MzE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1l
bnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU3R5bGVF
bGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdTdHlsZUVs
ZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAppbmRleCBhOGMwYjcyLi40MzA4
NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdUZXh0RWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAppbmRleCAwYTRmZjY3Li5mMjQ0YmMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgcHJpdmF0
ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHVGV4dFBhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCmluZGV4IGM4NGE2MDMuLjA3NWIy
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKQEAgLTQwLDggKzQwLDYgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJT
dHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHVGl0bGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXggM2YxMGVlOS4uYjczMmYxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC0xMjgsOCArMTI4LDYgQEAgcHJpdmF0ZToKICAgICBU
aW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xvYWRFdmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR1VzZUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5F
bGVtZW50LmgKaW5kZXggY2U4OGRlNS4uMTgwYmM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2Vy
bkVsZW1lbnQuaApAQCAtNDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdWS2VybkVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3RWxlbWVudC5oCmluZGV4IDI1MWQ3MzAuLjRiNDRkOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWaWV3RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgU1ZHU3Ry
aW5nTGlzdCBtX3ZpZXdUYXJnZXQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVmlld0VsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0aW9ucy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L0RPTS9XZWJET01PcGVyYXRpb25zLm1tCmluZGV4IGU0ZmI3NjYuLjEwNTRkYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCkBAIC03NCw3ICs3NCw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQp
OwogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwotICAgIHJldHVybiBraXQodG9FbGVtZW50
KHRvSlMoZXhlYywgdmFsdWUpKSk7CisgICAgcmV0dXJuIGtpdChKU0VsZW1lbnQ6OnRvSW1wbCh0
b0pTKGV4ZWMsIHZhbHVlKSkpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggYTZmM2I1NC4uOWNlNjFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtODYyMSw3ICs4NjIxLDcgQEAgc3RhdGljIHZvaWQgZ2xpYkNvbnRleHRJdGVy
YXRpb25DYWxsYmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHkKIHsK
ICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05T
KQogICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0gW1tzZWxmIG1haW5GcmFtZV0gZ2xvYmFsQ29u
dGV4dF07Ci0gICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSB0b05vdGlm
aWNhdGlvbih0b0pTKHRvSlMoY29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CisgICAgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBKU05vdGlmaWNhdGlvbjo6dG9JbXBsKHRv
SlModG9KUyhjb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8V2ViTm90aWZpY2F0aW9uQ2xpZW50Kj4oTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50
RnJvbShfcHJpdmF0ZS0+cGFnZSkpLT5ub3RpZmljYXRpb25JREZvclRlc3Rpbmcobm90aWZpY2F0
aW9uKTsKICNlbHNlCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlLmNwcAppbmRleCBjZGRkYzgxLi4wNDVhNjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAg
c3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5kbGVDYWNoZSgpCiAKIFBhc3NSZWZQdHI8SW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3Jl
YXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgb2JqZWN0KQogewotICAgIE5vZGUqIG5vZGUg
PSB0b05vZGUodG9KUyhvYmplY3QpKTsKKyAgICBOb2RlKiBub2RlID0gSlNOb2RlOjp0b0ltcGwo
dG9KUyhvYmplY3QpKTsKICAgICByZXR1cm4gZ2V0T3JDcmVhdGUobm9kZSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKaW5kZXggZjYzMzkx
Yi4uNjVmOGU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5k
bGVDYWNoZSgpCiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUoSlNDb250ZXh0UmVmLCBKU09iamVjdFJl
ZiBvYmplY3QpCiB7Ci0gICAgUmFuZ2UqIHJhbmdlID0gdG9SYW5nZSh0b0pTKG9iamVjdCkpOwor
ICAgIFJhbmdlKiByYW5nZSA9IEpTUmFuZ2U6OnRvSW1wbCh0b0pTKG9iamVjdCkpOwogICAgIHJl
dHVybiBnZXRPckNyZWF0ZShyYW5nZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXgg
MWE2NzI3Yi4uYjY0ZTgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTU5Nyw3ICs1OTcs
NyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9ucyhXZWJQYWdlKiBwYWdlKQogdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNh
dGlvbklEKEpTQ29udGV4dFJlZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganNOb3RpZmljYXRpb24p
CiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FU
SU9OUykKLSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90aWZp
Y2F0aW9uKHRvSlModG9KUyhqc0NvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOworICAgIFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gSlNOb3RpZmljYXRpb246OnRvSW1wbCh0
b0pTKHRvSlMoanNDb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKICAgICBpZiAoIW5vdGlmaWNh
dGlvbikKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+bm90aWZpY2F0aW9uSURGb3JU
ZXN0aW5nKG5vdGlmaWNhdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238226</attachid>
            <date>2014-09-16 17:24:53 -0700</date>
            <delta_ts>2014-09-16 17:36:54 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>136839_generate_cast_helpers_wip1.patch</filename>
            <type>text/plain</type>
            <size>127643</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCAzNjlhYmIxLi4zZGJmZGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCkBAIC0yMTMsNyArMjEzLDcgQEAgYm9vbCBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgLy8g
R2V0IHRoZSA8dmlkZW8+IGNyZWF0ZWQgdG8gcmVwbGFjZSB0aGUgcGx1Zy1pbi4KICAgICBKU0M6
OkpTVmFsdWUgdmFsdWUgPSByZXBsYWNlbWVudC5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4
ZWMsICJ2aWRlbyIpKTsKICAgICBpZiAoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpICYmICF2YWx1ZS5p
c1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICBtX21lZGlhRWxlbWVudCA9IHRvSFRNTFZpZGVv
RWxlbWVudCh2YWx1ZSk7CisgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gSlNIVE1MVmlkZW9FbGVt
ZW50Ojp0b0ltcGwodmFsdWUpOwogCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkgewogICAgICAg
ICBMT0coUGx1Z2lucywgIiVwIC0gRmFpbGVkIHRvIGZpbmQgPHZpZGVvPiBlbGVtZW50IGNyZWF0
ZWQgYnkgUXVpY2tUaW1lIHBsdWdpbiByZXBsYWNlbWVudCBzY3JpcHQuIiwgdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDk0ZDliNTMuLjVlMTlmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC03Nyw2ICs3Nyw3IEBAIF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLN0NHUG9pbnQK
IF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3Jl
MTBGb250R2x5cGhzMTVyZWxlYXNlRm9udERhdGFFdgogX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50
NnNfaW5mb0UKK19fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDVzY2FsZUVmCiBfX1pON1dlYkNvcmUxMExheW91dFJl
Y3Q1dW5pdGVFUktTMF8KIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdEMxRVJLTlNfOUZsb2F0UmVj
dEUKQEAgLTEyNCw3ICsxMjUsNiBAQCBfX1pON1dlYkNvcmUxMFRpbWVSYW5nZXNDMUVkZAogX19a
TjdXZWJDb3JlMTBkZWxldGVGaWxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBmaWxl
RXhpc3RzRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBzZXRDb29raWVzRVBOU184RG9j
dW1lbnRFUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMTB0b0RvY3VtZW50
RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlMTNnZXRDR0ltYWdlUmVm
RXYKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2VDMUVQN0NHSW1hZ2VQTlNfMTNJbWFnZU9ic2Vy
dmVyRQogX19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZUMxRVBOU18xM0ltYWdlT2JzZXJ2ZXJFCkBA
IC02NjcsNyArNjY3LDYgQEAgX19aTjdXZWJDb3JlMTVvcmlnaW5hbFVSTERhdGFFUDVOU1VSTAog
X19aTjdXZWJDb3JlMTVwYXRoR2V0RmlsZU5hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxNXJlcG9ydEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVQTlNfMTJD
YWNoZWRTY3JpcHRFCiBfX1pON1dlYkNvcmUxNXNldERPTUV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0
YXRlRWkKLV9fWk43V2ViQ29yZTE1dG9ET01TdHJpbmdMaXN0RVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTV2aXNpdGVkTGlua0hhc2hFUEt0agogX19aTjdXZWJD
b3JlMTV2aXNpdGVkTGlua0hhc2hFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkFwcGxp
Y2F0aW9uQ2FjaGUxOGRpc2tVc2FnZUZvck9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKQEAg
LTEyNDIsNiArMTI0MSw3IEBAIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29tbWFuZEVSS04zV1RGNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29weVVSTEVSS05TXzNVUkxFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yN291dGRlbnRFdgogX19aTjdXZWJDb3JlNkpTTm9kZTZz
X2luZm9FCitfX1pON1dlYkNvcmU2SlNOb2RlNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdX
ZWJDb3JlNkxlbmd0aEMxRU4zV1RGN1Bhc3NSZWZJTlNfMTZDYWxjdWxhdGlvblZhbHVlRUVFCiBf
X1pON1dlYkNvcmU2UmVnaW9uMjF1cGRhdGVCb3VuZHNGcm9tU2hhcGVFdgogX19aTjdXZWJDb3Jl
NlJlZ2lvbjV1bml0ZUVSS1MwXwpAQCAtMTI1OSw3ICsxMjU5LDYgQEAgX19aTjdXZWJDb3JlNldp
ZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBhcmVudEVQTlNfMTBTY3Jv
bGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2ViQ29yZTZ0b0ludDhFUE4z
SlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3Vy
YXRpb25FCi1fX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3
RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VTNF9SaQogX19aTjdX
ZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUVSS04zV1RG
MTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxlbWVudDE2Y3JlYXRlU2hhZG93Um9vdEVS
aQpAQCAtMTI3Myw2ICsxMjcyLDcgQEAgX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzEwTGF5
b3V0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19aTjdX
ZWJDb3JlN0ludFNpemVDMUVSSzZDR1NpemUKIF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUktOU185
RmxvYXRTaXplRQorX19aTjdXZWJDb3JlN0pTUmFuZ2U2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBf
X1pON1dlYkNvcmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRpbmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3
VGV4dFJ1bjIxc19hbGxvd3NSb3VuZGluZ0hhY2tzRQogX19aTjdXZWJDb3JlN1RleHRSdW4yMnNl
dEFsbG93c1JvdW5kaW5nSGFja3NFYgpAQCAtMTI4MSw3ICsxMjgxLDYgQEAgX19aTjdXZWJDb3Jl
N2pzQXJyYXlFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1dURjEw
UGFzc1JlZlB0ckkKIF9fWk43V2ViQ29yZTdtYWtlUkdCRWlpaQogX19aTjdXZWJDb3JlN3RvSW50
MTZFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNv
bmZpZ3VyYXRpb25FCiBfX1pON1dlYkNvcmU3dG9JbnQ2NEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83
SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKLV9fWk43V2ViQ29y
ZTd0b1JhbmdlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3dG9VSW50OEVQTjNKU0M5RXhl
Y1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUK
IF9fWk43V2ViQ29yZThCbG9iRGF0YTE0c2V0Q29udGVudFR5cGVFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmU4Q1NTVmFsdWU3ZGVzdHJveUV2CkBAIC0xNDk1LDYgKzE0OTQsNyBAQCBfX1pO
N1dlYkNvcmU5SW5saW5lQm94MTRkaXJ0eUxpbmVCb3hlc0V2CiBfX1pON1dlYkNvcmU5SW5saW5l
Qm94MTRzZWxlY3Rpb25TdGF0ZUV2CiBfX1pON1dlYkNvcmU5SW5saW5lQm94MTZwbGFjZUVsbGlw
c2lzQm94RWJmZmZSZlJiCiBfX1pON1dlYkNvcmU5SlNFbGVtZW50NnNfaW5mb0UKK19fWk43V2Vi
Q29yZTlKU0VsZW1lbnQ2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU5TGF5ZXJQ
b29sQzFFdgogX19aTjdXZWJDb3JlOUxheWVyUG9vbEQxRXYKIF9fWk43V2ViQ29yZTlQYWdlQ2Fj
aGUxMXNldENhcGFjaXR5RWkKQEAgLTE1MzUsNyArMTUzNSw2IEBAIF9fWk43V2ViQ29yZTlmb250
Q2FjaGVFdgogX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRVMy
XwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5cGxhaW5UZXh0RVBLTlNf
NVJhbmdlRXRiCi1fX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dl
YkNvcmU5dW5pb25SZWN0RVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFJlY3RFTG0wRU5TMF8xNUNy
YXNoT25PdmVyZmxvd0VFRQogX19aTkszSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxP
YmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3JlYXRlQ0ZTdHJpbmdFdgpAQCAtMzI1OCw3ICsz
MjU3LDcgQEAgX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVudEV2
CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjhmaW5hbGl6ZUV2CiBfX1pON1dlYkNvcmUxMk5v
dGlmaWNhdGlvbkMxRXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uRDFFdgotX19aTjdXZWJD
b3JlMTR0b05vdGlmaWNhdGlvbkVOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTRKU05vdGlm
aWNhdGlvbjZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE5cHJvdmlkZU5vdGlm
aWNhdGlvbkVQTlNfNFBhZ2VFUE5TXzE4Tm90aWZpY2F0aW9uQ2xpZW50RQogX19aTjdXZWJDb3Jl
MjJOb3RpZmljYXRpb25Db250cm9sbGVyMTBjbGllbnRGcm9tRVBOU180UGFnZUUKICNlbmRpZgpA
QCAtMzM3MCw3ICszMzY5LDcgQEAgX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxNmhhbmRsZVRv
dWNoRXZlbnRFUktOU18xOFBsYXRmb3JtVG91Y2hFdmVudEUKICNpZiBFTkFCTEUoVklERU8pCiAu
b2JqY19jbGFzc19uYW1lX1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIKIF9fWk43V2ViQ29y
ZTEwVGltZVJhbmdlczNhZGRFZGQKLV9fWk43V2ViQ29yZTEydG9UaW1lUmFuZ2VzRU4zSlNDN0pT
VmFsdWVFCitfX1pON1dlYkNvcmUxMkpTVGltZVJhbmdlczZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEyZW5kU2NydWJiaW5nRXYKIF9fWk43V2Vi
Q29yZTE2SFRNTE1lZGlhRWxlbWVudDE0YmVnaW5TY3J1YmJpbmdFdgogX19aTjdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50MTRleGl0RnVsbHNjcmVlbkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAK
aW5kZXggZTZiNTA2NC4uYWJiMDA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcApAQCAtNDEs
NyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OnNldEJ1ZmZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAg
QXVkaW9CdWZmZXIqIGJ1ZmZlciA9IHRvQXVkaW9CdWZmZXIodmFsdWUpOworICAgIEF1ZGlvQnVm
ZmVyKiBidWZmZXIgPSBKU0F1ZGlvQnVmZmVyOjp0b0ltcGwodmFsdWUpOwogICAgIGlmICghYnVm
ZmVyKSB7CiAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlw
ZUVycm9yKGV4ZWMsICJWYWx1ZSBpcyBub3Qgb2YgdHlwZSBBdWRpb0J1ZmZlciIpKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9i
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAK
aW5kZXggMjkzYWZiMy4uMDZhOTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCbG9iQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jsb2JDdXN0b20uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU0Jsb2IoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgYmxv
YkJ1aWxkZXIuYXBwZW5kKGFycmF5QnVmZmVyKTsKICAgICAgICAgZWxzZSBpZiAoUmVmUHRyPEFy
cmF5QnVmZmVyVmlldz4gYXJyYXlCdWZmZXJWaWV3ID0gdG9BcnJheUJ1ZmZlclZpZXcoaXRlbSkp
CiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYXJyYXlCdWZmZXJWaWV3LnJlbGVhc2Uo
KSk7Ci0gICAgICAgIGVsc2UgaWYgKEJsb2IqIGJsb2IgPSB0b0Jsb2IoaXRlbSkpCisgICAgICAg
IGVsc2UgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvSW1wbChpdGVtKSkKICAgICAgICAgICAg
IGJsb2JCdWlsZGVyLmFwcGVuZChibG9iKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBT
dHJpbmcgc3RyaW5nID0gaXRlbS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1
c3RvbS5jcHAKaW5kZXggNzk1NDhlOC4uZjJmZmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcApAQCAt
MTEzLDcgKzExMyw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQSUhvc3Q6OmdldEV2ZW50TGlz
dGVuZXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFs
dWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgTm9kZSog
bm9kZSA9IHRvTm9kZSh2YWx1ZSk7CisgICAgTm9kZSogbm9kZSA9IEpTTm9kZTo6dG9JbXBsKHZh
bHVlKTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCkBA
IC0xNDksNyArMTQ5LDcgQEAgSlNWYWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6ZGF0YWJhc2VJ
ZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAjaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSB0b0RhdGFiYXNl
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSBK
U0RhdGFiYXNlOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChk
YXRhYmFzZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGltcGwoKS5k
YXRhYmFzZUlkSW1wbChkYXRhYmFzZSkpOwogI2VuZGlmCkBAIC0xNjIsNyArMTYyLDcgQEAgSlNW
YWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3RvcmFnZUlkKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAKLSAgICBTdG9yYWdlKiBzdG9yYWdlID0gdG9TdG9yYWdlKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBTdG9yYWdlKiBzdG9yYWdlID0gSlNTdG9yYWdlOjp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChzdG9yYWdlKQogICAgICAgICBy
ZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgaW1wbCgpLnN0b3JhZ2VJZEltcGwoc3RvcmFn
ZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1E
YXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFD
dXN0b20uY3BwCmluZGV4IDMxYjE4MGIuLmU5ZTBiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCkBAIC00MSw5ICs0MSw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhU
TUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIEhUTUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnRPck51bGwoSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewotICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiAwOworICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiBudWxscHRyOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRlKiBleGVjKQpAQCAtNTIsNyArNTIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRl
KiBleGVjKQogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gMDsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpID4gMCkKLSAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50KGV4
ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50T3JOdWxs
KGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBSZWZQdHI8RE9NRm9ybURhdGE+IGRvbUZvcm1EYXRh
ID0gRE9NRm9ybURhdGE6OmNyZWF0ZShmb3JtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGRvbUZv
cm1EYXRhLmdldCgpKSkpOwogfQpAQCAtNjYsNyArNjYsNyBAQCBKU1ZhbHVlIEpTRE9NRm9ybURh
dGE6OmFwcGVuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWU7
CiAgICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDMgJiYgIWV4ZWMtPmFy
Z3VtZW50KDIpLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICAgICAgZmlsZW5hbWUg
PSBleGVjLT5hcmd1bWVudCgyKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgICAg
ICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIHRvQmxvYih2YWx1ZSksIGZpbGVuYW1lKTsKKyAgICAg
ICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwgSlNCbG9iOjp0b0ltcGwodmFsdWUpLCBmaWxlbmFt
ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChuYW1lLCB2YWx1
ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCmluZGV4IDIzMzM3
YjIuLmFkM2FjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
U3RyaW5nTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01TdHJpbmdMaXN0Q3VzdG9tLmNwcApAQCAtMjUsNyArMjUsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
dG9ET01TdHJpbmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gSlNET01TdHJpbmdMaXN0Ojp0b0ltcGwoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU0RPTVN0cmluZ0xp
c3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTRE9NU3RyaW5nTGlzdCo+KGFz
T2JqZWN0KHZhbHVlKSktPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA1ZjNiNTE3Li5lODRkM2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02ODQs
NyArNjg0LDcgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLURPTVdpbmRvdyog
dG9ET01XaW5kb3coSlNWYWx1ZSB2YWx1ZSkKK0RPTVdpbmRvdyogSlNET01XaW5kb3c6OnRvSW1w
bChKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApp
bmRleCAxYWYwMjZkLi5kMzBiMjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGljdGlvbmFyeS5jcHAKQEAgLTE1NSwyMiArMTU1LDIyIEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8U2VyaWFs
aXplCiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPERPTVdpbmRvdz4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RP
TVdpbmRvdyh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNET01XaW5kb3c6OnRvSW1wbCh2YWx1ZSk7
CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRv
RXZlbnRUYXJnZXQodmFsdWUpOworICAgIHJlc3VsdCA9IEpTRXZlbnRUYXJnZXQ6OnRvSW1wbCh2
YWx1ZSk7CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwg
SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE5vZGU+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9O
b2RlKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU05vZGU6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZv
aWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPFN0b3JhZ2U+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9TdG9yYWdlKHZhbHVl
KTsKKyAgICByZXN1bHQgPSBKU1N0b3JhZ2U6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBN
ZXNzYWdlUG9ydEFycmF5JiByZXN1bHQpCkBAIC0yMjIsMzEgKzIyMiwzMSBAQCB2b2lkIEpTRGlj
dGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVl
LCBSZWZQdHI8VWludAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBS
ZWZQdHI8TWVkaWFLZXlFcnJvcj4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhS2V5
RXJyb3IodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFLZXlFcnJvcjo6dG9JbXBsKHZhbHVl
KTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgSlNEaWN0aW9u
YXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJl
ZlB0cjxNZWRpYVN0cmVhbT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhU3RyZWFt
KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhU3RyZWFtOjp0b0ltcGwodmFsdWUpOwogfQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mIHJlc3VsdCkKIHsKLSAgICBy
ZXN1bHQgPSB0b01lZGlhU3RyZWFtVHJhY2sodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFT
dHJlYW1UcmFjazo6dG9JbXBsKHZhbHVlKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEZPTlRf
TE9BRF9FVkVOVFMpCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgcmVzdWx0
KQogewotICAgIHJlc3VsdCA9IHRvQ1NTRm9udEZhY2VSdWxlKHZhbHVlKTsKKyAgICByZXN1bHQg
PSBKU0NTU0ZvbnRGYWNlUnVsZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPERPTUVycm9yPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvRE9NRXJyb3IodmFsdWUp
OworICAgIHJlc3VsdCA9IEpTRE9NRXJyb3I6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCkKQEAgLTI2MSw3ICsyNjEsNyBA
QCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cgogI2lmIEVOQUJMRShHQU1FUEFEKQogdm9pZCBKU0Rp
Y3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1
ZSwgUmVmUHRyPEdhbWVwYWQ+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9HYW1lcGFkKHZh
bHVlKTsKKyAgICByZXN1bHQgPSBKU0dhbWVwYWQ6OnRvSW1wbCh2YWx1ZSk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9t
LmNwcAppbmRleCA1MjEwZjEyLi5mNTRhNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcApAQCAtNTgsNyArNTgsNyBAQCBKU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBFdmVudFRhcmdldCogdGFyZwogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKUyMjaW50ZXJmYWNl
TmFtZTo6aW5mbygpKSkgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICByZXR1cm4gJmpz
Q2FzdDxKUyMjaW50ZXJmYWNlTmFtZSo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsKIAotRXZl
bnRUYXJnZXQqIHRvRXZlbnRUYXJnZXQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorRXZlbnRUYXJnZXQq
IEpTRXZlbnRUYXJnZXQ6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVFJZX1RP
X1VOV1JBUF9XSVRIX0lOVEVSRkFDRShET01XaW5kb3dTaGVsbCkKICAgICBUUllfVE9fVU5XUkFQ
X1dJVEhfSU5URVJGQUNFKEV2ZW50VGFyZ2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKaW5kZXggYmRlMjViMC4uZjYyNjJkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3BwCkBAIC00MSwyMCAr
NDEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFeGNlcHRpb25CYXNlKiB0b0V4Y2VwdGlv
bkJhc2UoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChET01Db3JlRXhjZXB0aW9uKiBk
b21FeGNlcHRpb24gPSB0b0RPTUNvcmVFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChET01Db3Jl
RXhjZXB0aW9uKiBkb21FeGNlcHRpb24gPSBKU0RPTUNvcmVFeGNlcHRpb246OnRvSW1wbCh2YWx1
ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihkb21F
eGNlcHRpb24pOwotICAgIGlmIChSYW5nZUV4Y2VwdGlvbiogcmFuZ2VFeGNlcHRpb24gPSB0b1Jh
bmdlRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoUmFuZ2VFeGNlcHRpb24qIHJhbmdlRXhjZXB0
aW9uID0gSlNSYW5nZUV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHJhbmdlRXhjZXB0aW9uKTsKLSAgICBpZiAo
RXZlbnRFeGNlcHRpb24qIGV2ZW50RXhjZXB0aW9uID0gdG9FdmVudEV4Y2VwdGlvbih2YWx1ZSkp
CisgICAgaWYgKEV2ZW50RXhjZXB0aW9uKiBldmVudEV4Y2VwdGlvbiA9IEpTRXZlbnRFeGNlcHRp
b246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2Vw
dGlvbkJhc2UqPihldmVudEV4Y2VwdGlvbik7Ci0gICAgaWYgKFhNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uKiB4bWxIdHRwRXhjZXB0aW9uID0gdG9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbih2YWx1ZSkp
CisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKiB4bWxIdHRwRXhjZXB0aW9uID0gSlNY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHhtbEh0dHBFeGNlcHRpb24pOwotICAgIGlm
IChTVkdFeGNlcHRpb24qIHN2Z0V4Y2VwdGlvbiA9IHRvU1ZHRXhjZXB0aW9uKHZhbHVlKSkKKyAg
ICBpZiAoU1ZHRXhjZXB0aW9uKiBzdmdFeGNlcHRpb24gPSBKU1NWR0V4Y2VwdGlvbjo6dG9JbXBs
KHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+
KHN2Z0V4Y2VwdGlvbik7Ci0gICAgaWYgKFhQYXRoRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0g
dG9YUGF0aEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFhQYXRoRXhjZXB0aW9uKiBwYXRoRXhj
ZXB0aW9uID0gSlNYUGF0aEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHBhdGhFeGNlcHRpb24pOwogI2lmIEVO
QUJMRShTUUxfREFUQUJBU0UpCi0gICAgaWYgKFNRTEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlvbiA9
IHRvU1FMRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoU1FMRXhjZXB0aW9uKiBwYXRoRXhjZXB0
aW9uID0gSlNTUUxFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihwYXRoRXhjZXB0aW9uKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50
Q3VzdG9tLmNwcAppbmRleCAxZDQwYzYwLi5iZmMxZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAKQEAgLTQw
LDcgKzQwLDcgQEAgdm9pZCBKU0hUTUxNZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIoRXhlY1N0
YXRlKiwgSlNWYWx1ZSB2YWx1ZSkKICAgICAvLyBPbiBzZXR0aW5nLCBpdCBtdXN0IGZpcnN0IHJl
bW92ZSB0aGUgZWxlbWVudCdzIG1lZGlhZ3JvdXAgYXR0cmlidXRlLCBpZiBhbnksIAogICAgIGlt
cGwoKS5zZXRNZWRpYUdyb3VwKFN0cmluZygpKTsKICAgICAvLyBhbmQgdGhlbiBzZXQgdGhlIGN1
cnJlbnQgbWVkaWEgY29udHJvbGxlciB0byB0aGUgZ2l2ZW4gdmFsdWUuCi0gICAgaW1wbCgpLnNl
dENvbnRyb2xsZXIodG9NZWRpYUNvbnRyb2xsZXIodmFsdWUpKTsKKyAgICBpbXBsKCkuc2V0Q29u
dHJvbGxlcihKU01lZGlhQ29udHJvbGxlcjo6dG9JbXBsKHZhbHVlKSk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9u
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uQ3VzdG9tLmNwcAppbmRleCA3NGE1ODY3Li43MWYzZGRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25D
dXN0b20uY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246
OmluZGV4U2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsCiBKU1Zh
bHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjphZGQoRXhlY1N0YXRlKiBleGVjKQogewogICAg
IEhUTUxPcHRpb25zQ29sbGVjdGlvbiYgaW1wID0gaW1wbCgpOwotICAgIEhUTUxPcHRpb25FbGVt
ZW50KiBvcHRpb24gPSB0b0hUTUxPcHRpb25FbGVtZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAg
ICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKICAgICAgICAgaW1wLmFkZChvcHRpb24sIGVjKTsK
QEAgLTgxLDcgKzgxLDcgQEAgSlNWYWx1ZSBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6cmVtb3Zl
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyBUaGUgYXJndW1lbnQgY2FuIGJlIGFuIEhUTUxP
cHRpb25FbGVtZW50IG9yIGFuIGluZGV4LgogICAgIEpTVmFsdWUgYXJndW1lbnQgPSBleGVjLT5h
cmd1bWVudCgwKTsKLSAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9w
dGlvbkVsZW1lbnQoYXJndW1lbnQpKQorICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9u
ID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBsKGFyZ3VtZW50KSkKICAgICAgICAgaW1wbCgp
LnJlbW92ZShvcHRpb24pOwogICAgIGVsc2UKICAgICAgICAgaW1wbCgpLnJlbW92ZShhcmd1bWVu
dC50b0ludDMyKGV4ZWMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggNDNmNjk0Yi4uZGRkMDkyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVu
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0
RWxlbWVudEN1c3RvbS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgSlNWYWx1ZSBKU0hUTUxTZWxlY3RF
bGVtZW50OjpyZW1vdmUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgZWMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFRoZSBIVE1MU2VsZWN0RWxlbWVu
dDo6cmVtb3ZlKCkgZnVuY3Rpb24gY2FuIHRha2UgZWl0aGVyIGFuIG9wdGlvbiBvYmplY3Qgb3Ig
dGhlIGluZGV4IG9mIGFuIG9wdGlvbi4KLSAgICAgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBv
cHRpb24gPSB0b0hUTUxPcHRpb25FbGVtZW50KGV4ZWMtPmFyZ3VtZW50KDApKSkKKyAgICAgICAg
aWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMCkpKQogICAgICAgICAgICAgc2VsZWN0LnJlbW92ZShvcHRpb24p
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzZWxlY3QucmVtb3ZlQnlJbmRleChleGVjLT5h
cmd1bWVudCgwKS50b0ludDMyKGV4ZWMpKTsKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBzZWxlY3RJ
bmRleFNldHRlcihIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQKICAgICAgICAgc2VsZWN0LT5yZW1vdmVCeUluZGV4KGluZGV4KTsKICAgICBl
bHNlIHsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIEhUTUxPcHRpb25F
bGVtZW50KiBvcHRpb24gPSB0b0hUTUxPcHRpb25FbGVtZW50KHZhbHVlKTsKKyAgICAgICAgSFRN
TE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbCh2YWx1
ZSk7CiAgICAgICAgIGlmICghb3B0aW9uKQogICAgICAgICAgICAgZWMgPSBUWVBFX01JU01BVENI
X0VSUjsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCmluZGV4IGY0YjU1NWYu
LmY1NzQxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVj
dG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBK
U1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaG93Q29udGV4dE1lbnUoRXhlY1N0YXRl
KiBleGVjKQogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAyKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICBFdmVudCog
ZXZlbnQgPSB0b0V2ZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBFdmVudCogZXZlbnQgPSBK
U0V2ZW50Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpOwogCiAgICAgSlNBcnJheSogYXJyYXkg
PSBhc0FycmF5KGV4ZWMtPmFyZ3VtZW50KDEpKTsKICAgICBDb250ZXh0TWVudSBtZW51OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3Bw
CmluZGV4IGJhOWUzY2MuLjliYjNmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBoYW5kbGVJbml0TWVzc2FnZUV2ZW50KEpTTWVzc2FnZUV2ZW50KiBqc0V2
ZW50LCBKU0M6OkV4ZWNTdGEKICAgICBib29sIGNhbmNlbGFibGVBcmcgPSBleGVjLT5hcmd1bWVu
dCgyKS50b0Jvb2xlYW4oZXhlYyk7CiAgICAgY29uc3QgU3RyaW5nIG9yaWdpbkFyZyA9IGV4ZWMt
PmFyZ3VtZW50KDQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBjb25zdCBTdHJp
bmcgbGFzdEV2ZW50SWRBcmcgPSBleGVjLT5hcmd1bWVudCg1KS50b1N0cmluZyhleGVjKS0+dmFs
dWUoZXhlYyk7Ci0gICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSB0b0RPTVdpbmRvdyhleGVjLT5h
cmd1bWVudCg2KSk7CisgICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSBKU0RPTVdpbmRvdzo6dG9J
bXBsKGV4ZWMtPmFyZ3VtZW50KDYpKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRB
cnJheT4gbWVzc2FnZVBvcnRzOwogICAgIE93blB0cjxBcnJheUJ1ZmZlckFycmF5PiBhcnJheUJ1
ZmZlcnM7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCg3KS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20u
Y3BwCmluZGV4IDc1YWJlMTguLjk0NmZlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQg
ZmlsbE1lc3NhZ2VQb3J0QXJyYXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2
YWx1ZSwgTWVzc2FnZVBvcnRBCiAgICAgICAgIH0KIAogICAgICAgICAvLyBWYWxpZGF0aW9uIG9m
IE9iamVjdHMgaW1wbGVtZW50aW5nIGFuIGludGVyZmFjZSwgcGVyIFdlYklETCBzcGVjIDQuMS4x
NS4KLSAgICAgICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0ID0gdG9NZXNzYWdlUG9ydCh2YWx1
ZSk7CisgICAgICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydCA9IEpTTWVzc2FnZVBvcnQ6OnRv
SW1wbCh2YWx1ZSk7CiAgICAgICAgIGlmIChwb3J0KSB7CiAgICAgICAgICAgICAvLyBDaGVjayBm
b3IgZHVwbGljYXRlIHBvcnRzLgogICAgICAgICAgICAgaWYgKHBvcnRBcnJheS5jb250YWlucyhw
b3J0KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5k
ZXggZDM2MjRlMS4uZGQ3YjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBKU05vZGVPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHYK
IEpTVmFsdWUgSlNOb2RlOjppbnNlcnRCZWZvcmUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkuaW5zZXJ0QmVmb3JlKHRv
Tm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgxKSksIGVjKTsK
KyAgICBib29sIG9rID0gaW1wbCgpLmluc2VydEJlZm9yZShKU05vZGU6OnRvSW1wbChleGVjLT5h
cmd1bWVudCgwKSksIEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOwogICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4g
ZXhlYy0+YXJndW1lbnQoMCk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgSlNWYWx1ZSBKU05vZGU6Omlu
c2VydEJlZm9yZShFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTTm9kZTo6cmVwbGFjZUNoaWxk
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29s
IG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCB0b05v
ZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7CisgICAgYm9vbCBvayA9IGltcGwoKS5yZXBsYWNl
Q2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpLCBKU05vZGU6OnRvSW1wbChl
eGVjLT5hcmd1bWVudCgxKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwog
ICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50KDEpOwpAQCAtMTU1LDcg
KzE1NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjpyZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQog
SlNWYWx1ZSBKU05vZGU6OnJlbW92ZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLnJlbW92ZUNoaWxkKHRvTm9k
ZShleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLnJlbW92ZUNo
aWxkKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOwogICAgIHNldERPTUV4
Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJn
dW1lbnQoMCk7CkBAIC0xNjUsNyArMTY1LDcgQEAgSlNWYWx1ZSBKU05vZGU6OnJlbW92ZUNoaWxk
KEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFsdWUgSlNOb2RlOjphcHBlbmRDaGlsZChFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcGwo
KS5hcHBlbmRDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCBlYyk7CisgICAgYm9vbCBv
ayA9IGltcGwoKS5hcHBlbmRDaGlsZChKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSks
IGVjKTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAg
ICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKaW5kZXggMjhjMTZjMS4uNGUxNDdkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3Bw
CkBAIC0zNSw3ICszNSw3IEBAIHZvaWQgSlNOb2RlRmlsdGVyOjp2aXNpdEFkZGl0aW9uYWxDaGls
ZHJlbihKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9v
dCgmaW1wbCgpKTsKIH0KIAotUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIoSlND
OjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gSlNO
b2RlRmlsdGVyOjp0b0ltcGwoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBpZiAodmFsdWUuaW5oZXJpdHMoSlNOb2RlRmlsdGVyOjppbmZvKCkpKQogICAgICAgICByZXR1
cm4gJkpTQzo6anNDYXN0PEpTTm9kZUZpbHRlcio+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcAppbmRleCBmNDA1YTAzLi42ODgwYTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAg
SlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZW5jcnlwdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtl
eSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8
Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4
ZWMpOwogCkBAIC0xOTcsNyArMTk3LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGVjcnlw
dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0K
IAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6
dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC0yNDgsNyArMjQ4LDcgQEAgSlNW
YWx1ZSBKU1N1YnRsZUNyeXB0bzo6c2lnbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRv
Q3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRv
S2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwog
CkBAIC0yOTksNyArMjk5LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dmVyaWZ5KEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAg
UmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCBKU1ZhbHVlIEpT
U3VidGxlQ3J5cHRvOjpleHBvcnRLZXkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0Ny
eXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tl
eT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7
CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApA
QCAtNjMwLDExICs2MzAsMTEgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6d3JhcEtleShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAg
IFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBs
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCi0gICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBp
bmdLZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgUmVm
UHRyPENyeXB0b0tleT4gd3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDIpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKGV4ZWMpOwogCkBAIC03MTMsNyArNzEzLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNy
eXB0bzo6dW53cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4gdW53cmFwcGluZ0tleSA9IHRv
Q3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBSZWZQdHI8Q3J5cHRv
S2V5PiB1bndyYXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgyKSk7CiAgICAgaWYgKCF1bndyYXBwaW5nS2V5KQogICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCBjNWYyMTYx
Li5mZTUxZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAg
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhl
YywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsK
LSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dy
YW06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFt
ICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAg
ICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJH
TFNoYWRlcj4+IHNoYWRlcnM7CkBAIC0zNDEsNyArMzQxLDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRl
eHQgPSBpbXBsKCk7Ci0gICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0o
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9
IEpTV2ViR0xQcm9ncmFtOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAg
IGlmICghcHJvZ3JhbSAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIHVuc2ln
bmVkIHBuYW1lID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKQEAg
LTM2OSw3ICszNjksNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFk
ZXJQYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYg
Y29udGV4dCA9IGltcGwoKTsKICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlz
VW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmluaGVyaXRz
KEpTV2ViR0xTaGFkZXI6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihl
eGVjKTsKLSAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gdG9XZWJHTFNoYWRlcihleGVjLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xTaGFk
ZXI6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5h
bWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC00
MDUsMTAgKzQwNSwxMCBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlm
b3JtKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0q
IHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7Cisg
ICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvSW1wbChleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYyk7Ci0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9X
ZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgV2Vi
R0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xHZXRJbmZvIGluZm8gPSBjb250
ZXh0LmdldFVuaWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24sIGVjKTsKQEAgLTQ3OCw3ICs0NzgsNyBA
QCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYs
IEpTQzo6RXhlY1N0YXRlKiBleGVjLCBXZQogICAgIGxvbmcgaW5kZXggPSAtMTsKICAgICAKICAg
ICBpZiAoZnVuY3Rpb25Gb3JVbmlmb3JtKGYpKSB7Ci0gICAgICAgIGxvY2F0aW9uID0gdG9XZWJH
TFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgICAgIGxv
Y2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDApKTsKICAgICAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5
cGVFcnJvcihleGVjKTsKICAgICB9IGVsc2UKQEAgLTU2NCw3ICs1NjQsNyBAQCBzdGF0aWMgSlND
OjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBXZQogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAg
ICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoZXhlYykpOwogCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0
aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7
CisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2Nh
dGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0
aW9uICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQog
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgIApAQCAtNjI0LDcgKzYyNCw3
IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1h
dHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSAhPSAzKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAKLSAgICBXZWJHTFVuaWZvcm1M
b2NhdGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dl
YkdMVW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwog
ICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcAppbmRleCBjOWVkY2ZhLi5mOWFlMTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMTQ4LDExICsxNDgs
MTEgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAodmFsLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIGltcGwoKS5zZW5kKGVjKTsK
ICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNEb2N1bWVudDo6aW5mbygpKSkKLSAgICAgICAg
aW1wbCgpLnNlbmQodG9Eb2N1bWVudCh2YWwpLCBlYyk7CisgICAgICAgIGltcGwoKS5zZW5kKEpT
RG9jdW1lbnQ6OnRvSW1wbCh2YWwpLCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpT
QmxvYjo6aW5mbygpKSkKLSAgICAgICAgaW1wbCgpLnNlbmQodG9CbG9iKHZhbCksIGVjKTsKKyAg
ICAgICAgaW1wbCgpLnNlbmQoSlNCbG9iOjp0b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYg
KHZhbC5pbmhlcml0cyhKU0RPTUZvcm1EYXRhOjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2Vu
ZCh0b0RPTUZvcm1EYXRhKHZhbCksIGVjKTsKKyAgICAgICAgaW1wbCgpLnNlbmQoSlNET01Gb3Jt
RGF0YTo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNBcnJh
eUJ1ZmZlcjo6aW5mbygpKSkKICAgICAgICAgaW1wbCgpLnNlbmQodG9BcnJheUJ1ZmZlcih2YWwp
LCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTQXJyYXlCdWZmZXJWaWV3OjppbmZv
KCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcAppbmRleCAyOGYyMmRhLi43MGU5MjFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTc4NCwx
MiArNzg0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgd3JpdGUob2JqLT5pbnRlcm5h
bFZhbHVlKCkuYXNOdW1iZXIoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoRmlsZSogZmlsZSA9IHRvRmlsZShvYmopKSB7Cisg
ICAgICAgICAgICBpZiAoRmlsZSogZmlsZSA9IEpTRmlsZTo6dG9JbXBsKG9iaikpIHsKICAgICAg
ICAgICAgICAgICB3cml0ZShGaWxlVGFnKTsKICAgICAgICAgICAgICAgICB3cml0ZShmaWxlKTsK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChGaWxlTGlzdCogbGlzdCA9IHRvRmlsZUxpc3Qob2JqKSkgeworICAgICAgICAgICAgaWYg
KEZpbGVMaXN0KiBsaXN0ID0gSlNGaWxlTGlzdDo6dG9JbXBsKG9iaikpIHsKICAgICAgICAgICAg
ICAgICB3cml0ZShGaWxlTGlzdFRhZyk7CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3Ro
ID0gbGlzdC0+bGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgd3JpdGUobGVuZ3RoKTsKQEAgLTc5
Nyw3ICs3OTcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICB3cml0ZShsaXN0LT5p
dGVtKGkpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChCbG9iKiBibG9iID0gdG9CbG9iKG9iaikpIHsKKyAgICAgICAgICAgIGlm
IChCbG9iKiBibG9iID0gSlNCbG9iOjp0b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdy
aXRlKEJsb2JUYWcpOwogICAgICAgICAgICAgICAgIG1fYmxvYlVSTHMuYXBwZW5kKGJsb2ItPnVy
bCgpKTsKICAgICAgICAgICAgICAgICB3cml0ZShibG9iLT51cmwoKSk7CkBAIC04MDUsNyArODA1
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB3cml0ZShibG9iLT5zaXplKCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KEltYWdlRGF0YSogZGF0YSA9IHRvSW1hZ2VEYXRhKG9iaikpIHsKKyAgICAgICAgICAgIGlmIChJ
bWFnZURhdGEqIGRhdGEgPSBKU0ltYWdlRGF0YTo6dG9JbXBsKG9iaikpIHsKICAgICAgICAgICAg
ICAgICB3cml0ZShJbWFnZURhdGFUYWcpOwogICAgICAgICAgICAgICAgIHdyaXRlKGRhdGEtPndp
ZHRoKCkpOwogICAgICAgICAgICAgICAgIHdyaXRlKGRhdGEtPmhlaWdodCgpKTsKQEAgLTg2NSw3
ICs4NjUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZXNzOwogICAg
ICAgICAgICAgfQogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotICAgICAgICAgICAgaWYgKENy
eXB0b0tleSoga2V5ID0gdG9DcnlwdG9LZXkob2JqKSkgeworICAgICAgICAgICAgaWYgKENyeXB0
b0tleSoga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChvYmopKSB7CiAgICAgICAgICAgICAgICAg
d3JpdGUoQ3J5cHRvS2V5VGFnKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4gc2Vy
aWFsaXplZEtleTsKICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBkdW1teUJsb2JVUkxz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQppbmRleCA4ZDU0ZGExLi41NmRkNWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtODc0LDYgKzg3NCwxNyBAQCBz
dWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7XG4iKTsKICAgICB9CiAKKyAgICAjIEpTVmFsdWUgdG8gaW1wbGVtZW50YXRpb24gdHlw
ZQorICAgIGlmICghJGhhc1BhcmVudCB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJOb2RlRmlsdGVyIikgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b0ltcGwoSlNDOjpWTSYsIEpTQzo6
SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0
cmluZ0xpc3QiKSB7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvSW1wbChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljICRpbXBsVHlwZSogdG9JbXBsKEpT
Qzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgICRoZWFkZXJUcmFpbGlu
Z0luY2x1ZGVzeyIke2NsYXNzTmFtZX1DdXN0b20uaCJ9ID0gMSBpZiAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21IZWFkZXIifTsKIAogICAgIG15ICRuYW1lZEdldHRl
ckZ1bmN0aW9uID0gR2V0TmFtZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJmYWNlKTsKQEAgLTExNjYs
MTUgKzExNzcsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoU2hvdWxkR2VuZXJhdGVU
b0pTRGVjbGFyYXRpb24oJGhhc1BhcmVudCwgJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIldFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCAkaW1wbFR5cGUqKTtcbiIpOwogICAgIH0KLSAg
ICBpZiAoISRoYXNQYXJlbnQgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpT
R2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSB7Ci0gICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiTm9kZUZpbHRlciIpIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJQYXNz
UmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTtc
biIpOwotICAgICAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5nTGlzdCIp
IHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJQYXNzUmVmUHRyPERPTVN0cmlu
Z0xpc3Q+IHRvRE9NU3RyaW5nTGlzdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7XG4i
KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJX
RUJDT1JFX0VYUE9SVCAkaW1wbFR5cGUqIHRvJHtpbnRlcmZhY2VOYW1lfShKU0M6OkpTVmFsdWUp
O1xuIik7Ci0gICAgICAgIH0KLSAgICB9CiAgICAgaWYgKCR1c2VzVG9KU05ld2x5Q3JlYXRlZHsk
aW50ZXJmYWNlTmFtZX0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNW
YWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
LCAkaW50ZXJmYWNlTmFtZSopO1xuIik7CiAgICAgfQpAQCAtMzExMiw3ICszMTE0LDcgQEAgRU5E
CiAgICAgfQogCiAgICAgaWYgKCghJGhhc1BhcmVudCBvciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIGFuZCAhJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tVG9OYXRpdmVPYmplY3QifSkgewotICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiRpbXBsVHlwZSogdG8ke2ludGVyZmFjZU5hbWV9KEpTQzo6
SlNWYWx1ZSB2YWx1ZSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiRpbXBsVHlw
ZSogJHtjbGFzc05hbWV9Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKVxuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmIChhdXRvKiB3cmFwcGVyID0gIiAuIEdldENhc3RpbmdIZWxwZXJGb3JUaGlzT2JqZWN0
KCRpbnRlcmZhY2UpIC4gIih2YWx1ZSkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpO1xuIik7CkBAIC0zMjQzLDcgKzMyNDUs
NyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKIAogICAgICAgICBpZiAoJGFyZ1R5cGUg
ZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBjdXN0b21SZXNvbHZlcjtcbiIpOwotICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFhQYXRoTlNSZXNvbHZlciogcmVzb2x2ZXIg
PSB0b1hQYXRoTlNSZXNvbHZlcihleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSk7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBYUGF0aE5TUmVzb2x2ZXIqIHJlc29s
dmVyID0gSlNYUGF0aE5TUmVzb2x2ZXI6OnRvSW1wbChleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4
KSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIXJlc29s
dmVyKSB7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgY3Vz
dG9tUmVzb2x2ZXIgPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMt
PmFyZ3VtZW50KCRhcmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKVxuIik7CkBA
IC0zMjk2LDcgKzMyOTgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZm9yICh1bnNpZ25lZCBpID0gJGFyZ3NJ
bmRleCwgY291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7XG4i
KTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmICghZXhl
Yy0+dW5jaGVja2VkQXJndW1lbnQoaSkuaW5oZXJpdHMoSlMke2FyZ1R5cGV9OjppbmZvKCkpKVxu
Iik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAgcmV0
dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIGksIFwiJG5hbWVcIiwgXCIkaW50ZXJm
YWNlTmFtZVwiLCAkcXVvdGVkRnVuY3Rpb25OYW1lLCBcIiRhcmdUeXBlXCIpO1xuIik7Ci0gICAg
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZS5hcHBlbmQodG8k
YXJnVHlwZShleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpO1xuIik7CisgICAgICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZS5hcHBlbmQoSlMke2FyZ1R5cGV9
Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTtcbiIpOwogICAgICAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKQogICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVmVjdG9yPCRuYXRpdmVF
bGVtZW50VHlwZT4gJG5hbWUgPSB0b05hdGl2ZUFyZ3VtZW50czwkbmF0aXZlRWxlbWVudFR5cGU+
KGV4ZWMsICRhcmdzSW5kZXgpO1xuIik7CkBAIC0zODQ5LDcgKzM4NTEsNyBAQCBzdWIgSlNWYWx1
ZVRvTmF0aXZlCiAKICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7CiAgICAgICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwpOwotICAgICAgICByZXR1
cm4gInRvJHR5cGUoZXhlYy0+dm0oKSwgJHZhbHVlKSI7CisgICAgICAgIHJldHVybiAiSlMke3R5
cGV9Ojp0b0ltcGwoZXhlYy0+dm0oKSwgJHZhbHVlKSI7CiAgICAgfQogCiAgICAgaWYgKCR0eXBl
IGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CkBAIC0zODgxLDcgKzM4ODMsNyBAQCBzdWIg
SlNWYWx1ZVRvTmF0aXZlCiAgICAgaWYgKCRhcnJheU9yU2VxdWVuY2VUeXBlKSB7CiAgICAgICAg
IGlmICgkY29kZUdlbmVyYXRvci0+SXNSZWZQdHJUeXBlKCRhcnJheU9yU2VxdWVuY2VUeXBlKSkg
ewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHthcnJheU9yU2VxdWVuY2VUeXBl
fS5oIik7Ci0gICAgICAgICAgICByZXR1cm4gIih0b1JlZlB0ck5hdGl2ZUFycmF5PCR7YXJyYXlP
clNlcXVlbmNlVHlwZX0sIEpTJHthcnJheU9yU2VxdWVuY2VUeXBlfT4oZXhlYywgJHZhbHVlLCAm
dG8ke2FycmF5T3JTZXF1ZW5jZVR5cGV9KSkiOworICAgICAgICAgICAgcmV0dXJuICIodG9SZWZQ
dHJOYXRpdmVBcnJheTwke2FycmF5T3JTZXF1ZW5jZVR5cGV9LCBKUyR7YXJyYXlPclNlcXVlbmNl
VHlwZX0+KGV4ZWMsICR2YWx1ZSwgJkpTJHthcnJheU9yU2VxdWVuY2VUeXBlfTo6dG9JbXBsKSki
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAidG9OYXRpdmVBcnJheTwiIC4gR2V0TmF0aXZl
VmVjdG9ySW5uZXJUeXBlKCRhcnJheU9yU2VxdWVuY2VUeXBlKSAuICI+KGV4ZWMsICR2YWx1ZSki
OwogICAgIH0KQEAgLTM4OTIsNyArMzg5NCw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKIAogICAg
ICMgRGVmYXVsdCwgYXNzdW1lIGF1dG9nZW5lcmF0ZWQgdHlwZSBjb252ZXJzaW9uIHJvdXRpbmVz
CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25kaXRpb25hbCk7Ci0gICAg
cmV0dXJuICJ0byR0eXBlKCR2YWx1ZSkiOworICAgIHJldHVybiAiSlMke3R5cGV9Ojp0b0ltcGwo
JHZhbHVlKSI7CiB9CiAKIHN1YiBOYXRpdmVUb0pTVmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURP
TU9iamVjdC5jcHAKaW5kZXggNzE5MzhmYi4uYTE2MTE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAKQEAgLTIxNCw3ICsyMTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5j
dAogICAgIFRlc3RBY3RpdmVET01PYmplY3QmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIE5v
ZGUqIG5leHRDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBOb2RlKiBuZXh0
Q2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuZXhjaXRpbmdGdW5jdGlvbihuZXh0Q2hpbGQpOwpA
QCAtMjg5LDcgKzI4OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEFjdGl2ZURPCiAgICAgcmV0dXJuIGNy
ZWF0ZU5ld1dyYXBwZXI8SlNUZXN0QWN0aXZlRE9NT2JqZWN0PihnbG9iYWxPYmplY3QsIGltcGwp
OwogfQogCi1UZXN0QWN0aXZlRE9NT2JqZWN0KiB0b1Rlc3RBY3RpdmVET01PYmplY3QoSlNDOjpK
U1ZhbHVlIHZhbHVlKQorVGVzdEFjdGl2ZURPTU9iamVjdCogSlNUZXN0QWN0aXZlRE9NT2JqZWN0
Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPih2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCmluZGV4
IDU1YzJlZjkuLmRlNmI1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKQEAgLTM4
LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVBy
b3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6
OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdEFjdGl2ZURPTU9iamVjdCogdG9JbXBsKEpT
Qzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNU
ZXN0QWN0aXZlRE9NT2JqZWN0KCk7CkBAIC05Myw3ICs5NCw2IEBAIGlubGluZSB2b2lkKiB3cmFw
cGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0QWN0aXZlRE9NT2JqZWN0KikK
IH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3RBY3RpdmVET01PYmplY3QqKTsKLVdFQkNPUkVfRVhQT1JU
IFRlc3RBY3RpdmVET01PYmplY3QqIHRvVGVzdEFjdGl2ZURPTU9iamVjdChKU0M6OkpTVmFsdWUp
OwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuY3BwCmluZGV4IDU2OGM5ZGUuLmFlMTcxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcApAQCAtMjYzLDcgKzI2Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEN1c3Rv
bU5hCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+
KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RDdXN0b21OYW1lZEdldHRlciogdG9UZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAppbmRleCAxZWIzNWQ4Li5kYjRlYTFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CkBAIC05Nyw3ICs5OCw2IEBAIGlu
bGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEN1c3RvbU5hbWVkR2V0dGVy
Kik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDhlYWZhMDcuLjRlZTdlMWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTI5Miw3ICsyOTIsNyBAQCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRlc3RFdmVudENvbgogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVz
dEV2ZW50Q29uc3RydWN0b3I+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RFdmVudENv
bnN0cnVjdG9yKiB0b1Rlc3RFdmVudENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rl
c3RFdmVudENvbnN0cnVjdG9yKiBKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjp0b0ltcGwoSlNDOjpK
U1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RFdmVudENvbnN0cnVjdG9yKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXIt
PmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCmluZGV4IDViYmVlYzguLmU2
MGFiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaApAQCAtNDAsNiArNDAsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBUZXN0RXZlbnRDb25zdHJ1Y3RvciogdG9JbXBsKEpTQzo6SlNWYWx1
ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RF
dmVudENvbnN0cnVjdG9yKCk7CiAKQEAgLTkzLDcgKzk0LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBw
ZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RFdmVudENvbnN0cnVjdG9yKikK
IH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3RFdmVudENvbnN0cnVjdG9yKik7Ci1XRUJDT1JFX0VYUE9S
VCBUZXN0RXZlbnRDb25zdHJ1Y3RvciogdG9UZXN0RXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTVmFs
dWUpOwogCiBib29sIGZpbGxUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQoVGVzdEV2ZW50Q29uc3Ry
dWN0b3JJbml0JiwgSlNEaWN0aW9uYXJ5Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmlu
ZGV4IGRiMzMzZDIuLmU3NzZjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMjk0
LDcgKzI5NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRUYXJn
ZXRQcm90b3R5cGVGdW5jdGlvbkRpc3BhdGNoRXZlbnQoRXhlCiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIEV2ZW50KiBldnQodG9FdmVudChleGVjLT5hcmd1bWVudCgwKSkpOworICAgIEV2ZW50
KiBldnQoSlNFdmVudDo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihpbXBsLmRp
c3BhdGNoRXZlbnQoZXZ0LCBlYykpOwpAQCAtMzY0LDcgKzM2NCw3IEBAIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVz
dEV2ZW50VGFyCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXZlbnRUYXJnZXQ+
KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RFdmVudFRhcmdldCogdG9UZXN0RXZlbnRU
YXJnZXQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEV2ZW50VGFyZ2V0KiBKU1Rlc3RFdmVudFRh
cmdldDo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBl
ciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPih2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAppbmRleCBlYjBhMmQ5
Li45NjY4NGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaApAQCAtMzksNiArMzksNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFBy
b3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBUZXN0RXZlbnRUYXJnZXQqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBz
dGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CkBAIC0xMDEsNyArMTAyLDYgQEAgaW5s
aW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RFdmVu
dFRhcmdldCopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0RXZlbnRUYXJnZXQqKTsKLVdFQkNPUkVf
RVhQT1JUIFRlc3RFdmVudFRhcmdldCogdG9UZXN0RXZlbnRUYXJnZXQoSlNDOjpKU1ZhbHVlKTsK
IAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCmluZGV4IDRh
ZGU3NmUuLmMwMmM3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCkBAIC0yMzksNyArMjM5LDcg
QEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBUZXN0RXhjZXB0aW8KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxK
U1Rlc3RFeGNlcHRpb24+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RFeGNlcHRpb24q
IHRvVGVzdEV4Y2VwdGlvbihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0RXhjZXB0aW9uKiBKU1Rl
c3RFeGNlcHRpb246OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8q
IHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvbio+KHZhbHVlKSkKICAgICAg
ICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKaW5kZXggMzk4NDU3
NC4uZjY4YmRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBUZXN0RXhjZXB0aW9uKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQg
ZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RFeGNlcHRpb24oKTsKQEAgLTk0LDcg
Kzk1LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RFeGNlcHRpb24qKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV4Y2VwdGlvbiopOwot
V0VCQ09SRV9FWFBPUlQgVGVzdEV4Y2VwdGlvbiogdG9UZXN0RXhjZXB0aW9uKEpTQzo6SlNWYWx1
ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUuY3BwCmluZGV4IDQyN2FiYTguLmViYTlmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFRlc3RHZW5lcmF0ZQogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGU+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlKiB0b1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjp0b0ltcGwo
SlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKj4odmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCmlu
ZGV4IGRmN2JkZGIuLjk2YzAyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAg
c3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6
OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKCk7CiAKQEAgLTkxLDcg
KzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZSogdG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggYjE0M2NjNC4uOWExYmYx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTcyNCw3ICs3MjQsNyBAQCB2b2lkIHNldEpT
VGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEVuYwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RJbnRlcmZhY2Um
IGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgTm9kZSogbmF0aXZlVmFsdWUodG9Ob2Rl
KHZhbHVlKSk7CisgICAgTm9kZSogbmF0aXZlVmFsdWUoSlNOb2RlOjp0b0ltcGwodmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47
CiAgICAgaW1wbC5zZXRJbXBsZW1lbnRzTm9kZShuYXRpdmVWYWx1ZSk7CkBAIC03OTUsNyArNzk1
LDcgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBUZXN0SW50ZXJmYWNlJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIE5vZGUqIG5h
dGl2ZVZhbHVlKHRvTm9kZSh2YWx1ZSkpOworICAgIE5vZGUqIG5hdGl2ZVZhbHVlKEpTTm9kZTo6
dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5v
ZGUoJmltcGwsIG5hdGl2ZVZhbHVlKTsKQEAgLTg0MSw3ICs4NDEsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50
c01ldGhvZDIoRQogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDApLmlz
RW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoq
IG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBvYmpB
cmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRU
aGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC5pbXBsZW1lbnRzTWV0aG9kMihz
Y3JpcHRDb250ZXh0LCBzdHJBcmcsIG9iakFyZywgZWMpKSk7CkBAIC05MDcsNyArOTA3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvblN1cHBsZW1lbnRhbE1ldGhvZDIKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5h
cmd1bWVudCgwKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
LSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAg
VGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMo
ZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVt
ZW50YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDIoJmltcGwsIHNjcmlwdENvbnRleHQsIHN0ckFyZywg
b2JqQXJnLCBlYykpKTsKQEAgLTk3Myw3ICs5NzMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RJbnRlcmZh
YwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEludGVyZmFjZT4oZ2xvYmFsT2Jq
ZWN0LCBpbXBsKTsKIH0KIAotVGVzdEludGVyZmFjZSogdG9UZXN0SW50ZXJmYWNlKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKK1Rlc3RJbnRlcmZhY2UqIEpTVGVzdEludGVyZmFjZTo6dG9JbXBsKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0SW50ZXJmYWNlKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCA3ZGQ4ZDAzLi5iN2Q5N2MzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAg
ICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RJbnRlcmZhY2UqIHRv
SW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0M6OkpTQ2VsbCosIEpTQzo6
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIGJvb2wgc2hv
dWxkVGhyb3cpOwpAQCAtMTIwLDcgKzEyMSw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4
dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0SW50ZXJmYWNlKikKIH0KIAogV0VCQ09SRV9F
WFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCosIFRlc3RJbnRlcmZhY2UqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RJbnRlcmZhY2UqIHRvVGVz
dEludGVyZmFjZShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCAzZTkzMTFl
Li5lYjE2YjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwCkBAIC0yMjcsNyArMjI3LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TWVkaWFRdWUKICAgICByZXR1
cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPihnbG9iYWxP
YmplY3QsIGltcGwpOwogfQogCi1UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogdG9UZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lciogSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6dG9JbXBsKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApp
bmRleCA1NTczNWViLi40NWY4Mjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCop
OwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRl
c3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcigp
OwogCkBAIC05MSw3ICs5Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFw
cGVyV29ybGQmIHdvcmxkLCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopCiB9CiAKIFdFQkNP
UkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqLCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopOwotV0VCQ09SRV9FWFBPUlQgVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoSlND
OjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNzU0NmRjYy4uNzdmOTdjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVz
dE5hbWVkQ29uCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0TmFtZWRDb25zdHJ1
Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE5hbWVkQ29uc3RydWN0b3IqIHRv
VGVzdE5hbWVkQ29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE5hbWVkQ29uc3Ry
dWN0b3IqIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQ29u
c3RydWN0b3IqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKaW5kZXggZWNlOTg4Ny4uMmYzYmJhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFRlc3ROYW1lZENvbnN0cnVjdG9yKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE5hbWVkQ29uc3RydWN0
b3IoKTsKIApAQCAtOTIsNyArOTMsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE5hbWVkQ29uc3RydWN0b3IqKQogfQogCiBXRUJDT1JF
X0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiwgVGVzdE5hbWVkQ29uc3RydWN0b3IqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3ROYW1lZENv
bnN0cnVjdG9yKiB0b1Rlc3ROYW1lZENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCmlu
ZGV4IGUxNzNhYWMuLjhiNWE1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5j
cHAKQEAgLTUzNCw3ICs1MzQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROb25kZXRlcgogICAgIHJldHVy
biBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE5vbmRldGVybWluaXN0aWM+KGdsb2JhbE9iamVjdCwg
aW1wbCk7CiB9CiAKLVRlc3ROb25kZXRlcm1pbmlzdGljKiB0b1Rlc3ROb25kZXRlcm1pbmlzdGlj
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3ROb25kZXRlcm1pbmlzdGljKiBKU1Rlc3ROb25kZXRl
cm1pbmlzdGljOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3
cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljKj4odmFsdWUpKQog
ICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpYy5oCmluZGV4IGY1MmViYmQuLjQ1N2ZkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWlu
aXN0aWMuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0Tm9uZGV0ZXJtaW5p
c3RpYyogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6
OkpTQ2VsbCopOwogICAgIH5KU1Rlc3ROb25kZXRlcm1pbmlzdGljKCk7CiAKQEAgLTkxLDcgKzky
LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQs
IFRlc3ROb25kZXRlcm1pbmlzdGljKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3ROb25kZXRlcm1p
bmlzdGljKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9UZXN0Tm9u
ZGV0ZXJtaW5pc3RpYyhKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKaW5kZXggZTQzNGRlYy4uZjhmNDg5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTIwNzgsNyAr
MjA3OCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBu
YXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShK
U1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFRlc3RPYmpBdHRyKG5hdGl2
ZVZhbHVlKTsKQEAgLTIwOTgsNyArMjA5OCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0
cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBU
ZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBs
LnNldFhNTE9iakF0dHIobmF0aXZlVmFsdWUpOwpAQCAtMjQ1NCw3ICsyNDU0LDcgQEAgdm9pZCBz
ZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGlt
cGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0
T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwo
dmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI0NzcsNyArMjQ3Nyw3IEBAIHZvaWQgc2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIGJhc2VPCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoo
dmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybjsKICAgICBpbXBsLnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCBu
YXRpdmVWYWx1ZSk7CkBAIC0yNDk3LDcgKzI0OTcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7Cisg
ICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKQEAgLTI1MjAsNyArMjUyMCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBU
ZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOwpAQCAtMjU0Myw3ICsyNTQzLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGEKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RP
YmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
CkBAIC0yNTY2LDcgKzI1NjYsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEV4ZQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0g
ICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiog
bmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAg
LTI1ODksNyArMjU4OSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0Fu
ZENhbGxTdGFja0F0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBU
ZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRp
dmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFdpdGhTY3Jp
cHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUobmF0aXZlVmFsdWUpOwpAQCAtMjc0MCw3
ICsyNzQwLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmEKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFNWR1Byb3Bl
cnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKHRvU1ZHUG9pbnQodmFsdWUpKTsKKyAg
ICBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZShKU1NWR1BvaW50Ojp0
b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQog
ICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRNdXRhYmxlUG9pbnQobmF0aXZlVmFsdWUpOwpA
QCAtMjc2MCw3ICsyNzYwLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludChFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlMKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAg
IFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKHRvU1ZHUG9pbnQodmFs
dWUpKTsKKyAgICBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZShKU1NW
R1BvaW50Ojp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRJbW11dGFibGVQb2ludChuYXRp
dmVWYWx1ZSk7CkBAIC0yOTM5LDcgKzI5MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdAog
ICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0
cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rl
c3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2Jq
Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgIGltcGwudm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJn
KTsKQEAgLTI5NzQsNyArMjk3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgY29u
c3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkg
OiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihl
eGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1w
bChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRp
b24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAg
ICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLmJ5dGVNZXRob2RXaXRoQXJncyhieXRl
QXJnLCBzdHJBcmcsIG9iakFyZykpOwpAQCAtMzAwOSw3ICszMDA5LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0
aEFyZ3MoRXhlY1MKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5p
c0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2Jq
KiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2Jq
QXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwub2N0
ZXRNZXRob2RXaXRoQXJncyhvY3RldEFyZywgc3RyQXJnLCBvYmpBcmcpKTsKQEAgLTMwNDQsNyAr
MzA0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgY29uc3QgU3RyaW5nJiBzdHJB
cmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVu
dCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgy
KSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVu
dCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1
bHQgPSBqc051bWJlcihpbXBsLmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9i
akFyZykpOwpAQCAtMzA3OSw3ICszMDc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGEKICAg
ICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJp
bmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0
T2JqKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6
dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIFdURjo6Z2V0UHRyKGltcGwub2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJn
LCBvYmpBcmcpKSk7CkBAIC0zMDk2LDcgKzMwOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEV4
ZQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFZlY3RvcjxSZWZQdHI8
U2NyaXB0UHJvZmlsZT4+IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNjcmlwdFBy
b2ZpbGUsIEpTU2NyaXB0UHJvZmlsZT4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZ0b1Njcmlw
dFByb2ZpbGUpKSk7CisgICAgVmVjdG9yPFJlZlB0cjxTY3JpcHRQcm9maWxlPj4gc2VxdWVuY2VB
cmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8U2NyaXB0UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxlPihl
eGVjLCBleGVjLT5hcmd1bWVudCgwKSwgJkpTU2NyaXB0UHJvZmlsZTo6dG9JbXBsKSkpOwogICAg
IGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5tZXRob2RXaXRoU2VxdWVuY2VB
cmcoc2VxdWVuY2VBcmcpOwpAQCAtMzE1Myw3ICszMTUzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0Fs
bEFyZ3MKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5
KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpB
cmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpT
VGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwubWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJn
c0FuZFRocm93cyhzdHJBcmcsIG9iakFyZywgZWMpKSk7CkBAIC0zNjY5LDcgKzM2NjksNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2QxKAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykp
OwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAg
ICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJn
KGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQo
MSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTM2ODksNyArMzY4OSw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDIoCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAg
IFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTM4MDEsNyArMzgwMSw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDgoCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAg
IFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5vdmVybG9hZGVkTWV0aG9k
KG9iakFyZyk7CkBAIC00MTIxLDcgKzQxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEoRXhlY1N0YXRlKiBleGVjKQog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0
b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVz
dE5vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0MSh2YWx1ZSk7CkBAIC00MTM4LDcgKzQxMzgsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29udmVydDIoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhl
YykpOwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7
CisgICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgw
KSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0Mih2
YWx1ZSk7CkBAIC00MTU1LDcgKzQxNTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQoRXhlY1N0YXRlKiBleGVjKQogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rl
c3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5v
ZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0NCh2YWx1ZSk7CkBAIC00MTcyLDcgKzQxNzIsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29u
dmVydDUoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykp
OwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7Cisg
ICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0NSh2YWx1
ZSk7CkBAIC00MjU0LDcgKzQyNTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaWN0RnVuY3Rpb25XaXRoU2VxdWVuYwogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmlu
ZWRPck51bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoSlNUZXN0T2JqOjppbmZv
KCkpKQogICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgMCwgIm9i
akFyZyIsICJUZXN0T2JqIiwgInN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmNlIiwgIlRlc3RPYmoi
KTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7Cisg
ICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7
CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8dW5zaWduZWQ+IGEo
dG9OYXRpdmVBcnJheTx1bnNpZ25lZD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMSkpKTsKQEAgLTQy
NzksNyArNDI3OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhBcnJheShFCiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgp
ICYmICFleGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cyhKU1Rlc3RPYmo6OmluZm8oKSkpCiAgICAg
ICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCAwLCAib2JqQXJnIiwgIlRl
c3RPYmoiLCAic3RyaWN0RnVuY3Rpb25XaXRoQXJyYXkiLCAiVGVzdE9iaiIpOwotICAgIFRlc3RP
YmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBv
YmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIFZlY3RvcjxpbnQ+IGFycmF5KHRvTmF0aXZlQXJyYXk8
aW50PihleGVjLCBleGVjLT5hcmd1bWVudCgxKSkpOwpAQCAtNDM0MSwxNCArNDM0MSwxNCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFy
aWFkaWNOb2RlTWV0aG9kKEV4ZWNTdAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykp
OwotICAgIE5vZGUqIGhlYWQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgTm9kZSog
aGVhZChKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAgICAgVmVjdG9yPE5vZGUqPiB0YWlsOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDEsIGNvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOyBpIDwgY291bnQ7ICsraSkg
ewogICAgICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpLmluaGVyaXRzKEpTTm9k
ZTo6aW5mbygpKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpl
eGVjLCBpLCAidGFpbCIsICJUZXN0T2JqIiwgInZhcmlhZGljTm9kZU1ldGhvZCIsICJOb2RlIik7
Ci0gICAgICAgIHRhaWwuYXBwZW5kKHRvTm9kZShleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkp
OworICAgICAgICB0YWlsLmFwcGVuZChKU05vZGU6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1
bWVudChpKSkpOwogICAgIH0KICAgICBpbXBsLnZhcmlhZGljTm9kZU1ldGhvZChoZWFkLCB0YWls
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtNDQzNCw3
ICs0NDM0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0T2JqKiBpbXAKICAgICByZXR1cm4gY3JlYXRlTmV3
V3JhcHBlcjxKU1Rlc3RPYmo+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RPYmoqIHRv
VGVzdE9iaihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0T2JqKiBKU1Rlc3RPYmo6OnRvSW1wbChK
U0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgKaW5kZXggM2MwYmZjNS4uNWFjOTY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMzgsNiArMzgsNyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6
Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdl
dFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBUZXN0T2JqKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQg
ZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RPYmooKTsKQEAgLTEwNiw3ICsxMDcs
NiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwg
VGVzdE9iaiopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0T2JqKik7Ci1XRUJDT1JFX0VYUE9SVCBU
ZXN0T2JqKiB0b1Rlc3RPYmooSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXgg
NjMwOGQ5ZS4uMjM0NjUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKCiAg
ICAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKiBjYXN0ZWRUaGlzID0g
anNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNh
bGxlZSgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7Ci0gICAgQmxvYiogYmxvYih0b0Jsb2IoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBCbG9i
KiBibG9iKEpTQmxvYjo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBSZWZQdHI8VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+
IG9iamVjdCA9IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjcmVhdGUoYmxvYik7CkBAIC0y
ODMsNyArMjgzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0T3ZlcmxvYWQKICAgICByZXR1cm4gY3JlYXRl
TmV3V3JhcHBlcjxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPihnbG9iYWxPYmplY3QsIGlt
cGwpOwogfQogCi1UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogdG9UZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycyhKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cyogSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycyo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBs
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAppbmRleCA5Yzc2
YmFlLi40NGZlZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlND
OjpKU0NlbGwqKTsKICAgICB+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycygpOwogCkBAIC05
MSw3ICs5Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQm
IHdvcmxkLCBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyopCiB9CiAKIFdFQkNPUkVfRVhQT1JU
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMqIHRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoSlNDOjpKU1ZhbHVl
KTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDg2N2QwYzAuLjY1Mzcw
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwCkBAIC0zNjIsNyArMzYyLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0U2VyaWFsaXoK
ICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UqIHRvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShKU0M6
OkpTVmFsdWUgdmFsdWUpCitUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmgKaW5kZXggYTQ4YmM4ZS4uYzAxZjVkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtNDAsNiArNDAs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0
b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxs
Kik7CiAgICAgfkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSgpOwogCkBAIC05
Nyw3ICs5OCw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQm
IHdvcmxkLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50CiB9CiAKIFdFQkNPUkVfRVhQT1JU
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
VHlwZWRlZnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFR5cGVkZWZzLmNwcAppbmRleCBlMmE5M2FhLi4wZjZkMWJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVm
cy5jcHAKQEAgLTU3NCw3ICs1NzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcgogICAgIFRl
c3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVmVjdG9yPFJlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxTZXJp
YWxpemVkU2NyaXB0VmFsdWUsIEpTU2VyaWFsaXplZFNjcmlwdFZhbHVlPihleGVjLCBleGVjLT5h
cmd1bWVudCgwKSwgJnRvU2VyaWFsaXplZFNjcmlwdFZhbHVlKSkpOworICAgIFZlY3RvcjxSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJy
YXk8U2VyaWFsaXplZFNjcmlwdFZhbHVlLCBKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oZXhlYywg
ZXhlYy0+YXJndW1lbnQoMCksICZKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dG9JbXBsKSkpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051
bWJlcihpbXBsLm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhzZXF1ZW5jZUFyZykpOwpAQCAtNjk3LDcg
KzY5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAx
KQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBWZWN0b3I8UmVmUHRyPFRlc3RFdmVudFRhcmdldD4+IHNl
cXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFRlc3RFdmVudFRhcmdldCwgSlNUZXN0RXZl
bnRUYXJnZXQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmdG9UZXN0RXZlbnRUYXJnZXQpKSk7
CisgICAgVmVjdG9yPFJlZlB0cjxUZXN0RXZlbnRUYXJnZXQ+PiBzZXF1ZW5jZUFyZygodG9SZWZQ
dHJOYXRpdmVBcnJheTxUZXN0RXZlbnRUYXJnZXQsIEpTVGVzdEV2ZW50VGFyZ2V0PihleGVjLCBl
eGVjLT5hcmd1bWVudCgwKSwgJkpTVGVzdEV2ZW50VGFyZ2V0Ojp0b0ltcGwpKSk7CiAgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihp
bXBsLmNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKHNlcXVlbmNlQXJnKSk7CkBA
IC03NjksNyArNzY5LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0VHlwZWRlZnMKICAgICByZXR1cm4gY3Jl
YXRlTmV3V3JhcHBlcjxKU1Rlc3RUeXBlZGVmcz4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAot
VGVzdFR5cGVkZWZzKiB0b1Rlc3RUeXBlZGVmcyhKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0VHlw
ZWRlZnMqIEpTVGVzdFR5cGVkZWZzOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAg
IGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHZhbHVl
KSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCmluZGV4
IDdlNWVjOGQuLmNjMGJjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCkBAIC0zOCw2ICszOCw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0
UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFRlc3RUeXBlZGVmcyogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2
b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0VHlwZWRlZnMoKTsKQEAgLTkz
LDcgKzk0LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYg
d29ybGQsIFRlc3RUeXBlZGVmcyopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0VHlwZWRlZnMqKTsK
LVdFQkNPUkVfRVhQT1JUIFRlc3RUeXBlZGVmcyogdG9UZXN0VHlwZWRlZnMoSlNDOjpKU1ZhbHVl
KTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAppbmRleCBiYTQ2ZDhj
Li4wMTM0Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNhdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGF0dHJpYnV0ZSogaQogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTYXR0cmlidXRlPihn
bG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1hdHRyaWJ1dGUqIHRvYXR0cmlidXRlKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKK2F0dHJpYnV0ZSogSlNhdHRyaWJ1dGU6OnRvSW1wbChKU0M6OkpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTYXR0cmli
dXRlKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgK
aW5kZXggMjk3YWQyNi4uZTU4ZTljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZN
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQ
cm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgYXR0cmlidXRlKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTYXR0cmlidXRlKCk7CiAKQEAgLTky
LDcgKzkzLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYg
d29ybGQsIGF0dHJpYnV0ZSopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBhdHRyaWJ1dGUqKTsKLVdFQkNP
UkVfRVhQT1JUIGF0dHJpYnV0ZSogdG9hdHRyaWJ1dGUoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggZWQ0YTQ0Yi4uY2NiZjVlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9u
bHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3Jl
YWRvbmx5LmNwcApAQCAtMTgyLDcgKzE4Miw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgcmVhZG9ubHkqIGltCiAg
ICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNyZWFkb25seT4oZ2xvYmFsT2JqZWN0LCBpbXBs
KTsKIH0KIAotcmVhZG9ubHkqIHRvcmVhZG9ubHkoSlNDOjpKU1ZhbHVlIHZhbHVlKQorcmVhZG9u
bHkqIEpTcmVhZG9ubHk6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1
dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTcmVhZG9ubHkqPih2YWx1ZSkpCiAgICAgICAg
IHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKaW5kZXggYjZlZmE0YS4uZDRhMjVhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVh
ZG9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNy
ZWFkb25seS5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
ICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHJlYWRvbmx5KiB0b0lt
cGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7
CiAgICAgfkpTcmVhZG9ubHkoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3Jh
cHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgcmVhZG9ubHkqKQogfQogCiBXRUJD
T1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiwgcmVhZG9ubHkqKTsKLVdFQkNPUkVfRVhQT1JUIHJlYWRvbmx5KiB0b3JlYWRvbmx5
KEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKaW5kZXggMWUzN2VlYy4uYjQyODkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC02ODksNiAr
Njg5LDI5IEBAIHN0cnVjdCBFbGVtZW50VHlwZUNhc3RUcmFpdHM8RXhwZWN0ZWRUeXBlLCBFeHBl
Y3RlZFR5cGU+IHsKICAgICBzdGF0aWMgYm9vbCBpcyhFeHBlY3RlZFR5cGUmKSB7IHJldHVybiB0
cnVlOyB9CiB9OwogCisvLyBUaGVzZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBieSB0b1hYWEVsZW1l
bnQoKSBjYXN0aW5nIGhlbHBlcnMuCisvLyBEbyBub3QgY2FsbCB0aGVzZSBkaXJlY3RseS4KK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBUJiB0b0VsZW1lbnQoTm9kZSYgbm9kZSkKK3sKKyAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0VsZW1lbnRPZlR5cGU8Y29uc3Qg
VD4obm9kZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxUJj4obm9kZSk7Cit9Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCogdG9FbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNFbGVtZW50T2ZUeXBlPGNv
bnN0IFQ+KCpub2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihub2RlKTsKK30KK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBjb25zdCBUJiB0b0VsZW1lbnQoY29uc3QgTm9kZSYg
bm9kZSkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0VsZW1lbnRP
ZlR5cGU8Y29uc3QgVD4obm9kZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUJj4o
bm9kZSk7Cit9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgY29uc3QgVCogdG9FbGVtZW50
KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW5vZGUgfHwgaXNFbGVtZW50T2ZUeXBlPGNvbnN0IFQ+KCpub2RlKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IFQqPihub2RlKTsKK30KKwogaW5saW5lIGJvb2wgTm9kZTo6aGFz
QXR0cmlidXRlcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzRWxlbWVudE5vZGUoKSAmJiB0b0Vs
ZW1lbnQodGhpcyktPmhhc0F0dHJpYnV0ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5k
ZXggMzg5YzJiOC4uZjA4NmY3OSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2Vf
bmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKQEAgLTY2Myw2
ICs2NjMsOCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnVHlwZT4KIHN0cnVjdCBFbGVtZW50VHlw
ZUNhc3RUcmFpdHM8Y29uc3QgJGNsYXNzLCBBcmdUeXBlPiB7CiAgICAgc3RhdGljIGJvb2wgaXMo
QXJnVHlwZSYgbm9kZSkgeyByZXR1cm4gJGNoZWNrSGVscGVyKG5vZGUpOyB9CiB9OworCisjZGVm
aW5lIHRvJGNsYXNzKHgpIFdlYkNvcmU6OnRvRWxlbWVudDxXZWJDb3JlOjokY2xhc3M+KHgpCiBF
TkQKICAgICAgICAgOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKaW5k
ZXggNDY2OTE2My4uMjMyYjAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuaApAQCAtMTU1LDggKzE1NSw2IEBAIGJvb2wgaXNFbnRlcktleUtleWRvd25FdmVudChFdmVu
dCopOwogYm9vbCBpc0xpbmtDbGljayhFdmVudCopOwogYm9vbCBzaG91bGRQcm9oaWJpdExpbmtz
KEVsZW1lbnQqKTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxBbmNob3JFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MQW5jaG9yRWxlbWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAppbmRleCBhYzA3ZTk4Li44ZGI3NTg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKQEAgLTcxLDggKzcxLDYgQEAgcHJpdmF0
ZToKICAgICBTaGFwZSBtX3NoYXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxBcmVhRWxl
bWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVk
aW9FbGVtZW50LmgKaW5kZXggMzBkMmE4Zi4uN2U4NjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXVkaW9FbGVtZW50LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0ZToKICAgICBIVE1MQXVk
aW9FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxBdWRpb0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAppbmRleCA0MDU0ZTE3Li5iNzk5
ZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYp
IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxCYXNlRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaApp
bmRleCAwMTdlZmMyLi4wZDRkNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmgKQEAgLTgxLDggKzgxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVz
b3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQm9keUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggODgzN2Qw
OC4uOGFiZGU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAt
MTgwLDggKzE4MCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+IG1fY29w
aWVkSW1hZ2U7IC8vIEZJWE1FOiBUaGlzIGlzIHRlbXBvcmFyeSBmb3IgcGxhdGZvcm1zIHRoYXQg
aGF2ZSB0byBjb3B5IHRoZSBpbWFnZSBidWZmZXIgdG8gcmVuZGVyIChhbmQgZm9yIENTU0NhbnZh
c1ZhbHVlKS4KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQ2FudmFzRWxlbWVudCkKLQogfSAv
L25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERhdGFMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVt
ZW50LmgKaW5kZXggNjdmYjFkYi4uY2YxZDNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RGF0YUxpc3RFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0ZToKICAgICBIVE1MRGF0
YUxpc3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxEYXRhTGlzdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKICNlbmRpZiAvLyBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggYzQxZjZmNC4uMDczY2Q1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2lzT3BlbjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRGV0YWls
c0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxEZXRh
aWxzRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKaW5kZXggMWI1ZDIw
YS4uZmY4MWI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaApAQCAtNDAsOCAr
NDAsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYs
IE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhIVE1MRGl2RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
SFRNTERpdkVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1i
ZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAppbmRl
eCBkOWZkNDUyLi5jZGQzYmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQu
aApAQCAtNTIsOCArNTIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFyYW1ldGVyc0ZvclBsdWdp
bihWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVz
KTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRW1iZWRFbGVtZW50KQotCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAppbmRleCA3YzEzZWEw
Li4zYTAyMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaApA
QCAtNjQsOCArNjQsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgdWludDY0X3QgbV9kb2N1bWVu
dFZlcnNpb247CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEZpZWxkU2V0RWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
aAppbmRleCBjNDY5ZGNlLi5mYzNkYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmgKQEAgLTIwMSw4ICsyMDEsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoSFRNTEZvcm1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBIVE1MRm9ybUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuaAppbmRleCA1NTc5Yzk4Li42ZTRmYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9mcmFtZUJv
cmRlclNldDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRnJhbWVFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MRnJhbWVFbGVtZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKaW5kZXggODBlN2YyYS4uMjcyOTM4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKQEAgLTEwMCw4
ICsxMDAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9ub3Jlc2l6ZTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhIVE1MRnJhbWVTZXRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBIVE1MRnJhbWVTZXRFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1s
RWxlbWVudC5oCmluZGV4IGI5NjZjODcuLjBmODNiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SHRtbEVsZW1lbnQuaApAQCAtNDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlkZTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MSHRtbEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCmluZGV4IDlhZTE5MzIu
LmYwZWJjZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAgLTQ3
LDggKzQ3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxJRnJhbWVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MSUZyYW1lRWxlbWVudF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5oCmluZGV4IDMyNDk0OGIuLjZhZDQ1NGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgcHJpdmF0ZToK
ICNlbmRpZgogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxJbWFnZUVsZW1lbnQpCi0KIH0gLy9u
YW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmlu
ZGV4IGUzODg1YmNjLi5kN2E2NWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaApAQCAtNDQ4LDcgKzQ0OCw1IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhIVE1MSW5wdXRFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKaW5kZXggYWVhNTIzNy4uY2E4ZWU2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rp
b24sIEZvY3VzRGlyZWN0aW9uKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
TGFiZWxFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGVnZW5kRWxlbWVudC5oCmluZGV4IDI0NTY4YmQuLjkxMDRhYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKQEAgLTQ1LDggKzQ1LDYgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBvdmVycmlk
ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTGVnZW5kRWxlbWVudCkKLQogfSAvL25hbWVz
cGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCmluZGV4IDY1
YjMyNDEuLmNiZjU3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaApAQCAt
MTM3LDggKzEzNyw2IEBAIHByaXZhdGU6CiAgICAgUGVuZGluZ1NoZWV0VHlwZSBtX3BlbmRpbmdT
aGVldFR5cGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTExpbmtFbGVtZW50KQotCiB9IC8v
bmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWFwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCmluZGV4
IDlhZTQ0NjcuLjYxN2FhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1h
cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKQEAg
LTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9uYW1lOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxNYXBFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZXMKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaAppbmRleCBkMTA5ODJi
Li45NjM5ZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKQEAg
LTY0LDggKzY0LDYgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJNYXJxdWVlKiByZW5kZXJNYXJxdWVl
KCkgY29uc3Q7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1hcnF1ZWVFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MTWFycXVlZUVsZW1lbnRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKaW5kZXggMTU5YzNhYS4uMDQ1NzgxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzKCk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1l
dGFFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAppbmRleCA5ZDgyMTcyLi5hMjhjYjQ0OTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCkBAIC04MSw4ICs4MSw2IEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPE1ldGVyVmFsdWVFbGVtZW50PiBtX3ZhbHVlOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxNZXRlckVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAppbmRleCA5ODlkNzk1Li4xZjBhYWYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaApAQCAtNjUsOCArNjUsNiBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRSZWNhbGN1bGF0ZUl0ZW1Db3VudCA6IDE7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9MaXN0RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCAyYzQ5
MTkzLi5mOGU3YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBA
IC0xMDMsOCArMTAzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdXNlRmFsbGJhY2tDb250ZW50
IDogMTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT2JqZWN0RWxlbWVudCkKLQogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKaW5kZXggNjg5
Y2U0Yi4uNTdhMzc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3Jv
dXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50
LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlY2FsY1NlbGVjdE9wdGlv
bnMoKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT3B0R3JvdXBFbGVtZW50KQotCiB9IC8v
bmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5o
CmluZGV4IDY0N2QwMWUuLjY1NGVmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25F
bGVtZW50LmgKQEAgLTg3LDggKzg3LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNTZWxlY3Rl
ZDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT3B0aW9uRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJh
bUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCmluZGV4
IDRlODFkMmQuLmVkOWI0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBh
cmFtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5o
CkBAIC00Myw4ICs0Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291
cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qgb3ZlcnJpZGU7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTFBhcmFtRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgK
aW5kZXggZWVkYjg4MC4uYzdmZDk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmgKQEAgLTY3LDggKzY3LDYgQEAgcHJpdmF0ZToKICAgICBQcm9ncmVzc1ZhbHVl
RWxlbWVudCogbV92YWx1ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUHJvZ3Jlc3NFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaAppbmRleCBiODUwMWI0Li42OGQ5NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC02Nyw4ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU2NyaXB0RWxl
bWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaAppbmRleCBmYTljYmU0Ny4uMjdmZWZkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAtMjEyLDggKzIxMiw2IEBAIHByaXZhdGU6CiAgICAg
bXV0YWJsZSBib29sIG1fc2hvdWxkUmVjYWxjTGlzdEl0ZW1zOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxTZWxlY3RFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAppbmRleCA1NTU4NzVjLi41MjJkNzQzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaApAQCAtNTcsOCArNTcsNiBA
QCBwcml2YXRlOgogICAgIFRpbWVyPEhUTUxTb3VyY2VFbGVtZW50PiBtX2Vycm9yRXZlbnRUaW1l
cjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU291cmNlRWxlbWVudCkKLQogfSAvL25hbWVz
cGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxl
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKaW5kZXgg
OTk1N2JhNS4uOTFmMGI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5
bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgK
QEAgLTcwLDggKzcwLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbG9hZGVkU2hlZXQ7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTFN0eWxlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCmluZGV4IGZiYWJj
ZGUuLmJjMjI4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaApA
QCAtNDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0
IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5RWxlbWVudCkKLQog
fQogCiAjZW5kaWYgLy8gSFRNTFN1bW1hcnlFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAppbmRleCBmMDY0ZTI4Li45MDRjMzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC00MSw4
ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKaW5kZXggYzk3NjhlYi4uM2NjZTgx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKQEAgLTEwMSw4ICsxMDEs
NiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTdHlsZVByb3BlcnRpZXM+IG1fc2hhcmVkQ2VsbFN0
eWxlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUYWJsZUVsZW1lbnQpCi0KIH0gLy9uYW1l
c3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZVJvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5o
CmluZGV4IDMzOGI4NzkuLmM0YjBmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlUm93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5oCkBAIC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlUm93
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhIVE1MVGFibGVSb3dFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKaW5kZXggZDdmZjk1MS4u
YzgxZjdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAg
LTU2LDggKzU2LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxUZW1wbGF0ZUNvbnRl
bnREb2N1bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TFRlbXBsYXRlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCmluZGV4IGE4MDFmOTkuLmJlZGQwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC0xMjYsOCArMTI2LDYgQEAgcHJpdmF0ZToKICAgICBt
dXRhYmxlIGJvb2wgbV93YXNNb2RpZmllZEJ5VXNlcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MVGV4dEFyZWFFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAppbmRleCBlYmUxZDNjLi41ZGUxZWI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaApAQCAtNDYsOCArNDYsNiBAQCBwcml2YXRl
OgogICAgIFN0cmluZ1dpdGhEaXJlY3Rpb24gbV90aXRsZTsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhIVE1MVGl0bGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCA4MzE3MTdiLi41MjZkYzAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtOTQsOCArOTQsNiBAQCBwcml2YXRl
OgogICAgIFRpbWVyPEhUTUxUcmFja0VsZW1lbnQ+IG1fbG9hZFRpbWVyOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxUcmFja0VsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGM0ZDRmOWQuLjc2ZjAxNjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHJpdmF0ZToK
ICAgICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0UG9zdGVyVVJMOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxWaWRlb0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBmZDdlOTIz
Li4zNzg2NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKQEAgLTIwMTAsNyArMjAxMCw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpz
Y3JpcHRWYWx1ZUFzTm9kZShEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSkKICAgICBpZiAo
IXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgcmV0dXJuIHRvTm9kZSh2YWx1ZS5qc1ZhbHVlKCkpOworICAgIHJldHVybiBK
U05vZGU6OnRvSW1wbCh2YWx1ZS5qc1ZhbHVlKCkpOwogfQogCiBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUq
IHN0YXRlLCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNs
b3NlRWxlbWVudC5oCmluZGV4IGRjNjljMTEuLmVlOTczMzUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0
ZToKICAgICBib29sIG1faXNSYWRpY2FsVmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoTWF0
aE1MTWVuY2xvc2VFbGVtZW50KQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCmluZGV4IGFjYjJmMzUuLmM2
M2UzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKQEAg
LTM4LDggKzM4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhEZWZFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCmluZGV4IDUwOTVhYjUuLjZiZTlmNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYg
QEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBo
SXRlbUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50
LmgKaW5kZXggODI0OWNiOC4uYzdhZmU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0
R2x5cGhJdGVtRWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FsdEdseXBoSXRlbUVsZW1l
bnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9u
RWxlbWVudC5oCmluZGV4IDM2Njc4MTQuLjQxN2Q1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCkBAIC03MCw4ICs3MCw2IEBAIHByaXZhdGU6CiAg
ICAgUGF0aCBtX3BhdGg7CiAgICAgUGF0aCBtX2FuaW1hdGlvblBhdGg7CiB9OwotCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQpCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50LmgKaW5kZXggYmRjZmY3MC4uYjFhNDRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKQEAgLTQ3LDggKzQ3LDYgQEAgcHJpdmF0ZToK
ICAgICBTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybVR5cGUgbV90eXBlOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAppbmRleCAwNzlmYTk5Li5lYzE4MmRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToK
ICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoU1ZHQ2lyY2xlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gU1ZHQ2lyY2xlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q2xpcFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmgKaW5kZXggOGZkZWIwMi4uOTM4Y2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0
aEVsZW1lbnQuaApAQCAtNTYsOCArNTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FO
SU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDbGlwUGF0aEVsZW1l
bnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vy
c29yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAppbmRl
eCBhNTMwMWU0Li5lYTIyM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vy
c29yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgK
QEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFNWR0VsZW1lbnQqPiBtX2Ns
aWVudHM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ3Vyc29yRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGxpcHNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVt
ZW50LmgKaW5kZXggZDZiMjBmNi4uNWI5ZjkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlw
c2VFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRWxsaXBzZUVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmgKaW5kZXggNzk5ZjZkNS4uNjBlYTQ0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaApAQCAt
MzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxMaWdodFNvdXJj
ZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdGRURpc3RhbnRMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCmluZGV4IDMxZWJiNGYuLmE0
ZTZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCkBAIC0zMyw4ICsz
Myw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNCRWxlbWVudC5oCmluZGV4IDM1YmM0NDguLmFmNDlkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZH
RkVGdW5jQkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCmluZGV4IDM5
ODU3ZWQuLjFhZmE0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNH
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCkBA
IC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jR0VsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5j
R0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCmluZGV4IDllNzMyN2MuLmIwZDBlYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6
CiAgICAgU1ZHRkVGdW5jUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jUkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVNZXJnZU5vZGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVF
bGVtZW50LmgKaW5kZXggNTE1OTdlYi4uNzIzM2YyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlTm9kZUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIEVO
RF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdG
RU1lcmdlTm9kZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaAppbmRleCBiNzAxYmU1
Li4zNDU3OTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50
LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGln
aHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHRkVQb2ludExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaAppbmRl
eCA4MDM5YWYyLi5mZjZiNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0
RWxlbWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPExpZ2h0U291cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKFNWR0ZFU3BvdExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDhl
YTczZmIuLjE5MzllMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAt
NzUsOCArNzUsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJ
RVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGaWx0ZXJFbGVtZW50KQotCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAppbmRleCA4ZTQyNzRkLi5lYjVjNDZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaApAQCAtMTAyLDggKzEwMiw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2lzR2x5cGhDYWNoZVZhbGlkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR0ZvbnRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCmlu
ZGV4IDZhMjExNmEuLmRjZDAxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVt
ZW50LmgKQEAgLTY2LDggKzY2LDYgQEAgcHJpdmF0ZToKICAgICBTVkdGb250RWxlbWVudCogbV9m
b250RWxlbWVudDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZUVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAppbmRleCAzZjI1NDQ1
Li5jNjg1ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1l
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50
LmgKQEAgLTM5LDggKzM5LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VOYW1lRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAppbmRleCAzYjA5MTRjLi5iYTVhNjQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCkBAIC00MCw4ICs0
MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR0ZvbnRGYWNlU3JjRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZVVyaUVsZW1lbnQuaAppbmRleCAxODlhNzg5Li4zNTBmMWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNoZWRGb250OwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlVXJpRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKaW5kZXggNzViYjc0Yi4uYWI0ZDFhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAgLTU4
LDggKzU4LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVT
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2x5cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50
LmgKaW5kZXggN2I3ZDM4YS4uNDAwOWZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dseXBoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1l
bnQuaApAQCAtNTcsOCArNTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUdseXBo
Q2FjaGUoKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdHbHlwaEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKaW5kZXggNmQ4Y2FjNy4uNDY0ZmVlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaApAQCAtNjEsOCArNjEsNiBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fZHk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHR2x5cGhS
ZWZFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0hLZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5o
CmluZGV4IGU1ZDhiNzhmLi4xYzE5ZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHSEtlcm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVu
dC5oCkBAIC00Miw4ICs0Miw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0hLZXJuRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJ
bWFnZUVsZW1lbnQuaAppbmRleCAxYTM2MWM1Li4xNzY3NjFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5oCkBAIC03Miw4ICs3Miw2IEBAIHByaXZhdGU6CiAgICAgU1ZHSW1hZ2VM
b2FkZXIgbV9pbWFnZUxvYWRlcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdJbWFnZUVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lRWxlbWVudC5oCmluZGV4IDY0ZTc4NjMuLjUzZmVhZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lRWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVf
QU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0xpbmVFbGVtZW50
KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCmluZGV4IDY4YWM2YjguLjQ2ZDkyZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKQEAgLTU0
LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVT
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01QYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVu
dC5oCmluZGV4IDk3MzI2NDguLjFiZTY0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVt
ZW50LmgKQEAgLTY4LDggKzY4LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTVBhdGhFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdNUGF0aEVsZW1lbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKaW5kZXggMWI5MzBlNi4uYjUyMmNiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCkBAIC0xNjQsOCArMTY0LDYgQEAgcHJp
dmF0ZToKICAgICBtdXRhYmxlIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eTxTVkdN
YXJrZXJPcmllbnRUeXBlPiBtX29yaWVudFR5cGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
TWFya2VyRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmgKaW5kZXggZjUwYTk0Ni4uMjJlZGRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmgKQEAgLTY4LDggKzY4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25p
emVTeXN0ZW1MYW5ndWFnZSgpIG92ZXJyaWRlIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVt
TGFuZ3VhZ2UodGhpcyk7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNYXNrRWxlbWVudCkK
LQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5n
R2x5cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5oCmluZGV4IGY1NjM3ZWUuLjk0YTQyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01p
c3NpbmdHbHlwaEVsZW1lbnQuaApAQCAtMzYsOCArMzYsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNaXNzaW5nR2x5cGhFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZP
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAppbmRleCAwMjFiNmYxLi5iNjRiNGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaApAQCAtMTI5LDggKzEyOSw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lzQW5pbVZhbE9ic2VydmVkOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR1BhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAppbmRleCAyMmM3YzIwLi40OTJjZDY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaApAQCAtODYsOCArODYsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKCkg
b3ZlcnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsgfQog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1BhdHRlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
bHlnb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaApp
bmRleCBhNjJkZTIwLi5kOTBkZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9seWdvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1l
bnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR1BvbHlnb25FbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R1BvbHlnb25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCmluZGV4IDRiNWU4NDEuLmEwOTFlYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYg
QEAgcHJpdmF0ZToKICAgICBTVkdQb2x5bGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUG9seWxpbmVFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IGU1NmZiMmYuLjEyYmY0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKQEAgLTU2LDgg
KzU2LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaApp
bmRleCA3MmViODc1Li4zY2VlOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaApA
QCAtNTgsOCArNTgsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BF
UlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdSZWN0RWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCmluZGV4
IGVmYjQyZWQuLjI3ODIyNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApAQCAtMTc1
LDggKzE3NSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNWR1ZpZXdTcGVjPiBtX3ZpZXdTcGVj
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1NWR0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRl
eCA1NzJmNzlkLi45YWNkYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgK
QEAgLTg2LDggKzg2LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xv
YWRFdmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1NjcmlwdEVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxl
bWVudC5oCmluZGV4IGQ4NzliNGUuLjdkYTM3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdG9wRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxl
bWVudC5oCkBAIC00OSw4ICs0OSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1N0b3BFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxl
bWVudC5oCmluZGV4IDZhOTFlMzguLjFlNzMxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVF
bGVtZW50LmgKQEAgLTY4LDggKzY4LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxTVkdFbGVtZW50
PiBtX3N2Z0xvYWRFdmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1N0eWxlRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHU3R5bGVFbGVt
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKaW5kZXggYThjMGI3Mi4uNDMwODRk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVGV4dEVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBhdGhFbGVtZW50LmgKaW5kZXggMGE0ZmY2Ny4uZjI0NGJjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaApAQCAtMTQzLDggKzE0Myw2IEBAIHByaXZhdGU6
CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR1RleHRQYXRoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaAppbmRleCBjODRhNjAzLi4wNzViMjM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCkBAIC00MCw4ICs0MCw2IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R1RpdGxlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5oCmluZGV4IDNmMTBlZTkuLmI3MzJmMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtMTI4LDggKzEyOCw2IEBAIHByaXZhdGU6CiAgICAgVGlt
ZXI8U1ZHRWxlbWVudD4gbV9zdmdMb2FkRXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdVc2VFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxl
bWVudC5oCmluZGV4IGNlODhkZTUuLjE4MGJjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWS2VybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5F
bGVtZW50LmgKQEAgLTQxLDggKzQxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVktlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVmlld0VsZW1lbnQuaAppbmRleCAyNTFkNzMwLi40YjQ0ZDljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVmlld0VsZW1lbnQuaApAQCAtNjUsOCArNjUsNiBAQCBwcml2YXRlOgogICAgIFNWR1N0cmlu
Z0xpc3QgbV92aWV3VGFyZ2V0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1ZpZXdFbGVtZW50
KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9E
T00vV2ViRE9NT3BlcmF0aW9ucy5tbQppbmRleCBlNGZiNzY2Li4xMDU0ZGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0aW9ucy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0aW9ucy5tbQpAQCAtNzQsNyArNzQsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsK
ICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKLSAgICByZXR1cm4ga2l0KHRvRWxlbWVudCh0
b0pTKGV4ZWMsIHZhbHVlKSkpOworICAgIHJldHVybiBraXQoSlNFbGVtZW50Ojp0b0ltcGwodG9K
UyhleGVjLCB2YWx1ZSkpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGE2ZjNiNTQuLjljZTYxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KQEAgLTg2MjEsNyArODYyMSw3IEBAIHN0YXRpYyB2b2lkIGdsaWJDb250ZXh0SXRlcmF0
aW9uQ2FsbGJhY2soQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYsIENGUnVuTG9vcEFjdGl2aXR5CiB7CiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykK
ICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFtbc2VsZiBtYWluRnJhbWVdIGdsb2JhbENvbnRl
eHRdOwotICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gdG9Ob3RpZmlj
YXRpb24odG9KUyh0b0pTKGNvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOworICAgIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gSlNOb3RpZmljYXRpb246OnRvSW1wbCh0b0pT
KHRvSlMoY29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFdlYk5vdGlmaWNhdGlvbkNsaWVudCo+KE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZy
b20oX3ByaXZhdGUtPnBhZ2UpKS0+bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKG5vdGlmaWNhdGlv
bik7CiAjZWxzZQogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZS5jcHAKaW5kZXggY2RkZGM4MS4uMDQ1YTY2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHN0
YXRpYyBET01IYW5kbGVDYWNoZSYgZG9tSGFuZGxlQ2FjaGUoKQogCiBQYXNzUmVmUHRyPEluamVj
dGVkQnVuZGxlTm9kZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0
ZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVjdCkKIHsKLSAgICBOb2RlKiBub2RlID0g
dG9Ob2RlKHRvSlMob2JqZWN0KSk7CisgICAgTm9kZSogbm9kZSA9IEpTTm9kZTo6dG9JbXBsKHRv
SlMob2JqZWN0KSk7CiAgICAgcmV0dXJuIGdldE9yQ3JlYXRlKG5vZGUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCmluZGV4IGY2MzM5MWIu
LjY1ZjhlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGUuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBET01IYW5kbGVDYWNoZSYgZG9tSGFuZGxl
Q2FjaGUoKQogCiBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IEluamVjdGVk
QnVuZGxlUmFuZ2VIYW5kbGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYg
b2JqZWN0KQogewotICAgIFJhbmdlKiByYW5nZSA9IHRvUmFuZ2UodG9KUyhvYmplY3QpKTsKKyAg
ICBSYW5nZSogcmFuZ2UgPSBKU1JhbmdlOjp0b0ltcGwodG9KUyhvYmplY3QpKTsKICAgICByZXR1
cm4gZ2V0T3JDcmVhdGUocmFuZ2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDFh
NjcyN2IuLmI2NGU4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC01OTcsNyArNTk3LDcg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
bnMoV2ViUGFnZSogcGFnZSkKIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRp
b25JRChKU0NvbnRleHRSZWYganNDb250ZXh0LCBKU1ZhbHVlUmVmIGpzTm90aWZpY2F0aW9uKQog
ewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElP
TlMpCi0gICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSB0b05vdGlmaWNh
dGlvbih0b0pTKHRvSlMoanNDb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAgICBXZWJDb3Jl
OjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IEpTTm90aWZpY2F0aW9uOjp0b0ltcGwodG9K
Uyh0b0pTKGpzQ29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CiAgICAgaWYgKCFub3RpZmljYXRp
b24pCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5z
dXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPm5vdGlmaWNhdGlvbklERm9yVGVz
dGluZyhub3RpZmljYXRpb24pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238229</attachid>
            <date>2014-09-16 17:36:54 -0700</date>
            <delta_ts>2014-09-17 14:37:32 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>136839_generate_cast_helpers_wip1.patch</filename>
            <type>text/plain</type>
            <size>128265</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCAzNjlhYmIxLi4zZGJmZGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCkBAIC0yMTMsNyArMjEzLDcgQEAgYm9vbCBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgLy8g
R2V0IHRoZSA8dmlkZW8+IGNyZWF0ZWQgdG8gcmVwbGFjZSB0aGUgcGx1Zy1pbi4KICAgICBKU0M6
OkpTVmFsdWUgdmFsdWUgPSByZXBsYWNlbWVudC5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4
ZWMsICJ2aWRlbyIpKTsKICAgICBpZiAoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpICYmICF2YWx1ZS5p
c1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICBtX21lZGlhRWxlbWVudCA9IHRvSFRNTFZpZGVv
RWxlbWVudCh2YWx1ZSk7CisgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gSlNIVE1MVmlkZW9FbGVt
ZW50Ojp0b0ltcGwodmFsdWUpOwogCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkgewogICAgICAg
ICBMT0coUGx1Z2lucywgIiVwIC0gRmFpbGVkIHRvIGZpbmQgPHZpZGVvPiBlbGVtZW50IGNyZWF0
ZWQgYnkgUXVpY2tUaW1lIHBsdWdpbiByZXBsYWNlbWVudCBzY3JpcHQuIiwgdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDk0ZDliNTMuLjVlMTlmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC03Nyw2ICs3Nyw3IEBAIF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLN0NHUG9pbnQK
IF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3Jl
MTBGb250R2x5cGhzMTVyZWxlYXNlRm9udERhdGFFdgogX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50
NnNfaW5mb0UKK19fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDVzY2FsZUVmCiBfX1pON1dlYkNvcmUxMExheW91dFJl
Y3Q1dW5pdGVFUktTMF8KIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdEMxRVJLTlNfOUZsb2F0UmVj
dEUKQEAgLTEyNCw3ICsxMjUsNiBAQCBfX1pON1dlYkNvcmUxMFRpbWVSYW5nZXNDMUVkZAogX19a
TjdXZWJDb3JlMTBkZWxldGVGaWxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBmaWxl
RXhpc3RzRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBzZXRDb29raWVzRVBOU184RG9j
dW1lbnRFUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMTB0b0RvY3VtZW50
RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlMTNnZXRDR0ltYWdlUmVm
RXYKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2VDMUVQN0NHSW1hZ2VQTlNfMTNJbWFnZU9ic2Vy
dmVyRQogX19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZUMxRVBOU18xM0ltYWdlT2JzZXJ2ZXJFCkBA
IC02NjcsNyArNjY3LDYgQEAgX19aTjdXZWJDb3JlMTVvcmlnaW5hbFVSTERhdGFFUDVOU1VSTAog
X19aTjdXZWJDb3JlMTVwYXRoR2V0RmlsZU5hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxNXJlcG9ydEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVQTlNfMTJD
YWNoZWRTY3JpcHRFCiBfX1pON1dlYkNvcmUxNXNldERPTUV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0
YXRlRWkKLV9fWk43V2ViQ29yZTE1dG9ET01TdHJpbmdMaXN0RVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTV2aXNpdGVkTGlua0hhc2hFUEt0agogX19aTjdXZWJD
b3JlMTV2aXNpdGVkTGlua0hhc2hFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkFwcGxp
Y2F0aW9uQ2FjaGUxOGRpc2tVc2FnZUZvck9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKQEAg
LTEyNDIsNiArMTI0MSw3IEBAIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29tbWFuZEVSS04zV1RGNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29weVVSTEVSS05TXzNVUkxFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yN291dGRlbnRFdgogX19aTjdXZWJDb3JlNkpTTm9kZTZz
X2luZm9FCitfX1pON1dlYkNvcmU2SlNOb2RlNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdX
ZWJDb3JlNkxlbmd0aEMxRU4zV1RGN1Bhc3NSZWZJTlNfMTZDYWxjdWxhdGlvblZhbHVlRUVFCiBf
X1pON1dlYkNvcmU2UmVnaW9uMjF1cGRhdGVCb3VuZHNGcm9tU2hhcGVFdgogX19aTjdXZWJDb3Jl
NlJlZ2lvbjV1bml0ZUVSS1MwXwpAQCAtMTI1OSw3ICsxMjU5LDYgQEAgX19aTjdXZWJDb3JlNldp
ZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBhcmVudEVQTlNfMTBTY3Jv
bGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2ViQ29yZTZ0b0ludDhFUE4z
SlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3Vy
YXRpb25FCi1fX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3
RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VTNF9SaQogX19aTjdX
ZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUVSS04zV1RG
MTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxlbWVudDE2Y3JlYXRlU2hhZG93Um9vdEVS
aQpAQCAtMTI3Myw2ICsxMjcyLDcgQEAgX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzEwTGF5
b3V0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19aTjdX
ZWJDb3JlN0ludFNpemVDMUVSSzZDR1NpemUKIF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUktOU185
RmxvYXRTaXplRQorX19aTjdXZWJDb3JlN0pTUmFuZ2U2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBf
X1pON1dlYkNvcmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRpbmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3
VGV4dFJ1bjIxc19hbGxvd3NSb3VuZGluZ0hhY2tzRQogX19aTjdXZWJDb3JlN1RleHRSdW4yMnNl
dEFsbG93c1JvdW5kaW5nSGFja3NFYgpAQCAtMTI4MSw3ICsxMjgxLDYgQEAgX19aTjdXZWJDb3Jl
N2pzQXJyYXlFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1dURjEw
UGFzc1JlZlB0ckkKIF9fWk43V2ViQ29yZTdtYWtlUkdCRWlpaQogX19aTjdXZWJDb3JlN3RvSW50
MTZFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNv
bmZpZ3VyYXRpb25FCiBfX1pON1dlYkNvcmU3dG9JbnQ2NEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83
SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKLV9fWk43V2ViQ29y
ZTd0b1JhbmdlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3dG9VSW50OEVQTjNKU0M5RXhl
Y1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUK
IF9fWk43V2ViQ29yZThCbG9iRGF0YTE0c2V0Q29udGVudFR5cGVFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmU4Q1NTVmFsdWU3ZGVzdHJveUV2CkBAIC0xNDk1LDYgKzE0OTQsNyBAQCBfX1pO
N1dlYkNvcmU5SW5saW5lQm94MTRkaXJ0eUxpbmVCb3hlc0V2CiBfX1pON1dlYkNvcmU5SW5saW5l
Qm94MTRzZWxlY3Rpb25TdGF0ZUV2CiBfX1pON1dlYkNvcmU5SW5saW5lQm94MTZwbGFjZUVsbGlw
c2lzQm94RWJmZmZSZlJiCiBfX1pON1dlYkNvcmU5SlNFbGVtZW50NnNfaW5mb0UKK19fWk43V2Vi
Q29yZTlKU0VsZW1lbnQ2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU5TGF5ZXJQ
b29sQzFFdgogX19aTjdXZWJDb3JlOUxheWVyUG9vbEQxRXYKIF9fWk43V2ViQ29yZTlQYWdlQ2Fj
aGUxMXNldENhcGFjaXR5RWkKQEAgLTE1MzUsNyArMTUzNSw2IEBAIF9fWk43V2ViQ29yZTlmb250
Q2FjaGVFdgogX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRVMy
XwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5cGxhaW5UZXh0RVBLTlNf
NVJhbmdlRXRiCi1fX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dl
YkNvcmU5dW5pb25SZWN0RVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFJlY3RFTG0wRU5TMF8xNUNy
YXNoT25PdmVyZmxvd0VFRQogX19aTkszSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxP
YmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3JlYXRlQ0ZTdHJpbmdFdgpAQCAtMzI1OCw3ICsz
MjU3LDcgQEAgX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVudEV2
CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjhmaW5hbGl6ZUV2CiBfX1pON1dlYkNvcmUxMk5v
dGlmaWNhdGlvbkMxRXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uRDFFdgotX19aTjdXZWJD
b3JlMTR0b05vdGlmaWNhdGlvbkVOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTRKU05vdGlm
aWNhdGlvbjZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE5cHJvdmlkZU5vdGlm
aWNhdGlvbkVQTlNfNFBhZ2VFUE5TXzE4Tm90aWZpY2F0aW9uQ2xpZW50RQogX19aTjdXZWJDb3Jl
MjJOb3RpZmljYXRpb25Db250cm9sbGVyMTBjbGllbnRGcm9tRVBOU180UGFnZUUKICNlbmRpZgpA
QCAtMzM3MCw3ICszMzY5LDcgQEAgX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxNmhhbmRsZVRv
dWNoRXZlbnRFUktOU18xOFBsYXRmb3JtVG91Y2hFdmVudEUKICNpZiBFTkFCTEUoVklERU8pCiAu
b2JqY19jbGFzc19uYW1lX1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIKIF9fWk43V2ViQ29y
ZTEwVGltZVJhbmdlczNhZGRFZGQKLV9fWk43V2ViQ29yZTEydG9UaW1lUmFuZ2VzRU4zSlNDN0pT
VmFsdWVFCitfX1pON1dlYkNvcmUxMkpTVGltZVJhbmdlczZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEyZW5kU2NydWJiaW5nRXYKIF9fWk43V2Vi
Q29yZTE2SFRNTE1lZGlhRWxlbWVudDE0YmVnaW5TY3J1YmJpbmdFdgogX19aTjdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50MTRleGl0RnVsbHNjcmVlbkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAK
aW5kZXggZTZiNTA2NC4uYWJiMDA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcApAQCAtNDEs
NyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OnNldEJ1ZmZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAg
QXVkaW9CdWZmZXIqIGJ1ZmZlciA9IHRvQXVkaW9CdWZmZXIodmFsdWUpOworICAgIEF1ZGlvQnVm
ZmVyKiBidWZmZXIgPSBKU0F1ZGlvQnVmZmVyOjp0b0ltcGwodmFsdWUpOwogICAgIGlmICghYnVm
ZmVyKSB7CiAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlw
ZUVycm9yKGV4ZWMsICJWYWx1ZSBpcyBub3Qgb2YgdHlwZSBBdWRpb0J1ZmZlciIpKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9i
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAK
aW5kZXggMjkzYWZiMy4uMDZhOTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCbG9iQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jsb2JDdXN0b20uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU0Jsb2IoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgYmxv
YkJ1aWxkZXIuYXBwZW5kKGFycmF5QnVmZmVyKTsKICAgICAgICAgZWxzZSBpZiAoUmVmUHRyPEFy
cmF5QnVmZmVyVmlldz4gYXJyYXlCdWZmZXJWaWV3ID0gdG9BcnJheUJ1ZmZlclZpZXcoaXRlbSkp
CiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYXJyYXlCdWZmZXJWaWV3LnJlbGVhc2Uo
KSk7Ci0gICAgICAgIGVsc2UgaWYgKEJsb2IqIGJsb2IgPSB0b0Jsb2IoaXRlbSkpCisgICAgICAg
IGVsc2UgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvSW1wbChpdGVtKSkKICAgICAgICAgICAg
IGJsb2JCdWlsZGVyLmFwcGVuZChibG9iKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBT
dHJpbmcgc3RyaW5nID0gaXRlbS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1
c3RvbS5jcHAKaW5kZXggNzk1NDhlOC4uZjJmZmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcApAQCAt
MTEzLDcgKzExMyw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQSUhvc3Q6OmdldEV2ZW50TGlz
dGVuZXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFs
dWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgTm9kZSog
bm9kZSA9IHRvTm9kZSh2YWx1ZSk7CisgICAgTm9kZSogbm9kZSA9IEpTTm9kZTo6dG9JbXBsKHZh
bHVlKTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCkBA
IC0xNDksNyArMTQ5LDcgQEAgSlNWYWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6ZGF0YWJhc2VJ
ZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAjaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSB0b0RhdGFiYXNl
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSBK
U0RhdGFiYXNlOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChk
YXRhYmFzZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGltcGwoKS5k
YXRhYmFzZUlkSW1wbChkYXRhYmFzZSkpOwogI2VuZGlmCkBAIC0xNjIsNyArMTYyLDcgQEAgSlNW
YWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3RvcmFnZUlkKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAKLSAgICBTdG9yYWdlKiBzdG9yYWdlID0gdG9TdG9yYWdlKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBTdG9yYWdlKiBzdG9yYWdlID0gSlNTdG9yYWdlOjp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChzdG9yYWdlKQogICAgICAgICBy
ZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgaW1wbCgpLnN0b3JhZ2VJZEltcGwoc3RvcmFn
ZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1E
YXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFD
dXN0b20uY3BwCmluZGV4IDMxYjE4MGIuLmU5ZTBiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCkBAIC00MSw5ICs0MSw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhU
TUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIEhUTUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnRPck51bGwoSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewotICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiAwOworICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiBudWxscHRyOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRlKiBleGVjKQpAQCAtNTIsNyArNTIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRl
KiBleGVjKQogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gMDsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpID4gMCkKLSAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50KGV4
ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50T3JOdWxs
KGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBSZWZQdHI8RE9NRm9ybURhdGE+IGRvbUZvcm1EYXRh
ID0gRE9NRm9ybURhdGE6OmNyZWF0ZShmb3JtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGRvbUZv
cm1EYXRhLmdldCgpKSkpOwogfQpAQCAtNjYsNyArNjYsNyBAQCBKU1ZhbHVlIEpTRE9NRm9ybURh
dGE6OmFwcGVuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWU7
CiAgICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDMgJiYgIWV4ZWMtPmFy
Z3VtZW50KDIpLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICAgICAgZmlsZW5hbWUg
PSBleGVjLT5hcmd1bWVudCgyKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgICAg
ICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIHRvQmxvYih2YWx1ZSksIGZpbGVuYW1lKTsKKyAgICAg
ICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwgSlNCbG9iOjp0b0ltcGwodmFsdWUpLCBmaWxlbmFt
ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChuYW1lLCB2YWx1
ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCmluZGV4IDIzMzM3
YjIuLmFkM2FjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
U3RyaW5nTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01TdHJpbmdMaXN0Q3VzdG9tLmNwcApAQCAtMjUsNyArMjUsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
dG9ET01TdHJpbmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gSlNET01TdHJpbmdMaXN0Ojp0b0ltcGwoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU0RPTVN0cmluZ0xp
c3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTRE9NU3RyaW5nTGlzdCo+KGFz
T2JqZWN0KHZhbHVlKSktPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA1ZjNiNTE3Li5lODRkM2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02ODQs
NyArNjg0LDcgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLURPTVdpbmRvdyog
dG9ET01XaW5kb3coSlNWYWx1ZSB2YWx1ZSkKK0RPTVdpbmRvdyogSlNET01XaW5kb3c6OnRvSW1w
bChKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApp
bmRleCAxYWYwMjZkLi5kMzBiMjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGljdGlvbmFyeS5jcHAKQEAgLTE1NSwyMiArMTU1LDIyIEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8U2VyaWFs
aXplCiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPERPTVdpbmRvdz4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RP
TVdpbmRvdyh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNET01XaW5kb3c6OnRvSW1wbCh2YWx1ZSk7
CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRv
RXZlbnRUYXJnZXQodmFsdWUpOworICAgIHJlc3VsdCA9IEpTRXZlbnRUYXJnZXQ6OnRvSW1wbCh2
YWx1ZSk7CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwg
SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE5vZGU+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9O
b2RlKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU05vZGU6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZv
aWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPFN0b3JhZ2U+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9TdG9yYWdlKHZhbHVl
KTsKKyAgICByZXN1bHQgPSBKU1N0b3JhZ2U6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBN
ZXNzYWdlUG9ydEFycmF5JiByZXN1bHQpCkBAIC0yMjIsMzEgKzIyMiwzMSBAQCB2b2lkIEpTRGlj
dGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVl
LCBSZWZQdHI8VWludAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBS
ZWZQdHI8TWVkaWFLZXlFcnJvcj4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhS2V5
RXJyb3IodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFLZXlFcnJvcjo6dG9JbXBsKHZhbHVl
KTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgSlNEaWN0aW9u
YXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJl
ZlB0cjxNZWRpYVN0cmVhbT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhU3RyZWFt
KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhU3RyZWFtOjp0b0ltcGwodmFsdWUpOwogfQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mIHJlc3VsdCkKIHsKLSAgICBy
ZXN1bHQgPSB0b01lZGlhU3RyZWFtVHJhY2sodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFT
dHJlYW1UcmFjazo6dG9JbXBsKHZhbHVlKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEZPTlRf
TE9BRF9FVkVOVFMpCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgcmVzdWx0
KQogewotICAgIHJlc3VsdCA9IHRvQ1NTRm9udEZhY2VSdWxlKHZhbHVlKTsKKyAgICByZXN1bHQg
PSBKU0NTU0ZvbnRGYWNlUnVsZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPERPTUVycm9yPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvRE9NRXJyb3IodmFsdWUp
OworICAgIHJlc3VsdCA9IEpTRE9NRXJyb3I6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCkKQEAgLTI2MSw3ICsyNjEsNyBA
QCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cgogI2lmIEVOQUJMRShHQU1FUEFEKQogdm9pZCBKU0Rp
Y3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1
ZSwgUmVmUHRyPEdhbWVwYWQ+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9HYW1lcGFkKHZh
bHVlKTsKKyAgICByZXN1bHQgPSBKU0dhbWVwYWQ6OnRvSW1wbCh2YWx1ZSk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcApp
bmRleCBmYTI0NDQzLi4zYjhhOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIEpTVmFsdWUgSlNEb2N1
bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBSZWZQdHI8VG91Y2hM
aXN0PiB0b3VjaExpc3QgPSBUb3VjaExpc3Q6OmNyZWF0ZSgpOwogCiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBleGVjLT5hcmd1bWVudENvdW50KCk7IGkrKykKLSAgICAgICAgdG91Y2hMaXN0
LT5hcHBlbmQodG9Ub3VjaChleGVjLT5hcmd1bWVudChpKSkpOworICAgICAgICB0b3VjaExpc3Qt
PmFwcGVuZChKU1RvdWNoOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoaSkpKTsKIAogICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCB0b3VjaExpc3QucmVsZWFzZSgpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAK
aW5kZXggNTIxMGYxMi4uZjU0YTU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXZl
bnRUYXJnZXQqIHRhcmcKICAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlMjI2ludGVyZmFjZU5hbWU6
OmluZm8oKSkpICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuICZqc0Nhc3Q8
SlMjI2ludGVyZmFjZU5hbWUqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCk7CiAKLUV2ZW50VGFy
Z2V0KiB0b0V2ZW50VGFyZ2V0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK0V2ZW50VGFyZ2V0KiBKU0V2
ZW50VGFyZ2V0Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIFRSWV9UT19VTldS
QVBfV0lUSF9JTlRFUkZBQ0UoRE9NV2luZG93U2hlbGwpCiAgICAgVFJZX1RPX1VOV1JBUF9XSVRI
X0lOVEVSRkFDRShFdmVudFRhcmdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V4Y2VwdGlvbkJhc2UuY3BwCmluZGV4IGJkZTI1YjAuLmY2MjYyZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcApAQCAtNDEsMjAgKzQxLDIw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRXhjZXB0aW9uQmFzZSogdG9FeGNlcHRpb25CYXNl
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoRE9NQ29yZUV4Y2VwdGlvbiogZG9tRXhj
ZXB0aW9uID0gdG9ET01Db3JlRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoRE9NQ29yZUV4Y2Vw
dGlvbiogZG9tRXhjZXB0aW9uID0gSlNET01Db3JlRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQog
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4oZG9tRXhjZXB0
aW9uKTsKLSAgICBpZiAoUmFuZ2VFeGNlcHRpb24qIHJhbmdlRXhjZXB0aW9uID0gdG9SYW5nZUV4
Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFJhbmdlRXhjZXB0aW9uKiByYW5nZUV4Y2VwdGlvbiA9
IEpTUmFuZ2VFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihyYW5nZUV4Y2VwdGlvbik7Ci0gICAgaWYgKEV2ZW50
RXhjZXB0aW9uKiBldmVudEV4Y2VwdGlvbiA9IHRvRXZlbnRFeGNlcHRpb24odmFsdWUpKQorICAg
IGlmIChFdmVudEV4Y2VwdGlvbiogZXZlbnRFeGNlcHRpb24gPSBKU0V2ZW50RXhjZXB0aW9uOjp0
b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25C
YXNlKj4oZXZlbnRFeGNlcHRpb24pOwotICAgIGlmIChYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiog
eG1sSHR0cEV4Y2VwdGlvbiA9IHRvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24odmFsdWUpKQorICAg
IGlmIChYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiogeG1sSHR0cEV4Y2VwdGlvbiA9IEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPih4bWxIdHRwRXhjZXB0aW9uKTsKLSAgICBpZiAoU1ZH
RXhjZXB0aW9uKiBzdmdFeGNlcHRpb24gPSB0b1NWR0V4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYg
KFNWR0V4Y2VwdGlvbiogc3ZnRXhjZXB0aW9uID0gSlNTVkdFeGNlcHRpb246OnRvSW1wbCh2YWx1
ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihzdmdF
eGNlcHRpb24pOwotICAgIGlmIChYUGF0aEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlvbiA9IHRvWFBh
dGhFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChYUGF0aEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlv
biA9IEpTWFBhdGhFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihwYXRoRXhjZXB0aW9uKTsKICNpZiBFTkFCTEUo
U1FMX0RBVEFCQVNFKQotICAgIGlmIChTUUxFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSB0b1NR
TEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFNRTEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlvbiA9
IEpTU1FMRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4ocGF0aEV4Y2VwdGlvbik7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1c3Rv
bS5jcHAKaW5kZXggMWQ0MGM2MC4uYmZjMWRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwCkBAIC00MCw3ICs0
MCw3IEBAIHZvaWQgSlNIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKEV4ZWNTdGF0ZSos
IEpTVmFsdWUgdmFsdWUpCiAgICAgLy8gT24gc2V0dGluZywgaXQgbXVzdCBmaXJzdCByZW1vdmUg
dGhlIGVsZW1lbnQncyBtZWRpYWdyb3VwIGF0dHJpYnV0ZSwgaWYgYW55LCAKICAgICBpbXBsKCku
c2V0TWVkaWFHcm91cChTdHJpbmcoKSk7CiAgICAgLy8gYW5kIHRoZW4gc2V0IHRoZSBjdXJyZW50
IG1lZGlhIGNvbnRyb2xsZXIgdG8gdGhlIGdpdmVuIHZhbHVlLgotICAgIGltcGwoKS5zZXRDb250
cm9sbGVyKHRvTWVkaWFDb250cm9sbGVyKHZhbHVlKSk7CisgICAgaW1wbCgpLnNldENvbnRyb2xs
ZXIoSlNNZWRpYUNvbnRyb2xsZXI6OnRvSW1wbCh2YWx1ZSkpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlv
bkN1c3RvbS5jcHAKaW5kZXggNzRhNTg2Ny4uNzFmM2RkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9t
LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjppbmRl
eFNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbAogSlNWYWx1ZSBK
U0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBIVE1M
T3B0aW9uc0NvbGxlY3Rpb24mIGltcCA9IGltcGwoKTsKLSAgICBIVE1MT3B0aW9uRWxlbWVudCog
b3B0aW9uID0gdG9IVE1MT3B0aW9uRWxlbWVudChleGVjLT5hcmd1bWVudCgwKSk7CisgICAgSFRN
TE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbChleGVj
LT5hcmd1bWVudCgwKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIGltcC5hZGQob3B0aW9uLCBlYyk7CkBAIC04
MSw3ICs4MSw3IEBAIEpTVmFsdWUgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OnJlbW92ZShFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgLy8gVGhlIGFyZ3VtZW50IGNhbiBiZSBhbiBIVE1MT3B0aW9u
RWxlbWVudCBvciBhbiBpbmRleC4KICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gZXhlYy0+YXJndW1l
bnQoMCk7Ci0gICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSB0b0hUTUxPcHRpb25F
bGVtZW50KGFyZ3VtZW50KSkKKyAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpT
SFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbChhcmd1bWVudCkpCiAgICAgICAgIGltcGwoKS5yZW1v
dmUob3B0aW9uKTsKICAgICBlbHNlCiAgICAgICAgIGltcGwoKS5yZW1vdmUoYXJndW1lbnQudG9J
bnQzMihleGVjKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDQzZjY5NGIuLmRkZDA5MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1l
bnRDdXN0b20uY3BwCkBAIC00Myw3ICs0Myw3IEBAIEpTVmFsdWUgSlNIVE1MU2VsZWN0RWxlbWVu
dDo6cmVtb3ZlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMs
IGVjKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGUgSFRNTFNlbGVjdEVsZW1lbnQ6OnJl
bW92ZSgpIGZ1bmN0aW9uIGNhbiB0YWtlIGVpdGhlciBhbiBvcHRpb24gb2JqZWN0IG9yIHRoZSBp
bmRleCBvZiBhbiBvcHRpb24uCi0gICAgICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9u
ID0gdG9IVE1MT3B0aW9uRWxlbWVudChleGVjLT5hcmd1bWVudCgwKSkpCisgICAgICAgIGlmIChI
VE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBsKGV4
ZWMtPmFyZ3VtZW50KDApKSkKICAgICAgICAgICAgIHNlbGVjdC5yZW1vdmUob3B0aW9uKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgc2VsZWN0LnJlbW92ZUJ5SW5kZXgoZXhlYy0+YXJndW1l
bnQoMCkudG9JbnQzMihleGVjKSk7CkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgc2VsZWN0SW5kZXhT
ZXR0ZXIoSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkCiAgICAgICAgIHNlbGVjdC0+cmVtb3ZlQnlJbmRleChpbmRleCk7CiAgICAgZWxzZSB7
CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBIVE1MT3B0aW9uRWxlbWVu
dCogb3B0aW9uID0gdG9IVE1MT3B0aW9uRWxlbWVudCh2YWx1ZSk7CisgICAgICAgIEhUTUxPcHRp
b25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwodmFsdWUpOwog
ICAgICAgICBpZiAoIW9wdGlvbikKICAgICAgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7
CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAppbmRleCBmNGI1NTVmLi5mNTc0
MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZy
b250ZW5kSG9zdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgSlNWYWx1
ZSBKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV4ZWNTdGF0ZSogZXhl
YykKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMikKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgRXZlbnQqIGV2ZW50
ID0gdG9FdmVudChleGVjLT5hcmd1bWVudCgwKSk7CisgICAgRXZlbnQqIGV2ZW50ID0gSlNFdmVu
dDo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKTsKIAogICAgIEpTQXJyYXkqIGFycmF5ID0gYXNB
cnJheShleGVjLT5hcmd1bWVudCgxKSk7CiAgICAgQ29udGV4dE1lbnUgbWVudTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAppbmRl
eCBiYTllM2NjLi45YmIzZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBKU0M6
OkpTVmFsdWUgaGFuZGxlSW5pdE1lc3NhZ2VFdmVudChKU01lc3NhZ2VFdmVudCoganNFdmVudCwg
SlNDOjpFeGVjU3RhCiAgICAgYm9vbCBjYW5jZWxhYmxlQXJnID0gZXhlYy0+YXJndW1lbnQoMiku
dG9Cb29sZWFuKGV4ZWMpOwogICAgIGNvbnN0IFN0cmluZyBvcmlnaW5BcmcgPSBleGVjLT5hcmd1
bWVudCg0KS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgY29uc3QgU3RyaW5nIGxh
c3RFdmVudElkQXJnID0gZXhlYy0+YXJndW1lbnQoNSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpOwotICAgIERPTVdpbmRvdyogc291cmNlQXJnID0gdG9ET01XaW5kb3coZXhlYy0+YXJndW1l
bnQoNikpOworICAgIERPTVdpbmRvdyogc291cmNlQXJnID0gSlNET01XaW5kb3c6OnRvSW1wbChl
eGVjLT5hcmd1bWVudCg2KSk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0QXJyYXk+
IG1lc3NhZ2VQb3J0czsKICAgICBPd25QdHI8QXJyYXlCdWZmZXJBcnJheT4gYXJyYXlCdWZmZXJz
OwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoNykuaXNVbmRlZmluZWRPck51bGwoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcApp
bmRleCA3NWFiZTE4Li45NDZmZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcApAQCAtODQsNyArODQsNyBAQCB2b2lkIGZpbGxN
ZXNzYWdlUG9ydEFycmF5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUs
IE1lc3NhZ2VQb3J0QQogICAgICAgICB9CiAKICAgICAgICAgLy8gVmFsaWRhdGlvbiBvZiBPYmpl
Y3RzIGltcGxlbWVudGluZyBhbiBpbnRlcmZhY2UsIHBlciBXZWJJREwgc3BlYyA0LjEuMTUuCi0g
ICAgICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydCA9IHRvTWVzc2FnZVBvcnQodmFsdWUpOwor
ICAgICAgICBSZWZQdHI8TWVzc2FnZVBvcnQ+IHBvcnQgPSBKU01lc3NhZ2VQb3J0Ojp0b0ltcGwo
dmFsdWUpOwogICAgICAgICBpZiAocG9ydCkgewogICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGR1
cGxpY2F0ZSBwb3J0cy4KICAgICAgICAgICAgIGlmIChwb3J0QXJyYXkuY29udGFpbnMocG9ydCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IGQz
NjI0ZTEuLmRkN2IyMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGJvb2wgSlNOb2RlT3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2CiBKU1Zh
bHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLmluc2VydEJlZm9yZSh0b05vZGUo
ZXhlYy0+YXJndW1lbnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7CisgICAg
Ym9vbCBvayA9IGltcGwoKS5pbnNlcnRCZWZvcmUoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1l
bnQoMCkpLCBKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKICAgICBzZXRE
T01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMt
PmFyZ3VtZW50KDApOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjppbnNlcnRC
ZWZvcmUoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU05vZGU6OnJlcGxhY2VDaGlsZChFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9
IGltcGwoKS5yZXBsYWNlQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4
ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBsKCkucmVwbGFjZUNoaWxk
KEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgSlNOb2RlOjp0b0ltcGwoZXhlYy0+
YXJndW1lbnQoMSkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBp
ZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgxKTsKQEAgLTE1NSw3ICsxNTUs
NyBAQCBKU1ZhbHVlIEpTTm9kZTo6cmVwbGFjZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFs
dWUgSlNOb2RlOjpyZW1vdmVDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcGwoKS5yZW1vdmVDaGlsZCh0b05vZGUoZXhl
Yy0+YXJndW1lbnQoMCkpLCBlYyk7CisgICAgYm9vbCBvayA9IGltcGwoKS5yZW1vdmVDaGlsZChK
U05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50
KDApOwpAQCAtMTY1LDcgKzE2NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjpyZW1vdmVDaGlsZChFeGVj
U3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTTm9kZTo6YXBwZW5kQ2hpbGQoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkuYXBw
ZW5kQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOworICAgIGJvb2wgb2sgPSBp
bXBsKCkuYXBwZW5kQ2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpLCBlYyk7
CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJl
dHVybiBleGVjLT5hcmd1bWVudCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCmluZGV4IDI4YzE2YzEuLjRlMTQ3ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApAQCAt
MzUsNyArMzUsNyBAQCB2b2lkIEpTTm9kZUZpbHRlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4o
SlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJmlt
cGwoKSk7CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpTQzo6Vk0m
IHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCitQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IEpTTm9kZUZp
bHRlcjo6dG9JbXBsKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYg
KHZhbHVlLmluaGVyaXRzKEpTTm9kZUZpbHRlcjo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuICZK
U0M6OmpzQ2FzdDxKU05vZGVGaWx0ZXIqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAK
aW5kZXggZjQwNWEwMy4uNjg4MGEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIEpTVmFs
dWUgSlNTdWJ0bGVDcnlwdG86OmVuY3J5cHQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0
b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0
b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgx
KSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsK
IApAQCAtMTk3LDcgKzE5Nyw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmRlY3J5cHQoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1w
bChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtMjQ4LDcgKzI0OCw3IEBAIEpTVmFsdWUg
SlNTdWJ0bGVDcnlwdG86OnNpZ24oRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0
b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4g
a2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAg
ICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAt
Mjk5LDcgKzI5OSw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OnZlcmlmeShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0
cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRo
cm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC02MDAsNyArNjAwLDcgQEAgSlNWYWx1ZSBKU1N1YnRs
ZUNyeXB0bzo6ZXhwb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9L
ZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtl
eSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAg
IGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTYz
MCwxMSArNjMwLDExIEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OndyYXBLZXkoRXhlY1N0YXRl
KiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQ
dHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgx
KSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVj
LT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihleGVjKTsKIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IHdyYXBwaW5nS2V5
ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJlZlB0cjxD
cnlwdG9LZXk+IHdyYXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgyKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVF
cnJvcihleGVjKTsKIApAQCAtNzEzLDcgKzcxMyw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86
OnVud3JhcEtleShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IHVud3JhcHBpbmdLZXkgPSB0b0NyeXB0
b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4g
dW53cmFwcGluZ0tleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMikpOwogICAgIGlmICghdW53cmFwcGluZ0tleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKGV4ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggYzVmMjE2MS4uZmU1
MWZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIEpTVmFs
dWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyhFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQgPSBpbXBsKCk7Ci0gICAg
V2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkpOworICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQcm9ncmFtOjp0
b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJvZ3JhbSAmJiAh
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAg
cmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIFZlY3RvcjxSZWZQdHI8V2ViR0xTaGFk
ZXI+PiBzaGFkZXJzOwpAQCAtMzQxLDcgKzM0MSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0g
aW1wbCgpOwotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dl
YkdMUHJvZ3JhbTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAo
IXByb2dyYW0gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxs
KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICB1bnNpZ25lZCBw
bmFtZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CkBAIC0zNjks
NyArMzY5LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFy
YW1ldGVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRl
eHQgPSBpbXBsKCk7CiAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVm
aW5lZE9yTnVsbCgpICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pbmhlcml0cyhKU1dl
YkdMU2hhZGVyOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7
Ci0gICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IHRvV2ViR0xTaGFkZXIoZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMCkpOworICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSBKU1dlYkdMU2hhZGVyOjp0
b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIHVuc2lnbmVkIHBuYW1lID0g
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtNDA1LDEw
ICs0MDUsMTAgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybShF
eGVjU3RhdGUqIGV4ZWMpCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJl
bmRlcmluZ0NvbnRleHQmIGNvbnRleHQgPSBpbXBsKCk7Ci0gICAgV2ViR0xQcm9ncmFtKiBwcm9n
cmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQcm9ncmFtOjp0b0ltcGwoZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJvZ3JhbSAmJiAhZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKGV4ZWMpOwotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xV
bmlmb3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvSW1wbChl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMSkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJu
IHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIFdlYkdMR2V0SW5mbyBpbmZvID0gY29udGV4dC5n
ZXRVbmlmb3JtKHByb2dyYW0sIGxvY2F0aW9uLCBlYyk7CkBAIC00NzgsNyArNDc4LDcgQEAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgV2UKICAgICBsb25nIGluZGV4ID0gLTE7CiAgICAgCiAgICAgaWYg
KGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkgewotICAgICAgICBsb2NhdGlvbiA9IHRvV2ViR0xVbmlm
b3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgICAgICBsb2NhdGlv
biA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CiAgICAgICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJy
b3IoZXhlYyk7CiAgICAgfSBlbHNlCkBAIC01NjQsNyArNTY0LDcgQEAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgV2UKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJl
dHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGV4ZWMpKTsKIAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9
IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAg
IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246
OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAm
JiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAKQEAgLTYyNCw3ICs2MjQsNyBAQCBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhU
b0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0g
MykKICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRp
b24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgwKSk7CisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVu
aWZvcm1Mb2NhdGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBp
ZiAoIWxvY2F0aW9uICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9y
TnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAK
aW5kZXggYzllZGNmYS4uZjlhZTE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTE0OCwxMSArMTQ4LDExIEBA
IEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdDo6c2VuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYg
KHZhbC5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBpbXBsKCkuc2VuZChlYyk7CiAgICAg
ZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTRG9jdW1lbnQ6OmluZm8oKSkpCi0gICAgICAgIGltcGwo
KS5zZW5kKHRvRG9jdW1lbnQodmFsKSwgZWMpOworICAgICAgICBpbXBsKCkuc2VuZChKU0RvY3Vt
ZW50Ojp0b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0Jsb2I6
OmluZm8oKSkpCi0gICAgICAgIGltcGwoKS5zZW5kKHRvQmxvYih2YWwpLCBlYyk7CisgICAgICAg
IGltcGwoKS5zZW5kKEpTQmxvYjo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwu
aW5oZXJpdHMoSlNET01Gb3JtRGF0YTo6aW5mbygpKSkKLSAgICAgICAgaW1wbCgpLnNlbmQodG9E
T01Gb3JtRGF0YSh2YWwpLCBlYyk7CisgICAgICAgIGltcGwoKS5zZW5kKEpTRE9NRm9ybURhdGE6
OnRvSW1wbCh2YWwpLCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTQXJyYXlCdWZm
ZXI6OmluZm8oKSkpCiAgICAgICAgIGltcGwoKS5zZW5kKHRvQXJyYXlCdWZmZXIodmFsKSwgZWMp
OwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0FycmF5QnVmZmVyVmlldzo6aW5mbygpKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAKaW5kZXggMjhmMjJkYS4uNzBlOTIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC03ODQsMTIgKzc4
NCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHdyaXRlKG9iai0+aW50ZXJuYWxWYWx1
ZSgpLmFzTnVtYmVyKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKEZpbGUqIGZpbGUgPSB0b0ZpbGUob2JqKSkgeworICAgICAg
ICAgICAgaWYgKEZpbGUqIGZpbGUgPSBKU0ZpbGU6OnRvSW1wbChvYmopKSB7CiAgICAgICAgICAg
ICAgICAgd3JpdGUoRmlsZVRhZyk7CiAgICAgICAgICAgICAgICAgd3JpdGUoZmlsZSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
RmlsZUxpc3QqIGxpc3QgPSB0b0ZpbGVMaXN0KG9iaikpIHsKKyAgICAgICAgICAgIGlmIChGaWxl
TGlzdCogbGlzdCA9IEpTRmlsZUxpc3Q6OnRvSW1wbChvYmopKSB7CiAgICAgICAgICAgICAgICAg
d3JpdGUoRmlsZUxpc3RUYWcpOwogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxp
c3QtPmxlbmd0aCgpOwogICAgICAgICAgICAgICAgIHdyaXRlKGxlbmd0aCk7CkBAIC03OTcsNyAr
Nzk3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgd3JpdGUobGlzdC0+aXRlbShp
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAoQmxvYiogYmxvYiA9IHRvQmxvYihvYmopKSB7CisgICAgICAgICAgICBpZiAoQmxv
YiogYmxvYiA9IEpTQmxvYjo6dG9JbXBsKG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShC
bG9iVGFnKTsKICAgICAgICAgICAgICAgICBtX2Jsb2JVUkxzLmFwcGVuZChibG9iLT51cmwoKSk7
CiAgICAgICAgICAgICAgICAgd3JpdGUoYmxvYi0+dXJsKCkpOwpAQCAtODA1LDcgKzgwNSw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgd3JpdGUoYmxvYi0+c2l6ZSgpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChJbWFn
ZURhdGEqIGRhdGEgPSB0b0ltYWdlRGF0YShvYmopKSB7CisgICAgICAgICAgICBpZiAoSW1hZ2VE
YXRhKiBkYXRhID0gSlNJbWFnZURhdGE6OnRvSW1wbChvYmopKSB7CiAgICAgICAgICAgICAgICAg
d3JpdGUoSW1hZ2VEYXRhVGFnKTsKICAgICAgICAgICAgICAgICB3cml0ZShkYXRhLT53aWR0aCgp
KTsKICAgICAgICAgICAgICAgICB3cml0ZShkYXRhLT5oZWlnaHQoKSk7CkBAIC04NjUsNyArODY1
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VzczsKICAgICAgICAg
ICAgIH0KICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSAgICAgICAgICAgIGlmIChDcnlwdG9L
ZXkqIGtleSA9IHRvQ3J5cHRvS2V5KG9iaikpIHsKKyAgICAgICAgICAgIGlmIChDcnlwdG9LZXkq
IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRl
KENyeXB0b0tleVRhZyk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNlcmlhbGl6
ZWRLZXk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZHVtbXlCbG9iVVJMczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
aW5kZXggOGQ1NGRhMS4uNTZkZDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTg3NCw2ICs4NzQsMTcgQEAgc3ViIEdl
bmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCop
O1xuIik7CiAgICAgfQogCisgICAgIyBKU1ZhbHVlIHRvIGltcGxlbWVudGF0aW9uIHR5cGUKKyAg
ICBpZiAoISRoYXNQYXJlbnQgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpT
R2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSB7CisgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiTm9kZUZpbHRlciIpIHsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9JbXBsKEpTQzo6Vk0mLCBKU0M6OkpTVmFs
dWUpO1xuIik7CisgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01TdHJpbmdM
aXN0IikgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgUGFz
c1JlZlB0cjxET01TdHJpbmdMaXN0PiB0b0ltcGwoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUpO1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyAkaW1wbFR5cGUqIHRvSW1wbChKU0M6OkpT
VmFsdWUpO1xuIik7CisgICAgICAgIH0KKyAgICB9CisKICAgICAkaGVhZGVyVHJhaWxpbmdJbmNs
dWRlc3siJHtjbGFzc05hbWV9Q3VzdG9tLmgifSA9IDEgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTQ3VzdG9tSGVhZGVyIn07CiAKICAgICBteSAkbmFtZWRHZXR0ZXJGdW5j
dGlvbiA9IEdldE5hbWVkR2V0dGVyRnVuY3Rpb24oJGludGVyZmFjZSk7CkBAIC0xMTY2LDE1ICsx
MTc3LDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKFNob3VsZEdlbmVyYXRlVG9KU0Rl
Y2xhcmF0aW9uKCRoYXNQYXJlbnQsICRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGltcGxUeXBlKik7XG4iKTsKICAgICB9Ci0gICAgaWYg
KCEkaGFzUGFyZW50IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVy
YXRlVG9OYXRpdmVPYmplY3QifSkgewotICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5v
ZGVGaWx0ZXIiKSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiUGFzc1JlZlB0
cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIoSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7XG4iKTsK
LSAgICAgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0cmluZ0xpc3QiKSB7Ci0g
ICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0
PiB0b0RPTVN0cmluZ0xpc3QoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpO1xuIik7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiV0VCQ09S
RV9FWFBPUlQgJGltcGxUeXBlKiB0byR7aW50ZXJmYWNlTmFtZX0oSlNDOjpKU1ZhbHVlKTtcbiIp
OwotICAgICAgICB9Ci0gICAgfQogICAgIGlmICgkdXNlc1RvSlNOZXdseUNyZWF0ZWR7JGludGVy
ZmFjZU5hbWV9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUg
dG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGlu
dGVyZmFjZU5hbWUqKTtcbiIpOwogICAgIH0KQEAgLTMxMTIsNyArMzExNCw3IEBAIEVORAogICAg
IH0KIAogICAgIGlmICgoISRoYXNQYXJlbnQgb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSBhbmQgISRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbVRvTmF0aXZlT2JqZWN0In0pIHsKLSAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIkaW1wbFR5cGUqIHRvJHtpbnRlcmZhY2VOYW1lfShKU0M6OkpTVmFs
dWUgdmFsdWUpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIkaW1wbFR5cGUqICR7
Y2xhc3NOYW1lfTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSlcbiIpOwogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBp
ZiAoYXV0byogd3JhcHBlciA9ICIgLiBHZXRDYXN0aW5nSGVscGVyRm9yVGhpc09iamVjdCgkaW50
ZXJmYWNlKSAuICIodmFsdWUpKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTtcbiIpOwpAQCAtMzI0Myw3ICszMjQ1LDcgQEAg
c3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAKICAgICAgICAgaWYgKCRhcmdUeXBlIGVxICJY
UGF0aE5TUmVzb2x2ZXIiKSB7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
UmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gY3VzdG9tUmVzb2x2ZXI7XG4iKTsKLSAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBYUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyID0gdG9Y
UGF0aE5TUmVzb2x2ZXIoZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgWFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlciA9
IEpTWFBhdGhOU1Jlc29sdmVyOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xu
Iik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCFyZXNvbHZlcikg
e1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGN1c3RvbVJl
c29sdmVyID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShleGVjLCBleGVjLT5hcmd1
bWVudCgkYXJnc0luZGV4KSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSlcbiIpOwpAQCAtMzI5
Niw3ICszMjk4LDcgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGZvciAodW5zaWduZWQgaSA9ICRhcmdzSW5kZXgs
IGNvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOyBpIDwgY291bnQ7ICsraSkge1xuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoIWV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KGkpLmluaGVyaXRzKEpTJHthcmdUeXBlfTo6aW5mbygpKSlcbiIpOwog
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0
aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCBpLCBcIiRuYW1lXCIsIFwiJGludGVyZmFjZU5h
bWVcIiwgJHF1b3RlZEZ1bmN0aW9uTmFtZSwgXCIkYXJnVHlwZVwiKTtcbiIpOwotICAgICAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJG5hbWUuYXBwZW5kKHRvJGFyZ1R5
cGUoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJG5hbWUuYXBwZW5kKEpTJHthcmdUeXBlfTo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7XG4iKTsKICAgICAgICAgICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxuIikKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFZlY3RvcjwkbmF0aXZlRWxlbWVu
dFR5cGU+ICRuYW1lID0gdG9OYXRpdmVBcmd1bWVudHM8JG5hdGl2ZUVsZW1lbnRUeXBlPihleGVj
LCAkYXJnc0luZGV4KTtcbiIpOwpAQCAtMzg0OSw3ICszODUxLDcgQEAgc3ViIEpTVmFsdWVUb05h
dGl2ZQogCiAgICAgaWYgKCR0eXBlIGVxICJOb2RlRmlsdGVyIikgewogICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiSlMkdHlwZS5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgcmV0dXJuICJ0
byR0eXBlKGV4ZWMtPnZtKCksICR2YWx1ZSkiOworICAgICAgICByZXR1cm4gIkpTJHt0eXBlfTo6
dG9JbXBsKGV4ZWMtPnZtKCksICR2YWx1ZSkiOwogICAgIH0KIAogICAgIGlmICgkdHlwZSBlcSAi
U2VyaWFsaXplZFNjcmlwdFZhbHVlIikgewpAQCAtMzg4MSw3ICszODgzLDcgQEAgc3ViIEpTVmFs
dWVUb05hdGl2ZQogICAgIGlmICgkYXJyYXlPclNlcXVlbmNlVHlwZSkgewogICAgICAgICBpZiAo
JGNvZGVHZW5lcmF0b3ItPklzUmVmUHRyVHlwZSgkYXJyYXlPclNlcXVlbmNlVHlwZSkpIHsKICAg
ICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR7YXJyYXlPclNlcXVlbmNlVHlwZX0uaCIp
OwotICAgICAgICAgICAgcmV0dXJuICIodG9SZWZQdHJOYXRpdmVBcnJheTwke2FycmF5T3JTZXF1
ZW5jZVR5cGV9LCBKUyR7YXJyYXlPclNlcXVlbmNlVHlwZX0+KGV4ZWMsICR2YWx1ZSwgJnRvJHth
cnJheU9yU2VxdWVuY2VUeXBlfSkpIjsKKyAgICAgICAgICAgIHJldHVybiAiKHRvUmVmUHRyTmF0
aXZlQXJyYXk8JHthcnJheU9yU2VxdWVuY2VUeXBlfSwgSlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9
PihleGVjLCAkdmFsdWUsICZKUyR7YXJyYXlPclNlcXVlbmNlVHlwZX06OnRvSW1wbCkpIjsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gInRvTmF0aXZlQXJyYXk8IiAuIEdldE5hdGl2ZVZlY3Rv
cklubmVyVHlwZSgkYXJyYXlPclNlcXVlbmNlVHlwZSkgLiAiPihleGVjLCAkdmFsdWUpIjsKICAg
ICB9CkBAIC0zODkyLDcgKzM4OTQsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAKICAgICAjIERl
ZmF1bHQsIGFzc3VtZSBhdXRvZ2VuZXJhdGVkIHR5cGUgY29udmVyc2lvbiByb3V0aW5lcwogICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwpOwotICAgIHJldHVy
biAidG8kdHlwZSgkdmFsdWUpIjsKKyAgICByZXR1cm4gIkpTJHt0eXBlfTo6dG9JbXBsKCR2YWx1
ZSkiOwogfQogCiBzdWIgTmF0aXZlVG9KU1ZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmpl
Y3QuY3BwCmluZGV4IDcxOTM4ZmIuLmExNjExNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01P
YmplY3QuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3QKICAg
ICBUZXN0QWN0aXZlRE9NT2JqZWN0JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBOb2RlKiBu
ZXh0Q2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgTm9kZSogbmV4dENoaWxk
KEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBpbXBsLmV4Y2l0aW5nRnVuY3Rpb24obmV4dENoaWxkKTsKQEAgLTI4
OSw3ICsyODksNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RBY3RpdmVETwogICAgIHJldHVybiBjcmVhdGVO
ZXdXcmFwcGVyPEpTVGVzdEFjdGl2ZURPTU9iamVjdD4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0K
IAotVGVzdEFjdGl2ZURPTU9iamVjdCogdG9UZXN0QWN0aXZlRE9NT2JqZWN0KEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKK1Rlc3RBY3RpdmVET01PYmplY3QqIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6dG9J
bXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCA1NWMy
ZWY5Li5kZTZiNTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC0zOCw2ICsz
OCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5
cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RBY3RpdmVET01PYmplY3QqIHRvSW1wbChKU0M6OkpT
VmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEFj
dGl2ZURPTU9iamVjdCgpOwpAQCAtOTMsNyArOTQsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNv
bnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEFjdGl2ZURPTU9iamVjdCopCiB9CiAK
IFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqLCBUZXN0QWN0aXZlRE9NT2JqZWN0Kik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0
QWN0aXZlRE9NT2JqZWN0KiB0b1Rlc3RBY3RpdmVET01PYmplY3QoSlNDOjpKU1ZhbHVlKTsKIAog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmNwcAppbmRleCA1NjhjOWRlLi5hZTE3MWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDdXN0b21OYQog
ICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyPihnbG9i
YWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RDdXN0b21OYW1lZEdldHRlciog
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXggMWViMzVkOC4uZGI0ZWExZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUo
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3Rh
dGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwpAQCAtOTcsNyArOTgsNiBAQCBpbmxpbmUg
dm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDdXN0b21OYW1lZEdldHRlciopOwot
V0VCQ09SRV9FWFBPUlQgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b1Rlc3RDdXN0b21OYW1lZEdl
dHRlcihKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCA4ZWFmYTA3Li40ZWU3ZTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0yOTIsNyArMjkyLDcgQEAgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0RXZlbnRDb24KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0RXZlbnRDb25zdHJ1
Y3RvciogdG9UZXN0RXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0RXZl
bnRDb25zdHJ1Y3RvciogSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6dG9JbXBsKEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
RXZlbnRDb25zdHJ1Y3Rvcio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBs
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAppbmRleCA1YmJlZWM4Li5lNjBhYjIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZN
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQ
cm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgVGVzdEV2ZW50Q29uc3RydWN0b3IqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwog
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0RXZlbnRD
b25zdHJ1Y3RvcigpOwogCkBAIC05Myw3ICs5NCw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29u
dGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0RXZlbnRDb25zdHJ1Y3RvciopCiB9CiAK
IFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqLCBUZXN0RXZlbnRDb25zdHJ1Y3RvciopOwotV0VCQ09SRV9FWFBPUlQgVGVz
dEV2ZW50Q29uc3RydWN0b3IqIHRvVGVzdEV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlKTsK
IAogYm9vbCBmaWxsVGVzdEV2ZW50Q29uc3RydWN0b3JJbml0KFRlc3RFdmVudENvbnN0cnVjdG9y
SW5pdCYsIEpTRGljdGlvbmFyeSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCBk
YjMzM2QyLi5lNzc2Y2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTI5NCw3ICsy
OTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50VGFyZ2V0UHJv
dG90eXBlRnVuY3Rpb25EaXNwYXRjaEV2ZW50KEV4ZQogICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBFdmVudCogZXZ0KHRvRXZlbnQoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBFdmVudCogZXZ0
KEpTRXZlbnQ6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xlYW4oaW1wbC5kaXNwYXRj
aEV2ZW50KGV2dCwgZWMpKTsKQEAgLTM2NCw3ICszNjQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RFdmVu
dFRhcgogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV2ZW50VGFyZ2V0PihnbG9i
YWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0RXZlbnRUYXJnZXQqIHRvVGVzdEV2ZW50VGFyZ2V0
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RFdmVudFRhcmdldCogSlNUZXN0RXZlbnRUYXJnZXQ6
OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggZWIwYTJkOS4uOTY2
ODRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlND
OjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5
cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgVGVzdEV2ZW50VGFyZ2V0KiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwpAQCAtMTAxLDcgKzEwMiw2IEBAIGlubGluZSB2
b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0RXZlbnRUYXJn
ZXQqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV2ZW50VGFyZ2V0Kik7Ci1XRUJDT1JFX0VYUE9S
VCBUZXN0RXZlbnRUYXJnZXQqIHRvVGVzdEV2ZW50VGFyZ2V0KEpTQzo6SlNWYWx1ZSk7CiAKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAppbmRleCA0YWRlNzZl
Li5jMDJjN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVGVzdEV4Y2VwdGlvCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0
RXhjZXB0aW9uPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0RXhjZXB0aW9uKiB0b1Rl
c3RFeGNlcHRpb24oSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEV4Y2VwdGlvbiogSlNUZXN0RXhj
ZXB0aW9uOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFw
cGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPih2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCmluZGV4IDM5ODQ1NzQuLmY2
OGJkYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFeGNlcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUo
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgVGVzdEV4Y2VwdGlvbiogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ry
b3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0RXhjZXB0aW9uKCk7CkBAIC05NCw3ICs5NSw2
IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBU
ZXN0RXhjZXB0aW9uKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RFeGNlcHRpb24qKTsKLVdFQkNP
UkVfRVhQT1JUIFRlc3RFeGNlcHRpb24qIHRvVGVzdEV4Y2VwdGlvbihKU0M6OkpTVmFsdWUpOwog
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlLmNwcAppbmRleCA0MjdhYmE4Li5lYmE5ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuY3BwCkBAIC0yMTEsNyArMjExLDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0
R2VuZXJhdGUKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZSogdG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZShKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZSogSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6dG9JbXBsKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAppbmRleCBk
ZjdiZGRiLi45NmMwMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgK
QEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNy
ZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUq
IHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0Nl
bGwqKTsKICAgICB+SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSgpOwogCkBAIC05MSw3ICs5Miw2
IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZSopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRv
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGIxNDNjYzQuLjlhMWJmMTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC03MjQsNyArNzI0LDcgQEAgdm9pZCBzZXRKU1Rlc3RJ
bnRlcmZhY2VJbXBsZW1lbnRzTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmMKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0SW50ZXJmYWNlJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIE5vZGUqIG5hdGl2ZVZhbHVlKHRvTm9kZSh2YWx1
ZSkpOworICAgIE5vZGUqIG5hdGl2ZVZhbHVlKEpTTm9kZTo6dG9JbXBsKHZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAg
IGltcGwuc2V0SW1wbGVtZW50c05vZGUobmF0aXZlVmFsdWUpOwpAQCAtNzk1LDcgKzc5NSw3IEBA
IHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVz
dEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBOb2RlKiBuYXRpdmVW
YWx1ZSh0b05vZGUodmFsdWUpKTsKKyAgICBOb2RlKiBuYXRpdmVWYWx1ZShKU05vZGU6OnRvSW1w
bCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAg
ICAgIHJldHVybjsKICAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxOb2RlKCZp
bXBsLCBuYXRpdmVWYWx1ZSk7CkBAIC04NDEsNyArODQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxlbWVudHNNZXRo
b2QyKEUKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5
KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpB
cmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpT
VGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwuaW1wbGVtZW50c01ldGhvZDIoc2NyaXB0
Q29udGV4dCwgc3RyQXJnLCBvYmpBcmcsIGVjKSkpOwpAQCAtOTA3LDcgKzkwNyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25T
dXBwbGVtZW50YWxNZXRob2QyCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1l
bnQoMCkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
VGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSkpOworICAgIFRlc3RP
YmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSkpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMs
IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFs
OjpzdXBwbGVtZW50YWxNZXRob2QyKCZpbXBsLCBzY3JpcHRDb250ZXh0LCBzdHJBcmcsIG9iakFy
ZywgZWMpKSk7CkBAIC05NzMsNyArOTczLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0SW50ZXJmYWMKICAg
ICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RJbnRlcmZhY2U+KGdsb2JhbE9iamVjdCwg
aW1wbCk7CiB9CiAKLVRlc3RJbnRlcmZhY2UqIHRvVGVzdEludGVyZmFjZShKU0M6OkpTVmFsdWUg
dmFsdWUpCitUZXN0SW50ZXJmYWNlKiBKU1Rlc3RJbnRlcmZhY2U6OnRvSW1wbChKU0M6OkpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dEludGVyZmFjZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmgKaW5kZXggN2RkOGQwMy4uYjdkOTdjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
aApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Y3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBUZXN0SW50ZXJmYWNlKiB0b0ltcGwo
SlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpK
U09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBib29sIHNob3VsZFRo
cm93KTsKQEAgLTEyMCw3ICsxMjEsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEludGVyZmFjZSopCiB9CiAKIFdFQkNPUkVfRVhQT1JU
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBU
ZXN0SW50ZXJmYWNlKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0SW50ZXJmYWNlKiB0b1Rlc3RJbnRl
cmZhY2UoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggM2U5MzExZS4uZWIx
NmIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApA
QCAtMjI3LDcgKzIyNyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE1lZGlhUXVlCiAgICAgcmV0dXJuIGNy
ZWF0ZU5ld1dyYXBwZXI8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4oZ2xvYmFsT2JqZWN0
LCBpbXBsKTsKIH0KIAotVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIqIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnRvSW1wbChKU0M6OkpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+
aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXgg
NTU3MzVlYi4uNDVmODI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAg
ICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoKTsKIApA
QCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKQogfQogCiBXRUJDT1JFX0VY
UE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKiB0b1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKEpTQzo6SlNW
YWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuY3BwCmluZGV4IDc1NDZkY2MuLjc3Zjk3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYW1l
ZENvbgogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE5hbWVkQ29uc3RydWN0b3I+
KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3ROYW1lZENvbnN0cnVjdG9yKiB0b1Rlc3RO
YW1lZENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3ROYW1lZENvbnN0cnVjdG9y
KiBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewog
ICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCmluZGV4IGVjZTk4ODcuLjJmM2JiYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQ29uc3RydWN0b3IuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBU
ZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3ROYW1lZENvbnN0cnVjdG9yKCk7
CiAKQEAgLTkyLDcgKzkzLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQsIFRlc3ROYW1lZENvbnN0cnVjdG9yKikKIH0KIAogV0VCQ09SRV9FWFBP
UlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCos
IFRlc3ROYW1lZENvbnN0cnVjdG9yKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0TmFtZWRDb25zdHJ1
Y3RvciogdG9UZXN0TmFtZWRDb25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAppbmRleCBl
MTczYWFjLi44YjVhNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCkBA
IC01MzQsNyArNTM0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Tm9uZGV0ZXIKICAgICByZXR1cm4gY3Jl
YXRlTmV3V3JhcHBlcjxKU1Rlc3ROb25kZXRlcm1pbmlzdGljPihnbG9iYWxPYmplY3QsIGltcGwp
OwogfQogCi1UZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9UZXN0Tm9uZGV0ZXJtaW5pc3RpYyhKU0M6
OkpTVmFsdWUgdmFsdWUpCitUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogSlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpYzo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBl
ciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+KHZhbHVlKSkKICAgICAg
ICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMu
aAppbmRleCBmNTJlYmJkLi40NTdmZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGlj
LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVGVzdE5vbmRldGVybWluaXN0aWMq
IHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0Nl
bGwqKTsKICAgICB+SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYygpOwogCkBAIC05MSw3ICs5Miw2IEBA
IGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0
Tm9uZGV0ZXJtaW5pc3RpYyopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Tm9uZGV0ZXJtaW5pc3Rp
YyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE5vbmRldGVybWluaXN0aWMqIHRvVGVzdE5vbmRldGVy
bWluaXN0aWMoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCmluZGV4IGU0MzRkZWMuLmY4ZjQ4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0yMDc4LDcgKzIwNzgs
NyBAQCB2b2lkIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbAogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZl
VmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0
T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRUZXN0T2JqQXR0cihuYXRpdmVWYWx1
ZSk7CkBAIC0yMDk4LDcgKzIwOTgsNyBAQCB2b2lkIHNldEpTVGVzdE9ialhNTE9iakF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdQogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9i
aiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRY
TUxPYmpBdHRyKG5hdGl2ZVZhbHVlKTsKQEAgLTI0NTQsNyArMjQ1NCw3IEBAIHZvaWQgc2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCoKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2
YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0
dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7CkBAIC0yNDc3LDcgKzI0NzcsNyBAQCB2b2lkIHNldEpTVGVzdE9i
aldpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBiYXNlTwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0
ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVl
KSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47
CiAgICAgaW1wbC5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgbmF0aXZl
VmFsdWUpOwpAQCAtMjQ5Nyw3ICsyNDk3LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2IKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRl
c3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7CkBAIC0yNTIwLDcgKzI1MjAsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleAogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9i
aiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
QEAgLTI1NDMsNyArMjU0Myw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAg
ICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBu
YXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAt
MjU2Niw3ICsyNTY2LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShFeGUKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRl
c3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2
ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0yNTg5
LDcgKzI1ODksNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxs
U3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iagogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9i
aiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFs
dWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRXaXRoU2NyaXB0QXJn
dW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKG5hdGl2ZVZhbHVlKTsKQEAgLTI3NDAsNyArMjc0
MCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhCiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBTVkdQcm9wZXJ0eVRl
YXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZSh0b1NWR1BvaW50KHZhbHVlKSk7CisgICAgU1ZH
UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUoSlNTVkdQb2ludDo6dG9JbXBs
KHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIGltcGwuc2V0TXV0YWJsZVBvaW50KG5hdGl2ZVZhbHVlKTsKQEAgLTI3
NjAsNyArMjc2MCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZSh0b1NWR1BvaW50KHZhbHVlKSk7
CisgICAgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUoSlNTVkdQb2lu
dDo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0SW1tdXRhYmxlUG9pbnQobmF0aXZlVmFs
dWUpOwpAQCAtMjkzOSw3ICsyOTM5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBj
b25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmco
KSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2Jq
KGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9J
bXBsKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBpbXBsLnZvaWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CkBA
IC0yOTc0LDcgKzI5NzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIGNvbnN0IFN0
cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhl
Yy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+
YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhl
Yy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpT
VmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC5ieXRlTWV0aG9kV2l0aEFyZ3MoYnl0ZUFyZywg
c3RyQXJnLCBvYmpBcmcpKTsKQEAgLTMwMDksNyArMzAwOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdz
KEV4ZWNTCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0
eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUo
ZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2Jq
QXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhK
U1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLm9jdGV0TWV0
aG9kV2l0aEFyZ3Mob2N0ZXRBcmcsIHN0ckFyZywgb2JqQXJnKSk7CkBAIC0zMDQ0LDcgKzMwNDQs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4
ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSku
dG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsK
KyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMikp
KTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNOdW1iZXIoaW1wbC5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcp
KTsKQEAgLTMwNzksNyArMzA3OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAgICAgY29u
c3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkg
OiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihl
eGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1w
bChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRp
b24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAg
ICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCBXVEY6OmdldFB0cihpbXBsLm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2Jq
QXJnKSkpOwpAQCAtMzA5Niw3ICszMDk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhFeGUKICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1
bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBWZWN0b3I8UmVmUHRyPFNjcmlw
dFByb2ZpbGU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxTY3JpcHRQcm9maWxl
LCBKU1NjcmlwdFByb2ZpbGU+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmdG9TY3JpcHRQcm9m
aWxlKSkpOworICAgIFZlY3RvcjxSZWZQdHI8U2NyaXB0UHJvZmlsZT4+IHNlcXVlbmNlQXJnKCh0
b1JlZlB0ck5hdGl2ZUFycmF5PFNjcmlwdFByb2ZpbGUsIEpTU2NyaXB0UHJvZmlsZT4oZXhlYywg
ZXhlYy0+YXJndW1lbnQoMCksICZKU1NjcmlwdFByb2ZpbGU6OnRvSW1wbCkpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwubWV0aG9kV2l0aFNlcXVlbmNlQXJnKHNl
cXVlbmNlQXJnKTsKQEAgLTMxNTMsNyArMzE1Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdz
CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMCkuaXNFbXB0eSgpID8g
U3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRv
VGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RP
Ymo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRU
aHJvd3Moc3RyQXJnLCBvYmpBcmcsIGVjKSkpOwpAQCAtMzY2OSw3ICszNjY5LDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kMSgKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQogICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAg
ICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVz
dE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVj
LT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CkBAIC0zNjg5LDcgKzM2ODksNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QyKAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0
T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0zODAxLDcgKzM4MDEsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2Q4KAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0
T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwub3ZlcmxvYWRlZE1ldGhvZChvYmpB
cmcpOwpAQCAtNDEyMSw3ICs0MTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKEV4ZWNTdGF0ZSogZXhlYykKICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0Tm9kZSogdmFsdWUodG9UZXN0
Tm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3ROb2RlKiB2YWx1ZShKU1Rlc3ROb2Rl
Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgIGltcGwuY29udmVydDEodmFsdWUpOwpAQCAtNDEzOCw3ICs0MTM4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZl
cnQyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsK
LSAgICBUZXN0Tm9kZSogdmFsdWUodG9UZXN0Tm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAg
IFRlc3ROb2RlKiB2YWx1ZShKU1Rlc3ROb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuY29udmVydDIodmFsdWUp
OwpAQCAtNDE1NSw3ICs0MTU1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0
T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0Tm9kZSogdmFsdWUodG9UZXN0Tm9k
ZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3ROb2RlKiB2YWx1ZShKU1Rlc3ROb2RlOjp0
b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgIGltcGwuY29udmVydDQodmFsdWUpOwpAQCAtNDE3Miw3ICs0MTcyLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ1
KEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAg
ICBUZXN0Tm9kZSogdmFsdWUodG9UZXN0Tm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRl
c3ROb2RlKiB2YWx1ZShKU1Rlc3ROb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAg
ICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuY29udmVydDUodmFsdWUpOwpA
QCAtNDI1NCw3ICs0MjU0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmMKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JO
dWxsKCkgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmluaGVyaXRzKEpTVGVzdE9iajo6aW5mbygpKSkK
ICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIDAsICJvYmpBcmci
LCAiVGVzdE9iaiIsICJzdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jZSIsICJUZXN0T2JqIik7Ci0g
ICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRl
c3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAg
IGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgVmVjdG9yPHVuc2lnbmVkPiBhKHRvTmF0
aXZlQXJyYXk8dW5zaWduZWQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CkBAIC00Mjc5LDcg
KzQyNzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uU3RyaWN0RnVuY3Rpb25XaXRoQXJyYXkoRQogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAh
ZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoSlNUZXN0T2JqOjppbmZvKCkpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgMCwgIm9iakFyZyIsICJUZXN0T2Jq
IiwgInN0cmljdEZ1bmN0aW9uV2l0aEFycmF5IiwgIlRlc3RPYmoiKTsKLSAgICBUZXN0T2JqKiBv
YmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2JqQXJn
KEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8aW50PiBhcnJheSh0b05hdGl2ZUFycmF5PGludD4o
ZXhlYywgZXhlYy0+YXJndW1lbnQoMSkpKTsKQEAgLTQzNDEsMTQgKzQzNDEsMTQgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGlj
Tm9kZU1ldGhvZChFeGVjU3QKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAg
ICBOb2RlKiBoZWFkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIE5vZGUqIGhlYWQo
SlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogICAgIFZlY3RvcjxOb2RlKj4gdGFpbDsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAxLCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgaSA8IGNvdW50OyArK2kpIHsKICAg
ICAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKS5pbmhlcml0cyhKU05vZGU6Omlu
Zm8oKSkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywg
aSwgInRhaWwiLCAiVGVzdE9iaiIsICJ2YXJpYWRpY05vZGVNZXRob2QiLCAiTm9kZSIpOwotICAg
ICAgICB0YWlsLmFwcGVuZCh0b05vZGUoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTsKKyAg
ICAgICAgdGFpbC5hcHBlbmQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
aSkpKTsKICAgICB9CiAgICAgaW1wbC52YXJpYWRpY05vZGVNZXRob2QoaGVhZCwgdGFpbCk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTQ0MzQsNyArNDQz
NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGVzdE9iaiogaW1wCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBw
ZXI8SlNUZXN0T2JqPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0T2JqKiB0b1Rlc3RP
YmooSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE9iaiogSlNUZXN0T2JqOjp0b0ltcGwoSlNDOjpK
U1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmoqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5o
CmluZGV4IDNjMGJmYzUuLjVhYzk2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90
b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgVGVzdE9iaiogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ry
b3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0T2JqKCk7CkBAIC0xMDYsNyArMTA3LDYgQEAg
aW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RP
YmoqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE9iaiopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE9i
aiogdG9UZXN0T2JqKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCmluZGV4IDYzMDhk
OWUuLjIzNDY1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SgogICAgIEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciogY2FzdGVkVGhpcyA9IGpzQ2Fz
dDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUo
KSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwot
ICAgIEJsb2IqIGJsb2IodG9CbG9iKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgQmxvYiogYmxv
YihKU0Jsb2I6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgUmVmUHRyPFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPiBvYmpl
Y3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRlKGJsb2IpOwpAQCAtMjgzLDcg
KzI4Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE92ZXJsb2FkCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dy
YXBwZXI8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsK
IH0KIAotVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKaW5kZXggOWM3NmJhZS4u
NDRmZWU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCkBA
IC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVh
dGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
KiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlND
ZWxsKik7CiAgICAgfkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoKTsKIApAQCAtOTEsNyAr
OTIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCwgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzKiB0b1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKEpTQzo6SlNWYWx1ZSk7CiAK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCA4NjdkMGMwLi42NTM3MGI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmNwcApAQCAtMzYyLDcgKzM2Miw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFNlcmlhbGl6CiAgICAg
cmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlKiB0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoSlNDOjpKU1Zh
bHVlIHZhbHVlKQorVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+
aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5oCmluZGV4IGE0OGJjOGUuLmMwMWY1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTQwLDYgKzQwLDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBn
ZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdG9JbXBs
KEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwog
ICAgIH5KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoKTsKIApAQCAtOTcsNyAr
OTgsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludAogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSopOwotV0VCQ09SRV9FWFBPUlQgVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdG9UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKaW5kZXggZTJhOTNhYS4uMGY2ZDFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3Bw
CkBAIC01NzQsNyArNTc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXIKICAgICBUZXN0VHlw
ZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFZlY3RvcjxSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLCBKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oZXhlYywgZXhlYy0+YXJndW1l
bnQoMCksICZ0b1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkpKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSwgSlNTZXJpYWxpemVkU2NyaXB0VmFsdWU+KGV4ZWMsIGV4ZWMt
PmFyZ3VtZW50KDApLCAmSlNTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnRvSW1wbCkpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIo
aW1wbC5tZXRob2RXaXRoU2VxdWVuY2VBcmcoc2VxdWVuY2VBcmcpKTsKQEAgLTY5Nyw3ICs2OTcs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNlVGhhdAogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihleGVjKSk7Ci0gICAgVmVjdG9yPFJlZlB0cjxUZXN0RXZlbnRUYXJnZXQ+PiBzZXF1ZW5j
ZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxUZXN0RXZlbnRUYXJnZXQsIEpTVGVzdEV2ZW50VGFy
Z2V0PihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgJnRvVGVzdEV2ZW50VGFyZ2V0KSkpOworICAg
IFZlY3RvcjxSZWZQdHI8VGVzdEV2ZW50VGFyZ2V0Pj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0
aXZlQXJyYXk8VGVzdEV2ZW50VGFyZ2V0LCBKU1Rlc3RFdmVudFRhcmdldD4oZXhlYywgZXhlYy0+
YXJndW1lbnQoMCksICZKU1Rlc3RFdmVudFRhcmdldDo6dG9JbXBsKSkpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xlYW4oaW1wbC5j
YWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZShzZXF1ZW5jZUFyZykpOwpAQCAtNzY5
LDcgKzc2OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFR5cGVkZWZzCiAgICAgcmV0dXJuIGNyZWF0ZU5l
d1dyYXBwZXI8SlNUZXN0VHlwZWRlZnM+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RU
eXBlZGVmcyogdG9UZXN0VHlwZWRlZnMoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdFR5cGVkZWZz
KiBKU1Rlc3RUeXBlZGVmczo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAo
YXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih2YWx1ZSkpCiAg
ICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAppbmRleCA3ZTVl
YzhkLi5jYzBiYzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBUZXN0VHlwZWRlZnMqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdFR5cGVkZWZzKCk7CkBAIC05Myw3ICs5
NCw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxk
LCBUZXN0VHlwZWRlZnMqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdFR5cGVkZWZzKik7Ci1XRUJD
T1JFX0VYUE9SVCBUZXN0VHlwZWRlZnMqIHRvVGVzdFR5cGVkZWZzKEpTQzo6SlNWYWx1ZSk7CiAK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKaW5kZXggYmE0NmQ4Yy4uMDEz
NGY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTYXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNhdHRyaWJ1dGUuY3BwCkBAIC0yMjQsNyArMjI0LDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBhdHRy
aWJ1dGUqIGkKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU2F0dHJpYnV0ZT4oZ2xvYmFs
T2JqZWN0LCBpbXBsKTsKIH0KIAotYXR0cmlidXRlKiB0b2F0dHJpYnV0ZShKU0M6OkpTVmFsdWUg
dmFsdWUpCithdHRyaWJ1dGUqIEpTYXR0cmlidXRlOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVl
KQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU2F0dHJpYnV0ZSo+
KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCmluZGV4
IDI5N2FkMjYuLmU1OGU5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90
eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGF0dHJpYnV0ZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQg
ZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU2F0dHJpYnV0ZSgpOwogCkBAIC05Miw3ICs5
Myw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxk
LCBhdHRyaWJ1dGUqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgYXR0cmlidXRlKik7Ci1XRUJDT1JFX0VY
UE9SVCBhdHRyaWJ1dGUqIHRvYXR0cmlidXRlKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCmluZGV4IGVkNGE0NGIuLmNjYmY1ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25s
eS5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHJlYWRvbmx5KiBpbQogICAgIHJl
dHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTcmVhZG9ubHk+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9
CiAKLXJlYWRvbmx5KiB0b3JlYWRvbmx5KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3JlYWRvbmx5KiBK
U3JlYWRvbmx5Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3
cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU3JlYWRvbmx5Kj4odmFsdWUpKQogICAgICAgICByZXR1
cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCmluZGV4IGI2ZWZhNGEuLmQ0YTI1YWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9u
bHkuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAg
c3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyByZWFkb25seSogdG9JbXBsKEpT
Qzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAg
IH5KU3JlYWRvbmx5KCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJD
b250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIHJlYWRvbmx5KikKIH0KIAogV0VCQ09SRV9F
WFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCosIHJlYWRvbmx5Kik7Ci1XRUJDT1JFX0VYUE9SVCByZWFkb25seSogdG9yZWFkb25seShKU0M6
OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmlu
ZGV4IDFlMzdlZWMuLmI0Mjg5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNjg5LDYgKzY4OSwy
OSBAQCBzdHJ1Y3QgRWxlbWVudFR5cGVDYXN0VHJhaXRzPEV4cGVjdGVkVHlwZSwgRXhwZWN0ZWRU
eXBlPiB7CiAgICAgc3RhdGljIGJvb2wgaXMoRXhwZWN0ZWRUeXBlJikgeyByZXR1cm4gdHJ1ZTsg
fQogfTsKIAorLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgYnkgdG9YWFhFbGVtZW50KCkg
Y2FzdGluZyBoZWxwZXJzLgorLy8gRG8gbm90IGNhbGwgdGhlc2UgZGlyZWN0bHkuCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCYgdG9FbGVtZW50KE5vZGUmIG5vZGUpCit7CisgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXNFbGVtZW50T2ZUeXBlPGNvbnN0IFQ+KG5v
ZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCY+KG5vZGUpOworfQordGVtcGxhdGU8dHlw
ZW5hbWUgVD4gaW5saW5lIFQqIHRvRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IGlzRWxlbWVudE9mVHlwZTxjb25zdCBU
Pigqbm9kZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4obm9kZSk7Cit9Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgY29uc3QgVCYgdG9FbGVtZW50KGNvbnN0IE5vZGUmIG5vZGUp
Cit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXNFbGVtZW50T2ZUeXBl
PGNvbnN0IFQ+KG5vZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVCY+KG5vZGUp
OworfQordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGNvbnN0IFQqIHRvRWxlbWVudChjb25z
dCBOb2RlKiBub2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFu
b2RlIHx8IGlzRWxlbWVudE9mVHlwZTxjb25zdCBUPigqbm9kZSkpOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjb25zdCBUKj4obm9kZSk7Cit9CisKIGlubGluZSBib29sIE5vZGU6Omhhc0F0dHJp
YnV0ZXMoKSBjb25zdAogewogICAgIHJldHVybiBpc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50
KHRoaXMpLT5oYXNBdHRyaWJ1dGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
bWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDM4
OWMyYjguLmYwODZmNzkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVz
LnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC02NjMsNiArNjYz
LDggQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEFyZ1R5cGU+CiBzdHJ1Y3QgRWxlbWVudFR5cGVDYXN0
VHJhaXRzPGNvbnN0ICRjbGFzcywgQXJnVHlwZT4gewogICAgIHN0YXRpYyBib29sIGlzKEFyZ1R5
cGUmIG5vZGUpIHsgcmV0dXJuICRjaGVja0hlbHBlcihub2RlKTsgfQogfTsKKworI2RlZmluZSB0
byRjbGFzcyh4KSBXZWJDb3JlOjp0b0VsZW1lbnQ8V2ViQ29yZTo6JGNsYXNzPih4KQogRU5ECiAg
ICAgICAgIDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDQ2
NjkxNjMuLjIzMmIwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgK
QEAgLTE1NSw4ICsxNTUsNiBAQCBib29sIGlzRW50ZXJLZXlLZXlkb3duRXZlbnQoRXZlbnQqKTsK
IGJvb2wgaXNMaW5rQ2xpY2soRXZlbnQqKTsKIGJvb2wgc2hvdWxkUHJvaGliaXRMaW5rcyhFbGVt
ZW50Kik7CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQW5jaG9yRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTEFuY2hvckVsZW1lbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5kZXggYWMwN2U5OC4uOGRiNzU4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCkBAIC03MSw4ICs3MSw2IEBAIHByaXZhdGU6CiAg
ICAgU2hhcGUgbV9zaGFwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQXJlYUVsZW1lbnQp
Ci0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBdWRpb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxl
bWVudC5oCmluZGV4IDMwZDJhOGYuLjdlODY1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1
ZGlvRWxlbWVudC5oCkBAIC00Myw4ICs0Myw2IEBAIHByaXZhdGU6CiAgICAgSFRNTEF1ZGlvRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sKTsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MQXVkaW9FbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKaW5kZXggNDA1NGUxNy4uYjc5OWYxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVy
cmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQmFzZUVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9k
eUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKaW5kZXgg
MDE3ZWZjMi4uMGQ0ZDYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9k
eUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oCkBA
IC04MSw4ICs4MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNl
QXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTEJvZHlFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDg4MzdkMDguLjhh
YmRlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTE4MCw4
ICsxODAsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgUmVmUHRyPEltYWdlPiBtX2NvcGllZElt
YWdlOyAvLyBGSVhNRTogVGhpcyBpcyB0ZW1wb3JhcnkgZm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUg
dG8gY29weSB0aGUgaW1hZ2UgYnVmZmVyIHRvIHJlbmRlciAoYW5kIGZvciBDU1NDYW52YXNWYWx1
ZSkuCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTENhbnZhc0VsZW1lbnQpCi0KIH0gLy9uYW1l
c3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRh
TGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5o
CmluZGV4IDY3ZmIxZGIuLmNmMWQzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERhdGFMaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFM
aXN0RWxlbWVudC5oCkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgSFRNTERhdGFMaXN0
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhIVE1MRGF0YUxpc3RFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAj
ZW5kaWYgLy8gRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXRhaWxzRWxlbWVudC5oCmluZGV4IGM0MWY2ZjQuLjA3M2NkNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9pc09wZW47CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTERldGFpbHNFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MRGV0YWlsc0Vs
ZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCmluZGV4IDFiNWQyMGEuLmZm
ODFiOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKQEAgLTQwLDggKzQwLDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TERpdkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxE
aXZFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKaW5kZXggZDlm
ZDQ1Mi4uY2RkM2JlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKQEAg
LTUyLDggKzUyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhcmFtZXRlcnNGb3JQbHVnaW4oVmVj
dG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcyk7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEVtYmVkRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKaW5kZXggN2MxM2VhMC4uM2Ew
MjIzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKQEAgLTY0
LDggKzY0LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVpbnQ2NF90IG1fZG9jdW1lbnRWZXJz
aW9uOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGaWVsZFNldEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5k
ZXggYzQ2OWRjZS4uZmMzZGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5o
CkBAIC0yMDEsOCArMjAxLDYgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxGb3JtRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gSFRNTEZvcm1FbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZyYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgK
aW5kZXggNTU3OWM5OC4uNmU0ZmIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVt
ZW50LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZnJhbWVCb3JkZXJT
ZXQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEZyYW1lRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTEZyYW1lRWxlbWVudF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IDgwZTdmMmEuLjI3MjkzOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC0xMDAsOCArMTAw
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbm9yZXNpemU7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTEZyYW1lU2V0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gSFRNTEZyYW1lU2V0RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxIdG1sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1l
bnQuaAppbmRleCBiOTY2Yzg3Li4wZjgzYjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxIdG1sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxF
bGVtZW50LmgKQEAgLTQxLDggKzQxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNV
UkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoSFRNTEh0bWxFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAppbmRleCA5YWUxOTMyLi5mMGVi
Y2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCkBAIC00Nyw4ICs0
Nyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MSUZyYW1lRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gSFRNTElGcmFtZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuaAppbmRleCAzMjQ5NDhiLi42YWQ0NTRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTQzLDggKzE0Myw2IEBAIHByaXZhdGU6CiAjZW5k
aWYKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MSW1hZ2VFbGVtZW50KQotCiB9IC8vbmFtZXNw
YWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBl
Mzg4NWJjYy4uZDdhNjVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
QEAgLTQ0OCw3ICs0NDgsNSBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTElucHV0RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCmluZGV4IGFlYTUyMzcuLmNhOGVlNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBG
b2N1c0RpcmVjdGlvbikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTExhYmVs
RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExlZ2VuZEVsZW1lbnQuaAppbmRleCAyNDU2OGJkLi45MTA0YWJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCkBAIC00NSw4ICs0NSw2IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTExlZ2VuZEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCA2NWIzMjQx
Li5jYmY1NzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTEzNyw4
ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIFBlbmRpbmdTaGVldFR5cGUgbV9wZW5kaW5nU2hlZXRU
eXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxMaW5rRWxlbWVudCkKLQogfSAvL25hbWVz
cGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaAppbmRleCA5YWU0
NDY3Li42MTdhYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCkBAIC01NCw4
ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MTWFwRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2VzCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKaW5kZXggZDEwOTgyYi4uOTYz
OWU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCkBAIC02NCw4
ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyTWFycXVlZSogcmVuZGVyTWFycXVlZSgpIGNv
bnN0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNYXJxdWVlRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTE1hcnF1ZWVFbGVtZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDE1OWMzYWEuLjA0NTc4MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgcHJvY2VzcygpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNZXRhRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWV0ZXJFbGVtZW50LmgKaW5kZXggOWQ4MjE3Mi4uYTI4Y2I0NDk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaApAQCAtODEsOCArODEsNiBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxNZXRlclZhbHVlRWxlbWVudD4gbV92YWx1ZTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MTWV0ZXJFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgKaW5kZXggOTg5ZDc5NS4uMWYwYWFmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgKQEAgLTY1LDggKzY1LDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fc2hvdWxkUmVjYWxjdWxhdGVJdGVtQ291bnQgOiAxOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxPTGlzdEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKaW5kZXggMmM0OTE5My4u
ZjhlN2E2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaApAQCAtMTAz
LDggKzEwMyw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZUZhbGxiYWNrQ29udGVudCA6IDE7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9iamVjdEVsZW1lbnQpCi0KIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCmluZGV4IDY4OWNlNGIu
LjU3YTM3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCkBA
IC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNhbGNTZWxlY3RPcHRpb25zKCk7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9wdEdyb3VwRWxlbWVudCkKLQogfSAvL25hbWVz
cGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAppbmRl
eCA2NDdkMDFlLi42NTRlZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVu
dC5oCkBAIC04Nyw4ICs4Nyw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU2VsZWN0ZWQ7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9wdGlvbkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaAppbmRleCA0ZTgx
ZDJkLi5lZDliNGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaApAQCAt
NDMsOCArNDMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0
dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxQYXJhbUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCmluZGV4
IGVlZGI4ODAuLmM3ZmQ5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5oCkBAIC02Nyw4ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAgUHJvZ3Jlc3NWYWx1ZUVsZW1l
bnQqIG1fdmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFByb2dyZXNzRWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmgKaW5kZXggYjg1MDFiNC4uNjhkOTZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuaApAQCAtNjcsOCArNjcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxk
cmVuKCkgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFNjcmlwdEVsZW1lbnQp
Ci0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmgKaW5kZXggZmE5Y2JlNDcuLjI3ZmVmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmgKQEAgLTIxMiw4ICsyMTIsNiBAQCBwcml2YXRlOgogICAgIG11dGFi
bGUgYm9vbCBtX3Nob3VsZFJlY2FsY0xpc3RJdGVtczsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MU2VsZWN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKaW5kZXggNTU1ODc1Yy4uNTIyZDc0MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKQEAgLTU3LDggKzU3LDYgQEAgcHJp
dmF0ZToKICAgICBUaW1lcjxIVE1MU291cmNlRWxlbWVudD4gbV9lcnJvckV2ZW50VGltZXI7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFNvdXJjZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCmluZGV4IDk5NTdi
YTUuLjkxZjBiN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCkBAIC03
MCw4ICs3MCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xvYWRlZFNoZWV0OwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxTdHlsZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAppbmRleCBmYmFiY2RlLi5i
YzIyODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKQEAgLTQ2
LDggKzQ2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVy
cmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU3VtbWFyeUVsZW1lbnQpCi0KIH0KIAog
I2VuZGlmIC8vIEhUTUxTdW1tYXJ5RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUNhcHRpb25FbGVtZW50LmgKaW5kZXggZjA2NGUyOC4uOTA0YzMyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaApAQCAtNDEsOCArNDEs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11
dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MVGFibGVDYXB0aW9uRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCmluZGV4IGM5NzY4ZWIuLjNjY2U4MWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCkBAIC0xMDEsOCArMTAxLDYgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVzPiBtX3NoYXJlZENlbGxTdHlsZTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaAppbmRl
eCAzMzhiODc5Li5jNGIwZjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZVJvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0Vs
ZW1lbnQuaApAQCAtNTIsOCArNTIsNiBAQCBwcml2YXRlOgogICAgIEhUTUxUYWJsZVJvd0VsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTFRhYmxlUm93RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCmluZGV4IGQ3ZmY5NTEuLmM4MWY3
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC01Niw4
ICs1Niw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8VGVtcGxhdGVDb250ZW50RG9j
dW1lbnRGcmFnbWVudD4gbV9jb250ZW50OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUZW1w
bGF0ZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShURU1QTEFURV9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaAppbmRleCBhODAxZjk5Li5iZWRkMGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaApAQCAtMTI2LDggKzEyNiw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJs
ZSBib29sIG1fd2FzTW9kaWZpZWRCeVVzZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRl
eHRBcmVhRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGl0bGVFbGVtZW50LmgKaW5kZXggZWJlMWQzYy4uNWRlMWViNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgKQEAgLTQ2LDggKzQ2LDYgQEAgcHJpdmF0ZToKICAg
ICBTdHJpbmdXaXRoRGlyZWN0aW9uIG1fdGl0bGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TFRpdGxlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggODMxNzE3Yi4uNTI2ZGMwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTk0LDggKzk0LDYgQEAgcHJpdmF0ZToKICAg
ICBUaW1lcjxIVE1MVHJhY2tFbGVtZW50PiBtX2xvYWRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MVHJhY2tFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuaAppbmRleCBjNGQ0ZjlkLi43NmYwMTY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtMTAyLDggKzEwMiw2IEBAIHByaXZhdGU6CiAgICAg
QXRvbWljU3RyaW5nIG1fZGVmYXVsdFBvc3RlclVSTDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MVmlkZW9FbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggZmQ3ZTkyMy4uMzc4
NjU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCkBAIC0yMDEwLDcgKzIwMTAsNyBAQCBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6c2NyaXB0
VmFsdWVBc05vZGUoRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgdmFsdWUpCiAgICAgaWYgKCF2YWx1
ZS5pc09iamVjdCgpIHx8IHZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIHJldHVybiB0b05vZGUodmFsdWUuanNWYWx1ZSgpKTsKKyAgICByZXR1cm4gSlNOb2Rl
Ojp0b0ltcGwodmFsdWUuanNWYWx1ZSgpKTsKIH0KIAogRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUg
SW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVBc1NjcmlwdFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSwgTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxN
ZW5jbG9zZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVs
ZW1lbnQuaAppbmRleCBkYzY5YzExLi5lZTk3MzM1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzUmFkaWNhbFZhbHVlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKE1hdGhNTE1l
bmNsb3NlRWxlbWVudCkKLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKE1BVEhNTCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaAppbmRleCBhY2IyZjM1Li5jNjNlMzQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCkBAIC0zOCw4
ICszOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR0FsdEdseXBoRGVmRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAppbmRleCA1MDk1YWI1Li42YmU5Zjc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHBy
aXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR0FsdEdseXBoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oCmlu
ZGV4IDgyNDljYjguLmM3YWZlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bHRHbHlwaEl0ZW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBo
SXRlbUVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdBbHRHbHlwaEl0ZW1FbGVtZW50KQot
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVN
b3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuaAppbmRleCAzNjY3ODE0Li40MTdkNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuaApAQCAtNzAsOCArNzAsNiBAQCBwcml2YXRlOgogICAgIFBh
dGggbV9wYXRoOwogICAgIFBhdGggbV9hbmltYXRpb25QYXRoOwogfTsKLQotTk9ERV9UWVBFX0NB
U1RTKFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50KQogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5o
CmluZGV4IGJkY2ZmNzAuLmIxYTQ0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCkBAIC00Nyw4ICs0Nyw2IEBAIHByaXZhdGU6CiAgICAg
U1ZHVHJhbnNmb3JtOjpTVkdUcmFuc2Zvcm1UeXBlIG1fdHlwZTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDaXJjbGVFbGVtZW50LmgKaW5kZXggMDc5ZmE5OS4uZWMxODJkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAg
RU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R0NpcmNsZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNW
R0NpcmNsZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQ
YXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCmlu
ZGV4IDhmZGViMDIuLjkzOGNmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
bGlwUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVt
ZW50LmgKQEAgLTU2LDggKzU2LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ2xpcFBhdGhFbGVtZW50KQot
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKaW5kZXggYTUz
MDFlNC4uZWEyMjNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCkBAIC03
Miw4ICs3Miw2IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxTVkdFbGVtZW50Kj4gbV9jbGllbnRz
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0N1cnNvckVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxsaXBzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5o
CmluZGV4IGQ2YjIwZjYuLjViOWY5MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxl
bWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0VsbGlwc2VFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oCmluZGV4IDc5OWY2ZDUuLjYwZWE0NDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmgKQEAgLTM0LDgg
KzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxp
Z2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVE
aXN0YW50TGlnaHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaAppbmRleCAzMWViYjRmLi5hNGU2YWQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBA
QCBwcml2YXRlOgogICAgIFNWR0ZFRnVuY0FFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFRnVuY0FFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5j
QkVsZW1lbnQuaAppbmRleCAzNWJjNDQ4Li5hZjQ5ZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVGdW5jQkVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR0ZFRnVu
Y0JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR0ZFRnVuY0JFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaAppbmRleCAzOTg1N2Vk
Li4xYWZhNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaApAQCAtMzMs
OCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR0ZFRnVuY0dFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFRnVuY0dFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVGdW5jUkVsZW1lbnQuaAppbmRleCA5ZTczMjdjLi5iMGQwZWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAg
IFNWR0ZFRnVuY1JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFRnVuY1JFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVy
Z2VOb2RlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oCmluZGV4IDUxNTk3ZWIuLjcyMzNmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVN
ZXJnZU5vZGVFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVD
TEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmgKaW5kZXggYjcwMWJlNS4uMzQ1
NzkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCkBA
IC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPExpZ2h0U291
cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKaW5kZXggODAz
OWFmMi4uZmY2YjQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1l
bnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxM
aWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhTVkdGRVNwb3RMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAppbmRleCA4ZWE3M2Zi
Li4xOTM5ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKQEAgLTc1LDgg
Kzc1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRmlsdGVyRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKaW5kZXggOGU0Mjc0ZC4uZWI1YzQ2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKQEAgLTEwMiw4ICsxMDIsNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9pc0dseXBoQ2FjaGVWYWxpZDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdG
b250RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAppbmRleCA2
YTIxMTZhLi5kY2QwMWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5o
CkBAIC02Niw4ICs2Niw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRm9udEVsZW1lbnQqIG1fZm9udEVs
ZW1lbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgKaW5kZXggM2YyNTQ0NS4uYzY4
NWY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCkBA
IC0zOSw4ICszOSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKaW5kZXggM2IwOTE0Yy4uYmE1YTY0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaApAQCAtNDAsOCArNDAsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdGb250RmFjZVNyY0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VVcmlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VV
cmlFbGVtZW50LmgKaW5kZXggMTg5YTc4OS4uMzUwZjFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaApAQCAtNTAsOCArNTAsNiBAQCBwcml2YXRlOgogICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IG1fY2FjaGVkRm9udDsKIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhTVkdGb250RmFjZVVyaUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCmluZGV4IDc1YmI3NGIuLmFiNGQxYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCkBAIC01OCw4ICs1
OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dseXBoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCmlu
ZGV4IDdiN2QzOGEuLjQwMDlmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
bHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgK
QEAgLTU3LDggKzU3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGludmFsaWRhdGVHbHlwaENhY2hl
KCk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHR2x5cGhFbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCmluZGV4IDZkOGNhYzcuLjQ2NGZlZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKQEAgLTYxLDggKzYxLDYgQEAgcHJpdmF0
ZToKICAgICBmbG9hdCBtX2R5OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0dseXBoUmVmRWxl
bWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdI
S2VybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaAppbmRl
eCBlNWQ4Yjc4Zi4uMWMxOWUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hL
ZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaApA
QCAtNDIsOCArNDIsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdIS2VybkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VF
bGVtZW50LmgKaW5kZXggMWEzNjFjNS4uMTc2NzYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFn
ZUVsZW1lbnQuaApAQCAtNzIsOCArNzIsNiBAQCBwcml2YXRlOgogICAgIFNWR0ltYWdlTG9hZGVy
IG1faW1hZ2VMb2FkZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHSW1hZ2VFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuaAppbmRleCA2NGU3ODYzLi41M2ZlYWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuaApAQCAtNTUsOCArNTUsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdMaW5lRWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAppbmRleCA2OGFjNmI4Li40NmQ5MmRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCkBAIC01NCw4ICs1
NCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaApp
bmRleCA5NzMyNjQ4Li4xYmU2NGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TVBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5o
CkBAIC02OCw4ICs2OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJP
UEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01QYXRoRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHTVBhdGhFbGVtZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDFiOTMwZTYuLmI1MjJjYjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaApAQCAtMTY0LDggKzE2NCw2IEBAIHByaXZhdGU6
CiAgICAgbXV0YWJsZSBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHk8U1ZHTWFya2Vy
T3JpZW50VHlwZT4gbV9vcmllbnRUeXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01hcmtl
ckVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCmlu
ZGV4IGY1MGE5NDYuLjIyZWRkYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCkBA
IC02OCw4ICs2OCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lz
dGVtTGFuZ3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1
YWdlKHRoaXMpOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTWFza0VsZW1lbnQpCi0KIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaApp
bmRleCBmNTYzN2VlLi45NGE0MjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5n
R2x5cGhFbGVtZW50LmgKQEAgLTM2LDggKzM2LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTWlzc2luZ0dseXBoRWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKaW5kZXggMDIxYjZmMS4uYjY0YjRjNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKQEAgLTEyOSw4ICsxMjksNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc0FuaW1WYWxPYnNlcnZlZDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdQYXRoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKaW5kZXggMjJjN2MyMC4uNDkyY2Q2OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKQEAgLTg2LDggKzg2LDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSgpIG92ZXJy
aWRlIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7IH0KIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdQYXR0ZXJuRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29u
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmgKaW5kZXgg
YTYyZGUyMC4uZDkwZGRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHln
b25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmgK
QEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdQb2x5Z29uRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdQb2x5
Z29uRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAppbmRleCA0YjVlODQxLi5hMDkxZWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHBy
aXZhdGU6CiAgICAgU1ZHUG9seWxpbmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1BvbHlsaW5lRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuaAppbmRleCBlNTZmYjJmLi4xMmJmNGVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCkBAIC01Niw4ICs1Niw2
IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
ZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKaW5kZXgg
NzJlYjg3NS4uM2NlZThkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKQEAgLTU4
LDggKzU4LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVT
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUmVjdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAppbmRleCBlZmI0
MmVkLi4yNzgyMjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKQEAgLTE3NSw4ICsx
NzUsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTVkdWaWV3U3BlYz4gbV92aWV3U3BlYzsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTVkdFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggNTcy
Zjc5ZC4uOWFjZGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC04
Niw4ICs4Niw2IEBAIHByaXZhdGU6CiAgICAgVGltZXI8U1ZHRWxlbWVudD4gbV9zdmdMb2FkRXZl
bnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTY3JpcHRFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0b3BFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQu
aAppbmRleCBkODc5YjRlLi43ZGEzN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RvcEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQu
aApAQCAtNDksOCArNDksNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTdG9wRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQu
aAppbmRleCA2YTkxZTM4Li4xZTczMTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3R5bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVu
dC5oCkBAIC02OCw4ICs2OCw2IEBAIHByaXZhdGU6CiAgICAgVGltZXI8U1ZHRWxlbWVudD4gbV9z
dmdMb2FkRXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTdHlsZUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR1N0eWxlRWxlbWVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCmluZGV4IGE4YzBiNzIuLjQzMDg0ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYp
IGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1RleHRFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRQYXRoRWxlbWVudC5oCmluZGV4IDBhNGZmNjcuLmYyNDRiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBwcml2YXRlOgogICAg
IEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdUZXh0UGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKaW5kZXggYzg0YTYwMy4uMDc1YjIzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaApAQCAtNDAsOCArNDAsNiBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdUaXRs
ZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuaAppbmRleCAzZjEwZWU5Li5iNzMyZjE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmgKQEAgLTEyOCw4ICsxMjgsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNW
R0VsZW1lbnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
VXNlRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWS2VybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQu
aAppbmRleCBjZTg4ZGU1Li4xODBiYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVktlcm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVu
dC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1ZLZXJuRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdFbGVtZW50LmgKaW5kZXggMjUxZDczMC4uNGI0NGQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Zp
ZXdFbGVtZW50LmgKQEAgLTY1LDggKzY1LDYgQEAgcHJpdmF0ZToKICAgICBTVkdTdHJpbmdMaXN0
IG1fdmlld1RhcmdldDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdWaWV3RWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dl
YkRPTU9wZXJhdGlvbnMubW0KaW5kZXggZTRmYjc2Ni4uMTA1NGRiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KQEAgLTc0LDcgKzc0LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7CiAgICAg
SlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7Ci0gICAgcmV0dXJuIGtpdCh0b0VsZW1lbnQodG9KUyhl
eGVjLCB2YWx1ZSkpKTsKKyAgICByZXR1cm4ga2l0KEpTRWxlbWVudDo6dG9JbXBsKHRvSlMoZXhl
YywgdmFsdWUpKSk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpp
bmRleCBhNmYzYjU0Li45Y2U2MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CkBAIC04NjIxLDcgKzg2MjEsNyBAQCBzdGF0aWMgdm9pZCBnbGliQ29udGV4dEl0ZXJhdGlvbkNh
bGxiYWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eQogewogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAg
SlNDb250ZXh0UmVmIGNvbnRleHQgPSBbW3NlbGYgbWFpbkZyYW1lXSBnbG9iYWxDb250ZXh0XTsK
LSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90aWZpY2F0aW9u
KHRvSlModG9KUyhjb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAgICBXZWJDb3JlOjpOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IEpTTm90aWZpY2F0aW9uOjp0b0ltcGwodG9KUyh0b0pT
KGNvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJO
b3RpZmljYXRpb25DbGllbnQqPihOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9tKF9w
cml2YXRlLT5wYWdlKSktPm5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhub3RpZmljYXRpb24pOwog
I2Vsc2UKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGUuY3BwCmluZGV4IGNkZGRjODEuLjA0NWE2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhh
bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcApAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMg
RE9NSGFuZGxlQ2FjaGUmIGRvbUhhbmRsZUNhY2hlKCkKIAogUGFzc1JlZlB0cjxJbmplY3RlZEJ1
bmRsZU5vZGVIYW5kbGU+IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUoSlND
b250ZXh0UmVmLCBKU09iamVjdFJlZiBvYmplY3QpCiB7Ci0gICAgTm9kZSogbm9kZSA9IHRvTm9k
ZSh0b0pTKG9iamVjdCkpOworICAgIE5vZGUqIG5vZGUgPSBKU05vZGU6OnRvSW1wbCh0b0pTKG9i
amVjdCkpOwogICAgIHJldHVybiBnZXRPckNyZWF0ZShub2RlKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAppbmRleCBmNjMzOTFiLi42NWY4
ZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNw
cApAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgRE9NSGFuZGxlQ2FjaGUmIGRvbUhhbmRsZUNhY2hl
KCkKIAogUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiBJbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVj
dCkKIHsKLSAgICBSYW5nZSogcmFuZ2UgPSB0b1JhbmdlKHRvSlMob2JqZWN0KSk7CisgICAgUmFu
Z2UqIHJhbmdlID0gSlNSYW5nZTo6dG9JbXBsKHRvSlMob2JqZWN0KSk7CiAgICAgcmV0dXJuIGdl
dE9yQ3JlYXRlKHJhbmdlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAxYTY3Mjdi
Li5iNjRlODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTk3LDcgKzU5Nyw3IEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKFdl
YlBhZ2UqIHBhZ2UpCiB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZTo6d2ViTm90aWZpY2F0aW9uSUQo
SlNDb250ZXh0UmVmIGpzQ29udGV4dCwgSlNWYWx1ZVJlZiBqc05vdGlmaWNhdGlvbikKIHsKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQot
ICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gdG9Ob3RpZmljYXRpb24o
dG9KUyh0b0pTKGpzQ29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CisgICAgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBKU05vdGlmaWNhdGlvbjo6dG9JbXBsKHRvSlModG9K
Uyhqc0NvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOwogICAgIGlmICghbm90aWZpY2F0aW9uKQog
ICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkuc3VwcGxl
bWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpLT5ub3RpZmljYXRpb25JREZvclRlc3Rpbmco
bm90aWZpY2F0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238265</attachid>
            <date>2014-09-17 14:37:32 -0700</date>
            <delta_ts>2014-09-17 14:51:58 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>136839_generate_cast_helpers_wip1.patch</filename>
            <type>text/plain</type>
            <size>129870</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5tbQppbmRleCAzNjlhYmIxLi4zZGJmZGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tCkBAIC0yMTMsNyArMjEzLDcgQEAgYm9vbCBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QqIHJvb3QpCiAgICAgLy8g
R2V0IHRoZSA8dmlkZW8+IGNyZWF0ZWQgdG8gcmVwbGFjZSB0aGUgcGx1Zy1pbi4KICAgICBKU0M6
OkpTVmFsdWUgdmFsdWUgPSByZXBsYWNlbWVudC5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4
ZWMsICJ2aWRlbyIpKTsKICAgICBpZiAoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpICYmICF2YWx1ZS5p
c1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICBtX21lZGlhRWxlbWVudCA9IHRvSFRNTFZpZGVv
RWxlbWVudCh2YWx1ZSk7CisgICAgICAgIG1fbWVkaWFFbGVtZW50ID0gSlNIVE1MVmlkZW9FbGVt
ZW50Ojp0b0ltcGwodmFsdWUpOwogCiAgICAgaWYgKCFtX21lZGlhRWxlbWVudCkgewogICAgICAg
ICBMT0coUGx1Z2lucywgIiVwIC0gRmFpbGVkIHRvIGZpbmQgPHZpZGVvPiBlbGVtZW50IGNyZWF0
ZWQgYnkgUXVpY2tUaW1lIHBsdWdpbiByZXBsYWNlbWVudCBzY3JpcHQuIiwgdGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IGIxM2ZhYTIuLjZkYjlkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CkBAIC03Nyw2ICs3Nyw3IEBAIF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLN0NHUG9pbnQK
IF9fWk43V2ViQ29yZTEwRmxvYXRQb2ludEMxRVJLTlNfOEludFBvaW50RQogX19aTjdXZWJDb3Jl
MTBGb250R2x5cGhzMTVyZWxlYXNlRm9udERhdGFFdgogX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50
NnNfaW5mb0UKK19fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDVzY2FsZUVmCiBfX1pON1dlYkNvcmUxMExheW91dFJl
Y3Q1dW5pdGVFUktTMF8KIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdEMxRVJLTlNfOUZsb2F0UmVj
dEUKQEAgLTEyNCw3ICsxMjUsNiBAQCBfX1pON1dlYkNvcmUxMFRpbWVSYW5nZXNDMUVkZAogX19a
TjdXZWJDb3JlMTBkZWxldGVGaWxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBmaWxl
RXhpc3RzRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTBzZXRDb29raWVzRVBOU184RG9j
dW1lbnRFUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMTB0b0RvY3VtZW50
RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlMTNnZXRDR0ltYWdlUmVm
RXYKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2VDMUVQN0NHSW1hZ2VQTlNfMTNJbWFnZU9ic2Vy
dmVyRQogX19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZUMxRVBOU18xM0ltYWdlT2JzZXJ2ZXJFCkBA
IC02NjcsNyArNjY3LDYgQEAgX19aTjdXZWJDb3JlMTVvcmlnaW5hbFVSTERhdGFFUDVOU1VSTAog
X19aTjdXZWJDb3JlMTVwYXRoR2V0RmlsZU5hbWVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxNXJlcG9ydEV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVQTlNfMTJD
YWNoZWRTY3JpcHRFCiBfX1pON1dlYkNvcmUxNXNldERPTUV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0
YXRlRWkKLV9fWk43V2ViQ29yZTE1dG9ET01TdHJpbmdMaXN0RVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTV2aXNpdGVkTGlua0hhc2hFUEt0agogX19aTjdXZWJD
b3JlMTV2aXNpdGVkTGlua0hhc2hFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNkFwcGxp
Y2F0aW9uQ2FjaGUxOGRpc2tVc2FnZUZvck9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKQEAg
LTEyNDIsNiArMTI0MSw3IEBAIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29tbWFuZEVSS04zV1RGNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29weVVSTEVSS05TXzNVUkxFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yN291dGRlbnRFdgogX19aTjdXZWJDb3JlNkpTTm9kZTZz
X2luZm9FCitfX1pON1dlYkNvcmU2SlNOb2RlNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdX
ZWJDb3JlNkxlbmd0aEMxRU4zV1RGN1Bhc3NSZWZJTlNfMTZDYWxjdWxhdGlvblZhbHVlRUVFCiBf
X1pON1dlYkNvcmU2UmVnaW9uMjF1cGRhdGVCb3VuZHNGcm9tU2hhcGVFdgogX19aTjdXZWJDb3Jl
NlJlZ2lvbjV1bml0ZUVSS1MwXwpAQCAtMTI1OSw3ICsxMjU5LDYgQEAgX19aTjdXZWJDb3JlNldp
ZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBhcmVudEVQTlNfMTBTY3Jv
bGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2ViQ29yZTZ0b0ludDhFUE4z
SlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3Vy
YXRpb25FCi1fX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3
RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VTNF9SaQogX19aTjdX
ZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUVSS04zV1RG
MTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxlbWVudDE2Y3JlYXRlU2hhZG93Um9vdEVS
aQpAQCAtMTI3Myw2ICsxMjcyLDcgQEAgX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzEwTGF5
b3V0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19aTjdX
ZWJDb3JlN0ludFNpemVDMUVSSzZDR1NpemUKIF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUktOU185
RmxvYXRTaXplRQorX19aTjdXZWJDb3JlN0pTUmFuZ2U2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBf
X1pON1dlYkNvcmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRpbmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3
VGV4dFJ1bjIxc19hbGxvd3NSb3VuZGluZ0hhY2tzRQogX19aTjdXZWJDb3JlN1RleHRSdW4yMnNl
dEFsbG93c1JvdW5kaW5nSGFja3NFYgpAQCAtMTI4MSw3ICsxMjgxLDYgQEAgX19aTjdXZWJDb3Jl
N2pzQXJyYXlFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1dURjEw
UGFzc1JlZlB0ckkKIF9fWk43V2ViQ29yZTdtYWtlUkdCRWlpaQogX19aTjdXZWJDb3JlN3RvSW50
MTZFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNv
bmZpZ3VyYXRpb25FCiBfX1pON1dlYkNvcmU3dG9JbnQ2NEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83
SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKLV9fWk43V2ViQ29y
ZTd0b1JhbmdlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3dG9VSW50OEVQTjNKU0M5RXhl
Y1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUK
IF9fWk43V2ViQ29yZThCbG9iRGF0YTE0c2V0Q29udGVudFR5cGVFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmU4Q1NTVmFsdWU3ZGVzdHJveUV2CkBAIC0xNDk1LDYgKzE0OTQsNyBAQCBfX1pO
N1dlYkNvcmU5SW5saW5lQm94MTRkaXJ0eUxpbmVCb3hlc0V2CiBfX1pON1dlYkNvcmU5SW5saW5l
Qm94MTRzZWxlY3Rpb25TdGF0ZUV2CiBfX1pON1dlYkNvcmU5SW5saW5lQm94MTZwbGFjZUVsbGlw
c2lzQm94RWJmZmZSZlJiCiBfX1pON1dlYkNvcmU5SlNFbGVtZW50NnNfaW5mb0UKK19fWk43V2Vi
Q29yZTlKU0VsZW1lbnQ2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU5TGF5ZXJQ
b29sQzFFdgogX19aTjdXZWJDb3JlOUxheWVyUG9vbEQxRXYKIF9fWk43V2ViQ29yZTlQYWdlQ2Fj
aGUxMXNldENhcGFjaXR5RWkKQEAgLTE1MzUsNyArMTUzNSw2IEBAIF9fWk43V2ViQ29yZTlmb250
Q2FjaGVFdgogX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRVMy
XwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5cGxhaW5UZXh0RVBLTlNf
NVJhbmdlRXRiCi1fX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dl
YkNvcmU5dW5pb25SZWN0RVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFJlY3RFTG0wRU5TMF8xNUNy
YXNoT25PdmVyZmxvd0VFRQogX19aTkszSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxP
YmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3JlYXRlQ0ZTdHJpbmdFdgpAQCAtMzI1Nyw3ICsz
MjU2LDcgQEAgX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVudEV2
CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjhmaW5hbGl6ZUV2CiBfX1pON1dlYkNvcmUxMk5v
dGlmaWNhdGlvbkMxRXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uRDFFdgotX19aTjdXZWJD
b3JlMTR0b05vdGlmaWNhdGlvbkVOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTRKU05vdGlm
aWNhdGlvbjZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE5cHJvdmlkZU5vdGlm
aWNhdGlvbkVQTlNfNFBhZ2VFUE5TXzE4Tm90aWZpY2F0aW9uQ2xpZW50RQogX19aTjdXZWJDb3Jl
MjJOb3RpZmljYXRpb25Db250cm9sbGVyMTBjbGllbnRGcm9tRVBOU180UGFnZUUKICNlbmRpZgpA
QCAtMzM2OSw3ICszMzY4LDcgQEAgX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxNmhhbmRsZVRv
dWNoRXZlbnRFUktOU18xOFBsYXRmb3JtVG91Y2hFdmVudEUKICNpZiBFTkFCTEUoVklERU8pCiAu
b2JqY19jbGFzc19uYW1lX1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIKIF9fWk43V2ViQ29y
ZTEwVGltZVJhbmdlczNhZGRFZGQKLV9fWk43V2ViQ29yZTEydG9UaW1lUmFuZ2VzRU4zSlNDN0pT
VmFsdWVFCitfX1pON1dlYkNvcmUxMkpTVGltZVJhbmdlczZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDEyZW5kU2NydWJiaW5nRXYKIF9fWk43V2Vi
Q29yZTE2SFRNTE1lZGlhRWxlbWVudDE0YmVnaW5TY3J1YmJpbmdFdgogX19aTjdXZWJDb3JlMTZI
VE1MTWVkaWFFbGVtZW50MTRleGl0RnVsbHNjcmVlbkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAK
aW5kZXggZTZiNTA2NC4uYWJiMDA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcApAQCAtNDEs
NyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OnNldEJ1ZmZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAg
QXVkaW9CdWZmZXIqIGJ1ZmZlciA9IHRvQXVkaW9CdWZmZXIodmFsdWUpOworICAgIEF1ZGlvQnVm
ZmVyKiBidWZmZXIgPSBKU0F1ZGlvQnVmZmVyOjp0b0ltcGwodmFsdWUpOwogICAgIGlmICghYnVm
ZmVyKSB7CiAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlVHlw
ZUVycm9yKGV4ZWMsICJWYWx1ZSBpcyBub3Qgb2YgdHlwZSBBdWRpb0J1ZmZlciIpKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9i
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAK
aW5kZXggMjkzYWZiMy4uMDZhOTEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCbG9iQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jsb2JDdXN0b20uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU0Jsb2IoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgYmxv
YkJ1aWxkZXIuYXBwZW5kKGFycmF5QnVmZmVyKTsKICAgICAgICAgZWxzZSBpZiAoUmVmUHRyPEFy
cmF5QnVmZmVyVmlldz4gYXJyYXlCdWZmZXJWaWV3ID0gdG9BcnJheUJ1ZmZlclZpZXcoaXRlbSkp
CiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYXJyYXlCdWZmZXJWaWV3LnJlbGVhc2Uo
KSk7Ci0gICAgICAgIGVsc2UgaWYgKEJsb2IqIGJsb2IgPSB0b0Jsb2IoaXRlbSkpCisgICAgICAg
IGVsc2UgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvSW1wbChpdGVtKSkKICAgICAgICAgICAg
IGJsb2JCdWlsZGVyLmFwcGVuZChibG9iKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBT
dHJpbmcgc3RyaW5nID0gaXRlbS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1
c3RvbS5jcHAKaW5kZXggNzk1NDhlOC4uZjJmZmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9tLmNwcApAQCAt
MTEzLDcgKzExMyw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQSUhvc3Q6OmdldEV2ZW50TGlz
dGVuZXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFs
dWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgTm9kZSog
bm9kZSA9IHRvTm9kZSh2YWx1ZSk7CisgICAgTm9kZSogbm9kZSA9IEpTTm9kZTo6dG9JbXBsKHZh
bHVlKTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCkBA
IC0xNDksNyArMTQ5LDcgQEAgSlNWYWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6ZGF0YWJhc2VJ
ZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCiAjaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSB0b0RhdGFiYXNl
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSBK
U0RhdGFiYXNlOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChk
YXRhYmFzZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGltcGwoKS5k
YXRhYmFzZUlkSW1wbChkYXRhYmFzZSkpOwogI2VuZGlmCkBAIC0xNjIsNyArMTYyLDcgQEAgSlNW
YWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3RvcmFnZUlkKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAKLSAgICBTdG9yYWdlKiBzdG9yYWdlID0gdG9TdG9yYWdlKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBTdG9yYWdlKiBzdG9yYWdlID0gSlNTdG9yYWdlOjp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChzdG9yYWdlKQogICAgICAgICBy
ZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUoZXhlYywgaW1wbCgpLnN0b3JhZ2VJZEltcGwoc3RvcmFn
ZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1E
YXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFD
dXN0b20uY3BwCmluZGV4IDMxYjE4MGIuLmU5ZTBiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCkBAIC00MSw5ICs0MSw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhU
TUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIEhUTUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnRPck51bGwoSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewotICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiAwOworICAgIHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6
aW5mbygpKSA/ICZqc0Nhc3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5p
bXBsKCkgOiBudWxscHRyOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRlKiBleGVjKQpAQCAtNTIsNyArNTIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTRE9NRm9ybURhdGEoRXhlY1N0YXRl
KiBleGVjKQogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gMDsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpID4gMCkKLSAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50KGV4
ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50T3JOdWxs
KGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBSZWZQdHI8RE9NRm9ybURhdGE+IGRvbUZvcm1EYXRh
ID0gRE9NRm9ybURhdGE6OmNyZWF0ZShmb3JtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGRvbUZv
cm1EYXRhLmdldCgpKSkpOwogfQpAQCAtNjYsNyArNjYsNyBAQCBKU1ZhbHVlIEpTRE9NRm9ybURh
dGE6OmFwcGVuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWU7
CiAgICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDMgJiYgIWV4ZWMtPmFy
Z3VtZW50KDIpLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICAgICAgZmlsZW5hbWUg
PSBleGVjLT5hcmd1bWVudCgyKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgICAg
ICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIHRvQmxvYih2YWx1ZSksIGZpbGVuYW1lKTsKKyAgICAg
ICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwgSlNCbG9iOjp0b0ltcGwodmFsdWUpLCBmaWxlbmFt
ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChuYW1lLCB2YWx1
ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCmluZGV4IDIzMzM3
YjIuLmFkM2FjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
U3RyaW5nTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01TdHJpbmdMaXN0Q3VzdG9tLmNwcApAQCAtMjUsNyArMjUsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
dG9ET01TdHJpbmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gSlNET01TdHJpbmdMaXN0Ojp0b0ltcGwoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU0RPTVN0cmluZ0xp
c3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTRE9NU3RyaW5nTGlzdCo+KGFz
T2JqZWN0KHZhbHVlKSktPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA1ZjNiNTE3Li5lODRkM2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02ODQs
NyArNjg0LDcgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLURPTVdpbmRvdyog
dG9ET01XaW5kb3coSlNWYWx1ZSB2YWx1ZSkKK0RPTVdpbmRvdyogSlNET01XaW5kb3c6OnRvSW1w
bChKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcApp
bmRleCAxYWYwMjZkLi5kMzBiMjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGljdGlvbmFyeS5jcHAKQEAgLTE1NSwyMiArMTU1LDIyIEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8U2VyaWFs
aXplCiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPERPTVdpbmRvdz4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RP
TVdpbmRvdyh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNET01XaW5kb3c6OnRvSW1wbCh2YWx1ZSk7
CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPEV2ZW50VGFyZ2V0PiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRv
RXZlbnRUYXJnZXQodmFsdWUpOworICAgIHJlc3VsdCA9IEpTRXZlbnRUYXJnZXQ6OnRvSW1wbCh2
YWx1ZSk7CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwg
SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE5vZGU+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9O
b2RlKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU05vZGU6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZv
aWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPFN0b3JhZ2U+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9TdG9yYWdlKHZhbHVl
KTsKKyAgICByZXN1bHQgPSBKU1N0b3JhZ2U6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBN
ZXNzYWdlUG9ydEFycmF5JiByZXN1bHQpCkBAIC0yMjIsMzEgKzIyMiwzMSBAQCB2b2lkIEpTRGlj
dGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVl
LCBSZWZQdHI8VWludAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBS
ZWZQdHI8TWVkaWFLZXlFcnJvcj4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhS2V5
RXJyb3IodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFLZXlFcnJvcjo6dG9JbXBsKHZhbHVl
KTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgSlNEaWN0aW9u
YXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJl
ZlB0cjxNZWRpYVN0cmVhbT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhU3RyZWFt
KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhU3RyZWFtOjp0b0ltcGwodmFsdWUpOwogfQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mIHJlc3VsdCkKIHsKLSAgICBy
ZXN1bHQgPSB0b01lZGlhU3RyZWFtVHJhY2sodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFT
dHJlYW1UcmFjazo6dG9JbXBsKHZhbHVlKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKEZPTlRf
TE9BRF9FVkVOVFMpCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYgcmVzdWx0
KQogewotICAgIHJlc3VsdCA9IHRvQ1NTRm9udEZhY2VSdWxlKHZhbHVlKTsKKyAgICByZXN1bHQg
PSBKU0NTU0ZvbnRGYWNlUnVsZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPERPTUVycm9yPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvRE9NRXJyb3IodmFsdWUp
OworICAgIHJlc3VsdCA9IEpTRE9NRXJyb3I6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCkKQEAgLTI2MSw3ICsyNjEsNyBA
QCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cgogI2lmIEVOQUJMRShHQU1FUEFEKQogdm9pZCBKU0Rp
Y3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1
ZSwgUmVmUHRyPEdhbWVwYWQ+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9HYW1lcGFkKHZh
bHVlKTsKKyAgICByZXN1bHQgPSBKU0dhbWVwYWQ6OnRvSW1wbCh2YWx1ZSk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcApp
bmRleCBmYTI0NDQzLi4zYjhhOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIEpTVmFsdWUgSlNEb2N1
bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBSZWZQdHI8VG91Y2hM
aXN0PiB0b3VjaExpc3QgPSBUb3VjaExpc3Q6OmNyZWF0ZSgpOwogCiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBleGVjLT5hcmd1bWVudENvdW50KCk7IGkrKykKLSAgICAgICAgdG91Y2hMaXN0
LT5hcHBlbmQodG9Ub3VjaChleGVjLT5hcmd1bWVudChpKSkpOworICAgICAgICB0b3VjaExpc3Qt
PmFwcGVuZChKU1RvdWNoOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoaSkpKTsKIAogICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCB0b3VjaExpc3QucmVsZWFzZSgpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAK
aW5kZXggNTIxMGYxMi4uZjU0YTU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXZl
bnRUYXJnZXQqIHRhcmcKICAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlMjI2ludGVyZmFjZU5hbWU6
OmluZm8oKSkpICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuICZqc0Nhc3Q8
SlMjI2ludGVyZmFjZU5hbWUqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCk7CiAKLUV2ZW50VGFy
Z2V0KiB0b0V2ZW50VGFyZ2V0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK0V2ZW50VGFyZ2V0KiBKU0V2
ZW50VGFyZ2V0Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIFRSWV9UT19VTldS
QVBfV0lUSF9JTlRFUkZBQ0UoRE9NV2luZG93U2hlbGwpCiAgICAgVFJZX1RPX1VOV1JBUF9XSVRI
X0lOVEVSRkFDRShFdmVudFRhcmdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V4Y2VwdGlvbkJhc2UuY3BwCmluZGV4IGJkZTI1YjAuLmY2MjYyZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcApAQCAtNDEsMjAgKzQxLDIw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRXhjZXB0aW9uQmFzZSogdG9FeGNlcHRpb25CYXNl
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoRE9NQ29yZUV4Y2VwdGlvbiogZG9tRXhj
ZXB0aW9uID0gdG9ET01Db3JlRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoRE9NQ29yZUV4Y2Vw
dGlvbiogZG9tRXhjZXB0aW9uID0gSlNET01Db3JlRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQog
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4oZG9tRXhjZXB0
aW9uKTsKLSAgICBpZiAoUmFuZ2VFeGNlcHRpb24qIHJhbmdlRXhjZXB0aW9uID0gdG9SYW5nZUV4
Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFJhbmdlRXhjZXB0aW9uKiByYW5nZUV4Y2VwdGlvbiA9
IEpTUmFuZ2VFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihyYW5nZUV4Y2VwdGlvbik7Ci0gICAgaWYgKEV2ZW50
RXhjZXB0aW9uKiBldmVudEV4Y2VwdGlvbiA9IHRvRXZlbnRFeGNlcHRpb24odmFsdWUpKQorICAg
IGlmIChFdmVudEV4Y2VwdGlvbiogZXZlbnRFeGNlcHRpb24gPSBKU0V2ZW50RXhjZXB0aW9uOjp0
b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25C
YXNlKj4oZXZlbnRFeGNlcHRpb24pOwotICAgIGlmIChYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiog
eG1sSHR0cEV4Y2VwdGlvbiA9IHRvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24odmFsdWUpKQorICAg
IGlmIChYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiogeG1sSHR0cEV4Y2VwdGlvbiA9IEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPih4bWxIdHRwRXhjZXB0aW9uKTsKLSAgICBpZiAoU1ZH
RXhjZXB0aW9uKiBzdmdFeGNlcHRpb24gPSB0b1NWR0V4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYg
KFNWR0V4Y2VwdGlvbiogc3ZnRXhjZXB0aW9uID0gSlNTVkdFeGNlcHRpb246OnRvSW1wbCh2YWx1
ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihzdmdF
eGNlcHRpb24pOwotICAgIGlmIChYUGF0aEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlvbiA9IHRvWFBh
dGhFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChYUGF0aEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlv
biA9IEpTWFBhdGhFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihwYXRoRXhjZXB0aW9uKTsKICNpZiBFTkFCTEUo
U1FMX0RBVEFCQVNFKQotICAgIGlmIChTUUxFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSB0b1NR
TEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFNRTEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlvbiA9
IEpTU1FMRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4ocGF0aEV4Y2VwdGlvbik7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1c3Rv
bS5jcHAKaW5kZXggMWQ0MGM2MC4uYmZjMWRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwCkBAIC00MCw3ICs0
MCw3IEBAIHZvaWQgSlNIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKEV4ZWNTdGF0ZSos
IEpTVmFsdWUgdmFsdWUpCiAgICAgLy8gT24gc2V0dGluZywgaXQgbXVzdCBmaXJzdCByZW1vdmUg
dGhlIGVsZW1lbnQncyBtZWRpYWdyb3VwIGF0dHJpYnV0ZSwgaWYgYW55LCAKICAgICBpbXBsKCku
c2V0TWVkaWFHcm91cChTdHJpbmcoKSk7CiAgICAgLy8gYW5kIHRoZW4gc2V0IHRoZSBjdXJyZW50
IG1lZGlhIGNvbnRyb2xsZXIgdG8gdGhlIGdpdmVuIHZhbHVlLgotICAgIGltcGwoKS5zZXRDb250
cm9sbGVyKHRvTWVkaWFDb250cm9sbGVyKHZhbHVlKSk7CisgICAgaW1wbCgpLnNldENvbnRyb2xs
ZXIoSlNNZWRpYUNvbnRyb2xsZXI6OnRvSW1wbCh2YWx1ZSkpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlv
bkN1c3RvbS5jcHAKaW5kZXggNzRhNTg2Ny4uNzFmM2RkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9t
LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjppbmRl
eFNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbAogSlNWYWx1ZSBK
U0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBIVE1M
T3B0aW9uc0NvbGxlY3Rpb24mIGltcCA9IGltcGwoKTsKLSAgICBIVE1MT3B0aW9uRWxlbWVudCog
b3B0aW9uID0gdG9IVE1MT3B0aW9uRWxlbWVudChleGVjLT5hcmd1bWVudCgwKSk7CisgICAgSFRN
TE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbChleGVj
LT5hcmd1bWVudCgwKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIGltcC5hZGQob3B0aW9uLCBlYyk7CkBAIC04
MSw3ICs4MSw3IEBAIEpTVmFsdWUgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OnJlbW92ZShFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgLy8gVGhlIGFyZ3VtZW50IGNhbiBiZSBhbiBIVE1MT3B0aW9u
RWxlbWVudCBvciBhbiBpbmRleC4KICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gZXhlYy0+YXJndW1l
bnQoMCk7Ci0gICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSB0b0hUTUxPcHRpb25F
bGVtZW50KGFyZ3VtZW50KSkKKyAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpT
SFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbChhcmd1bWVudCkpCiAgICAgICAgIGltcGwoKS5yZW1v
dmUob3B0aW9uKTsKICAgICBlbHNlCiAgICAgICAgIGltcGwoKS5yZW1vdmUoYXJndW1lbnQudG9J
bnQzMihleGVjKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDQzZjY5NGIuLmRkZDA5MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1l
bnRDdXN0b20uY3BwCkBAIC00Myw3ICs0Myw3IEBAIEpTVmFsdWUgSlNIVE1MU2VsZWN0RWxlbWVu
dDo6cmVtb3ZlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMs
IGVjKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBUaGUgSFRNTFNlbGVjdEVsZW1lbnQ6OnJl
bW92ZSgpIGZ1bmN0aW9uIGNhbiB0YWtlIGVpdGhlciBhbiBvcHRpb24gb2JqZWN0IG9yIHRoZSBp
bmRleCBvZiBhbiBvcHRpb24uCi0gICAgICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9u
ID0gdG9IVE1MT3B0aW9uRWxlbWVudChleGVjLT5hcmd1bWVudCgwKSkpCisgICAgICAgIGlmIChI
VE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBsKGV4
ZWMtPmFyZ3VtZW50KDApKSkKICAgICAgICAgICAgIHNlbGVjdC5yZW1vdmUob3B0aW9uKTsKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgc2VsZWN0LnJlbW92ZUJ5SW5kZXgoZXhlYy0+YXJndW1l
bnQoMCkudG9JbnQzMihleGVjKSk7CkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgc2VsZWN0SW5kZXhT
ZXR0ZXIoSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkCiAgICAgICAgIHNlbGVjdC0+cmVtb3ZlQnlJbmRleChpbmRleCk7CiAgICAgZWxzZSB7
CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBIVE1MT3B0aW9uRWxlbWVu
dCogb3B0aW9uID0gdG9IVE1MT3B0aW9uRWxlbWVudCh2YWx1ZSk7CisgICAgICAgIEhUTUxPcHRp
b25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwodmFsdWUpOwog
ICAgICAgICBpZiAoIW9wdGlvbikKICAgICAgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7
CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAppbmRleCBmNGI1NTVmLi5mNTc0
MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZy
b250ZW5kSG9zdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgSlNWYWx1
ZSBKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV4ZWNTdGF0ZSogZXhl
YykKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMikKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgRXZlbnQqIGV2ZW50
ID0gdG9FdmVudChleGVjLT5hcmd1bWVudCgwKSk7CisgICAgRXZlbnQqIGV2ZW50ID0gSlNFdmVu
dDo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKTsKIAogICAgIEpTQXJyYXkqIGFycmF5ID0gYXNB
cnJheShleGVjLT5hcmd1bWVudCgxKSk7CiAgICAgQ29udGV4dE1lbnUgbWVudTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAppbmRl
eCBiYTllM2NjLi45YmIzZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBKU0M6
OkpTVmFsdWUgaGFuZGxlSW5pdE1lc3NhZ2VFdmVudChKU01lc3NhZ2VFdmVudCoganNFdmVudCwg
SlNDOjpFeGVjU3RhCiAgICAgYm9vbCBjYW5jZWxhYmxlQXJnID0gZXhlYy0+YXJndW1lbnQoMiku
dG9Cb29sZWFuKGV4ZWMpOwogICAgIGNvbnN0IFN0cmluZyBvcmlnaW5BcmcgPSBleGVjLT5hcmd1
bWVudCg0KS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgY29uc3QgU3RyaW5nIGxh
c3RFdmVudElkQXJnID0gZXhlYy0+YXJndW1lbnQoNSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpOwotICAgIERPTVdpbmRvdyogc291cmNlQXJnID0gdG9ET01XaW5kb3coZXhlYy0+YXJndW1l
bnQoNikpOworICAgIERPTVdpbmRvdyogc291cmNlQXJnID0gSlNET01XaW5kb3c6OnRvSW1wbChl
eGVjLT5hcmd1bWVudCg2KSk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0QXJyYXk+
IG1lc3NhZ2VQb3J0czsKICAgICBPd25QdHI8QXJyYXlCdWZmZXJBcnJheT4gYXJyYXlCdWZmZXJz
OwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoNykuaXNVbmRlZmluZWRPck51bGwoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcApp
bmRleCA3NWFiZTE4Li45NDZmZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcApAQCAtODQsNyArODQsNyBAQCB2b2lkIGZpbGxN
ZXNzYWdlUG9ydEFycmF5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUs
IE1lc3NhZ2VQb3J0QQogICAgICAgICB9CiAKICAgICAgICAgLy8gVmFsaWRhdGlvbiBvZiBPYmpl
Y3RzIGltcGxlbWVudGluZyBhbiBpbnRlcmZhY2UsIHBlciBXZWJJREwgc3BlYyA0LjEuMTUuCi0g
ICAgICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydCA9IHRvTWVzc2FnZVBvcnQodmFsdWUpOwor
ICAgICAgICBSZWZQdHI8TWVzc2FnZVBvcnQ+IHBvcnQgPSBKU01lc3NhZ2VQb3J0Ojp0b0ltcGwo
dmFsdWUpOwogICAgICAgICBpZiAocG9ydCkgewogICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGR1
cGxpY2F0ZSBwb3J0cy4KICAgICAgICAgICAgIGlmIChwb3J0QXJyYXkuY29udGFpbnMocG9ydCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IGQz
NjI0ZTEuLmRkN2IyMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGJvb2wgSlNOb2RlT3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2CiBKU1Zh
bHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLmluc2VydEJlZm9yZSh0b05vZGUo
ZXhlYy0+YXJndW1lbnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7CisgICAg
Ym9vbCBvayA9IGltcGwoKS5pbnNlcnRCZWZvcmUoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1l
bnQoMCkpLCBKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKICAgICBzZXRE
T01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMt
PmFyZ3VtZW50KDApOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjppbnNlcnRC
ZWZvcmUoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU05vZGU6OnJlcGxhY2VDaGlsZChFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9
IGltcGwoKS5yZXBsYWNlQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4
ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBsKCkucmVwbGFjZUNoaWxk
KEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgSlNOb2RlOjp0b0ltcGwoZXhlYy0+
YXJndW1lbnQoMSkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBp
ZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgxKTsKQEAgLTE1NSw3ICsxNTUs
NyBAQCBKU1ZhbHVlIEpTTm9kZTo6cmVwbGFjZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFs
dWUgSlNOb2RlOjpyZW1vdmVDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcGwoKS5yZW1vdmVDaGlsZCh0b05vZGUoZXhl
Yy0+YXJndW1lbnQoMCkpLCBlYyk7CisgICAgYm9vbCBvayA9IGltcGwoKS5yZW1vdmVDaGlsZChK
U05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50
KDApOwpAQCAtMTY1LDcgKzE2NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjpyZW1vdmVDaGlsZChFeGVj
U3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTTm9kZTo6YXBwZW5kQ2hpbGQoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkuYXBw
ZW5kQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOworICAgIGJvb2wgb2sgPSBp
bXBsKCkuYXBwZW5kQ2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpLCBlYyk7
CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJl
dHVybiBleGVjLT5hcmd1bWVudCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCmluZGV4IDI4YzE2YzEuLjRlMTQ3ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApAQCAt
MzUsNyArMzUsNyBAQCB2b2lkIEpTTm9kZUZpbHRlcjo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4o
SlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3QoJmlt
cGwoKSk7CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpTQzo6Vk0m
IHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCitQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IEpTTm9kZUZp
bHRlcjo6dG9JbXBsKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYg
KHZhbHVlLmluaGVyaXRzKEpTTm9kZUZpbHRlcjo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuICZK
U0M6OmpzQ2FzdDxKU05vZGVGaWx0ZXIqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAK
aW5kZXggZjQwNWEwMy4uNjg4MGEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIEpTVmFs
dWUgSlNTdWJ0bGVDcnlwdG86OmVuY3J5cHQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0
b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0
b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgx
KSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsK
IApAQCAtMTk3LDcgKzE5Nyw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmRlY3J5cHQoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1w
bChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtMjQ4LDcgKzI0OCw3IEBAIEpTVmFsdWUg
SlNTdWJ0bGVDcnlwdG86OnNpZ24oRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0
b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4g
a2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAg
ICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAt
Mjk5LDcgKzI5OSw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OnZlcmlmeShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0
cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRo
cm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC02MDAsNyArNjAwLDcgQEAgSlNWYWx1ZSBKU1N1YnRs
ZUNyeXB0bzo6ZXhwb3J0S2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9L
ZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtl
eSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAg
IGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTYz
MCwxMSArNjMwLDExIEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OndyYXBLZXkoRXhlY1N0YXRl
KiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQ
dHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgx
KSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVj
LT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihleGVjKTsKIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IHdyYXBwaW5nS2V5
ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJlZlB0cjxD
cnlwdG9LZXk+IHdyYXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgyKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVF
cnJvcihleGVjKTsKIApAQCAtNzEzLDcgKzcxMyw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86
OnVud3JhcEtleShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IHVud3JhcHBpbmdLZXkgPSB0b0NyeXB0
b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4g
dW53cmFwcGluZ0tleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMikpOwogICAgIGlmICghdW53cmFwcGluZ0tleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKGV4ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggYzVmMjE2MS4uZmU1
MWZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIEpTVmFs
dWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyhFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQgPSBpbXBsKCk7Ci0gICAg
V2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkpOworICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQcm9ncmFtOjp0
b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJvZ3JhbSAmJiAh
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAg
cmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIFZlY3RvcjxSZWZQdHI8V2ViR0xTaGFk
ZXI+PiBzaGFkZXJzOwpAQCAtMzQxLDcgKzM0MSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0g
aW1wbCgpOwotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dl
YkdMUHJvZ3JhbTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAo
IXByb2dyYW0gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxs
KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICB1bnNpZ25lZCBw
bmFtZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CkBAIC0zNjks
NyArMzY5LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVyUGFy
YW1ldGVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRl
eHQgPSBpbXBsKCk7CiAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVm
aW5lZE9yTnVsbCgpICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pbmhlcml0cyhKU1dl
YkdMU2hhZGVyOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7
Ci0gICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IHRvV2ViR0xTaGFkZXIoZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMCkpOworICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSBKU1dlYkdMU2hhZGVyOjp0
b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIHVuc2lnbmVkIHBuYW1lID0g
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtNDA1LDEw
ICs0MDUsMTAgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0VW5pZm9ybShF
eGVjU3RhdGUqIGV4ZWMpCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJl
bmRlcmluZ0NvbnRleHQmIGNvbnRleHQgPSBpbXBsKCk7Ci0gICAgV2ViR0xQcm9ncmFtKiBwcm9n
cmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQcm9ncmFtOjp0b0ltcGwoZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJvZ3JhbSAmJiAhZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKGV4ZWMpOwotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xV
bmlmb3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFdlYkdMVW5p
Zm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvSW1wbChl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMSkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJu
IHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIFdlYkdMR2V0SW5mbyBpbmZvID0gY29udGV4dC5n
ZXRVbmlmb3JtKHByb2dyYW0sIGxvY2F0aW9uLCBlYyk7CkBAIC00NzgsNyArNDc4LDcgQEAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgV2UKICAgICBsb25nIGluZGV4ID0gLTE7CiAgICAgCiAgICAgaWYg
KGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkgewotICAgICAgICBsb2NhdGlvbiA9IHRvV2ViR0xVbmlm
b3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgICAgICBsb2NhdGlv
biA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CiAgICAgICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJy
b3IoZXhlYyk7CiAgICAgfSBlbHNlCkBAIC01NjQsNyArNTY0LDcgQEAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgV2UKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpICE9IDIpCiAgICAgICAgIHJl
dHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGV4ZWMpKTsKIAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9
IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAg
IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246
OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAm
JiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAKQEAgLTYyNCw3ICs2MjQsNyBAQCBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJpeChEYXRhRnVuY3Rpb25NYXRyaXhU
b0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0g
MykKICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRp
b24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgwKSk7CisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVu
aWZvcm1Mb2NhdGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBp
ZiAoIWxvY2F0aW9uICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9y
TnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAK
aW5kZXggYzllZGNmYS4uZjlhZTE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTE0OCwxMSArMTQ4LDExIEBA
IEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdDo6c2VuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYg
KHZhbC5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBpbXBsKCkuc2VuZChlYyk7CiAgICAg
ZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTRG9jdW1lbnQ6OmluZm8oKSkpCi0gICAgICAgIGltcGwo
KS5zZW5kKHRvRG9jdW1lbnQodmFsKSwgZWMpOworICAgICAgICBpbXBsKCkuc2VuZChKU0RvY3Vt
ZW50Ojp0b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0Jsb2I6
OmluZm8oKSkpCi0gICAgICAgIGltcGwoKS5zZW5kKHRvQmxvYih2YWwpLCBlYyk7CisgICAgICAg
IGltcGwoKS5zZW5kKEpTQmxvYjo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwu
aW5oZXJpdHMoSlNET01Gb3JtRGF0YTo6aW5mbygpKSkKLSAgICAgICAgaW1wbCgpLnNlbmQodG9E
T01Gb3JtRGF0YSh2YWwpLCBlYyk7CisgICAgICAgIGltcGwoKS5zZW5kKEpTRE9NRm9ybURhdGE6
OnRvSW1wbCh2YWwpLCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTQXJyYXlCdWZm
ZXI6OmluZm8oKSkpCiAgICAgICAgIGltcGwoKS5zZW5kKHRvQXJyYXlCdWZmZXIodmFsKSwgZWMp
OwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0FycmF5QnVmZmVyVmlldzo6aW5mbygpKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAKaW5kZXggMjhmMjJkYS4uNzBlOTIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC03ODQsMTIgKzc4
NCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHdyaXRlKG9iai0+aW50ZXJuYWxWYWx1
ZSgpLmFzTnVtYmVyKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgaWYgKEZpbGUqIGZpbGUgPSB0b0ZpbGUob2JqKSkgeworICAgICAg
ICAgICAgaWYgKEZpbGUqIGZpbGUgPSBKU0ZpbGU6OnRvSW1wbChvYmopKSB7CiAgICAgICAgICAg
ICAgICAgd3JpdGUoRmlsZVRhZyk7CiAgICAgICAgICAgICAgICAgd3JpdGUoZmlsZSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
RmlsZUxpc3QqIGxpc3QgPSB0b0ZpbGVMaXN0KG9iaikpIHsKKyAgICAgICAgICAgIGlmIChGaWxl
TGlzdCogbGlzdCA9IEpTRmlsZUxpc3Q6OnRvSW1wbChvYmopKSB7CiAgICAgICAgICAgICAgICAg
d3JpdGUoRmlsZUxpc3RUYWcpOwogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxp
c3QtPmxlbmd0aCgpOwogICAgICAgICAgICAgICAgIHdyaXRlKGxlbmd0aCk7CkBAIC03OTcsNyAr
Nzk3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgd3JpdGUobGlzdC0+aXRlbShp
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAoQmxvYiogYmxvYiA9IHRvQmxvYihvYmopKSB7CisgICAgICAgICAgICBpZiAoQmxv
YiogYmxvYiA9IEpTQmxvYjo6dG9JbXBsKG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShC
bG9iVGFnKTsKICAgICAgICAgICAgICAgICBtX2Jsb2JVUkxzLmFwcGVuZChibG9iLT51cmwoKSk7
CiAgICAgICAgICAgICAgICAgd3JpdGUoYmxvYi0+dXJsKCkpOwpAQCAtODA1LDcgKzgwNSw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgd3JpdGUoYmxvYi0+c2l6ZSgpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChJbWFn
ZURhdGEqIGRhdGEgPSB0b0ltYWdlRGF0YShvYmopKSB7CisgICAgICAgICAgICBpZiAoSW1hZ2VE
YXRhKiBkYXRhID0gSlNJbWFnZURhdGE6OnRvSW1wbChvYmopKSB7CiAgICAgICAgICAgICAgICAg
d3JpdGUoSW1hZ2VEYXRhVGFnKTsKICAgICAgICAgICAgICAgICB3cml0ZShkYXRhLT53aWR0aCgp
KTsKICAgICAgICAgICAgICAgICB3cml0ZShkYXRhLT5oZWlnaHQoKSk7CkBAIC04NjUsNyArODY1
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VzczsKICAgICAgICAg
ICAgIH0KICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSAgICAgICAgICAgIGlmIChDcnlwdG9L
ZXkqIGtleSA9IHRvQ3J5cHRvS2V5KG9iaikpIHsKKyAgICAgICAgICAgIGlmIChDcnlwdG9LZXkq
IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRl
KENyeXB0b0tleVRhZyk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNlcmlhbGl6
ZWRLZXk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZHVtbXlCbG9iVVJMczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
aW5kZXggOGQ1NGRhMS4uNDlhYTk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTg3NCw2ICs4NzQsMTcgQEAgc3ViIEdl
bmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCop
O1xuIik7CiAgICAgfQogCisgICAgIyBKU1ZhbHVlIHRvIGltcGxlbWVudGF0aW9uIHR5cGUKKyAg
ICBpZiAoISRoYXNQYXJlbnQgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpT
R2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSB7CisgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiTm9kZUZpbHRlciIpIHsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9JbXBsKEpTQzo6Vk0mLCBKU0M6OkpTVmFs
dWUpO1xuIik7CisgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01TdHJpbmdM
aXN0IikgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgUGFz
c1JlZlB0cjxET01TdHJpbmdMaXN0PiB0b0ltcGwoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUpO1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHN0YXRpYyAkaW1wbFR5cGUqIHRvSW1wbChKU0M6OkpTVmFsdWUpO1xuIik7Cisg
ICAgICAgIH0KKyAgICB9CisKICAgICAkaGVhZGVyVHJhaWxpbmdJbmNsdWRlc3siJHtjbGFzc05h
bWV9Q3VzdG9tLmgifSA9IDEgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpT
Q3VzdG9tSGVhZGVyIn07CiAKICAgICBteSAkbmFtZWRHZXR0ZXJGdW5jdGlvbiA9IEdldE5hbWVk
R2V0dGVyRnVuY3Rpb24oJGludGVyZmFjZSk7CkBAIC0xMTY2LDE1ICsxMTc3LDYgQEAgc3ViIEdl
bmVyYXRlSGVhZGVyCiAgICAgaWYgKFNob3VsZEdlbmVyYXRlVG9KU0RlY2xhcmF0aW9uKCRoYXNQ
YXJlbnQsICRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJXRUJD
T1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiwgJGltcGxUeXBlKik7XG4iKTsKICAgICB9Ci0gICAgaWYgKCEkaGFzUGFyZW50IHx8
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmpl
Y3QifSkgewotICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGVGaWx0ZXIiKSB7Ci0g
ICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0
b05vZGVGaWx0ZXIoSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7XG4iKTsKLSAgICAgICAgfSBlbHNp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0cmluZ0xpc3QiKSB7Ci0gICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiB0b0RPTVN0cmluZ0xp
c3QoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpO1xuIik7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiV0VCQ09SRV9FWFBPUlQgJGltcGxU
eXBlKiB0byR7aW50ZXJmYWNlTmFtZX0oSlNDOjpKU1ZhbHVlKTtcbiIpOwotICAgICAgICB9Ci0g
ICAgfQogICAgIGlmICgkdXNlc1RvSlNOZXdseUNyZWF0ZWR7JGludGVyZmFjZU5hbWV9KSB7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRl
ZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGludGVyZmFjZU5hbWUqKTtc
biIpOwogICAgIH0KQEAgLTMxMTIsNyArMzExNCw3IEBAIEVORAogICAgIH0KIAogICAgIGlmICgo
ISRoYXNQYXJlbnQgb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJh
dGVUb05hdGl2ZU9iamVjdCJ9KSBhbmQgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJKU0N1c3RvbVRvTmF0aXZlT2JqZWN0In0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIkaW1wbFR5cGUqIHRvJHtpbnRlcmZhY2VOYW1lfShKU0M6OkpTVmFsdWUgdmFsdWUpXG4iKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIkaW1wbFR5cGUqICR7Y2xhc3NOYW1lfTo6dG9J
bXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoYXV0byogd3JhcHBl
ciA9ICIgLiBHZXRDYXN0aW5nSGVscGVyRm9yVGhpc09iamVjdCgkaW50ZXJmYWNlKSAuICIodmFs
dWUpKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gJndy
YXBwZXItPmltcGwoKTtcbiIpOwpAQCAtMzI0Myw3ICszMjQ1LDcgQEAgc3ViIEdlbmVyYXRlUGFy
YW1ldGVyc0NoZWNrCiAKICAgICAgICAgaWYgKCRhcmdUeXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIi
KSB7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUmVmUHRyPFhQYXRoTlNS
ZXNvbHZlcj4gY3VzdG9tUmVzb2x2ZXI7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBYUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyID0gdG9YUGF0aE5TUmVzb2x2ZXIo
ZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgWFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlciA9IEpTWFBhdGhOU1Jlc29s
dmVyOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCFyZXNvbHZlcikge1xuIik7CiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGN1c3RvbVJlc29sdmVyID0gSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZShleGVjLCBleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4
KSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSlcbiIpOwpAQCAtMzI5Niw3ICszMjk4LDcgQEAg
c3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGZvciAodW5zaWduZWQgaSA9ICRhcmdzSW5kZXgsIGNvdW50ID0gZXhlYy0+
YXJndW1lbnRDb3VudCgpOyBpIDwgY291bnQ7ICsraSkge1xuIik7CiAgICAgICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KGkpLmluaGVyaXRzKEpTJHthcmdUeXBlfTo6aW5mbygpKSlcbiIpOwogICAgICAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlw
ZUVycm9yKCpleGVjLCBpLCBcIiRuYW1lXCIsIFwiJGludGVyZmFjZU5hbWVcIiwgJHF1b3RlZEZ1
bmN0aW9uTmFtZSwgXCIkYXJnVHlwZVwiKTtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICAgICAgJG5hbWUuYXBwZW5kKHRvJGFyZ1R5cGUoZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoaSkpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICAgICAgJG5hbWUuYXBwZW5kKEpTJHthcmdUeXBlfTo6dG9JbXBsKGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KGkpKSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgfVxuIikKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIFZlY3RvcjwkbmF0aXZlRWxlbWVudFR5cGU+ICRuYW1lID0g
dG9OYXRpdmVBcmd1bWVudHM8JG5hdGl2ZUVsZW1lbnRUeXBlPihleGVjLCAkYXJnc0luZGV4KTtc
biIpOwpAQCAtMzg0OSw3ICszODUxLDcgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogCiAgICAgaWYg
KCR0eXBlIGVxICJOb2RlRmlsdGVyIikgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMk
dHlwZS5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgcmV0dXJuICJ0byR0eXBlKGV4ZWMtPnZt
KCksICR2YWx1ZSkiOworICAgICAgICByZXR1cm4gIkpTJHt0eXBlfTo6dG9JbXBsKGV4ZWMtPnZt
KCksICR2YWx1ZSkiOwogICAgIH0KIAogICAgIGlmICgkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlw
dFZhbHVlIikgewpAQCAtMzg4MSw3ICszODgzLDcgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAg
IGlmICgkYXJyYXlPclNlcXVlbmNlVHlwZSkgewogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PklzUmVmUHRyVHlwZSgkYXJyYXlPclNlcXVlbmNlVHlwZSkpIHsKICAgICAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJKUyR7YXJyYXlPclNlcXVlbmNlVHlwZX0uaCIpOwotICAgICAgICAgICAg
cmV0dXJuICIodG9SZWZQdHJOYXRpdmVBcnJheTwke2FycmF5T3JTZXF1ZW5jZVR5cGV9LCBKUyR7
YXJyYXlPclNlcXVlbmNlVHlwZX0+KGV4ZWMsICR2YWx1ZSwgJnRvJHthcnJheU9yU2VxdWVuY2VU
eXBlfSkpIjsKKyAgICAgICAgICAgIHJldHVybiAiKHRvUmVmUHRyTmF0aXZlQXJyYXk8JHthcnJh
eU9yU2VxdWVuY2VUeXBlfSwgSlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9PihleGVjLCAkdmFsdWUs
ICZKUyR7YXJyYXlPclNlcXVlbmNlVHlwZX06OnRvSW1wbCkpIjsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gInRvTmF0aXZlQXJyYXk8IiAuIEdldE5hdGl2ZVZlY3RvcklubmVyVHlwZSgkYXJy
YXlPclNlcXVlbmNlVHlwZSkgLiAiPihleGVjLCAkdmFsdWUpIjsKICAgICB9CkBAIC0zODkyLDcg
KzM4OTQsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAKICAgICAjIERlZmF1bHQsIGFzc3VtZSBh
dXRvZ2VuZXJhdGVkIHR5cGUgY29udmVyc2lvbiByb3V0aW5lcwogICAgIEFkZFRvSW1wbEluY2x1
ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwpOwotICAgIHJldHVybiAidG8kdHlwZSgkdmFs
dWUpIjsKKyAgICByZXR1cm4gIkpTJHt0eXBlfTo6dG9JbXBsKCR2YWx1ZSkiOwogfQogCiBzdWIg
TmF0aXZlVG9KU1ZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDcx
OTM4ZmIuLmExNjExNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0y
MTQsNyArMjE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RBY3RpdmVE
T01PYmplY3RQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3QKICAgICBUZXN0QWN0aXZlRE9N
T2JqZWN0JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBOb2RlKiBuZXh0Q2hpbGQodG9Ob2Rl
KGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgTm9kZSogbmV4dENoaWxkKEpTTm9kZTo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBpbXBsLmV4Y2l0aW5nRnVuY3Rpb24obmV4dENoaWxkKTsKQEAgLTI4OSw3ICsyODksNyBAQCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRlc3RBY3RpdmVETwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVz
dEFjdGl2ZURPTU9iamVjdD4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEFjdGl2ZURP
TU9iamVjdCogdG9UZXN0QWN0aXZlRE9NT2JqZWN0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RB
Y3RpdmVET01PYmplY3QqIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6dG9JbXBsKEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
QWN0aXZlRE9NT2JqZWN0Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCA1NWMyZWY5Li5lZTY2NDYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90
eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RBY3Rp
dmVET01PYmplY3QqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpT
Qzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEFjdGl2ZURPTU9iamVjdCgpOwpAQCAtOTMsNyArOTQs
NiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwg
VGVzdEFjdGl2ZURPTU9iamVjdCopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0QWN0aXZlRE9NT2Jq
ZWN0Kik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0QWN0aXZlRE9NT2JqZWN0KiB0b1Rlc3RBY3RpdmVE
T01PYmplY3QoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAppbmRleCA1NjhjOWRlLi5hZTE3MWNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBA
QCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFRlc3RDdXN0b21OYQogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIqIHRvVGVzdEN1c3RvbU5hbWVkR2V0dGVyKEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKK1Rlc3RDdXN0b21OYW1lZEdldHRlciogSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OnRvSW1w
bChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4odmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXgg
MWViMzVkOC4uMTIxOWI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKQEAg
LTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0
ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKKyAgICBzdGF0aWMgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b0ltcGwoSlNDOjpKU1ZhbHVl
KTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwpAQCAtOTcsNyArOTgs
NiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwg
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDdXN0b21OYW1l
ZEdldHRlciopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b1Rlc3RD
dXN0b21OYW1lZEdldHRlcihKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCA4ZWFmYTA3Li40ZWU3
ZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0yOTIsNyArMjky
LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBUZXN0RXZlbnRDb24KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBl
cjxKU1Rlc3RFdmVudENvbnN0cnVjdG9yPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0
RXZlbnRDb25zdHJ1Y3RvciogdG9UZXN0RXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUgdmFs
dWUpCitUZXN0RXZlbnRDb25zdHJ1Y3RvciogSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6dG9JbXBs
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3
cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAppbmRleCA1YmJl
ZWM4Li5iM2UyOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKQEAgLTQwLDYg
KzQwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBzdGF0aWMgVGVzdEV2ZW50Q29uc3RydWN0b3IqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAg
IHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0RXZlbnRDb25z
dHJ1Y3RvcigpOwogCkBAIC05Myw3ICs5NCw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4
dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0RXZlbnRDb25zdHJ1Y3RvciopCiB9CiAKIFdF
QkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqLCBUZXN0RXZlbnRDb25zdHJ1Y3RvciopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEV2
ZW50Q29uc3RydWN0b3IqIHRvVGVzdEV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlKTsKIAog
Ym9vbCBmaWxsVGVzdEV2ZW50Q29uc3RydWN0b3JJbml0KFRlc3RFdmVudENvbnN0cnVjdG9ySW5p
dCYsIEpTRGljdGlvbmFyeSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCBkYjMz
M2QyLi5lNzc2Y2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKQEAgLTI5NCw3ICsyOTQs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90
eXBlRnVuY3Rpb25EaXNwYXRjaEV2ZW50KEV4ZQogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBF
dmVudCogZXZ0KHRvRXZlbnQoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBFdmVudCogZXZ0KEpT
RXZlbnQ6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xlYW4oaW1wbC5kaXNwYXRjaEV2
ZW50KGV2dCwgZWMpKTsKQEAgLTM2NCw3ICszNjQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RFdmVudFRh
cgogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV2ZW50VGFyZ2V0PihnbG9iYWxP
YmplY3QsIGltcGwpOwogfQogCi1UZXN0RXZlbnRUYXJnZXQqIHRvVGVzdEV2ZW50VGFyZ2V0KEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RFdmVudFRhcmdldCogSlNUZXN0RXZlbnRUYXJnZXQ6OnRv
SW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndy
YXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggZWIwYTJkOS4uZDVhMTVl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUo
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEV2ZW50VGFy
Z2V0KiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6
OkpTQ2VsbCopOwpAQCAtMTAxLDcgKzEwMiw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4
dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0RXZlbnRUYXJnZXQqKQogfQogCiBXRUJDT1JF
X0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiwgVGVzdEV2ZW50VGFyZ2V0Kik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0RXZlbnRUYXJnZXQq
IHRvVGVzdEV2ZW50VGFyZ2V0KEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAppbmRleCA0YWRlNzZlLi5jMDJjN2U5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV4Y2Vw
dGlvCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXhjZXB0aW9uPihnbG9iYWxP
YmplY3QsIGltcGwpOwogfQogCi1UZXN0RXhjZXB0aW9uKiB0b1Rlc3RFeGNlcHRpb24oSlNDOjpK
U1ZhbHVlIHZhbHVlKQorVGVzdEV4Y2VwdGlvbiogSlNUZXN0RXhjZXB0aW9uOjp0b0ltcGwoSlND
OjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RFeGNlcHRpb24qPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1w
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV4Y2VwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCmluZGV4IDM5ODQ1NzQuLjIzNjBhOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhj
ZXB0aW9uLmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEV4Y2VwdGlvbiogdG9JbXBsKEpTQzo6SlNW
YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0RXhj
ZXB0aW9uKCk7CkBAIC05NCw3ICs5NSw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChE
T01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0RXhjZXB0aW9uKikKIH0KIAogV0VCQ09SRV9FWFBP
UlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCos
IFRlc3RFeGNlcHRpb24qKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RFeGNlcHRpb24qIHRvVGVzdEV4
Y2VwdGlvbihKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCA0MjdhYmE4Li5lYmE5Zjdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCkBAIC0yMTEsNyAr
MjExLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0R2VuZXJhdGUKICAgICByZXR1cm4gY3JlYXRlTmV3V3Jh
cHBlcjxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQog
Ci1UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogdG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZShKU0M6
OkpTVmFsdWUgdmFsdWUpCitUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byog
d3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSo+KHZhbHVl
KSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUuaAppbmRleCBkZjdiZGRiLi42ZWQzNWJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlND
OjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3ko
SlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSgpOwogCkBAIC05
MSw3ICs5Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQm
IHdvcmxkLCBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZSopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUqIHRvVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGIxNDNjYzQuLjlh
MWJmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC03MjQsNyArNzI0LDcgQEAgdm9pZCBz
ZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBiYXNlT2JqZWN0LCBFbmMKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0SW50ZXJm
YWNlJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIE5vZGUqIG5hdGl2ZVZhbHVlKHRv
Tm9kZSh2YWx1ZSkpOworICAgIE5vZGUqIG5hdGl2ZVZhbHVlKEpTTm9kZTo6dG9JbXBsKHZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0
dXJuOwogICAgIGltcGwuc2V0SW1wbGVtZW50c05vZGUobmF0aXZlVmFsdWUpOwpAQCAtNzk1LDcg
Kzc5NSw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBOb2Rl
KiBuYXRpdmVWYWx1ZSh0b05vZGUodmFsdWUpKTsKKyAgICBOb2RlKiBuYXRpdmVWYWx1ZShKU05v
ZGU6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybjsKICAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50
YWxOb2RlKCZpbXBsLCBuYXRpdmVWYWx1ZSk7CkBAIC04NDEsNyArODQxLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxl
bWVudHNNZXRob2QyKEUKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgw
KS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0
T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiog
b2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2Fz
dGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwuaW1wbGVtZW50c01ldGhv
ZDIoc2NyaXB0Q29udGV4dCwgc3RyQXJnLCBvYmpBcmcsIGVjKSkpOwpAQCAtOTA3LDcgKzkwNyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QyCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhl
Yy0+YXJndW1lbnQoMCkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgwKS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSkpOwor
ICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSkp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0
b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihUZXN0U3Vw
cGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2QyKCZpbXBsLCBzY3JpcHRDb250ZXh0LCBzdHJB
cmcsIG9iakFyZywgZWMpKSk7CkBAIC05NzMsNyArOTczLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0SW50
ZXJmYWMKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RJbnRlcmZhY2U+KGdsb2Jh
bE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RJbnRlcmZhY2UqIHRvVGVzdEludGVyZmFjZShKU0M6
OkpTVmFsdWUgdmFsdWUpCitUZXN0SW50ZXJmYWNlKiBKU1Rlc3RJbnRlcmZhY2U6OnRvSW1wbChK
U0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdEludGVyZmFjZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5p
bXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggN2RkOGQwMy4uMWE0NzQ3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0SW50ZXJmYWNlKiB0b0ltcGwoSlNDOjpK
U1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwog
ICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBib29sIHNob3VsZFRocm93KTsK
QEAgLTEyMCw3ICsxMjEsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCwgVGVzdEludGVyZmFjZSopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0SW50
ZXJmYWNlKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0SW50ZXJmYWNlKiB0b1Rlc3RJbnRlcmZhY2Uo
SlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggM2U5MzExZS4uZWIxNmIzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMjI3
LDcgKzIyNyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE1lZGlhUXVlCiAgICAgcmV0dXJuIGNyZWF0ZU5l
d1dyYXBwZXI8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4oZ2xvYmFsT2JqZWN0LCBpbXBs
KTsKIH0KIAotVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIq
IEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggNTU3MzVl
Yi4uN2M4NjU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
CkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBj
cmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CisgICAgc3RhdGljIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0b0ltcGwoSlND
OjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAg
fkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxp
bmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0
b1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IDc1
NDZkY2MuLjc3Zjk3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAg
LTI4MSw3ICsyODEsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROYW1lZENvbgogICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPEpTVGVzdE5hbWVkQ29uc3RydWN0b3I+KGdsb2JhbE9iamVjdCwgaW1wbCk7
CiB9CiAKLVRlc3ROYW1lZENvbnN0cnVjdG9yKiB0b1Rlc3ROYW1lZENvbnN0cnVjdG9yKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKK1Rlc3ROYW1lZENvbnN0cnVjdG9yKiBKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKj4odmFsdWUpKQogICAgICAg
ICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5o
CmluZGV4IGVjZTk4ODcuLjk2MTdjODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3Iu
aApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Y3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyBUZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9JbXBsKEpTQzo6SlNW
YWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rl
c3ROYW1lZENvbnN0cnVjdG9yKCk7CiAKQEAgLTkyLDcgKzkzLDYgQEAgaW5saW5lIHZvaWQqIHdy
YXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3ROYW1lZENvbnN0cnVjdG9y
KikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3ROYW1lZENvbnN0cnVjdG9yKik7Ci1XRUJDT1JFX0VY
UE9SVCBUZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9UZXN0TmFtZWRDb25zdHJ1Y3RvcihKU0M6OkpT
VmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRl
cm1pbmlzdGljLmNwcAppbmRleCBlMTczYWFjLi44YjVhNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
bmRldGVybWluaXN0aWMuY3BwCkBAIC01MzQsNyArNTM0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Tm9u
ZGV0ZXIKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
PihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9UZXN0
Tm9uZGV0ZXJtaW5pc3RpYyhKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0Tm9uZGV0ZXJtaW5pc3Rp
YyogSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpYyo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpYy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vbmRldGVybWluaXN0aWMuaAppbmRleCBmNTJlYmJkLi5hNjQyMTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlND
OjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdE5vbmRldGVybWlu
aXN0aWMqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlND
OjpKU0NlbGwqKTsKICAgICB+SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYygpOwogCkBAIC05MSw3ICs5
Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxk
LCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Tm9uZGV0ZXJt
aW5pc3RpYyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE5vbmRldGVybWluaXN0aWMqIHRvVGVzdE5v
bmRldGVybWluaXN0aWMoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwCmluZGV4IGU0MzRkZWMuLmY4ZjQ4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0yMDc4LDcg
KzIwNzgsNyBAQCB2b2lkIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbAogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiog
bmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUo
SlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRUZXN0T2JqQXR0cihuYXRp
dmVWYWx1ZSk7CkBAIC0yMDk4LDcgKzIwOTgsNyBAQCB2b2lkIHNldEpTVGVzdE9ialhNTE9iakF0
dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdQog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAg
VGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1w
bC5zZXRYTUxPYmpBdHRyKG5hdGl2ZVZhbHVlKTsKQEAgLTI0NTQsNyArMjQ1NCw3IEBAIHZvaWQg
c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCoKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBp
bXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVz
dE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBs
KHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBq
c0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0yNDc3LDcgKzI0NzcsNyBAQCB2b2lkIHNldEpT
VGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBiYXNlTwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwg
PSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2Jq
KHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICBy
ZXR1cm47CiAgICAgaW1wbC5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywg
bmF0aXZlVmFsdWUpOwpAQCAtMjQ5Nyw3ICsyNDk3LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZWMsIEpT
T2IKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOwor
ICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7CkBAIC0yNTIwLDcgKzI1MjAsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleAog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAg
VGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKQEAgLTI1NDMsNyArMjU0Myw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0
T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwpAQCAtMjU2Niw3ICsyNTY2LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShFeGUKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwot
ICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoq
IG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBA
IC0yNTg5LDcgKzI1ODksNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNB
bmRDYWxsU3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iagogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAg
VGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0
aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRXaXRoU2Ny
aXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKG5hdGl2ZVZhbHVlKTsKQEAgLTI3NDAs
NyArMjc0MCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZSh0b1NWR1BvaW50KHZhbHVlKSk7Cisg
ICAgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUoSlNTVkdQb2ludDo6
dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0TXV0YWJsZVBvaW50KG5hdGl2ZVZhbHVlKTsK
QEAgLTI3NjAsNyArMjc2MCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAg
ICBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZSh0b1NWR1BvaW50KHZh
bHVlKSk7CisgICAgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUoSlNT
VkdQb2ludDo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0SW1tdXRhYmxlUG9pbnQobmF0
aXZlVmFsdWUpOwpAQCAtMjkzOSw3ICsyOTM5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QK
ICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBT
dHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7
CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9U
ZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9i
ajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICBpbXBsLnZvaWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFy
Zyk7CkBAIC0yOTc0LDcgKzI5NzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIGNv
bnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygp
IDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmoo
ZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC5ieXRlTWV0aG9kV2l0aEFyZ3MoYnl0
ZUFyZywgc3RyQXJnLCBvYmpBcmcpKTsKQEAgLTMwMDksNyArMzAwOSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdp
dGhBcmdzKEV4ZWNTCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSku
aXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9i
aiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9i
akFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLm9j
dGV0TWV0aG9kV2l0aEFyZ3Mob2N0ZXRBcmcsIHN0ckFyZywgb2JqQXJnKSk7CkBAIC0zMDQ0LDcg
KzMwNDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIGNvbnN0IFN0cmluZyYgc3Ry
QXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1l
bnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQo
MikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1l
bnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNOdW1iZXIoaW1wbC5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBv
YmpBcmcpKTsKQEAgLTMwNzksNyArMzA3OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAg
ICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3Ry
aW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVz
dE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6
OnRvSW1wbChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9i
amVjdCgpLCBXVEY6OmdldFB0cihpbXBsLm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFy
Zywgb2JqQXJnKSkpOwpAQCAtMzA5Niw3ICszMDk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhF
eGUKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBWZWN0b3I8UmVmUHRy
PFNjcmlwdFByb2ZpbGU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxTY3JpcHRQ
cm9maWxlLCBKU1NjcmlwdFByb2ZpbGU+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmdG9TY3Jp
cHRQcm9maWxlKSkpOworICAgIFZlY3RvcjxSZWZQdHI8U2NyaXB0UHJvZmlsZT4+IHNlcXVlbmNl
QXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNjcmlwdFByb2ZpbGUsIEpTU2NyaXB0UHJvZmlsZT4o
ZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZKU1NjcmlwdFByb2ZpbGU6OnRvSW1wbCkpKTsKICAg
ICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwubWV0aG9kV2l0aFNlcXVlbmNl
QXJnKHNlcXVlbmNlQXJnKTsKQEAgLTMxNTMsNyArMzE1Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMCkuaXNFbXB0
eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUo
ZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2Jq
QXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhK
U1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFy
Z3NBbmRUaHJvd3Moc3RyQXJnLCBvYmpBcmcsIGVjKSkpOwpAQCAtMzY2OSw3ICszNjY5LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kMSgKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQogICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMp
KTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7Cisg
ICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7
CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBjb25zdCBTdHJpbmcmIHN0ckFy
ZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50
KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CkBAIC0zNjg5LDcgKzM2ODksNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2QyKAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykp
OwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAg
ICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0zODAxLDcgKzM4MDEsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2Q4KAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykp
OwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAg
ICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwub3ZlcmxvYWRlZE1ldGhv
ZChvYmpBcmcpOwpAQCAtNDEyMSw3ICs0MTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5h
cmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNy
ZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0Tm9kZSogdmFsdWUo
dG9UZXN0Tm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3ROb2RlKiB2YWx1ZShKU1Rl
c3ROb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogICAgIGltcGwuY29udmVydDEodmFsdWUpOwpAQCAtNDEzOCw3ICs0MTM4LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4
ZWMpKTsKLSAgICBUZXN0Tm9kZSogdmFsdWUodG9UZXN0Tm9kZShleGVjLT5hcmd1bWVudCgwKSkp
OworICAgIFRlc3ROb2RlKiB2YWx1ZShKU1Rlc3ROb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQo
MCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuY29udmVydDIo
dmFsdWUpOwpAQCAtNDE1NSw3ICs0MTU1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1
bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0Tm9kZSogdmFsdWUodG9U
ZXN0Tm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3ROb2RlKiB2YWx1ZShKU1Rlc3RO
b2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIGltcGwuY29udmVydDQodmFsdWUpOwpAQCAtNDE3Miw3ICs0MTcyLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bnZlcnQ1KEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMp
KTsKLSAgICBUZXN0Tm9kZSogdmFsdWUodG9UZXN0Tm9kZShleGVjLT5hcmd1bWVudCgwKSkpOwor
ICAgIFRlc3ROb2RlKiB2YWx1ZShKU1Rlc3ROb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkp
KTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuY29udmVydDUodmFs
dWUpOwpAQCAtNDI1NCw3ICs0MjU0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmMKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZp
bmVkT3JOdWxsKCkgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmluaGVyaXRzKEpTVGVzdE9iajo6aW5m
bygpKSkKICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIDAsICJv
YmpBcmciLCAiVGVzdE9iaiIsICJzdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jZSIsICJUZXN0T2Jq
Iik7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOwor
ICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgVmVjdG9yPHVuc2lnbmVkPiBh
KHRvTmF0aXZlQXJyYXk8dW5zaWduZWQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CkBAIC00
Mjc5LDcgKzQyNzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uU3RyaWN0RnVuY3Rpb25XaXRoQXJyYXkoRQogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwo
KSAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoSlNUZXN0T2JqOjppbmZvKCkpKQogICAg
ICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgMCwgIm9iakFyZyIsICJU
ZXN0T2JqIiwgInN0cmljdEZ1bmN0aW9uV2l0aEFycmF5IiwgIlRlc3RPYmoiKTsKLSAgICBUZXN0
T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiog
b2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8aW50PiBhcnJheSh0b05hdGl2ZUFycmF5
PGludD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMSkpKTsKQEAgLTQzNDEsMTQgKzQzNDEsMTQgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZh
cmlhZGljTm9kZU1ldGhvZChFeGVjU3QKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMp
KTsKLSAgICBOb2RlKiBoZWFkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIE5vZGUq
IGhlYWQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgIFZlY3RvcjxOb2RlKj4gdGFpbDsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAxLCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgaSA8IGNvdW50OyArK2kp
IHsKICAgICAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKS5pbmhlcml0cyhKU05v
ZGU6OmluZm8oKSkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigq
ZXhlYywgaSwgInRhaWwiLCAiVGVzdE9iaiIsICJ2YXJpYWRpY05vZGVNZXRob2QiLCAiTm9kZSIp
OwotICAgICAgICB0YWlsLmFwcGVuZCh0b05vZGUoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkp
KTsKKyAgICAgICAgdGFpbC5hcHBlbmQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoaSkpKTsKICAgICB9CiAgICAgaW1wbC52YXJpYWRpY05vZGVNZXRob2QoaGVhZCwgdGFp
bCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTQ0MzQs
NyArNDQzNCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE9iaiogaW1wCiAgICAgcmV0dXJuIGNyZWF0ZU5l
d1dyYXBwZXI8SlNUZXN0T2JqPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0T2JqKiB0
b1Rlc3RPYmooSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE9iaiogSlNUZXN0T2JqOjp0b0ltcGwo
SlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5oCmluZGV4IDNjMGJmYzUuLjMyZWVhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTM4LDYgKzM4LDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBn
ZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMg
VGVzdE9iaiogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpK
U0NlbGwqKTsKICAgICB+SlNUZXN0T2JqKCk7CkBAIC0xMDYsNyArMTA3LDYgQEAgaW5saW5lIHZv
aWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RPYmoqKQogfQog
CiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiwgVGVzdE9iaiopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE9iaiogdG9UZXN0
T2JqKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCmluZGV4IDYzMDhkOWUuLjIzNDY1
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKQEAg
LTExOCw3ICsxMTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SgogICAgIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CiAgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIEJsb2Iq
IGJsb2IodG9CbG9iKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgQmxvYiogYmxvYihKU0Jsb2I6
OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgUmVmUHRyPFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPiBvYmplY3QgPSBUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRlKGJsb2IpOwpAQCAtMjgzLDcgKzI4Myw3IEBA
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgVGVzdE92ZXJsb2FkCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoSlND
OjpKU1ZhbHVlIHZhbHVlKQorVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnM6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYg
KGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnMqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKaW5kZXggOWM3NmJhZS4uNDgyNTY0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCkBAIC0zOCw2ICsz
OCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5
cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAg
c3RhdGljIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsK
ICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3Jh
cHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqKTsK
LVdFQkNPUkVfRVhQT1JUIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmNwcAppbmRleCA4NjdkMGMwLi42NTM3MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMzYyLDcgKzM2Miw3
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGVzdFNlcmlhbGl6CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPihnbG9iYWxPYmplY3QsIGltcGwp
OwogfQogCi1UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPih2
YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IGE0OGJjOGUu
LmVhMDBkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UoKTsKIApAQCAtOTcsNyArOTgsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludAogfQogCiBX
RUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSopOwotV0VCQ09S
RV9FWFBPUlQgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdG9UZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKaW5kZXggZTJhOTNhYS4uMGY2ZDFiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0VHlwZWRlZnMuY3BwCkBAIC01NzQsNyArNTc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVl
bmNlQXIKICAgICBUZXN0VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFZlY3Rv
cjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0
aXZlQXJyYXk8U2VyaWFsaXplZFNjcmlwdFZhbHVlLCBKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4o
ZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZ0b1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkpKTsKKyAg
ICBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IHNlcXVlbmNlQXJnKCh0b1Jl
ZlB0ck5hdGl2ZUFycmF5PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgSlNTZXJpYWxpemVkU2NyaXB0
VmFsdWU+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmSlNTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OnRvSW1wbCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUg
cmVzdWx0ID0ganNOdW1iZXIoaW1wbC5tZXRob2RXaXRoU2VxdWVuY2VBcmcoc2VxdWVuY2VBcmcp
KTsKQEAgLTY5Nyw3ICs2OTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNlVGhhdAogICAgIFRlc3RU
eXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVmVjdG9yPFJlZlB0cjxUZXN0RXZl
bnRUYXJnZXQ+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxUZXN0RXZlbnRUYXJn
ZXQsIEpTVGVzdEV2ZW50VGFyZ2V0PihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgJnRvVGVzdEV2
ZW50VGFyZ2V0KSkpOworICAgIFZlY3RvcjxSZWZQdHI8VGVzdEV2ZW50VGFyZ2V0Pj4gc2VxdWVu
Y2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8VGVzdEV2ZW50VGFyZ2V0LCBKU1Rlc3RFdmVudFRh
cmdldD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZKU1Rlc3RFdmVudFRhcmdldDo6dG9JbXBs
KSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQg
PSBqc0Jvb2xlYW4oaW1wbC5jYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZShzZXF1
ZW5jZUFyZykpOwpAQCAtNzY5LDcgKzc2OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdFR5cGVkZWZzCiAg
ICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0VHlwZWRlZnM+KGdsb2JhbE9iamVjdCwg
aW1wbCk7CiB9CiAKLVRlc3RUeXBlZGVmcyogdG9UZXN0VHlwZWRlZnMoSlNDOjpKU1ZhbHVlIHZh
bHVlKQorVGVzdFR5cGVkZWZzKiBKU1Rlc3RUeXBlZGVmczo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlw
ZWRlZnMqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuaAppbmRleCA3ZTVlYzhkLi45NWFkMjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaApAQCAtMzgs
NiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHN0YXRpYyBUZXN0VHlwZWRlZnMqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9p
ZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdFR5cGVkZWZzKCk7CkBAIC05Myw3
ICs5NCw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdv
cmxkLCBUZXN0VHlwZWRlZnMqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdFR5cGVkZWZzKik7Ci1X
RUJDT1JFX0VYUE9SVCBUZXN0VHlwZWRlZnMqIHRvVGVzdFR5cGVkZWZzKEpTQzo6SlNWYWx1ZSk7
CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKaW5kZXggYmE0NmQ4Yy4u
MDEzNGY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTYXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCkBAIC0yMjQsNyArMjI0LDcgQEAgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBh
dHRyaWJ1dGUqIGkKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU2F0dHJpYnV0ZT4oZ2xv
YmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotYXR0cmlidXRlKiB0b2F0dHJpYnV0ZShKU0M6OkpTVmFs
dWUgdmFsdWUpCithdHRyaWJ1dGUqIEpTYXR0cmlidXRlOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZh
bHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU2F0dHJpYnV0
ZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCmlu
ZGV4IDI5N2FkMjYuLjVjODFjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCkBAIC0zOSw2ICszOSw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYs
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIGF0dHJp
YnV0ZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6
OkpTQ2VsbCopOwogICAgIH5KU2F0dHJpYnV0ZSgpOwogCkBAIC05Miw3ICs5Myw2IEBAIGlubGlu
ZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBhdHRyaWJ1dGUq
KQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgYXR0cmlidXRlKik7Ci1XRUJDT1JFX0VYUE9SVCBhdHRyaWJ1
dGUqIHRvYXR0cmlidXRlKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
cmVhZG9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
cmVhZG9ubHkuY3BwCmluZGV4IGVkNGE0NGIuLmNjYmY1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKQEAgLTE4
Miw3ICsxODIsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHJlYWRvbmx5KiBpbQogICAgIHJldHVybiBjcmVhdGVO
ZXdXcmFwcGVyPEpTcmVhZG9ubHk+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLXJlYWRvbmx5
KiB0b3JlYWRvbmx5KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3JlYWRvbmx5KiBKU3JlYWRvbmx5Ojp0
b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNE
eW5hbWljQ2FzdDxKU3JlYWRvbmx5Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXIt
PmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU3JlYWRvbmx5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNyZWFkb25seS5oCmluZGV4IGI2ZWZhNGEuLjRlYTY2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaApAQCAtMzgs
NiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHN0YXRpYyByZWFkb25seSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU3JlYWRvbmx5KCk7CiAKQEAgLTkxLDcg
KzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIHJlYWRvbmx5KikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIHJlYWRvbmx5Kik7Ci1XRUJDT1JFX0VY
UE9SVCByZWFkb25seSogdG9yZWFkb25seShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFlMzdlZWMuLjlhOWJmMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtNjg5LDYgKzY4OSwzNSBAQCBzdHJ1Y3QgRWxlbWVudFR5cGVDYXN0
VHJhaXRzPEV4cGVjdGVkVHlwZSwgRXhwZWN0ZWRUeXBlPiB7CiAgICAgc3RhdGljIGJvb2wgaXMo
RXhwZWN0ZWRUeXBlJikgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAorLy8gRG93bmNhc3RpbmcgZnVu
Y3Rpb25zIGZvciBFbGVtZW50IHR5cGVzLgordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBl
bmFtZSBTb3VyY2U+IGlubGluZSBUYXJnZXQmIGRvd25jYXN0KFNvdXJjZSYgc291cmNlKQorewor
ICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxUYXJnZXQsIFNvdXJjZT46OnZhbHVl
LCAiVW5uZWNlc3NhcnkgY2FzdCIpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKGlzRWxlbWVudE9mVHlwZTxjb25zdCBUYXJnZXQ+KHNvdXJjZSkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUYXJnZXQmPihzb3VyY2UpOworfQordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0
LCB0eXBlbmFtZSBTb3VyY2U+IGlubGluZSBUYXJnZXQqIGRvd25jYXN0KFNvdXJjZSogc291cmNl
KQoreworICAgIC8vIENhdGNoIHVubmVjZXNzYXJ5IGNhc3RpbmcuCisgICAgc3RhdGljX2Fzc2Vy
dCghc3RkOjppc19iYXNlX29mPFRhcmdldCwgU291cmNlPjo6dmFsdWUsICJVbm5lY2Vzc2FyeSBj
YXN0Iik7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIXNvdXJjZSB8fCBp
c0VsZW1lbnRPZlR5cGU8Y29uc3QgVGFyZ2V0Pigqc291cmNlKSk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFRhcmdldCo+KHNvdXJjZSk7Cit9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5
cGVuYW1lIFNvdXJjZT4gaW5saW5lIGNvbnN0IFRhcmdldCYgZG93bmNhc3QoY29uc3QgU291cmNl
JiBzb3VyY2UpCit7CisgICAgLy8gQ2F0Y2ggdW5uZWNlc3NhcnkgY2FzdGluZy4KKyAgICBzdGF0
aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8VGFyZ2V0LCBTb3VyY2U+Ojp2YWx1ZSwgIlVubmVj
ZXNzYXJ5IGNhc3QiKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0Vs
ZW1lbnRPZlR5cGU8Y29uc3QgVGFyZ2V0Pihzb3VyY2UpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Y29uc3QgVGFyZ2V0Jj4oc291cmNlKTsKK30KK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwg
dHlwZW5hbWUgU291cmNlPiBpbmxpbmUgY29uc3QgVGFyZ2V0KiBkb3duY2FzdChjb25zdCBTb3Vy
Y2UqIHNvdXJjZSkKK3sKKyAgICAvLyBDYXRjaCB1bm5lY2Vzc2FyeSBjYXN0aW5nLgorICAgIHN0
YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxUYXJnZXQsIFNvdXJjZT46OnZhbHVlLCAiVW5u
ZWNlc3NhcnkgY2FzdCIpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFz
b3VyY2UgfHwgaXNFbGVtZW50T2ZUeXBlPGNvbnN0IFRhcmdldD4oKnNvdXJjZSkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBUYXJnZXQqPihzb3VyY2UpOworfQorCiBpbmxpbmUgYm9v
bCBOb2RlOjpoYXNBdHRyaWJ1dGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gaXNFbGVtZW50Tm9k
ZSgpICYmIHRvRWxlbWVudCh0aGlzKS0+aGFzQXR0cmlidXRlcygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9u
YW1lcy5wbAppbmRleCAzODljMmI4Li5jYTgzOWU5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5w
bApAQCAtNjMzLDYgKzYzMyw3IEBAIHN1YiBwcmludFR5cGVIZWxwZXJzCiAgICAgICAgIH0KIAog
ICAgICAgICBteSAkY2xhc3MgPSAkcGFyc2VkVGFnc3skbmFtZX17aW50ZXJmYWNlTmFtZX07Cisg
ICAgICAgICMgRklYTUU6IFJlbmFtZSB0aGVzZSBoZWxwZXJzIHRvIGlzPCpFbGVtZW50PigpLgog
ICAgICAgICBteSAkY2hlY2tIZWxwZXIgPSAiaXMkY2xhc3MiOwogCiAgICAgICAgIHByaW50IEYg
PDxFTkQKQEAgLTY2Myw2ICs2NjQsMTAgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEFyZ1R5cGU+CiBz
dHJ1Y3QgRWxlbWVudFR5cGVDYXN0VHJhaXRzPGNvbnN0ICRjbGFzcywgQXJnVHlwZT4gewogICAg
IHN0YXRpYyBib29sIGlzKEFyZ1R5cGUmIG5vZGUpIHsgcmV0dXJuICRjaGVja0hlbHBlcihub2Rl
KTsgfQogfTsKKworLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBtYWNyb3Mgb25jZSB0aGUgY29kZSBo
YXMgYmVlbiBwb3J0ZWQgdG8gdXNpbmcKKy8vIGRvd25jYXN0PCpFbGVtZW50PigpLgorI2RlZmlu
ZSB0byRjbGFzcyh4KSBXZWJDb3JlOjpkb3duY2FzdDxXZWJDb3JlOjokY2xhc3M+KHgpCiBFTkQK
ICAgICAgICAgOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKaW5kZXgg
NDY2OTE2My4uMjMyYjAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aApAQCAtMTU1LDggKzE1NSw2IEBAIGJvb2wgaXNFbnRlcktleUtleWRvd25FdmVudChFdmVudCop
OwogYm9vbCBpc0xpbmtDbGljayhFdmVudCopOwogYm9vbCBzaG91bGRQcm9oaWJpdExpbmtzKEVs
ZW1lbnQqKTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxBbmNob3JFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MQW5jaG9yRWxlbWVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAppbmRleCBhYzA3ZTk4Li44ZGI3NTg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKQEAgLTcxLDggKzcxLDYgQEAgcHJpdmF0ZToK
ICAgICBTaGFwZSBtX3NoYXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxBcmVhRWxlbWVu
dCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9F
bGVtZW50LmgKaW5kZXggMzBkMmE4Zi4uN2U4NjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXVkaW9FbGVtZW50LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0ZToKICAgICBIVE1MQXVkaW9F
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxBdWRpb0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAppbmRleCA0MDU0ZTE3Li5iNzk5ZjFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92
ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxCYXNlRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAppbmRl
eCAwMTdlZmMyLi4wZDRkNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgK
QEAgLTgxLDggKzgxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVzb3Vy
Y2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MQm9keUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggODgzN2QwOC4u
OGFiZGU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTgw
LDggKzE4MCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8SW1hZ2U+IG1fY29waWVk
SW1hZ2U7IC8vIEZJWE1FOiBUaGlzIGlzIHRlbXBvcmFyeSBmb3IgcGxhdGZvcm1zIHRoYXQgaGF2
ZSB0byBjb3B5IHRoZSBpbWFnZSBidWZmZXIgdG8gcmVuZGVyIChhbmQgZm9yIENTU0NhbnZhc1Zh
bHVlKS4KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQ2FudmFzRWxlbWVudCkKLQogfSAvL25h
bWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERh
dGFMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50
LmgKaW5kZXggNjdmYjFkYi4uY2YxZDNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGF0YUxpc3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0
YUxpc3RFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0ZToKICAgICBIVE1MRGF0YUxp
c3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxEYXRhTGlzdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ICNlbmRpZiAvLyBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggYzQxZjZmNC4uMDczY2Q1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2lzT3BlbjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRGV0YWlsc0Vs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxEZXRhaWxz
RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKaW5kZXggMWI1ZDIwYS4u
ZmY4MWI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaApAQCAtNDAsOCArNDAs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11
dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MRGl2RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRN
TERpdkVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAppbmRleCBk
OWZkNDUyLi5jZGQzYmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaApA
QCAtNTIsOCArNTIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFyYW1ldGVyc0ZvclBsdWdpbihW
ZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRW1iZWRFbGVtZW50KQotCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAppbmRleCA3YzEzZWEwLi4z
YTAyMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaApAQCAt
NjQsOCArNjQsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgdWludDY0X3QgbV9kb2N1bWVudFZl
cnNpb247CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEZpZWxkU2V0RWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApp
bmRleCBjNDY5ZGNlLi5mYzNkYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50
LmgKQEAgLTIwMSw4ICsyMDEsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTEZvcm1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBIVE1MRm9ybUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQu
aAppbmRleCA1NTc5Yzk4Li42ZTRmYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9mcmFtZUJvcmRl
clNldDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRnJhbWVFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MRnJhbWVFbGVtZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKaW5kZXggODBlN2YyYS4uMjcyOTM4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKQEAgLTEwMCw4ICsx
MDAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9ub3Jlc2l6ZTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MRnJhbWVTZXRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBIVE1MRnJhbWVTZXRFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEh0bWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxl
bWVudC5oCmluZGV4IGI5NjZjODcuLjBmODNiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEh0bWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRt
bEVsZW1lbnQuaApAQCAtNDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhIVE1MSHRtbEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCmluZGV4IDlhZTE5MzIuLmYw
ZWJjZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAgLTQ3LDgg
KzQ3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKEhUTUxJRnJhbWVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MSUZyYW1lRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5oCmluZGV4IDMyNDk0OGIuLjZhZDQ1NGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgcHJpdmF0ZToKICNl
bmRpZgogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxJbWFnZUVsZW1lbnQpCi0KIH0gLy9uYW1l
c3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4
IGUzODg1YmNjLi5kN2E2NWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aApAQCAtNDQ4LDcgKzQ0OCw1IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MSW5wdXRFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKaW5kZXggYWVhNTIzNy4uY2E4ZWU2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24s
IEZvY3VzRGlyZWN0aW9uKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTGFi
ZWxFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGVnZW5kRWxlbWVudC5oCmluZGV4IDI0NTY4YmQuLjkxMDRhYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKQEAgLTQ1LDggKzQ1LDYgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBvdmVycmlkZTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTGVnZW5kRWxlbWVudCkKLQogfSAvL25hbWVzcGFj
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCmluZGV4IDY1YjMy
NDEuLmNiZjU3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaApAQCAtMTM3
LDggKzEzNyw2IEBAIHByaXZhdGU6CiAgICAgUGVuZGluZ1NoZWV0VHlwZSBtX3BlbmRpbmdTaGVl
dFR5cGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTExpbmtFbGVtZW50KQotCiB9IC8vbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFw
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCmluZGV4IDlh
ZTQ0NjcuLjYxN2FhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKQEAgLTU0
LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9uYW1lOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxNYXBFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZXMKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaAppbmRleCBkMTA5ODJiLi45
NjM5ZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKQEAgLTY0
LDggKzY0LDYgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJNYXJxdWVlKiByZW5kZXJNYXJxdWVlKCkg
Y29uc3Q7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1hcnF1ZWVFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MTWFycXVlZUVsZW1lbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKaW5kZXggMTU5YzNhYS4uMDQ1NzgxOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwcm9jZXNzKCk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1ldGFF
bGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuaAppbmRleCA5ZDgyMTcyLi5hMjhjYjQ0OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCkBAIC04MSw4ICs4MSw2IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPE1ldGVyVmFsdWVFbGVtZW50PiBtX3ZhbHVlOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKEhUTUxNZXRlckVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAppbmRleCA5ODlkNzk1Li4xZjBhYWYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaApAQCAtNjUsOCArNjUsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRSZWNhbGN1bGF0ZUl0ZW1Db3VudCA6IDE7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9MaXN0RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCAyYzQ5MTkz
Li5mOGU3YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC0x
MDMsOCArMTAzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fdXNlRmFsbGJhY2tDb250ZW50IDog
MTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT2JqZWN0RWxlbWVudCkKLQogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKaW5kZXggNjg5Y2U0
Yi4uNTdhMzc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgK
QEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlY2FsY1NlbGVjdE9wdGlvbnMo
KTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT3B0R3JvdXBFbGVtZW50KQotCiB9IC8vbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCmlu
ZGV4IDY0N2QwMWUuLjY1NGVmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVt
ZW50LmgKQEAgLTg3LDggKzg3LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNTZWxlY3RlZDsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT3B0aW9uRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCmluZGV4IDRl
ODFkMmQuLmVkOWI0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFt
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCkBA
IC00Myw4ICs0Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNl
QXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTFBhcmFtRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKaW5k
ZXggZWVkYjg4MC4uYzdmZDk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmgKQEAgLTY3LDggKzY3LDYgQEAgcHJpdmF0ZToKICAgICBQcm9ncmVzc1ZhbHVlRWxl
bWVudCogbV92YWx1ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUHJvZ3Jlc3NFbGVtZW50
KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuaAppbmRleCBiODUwMWI0Li42OGQ5NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oCkBAIC02Nyw4ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4oKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU2NyaXB0RWxlbWVu
dCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaAppbmRleCBmYTljYmU0Ny4uMjdmZWZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuaApAQCAtMjEyLDggKzIxMiw2IEBAIHByaXZhdGU6CiAgICAgbXV0
YWJsZSBib29sIG1fc2hvdWxkUmVjYWxjTGlzdEl0ZW1zOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxTZWxlY3RFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAppbmRleCA1NTU4NzVjLi41MjJkNzQzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaApAQCAtNTcsOCArNTcsNiBAQCBw
cml2YXRlOgogICAgIFRpbWVyPEhUTUxTb3VyY2VFbGVtZW50PiBtX2Vycm9yRXZlbnRUaW1lcjsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU291cmNlRWxlbWVudCkKLQogfSAvL25hbWVzcGFj
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKaW5kZXggOTk1
N2JhNS4uOTFmMGI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKQEAg
LTcwLDggKzcwLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbG9hZGVkU2hlZXQ7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTFN0eWxlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCmluZGV4IGZiYWJjZGUu
LmJjMjI4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaApAQCAt
NDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92
ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5RWxlbWVudCkKLQogfQog
CiAjZW5kaWYgLy8gSFRNTFN1bW1hcnlFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAppbmRleCBmMDY0ZTI4Li45MDRjMzI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC00MSw4ICs0
MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwg
TXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKaW5kZXggYzk3NjhlYi4uM2NjZTgxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKQEAgLTEwMSw4ICsxMDEsNiBA
QCBwcml2YXRlOgogICAgIFJlZlB0cjxTdHlsZVByb3BlcnRpZXM+IG1fc2hhcmVkQ2VsbFN0eWxl
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUYWJsZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3Bh
Y2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJv
d0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCmlu
ZGV4IDMzOGI4NzkuLmM0YjBmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlUm93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5oCkBAIC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlUm93RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MVGFibGVSb3dFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKaW5kZXggZDdmZjk1MS4uYzgx
ZjdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTU2
LDggKzU2LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxUZW1wbGF0ZUNvbnRlbnRE
b2N1bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRl
bXBsYXRlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5oCmluZGV4IGE4MDFmOTkuLmJlZGQwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oCkBAIC0xMjYsOCArMTI2LDYgQEAgcHJpdmF0ZToKICAgICBtdXRh
YmxlIGJvb2wgbV93YXNNb2RpZmllZEJ5VXNlcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
VGV4dEFyZWFFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUaXRsZUVsZW1lbnQuaAppbmRleCBlYmUxZDNjLi41ZGUxZWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaApAQCAtNDYsOCArNDYsNiBAQCBwcml2YXRlOgog
ICAgIFN0cmluZ1dpdGhEaXJlY3Rpb24gbV90aXRsZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MVGl0bGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCA4MzE3MTdiLi41MjZkYzAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtOTQsOCArOTQsNiBAQCBwcml2YXRlOgog
ICAgIFRpbWVyPEhUTUxUcmFja0VsZW1lbnQ+IG1fbG9hZFRpbWVyOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKEhUTUxUcmFja0VsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGM0ZDRmOWQuLjc2ZjAxNjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHJpdmF0ZToKICAg
ICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0UG9zdGVyVVJMOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxWaWRlb0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBmZDdlOTIzLi4z
Nzg2NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKQEAgLTIwMTAsNyArMjAxMCw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50OjpzY3Jp
cHRWYWx1ZUFzTm9kZShEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIXZh
bHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgcmV0dXJuIHRvTm9kZSh2YWx1ZS5qc1ZhbHVlKCkpOworICAgIHJldHVybiBKU05v
ZGU6OnRvSW1wbCh2YWx1ZS5qc1ZhbHVlKCkpOwogfQogCiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1
ZSBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIHN0
YXRlLCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3Nl
RWxlbWVudC5oCmluZGV4IGRjNjljMTEuLmVlOTczMzUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faXNSYWRpY2FsVmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoTWF0aE1M
TWVuY2xvc2VFbGVtZW50KQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCmluZGV4IGFjYjJmMzUuLmM2M2Uz
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKQEAgLTM4
LDggKzM4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhEZWZFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCmluZGV4IDUwOTVhYjUuLjZiZTlmNzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAg
cHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRl
bUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgK
aW5kZXggODI0OWNiOC4uYzdhZmU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FsdEdseXBoSXRlbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5
cGhJdGVtRWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FsdEdseXBoSXRlbUVsZW1lbnQp
Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxl
bWVudC5oCmluZGV4IDM2Njc4MTQuLjQxN2Q1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlTW90aW9uRWxlbWVudC5oCkBAIC03MCw4ICs3MCw2IEBAIHByaXZhdGU6CiAgICAg
UGF0aCBtX3BhdGg7CiAgICAgUGF0aCBtX2FuaW1hdGlvblBhdGg7CiB9OwotCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQpCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
LmgKaW5kZXggYmRjZmY3MC4uYjFhNDRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKQEAgLTQ3LDggKzQ3LDYgQEAgcHJpdmF0ZToKICAg
ICBTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybVR5cGUgbV90eXBlOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAppbmRleCAwNzlmYTk5Li5lYzE4MmRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAg
ICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHQ2lyY2xlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
U1ZHQ2lyY2xlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xp
cFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgK
aW5kZXggOGZkZWIwMi4uOTM4Y2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NsaXBQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuaApAQCAtNTYsOCArNTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDbGlwUGF0aEVsZW1lbnQp
Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAppbmRleCBh
NTMwMWU0Li5lYTIyM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKQEAg
LTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFNWR0VsZW1lbnQqPiBtX2NsaWVu
dHM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ3Vyc29yRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50
LmgKaW5kZXggZDZiMjBmNi4uNWI5ZjkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRWxsaXBzZUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmgKaW5kZXggNzk5ZjZkNS4uNjBlYTQ0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaApAQCAtMzQs
OCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4g
bGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdG
RURpc3RhbnRMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCmluZGV4IDMxZWJiNGYuLmE0ZTZh
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2
IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQUVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1
bmNCRWxlbWVudC5oCmluZGV4IDM1YmM0NDguLmFmNDlkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNCRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVG
dW5jQkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCmluZGV4IDM5ODU3
ZWQuLjFhZmE0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCkBAIC0z
Myw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jR0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jR0Vs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCmluZGV4IDllNzMyN2MuLmIwZDBlYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAg
ICAgU1ZHRkVGdW5jUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jUkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVN
ZXJnZU5vZGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50LmgKaW5kZXggNTE1OTdlYi4uNzIzM2YyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RU1lcmdlTm9kZUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIEVORF9E
RUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRU1l
cmdlTm9kZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaAppbmRleCBiNzAxYmU1Li4z
NDU3OTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmgK
QEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRT
b3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoU1ZHRkVQb2ludExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaAppbmRleCA4
MDM5YWYyLi5mZjZiNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxl
bWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PExpZ2h0U291cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR0ZFU3BvdExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDhlYTcz
ZmIuLjE5MzllMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNzUs
OCArNzUsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGaWx0ZXJFbGVtZW50KQotCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAppbmRleCA4ZTQyNzRkLi5lYjVjNDZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaApAQCAtMTAyLDggKzEwMiw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2lzR2x5cGhDYWNoZVZhbGlkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R0ZvbnRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCmluZGV4
IDZhMjExNmEuLmRjZDAxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50
LmgKQEAgLTY2LDggKzY2LDYgQEAgcHJpdmF0ZToKICAgICBTVkdGb250RWxlbWVudCogbV9mb250
RWxlbWVudDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZUVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAppbmRleCAzZjI1NDQ1Li5j
Njg1ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgK
QEAgLTM5LDggKzM5LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VOYW1lRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAppbmRleCAzYjA5MTRjLi5iYTVhNjQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCkBAIC00MCw4ICs0MCw2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVu
ZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR0ZvbnRGYWNlU3JjRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZVVyaUVsZW1lbnQuaAppbmRleCAxODlhNzg5Li4zNTBmMWZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6CiAg
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNoZWRGb250OwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlVXJpRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKaW5kZXggNzViYjc0Yi4uYWI0ZDFhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAgLTU4LDgg
KzU4LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR2x5cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgK
aW5kZXggN2I3ZDM4YS4uNDAwOWZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dseXBoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQu
aApAQCAtNTcsOCArNTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUdseXBoQ2Fj
aGUoKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKaW5kZXggNmQ4Y2FjNy4uNDY0ZmVlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaApAQCAtNjEsOCArNjEsNiBAQCBwcml2
YXRlOgogICAgIGZsb2F0IG1fZHk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHR2x5cGhSZWZF
bGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0hLZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCmlu
ZGV4IGU1ZDhiNzhmLi4xYzE5ZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SEtlcm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5o
CkBAIC00Miw4ICs0Miw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKFNWR0hLZXJuRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFn
ZUVsZW1lbnQuaAppbmRleCAxYTM2MWM1Li4xNzY3NjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0lt
YWdlRWxlbWVudC5oCkBAIC03Miw4ICs3Miw2IEBAIHByaXZhdGU6CiAgICAgU1ZHSW1hZ2VMb2Fk
ZXIgbV9pbWFnZUxvYWRlcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdJbWFnZUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
RWxlbWVudC5oCmluZGV4IDY0ZTc4NjMuLjUzZmVhZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
RWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5J
TUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0xpbmVFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCmluZGV4IDY4YWM2YjguLjQ2ZDkyZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKQEAgLTU0LDgg
KzU0LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01QYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5o
CmluZGV4IDk3MzI2NDguLjFiZTY0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50
LmgKQEAgLTY4LDggKzY4LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9Q
Uk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTVBhdGhFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdNUGF0aEVsZW1lbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKaW5kZXggMWI5MzBlNi4uYjUyMmNiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCkBAIC0xNjQsOCArMTY0LDYgQEAgcHJpdmF0
ZToKICAgICBtdXRhYmxlIFNWR1N5bmNocm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eTxTVkdNYXJr
ZXJPcmllbnRUeXBlPiBtX29yaWVudFR5cGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTWFy
a2VyRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgK
aW5kZXggZjUwYTk0Ni4uMjJlZGRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hc2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgK
QEAgLTY4LDggKzY4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVT
eXN0ZW1MYW5ndWFnZSgpIG92ZXJyaWRlIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFu
Z3VhZ2UodGhpcyk7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNYXNrRWxlbWVudCkKLQog
fQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5
cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5o
CmluZGV4IGY1NjM3ZWUuLjk0YTQyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNaXNzaW5nR2x5cGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3Np
bmdHbHlwaEVsZW1lbnQuaApAQCAtMzYsOCArMzYsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNaXNzaW5nR2x5cGhFbGVtZW50
KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAppbmRleCAwMjFiNmYxLi5iNjRiNGM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaApAQCAtMTI5LDggKzEyOSw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2lzQW5pbVZhbE9ic2VydmVkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR1BhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAppbmRleCAyMmM3YzIwLi40OTJjZDY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaApAQCAtODYsOCArODYsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKCkgb3Zl
cnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsgfQogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKFNWR1BhdHRlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHln
b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaAppbmRl
eCBhNjJkZTIwLi5kOTBkZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9s
eWdvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQu
aApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR1BvbHlnb25FbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1Bv
bHlnb25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCmluZGV4IDRiNWU4NDEuLmEwOTFlYzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAg
cHJpdmF0ZToKICAgICBTVkdQb2x5bGluZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUG9seWxpbmVFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IGU1NmZiMmYuLjEyYmY0ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKQEAgLTU2LDggKzU2
LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAppbmRl
eCA3MmViODc1Li4zY2VlOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVj
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaApAQCAt
NTgsOCArNTgsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJ
RVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdSZWN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCmluZGV4IGVm
YjQyZWQuLjI3ODIyNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApAQCAtMTc1LDgg
KzE3NSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNWR1ZpZXdTcGVjPiBtX3ZpZXdTcGVjOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1NWR0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA1
NzJmNzlkLi45YWNkYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAg
LTg2LDggKzg2LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xvYWRF
dmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1NjcmlwdEVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVu
dC5oCmluZGV4IGQ4NzliNGUuLjdkYTM3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdG9wRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVu
dC5oCkBAIC00OSw4ICs0OSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURf
UFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1N0b3BFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVu
dC5oCmluZGV4IDZhOTFlMzguLjFlNzMxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVt
ZW50LmgKQEAgLTY4LDggKzY4LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxTVkdFbGVtZW50PiBt
X3N2Z0xvYWRFdmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1N0eWxlRWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHU3R5bGVFbGVtZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKaW5kZXggYThjMGI3Mi4uNDMwODRkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVGV4dEVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmgKaW5kZXggMGE0ZmY2Ny4uZjI0NGJjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaApAQCAtMTQzLDggKzE0Myw2IEBAIHByaXZhdGU6CiAg
ICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR1RleHRQYXRoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaAppbmRleCBjODRhNjAzLi4wNzViMjM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCkBAIC00MCw4ICs0MCw2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1Rp
dGxlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVXNlRWxlbWVudC5oCmluZGV4IDNmMTBlZTkuLmI3MzJmMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1VzZUVsZW1lbnQuaApAQCAtMTI4LDggKzEyOCw2IEBAIHByaXZhdGU6CiAgICAgVGltZXI8
U1ZHRWxlbWVudD4gbV9zdmdMb2FkRXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdVc2VFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZLZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVu
dC5oCmluZGV4IGNlODhkZTUuLjE4MGJjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdWS2VybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVt
ZW50LmgKQEAgLTQxLDggKzQxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVktlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld0VsZW1lbnQuaAppbmRleCAyNTFkNzMwLi40YjQ0ZDljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld0VsZW1lbnQuaApAQCAtNjUsOCArNjUsNiBAQCBwcml2YXRlOgogICAgIFNWR1N0cmluZ0xp
c3QgbV92aWV3VGFyZ2V0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1ZpZXdFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCmluZGV4IDEzYmIz
ZmUuLjJhMTNhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKQEAgLTIwNyw2ICsyMDcsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgUmVmUHRyPEFuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZj4gbV9hbmltYXRlZFByb3Bl
cnR5OwogfTsKIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8
VD4qIHRvKEpTQzo6SlNWYWx1ZSk7CisKIH0KIAogI2VuZGlmIC8vIFNWR0xpc3RQcm9wZXJ0eVRl
YXJPZmZfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0
aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKaW5kZXggYzgwNjhiZS4uNzZkMDNjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0aFNlZ0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
YXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0xNTcsNiArMTU3LDggQEAgcHJpdmF0ZToK
ICAgICBTVkdQYXRoU2VnUm9sZSBtX3BhdGhTZWdSb2xlOwogfTsKIAordGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IFNWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKiB0byhKU0M6OkpTVmFsdWUpOwor
CiB9CiAKICNlbmRpZiAvLyBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KaW5kZXggZTRmYjc2Ni4uMTA1NGRiNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KQEAgLTc0LDcgKzc0LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHRvSlMoY29udGV4
dCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7Ci0gICAgcmV0dXJuIGtpdCh0b0VsZW1l
bnQodG9KUyhleGVjLCB2YWx1ZSkpKTsKKyAgICByZXR1cm4ga2l0KEpTRWxlbWVudDo6dG9JbXBs
KHRvSlMoZXhlYywgdmFsdWUpKSk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCBhNmYzYjU0Li45Y2U2MWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCkBAIC04NjIxLDcgKzg2MjEsNyBAQCBzdGF0aWMgdm9pZCBnbGliQ29udGV4dEl0
ZXJhdGlvbkNhbGxiYWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eQog
ewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElP
TlMpCiAgICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBbW3NlbGYgbWFpbkZyYW1lXSBnbG9iYWxD
b250ZXh0XTsKLSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90
aWZpY2F0aW9uKHRvSlModG9KUyhjb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAgICBXZWJD
b3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IEpTTm90aWZpY2F0aW9uOjp0b0ltcGwo
dG9KUyh0b0pTKGNvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOwogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxXZWJOb3RpZmljYXRpb25DbGllbnQqPihOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGll
bnRGcm9tKF9wcml2YXRlLT5wYWdlKSktPm5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhub3RpZmlj
YXRpb24pOwogI2Vsc2UKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCmluZGV4IGNkZGRjODEuLjA0NWE2NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcApAQCAtNzAsNyArNzAsNyBA
QCBzdGF0aWMgRE9NSGFuZGxlQ2FjaGUmIGRvbUhhbmRsZUNhY2hlKCkKIAogUGFzc1JlZlB0cjxJ
bmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JD
cmVhdGUoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiBvYmplY3QpCiB7Ci0gICAgTm9kZSogbm9k
ZSA9IHRvTm9kZSh0b0pTKG9iamVjdCkpOworICAgIE5vZGUqIG5vZGUgPSBKU05vZGU6OnRvSW1w
bCh0b0pTKG9iamVjdCkpOwogICAgIHJldHVybiBnZXRPckNyZWF0ZShub2RlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAppbmRleCBmNjMz
OTFiLi42NWY4ZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmNwcApAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgRE9NSGFuZGxlQ2FjaGUmIGRvbUhh
bmRsZUNhY2hlKCkKIAogUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiBJbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0
UmVmIG9iamVjdCkKIHsKLSAgICBSYW5nZSogcmFuZ2UgPSB0b1JhbmdlKHRvSlMob2JqZWN0KSk7
CisgICAgUmFuZ2UqIHJhbmdlID0gSlNSYW5nZTo6dG9JbXBsKHRvSlMob2JqZWN0KSk7CiAgICAg
cmV0dXJuIGdldE9yQ3JlYXRlKHJhbmdlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRl
eCAxYTY3MjdiLi5iNjRlODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTk3LDcgKzU5
Nyw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb25zKFdlYlBhZ2UqIHBhZ2UpCiB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZTo6d2ViTm90aWZp
Y2F0aW9uSUQoSlNDb250ZXh0UmVmIGpzQ29udGV4dCwgSlNWYWx1ZVJlZiBqc05vdGlmaWNhdGlv
bikKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklD
QVRJT05TKQotICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gdG9Ob3Rp
ZmljYXRpb24odG9KUyh0b0pTKGpzQ29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CisgICAgV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBKU05vdGlmaWNhdGlvbjo6dG9JbXBs
KHRvSlModG9KUyhqc0NvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOwogICAgIGlmICghbm90aWZp
Y2F0aW9uKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVk
KCkuc3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpLT5ub3RpZmljYXRpb25JREZv
clRlc3Rpbmcobm90aWZpY2F0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238267</attachid>
            <date>2014-09-17 14:52:04 -0700</date>
            <delta_ts>2014-09-18 13:18:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136839-20140917145201.patch</filename>
            <type>text/plain</type>
            <size>156355</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTcxNDk1YzhkOTdhNzk0
OTEzMzhkZDIwZmNhYzE3OWI3Mzk2MDczZS4uYzc5MGNjZGQ5YjZlNWRmZWE4ZjUzMTkyNGFiZjE5
ODY5YTg3NGE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxMSBAQAorMjAxNC0wOS0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQg
Y2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9u
cyBpbnN0ZWFkIG9mIHJlcXVpcmluZyBleHBsaWNpdAorICAgICAgICB1c2Ugb2YgTk9ERV9UWVBF
X0NBU1RTKCkgbWFjcm8uIENhc3RpbmcgaXMgbm93IGRvbmUgdXNpbmcgdGhlIGZvbGxvd2luZwor
ICAgICAgICBmb3JtOiBkb3duY2FzdDxIVE1MRGl2RWxlbWVudD4oKSwgaW5zdGVhZCBvZiB0b0hU
TUxEaXZFbGVtZW50KCkuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIGZvcm0gKGkuZS4gdG9IVE1M
RGl2RWxlbWVudCgpKSBpcyBzdGlsbCBzdXBwb3J0ZWQgZm9yIG5vdworICAgICAgICBieSBnZW5l
cmF0aW5nIG1hY3JvcyB0aGF0IGNvbnZlcnQgdGhlc2UgY2FsbHMgaW50byB0aGUgbmV3IGZvcm0s
IHVudGlsCisgICAgICAgIHRoZSBjb2RlIGJhc2UgaXMgcG9ydGVkIHRvIHRoZSBuZXcgY2FzdGlu
ZyBoZWxwZXJzLgorCisgICAgICAgIFRoZSBwbGFuIGlzIGFsc28gdG8gdXNlIGlzPEhUTUxEaXZF
bGVtZW50PigpIGluc3RlYWQgb2YKKyAgICAgICAgaXNIVE1MRGl2RWxlbWVudCgpIGZvciBjb25z
aXN0ZW5jeSBidXQgdGhpcyB3YXMgbm90IGNoYW5nZWQgaW4gdGhpcworICAgICAgICBwYXRjaCB0
byBhdm9pZCBibG93aW5nIHVwIHRoZSBzaXplLgorCisgICAgICAgIFRoaXMgQ0wgYWxzbyB1cGRh
dGVzIHRoZSB3YXkgd2UgY29udmVydCBhIEpTVmFsdWUgaW50byBhbgorICAgICAgICBpbXBsZW1l
bnRhdGlvbiBwb2ludGVyLiBJbnN0ZWFkIG9mIHVzaW5nIHRvSFRNTERpdkVsZW1lbnQoKSwgd2hp
Y2gKKyAgICAgICAgbG9va2VkIGxpa2UgYSBjYXN0LCB3ZSBub3cgdXNlIEpTSFRNTERpdkVsZW1l
bnQ6OnRvSW1wbCgpLiBUaGlzCisgICAgICAgIGF2b2lkcyBjb25mbGljdGluZyB3aXRoIHRoZSB0
b1hYWEVsZW1lbnQoKSBtYWNyb3MgYW5kIG1ha2VzIGl0CisgICAgICAgIGNsZWFyZXIgdGhpcyBp
cyBub3QgYSBzaW1wbGUgY2FzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RKU0Jsb2IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29tbWFuZExpbmVBUElIb3N0OjpnZXRF
dmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6
ZGF0YWJhc2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3Rv
cmFnZUlkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50T3JOdWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN0cnVjdEpTRE9NRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01G
b3JtRGF0YTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdMaXN0Ojp0b0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6dG9ET01TdHJpbmdMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRE9NV2luZG93KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hM
aXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRXZlbnRUYXJnZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0V2ZW50VGFyZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4Y2Vw
dGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb25CYXNlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1M
U2VsZWN0RWxlbWVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdEluZGV4U2V0
dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0Nv
bnRleHRNZW51KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVJbml0TWVzc2FnZUV2ZW50KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGxNZXNzYWdlUG9ydEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6SlNO
b2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OmFwcGVuZENoaWxk
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlRmlsdGVyOjp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9O
b2RlRmlsdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0
b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZW5jcnlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6c2lnbik6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRs
ZUNyeXB0bzo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRvOjpleHBv
cnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OndyYXBLZXkpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRl
cik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVy
UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRVbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOgorICAgICAgICAo
V2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25N
YXRyaXgpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjayk6CisgICAgICAgIChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVjdDo6dG9JbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEFjdGl2ZURPTU9iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9JbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEN1c3RvbU5hbWVkR2V0dGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0RXZlbnRDb25zdHJ1Y3Rvcik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVG
dW5jdGlvbkRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRUYXJn
ZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RFdmVudFRhcmdldCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb246OnRvSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjp0b1Rlc3RFeGNlcHRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjp0b0ltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9k
Mik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1
cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0SW50ZXJmYWNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcjo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5hbWVkQ29u
c3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYzo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5vbmRl
dGVybWluaXN0aWMpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0
T2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpNdXRhYmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1tdXRh
YmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
b2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2Vx
dWVuY2VBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlv
bldpdGhTZXF1ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE9iajo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE9iaik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnND
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9JbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnM6OnRvSW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjp0b1Rlc3RUeXBlZGVmcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRl
Ojp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9hdHRyaWJ1dGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTcmVhZG9ubHk6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b3JlYWRvbmx5KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5o
OgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpkb3duY2FzdCk6
CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAgIChwcmludFR5cGVIZWxwZXJz
KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
RnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGFiZWxF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmpl
Y3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBhcmFt
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU291cmNlRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFN0eWxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRpdGxl
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2NyaXB0
VmFsdWVBc05vZGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0FsdEdseXBoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZFRnVuY0FFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0JFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0dFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZFRnVuY1JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdIS2VybkVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xp
bmVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdNUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2Vy
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1BvbHlnb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdU
ZXh0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHVktlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Zp
ZXdFbGVtZW50Lmg6CisKIDIwMTQtMDktMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEZpeCBydW50aW1lIGNyaXRpY2FsIHdhcm5p
bmdzIHdoZW4gd3JpdGluZyB0byB0aGUgY2xpcGJvYXJkIGFmdGVyIHIxNzM2ODcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwppbmRleCBkMjE4NmI5YTM4MTkwNjQzYzcwZjdjNjEyYWMzMTViMTYyYmY2ZGE0Li44Zjhi
NjM2MmQxZDFjOWE4MDJmYTQzYzk0OTFmMjNkZTE0YmIzMmY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTQtMDktMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIEpTWFhY
Ojp0b0ltcGwoKSBpbnN0ZWFkIG9mIHRvWFhYKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKiBET00v
V2ViRE9NT3BlcmF0aW9ucy5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dlYlZpZXcgX25vdGlmaWNhdGlvbklERm9yVGVzdGluZzpdKToKKwogMjAxNC0wOS0x
NiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRk
IGlPUyBTREsgbmFtZSBhbmQgdmVyc2lvbiBzdWZmaXggdG8gV2ViS2l0U3lzdGVtSW50ZXJmYWNl
IGRlYnVnL3JlbGVhc2UgcHJvZHVjdCBuYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzEwNDMzMzFlMmQxNzJl
Y2RlYTUwYTM0ODQ2MDY5YWNlN2NjYjc4NC4uMWViOGUxOTYwYjUxOWMyYjc4MDcyMTVkZmNmMWQx
YWI0NjIzNzM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTA5LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2VuZXJhdGUgRWxlbWVudCBj
YXN0aW5nIGhlbHBlciBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzNjgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBKU1hYWDo6dG9JbXBsKCkgaW5zdGVhZCBvZiB0b1hYWCgpIGZ1
bmN0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0
ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlOjpnZXRPckNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklEKToKKwogMjAxNC0wOS0xNyAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
V2ViS2l0V2ViVmlldzo6bG9hZC1mYWlsZWQtd2l0aC10bHMtZXJyb3JzIHNob3VsZCByZWNlaXZl
IHRoZSBmYWlsaW5nIFVSSSBpbnN0ZWFkIG9mIGEgaG9zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1t
CmluZGV4IDM2OWFiYjExMDcyMmQ3OGYyZTE2ODA5MzVlMjgzY2RmNWNmZDc5YmUuLjNkYmZkZTI4
NDA1ZTUzNzE0ZTA0YjBhZGIyMzUwYjBjOWNlMWU3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQu
bW0KQEAgLTIxMyw3ICsyMTMsNyBAQCBib29sIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Ojpp
bnN0YWxsUmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKICAgICAvLyBHZXQgdGhlIDx2aWRl
bz4gY3JlYXRlZCB0byByZXBsYWNlIHRoZSBwbHVnLWluLgogICAgIEpTQzo6SlNWYWx1ZSB2YWx1
ZSA9IHJlcGxhY2VtZW50LmdldChleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgInZpZGVvIikp
OwogICAgIGlmICghZXhlYy0+aGFkRXhjZXB0aW9uKCkgJiYgIXZhbHVlLmlzVW5kZWZpbmVkT3JO
dWxsKCkpCi0gICAgICAgIG1fbWVkaWFFbGVtZW50ID0gdG9IVE1MVmlkZW9FbGVtZW50KHZhbHVl
KTsKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSBKU0hUTUxWaWRlb0VsZW1lbnQ6OnRvSW1wbCh2
YWx1ZSk7CiAKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KSB7CiAgICAgICAgIExPRyhQbHVnaW5z
LCAiJXAgLSBGYWlsZWQgdG8gZmluZCA8dmlkZW8+IGVsZW1lbnQgY3JlYXRlZCBieSBRdWlja1Rp
bWUgcGx1Z2luIHJlcGxhY2VtZW50IHNjcmlwdC4iLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggYjEzZmFhMjdmMzAxY2M2YTFmYzA1NTQ4ODk5Y2FkYmE0MDUwNWY5MC4uNmRiOWQ1ZjEz
OGEwZmM5N2Y2MDk3OTJkNjIyZTg0MzQ5ZDM4Mzc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTc3LDYgKzc3LDcgQEAgX19aTjdXZWJDb3JlMTBGbG9hdFBvaW50QzFFUks3Q0dQb2ludAogX19a
TjdXZWJDb3JlMTBGbG9hdFBvaW50QzFFUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxMEZv
bnRHbHlwaHMxNXJlbGVhc2VGb250RGF0YUV2CiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19p
bmZvRQorX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50NnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19a
TjdXZWJDb3JlMTBMYXlvdXRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDV1
bml0ZUVSS1MwXwogX19aTjdXZWJDb3JlMTBMYXlvdXRSZWN0QzFFUktOU185RmxvYXRSZWN0RQpA
QCAtMTI0LDcgKzEyNSw2IEBAIF9fWk43V2ViQ29yZTEwVGltZVJhbmdlc0MxRWRkCiBfX1pON1dl
YkNvcmUxMGRlbGV0ZUZpbGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMGZpbGVFeGlz
dHNFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMHNldENvb2tpZXNFUE5TXzhEb2N1bWVu
dEVSS05TXzNVUkxFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxMHRvRG9jdW1lbnRFTjNK
U0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2UxM2dldENHSW1hZ2VSZWZFdgog
X19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZUMxRVA3Q0dJbWFnZVBOU18xM0ltYWdlT2JzZXJ2ZXJF
CiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlQzFFUE5TXzEzSW1hZ2VPYnNlcnZlckUKQEAgLTY2
Nyw3ICs2NjcsNiBAQCBfX1pON1dlYkNvcmUxNW9yaWdpbmFsVVJMRGF0YUVQNU5TVVJMCiBfX1pO
N1dlYkNvcmUxNXBhdGhHZXRGaWxlTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1
cmVwb3J0RXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVBOU18xMkNhY2hl
ZFNjcmlwdEUKIF9fWk43V2ViQ29yZTE1c2V0RE9NRXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVF
aQotX19aTjdXZWJDb3JlMTV0b0RPTVN0cmluZ0xpc3RFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pT
VmFsdWVFCiBfX1pON1dlYkNvcmUxNXZpc2l0ZWRMaW5rSGFzaEVQS3RqCiBfX1pON1dlYkNvcmUx
NXZpc2l0ZWRMaW5rSGFzaEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2QXBwbGljYXRp
b25DYWNoZTE4ZGlza1VzYWdlRm9yT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQpAQCAtMTI0
Miw2ICsxMjQxLDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjdjb21tYW5kRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlNkVkaXRvcjdjb3B5VVJMRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTZFZGl0b3I3b3V0ZGVudEV2CiBfX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5m
b0UKK19fWk43V2ViQ29yZTZKU05vZGU2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNv
cmU2TGVuZ3RoQzFFTjNXVEY3UGFzc1JlZklOU18xNkNhbGN1bGF0aW9uVmFsdWVFRUUKIF9fWk43
V2ViQ29yZTZSZWdpb24yMXVwZGF0ZUJvdW5kc0Zyb21TaGFwZUV2CiBfX1pON1dlYkNvcmU2UmVn
aW9uNXVuaXRlRVJLUzBfCkBAIC0xMjU5LDcgKzEyNTksNiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0
OHNldEZvY3VzRWIKIF9fWk43V2ViQ29yZTZXaWRnZXQ5c2V0UGFyZW50RVBOU18xMFNjcm9sbFZp
ZXdFCiBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvSW50OEVQTjNKU0M5
RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlv
bkUKLV9fWk43V2ViQ29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTdFbGVt
ZW50MTJzZXRBdHRyaWJ1dGVFUktOM1dURjEyQXRvbWljU3RyaW5nRVM0X1JpCiBfX1pON1dlYkNv
cmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVJLTjNXVEYxMkF0
b21pY1N0cmluZ0UKIF9fWk43V2ViQ29yZTdFbGVtZW50MTZjcmVhdGVTaGFkb3dSb290RVJpCkBA
IC0xMjczLDYgKzEyNzIsNyBAQCBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfMTBMYXlvdXRS
ZWN0RQogX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNv
cmU3SW50U2l6ZUMxRVJLNkNHU2l6ZQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSS05TXzlGbG9h
dFNpemVFCitfX1pON1dlYkNvcmU3SlNSYW5nZTZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43
V2ViQ29yZTdUZXh0UnVuMTlhbGxvd3NSb3VuZGluZ0hhY2tzRXYKIF9fWk43V2ViQ29yZTdUZXh0
UnVuMjFzX2FsbG93c1JvdW5kaW5nSGFja3NFCiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIyc2V0QWxs
b3dzUm91bmRpbmdIYWNrc0ViCkBAIC0xMjgxLDcgKzEyODEsNiBAQCBfX1pON1dlYkNvcmU3anNB
cnJheUVQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RU4zV1RGMTBQYXNz
UmVmUHRySQogX19aTjdXZWJDb3JlN21ha2VSR0JFaWlpCiBfX1pON1dlYkNvcmU3dG9JbnQxNkVQ
TjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmln
dXJhdGlvbkUKIF9fWk43V2ViQ29yZTd0b0ludDY0RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1Zh
bHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uRQotX19aTjdXZWJDb3JlN3Rv
UmFuZ2VFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTd0b1VJbnQ4RVBOM0pTQzlFeGVjU3Rh
dGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uRQogX19a
TjdXZWJDb3JlOEJsb2JEYXRhMTRzZXRDb250ZW50VHlwZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZThDU1NWYWx1ZTdkZXN0cm95RXYKQEAgLTE0OTUsNiArMTQ5NCw3IEBAIF9fWk43V2Vi
Q29yZTlJbmxpbmVCb3gxNGRpcnR5TGluZUJveGVzRXYKIF9fWk43V2ViQ29yZTlJbmxpbmVCb3gx
NHNlbGVjdGlvblN0YXRlRXYKIF9fWk43V2ViQ29yZTlJbmxpbmVCb3gxNnBsYWNlRWxsaXBzaXNC
b3hFYmZmZlJmUmIKIF9fWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRQorX19aTjdXZWJDb3Jl
OUpTRWxlbWVudDZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTlMYXllclBvb2xD
MUV2CiBfX1pON1dlYkNvcmU5TGF5ZXJQb29sRDFFdgogX19aTjdXZWJDb3JlOVBhZ2VDYWNoZTEx
c2V0Q2FwYWNpdHlFaQpAQCAtMTUzNSw3ICsxNTM1LDYgQEAgX19aTjdXZWJDb3JlOWZvbnRDYWNo
ZUV2CiBfX1pON1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FUzJfCiBf
X1pON1dlYkNvcmU5cGFnZUNhY2hlRXYKIF9fWk43V2ViQ29yZTlwbGFpblRleHRFUEtOU181UmFu
Z2VFdGIKLV9fWk43V2ViQ29yZTl0b0VsZW1lbnRFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29y
ZTl1bmlvblJlY3RFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UmVjdEVMbTBFTlMwXzE1Q3Jhc2hP
bk92ZXJmbG93RUVFCiBfX1pOSzNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3QxMmdsb2JhbE9iamVj
dEV2CiBfX1pOSzNXVEY2U3RyaW5nMTRjcmVhdGVDRlN0cmluZ0V2CkBAIC0zMjU3LDcgKzMyNTYs
NyBAQCBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hFcnJvckV2ZW50RXYKIF9f
Wk43V2ViQ29yZTEyTm90aWZpY2F0aW9uOGZpbmFsaXplRXYKIF9fWk43V2ViQ29yZTEyTm90aWZp
Y2F0aW9uQzFFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb25EMUV2Ci1fX1pON1dlYkNvcmUx
NHRvTm90aWZpY2F0aW9uRU4zSlNDN0pTVmFsdWVFCitfX1pON1dlYkNvcmUxNEpTTm90aWZpY2F0
aW9uNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTlwcm92aWRlTm90aWZpY2F0
aW9uRVBOU180UGFnZUVQTlNfMThOb3RpZmljYXRpb25DbGllbnRFCiBfX1pON1dlYkNvcmUyMk5v
dGlmaWNhdGlvbkNvbnRyb2xsZXIxMGNsaWVudEZyb21FUE5TXzRQYWdlRQogI2VuZGlmCkBAIC0z
MzY5LDcgKzMzNjgsNyBAQCBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE2aGFuZGxlVG91Y2hF
dmVudEVSS05TXzE4UGxhdGZvcm1Ub3VjaEV2ZW50RQogI2lmIEVOQUJMRShWSURFTykKIC5vYmpj
X2NsYXNzX25hbWVfV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlcgogX19aTjdXZWJDb3JlMTBU
aW1lUmFuZ2VzM2FkZEVkZAotX19aTjdXZWJDb3JlMTJ0b1RpbWVSYW5nZXNFTjNKU0M3SlNWYWx1
ZUUKK19fWk43V2ViQ29yZTEySlNUaW1lUmFuZ2VzNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19a
TjdXZWJDb3JlMTZIVE1MTWVkaWFFbGVtZW50MTJlbmRTY3J1YmJpbmdFdgogX19aTjdXZWJDb3Jl
MTZIVE1MTWVkaWFFbGVtZW50MTRiZWdpblNjcnViYmluZ0V2CiBfX1pON1dlYkNvcmUxNkhUTUxN
ZWRpYUVsZW1lbnQxNGV4aXRGdWxsc2NyZWVuRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAppbmRl
eCBlNmI1MDY0MjdlNDU4ODk2NWJkYjY3Yzg5ZmEyNTZlMzM1ZDRlMTc1Li5hYmIwMDgwYmNiOWQz
N2Y2ODU5ZmUzZjYyNTFlMGVkMDQwMDlkMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCkBA
IC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU0F1ZGlvQnVmZmVy
U291cmNlTm9kZTo6c2V0QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsK
LSAgICBBdWRpb0J1ZmZlciogYnVmZmVyID0gdG9BdWRpb0J1ZmZlcih2YWx1ZSk7CisgICAgQXVk
aW9CdWZmZXIqIGJ1ZmZlciA9IEpTQXVkaW9CdWZmZXI6OnRvSW1wbCh2YWx1ZSk7CiAgICAgaWYg
KCFidWZmZXIpIHsKICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVUeXBlRXJyb3IoZXhlYywgIlZhbHVlIGlzIG5vdCBvZiB0eXBlIEF1ZGlvQnVmZmVyIikpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jsb2JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9t
LmNwcAppbmRleCAyOTNhZmIzNzYyODY4YjgzOGI5ZjVjMTJlYmE2NDU2M2Y4OTM0NjM4Li4wNmE5
MTI0NDgzNjBkZDU3ZDMyYjUwYzNlMGI1ZGVkZDc1NzdjZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTQmxvYihFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYXJyYXlCdWZmZXIpOwogICAgICAgICBlbHNl
IGlmIChSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBhcnJheUJ1ZmZlclZpZXcgPSB0b0FycmF5QnVm
ZmVyVmlldyhpdGVtKSkKICAgICAgICAgICAgIGJsb2JCdWlsZGVyLmFwcGVuZChhcnJheUJ1ZmZl
clZpZXcucmVsZWFzZSgpKTsKLSAgICAgICAgZWxzZSBpZiAoQmxvYiogYmxvYiA9IHRvQmxvYihp
dGVtKSkKKyAgICAgICAgZWxzZSBpZiAoQmxvYiogYmxvYiA9IEpTQmxvYjo6dG9JbXBsKGl0ZW0p
KQogICAgICAgICAgICAgYmxvYkJ1aWxkZXIuYXBwZW5kKGJsb2IpOwogICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgIFN0cmluZyBzdHJpbmcgPSBpdGVtLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExp
bmVBUElIb3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFu
ZExpbmVBUElIb3N0Q3VzdG9tLmNwcAppbmRleCA3OTU0OGU4MmMzN2NiZDc1MjNhNzg0N2FjODlk
ODZmOWYwMDBlNzg2Li5mMmZmYzE3ZTcxYjc5ZDlhZTJkNDYxNzA0NTE1OTZiMGU3YjMxNzAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9z
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGlu
ZUFQSUhvc3RDdXN0b20uY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgSlNWYWx1ZSBKU0NvbW1hbmRM
aW5lQVBJSG9zdDo6Z2V0RXZlbnRMaXN0ZW5lcnMoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICgh
dmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAKLSAgICBOb2RlKiBub2RlID0gdG9Ob2RlKHZhbHVlKTsKKyAgICBOb2RlKiBu
b2RlID0gSlNOb2RlOjp0b0ltcGwodmFsdWUpOwogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBKU1ZhbHVlIEpTQ29tbWFu
ZExpbmVBUElIb3N0OjpkYXRhYmFzZUlkKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIERhdGFiYXNl
KiBkYXRhYmFzZSA9IHRvRGF0YWJhc2UoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAg
IERhdGFiYXNlKiBkYXRhYmFzZSA9IEpTRGF0YWJhc2U6OnRvSW1wbChleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgwKSk7CiAgICAgaWYgKGRhdGFiYXNlKQogICAgICAgICByZXR1cm4ganNTdHJpbmdX
aXRoQ2FjaGUoZXhlYywgaW1wbCgpLmRhdGFiYXNlSWRJbXBsKGRhdGFiYXNlKSk7CiAjZW5kaWYK
QEAgLTE2Miw3ICsxNjIsNyBAQCBKU1ZhbHVlIEpTQ29tbWFuZExpbmVBUElIb3N0OjpzdG9yYWdl
SWQoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQog
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIFN0b3JhZ2UqIHN0b3JhZ2UgPSB0
b1N0b3JhZ2UoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFN0b3JhZ2UqIHN0b3Jh
Z2UgPSBKU1N0b3JhZ2U6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAg
aWYgKHN0b3JhZ2UpCiAgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBpbXBs
KCkuc3RvcmFnZUlkSW1wbChzdG9yYWdlKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAKaW5kZXggMzFiMTgwYmY3ZmVhZTVmZmMw
N2ZkMGVlOWMyOGEyZjhkNjI3ZGU1NS4uZTllMGJiNzEzM2E3MTY0OGNjZThiNWUyYzJhNjY4NjE2
NDM1NjQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3Jt
RGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3Jt
RGF0YUN1c3RvbS5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgSFRNTEZvcm1FbGVtZW50KiB0b0hUTUxGb3Jt
RWxlbWVudChKU0M6OkpTVmFsdWUgdmFsdWUpCitzdGF0aWMgSFRNTEZvcm1FbGVtZW50KiB0b0hU
TUxGb3JtRWxlbWVudE9yTnVsbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIHZh
bHVlLmluaGVyaXRzKEpTSFRNTEZvcm1FbGVtZW50OjppbmZvKCkpID8gJmpzQ2FzdDxKU0hUTUxG
b3JtRWxlbWVudCo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKSA6IDA7CisgICAgcmV0dXJuIHZh
bHVlLmluaGVyaXRzKEpTSFRNTEZvcm1FbGVtZW50OjppbmZvKCkpID8gJmpzQ2FzdDxKU0hUTUxG
b3JtRWxlbWVudCo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKSA6IG51bGxwdHI7CiB9CiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNET01Gb3JtRGF0YShFeGVjU3Rh
dGUqIGV4ZWMpCkBAIC01Miw3ICs1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0SlNET01Gb3JtRGF0YShFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0gPSAwOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAwKQotICAg
ICAgICBmb3JtID0gdG9IVE1MRm9ybUVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAg
ICBmb3JtID0gdG9IVE1MRm9ybUVsZW1lbnRPck51bGwoZXhlYy0+YXJndW1lbnQoMCkpOwogICAg
IFJlZlB0cjxET01Gb3JtRGF0YT4gZG9tRm9ybURhdGEgPSBET01Gb3JtRGF0YTo6Y3JlYXRlKGZv
cm0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0Nv
bnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgZG9tRm9ybURhdGEuZ2V0KCkpKSk7CiB9CkBAIC02
Niw3ICs2Niw3IEBAIEpTVmFsdWUgSlNET01Gb3JtRGF0YTo6YXBwZW5kKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgICAgIFN0cmluZyBmaWxlbmFtZTsKICAgICAgICAgICAgIGlmIChleGVjLT5h
cmd1bWVudENvdW50KCkgPj0gMyAmJiAhZXhlYy0+YXJndW1lbnQoMikuaXNVbmRlZmluZWRPck51
bGwoKSkKICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKLSAgICAgICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwg
dG9CbG9iKHZhbHVlKSwgZmlsZW5hbWUpOworICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChuYW1l
LCBKU0Jsb2I6OnRvSW1wbCh2YWx1ZSksIGZpbGVuYW1lKTsKICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01TdHJpbmdMaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
U3RyaW5nTGlzdEN1c3RvbS5jcHAKaW5kZXggMjMzMzdiMmYyZDk2NjA3YjU4ZDYyN2EyYjhjZDQz
NjM0ZmJkNjlhYS4uYWQzYWM0NDQyNzJiMzI1N2VlZmJjMzA3ZTBjYjY1ZjdjOWIzM2E1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdMaXN0Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0
b20uY3BwCkBAIC0yNSw3ICsyNSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiB0b0RPTVN0cmluZ0xpc3Qo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0
PiBKU0RPTVN0cmluZ0xpc3Q6OnRvSW1wbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTRE9NU3RyaW5nTGlzdDo6aW5mbygpKSkKICAg
ICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNET01TdHJpbmdMaXN0Kj4oYXNPYmplY3QodmFsdWUpKS0+
aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCmluZGV4IDVmM2I1MTdhMTQyYmUzMmZiNjRlNzk4YTk1YzgxYjUzMTFkMWYwOGQuLmU4
NGQzZWQyZmFhODk5ZDBiMzUwNGM4NWYzZGMxYWY2MTgzYTc2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTY4NCw3ICs2ODQs
NyBAQCBKU1ZhbHVlIEpTRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotRE9NV2luZG93KiB0b0RPTVdp
bmRvdyhKU1ZhbHVlIHZhbHVlKQorRE9NV2luZG93KiBKU0RPTVdpbmRvdzo6dG9JbXBsKEpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCmluZGV4IDFh
ZjAyNmRiYTQ1ZDk0NzkwODU0NGJiMTg0YjVjNjY2Y2U0ZmIyNmEuLmQzMGIyNjNhM2YyNjc0MDZh
YzMxNmMxMTc1Y2I0NDMyMGQ4OTgyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEaWN0aW9uYXJ5LmNwcApAQCAtMTU1LDIyICsxNTUsMjIgQEAgdm9pZCBKU0RpY3Rpb25hcnk6
OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxTZXJp
YWxpemUKIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1Zh
bHVlIHZhbHVlLCBSZWZQdHI8RE9NV2luZG93PiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRv
RE9NV2luZG93KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU0RPTVdpbmRvdzo6dG9JbXBsKHZhbHVl
KTsKIH0KIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1Zh
bHVlIHZhbHVlLCBSZWZQdHI8RXZlbnRUYXJnZXQ+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0g
dG9FdmVudFRhcmdldCh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNFdmVudFRhcmdldDo6dG9JbXBs
KHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUq
LCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Tm9kZT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0
b05vZGUodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTm9kZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAog
dm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVl
LCBSZWZQdHI8U3RvcmFnZT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b1N0b3JhZ2UodmFs
dWUpOworICAgIHJlc3VsdCA9IEpTU3RvcmFnZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBK
U0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUs
IE1lc3NhZ2VQb3J0QXJyYXkmIHJlc3VsdCkKQEAgLTIyMiwzMSArMjIyLDMxIEBAIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFs
dWUsIFJlZlB0cjxVaW50CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIHZvaWQgSlNEaWN0
aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUs
IFJlZlB0cjxNZWRpYUtleUVycm9yPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvTWVkaWFL
ZXlFcnJvcih2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNNZWRpYUtleUVycm9yOjp0b0ltcGwodmFs
dWUpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogdm9pZCBKU0RpY3Rp
b25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPE1lZGlhU3RyZWFtPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvTWVkaWFTdHJl
YW0odmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFTdHJlYW06OnRvSW1wbCh2YWx1ZSk7CiB9
CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYgcmVzdWx0KQogewotICAg
IHJlc3VsdCA9IHRvTWVkaWFTdHJlYW1UcmFjayh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNNZWRp
YVN0cmVhbVRyYWNrOjp0b0ltcGwodmFsdWUpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRk9O
VF9MT0FEX0VWRU5UUykKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+JiByZXN1
bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9DU1NGb250RmFjZVJ1bGUodmFsdWUpOworICAgIHJlc3Vs
dCA9IEpTQ1NTRm9udEZhY2VSdWxlOjp0b0ltcGwodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBS
ZWZQdHI8RE9NRXJyb3I+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9ET01FcnJvcih2YWx1
ZSk7CisgICAgcmVzdWx0ID0gSlNET01FcnJvcjo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBK
U0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1Zh
bHVlIHZhbHVlLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYgcmVzdWx0KQpAQCAtMjYxLDcgKzI2MSw3
IEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiB2b2lkIEpT
RGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZh
bHVlLCBSZWZQdHI8R2FtZXBhZD4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0dhbWVwYWQo
dmFsdWUpOworICAgIHJlc3VsdCA9IEpTR2FtZXBhZDo6dG9JbXBsKHZhbHVlKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3Bw
CmluZGV4IGZhMjQ0NDNiNGU5ZDE3ZWRiZmRhYmFmY2FiNDM5NjU3NWNmZGMxNzEuLjNiOGE5OWVk
ZjgzZmYzNTA5NzU0NDY3MGIwNTNlZDVjNGFmZmMyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgSlNW
YWx1ZSBKU0RvY3VtZW50OjpjcmVhdGVUb3VjaExpc3QoRXhlY1N0YXRlKiBleGVjKQogICAgIFJl
ZlB0cjxUb3VjaExpc3Q+IHRvdWNoTGlzdCA9IFRvdWNoTGlzdDo6Y3JlYXRlKCk7CiAKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgaSsrKQotICAgICAg
ICB0b3VjaExpc3QtPmFwcGVuZCh0b1RvdWNoKGV4ZWMtPmFyZ3VtZW50KGkpKSk7CisgICAgICAg
IHRvdWNoTGlzdC0+YXBwZW5kKEpTVG91Y2g6OnRvSW1wbChleGVjLT5hcmd1bWVudChpKSkpOwog
CiAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIHRvdWNoTGlzdC5yZWxlYXNl
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRh
cmdldEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0
Q3VzdG9tLmNwcAppbmRleCA1MjEwZjEyYmI2Y2UzNGU3NDYzZDhlNmUyODlhNGI4ZDcwNjM3OWNm
Li5mNTRhNTk2N2Q4ZTljYjJmM2NkYTQ2ZjIyMWQxMDQ5YWY1NDU4MjAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcApAQCAtNTgs
NyArNTgsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBFdmVudFRhcmdldCogdGFyZwogICAgIGlmICh2YWx1ZS5pbmhlcml0
cyhKUyMjaW50ZXJmYWNlTmFtZTo6aW5mbygpKSkgICAgICAgICAgICAgICAgICAgICAgXAogICAg
ICAgICByZXR1cm4gJmpzQ2FzdDxKUyMjaW50ZXJmYWNlTmFtZSo+KGFzT2JqZWN0KHZhbHVlKSkt
PmltcGwoKTsKIAotRXZlbnRUYXJnZXQqIHRvRXZlbnRUYXJnZXQoSlNDOjpKU1ZhbHVlIHZhbHVl
KQorRXZlbnRUYXJnZXQqIEpTRXZlbnRUYXJnZXQ6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShET01XaW5kb3dTaGVsbCkKICAg
ICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKEV2ZW50VGFyZ2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKaW5kZXggYmRlMjViMGE2Nzcw
ODFlODBjOWQ1ZmNjZmI5YTdhMTJmOTc2YzE5OC4uZjYyNjJkMTcxNzlmNjYwMDAyNWZmN2ZhMGZj
YmJiM2MwNDk1ZDNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
eGNlcHRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2Vw
dGlvbkJhc2UuY3BwCkBAIC00MSwyMCArNDEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
eGNlcHRpb25CYXNlKiB0b0V4Y2VwdGlvbkJhc2UoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAg
IGlmIChET01Db3JlRXhjZXB0aW9uKiBkb21FeGNlcHRpb24gPSB0b0RPTUNvcmVFeGNlcHRpb24o
dmFsdWUpKQorICAgIGlmIChET01Db3JlRXhjZXB0aW9uKiBkb21FeGNlcHRpb24gPSBKU0RPTUNv
cmVFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PEV4Y2VwdGlvbkJhc2UqPihkb21FeGNlcHRpb24pOwotICAgIGlmIChSYW5nZUV4Y2VwdGlv
biogcmFuZ2VFeGNlcHRpb24gPSB0b1JhbmdlRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoUmFu
Z2VFeGNlcHRpb24qIHJhbmdlRXhjZXB0aW9uID0gSlNSYW5nZUV4Y2VwdGlvbjo6dG9JbXBsKHZh
bHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHJh
bmdlRXhjZXB0aW9uKTsKLSAgICBpZiAoRXZlbnRFeGNlcHRpb24qIGV2ZW50RXhjZXB0aW9uID0g
dG9FdmVudEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKEV2ZW50RXhjZXB0aW9uKiBldmVudEV4
Y2VwdGlvbiA9IEpTRXZlbnRFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihldmVudEV4Y2VwdGlvbik7Ci0gICAg
aWYgKFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKiB4bWxIdHRwRXhjZXB0aW9uID0gdG9YTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9u
KiB4bWxIdHRwRXhjZXB0aW9uID0gSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6dG9JbXBsKHZh
bHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHht
bEh0dHBFeGNlcHRpb24pOwotICAgIGlmIChTVkdFeGNlcHRpb24qIHN2Z0V4Y2VwdGlvbiA9IHRv
U1ZHRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoU1ZHRXhjZXB0aW9uKiBzdmdFeGNlcHRpb24g
PSBKU1NWR0V4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHN2Z0V4Y2VwdGlvbik7Ci0gICAgaWYgKFhQYXRoRXhj
ZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0gdG9YUGF0aEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYg
KFhQYXRoRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0gSlNYUGF0aEV4Y2VwdGlvbjo6dG9JbXBs
KHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+
KHBhdGhFeGNlcHRpb24pOwogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgaWYgKFNRTEV4
Y2VwdGlvbiogcGF0aEV4Y2VwdGlvbiA9IHRvU1FMRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAo
U1FMRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0gSlNTUUxFeGNlcHRpb246OnRvSW1wbCh2YWx1
ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihwYXRo
RXhjZXB0aW9uKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcAppbmRleCAxZDQwYzYwZDg3MDI3NzU0
ZjAxM2MyYjIyNTcyYzAxZGMyYzhjZWI5Li5iZmMxZGQ1OTVmYTllZThlZmUyZjc1NWJiN2U1Zjhi
NzQ5ODc4MjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxN
ZWRpYUVsZW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgdm9pZCBKU0hUTUxN
ZWRpYUVsZW1lbnQ6OnNldENvbnRyb2xsZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSkKICAg
ICAvLyBPbiBzZXR0aW5nLCBpdCBtdXN0IGZpcnN0IHJlbW92ZSB0aGUgZWxlbWVudCdzIG1lZGlh
Z3JvdXAgYXR0cmlidXRlLCBpZiBhbnksIAogICAgIGltcGwoKS5zZXRNZWRpYUdyb3VwKFN0cmlu
ZygpKTsKICAgICAvLyBhbmQgdGhlbiBzZXQgdGhlIGN1cnJlbnQgbWVkaWEgY29udHJvbGxlciB0
byB0aGUgZ2l2ZW4gdmFsdWUuCi0gICAgaW1wbCgpLnNldENvbnRyb2xsZXIodG9NZWRpYUNvbnRy
b2xsZXIodmFsdWUpKTsKKyAgICBpbXBsKCkuc2V0Q29udHJvbGxlcihKU01lZGlhQ29udHJvbGxl
cjo6dG9JbXBsKHZhbHVlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRleCA3
NGE1ODY3MmY0N2RmN2M2ZmFkZmY4NDBmOTM0NzgyNzZiYzk4OGNkLi43MWYzZGRiMDEzNDY4Y2Ez
NTQ0MWZkYTg1YTVlYTMwZDA5MTA5MDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCkBAIC02
Myw3ICs2Myw3IEBAIHZvaWQgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmluZGV4U2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsCiBKU1ZhbHVlIEpTSFRNTE9wdGlv
bnNDb2xsZWN0aW9uOjphZGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEhUTUxPcHRpb25zQ29s
bGVjdGlvbiYgaW1wID0gaW1wbCgpOwotICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSB0
b0hUTUxPcHRpb25FbGVtZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBIVE1MT3B0aW9uRWxl
bWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50
KDApKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMikKICAgICAgICAgaW1wLmFkZChvcHRpb24sIGVjKTsKQEAgLTgxLDcgKzgxLDcg
QEAgSlNWYWx1ZSBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6cmVtb3ZlKEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICAvLyBUaGUgYXJndW1lbnQgY2FuIGJlIGFuIEhUTUxPcHRpb25FbGVtZW50IG9y
IGFuIGluZGV4LgogICAgIEpTVmFsdWUgYXJndW1lbnQgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAg
ICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoYXJn
dW1lbnQpKQorICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9u
RWxlbWVudDo6dG9JbXBsKGFyZ3VtZW50KSkKICAgICAgICAgaW1wbCgpLnJlbW92ZShvcHRpb24p
OwogICAgIGVsc2UKICAgICAgICAgaW1wbCgpLnJlbW92ZShhcmd1bWVudC50b0ludDMyKGV4ZWMp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVs
ZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0
RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggNDNmNjk0YjUwYWUzMzZlYjkzZGYzNmMxOGNjNTAzNWU0
NTgyMGQwNS4uZGRkMDkyOTJhMTkyMDI4MTExOTE0MjU5OGNjZGViYTRjZTQ5NGI1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVu
dEN1c3RvbS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgSlNWYWx1ZSBKU0hUTUxTZWxlY3RFbGVtZW50
OjpyZW1vdmUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
ZWMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFRoZSBIVE1MU2VsZWN0RWxlbWVudDo6cmVt
b3ZlKCkgZnVuY3Rpb24gY2FuIHRha2UgZWl0aGVyIGFuIG9wdGlvbiBvYmplY3Qgb3IgdGhlIGlu
ZGV4IG9mIGFuIG9wdGlvbi4KLSAgICAgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24g
PSB0b0hUTUxPcHRpb25FbGVtZW50KGV4ZWMtPmFyZ3VtZW50KDApKSkKKyAgICAgICAgaWYgKEhU
TUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwoZXhl
Yy0+YXJndW1lbnQoMCkpKQogICAgICAgICAgICAgc2VsZWN0LnJlbW92ZShvcHRpb24pOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBzZWxlY3QucmVtb3ZlQnlJbmRleChleGVjLT5hcmd1bWVu
dCgwKS50b0ludDMyKGV4ZWMpKTsKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBzZWxlY3RJbmRleFNl
dHRlcihIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQKICAgICAgICAgc2VsZWN0LT5yZW1vdmVCeUluZGV4KGluZGV4KTsKICAgICBlbHNlIHsK
ICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIEhUTUxPcHRpb25FbGVtZW50
KiBvcHRpb24gPSB0b0hUTUxPcHRpb25FbGVtZW50KHZhbHVlKTsKKyAgICAgICAgSFRNTE9wdGlv
bkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbCh2YWx1ZSk7CiAg
ICAgICAgIGlmICghb3B0aW9uKQogICAgICAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsK
ICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCmluZGV4IGY0YjU1NWY4MzQ5YTQw
M2FiMTQ1MjAxNjIzNzU0MjYyMDY4MDlkYmQuLmY1NzQxMDA5OTU5MjYwZmViN2Y5N2E2ZGQ3ZTNj
NTUzYjIzMzczNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5z
cGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKQEAgLTEzMSw3ICsxMzEsNyBA
QCBKU1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaG93Q29udGV4dE1lbnUoRXhlY1N0
YXRlKiBleGVjKQogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIGlmIChleGVjLT5hcmd1
bWVudENvdW50KCkgPCAyKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICBFdmVu
dCogZXZlbnQgPSB0b0V2ZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBFdmVudCogZXZlbnQg
PSBKU0V2ZW50Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpOwogCiAgICAgSlNBcnJheSogYXJy
YXkgPSBhc0FycmF5KGV4ZWMtPmFyZ3VtZW50KDEpKTsKICAgICBDb250ZXh0TWVudSBtZW51Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwCmluZGV4IGJhOWUzY2M4ZWQ2OTJlOTQwM2U2Nzg3NzFhMjU2ZTdmYWIxOGNkMTUuLjliYjNm
ZGFiZGZiMGYxZTg5ODE0ZjRhMzg5Zjk0MDM0YTlkMzE3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTk1LDcgKzk1
LDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBoYW5kbGVJbml0TWVzc2FnZUV2ZW50KEpTTWVzc2Fn
ZUV2ZW50KiBqc0V2ZW50LCBKU0M6OkV4ZWNTdGEKICAgICBib29sIGNhbmNlbGFibGVBcmcgPSBl
eGVjLT5hcmd1bWVudCgyKS50b0Jvb2xlYW4oZXhlYyk7CiAgICAgY29uc3QgU3RyaW5nIG9yaWdp
bkFyZyA9IGV4ZWMtPmFyZ3VtZW50KDQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAg
ICBjb25zdCBTdHJpbmcgbGFzdEV2ZW50SWRBcmcgPSBleGVjLT5hcmd1bWVudCg1KS50b1N0cmlu
ZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0gICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSB0b0RPTVdp
bmRvdyhleGVjLT5hcmd1bWVudCg2KSk7CisgICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSBKU0RP
TVdpbmRvdzo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDYpKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZVBvcnRBcnJheT4gbWVzc2FnZVBvcnRzOwogICAgIE93blB0cjxBcnJheUJ1ZmZlckFy
cmF5PiBhcnJheUJ1ZmZlcnM7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCg3KS5pc1VuZGVmaW5l
ZE9yTnVsbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01l
c3NhZ2VQb3J0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2Fn
ZVBvcnRDdXN0b20uY3BwCmluZGV4IDc1YWJlMThjZjNjNWZkYzU1MGVjNjJhOTI4ZmYwNWRiYzk0
MDVkMWMuLjk0NmZlMmFlNzU1OGMyYzA5ODQ5NjI5ODllN2ZkM2IzMTkzYzkxNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCkBA
IC04NCw3ICs4NCw3IEBAIHZvaWQgZmlsbE1lc3NhZ2VQb3J0QXJyYXkoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgTWVzc2FnZVBvcnRBCiAgICAgICAgIH0KIAogICAg
ICAgICAvLyBWYWxpZGF0aW9uIG9mIE9iamVjdHMgaW1wbGVtZW50aW5nIGFuIGludGVyZmFjZSwg
cGVyIFdlYklETCBzcGVjIDQuMS4xNS4KLSAgICAgICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0
ID0gdG9NZXNzYWdlUG9ydCh2YWx1ZSk7CisgICAgICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gcG9y
dCA9IEpTTWVzc2FnZVBvcnQ6OnRvSW1wbCh2YWx1ZSk7CiAgICAgICAgIGlmIChwb3J0KSB7CiAg
ICAgICAgICAgICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIHBvcnRzLgogICAgICAgICAgICAgaWYg
KHBvcnRBcnJheS5jb250YWlucyhwb3J0KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggZDM2MjRlMWYyMzczY2U5NzgwMjVjNDZlYmUyMWZjZWU0
MWZhNmFjZi4uZGQ3YjIzNTAwZDAyNzU0NDU2MTQwZTU4ZWQ2MGZiY2QwYjhkZTBmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0xMzUsNyArMTM1
LDcgQEAgYm9vbCBKU05vZGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHYKIEpTVmFsdWUgSlNOb2RlOjppbnNlcnRCZWZv
cmUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJv
b2wgb2sgPSBpbXBsKCkuaW5zZXJ0QmVmb3JlKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRv
Tm9kZShleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLmluc2Vy
dEJlZm9yZShKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSksIEpTTm9kZTo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC0xNDUs
NyArMTQ1LDcgQEAgSlNWYWx1ZSBKU05vZGU6Omluc2VydEJlZm9yZShFeGVjU3RhdGUqIGV4ZWMp
CiBKU1ZhbHVlIEpTTm9kZTo6cmVwbGFjZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZCh0
b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7
CisgICAgYm9vbCBvayA9IGltcGwoKS5yZXBsYWNlQ2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+
YXJndW1lbnQoMCkpLCBKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKICAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJu
IGV4ZWMtPmFyZ3VtZW50KDEpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjpy
ZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU05vZGU6OnJlbW92ZUNoaWxk
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29s
IG9rID0gaW1wbCgpLnJlbW92ZUNoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIGVjKTsK
KyAgICBib29sIG9rID0gaW1wbCgpLnJlbW92ZUNoaWxkKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFy
Z3VtZW50KDApKSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYg
KG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC0xNjUsNyArMTY1LDcg
QEAgSlNWYWx1ZSBKU05vZGU6OnJlbW92ZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFsdWUg
SlNOb2RlOjphcHBlbmRDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcGwoKS5hcHBlbmRDaGlsZCh0b05vZGUoZXhlYy0+
YXJndW1lbnQoMCkpLCBlYyk7CisgICAgYm9vbCBvayA9IGltcGwoKS5hcHBlbmRDaGlsZChKU05v
ZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50KDAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5j
cHAKaW5kZXggMjhjMTZjMTFlYzk1NDExMzk5OTY2MjM2ZTU3Njk4MDc1YWIwODFkYS4uNGUxNDdk
NzVkNmUxYmRlZGI5MWNkMjlhMDkwMTg5NGY4NzJjN2FkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCkBAIC0zNSw3ICszNSw3IEBA
IHZvaWQgSlNOb2RlRmlsdGVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihKU0M6OlNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmaW1wbCgpKTsKIH0KIAot
UGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIoSlNDOjpWTSYgdm0sIEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKK1Bhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gSlNOb2RlRmlsdGVyOjp0b0ltcGwo
SlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaW5oZXJp
dHMoSlNOb2RlRmlsdGVyOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gJkpTQzo6anNDYXN0PEpT
Tm9kZUZpbHRlcio+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAppbmRleCBmNDA1YTAz
ZGY2ZTMwMWVlODA2YWNjODY4NzI2MzFlNmJkYjQ4OWQ4Li42ODgwYTBjODQxMzM1M2NlOTA3NjFj
ZTUzNmM1ZDNmMDljNjM0Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgSlNWYWx1ZSBK
U1N1YnRsZUNyeXB0bzo6ZW5jcnlwdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5
cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5
PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsK
ICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBA
IC0xOTcsNyArMTk3LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdChFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJl
ZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJu
IHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC0yNDgsNyArMjQ4LDcgQEAgSlNWYWx1ZSBKU1N1
YnRsZUNyeXB0bzo6c2lnbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkg
PSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBp
ZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC0yOTks
NyArMjk5LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dmVyaWZ5KEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENy
eXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwor
ICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYyk7CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5
cHRvOjpleHBvcnRLZXkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0g
SlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYg
KCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtNjMwLDEx
ICs2MzAsMTEgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6d3JhcEtleShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxD
cnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsK
KyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKGV4ZWMpOwogCi0gICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBpbmdLZXkgPSB0
b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgUmVmUHRyPENyeXB0
b0tleT4gd3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDIpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9y
KGV4ZWMpOwogCkBAIC03MTMsNyArNzEzLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dW53
cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAg
ICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4gdW53cmFwcGluZ0tleSA9IHRvQ3J5cHRvS2V5
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiB1bndy
YXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgy
KSk7CiAgICAgaWYgKCF1bndyYXBwaW5nS2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJy
b3IoZXhlYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCBjNWYyMTYxMjlhYzM5ZjBj
YTE3NWMyNjVmYzEyMGYzZDJmZDQ2MTU1Li5mZTUxZmM5ZjZkZDZkNTc1ZTY3ZmZmNjYyOGVjMzYz
NzJkNWE4MjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAg
SlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhl
YywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsK
LSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dy
YW06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFt
ICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAg
ICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJH
TFNoYWRlcj4+IHNoYWRlcnM7CkBAIC0zNDEsNyArMzQxLDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRl
eHQgPSBpbXBsKCk7Ci0gICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0o
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9
IEpTV2ViR0xQcm9ncmFtOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAg
IGlmICghcHJvZ3JhbSAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRP
ck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIHVuc2ln
bmVkIHBuYW1lID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKQEAg
LTM2OSw3ICszNjksNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFk
ZXJQYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYg
Y29udGV4dCA9IGltcGwoKTsKICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlz
VW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmluaGVyaXRz
KEpTV2ViR0xTaGFkZXI6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihl
eGVjKTsKLSAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gdG9XZWJHTFNoYWRlcihleGVjLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xTaGFk
ZXI6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5h
bWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC00
MDUsMTAgKzQwNSwxMCBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlm
b3JtKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdl
YkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0q
IHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7Cisg
ICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvSW1wbChleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYyk7Ci0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9X
ZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgV2Vi
R0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xHZXRJbmZvIGluZm8gPSBjb250
ZXh0LmdldFVuaWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24sIGVjKTsKQEAgLTQ3OCw3ICs0NzgsNyBA
QCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYs
IEpTQzo6RXhlY1N0YXRlKiBleGVjLCBXZQogICAgIGxvbmcgaW5kZXggPSAtMTsKICAgICAKICAg
ICBpZiAoZnVuY3Rpb25Gb3JVbmlmb3JtKGYpKSB7Ci0gICAgICAgIGxvY2F0aW9uID0gdG9XZWJH
TFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgICAgIGxv
Y2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDApKTsKICAgICAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5
cGVFcnJvcihleGVjKTsKICAgICB9IGVsc2UKQEAgLTU2NCw3ICs1NjQsNyBAQCBzdGF0aWMgSlND
OjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBXZQogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAg
ICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoZXhlYykpOwogCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0
aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7
CisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2Nh
dGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0
aW9uICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQog
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgIApAQCAtNjI0LDcgKzYyNCw3
IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1h
dHJpeFRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSAhPSAzKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAKLSAgICBXZWJHTFVuaWZvcm1M
b2NhdGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dl
YkdMVW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwog
ICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcAppbmRleCBjOWVkY2ZhOGI0ZDFjMjM3NDM3ODIwNjFmNzI3ZjFjMjNkNWQyYzExLi5mOWFl
MTY0N2FmYTVlNTdmMTQ2YjVmZmFkNjQ4NzQ2ZTgzZjNkZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMTQ4
LDExICsxNDgsMTEgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBpZiAodmFsLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIGltcGwoKS5z
ZW5kKGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNEb2N1bWVudDo6aW5mbygpKSkK
LSAgICAgICAgaW1wbCgpLnNlbmQodG9Eb2N1bWVudCh2YWwpLCBlYyk7CisgICAgICAgIGltcGwo
KS5zZW5kKEpTRG9jdW1lbnQ6OnRvSW1wbCh2YWwpLCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmlu
aGVyaXRzKEpTQmxvYjo6aW5mbygpKSkKLSAgICAgICAgaW1wbCgpLnNlbmQodG9CbG9iKHZhbCks
IGVjKTsKKyAgICAgICAgaW1wbCgpLnNlbmQoSlNCbG9iOjp0b0ltcGwodmFsKSwgZWMpOwogICAg
IGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0RPTUZvcm1EYXRhOjppbmZvKCkpKQotICAgICAgICBp
bXBsKCkuc2VuZCh0b0RPTUZvcm1EYXRhKHZhbCksIGVjKTsKKyAgICAgICAgaW1wbCgpLnNlbmQo
SlNET01Gb3JtRGF0YTo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJp
dHMoSlNBcnJheUJ1ZmZlcjo6aW5mbygpKSkKICAgICAgICAgaW1wbCgpLnNlbmQodG9BcnJheUJ1
ZmZlcih2YWwpLCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTQXJyYXlCdWZmZXJW
aWV3OjppbmZvKCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCAyOGYyMmRhYjBkZjFiZTBhYTdiNWUyZjE2YTQ0
ZDEzZDZkNzc2YmY5Li43MGU5MjFhZTRhNzRiNWMzOTc0YTUyMWVmZDg5ODRhYzQwZDZlZDVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAKQEAgLTc4NCwxMiArNzg0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
d3JpdGUob2JqLT5pbnRlcm5hbFZhbHVlKCkuYXNOdW1iZXIoKSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoRmlsZSogZmlsZSA9
IHRvRmlsZShvYmopKSB7CisgICAgICAgICAgICBpZiAoRmlsZSogZmlsZSA9IEpTRmlsZTo6dG9J
bXBsKG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShGaWxlVGFnKTsKICAgICAgICAgICAg
ICAgICB3cml0ZShmaWxlKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmIChGaWxlTGlzdCogbGlzdCA9IHRvRmlsZUxpc3Qob2JqKSkg
eworICAgICAgICAgICAgaWYgKEZpbGVMaXN0KiBsaXN0ID0gSlNGaWxlTGlzdDo6dG9JbXBsKG9i
aikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShGaWxlTGlzdFRhZyk7CiAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgbGVuZ3RoID0gbGlzdC0+bGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgd3Jp
dGUobGVuZ3RoKTsKQEAgLTc5Nyw3ICs3OTcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
ICAgICB3cml0ZShsaXN0LT5pdGVtKGkpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChCbG9iKiBibG9iID0gdG9CbG9iKG9iaikp
IHsKKyAgICAgICAgICAgIGlmIChCbG9iKiBibG9iID0gSlNCbG9iOjp0b0ltcGwob2JqKSkgewog
ICAgICAgICAgICAgICAgIHdyaXRlKEJsb2JUYWcpOwogICAgICAgICAgICAgICAgIG1fYmxvYlVS
THMuYXBwZW5kKGJsb2ItPnVybCgpKTsKICAgICAgICAgICAgICAgICB3cml0ZShibG9iLT51cmwo
KSk7CkBAIC04MDUsNyArODA1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB3cml0ZShi
bG9iLT5zaXplKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWYgKEltYWdlRGF0YSogZGF0YSA9IHRvSW1hZ2VEYXRhKG9iaikpIHsK
KyAgICAgICAgICAgIGlmIChJbWFnZURhdGEqIGRhdGEgPSBKU0ltYWdlRGF0YTo6dG9JbXBsKG9i
aikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShJbWFnZURhdGFUYWcpOwogICAgICAgICAgICAg
ICAgIHdyaXRlKGRhdGEtPndpZHRoKCkpOwogICAgICAgICAgICAgICAgIHdyaXRlKGRhdGEtPmhl
aWdodCgpKTsKQEAgLTg2NSw3ICs4NjUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHJl
dHVybiBzdWNjZXNzOwogICAgICAgICAgICAgfQogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQot
ICAgICAgICAgICAgaWYgKENyeXB0b0tleSoga2V5ID0gdG9DcnlwdG9LZXkob2JqKSkgeworICAg
ICAgICAgICAgaWYgKENyeXB0b0tleSoga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChvYmopKSB7
CiAgICAgICAgICAgICAgICAgd3JpdGUoQ3J5cHRvS2V5VGFnKTsKICAgICAgICAgICAgICAgICBW
ZWN0b3I8dWludDhfdD4gc2VyaWFsaXplZEtleTsKICAgICAgICAgICAgICAgICBWZWN0b3I8U3Ry
aW5nPiBkdW1teUJsb2JVUkxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA4ZDU0ZGExM2M0ZDlmNTc4NjA0MGZjNGI1Mzlj
YWMwNmMxODRlZTAwLi40OWFhOTY0Mjk5OTNiMmE4ODdiZjRlM2EzZGZkYWQ2MzEzMDgyYTBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQpAQCAtODc0LDYgKzg3NCwxNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7XG4iKTsKICAgICB9CiAKKyAgICAjIEpT
VmFsdWUgdG8gaW1wbGVtZW50YXRpb24gdHlwZQorICAgIGlmICghJGhhc1BhcmVudCB8fCAkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0p
IHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlRmlsdGVyIikgeworICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb2RlRmls
dGVyPiB0b0ltcGwoSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfSBlbHNp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0cmluZ0xpc3QiKSB7CisgICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRv
SW1wbChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRpbXBsVHlw
ZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgICRo
ZWFkZXJUcmFpbGluZ0luY2x1ZGVzeyIke2NsYXNzTmFtZX1DdXN0b20uaCJ9ID0gMSBpZiAkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21IZWFkZXIifTsKIAogICAgIG15
ICRuYW1lZEdldHRlckZ1bmN0aW9uID0gR2V0TmFtZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJmYWNl
KTsKQEAgLTExNjYsMTUgKzExNzcsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoU2hv
dWxkR2VuZXJhdGVUb0pTRGVjbGFyYXRpb24oJGhhc1BhcmVudCwgJGludGVyZmFjZSkpIHsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIldFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCAkaW1wbFR5cGUqKTtcbiIp
OwogICAgIH0KLSAgICBpZiAoISRoYXNQYXJlbnQgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSB7Ci0gICAgICAgIGlmICgkaW50
ZXJmYWNlTmFtZSBlcSAiTm9kZUZpbHRlciIpIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICJQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU0M6OlZNJiwgSlND
OjpKU1ZhbHVlKTtcbiIpOwotICAgICAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9N
U3RyaW5nTGlzdCIpIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJQYXNzUmVm
UHRyPERPTVN0cmluZ0xpc3Q+IHRvRE9NU3RyaW5nTGlzdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSk7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJXRUJDT1JFX0VYUE9SVCAkaW1wbFR5cGUqIHRvJHtpbnRlcmZhY2VOYW1lfShK
U0M6OkpTVmFsdWUpO1xuIik7Ci0gICAgICAgIH0KLSAgICB9CiAgICAgaWYgKCR1c2VzVG9KU05l
d2x5Q3JlYXRlZHskaW50ZXJmYWNlTmFtZX0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIkpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqLCAkaW50ZXJmYWNlTmFtZSopO1xuIik7CiAgICAgfQpAQCAtMzExMiw3ICsz
MTE0LDcgQEAgRU5ECiAgICAgfQogCiAgICAgaWYgKCghJGhhc1BhcmVudCBvciAkaW50ZXJmYWNl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIGFuZCAh
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tVG9OYXRpdmVPYmplY3Qi
fSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiRpbXBsVHlwZSogdG8ke2ludGVyZmFj
ZU5hbWV9KEpTQzo6SlNWYWx1ZSB2YWx1ZSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiRpbXBsVHlwZSogJHtjbGFzc05hbWV9Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKVxu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGlmIChhdXRvKiB3cmFwcGVyID0gIiAuIEdldENhc3RpbmdIZWxwZXJG
b3JUaGlzT2JqZWN0KCRpbnRlcmZhY2UpIC4gIih2YWx1ZSkpXG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpO1xuIik7CkBAIC0z
MjQzLDcgKzMyNDUsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKIAogICAgICAgICBp
ZiAoJGFyZ1R5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKICAgICAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBjdXN0b21SZXNvbHZlcjtc
biIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFhQYXRoTlNSZXNvbHZl
ciogcmVzb2x2ZXIgPSB0b1hQYXRoTlNSZXNvbHZlcihleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4
KSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBYUGF0aE5TUmVz
b2x2ZXIqIHJlc29sdmVyID0gSlNYUGF0aE5TUmVzb2x2ZXI6OnRvSW1wbChleGVjLT5hcmd1bWVu
dCgkYXJnc0luZGV4KSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBpZiAoIXJlc29sdmVyKSB7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICAgICAgY3VzdG9tUmVzb2x2ZXIgPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRl
KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpKVxuIik7CkBAIC0zMjk2LDcgKzMyOTgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hl
Y2sKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZm9yICh1bnNpZ25l
ZCBpID0gJGFyZ3NJbmRleCwgY291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBjb3Vu
dDsgKytpKSB7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkuaW5oZXJpdHMoSlMke2FyZ1R5cGV9
OjppbmZvKCkpKVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIGksIFwiJG5hbWVc
IiwgXCIkaW50ZXJmYWNlTmFtZVwiLCAkcXVvdGVkRnVuY3Rpb25OYW1lLCBcIiRhcmdUeXBlXCIp
O1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFt
ZS5hcHBlbmQodG8kYXJnVHlwZShleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpO1xuIik7Cisg
ICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZS5hcHBlbmQo
SlMke2FyZ1R5cGV9Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTtcbiIpOwog
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKQogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVmVj
dG9yPCRuYXRpdmVFbGVtZW50VHlwZT4gJG5hbWUgPSB0b05hdGl2ZUFyZ3VtZW50czwkbmF0aXZl
RWxlbWVudFR5cGU+KGV4ZWMsICRhcmdzSW5kZXgpO1xuIik7CkBAIC0zODQ5LDcgKzM4NTEsNyBA
QCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAKICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7
CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwpOwot
ICAgICAgICByZXR1cm4gInRvJHR5cGUoZXhlYy0+dm0oKSwgJHZhbHVlKSI7CisgICAgICAgIHJl
dHVybiAiSlMke3R5cGV9Ojp0b0ltcGwoZXhlYy0+dm0oKSwgJHZhbHVlKSI7CiAgICAgfQogCiAg
ICAgaWYgKCR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CkBAIC0zODgxLDcgKzM4
ODMsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgaWYgKCRhcnJheU9yU2VxdWVuY2VUeXBl
KSB7CiAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNSZWZQdHJUeXBlKCRhcnJheU9yU2Vx
dWVuY2VUeXBlKSkgewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHthcnJheU9y
U2VxdWVuY2VUeXBlfS5oIik7Ci0gICAgICAgICAgICByZXR1cm4gIih0b1JlZlB0ck5hdGl2ZUFy
cmF5PCR7YXJyYXlPclNlcXVlbmNlVHlwZX0sIEpTJHthcnJheU9yU2VxdWVuY2VUeXBlfT4oZXhl
YywgJHZhbHVlLCAmdG8ke2FycmF5T3JTZXF1ZW5jZVR5cGV9KSkiOworICAgICAgICAgICAgcmV0
dXJuICIodG9SZWZQdHJOYXRpdmVBcnJheTwke2FycmF5T3JTZXF1ZW5jZVR5cGV9LCBKUyR7YXJy
YXlPclNlcXVlbmNlVHlwZX0+KGV4ZWMsICR2YWx1ZSwgJkpTJHthcnJheU9yU2VxdWVuY2VUeXBl
fTo6dG9JbXBsKSkiOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAidG9OYXRpdmVBcnJheTwi
IC4gR2V0TmF0aXZlVmVjdG9ySW5uZXJUeXBlKCRhcnJheU9yU2VxdWVuY2VUeXBlKSAuICI+KGV4
ZWMsICR2YWx1ZSkiOwogICAgIH0KQEAgLTM4OTIsNyArMzg5NCw3IEBAIHN1YiBKU1ZhbHVlVG9O
YXRpdmUKIAogICAgICMgRGVmYXVsdCwgYXNzdW1lIGF1dG9nZW5lcmF0ZWQgdHlwZSBjb252ZXJz
aW9uIHJvdXRpbmVzCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25kaXRp
b25hbCk7Ci0gICAgcmV0dXJuICJ0byR0eXBlKCR2YWx1ZSkiOworICAgIHJldHVybiAiSlMke3R5
cGV9Ojp0b0ltcGwoJHZhbHVlKSI7CiB9CiAKIHN1YiBOYXRpdmVUb0pTVmFsdWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVE
T01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggNzE5MzhmYmRlYmM1NThjMjc1Yzk1YWFjNjMx
N2FlMmQ1ZGI4NDA1ZS4uYTE2MTE2NWEyYjNlZDY4NmFmMjBmMjZiODNiOWNjNjZiNzIyN2RjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTIxNCw3ICsyMTQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlw
ZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdAogICAgIFRlc3RBY3RpdmVET01PYmplY3QmIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoZXhlYykpOwotICAgIE5vZGUqIG5leHRDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQo
MCkpKTsKKyAgICBOb2RlKiBuZXh0Q2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQo
MCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuZXhjaXRpbmdG
dW5jdGlvbihuZXh0Q2hpbGQpOwpAQCAtMjg5LDcgKzI4OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEFj
dGl2ZURPCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0QWN0aXZlRE9NT2JqZWN0
PihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0QWN0aXZlRE9NT2JqZWN0KiB0b1Rlc3RB
Y3RpdmVET01PYmplY3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEFjdGl2ZURPTU9iamVjdCog
SlNUZXN0QWN0aXZlRE9NT2JqZWN0Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAg
IGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3Qq
Pih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFj
dGl2ZURPTU9iamVjdC5oCmluZGV4IDU1YzJlZjk0ZTI2YzIxOGIxMDEyNjFhZDllMTExNGUwOTFl
NDZmMDcuLmVlNjY0NjM3OTQ5ZTNlNGFiM2UyZDViYjFkNWE3Nzg0NzA0NTM5NmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVE
T01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlND
OjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEFjdGl2ZURPTU9i
amVjdCogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0Nl
bGwqKTsKICAgICB+SlNUZXN0QWN0aXZlRE9NT2JqZWN0KCk7CkBAIC05Myw3ICs5NCw2IEBAIGlu
bGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0QWN0
aXZlRE9NT2JqZWN0KikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RBY3RpdmVET01PYmplY3QqKTsK
LVdFQkNPUkVfRVhQT1JUIFRlc3RBY3RpdmVET01PYmplY3QqIHRvVGVzdEFjdGl2ZURPTU9iamVj
dChKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCmluZGV4IDU2OGM5ZGU4NGVlMmNmN2UyZTExMmM3YTE2
ZDA3Yzk3YTNhZGMyZGQuLmFlMTcxY2JhMjY2Mjc2MzBiODM1ZWI2ZDYxMzY4Y2I5MmQ5ZjYyYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDdXN0b21OYW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtMjYzLDcgKzI2Myw3
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGVzdEN1c3RvbU5hCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RD
dXN0b21OYW1lZEdldHRlciogdG9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpKU1ZhbHVlIHZh
bHVlKQorVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9J
bXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPih2YWx1ZSkpCiAgICAgICAgIHJldHVy
biAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAppbmRl
eCAxZWIzNWQ4MmUwODNmMTc5YzUwNmMxNzU3MmYxNzY2NzdmMmM5NzUwLi4xMjE5YjQ3OWUzMWVj
ZDQ5MjVmYzlmNzg4ZjRlMDVmYTMyNTUxMjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvSW1wbChK
U0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6
SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CkBA
IC05Nyw3ICs5OCw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29y
bGQmIHdvcmxkLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIqIHRvVGVzdEN1c3RvbU5hbWVkR2V0dGVyKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDhl
YWZhMDdkZDdlMzZlMmNkNWI5MWZlNjYzMjNmZDZjOTMwODgyYTIuLjRlZTdlMWQxYzhlMDc2NjA3
MmNjNWQzNjFmNDc2MzQ0MTU1Njg1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTI5Miw3ICsyOTIsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RFdmVudENvbgogICAgIHJl
dHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+KGdsb2JhbE9iamVj
dCwgaW1wbCk7CiB9CiAKLVRlc3RFdmVudENvbnN0cnVjdG9yKiB0b1Rlc3RFdmVudENvbnN0cnVj
dG9yKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RFdmVudENvbnN0cnVjdG9yKiBKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4odmFsdWUp
KQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5oCmluZGV4IDViYmVlYzgwZTRjYzRiMzhhMTk3NzExOTVhYzFkZDQ2OTc2YjEzMTYu
LmIzZTI5ZjQxMGI1Nzk5YzQzMDI4MmRjZTRmNTJlNDk4ZTZmMzRjYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVj
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV2ZW50Q29uc3RydWN0b3IuaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZN
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0RXZlbnRDb25zdHJ1Y3Rv
ciogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpT
Q2VsbCopOwogICAgIH5KU1Rlc3RFdmVudENvbnN0cnVjdG9yKCk7CiAKQEAgLTkzLDcgKzk0LDYg
QEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRl
c3RFdmVudENvbnN0cnVjdG9yKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RFdmVudENvbnN0cnVj
dG9yKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0RXZlbnRDb25zdHJ1Y3RvciogdG9UZXN0RXZlbnRD
b25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUpOwogCiBib29sIGZpbGxUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckluaXQoVGVzdEV2ZW50Q29uc3RydWN0b3JJbml0JiwgSlNEaWN0aW9uYXJ5Jik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IGRiMzMzZDI0NDRjMzhlNGU0NmFiNDdiYjVjODliY2M4
YjNmYThhNTQuLmU3NzZjYjgyOThjYmFkMzI1ZTQ3MmI0NjA2YWI1YWQ3YTc1ZWZmMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMjk0LDcgKzI5NCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkRpc3BhdGNo
RXZlbnQoRXhlCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhl
YykpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIEV2ZW50KiBldnQodG9FdmVudChl
eGVjLT5hcmd1bWVudCgwKSkpOworICAgIEV2ZW50KiBldnQoSlNFdmVudDo6dG9JbXBsKGV4ZWMt
PmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1Zh
bHVlIHJlc3VsdCA9IGpzQm9vbGVhbihpbXBsLmRpc3BhdGNoRXZlbnQoZXZ0LCBlYykpOwpAQCAt
MzY0LDcgKzM2NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50VGFyCiAgICAgcmV0dXJuIGNyZWF0
ZU5ld1dyYXBwZXI8SlNUZXN0RXZlbnRUYXJnZXQ+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAK
LVRlc3RFdmVudFRhcmdldCogdG9UZXN0RXZlbnRUYXJnZXQoSlNDOjpKU1ZhbHVlIHZhbHVlKQor
VGVzdEV2ZW50VGFyZ2V0KiBKU1Rlc3RFdmVudFRhcmdldDo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZl
bnRUYXJnZXQqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRUYXJnZXQuaAppbmRleCBlYjBhMmQ5OWJlY2NhYjdlNTIzMTE4ZTU0ZGJjYWQ0OTIx
ZjQ0ODAwLi5kNWExNWVhYTc5ZTcwZDNmNDBhNzM5Mzg4ZTk1YzkwOGMwZWEwNGZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRUYXJnZXQuaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0RXZlbnRUYXJnZXQqIHRvSW1w
bChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7
CkBAIC0xMDEsNyArMTAyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQsIFRlc3RFdmVudFRhcmdldCopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0
RXZlbnRUYXJnZXQqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RFdmVudFRhcmdldCogdG9UZXN0RXZl
bnRUYXJnZXQoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhj
ZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uY3BwCmluZGV4IDRhZGU3NmU5MTViMzhjYTVmMDdiNzU4YTYyZmM1YzkxOGU5
YmI5NjMuLmMwMmM3ZTkyNjM0ZWYxMDRiZWFlMzFiMWY1YWJkZTYwNDhlYTFlZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXhjZXB0
aW8KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RFeGNlcHRpb24+KGdsb2JhbE9i
amVjdCwgaW1wbCk7CiB9CiAKLVRlc3RFeGNlcHRpb24qIHRvVGVzdEV4Y2VwdGlvbihKU0M6OkpT
VmFsdWUgdmFsdWUpCitUZXN0RXhjZXB0aW9uKiBKU1Rlc3RFeGNlcHRpb246OnRvSW1wbChKU0M6
OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEV4Y2VwdGlvbio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBs
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXhjZXB0aW9uLmgKaW5kZXggMzk4NDU3NGU5ODdmOWI4MTE4NGIwYjZmY2EzYmUx
ZTc3NmZhMWE0ZS4uMjM2MGE5YzQxMTE4MmEzZGExOTVlYjIyMDcwMTQ1Y2YxY2IyODYyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFeGNlcHRpb24uaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0RXhjZXB0aW9uKiB0b0ltcGwo
SlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpK
U09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5K
U1Rlc3RFeGNlcHRpb24oKTsKQEAgLTk0LDcgKzk1LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJD
b250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RFeGNlcHRpb24qKQogfQogCiBXRUJD
T1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiwgVGVzdEV4Y2VwdGlvbiopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEV4Y2VwdGlvbiog
dG9UZXN0RXhjZXB0aW9uKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IDQyN2FiYThk
NDBlYjRkNGRkOGJlYjc3OTA0Nzc5NjViMTdhZWJiMmYuLmViYTlmN2EzMzE4N2Y5MTZiZmRlNjIy
NDc4YmM3MTBmZGQyNzdlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RHZW5lcmF0ZQogICAgIHJl
dHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+KGdsb2JhbE9i
amVjdCwgaW1wbCk7CiB9CiAKLVRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
KiBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCmluZGV4IGRmN2JkZGJiNDkyN2YwNDhm
OGJmZDk4YjgyYTdkNzc3MDY2MDYzMDguLjZlZDM1YmQ3YWY0NDBmZTMwYTc1MGYwYzgzMzVhNzNi
NzMxODhiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaApAQCAtMzgs
NiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHN0YXRpYyBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7
CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlKCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBw
ZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
KikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKik7Ci1XRUJDT1JF
X0VYUE9SVCBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogdG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAKaW5kZXggYjE0M2NjNGUzNjIwNGVmN2RlNjZhMGQxNmZlZjUzYzQxNmEyZmE0My4u
OWExYmYxNzdiZjU4ZTFlMTY0OWJmMmRmZjFlYzg1NzAwOGJjMjcwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAKQEAgLTcyNCw3ICs3MjQsNyBAQCB2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxl
bWVudHNOb2RlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuYwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RJbnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7Ci0gICAgTm9kZSogbmF0aXZlVmFsdWUodG9Ob2RlKHZhbHVlKSk7CisgICAgTm9k
ZSogbmF0aXZlVmFsdWUoSlNOb2RlOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRJbXBs
ZW1lbnRzTm9kZShuYXRpdmVWYWx1ZSk7CkBAIC03OTUsNyArNzk1LDcgQEAgdm9pZCBzZXRKU1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0SW50ZXJmYWNlJiBp
bXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIE5vZGUqIG5hdGl2ZVZhbHVlKHRvTm9kZSh2
YWx1ZSkpOworICAgIE5vZGUqIG5hdGl2ZVZhbHVlKEpTTm9kZTo6dG9JbXBsKHZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoJmltcGwsIG5hdGl2ZVZh
bHVlKTsKQEAgLTg0MSw3ICs4NDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhvZDIoRQogICAgIGNv
bnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDApLmlzRW1wdHkoKSA/IFN0cmluZygp
IDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmoo
ZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgV1RGOjpnZXRQdHIoaW1wbC5pbXBsZW1lbnRzTWV0aG9kMihzY3JpcHRDb250ZXh0LCBzdHJB
cmcsIG9iakFyZywgZWMpKSk7CkBAIC05MDcsNyArOTA3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1l
dGhvZDIKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5
KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpB
cmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpT
VGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRh
bE1ldGhvZDIoJmltcGwsIHNjcmlwdENvbnRleHQsIHN0ckFyZywgb2JqQXJnLCBlYykpKTsKQEAg
LTk3Myw3ICs5NzMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RJbnRlcmZhYwogICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPEpTVGVzdEludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAot
VGVzdEludGVyZmFjZSogdG9UZXN0SW50ZXJmYWNlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RJ
bnRlcmZhY2UqIEpTVGVzdEludGVyZmFjZTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4o
dmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
aAppbmRleCA3ZGQ4ZDAzM2U0NzFiMTI5MzI4OGU2OTcwOTlkYjNjN2Y1NzcyMjAyLi4xYTQ3NDc4
MDdhYmM5NGI4NGJmMDM4YWFhNjFmY2JkZTMyODhjNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBA
IC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVh
dGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CisgICAgc3RhdGljIFRlc3RJbnRlcmZhY2UqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZv
aWQgcHV0QnlJbmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwpAQCAtMTIwLDcgKzEy
MSw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxk
LCBUZXN0SW50ZXJmYWNlKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RJbnRlcmZhY2UqKTsKLVdF
QkNPUkVfRVhQT1JUIFRlc3RJbnRlcmZhY2UqIHRvVGVzdEludGVyZmFjZShKU0M6OkpTVmFsdWUp
OwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCAzZTkzMTFlNTMwYjVjM2E2ZmQ1MjFmZDU0MDkwNDRj
OGMxNjQ0ZDNjLi5lYjE2YjMwOWY5ZTg3NzRiM2E0ZmZlNDU3YWI1ODUzZTFhYmNhMGFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0yMjcsNyAr
MjI3LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TWVkaWFRdWUKICAgICByZXR1cm4gY3JlYXRlTmV3V3Jh
cHBlcjxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPihnbG9iYWxPYmplY3QsIGltcGwpOwog
fQogCi1UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogdG9UZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCA1NTczNWViMzIz
MWQ3NGNjNjRlYWViM2RjOTdjZDg0YTBjZmVlOTRhLi43Yzg2NTQyZjkwMDExOGQ0YWExNGUzZmY5
YTExN2IwYTRmZmY5YjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvSW1w
bChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsK
ICAgICB+SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcigpOwogCkBAIC05MSw3ICs5Miw2IEBA
IGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIqIHRvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggNzU0NmRjY2QyYTkyYzEyMWE4NGQ0ZjhlNTJlZDY4ODhmMTY4ZDg0NS4uNzdmOTdjYmU4M2Qx
YjZkYTUxNjRmNjRkYjIyNGUzOGY4ODhjMzRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0
cnVjdG9yLmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5hbWVkQ29uCiAg
ICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcj4oZ2xvYmFs
T2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE5hbWVkQ29uc3RydWN0b3IqIHRvVGVzdE5hbWVkQ29u
c3RydWN0b3IoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE5hbWVkQ29uc3RydWN0b3IqIEpTVGVz
dE5hbWVkQ29uc3RydWN0b3I6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYg
KGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqPih2
YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yLmgKaW5kZXggZWNlOTg4Nzc1OWUwODY4MDRkOWJkYzVhNWE0ZjY2ZTI0Y2Yz
N2I2MC4uOTYxN2M4M2JmYjRiMGJiYTZhODU2OGQ3ZTc5NWQyZDJmZjM2YzlkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29u
c3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3ROYW1lZENvbnN0
cnVjdG9yKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpT
Qzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE5hbWVkQ29uc3RydWN0b3IoKTsKIApAQCAtOTIsNyAr
OTMsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCwgVGVzdE5hbWVkQ29uc3RydWN0b3IqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE5hbWVkQ29u
c3RydWN0b3IqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3ROYW1lZENvbnN0cnVjdG9yKiB0b1Rlc3RO
YW1lZENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vbmRldGVybWluaXN0aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCmluZGV4IGUxNzNhYWNmNzg4NzRh
YjNhZTAwODM4NmE0ZTE4OTFhNjRiNzcxNmYuLjhiNWE1ZWNjNTZmZmJkYTI3MjJiNWY2YjJkZjI5
Yjk2Njc4NmRkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKQEAgLTUz
NCw3ICs1MzQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3ROb25kZXRlcgogICAgIHJldHVybiBjcmVhdGVO
ZXdXcmFwcGVyPEpTVGVzdE5vbmRldGVybWluaXN0aWM+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9
CiAKLVRlc3ROb25kZXRlcm1pbmlzdGljKiB0b1Rlc3ROb25kZXRlcm1pbmlzdGljKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKK1Rlc3ROb25kZXRlcm1pbmlzdGljKiBKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljKj4odmFsdWUpKQogICAgICAgICBy
ZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCmlu
ZGV4IGY1MmViYmQxMzMwMDFkMDczNzVlYzQ0ZjVkOGY3ZjE4ZWFkMzY1YWIuLmE2NDIxMTFjYWYx
NmQyMzUxMDk5NzBlM2QwMGY5MWZmMWQ4ZTAxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWlu
aXN0aWMuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9JbXBsKEpT
Qzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAg
IH5KU1Rlc3ROb25kZXRlcm1pbmlzdGljKCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZv
aWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3ROb25kZXRlcm1p
bmlzdGljKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3ROb25kZXRlcm1pbmlzdGljKik7Ci1XRUJD
T1JFX0VYUE9SVCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9UZXN0Tm9uZGV0ZXJtaW5pc3RpYyhK
U0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXgg
ZTQzNGRlY2JmODA2ODk5OTMyMWFhY2VmNDEwYThhN2FjOTIyZjJmMS4uZjhmNDg5OWIwNDZhMTJi
MzZkYjM3ZDAyMmIwYmUzNWNjNDI5YmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTIwNzgsNyArMjA3OCw3
IEBAIHZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVW
YWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RP
Ymo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFRlc3RPYmpBdHRyKG5hdGl2ZVZhbHVl
KTsKQEAgLTIwOTgsNyArMjA5OCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
LSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2Jq
KiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFhN
TE9iakF0dHIobmF0aXZlVmFsdWUpOwpAQCAtMjQ1NCw3ICsyNDU0LDcgQEAgdm9pZCBzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZh
bHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI0NzcsNyArMjQ3Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGJhc2VPCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUp
KTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsK
ICAgICBpbXBsLnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCBuYXRpdmVW
YWx1ZSk7CkBAIC0yNDk3LDcgKzI0OTcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYgogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBs
KCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVz
dE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKQEAgLTI1MjAsNyArMjUyMCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
LSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2Jq
KiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpA
QCAtMjU0Myw3ICsyNTQzLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGEKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAg
IFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5h
dGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0y
NTY2LDcgKzI1NjYsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEV4ZQogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVz
dE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZl
VmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI1ODks
NyArMjU4OSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxT
dGFja0F0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2Jq
KiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1
ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFdpdGhTY3JpcHRBcmd1
bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUobmF0aXZlVmFsdWUpOwpAQCAtMjc0MCw3ICsyNzQw
LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmEKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFNWR1Byb3BlcnR5VGVh
ck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKHRvU1ZHUG9pbnQodmFsdWUpKTsKKyAgICBTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZShKU1NWR1BvaW50Ojp0b0ltcGwo
dmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm47CiAgICAgaW1wbC5zZXRNdXRhYmxlUG9pbnQobmF0aXZlVmFsdWUpOwpAQCAtMjc2
MCw3ICsyNzYwLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludChFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlMKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFNWR1By
b3BlcnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKHRvU1ZHUG9pbnQodmFsdWUpKTsK
KyAgICBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZShKU1NWR1BvaW50
Ojp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRJbW11dGFibGVQb2ludChuYXRpdmVWYWx1
ZSk7CkBAIC0yOTM5LDcgKzI5MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIGNv
bnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygp
IDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmoo
ZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIGltcGwudm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKTsKQEAg
LTI5NzQsNyArMjk3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgY29uc3QgU3Ry
aW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVj
LT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5h
cmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVj
LT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNW
YWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLmJ5dGVNZXRob2RXaXRoQXJncyhieXRlQXJnLCBz
dHJBcmcsIG9iakFyZykpOwpAQCAtMzAwOSw3ICszMDA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3Mo
RXhlY1MKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5
KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpB
cmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpT
VGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwub2N0ZXRNZXRo
b2RXaXRoQXJncyhvY3RldEFyZywgc3RyQXJnLCBvYmpBcmcpKTsKQEAgLTMwNDQsNyArMzA0NCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Mb25nTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhl
Yy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOwor
ICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgyKSkp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBq
c051bWJlcihpbXBsLmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZykp
OwpAQCAtMzA3OSw3ICszMDc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGEKICAgICBjb25z
dCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6
IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4
ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IFdURjo6Z2V0UHRyKGltcGwub2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpB
cmcpKSk7CkBAIC0zMDk2LDcgKzMwOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEV4ZQogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFZlY3RvcjxSZWZQdHI8U2NyaXB0
UHJvZmlsZT4+IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNjcmlwdFByb2ZpbGUs
IEpTU2NyaXB0UHJvZmlsZT4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZ0b1NjcmlwdFByb2Zp
bGUpKSk7CisgICAgVmVjdG9yPFJlZlB0cjxTY3JpcHRQcm9maWxlPj4gc2VxdWVuY2VBcmcoKHRv
UmVmUHRyTmF0aXZlQXJyYXk8U2NyaXB0UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxlPihleGVjLCBl
eGVjLT5hcmd1bWVudCgwKSwgJkpTU2NyaXB0UHJvZmlsZTo6dG9JbXBsKSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5tZXRob2RXaXRoU2VxdWVuY2VBcmcoc2Vx
dWVuY2VBcmcpOwpAQCAtMzE1Myw3ICszMTUzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3MK
ICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5KCkgPyBT
dHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7
CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9U
ZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9i
ajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwubWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRo
cm93cyhzdHJBcmcsIG9iakFyZywgZWMpKSk7CkBAIC0zNjY5LDcgKzM2NjksNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QxKAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0
T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMt
PmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTM2ODksNyArMzY4OSw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDIoCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAg
VGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RP
YmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTM4MDEsNyArMzgwMSw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDgoCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAg
VGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RP
YmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kKG9iakFy
Zyk7CkBAIC00MTIxLDcgKzQxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEoRXhlY1N0YXRlKiBleGVjKQogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3RO
b2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6
OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgaW1wbC5jb252ZXJ0MSh2YWx1ZSk7CkBAIC00MTM4LDcgKzQxMzgsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVy
dDIoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBs
KCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwot
ICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAg
VGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0Mih2YWx1ZSk7
CkBAIC00MTU1LDcgKzQxNTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RP
YmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3ROb2Rl
KGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6OnRv
SW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAgICAgaW1wbC5jb252ZXJ0NCh2YWx1ZSk7CkBAIC00MTcyLDcgKzQxNzIsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUo
RXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVz
dE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAg
IGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0NSh2YWx1ZSk7CkBA
IC00MjU0LDcgKzQyNTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uU3RyaWN0RnVuY3Rpb25XaXRoU2VxdWVuYwogICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51
bGwoKSAmJiAhZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoSlNUZXN0T2JqOjppbmZvKCkpKQog
ICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgMCwgIm9iakFyZyIs
ICJUZXN0T2JqIiwgInN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmNlIiwgIlRlc3RPYmoiKTsKLSAg
ICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVz
dE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8dW5zaWduZWQ+IGEodG9OYXRp
dmVBcnJheTx1bnNpZ25lZD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMSkpKTsKQEAgLTQyNzksNyAr
NDI3OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhBcnJheShFCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFl
eGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cyhKU1Rlc3RPYmo6OmluZm8oKSkpCiAgICAgICAgIHJl
dHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCAwLCAib2JqQXJnIiwgIlRlc3RPYmoi
LCAic3RyaWN0RnVuY3Rpb25XaXRoQXJyYXkiLCAiVGVzdE9iaiIpOwotICAgIFRlc3RPYmoqIG9i
akFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmco
SlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgIFZlY3RvcjxpbnQ+IGFycmF5KHRvTmF0aXZlQXJyYXk8aW50Pihl
eGVjLCBleGVjLT5hcmd1bWVudCgxKSkpOwpAQCAtNDM0MSwxNCArNDM0MSwxNCBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNO
b2RlTWV0aG9kKEV4ZWNTdAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IE5vZGUqIGhlYWQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgTm9kZSogaGVhZChK
U05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgVmVjdG9yPE5vZGUqPiB0YWlsOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDEsIGNvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOyBpIDwgY291bnQ7ICsraSkgewogICAg
ICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpLmluaGVyaXRzKEpTTm9kZTo6aW5m
bygpKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCBp
LCAidGFpbCIsICJUZXN0T2JqIiwgInZhcmlhZGljTm9kZU1ldGhvZCIsICJOb2RlIik7Ci0gICAg
ICAgIHRhaWwuYXBwZW5kKHRvTm9kZShleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpOworICAg
ICAgICB0YWlsLmFwcGVuZChKU05vZGU6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudChp
KSkpOwogICAgIH0KICAgICBpbXBsLnZhcmlhZGljTm9kZU1ldGhvZChoZWFkLCB0YWlsKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtNDQzNCw3ICs0NDM0
LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBUZXN0T2JqKiBpbXAKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBl
cjxKU1Rlc3RPYmo+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RPYmoqIHRvVGVzdE9i
aihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0T2JqKiBKU1Rlc3RPYmo6OnRvSW1wbChKU0M6OkpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgK
aW5kZXggM2MwYmZjNWM5ZGVkMTRkM2RjNjM3MGJkMWMyZTc4MWU5MGRiYjhmZS4uMzJlZWFmNjc0
MGFmZjFhNGVlNTZhMTJhNGE2NjMwZDQ4NzQ0ZTNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMzgsNiArMzgsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyBUZXN0T2JqKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6
OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RPYmooKTsKQEAgLTEwNiw3ICsxMDcsNiBAQCBpbmxpbmUg
dm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE9iaiopCiB9
CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBUZXN0T2JqKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0T2JqKiB0b1Rl
c3RPYmooSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNjMwOGQ5ZTNiYjMw
MGU3YmFkY2M3ZGUyMGFlMWM5NTkzODUwYWFmMC4uMjM0NjUyZGM3YTg0NjUxYWRmZDZkY2M2Mjdm
YjJkZWRkNDc5NTVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKCiAgICAg
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKiBjYXN0ZWRUaGlzID0ganND
YXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxl
ZSgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
Ci0gICAgQmxvYiogYmxvYih0b0Jsb2IoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBCbG9iKiBi
bG9iKEpTQmxvYjo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKICAgICBSZWZQdHI8VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+IG9i
amVjdCA9IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjcmVhdGUoYmxvYik7CkBAIC0yODMs
NyArMjgzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0T3ZlcmxvYWQKICAgICByZXR1cm4gY3JlYXRlTmV3
V3JhcHBlcjxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPihnbG9iYWxPYmplY3QsIGltcGwp
OwogfQogCi1UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogdG9UZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycyhKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyog
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAppbmRleCA5Yzc2YmFl
NDQ5OGNjMmJkNTMzODA3YjUzYjgyMWU1YjhkYzI0N2M2Li40ODI1NjQyM2UwNDM4ZjNjZTk0MjZm
NjMyMTdmMWU2MWUzZWFlOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHRv
SW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwq
KTsKICAgICB+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycygpOwogCkBAIC05MSw3ICs5Miw2
IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMqIHRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoSlNDOjpKU1ZhbHVlKTsKIAogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDg2N2QwYzA4NWMyNWU2ODdlYjljNTc1
ZDY2YWE0MWZjN2M5ZGFmYTMuLjY1MzcwYjU2ZGQ2MTYxMWZkYTNiMGMyZGM2ZjgyYzFjNzZmNGI4
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwCkBAIC0zNjIsNyArMzYyLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0U2VyaWFsaXoK
ICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UqIHRvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShKU0M6
OkpTVmFsdWUgdmFsdWUpCitUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmgKaW5kZXggYTQ4YmM4ZTA2OTkzZjQzNjU2NzYwMWUzZjYwZjQzNjVjOGFi
ZWRjOS4uZWEwMGRlMjFhMjQ4ZGY3Yjg0ZDU5NDI1YzViYzIxNTg0NzdlZDNmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAt
NDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRl
UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCop
OworICAgIHN0YXRpYyBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b0ltcGwo
SlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAg
ICAgfkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSgpOwogCkBAIC05Nyw3ICs5
OCw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxk
LCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50CiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRl
ZnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmNwcAppbmRleCBlMmE5M2FhMWY0ZGU4NmRkOTc1MGVlYWEyMzU5ZDZkYjdhMWU4MmJm
Li4wZjZkMWJlNjM3ZDZkZDFkYjg3MzFlNjY0ODljODA2YzliMWYyNTczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBl
ZGVmcy5jcHAKQEAgLTU3NCw3ICs1NzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcgogICAg
IFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVmVjdG9yPFJlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxT
ZXJpYWxpemVkU2NyaXB0VmFsdWUsIEpTU2VyaWFsaXplZFNjcmlwdFZhbHVlPihleGVjLCBleGVj
LT5hcmd1bWVudCgwKSwgJnRvU2VyaWFsaXplZFNjcmlwdFZhbHVlKSkpOworICAgIFZlY3RvcjxS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZl
QXJyYXk8U2VyaWFsaXplZFNjcmlwdFZhbHVlLCBKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oZXhl
YywgZXhlYy0+YXJndW1lbnQoMCksICZKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dG9JbXBsKSkp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBq
c051bWJlcihpbXBsLm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhzZXF1ZW5jZUFyZykpOwpAQCAtNjk3
LDcgKzY5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0CiAgICAgVGVzdFR5cGVkZWZzJiBp
bXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkg
PCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBWZWN0b3I8UmVmUHRyPFRlc3RFdmVudFRhcmdldD4+
IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFRlc3RFdmVudFRhcmdldCwgSlNUZXN0
RXZlbnRUYXJnZXQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmdG9UZXN0RXZlbnRUYXJnZXQp
KSk7CisgICAgVmVjdG9yPFJlZlB0cjxUZXN0RXZlbnRUYXJnZXQ+PiBzZXF1ZW5jZUFyZygodG9S
ZWZQdHJOYXRpdmVBcnJheTxUZXN0RXZlbnRUYXJnZXQsIEpTVGVzdEV2ZW50VGFyZ2V0PihleGVj
LCBleGVjLT5hcmd1bWVudCgwKSwgJkpTVGVzdEV2ZW50VGFyZ2V0Ojp0b0ltcGwpKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVh
bihpbXBsLmNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKHNlcXVlbmNlQXJnKSk7
CkBAIC03NjksNyArNzY5LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0VHlwZWRlZnMKICAgICByZXR1cm4g
Y3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RUeXBlZGVmcz4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0K
IAotVGVzdFR5cGVkZWZzKiB0b1Rlc3RUeXBlZGVmcyhKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0
VHlwZWRlZnMqIEpTVGVzdFR5cGVkZWZzOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewog
ICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHZh
bHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCmlu
ZGV4IDdlNWVjOGRhYWNjMjE4ZjNlYWZlMmIyMjIwNzljZTJkZjA0ZjdjNGEuLjk1YWQyNzNkMThm
ZjM0YzczY2JmMThhOTk5YmMyNzk3NzYyYWU2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCkBAIC0zOCw2
ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90
b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgc3RhdGljIFRlc3RUeXBlZGVmcyogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0VHlwZWRlZnMoKTsKQEAgLTkzLDcg
Kzk0LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RUeXBlZGVmcyopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0VHlwZWRlZnMqKTsKLVdF
QkNPUkVfRVhQT1JUIFRlc3RUeXBlZGVmcyogdG9UZXN0VHlwZWRlZnMoSlNDOjpKU1ZhbHVlKTsK
IAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAppbmRleCBiYTQ2ZDhjY2Q1
MTc1NDhkOGRmYTU5ZjdhNDBhM2FkMmI1OTg2YjQ1Li4wMTM0Zjk1ZmJmMjllMTgzNjY5NDhmYzli
OWJjZmM4Y2Q5MzRmZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGF0dHJpYnV0ZSogaQogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTYXR0cmli
dXRlPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1hdHRyaWJ1dGUqIHRvYXR0cmlidXRlKEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKK2F0dHJpYnV0ZSogSlNhdHRyaWJ1dGU6OnRvSW1wbChKU0M6OkpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpT
YXR0cmlidXRlKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJp
YnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmli
dXRlLmgKaW5kZXggMjk3YWQyNmI1MjUwMmJiODRmZjY1YTY2NzBmNmNhNmM0NGFjNjU0MS4uNWM4
MWMwMDMyNjhkNGMzZDY2OWY5NTVjYjVkYjdlMDQ0NmJiY2I4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKQEAgLTM5
LDYgKzM5LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVBy
b3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6
OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
KyAgICBzdGF0aWMgYXR0cmlidXRlKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTYXR0cmlidXRlKCk7CiAKQEAgLTky
LDcgKzkzLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYg
d29ybGQsIGF0dHJpYnV0ZSopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBhdHRyaWJ1dGUqKTsKLVdFQkNP
UkVfRVhQT1JUIGF0dHJpYnV0ZSogdG9hdHRyaWJ1dGUoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggZWQ0YTQ0YjVmMDJkODQxZjZiZjRk
ZGFiOWQ4NTlkOWExYWQ4NTIwMy4uY2NiZjVlZGIyZGZjYzdlY2E1MGEzYzgyZmMwODQxYTNjNTNi
NWY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTcmVhZG9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU3JlYWRvbmx5LmNwcApAQCAtMTgyLDcgKzE4Miw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgcmVhZG9u
bHkqIGltCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNyZWFkb25seT4oZ2xvYmFsT2Jq
ZWN0LCBpbXBsKTsKIH0KIAotcmVhZG9ubHkqIHRvcmVhZG9ubHkoSlNDOjpKU1ZhbHVlIHZhbHVl
KQorcmVhZG9ubHkqIEpTcmVhZG9ubHk6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTcmVhZG9ubHkqPih2YWx1ZSkp
CiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKaW5kZXggYjZlZmE0YTY3
ODcyOGIwNDllOGQzZjQ4NTM1M2Q0NDc2ZGE1ZTBmOC4uNGVhNjY1MmViMGYxZmY2OWZkNDhhYTVi
NTY2N2E0YzYyNmE0MDFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHJlYWRvbmx5KiB0
b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxs
Kik7CiAgICAgfkpTcmVhZG9ubHkoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCog
d3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgcmVhZG9ubHkqKQogfQogCiBX
RUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiwgcmVhZG9ubHkqKTsKLVdFQkNPUkVfRVhQT1JUIHJlYWRvbmx5KiB0b3JlYWRv
bmx5KEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKaW5kZXggMWUzN2VlY2NmZmE4NzAyOTkwZDdmNzQ3M2RlMGVhYTJlYjk2ODliNy4uOWE5
YmYzMTZjZjY0ZmQ0YmQ4MWU5OTgwN2UyM2E3ZDk1ZjRkNmVmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CkBAIC02ODksNiArNjg5LDM1IEBAIHN0cnVjdCBFbGVtZW50VHlwZUNhc3RUcmFpdHM8RXhwZWN0
ZWRUeXBlLCBFeHBlY3RlZFR5cGU+IHsKICAgICBzdGF0aWMgYm9vbCBpcyhFeHBlY3RlZFR5cGUm
KSB7IHJldHVybiB0cnVlOyB9CiB9OwogCisvLyBEb3duY2FzdGluZyBmdW5jdGlvbnMgZm9yIEVs
ZW1lbnQgdHlwZXMuCit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJjZT4g
aW5saW5lIFRhcmdldCYgZG93bmNhc3QoU291cmNlJiBzb3VyY2UpCit7CisgICAgc3RhdGljX2Fz
c2VydCghc3RkOjppc19iYXNlX29mPFRhcmdldCwgU291cmNlPjo6dmFsdWUsICJVbm5lY2Vzc2Fy
eSBjYXN0Iik7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXNFbGVtZW50
T2ZUeXBlPGNvbnN0IFRhcmdldD4oc291cmNlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRh
cmdldCY+KHNvdXJjZSk7Cit9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNv
dXJjZT4gaW5saW5lIFRhcmdldCogZG93bmNhc3QoU291cmNlKiBzb3VyY2UpCit7CisgICAgLy8g
Q2F0Y2ggdW5uZWNlc3NhcnkgY2FzdGluZy4KKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jh
c2Vfb2Y8VGFyZ2V0LCBTb3VyY2U+Ojp2YWx1ZSwgIlVubmVjZXNzYXJ5IGNhc3QiKTsKKyAgICBB
U1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighc291cmNlIHx8IGlzRWxlbWVudE9mVHlw
ZTxjb25zdCBUYXJnZXQ+KCpzb3VyY2UpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGFyZ2V0
Kj4oc291cmNlKTsKK30KK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNl
PiBpbmxpbmUgY29uc3QgVGFyZ2V0JiBkb3duY2FzdChjb25zdCBTb3VyY2UmIHNvdXJjZSkKK3sK
KyAgICAvLyBDYXRjaCB1bm5lY2Vzc2FyeSBjYXN0aW5nLgorICAgIHN0YXRpY19hc3NlcnQoIXN0
ZDo6aXNfYmFzZV9vZjxUYXJnZXQsIFNvdXJjZT46OnZhbHVlLCAiVW5uZWNlc3NhcnkgY2FzdCIp
OworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGlzRWxlbWVudE9mVHlwZTxj
b25zdCBUYXJnZXQ+KHNvdXJjZSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBUYXJn
ZXQmPihzb3VyY2UpOworfQordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3Vy
Y2U+IGlubGluZSBjb25zdCBUYXJnZXQqIGRvd25jYXN0KGNvbnN0IFNvdXJjZSogc291cmNlKQor
eworICAgIC8vIENhdGNoIHVubmVjZXNzYXJ5IGNhc3RpbmcuCisgICAgc3RhdGljX2Fzc2VydCgh
c3RkOjppc19iYXNlX29mPFRhcmdldCwgU291cmNlPjo6dmFsdWUsICJVbm5lY2Vzc2FyeSBjYXN0
Iik7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIXNvdXJjZSB8fCBpc0Vs
ZW1lbnRPZlR5cGU8Y29uc3QgVGFyZ2V0Pigqc291cmNlKSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IFRhcmdldCo+KHNvdXJjZSk7Cit9CisKIGlubGluZSBib29sIE5vZGU6Omhhc0F0
dHJpYnV0ZXMoKSBjb25zdAogewogICAgIHJldHVybiBpc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVt
ZW50KHRoaXMpLT5oYXNBdHRyaWJ1dGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vbWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4
IDM4OWMyYjhhM2I4ZTJmNzg2YWMxM2U4ZTQyMThjYjk2YzNmYjhmODguLmNhODM5ZTk4MzAyOGFl
NmZmMTM5MjNkMTJkOTg3NDViOGQyMzE5YjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9tYWtlX25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBA
IC02MzMsNiArNjMzLDcgQEAgc3ViIHByaW50VHlwZUhlbHBlcnMKICAgICAgICAgfQogCiAgICAg
ICAgIG15ICRjbGFzcyA9ICRwYXJzZWRUYWdzeyRuYW1lfXtpbnRlcmZhY2VOYW1lfTsKKyAgICAg
ICAgIyBGSVhNRTogUmVuYW1lIHRoZXNlIGhlbHBlcnMgdG8gaXM8KkVsZW1lbnQ+KCkuCiAgICAg
ICAgIG15ICRjaGVja0hlbHBlciA9ICJpcyRjbGFzcyI7CiAKICAgICAgICAgcHJpbnQgRiA8PEVO
RApAQCAtNjYzLDYgKzY2NCwxMCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnVHlwZT4KIHN0cnVj
dCBFbGVtZW50VHlwZUNhc3RUcmFpdHM8Y29uc3QgJGNsYXNzLCBBcmdUeXBlPiB7CiAgICAgc3Rh
dGljIGJvb2wgaXMoQXJnVHlwZSYgbm9kZSkgeyByZXR1cm4gJGNoZWNrSGVscGVyKG5vZGUpOyB9
CiB9OworCisvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG1hY3JvcyBvbmNlIHRoZSBjb2RlIGhhcyBi
ZWVuIHBvcnRlZCB0byB1c2luZworLy8gZG93bmNhc3Q8KkVsZW1lbnQ+KCkuCisjZGVmaW5lIHRv
JGNsYXNzKHgpIFdlYkNvcmU6OmRvd25jYXN0PFdlYkNvcmU6OiRjbGFzcz4oeCkKIEVORAogICAg
ICAgICA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA0NjY5
MTYzMjVjZWQ3NmM2YmM5N2Y3ODBjN2M1ODYxNTFmZGE5MzZhLi4yMzJiMDI1NjA0M2VhNTZiODVj
ZDE2ODFmNmQ1ODBiOTE1YjBmOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5oCkBAIC0xNTUsOCArMTU1LDYgQEAgYm9vbCBpc0VudGVyS2V5S2V5ZG93bkV2ZW50KEV2
ZW50Kik7CiBib29sIGlzTGlua0NsaWNrKEV2ZW50Kik7CiBib29sIHNob3VsZFByb2hpYml0TGlu
a3MoRWxlbWVudCopOwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEFuY2hvckVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxBbmNob3JFbGVtZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCmluZGV4IGFjMDdlOTg2Y2NjNDhhNWFmNGEy
MDMzMTE2NGYxMWVkZGY5OGExZTUuLjhkYjc1ODk2Y2UzNjAzMWE0MzIxMDUzODVmMzNiODM4M2Rj
ZmNlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaApAQCAtNzEsOCArNzEs
NiBAQCBwcml2YXRlOgogICAgIFNoYXBlIG1fc2hhcGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
SFRNTEFyZWFFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBdWRpb0VsZW1lbnQuaAppbmRleCAzMGQyYThmMzllY2FkYjg4ZjcwMTgyNjE4NDMz
YmEwZWRlMGY4NTIzLi43ZTg2NThjODcyMzAyODU1NGFmNTNmZTY2MzJkYzEzMDVmYTc5ZjIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaApAQCAtNDMsOCArNDMsNiBAQCBw
cml2YXRlOgogICAgIEhUTUxBdWRpb0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgYm9vbCk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEF1ZGlvRWxlbWVudCkKLQog
fSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJhc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5o
CmluZGV4IDQwNTRlMTc1ODZjMjg4MmEyMmQ4NWVmN2RjNDIwZjUxOWNlMDA0NzguLmI3OTlmMWZh
MTg0OTk5NzJmYjAyY2I2NTY2NGE1NzEyYWQ2ODYyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QmFzZUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTEJhc2VFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oCmluZGV4IDAxN2VmYzIyY2I3NmY2YzVlNzkyNjRk
ZDJlOWI1ZDIwM2Y5MTViODIuLjBkNGQ2MGE1NjVhNmIyYTE5OTZjODY4MzY2MjgxZjhjNDc0YTJl
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaApAQCAtODEsOCArODEsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMo
TGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxCb2R5RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA4ODM3ZDA4MjczMjVkNDNjYjRkNjI5YWE4
ZGY2YmVkN2YyZDE1OTQ1Li44YWJkZTc3ZmQ5OWVkNjZjMzZhOWEzOWE0MWE3MDZkNzg0MjRlMjI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0xODAsOCArMTgw
LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxJbWFnZT4gbV9jb3BpZWRJbWFnZTsg
Ly8gRklYTUU6IFRoaXMgaXMgdGVtcG9yYXJ5IGZvciBwbGF0Zm9ybXMgdGhhdCBoYXZlIHRvIGNv
cHkgdGhlIGltYWdlIGJ1ZmZlciB0byByZW5kZXIgKGFuZCBmb3IgQ1NTQ2FudmFzVmFsdWUpLgog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxDYW52YXNFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaAppbmRl
eCA2N2ZiMWRiOGQ3NzY4MjFhYzYxN2MxMGRiMGMzZmM5OTBkNGM1NjY3Li5jZjFkM2ZmNjIxYzNm
YTIwOGVkZTY4YjNhYmU5YTU4YmM4MDUyOTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
YXRhTGlzdEVsZW1lbnQuaApAQCAtNTAsOCArNTAsNiBAQCBwcml2YXRlOgogICAgIEhUTUxEYXRh
TGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoSFRNTERhdGFMaXN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogI2VuZGlmIC8vIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGV0YWlsc0VsZW1lbnQuaAppbmRleCBjNDFmNmY0NzFhMDQ2MzBhNzljOWY2ZjQzOTI0
ZTYyZTY0OThlN2M1Li4wNzNjZDU5NGQzMDcwODEyYjliNGFlNjRlODIwZTM1Yjk2YmM3NmIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faXNPcGVuOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhU
TUxEZXRhaWxzRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
SFRNTERldGFpbHNFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERpdkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAppbmRl
eCAxYjVkMjBhZDg4MjNmZjFmY2FjMzFlZGViNjg4ZTRiZThiODgyNDRhLi5mZjgxYjliODJjYWJm
NzZmMWRlMjA0N2Q0ZjU4MTFjNWRhYzViZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEaXZFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxl
bWVudC5oCkBAIC00MCw4ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEaXZFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBIVE1MRGl2RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVt
YmVkRWxlbWVudC5oCmluZGV4IGQ5ZmQ0NTIzZTQyMjM1Yjk3MWRkMTRkNGY4MzFlMmI5ZjQ2YWVk
YzAuLmNkZDNiZWNmYmJhN2ViMGRkNzJiMzBiNTk3ODliZWVkNGJiZWQ1NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCkBAIC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwYXJhbWV0ZXJzRm9yUGx1Z2luKFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBW
ZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxF
bWJlZEVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5oCmluZGV4IDdjMTNlYTBkNTNhM2I5NGZjZGQzNWQyYzY3ODEzNzYyYjVkMmRj
YTcuLjNhMDIyMzBkMTE4MjM4N2Y3NGViMzE4YzNlOWFlOWRjMDdiYmI4NmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCkBAIC02NCw4ICs2NCw2IEBAIHByaXZh
dGU6CiAgICAgbXV0YWJsZSB1aW50NjRfdCBtX2RvY3VtZW50VmVyc2lvbjsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MRmllbGRTZXRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IGM0NjlkY2VmOGFhNTg2
NzI4NDFjMDI4NDEwYjllMGU2NmI3NmYyODAuLmZjM2RiOWQ5NDhkMmFkNGIwNDcxZjZkYmEzNWJm
NDQ2YzQ3MDE5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMjAx
LDggKzIwMSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
Rm9ybUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxG
b3JtRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IDU1
NzljOTg0ODg0Mzg1NTAyNTJlYmMyYzg3ZWRmNGQ4NzExZjdlZWMuLjZlNGZiMGZjOTZiZWY2N2I3
NzliNmE3YmI5YmMxZDFmNDg2ZWVhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVy
U2V0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGcmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxGcmFtZUVsZW1lbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAppbmRleCA4MGU3ZjJhZmUyZmIzMDUyZmI5
YzY2ODU0ODJiZDcwNzZlMzhjOGU0Li4yNzI5MzhjZWQyNzgwODJjODAwYmExZDAyODQ3MjdmNTcz
ZmM4OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAt
MTAwLDggKzEwMCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25vcmVzaXplOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxGcmFtZVNldEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEhUTUxGcmFtZVNldEVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEh0bWxFbGVtZW50LmgKaW5kZXggYjk2NmM4NzBiODEyNzkxNmY4YjMyYWQ1MDRjOWZjYmU5Mzhm
MWIwMC4uMGY4M2I5YTRlYzAzNzkxNGNmOTYzYjBiZjE2MGM1OTJjMTI3MTFmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92
ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxIdG1sRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgK
aW5kZXggOWFlMTkzMjYwYWY0NWJjMDJhMGI1NWFjMGViYWY1ZjE2NzhlMmY2NC4uZjBlYmNlYzA1
MTMzY2Y4YmIwNTdlYTVhZmQwMmFlODIwOGJkZTk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElGcmFtZUVsZW1lbnQuaApAQCAtNDcsOCArNDcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElGcmFtZUVs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxJRnJhbWVF
bGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggMzI0OTQ4
YjFiMTdiY2VjYzg2ZWU2ODcyNTI2MWE3ZjAzOGIzZDY3Ny4uNmFkNDU0ZDMyOTc0MTkxYTNhMzJl
MDhjMDkxYjMyZjY1ZDY4M2U1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTEltYWdlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZTM4ODViY2MzMjFhMTk3ZDlmNTMw
ZTI1MmRhNTIxODg5Mjc5MDA1ZC4uZDdhNjVjZDZkMzE2MDI1YmY4Y2VkOTdkOTNkYTUwOTNiNzk5
MWU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTQ0OCw3ICs0
NDgsNSBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElucHV0
RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5oCmluZGV4IGFlYTUyMzdhODUxM2ZhYmMyMjkyYmNkZjRhNWYwODAzMWIwOGE0
NDMuLmNhOGVlNjBiMDU4ZGVjMjZjMjhmM2JmYmU1YWFhZDc1ZjczNTRiZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1
c0RpcmVjdGlvbikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTExhYmVsRWxl
bWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExl
Z2VuZEVsZW1lbnQuaAppbmRleCAyNDU2OGJkYTQwM2MyZDNiNThmNTEwNzIwMDY3YmEyZjliNWU1
ZDVkLi45MTA0YWJkNjg4NjUxZjNlNTFiNjMwMjI4MWMwMzE2MTc5OWQ5NmNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCkBAIC00NSw4ICs0NSw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJp
ZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTExlZ2VuZEVsZW1lbnQpCi0KIH0gLy9uYW1l
c3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCA2
NWIzMjQxNzYwMTA4MTkzYTI5Yzk3M2EwOWM5ZDFlNWM1ZDczZTU5Li5jYmY1NzA4NTI0ZjcyYjQw
YWJkNWU2OTZjNTA1OWRkOWU5MTc1NTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmgKQEAgLTEzNyw4ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIFBlbmRpbmdTaGVldFR5cGUg
bV9wZW5kaW5nU2hlZXRUeXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxMaW5rRWxlbWVu
dCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1hcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1l
bnQuaAppbmRleCA5YWU0NDY3Mjg1MmIxMTQwMzA1ODc3YWY5MjYyZDRiYzMxNmUzZGIyLi42MTdh
YTEzNjRmYzIyY2Y0NDA3ODgxOTA1YmJiNGRiMDY5MjFhMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWFwRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3Ry
aW5nIG1fbmFtZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTWFwRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2VzCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWFycXVlZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVt
ZW50LmgKaW5kZXggZDEwOTgyYjFkYWNlYjM2YTEyNzRmZmVlYTRiZTE4ZWExZGY5M2EwOS4uOTYz
OWU5NjM2MjQyMjRiODgzOGQ5YjIzMDc1OTc2NTc0MjgzMDVlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAg
UmVuZGVyTWFycXVlZSogcmVuZGVyTWFycXVlZSgpIGNvbnN0OwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxNYXJxdWVlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gSFRNTE1hcnF1ZWVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVu
dC5oCmluZGV4IDE1OWMzYWE3MzcxN2UyYWFmNmVmMzViMjE4MmNmM2U4NWI3MzBmYjQuLjA0NTc4
MTlkYzNiOGYzYjFjNDJiOGMwMzFjMjY4MzFhYTZiYzRmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWV0YUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJv
Y2VzcygpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNZXRhRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVt
ZW50LmgKaW5kZXggOWQ4MjE3MmZiYzI0ZjdlMTdjODA4NDIzODc1OGQ0NmNhYTc5ZmQyNi4uYTI4
Y2I0NDk2ZTZiMGUwYTZmZWI5NDlhNjQ1MTE2MjJlZTMwMGU1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWV0ZXJFbGVtZW50LmgKQEAgLTgxLDggKzgxLDYgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IG1fdmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TE1ldGVyRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9MaXN0RWxlbWVudC5oCmluZGV4IDk4OWQ3OTU5MjVmMDhlZDIwZTVjMzYxZTg4YzZi
NWUzM2ZkNGU1YTkuLjFmMGFhZjE0ZDEyY2RkOTE2ZTYyNmE5YzE5YWViZGE3MjNiZWE0NDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFJlY2FsY3VsYXRlSXRlbUNvdW50IDogMTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MT0xpc3RFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IDJjNDkxOTMz
NjM3ZTE1NzVmZGJmZGI2MDIwOWVkNWY4Yzg4ZjVkNzkuLmY4ZTdhNmUwMjVkMWU3ZjFkZmFmYmU1
YjVjNTE2MTk2ZjAwODE3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmgKQEAgLTEwMyw4ICsxMDMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VGYWxsYmFja0Nv
bnRlbnQgOiAxOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPYmplY3RFbGVtZW50KQotCiB9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRl
eCA2ODljZTRiODJmZjJkNGI3MzY1YmNiMDMzOTZhNzQ3OTNhM2YzZGI0Li41N2EzNzQyOTc1YzNk
YjEzNjdmZjgyODgyYTMwNzY0MDM2MmY5MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRHcm91cEVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVj
YWxjU2VsZWN0T3B0aW9ucygpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRHcm91cEVs
ZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmgKaW5kZXggNjQ3ZDAxZTMwNDJiMDhkODQ4ZWZkMTkxNGJmNzkwNTNiYWFj
YmNlZi4uNjU0ZWYxMTgzODA4YzQ5MzY5NDBlOGI2MWVlM2UzOTQ5YjQ4YWRkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtODcsOCArODcsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc1NlbGVjdGVkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRp
b25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGFyYW1FbGVtZW50LmgKaW5kZXggNGU4MWQyZGE3OWM4MThlNzZiMjI3NGViNWRmZGNmZGZl
NzViY2IyYi4uZWQ5YjRlYjBiYjgxOWIyNDBmZjk5M2Y2YWUxYmVjZGUyN2JhMWNmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNo
U2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUGFy
YW1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAppbmRleCBlZWRiODgwN2IxNjQwMjczM2Nm
OWNkNzViNmM1MGIzYjUwYzM4ODQyLi5jN2ZkOTU1MWE1OGE0Mzk5ZmU3YzFkZGVkZGYzODNjZWVj
YWQ4NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaApAQCAt
NjcsOCArNjcsNiBAQCBwcml2YXRlOgogICAgIFByb2dyZXNzVmFsdWVFbGVtZW50KiBtX3ZhbHVl
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxQcm9ncmVzc0VsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmlu
ZGV4IGI4NTAxYjQ3Mzc2YTZkM2VjZTM2NDhjZjM1Yjg4MTdmNWM4MDY2MDMuLjY4ZDk2YTNhNjk5
MjczNWExZjNiMmNkYjM1MzI4MjliNjIxZWI1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmgKQEAgLTY3LDggKzY3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJl
bigpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTY3JpcHRFbGVtZW50KQot
CiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCmluZGV4IGZhOWNiZTQ3OTZmOGM1NzFjMjNlMjZiZTM3OTU4YTBiMTc4Nzc5YTAuLjI3
ZmVmZDYwYjRmY2RiYWMxMzkxZWQ2ZTg5YzlhOGFmZjUzNjk2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTIxMiw4ICsyMTIsNiBAQCBwcml2YXRlOgogICAg
IG11dGFibGUgYm9vbCBtX3Nob3VsZFJlY2FsY0xpc3RJdGVtczsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MU2VsZWN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKaW5kZXggNTU1ODc1Y2Q0MDE4ZGJiMmZh
YTY0ZTdkNTY1YWIxMDgxYWU0ZmVjOC4uNTIyZDc0MzY4MmRkYTk2ZmM5NzdkNjExOTljYzcxZjU0
MzljOWY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaApAQCAtNTcs
OCArNTcsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPEhUTUxTb3VyY2VFbGVtZW50PiBtX2Vycm9y
RXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU291cmNlRWxlbWVudCkKLQog
fSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50
LmgKaW5kZXggOTk1N2JhNTA3MDI4MjFhYmFlZjY4ZDA3MjJmZTdkNTZmMTY0NDM4MC4uOTFmMGI3
Y2Q1OGQ0NjY4OGJlY2Y2NGY0NzAwNTAwMDQzZTIzYjg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3R5bGVFbGVtZW50LmgKQEAgLTcwLDggKzcwLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
bG9hZGVkU2hlZXQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFN0eWxlRWxlbWVudCkKLQog
fSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN1bW1hcnlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5oCmluZGV4IGZiYWJjZGU1MjU3Y2M2MjMzM2UwYjMyMWI3MTAzNWJmYmI4MGU4ODUuLmJj
MjI4NDIwOTkyN2U2NDkzZmNkMmRkYjIyNGZhMGZiYjdkOTI5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaApAQCAtNDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAg
IGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxTdW1tYXJ5RWxlbWVudCkKLQogfQogCiAjZW5kaWYgLy8gSFRNTFN1bW1hcnlFbGVt
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaApp
bmRleCBmMDY0ZTI4YTk4MDk5NDQ2OGFiMjNjOWY5ZTE3YjhmMTU1MDU5ZjQ3Li45MDRjMzI3YzIw
Y2MwYTYyZmJiM2NkZGUxNDQyMDg5NzkwMDE4ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUYWJsZUNhcHRpb25F
bGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmgKaW5kZXggYzk3NjhlYmUwOTdkZjU4ZjM0ZjQ1M2M5MTg4OGFlNGEwM2Zj
ZGJhYi4uM2NjZTgxYzAzYmYxMjU0NmUxMjhmNzRiYjdlNzllNGVjN2FmOGYxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKQEAgLTEwMSw4ICsxMDEsNiBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxTdHlsZVByb3BlcnRpZXM+IG1fc2hhcmVkQ2VsbFN0eWxlOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxUYWJsZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCmluZGV4IDMzOGI4
Nzk5NzAyNTdkMGU4YWE5NWE5YzFlM2E2ZTEwM2MzZTEzZjMuLmM0YjBmNzczOWNmYjJjMzQ5Y2Qz
NDdlYjg1ZmEwZjE5ZWM3ZTE3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlUm93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5oCkBAIC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlUm93RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MVGFibGVSb3dFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKaW5kZXggZDdmZjk1MWI3Yzhk
MjI4NGE4MjFhNmYyN2IxYTgyNDcyMWZiYjUzNS4uYzgxZjdhNjZjNDgwNGE1ZjdmNWJkNzczM2Ex
ZjA4NmExODc0NmFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxh
dGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50
LmgKQEAgLTU2LDggKzU2LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxUZW1wbGF0
ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTFRlbXBsYXRlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5oCmluZGV4IGE4MDFmOTliOWZjZTdkNTFiNzYzNDgxMTA1NDRhNGFkMGE1
MDI2ZTIuLmJlZGQwYTFmNzA4NWI2NjlhOGY4M2UxODg2OTQ0OWU0ZDZlMDI3ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC0xMjYsOCArMTI2LDYgQEAg
cHJpdmF0ZToKICAgICBtdXRhYmxlIGJvb2wgbV93YXNNb2RpZmllZEJ5VXNlcjsKIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhIVE1MVGV4dEFyZWFFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAppbmRleCBlYmUxZDNjYzUw
OGI2OGZjODdmNjM0OGE3MzE2YzhjNTJiZThkM2EwLi41ZGUxZWI1NGZlOGUwM2RhNzMwNzU2YmY2
OTc1ZDgyNTZlNmVlYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRs
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaApA
QCAtNDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZ1dpdGhEaXJlY3Rpb24gbV90aXRs
ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGl0bGVFbGVtZW50KQotCiB9IC8vbmFtZXNw
YWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCA4
MzE3MTdiNGJkNmJiOTJiOGQ0MjlkMWU5Y2QxOGJiZTIyYjdjZWRjLi41MjZkYzAzY2MxODViZjdl
Mjg3YjUwZmQwZGFhODE5MmMxODE3YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0Vs
ZW1lbnQuaApAQCAtOTQsOCArOTQsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPEhUTUxUcmFja0Vs
ZW1lbnQ+IG1fbG9hZFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUcmFja0VsZW1l
bnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxW
aWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmlu
ZGV4IGM0ZDRmOWQwMWNkMWNmMTFiNzc3YzJhOGIwZjg1ZGY1OWJjYWJmMjQuLjc2ZjAxNjU2ZTk5
OWU1M2M5ZTYwYmI3NzU0YmUxYTUwYjE5MTFmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJp
bmcgbV9kZWZhdWx0UG9zdGVyVVJMOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxWaWRlb0Vs
ZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBmZDdlOTIzODg0NGRiOGE3ZmJlNDg3
NTgxODRhYzZkNTFmMDI3YzVmLi4zNzg2NTU1YjI4YWMxOWM0Y2ZlOTZhNTllNTI0OGEzNmIwYTgx
NjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKQEAgLTIwMTAsNyArMjAxMCw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50OjpzY3JpcHRW
YWx1ZUFzTm9kZShEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIXZhbHVl
LmlzT2JqZWN0KCkgfHwgdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgcmV0dXJuIHRvTm9kZSh2YWx1ZS5qc1ZhbHVlKCkpOworICAgIHJldHVybiBKU05vZGU6
OnRvSW1wbCh2YWx1ZS5qc1ZhbHVlKCkpOwogfQogCiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBJ
bnNwZWN0b3JET01BZ2VudDo6bm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
LCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1l
bmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxl
bWVudC5oCmluZGV4IGRjNjljMTFiMTRlZDhjNmZmNDQzNmE4NzBkZGU4NDRjMTVlMDM5YmMuLmVl
OTczMzUwYjcyZWMzYTFiODczMWIyNTFjOTQ4NWY3ZGI0Mzc5MTkgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNSYWRpY2FsVmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
TWF0aE1MTWVuY2xvc2VFbGVtZW50KQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCmluZGV4IGFjYjJmMzUw
YTczN2QzNmNkODdiNTZkMjMwYThhZDMxZTIxY2RmOGEuLmM2M2UzNDM3MzUxMDg3NThhZmM4ZWU5
ZTMxY2VmYjQyZGEwMGIyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRH
bHlwaERlZkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZF
bGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhEZWZFbGVtZW50KQotCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCmluZGV4IDUwOTVh
YjUzYTU1NmYxZWUxMjI3NGUxYzNkMThmZTI2NjdhZGUzZTUuLjZiZTlmNzUyYzEwNWI4NmE4NGIx
NzkxYTM2NjVlZTdiODJjYjI3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bHRHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVt
ZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgKaW5kZXggODI0OWNiODBiM2QwNmNmMzU5N2ZkMzhkMzgw
MzkyNWQyYmZhMDhjNS4uYzdhZmU2OTVjZTU3MzQ5NDIyNWQ5OTY2ZjhjNGJkYTY1NWQzMWM5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oCkBAIC0zOCw4
ICszOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR0FsdEdseXBoSXRlbUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCmluZGV4IDM2Njc4MTRhMzIx
OTBkMjIyNzhmODc3NGIxMzczZGQ2YTM2MzA3YzkuLjQxN2Q1ZjI3NWU2NzY4NzZhNjI0ZGE3Y2U5
MjM3NGVjOTc3YjNlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9u
RWxlbWVudC5oCkBAIC03MCw4ICs3MCw2IEBAIHByaXZhdGU6CiAgICAgUGF0aCBtX3BhdGg7CiAg
ICAgUGF0aCBtX2FuaW1hdGlvblBhdGg7CiB9OwotCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQpCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKaW5kZXggYmRjZmY3
MGRlNTE4ZDAwM2IzYzU4YzZjZmU5Y2U5MWQzZTY5ZWE5YS4uYjFhNDRlYWViMDU3MjBlN2Y2NDhj
N2JjYzgyN2Y0YTVmMGUzYTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50LmgKQEAgLTQ3LDggKzQ3LDYgQEAgcHJpdmF0ZToKICAgICBTVkdU
cmFuc2Zvcm06OlNWR1RyYW5zZm9ybVR5cGUgbV90eXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NpcmNsZUVsZW1lbnQuaAppbmRleCAwNzlmYTk5ZmNmOTgzZmNkNDVmOTNhNzYzMWQ5YThkN2Nl
NTY2NzhhLi5lYzE4MmRiM2MyZDJiYzcxYjQ0OTQ4NDkyYjFkNDdjNmNlNjVhZTUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToK
ICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoU1ZHQ2lyY2xlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gU1ZHQ2lyY2xlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q2xpcFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmgKaW5kZXggOGZkZWIwMmI2OTRlNTZjM2JjMzYwNjIwYzEwNDlkMDAwMWMxNTU5Ny4uOTM4Y2Zi
NDVkOTJlNDIwMmE0NjUyNTRmMzlkNTZlZTQ0OWJhZmEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuaApAQCAtNTYsOCArNTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9E
RUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDbGlw
UGF0aEVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ3Vyc29yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1l
bnQuaAppbmRleCBhNTMwMWU0NjIyZmE1NmY5MmEwN2JjNDIyYTg1NTljM2I1MDQ4MDdlLi5lYTIy
M2U4YTRiZGFmYWEyYTI5YjhmMGVjOTQ5N2MwMzg0ZmE1YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDdXJzb3JFbGVtZW50LmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0
PFNWR0VsZW1lbnQqPiBtX2NsaWVudHM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ3Vyc29y
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKaW5kZXggZDZiMjBmNjJiMmM1NzVmZmNmZjIzNDAzMDk3
ZjM0NmUxZDYzMzM1MS4uNWI5ZjkyYzMwMWRjZDljYjFkNzJlMjkxNDFkNTAzNDNiOGM0NGJjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAg
cHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHRWxsaXBzZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGln
aHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50
LmgKaW5kZXggNzk5ZjZkNWY5YTc0NzRiYzgyZTU3NmFjYTMzZDRiN2YwNDZlMTliNS4uNjBlYTQ0
MzZlYWMzYzYwNTk4YWFjYzQ0NTFkNWUxMTg4MjAxYmViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRURpc3RhbnRMaWdodEVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNBRWxlbWVudC5oCmluZGV4IDMxZWJiNGY3OGNjNGIzMmUxMmE3NzliODI3NTI5NDBj
MTUzMDRiOWMuLmE0ZTZhZDVhZjQzYzE0MDJiZDBhZmQ2YjY5MjBmOTQ2MmM4MjBkNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZh
dGU6CiAgICAgU1ZHRkVGdW5jQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQUVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVGdW5jQkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVu
dC5oCmluZGV4IDM1YmM0NDg1ODI1OGNlMmRhN2M2MDE1NTM4MjJmOTBiYjUzY2I2MzguLmFmNDlk
NmY3ZGRmNTE1OWVmODY3MWY5Y2EzYzJmNWI4NDJlMGJkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNCRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVG
dW5jQkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCmluZGV4IDM5ODU3
ZWRhMTA1NGQ1OTI1MmM3NzNkYmFmMDFjODk4OGYyZDRlYWYuLjFhZmE0MzI0MTkwODkxZTkyZjRm
NzhkMzkwNTFlZTdkZjEyOTM4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVu
dC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jR0VsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
RkVGdW5jR0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCmluZGV4IDllNzMyN2M3MzMzNDEwZDM3N2Y5
ZTJkMWYxZmEzMzI0NDczOGU2YmIuLmIwZDBlYjUxYTBmNjY0MDZkZmMyYmNjZDJmZDZlMjVhMGJh
ZjBlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCkBAIC0zMyw4ICsz
Myw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jUkVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKaW5kZXggNTE1OTdlYjU3OWY3MmNmNmMzZWFhMjliNDc4
MzIxZjIxMDZkMDEwZi4uNzIzM2YyMzRlZGVkNjY1OGEwZjNlNjMyZjY2MzIzYWJkZWZmZWQ1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaApAQCAtNDQsOCAr
NDQsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRU1lcmdlTm9kZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVQb2ludExpZ2h0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdo
dEVsZW1lbnQuaAppbmRleCBiNzAxYmU1OTNiOTdjZDYxYWU5Nzc1N2M5NjQ5MzNhOGViY2ZlYWNm
Li4zNDU3OTI0ZmJkNjUwYTg1MjEyOGZiYTE2ZmQ3OTc0NzU5NjEyNmM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVQb2ludExpZ2h0RWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaAppbmRleCA4MDM5YWYyZjE1MGUwY2U3ZjBkZTcw
ZDg5Y2RlYjgwYjc3OTBmOTNlLi5mZjZiNDhjNWVjMWI0NWU3NjViYzkzMGU4NmFkNDQyZjFkYTYx
NmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCkBAIC0z
NCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPExpZ2h0U291cmNl
PiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R0ZFU3BvdExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDhlYTczZmI2NjE2MmNhZDc5
Mzk5MjYxY2RlN2Y3ZWI4MzlmMjQzMmYuLjE5MzllMzE3ZjdmMDA0ZDA2ZDhkNDdlNDIyNmI5ZjBh
MGQzYzNkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNzUsOCAr
NzUsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGaWx0ZXJFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAppbmRleCA4ZTQyNzRkZDBjYjNjM2Q1ODA1MWI3ZTdj
YmViMDliNzdjZmE5MjY5Li5lYjVjNDZlMDRjZTUyNGZmODAwZDg1NmRiODNiMDlkMjY4ODU5MTQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaApAQCAtMTAyLDggKzEwMiw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lzR2x5cGhDYWNoZVZhbGlkOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR0ZvbnRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5o
CmluZGV4IDZhMjExNmE5NWJmODA0NTRkOGM3MjczOWI3ZTY4ZTNmOGFiODJhMjMuLmRjZDAxZjI0
YTIzMDJhZDc3NTc5ZjYyN2YyMGE0YjFmZDE3MGVmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VFbGVtZW50LmgKQEAgLTY2LDggKzY2LDYgQEAgcHJpdmF0ZToKICAgICBTVkdGb250
RWxlbWVudCogbV9mb250RWxlbWVudDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFj
ZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShT
VkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1l
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaApp
bmRleCAzZjI1NDQ1ZmFhYjY0ODE1N2Q4MGU4MjM3NTFiMTUyMzc4MTA5YzIyLi5jNjg1ZjhhYzQz
MWY5Mjk0MGVjYTQzOTAwZjAyNWI0M2UyZGJjNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZU5hbWVFbGVtZW50LmgKQEAgLTM5LDggKzM5LDYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VOYW1l
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNW
R19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAppbmRl
eCAzYjA5MTRjMTJmM2Q5YTk5MmNmNTE0YzFiNDYxMzAwNzJlNTI1MWVjLi5iYTVhNjQ0NmJiZTFh
ZDFjZjM3OTY1NjBlM2E3ZThmNjk5MzMyN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlU3JjRWxlbWVudC5oCkBAIC00MCw4ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlU3JjRWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05U
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAppbmRleCAxODlh
Nzg5NWFjM2QzNTFjZTNkM2I2Y2I0MmRiYTc5NTM0NjY1M2M0Li4zNTBmMWZkMWEzYWMyZGJkOTZh
ZjAxN2I2ODAzYjlhYmI5N2I0NTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5oCkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNoZWRGb250OwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR0ZvbnRGYWNlVXJpRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LmgKaW5kZXggNzViYjc0YjdlMjcxMGIzYjA5NzkxYjkxZDFiMDIxYjUxMDYy
MmYwYy4uYWI0ZDFhZmM2YmE5ZmRiMDY4M2E0ODk3ODZiYTUxNzdkMTgwZTIxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAgLTU4LDggKzU4LDYg
QEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5
cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKaW5kZXgg
N2I3ZDM4YTEwZmE1NDBhNWIzNTVlM2FhM2E4YjIwZDI0N2Y0NjhjMy4uNDAwOWZiNjYyMzI2NTNl
ZjgxMWM3MzlkZmFlN2I2Y2I3YTE1MGJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dseXBoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1l
bnQuaApAQCAtNTcsOCArNTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUdseXBo
Q2FjaGUoKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdHbHlwaEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKaW5kZXggNmQ4Y2FjN2ViNzdmYzJmOWYwMjM3
OTU3M2I2ZDYxODdmNDYzNDUzMy4uNDY0ZmVlY2UzMWMyODc1NWUxZTJhMzhiOTMxNjY4NDNkYTdj
MzI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaApAQCAtNjEsOCAr
NjEsNiBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fZHk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHR2x5cGhSZWZFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJu
RWxlbWVudC5oCmluZGV4IGU1ZDhiNzhmZDM4M2M4NDMzZWE2ZWQ0NDdkODgyNTViODMwMDc4N2Eu
LjFjMTllMDU5YjdkYTVkZjYxYzFjNjk2NDQ0OTA0YmM2YjE4Y2FiZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHSEtlcm5FbGVtZW50LmgKQEAgLTQyLDggKzQyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHSEtlcm5FbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCmluZGV4IDFhMzYxYzVjODNlMjI3NzM1Njg3
NTA2ZDgyNmQzN2U3OTAyOWJkYjcuLjE3Njc2MWRhOWViYWQwY2U0ZTE2Njc5NDA3OGM1NzgxZWZk
OTZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTcyLDggKzcyLDYg
QEAgcHJpdmF0ZToKICAgICBTVkdJbWFnZUxvYWRlciBtX2ltYWdlTG9hZGVyOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKFNWR0ltYWdlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKaW5kZXggNjRlNzg2MzY2MmUw
YjUxNDA1ZDg0YTg5MDY5MjUzODViNGZmMTU5OS4uNTNmZWFkNjU2MDQ1MTRmZmIxYzVjZmEwZmU5
NjA2ZDI1YTUzZTgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKQEAgLTU1LDgg
KzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTGluZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LmgKaW5kZXggNjhhYzZiODQzZDcwMGY3NjAyZWVmNjQ0NTI5YmYwYTJkZmRkOGM0Yy4u
NDZkOTJkZTMxYjcwNGE2ZWU0MTNiNjNiYTBhZGQyZmFhOGE1MjM2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBw
cml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKaW5kZXggOTcz
MjY0OGEwYzVkMDUxMmQyY2Y3ZTc1MzRkN2YxYTFjODJiMGVhOS4uMWJlNjRhNjcwNmU4ZWFkYTA5
ZDIwMWU4NjI0NDRiMWVjNjQ3NTEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01QYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQu
aApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNUGF0aEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR01QYXRoRWxlbWVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAppbmRleCAxYjkzMGU2M2M5MGExY2FkNWQyNmVmYzFj
NTQ5MmZjY2FkZmZiYmIwLi5iNTIyY2I3YmE2MmU1NWZhMjI4N2Y0ZTc0ZTAzODBjMDg0YzM0MGE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTE2NCw4ICsxNjQsNiBA
QCBwcml2YXRlOgogICAgIG11dGFibGUgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5
PFNWR01hcmtlck9yaWVudFR5cGU+IG1fb3JpZW50VHlwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdNYXJrZXJFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0Vs
ZW1lbnQuaAppbmRleCBmNTBhOTQ2OWRiZTk0NGYxMTcwMTNhZWU1MmJhOTkxMmUxNDhjYzQ1Li4y
MmVkZGJjZDNmNmY1N2Q2Y2Q0YmRiMDMzNTUzMzMyOWUyMDMxZGM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKCkgb3ZlcnJpZGUgeyBTVkdUZXN0czo6c3lu
Y2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R01hc2tFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmgKaW5kZXggZjU2MzdlZTkyNTU3NDZhMWQ3YWE1MDQ2NmY0MWY5MWZk
N2I1ZTNkZC4uOTRhNDI2N2UwZDcxOWUyOTYyNjcyMmFkOWI2MGU1Y2MzMzY0YzQxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVu
ZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR01pc3NpbmdHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5o
CmluZGV4IDAyMWI2ZjEwODY2MTgxYjRhOTliNDY5YzIzZTQ0MjAwZmY4ZTA2M2QuLmI2NGI0YzVl
ZjYxNTRhZjlhNDcxZWRjYjY2MDZiOTlhYjRhYTBkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
RWxlbWVudC5oCkBAIC0xMjksOCArMTI5LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNBbmlt
VmFsT2JzZXJ2ZWQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUGF0aEVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJu
RWxlbWVudC5oCmluZGV4IDIyYzdjMjAyMmViMzQ3YzEyMTExZDM5MDFkZDgzYzVkYjg3MjlmMDIu
LjQ5MmNkNjgxN2E4MDU1Y2U5NTkxNjhiNTBkNmM1MTQ0ODc5MTU4MDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBAIC04Niw4ICs4Niw2IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rl
c3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHUGF0dGVybkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCmluZGV4IGE2MmRlMjAwZjNk
YmRlMzVmZTVmNWQxOWZiMDAyMWU5OGRiNzVlOWQuLmQ5MGRkYWJmYWQ2YjExY2I4ZTdjYmY5MmUx
ZDU0YzNlZjk0MTlhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29u
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCkBA
IC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHUG9seWdvbkVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUG9seWdv
bkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgKaW5kZXggNGI1ZTg0MWY3NzE4ZTZjYzgwYmNjYzQ1
OWI2MDllYTJiZjMyNWRiYS4uYTA5MWVjNjRlOTVkMmI1YmY4NjFkNWY4NjEzMDBiZGVkN2M5Njg3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaApAQCAtMzMsOCArMzMs
NiBAQCBwcml2YXRlOgogICAgIFNWR1BvbHlsaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdQb2x5bGluZUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKaW5kZXggZTU2ZmIyZmQxNzgzMDlhYmVjYjll
OTk2OTBkMjcwN2VmODI0OWUwZi4uMTJiZjRlZDFiY2NlMjI5OTZjMmVhMzJjNzdmM2MyNDRlYWJh
Y2M2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
aApAQCAtNTYsOCArNTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0
RWxlbWVudC5oCmluZGV4IDcyZWI4NzU4MDFjMDU0NDg3YWQ3OTNiOTQ1NWZiYjI4ZDFhMzdjOWYu
LjNjZWU4ZDkzMGZiZDI3NmZmZjY3OTZhNWMwNjFmM2M1YzdlMDY2NzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZWN0RWxlbWVudC5oCkBAIC01OCw4ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RF
Q0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1JlY3RF
bGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmgKaW5kZXggZWZiNDJlZGRjODMzNzg0YTMyODhmZTJhNGQzODBhNDNlZjRk
Nzg4My4uMjc4MjI3MmVlMDQ1YTM1MTIyOTE1MDBjNWUzOTBmMTQ3NzFmZmI5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0xNzUsOCArMTc1LDYgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8U1ZHVmlld1NwZWM+IG1fdmlld1NwZWM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
U1ZHRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4IDU3MmY3OWRlZmYxNDUzMTRjODZhMzVmYzg5
MGJmYTA4YTE0YTFmYjUuLjlhY2RiZGIxYjBhZGYzNzU0MTQ3NjUxYmQ3YjQzMTAyY2I1NTE3NGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtODYsOCArODYsNiBAQCBw
cml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoU1ZHU2NyaXB0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKaW5kZXggZDg3OWI0
ZTkyZTkyMWFlZDc3YTcwMDc1MGE3ZjZlYWY3NjI5YjBmNi4uN2RhMzdjNmI4MWExNTliNTVkYWZm
YjUxMzc0ZjcwOTI2NGRlMTA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
b3BFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKQEAg
LTQ5LDggKzQ5LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJU
SUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU3RvcEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3R5bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKaW5k
ZXggNmE5MWUzODhjOTVkOTdmZTgxNjE3NjJmNDQ4NTRlNGJlYzBkZjM0YS4uMWU3MzE3NTI1ZmM3
ZGI3NTU4OGQ1M2I4YzM0NzI5ZGMzYTUyMWRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVs
ZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+
IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU3R5bGVFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdTdHlsZUVsZW1l
bnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAppbmRleCBhOGMwYjcyMzAyN2YxZGJi
NGVlZGVlNWQwZDljNzY3MzY5MWM2NTU0Li40MzA4NGQ1YzkzZWMxOTk2NmZkNTY3MGQxZmJjYTk4
MjUwNjY2MmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaApAQCAtMzgsOCArMzgs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVy
KGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdU
ZXh0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAppbmRleCAwYTRmZjY3NGY4YzgyMGE2NjBhZmQ3
OWE1ZjQyOGU4NWNhYjQ4YjhiLi5mMjQ0YmMzNzMyN2Q0NDcyNDQ0YTkwNmRhOGI3NzY5NDdmZTQy
ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xNDMsOCAr
MTQzLDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVGV4dFBhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rp
dGxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCmluZGV4
IGM4NGE2MDMyN2NmNTZkMDY1MmY0YzRjOTU2YmRmNjJiMzE4ZWUyNDYuLjA3NWIyMzliODE4YzVh
M2U5YjQ3YzM1Y2YzODM1ZjhiZTE4ZWI0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUaXRsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVt
ZW50LmgKQEAgLTQwLDggKzQwLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVGl0bGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXggM2Yx
MGVlOTg5OGQ1NjE3NmE2ZmUwMzQwYTkxMTcwNzUwMmJmMjc1MS4uYjczMmYxOGYyMjM2MWQxOTJk
M2ZhMjY3ZWU4MTY3ZDIxZGFlZTRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBA
IC0xMjgsOCArMTI4LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xv
YWRFdmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1VzZUVsZW1lbnQpCi0KIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmgKaW5kZXggY2U4OGRlNWI0
MGY3MWI3NGJiODQ2YzlhZDUwOWY4ZTVmYjc3NGUxMy4uMTgwYmM3NmQwM2QxNzJhYTg0YWVkN2Fi
MzEzOTU2OTYzMDkyYzI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJu
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaApAQCAt
NDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhTVkdWS2VybkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmlld0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVu
dC5oCmluZGV4IDI1MWQ3MzAzOTEzNTk1NDI2ZjUxZWY2MjllNDZhYTVmZTM1NjUwOGUuLjRiNDRk
OWM5NDY4NzNlMjZhNTkyMDU4MWYyYjNlMjJkYjZhMmIzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgU1ZHU3RyaW5nTGlz
dCBtX3ZpZXdUYXJnZXQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVmlld0VsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9ET00vV2ViRE9NT3BlcmF0aW9ucy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9X
ZWJET01PcGVyYXRpb25zLm1tCmluZGV4IGU0ZmI3NjYwZjlmNDllN2FkNzE5NTYxMDNiYTNiODUx
ODYyOWM1YzIuLjEwNTRkYjZjOTE4ZDQzOGY2NWIwYmQwZTE2YTdjNjUzNmZlOWI1ZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCkBAIC03NCw3ICs3NCw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKICAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRl
eHQpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwotICAgIHJldHVybiBraXQodG9FbGVt
ZW50KHRvSlMoZXhlYywgdmFsdWUpKSk7CisgICAgcmV0dXJuIGtpdChKU0VsZW1lbnQ6OnRvSW1w
bCh0b0pTKGV4ZWMsIHZhbHVlKSkpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KaW5kZXggYTZmM2I1NGRjZDUxYmUyY2M0Y2FkNDFmN2Y3NTU1YjcxY2M2MjQ4Ny4u
OWNlNjFiNmZhZTQ2YTI3NDZmNDY5ZTcyMzNmYWU0NTZhZWIxNGI1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODYyMSw3ICs4NjIxLDcgQEAgc3RhdGljIHZvaWQgZ2xp
YkNvbnRleHRJdGVyYXRpb25DYWxsYmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29w
QWN0aXZpdHkKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9O
T1RJRklDQVRJT05TKQogICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0gW1tzZWxmIG1haW5GcmFt
ZV0gZ2xvYmFsQ29udGV4dF07Ci0gICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRp
b24gPSB0b05vdGlmaWNhdGlvbih0b0pTKHRvSlMoY29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7
CisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBKU05vdGlmaWNhdGlv
bjo6dG9JbXBsKHRvSlModG9KUyhjb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8V2ViTm90aWZpY2F0aW9uQ2xpZW50Kj4oTm90aWZpY2F0aW9uQ29udHJv
bGxlcjo6Y2xpZW50RnJvbShfcHJpdmF0ZS0+cGFnZSkpLT5ub3RpZmljYXRpb25JREZvclRlc3Rp
bmcobm90aWZpY2F0aW9uKTsKICNlbHNlCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAppbmRleCBjZGRkYzgxNmFiYjgxN2U4MzU3
N2I5MTBjNjMzZTMwYTBlZTYwNWZlLi4wNDVhNjY0ZmM4Yzg4OGIwYTU1NzliMzNjMDAzZWJkZGY1
NjFkN2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5j
cHAKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5kbGVDYWNo
ZSgpCiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBJbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgb2JqZWN0
KQogewotICAgIE5vZGUqIG5vZGUgPSB0b05vZGUodG9KUyhvYmplY3QpKTsKKyAgICBOb2RlKiBu
b2RlID0gSlNOb2RlOjp0b0ltcGwodG9KUyhvYmplY3QpKTsKICAgICByZXR1cm4gZ2V0T3JDcmVh
dGUobm9kZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZS5jcHAKaW5kZXggZjYzMzkxYjRjZTVjZjcyMWExOWIwNjg3M2Y3MTBkYzJlMzVmMTllNy4u
NjVmOGU1OWM1NDA0ODhjN2Q5ZDAwZTk1ZDc2ZTU1NzczYzk4YzQ0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAg
c3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5kbGVDYWNoZSgpCiAKIFBhc3NSZWZQdHI8SW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JD
cmVhdGUoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiBvYmplY3QpCiB7Ci0gICAgUmFuZ2UqIHJh
bmdlID0gdG9SYW5nZSh0b0pTKG9iamVjdCkpOworICAgIFJhbmdlKiByYW5nZSA9IEpTUmFuZ2U6
OnRvSW1wbCh0b0pTKG9iamVjdCkpOwogICAgIHJldHVybiBnZXRPckNyZWF0ZShyYW5nZSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMWE2NzI3YmFjYTU5M2MwYTdiYjgxZGEwMzg5
MGE3MjlhNWQ4M2M0Yi4uYjY0ZTgxODI4ZGI4ZDlkODBlYzBiODc3YTljMTAxMGMyZmUyNTM4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTU5Nyw3ICs1OTcsNyBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhXZWJQYWdlKiBwYWdl
KQogdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklEKEpTQ29udGV4dFJl
ZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganNOb3RpZmljYXRpb24pCiB7CiAjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICBXZWJDb3Jl
OjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90aWZpY2F0aW9uKHRvSlModG9KUyhq
c0NvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiog
bm90aWZpY2F0aW9uID0gSlNOb3RpZmljYXRpb246OnRvSW1wbCh0b0pTKHRvSlMoanNDb250ZXh0
KSwganNOb3RpZmljYXRpb24pKTsKICAgICBpZiAoIW5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnN1cHBsZW1lbnQ8V2ViTm90
aWZpY2F0aW9uTWFuYWdlcj4oKS0+bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKG5vdGlmaWNhdGlv
bik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238321</attachid>
            <date>2014-09-18 13:18:27 -0700</date>
            <delta_ts>2014-09-18 16:10:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136839-20140918131824.patch</filename>
            <type>text/plain</type>
            <size>155810</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZjNWQ2ZTA2Mjk0NmI4
YjJkMjJlNmJjNzFmNDI1MzQ4Njk5NzE3NC4uN2ViMjMxMzg1YzM2Y2FjNzExZGZlMTAzOWQzMTM2
ZDcxMjU0MjhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxMSBAQAorMjAxNC0wOS0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQg
Y2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9u
cyBpbnN0ZWFkIG9mIHJlcXVpcmluZyBleHBsaWNpdAorICAgICAgICB1c2Ugb2YgTk9ERV9UWVBF
X0NBU1RTKCkgbWFjcm8uIENhc3RpbmcgaXMgbm93IGRvbmUgdXNpbmcgdGhlIGZvbGxvd2luZwor
ICAgICAgICBmb3JtOiBkb3duY2FzdDxIVE1MRGl2RWxlbWVudD4oKSwgaW5zdGVhZCBvZiB0b0hU
TUxEaXZFbGVtZW50KCkuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIGZvcm0gKGkuZS4gdG9IVE1M
RGl2RWxlbWVudCgpKSBpcyBzdGlsbCBzdXBwb3J0ZWQgZm9yIG5vdworICAgICAgICBieSBnZW5l
cmF0aW5nIG1hY3JvcyB0aGF0IGNvbnZlcnQgdGhlc2UgY2FsbHMgaW50byB0aGUgbmV3IGZvcm0s
IHVudGlsCisgICAgICAgIHRoZSBjb2RlIGJhc2UgaXMgcG9ydGVkIHRvIHRoZSBuZXcgY2FzdGlu
ZyBoZWxwZXJzLgorCisgICAgICAgIFRoZSBwbGFuIGlzIGFsc28gdG8gdXNlIGlzPEhUTUxEaXZF
bGVtZW50PigpIGluc3RlYWQgb2YKKyAgICAgICAgaXNIVE1MRGl2RWxlbWVudCgpIGZvciBjb25z
aXN0ZW5jeSBidXQgdGhpcyB3YXMgbm90IGNoYW5nZWQgaW4gdGhpcworICAgICAgICBwYXRjaCB0
byBhdm9pZCBibG93aW5nIHVwIHRoZSBzaXplLgorCisgICAgICAgIFRoaXMgQ0wgYWxzbyB1cGRh
dGVzIHRoZSB3YXkgd2UgY29udmVydCBhIEpTVmFsdWUgaW50byBhbgorICAgICAgICBpbXBsZW1l
bnRhdGlvbiBwb2ludGVyLiBJbnN0ZWFkIG9mIHVzaW5nIHRvSFRNTERpdkVsZW1lbnQoKSwgd2hp
Y2gKKyAgICAgICAgbG9va2VkIGxpa2UgYSBjYXN0LCB3ZSBub3cgdXNlIEpTSFRNTERpdkVsZW1l
bnQ6OnRvSW1wbCgpLiBUaGlzCisgICAgICAgIGF2b2lkcyBjb25mbGljdGluZyB3aXRoIHRoZSB0
b1hYWEVsZW1lbnQoKSBtYWNyb3MgYW5kIG1ha2VzIGl0CisgICAgICAgIGNsZWFyZXIgdGhpcyBp
cyBub3QgYSBzaW1wbGUgY2FzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RKU0Jsb2IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29tbWFuZExpbmVBUElIb3N0OjpnZXRF
dmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6
ZGF0YWJhc2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3Rv
cmFnZUlkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50T3JOdWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN0cnVjdEpTRE9NRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01G
b3JtRGF0YTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdMaXN0Ojp0b0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6dG9ET01TdHJpbmdMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRE9NV2luZG93KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hM
aXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRXZlbnRUYXJnZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0V2ZW50VGFyZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4Y2Vw
dGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb25CYXNlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1M
U2VsZWN0RWxlbWVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdEluZGV4U2V0
dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0Nv
bnRleHRNZW51KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVJbml0TWVzc2FnZUV2ZW50KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGxNZXNzYWdlUG9ydEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6SlNO
b2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OmFwcGVuZENoaWxk
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlRmlsdGVyOjp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9O
b2RlRmlsdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0
b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZW5jcnlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6c2lnbik6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRs
ZUNyeXB0bzo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRvOjpleHBv
cnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OndyYXBLZXkpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRl
cik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVy
UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRVbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOgorICAgICAgICAo
V2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25N
YXRyaXgpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjayk6CisgICAgICAgIChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVjdDo6dG9JbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEFjdGl2ZURPTU9iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9JbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEN1c3RvbU5hbWVkR2V0dGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0RXZlbnRDb25zdHJ1Y3Rvcik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVG
dW5jdGlvbkRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRUYXJn
ZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RFdmVudFRhcmdldCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb246OnRvSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjp0b1Rlc3RFeGNlcHRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjp0b0ltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9k
Mik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1
cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0SW50ZXJmYWNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcjo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5hbWVkQ29u
c3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYzo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5vbmRl
dGVybWluaXN0aWMpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0
T2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpNdXRhYmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1tdXRh
YmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
b2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2Vx
dWVuY2VBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlv
bldpdGhTZXF1ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE9iajo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE9iaik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnND
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9JbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnM6OnRvSW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjp0b1Rlc3RUeXBlZGVmcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRl
Ojp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9hdHRyaWJ1dGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTcmVhZG9ubHk6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b3JlYWRvbmx5KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5o
OgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpkb3duY2FzdCk6
CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAgIChwcmludFR5cGVIZWxwZXJz
KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
RnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGFiZWxF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmpl
Y3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBhcmFt
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU291cmNlRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFN0eWxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRpdGxl
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2NyaXB0
VmFsdWVBc05vZGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0FsdEdseXBoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZFRnVuY0FFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0JFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0dFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZFRnVuY1JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdIS2VybkVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xp
bmVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdNUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2Vy
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1BvbHlnb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdU
ZXh0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHVktlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Zp
ZXdFbGVtZW50Lmg6CisKIDIwMTQtMDktMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBVc2UgZmFzdEhhc0F0dHJpYnV0ZSgpIC8gZmFzdEdldEF0dHJpYnV0ZSgp
IHdoZW4gcG9zc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBjMGZkZWViNGE1NjVhNzdmNGMzODFj
OWE3ZGQ4YTI4MjEyMGE4OThjLi40MTk5MjcxOTc5NjM4YTYxYzlmMDhkNWJmMmEyOGM4ZjA0YzAx
NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMDktMTcgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNh
c3RpbmcgaGVscGVyIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXNlIEpTWFhYOjp0b0ltcGwoKSBpbnN0ZWFkIG9mIHRvWFhYKCkgZnVu
Y3Rpb24uCisKKyAgICAgICAgKiBET00vV2ViRE9NT3BlcmF0aW9ucy5tbToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX25vdGlmaWNhdGlvbklERm9y
VGVzdGluZzpdKToKKwogMjAxNC0wOS0xNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3MzY5NS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBjMTRiNGMyYjhiOGU3ZjRlNDQxNGZhMmFhZGYwNjUwNTlmODFhNGQ1Li4zZjNjNWQzZGVj
NThjMzQ3MmMzNjQzYmM4YWJlMWQ0OThkMTk4NGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTQtMDktMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIEpTWFhYOjp0b0ltcGwoKSBp
bnN0ZWFkIG9mIHRvWFhYKCkgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVh
dGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6d2ViTm90aWZpY2F0aW9uSUQp
OgorCiAyMDE0LTA5LTE4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgog
CiAgICAgICAgIE9jY2FzaW9uYWwgdW5yZXByb2R1Y2libGUgY3Jhc2hlcyBpbiBNZXNzYWdlUmVj
ZWl2ZXJNYXA6OmRpc3BhdGNoTWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4IDM2
OWFiYjExMDcyMmQ3OGYyZTE2ODA5MzVlMjgzY2RmNWNmZDc5YmUuLjNkYmZkZTI4NDA1ZTUzNzE0
ZTA0YjBhZGIyMzUwYjBjOWNlMWU3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAgLTIx
Myw3ICsyMTMsNyBAQCBib29sIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50OjppbnN0YWxsUmVw
bGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKICAgICAvLyBHZXQgdGhlIDx2aWRlbz4gY3JlYXRl
ZCB0byByZXBsYWNlIHRoZSBwbHVnLWluLgogICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZSA9IHJlcGxh
Y2VtZW50LmdldChleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgInZpZGVvIikpOwogICAgIGlm
ICghZXhlYy0+aGFkRXhjZXB0aW9uKCkgJiYgIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0g
ICAgICAgIG1fbWVkaWFFbGVtZW50ID0gdG9IVE1MVmlkZW9FbGVtZW50KHZhbHVlKTsKKyAgICAg
ICAgbV9tZWRpYUVsZW1lbnQgPSBKU0hUTUxWaWRlb0VsZW1lbnQ6OnRvSW1wbCh2YWx1ZSk7CiAK
ICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KSB7CiAgICAgICAgIExPRyhQbHVnaW5zLCAiJXAgLSBG
YWlsZWQgdG8gZmluZCA8dmlkZW8+IGVsZW1lbnQgY3JlYXRlZCBieSBRdWlja1RpbWUgcGx1Z2lu
IHJlcGxhY2VtZW50IHNjcmlwdC4iLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggODc0
ZTUxZTY2NzQ3NmNiNGIyZjI4YTg2MjA0NDRlM2ZhNDAzZjI2Ni4uMjNmNmZjZmI5OWM1ZjczZWU2
N2E2MzUwMzY4MDYyZTZlOTU4NTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTc3LDYgKzc3
LDcgQEAgX19aTjdXZWJDb3JlMTBGbG9hdFBvaW50QzFFUks3Q0dQb2ludAogX19aTjdXZWJDb3Jl
MTBGbG9hdFBvaW50QzFFUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxMEZvbnRHbHlwaHMx
NXJlbGVhc2VGb250RGF0YUV2CiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQorX19a
TjdXZWJDb3JlMTBKU0RvY3VtZW50NnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3Jl
MTBMYXlvdXRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDV1bml0ZUVSS1Mw
XwogX19aTjdXZWJDb3JlMTBMYXlvdXRSZWN0QzFFUktOU185RmxvYXRSZWN0RQpAQCAtMTI0LDcg
KzEyNSw2IEBAIF9fWk43V2ViQ29yZTEwVGltZVJhbmdlc0MxRWRkCiBfX1pON1dlYkNvcmUxMGRl
bGV0ZUZpbGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMGZpbGVFeGlzdHNFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMHNldENvb2tpZXNFUE5TXzhEb2N1bWVudEVSS05TXzNV
UkxFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxMHRvRG9jdW1lbnRFTjNKU0M3SlNWYWx1
ZUUKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2UxM2dldENHSW1hZ2VSZWZFdgogX19aTjdXZWJD
b3JlMTFCaXRtYXBJbWFnZUMxRVA3Q0dJbWFnZVBOU18xM0ltYWdlT2JzZXJ2ZXJFCiBfX1pON1dl
YkNvcmUxMUJpdG1hcEltYWdlQzFFUE5TXzEzSW1hZ2VPYnNlcnZlckUKQEAgLTY2Nyw3ICs2Njcs
NiBAQCBfX1pON1dlYkNvcmUxNW9yaWdpbmFsVVJMRGF0YUVQNU5TVVJMCiBfX1pON1dlYkNvcmUx
NXBhdGhHZXRGaWxlTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1cmVwb3J0RXhj
ZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVBOU18xMkNhY2hlZFNjcmlwdEUK
IF9fWk43V2ViQ29yZTE1c2V0RE9NRXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFaQotX19aTjdX
ZWJDb3JlMTV0b0RPTVN0cmluZ0xpc3RFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFCiBf
X1pON1dlYkNvcmUxNXZpc2l0ZWRMaW5rSGFzaEVQS3RqCiBfX1pON1dlYkNvcmUxNXZpc2l0ZWRM
aW5rSGFzaEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2QXBwbGljYXRpb25DYWNoZTE4
ZGlza1VzYWdlRm9yT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQpAQCAtMTI0Miw2ICsxMjQx
LDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjdjb21tYW5kRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlNkVkaXRvcjdjb3B5VVJMRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2Vi
Q29yZTZFZGl0b3I3b3V0ZGVudEV2CiBfX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5mb0UKK19fWk43
V2ViQ29yZTZKU05vZGU2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU2TGVuZ3Ro
QzFFTjNXVEY3UGFzc1JlZklOU18xNkNhbGN1bGF0aW9uVmFsdWVFRUUKIF9fWk43V2ViQ29yZTZS
ZWdpb24yMXVwZGF0ZUJvdW5kc0Zyb21TaGFwZUV2CiBfX1pON1dlYkNvcmU2UmVnaW9uNXVuaXRl
RVJLUzBfCkBAIC0xMjU5LDcgKzEyNTksNiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0OHNldEZvY3Vz
RWIKIF9fWk43V2ViQ29yZTZXaWRnZXQ5c2V0UGFyZW50RVBOU18xMFNjcm9sbFZpZXdFCiBfX1pO
N1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvSW50OEVQTjNKU0M5RXhlY1N0YXRl
RU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUKLV9fWk43
V2ViQ29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTdFbGVtZW50MTJzZXRB
dHRyaWJ1dGVFUktOM1dURjEyQXRvbWljU3RyaW5nRVM0X1JpCiBfX1pON1dlYkNvcmU3RWxlbWVu
dDEyc2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVJLTjNXVEYxMkF0b21pY1N0cmlu
Z0UKIF9fWk43V2ViQ29yZTdFbGVtZW50MTZjcmVhdGVTaGFkb3dSb290RVJpCkBAIC0xMjczLDYg
KzEyNzIsNyBAQCBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfMTBMYXlvdXRSZWN0RQogX19a
TjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmU3SW50U2l6
ZUMxRVJLNkNHU2l6ZQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSS05TXzlGbG9hdFNpemVFCitf
X1pON1dlYkNvcmU3SlNSYW5nZTZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTdU
ZXh0UnVuMTlhbGxvd3NSb3VuZGluZ0hhY2tzRXYKIF9fWk43V2ViQ29yZTdUZXh0UnVuMjFzX2Fs
bG93c1JvdW5kaW5nSGFja3NFCiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIyc2V0QWxsb3dzUm91bmRp
bmdIYWNrc0ViCkBAIC0xMjgxLDcgKzEyODEsNiBAQCBfX1pON1dlYkNvcmU3anNBcnJheUVQTjNK
U0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RU4zV1RGMTBQYXNzUmVmUHRySQog
X19aTjdXZWJDb3JlN21ha2VSR0JFaWlpCiBfX1pON1dlYkNvcmU3dG9JbnQxNkVQTjNKU0M5RXhl
Y1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbkUK
IF9fWk43V2ViQ29yZTd0b0ludDY0RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMw
SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uRQotX19aTjdXZWJDb3JlN3RvUmFuZ2VFTjNK
U0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTd0b1VJbnQ4RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdK
U1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uRQogX19aTjdXZWJDb3Jl
OEJsb2JEYXRhMTRzZXRDb250ZW50VHlwZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThD
U1NWYWx1ZTdkZXN0cm95RXYKQEAgLTE0OTUsNiArMTQ5NCw3IEBAIF9fWk43V2ViQ29yZTlJbmxp
bmVCb3gxNGRpcnR5TGluZUJveGVzRXYKIF9fWk43V2ViQ29yZTlJbmxpbmVCb3gxNHNlbGVjdGlv
blN0YXRlRXYKIF9fWk43V2ViQ29yZTlJbmxpbmVCb3gxNnBsYWNlRWxsaXBzaXNCb3hFYmZmZlJm
UmIKIF9fWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRQorX19aTjdXZWJDb3JlOUpTRWxlbWVu
dDZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTlMYXllclBvb2xDMUV2CiBfX1pO
N1dlYkNvcmU5TGF5ZXJQb29sRDFFdgogX19aTjdXZWJDb3JlOVBhZ2VDYWNoZTExc2V0Q2FwYWNp
dHlFaQpAQCAtMTUzNSw3ICsxNTM1LDYgQEAgX19aTjdXZWJDb3JlOWZvbnRDYWNoZUV2CiBfX1pO
N1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FUzJfCiBfX1pON1dlYkNv
cmU5cGFnZUNhY2hlRXYKIF9fWk43V2ViQ29yZTlwbGFpblRleHRFUEtOU181UmFuZ2VFdGIKLV9f
Wk43V2ViQ29yZTl0b0VsZW1lbnRFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTl1bmlvblJl
Y3RFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UmVjdEVMbTBFTlMwXzE1Q3Jhc2hPbk92ZXJmbG93
RUVFCiBfX1pOSzNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3QxMmdsb2JhbE9iamVjdEV2CiBfX1pO
SzNXVEY2U3RyaW5nMTRjcmVhdGVDRlN0cmluZ0V2CkBAIC0zMjU3LDcgKzMyNTYsNyBAQCBfX1pO
N1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlzcGF0Y2hFcnJvckV2ZW50RXYKIF9fWk43V2ViQ29y
ZTEyTm90aWZpY2F0aW9uOGZpbmFsaXplRXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uQzFF
dgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb25EMUV2Ci1fX1pON1dlYkNvcmUxNHRvTm90aWZp
Y2F0aW9uRU4zSlNDN0pTVmFsdWVFCitfX1pON1dlYkNvcmUxNEpTTm90aWZpY2F0aW9uNnRvSW1w
bEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTlwcm92aWRlTm90aWZpY2F0aW9uRVBOU180
UGFnZUVQTlNfMThOb3RpZmljYXRpb25DbGllbnRFCiBfX1pON1dlYkNvcmUyMk5vdGlmaWNhdGlv
bkNvbnRyb2xsZXIxMGNsaWVudEZyb21FUE5TXzRQYWdlRQogI2VuZGlmCkBAIC0zMzY5LDcgKzMz
NjgsNyBAQCBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE2aGFuZGxlVG91Y2hFdmVudEVSS05T
XzE4UGxhdGZvcm1Ub3VjaEV2ZW50RQogI2lmIEVOQUJMRShWSURFTykKIC5vYmpjX2NsYXNzX25h
bWVfV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlcgogX19aTjdXZWJDb3JlMTBUaW1lUmFuZ2Vz
M2FkZEVkZAotX19aTjdXZWJDb3JlMTJ0b1RpbWVSYW5nZXNFTjNKU0M3SlNWYWx1ZUUKK19fWk43
V2ViQ29yZTEySlNUaW1lUmFuZ2VzNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3Jl
MTZIVE1MTWVkaWFFbGVtZW50MTJlbmRTY3J1YmJpbmdFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVk
aWFFbGVtZW50MTRiZWdpblNjcnViYmluZ0V2CiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1l
bnQxNGV4aXRGdWxsc2NyZWVuRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAppbmRleCBlNmI1MDY0
MjdlNDU4ODk2NWJkYjY3Yzg5ZmEyNTZlMzM1ZDRlMTc1Li5hYmIwMDgwYmNiOWQzN2Y2ODU5ZmUz
ZjYyNTFlMGVkMDQwMDlkMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCkBAIC00MSw3ICs0
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBKU0F1ZGlvQnVmZmVyU291cmNlTm9k
ZTo6c2V0QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBBdWRp
b0J1ZmZlciogYnVmZmVyID0gdG9BdWRpb0J1ZmZlcih2YWx1ZSk7CisgICAgQXVkaW9CdWZmZXIq
IGJ1ZmZlciA9IEpTQXVkaW9CdWZmZXI6OnRvSW1wbCh2YWx1ZSk7CiAgICAgaWYgKCFidWZmZXIp
IHsKICAgICAgICAgZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVUeXBlRXJy
b3IoZXhlYywgIlZhbHVlIGlzIG5vdCBvZiB0eXBlIEF1ZGlvQnVmZmVyIikpOwogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jsb2JDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcAppbmRl
eCAyOTNhZmIzNzYyODY4YjgzOGI5ZjVjMTJlYmE2NDU2M2Y4OTM0NjM4Li4wNmE5MTI0NDgzNjBk
ZDU3ZDMyYjUwYzNlMGI1ZGVkZDc1NzdjZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmxvYkN1c3RvbS5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTQmxvYihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAg
ICBibG9iQnVpbGRlci5hcHBlbmQoYXJyYXlCdWZmZXIpOwogICAgICAgICBlbHNlIGlmIChSZWZQ
dHI8QXJyYXlCdWZmZXJWaWV3PiBhcnJheUJ1ZmZlclZpZXcgPSB0b0FycmF5QnVmZmVyVmlldyhp
dGVtKSkKICAgICAgICAgICAgIGJsb2JCdWlsZGVyLmFwcGVuZChhcnJheUJ1ZmZlclZpZXcucmVs
ZWFzZSgpKTsKLSAgICAgICAgZWxzZSBpZiAoQmxvYiogYmxvYiA9IHRvQmxvYihpdGVtKSkKKyAg
ICAgICAgZWxzZSBpZiAoQmxvYiogYmxvYiA9IEpTQmxvYjo6dG9JbXBsKGl0ZW0pKQogICAgICAg
ICAgICAgYmxvYkJ1aWxkZXIuYXBwZW5kKGJsb2IpOwogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIFN0cmluZyBzdHJpbmcgPSBpdGVtLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElI
b3N0Q3VzdG9tLmNwcAppbmRleCA3OTU0OGU4MmMzN2NiZDc1MjNhNzg0N2FjODlkODZmOWYwMDBl
Nzg2Li5mMmZmYzE3ZTcxYjc5ZDlhZTJkNDYxNzA0NTE1OTZiMGU3YjMxNzAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9zdEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhvc3RD
dXN0b20uY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgSlNWYWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9z
dDo6Z2V0RXZlbnRMaXN0ZW5lcnMoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghdmFsdWUuaXNP
YmplY3QoKSB8fCB2YWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAKLSAgICBOb2RlKiBub2RlID0gdG9Ob2RlKHZhbHVlKTsKKyAgICBOb2RlKiBub2RlID0gSlNO
b2RlOjp0b0ltcGwodmFsdWUpOwogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBKU1ZhbHVlIEpTQ29tbWFuZExpbmVBUElI
b3N0OjpkYXRhYmFzZUlkKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIERhdGFiYXNlKiBkYXRhYmFz
ZSA9IHRvRGF0YWJhc2UoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIERhdGFiYXNl
KiBkYXRhYmFzZSA9IEpTRGF0YWJhc2U6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgw
KSk7CiAgICAgaWYgKGRhdGFiYXNlKQogICAgICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUo
ZXhlYywgaW1wbCgpLmRhdGFiYXNlSWRJbXBsKGRhdGFiYXNlKSk7CiAjZW5kaWYKQEAgLTE2Miw3
ICsxNjIsNyBAQCBKU1ZhbHVlIEpTQ29tbWFuZExpbmVBUElIb3N0OjpzdG9yYWdlSWQoRXhlY1N0
YXRlKiBleGVjKQogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIFN0b3JhZ2UqIHN0b3JhZ2UgPSB0b1N0b3JhZ2Uo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFN0b3JhZ2UqIHN0b3JhZ2UgPSBKU1N0
b3JhZ2U6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKHN0b3Jh
Z2UpCiAgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBpbXBsKCkuc3RvcmFn
ZUlkSW1wbChzdG9yYWdlKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Gb3JtRGF0YUN1c3RvbS5jcHAKaW5kZXggMzFiMTgwYmY3ZmVhZTVmZmMwN2ZkMGVlOWMy
OGEyZjhkNjI3ZGU1NS4uZTllMGJiNzEzM2E3MTY0OGNjZThiNWUyYzJhNjY4NjE2NDM1NjQ5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3Rv
bS5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1zdGF0aWMgSFRNTEZvcm1FbGVtZW50KiB0b0hUTUxGb3JtRWxlbWVudChK
U0M6OkpTVmFsdWUgdmFsdWUpCitzdGF0aWMgSFRNTEZvcm1FbGVtZW50KiB0b0hUTUxGb3JtRWxl
bWVudE9yTnVsbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIHZhbHVlLmluaGVy
aXRzKEpTSFRNTEZvcm1FbGVtZW50OjppbmZvKCkpID8gJmpzQ2FzdDxKU0hUTUxGb3JtRWxlbWVu
dCo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKSA6IDA7CisgICAgcmV0dXJuIHZhbHVlLmluaGVy
aXRzKEpTSFRNTEZvcm1FbGVtZW50OjppbmZvKCkpID8gJmpzQ2FzdDxKU0hUTUxGb3JtRWxlbWVu
dCo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKSA6IG51bGxwdHI7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNET01Gb3JtRGF0YShFeGVjU3RhdGUqIGV4ZWMp
CkBAIC01Miw3ICs1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
SlNET01Gb3JtRGF0YShFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBIVE1MRm9ybUVsZW1lbnQqIGZv
cm0gPSAwOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAwKQotICAgICAgICBmb3Jt
ID0gdG9IVE1MRm9ybUVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICBmb3JtID0g
dG9IVE1MRm9ybUVsZW1lbnRPck51bGwoZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIFJlZlB0cjxE
T01Gb3JtRGF0YT4gZG9tRm9ybURhdGEgPSBET01Gb3JtRGF0YTo6Y3JlYXRlKGZvcm0pOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKSwgZG9tRm9ybURhdGEuZ2V0KCkpKSk7CiB9CkBAIC02Niw3ICs2Niw3
IEBAIEpTVmFsdWUgSlNET01Gb3JtRGF0YTo6YXBwZW5kKEV4ZWNTdGF0ZSogZXhlYykKICAgICAg
ICAgICAgIFN0cmluZyBmaWxlbmFtZTsKICAgICAgICAgICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPj0gMyAmJiAhZXhlYy0+YXJndW1lbnQoMikuaXNVbmRlZmluZWRPck51bGwoKSkKICAg
ICAgICAgICAgICAgICBmaWxlbmFtZSA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKTsKLSAgICAgICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwgdG9CbG9iKHZh
bHVlKSwgZmlsZW5hbWUpOworICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChuYW1lLCBKU0Jsb2I6
OnRvSW1wbCh2YWx1ZSksIGZpbGVuYW1lKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBp
bXBsKCkuYXBwZW5kKG5hbWUsIHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdM
aXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlz
dEN1c3RvbS5jcHAKaW5kZXggMjMzMzdiMmYyZDk2NjA3YjU4ZDYyN2EyYjhjZDQzNjM0ZmJkNjlh
YS4uYWQzYWM0NDQyNzJiMzI1N2VlZmJjMzA3ZTBjYjY1ZjdjOWIzM2E1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCkBA
IC0yNSw3ICsyNSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiB0b0RPTVN0cmluZ0xpc3QoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBKU0RPTVN0
cmluZ0xpc3Q6OnRvSW1wbChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
aWYgKHZhbHVlLmluaGVyaXRzKEpTRE9NU3RyaW5nTGlzdDo6aW5mbygpKSkKICAgICAgICAgcmV0
dXJuICZqc0Nhc3Q8SlNET01TdHJpbmdMaXN0Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmlu
ZGV4IDVmM2I1MTdhMTQyYmUzMmZiNjRlNzk4YTk1YzgxYjUzMTFkMWYwOGQuLmU4NGQzZWQyZmFh
ODk5ZDBiMzUwNGM4NWYzZGMxYWY2MTgzYTc2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTY4NCw3ICs2ODQsNyBAQCBKU1Zh
bHVlIEpTRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotRE9NV2luZG93KiB0b0RPTVdpbmRvdyhKU1Zh
bHVlIHZhbHVlKQorRE9NV2luZG93KiBKU0RPTVdpbmRvdzo6dG9JbXBsKEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCmluZGV4IDFhZjAyNmRiYTQ1
ZDk0NzkwODU0NGJiMTg0YjVjNjY2Y2U0ZmIyNmEuLmQzMGIyNjNhM2YyNjc0MDZhYzMxNmMxMTc1
Y2I0NDMyMGQ4OTgyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9u
YXJ5LmNwcApAQCAtMTU1LDIyICsxNTUsMjIgQEAgdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRW
YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxTZXJpYWxpemUKIAog
dm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVl
LCBSZWZQdHI8RE9NV2luZG93PiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvRE9NV2luZG93
KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU0RPTVdpbmRvdzo6dG9JbXBsKHZhbHVlKTsKIH0KIAog
dm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVl
LCBSZWZQdHI8RXZlbnRUYXJnZXQ+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9FdmVudFRh
cmdldCh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNFdmVudFRhcmdldDo6dG9JbXBsKHZhbHVlKTsK
IH0KIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVl
IHZhbHVlLCBSZWZQdHI8Tm9kZT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b05vZGUodmFs
dWUpOworICAgIHJlc3VsdCA9IEpTTm9kZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0Rp
Y3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8
U3RvcmFnZT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b1N0b3JhZ2UodmFsdWUpOworICAg
IHJlc3VsdCA9IEpTU3RvcmFnZTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIE1lc3NhZ2VQ
b3J0QXJyYXkmIHJlc3VsdCkKQEAgLTIyMiwzMSArMjIyLDMxIEBAIHZvaWQgSlNEaWN0aW9uYXJ5
Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0
cjxVaW50CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxN
ZWRpYUtleUVycm9yPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvTWVkaWFLZXlFcnJvcih2
YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNNZWRpYUtleUVycm9yOjp0b0ltcGwodmFsdWUpOwogfQog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogdm9pZCBKU0RpY3Rpb25hcnk6OmNv
bnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE1l
ZGlhU3RyZWFtPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvTWVkaWFTdHJlYW0odmFsdWUp
OworICAgIHJlc3VsdCA9IEpTTWVkaWFTdHJlYW06OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQg
SlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUg
dmFsdWUsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9
IHRvTWVkaWFTdHJlYW1UcmFjayh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNNZWRpYVN0cmVhbVRy
YWNrOjp0b0ltcGwodmFsdWUpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRk9OVF9MT0FEX0VW
RU5UUykKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxDU1NGb250RmFjZVJ1bGU+JiByZXN1bHQpCiB7Ci0g
ICAgcmVzdWx0ID0gdG9DU1NGb250RmFjZVJ1bGUodmFsdWUpOworICAgIHJlc3VsdCA9IEpTQ1NT
Rm9udEZhY2VSdWxlOjp0b0ltcGwodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29u
dmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8RE9N
RXJyb3I+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9ET01FcnJvcih2YWx1ZSk7CisgICAg
cmVzdWx0ID0gSlNET01FcnJvcjo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVl
LCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYgcmVzdWx0KQpAQCAtMjYxLDcgKzI2MSw3IEBAIHZvaWQg
SlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNW
YWx1ZSB2YWx1ZSwgUmVmUHRyCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiB2b2lkIEpTRGljdGlvbmFy
eTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQ
dHI8R2FtZXBhZD4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0dhbWVwYWQodmFsdWUpOwor
ICAgIHJlc3VsdCA9IEpTR2FtZXBhZDo6dG9JbXBsKHZhbHVlKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IGZh
MjQ0NDNiNGU5ZDE3ZWRiZmRhYmFmY2FiNDM5NjU3NWNmZGMxNzEuLjNiOGE5OWVkZjgzZmYzNTA5
NzU0NDY3MGIwNTNlZDVjNGFmZmMyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgSlNWYWx1ZSBKU0Rv
Y3VtZW50OjpjcmVhdGVUb3VjaExpc3QoRXhlY1N0YXRlKiBleGVjKQogICAgIFJlZlB0cjxUb3Vj
aExpc3Q+IHRvdWNoTGlzdCA9IFRvdWNoTGlzdDo6Y3JlYXRlKCk7CiAKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgaSsrKQotICAgICAgICB0b3VjaExp
c3QtPmFwcGVuZCh0b1RvdWNoKGV4ZWMtPmFyZ3VtZW50KGkpKSk7CisgICAgICAgIHRvdWNoTGlz
dC0+YXBwZW5kKEpTVG91Y2g6OnRvSW1wbChleGVjLT5hcmd1bWVudChpKSkpOwogCiAgICAgcmV0
dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIHRvdWNoTGlzdC5yZWxlYXNlKCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNw
cAppbmRleCA1MjEwZjEyYmI2Y2UzNGU3NDYzZDhlNmUyODlhNGI4ZDcwNjM3OWNmLi5mNTRhNTk2
N2Q4ZTljYjJmM2NkYTQ2ZjIyMWQxMDQ5YWY1NDU4MjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcApAQCAtNTgsNyArNTgsNyBA
QCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFdmVudFRhcmdldCogdGFyZwogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKUyMjaW50
ZXJmYWNlTmFtZTo6aW5mbygpKSkgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICByZXR1
cm4gJmpzQ2FzdDxKUyMjaW50ZXJmYWNlTmFtZSo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsK
IAotRXZlbnRUYXJnZXQqIHRvRXZlbnRUYXJnZXQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorRXZlbnRU
YXJnZXQqIEpTRXZlbnRUYXJnZXQ6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
VFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShET01XaW5kb3dTaGVsbCkKICAgICBUUllfVE9f
VU5XUkFQX1dJVEhfSU5URVJGQUNFKEV2ZW50VGFyZ2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKaW5kZXggYmRlMjViMGE2NzcwODFlODBjOWQ1
ZmNjZmI5YTdhMTJmOTc2YzE5OC4uZjYyNjJkMTcxNzlmNjYwMDAyNWZmN2ZhMGZjYmJiM2MwNDk1
ZDNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25C
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2Uu
Y3BwCkBAIC00MSwyMCArNDEsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFeGNlcHRpb25C
YXNlKiB0b0V4Y2VwdGlvbkJhc2UoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAgIGlmIChET01D
b3JlRXhjZXB0aW9uKiBkb21FeGNlcHRpb24gPSB0b0RPTUNvcmVFeGNlcHRpb24odmFsdWUpKQor
ICAgIGlmIChET01Db3JlRXhjZXB0aW9uKiBkb21FeGNlcHRpb24gPSBKU0RPTUNvcmVFeGNlcHRp
b246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2Vw
dGlvbkJhc2UqPihkb21FeGNlcHRpb24pOwotICAgIGlmIChSYW5nZUV4Y2VwdGlvbiogcmFuZ2VF
eGNlcHRpb24gPSB0b1JhbmdlRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoUmFuZ2VFeGNlcHRp
b24qIHJhbmdlRXhjZXB0aW9uID0gSlNSYW5nZUV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHJhbmdlRXhjZXB0
aW9uKTsKLSAgICBpZiAoRXZlbnRFeGNlcHRpb24qIGV2ZW50RXhjZXB0aW9uID0gdG9FdmVudEV4
Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKEV2ZW50RXhjZXB0aW9uKiBldmVudEV4Y2VwdGlvbiA9
IEpTRXZlbnRFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihldmVudEV4Y2VwdGlvbik7Ci0gICAgaWYgKFhNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uKiB4bWxIdHRwRXhjZXB0aW9uID0gdG9YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKiB4bWxIdHRw
RXhjZXB0aW9uID0gSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHhtbEh0dHBFeGNl
cHRpb24pOwotICAgIGlmIChTVkdFeGNlcHRpb24qIHN2Z0V4Y2VwdGlvbiA9IHRvU1ZHRXhjZXB0
aW9uKHZhbHVlKSkKKyAgICBpZiAoU1ZHRXhjZXB0aW9uKiBzdmdFeGNlcHRpb24gPSBKU1NWR0V4
Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
RXhjZXB0aW9uQmFzZSo+KHN2Z0V4Y2VwdGlvbik7Ci0gICAgaWYgKFhQYXRoRXhjZXB0aW9uKiBw
YXRoRXhjZXB0aW9uID0gdG9YUGF0aEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFhQYXRoRXhj
ZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0gSlNYUGF0aEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkK
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHBhdGhFeGNl
cHRpb24pOwogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgaWYgKFNRTEV4Y2VwdGlvbiog
cGF0aEV4Y2VwdGlvbiA9IHRvU1FMRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoU1FMRXhjZXB0
aW9uKiBwYXRoRXhjZXB0aW9uID0gSlNTUUxFeGNlcHRpb246OnRvSW1wbCh2YWx1ZSkpCiAgICAg
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihwYXRoRXhjZXB0aW9u
KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcAppbmRleCAxZDQwYzYwZDg3MDI3NzU0ZjAxM2MyYjIy
NTcyYzAxZGMyYzhjZWI5Li5iZmMxZGQ1OTVmYTllZThlZmUyZjc1NWJiN2U1ZjhiNzQ5ODc4MjQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1l
bnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlh
RWxlbWVudEN1c3RvbS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgdm9pZCBKU0hUTUxNZWRpYUVsZW1l
bnQ6OnNldENvbnRyb2xsZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSkKICAgICAvLyBPbiBz
ZXR0aW5nLCBpdCBtdXN0IGZpcnN0IHJlbW92ZSB0aGUgZWxlbWVudCdzIG1lZGlhZ3JvdXAgYXR0
cmlidXRlLCBpZiBhbnksIAogICAgIGltcGwoKS5zZXRNZWRpYUdyb3VwKFN0cmluZygpKTsKICAg
ICAvLyBhbmQgdGhlbiBzZXQgdGhlIGN1cnJlbnQgbWVkaWEgY29udHJvbGxlciB0byB0aGUgZ2l2
ZW4gdmFsdWUuCi0gICAgaW1wbCgpLnNldENvbnRyb2xsZXIodG9NZWRpYUNvbnRyb2xsZXIodmFs
dWUpKTsKKyAgICBpbXBsKCkuc2V0Q29udHJvbGxlcihKU01lZGlhQ29udHJvbGxlcjo6dG9JbXBs
KHZhbHVlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRleCA3NGE1ODY3MmY0
N2RmN2M2ZmFkZmY4NDBmOTM0NzgyNzZiYzk4OGNkLi43MWYzZGRiMDEzNDY4Y2EzNTQ0MWZkYTg1
YTVlYTMwZDA5MTA5MDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCkBAIC02Myw3ICs2Myw3
IEBAIHZvaWQgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmluZGV4U2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsCiBKU1ZhbHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0
aW9uOjphZGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEhUTUxPcHRpb25zQ29sbGVjdGlvbiYg
aW1wID0gaW1wbCgpOwotICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSB0b0hUTUxPcHRp
b25FbGVtZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0
aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKTsKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MikKICAgICAgICAgaW1wLmFkZChvcHRpb24sIGVjKTsKQEAgLTgxLDcgKzgxLDcgQEAgSlNWYWx1
ZSBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6cmVtb3ZlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICAvLyBUaGUgYXJndW1lbnQgY2FuIGJlIGFuIEhUTUxPcHRpb25FbGVtZW50IG9yIGFuIGluZGV4
LgogICAgIEpTVmFsdWUgYXJndW1lbnQgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBpZiAoSFRN
TE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoYXJndW1lbnQpKQor
ICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6
dG9JbXBsKGFyZ3VtZW50KSkKICAgICAgICAgaW1wbCgpLnJlbW92ZShvcHRpb24pOwogICAgIGVs
c2UKICAgICAgICAgaW1wbCgpLnJlbW92ZShhcmd1bWVudC50b0ludDMyKGV4ZWMpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1
c3RvbS5jcHAKaW5kZXggNDNmNjk0YjUwYWUzMzZlYjkzZGYzNmMxOGNjNTAzNWU0NTgyMGQwNS4u
ZGRkMDkyOTJhMTkyMDI4MTExOTE0MjU5OGNjZGViYTRjZTQ5NGI1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5j
cHAKQEAgLTQzLDcgKzQzLDcgQEAgSlNWYWx1ZSBKU0hUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUo
RXhlY1N0YXRlKiBleGVjKQogICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIC8vIFRoZSBIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKCkgZnVu
Y3Rpb24gY2FuIHRha2UgZWl0aGVyIGFuIG9wdGlvbiBvYmplY3Qgb3IgdGhlIGluZGV4IG9mIGFu
IG9wdGlvbi4KLSAgICAgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSB0b0hUTUxP
cHRpb25FbGVtZW50KGV4ZWMtPmFyZ3VtZW50KDApKSkKKyAgICAgICAgaWYgKEhUTUxPcHRpb25F
bGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwoZXhlYy0+YXJndW1l
bnQoMCkpKQogICAgICAgICAgICAgc2VsZWN0LnJlbW92ZShvcHRpb24pOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBzZWxlY3QucmVtb3ZlQnlJbmRleChleGVjLT5hcmd1bWVudCgwKS50b0lu
dDMyKGV4ZWMpKTsKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBzZWxlY3RJbmRleFNldHRlcihIVE1M
U2VsZWN0RWxlbWVudCogc2VsZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQKICAg
ICAgICAgc2VsZWN0LT5yZW1vdmVCeUluZGV4KGluZGV4KTsKICAgICBlbHNlIHsKICAgICAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24g
PSB0b0hUTUxPcHRpb25FbGVtZW50KHZhbHVlKTsKKyAgICAgICAgSFRNTE9wdGlvbkVsZW1lbnQq
IG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbCh2YWx1ZSk7CiAgICAgICAgIGlm
ICghb3B0aW9uKQogICAgICAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKICAgICAgICAg
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNw
ZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCmluZGV4IGY0YjU1NWY4MzQ5YTQwM2FiMTQ1MjAx
NjIzNzU0MjYyMDY4MDlkYmQuLmY1NzQxMDA5OTU5MjYwZmViN2Y5N2E2ZGQ3ZTNjNTUzYjIzMzcz
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJv
bnRlbmRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lu
c3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBKU1ZhbHVl
IEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaG93Q29udGV4dE1lbnUoRXhlY1N0YXRlKiBleGVj
KQogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPCAyKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICBFdmVudCogZXZlbnQg
PSB0b0V2ZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICBFdmVudCogZXZlbnQgPSBKU0V2ZW50
Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpOwogCiAgICAgSlNBcnJheSogYXJyYXkgPSBhc0Fy
cmF5KGV4ZWMtPmFyZ3VtZW50KDEpKTsKICAgICBDb250ZXh0TWVudSBtZW51OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCmluZGV4
IGJhOWUzY2M4ZWQ2OTJlOTQwM2U2Nzg3NzFhMjU2ZTdmYWIxOGNkMTUuLjliYjNmZGFiZGZiMGYx
ZTg5ODE0ZjRhMzg5Zjk0MDM0YTlkMzE3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBoYW5kbGVJbml0TWVzc2FnZUV2ZW50KEpTTWVzc2FnZUV2ZW50KiBq
c0V2ZW50LCBKU0M6OkV4ZWNTdGEKICAgICBib29sIGNhbmNlbGFibGVBcmcgPSBleGVjLT5hcmd1
bWVudCgyKS50b0Jvb2xlYW4oZXhlYyk7CiAgICAgY29uc3QgU3RyaW5nIG9yaWdpbkFyZyA9IGV4
ZWMtPmFyZ3VtZW50KDQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBjb25zdCBT
dHJpbmcgbGFzdEV2ZW50SWRBcmcgPSBleGVjLT5hcmd1bWVudCg1KS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYyk7Ci0gICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSB0b0RPTVdpbmRvdyhleGVj
LT5hcmd1bWVudCg2KSk7CisgICAgRE9NV2luZG93KiBzb3VyY2VBcmcgPSBKU0RPTVdpbmRvdzo6
dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDYpKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBv
cnRBcnJheT4gbWVzc2FnZVBvcnRzOwogICAgIE93blB0cjxBcnJheUJ1ZmZlckFycmF5PiBhcnJh
eUJ1ZmZlcnM7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCg3KS5pc1VuZGVmaW5lZE9yTnVsbCgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0
b20uY3BwCmluZGV4IDc1YWJlMThjZjNjNWZkYzU1MGVjNjJhOTI4ZmYwNWRiYzk0MDVkMWMuLjk0
NmZlMmFlNzU1OGMyYzA5ODQ5NjI5ODllN2ZkM2IzMTkzYzkxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCkBAIC04NCw3ICs4
NCw3IEBAIHZvaWQgZmlsbE1lc3NhZ2VQb3J0QXJyYXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
Qzo6SlNWYWx1ZSB2YWx1ZSwgTWVzc2FnZVBvcnRBCiAgICAgICAgIH0KIAogICAgICAgICAvLyBW
YWxpZGF0aW9uIG9mIE9iamVjdHMgaW1wbGVtZW50aW5nIGFuIGludGVyZmFjZSwgcGVyIFdlYklE
TCBzcGVjIDQuMS4xNS4KLSAgICAgICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0ID0gdG9NZXNz
YWdlUG9ydCh2YWx1ZSk7CisgICAgICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4gcG9ydCA9IEpTTWVz
c2FnZVBvcnQ6OnRvSW1wbCh2YWx1ZSk7CiAgICAgICAgIGlmIChwb3J0KSB7CiAgICAgICAgICAg
ICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIHBvcnRzLgogICAgICAgICAgICAgaWYgKHBvcnRBcnJh
eS5jb250YWlucyhwb3J0KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1
c3RvbS5jcHAKaW5kZXggZDM2MjRlMWYyMzczY2U5NzgwMjVjNDZlYmUyMWZjZWU0MWZhNmFjZi4u
ZGQ3YjIzNTAwZDAyNzU0NDU2MTQwZTU4ZWQ2MGZiY2QwYjhkZTBmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9v
bCBKU05vZGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHYKIEpTVmFsdWUgSlNOb2RlOjppbnNlcnRCZWZvcmUoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBp
bXBsKCkuaW5zZXJ0QmVmb3JlKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVj
LT5hcmd1bWVudCgxKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLmluc2VydEJlZm9yZShK
U05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSksIEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFy
Z3VtZW50KDEpKSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYg
KG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC0xNDUsNyArMTQ1LDcg
QEAgSlNWYWx1ZSBKU05vZGU6Omluc2VydEJlZm9yZShFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVl
IEpTTm9kZTo6cmVwbGFjZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZCh0b05vZGUoZXhl
Yy0+YXJndW1lbnQoMCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7CisgICAgYm9v
bCBvayA9IGltcGwoKS5yZXBsYWNlQ2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQo
MCkpLCBKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKICAgICBzZXRET01F
eGNlcHRpb24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFy
Z3VtZW50KDEpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjpyZXBsYWNlQ2hp
bGQoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU05vZGU6OnJlbW92ZUNoaWxkKEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1w
bCgpLnJlbW92ZUNoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKKyAgICBib29s
IG9rID0gaW1wbCgpLnJlbW92ZUNoaWxkKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDAp
KSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAg
ICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CkBAIC0xNjUsNyArMTY1LDcgQEAgSlNWYWx1
ZSBKU05vZGU6OnJlbW92ZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFsdWUgSlNOb2RlOjph
cHBlbmRDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgYm9vbCBvayA9IGltcGwoKS5hcHBlbmRDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQo
MCkpLCBlYyk7CisgICAgYm9vbCBvayA9IGltcGwoKS5hcHBlbmRDaGlsZChKU05vZGU6OnRvSW1w
bChleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMp
OwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50KDApOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKaW5kZXgg
MjhjMTZjMTFlYzk1NDExMzk5OTY2MjM2ZTU3Njk4MDc1YWIwODFkYS4uNGUxNDdkNzVkNmUxYmRl
ZGI5MWNkMjlhMDkwMTg5NGY4NzJjN2FkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCkBAIC0zNSw3ICszNSw3IEBAIHZvaWQgSlNO
b2RlRmlsdGVyOjp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdCgmaW1wbCgpKTsKIH0KIAotUGFzc1JlZlB0
cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKK1Bhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gSlNOb2RlRmlsdGVyOjp0b0ltcGwoSlNDOjpWTSYg
dm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNOb2Rl
RmlsdGVyOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gJkpTQzo6anNDYXN0PEpTTm9kZUZpbHRl
cio+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAppbmRleCBmNDA1YTAzZGY2ZTMwMWVl
ODA2YWNjODY4NzI2MzFlNmJkYjQ4OWQ4Li42ODgwYTBjODQxMzM1M2NlOTA3NjFjZTUzNmM1ZDNm
MDljNjM0Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRs
ZUNyeXB0b0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0
bGVDcnlwdG9DdXN0b20uY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNy
eXB0bzo6ZW5jcnlwdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBK
U0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAo
IWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC0xOTcsNyAr
MTk3LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdChFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlw
dG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAg
ICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKGV4ZWMpOwogCkBAIC0yNDgsNyArMjQ4LDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0
bzo6c2lnbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
ICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0
b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkK
ICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC0yOTksNyArMjk5LDcg
QEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dmVyaWZ5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4g
a2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0
cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
ZXhlYyk7CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpleHBv
cnRLZXkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAg
ICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNo
ZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9L
ZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtNjMwLDExICs2MzAsMTEg
QEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6d3JhcEtleShFeGVjU3RhdGUqIGV4ZWMpCiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+
IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQ
dHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9y
KGV4ZWMpOwogCi0gICAgUmVmUHRyPENyeXB0b0tleT4gd3JhcHBpbmdLZXkgPSB0b0NyeXB0b0tl
eShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4gd3Jh
cHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIp
KTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwog
CkBAIC03MTMsNyArNzEzLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6dW53cmFwS2V5KEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0g
ICAgUmVmUHRyPENyeXB0b0tleT4gdW53cmFwcGluZ0tleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiB1bndyYXBwaW5nS2V5
ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgyKSk7CiAgICAg
aWYgKCF1bndyYXBwaW5nS2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCBjNWYyMTYxMjlhYzM5ZjBjYTE3NWMyNjVm
YzEyMGYzZDJmZDQ2MTU1Li5mZTUxZmM5ZjZkZDZkNTc1ZTY3ZmZmNjYyOGVjMzYzNzJkNWE4Mjgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgSlNWYWx1ZSBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0QXR0YWNoZWRTaGFkZXJzKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsKLSAgICBXZWJH
TFByb2dyYW0qIHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvSW1w
bChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFleGVj
LT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJHTFNoYWRlcj4+
IHNoYWRlcnM7CkBAIC0zNDEsNyArMzQxLDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQgPSBpbXBs
KCk7Ci0gICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkpOworICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQ
cm9ncmFtOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJv
Z3JhbSAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkK
ICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIHVuc2lnbmVkIHBuYW1l
ID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKQEAgLTM2OSw3ICsz
NjksNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTaGFkZXJQYXJhbWV0
ZXIoRXhlY1N0YXRlKiBleGVjKQogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9
IGltcGwoKTsKICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVk
T3JOdWxsKCkgJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmluaGVyaXRzKEpTV2ViR0xT
aGFkZXI6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKLSAg
ICBXZWJHTFNoYWRlciogc2hhZGVyID0gdG9XZWJHTFNoYWRlcihleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgwKSk7CisgICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IEpTV2ViR0xTaGFkZXI6OnRvSW1w
bChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgdW5zaWduZWQgcG5hbWUgPSBleGVj
LT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwogICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC00MDUsMTAgKzQw
NSwxMCBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRVbmlmb3JtKEV4ZWNT
dGF0ZSogZXhlYykKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVy
aW5nQ29udGV4dCYgY29udGV4dCA9IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0g
PSB0b1dlYkdMUHJvZ3JhbShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQ
cm9ncmFtKiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvSW1wbChleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
ZXhlYyk7Ci0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZv
cm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgV2ViR0xVbmlmb3Jt
TG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9JbXBsKGV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFleGVjLT51bmNo
ZWNrZWRBcmd1bWVudCgxKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgV2ViR0xHZXRJbmZvIGluZm8gPSBjb250ZXh0LmdldFVu
aWZvcm0ocHJvZ3JhbSwgbG9jYXRpb24sIGVjKTsKQEAgLTQ3OCw3ICs0NzgsNyBAQCBzdGF0aWMg
SlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbmYoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBXZQogICAgIGxvbmcgaW5kZXggPSAtMTsKICAgICAKICAgICBpZiAoZnVu
Y3Rpb25Gb3JVbmlmb3JtKGYpKSB7Ci0gICAgICAgIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1M
b2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgICAgIGxvY2F0aW9uID0g
SlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKICAgICAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCku
aXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihl
eGVjKTsKICAgICB9IGVsc2UKQEAgLTU2NCw3ICs1NjQsNyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGRhdGFGdW5jdGlvbmkoRGF0YUZ1bmN0aW9uVG9DYWxsIGYsIEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBXZQogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgIT0gMikKICAgICAgICAgcmV0dXJu
IGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoZXhlYykpOwogCi0gICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9X
ZWJHTFVuaWZvcm1Mb2NhdGlvbihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2Vi
R0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgIApAQCAtNjI0LDcgKzYyNCw3IEBAIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uTWF0cml4KERhdGFGdW5jdGlvbk1hdHJpeFRvQ2Fs
bCBmLCBKU0M6OkV4ZWNTdGF0CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAhPSAzKQog
ICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiog
bG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9y
bUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICgh
bG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxs
KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRl
eCBjOWVkY2ZhOGI0ZDFjMjM3NDM3ODIwNjFmNzI3ZjFjMjNkNWQyYzExLi5mOWFlMTY0N2FmYTVl
NTdmMTQ2YjVmZmFkNjQ4NzQ2ZTgzZjNkZDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMTQ4LDExICsxNDgs
MTEgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBpZiAodmFsLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIGltcGwoKS5zZW5kKGVjKTsK
ICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNEb2N1bWVudDo6aW5mbygpKSkKLSAgICAgICAg
aW1wbCgpLnNlbmQodG9Eb2N1bWVudCh2YWwpLCBlYyk7CisgICAgICAgIGltcGwoKS5zZW5kKEpT
RG9jdW1lbnQ6OnRvSW1wbCh2YWwpLCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpT
QmxvYjo6aW5mbygpKSkKLSAgICAgICAgaW1wbCgpLnNlbmQodG9CbG9iKHZhbCksIGVjKTsKKyAg
ICAgICAgaW1wbCgpLnNlbmQoSlNCbG9iOjp0b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYg
KHZhbC5pbmhlcml0cyhKU0RPTUZvcm1EYXRhOjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2Vu
ZCh0b0RPTUZvcm1EYXRhKHZhbCksIGVjKTsKKyAgICAgICAgaW1wbCgpLnNlbmQoSlNET01Gb3Jt
RGF0YTo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNBcnJh
eUJ1ZmZlcjo6aW5mbygpKSkKICAgICAgICAgaW1wbCgpLnNlbmQodG9BcnJheUJ1ZmZlcih2YWwp
LCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTQXJyYXlCdWZmZXJWaWV3OjppbmZv
KCkpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcAppbmRleCAyOGYyMmRhYjBkZjFiZTBhYTdiNWUyZjE2YTQ0ZDEzZDZkNzc2
YmY5Li43MGU5MjFhZTRhNzRiNWMzOTc0YTUyMWVmZDg5ODRhYzQwZDZlZDVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAK
QEAgLTc4NCwxMiArNzg0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgd3JpdGUob2Jq
LT5pbnRlcm5hbFZhbHVlKCkuYXNOdW1iZXIoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoRmlsZSogZmlsZSA9IHRvRmlsZShv
YmopKSB7CisgICAgICAgICAgICBpZiAoRmlsZSogZmlsZSA9IEpTRmlsZTo6dG9JbXBsKG9iaikp
IHsKICAgICAgICAgICAgICAgICB3cml0ZShGaWxlVGFnKTsKICAgICAgICAgICAgICAgICB3cml0
ZShmaWxlKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChGaWxlTGlzdCogbGlzdCA9IHRvRmlsZUxpc3Qob2JqKSkgeworICAgICAg
ICAgICAgaWYgKEZpbGVMaXN0KiBsaXN0ID0gSlNGaWxlTGlzdDo6dG9JbXBsKG9iaikpIHsKICAg
ICAgICAgICAgICAgICB3cml0ZShGaWxlTGlzdFRhZyk7CiAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gbGlzdC0+bGVuZ3RoKCk7CiAgICAgICAgICAgICAgICAgd3JpdGUobGVuZ3Ro
KTsKQEAgLTc5Nyw3ICs3OTcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICB3cml0
ZShsaXN0LT5pdGVtKGkpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmIChCbG9iKiBibG9iID0gdG9CbG9iKG9iaikpIHsKKyAgICAg
ICAgICAgIGlmIChCbG9iKiBibG9iID0gSlNCbG9iOjp0b0ltcGwob2JqKSkgewogICAgICAgICAg
ICAgICAgIHdyaXRlKEJsb2JUYWcpOwogICAgICAgICAgICAgICAgIG1fYmxvYlVSTHMuYXBwZW5k
KGJsb2ItPnVybCgpKTsKICAgICAgICAgICAgICAgICB3cml0ZShibG9iLT51cmwoKSk7CkBAIC04
MDUsNyArODA1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB3cml0ZShibG9iLT5zaXpl
KCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaWYgKEltYWdlRGF0YSogZGF0YSA9IHRvSW1hZ2VEYXRhKG9iaikpIHsKKyAgICAgICAg
ICAgIGlmIChJbWFnZURhdGEqIGRhdGEgPSBKU0ltYWdlRGF0YTo6dG9JbXBsKG9iaikpIHsKICAg
ICAgICAgICAgICAgICB3cml0ZShJbWFnZURhdGFUYWcpOwogICAgICAgICAgICAgICAgIHdyaXRl
KGRhdGEtPndpZHRoKCkpOwogICAgICAgICAgICAgICAgIHdyaXRlKGRhdGEtPmhlaWdodCgpKTsK
QEAgLTg2NSw3ICs4NjUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHJldHVybiBzdWNj
ZXNzOwogICAgICAgICAgICAgfQogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotICAgICAgICAg
ICAgaWYgKENyeXB0b0tleSoga2V5ID0gdG9DcnlwdG9LZXkob2JqKSkgeworICAgICAgICAgICAg
aWYgKENyeXB0b0tleSoga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChvYmopKSB7CiAgICAgICAg
ICAgICAgICAgd3JpdGUoQ3J5cHRvS2V5VGFnKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8dWlu
dDhfdD4gc2VyaWFsaXplZEtleTsKICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBkdW1t
eUJsb2JVUkxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQppbmRleCA4ZDU0ZGExM2M0ZDlmNTc4NjA0MGZjNGI1MzljYWMwNmMxODRl
ZTAwLi40OWFhOTY0Mjk5OTNiMmE4ODdiZjRlM2EzZGZkYWQ2MzEzMDgyYTBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAt
ODc0LDYgKzg3NCwxNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7XG4iKTsKICAgICB9CiAKKyAgICAjIEpTVmFsdWUgdG8g
aW1wbGVtZW50YXRpb24gdHlwZQorICAgIGlmICghJGhhc1BhcmVudCB8fCAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKKyAgICAg
ICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlRmlsdGVyIikgeworICAgICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b0lt
cGwoSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfSBlbHNpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIkRPTVN0cmluZ0xpc3QiKSB7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvSW1wbChKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRpbXBsVHlwZSogdG9JbXBs
KEpTQzo6SlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgICRoZWFkZXJUcmFp
bGluZ0luY2x1ZGVzeyIke2NsYXNzTmFtZX1DdXN0b20uaCJ9ID0gMSBpZiAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21IZWFkZXIifTsKIAogICAgIG15ICRuYW1lZEdl
dHRlckZ1bmN0aW9uID0gR2V0TmFtZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJmYWNlKTsKQEAgLTEx
NjYsMTUgKzExNzcsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoU2hvdWxkR2VuZXJh
dGVUb0pTRGVjbGFyYXRpb24oJGhhc1BhcmVudCwgJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIldFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCAkaW1wbFR5cGUqKTtcbiIpOwogICAgIH0K
LSAgICBpZiAoISRoYXNQYXJlbnQgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSB7Ci0gICAgICAgIGlmICgkaW50ZXJmYWNlTmFt
ZSBlcSAiTm9kZUZpbHRlciIpIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJQ
YXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU0M6OlZNJiwgSlNDOjpKU1ZhbHVl
KTtcbiIpOwotICAgICAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5nTGlz
dCIpIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJQYXNzUmVmUHRyPERPTVN0
cmluZ0xpc3Q+IHRvRE9NU3RyaW5nTGlzdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7
XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJXRUJDT1JFX0VYUE9SVCAkaW1wbFR5cGUqIHRvJHtpbnRlcmZhY2VOYW1lfShKU0M6OkpTVmFs
dWUpO1xuIik7Ci0gICAgICAgIH0KLSAgICB9CiAgICAgaWYgKCR1c2VzVG9KU05ld2x5Q3JlYXRl
ZHskaW50ZXJmYWNlTmFtZX0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6
SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCAkaW50ZXJmYWNlTmFtZSopO1xuIik7CiAgICAgfQpAQCAtMzExMiw3ICszMTE0LDcgQEAg
RU5ECiAgICAgfQogCiAgICAgaWYgKCghJGhhc1BhcmVudCBvciAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIGFuZCAhJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tVG9OYXRpdmVPYmplY3QifSkgewotICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiRpbXBsVHlwZSogdG8ke2ludGVyZmFjZU5hbWV9KEpT
Qzo6SlNWYWx1ZSB2YWx1ZSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiRpbXBs
VHlwZSogJHtjbGFzc05hbWV9Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKVxuIik7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChhdXRvKiB3cmFwcGVyID0gIiAuIEdldENhc3RpbmdIZWxwZXJGb3JUaGlzT2Jq
ZWN0KCRpbnRlcmZhY2UpIC4gIih2YWx1ZSkpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpO1xuIik7CkBAIC0zMjQzLDcgKzMy
NDUsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKIAogICAgICAgICBpZiAoJGFyZ1R5
cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBjdXN0b21SZXNvbHZlcjtcbiIpOwotICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFhQYXRoTlNSZXNvbHZlciogcmVzb2x2
ZXIgPSB0b1hQYXRoTlNSZXNvbHZlcihleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSk7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBYUGF0aE5TUmVzb2x2ZXIqIHJl
c29sdmVyID0gSlNYUGF0aE5TUmVzb2x2ZXI6OnRvSW1wbChleGVjLT5hcmd1bWVudCgkYXJnc0lu
ZGV4KSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIXJl
c29sdmVyKSB7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAg
Y3VzdG9tUmVzb2x2ZXIgPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKGV4ZWMsIGV4
ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKVxuIik7
CkBAIC0zMjk2LDcgKzMyOTgsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZm9yICh1bnNpZ25lZCBpID0gJGFy
Z3NJbmRleCwgY291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7
XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmICgh
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkuaW5oZXJpdHMoSlMke2FyZ1R5cGV9OjppbmZvKCkp
KVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAg
cmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIGksIFwiJG5hbWVcIiwgXCIkaW50
ZXJmYWNlTmFtZVwiLCAkcXVvdGVkRnVuY3Rpb25OYW1lLCBcIiRhcmdUeXBlXCIpO1xuIik7Ci0g
ICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZS5hcHBlbmQo
dG8kYXJnVHlwZShleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpO1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAkbmFtZS5hcHBlbmQoSlMke2FyZ1R5
cGV9Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTtcbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKQogICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgVmVjdG9yPCRuYXRp
dmVFbGVtZW50VHlwZT4gJG5hbWUgPSB0b05hdGl2ZUFyZ3VtZW50czwkbmF0aXZlRWxlbWVudFR5
cGU+KGV4ZWMsICRhcmdzSW5kZXgpO1xuIik7CkBAIC0zODQ5LDcgKzM4NTEsNyBAQCBzdWIgSlNW
YWx1ZVRvTmF0aXZlCiAKICAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7CiAgICAgICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwpOwotICAgICAgICBy
ZXR1cm4gInRvJHR5cGUoZXhlYy0+dm0oKSwgJHZhbHVlKSI7CisgICAgICAgIHJldHVybiAiSlMk
e3R5cGV9Ojp0b0ltcGwoZXhlYy0+dm0oKSwgJHZhbHVlKSI7CiAgICAgfQogCiAgICAgaWYgKCR0
eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CkBAIC0zODgxLDcgKzM4ODMsNyBAQCBz
dWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgaWYgKCRhcnJheU9yU2VxdWVuY2VUeXBlKSB7CiAgICAg
ICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNSZWZQdHJUeXBlKCRhcnJheU9yU2VxdWVuY2VUeXBl
KSkgewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHthcnJheU9yU2VxdWVuY2VU
eXBlfS5oIik7Ci0gICAgICAgICAgICByZXR1cm4gIih0b1JlZlB0ck5hdGl2ZUFycmF5PCR7YXJy
YXlPclNlcXVlbmNlVHlwZX0sIEpTJHthcnJheU9yU2VxdWVuY2VUeXBlfT4oZXhlYywgJHZhbHVl
LCAmdG8ke2FycmF5T3JTZXF1ZW5jZVR5cGV9KSkiOworICAgICAgICAgICAgcmV0dXJuICIodG9S
ZWZQdHJOYXRpdmVBcnJheTwke2FycmF5T3JTZXF1ZW5jZVR5cGV9LCBKUyR7YXJyYXlPclNlcXVl
bmNlVHlwZX0+KGV4ZWMsICR2YWx1ZSwgJkpTJHthcnJheU9yU2VxdWVuY2VUeXBlfTo6dG9JbXBs
KSkiOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAidG9OYXRpdmVBcnJheTwiIC4gR2V0TmF0
aXZlVmVjdG9ySW5uZXJUeXBlKCRhcnJheU9yU2VxdWVuY2VUeXBlKSAuICI+KGV4ZWMsICR2YWx1
ZSkiOwogICAgIH0KQEAgLTM4OTIsNyArMzg5NCw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKIAog
ICAgICMgRGVmYXVsdCwgYXNzdW1lIGF1dG9nZW5lcmF0ZWQgdHlwZSBjb252ZXJzaW9uIHJvdXRp
bmVzCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25kaXRpb25hbCk7Ci0g
ICAgcmV0dXJuICJ0byR0eXBlKCR2YWx1ZSkiOworICAgIHJldHVybiAiSlMke3R5cGV9Ojp0b0lt
cGwoJHZhbHVlKSI7CiB9CiAKIHN1YiBOYXRpdmVUb0pTVmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAKaW5kZXggNzE5MzhmYmRlYmM1NThjMjc1Yzk1YWFjNjMxN2FlMmQ1ZGI4
NDA1ZS4uYTE2MTE2NWEyYjNlZDY4NmFmMjBmMjZiODNiOWNjNjZiNzIyN2RjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURP
TU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTIxNCw3ICsyMTQsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9u
RXhjaXRpbmdGdW5jdAogICAgIFRlc3RBY3RpdmVET01PYmplY3QmIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhl
YykpOwotICAgIE5vZGUqIG5leHRDaGlsZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAg
ICBOb2RlKiBuZXh0Q2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAg
ICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuZXhjaXRpbmdGdW5jdGlvbihu
ZXh0Q2hpbGQpOwpAQCAtMjg5LDcgKzI4OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEFjdGl2ZURPCiAg
ICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0QWN0aXZlRE9NT2JqZWN0PihnbG9iYWxP
YmplY3QsIGltcGwpOwogfQogCi1UZXN0QWN0aXZlRE9NT2JqZWN0KiB0b1Rlc3RBY3RpdmVET01P
YmplY3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEFjdGl2ZURPTU9iamVjdCogSlNUZXN0QWN0
aXZlRE9NT2JqZWN0Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRv
KiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPih2YWx1ZSkp
CiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9i
amVjdC5oCmluZGV4IDU1YzJlZjk0ZTI2YzIxOGIxMDEyNjFhZDllMTExNGUwOTFlNDZmMDcuLmVl
NjY0NjM3OTQ5ZTNlNGFiM2UyZDViYjFkNWE3Nzg0NzA0NTM5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0
aXZlRE9NT2JqZWN0LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEFjdGl2ZURPTU9iamVjdCogdG9J
bXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAg
ICB+SlNUZXN0QWN0aXZlRE9NT2JqZWN0KCk7CkBAIC05Myw3ICs5NCw2IEBAIGlubGluZSB2b2lk
KiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0QWN0aXZlRE9NT2Jq
ZWN0KikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RBY3RpdmVET01PYmplY3QqKTsKLVdFQkNPUkVf
RVhQT1JUIFRlc3RBY3RpdmVET01PYmplY3QqIHRvVGVzdEFjdGl2ZURPTU9iamVjdChKU0M6OkpT
VmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIuY3BwCmluZGV4IDU2OGM5ZGU4NGVlMmNmN2UyZTExMmM3YTE2ZDA3Yzk3YTNh
ZGMyZGQuLmFlMTcxY2JhMjY2Mjc2MzBiODM1ZWI2ZDYxMzY4Y2I5MmQ5ZjYyYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtMjYzLDcgKzI2Myw3IEBAIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGVzdEN1c3RvbU5hCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXI+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RDdXN0b21OYW1l
ZEdldHRlciogdG9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9JbXBsKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBl
ci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAppbmRleCAxZWIzNWQ4
MmUwODNmMTc5YzUwNmMxNzU3MmYxNzY2NzdmMmM5NzUwLi4xMjE5YjQ3OWUzMWVjZDQ5MjVmYzlm
Nzg4ZjRlMDVmYTMyNTUxMjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaApA
QCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3Jl
YXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVj
dCopOworICAgIHN0YXRpYyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvSW1wbChKU0M6OkpTVmFs
dWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CkBAIC05Nyw3ICs5
OCw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxk
LCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDhlYWZhMDdkZDdl
MzZlMmNkNWI5MWZlNjYzMjNmZDZjOTMwODgyYTIuLjRlZTdlMWQxYzhlMDc2NjA3MmNjNWQzNjFm
NDc2MzQ0MTU1Njg1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAg
LTI5Miw3ICsyOTIsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RFdmVudENvbgogICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+KGdsb2JhbE9iamVjdCwgaW1wbCk7
CiB9CiAKLVRlc3RFdmVudENvbnN0cnVjdG9yKiB0b1Rlc3RFdmVudENvbnN0cnVjdG9yKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RFdmVudENvbnN0cnVjdG9yKiBKU1Rlc3RFdmVudENvbnN0cnVj
dG9yOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4odmFsdWUpKQogICAgICAg
ICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5o
CmluZGV4IDViYmVlYzgwZTRjYzRiMzhhMTk3NzExOTVhYzFkZDQ2OTc2YjEzMTYuLmIzZTI5ZjQx
MGI1Nzk5YzQzMDI4MmRjZTRmNTJlNDk4ZTZmMzRjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29u
c3RydWN0b3IuaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0RXZlbnRDb25zdHJ1Y3RvciogdG9JbXBs
KEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwog
ICAgIH5KU1Rlc3RFdmVudENvbnN0cnVjdG9yKCk7CiAKQEAgLTkzLDcgKzk0LDYgQEAgaW5saW5l
IHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RFdmVudENv
bnN0cnVjdG9yKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RFdmVudENvbnN0cnVjdG9yKik7Ci1X
RUJDT1JFX0VYUE9SVCBUZXN0RXZlbnRDb25zdHJ1Y3RvciogdG9UZXN0RXZlbnRDb25zdHJ1Y3Rv
cihKU0M6OkpTVmFsdWUpOwogCiBib29sIGZpbGxUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQoVGVz
dEV2ZW50Q29uc3RydWN0b3JJbml0JiwgSlNEaWN0aW9uYXJ5Jik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwCmluZGV4IGRiMzMzZDI0NDRjMzhlNGU0NmFiNDdiYjVjODliY2M4YjNmYThhNTQu
LmU3NzZjYjgyOThjYmFkMzI1ZTQ3MmI0NjA2YWI1YWQ3YTc1ZWZmMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50VGFyZ2V0LmNwcApAQCAtMjk0LDcgKzI5NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkRpc3BhdGNoRXZlbnQoRXhl
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIEV2ZW50KiBldnQodG9FdmVudChleGVjLT5hcmd1
bWVudCgwKSkpOworICAgIEV2ZW50KiBldnQoSlNFdmVudDo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50
KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGpzQm9vbGVhbihpbXBsLmRpc3BhdGNoRXZlbnQoZXZ0LCBlYykpOwpAQCAtMzY0LDcgKzM2
NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50VGFyCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBw
ZXI8SlNUZXN0RXZlbnRUYXJnZXQ+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RFdmVu
dFRhcmdldCogdG9UZXN0RXZlbnRUYXJnZXQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEV2ZW50
VGFyZ2V0KiBKU1Rlc3RFdmVudFRhcmdldDo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQq
Pih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuaAppbmRleCBlYjBhMmQ5OWJlY2NhYjdlNTIzMTE4ZTU0ZGJjYWQ0OTIxZjQ0ODAwLi5k
NWExNWVhYTc5ZTcwZDNmNDBhNzM5Mzg4ZTk1YzkwOGMwZWEwNGZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0RXZlbnRUYXJnZXQqIHRvSW1wbChKU0M6OkpT
VmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CkBAIC0xMDEs
NyArMTAyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYg
d29ybGQsIFRlc3RFdmVudFRhcmdldCopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0RXZlbnRUYXJn
ZXQqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RFdmVudFRhcmdldCogdG9UZXN0RXZlbnRUYXJnZXQo
SlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uY3BwCmluZGV4IDRhZGU3NmU5MTViMzhjYTVmMDdiNzU4YTYyZmM1YzkxOGU5YmI5NjMuLmMw
MmM3ZTkyNjM0ZWYxMDRiZWFlMzFiMWY1YWJkZTYwNDhlYTFlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXhjZXB0aW8KICAgICBy
ZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RFeGNlcHRpb24+KGdsb2JhbE9iamVjdCwgaW1w
bCk7CiB9CiAKLVRlc3RFeGNlcHRpb24qIHRvVGVzdEV4Y2VwdGlvbihKU0M6OkpTVmFsdWUgdmFs
dWUpCitUZXN0RXhjZXB0aW9uKiBKU1Rlc3RFeGNlcHRpb246OnRvSW1wbChKU0M6OkpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4
Y2VwdGlvbio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhj
ZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXhjZXB0aW9uLmgKaW5kZXggMzk4NDU3NGU5ODdmOWI4MTE4NGIwYjZmY2EzYmUxZTc3NmZhMWE0
ZS4uMjM2MGE5YzQxMTE4MmEzZGExOTVlYjIyMDcwMTQ1Y2YxY2IyODYyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0RXhjZXB0aW9uKiB0b0ltcGwoSlNDOjpKU1Zh
bHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCos
IEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RFeGNl
cHRpb24oKTsKQEAgLTk0LDcgKzk1LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERP
TVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RFeGNlcHRpb24qKQogfQogCiBXRUJDT1JFX0VYUE9S
VCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
VGVzdEV4Y2VwdGlvbiopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEV4Y2VwdGlvbiogdG9UZXN0RXhj
ZXB0aW9uKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IDQyN2FiYThkNDBlYjRkNGRk
OGJlYjc3OTA0Nzc5NjViMTdhZWJiMmYuLmViYTlmN2EzMzE4N2Y5MTZiZmRlNjIyNDc4YmM3MTBm
ZGQyNzdlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAg
LTIxMSw3ICsyMTEsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RHZW5lcmF0ZQogICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+KGdsb2JhbE9iamVjdCwgaW1w
bCk7CiB9CiAKLVRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiBKU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlm
IChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCmluZGV4IGRmN2JkZGJiNDkyN2YwNDhmOGJmZDk4Yjgy
YTdkNzc3MDY2MDYzMDguLjZlZDM1YmQ3YWY0NDBmZTMwYTc1MGYwYzgzMzVhNzNiNzMxODhiODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaApAQCAtMzgsNiArMzgsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3Rh
dGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlKCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0
KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKikKIH0KIAog
V0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUds
b2JhbE9iamVjdCosIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKik7Ci1XRUJDT1JFX0VYUE9SVCBU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogdG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZShKU0M6OkpT
VmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAK
aW5kZXggYjE0M2NjNGUzNjIwNGVmN2RlNjZhMGQxNmZlZjUzYzQxNmEyZmE0My4uOWExYmYxNzdi
ZjU4ZTFlMTY0OWJmMmRmZjFlYzg1NzAwOGJjMjcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAK
QEAgLTcyNCw3ICs3MjQsNyBAQCB2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2Rl
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuYwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIFRlc3RJbnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
Ci0gICAgTm9kZSogbmF0aXZlVmFsdWUodG9Ob2RlKHZhbHVlKSk7CisgICAgTm9kZSogbmF0aXZl
VmFsdWUoSlNOb2RlOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRJbXBsZW1lbnRzTm9k
ZShuYXRpdmVWYWx1ZSk7CkBAIC03OTUsNyArNzk1LDcgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3Qs
IEUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0SW50ZXJmYWNlJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwotICAgIE5vZGUqIG5hdGl2ZVZhbHVlKHRvTm9kZSh2YWx1ZSkpOwor
ICAgIE5vZGUqIG5hdGl2ZVZhbHVlKEpTTm9kZTo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFRlc3RT
dXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbE5vZGUoJmltcGwsIG5hdGl2ZVZhbHVlKTsKQEAg
LTg0MSw3ICs4NDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uSW1wbGVtZW50c01ldGhvZDIoRQogICAgIGNvbnN0IFN0cmlu
ZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDApLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+
YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJn
dW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+
YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFs
dWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpn
ZXRQdHIoaW1wbC5pbXBsZW1lbnRzTWV0aG9kMihzY3JpcHRDb250ZXh0LCBzdHJBcmcsIG9iakFy
ZywgZWMpKSk7CkBAIC05MDcsNyArOTA3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIKICAg
ICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5KCkgPyBTdHJp
bmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0
T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6
dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIFdURjo6Z2V0UHRyKFRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE1ldGhvZDIo
JmltcGwsIHNjcmlwdENvbnRleHQsIHN0ckFyZywgb2JqQXJnLCBlYykpKTsKQEAgLTk3Myw3ICs5
NzMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RJbnRlcmZhYwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFw
cGVyPEpTVGVzdEludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEludGVy
ZmFjZSogdG9UZXN0SW50ZXJmYWNlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RJbnRlcmZhY2Uq
IEpTVGVzdEludGVyZmFjZTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAo
YXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4odmFsdWUpKQog
ICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCA3
ZGQ4ZDAzM2U0NzFiMTI5MzI4OGU2OTcwOTlkYjNjN2Y1NzcyMjAyLi4xYTQ3NDc4MDdhYmM5NGI4
NGJmMDM4YWFhNjFmY2JkZTMyODhjNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBAIC00MCw2ICs0
MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5
cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAg
c3RhdGljIFRlc3RJbnRlcmZhY2UqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBw
dXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJ
bmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU0M6OkpTVmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpOwpAQCAtMTIwLDcgKzEyMSw2IEBAIGlu
bGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0SW50
ZXJmYWNlKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RJbnRlcmZhY2UqKTsKLVdFQkNPUkVfRVhQ
T1JUIFRlc3RJbnRlcmZhY2UqIHRvVGVzdEludGVyZmFjZShKU0M6OkpTVmFsdWUpOwogCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcAppbmRleCAzZTkzMTFlNTMwYjVjM2E2ZmQ1MjFmZDU0MDkwNDRjOGMxNjQ0ZDNj
Li5lYjE2YjMwOWY5ZTg3NzRiM2E0ZmZlNDU3YWI1ODUzZTFhYmNhMGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBUZXN0TWVkaWFRdWUKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogdG9UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihKU0M6
OkpTVmFsdWUgdmFsdWUpCitUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcjo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAo
YXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCA1NTczNWViMzIzMWQ3NGNjNjRl
YWViM2RjOTdjZDg0YTBjZmVlOTRhLi43Yzg2NTQyZjkwMDExOGQ0YWExNGUzZmY5YTExN2IwYTRm
ZmY5YjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAg
LTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0
ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKKyAgICBzdGF0aWMgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvSW1wbChKU0M6OkpT
VmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcigpOwogCkBAIC05MSw3ICs5Miw2IEBAIGlubGluZSB2
b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNzU0NmRj
Y2QyYTkyYzEyMWE4NGQ0ZjhlNTJlZDY4ODhmMTY4ZDg0NS4uNzdmOTdjYmU4M2QxYjZkYTUxNjRm
NjRkYjIyNGUzOGY4ODhjMzRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNw
cApAQCAtMjgxLDcgKzI4MSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5hbWVkQ29uCiAgICAgcmV0dXJu
IGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBp
bXBsKTsKIH0KIAotVGVzdE5hbWVkQ29uc3RydWN0b3IqIHRvVGVzdE5hbWVkQ29uc3RydWN0b3Io
SlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE5hbWVkQ29uc3RydWN0b3IqIEpTVGVzdE5hbWVkQ29u
c3RydWN0b3I6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdy
YXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqPih2YWx1ZSkpCiAg
ICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmgKaW5kZXggZWNlOTg4Nzc1OWUwODY4MDRkOWJkYzVhNWE0ZjY2ZTI0Y2YzN2I2MC4uOTYx
N2M4M2JmYjRiMGJiYTZhODU2OGQ3ZTc5NWQyZDJmZjM2YzlkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3ROYW1lZENvbnN0cnVjdG9yKiB0
b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxs
Kik7CiAgICAgfkpTVGVzdE5hbWVkQ29uc3RydWN0b3IoKTsKIApAQCAtOTIsNyArOTMsNiBAQCBp
bmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE5h
bWVkQ29uc3RydWN0b3IqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE5hbWVkQ29uc3RydWN0b3Iq
KTsKLVdFQkNPUkVfRVhQT1JUIFRlc3ROYW1lZENvbnN0cnVjdG9yKiB0b1Rlc3ROYW1lZENvbnN0
cnVjdG9yKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRl
dGVybWluaXN0aWMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCmluZGV4IGUxNzNhYWNmNzg4NzRhYjNhZTAwODM4
NmE0ZTE4OTFhNjRiNzcxNmYuLjhiNWE1ZWNjNTZmZmJkYTI3MjJiNWY2YjJkZjI5Yjk2Njc4NmRk
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKQEAgLTUzNCw3ICs1MzQs
NyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFRlc3ROb25kZXRlcgogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVy
PEpTVGVzdE5vbmRldGVybWluaXN0aWM+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RO
b25kZXRlcm1pbmlzdGljKiB0b1Rlc3ROb25kZXRlcm1pbmlzdGljKEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKK1Rlc3ROb25kZXRlcm1pbmlzdGljKiBKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjp0b0ltcGwo
SlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndy
YXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCmluZGV4IGY1MmVi
YmQxMzMwMDFkMDczNzVlYzQ0ZjVkOGY3ZjE4ZWFkMzY1YWIuLmE2NDIxMTFjYWYxNmQyMzUxMDk5
NzBlM2QwMGY5MWZmMWQ4ZTAxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaApA
QCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3Jl
YXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVj
dCopOworICAgIHN0YXRpYyBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9JbXBsKEpTQzo6SlNWYWx1
ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RO
b25kZXRlcm1pbmlzdGljKCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBw
ZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3ROb25kZXRlcm1pbmlzdGljKikK
IH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3ROb25kZXRlcm1pbmlzdGljKik7Ci1XRUJDT1JFX0VYUE9S
VCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9UZXN0Tm9uZGV0ZXJtaW5pc3RpYyhKU0M6OkpTVmFs
dWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggZTQzNGRlY2Jm
ODA2ODk5OTMyMWFhY2VmNDEwYThhN2FjOTIyZjJmMS4uZjhmNDg5OWIwNDZhMTJiMzZkYjM3ZDAy
MmIwYmUzNWNjNDI5YmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTIwNzgsNyArMjA3OCw3IEBAIHZvaWQg
c2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9i
amVjdCwgRW5jb2RlZEpTVmFsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rl
c3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1w
bCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAg
ICAgIHJldHVybjsKICAgICBpbXBsLnNldFRlc3RPYmpBdHRyKG5hdGl2ZVZhbHVlKTsKQEAgLTIw
OTgsNyArMjA5OCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0
T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVW
YWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFhNTE9iakF0dHIo
bmF0aXZlVmFsdWUpOwpAQCAtMjQ1NCw3ICsyNDU0LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KgogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlz
LT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7Cisg
ICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKQEAgLTI0NzcsNyArMjQ3Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBU
ZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBs
LnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCBuYXRpdmVWYWx1ZSk7CkBA
IC0yNDk3LDcgKzI0OTcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYgogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAg
VGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0
aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI1
MjAsNyArMjUyMCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0
T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVW
YWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMjU0Myw3
ICsyNTQzLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGEKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoq
IG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVl
KEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0yNTY2LDcgKzI1
NjYsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEV4ZQogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0
aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNU
ZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI1ODksNyArMjU4OSw3
IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJp
YnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
VGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVW
YWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RP
Ymo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldFdpdGhTY3JpcHRBcmd1bWVudHNBbmRD
YWxsU3RhY2tBdHRyaWJ1dGUobmF0aXZlVmFsdWUpOwpAQCAtMjc0MCw3ICsyNzQwLDcgQEAgdm9p
ZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFz
ZU9iamVjdCwgRW5jb2RlZEpTVmEKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2Jq
JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQ
b2ludD4qIG5hdGl2ZVZhbHVlKHRvU1ZHUG9pbnQodmFsdWUpKTsKKyAgICBTVkdQcm9wZXJ0eVRl
YXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZShKU1NWR1BvaW50Ojp0b0ltcGwodmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47
CiAgICAgaW1wbC5zZXRNdXRhYmxlUG9pbnQobmF0aXZlVmFsdWUpOwpAQCAtMjc2MCw3ICsyNzYw
LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlMKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFNWR1Byb3BlcnR5VGVh
ck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKHRvU1ZHUG9pbnQodmFsdWUpKTsKKyAgICBTVkdQ
cm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZShKU1NWR1BvaW50Ojp0b0ltcGwo
dmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm47CiAgICAgaW1wbC5zZXRJbW11dGFibGVQb2ludChuYXRpdmVWYWx1ZSk7CkBAIC0y
OTM5LDcgKzI5MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIGNvbnN0IFN0cmlu
ZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+
YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJn
dW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+
YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwu
dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKTsKQEAgLTI5NzQsNyAr
Mjk3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgY29uc3QgU3RyaW5nJiBzdHJB
cmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVu
dCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgy
KSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVu
dCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1
bHQgPSBqc051bWJlcihpbXBsLmJ5dGVNZXRob2RXaXRoQXJncyhieXRlQXJnLCBzdHJBcmcsIG9i
akFyZykpOwpAQCAtMzAwOSw3ICszMDA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3MoRXhlY1MKICAg
ICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJp
bmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0
T2JqKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6
dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwub2N0ZXRNZXRob2RXaXRoQXJn
cyhvY3RldEFyZywgc3RyQXJnLCBvYmpBcmcpKTsKQEAgLTMwNDQsNyArMzA0NCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0
aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1l
bnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
VGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RP
YmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihp
bXBsLmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZykpOwpAQCAtMzA3
OSw3ICszMDc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGEKICAgICBjb25zdCBTdHJpbmcm
IHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFy
Z3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3Vt
ZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFy
Z3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVl
IHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0
UHRyKGltcGwub2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpKSk7CkBA
IC0zMDk2LDcgKzMwOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEV4ZQogICAgIFRlc3RPYmom
IGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFZlY3RvcjxSZWZQdHI8U2NyaXB0UHJvZmlsZT4+
IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNjcmlwdFByb2ZpbGUsIEpTU2NyaXB0
UHJvZmlsZT4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZ0b1NjcmlwdFByb2ZpbGUpKSk7Cisg
ICAgVmVjdG9yPFJlZlB0cjxTY3JpcHRQcm9maWxlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0
aXZlQXJyYXk8U2NyaXB0UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxlPihleGVjLCBleGVjLT5hcmd1
bWVudCgwKSwgJkpTU2NyaXB0UHJvZmlsZTo6dG9JbXBsKSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgaW1wbC5tZXRob2RXaXRoU2VxdWVuY2VBcmcoc2VxdWVuY2VBcmcp
OwpAQCAtMzE1Myw3ICszMTUzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3MKICAgICBjb25z
dCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6
IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4
ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IFdURjo6Z2V0UHRyKGltcGwubWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhzdHJB
cmcsIG9iakFyZywgZWMpKSk7CkBAIC0zNjY5LDcgKzM2NjksNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QxKAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
ZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3RPYmoq
IG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBvYmpB
cmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50
KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpKTsKQEAgLTM2ODksNyArMzY4OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZDIoCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihl
eGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE9iaiog
b2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoqIG9iakFy
ZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAKQEAgLTM4MDEsNyArMzgwMSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZDgoCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihl
eGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE9iaiog
b2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoqIG9iakFy
ZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kKG9iakFyZyk7CkBAIC00
MTIxLDcgKzQxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ29udmVydDEoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmomIGlt
cGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMt
PmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6OnRvSW1wbChl
eGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
aW1wbC5jb252ZXJ0MSh2YWx1ZSk7CkBAIC00MTM4LDcgKzQxMzgsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoRXhlY1N0
YXRlKiBleGVjKQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3RO
b2RlKiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUq
IHZhbHVlKEpTVGVzdE5vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0Mih2YWx1ZSk7CkBAIC00MTU1
LDcgKzQxNTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29udmVydDQoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmomIGltcGwg
PSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2RlKiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFy
Z3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZhbHVlKEpTVGVzdE5vZGU6OnRvSW1wbChleGVj
LT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1w
bC5jb252ZXJ0NCh2YWx1ZSk7CkBAIC00MTcyLDcgKzQxNzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUoRXhlY1N0YXRl
KiBleGVjKQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
ZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3ROb2Rl
KiB2YWx1ZSh0b1Rlc3ROb2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE5vZGUqIHZh
bHVlKEpTVGVzdE5vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5jb252ZXJ0NSh2YWx1ZSk7CkBAIC00MjU0LDcg
KzQyNTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uU3RyaWN0RnVuY3Rpb25XaXRoU2VxdWVuYwogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAh
ZXhlYy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoSlNUZXN0T2JqOjppbmZvKCkpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgMCwgIm9iakFyZyIsICJUZXN0T2Jq
IiwgInN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmNlIiwgIlRlc3RPYmoiKTsKLSAgICBUZXN0T2Jq
KiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2Jq
QXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8dW5zaWduZWQ+IGEodG9OYXRpdmVBcnJheTx1
bnNpZ25lZD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMSkpKTsKQEAgLTQyNzksNyArNDI3OSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25T
dHJpY3RGdW5jdGlvbldpdGhBcnJheShFCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAg
aWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1
bWVudCgwKS5pbmhlcml0cyhKU1Rlc3RPYmo6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJv
d0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCAwLCAib2JqQXJnIiwgIlRlc3RPYmoiLCAic3RyaWN0
RnVuY3Rpb25XaXRoQXJyYXkiLCAiVGVzdE9iaiIpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rl
c3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2Jq
Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgIFZlY3RvcjxpbnQ+IGFycmF5KHRvTmF0aXZlQXJyYXk8aW50PihleGVjLCBleGVj
LT5hcmd1bWVudCgxKSkpOwpAQCAtNDM0MSwxNCArNDM0MSwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9k
KEV4ZWNTdAogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
ZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIE5vZGUqIGhl
YWQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgTm9kZSogaGVhZChKU05vZGU6OnRv
SW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAgICAgVmVjdG9yPE5vZGUqPiB0YWlsOwogICAgIGZvciAodW5zaWduZWQgaSA9IDEsIGNvdW50
ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBpZiAo
IWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpLmluaGVyaXRzKEpTTm9kZTo6aW5mbygpKSkKICAg
ICAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCBpLCAidGFpbCIs
ICJUZXN0T2JqIiwgInZhcmlhZGljTm9kZU1ldGhvZCIsICJOb2RlIik7Ci0gICAgICAgIHRhaWwu
YXBwZW5kKHRvTm9kZShleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpOworICAgICAgICB0YWls
LmFwcGVuZChKU05vZGU6OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpOwogICAg
IH0KICAgICBpbXBsLnZhcmlhZGljTm9kZU1ldGhvZChoZWFkLCB0YWlsKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtNDQzNCw3ICs0NDM0LDcgQEAgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0T2JqKiBpbXAKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RP
Ymo+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RPYmoqIHRvVGVzdE9iaihKU0M6OkpT
VmFsdWUgdmFsdWUpCitUZXN0T2JqKiBKU1Rlc3RPYmo6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggM2Mw
YmZjNWM5ZGVkMTRkM2RjNjM3MGJkMWMyZTc4MWU5MGRiYjhmZS4uMzJlZWFmNjc0MGFmZjFhNGVl
NTZhMTJhNGE2NjMwZDQ4NzQ0ZTNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0T2Jq
KiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCop
OwogICAgIH5KU1Rlc3RPYmooKTsKQEAgLTEwNiw3ICsxMDcsNiBAQCBpbmxpbmUgdm9pZCogd3Jh
cHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE9iaiopCiB9CiAKIFdFQkNP
UkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqLCBUZXN0T2JqKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0T2JqKiB0b1Rlc3RPYmooSlND
OjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNjMwOGQ5ZTNiYjMwMGU3YmFkY2M3
ZGUyMGFlMWM5NTkzODUwYWFmMC4uMjM0NjUyZGM3YTg0NjUxYWRmZDZkY2M2MjdmYjJkZWRkNDc5
NTVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApA
QCAtMTE4LDcgKzExOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKCiAgICAgSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1F
cnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgQmxv
YiogYmxvYih0b0Jsb2IoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBCbG9iKiBibG9iKEpTQmxv
Yjo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICBSZWZQdHI8VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+IG9iamVjdCA9IFRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjcmVhdGUoYmxvYik7CkBAIC0yODMsNyArMjgzLDcg
QEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBUZXN0T3ZlcmxvYWQKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1U
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogdG9UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhK
U0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yczo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBp
ZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9ycyo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAppbmRleCA5Yzc2YmFlNDQ5OGNjMmJk
NTMzODA3YjUzYjgyMWU1YjhkYzI0N2M2Li40ODI1NjQyM2UwNDM4ZjNjZTk0MjZmNjMyMTdmMWU2
MWUzZWFlOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgK
QEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNy
ZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKKyAgICBzdGF0aWMgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHRvSW1wbChKU0M6
OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycygpOwogCkBAIC05MSw3ICs5Miw2IEBAIGlubGlu
ZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycyopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHRv
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDg2N2QwYzA4NWMyNWU2ODdlYjljNTc1ZDY2YWE0MWZj
N2M5ZGFmYTMuLjY1MzcwYjU2ZGQ2MTYxMWZkYTNiMGMyZGM2ZjgyYzFjNzZmNGI4ODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
Y3BwCkBAIC0zNjIsNyArMzYyLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0U2VyaWFsaXoKICAgICByZXR1
cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+
KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqIHRvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShKU0M6OkpTVmFsdWUg
dmFsdWUpCitUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBs
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmgKaW5kZXggYTQ4YmM4ZTA2OTkzZjQzNjU2NzYwMWUzZjYwZjQzNjVjOGFiZWRjOS4uZWEw
MGRlMjFhMjQ4ZGY3Yjg0ZDU5NDI1YzViYzIxNTg0NzdlZDNmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtNDAsNiArNDAs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0
YXRpYyBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b0ltcGwoSlNDOjpKU1Zh
bHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSgpOwogCkBAIC05Nyw3ICs5OCw2IEBAIGlu
bGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50CiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKiB0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoSlND
OjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cAppbmRleCBlMmE5M2FhMWY0ZGU4NmRkOTc1MGVlYWEyMzU5ZDZkYjdhMWU4MmJmLi4wZjZkMWJl
NjM3ZDZkZDFkYjg3MzFlNjY0ODljODA2YzliMWYyNTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAK
QEAgLTU3NCw3ICs1NzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcgogICAgIFRlc3RUeXBl
ZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxTZXJpYWxpemVk
U2NyaXB0VmFsdWUsIEpTU2VyaWFsaXplZFNjcmlwdFZhbHVlPihleGVjLCBleGVjLT5hcmd1bWVu
dCgwKSwgJnRvU2VyaWFsaXplZFNjcmlwdFZhbHVlKSkpOworICAgIFZlY3RvcjxSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlLCBKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oZXhlYywgZXhlYy0+
YXJndW1lbnQoMCksICZKU1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dG9JbXBsKSkpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihp
bXBsLm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhzZXF1ZW5jZUFyZykpOwpAQCAtNjk3LDcgKzY5Nyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0CiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGV4ZWMpKTsKLSAgICBWZWN0b3I8UmVmUHRyPFRlc3RFdmVudFRhcmdldD4+IHNlcXVlbmNl
QXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFRlc3RFdmVudFRhcmdldCwgSlNUZXN0RXZlbnRUYXJn
ZXQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmdG9UZXN0RXZlbnRUYXJnZXQpKSk7CisgICAg
VmVjdG9yPFJlZlB0cjxUZXN0RXZlbnRUYXJnZXQ+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRp
dmVBcnJheTxUZXN0RXZlbnRUYXJnZXQsIEpTVGVzdEV2ZW50VGFyZ2V0PihleGVjLCBleGVjLT5h
cmd1bWVudCgwKSwgJkpTVGVzdEV2ZW50VGFyZ2V0Ojp0b0ltcGwpKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihpbXBsLmNh
bGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKHNlcXVlbmNlQXJnKSk7CkBAIC03Njks
NyArNzY5LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0VHlwZWRlZnMKICAgICByZXR1cm4gY3JlYXRlTmV3
V3JhcHBlcjxKU1Rlc3RUeXBlZGVmcz4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdFR5
cGVkZWZzKiB0b1Rlc3RUeXBlZGVmcyhKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0VHlwZWRlZnMq
IEpTVGVzdFR5cGVkZWZzOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChh
dXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCmluZGV4IDdlNWVj
OGRhYWNjMjE4ZjNlYWZlMmIyMjIwNzljZTJkZjA0ZjdjNGEuLjk1YWQyNzNkMThmZjM0YzczY2Jm
MThhOTk5YmMyNzk3NzYyYWU2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCkBAIC0zOCw2ICszOCw3IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlND
OjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Z2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGlj
IFRlc3RUeXBlZGVmcyogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3ko
SlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0VHlwZWRlZnMoKTsKQEAgLTkzLDcgKzk0LDYgQEAg
aW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RU
eXBlZGVmcyopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0VHlwZWRlZnMqKTsKLVdFQkNPUkVfRVhQ
T1JUIFRlc3RUeXBlZGVmcyogdG9UZXN0VHlwZWRlZnMoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAppbmRleCBiYTQ2ZDhjY2Q1MTc1NDhkOGRm
YTU5ZjdhNDBhM2FkMmI1OTg2YjQ1Li4wMTM0Zjk1ZmJmMjllMTgzNjY5NDhmYzliOWJjZmM4Y2Q5
MzRmZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKQEAgLTIyNCw3ICsyMjQsNyBAQCBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGF0
dHJpYnV0ZSogaQogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTYXR0cmlidXRlPihnbG9i
YWxPYmplY3QsIGltcGwpOwogfQogCi1hdHRyaWJ1dGUqIHRvYXR0cmlidXRlKEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKK2F0dHJpYnV0ZSogSlNhdHRyaWJ1dGU6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTYXR0cmlidXRl
Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKaW5k
ZXggMjk3YWQyNmI1MjUwMmJiODRmZjY1YTY2NzBmNmNhNmM0NGFjNjU0MS4uNWM4MWMwMDMyNjhk
NGMzZDY2OWY5NTVjYjVkYjdlMDQ0NmJiY2I4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgKQEAgLTM5LDYgKzM5LDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShK
U0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0
aWMgYXR0cmlidXRlKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0
cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTYXR0cmlidXRlKCk7CiAKQEAgLTkyLDcgKzkzLDYg
QEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIGF0
dHJpYnV0ZSopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBhdHRyaWJ1dGUqKTsKLVdFQkNPUkVfRVhQT1JU
IGF0dHJpYnV0ZSogdG9hdHRyaWJ1dGUoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggZWQ0YTQ0YjVmMDJkODQxZjZiZjRkZGFiOWQ4NTlk
OWExYWQ4NTIwMy4uY2NiZjVlZGIyZGZjYzdlY2E1MGEzYzgyZmMwODQxYTNjNTNiNWY3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9u
bHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3Jl
YWRvbmx5LmNwcApAQCAtMTgyLDcgKzE4Miw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgcmVhZG9ubHkqIGltCiAg
ICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNyZWFkb25seT4oZ2xvYmFsT2JqZWN0LCBpbXBs
KTsKIH0KIAotcmVhZG9ubHkqIHRvcmVhZG9ubHkoSlNDOjpKU1ZhbHVlIHZhbHVlKQorcmVhZG9u
bHkqIEpTcmVhZG9ubHk6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1
dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTcmVhZG9ubHkqPih2YWx1ZSkpCiAgICAgICAg
IHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKaW5kZXggYjZlZmE0YTY3ODcyOGIwNDll
OGQzZjQ4NTM1M2Q0NDc2ZGE1ZTBmOC4uNGVhNjY1MmViMGYxZmY2OWZkNDhhYTViNTY2N2E0YzYy
NmE0MDFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTcmVhZG9ubHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNyZWFkb25seS5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIHJlYWRvbmx5KiB0b0ltcGwoSlND
OjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAg
fkpTcmVhZG9ubHkoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNv
bnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgcmVhZG9ubHkqKQogfQogCiBXRUJDT1JFX0VY
UE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiwgcmVhZG9ubHkqKTsKLVdFQkNPUkVfRVhQT1JUIHJlYWRvbmx5KiB0b3JlYWRvbmx5KEpTQzo6
SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5k
ZXggMWUzN2VlY2NmZmE4NzAyOTkwZDdmNzQ3M2RlMGVhYTJlYjk2ODliNy4uZTkyMGMxZTEzMzQ1
OTAxNmQ2MmU4NzIwMzlhNDA3ZTlkNzlmNWUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC02ODks
NiArNjg5LDIxIEBAIHN0cnVjdCBFbGVtZW50VHlwZUNhc3RUcmFpdHM8RXhwZWN0ZWRUeXBlLCBF
eHBlY3RlZFR5cGU+IHsKICAgICBzdGF0aWMgYm9vbCBpcyhFeHBlY3RlZFR5cGUmKSB7IHJldHVy
biB0cnVlOyB9CiB9OwogCisvLyBEb3duY2FzdGluZyBmdW5jdGlvbnMgZm9yIEVsZW1lbnQgdHlw
ZXMuCit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJjZT4KK2lubGluZSB0
eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfY29uc3Q8U291cmNlPjo6dmFsdWUsIGNv
bnN0IFRhcmdldCYsIFRhcmdldCY+Ojp0eXBlIGRvd25jYXN0KFNvdXJjZSYgc291cmNlKQorewor
ICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxUYXJnZXQsIFNvdXJjZT46OnZhbHVl
LCAiVW5uZWNlc3NhcnkgY2FzdCIpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKGlzRWxlbWVudE9mVHlwZTxjb25zdCBUYXJnZXQ+KHNvdXJjZSkpOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDx0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfY29uc3Q8U291cmNl
Pjo6dmFsdWUsIGNvbnN0IFRhcmdldCYsIFRhcmdldCY+Ojp0eXBlPihzb3VyY2UpOworfQordGVt
cGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3VyY2U+IGlubGluZSB0eXBlbmFtZSBz
dGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfY29uc3Q8U291cmNlPjo6dmFsdWUsIGNvbnN0IFRhcmdl
dCosIFRhcmdldCo+Ojp0eXBlIGRvd25jYXN0KFNvdXJjZSogc291cmNlKQoreworICAgIHN0YXRp
Y19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxUYXJnZXQsIFNvdXJjZT46OnZhbHVlLCAiVW5uZWNl
c3NhcnkgY2FzdCIpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFzb3Vy
Y2UgfHwgaXNFbGVtZW50T2ZUeXBlPGNvbnN0IFRhcmdldD4oKnNvdXJjZSkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDx0eXBlbmFtZSBzdGQ6OmNvbmRpdGlvbmFsPHN0ZDo6aXNfY29uc3Q8U291
cmNlPjo6dmFsdWUsIGNvbnN0IFRhcmdldCosIFRhcmdldCo+Ojp0eXBlPihzb3VyY2UpOworfQor
CiBpbmxpbmUgYm9vbCBOb2RlOjpoYXNBdHRyaWJ1dGVzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudCh0aGlzKS0+aGFzQXR0cmlidXRlcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vbWFrZV9uYW1lcy5wbAppbmRleCAzODljMmI4YTNiOGUyZjc4NmFjMTNlOGU0MjE4Y2I5
NmMzZmI4Zjg4Li5jYTgzOWU5ODMwMjhhZTZmZjEzOTIzZDEyZDk4NzQ1YjhkMjMxOWIwIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vbWFrZV9uYW1lcy5wbApAQCAtNjMzLDYgKzYzMyw3IEBAIHN1YiBwcmludFR5cGVI
ZWxwZXJzCiAgICAgICAgIH0KIAogICAgICAgICBteSAkY2xhc3MgPSAkcGFyc2VkVGFnc3skbmFt
ZX17aW50ZXJmYWNlTmFtZX07CisgICAgICAgICMgRklYTUU6IFJlbmFtZSB0aGVzZSBoZWxwZXJz
IHRvIGlzPCpFbGVtZW50PigpLgogICAgICAgICBteSAkY2hlY2tIZWxwZXIgPSAiaXMkY2xhc3Mi
OwogCiAgICAgICAgIHByaW50IEYgPDxFTkQKQEAgLTY2Myw2ICs2NjQsMTAgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIEFyZ1R5cGU+CiBzdHJ1Y3QgRWxlbWVudFR5cGVDYXN0VHJhaXRzPGNvbnN0ICRj
bGFzcywgQXJnVHlwZT4gewogICAgIHN0YXRpYyBib29sIGlzKEFyZ1R5cGUmIG5vZGUpIHsgcmV0
dXJuICRjaGVja0hlbHBlcihub2RlKTsgfQogfTsKKworLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBt
YWNyb3Mgb25jZSB0aGUgY29kZSBoYXMgYmVlbiBwb3J0ZWQgdG8gdXNpbmcKKy8vIGRvd25jYXN0
PCpFbGVtZW50PigpLgorI2RlZmluZSB0byRjbGFzcyh4KSBXZWJDb3JlOjpkb3duY2FzdDxXZWJD
b3JlOjokY2xhc3M+KHgpCiBFTkQKICAgICAgICAgOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmgKaW5kZXggNDY2OTE2MzI1Y2VkNzZjNmJjOTdmNzgwYzdjNTg2MTUxZmRh
OTM2YS4uMjMyYjAyNTYwNDNlYTU2Yjg1Y2QxNjgxZjZkNTgwYjkxNWIwZjhjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaApAQCAtMTU1LDggKzE1NSw2IEBAIGJvb2wg
aXNFbnRlcktleUtleWRvd25FdmVudChFdmVudCopOwogYm9vbCBpc0xpbmtDbGljayhFdmVudCop
OwogYm9vbCBzaG91bGRQcm9oaWJpdExpbmtzKEVsZW1lbnQqKTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxBbmNob3JFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBIVE1MQW5jaG9yRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaApp
bmRleCBhYzA3ZTk4NmNjYzQ4YTVhZjRhMjAzMzExNjRmMTFlZGRmOThhMWU1Li44ZGI3NTg5NmNl
MzYwMzFhNDMyMTA1Mzg1ZjMzYjgzODNkY2ZjZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFy
ZWFFbGVtZW50LmgKQEAgLTcxLDggKzcxLDYgQEAgcHJpdmF0ZToKICAgICBTaGFwZSBtX3NoYXBl
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxBcmVhRWxlbWVudCkKLQogfSAvL25hbWVzcGFj
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmgKaW5kZXggMzBk
MmE4ZjM5ZWNhZGI4OGY3MDE4MjYxODQzM2JhMGVkZTBmODUyMy4uN2U4NjU4Yzg3MjMwMjg1NTRh
ZjUzZmU2NjMyZGMxMzA1ZmE3OWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXVkaW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVt
ZW50LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0ZToKICAgICBIVE1MQXVkaW9FbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wpOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxBdWRpb0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAppbmRleCA0MDU0ZTE3NTg2YzI4ODJhMjJkODVlZjdk
YzQyMGY1MTljZTAwNDc4Li5iNzk5ZjFmYTE4NDk5OTcyZmIwMmNiNjU2NjRhNTcxMmFkNjg2MmIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92
ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxCYXNlRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAppbmRl
eCAwMTdlZmMyMmNiNzZmNmM1ZTc5MjY0ZGQyZTliNWQyMDNmOTE1YjgyLi4wZDRkNjBhNTY1YTZi
MmExOTk2Yzg2ODM2NjI4MWY4YzQ3NGEyZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCb2R5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlF
bGVtZW50LmgKQEAgLTgxLDggKzgxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRk
U3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlk
ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQm9keUVsZW1lbnQpCi0KIH0gLy9uYW1lc3Bh
Y2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKaW5kZXgg
ODgzN2QwODI3MzI1ZDQzY2I0ZDYyOWFhOGRmNmJlZDdmMmQxNTk0NS4uOGFiZGU3N2ZkOTllZDY2
YzM2YTlhMzlhNDFhNzA2ZDc4NDI0ZTIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaApAQCAtMTgwLDggKzE4MCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQ
dHI8SW1hZ2U+IG1fY29waWVkSW1hZ2U7IC8vIEZJWE1FOiBUaGlzIGlzIHRlbXBvcmFyeSBmb3Ig
cGxhdGZvcm1zIHRoYXQgaGF2ZSB0byBjb3B5IHRoZSBpbWFnZSBidWZmZXIgdG8gcmVuZGVyIChh
bmQgZm9yIENTU0NhbnZhc1ZhbHVlKS4KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQ2FudmFz
RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGF0YUxpc3RFbGVtZW50LmgKaW5kZXggNjdmYjFkYjhkNzc2ODIxYWM2MTdjMTBkYjBjM2Zj
OTkwZDRjNTY2Ny4uY2YxZDNmZjYyMWMzZmEyMDhlZGU2OGIzYWJlOWE1OGJjODA1MjkwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYg
QEAgcHJpdmF0ZToKICAgICBIVE1MRGF0YUxpc3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEYXRhTGlzdEVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKICNlbmRpZiAvLyBFTkFCTEUoREFUQUxJU1RfRUxF
TUVOVCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggYzQx
ZjZmNDcxYTA0NjMwYTc5YzlmNmY0MzkyNGU2MmU2NDk4ZTdjNS4uMDczY2Q1OTRkMzA3MDgxMmI5
YjRhZTY0ZTgyMGUzNWI5NmJjNzZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzT3BlbjsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRGV0YWlsc0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxEZXRhaWxzRWxlbWVudF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEaXZFbGVtZW50LmgKaW5kZXggMWI1ZDIwYWQ4ODIzZmYxZmNhYzMxZWRlYjY4OGU0
YmU4Yjg4MjQ0YS4uZmY4MWI5YjgyY2FiZjc2ZjFkZTIwNDdkNGY1ODExYzVkYWM1YmYwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaApAQCAtNDAsOCArNDAsNiBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVBy
b3BlcnRpZXMmKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRGl2RWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTERpdkVsZW1lbnRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAppbmRleCBkOWZkNDUyM2U0MjIz
NWI5NzFkZDE0ZDRmODMxZTJiOWY0NmFlZGMwLi5jZGQzYmVjZmJiYTdlYjBkZDcyYjMwYjU5Nzg5
YmVlZDRiYmVkNTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaApAQCAt
NTIsOCArNTIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcGFyYW1ldGVyc0ZvclBsdWdpbihWZWN0
b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRW1iZWRFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAppbmRleCA3YzEzZWEwZDUzYTNi
OTRmY2RkMzVkMmM2NzgxMzc2MmI1ZDJkY2E3Li4zYTAyMjMwZDExODIzODdmNzRlYjMxOGMzZTlh
ZTlkYzA3YmJiODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
aApAQCAtNjQsOCArNjQsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgdWludDY0X3QgbV9kb2N1
bWVudFZlcnNpb247CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEZpZWxkU2V0RWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuaAppbmRleCBjNDY5ZGNlZjhhYTU4NjcyODQxYzAyODQxMGI5ZTBlNjZiNzZmMjgwLi5mYzNk
YjlkOTQ4ZDJhZDRiMDQ3MWY2ZGJhMzViZjQ0NmM0NzAxOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmgKQEAgLTIwMSw4ICsyMDEsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEZvcm1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MRm9ybUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnQuaAppbmRleCA1NTc5Yzk4NDg4NDM4NTUwMjUyZWJjMmM4N2VkZjRkODcx
MWY3ZWVjLi42ZTRmYjBmYzk2YmVmNjdiNzc5YjZhN2JiOWJjMWQxZjQ4NmVlYTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9mcmFtZUJvcmRlclNldDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
RnJhbWVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1M
RnJhbWVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgK
aW5kZXggODBlN2YyYWZlMmZiMzA1MmZiOWM2Njg1NDgyYmQ3MDc2ZTM4YzhlNC4uMjcyOTM4Y2Vk
Mjc4MDgyYzgwMGJhMWQwMjg0NzI3ZjU3M2ZjODkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVTZXRFbGVtZW50LmgKQEAgLTEwMCw4ICsxMDAsNiBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9ub3Jlc2l6ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRnJhbWVTZXRFbGVtZW50
KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MRnJhbWVTZXRFbGVt
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oCmluZGV4IGI5NjZjODcwYjgx
Mjc5MTZmOGIzMmFkNTA0YzlmY2JlOTM4ZjFiMDAuLjBmODNiOWE0ZWMwMzc5MTRjZjk2M2IwYmYx
NjBjNTkyYzEyNzExZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaApAQCAt
NDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShj
b25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MSHRtbEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCmluZGV4IDlhZTE5MzI2MGFmNDViYzAyYTBiNTVhYzBl
YmFmNWYxNjc4ZTJmNjQuLmYwZWJjZWMwNTEzM2NmOGJiMDU3ZWE1YWZkMDJhZTgyMDhiZGU5Nzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKQEAgLTQ3LDggKzQ3LDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxJRnJhbWVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBIVE1MSUZyYW1lRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElt
YWdlRWxlbWVudC5oCmluZGV4IGZkNDQwMTg5OGQzNzNkZjZiMTBlZmVmYzQ0YjMzOTk3ZWVhZWQ1
N2YuLjk5ZmUyNWI2MTYzYjc2MzA5ZjA2OGYyZGE2MzFjNWQ5NDk4ZTJkNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgcHJpdmF0ZToK
ICNlbmRpZgogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxJbWFnZUVsZW1lbnQpCi0KIH0gLy9u
YW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmlu
ZGV4IGUzODg1YmNjMzIxYTE5N2Q5ZjUzMGUyNTJkYTUyMTg4OTI3OTAwNWQuLmQ3YTY1Y2Q2ZDMx
NjAyNWJmOGNlZDk3ZDkzZGE1MDkzYjc5OTFlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5oCkBAIC00NDgsNyArNDQ4LDUgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxJbnB1dEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAppbmRleCBhZWE1MjM3YTg1MTNm
YWJjMjI5MmJjZGY0YTVmMDgwMzFiMDhhNDQzLi5jYThlZTYwYjA1OGRlYzI2YzI4ZjNiZmJlNWFh
YWQ3NWY3MzU0YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaApAQCAt
NTUsOCArNTUsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3Rv
cmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24pIG92ZXJyaWRlOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxMYWJlbEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKaW5kZXggMjQ1NjhiZGE0MDNj
MmQzYjU4ZjUxMDcyMDA2N2JhMmY5YjVlNWQ1ZC4uOTEwNGFiZDY4ODY1MWYzZTUxYjYzMDIyODFj
MDMxNjE3OTlkOTZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5k
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApA
QCAtNDUsOCArNDUsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2
aXJ0dWFsRm9ybSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxM
ZWdlbmRFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmgKaW5kZXggNDk3MDFmODZmZTRlN2U0M2IxMWMyNGJkNzc1OTVhNzBj
NGY2ZmM4My4uNWNhY2I3N2QyYWVhNTE1YzBkNTliYTU0NmE0NzZiNGE4YjY0NzMwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCkBAIC0xMzcsOCArMTM3LDYgQEAgcHJpdmF0
ZToKICAgICBQZW5kaW5nU2hlZXRUeXBlIG1fcGVuZGluZ1NoZWV0VHlwZTsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MTGlua0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKaW5kZXggOWFlNDQ2NzI4NTJiMTE0MDMwNTg3
N2FmOTI2MmQ0YmMzMTZlM2RiMi4uNjE3YWExMzY0ZmMyMmNmNDQwNzg4MTkwNWJiYjRkYjA2OTIx
YTFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBA
QCBwcml2YXRlOgogICAgIEF0b21pY1N0cmluZyBtX25hbWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTE1hcEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlcwogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCmluZGV4IGQxMDk4MmIxZGFjZWIzNmExMjc0
ZmZlZWE0YmUxOGVhMWRmOTNhMDkuLjk2MzllOTYzNjI0MjI0Yjg4MzhkOWIyMzA3NTk3NjU3NDI4
MzA1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaApAQCAtNjQs
OCArNjQsNiBAQCBwcml2YXRlOgogICAgIFJlbmRlck1hcnF1ZWUqIHJlbmRlck1hcnF1ZWUoKSBj
b25zdDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTWFycXVlZUVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxNYXJxdWVlRWxlbWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAppbmRleCAyNWQxYTc3MWFhZGE1OTkzNzY5YTc1
OWU2YTFiNmEwNjc3NWFhM2E4Li44YmU2ZGRhNzA4MjMyNDZkNzNhOGJlNDlhZjAzYjllYjEwZjkz
YWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3MoKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MTWV0YUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IDlkODIxNzJmYmMyNGY3ZTE3Yzgw
ODQyMzg3NThkNDZjYWE3OWZkMjYuLmEyOGNiNDQ5NmU2YjBlMGE2ZmViOTQ5YTY0NTExNjIyZWUz
MDBlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCkBAIC04MSw4ICs4
MSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE1ldGVyVmFsdWVFbGVtZW50PiBtX3ZhbHVlOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNZXRlckVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAppbmRleCA5ODlk
Nzk1OTI1ZjA4ZWQyMGU1YzM2MWU4OGM2YjVlMzNmZDRlNWE5Li4xZjBhYWYxNGQxMmNkZDkxNmU2
MjZhOWMxOWFlYmRhNzIzYmVhNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPTGlzdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1l
bnQuaApAQCAtNjUsOCArNjUsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRSZWNhbGN1
bGF0ZUl0ZW1Db3VudCA6IDE7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9MaXN0RWxlbWVu
dCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaAppbmRleCAyYzQ5MTkzMzYzN2UxNTc1ZmRiZmRiNjAyMDllZDVmOGM4OGY1ZDc5
Li5mOGU3YTZlMDI1ZDFlN2YxZGZhZmJlNWI1YzUxNjE5NmYwMDgxN2I2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC0xMDMsOCArMTAzLDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fdXNlRmFsbGJhY2tDb250ZW50IDogMTsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhIVE1MT2JqZWN0RWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmgKaW5kZXggNjg5Y2U0YjgyZmYyZDRiNzM2NWJjYjAzMzk2YTc0
NzkzYTNmM2RiNC4uNTdhMzc0Mjk3NWMzZGIxMzY3ZmY4Mjg4MmEzMDc2NDAzNjJmOTA0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKQEAgLTU0LDggKzU0LDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHJlY2FsY1NlbGVjdE9wdGlvbnMoKTsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MT3B0R3JvdXBFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCmluZGV4IDY0N2QwMWUzMDQy
YjA4ZDg0OGVmZDE5MTRiZjc5MDUzYmFhY2JjZWYuLjY1NGVmMTE4MzgwOGM0OTM2OTQwZThiNjFl
ZTNlMzk0OWI0OGFkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgK
QEAgLTg3LDggKzg3LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNTZWxlY3RlZDsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MT3B0aW9uRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oCmluZGV4IDRlODFkMmRh
NzljODE4ZTc2YjIyNzRlYjVkZmRjZmRmZTc1YmNiMmIuLmVkOWI0ZWIwYmI4MTliMjQwZmY5OTNm
NmFlMWJlY2RlMjdiYTFjZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBh
cmFtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5o
CkBAIC00Myw4ICs0Myw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291
cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qgb3ZlcnJpZGU7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTFBhcmFtRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgK
aW5kZXggZWVkYjg4MDdiMTY0MDI3MzNjZjljZDc1YjZjNTBiM2I1MGMzODg0Mi4uYzdmZDk1NTFh
NThhNDM5OWZlN2MxZGRlZGRmMzgzY2VlY2FkODZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmgKQEAgLTY3LDggKzY3LDYgQEAgcHJpdmF0ZToKICAgICBQcm9n
cmVzc1ZhbHVlRWxlbWVudCogbV92YWx1ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUHJv
Z3Jlc3NFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBiODUwMWI0NzM3NmE2ZDNlY2UzNjQ4Y2YzNWI4
ODE3ZjVjODA2NjAzLi42OGQ5NmEzYTY5OTI3MzVhMWYzYjJjZGIzNTMyODI5YjYyMWViNWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC02Nyw4ICs2Nyw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdp
dGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MU2NyaXB0RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAppbmRleCBmYTljYmU0Nzk2ZjhjNTcxYzIz
ZTI2YmUzNzk1OGEwYjE3ODc3OWEwLi4yN2ZlZmQ2MGI0ZmNkYmFjMTM5MWVkNmU4OWM5YThhZmY1
MzY5NjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0yMTIs
OCArMjEyLDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIGJvb2wgbV9zaG91bGRSZWNhbGNMaXN0
SXRlbXM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFNlbGVjdEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U291cmNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5o
CmluZGV4IDU1NTg3NWNkNDAxOGRiYjJmYWE2NGU3ZDU2NWFiMTA4MWFlNGZlYzguLjUyMmQ3NDM2
ODJkZGE5NmZjOTc3ZDYxMTk5Y2M3MWY1NDM5YzlmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTb3VyY2VFbGVtZW50LmgKQEAgLTU3LDggKzU3LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxI
VE1MU291cmNlRWxlbWVudD4gbV9lcnJvckV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTFNvdXJjZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCmluZGV4IDk5NTdiYTUwNzAyODIxYWJhZWY2OGQw
NzIyZmU3ZDU2ZjE2NDQzODAuLjkxZjBiN2NkNThkNDY2ODhiZWNmNjRmNDcwMDUwMDA0M2UyM2I4
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCkBAIC03MCw4ICs3MCw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xvYWRlZFNoZWV0OwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxTdHlsZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAppbmRleCBmYmFiY2RlNTI1N2NjNjIzMzNl
MGIzMjFiNzEwMzViZmJiODBlODg1Li5iYzIyODQyMDk5MjdlNjQ5M2ZjZDJkZGIyMjRmYTBmYmI3
ZDkyOTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKQEAgLTQ2
LDggKzQ2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVy
cmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU3VtbWFyeUVsZW1lbnQpCi0KIH0KIAog
I2VuZGlmIC8vIEhUTUxTdW1tYXJ5RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUNhcHRpb25FbGVtZW50LmgKaW5kZXggZjA2NGUyOGE5ODA5OTQ0NjhhYjIzYzlmOWUx
N2I4ZjE1NTA1OWY0Ny4uOTA0YzMyN2MyMGNjMGE2MmZiYjNjZGRlMTQ0MjA4OTc5MDAxODgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaApAQCAt
NDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhIVE1MVGFibGVDYXB0aW9uRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCmluZGV4IGU1OTZhYjQyMGEw
NjA5MzQ3MzBlNWRmMWRmZjc2MzIxZmE2ZGJlODEuLjg3M2RmMjVjMTk2OTEwNmRhZmQzOTZlODhi
OGRhZTU0ZDM4NGUyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCkBA
IC0xMDEsOCArMTAxLDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVzPiBt
X3NoYXJlZENlbGxTdHlsZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVFbGVtZW50
KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZVJvd0VsZW1lbnQuaAppbmRleCAzMzhiODc5OTcwMjU3ZDBlOGFhOTVhOWMxZTNhNmUxMDNjM2Ux
M2YzLi5jNGIwZjc3MzljZmIyYzM0OWNkMzQ3ZWI4NWZhMGYxOWVjN2UxNzY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaApAQCAtNTIsOCArNTIsNiBAQCBwcml2
YXRlOgogICAgIEhUTUxUYWJsZVJvd0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRhYmxlUm93RWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZW1wbGF0ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxl
bWVudC5oCmluZGV4IGQ3ZmY5NTFiN2M4ZDIyODRhODIxYTZmMjdiMWE4MjQ3MjFmYmI1MzUuLmM4
MWY3YTY2YzQ4MDRhNWY3ZjViZDc3MzNhMWYwODZhMTg3NDZhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC01Niw4ICs1Niw2IEBAIHByaXZhdGU6CiAg
ICAgbXV0YWJsZSBSZWZQdHI8VGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudD4gbV9jb250
ZW50OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUZW1wbGF0ZUVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAppbmRleCBhODAxZjk5Yjlm
Y2U3ZDUxYjc2MzQ4MTEwNTQ0YTRhZDBhNTAyNmUyLi5iZWRkMGExZjcwODViNjY5YThmODNlMTg4
Njk0NDllNGQ2ZTAyN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaApAQCAtMTI2LDggKzEyNiw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBib29sIG1fd2Fz
TW9kaWZpZWRCeVVzZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRleHRBcmVhRWxlbWVu
dCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVF
bGVtZW50LmgKaW5kZXggZWJlMWQzY2M1MDhiNjhmYzg3ZjYzNDhhNzMxNmM4YzUyYmU4ZDNhMC4u
NWRlMWViNTRmZThlMDNkYTczMDc1NmJmNjk3NWQ4MjU2ZTZlZWIyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGl0bGVFbGVtZW50LmgKQEAgLTQ2LDggKzQ2LDYgQEAgcHJpdmF0ZToKICAgICBT
dHJpbmdXaXRoRGlyZWN0aW9uIG1fdGl0bGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRp
dGxlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmgKaW5kZXggODMxNzE3YjRiZDZiYjkyYjhkNDI5ZDFlOWNkMThiYmUy
MmI3Y2VkYy4uNTI2ZGMwM2NjMTg1YmY3ZTI4N2I1MGZkMGRhYTgxOTJjMTgxN2M0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTk0LDggKzk0LDYgQEAgcHJpdmF0
ZToKICAgICBUaW1lcjxIVE1MVHJhY2tFbGVtZW50PiBtX2xvYWRUaW1lcjsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MVHJhY2tFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCBjNGQ0ZjlkMDFjZDFjZjExYjc3N2MyYThiMGY4
NWRmNTliY2FiZjI0Li43NmYwMTY1NmU5OTllNTNjOWU2MGJiNzc1NGJlMWE1MGIxOTExZmJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtMTAyLDggKzEwMiw2IEBA
IHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fZGVmYXVsdFBvc3RlclVSTDsKIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhIVE1MVmlkZW9FbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5k
ZXggZmQ3ZTkyMzg4NDRkYjhhN2ZiZTQ4NzU4MTg0YWM2ZDUxZjAyN2M1Zi4uMzc4NjU1NWIyOGFj
MTljNGNmZTk2YTU5ZTUyNDhhMzZiMGE4MTY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0yMDEwLDcgKzIwMTAsNyBAQCBOb2RlKiBJ
bnNwZWN0b3JET01BZ2VudDo6c2NyaXB0VmFsdWVBc05vZGUoRGVwcmVjYXRlZDo6U2NyaXB0VmFs
dWUgdmFsdWUpCiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpIHx8IHZhbHVlLmlzTnVsbCgpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiB0b05vZGUodmFsdWUuanNWYWx1
ZSgpKTsKKyAgICByZXR1cm4gSlNOb2RlOjp0b0ltcGwodmFsdWUuanNWYWx1ZSgpKTsKIH0KIAog
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVBc1NjcmlwdFZh
bHVlKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAppbmRleCBkYzY5YzExYjE0ZWQ4YzZmZjQ0
MzZhODcwZGRlODQ0YzE1ZTAzOWJjLi5lZTk3MzM1MGI3MmVjM2ExYjg3MzFiMjUxYzk0ODVmN2Ri
NDM3OTE5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVu
dC5oCkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUmFkaWNhbFZhbHVl
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKE1hdGhNTE1lbmNsb3NlRWxlbWVudCkKLQogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKE1BVEhNTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbHRHbHlwaERlZkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERl
ZkVsZW1lbnQuaAppbmRleCBhY2IyZjM1MGE3MzdkMzZjZDg3YjU2ZDIzMGE4YWQzMWUyMWNkZjhh
Li5jNjNlMzQzNzM1MTA4NzU4YWZjOGVlOWUzMWNlZmI0MmRhMDBiMjQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0Fs
dEdseXBoRGVmRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRH
bHlwaEVsZW1lbnQuaAppbmRleCA1MDk1YWI1M2E1NTZmMWVlMTIyNzRlMWMzZDE4ZmUyNjY3YWRl
M2U1Li42YmU5Zjc1MmMxMDViODZhODRiMTc5MWEzNjY1ZWU3YjgyY2IyNzQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6
CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR0FsdEdseXBoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oCmluZGV4IDgy
NDljYjgwYjNkMDZjZjM1OTdmZDM4ZDM4MDM5MjVkMmJmYTA4YzUuLmM3YWZlNjk1Y2U1NzM0OTQy
MjVkOTk2NmY4YzRiZGE2NTVkMzFjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoSXRlbUVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdBbHRHbHlwaEl0ZW1FbGVtZW50
KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVNb3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQuaAppbmRleCAzNjY3ODE0YTMyMTkwZDIyMjc4Zjg3NzRiMTM3M2RkNmEzNjMwN2M5Li40
MTdkNWYyNzVlNjc2ODc2YTYyNGRhN2NlOTIzNzRlYzk3N2IzZTIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaApAQCAtNzAsOCArNzAsNiBAQCBwcml2
YXRlOgogICAgIFBhdGggbV9wYXRoOwogICAgIFBhdGggbV9hbmltYXRpb25QYXRoOwogfTsKLQot
Tk9ERV9UWVBFX0NBU1RTKFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50KQogICAgIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudC5oCmluZGV4IGJkY2ZmNzBkZTUxOGQwMDNiM2M1OGM2Y2ZlOWNlOTFkM2U2OWVh
OWEuLmIxYTQ0ZWFlYjA1NzIwZTdmNjQ4YzdiY2M4MjdmNGE1ZjBlM2EzOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCkBAIC00Nyw4ICs0
Nyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHVHJhbnNmb3JtOjpTVkdUcmFuc2Zvcm1UeXBlIG1fdHlw
ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKaW5kZXggMDc5ZmE5OWZj
Zjk4M2ZjZDQ1ZjkzYTc2MzFkOWE4ZDdjZTU2Njc4YS4uZWMxODJkYjNjMmQyYmM3MWI0NDk0ODQ5
MmIxZDQ3YzZjZTY1YWU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCkBA
IC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVS
VElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0NpcmNsZUVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR0NpcmNsZUVsZW1lbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCmluZGV4IDhmZGViMDJiNjk0ZTU2YzNiYzM2MDYy
MGMxMDQ5ZDAwMDFjMTU1OTcuLjkzOGNmYjQ1ZDkyZTQyMDJhNDY1MjU0ZjM5ZDU2ZWU0NDliYWZh
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKQEAgLTU2LDggKzU2
LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ2xpcFBhdGhFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKaW5kZXggYTUzMDFlNDYyMmZhNTZmOTJhMDdi
YzQyMmE4NTU5YzNiNTA0ODA3ZS4uZWEyMjNlOGE0YmRhZmFhMmEyOWI4ZjBlYzk0OTdjMDM4NGZh
NWE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCkBAIC03Miw4ICs3Miw2
IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxTVkdFbGVtZW50Kj4gbV9jbGllbnRzOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKFNWR0N1cnNvckVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCmluZGV4IGQ2
YjIwZjYyYjJjNTc1ZmZjZmYyMzQwMzA5N2YzNDZlMWQ2MzMzNTEuLjViOWY5MmMzMDFkY2Q5Y2Ix
ZDcyZTI5MTQxZDUwMzQzYjhjNDRiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxl
bWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0VsbGlwc2VFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oCmluZGV4IDc5OWY2ZDVmOWE3NDc0YmM4MmU1NzZh
Y2EzM2Q0YjdmMDQ2ZTE5YjUuLjYwZWE0NDM2ZWFjM2M2MDU5OGFhY2M0NDUxZDVlMTE4ODIwMWJl
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmgK
QEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRT
b3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaAppbmRleCAzMWViYjRm
NzhjYzRiMzJlMTJhNzc5YjgyNzUyOTQwYzE1MzA0YjljLi5hNGU2YWQ1YWY0M2MxNDAyYmQwYWZk
NmI2OTIwZjk0NjJjODIwZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVG
dW5jQUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQu
aApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR0ZFRnVuY0FFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZF
RnVuY0FFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAppbmRleCAzNWJjNDQ4NTgyNThjZTJkYTdjNjAx
NTUzODIyZjkwYmI1M2NiNjM4Li5hZjQ5ZDZmN2RkZjUxNTllZjg2NzFmOWNhM2MyZjViODQyZTBi
ZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaApAQCAtMzMsOCArMzMs
NiBAQCBwcml2YXRlOgogICAgIFNWR0ZFRnVuY0JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFRnVuY0JFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVG
dW5jR0VsZW1lbnQuaAppbmRleCAzOTg1N2VkYTEwNTRkNTkyNTJjNzczZGJhZjAxYzg5ODhmMmQ0
ZWFmLi4xYWZhNDMyNDE5MDg5MWU5MmY0Zjc4ZDM5MDUxZWU3ZGYxMjkzODI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgog
ICAgIFNWR0ZFRnVuY0dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFRnVuY0dFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RnVuY1JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaApp
bmRleCA5ZTczMjdjNzMzMzQxMGQzNzdmOWUyZDFmMWZhMzMyNDQ3MzhlNmJiLi5iMGQwZWI1MWEw
ZjY2NDA2ZGZjMmJjY2QyZmQ2ZTI1YTBiYWYwZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVG
dW5jUkVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR0ZFRnVuY1JF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR0ZFRnVuY1JFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCmluZGV4IDUx
NTk3ZWI1NzlmNzJjZjZjM2VhYTI5YjQ3ODMyMWYyMTA2ZDAxMGYuLjcyMzNmMjM0ZWRlZDY2NThh
MGYzZTYzMmY2NjMyM2FiZGVmZmVkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlTm9kZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFS
RV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmgKaW5kZXggYjcwMWJlNTkzYjk3Y2Q2
MWFlOTc3NTdjOTY0OTMzYThlYmNmZWFjZi4uMzQ1NzkyNGZiZDY1MGE4NTIxMjhmYmExNmZkNzk3
NDc1OTYxMjZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdo
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVu
dC5oCkBAIC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPExp
Z2h0U291cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKaW5k
ZXggODAzOWFmMmYxNTBlMGNlN2YwZGU3MGQ4OWNkZWI4MGI3NzkwZjkzZS4uZmY2YjQ4YzVlYzFi
NDVlNzY1YmM5MzBlODZhZDQ0MmYxZGE2MTZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwb3RMaWdodEVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRVNwb3RMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
aAppbmRleCA4ZWE3M2ZiNjYxNjJjYWQ3OTM5OTI2MWNkZTdmN2ViODM5ZjI0MzJmLi4xOTM5ZTMx
N2Y3ZjAwNGQwNmQ4ZDQ3ZTQyMjZiOWYwYTBkM2MzZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJFbGVtZW50LmgKQEAgLTc1LDggKzc1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFS
RV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRmlsdGVyRWxl
bWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKaW5kZXgg
OGU0Mjc0ZGQwY2IzYzNkNTgwNTFiN2U3Y2JlYjA5Yjc3Y2ZhOTI2OS4uZWI1YzQ2ZTA0Y2U1MjRm
ZjgwMGQ4NTZkYjgzYjA5ZDI2ODg1OTE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50
LmgKQEAgLTEwMiw4ICsxMDIsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0dseXBoQ2FjaGVW
YWxpZDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAppbmRleCA2YTIxMTZhOTViZjgwNDU0ZDhjNzI3Mzli
N2U2OGUzZjhhYjgyYTIzLi5kY2QwMWYyNGEyMzAyYWQ3NzU3OWY2MjdmMjBhNGIxZmQxNzBlZjNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCkBAIC02Niw4ICs2Niw2
IEBAIHByaXZhdGU6CiAgICAgU1ZHRm9udEVsZW1lbnQqIG1fZm9udEVsZW1lbnQ7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZU5hbWVFbGVtZW50LmgKaW5kZXggM2YyNTQ0NWZhYWI2NDgxNTdkODBlODIzNzUx
YjE1MjM3ODEwOWMyMi4uYzY4NWY4YWM0MzFmOTI5NDBlY2E0MzkwMGYwMjViNDNlMmRiYzRkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCkBAIC0zOSw4
ICszOSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VTcmNFbGVtZW50LmgKaW5kZXggM2IwOTE0YzEyZjNkOWE5OTJjZjUxNGMxYjQ2MTMw
MDcyZTUyNTFlYy4uYmE1YTY0NDZiYmUxYWQxY2YzNzk2NTYwZTNhN2U4ZjY5OTMzMjdkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaApAQCAtNDAsOCArNDAs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdGb250RmFjZVNyY0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VVcmlFbGVtZW50LmgKaW5kZXggMTg5YTc4OTVhYzNkMzUxY2UzZDNiNmNiNDJkYmE3OTUzNDY2
NTNjNC4uMzUwZjFmZDFhM2FjMmRiZDk2YWYwMTdiNjgwM2I5YWJiOTdiNDU0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaApAQCAtNTAsOCArNTAsNiBAQCBw
cml2YXRlOgogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IG1fY2FjaGVkRm9u
dDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZVVyaUVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCmluZGV4IDc1YmI3NGI3ZTI3
MTBiM2IwOTc5MWI5MWQxYjAyMWI1MTA2MjJmMGMuLmFiNGQxYWZjNmJhOWZkYjA2ODNhNDg5Nzg2
YmE1MTc3ZDE4MGUyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWdu
T2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5oCkBAIC01OCw4ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5J
TUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvcmVpZ25PYmplY3RF
bGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dseXBoRWxlbWVudC5oCmluZGV4IDdiN2QzOGExMGZhNTQwYTViMzU1ZTNhYTNhOGIyMGQy
NDdmNDY4YzMuLjQwMDlmYjY2MjMyNjUzZWY4MTFjNzM5ZGZhZTdiNmNiN2ExNTBiYWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKQEAgLTU3LDggKzU3LDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGludmFsaWRhdGVHbHlwaENhY2hlKCk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHR2x5cGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBo
UmVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCmlu
ZGV4IDZkOGNhYzdlYjc3ZmMyZjlmMDIzNzk1NzNiNmQ2MTg3ZjQ2MzQ1MzMuLjQ2NGZlZWNlMzFj
Mjg3NTVlMWUyYTM4YjkzMTY2ODQzZGE3YzMyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5
cGhSZWZFbGVtZW50LmgKQEAgLTYxLDggKzYxLDYgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2R5
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0dseXBoUmVmRWxlbWVudCkKLQogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaAppbmRleCBlNWQ4Yjc4ZmQzODNjODQz
M2VhNmVkNDQ3ZDg4MjU1YjgzMDA3ODdhLi4xYzE5ZTA1OWI3ZGE1ZGY2MWMxYzY5NjQ0NDkwNGJj
NmIxOGNhYmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCkBAIC00Miw4ICs0
Miw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR0hLZXJuRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaApp
bmRleCAxYTM2MWM1YzgzZTIyNzczNTY4NzUwNmQ4MjZkMzdlNzkwMjliZGI3Li4xNzY3NjFkYTll
YmFkMGNlNGUxNjY3OTQwNzhjNTc4MWVmZDk2YjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdl
RWxlbWVudC5oCkBAIC03Miw4ICs3Miw2IEBAIHByaXZhdGU6CiAgICAgU1ZHSW1hZ2VMb2FkZXIg
bV9pbWFnZUxvYWRlcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdJbWFnZUVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxl
bWVudC5oCmluZGV4IDY0ZTc4NjM2NjJlMGI1MTQwNWQ4NGE4OTA2OTI1Mzg1YjRmZjE1OTkuLjUz
ZmVhZDY1NjA0NTE0ZmZiMWM1Y2ZhMGZlOTYwNmQyNWE1M2U4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMaW5lRWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xB
UkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0xpbmVFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCmluZGV4IDY4YWM2Yjg0M2Q3MDBmNzYw
MmVlZjY0NDUyOWJmMGEyZGZkZDhjNGMuLjQ2ZDkyZGUzMWI3MDRhNmVlNDEzYjYzYmEwYWRkMmZh
YThhNTIzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01QYXRoRWxlbWVudC5oCmluZGV4IDk3MzI2NDhhMGM1ZDA1MTJkMmNmN2U3NTM0ZDdmMWExYzgy
YjBlYTkuLjFiZTY0YTY3MDZlOGVhZGEwOWQyMDFlODYyNDQ0YjFlYzY0NzUxMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKQEAgLTY4LDggKzY4LDYgQEAgcHJpdmF0ZToKICAg
ICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHTVBhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBT
VkdNUGF0aEVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtl
ckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKaW5kZXgg
MWI5MzBlNjNjOTBhMWNhZDVkMjZlZmMxYzU0OTJmY2NhZGZmYmJiMC4uYjUyMmNiN2JhNjJlNTVm
YTIyODdmNGU3NGUwMzgwYzA4NGMzNDBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxl
bWVudC5oCkBAIC0xNjQsOCArMTY0LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFNWR1N5bmNo
cm9uaXphYmxlQW5pbWF0ZWRQcm9wZXJ0eTxTVkdNYXJrZXJPcmllbnRUeXBlPiBtX29yaWVudFR5
cGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTWFya2VyRWxlbWVudCkKLQogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKaW5kZXggZjUwYTk0NjlkYmU5NDRmMTE3
MDEzYWVlNTJiYTk5MTJlMTQ4Y2M0NS4uMjJlZGRiY2QzZjZmNTdkNmNkNGJkYjAzMzU1MzMzMjll
MjAzMWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKQEAgLTY4LDggKzY4LDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSgp
IG92ZXJyaWRlIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UodGhpcyk7IH0K
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNYXNrRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCmluZGV4IGY1NjM3ZWU5
MjU1NzQ2YTFkN2FhNTA0NjZmNDFmOTFmZDdiNWUzZGQuLjk0YTQyNjdlMGQ3MTllMjk2MjY3MjJh
ZDliNjBlNWNjMzM2NGM0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlw
aEVsZW1lbnQuaApAQCAtMzYsOCArMzYsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNaXNzaW5nR2x5cGhFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAppbmRleCAwMjFiNmYxMDg2NjE4MWI0YTk5YjQ2OWMy
M2U0NDIwMGZmOGUwNjNkLi5iNjRiNGM1ZWY2MTU0YWY5YTQ3MWVkY2I2NjA2Yjk5YWI0YWEwZDJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaApAQCAtMTI5LDggKzEyOSw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lzQW5pbVZhbE9ic2VydmVkOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKFNWR1BhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAppbmRleCAyMmM3YzIwMjJlYjM0N2Mx
MjExMWQzOTAxZGQ4M2M1ZGI4NzI5ZjAyLi40OTJjZDY4MTdhODA1NWNlOTU5MTY4YjUwZDZjNTE0
NDg3OTE1ODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaApAQCAtODYs
OCArODYsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxh
bmd1YWdlKCkgb3ZlcnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0
aGlzKTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1BhdHRlcm5FbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvbHlnb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVs
ZW1lbnQuaAppbmRleCBhNjJkZTIwMGYzZGJkZTM1ZmU1ZjVkMTlmYjAwMjFlOThkYjc1ZTlkLi5k
OTBkZGFiZmFkNmIxMWNiOGU3Y2JmOTJlMWQ1NGMzZWY5NDE5YWRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9seWdvbkVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNW
R1BvbHlnb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKFNWR1BvbHlnb25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5l
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCmluZGV4
IDRiNWU4NDFmNzcxOGU2Y2M4MGJjY2M0NTliNjA5ZWEyYmYzMjVkYmEuLmEwOTFlYzY0ZTk1ZDJi
NWJmODYxZDVmODYxMzAwYmRlZDdjOTY4NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxp
bmVFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdQb2x5bGluZUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHUG9seWxpbmVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmlu
ZGV4IGU1NmZiMmZkMTc4MzA5YWJlY2I5ZTk5NjkwZDI3MDdlZjgyNDllMGYuLjEyYmY0ZWQxYmNj
ZTIyOTk2YzJlYTMyYzc3ZjNjMjQ0ZWFiYWNjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKQEAgLTU2LDggKzU2LDYgQEAgcHJpdmF0ZToKICAg
ICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAppbmRleCA3MmViODc1ODAxYzA1NDQ4
N2FkNzkzYjk0NTVmYmIyOGQxYTM3YzlmLi4zY2VlOGQ5MzBmYmQyNzZmZmY2Nzk2YTVjMDYxZjNj
NWM3ZTA2Njc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaApAQCAtNTgsOCArNTgs
NiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdSZWN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCmluZGV4IGVmYjQyZWRkYzgz
Mzc4NGEzMjg4ZmUyYTRkMzgwYTQzZWY0ZDc4ODMuLjI3ODIyNzJlZTA0NWEzNTEyMjkxNTAwYzVl
MzkwZjE0NzcxZmZiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApAQCAtMTc1LDgg
KzE3NSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNWR1ZpZXdTcGVjPiBtX3ZpZXdTcGVjOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1NWR0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA1
NzJmNzlkZWZmMTQ1MzE0Yzg2YTM1ZmM4OTBiZmEwOGExNGExZmI1Li45YWNkYmRiMWIwYWRmMzc1
NDE0NzY1MWJkN2I0MzEwMmNiNTUxNzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmgKQEAgLTg2LDggKzg2LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxTVkdFbGVtZW50PiBt
X3N2Z0xvYWRFdmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1NjcmlwdEVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dG9wRWxlbWVudC5oCmluZGV4IGQ4NzliNGU5MmU5MjFhZWQ3N2E3MDA3NTBhN2Y2ZWFmNzYyOWIw
ZjYuLjdkYTM3YzZiODFhMTU5YjU1ZGFmZmI1MTM3NGY3MDkyNjRkZTEwNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdG9wRWxlbWVudC5oCkBAIC00OSw4ICs0OSw2IEBAIHByaXZhdGU6CiAgICAgRU5E
X0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1N0
b3BFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlRWxlbWVudC5oCmluZGV4IDZhOTFlMzg4Yzk1ZDk3ZmU4MTYxNzYyZjQ0ODU0
ZTRiZWMwZGYzNGEuLjFlNzMxNzUyNWZjN2RiNzU1ODhkNTNiOGMzNDcyOWRjM2E1MjFkZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKQEAgLTY4LDggKzY4LDYgQEAgcHJpdmF0
ZToKICAgICBUaW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xvYWRFdmVudFRpbWVyOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKFNWR1N0eWxlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gU1ZHU3R5bGVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50
LmgKaW5kZXggYThjMGI3MjMwMjdmMWRiYjRlZWRlZTVkMGQ5Yzc2NzM2OTFjNjU1NC4uNDMwODRk
NWM5M2VjMTk5NjZmZDU2NzBkMWZiY2E5ODI1MDY2NjJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRFbGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVGV4dEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBh
dGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKaW5k
ZXggMGE0ZmY2NzRmOGM4MjBhNjYwYWZkNzlhNWY0MjhlODVjYWI0OGI4Yi4uZjI0NGJjMzczMjdk
NDQ3MjQ0NGE5MDZkYThiNzc2OTQ3ZmU0MmUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuaApAQCAtMTQzLDggKzE0Myw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xB
UkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1RleHRQYXRo
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUaXRsZUVsZW1lbnQuaAppbmRleCBjODRhNjAzMjdjZjU2ZDA2NTJmNGM0Yzk1NmJkZjYy
YjMxOGVlMjQ2Li4wNzViMjM5YjgxOGM1YTNlOWI0N2MzNWNmMzgzNWY4YmUxOGViNGI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCkBAIC00MCw4ICs0MCw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1RpdGxl
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5oCmluZGV4IDNmMTBlZTk4OThkNTYxNzZhNmZlMDM0MGE5MTE3MDc1MDJi
ZjI3NTEuLmI3MzJmMThmMjIzNjFkMTkyZDNmYTI2N2VlODE2N2QyMWRhZWU0YTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtMTI4LDggKzEyOCw2IEBAIHByaXZhdGU6CiAgICAg
VGltZXI8U1ZHRWxlbWVudD4gbV9zdmdMb2FkRXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdVc2VFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJu
RWxlbWVudC5oCmluZGV4IGNlODhkZTViNDBmNzFiNzRiYjg0NmM5YWQ1MDlmOGU1ZmI3NzRlMTMu
LjE4MGJjNzZkMDNkMTcyYWE4NGFlZDdhYjMxMzk1Njk2MzA5MmMyODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVktlcm5FbGVtZW50LmgKQEAgLTQxLDggKzQxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVktlcm5FbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAppbmRleCAyNTFkNzMwMzkxMzU5NTQyNmY1MWVm
NjI5ZTQ2YWE1ZmUzNTY1MDhlLi40YjQ0ZDljOTQ2ODczZTI2YTU5MjA1ODFmMmIzZTIyZGI2YTJi
MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaApAQCAtNjUsOCArNjUsNiBAQCBw
cml2YXRlOgogICAgIFNWR1N0cmluZ0xpc3QgbV92aWV3VGFyZ2V0OwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR1ZpZXdFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0aW9ucy5tbQppbmRleCBlNGZiNzY2
MGY5ZjQ5ZTdhZDcxOTU2MTAzYmEzYjg1MTg2MjljNWMyLi4xMDU0ZGI2YzkxOGQ0MzhmNjViMGJk
MGUxNmE3YzY1MzZmZTliNWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vV2Vi
RE9NT3BlcmF0aW9ucy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0
aW9ucy5tbQpAQCAtNzQsNyArNzQsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAgICAgRXhl
Y1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVj
KTsKLSAgICByZXR1cm4ga2l0KHRvRWxlbWVudCh0b0pTKGV4ZWMsIHZhbHVlKSkpOworICAgIHJl
dHVybiBraXQoSlNFbGVtZW50Ojp0b0ltcGwodG9KUyhleGVjLCB2YWx1ZSkpKTsKIH0KIAogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGE2ZjNiNTRkY2Q1MWJlMmNj
NGNhZDQxZjdmNzU1NWI3MWNjNjI0ODcuLjljZTYxYjZmYWU0NmEyNzQ2ZjQ2OWU3MjMzZmFlNDU2
YWViMTRiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTg2MjEsNyAr
ODYyMSw3IEBAIHN0YXRpYyB2b2lkIGdsaWJDb250ZXh0SXRlcmF0aW9uQ2FsbGJhY2soQ0ZSdW5M
b29wT2JzZXJ2ZXJSZWYsIENGUnVuTG9vcEFjdGl2aXR5CiB7CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBKU0NvbnRleHRSZWYg
Y29udGV4dCA9IFtbc2VsZiBtYWluRnJhbWVdIGdsb2JhbENvbnRleHRdOwotICAgIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gdG9Ob3RpZmljYXRpb24odG9KUyh0b0pTKGNv
bnRleHQpLCBqc05vdGlmaWNhdGlvbikpOworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90
aWZpY2F0aW9uID0gSlNOb3RpZmljYXRpb246OnRvSW1wbCh0b0pTKHRvSlMoY29udGV4dCksIGpz
Tm90aWZpY2F0aW9uKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvbkNs
aWVudCo+KE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZyb20oX3ByaXZhdGUtPnBhZ2Up
KS0+bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKG5vdGlmaWNhdGlvbik7CiAjZWxzZQogICAgIHJl
dHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAK
aW5kZXggY2RkZGM4MTZhYmI4MTdlODM1NzdiOTEwYzYzM2UzMGEwZWU2MDVmZS4uMDQ1YTY2NGZj
OGM4ODhiMGE1NTc5YjMzYzAwM2ViZGRmNTYxZDdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBET01I
YW5kbGVDYWNoZSYgZG9tSGFuZGxlQ2FjaGUoKQogCiBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxl
Tm9kZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0ZShKU0NvbnRl
eHRSZWYsIEpTT2JqZWN0UmVmIG9iamVjdCkKIHsKLSAgICBOb2RlKiBub2RlID0gdG9Ob2RlKHRv
SlMob2JqZWN0KSk7CisgICAgTm9kZSogbm9kZSA9IEpTTm9kZTo6dG9JbXBsKHRvSlMob2JqZWN0
KSk7CiAgICAgcmV0dXJuIGdldE9yQ3JlYXRlKG5vZGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJh
bmdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
RE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCmluZGV4IGY2MzM5MWI0Y2U1Y2Y3MjFh
MTliMDY4NzNmNzEwZGMyZTM1ZjE5ZTcuLjY1ZjhlNTljNTQwNDg4YzdkOWQwMGU5NWQ3NmU1NTc3
M2M5OGM0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGUuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBET01IYW5kbGVDYWNoZSYgZG9tSGFuZGxl
Q2FjaGUoKQogCiBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IEluamVjdGVk
QnVuZGxlUmFuZ2VIYW5kbGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYg
b2JqZWN0KQogewotICAgIFJhbmdlKiByYW5nZSA9IHRvUmFuZ2UodG9KUyhvYmplY3QpKTsKKyAg
ICBSYW5nZSogcmFuZ2UgPSBKU1JhbmdlOjp0b0ltcGwodG9KUyhvYmplY3QpKTsKICAgICByZXR1
cm4gZ2V0T3JDcmVhdGUocmFuZ2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDFh
NjcyN2JhY2E1OTNjMGE3YmI4MWRhMDM4OTBhNzI5YTVkODNjNGIuLmI2NGU4MTgyOGRiOGQ5ZDgw
ZWMwYjg3N2E5YzEwMTBjMmZlMjUzODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC01OTcs
NyArNTk3LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbnMoV2ViUGFnZSogcGFnZSkKIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlOjp3ZWJO
b3RpZmljYXRpb25JRChKU0NvbnRleHRSZWYganNDb250ZXh0LCBKU1ZhbHVlUmVmIGpzTm90aWZp
Y2F0aW9uKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05P
VElGSUNBVElPTlMpCi0gICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSB0
b05vdGlmaWNhdGlvbih0b0pTKHRvSlMoanNDb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAg
ICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IEpTTm90aWZpY2F0aW9uOjp0
b0ltcGwodG9KUyh0b0pTKGpzQ29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CiAgICAgaWYgKCFu
b3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5zdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPm5vdGlmaWNhdGlv
bklERm9yVGVzdGluZyhub3RpZmljYXRpb24pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238331</attachid>
            <date>2014-09-18 16:10:48 -0700</date>
            <delta_ts>2014-09-18 17:07:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136839-20140918161046.patch</filename>
            <type>text/plain</type>
            <size>157107</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE1MDhmOTNkNzI3YzA2
YzAyMzFkZGU4ZjA1YzU3M2VmYjEyMGI2Yi4uOGU4OGM2ODRkMjc3YWNjYzA2ZDkzNmIzZmU5MDVk
NjFiN2MyN2I1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxMSBAQAorMjAxNC0wOS0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQg
Y2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9u
cyBpbnN0ZWFkIG9mIHJlcXVpcmluZyBleHBsaWNpdAorICAgICAgICB1c2Ugb2YgTk9ERV9UWVBF
X0NBU1RTKCkgbWFjcm8uIENhc3RpbmcgaXMgbm93IGRvbmUgdXNpbmcgdGhlIGZvbGxvd2luZwor
ICAgICAgICBmb3JtOiBkb3duY2FzdDxIVE1MRGl2RWxlbWVudD4oKSwgaW5zdGVhZCBvZiB0b0hU
TUxEaXZFbGVtZW50KCkuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIGZvcm0gKGkuZS4gdG9IVE1M
RGl2RWxlbWVudCgpKSBpcyBzdGlsbCBzdXBwb3J0ZWQgZm9yIG5vdworICAgICAgICBieSBnZW5l
cmF0aW5nIG1hY3JvcyB0aGF0IGNvbnZlcnQgdGhlc2UgY2FsbHMgaW50byB0aGUgbmV3IGZvcm0s
IHVudGlsCisgICAgICAgIHRoZSBjb2RlIGJhc2UgaXMgcG9ydGVkIHRvIHRoZSBuZXcgY2FzdGlu
ZyBoZWxwZXJzLgorCisgICAgICAgIFRoZSBwbGFuIGlzIGFsc28gdG8gdXNlIGlzPEhUTUxEaXZF
bGVtZW50PigpIGluc3RlYWQgb2YKKyAgICAgICAgaXNIVE1MRGl2RWxlbWVudCgpIGZvciBjb25z
aXN0ZW5jeSBidXQgdGhpcyB3YXMgbm90IGNoYW5nZWQgaW4gdGhpcworICAgICAgICBwYXRjaCB0
byBhdm9pZCBibG93aW5nIHVwIHRoZSBzaXplLgorCisgICAgICAgIFRoaXMgQ0wgYWxzbyB1cGRh
dGVzIHRoZSB3YXkgd2UgY29udmVydCBhIEpTVmFsdWUgaW50byBhbgorICAgICAgICBpbXBsZW1l
bnRhdGlvbiBwb2ludGVyLiBJbnN0ZWFkIG9mIHVzaW5nIHRvSFRNTERpdkVsZW1lbnQoKSwgd2hp
Y2gKKyAgICAgICAgbG9va2VkIGxpa2UgYSBjYXN0LCB3ZSBub3cgdXNlIEpTSFRNTERpdkVsZW1l
bnQ6OnRvSW1wbCgpLiBUaGlzCisgICAgICAgIGF2b2lkcyBjb25mbGljdGluZyB3aXRoIHRoZSB0
b1hYWEVsZW1lbnQoKSBtYWNyb3MgYW5kIG1ha2VzIGl0CisgICAgICAgIGNsZWFyZXIgdGhpcyBp
cyBub3QgYSBzaW1wbGUgY2FzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RKU0Jsb2IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29tbWFuZExpbmVBUElIb3N0OjpnZXRF
dmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6
ZGF0YWJhc2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3Rv
cmFnZUlkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50T3JOdWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN0cnVjdEpTRE9NRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01G
b3JtRGF0YTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdMaXN0Ojp0b0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6dG9ET01TdHJpbmdMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRE9NV2luZG93KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hM
aXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRXZlbnRUYXJnZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0V2ZW50VGFyZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4Y2Vw
dGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb25CYXNlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1M
U2VsZWN0RWxlbWVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdEluZGV4U2V0
dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0Nv
bnRleHRNZW51KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVJbml0TWVzc2FnZUV2ZW50KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGxNZXNzYWdlUG9ydEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6SlNO
b2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OmFwcGVuZENoaWxk
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlRmlsdGVyOjp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9O
b2RlRmlsdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0
b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZW5jcnlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6c2lnbik6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRs
ZUNyeXB0bzo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRvOjpleHBv
cnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OndyYXBLZXkpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRl
cik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVy
UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRVbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOgorICAgICAgICAo
V2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25N
YXRyaXgpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjayk6CisgICAgICAgIChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVjdDo6dG9JbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEFjdGl2ZURPTU9iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9JbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEN1c3RvbU5hbWVkR2V0dGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0RXZlbnRDb25zdHJ1Y3Rvcik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVG
dW5jdGlvbkRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRUYXJn
ZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RFdmVudFRhcmdldCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb246OnRvSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjp0b1Rlc3RFeGNlcHRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjp0b0ltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9k
Mik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1
cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0SW50ZXJmYWNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcjo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5hbWVkQ29u
c3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYzo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5vbmRl
dGVybWluaXN0aWMpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0
T2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpNdXRhYmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1tdXRh
YmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
b2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2Vx
dWVuY2VBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlv
bldpdGhTZXF1ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE9iajo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE9iaik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnND
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9JbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnM6OnRvSW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjp0b1Rlc3RUeXBlZGVmcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRl
Ojp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9hdHRyaWJ1dGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTcmVhZG9ubHk6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b3JlYWRvbmx5KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5o
OgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpkb3duY2FzdCk6
CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAgIChwcmludFR5cGVIZWxwZXJz
KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
RnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGFiZWxF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmpl
Y3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBhcmFt
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU291cmNlRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFN0eWxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRpdGxl
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2NyaXB0
VmFsdWVBc05vZGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0FsdEdseXBoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZFRnVuY0FFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0JFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0dFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZFRnVuY1JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdIS2VybkVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xp
bmVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdNUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2Vy
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1BvbHlnb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdU
ZXh0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHVktlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Zp
ZXdFbGVtZW50Lmg6CisKIDIwMTQtMDktMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0IGxhaWQgb3V0IHdpdGggdGhlIFNWRyAtPiBPVEYg
Zm9udCBjb252ZXJ0ZXIgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBtZXRyaWNzIGFzIHdpdGggdGhl
IFNWRyBmb250IGNvZGUgcGF0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGMwZmRlZWI0YTU2NWE3N2Y0
YzM4MWM5YTdkZDhhMjgyMTIwYTg5OGMuLjQxOTkyNzE5Nzk2MzhhNjFjOWYwOGQ1YmYyYTI4Yzhm
MDRjMDE1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wOS0xNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1l
bnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgSlNYWFg6OnRvSW1wbCgpIGluc3RlYWQgb2YgdG9YWFgo
KSBmdW5jdGlvbi4KKworICAgICAgICAqIERPTS9XZWJET01PcGVyYXRpb25zLm1tOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfbm90aWZpY2F0aW9u
SURGb3JUZXN0aW5nOl0pOgorCiAyMDE0LTA5LTE3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTczNjk1LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCmluZGV4IDIxNTBmMjg1YWM5ZTFiZGU3YWI5ODIzZTZmM2ZmMzAzM2U3MDg4MWQu
LmRkZTc5MTFmNzAyNTk2Mzk3YjBlMTBjM2I1MzVkMTY0MTYzY2YxN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wOS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4
MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
SlNYWFg6OnRvSW1wbCgpIGluc3RlYWQgb2YgdG9YWFgoKSBmdW5jdGlvbi4KKworICAgICAgICAq
IFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6ZWxlbWVudEZyb21KUyk6CisKIDIwMTQt
MDktMDYgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGNvbnZlcnQgRG9ja1NpZGUgdG8gYW4gZW51bSBjbGFzcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDM1MzIxYzFkNDA1YTgwNjExYzdiNDU5OGRlMjMwNTM4MTMzMjRiNDYuLjU5NmY3OTA3
NTRmMDFkNDBiZTBmY2E3MDYyZjNjOWYwY2MxODlkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAxNC0wOS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIEdlbmVyYXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgSlNYWFg6OnRvSW1wbCgp
IGluc3RlYWQgb2YgdG9YWFgoKSBmdW5jdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNy
ZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRpb25J
RCk6CisKIDIwMTQtMDktMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgQXZvaWQgZGl2aWRlIGJ5IHplcm8gd2hlbiB3ZSBnZXQgYW4gZW1wdHkgcmVj
dCB3aGlsZSBzbmFwc2hvdHRpbmcgYSBub2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KaW5kZXgg
MzY5YWJiMTEwNzIyZDc4ZjJlMTY4MDkzNWUyODNjZGY1Y2ZkNzliZS4uM2RiZmRlMjg0MDVlNTM3
MTRlMDRiMGFkYjIzNTBiMGM5Y2UxZTdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQpAQCAt
MjEzLDcgKzIxMyw3IEBAIGJvb2wgUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxS
ZXBsYWNlbWVudChTaGFkb3dSb290KiByb290KQogICAgIC8vIEdldCB0aGUgPHZpZGVvPiBjcmVh
dGVkIHRvIHJlcGxhY2UgdGhlIHBsdWctaW4uCiAgICAgSlNDOjpKU1ZhbHVlIHZhbHVlID0gcmVw
bGFjZW1lbnQuZ2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAidmlkZW8iKSk7CiAgICAg
aWYgKCFleGVjLT5oYWRFeGNlcHRpb24oKSAmJiAhdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkK
LSAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSB0b0hUTUxWaWRlb0VsZW1lbnQodmFsdWUpOworICAg
ICAgICBtX21lZGlhRWxlbWVudCA9IEpTSFRNTFZpZGVvRWxlbWVudDo6dG9JbXBsKHZhbHVlKTsK
IAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpIHsKICAgICAgICAgTE9HKFBsdWdpbnMsICIlcCAt
IEZhaWxlZCB0byBmaW5kIDx2aWRlbz4gZWxlbWVudCBjcmVhdGVkIGJ5IFF1aWNrVGltZSBwbHVn
aW4gcmVwbGFjZW1lbnQgc2NyaXB0LiIsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA4
NzRlNTFlNjY3NDc2Y2I0YjJmMjhhODYyMDQ0NGUzZmE0MDNmMjY2Li4yM2Y2ZmNmYjk5YzVmNzNl
ZTY3YTYzNTAzNjgwNjJlNmU5NTg1MmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzcsNiAr
NzcsNyBAQCBfX1pON1dlYkNvcmUxMEZsb2F0UG9pbnRDMUVSSzdDR1BvaW50CiBfX1pON1dlYkNv
cmUxMEZsb2F0UG9pbnRDMUVSS05TXzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTEwRm9udEdseXBo
czE1cmVsZWFzZUZvbnREYXRhRXYKIF9fWk43V2ViQ29yZTEwSlNEb2N1bWVudDZzX2luZm9FCitf
X1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNv
cmUxMExheW91dFJlY3Q1c2NhbGVFZgogX19aTjdXZWJDb3JlMTBMYXlvdXRSZWN0NXVuaXRlRVJL
UzBfCiBfX1pON1dlYkNvcmUxMExheW91dFJlY3RDMUVSS05TXzlGbG9hdFJlY3RFCkBAIC0xMjQs
NyArMTI1LDYgQEAgX19aTjdXZWJDb3JlMTBUaW1lUmFuZ2VzQzFFZGQKIF9fWk43V2ViQ29yZTEw
ZGVsZXRlRmlsZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEwZmlsZUV4aXN0c0VSS04z
V1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEwc2V0Q29va2llc0VQTlNfOERvY3VtZW50RVJLTlNf
M1VSTEVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTEwdG9Eb2N1bWVudEVOM0pTQzdKU1Zh
bHVlRQogX19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZTEzZ2V0Q0dJbWFnZVJlZkV2CiBfX1pON1dl
YkNvcmUxMUJpdG1hcEltYWdlQzFFUDdDR0ltYWdlUE5TXzEzSW1hZ2VPYnNlcnZlckUKIF9fWk43
V2ViQ29yZTExQml0bWFwSW1hZ2VDMUVQTlNfMTNJbWFnZU9ic2VydmVyRQpAQCAtNjY3LDcgKzY2
Nyw2IEBAIF9fWk43V2ViQ29yZTE1b3JpZ2luYWxVUkxEYXRhRVA1TlNVUkwKIF9fWk43V2ViQ29y
ZTE1cGF0aEdldEZpbGVOYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTVyZXBvcnRF
eGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUE5TXzEyQ2FjaGVkU2NyaXB0
RQogX19aTjdXZWJDb3JlMTVzZXRET01FeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVpCi1fX1pO
N1dlYkNvcmUxNXRvRE9NU3RyaW5nTGlzdEVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTE1dmlzaXRlZExpbmtIYXNoRVBLdGoKIF9fWk43V2ViQ29yZTE1dmlzaXRl
ZExpbmtIYXNoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTZBcHBsaWNhdGlvbkNhY2hl
MThkaXNrVXNhZ2VGb3JPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCkBAIC0xMjQyLDYgKzEy
NDEsNyBAQCBfX1pON1dlYkNvcmU2RWRpdG9yN2NvbW1hbmRFUktOM1dURjZTdHJpbmdFCiBfX1pO
N1dlYkNvcmU2RWRpdG9yN2NvcHlVUkxFUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlNkVkaXRvcjdvdXRkZW50RXYKIF9fWk43V2ViQ29yZTZKU05vZGU2c19pbmZvRQorX19a
TjdXZWJDb3JlNkpTTm9kZTZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTZMZW5n
dGhDMUVOM1dURjdQYXNzUmVmSU5TXzE2Q2FsY3VsYXRpb25WYWx1ZUVFRQogX19aTjdXZWJDb3Jl
NlJlZ2lvbjIxdXBkYXRlQm91bmRzRnJvbVNoYXBlRXYKIF9fWk43V2ViQ29yZTZSZWdpb241dW5p
dGVFUktTMF8KQEAgLTEyNTksNyArMTI1OSw2IEBAIF9fWk43V2ViQ29yZTZXaWRnZXQ4c2V0Rm9j
dXNFYgogX19aTjdXZWJDb3JlNldpZGdldDlzZXRQYXJlbnRFUE5TXzEwU2Nyb2xsVmlld0UKIF9f
Wk43V2ViQ29yZTZXaWRnZXREMkV2CiBfX1pON1dlYkNvcmU2dG9JbnQ4RVBOM0pTQzlFeGVjU3Rh
dGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uRQotX19a
TjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN0VsZW1lbnQxMnNl
dEF0dHJpYnV0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFUzRfUmkKIF9fWk43V2ViQ29yZTdFbGVt
ZW50MTJzZXRBdHRyaWJ1dGVFUktOU18xM1F1YWxpZmllZE5hbWVFUktOM1dURjEyQXRvbWljU3Ry
aW5nRQogX19aTjdXZWJDb3JlN0VsZW1lbnQxNmNyZWF0ZVNoYWRvd1Jvb3RFUmkKQEAgLTEyNzMs
NiArMTI3Miw3IEBAIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU18xMExheW91dFJlY3RFCiBf
X1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRT
aXplQzFFUks2Q0dTaXplCiBfX1pON1dlYkNvcmU3SW50U2l6ZUMxRVJLTlNfOUZsb2F0U2l6ZUUK
K19fWk43V2ViQ29yZTdKU1JhbmdlNnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3Jl
N1RleHRSdW4xOWFsbG93c1JvdW5kaW5nSGFja3NFdgogX19aTjdXZWJDb3JlN1RleHRSdW4yMXNf
YWxsb3dzUm91bmRpbmdIYWNrc0UKIF9fWk43V2ViQ29yZTdUZXh0UnVuMjJzZXRBbGxvd3NSb3Vu
ZGluZ0hhY2tzRWIKQEAgLTEyODEsNyArMTI4MSw2IEBAIF9fWk43V2ViQ29yZTdqc0FycmF5RVBO
M0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFTjNXVEYxMFBhc3NSZWZQdHJJ
CiBfX1pON1dlYkNvcmU3bWFrZVJHQkVpaWkKIF9fWk43V2ViQ29yZTd0b0ludDE2RVBOM0pTQzlF
eGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
RQogX19aTjdXZWJDb3JlN3RvSW50NjRFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNf
MzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb25FCi1fX1pON1dlYkNvcmU3dG9SYW5nZUVO
M0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN3RvVUludDhFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBf
N0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb25FCiBfX1pON1dlYkNv
cmU4QmxvYkRhdGExNHNldENvbnRlbnRUeXBlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
OENTU1ZhbHVlN2Rlc3Ryb3lFdgpAQCAtMTQ5NSw2ICsxNDk0LDcgQEAgX19aTjdXZWJDb3JlOUlu
bGluZUJveDE0ZGlydHlMaW5lQm94ZXNFdgogX19aTjdXZWJDb3JlOUlubGluZUJveDE0c2VsZWN0
aW9uU3RhdGVFdgogX19aTjdXZWJDb3JlOUlubGluZUJveDE2cGxhY2VFbGxpcHNpc0JveEViZmZm
UmZSYgogX19aTjdXZWJDb3JlOUpTRWxlbWVudDZzX2luZm9FCitfX1pON1dlYkNvcmU5SlNFbGVt
ZW50NnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlOUxheWVyUG9vbEMxRXYKIF9f
Wk43V2ViQ29yZTlMYXllclBvb2xEMUV2CiBfX1pON1dlYkNvcmU5UGFnZUNhY2hlMTFzZXRDYXBh
Y2l0eUVpCkBAIC0xNTM1LDcgKzE1MzUsNiBAQCBfX1pON1dlYkNvcmU5Zm9udENhY2hlRXYKIF9f
Wk43V2ViQ29yZTltYWtlUmFuZ2VFUktOU18xNVZpc2libGVQb3NpdGlvbkVTMl8KIF9fWk43V2Vi
Q29yZTlwYWdlQ2FjaGVFdgogX19aTjdXZWJDb3JlOXBsYWluVGV4dEVQS05TXzVSYW5nZUV0Ygot
X19aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlOXVuaW9u
UmVjdEVSS04zV1RGNlZlY3RvcklOU185RmxvYXRSZWN0RUxtMEVOUzBfMTVDcmFzaE9uT3ZlcmZs
b3dFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdDEyZ2xvYmFsT2JqZWN0RXYKIF9f
Wk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5nRXYKQEAgLTMyNTcsNyArMzI1Niw3IEBAIF9f
Wk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaEVycm9yRXZlbnRFdgogX19aTjdXZWJD
b3JlMTJOb3RpZmljYXRpb244ZmluYWxpemVFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb25D
MUV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbkQxRXYKLV9fWk43V2ViQ29yZTE0dG9Ob3Rp
ZmljYXRpb25FTjNKU0M3SlNWYWx1ZUUKK19fWk43V2ViQ29yZTE0SlNOb3RpZmljYXRpb242dG9J
bXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxOXByb3ZpZGVOb3RpZmljYXRpb25FUE5T
XzRQYWdlRVBOU18xOE5vdGlmaWNhdGlvbkNsaWVudEUKIF9fWk43V2ViQ29yZTIyTm90aWZpY2F0
aW9uQ29udHJvbGxlcjEwY2xpZW50RnJvbUVQTlNfNFBhZ2VFCiAjZW5kaWYKQEAgLTMzNjksNyAr
MzM2OCw3IEBAIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTZoYW5kbGVUb3VjaEV2ZW50RVJL
TlNfMThQbGF0Zm9ybVRvdWNoRXZlbnRFCiAjaWYgRU5BQkxFKFZJREVPKQogLm9iamNfY2xhc3Nf
bmFtZV9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyCiBfX1pON1dlYkNvcmUxMFRpbWVSYW5n
ZXMzYWRkRWRkCi1fX1pON1dlYkNvcmUxMnRvVGltZVJhbmdlc0VOM0pTQzdKU1ZhbHVlRQorX19a
TjdXZWJDb3JlMTJKU1RpbWVSYW5nZXM2dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNv
cmUxNkhUTUxNZWRpYUVsZW1lbnQxMmVuZFNjcnViYmluZ0V2CiBfX1pON1dlYkNvcmUxNkhUTUxN
ZWRpYUVsZW1lbnQxNGJlZ2luU2NydWJiaW5nRXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxl
bWVudDE0ZXhpdEZ1bGxzY3JlZW5FdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCmluZGV4IGU2YjUw
NjQyN2U0NTg4OTY1YmRiNjdjODlmYTI1NmUzMzVkNGUxNzUuLmFiYjAwODBiY2I5ZDM3ZjY4NTlm
ZTNmNjI1MWUwZWQwNDAwOWQyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEpTQXVkaW9CdWZmZXJTb3VyY2VO
b2RlOjpzZXRCdWZmZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIEF1
ZGlvQnVmZmVyKiBidWZmZXIgPSB0b0F1ZGlvQnVmZmVyKHZhbHVlKTsKKyAgICBBdWRpb0J1ZmZl
ciogYnVmZmVyID0gSlNBdWRpb0J1ZmZlcjo6dG9JbXBsKHZhbHVlKTsKICAgICBpZiAoIWJ1ZmZl
cikgewogICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5cGVF
cnJvcihleGVjLCAiVmFsdWUgaXMgbm90IG9mIHR5cGUgQXVkaW9CdWZmZXIiKSk7CiAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwCmlu
ZGV4IDI5M2FmYjM3NjI4NjhiODM4YjlmNWMxMmViYTY0NTYzZjg5MzQ2MzguLjA2YTkxMjQ0ODM2
MGRkNTdkMzJiNTBjM2UwYjVkZWRkNzU3N2NlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCbG9iQ3VzdG9tLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNCbG9iKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAg
ICAgIGJsb2JCdWlsZGVyLmFwcGVuZChhcnJheUJ1ZmZlcik7CiAgICAgICAgIGVsc2UgaWYgKFJl
ZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGFycmF5QnVmZmVyVmlldyA9IHRvQXJyYXlCdWZmZXJWaWV3
KGl0ZW0pKQogICAgICAgICAgICAgYmxvYkJ1aWxkZXIuYXBwZW5kKGFycmF5QnVmZmVyVmlldy5y
ZWxlYXNlKCkpOwotICAgICAgICBlbHNlIGlmIChCbG9iKiBibG9iID0gdG9CbG9iKGl0ZW0pKQor
ICAgICAgICBlbHNlIGlmIChCbG9iKiBibG9iID0gSlNCbG9iOjp0b0ltcGwoaXRlbSkpCiAgICAg
ICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYmxvYik7CiAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgU3RyaW5nIHN0cmluZyA9IGl0ZW0udG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhv
c3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQ
SUhvc3RDdXN0b20uY3BwCmluZGV4IDc5NTQ4ZTgyYzM3Y2JkNzUyM2E3ODQ3YWM4OWQ4NmY5ZjAw
MGU3ODYuLmYyZmZjMTdlNzFiNzlkOWFlMmQ0NjE3MDQ1MTU5NmIwZTdiMzE3MDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5lQVBJSG9z
dEN1c3RvbS5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBKU1ZhbHVlIEpTQ29tbWFuZExpbmVBUElI
b3N0OjpnZXRFdmVudExpc3RlbmVycyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCF2YWx1ZS5p
c09iamVjdCgpIHx8IHZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKIAotICAgIE5vZGUqIG5vZGUgPSB0b05vZGUodmFsdWUpOworICAgIE5vZGUqIG5vZGUgPSBK
U05vZGU6OnRvSW1wbCh2YWx1ZSk7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKIApAQCAtMTQ5LDcgKzE0OSw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQ
SUhvc3Q6OmRhdGFiYXNlSWQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgRGF0YWJhc2UqIGRhdGFi
YXNlID0gdG9EYXRhYmFzZShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgRGF0YWJh
c2UqIGRhdGFiYXNlID0gSlNEYXRhYmFzZTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApKTsKICAgICBpZiAoZGF0YWJhc2UpCiAgICAgICAgIHJldHVybiBqc1N0cmluZ1dpdGhDYWNo
ZShleGVjLCBpbXBsKCkuZGF0YWJhc2VJZEltcGwoZGF0YWJhc2UpKTsKICNlbmRpZgpAQCAtMTYy
LDcgKzE2Miw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQSUhvc3Q6OnN0b3JhZ2VJZChFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgU3RvcmFnZSogc3RvcmFnZSA9IHRvU3RvcmFn
ZShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgU3RvcmFnZSogc3RvcmFnZSA9IEpT
U3RvcmFnZTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoc3Rv
cmFnZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGltcGwoKS5zdG9y
YWdlSWRJbXBsKHN0b3JhZ2UpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAppbmRleCAzMWIxODBiZjdmZWFlNWZmYzA3ZmQwZWU5
YzI4YTJmOGQ2MjdkZTU1Li5lOWUwYmI3MTMzYTcxNjQ4Y2NlOGI1ZTJjMmE2Njg2MTY0MzU2NDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3Vz
dG9tLmNwcApAQCAtNDEsOSArNDEsOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBIVE1MRm9ybUVsZW1lbnQqIHRvSFRNTEZvcm1FbGVtZW50
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBIVE1MRm9ybUVsZW1lbnQqIHRvSFRNTEZvcm1F
bGVtZW50T3JOdWxsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gdmFsdWUuaW5o
ZXJpdHMoSlNIVE1MRm9ybUVsZW1lbnQ6OmluZm8oKSkgPyAmanNDYXN0PEpTSFRNTEZvcm1FbGVt
ZW50Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpIDogMDsKKyAgICByZXR1cm4gdmFsdWUuaW5o
ZXJpdHMoSlNIVE1MRm9ybUVsZW1lbnQ6OmluZm8oKSkgPyAmanNDYXN0PEpTSFRNTEZvcm1FbGVt
ZW50Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpIDogbnVsbHB0cjsKIH0KIAogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU0RPTUZvcm1EYXRhKEV4ZWNTdGF0ZSogZXhl
YykKQEAgLTUyLDcgKzUyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RKU0RPTUZvcm1EYXRhKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEhUTUxGb3JtRWxlbWVudCog
Zm9ybSA9IDA7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDApCi0gICAgICAgIGZv
cm0gPSB0b0hUTUxGb3JtRWxlbWVudChleGVjLT5hcmd1bWVudCgwKSk7CisgICAgICAgIGZvcm0g
PSB0b0hUTUxGb3JtRWxlbWVudE9yTnVsbChleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgUmVmUHRy
PERPTUZvcm1EYXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRhOjpjcmVhdGUoZm9ybSk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0
b3ItPmdsb2JhbE9iamVjdCgpLCBkb21Gb3JtRGF0YS5nZXQoKSkpKTsKIH0KQEAgLTY2LDcgKzY2
LDcgQEAgSlNWYWx1ZSBKU0RPTUZvcm1EYXRhOjphcHBlbmQoRXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICAgICAgU3RyaW5nIGZpbGVuYW1lOwogICAgICAgICAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA+PSAzICYmICFleGVjLT5hcmd1bWVudCgyKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQog
ICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gZXhlYy0+YXJndW1lbnQoMikudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpOwotICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChuYW1lLCB0b0Jsb2Io
dmFsdWUpLCBmaWxlbmFtZSk7CisgICAgICAgICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIEpTQmxv
Yjo6dG9JbXBsKHZhbHVlKSwgZmlsZW5hbWUpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IGltcGwoKS5hcHBlbmQobmFtZSwgdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmlu
Z0xpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdM
aXN0Q3VzdG9tLmNwcAppbmRleCAyMzMzN2IyZjJkOTY2MDdiNThkNjI3YTJiOGNkNDM2MzRmYmQ2
OWFhLi5hZDNhYzQ0NDI3MmIzMjU3ZWVmYmMzMDdlMGNiNjVmN2M5YjMzYTVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAK
QEAgLTI1LDcgKzI1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1QYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvRE9NU3RyaW5nTGlzdChFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IEpTRE9N
U3RyaW5nTGlzdDo6dG9JbXBsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBpZiAodmFsdWUuaW5oZXJpdHMoSlNET01TdHJpbmdMaXN0OjppbmZvKCkpKQogICAgICAgICBy
ZXR1cm4gJmpzQ2FzdDxKU0RPTVN0cmluZ0xpc3QqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAK
aW5kZXggNWYzYjUxN2ExNDJiZTMyZmI2NGU3OThhOTVjODFiNTMxMWQxZjA4ZC4uZTg0ZDNlZDJm
YWE4OTlkMGIzNTA0Yzg1ZjNkYzFhZjYxODNhNzZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNjg0LDcgKzY4NCw3IEBAIEpT
VmFsdWUgSlNET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjKQog
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1ET01XaW5kb3cqIHRvRE9NV2luZG93KEpT
VmFsdWUgdmFsdWUpCitET01XaW5kb3cqIEpTRE9NV2luZG93Ojp0b0ltcGwoSlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXggMWFmMDI2ZGJh
NDVkOTQ3OTA4NTQ0YmIxODRiNWM2NjZjZTRmYjI2YS4uZDMwYjI2M2EzZjI2NzQwNmFjMzE2YzEx
NzVjYjQ0MzIwZDg5ODIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rp
b25hcnkuY3BwCkBAIC0xNTUsMjIgKzE1NSwyMiBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVy
dFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPFNlcmlhbGl6ZQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFs
dWUsIFJlZlB0cjxET01XaW5kb3c+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9ET01XaW5k
b3codmFsdWUpOworICAgIHJlc3VsdCA9IEpTRE9NV2luZG93Ojp0b0ltcGwodmFsdWUpOwogfQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFs
dWUsIFJlZlB0cjxFdmVudFRhcmdldD4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0V2ZW50
VGFyZ2V0KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU0V2ZW50VGFyZ2V0Ojp0b0ltcGwodmFsdWUp
OwogfQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFs
dWUgdmFsdWUsIFJlZlB0cjxOb2RlPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvTm9kZSh2
YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNOb2RlOjp0b0ltcGwodmFsdWUpOwogfQogCiB2b2lkIEpT
RGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0
cjxTdG9yYWdlPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvU3RvcmFnZSh2YWx1ZSk7Cisg
ICAgcmVzdWx0ID0gSlNTdG9yYWdlOjp0b0ltcGwodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgTWVzc2Fn
ZVBvcnRBcnJheSYgcmVzdWx0KQpAQCAtMjIyLDMxICsyMjIsMzEgQEAgdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPFVpbnQKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogdm9pZCBKU0RpY3Rpb25hcnk6
OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRy
PE1lZGlhS2V5RXJyb3I+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9NZWRpYUtleUVycm9y
KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhS2V5RXJyb3I6OnRvSW1wbCh2YWx1ZSk7CiB9
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lkIEpTRGljdGlvbmFyeTo6
Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8
TWVkaWFTdHJlYW0+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9NZWRpYVN0cmVhbSh2YWx1
ZSk7CisgICAgcmVzdWx0ID0gSlNNZWRpYVN0cmVhbTo6dG9JbXBsKHZhbHVlKTsKIH0KIAogdm9p
ZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0
ID0gdG9NZWRpYVN0cmVhbVRyYWNrKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhU3RyZWFt
VHJhY2s6OnRvSW1wbCh2YWx1ZSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGT05UX0xPQURf
RVZFTlRTKQogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mIHJlc3VsdCkKIHsK
LSAgICByZXN1bHQgPSB0b0NTU0ZvbnRGYWNlUnVsZSh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlND
U1NGb250RmFjZVJ1bGU6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpj
b252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxE
T01FcnJvcj4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RPTUVycm9yKHZhbHVlKTsKKyAg
ICByZXN1bHQgPSBKU0RPTUVycm9yOjp0b0ltcGwodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFs
dWUsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQpCkBAIC0yNjEsNyArMjYxLDcgQEAgdm9p
ZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpK
U1ZhbHVlIHZhbHVlLCBSZWZQdHIKICNpZiBFTkFCTEUoR0FNRVBBRCkKIHZvaWQgSlNEaWN0aW9u
YXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJl
ZlB0cjxHYW1lcGFkPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvR2FtZXBhZCh2YWx1ZSk7
CisgICAgcmVzdWx0ID0gSlNHYW1lcGFkOjp0b0ltcGwodmFsdWUpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKaW5kZXgg
ZmEyNDQ0M2I0ZTlkMTdlZGJmZGFiYWZjYWI0Mzk2NTc1Y2ZkYzE3MS4uM2I4YTk5ZWRmODNmZjM1
MDk3NTQ0NjcwYjA1M2VkNWM0YWZmYzI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBKU1ZhbHVlIEpT
RG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgUmVmUHRyPFRv
dWNoTGlzdD4gdG91Y2hMaXN0ID0gVG91Y2hMaXN0OjpjcmVhdGUoKTsKIAogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgZXhlYy0+YXJndW1lbnRDb3VudCgpOyBpKyspCi0gICAgICAgIHRvdWNo
TGlzdC0+YXBwZW5kKHRvVG91Y2goZXhlYy0+YXJndW1lbnQoaSkpKTsKKyAgICAgICAgdG91Y2hM
aXN0LT5hcHBlbmQoSlNUb3VjaDo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KGkpKSk7CiAKICAgICBy
ZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgdG91Y2hMaXN0LnJlbGVhc2UoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20u
Y3BwCmluZGV4IDUyMTBmMTJiYjZjZTM0ZTc0NjNkOGU2ZTI4OWE0YjhkNzA2Mzc5Y2YuLmY1NGE1
OTY3ZDhlOWNiMmYzY2RhNDZmMjIxZDEwNDlhZjU0NTgyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCkBAIC01OCw3ICs1OCw3
IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEV2ZW50VGFyZ2V0KiB0YXJnCiAgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTIyNp
bnRlcmZhY2VOYW1lOjppbmZvKCkpKSAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHJl
dHVybiAmanNDYXN0PEpTIyNpbnRlcmZhY2VOYW1lKj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgp
OwogCi1FdmVudFRhcmdldCogdG9FdmVudFRhcmdldChKU0M6OkpTVmFsdWUgdmFsdWUpCitFdmVu
dFRhcmdldCogSlNFdmVudFRhcmdldDo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKERPTVdpbmRvd1NoZWxsKQogICAgIFRSWV9U
T19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoRXZlbnRUYXJnZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcAppbmRleCBiZGUyNWIwYTY3NzA4MWU4MGM5
ZDVmY2NmYjlhN2ExMmY5NzZjMTk4Li5mNjI2MmQxNzE3OWY2NjAwMDI1ZmY3ZmEwZmNiYmIzYzA0
OTVkM2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlv
bkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFz
ZS5jcHAKQEAgLTQxLDIwICs0MSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEV4Y2VwdGlv
bkJhc2UqIHRvRXhjZXB0aW9uQmFzZShKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKERP
TUNvcmVFeGNlcHRpb24qIGRvbUV4Y2VwdGlvbiA9IHRvRE9NQ29yZUV4Y2VwdGlvbih2YWx1ZSkp
CisgICAgaWYgKERPTUNvcmVFeGNlcHRpb24qIGRvbUV4Y2VwdGlvbiA9IEpTRE9NQ29yZUV4Y2Vw
dGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhj
ZXB0aW9uQmFzZSo+KGRvbUV4Y2VwdGlvbik7Ci0gICAgaWYgKFJhbmdlRXhjZXB0aW9uKiByYW5n
ZUV4Y2VwdGlvbiA9IHRvUmFuZ2VFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChSYW5nZUV4Y2Vw
dGlvbiogcmFuZ2VFeGNlcHRpb24gPSBKU1JhbmdlRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQog
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4ocmFuZ2VFeGNl
cHRpb24pOwotICAgIGlmIChFdmVudEV4Y2VwdGlvbiogZXZlbnRFeGNlcHRpb24gPSB0b0V2ZW50
RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoRXZlbnRFeGNlcHRpb24qIGV2ZW50RXhjZXB0aW9u
ID0gSlNFdmVudEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KGV2ZW50RXhjZXB0aW9uKTsKLSAgICBpZiAoWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb24qIHhtbEh0dHBFeGNlcHRpb24gPSB0b1hNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24qIHhtbEh0
dHBFeGNlcHRpb24gPSBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQog
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4oeG1sSHR0cEV4
Y2VwdGlvbik7Ci0gICAgaWYgKFNWR0V4Y2VwdGlvbiogc3ZnRXhjZXB0aW9uID0gdG9TVkdFeGNl
cHRpb24odmFsdWUpKQorICAgIGlmIChTVkdFeGNlcHRpb24qIHN2Z0V4Y2VwdGlvbiA9IEpTU1ZH
RXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxFeGNlcHRpb25CYXNlKj4oc3ZnRXhjZXB0aW9uKTsKLSAgICBpZiAoWFBhdGhFeGNlcHRpb24q
IHBhdGhFeGNlcHRpb24gPSB0b1hQYXRoRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoWFBhdGhF
eGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSBKU1hQYXRoRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUp
KQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4ocGF0aEV4
Y2VwdGlvbik7CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBpZiAoU1FMRXhjZXB0aW9u
KiBwYXRoRXhjZXB0aW9uID0gdG9TUUxFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChTUUxFeGNl
cHRpb24qIHBhdGhFeGNlcHRpb24gPSBKU1NRTEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHBhdGhFeGNlcHRp
b24pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDFkNDBjNjBkODcwMjc3NTRmMDEzYzJi
MjI1NzJjMDFkYzJjOGNlYjkuLmJmYzFkZDU5NWZhOWVlOGVmZTJmNzU1YmI3ZTVmOGI3NDk4Nzgy
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxl
bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MTWVk
aWFFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDAsNyArNDAsNyBAQCB2b2lkIEpTSFRNTE1lZGlhRWxl
bWVudDo6c2V0Q29udHJvbGxlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlKQogICAgIC8vIE9u
IHNldHRpbmcsIGl0IG11c3QgZmlyc3QgcmVtb3ZlIHRoZSBlbGVtZW50J3MgbWVkaWFncm91cCBh
dHRyaWJ1dGUsIGlmIGFueSwgCiAgICAgaW1wbCgpLnNldE1lZGlhR3JvdXAoU3RyaW5nKCkpOwog
ICAgIC8vIGFuZCB0aGVuIHNldCB0aGUgY3VycmVudCBtZWRpYSBjb250cm9sbGVyIHRvIHRoZSBn
aXZlbiB2YWx1ZS4KLSAgICBpbXBsKCkuc2V0Q29udHJvbGxlcih0b01lZGlhQ29udHJvbGxlcih2
YWx1ZSkpOworICAgIGltcGwoKS5zZXRDb250cm9sbGVyKEpTTWVkaWFDb250cm9sbGVyOjp0b0lt
cGwodmFsdWUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IDc0YTU4Njcy
ZjQ3ZGY3YzZmYWRmZjg0MGY5MzQ3ODI3NmJjOTg4Y2QuLjcxZjNkZGIwMTM0NjhjYTM1NDQxZmRh
ODVhNWVhMzBkMDkxMDkwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKQEAgLTYzLDcgKzYz
LDcgQEAgdm9pZCBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6aW5kZXhTZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNWYWwKIEpTVmFsdWUgSlNIVE1MT3B0aW9uc0NvbGxl
Y3Rpb246OmFkZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSFRNTE9wdGlvbnNDb2xsZWN0aW9u
JiBpbXAgPSBpbXBsKCk7Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9w
dGlvbkVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIEhUTUxPcHRpb25FbGVtZW50KiBv
cHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpOwog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkg
PCAyKQogICAgICAgICBpbXAuYWRkKG9wdGlvbiwgZWMpOwpAQCAtODEsNyArODEsNyBAQCBKU1Zh
bHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUoRXhlY1N0YXRlKiBleGVjKQogewog
ICAgIC8vIFRoZSBhcmd1bWVudCBjYW4gYmUgYW4gSFRNTE9wdGlvbkVsZW1lbnQgb3IgYW4gaW5k
ZXguCiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAgIGlmIChI
VE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gdG9IVE1MT3B0aW9uRWxlbWVudChhcmd1bWVudCkp
CisgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50
Ojp0b0ltcGwoYXJndW1lbnQpKQogICAgICAgICBpbXBsKCkucmVtb3ZlKG9wdGlvbik7CiAgICAg
ZWxzZQogICAgICAgICBpbXBsKCkucmVtb3ZlKGFyZ3VtZW50LnRvSW50MzIoZXhlYykpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVtZW50
Q3VzdG9tLmNwcAppbmRleCA0M2Y2OTRiNTBhZTMzNmViOTNkZjM2YzE4Y2M1MDM1ZTQ1ODIwZDA1
Li5kZGQwOTI5MmExOTIwMjgxMTE5MTQyNTk4Y2NkZWJhNGNlNDk0YjU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9t
LmNwcApAQCAtNDMsNyArNDMsNyBAQCBKU1ZhbHVlIEpTSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92
ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgLy8gVGhlIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUoKSBm
dW5jdGlvbiBjYW4gdGFrZSBlaXRoZXIgYW4gb3B0aW9uIG9iamVjdCBvciB0aGUgaW5kZXggb2Yg
YW4gb3B0aW9uLgotICAgICAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRN
TE9wdGlvbkVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpKQorICAgICAgICBpZiAoSFRNTE9wdGlv
bkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRvSW1wbChleGVjLT5hcmd1
bWVudCgwKSkpCiAgICAgICAgICAgICBzZWxlY3QucmVtb3ZlKG9wdGlvbik7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHNlbGVjdC5yZW1vdmVCeUluZGV4KGV4ZWMtPmFyZ3VtZW50KDApLnRv
SW50MzIoZXhlYykpOwpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIHNlbGVjdEluZGV4U2V0dGVyKEhU
TUxTZWxlY3RFbGVtZW50KiBzZWxlY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZAog
ICAgICAgICBzZWxlY3QtPnJlbW92ZUJ5SW5kZXgoaW5kZXgpOwogICAgIGVsc2UgewogICAgICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlv
biA9IHRvSFRNTE9wdGlvbkVsZW1lbnQodmFsdWUpOworICAgICAgICBIVE1MT3B0aW9uRWxlbWVu
dCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBsKHZhbHVlKTsKICAgICAgICAg
aWYgKCFvcHRpb24pCiAgICAgICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOwogICAgICAg
ICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3Rv
ckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lu
c3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKaW5kZXggZjRiNTU1ZjgzNDlhNDAzYWIxNDUy
MDE2MjM3NTQyNjIwNjgwOWRiZC4uZjU3NDEwMDk5NTkyNjBmZWI3Zjk3YTZkZDdlM2M1NTNiMjMz
NzM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JG
cm9udGVuZEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIEpTVmFs
dWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudShFeGVjU3RhdGUqIGV4
ZWMpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDIpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIEV2ZW50KiBldmVu
dCA9IHRvRXZlbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIEV2ZW50KiBldmVudCA9IEpTRXZl
bnQ6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSk7CiAKICAgICBKU0FycmF5KiBhcnJheSA9IGFz
QXJyYXkoZXhlYy0+YXJndW1lbnQoMSkpOwogICAgIENvbnRleHRNZW51IG1lbnU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKaW5k
ZXggYmE5ZTNjYzhlZDY5MmU5NDAzZTY3ODc3MWEyNTZlN2ZhYjE4Y2QxNS4uOWJiM2ZkYWJkZmIw
ZjFlODk4MTRmNGEzODlmOTQwMzRhOWQzMTdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtOTUsNyArOTUsNyBAQCBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGhhbmRsZUluaXRNZXNzYWdlRXZlbnQoSlNNZXNzYWdlRXZlbnQq
IGpzRXZlbnQsIEpTQzo6RXhlY1N0YQogICAgIGJvb2wgY2FuY2VsYWJsZUFyZyA9IGV4ZWMtPmFy
Z3VtZW50KDIpLnRvQm9vbGVhbihleGVjKTsKICAgICBjb25zdCBTdHJpbmcgb3JpZ2luQXJnID0g
ZXhlYy0+YXJndW1lbnQoNCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIGNvbnN0
IFN0cmluZyBsYXN0RXZlbnRJZEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDUpLnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKTsKLSAgICBET01XaW5kb3cqIHNvdXJjZUFyZyA9IHRvRE9NV2luZG93KGV4
ZWMtPmFyZ3VtZW50KDYpKTsKKyAgICBET01XaW5kb3cqIHNvdXJjZUFyZyA9IEpTRE9NV2luZG93
Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoNikpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdl
UG9ydEFycmF5PiBtZXNzYWdlUG9ydHM7CiAgICAgT3duUHRyPEFycmF5QnVmZmVyQXJyYXk+IGFy
cmF5QnVmZmVyczsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDcpLmlzVW5kZWZpbmVkT3JOdWxs
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBv
cnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1
c3RvbS5jcHAKaW5kZXggNzVhYmUxOGNmM2M1ZmRjNTUwZWM2MmE5MjhmZjA1ZGJjOTQwNWQxYy4u
OTQ2ZmUyYWU3NTU4YzJjMDk4NDk2Mjk4OWU3ZmQzYjMxOTNjOTE1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKQEAgLTg0LDcg
Kzg0LDcgQEAgdm9pZCBmaWxsTWVzc2FnZVBvcnRBcnJheShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNDOjpKU1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEEKICAgICAgICAgfQogCiAgICAgICAgIC8v
IFZhbGlkYXRpb24gb2YgT2JqZWN0cyBpbXBsZW1lbnRpbmcgYW4gaW50ZXJmYWNlLCBwZXIgV2Vi
SURMIHNwZWMgNC4xLjE1LgotICAgICAgICBSZWZQdHI8TWVzc2FnZVBvcnQ+IHBvcnQgPSB0b01l
c3NhZ2VQb3J0KHZhbHVlKTsKKyAgICAgICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0ID0gSlNN
ZXNzYWdlUG9ydDo6dG9JbXBsKHZhbHVlKTsKICAgICAgICAgaWYgKHBvcnQpIHsKICAgICAgICAg
ICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGUgcG9ydHMuCiAgICAgICAgICAgICBpZiAocG9ydEFy
cmF5LmNvbnRhaW5zKHBvcnQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcAppbmRleCBkMzYyNGUxZjIzNzNjZTk3ODAyNWM0NmViZTIxZmNlZTQxZmE2YWNm
Li5kZDdiMjM1MDBkMDI3NTQ0NTYxNDBlNThlZDYwZmJjZDBiOGRlMGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCBi
b29sIEpTTm9kZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+IGhhbmRsZSwgdgogSlNWYWx1ZSBKU05vZGU6Omluc2VydEJlZm9yZShFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9
IGltcGwoKS5pbnNlcnRCZWZvcmUodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4
ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBsKCkuaW5zZXJ0QmVmb3Jl
KEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgSlNOb2RlOjp0b0ltcGwoZXhlYy0+
YXJndW1lbnQoMSkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBp
ZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE0NSw3ICsxNDUs
NyBAQCBKU1ZhbHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFs
dWUgSlNOb2RlOjpyZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkucmVwbGFjZUNoaWxkKHRvTm9kZShl
eGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKKyAgICBi
b29sIG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZChKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVu
dCgwKSksIEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOwogICAgIHNldERP
TUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+
YXJndW1lbnQoMSk7CkBAIC0xNTUsNyArMTU1LDcgQEAgSlNWYWx1ZSBKU05vZGU6OnJlcGxhY2VD
aGlsZChFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTTm9kZTo6cmVtb3ZlQ2hpbGQoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBp
bXBsKCkucmVtb3ZlQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOworICAgIGJv
b2wgb2sgPSBpbXBsKCkucmVtb3ZlQ2hpbGQoSlNOb2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQo
MCkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAg
ICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE2NSw3ICsxNjUsNyBAQCBKU1Zh
bHVlIEpTTm9kZTo6cmVtb3ZlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU05vZGU6
OmFwcGVuZENoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBib29sIG9rID0gaW1wbCgpLmFwcGVuZENoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVu
dCgwKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLmFwcGVuZENoaWxkKEpTTm9kZTo6dG9J
bXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBl
Yyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAppbmRl
eCAyOGMxNmMxMWVjOTU0MTEzOTk5NjYyMzZlNTc2OTgwNzVhYjA4MWRhLi40ZTE0N2Q3NWQ2ZTFi
ZGVkYjkxY2QyOWEwOTAxODk0Zjg3MmM3YWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgdm9pZCBK
U05vZGVGaWx0ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZpbXBsKCkpOwogfQogCi1QYXNzUmVm
UHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZh
bHVlKQorUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiBKU05vZGVGaWx0ZXI6OnRvSW1wbChKU0M6OlZN
JiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU05v
ZGVGaWx0ZXI6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAmSlNDOjpqc0Nhc3Q8SlNOb2RlRmls
dGVyKj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCmluZGV4IGY0MDVhMDNkZjZlMzAx
ZWU4MDZhY2M4Njg3MjYzMWU2YmRiNDg5ZDguLjY4ODBhMGM4NDEzMzUzY2U5MDc2MWNlNTM2YzVk
M2YwOWM2MzRjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3Vi
dGxlQ3J5cHRvQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1
YnRsZUNyeXB0b0N1c3RvbS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBKU1ZhbHVlIEpTU3VidGxl
Q3J5cHRvOjplbmNyeXB0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXko
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9
IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlm
ICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTE5Nyw3
ICsxOTcsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpkZWNyeXB0KEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENy
eXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwor
ICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYyk7CiAKQEAgLTI0OCw3ICsyNDgsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5
cHRvOjpzaWduKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5
cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5
KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTI5OSw3ICsyOTks
NyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp2ZXJpZnkoRXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5
PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVm
UHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJv
cihleGVjKTsKIApAQCAtNjAwLDcgKzYwMCw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmV4
cG9ydEtleShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
ICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0
b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkK
ICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC02MzAsMTEgKzYzMCwx
MSBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp3cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tl
eT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJl
ZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJy
b3IoZXhlYyk7CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiB3cmFwcGluZ0tleSA9IHRvQ3J5cHRv
S2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiB3
cmFwcGluZ0tleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MikpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7
CiAKQEAgLTcxMyw3ICs3MTMsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp1bndyYXBLZXko
RXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAK
LSAgICBSZWZQdHI8Q3J5cHRvS2V5PiB1bndyYXBwaW5nS2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IHVud3JhcHBpbmdL
ZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKICAg
ICBpZiAoIXVud3JhcHBpbmdLZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVj
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IGM1ZjIxNjEyOWFjMzlmMGNhMTc1YzI2
NWZjMTIwZjNkMmZkNDYxNTUuLmZlNTFmYzlmNmRkNmQ1NzVlNjdmZmY2NjI4ZWMzNjM3MmQ1YTgy
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTI1Nyw3ICsyNTcsNyBAQCBKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hlZFNoYWRlcnMoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0gaW1wbCgpOwotICAgIFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIXByb2dyYW0gJiYgIWV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkdMU2hhZGVy
Pj4gc2hhZGVyczsKQEAgLTM0MSw3ICszNDEsNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9IGlt
cGwoKTsKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNXZWJH
TFByb2dyYW06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFw
cm9ncmFtICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgp
KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgdW5zaWduZWQgcG5h
bWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwpAQCAtMzY5LDcg
KzM2OSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRlclBhcmFt
ZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0
ID0gaW1wbCgpOwogICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmlu
ZWRPck51bGwoKSAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaW5oZXJpdHMoSlNXZWJH
TFNoYWRlcjo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwot
ICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSB0b1dlYkdMU2hhZGVyKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDApKTsKKyAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gSlNXZWJHTFNoYWRlcjo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICB1bnNpZ25lZCBwbmFtZSA9IGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CiAgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTQwNSwxMCAr
NDA1LDEwIEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVuaWZvcm0oRXhl
Y1N0YXRlKiBleGVjKQogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0JiBjb250ZXh0ID0gaW1wbCgpOwotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3Jh
bSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJH
TFByb2dyYW0qIHByb2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIXByb2dyYW0gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJv
cihleGVjKTsKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5p
Zm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBXZWJHTFVuaWZv
cm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhl
Yy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTEdldEluZm8gaW5mbyA9IGNvbnRleHQuZ2V0
VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbiwgZWMpOwpAQCAtNDc4LDcgKzQ3OCw3IEBAIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIFdlCiAgICAgbG9uZyBpbmRleCA9IC0xOwogICAgIAogICAgIGlmIChm
dW5jdGlvbkZvclVuaWZvcm0oZikpIHsKLSAgICAgICAgbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9y
bUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICAgICAgbG9jYXRpb24g
PSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MCkpOwogICAgICAgICBpZiAoIWxvY2F0aW9uICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgw
KS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9y
KGV4ZWMpOwogICAgIH0gZWxzZQpAQCAtNTY0LDcgKzU2NCw3IEBAIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIFdlCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAhPSAyKQogICAgICAgICByZXR1
cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihleGVjKSk7CiAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSB0
b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0
b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghbG9jYXRpb24gJiYg
IWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAg
IHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgCkBAIC02MjQsNyArNjI0LDcgQEAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1bmN0aW9uTWF0cml4VG9D
YWxsIGYsIEpTQzo6RXhlY1N0YXQKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpICE9IDMp
CiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKIAotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9u
KiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMCkpOworICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlm
b3JtTG9jYXRpb246OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgaWYg
KCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51
bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmlu
ZGV4IGM5ZWRjZmE4YjRkMWMyMzc0Mzc4MjA2MWY3MjdmMWMyM2Q1ZDJjMTEuLmY5YWUxNjQ3YWZh
NWU1N2YxNDZiNWZmYWQ2NDg3NDZlODNmM2RkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC0xNDgsMTEgKzE0
OCwxMSBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRXhlY1N0YXRlKiBleGVjKQog
ICAgIGlmICh2YWwuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgaW1wbCgpLnNlbmQoZWMp
OwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0RvY3VtZW50OjppbmZvKCkpKQotICAgICAg
ICBpbXBsKCkuc2VuZCh0b0RvY3VtZW50KHZhbCksIGVjKTsKKyAgICAgICAgaW1wbCgpLnNlbmQo
SlNEb2N1bWVudDo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMo
SlNCbG9iOjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2VuZCh0b0Jsb2IodmFsKSwgZWMpOwor
ICAgICAgICBpbXBsKCkuc2VuZChKU0Jsb2I6OnRvSW1wbCh2YWwpLCBlYyk7CiAgICAgZWxzZSBp
ZiAodmFsLmluaGVyaXRzKEpTRE9NRm9ybURhdGE6OmluZm8oKSkpCi0gICAgICAgIGltcGwoKS5z
ZW5kKHRvRE9NRm9ybURhdGEodmFsKSwgZWMpOworICAgICAgICBpbXBsKCkuc2VuZChKU0RPTUZv
cm1EYXRhOjp0b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0Fy
cmF5QnVmZmVyOjppbmZvKCkpKQogICAgICAgICBpbXBsKCkuc2VuZCh0b0FycmF5QnVmZmVyKHZh
bCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNBcnJheUJ1ZmZlclZpZXc6Omlu
Zm8oKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwCmluZGV4IDI4ZjIyZGFiMGRmMWJlMGFhN2I1ZTJmMTZhNDRkMTNkNmQ3
NzZiZjkuLjcwZTkyMWFlNGE3NGI1YzM5NzRhNTIxZWZkODk4NGFjNDBkNmVkNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cApAQCAtNzg0LDEyICs3ODQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB3cml0ZShv
YmotPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChGaWxlKiBmaWxlID0gdG9GaWxl
KG9iaikpIHsKKyAgICAgICAgICAgIGlmIChGaWxlKiBmaWxlID0gSlNGaWxlOjp0b0ltcGwob2Jq
KSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEZpbGVUYWcpOwogICAgICAgICAgICAgICAgIHdy
aXRlKGZpbGUpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKEZpbGVMaXN0KiBsaXN0ID0gdG9GaWxlTGlzdChvYmopKSB7CisgICAg
ICAgICAgICBpZiAoRmlsZUxpc3QqIGxpc3QgPSBKU0ZpbGVMaXN0Ojp0b0ltcGwob2JqKSkgewog
ICAgICAgICAgICAgICAgIHdyaXRlKEZpbGVMaXN0VGFnKTsKICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKICAgICAgICAgICAgICAgICB3cml0ZShsZW5n
dGgpOwpAQCAtNzk3LDcgKzc5Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHdy
aXRlKGxpc3QtPml0ZW0oaSkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaWYgKEJsb2IqIGJsb2IgPSB0b0Jsb2Iob2JqKSkgeworICAg
ICAgICAgICAgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvSW1wbChvYmopKSB7CiAgICAgICAg
ICAgICAgICAgd3JpdGUoQmxvYlRhZyk7CiAgICAgICAgICAgICAgICAgbV9ibG9iVVJMcy5hcHBl
bmQoYmxvYi0+dXJsKCkpOwogICAgICAgICAgICAgICAgIHdyaXRlKGJsb2ItPnVybCgpKTsKQEAg
LTgwNSw3ICs4MDUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHdyaXRlKGJsb2ItPnNp
emUoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAoSW1hZ2VEYXRhKiBkYXRhID0gdG9JbWFnZURhdGEob2JqKSkgeworICAgICAg
ICAgICAgaWYgKEltYWdlRGF0YSogZGF0YSA9IEpTSW1hZ2VEYXRhOjp0b0ltcGwob2JqKSkgewog
ICAgICAgICAgICAgICAgIHdyaXRlKEltYWdlRGF0YVRhZyk7CiAgICAgICAgICAgICAgICAgd3Jp
dGUoZGF0YS0+d2lkdGgoKSk7CiAgICAgICAgICAgICAgICAgd3JpdGUoZGF0YS0+aGVpZ2h0KCkp
OwpAQCAtODY1LDcgKzg2NSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN1
Y2Nlc3M7CiAgICAgICAgICAgICB9CiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0gICAgICAg
ICAgICBpZiAoQ3J5cHRvS2V5KiBrZXkgPSB0b0NyeXB0b0tleShvYmopKSB7CisgICAgICAgICAg
ICBpZiAoQ3J5cHRvS2V5KiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKG9iaikpIHsKICAgICAg
ICAgICAgICAgICB3cml0ZShDcnlwdG9LZXlUYWcpOwogICAgICAgICAgICAgICAgIFZlY3Rvcjx1
aW50OF90PiBzZXJpYWxpemVkS2V5OwogICAgICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGR1
bW15QmxvYlVSTHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IDhkNTRkYTEzYzRkOWY1Nzg2MDQwZmM0YjUzOWNhYzA2YzE4
NGVlMDAuLjQ5YWE5NjQyOTk5M2IyYTg4N2JmNGUzYTNkZmRhZDYzMTMwODJhMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC04NzQsNiArODc0LDE3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpOwogICAgIH0KIAorICAgICMgSlNWYWx1ZSB0
byBpbXBsZW1lbnRhdGlvbiB0eXBlCisgICAgaWYgKCEkaGFzUGFyZW50IHx8ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QifSkgeworICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGVGaWx0ZXIiKSB7CisgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRv
SW1wbChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICB9IGVsc2lmICgkaW50
ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5nTGlzdCIpIHsKKyAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9JbXBsKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGltcGxUeXBlKiB0b0lt
cGwoSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICB9CisgICAgfQorCiAgICAgJGhlYWRlclRy
YWlsaW5nSW5jbHVkZXN7IiR7Y2xhc3NOYW1lfUN1c3RvbS5oIn0gPSAxIGlmICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUhlYWRlciJ9OwogCiAgICAgbXkgJG5hbWVk
R2V0dGVyRnVuY3Rpb24gPSBHZXROYW1lZEdldHRlckZ1bmN0aW9uKCRpbnRlcmZhY2UpOwpAQCAt
MTE2NiwxNSArMTE3Nyw2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmIChTaG91bGRHZW5l
cmF0ZVRvSlNEZWNsYXJhdGlvbigkaGFzUGFyZW50LCAkaW50ZXJmYWNlKSkgewogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbXBsVHlwZSopO1xuIik7CiAgICAg
fQotICAgIGlmICghJGhhc1BhcmVudCB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKLSAgICAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJOb2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IlBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpTQzo6Vk0mLCBKU0M6OkpTVmFs
dWUpO1xuIik7Ci0gICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01TdHJpbmdM
aXN0IikgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlBhc3NSZWZQdHI8RE9N
U3RyaW5nTGlzdD4gdG9ET01TdHJpbmdMaXN0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
KTtcbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIldFQkNPUkVfRVhQT1JUICRpbXBsVHlwZSogdG8ke2ludGVyZmFjZU5hbWV9KEpTQzo6SlNW
YWx1ZSk7XG4iKTsKLSAgICAgICAgfQotICAgIH0KICAgICBpZiAoJHVzZXNUb0pTTmV3bHlDcmVh
dGVkeyRpbnRlcmZhY2VOYW1lfSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlND
OjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4iKTsKICAgICB9CkBAIC0zMTEyLDcgKzMxMTQsNyBA
QCBFTkQKICAgICB9CiAKICAgICBpZiAoKCEkaGFzUGFyZW50IG9yICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QifSkgYW5kICEkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Ub05hdGl2ZU9iamVjdCJ9KSB7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJGltcGxUeXBlKiB0byR7aW50ZXJmYWNlTmFtZX0o
SlNDOjpKU1ZhbHVlIHZhbHVlKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJGlt
cGxUeXBlKiAke2NsYXNzTmFtZX06OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpXG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSAiIC4gR2V0Q2FzdGluZ0hlbHBlckZvclRoaXNP
YmplY3QoJGludGVyZmFjZSkgLiAiKHZhbHVlKSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7XG4iKTsKQEAgLTMyNDMsNyAr
MzI0NSw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogCiAgICAgICAgIGlmICgkYXJn
VHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IGN1c3RvbVJlc29sdmVyO1xuIik7Ci0g
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgWFBhdGhOU1Jlc29sdmVyKiByZXNv
bHZlciA9IHRvWFBhdGhOU1Jlc29sdmVyKGV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFhQYXRoTlNSZXNvbHZlciog
cmVzb2x2ZXIgPSBKU1hQYXRoTlNSZXNvbHZlcjo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KCRhcmdz
SW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICgh
cmVzb2x2ZXIpIHtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAg
ICBjdXN0b21SZXNvbHZlciA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUoZXhlYywg
ZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpXG4i
KTsKQEAgLTMyOTYsNyArMzI5OCw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAg
ICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBmb3IgKHVuc2lnbmVkIGkgPSAk
YXJnc0luZGV4LCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgaSA8IGNvdW50OyArK2kp
IHtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYg
KCFleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKS5pbmhlcml0cyhKUyR7YXJnVHlwZX06OmluZm8o
KSkpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAg
ICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgaSwgXCIkbmFtZVwiLCBcIiRp
bnRlcmZhY2VOYW1lXCIsICRxdW90ZWRGdW5jdGlvbk5hbWUsIFwiJGFyZ1R5cGVcIik7XG4iKTsK
LSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1lLmFwcGVu
ZCh0byRhcmdUeXBlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1lLmFwcGVuZChKUyR7YXJn
VHlwZX06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpO1xuIik7CiAgICAgICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpCiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBWZWN0b3I8JG5h
dGl2ZUVsZW1lbnRUeXBlPiAkbmFtZSA9IHRvTmF0aXZlQXJndW1lbnRzPCRuYXRpdmVFbGVtZW50
VHlwZT4oZXhlYywgJGFyZ3NJbmRleCk7XG4iKTsKQEAgLTM4NDksNyArMzg1MSw3IEBAIHN1YiBK
U1ZhbHVlVG9OYXRpdmUKIAogICAgIGlmICgkdHlwZSBlcSAiTm9kZUZpbHRlciIpIHsKICAgICAg
ICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25kaXRpb25hbCk7Ci0gICAgICAg
IHJldHVybiAidG8kdHlwZShleGVjLT52bSgpLCAkdmFsdWUpIjsKKyAgICAgICAgcmV0dXJuICJK
UyR7dHlwZX06OnRvSW1wbChleGVjLT52bSgpLCAkdmFsdWUpIjsKICAgICB9CiAKICAgICBpZiAo
JHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKQEAgLTM4ODEsNyArMzg4Myw3IEBA
IHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICBpZiAoJGFycmF5T3JTZXF1ZW5jZVR5cGUpIHsKICAg
ICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1JlZlB0clR5cGUoJGFycmF5T3JTZXF1ZW5jZVR5
cGUpKSB7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMke2FycmF5T3JTZXF1ZW5j
ZVR5cGV9LmgiKTsKLSAgICAgICAgICAgIHJldHVybiAiKHRvUmVmUHRyTmF0aXZlQXJyYXk8JHth
cnJheU9yU2VxdWVuY2VUeXBlfSwgSlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9PihleGVjLCAkdmFs
dWUsICZ0byR7YXJyYXlPclNlcXVlbmNlVHlwZX0pKSI7CisgICAgICAgICAgICByZXR1cm4gIih0
b1JlZlB0ck5hdGl2ZUFycmF5PCR7YXJyYXlPclNlcXVlbmNlVHlwZX0sIEpTJHthcnJheU9yU2Vx
dWVuY2VUeXBlfT4oZXhlYywgJHZhbHVlLCAmSlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9Ojp0b0lt
cGwpKSI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICJ0b05hdGl2ZUFycmF5PCIgLiBHZXRO
YXRpdmVWZWN0b3JJbm5lclR5cGUoJGFycmF5T3JTZXF1ZW5jZVR5cGUpIC4gIj4oZXhlYywgJHZh
bHVlKSI7CiAgICAgfQpAQCAtMzg5Miw3ICszODk0LDcgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQog
CiAgICAgIyBEZWZhdWx0LCBhc3N1bWUgYXV0b2dlbmVyYXRlZCB0eXBlIGNvbnZlcnNpb24gcm91
dGluZXMKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMkdHlwZS5oIiwgJGNvbmRpdGlvbmFsKTsK
LSAgICByZXR1cm4gInRvJHR5cGUoJHZhbHVlKSI7CisgICAgcmV0dXJuICJKUyR7dHlwZX06OnRv
SW1wbCgkdmFsdWUpIjsKIH0KIAogc3ViIE5hdGl2ZVRvSlNWYWx1ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0
aXZlRE9NT2JqZWN0LmNwcAppbmRleCA3MTkzOGZiZGViYzU1OGMyNzVjOTVhYWM2MzE3YWUyZDVk
Yjg0MDVlLi5hMTYxMTY1YTJiM2VkNjg2YWYyMGYyNmI4M2I5Y2M2NmI3MjI3ZGNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZl
RE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMjE0LDcgKzIxNCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rp
b25FeGNpdGluZ0Z1bmN0CiAgICAgVGVzdEFjdGl2ZURPTU9iamVjdCYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihl
eGVjKSk7Ci0gICAgTm9kZSogbmV4dENoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSkpOwor
ICAgIE5vZGUqIG5leHRDaGlsZChKU05vZGU6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5leGNpdGluZ0Z1bmN0aW9u
KG5leHRDaGlsZCk7CkBAIC0yODksNyArMjg5LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0QWN0aXZlRE8K
ICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RBY3RpdmVET01PYmplY3Q+KGdsb2Jh
bE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RBY3RpdmVET01PYmplY3QqIHRvVGVzdEFjdGl2ZURP
TU9iamVjdChKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0QWN0aXZlRE9NT2JqZWN0KiBKU1Rlc3RB
Y3RpdmVET01PYmplY3Q6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1
dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KHZhbHVl
KSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9N
T2JqZWN0LmgKaW5kZXggNTVjMmVmOTRlMjZjMjE4YjEwMTI2MWFkOWUxMTE0ZTA5MWU0NmYwNy4u
ZWU2NjQ2Mzc5NDllM2U0YWIzZTJkNWJiMWQ1YTc3ODQ3MDQ1Mzk2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RB
Y3RpdmVET01PYmplY3QuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0QWN0aXZlRE9NT2JqZWN0KiB0
b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwog
ICAgIH5KU1Rlc3RBY3RpdmVET01PYmplY3QoKTsKQEAgLTkzLDcgKzk0LDYgQEAgaW5saW5lIHZv
aWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RBY3RpdmVET01P
YmplY3QqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEFjdGl2ZURPTU9iamVjdCopOwotV0VCQ09S
RV9FWFBPUlQgVGVzdEFjdGl2ZURPTU9iamVjdCogdG9UZXN0QWN0aXZlRE9NT2JqZWN0KEpTQzo6
SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0
b21OYW1lZEdldHRlci5jcHAKaW5kZXggNTY4YzlkZTg0ZWUyY2Y3ZTJlMTEyYzdhMTZkMDdjOTdh
M2FkYzJkZC4uYWUxNzFjYmEyNjYyNzYzMGI4MzVlYjZkNjEzNjhjYjkyZDlmNjJjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0Q3VzdG9tTmEKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RD
dXN0b21OYW1lZEdldHRlcj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKiB0b1Rlc3RDdXN0b21OYW1lZEdldHRlcihKU0M6OkpTVmFsdWUgdmFsdWUpCitU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp0b0ltcGwoSlND
OjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFw
cGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCmluZGV4IDFlYjM1
ZDgyZTA4M2YxNzljNTA2YzE3NTcyZjE3NjY3N2YyYzk3NTAuLjEyMTliNDc5ZTMxZWNkNDkyNWZj
OWY3ODhmNGUwNWZhMzI1NTEyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5o
CkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBj
cmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CisgICAgc3RhdGljIFRlc3RDdXN0b21OYW1lZEdldHRlciogdG9JbXBsKEpTQzo6SlNW
YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKQEAgLTk3LDcg
Kzk4LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RDdXN0b21OYW1lZEdldHRlciopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RDdXN0b21OYW1lZEdldHRlciogdG9U
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOGVhZmEwN2Rk
N2UzNmUyY2Q1YjkxZmU2NjMyM2ZkNmM5MzA4ODJhMi4uNGVlN2UxZDFjOGUwNzY2MDcyY2M1ZDM2
MWY0NzYzNDQxNTU2ODVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcApA
QCAtMjkyLDcgKzI5Miw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50Q29uCiAgICAgcmV0dXJuIGNy
ZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBpbXBs
KTsKIH0KIAotVGVzdEV2ZW50Q29uc3RydWN0b3IqIHRvVGVzdEV2ZW50Q29uc3RydWN0b3IoSlND
OjpKU1ZhbHVlIHZhbHVlKQorVGVzdEV2ZW50Q29uc3RydWN0b3IqIEpTVGVzdEV2ZW50Q29uc3Ry
dWN0b3I6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBw
ZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3IqPih2YWx1ZSkpCiAgICAg
ICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9y
LmgKaW5kZXggNWJiZWVjODBlNGNjNGIzOGExOTc3MTE5NWFjMWRkNDY5NzZiMTMxNi4uYjNlMjlm
NDEwYjU3OTljNDMwMjgyZGNlNGY1MmU0OThlNmYzNGNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvci5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6
OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
KTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFdmVudENvbnN0cnVjdG9yKiB0b0lt
cGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7
CiAgICAgfkpTVGVzdEV2ZW50Q29uc3RydWN0b3IoKTsKIApAQCAtOTMsNyArOTQsNiBAQCBpbmxp
bmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEV2ZW50
Q29uc3RydWN0b3IqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV2ZW50Q29uc3RydWN0b3IqKTsK
LVdFQkNPUkVfRVhQT1JUIFRlc3RFdmVudENvbnN0cnVjdG9yKiB0b1Rlc3RFdmVudENvbnN0cnVj
dG9yKEpTQzo6SlNWYWx1ZSk7CiAKIGJvb2wgZmlsbFRlc3RFdmVudENvbnN0cnVjdG9ySW5pdChU
ZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQmLCBKU0RpY3Rpb25hcnkmKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5jcHAKaW5kZXggZGIzMzNkMjQ0NGMzOGU0ZTQ2YWI0N2JiNWM4OWJjYzhiM2ZhOGE1
NC4uZTc3NmNiODI5OGNiYWQzMjVlNDcyYjQ2MDZhYjVhZDdhNzVlZmYwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uRGlzcGF0Y2hFdmVudChF
eGUKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgRXZlbnQqIGV2dCh0b0V2ZW50KGV4ZWMtPmFy
Z3VtZW50KDApKSk7CisgICAgRXZlbnQqIGV2dChKU0V2ZW50Ojp0b0ltcGwoZXhlYy0+YXJndW1l
bnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNCb29sZWFuKGltcGwuZGlzcGF0Y2hFdmVudChldnQsIGVjKSk7CkBAIC0zNjQsNyAr
MzY0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXZlbnRUYXIKICAgICByZXR1cm4gY3JlYXRlTmV3V3Jh
cHBlcjxKU1Rlc3RFdmVudFRhcmdldD4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEV2
ZW50VGFyZ2V0KiB0b1Rlc3RFdmVudFRhcmdldChKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0RXZl
bnRUYXJnZXQqIEpTVGVzdEV2ZW50VGFyZ2V0Ojp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdl
dCo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJn
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5oCmluZGV4IGViMGEyZDk5YmVjY2FiN2U1MjMxMThlNTRkYmNhZDQ5MjFmNDQ4MDAu
LmQ1YTE1ZWFhNzllNzBkM2Y0MGE3MzkzODhlOTVjOTA4YzBlYTA0ZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
ICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFdmVudFRhcmdldCogdG9JbXBsKEpTQzo6
SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU09i
amVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKQEAgLTEw
MSw3ICsxMDIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCwgVGVzdEV2ZW50VGFyZ2V0KikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RFdmVudFRh
cmdldCopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEV2ZW50VGFyZ2V0KiB0b1Rlc3RFdmVudFRhcmdl
dChKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2Vw
dGlvbi5jcHAKaW5kZXggNGFkZTc2ZTkxNWIzOGNhNWYwN2I3NThhNjJmYzVjOTE4ZTliYjk2My4u
YzAyYzdlOTI2MzRlZjEwNGJlYWUzMWIxZjVhYmRlNjA0OGVhMWVlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2Vw
dGlvbi5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RFeGNlcHRpbwogICAg
IHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV4Y2VwdGlvbj4oZ2xvYmFsT2JqZWN0LCBp
bXBsKTsKIH0KIAotVGVzdEV4Y2VwdGlvbiogdG9UZXN0RXhjZXB0aW9uKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKK1Rlc3RFeGNlcHRpb24qIEpTVGVzdEV4Y2VwdGlvbjo6dG9JbXBsKEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
RXhjZXB0aW9uKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
eGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uaAppbmRleCAzOTg0NTc0ZTk4N2Y5YjgxMTg0YjBiNmZjYTNiZTFlNzc2ZmEx
YTRlLi4yMzYwYTljNDExMTgyYTNkYTE5NWViMjIwNzAxNDVjZjFjYjI4NjIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
ICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFeGNlcHRpb24qIHRvSW1wbChKU0M6OkpT
VmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEV4
Y2VwdGlvbigpOwpAQCAtOTQsNyArOTUsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQo
RE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEV4Y2VwdGlvbiopCiB9CiAKIFdFQkNPUkVfRVhQ
T1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
LCBUZXN0RXhjZXB0aW9uKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0RXhjZXB0aW9uKiB0b1Rlc3RF
eGNlcHRpb24oSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5kZXggNDI3YWJhOGQ0MGViNGQ0
ZGQ4YmViNzc5MDQ3Nzk2NWIxN2FlYmIyZi4uZWJhOWY3YTMzMTg3ZjkxNmJmZGU2MjI0NzhiYzcx
MGZkZDI3N2VjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApA
QCAtMjExLDcgKzIxMSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEdlbmVyYXRlCiAgICAgcmV0dXJuIGNy
ZWF0ZU5ld1dyYXBwZXI8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4oZ2xvYmFsT2JqZWN0LCBp
bXBsKTsKIH0KIAotVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRvVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIEpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGU6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKaW5kZXggZGY3YmRkYmI0OTI3ZjA0OGY4YmZkOThi
ODJhN2Q3NzcwNjYwNjMwOC4uNmVkMzViZDdhZjQ0MGZlMzBhNzUwZjBjODMzNWE3M2I3MzE4OGI4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCkBAIC0zOCw2ICszOCw3
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUo
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3Rh
dGljIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBz
dGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRl
eHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqKQogfQog
CiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiwgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqKTsKLVdFQkNPUkVfRVhQT1JU
IFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKEpTQzo6
SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNw
cAppbmRleCBiMTQzY2M0ZTM2MjA0ZWY3ZGU2NmEwZDE2ZmVmNTNjNDE2YTJmYTQzLi45YTFiZjE3
N2JmNThlMWUxNjQ5YmYyZGZmMWVjODU3MDA4YmMyNzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNw
cApAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05v
ZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKLSAgICBOb2RlKiBuYXRpdmVWYWx1ZSh0b05vZGUodmFsdWUpKTsKKyAgICBOb2RlKiBuYXRp
dmVWYWx1ZShKU05vZGU6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldEltcGxlbWVudHNO
b2RlKG5hdGl2ZVZhbHVlKTsKQEAgLTc5NSw3ICs3OTUsNyBAQCB2b2lkIHNldEpTVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVj
dCwgRQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RJbnRlcmZhY2UmIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgTm9kZSogbmF0aXZlVmFsdWUodG9Ob2RlKHZhbHVlKSk7
CisgICAgTm9kZSogbmF0aXZlVmFsdWUoSlNOb2RlOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgVGVz
dFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZSgmaW1wbCwgbmF0aXZlVmFsdWUpOwpA
QCAtODQxLDcgKzg0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMihFCiAgICAgY29uc3QgU3Ry
aW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMCkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVj
LT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5h
cmd1bWVudCgxKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVj
LT5hcmd1bWVudCgxKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNW
YWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6
OmdldFB0cihpbXBsLmltcGxlbWVudHNNZXRob2QyKHNjcmlwdENvbnRleHQsIHN0ckFyZywgb2Jq
QXJnLCBlYykpKTsKQEAgLTkwNyw3ICs5MDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMgog
ICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDApLmlzRW1wdHkoKSA/IFN0
cmluZygpIDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rl
c3RPYmooZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2Jq
Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9k
MigmaW1wbCwgc2NyaXB0Q29udGV4dCwgc3RyQXJnLCBvYmpBcmcsIGVjKSkpOwpAQCAtOTczLDcg
Kzk3Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEludGVyZmFjCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dy
YXBwZXI8SlNUZXN0SW50ZXJmYWNlPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0SW50
ZXJmYWNlKiB0b1Rlc3RJbnRlcmZhY2UoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEludGVyZmFj
ZSogSlNUZXN0SW50ZXJmYWNlOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlm
IChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPih2YWx1ZSkp
CiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCmluZGV4
IDdkZDhkMDMzZTQ3MWIxMjkzMjg4ZTY5NzA5OWRiM2M3ZjU3NzIyMDIuLjFhNDc0NzgwN2FiYzk0
Yjg0YmYwMzhhYWE2MWZjYmRlMzI4OGM3MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKQEAgLTQwLDYg
KzQwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBzdGF0aWMgVGVzdEludGVyZmFjZSogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lk
IHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXRC
eUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7CkBAIC0xMjAsNyArMTIxLDYgQEAg
aW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RJ
bnRlcmZhY2UqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEludGVyZmFjZSopOwotV0VCQ09SRV9F
WFBPUlQgVGVzdEludGVyZmFjZSogdG9UZXN0SW50ZXJmYWNlKEpTQzo6SlNWYWx1ZSk7CiAKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwCmluZGV4IDNlOTMxMWU1MzBiNWMzYTZmZDUyMWZkNTQwOTA0NGM4YzE2NDRk
M2MuLmViMTZiMzA5ZjllODc3NGIzYTRmZmU0NTdhYjU4NTNlMWFiY2EwYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTIyNyw3ICsyMjcsNyBA
QCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFRlc3RNZWRpYVF1ZQogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0b1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlm
IChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IDU1NzM1ZWIzMjMxZDc0Y2M2
NGVhZWIzZGM5N2NkODRhMGNmZWU5NGEuLjdjODY1NDJmOTAwMTE4ZDRhYTE0ZTNmZjlhMTE3YjBh
NGZmZjliMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApA
QCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3Jl
YXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVj
dCopOworICAgIHN0YXRpYyBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogdG9JbXBsKEpTQzo6
SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5l
IHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogdG9U
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCA3NTQ2
ZGNjZDJhOTJjMTIxYTg0ZDRmOGU1MmVkNjg4OGYxNjhkODQ1Li43N2Y5N2NiZTgzZDFiNmRhNTE2
NGY2NGRiMjI0ZTM4Zjg4OGMzNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3Iu
Y3BwCkBAIC0yODEsNyArMjgxLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmFtZWRDb24KICAgICByZXR1
cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yPihnbG9iYWxPYmplY3Qs
IGltcGwpOwogfQogCi1UZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9UZXN0TmFtZWRDb25zdHJ1Y3Rv
cihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0TmFtZWRDb25zdHJ1Y3RvciogSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvcjo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byog
d3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KHZhbHVlKSkK
ICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3Ry
dWN0b3IuaAppbmRleCBlY2U5ODg3NzU5ZTA4NjgwNGQ5YmRjNWE1YTRmNjZlMjRjZjM3YjYwLi45
NjE3YzgzYmZiNGIwYmJhNmE4NTY4ZDdlNzk1ZDJkMmZmMzZjOWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZENvbnN0cnVjdG9yLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYs
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdE5hbWVkQ29uc3RydWN0b3Iq
IHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0Nl
bGwqKTsKICAgICB+SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcigpOwogCkBAIC05Miw3ICs5Myw2IEBA
IGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0
TmFtZWRDb25zdHJ1Y3RvciopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0TmFtZWRDb25zdHJ1Y3Rv
ciopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE5hbWVkQ29uc3RydWN0b3IqIHRvVGVzdE5hbWVkQ29u
c3RydWN0b3IoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKaW5kZXggZTE3M2FhY2Y3ODg3NGFiM2FlMDA4
Mzg2YTRlMTg5MWE2NGI3NzE2Zi4uOGI1YTVlY2M1NmZmYmRhMjcyMmI1ZjZiMmRmMjliOTY2Nzg2
ZGQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcApAQCAtNTM0LDcgKzUz
NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGVzdE5vbmRldGVyCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBw
ZXI8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVz
dE5vbmRldGVybWluaXN0aWMqIHRvVGVzdE5vbmRldGVybWluaXN0aWMoSlNDOjpKU1ZhbHVlIHZh
bHVlKQorVGVzdE5vbmRldGVybWluaXN0aWMqIEpTVGVzdE5vbmRldGVybWluaXN0aWM6OnRvSW1w
bChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE5vbmRldGVybWluaXN0aWMqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAm
d3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKaW5kZXggZjUy
ZWJiZDEzMzAwMWQwNzM3NWVjNDRmNWQ4ZjdmMThlYWQzNjVhYi4uYTY0MjExMWNhZjE2ZDIzNTEw
OTk3MGUzZDAwZjkxZmYxZDhlMDE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5o
CkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBj
cmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CisgICAgc3RhdGljIFRlc3ROb25kZXRlcm1pbmlzdGljKiB0b0ltcGwoSlNDOjpKU1Zh
bHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVz
dE5vbmRldGVybWluaXN0aWMoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3Jh
cHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE5vbmRldGVybWluaXN0aWMq
KQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE5vbmRldGVybWluaXN0aWMqKTsKLVdFQkNPUkVfRVhQ
T1JUIFRlc3ROb25kZXRlcm1pbmlzdGljKiB0b1Rlc3ROb25kZXRlcm1pbmlzdGljKEpTQzo6SlNW
YWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBlNDM0ZGVj
YmY4MDY4OTk5MzIxYWFjZWY0MTBhOGE3YWM5MjJmMmYxLi5mOGY0ODk5YjA0NmExMmIzNmRiMzdk
MDIyYjBiZTM1Y2M0MjliYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMjA3OCw3ICsyMDc4LDcgQEAgdm9p
ZCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2Jq
JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRv
VGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9J
bXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0VGVzdE9iakF0dHIobmF0aXZlVmFsdWUpOwpAQCAt
MjA5OCw3ICsyMDk4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHUKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRl
c3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2
ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0WE1MT2JqQXR0
cihuYXRpdmVWYWx1ZSk7CkBAIC0yNDU0LDcgKzI0NTQsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsK
KyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwpAQCAtMjQ3Nyw3ICsyNDc3LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU8K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAg
IFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlt
cGwuc2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIG5hdGl2ZVZhbHVlKTsK
QEAgLTI0OTcsNyArMjQ5Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAg
ICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBu
YXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAt
MjUyMCw3ICsyNTIwLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXgKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRl
c3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2
ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0yNTQz
LDcgKzI1NDMsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YQogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9i
aiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFs
dWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI1NjYsNyAr
MjU2Niw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoRXhlCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBu
YXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShK
U1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMjU4OSw3ICsyNTg5
LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0
cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmoKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2
ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVz
dE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0V2l0aFNjcmlwdEFyZ3VtZW50c0Fu
ZENhbGxTdGFja0F0dHJpYnV0ZShuYXRpdmVWYWx1ZSk7CkBAIC0yNzQwLDcgKzI3NDAsNyBAQCB2
b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBFbmNvZGVkSlNWYQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RP
YmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgU1ZHUHJvcGVydHlUZWFyT2ZmPFNW
R1BvaW50PiogbmF0aXZlVmFsdWUodG9TVkdQb2ludCh2YWx1ZSkpOworICAgIFNWR1Byb3BlcnR5
VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKEpTU1ZHUG9pbnQ6OnRvSW1wbCh2YWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
bjsKICAgICBpbXBsLnNldE11dGFibGVQb2ludChuYXRpdmVWYWx1ZSk7CkBAIC0yNzYwLDcgKzI3
NjAsNyBAQCB2b2lkIHNldEpTVGVzdE9iakltbXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKUwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgU1ZHUHJvcGVydHlU
ZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUodG9TVkdQb2ludCh2YWx1ZSkpOworICAgIFNW
R1Byb3BlcnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKEpTU1ZHUG9pbnQ6OnRvSW1w
bCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAg
ICAgIHJldHVybjsKICAgICBpbXBsLnNldEltbXV0YWJsZVBvaW50KG5hdGl2ZVZhbHVlKTsKQEAg
LTI5MzksNyArMjkzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgY29uc3QgU3Ry
aW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVj
LT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5h
cmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVj
LT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1w
bC52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpOwpAQCAtMjk3NCw3
ICsyOTc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBjb25zdCBTdHJpbmcmIHN0
ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3Vt
ZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50
KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3Vt
ZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzTnVtYmVyKGltcGwuYnl0ZU1ldGhvZFdpdGhBcmdzKGJ5dGVBcmcsIHN0ckFyZywg
b2JqQXJnKSk7CkBAIC0zMDA5LDcgKzMwMDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RXaXRoQXJncyhFeGVjUwog
ICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0
cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rl
c3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2Jq
Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC5vY3RldE1ldGhvZFdpdGhB
cmdzKG9jdGV0QXJnLCBzdHJBcmcsIG9iakFyZykpOwpAQCAtMzA0NCw3ICszMDQ0LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdN
ZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1
bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5n
KGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAg
ICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVz
dE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVy
KGltcGwubG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSk7CkBAIC0z
MDc5LDcgKzMwNzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YQogICAgIGNvbnN0IFN0cmlu
ZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+
YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJn
dW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+
YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFs
dWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpn
ZXRQdHIoaW1wbC5vYmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZykpKTsK
QEAgLTMwOTYsNyArMzA5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcoRXhlCiAgICAgVGVzdE9i
aiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVmVjdG9yPFJlZlB0cjxTY3JpcHRQcm9maWxl
Pj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8U2NyaXB0UHJvZmlsZSwgSlNTY3Jp
cHRQcm9maWxlPihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgJnRvU2NyaXB0UHJvZmlsZSkpKTsK
KyAgICBWZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJO
YXRpdmVBcnJheTxTY3JpcHRQcm9maWxlLCBKU1NjcmlwdFByb2ZpbGU+KGV4ZWMsIGV4ZWMtPmFy
Z3VtZW50KDApLCAmSlNTY3JpcHRQcm9maWxlOjp0b0ltcGwpKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhzZXF1ZW5jZUFy
Zyk7CkBAIC0zMTUzLDcgKzMxNTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJncwogICAgIGNv
bnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDApLmlzRW1wdHkoKSA/IFN0cmluZygp
IDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmoo
ZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgV1RGOjpnZXRQdHIoaW1wbC5tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKHN0
ckFyZywgb2JqQXJnLCBlYykpKTsKQEAgLTM2NjksNyArMzY2OSw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDEoCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE9i
aiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoqIG9i
akFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1l
bnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYykpOwpAQCAtMzY4OSw3ICszNjg5LDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kMigKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0T2Jq
KiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2Jq
QXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMzgwMSw3ICszODAxLDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kOCgKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0T2Jq
KiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2Jq
QXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnKTsKQEAg
LTQxMjEsNyArNDEyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhl
Yy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNUZXN0Tm9kZTo6dG9JbXBs
KGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBpbXBsLmNvbnZlcnQxKHZhbHVlKTsKQEAgLTQxMzgsNyArNDEzOCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MihFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1F
cnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVz
dE5vZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9k
ZSogdmFsdWUoSlNUZXN0Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQyKHZhbHVlKTsKQEAgLTQx
NTUsNyArNDE1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Db252ZXJ0NChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1w
bCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+
YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNUZXN0Tm9kZTo6dG9JbXBsKGV4
ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBp
bXBsLmNvbnZlcnQ0KHZhbHVlKTsKQEAgLTQxNzIsNyArNDE3Miw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NShFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE5v
ZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9kZSog
dmFsdWUoSlNUZXN0Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQ1KHZhbHVlKTsKQEAgLTQyNTQs
NyArNDI1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYm
ICFleGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cyhKU1Rlc3RPYmo6OmluZm8oKSkpCiAgICAgICAg
IHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCAwLCAib2JqQXJnIiwgIlRlc3RP
YmoiLCAic3RyaWN0RnVuY3Rpb25XaXRoU2VxdWVuY2UiLCAiVGVzdE9iaiIpOwotICAgIFRlc3RP
YmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBv
YmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gYSh0b05hdGl2ZUFycmF5
PHVuc2lnbmVkPihleGVjLCBleGVjLT5hcmd1bWVudCgxKSkpOwpAQCAtNDI3OSw3ICs0Mjc5LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KEUKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAg
ICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMtPmFy
Z3VtZW50KDApLmluaGVyaXRzKEpTVGVzdE9iajo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRo
cm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIDAsICJvYmpBcmciLCAiVGVzdE9iaiIsICJzdHJp
Y3RGdW5jdGlvbldpdGhBcnJheSIsICJUZXN0T2JqIik7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRv
VGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RP
Ymo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgVmVjdG9yPGludD4gYXJyYXkodG9OYXRpdmVBcnJheTxpbnQ+KGV4ZWMsIGV4
ZWMtPmFyZ3VtZW50KDEpKSk7CkBAIC00MzQxLDE0ICs0MzQxLDE0IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRo
b2QoRXhlY1N0CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgTm9kZSog
aGVhZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBOb2RlKiBoZWFkKEpTTm9kZTo6
dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICBWZWN0b3I8Tm9kZSo+IHRhaWw7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMSwgY291
bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIGlm
ICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkuaW5oZXJpdHMoSlNOb2RlOjppbmZvKCkpKQog
ICAgICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIGksICJ0YWls
IiwgIlRlc3RPYmoiLCAidmFyaWFkaWNOb2RlTWV0aG9kIiwgIk5vZGUiKTsKLSAgICAgICAgdGFp
bC5hcHBlbmQodG9Ob2RlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7CisgICAgICAgIHRh
aWwuYXBwZW5kKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7CiAg
ICAgfQogICAgIGltcGwudmFyaWFkaWNOb2RlTWV0aG9kKGhlYWQsIHRhaWwpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC00NDM0LDcgKzQ0MzQsNyBAQCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRlc3RPYmoqIGltcAogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVz
dE9iaj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE9iaiogdG9UZXN0T2JqKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RPYmoqIEpTVGVzdE9iajo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCAz
YzBiZmM1YzlkZWQxNGQzZGM2MzcwYmQxYzJlNzgxZTkwZGJiOGZlLi4zMmVlYWY2NzQwYWZmMWE0
ZWU1NmExMmE0YTY2MzBkNDg3NDRlM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0zOCw2ICszOCw3IEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYs
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RP
YmoqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxs
Kik7CiAgICAgfkpTVGVzdE9iaigpOwpAQCAtMTA2LDcgKzEwNyw2IEBAIGlubGluZSB2b2lkKiB3
cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0T2JqKikKIH0KIAogV0VC
Q09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCosIFRlc3RPYmoqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RPYmoqIHRvVGVzdE9iaihK
U0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA2MzA4ZDllM2JiMzAwZTdiYWRj
YzdkZTIwYWUxYzk1OTM4NTBhYWYwLi4yMzQ2NTJkYzdhODQ2NTFhZGZkNmRjYzYyN2ZiMmRlZGQ0
Nzk1NWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3Bw
CkBAIC0xMTgsNyArMTE4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdEoKICAgICBKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwog
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dW
TUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBC
bG9iKiBibG9iKHRvQmxvYihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIEJsb2IqIGJsb2IoSlNC
bG9iOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIFJlZlB0cjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4gb2JqZWN0ID0g
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZShibG9iKTsKQEAgLTI4Myw3ICsyODMs
NyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFRlc3RPdmVybG9hZAogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVy
PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAK
LVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAg
IGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCmluZGV4IDljNzZiYWU0NDk4Y2My
YmQ1MzM4MDdiNTNiODIxZTViOGRjMjQ3YzYuLjQ4MjU2NDIzZTA0MzhmM2NlOTQyNmY2MzIxN2Yx
ZTYxZTNlYWU5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMu
aApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Y3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogdG9JbXBsKEpT
Qzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAg
IH5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5s
aW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyog
dG9UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggODY3ZDBjMDg1YzI1ZTY4N2ViOWM1NzVkNjZhYTQx
ZmM3YzlkYWZhMy4uNjUzNzBiNTZkZDYxNjExZmRhM2IwYzJkYzZmODJjMWM3NmY0Yjg4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RTZXJpYWxpegogICAgIHJl
dHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZSogdG9UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKK1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmlt
cGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuaAppbmRleCBhNDhiYzhlMDY5OTNmNDM2NTY3NjAxZTNmNjBmNDM2NWM4YWJlZGM5Li5l
YTAwZGUyMWEyNDhkZjdiODRkNTk0MjVjNWJjMjE1ODQ3N2VkM2YxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC00MCw2ICs0
MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5
cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAg
c3RhdGljIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHRvSW1wbChKU0M6OkpT
VmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKCk7CiAKQEAgLTk3LDcgKzk4LDYgQEAg
aW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnQKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UqIHRvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShK
U0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMu
Y3BwCmluZGV4IGUyYTkzYWExZjRkZTg2ZGQ5NzUwZWVhYTIzNTlkNmRiN2ExZTgyYmYuLjBmNmQx
YmU2MzdkNmRkMWRiODczMWU2NjQ4OWM4MDZjOWIxZjI1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cApAQCAtNTc0LDcgKzU3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyCiAgICAgVGVzdFR5
cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4+IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSwgSlNTZXJpYWxpemVkU2NyaXB0VmFsdWU+KGV4ZWMsIGV4ZWMtPmFyZ3Vt
ZW50KDApLCAmdG9TZXJpYWxpemVkU2NyaXB0VmFsdWUpKSk7CisgICAgVmVjdG9yPFJlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxT
ZXJpYWxpemVkU2NyaXB0VmFsdWUsIEpTU2VyaWFsaXplZFNjcmlwdFZhbHVlPihleGVjLCBleGVj
LT5hcmd1bWVudCgwKSwgJkpTU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp0b0ltcGwpKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVy
KGltcGwubWV0aG9kV2l0aFNlcXVlbmNlQXJnKHNlcXVlbmNlQXJnKSk7CkBAIC02OTcsNyArNjk3
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXQKICAgICBUZXN0VHlwZWRlZnMmIGltcGwgPSBj
YXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoZXhlYykpOwotICAgIFZlY3RvcjxSZWZQdHI8VGVzdEV2ZW50VGFyZ2V0Pj4gc2VxdWVu
Y2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8VGVzdEV2ZW50VGFyZ2V0LCBKU1Rlc3RFdmVudFRh
cmdldD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZ0b1Rlc3RFdmVudFRhcmdldCkpKTsKKyAg
ICBWZWN0b3I8UmVmUHRyPFRlc3RFdmVudFRhcmdldD4+IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5h
dGl2ZUFycmF5PFRlc3RFdmVudFRhcmdldCwgSlNUZXN0RXZlbnRUYXJnZXQ+KGV4ZWMsIGV4ZWMt
PmFyZ3VtZW50KDApLCAmSlNUZXN0RXZlbnRUYXJnZXQ6OnRvSW1wbCkpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29sZWFuKGltcGwu
Y2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUoc2VxdWVuY2VBcmcpKTsKQEAgLTc2
OSw3ICs3NjksNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RUeXBlZGVmcwogICAgIHJldHVybiBjcmVhdGVO
ZXdXcmFwcGVyPEpTVGVzdFR5cGVkZWZzPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0
VHlwZWRlZnMqIHRvVGVzdFR5cGVkZWZzKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RUeXBlZGVm
cyogSlNUZXN0VHlwZWRlZnM6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYg
KGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odmFsdWUpKQog
ICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKaW5kZXggN2U1
ZWM4ZGFhY2MyMThmM2VhZmUyYjIyMjA3OWNlMmRmMDRmN2M0YS4uOTVhZDI3M2QxOGZmMzRjNzNj
YmYxOGE5OTliYzI3OTc3NjJhZTYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKQEAgLTM4LDYgKzM4LDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShK
U0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0
aWMgVGVzdFR5cGVkZWZzKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RUeXBlZGVmcygpOwpAQCAtOTMsNyArOTQsNiBA
QCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVz
dFR5cGVkZWZzKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RUeXBlZGVmcyopOwotV0VCQ09SRV9F
WFBPUlQgVGVzdFR5cGVkZWZzKiB0b1Rlc3RUeXBlZGVmcyhKU0M6OkpTVmFsdWUpOwogCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCmluZGV4IGJhNDZkOGNjZDUxNzU0OGQ4
ZGZhNTlmN2E0MGEzYWQyYjU5ODZiNDUuLjAxMzRmOTVmYmYyOWUxODM2Njk0OGZjOWI5YmNmYzhj
ZDkzNGZkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU2F0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
YXR0cmlidXRlKiBpCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNhdHRyaWJ1dGU+KGds
b2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLWF0dHJpYnV0ZSogdG9hdHRyaWJ1dGUoSlNDOjpKU1Zh
bHVlIHZhbHVlKQorYXR0cmlidXRlKiBKU2F0dHJpYnV0ZTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNhdHRyaWJ1
dGUqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaApp
bmRleCAyOTdhZDI2YjUyNTAyYmI4NGZmNjVhNjY3MGY2Y2E2YzQ0YWM2NTQxLi41YzgxYzAwMzI2
OGQ0YzNkNjY5Zjk1NWNiNWRiN2UwNDQ2YmJjYjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaApAQCAtMzksNiArMzks
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0
YXRpYyBhdHRyaWJ1dGUqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRl
c3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNhdHRyaWJ1dGUoKTsKIApAQCAtOTIsNyArOTMs
NiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwg
YXR0cmlidXRlKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIGF0dHJpYnV0ZSopOwotV0VCQ09SRV9FWFBP
UlQgYXR0cmlidXRlKiB0b2F0dHJpYnV0ZShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU3JlYWRvbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU3JlYWRvbmx5LmNwcAppbmRleCBlZDRhNDRiNWYwMmQ4NDFmNmJmNGRkYWI5ZDg1
OWQ5YTFhZDg1MjAzLi5jY2JmNWVkYjJkZmNjN2VjYTUwYTNjODJmYzA4NDFhM2M1M2I1ZjdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFk
b25seS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
cmVhZG9ubHkuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCByZWFkb25seSogaW0K
ICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU3JlYWRvbmx5PihnbG9iYWxPYmplY3QsIGlt
cGwpOwogfQogCi1yZWFkb25seSogdG9yZWFkb25seShKU0M6OkpTVmFsdWUgdmFsdWUpCityZWFk
b25seSogSlNyZWFkb25seTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAo
YXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNyZWFkb25seSo+KHZhbHVlKSkKICAgICAg
ICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAppbmRleCBiNmVmYTRhNjc4NzI4YjA0
OWU4ZDNmNDg1MzUzZDQ0NzZkYTVlMGY4Li40ZWE2NjUyZWIwZjFmZjY5ZmQ0OGFhNWI1NjY3YTRj
NjI2YTQwMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNyZWFkb25seS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU3JlYWRvbmx5LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgcmVhZG9ubHkqIHRvSW1wbChK
U0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAg
ICB+SlNyZWFkb25seSgpOwogCkBAIC05MSw3ICs5Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVy
Q29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCByZWFkb25seSopCiB9CiAKIFdFQkNPUkVf
RVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCByZWFkb25seSopOwotV0VCQ09SRV9FWFBPUlQgcmVhZG9ubHkqIHRvcmVhZG9ubHkoSlND
OjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApp
bmRleCAxZTM3ZWVjY2ZmYTg3MDI5OTBkN2Y3NDczZGUwZWFhMmViOTY4OWI3Li5lOTIwYzFlMTMz
NDU5MDE2ZDYyZTg3MjAzOWE0MDdlOWQ3OWY1ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTY4
OSw2ICs2ODksMjEgQEAgc3RydWN0IEVsZW1lbnRUeXBlQ2FzdFRyYWl0czxFeHBlY3RlZFR5cGUs
IEV4cGVjdGVkVHlwZT4gewogICAgIHN0YXRpYyBib29sIGlzKEV4cGVjdGVkVHlwZSYpIHsgcmV0
dXJuIHRydWU7IH0KIH07CiAKKy8vIERvd25jYXN0aW5nIGZ1bmN0aW9ucyBmb3IgRWxlbWVudCB0
eXBlcy4KK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlPgoraW5saW5l
IHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxTb3VyY2U+Ojp2YWx1ZSwg
Y29uc3QgVGFyZ2V0JiwgVGFyZ2V0Jj46OnR5cGUgZG93bmNhc3QoU291cmNlJiBzb3VyY2UpCit7
CisgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPFRhcmdldCwgU291cmNlPjo6dmFs
dWUsICJVbm5lY2Vzc2FyeSBjYXN0Iik7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oaXNFbGVtZW50T2ZUeXBlPGNvbnN0IFRhcmdldD4oc291cmNlKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxTb3Vy
Y2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0JiwgVGFyZ2V0Jj46OnR5cGU+KHNvdXJjZSk7Cit9Cit0
ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJjZT4gaW5saW5lIHR5cGVuYW1l
IHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxTb3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFy
Z2V0KiwgVGFyZ2V0Kj46OnR5cGUgZG93bmNhc3QoU291cmNlKiBzb3VyY2UpCit7CisgICAgc3Rh
dGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPFRhcmdldCwgU291cmNlPjo6dmFsdWUsICJVbm5l
Y2Vzc2FyeSBjYXN0Iik7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIXNv
dXJjZSB8fCBpc0VsZW1lbnRPZlR5cGU8Y29uc3QgVGFyZ2V0Pigqc291cmNlKSk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxT
b3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0KiwgVGFyZ2V0Kj46OnR5cGU+KHNvdXJjZSk7Cit9
CisKIGlubGluZSBib29sIE5vZGU6Omhhc0F0dHJpYnV0ZXMoKSBjb25zdAogewogICAgIHJldHVy
biBpc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KHRoaXMpLT5oYXNBdHRyaWJ1dGVzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDM4OWMyYjhhM2I4ZTJmNzg2YWMxM2U4ZTQyMThj
Yjk2YzNmYjhmODguLmNhODM5ZTk4MzAyOGFlNmZmMTM5MjNkMTJkOTg3NDViOGQyMzE5YjAgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC02MzMsNiArNjMzLDcgQEAgc3ViIHByaW50VHlw
ZUhlbHBlcnMKICAgICAgICAgfQogCiAgICAgICAgIG15ICRjbGFzcyA9ICRwYXJzZWRUYWdzeyRu
YW1lfXtpbnRlcmZhY2VOYW1lfTsKKyAgICAgICAgIyBGSVhNRTogUmVuYW1lIHRoZXNlIGhlbHBl
cnMgdG8gaXM8KkVsZW1lbnQ+KCkuCiAgICAgICAgIG15ICRjaGVja0hlbHBlciA9ICJpcyRjbGFz
cyI7CiAKICAgICAgICAgcHJpbnQgRiA8PEVORApAQCAtNjYzLDYgKzY2NCwxMCBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgQXJnVHlwZT4KIHN0cnVjdCBFbGVtZW50VHlwZUNhc3RUcmFpdHM8Y29uc3Qg
JGNsYXNzLCBBcmdUeXBlPiB7CiAgICAgc3RhdGljIGJvb2wgaXMoQXJnVHlwZSYgbm9kZSkgeyBy
ZXR1cm4gJGNoZWNrSGVscGVyKG5vZGUpOyB9CiB9OworCisvLyBGSVhNRTogUmVtb3ZlIHRoZXNl
IG1hY3JvcyBvbmNlIHRoZSBjb2RlIGhhcyBiZWVuIHBvcnRlZCB0byB1c2luZworLy8gZG93bmNh
c3Q8KkVsZW1lbnQ+KCkuCisjZGVmaW5lIHRvJGNsYXNzKHgpIFdlYkNvcmU6OmRvd25jYXN0PFdl
YkNvcmU6OiRjbGFzcz4oeCkKIEVORAogICAgICAgICA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuaAppbmRleCA0NjY5MTYzMjVjZWQ3NmM2YmM5N2Y3ODBjN2M1ODYxNTFm
ZGE5MzZhLi4yMzJiMDI1NjA0M2VhNTZiODVjZDE2ODFmNmQ1ODBiOTE1YjBmOGM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC0xNTUsOCArMTU1LDYgQEAgYm9v
bCBpc0VudGVyS2V5S2V5ZG93bkV2ZW50KEV2ZW50Kik7CiBib29sIGlzTGlua0NsaWNrKEV2ZW50
Kik7CiBib29sIHNob3VsZFByb2hpYml0TGlua3MoRWxlbWVudCopOwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTEFuY2hvckVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEhUTUxBbmNob3JFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5o
CmluZGV4IGFjMDdlOTg2Y2NjNDhhNWFmNGEyMDMzMTE2NGYxMWVkZGY5OGExZTUuLjhkYjc1ODk2
Y2UzNjAzMWE0MzIxMDUzODVmMzNiODM4M2RjZmNlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaApAQCAtNzEsOCArNzEsNiBAQCBwcml2YXRlOgogICAgIFNoYXBlIG1fc2hh
cGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEFyZWFFbGVtZW50KQotCiB9IC8vbmFtZXNw
YWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaAppbmRleCAz
MGQyYThmMzllY2FkYjg4ZjcwMTgyNjE4NDMzYmEwZWRlMGY4NTIzLi43ZTg2NThjODcyMzAyODU1
NGFmNTNmZTY2MzJkYzEzMDVmYTc5ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBdWRpb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0Vs
ZW1lbnQuaApAQCAtNDMsOCArNDMsNiBAQCBwcml2YXRlOgogICAgIEhUTUxBdWRpb0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCk7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTEF1ZGlvRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCmluZGV4IDQwNTRlMTc1ODZjMjg4MmEyMmQ4NWVm
N2RjNDIwZjUxOWNlMDA0NzguLmI3OTlmMWZhMTg0OTk5NzJmYjAyY2I2NTY2NGE1NzEyYWQ2ODYy
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikg
b3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEJhc2VFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJvZHlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oCmlu
ZGV4IDAxN2VmYzIyY2I3NmY2YzVlNzkyNjRkZDJlOWI1ZDIwM2Y5MTViODIuLjBkNGQ2MGE1NjVh
NmIyYTE5OTZjODY4MzY2MjgxZjhjNDc0YTJlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9k
eUVsZW1lbnQuaApAQCAtODEsOCArODEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBh
ZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IG92ZXJy
aWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxCb2R5RWxlbWVudCkKLQogfSAvL25hbWVz
cGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRl
eCA4ODM3ZDA4MjczMjVkNDNjYjRkNjI5YWE4ZGY2YmVkN2YyZDE1OTQ1Li44YWJkZTc3ZmQ5OWVk
NjZjMzZhOWEzOWE0MWE3MDZkNzg0MjRlMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5oCkBAIC0xODAsOCArMTgwLDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJl
ZlB0cjxJbWFnZT4gbV9jb3BpZWRJbWFnZTsgLy8gRklYTUU6IFRoaXMgaXMgdGVtcG9yYXJ5IGZv
ciBwbGF0Zm9ybXMgdGhhdCBoYXZlIHRvIGNvcHkgdGhlIGltYWdlIGJ1ZmZlciB0byByZW5kZXIg
KGFuZCBmb3IgQ1NTQ2FudmFzVmFsdWUpLgogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxDYW52
YXNFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEYXRhTGlzdEVsZW1lbnQuaAppbmRleCA2N2ZiMWRiOGQ3NzY4MjFhYzYxN2MxMGRiMGMz
ZmM5OTBkNGM1NjY3Li5jZjFkM2ZmNjIxYzNmYTIwOGVkZTY4YjNhYmU5YTU4YmM4MDUyOTAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaApAQCAtNTAsOCArNTAs
NiBAQCBwcml2YXRlOgogICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTERhdGFMaXN0RWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmIC8vIEVOQUJMRShEQVRBTElTVF9F
TEVNRU5UKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAppbmRleCBj
NDFmNmY0NzFhMDQ2MzBhNzljOWY2ZjQzOTI0ZTYyZTY0OThlN2M1Li4wNzNjZDU5NGQzMDcwODEy
YjliNGFlNjRlODIwZTM1Yjk2YmM3NmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNPcGVu
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEZXRhaWxzRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTERldGFpbHNFbGVtZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERpdkVsZW1lbnQuaAppbmRleCAxYjVkMjBhZDg4MjNmZjFmY2FjMzFlZGViNjg4
ZTRiZThiODgyNDRhLi5mZjgxYjliODJjYWJmNzZmMWRlMjA0N2Q0ZjU4MTFjNWRhYzViZjBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCkBAIC00MCw4ICs0MCw2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEaXZFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MRGl2RWxlbWVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCmluZGV4IGQ5ZmQ0NTIzZTQy
MjM1Yjk3MWRkMTRkNGY4MzFlMmI5ZjQ2YWVkYzAuLmNkZDNiZWNmYmJhN2ViMGRkNzJiMzBiNTk3
ODliZWVkNGJiZWQ1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVk
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCkBA
IC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJhbWV0ZXJzRm9yUGx1Z2luKFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxFbWJlZEVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCmluZGV4IDdjMTNlYTBkNTNh
M2I5NGZjZGQzNWQyYzY3ODEzNzYyYjVkMmRjYTcuLjNhMDIyMzBkMTE4MjM4N2Y3NGViMzE4YzNl
OWFlOWRjMDdiYmI4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5oCkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSB1aW50NjRfdCBtX2Rv
Y3VtZW50VmVyc2lvbjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRmllbGRTZXRFbGVtZW50
KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxl
bWVudC5oCmluZGV4IGM0NjlkY2VmOGFhNTg2NzI4NDFjMDI4NDEwYjllMGU2NmI3NmYyODAuLmZj
M2RiOWQ5NDhkMmFkNGIwNDcxZjZkYmEzNWJmNDQ2YzQ3MDE5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw2IEBAIHByaXZhdGU6CiAjZW5kaWYK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRm9ybUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxGb3JtRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IDU1NzljOTg0ODg0Mzg1NTAyNTJlYmMyYzg3ZWRmNGQ4
NzExZjdlZWMuLjZlNGZiMGZjOTZiZWY2N2I3NzliNmE3YmI5YmMxZDFmNDg2ZWVhOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVyU2V0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhU
TUxGcmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhU
TUxGcmFtZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
aAppbmRleCA4MGU3ZjJhZmUyZmIzMDUyZmI5YzY2ODU0ODJiZDcwNzZlMzhjOGU0Li4yNzI5Mzhj
ZWQyNzgwODJjODAwYmExZDAyODQ3MjdmNTczZmM4OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAtMTAwLDggKzEwMCw2IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX25vcmVzaXplOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGcmFtZVNldEVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxGcmFtZVNldEVs
ZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgKaW5kZXggYjk2NmM4NzBi
ODEyNzkxNmY4YjMyYWQ1MDRjOWZjYmU5MzhmMWIwMC4uMGY4M2I5YTRlYzAzNzkxNGNmOTYzYjBi
ZjE2MGM1OTJjMTI3MTFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRt
bEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oCkBA
IC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRl
KGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxIdG1sRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggOWFlMTkzMjYwYWY0NWJjMDJhMGI1NWFj
MGViYWY1ZjE2NzhlMmY2NC4uZjBlYmNlYzA1MTMzY2Y4YmIwNTdlYTVhZmQwMmFlODIwOGJkZTk3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNDcsOCArNDcs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTElGcmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEhUTUxJRnJhbWVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmgKaW5kZXggZmQ0NDAxODk4ZDM3M2RmNmIxMGVmZWZjNDRiMzM5OTdlZWFl
ZDU3Zi4uOTlmZTI1YjYxNjNiNzYzMDlmMDY4ZjJkYTYzMWM1ZDk0OThlMmQ1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBwcml2YXRl
OgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEltYWdlRWxlbWVudCkKLQogfSAv
L25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
aW5kZXggZTM4ODViY2MzMjFhMTk3ZDlmNTMwZTI1MmRhNTIxODg5Mjc5MDA1ZC4uZDdhNjVjZDZk
MzE2MDI1YmY4Y2VkOTdkOTNkYTUwOTNiNzk5MWU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKQEAgLTQ0OCw3ICs0NDgsNSBAQCBwcml2YXRlOgogI2VuZGlmCiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTElucHV0RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCmluZGV4IGFlYTUyMzdhODUx
M2ZhYmMyMjkyYmNkZjRhNWYwODAzMWIwOGE0NDMuLmNhOGVlNjBiMDU4ZGVjMjZjMjhmM2JmYmU1
YWFhZDc1ZjczNTRiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVs
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCkBA
IC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVz
dG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbikgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTExhYmVsRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAppbmRleCAyNDU2OGJkYTQw
M2MyZDNiNThmNTEwNzIwMDY3YmEyZjliNWU1ZDVkLi45MTA0YWJkNjg4NjUxZjNlNTFiNjMwMjI4
MWMwMzE2MTc5OWQ5NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdl
bmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5o
CkBAIC00NSw4ICs0NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQq
IHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TExlZ2VuZEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCA0OTcwMWY4NmZlNGU3ZTQzYjExYzI0YmQ3NzU5NWE3
MGM0ZjZmYzgzLi41Y2FjYjc3ZDJhZWE1MTVjMGQ1OWJhNTQ2YTQ3NmI0YThiNjQ3MzBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTEzNyw4ICsxMzcsNiBAQCBwcml2
YXRlOgogICAgIFBlbmRpbmdTaGVldFR5cGUgbV9wZW5kaW5nU2hlZXRUeXBlOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxMaW5rRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaAppbmRleCA5YWU0NDY3Mjg1MmIxMTQwMzA1
ODc3YWY5MjYyZDRiYzMxNmUzZGIyLi42MTdhYTEzNjRmYzIyY2Y0NDA3ODgxOTA1YmJiNGRiMDY5
MjFhMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2
IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MTWFwRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2VzCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKaW5kZXggZDEwOTgyYjFkYWNlYjM2YTEy
NzRmZmVlYTRiZTE4ZWExZGY5M2EwOS4uOTYzOWU5NjM2MjQyMjRiODgzOGQ5YjIzMDc1OTc2NTc0
MjgzMDVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCkBAIC02
NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyTWFycXVlZSogcmVuZGVyTWFycXVlZSgp
IGNvbnN0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNYXJxdWVlRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTE1hcnF1ZWVFbGVtZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDI1ZDFhNzcxYWFkYTU5OTM3Njlh
NzU5ZTZhMWI2YTA2Nzc1YWEzYTguLjhiZTZkZGE3MDgyMzI0NmQ3M2E4YmU0OWFmMDNiOWViMTBm
OTNhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaApAQCAtNDQsOCArNDQs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2VzcygpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxNZXRhRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKaW5kZXggOWQ4MjE3MmZiYzI0ZjdlMTdj
ODA4NDIzODc1OGQ0NmNhYTc5ZmQyNi4uYTI4Y2I0NDk2ZTZiMGUwYTZmZWI5NDlhNjQ1MTE2MjJl
ZTMwMGU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKQEAgLTgxLDgg
KzgxLDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IG1fdmFsdWU7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1ldGVyRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCmluZGV4IDk4
OWQ3OTU5MjVmMDhlZDIwZTVjMzYxZTg4YzZiNWUzM2ZkNGU1YTkuLjFmMGFhZjE0ZDEyY2RkOTE2
ZTYyNmE5YzE5YWViZGE3MjNiZWE0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxl
bWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFJlY2Fs
Y3VsYXRlSXRlbUNvdW50IDogMTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT0xpc3RFbGVt
ZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oCmluZGV4IDJjNDkxOTMzNjM3ZTE1NzVmZGJmZGI2MDIwOWVkNWY4Yzg4ZjVk
NzkuLmY4ZTdhNmUwMjVkMWU3ZjFkZmFmYmU1YjVjNTE2MTk2ZjAwODE3YjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKQEAgLTEwMyw4ICsxMDMsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV91c2VGYWxsYmFja0NvbnRlbnQgOiAxOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxPYmplY3RFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRleCA2ODljZTRiODJmZjJkNGI3MzY1YmNiMDMzOTZh
NzQ3OTNhM2YzZGI0Li41N2EzNzQyOTc1YzNkYjEzNjdmZjgyODgyYTMwNzY0MDM2MmY5MDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaApAQCAtNTQsOCArNTQs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0aW9ucygpOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxPcHRHcm91cEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKaW5kZXggNjQ3ZDAxZTMw
NDJiMDhkODQ4ZWZkMTkxNGJmNzkwNTNiYWFjYmNlZi4uNjU0ZWYxMTgzODA4YzQ5MzY5NDBlOGI2
MWVlM2UzOTQ5YjQ4YWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
aApAQCAtODcsOCArODcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1NlbGVjdGVkOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRpb25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKaW5kZXggNGU4MWQy
ZGE3OWM4MThlNzZiMjI3NGViNWRmZGNmZGZlNzViY2IyYi4uZWQ5YjRlYjBiYjgxOWIyNDBmZjk5
M2Y2YWUxYmVjZGUyN2JhMWNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGFyYW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50
LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVz
b3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUGFyYW1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
aAppbmRleCBlZWRiODgwN2IxNjQwMjczM2NmOWNkNzViNmM1MGIzYjUwYzM4ODQyLi5jN2ZkOTU1
MWE1OGE0Mzk5ZmU3YzFkZGVkZGYzODNjZWVjYWQ4NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuaApAQCAtNjcsOCArNjcsNiBAQCBwcml2YXRlOgogICAgIFBy
b2dyZXNzVmFsdWVFbGVtZW50KiBtX3ZhbHVlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxQ
cm9ncmVzc0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGI4NTAxYjQ3Mzc2YTZkM2VjZTM2NDhjZjM1
Yjg4MTdmNWM4MDY2MDMuLjY4ZDk2YTNhNjk5MjczNWExZjNiMmNkYjM1MzI4MjliNjIxZWI1ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTY3LDggKzY3LDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50
V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKEhUTUxTY3JpcHRFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGZhOWNiZTQ3OTZmOGM1NzFj
MjNlMjZiZTM3OTU4YTBiMTc4Nzc5YTAuLjI3ZmVmZDYwYjRmY2RiYWMxMzkxZWQ2ZTg5YzlhOGFm
ZjUzNjk2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTIx
Miw4ICsyMTIsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgYm9vbCBtX3Nob3VsZFJlY2FsY0xp
c3RJdGVtczsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU2VsZWN0RWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTb3VyY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50
LmgKaW5kZXggNTU1ODc1Y2Q0MDE4ZGJiMmZhYTY0ZTdkNTY1YWIxMDgxYWU0ZmVjOC4uNTIyZDc0
MzY4MmRkYTk2ZmM5NzdkNjExOTljYzcxZjU0MzljOWY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNvdXJjZUVsZW1lbnQuaApAQCAtNTcsOCArNTcsNiBAQCBwcml2YXRlOgogICAgIFRpbWVy
PEhUTUxTb3VyY2VFbGVtZW50PiBtX2Vycm9yRXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MU291cmNlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKaW5kZXggOTk1N2JhNTA3MDI4MjFhYmFlZjY4
ZDA3MjJmZTdkNTZmMTY0NDM4MC4uOTFmMGI3Y2Q1OGQ0NjY4OGJlY2Y2NGY0NzAwNTAwMDQzZTIz
Yjg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKQEAgLTcwLDggKzcw
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbG9hZGVkU2hlZXQ7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTFN0eWxlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCmluZGV4IGZiYWJjZGU1MjU3Y2M2MjMz
M2UwYjMyMWI3MTAzNWJmYmI4MGU4ODUuLmJjMjI4NDIwOTkyN2U2NDkzZmNkMmRkYjIyNGZhMGZi
YjdkOTI5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaApAQCAt
NDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92
ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5RWxlbWVudCkKLQogfQog
CiAjZW5kaWYgLy8gSFRNTFN1bW1hcnlFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAppbmRleCBmMDY0ZTI4YTk4MDk5NDQ2OGFiMjNjOWY5
ZTE3YjhmMTU1MDU5ZjQ3Li45MDRjMzI3YzIwY2MwYTYyZmJiM2NkZGUxNDQyMDg5NzkwMDE4ODM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBA
IC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKaW5kZXggZTU5NmFiNDIw
YTA2MDkzNDczMGU1ZGYxZGZmNzYzMjFmYTZkYmU4MS4uODczZGYyNWMxOTY5MTA2ZGFmZDM5NmU4
OGI4ZGFlNTRkMzg0ZTI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgK
QEAgLTEwMSw4ICsxMDEsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTdHlsZVByb3BlcnRpZXM+
IG1fc2hhcmVkQ2VsbFN0eWxlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUYWJsZUVsZW1l
bnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5oCmluZGV4IDMzOGI4Nzk5NzAyNTdkMGU4YWE5NWE5YzFlM2E2ZTEwM2Mz
ZTEzZjMuLmM0YjBmNzczOWNmYjJjMzQ5Y2QzNDdlYjg1ZmEwZjE5ZWM3ZTE3NjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCkBAIC01Miw4ICs1Miw2IEBAIHBy
aXZhdGU6CiAgICAgSFRNTFRhYmxlUm93RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVSb3dFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVF
bGVtZW50LmgKaW5kZXggZDdmZjk1MWI3YzhkMjI4NGE4MjFhNmYyN2IxYTgyNDcyMWZiYjUzNS4u
YzgxZjdhNjZjNDgwNGE1ZjdmNWJkNzczM2ExZjA4NmExODc0NmFhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTU2LDggKzU2LDYgQEAgcHJpdmF0ZToK
ICAgICBtdXRhYmxlIFJlZlB0cjxUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50PiBtX2Nv
bnRlbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRlbXBsYXRlRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCmluZGV4IGE4MDFmOTli
OWZjZTdkNTFiNzYzNDgxMTA1NDRhNGFkMGE1MDI2ZTIuLmJlZGQwYTFmNzA4NWI2NjlhOGY4M2Ux
ODg2OTQ0OWU0ZDZlMDI3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5oCkBAIC0xMjYsOCArMTI2LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIGJvb2wgbV93
YXNNb2RpZmllZEJ5VXNlcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGV4dEFyZWFFbGVt
ZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRs
ZUVsZW1lbnQuaAppbmRleCBlYmUxZDNjYzUwOGI2OGZjODdmNjM0OGE3MzE2YzhjNTJiZThkM2Ew
Li41ZGUxZWI1NGZlOGUwM2RhNzMwNzU2YmY2OTc1ZDgyNTZlNmVlYjJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaApAQCAtNDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAg
IFN0cmluZ1dpdGhEaXJlY3Rpb24gbV90aXRsZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
VGl0bGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCA4MzE3MTdiNGJkNmJiOTJiOGQ0MjlkMWU5Y2QxOGJi
ZTIyYjdjZWRjLi41MjZkYzAzY2MxODViZjdlMjg3YjUwZmQwZGFhODE5MmMxODE3YzQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtOTQsOCArOTQsNiBAQCBwcml2
YXRlOgogICAgIFRpbWVyPEhUTUxUcmFja0VsZW1lbnQ+IG1fbG9hZFRpbWVyOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxUcmFja0VsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGM0ZDRmOWQwMWNkMWNmMTFiNzc3YzJhOGIw
Zjg1ZGY1OWJjYWJmMjQuLjc2ZjAxNjU2ZTk5OWU1M2M5ZTYwYmI3NzU0YmUxYTUwYjE5MTFmYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0xMDIsOCArMTAyLDYg
QEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0UG9zdGVyVVJMOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxWaWRlb0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApp
bmRleCBmZDdlOTIzODg0NGRiOGE3ZmJlNDg3NTgxODRhYzZkNTFmMDI3YzVmLi4zNzg2NTU1YjI4
YWMxOWM0Y2ZlOTZhNTllNTI0OGEzNmIwYTgxNjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTIwMTAsNyArMjAxMCw3IEBAIE5vZGUq
IEluc3BlY3RvckRPTUFnZW50OjpzY3JpcHRWYWx1ZUFzTm9kZShEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSB2YWx1ZSkKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaXNOdWxsKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIHRvTm9kZSh2YWx1ZS5qc1Zh
bHVlKCkpOworICAgIHJldHVybiBKU05vZGU6OnRvSW1wbCh2YWx1ZS5qc1ZhbHVlKCkpOwogfQog
CiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUFzU2NyaXB0
VmFsdWUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IGRjNjljMTFiMTRlZDhjNmZm
NDQzNmE4NzBkZGU4NDRjMTVlMDM5YmMuLmVlOTczMzUwYjcyZWMzYTFiODczMWIyNTFjOTQ4NWY3
ZGI0Mzc5MTkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9z
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVt
ZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNSYWRpY2FsVmFs
dWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoTWF0aE1MTWVuY2xvc2VFbGVtZW50KQotCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FsdEdseXBoRGVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBo
RGVmRWxlbWVudC5oCmluZGV4IGFjYjJmMzUwYTczN2QzNmNkODdiNTZkMjMwYThhZDMxZTIxY2Rm
OGEuLmM2M2UzNDM3MzUxMDg3NThhZmM4ZWU5ZTMxY2VmYjQyZGEwMGIyNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
QWx0R2x5cGhEZWZFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fs
dEdseXBoRWxlbWVudC5oCmluZGV4IDUwOTVhYjUzYTU1NmYxZWUxMjI3NGUxYzNkMThmZTI2Njdh
ZGUzZTUuLjZiZTlmNzUyYzEwNWI4NmE4NGIxNzkxYTM2NjVlZTdiODJjYjI3NDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0
ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHQWx0R2x5cGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgKaW5kZXgg
ODI0OWNiODBiM2QwNmNmMzU5N2ZkMzhkMzgwMzkyNWQyYmZhMDhjNS4uYzdhZmU2OTVjZTU3MzQ5
NDIyNWQ5OTY2ZjhjNGJkYTY1NWQzMWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0
R2x5cGhJdGVtRWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FsdEdseXBoSXRlbUVsZW1l
bnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9u
RWxlbWVudC5oCmluZGV4IDM2Njc4MTRhMzIxOTBkMjIyNzhmODc3NGIxMzczZGQ2YTM2MzA3Yzku
LjQxN2Q1ZjI3NWU2NzY4NzZhNjI0ZGE3Y2U5MjM3NGVjOTc3YjNlMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCkBAIC03MCw4ICs3MCw2IEBAIHBy
aXZhdGU6CiAgICAgUGF0aCBtX3BhdGg7CiAgICAgUGF0aCBtX2FuaW1hdGlvblBhdGg7CiB9Owot
Ci1OT0RFX1RZUEVfQ0FTVFMoU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQpCiAgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmgKaW5kZXggYmRjZmY3MGRlNTE4ZDAwM2IzYzU4YzZjZmU5Y2U5MWQzZTY5
ZWE5YS4uYjFhNDRlYWViMDU3MjBlN2Y2NDhjN2JjYzgyN2Y0YTVmMGUzYTM5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKQEAgLTQ3LDgg
KzQ3LDYgQEAgcHJpdmF0ZToKICAgICBTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybVR5cGUgbV90
eXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAppbmRleCAwNzlmYTk5
ZmNmOTgzZmNkNDVmOTNhNzYzMWQ5YThkN2NlNTY2NzhhLi5lYzE4MmRiM2MyZDJiYzcxYjQ0OTQ4
NDkyYjFkNDdjNmNlNjVhZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2ly
Y2xlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgK
QEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9Q
RVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ2lyY2xlRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHQ2lyY2xlRWxlbWVudF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKaW5kZXggOGZkZWIwMmI2OTRlNTZjM2JjMzYw
NjIwYzEwNDlkMDAwMWMxNTU5Ny4uOTM4Y2ZiNDVkOTJlNDIwMmE0NjUyNTRmMzlkNTZlZTQ0OWJh
ZmEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaApAQCAtNTYsOCAr
NTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDbGlwUGF0aEVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAppbmRleCBhNTMwMWU0NjIyZmE1NmY5MmEw
N2JjNDIyYTg1NTljM2I1MDQ4MDdlLi5lYTIyM2U4YTRiZGFmYWEyYTI5YjhmMGVjOTQ5N2MwMzg0
ZmE1YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKQEAgLTcyLDggKzcy
LDYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFNWR0VsZW1lbnQqPiBtX2NsaWVudHM7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ3Vyc29yRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNl
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKaW5kZXgg
ZDZiMjBmNjJiMmM1NzVmZmNmZjIzNDAzMDk3ZjM0NmUxZDYzMzM1MS4uNWI5ZjkyYzMwMWRjZDlj
YjFkNzJlMjkxNDFkNTAzNDNiOGM0NGJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRWxsaXBzZUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmgKaW5kZXggNzk5ZjZkNWY5YTc0NzRiYzgyZTU3
NmFjYTMzZDRiN2YwNDZlMTliNS4uNjBlYTQ0MzZlYWMzYzYwNTk4YWFjYzQ0NTFkNWUxMTg4MjAx
YmViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQu
aApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxMaWdo
dFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCmluZGV4IDMxZWJi
NGY3OGNjNGIzMmUxMmE3NzliODI3NTI5NDBjMTUzMDRiOWMuLmE0ZTZhZDVhZjQzYzE0MDJiZDBh
ZmQ2YjY5MjBmOTQ2MmM4MjBkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNBRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVu
dC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jQUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
RkVGdW5jQUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCmluZGV4IDM1YmM0NDg1ODI1OGNlMmRhN2M2
MDE1NTM4MjJmOTBiYjUzY2I2MzguLmFmNDlkNmY3ZGRmNTE1OWVmODY3MWY5Y2EzYzJmNWI4NDJl
MGJkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCkBAIC0zMyw4ICsz
Myw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jQkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQkVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNHRWxlbWVudC5oCmluZGV4IDM5ODU3ZWRhMTA1NGQ1OTI1MmM3NzNkYmFmMDFjODk4OGYy
ZDRlYWYuLjFhZmE0MzI0MTkwODkxZTkyZjRmNzhkMzkwNTFlZTdkZjEyOTM4MjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6
CiAgICAgU1ZHRkVGdW5jR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jR0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVGdW5jUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5o
CmluZGV4IDllNzMyN2M3MzMzNDEwZDM3N2Y5ZTJkMWYxZmEzMzI0NDczOGU2YmIuLmIwZDBlYjUx
YTBmNjY0MDZkZmMyYmNjZDJmZDZlMjVhMGJhZjBlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNSRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5j
UkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHRkVGdW5jUkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKaW5kZXgg
NTE1OTdlYjU3OWY3MmNmNmMzZWFhMjliNDc4MzIxZjIxMDZkMDEwZi4uNzIzM2YyMzRlZGVkNjY1
OGEwZjNlNjMyZjY2MzIzYWJkZWZmZWQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1l
cmdlTm9kZUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNM
QVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRU1lcmdl
Tm9kZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaAppbmRleCBiNzAxYmU1OTNiOTdj
ZDYxYWU5Nzc1N2M5NjQ5MzNhOGViY2ZlYWNmLi4zNDU3OTI0ZmJkNjUwYTg1MjEyOGZiYTE2ZmQ3
OTc0NzU5NjEyNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExp
Z2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVt
ZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHRkVQb2ludExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdo
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaApp
bmRleCA4MDM5YWYyZjE1MGUwY2U3ZjBkZTcwZDg5Y2RlYjgwYjc3OTBmOTNlLi5mZjZiNDhjNWVj
MWI0NWU3NjViYzkzMGU4NmFkNDQyZjFkYTYxNmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFU3BvdExpZ2h0RWxlbWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRl
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFU3BvdExpZ2h0RWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5oCmluZGV4IDhlYTczZmI2NjE2MmNhZDc5Mzk5MjYxY2RlN2Y3ZWI4MzlmMjQzMmYuLjE5Mzll
MzE3ZjdmMDA0ZDA2ZDhkNDdlNDIyNmI5ZjBhMGQzYzNkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuaApAQCAtNzUsOCArNzUsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNM
QVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGaWx0ZXJF
bGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAppbmRl
eCA4ZTQyNzRkZDBjYjNjM2Q1ODA1MWI3ZTdjYmViMDliNzdjZmE5MjY5Li5lYjVjNDZlMDRjZTUy
NGZmODAwZDg1NmRiODNiMDlkMjY4ODU5MTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1l
bnQuaApAQCAtMTAyLDggKzEwMiw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzR2x5cGhDYWNo
ZVZhbGlkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCmluZGV4IDZhMjExNmE5NWJmODA0NTRkOGM3Mjcz
OWI3ZTY4ZTNmOGFiODJhMjMuLmRjZDAxZjI0YTIzMDJhZDc3NTc5ZjYyN2YyMGE0YjFmZDE3MGVm
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgKQEAgLTY2LDggKzY2
LDYgQEAgcHJpdmF0ZToKICAgICBTVkdGb250RWxlbWVudCogbV9mb250RWxlbWVudDsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAppbmRleCAzZjI1NDQ1ZmFhYjY0ODE1N2Q4MGU4MjM3
NTFiMTUyMzc4MTA5YzIyLi5jNjg1ZjhhYzQzMWY5Mjk0MGVjYTQzOTAwZjAyNWI0M2UyZGJjNGRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgKQEAgLTM5
LDggKzM5LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VOYW1lRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVNyY0VsZW1lbnQuaAppbmRleCAzYjA5MTRjMTJmM2Q5YTk5MmNmNTE0YzFiNDYx
MzAwNzJlNTI1MWVjLi5iYTVhNjQ0NmJiZTFhZDFjZjM3OTY1NjBlM2E3ZThmNjk5MzMyN2RlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCkBAIC00MCw4ICs0
MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR0ZvbnRGYWNlU3JjRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZVVyaUVsZW1lbnQuaAppbmRleCAxODlhNzg5NWFjM2QzNTFjZTNkM2I2Y2I0MmRiYTc5NTM0
NjY1M2M0Li4zNTBmMWZkMWEzYWMyZGJkOTZhZjAxN2I2ODAzYjlhYmI5N2I0NTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCkBAIC01MCw4ICs1MCw2IEBA
IHByaXZhdGU6CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNoZWRG
b250OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlVXJpRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKaW5kZXggNzViYjc0Yjdl
MjcxMGIzYjA5NzkxYjkxZDFiMDIxYjUxMDYyMmYwYy4uYWI0ZDFhZmM2YmE5ZmRiMDY4M2E0ODk3
ODZiYTUxNzdkMTgwZTIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmgKQEAgLTU4LDggKzU4LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2x5cGhFbGVtZW50LmgKaW5kZXggN2I3ZDM4YTEwZmE1NDBhNWIzNTVlM2FhM2E4YjIw
ZDI0N2Y0NjhjMy4uNDAwOWZiNjYyMzI2NTNlZjgxMWM3MzlkZmFlN2I2Y2I3YTE1MGJhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaApAQCAtNTcsOCArNTcsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgaW52YWxpZGF0ZUdseXBoQ2FjaGUoKTsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5
cGhSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgK
aW5kZXggNmQ4Y2FjN2ViNzdmYzJmOWYwMjM3OTU3M2I2ZDYxODdmNDYzNDUzMy4uNDY0ZmVlY2Uz
MWMyODc1NWUxZTJhMzhiOTMxNjY4NDNkYTdjMzI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
bHlwaFJlZkVsZW1lbnQuaApAQCAtNjEsOCArNjEsNiBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1f
ZHk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHR2x5cGhSZWZFbGVtZW50KQotCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCmluZGV4IGU1ZDhiNzhmZDM4M2M4
NDMzZWE2ZWQ0NDdkODgyNTViODMwMDc4N2EuLjFjMTllMDU5YjdkYTVkZjYxYzFjNjk2NDQ0OTA0
YmM2YjE4Y2FiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgKQEAgLTQyLDgg
KzQyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHSEtlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5o
CmluZGV4IDFhMzYxYzVjODNlMjI3NzM1Njg3NTA2ZDgyNmQzN2U3OTAyOWJkYjcuLjE3Njc2MWRh
OWViYWQwY2U0ZTE2Njc5NDA3OGM1NzgxZWZkOTZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1h
Z2VFbGVtZW50LmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBTVkdJbWFnZUxvYWRl
ciBtX2ltYWdlTG9hZGVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ltYWdlRWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVF
bGVtZW50LmgKaW5kZXggNjRlNzg2MzY2MmUwYjUxNDA1ZDg0YTg5MDY5MjUzODViNGZmMTU5OS4u
NTNmZWFkNjU2MDQ1MTRmZmIxYzVjZmEwZmU5NjA2ZDI1YTUzZTgwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVD
TEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTGluZUVs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggNjhhYzZiODQzZDcwMGY3
NjAyZWVmNjQ0NTI5YmYwYTJkZmRkOGM0Yy4uNDZkOTJkZTMxYjcwNGE2ZWU0MTNiNjNiYTBhZGQy
ZmFhOGE1MjM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTVBhdGhFbGVtZW50LmgKaW5kZXggOTczMjY0OGEwYzVkMDUxMmQyY2Y3ZTc1MzRkN2YxYTFj
ODJiMGVhOS4uMWJlNjRhNjcwNmU4ZWFkYTA5ZDIwMWU4NjI0NDRiMWVjNjQ3NTEwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgog
ICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdNUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IFNWR01QYXRoRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFy
a2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAppbmRl
eCAxYjkzMGU2M2M5MGExY2FkNWQyNmVmYzFjNTQ5MmZjY2FkZmZiYmIwLi5iNTIyY2I3YmE2MmU1
NWZhMjI4N2Y0ZTc0ZTAzODBjMDg0YzM0MGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmgKQEAgLTE2NCw4ICsxNjQsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgU1ZHU3lu
Y2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFNWR01hcmtlck9yaWVudFR5cGU+IG1fb3JpZW50
VHlwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNYXJrZXJFbGVtZW50KQotCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAppbmRleCBmNTBhOTQ2OWRiZTk0NGYx
MTcwMTNhZWU1MmJhOTkxMmUxNDhjYzQ1Li4yMmVkZGJjZDNmNmY1N2Q2Y2Q0YmRiMDMzNTUzMzMy
OWUyMDMxZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaApAQCAtNjgsOCArNjgs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdl
KCkgb3ZlcnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlzKTsg
fQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01hc2tFbGVtZW50KQotCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgKaW5kZXggZjU2Mzdl
ZTkyNTU3NDZhMWQ3YWE1MDQ2NmY0MWY5MWZkN2I1ZTNkZC4uOTRhNDI2N2UwZDcxOWUyOTYyNjcy
MmFkOWI2MGU1Y2MzMzY0YzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01p
c3NpbmdHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0ds
eXBoRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01pc3NpbmdHbHlwaEVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDAyMWI2ZjEwODY2MTgxYjRhOTliNDY5
YzIzZTQ0MjAwZmY4ZTA2M2QuLmI2NGI0YzVlZjYxNTRhZjlhNDcxZWRjYjY2MDZiOTlhYjRhYTBk
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0xMjksOCArMTI5LDYgQEAg
cHJpdmF0ZToKICAgICBib29sIG1faXNBbmltVmFsT2JzZXJ2ZWQ7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCmluZGV4IDIyYzdjMjAyMmViMzQ3
YzEyMTExZDM5MDFkZDgzYzVkYjg3MjlmMDIuLjQ5MmNkNjgxN2E4MDU1Y2U5NTkxNjhiNTBkNmM1
MTQ0ODc5MTU4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBAIC04
Niw4ICs4Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lzdGVt
TGFuZ3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdl
KHRoaXMpOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUGF0dGVybkVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29u
RWxlbWVudC5oCmluZGV4IGE2MmRlMjAwZjNkYmRlMzVmZTVmNWQxOWZiMDAyMWU5OGRiNzVlOWQu
LmQ5MGRkYWJmYWQ2YjExY2I4ZTdjYmY5MmUxZDU0YzNlZjk0MTlhZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAg
U1ZHUG9seWdvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoU1ZHUG9seWdvbkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxp
bmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgKaW5k
ZXggNGI1ZTg0MWY3NzE4ZTZjYzgwYmNjYzQ1OWI2MDllYTJiZjMyNWRiYS4uYTA5MWVjNjRlOTVk
MmI1YmY4NjFkNWY4NjEzMDBiZGVkN2M5Njg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5
bGluZUVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR1BvbHlsaW5l
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhTVkdQb2x5bGluZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgK
aW5kZXggZTU2ZmIyZmQxNzgzMDlhYmVjYjllOTk2OTBkMjcwN2VmODI0OWUwZi4uMTJiZjRlZDFi
Y2NlMjI5OTZjMmVhMzJjNzdmM2MyNDRlYWJhY2M2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTYsOCArNTYsNiBAQCBwcml2YXRlOgog
ICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCmluZGV4IDcyZWI4NzU4MDFjMDU0
NDg3YWQ3OTNiOTQ1NWZiYjI4ZDFhMzdjOWYuLjNjZWU4ZDkzMGZiZDI3NmZmZjY3OTZhNWMwNjFm
M2M1YzdlMDY2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCkBAIC01OCw4ICs1
OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKFNWR1JlY3RFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5kZXggZWZiNDJlZGRj
ODMzNzg0YTMyODhmZTJhNGQzODBhNDNlZjRkNzg4My4uMjc4MjI3MmVlMDQ1YTM1MTIyOTE1MDBj
NWUzOTBmMTQ3NzFmZmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0xNzUs
OCArMTc1LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U1ZHVmlld1NwZWM+IG1fdmlld1NwZWM7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU1ZHRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4
IDU3MmY3OWRlZmYxNDUzMTRjODZhMzVmYzg5MGJmYTA4YTE0YTFmYjUuLjlhY2RiZGIxYjBhZGYz
NzU0MTQ3NjUxYmQ3YjQzMTAyY2I1NTE3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaApAQCAtODYsOCArODYsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+
IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU2NyaXB0RWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0b3BFbGVtZW50LmgKaW5kZXggZDg3OWI0ZTkyZTkyMWFlZDc3YTcwMDc1MGE3ZjZlYWY3NjI5
YjBmNi4uN2RhMzdjNmI4MWExNTliNTVkYWZmYjUxMzc0ZjcwOTI2NGRlMTA2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKQEAgLTQ5LDggKzQ5LDYgQEAgcHJpdmF0ZToKICAgICBF
TkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
U3RvcEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKaW5kZXggNmE5MWUzODhjOTVkOTdmZTgxNjE3NjJmNDQ4
NTRlNGJlYzBkZjM0YS4uMWU3MzE3NTI1ZmM3ZGI3NTU4OGQ1M2I4YzM0NzI5ZGMzYTUyMWRkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2
YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHU3R5bGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBTVkdTdHlsZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1l
bnQuaAppbmRleCBhOGMwYjcyMzAyN2YxZGJiNGVlZGVlNWQwZDljNzY3MzY5MWM2NTU0Li40MzA4
NGQ1YzkzZWMxOTk2NmZkNTY3MGQxZmJjYTk4MjUwNjY2MmM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dEVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdUZXh0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaApp
bmRleCAwYTRmZjY3NGY4YzgyMGE2NjBhZmQ3OWE1ZjQyOGU4NWNhYjQ4YjhiLi5mMjQ0YmMzNzMy
N2Q0NDcyNDQ0YTkwNmRhOGI3NzY5NDdmZTQyZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRQYXRoRWxlbWVudC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVD
TEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVGV4dFBh
dGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RpdGxlRWxlbWVudC5oCmluZGV4IGM4NGE2MDMyN2NmNTZkMDY1MmY0YzRjOTU2YmRm
NjJiMzE4ZWUyNDYuLjA3NWIyMzliODE4YzVhM2U5YjQ3YzM1Y2YzODM1ZjhiZTE4ZWI0YjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKQEAgLTQwLDggKzQwLDYgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVGl0
bGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXggM2YxMGVlOTg5OGQ1NjE3NmE2ZmUwMzQwYTkxMTcwNzUw
MmJmMjc1MS4uYjczMmYxOGYyMjM2MWQxOTJkM2ZhMjY3ZWU4MTY3ZDIxZGFlZTRhMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC0xMjgsOCArMTI4LDYgQEAgcHJpdmF0ZToKICAg
ICBUaW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xvYWRFdmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR1VzZUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktl
cm5FbGVtZW50LmgKaW5kZXggY2U4OGRlNWI0MGY3MWI3NGJiODQ2YzlhZDUwOWY4ZTVmYjc3NGUx
My4uMTgwYmM3NmQwM2QxNzJhYTg0YWVkN2FiMzEzOTU2OTYzMDkyYzI4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWS2VybkVsZW1lbnQuaApAQCAtNDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdWS2VybkVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCmluZGV4IDI1MWQ3MzAzOTEzNTk1NDI2ZjUx
ZWY2MjllNDZhYTVmZTM1NjUwOGUuLjRiNDRkOWM5NDY4NzNlMjZhNTkyMDU4MWYyYjNlMjJkYjZh
MmIzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2IEBA
IHByaXZhdGU6CiAgICAgU1ZHU3RyaW5nTGlzdCBtX3ZpZXdUYXJnZXQ7CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHVmlld0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0aW9ucy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCmluZGV4IGU0ZmI3
NjYwZjlmNDllN2FkNzE5NTYxMDNiYTNiODUxODYyOWM1YzIuLjEwNTRkYjZjOTE4ZDQzOGY2NWIw
YmQwZTE2YTdjNjUzNmZlOWI1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9X
ZWJET01PcGVyYXRpb25zLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVy
YXRpb25zLm1tCkBAIC03NCw3ICs3NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKICAgICBF
eGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4
ZWMpOwotICAgIHJldHVybiBraXQodG9FbGVtZW50KHRvSlMoZXhlYywgdmFsdWUpKSk7CisgICAg
cmV0dXJuIGtpdChKU0VsZW1lbnQ6OnRvSW1wbCh0b0pTKGV4ZWMsIHZhbHVlKSkpOwogfQogCiBA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYTZmM2I1NGRjZDUxYmUy
Y2M0Y2FkNDFmN2Y3NTU1YjcxY2M2MjQ4Ny4uOWNlNjFiNmZhZTQ2YTI3NDZmNDY5ZTcyMzNmYWU0
NTZhZWIxNGI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODYyMSw3
ICs4NjIxLDcgQEAgc3RhdGljIHZvaWQgZ2xpYkNvbnRleHRJdGVyYXRpb25DYWxsYmFjayhDRlJ1
bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHkKIHsKICNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIEpTQ29udGV4dFJl
ZiBjb250ZXh0ID0gW1tzZWxmIG1haW5GcmFtZV0gZ2xvYmFsQ29udGV4dF07Ci0gICAgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSB0b05vdGlmaWNhdGlvbih0b0pTKHRvSlMo
Y29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBu
b3RpZmljYXRpb24gPSBKU05vdGlmaWNhdGlvbjo6dG9JbXBsKHRvSlModG9KUyhjb250ZXh0KSwg
anNOb3RpZmljYXRpb24pKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViTm90aWZpY2F0aW9u
Q2xpZW50Kj4oTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShfcHJpdmF0ZS0+cGFn
ZSkpLT5ub3RpZmljYXRpb25JREZvclRlc3Rpbmcobm90aWZpY2F0aW9uKTsKICNlbHNlCiAgICAg
cmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDk0MzgzNzVlM2U5NDZhMDU5MDA4MmEz
OWJiMGZiMjIwYjBkY2Y2YzcuLmNjNTQ2M2YzY2FjMTlmZjk0ZGZiYWUwMjQ4NmI3MGQ5Mjk4NTY1
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC01OTc0LDcgKzU5NzQsNyBAQCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmVsZW1lbnRGcm9tSlMoCiAKICAgICBKU0M6OkV4ZWNT
dGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhl
eGVjKTsKLSAgICBFbGVtZW50KiBlbHQgPSB0b0VsZW1lbnQodG9KUyhleGVjLCBub2RlT2JqZWN0
KSk7CisgICAgRWxlbWVudCogZWx0ID0gSlNFbGVtZW50Ojp0b0ltcGwodG9KUyhleGVjLCBub2Rl
T2JqZWN0KSk7CiAgICAgaWYgKCFlbHQpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCmluZGV4IGNkZGRjODE2
YWJiODE3ZTgzNTc3YjkxMGM2MzNlMzBhMGVlNjA1ZmUuLjA0NWE2NjRmYzhjODg4YjBhNTU3OWIz
M2MwMDNlYmRkZjU2MWQ3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmNwcApAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgRE9NSGFuZGxlQ2FjaGUmIGRv
bUhhbmRsZUNhY2hlKCkKIAogUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IElu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUoSlNDb250ZXh0UmVmLCBKU09iamVj
dFJlZiBvYmplY3QpCiB7Ci0gICAgTm9kZSogbm9kZSA9IHRvTm9kZSh0b0pTKG9iamVjdCkpOwor
ICAgIE5vZGUqIG5vZGUgPSBKU05vZGU6OnRvSW1wbCh0b0pTKG9iamVjdCkpOwogICAgIHJldHVy
biBnZXRPckNyZWF0ZShub2RlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1
bmRsZVJhbmdlSGFuZGxlLmNwcAppbmRleCBmNjMzOTFiNGNlNWNmNzIxYTE5YjA2ODczZjcxMGRj
MmUzNWYxOWU3Li42NWY4ZTU5YzU0MDQ4OGM3ZDlkMDBlOTVkNzZlNTU3NzNjOThjNDQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9Jbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcApAQCAtNTcs
NyArNTcsNyBAQCBzdGF0aWMgRE9NSGFuZGxlQ2FjaGUmIGRvbUhhbmRsZUNhY2hlKCkKIAogUGFz
c1JlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFu
ZGxlOjpnZXRPckNyZWF0ZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVjdCkKIHsKLSAg
ICBSYW5nZSogcmFuZ2UgPSB0b1JhbmdlKHRvSlMob2JqZWN0KSk7CisgICAgUmFuZ2UqIHJhbmdl
ID0gSlNSYW5nZTo6dG9JbXBsKHRvSlMob2JqZWN0KSk7CiAgICAgcmV0dXJuIGdldE9yQ3JlYXRl
KHJhbmdlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAxYTY3MjdiYWNhNTkzYzBh
N2JiODFkYTAzODkwYTcyOWE1ZDgzYzRiLi5iNjRlODE4MjhkYjhkOWQ4MGVjMGI4NzdhOWMxMDEw
YzJmZTI1Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTk3LDcgKzU5Nyw3IEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKFdl
YlBhZ2UqIHBhZ2UpCiB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZTo6d2ViTm90aWZpY2F0aW9uSUQo
SlNDb250ZXh0UmVmIGpzQ29udGV4dCwgSlNWYWx1ZVJlZiBqc05vdGlmaWNhdGlvbikKIHsKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQot
ICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gdG9Ob3RpZmljYXRpb24o
dG9KUyh0b0pTKGpzQ29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CisgICAgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBKU05vdGlmaWNhdGlvbjo6dG9JbXBsKHRvSlModG9K
Uyhqc0NvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOwogICAgIGlmICghbm90aWZpY2F0aW9uKQog
ICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkuc3VwcGxl
bWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpLT5ub3RpZmljYXRpb25JREZvclRlc3Rpbmco
bm90aWZpY2F0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238338</attachid>
            <date>2014-09-18 17:07:52 -0700</date>
            <delta_ts>2014-09-18 18:25:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136839-20140918170750.patch</filename>
            <type>text/plain</type>
            <size>162756</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE1MDhmOTNkNzI3YzA2
YzAyMzFkZGU4ZjA1YzU3M2VmYjEyMGI2Yi4uOGU4OGM2ODRkMjc3YWNjYzA2ZDkzNmIzZmU5MDVk
NjFiN2MyN2I1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxMSBAQAorMjAxNC0wOS0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQg
Y2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9u
cyBpbnN0ZWFkIG9mIHJlcXVpcmluZyBleHBsaWNpdAorICAgICAgICB1c2Ugb2YgTk9ERV9UWVBF
X0NBU1RTKCkgbWFjcm8uIENhc3RpbmcgaXMgbm93IGRvbmUgdXNpbmcgdGhlIGZvbGxvd2luZwor
ICAgICAgICBmb3JtOiBkb3duY2FzdDxIVE1MRGl2RWxlbWVudD4oKSwgaW5zdGVhZCBvZiB0b0hU
TUxEaXZFbGVtZW50KCkuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIGZvcm0gKGkuZS4gdG9IVE1M
RGl2RWxlbWVudCgpKSBpcyBzdGlsbCBzdXBwb3J0ZWQgZm9yIG5vdworICAgICAgICBieSBnZW5l
cmF0aW5nIG1hY3JvcyB0aGF0IGNvbnZlcnQgdGhlc2UgY2FsbHMgaW50byB0aGUgbmV3IGZvcm0s
IHVudGlsCisgICAgICAgIHRoZSBjb2RlIGJhc2UgaXMgcG9ydGVkIHRvIHRoZSBuZXcgY2FzdGlu
ZyBoZWxwZXJzLgorCisgICAgICAgIFRoZSBwbGFuIGlzIGFsc28gdG8gdXNlIGlzPEhUTUxEaXZF
bGVtZW50PigpIGluc3RlYWQgb2YKKyAgICAgICAgaXNIVE1MRGl2RWxlbWVudCgpIGZvciBjb25z
aXN0ZW5jeSBidXQgdGhpcyB3YXMgbm90IGNoYW5nZWQgaW4gdGhpcworICAgICAgICBwYXRjaCB0
byBhdm9pZCBibG93aW5nIHVwIHRoZSBzaXplLgorCisgICAgICAgIFRoaXMgQ0wgYWxzbyB1cGRh
dGVzIHRoZSB3YXkgd2UgY29udmVydCBhIEpTVmFsdWUgaW50byBhbgorICAgICAgICBpbXBsZW1l
bnRhdGlvbiBwb2ludGVyLiBJbnN0ZWFkIG9mIHVzaW5nIHRvSFRNTERpdkVsZW1lbnQoKSwgd2hp
Y2gKKyAgICAgICAgbG9va2VkIGxpa2UgYSBjYXN0LCB3ZSBub3cgdXNlIEpTSFRNTERpdkVsZW1l
bnQ6OnRvSW1wbCgpLiBUaGlzCisgICAgICAgIGF2b2lkcyBjb25mbGljdGluZyB3aXRoIHRoZSB0
b1hYWEVsZW1lbnQoKSBtYWNyb3MgYW5kIG1ha2VzIGl0CisgICAgICAgIGNsZWFyZXIgdGhpcyBp
cyBub3QgYSBzaW1wbGUgY2FzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RKU0Jsb2IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29tbWFuZExpbmVBUElIb3N0OjpnZXRF
dmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6
ZGF0YWJhc2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3Rv
cmFnZUlkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50T3JOdWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN0cnVjdEpTRE9NRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01G
b3JtRGF0YTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdMaXN0Ojp0b0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6dG9ET01TdHJpbmdMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRE9NV2luZG93KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hM
aXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRXZlbnRUYXJnZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0V2ZW50VGFyZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4Y2Vw
dGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb25CYXNlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1M
U2VsZWN0RWxlbWVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdEluZGV4U2V0
dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0Nv
bnRleHRNZW51KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVJbml0TWVzc2FnZUV2ZW50KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGxNZXNzYWdlUG9ydEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6SlNO
b2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OmFwcGVuZENoaWxk
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlRmlsdGVyOjp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9O
b2RlRmlsdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0
b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZW5jcnlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6c2lnbik6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRs
ZUNyeXB0bzo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRvOjpleHBv
cnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OndyYXBLZXkpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRl
cik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVy
UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRVbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOgorICAgICAgICAo
V2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25N
YXRyaXgpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjayk6CisgICAgICAgIChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVjdDo6dG9JbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEFjdGl2ZURPTU9iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9JbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEN1c3RvbU5hbWVkR2V0dGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0RXZlbnRDb25zdHJ1Y3Rvcik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVG
dW5jdGlvbkRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRUYXJn
ZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RFdmVudFRhcmdldCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb246OnRvSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjp0b1Rlc3RFeGNlcHRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjp0b0ltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9k
Mik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1
cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0SW50ZXJmYWNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcjo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5hbWVkQ29u
c3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYzo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5vbmRl
dGVybWluaXN0aWMpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0
T2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpNdXRhYmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1tdXRh
YmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
b2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2Vx
dWVuY2VBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlv
bldpdGhTZXF1ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE9iajo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE9iaik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnND
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9JbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnM6OnRvSW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjp0b1Rlc3RUeXBlZGVmcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRl
Ojp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9hdHRyaWJ1dGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTcmVhZG9ubHk6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b3JlYWRvbmx5KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5o
OgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpkb3duY2FzdCk6
CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAgIChwcmludFR5cGVIZWxwZXJz
KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
RnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGFiZWxF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmpl
Y3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBhcmFt
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU291cmNlRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFN0eWxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRpdGxl
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2NyaXB0
VmFsdWVBc05vZGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0FsdEdseXBoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZFRnVuY0FFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0JFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0dFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZFRnVuY1JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdIS2VybkVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xp
bmVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdNUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2Vy
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1BvbHlnb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdU
ZXh0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHVktlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Zp
ZXdFbGVtZW50Lmg6CisKIDIwMTQtMDktMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0IGxhaWQgb3V0IHdpdGggdGhlIFNWRyAtPiBPVEYg
Zm9udCBjb252ZXJ0ZXIgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBtZXRyaWNzIGFzIHdpdGggdGhl
IFNWRyBmb250IGNvZGUgcGF0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMTQ0NjNmZDZiNTAyNWNjNmQzMTJlY2Q3
YTRmMTZmYTJkNDk4ODhlLi5jNGE4ODNiZTc3MzI0NjYzZjRmZWFjYmNjMjc3YWU0ODEwYTcyYmUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE0LTA5LTE4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgR2VuZXJhdGUgRWxlbWVudCBjYXN0aW5nIGhlbHBl
ciBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzNjgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVuLWV4cG9ydCBzb21lIHN5bWJvbHMgb24gV2luZG93cyBmb3IgZnVuY3Rpb25zIHRoYXQg
d2VyZSByZW1vdmVkLgorCisgICAgICAgICogV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2Vu
ZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluOgorCiAyMDE0LTA5LTE1ICBwZWF2b0BvdXRsb29r
LmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gTWFrZSBpdCBl
YXNpZXIgdG8gZW5hYmxlL2Rpc2FibGUgR1N0cmVhbWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGMw
ZmRlZWI0YTU2NWE3N2Y0YzM4MWM5YTdkZDhhMjgyMTIwYTg5OGMuLjQxOTkyNzE5Nzk2MzhhNjFj
OWYwOGQ1YmYyYTI4YzhmMDRjMDE1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxNC0wOS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IEdlbmVyYXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgSlNYWFg6OnRvSW1wbCgpIGlu
c3RlYWQgb2YgdG9YWFgoKSBmdW5jdGlvbi4KKworICAgICAgICAqIERPTS9XZWJET01PcGVyYXRp
b25zLm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmll
dyBfbm90aWZpY2F0aW9uSURGb3JUZXN0aW5nOl0pOgorCiAyMDE0LTA5LTE3ICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTczNjk1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDIxNTBmMjg1YWM5ZTFiZGU3YWI5ODIzZTZm
M2ZmMzAzM2U3MDg4MWQuLmRkZTc5MTFmNzAyNTk2Mzk3YjBlMTBjM2I1MzVkMTY0MTYzY2YxN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wOS0xOCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQgY2FzdGlu
ZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVc2UgSlNYWFg6OnRvSW1wbCgpIGluc3RlYWQgb2YgdG9YWFgoKSBmdW5jdGlv
bi4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6ZWxlbWVudEZy
b21KUyk6CisKIDIwMTQtMDktMDYgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24u
ZWR1PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGNvbnZlcnQgRG9ja1NpZGUgdG8gYW4gZW51
bSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDM1MzIxYzFkNDA1YTgwNjExYzdiNDU5OGRlMjMwNTM4MTMz
MjRiNDYuLjU5NmY3OTA3NTRmMDFkNDBiZTBmY2E3MDYyZjNjOWYwY2MxODlkN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0wOS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rp
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4
MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
SlNYWFg6OnRvSW1wbCgpIGluc3RlYWQgb2YgdG9YWFgoKSBmdW5jdGlvbi4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVh
dGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlOjpnZXRPckNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjp3
ZWJOb3RpZmljYXRpb25JRCk6CisKIDIwMTQtMDktMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgZGl2aWRlIGJ5IHplcm8gd2hlbiB3ZSBn
ZXQgYW4gZW1wdHkgcmVjdCB3aGlsZSBzbmFwc2hvdHRpbmcgYSBub2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQubW0KaW5kZXggMzY5YWJiMTEwNzIyZDc4ZjJlMTY4MDkzNWUyODNjZGY1Y2ZkNzliZS4u
M2RiZmRlMjg0MDVlNTM3MTRlMDRiMGFkYjIzNTBiMGM5Y2UxZTdjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbQpAQCAtMjEzLDcgKzIxMyw3IEBAIGJvb2wgUXVpY2tUaW1lUGx1Z2luUmVwbGFj
ZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290KiByb290KQogICAgIC8vIEdldCB0
aGUgPHZpZGVvPiBjcmVhdGVkIHRvIHJlcGxhY2UgdGhlIHBsdWctaW4uCiAgICAgSlNDOjpKU1Zh
bHVlIHZhbHVlID0gcmVwbGFjZW1lbnQuZ2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAi
dmlkZW8iKSk7CiAgICAgaWYgKCFleGVjLT5oYWRFeGNlcHRpb24oKSAmJiAhdmFsdWUuaXNVbmRl
ZmluZWRPck51bGwoKSkKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSB0b0hUTUxWaWRlb0VsZW1l
bnQodmFsdWUpOworICAgICAgICBtX21lZGlhRWxlbWVudCA9IEpTSFRNTFZpZGVvRWxlbWVudDo6
dG9JbXBsKHZhbHVlKTsKIAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpIHsKICAgICAgICAgTE9H
KFBsdWdpbnMsICIlcCAtIEZhaWxlZCB0byBmaW5kIDx2aWRlbz4gZWxlbWVudCBjcmVhdGVkIGJ5
IFF1aWNrVGltZSBwbHVnaW4gcmVwbGFjZW1lbnQgc2NyaXB0LiIsIHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgppbmRleCA4NzRlNTFlNjY3NDc2Y2I0YjJmMjhhODYyMDQ0NGUzZmE0MDNmMjY2Li4y
M2Y2ZmNmYjk5YzVmNzNlZTY3YTYzNTAzNjgwNjJlNmU5NTg1MmE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgpAQCAtNzcsNiArNzcsNyBAQCBfX1pON1dlYkNvcmUxMEZsb2F0UG9pbnRDMUVSSzdDR1Bv
aW50CiBfX1pON1dlYkNvcmUxMEZsb2F0UG9pbnRDMUVSS05TXzhJbnRQb2ludEUKIF9fWk43V2Vi
Q29yZTEwRm9udEdseXBoczE1cmVsZWFzZUZvbnREYXRhRXYKIF9fWk43V2ViQ29yZTEwSlNEb2N1
bWVudDZzX2luZm9FCitfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2dG9JbXBsRU4zSlNDN0pTVmFs
dWVFCiBfX1pON1dlYkNvcmUxMExheW91dFJlY3Q1c2NhbGVFZgogX19aTjdXZWJDb3JlMTBMYXlv
dXRSZWN0NXVuaXRlRVJLUzBfCiBfX1pON1dlYkNvcmUxMExheW91dFJlY3RDMUVSS05TXzlGbG9h
dFJlY3RFCkBAIC0xMjQsNyArMTI1LDYgQEAgX19aTjdXZWJDb3JlMTBUaW1lUmFuZ2VzQzFFZGQK
IF9fWk43V2ViQ29yZTEwZGVsZXRlRmlsZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEw
ZmlsZUV4aXN0c0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEwc2V0Q29va2llc0VQTlNf
OERvY3VtZW50RVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTEwdG9Eb2N1
bWVudEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZTEzZ2V0Q0dJbWFn
ZVJlZkV2CiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlQzFFUDdDR0ltYWdlUE5TXzEzSW1hZ2VP
YnNlcnZlckUKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2VDMUVQTlNfMTNJbWFnZU9ic2VydmVy
RQpAQCAtNjY3LDcgKzY2Nyw2IEBAIF9fWk43V2ViQ29yZTE1b3JpZ2luYWxVUkxEYXRhRVA1TlNV
UkwKIF9fWk43V2ViQ29yZTE1cGF0aEdldEZpbGVOYW1lRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlMTVyZXBvcnRFeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUE5T
XzEyQ2FjaGVkU2NyaXB0RQogX19aTjdXZWJDb3JlMTVzZXRET01FeGNlcHRpb25FUE4zSlNDOUV4
ZWNTdGF0ZUVpCi1fX1pON1dlYkNvcmUxNXRvRE9NU3RyaW5nTGlzdEVQTjNKU0M5RXhlY1N0YXRl
RU5TMF83SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE1dmlzaXRlZExpbmtIYXNoRVBLdGoKIF9fWk43
V2ViQ29yZTE1dmlzaXRlZExpbmtIYXNoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTZB
cHBsaWNhdGlvbkNhY2hlMThkaXNrVXNhZ2VGb3JPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5F
CkBAIC0xMjQyLDYgKzEyNDEsNyBAQCBfX1pON1dlYkNvcmU2RWRpdG9yN2NvbW1hbmRFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yN2NvcHlVUkxFUktOU18zVVJMRVJLTjNXVEY2
U3RyaW5nRQogX19aTjdXZWJDb3JlNkVkaXRvcjdvdXRkZW50RXYKIF9fWk43V2ViQ29yZTZKU05v
ZGU2c19pbmZvRQorX19aTjdXZWJDb3JlNkpTTm9kZTZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUKIF9f
Wk43V2ViQ29yZTZMZW5ndGhDMUVOM1dURjdQYXNzUmVmSU5TXzE2Q2FsY3VsYXRpb25WYWx1ZUVF
RQogX19aTjdXZWJDb3JlNlJlZ2lvbjIxdXBkYXRlQm91bmRzRnJvbVNoYXBlRXYKIF9fWk43V2Vi
Q29yZTZSZWdpb241dW5pdGVFUktTMF8KQEAgLTEyNTksNyArMTI1OSw2IEBAIF9fWk43V2ViQ29y
ZTZXaWRnZXQ4c2V0Rm9jdXNFYgogX19aTjdXZWJDb3JlNldpZGdldDlzZXRQYXJlbnRFUE5TXzEw
U2Nyb2xsVmlld0UKIF9fWk43V2ViQ29yZTZXaWRnZXREMkV2CiBfX1pON1dlYkNvcmU2dG9JbnQ4
RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25m
aWd1cmF0aW9uRQotX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJD
b3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFUzRfUmkKIF9f
Wk43V2ViQ29yZTdFbGVtZW50MTJzZXRBdHRyaWJ1dGVFUktOU18xM1F1YWxpZmllZE5hbWVFUktO
M1dURjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlN0VsZW1lbnQxNmNyZWF0ZVNoYWRvd1Jv
b3RFUmkKQEAgLTEyNzMsNiArMTI3Miw3IEBAIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU18x
MExheW91dFJlY3RFCiBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfOUZsb2F0UmVjdEUKIF9f
Wk43V2ViQ29yZTdJbnRTaXplQzFFUks2Q0dTaXplCiBfX1pON1dlYkNvcmU3SW50U2l6ZUMxRVJL
TlNfOUZsb2F0U2l6ZUUKK19fWk43V2ViQ29yZTdKU1JhbmdlNnRvSW1wbEVOM0pTQzdKU1ZhbHVl
RQogX19aTjdXZWJDb3JlN1RleHRSdW4xOWFsbG93c1JvdW5kaW5nSGFja3NFdgogX19aTjdXZWJD
b3JlN1RleHRSdW4yMXNfYWxsb3dzUm91bmRpbmdIYWNrc0UKIF9fWk43V2ViQ29yZTdUZXh0UnVu
MjJzZXRBbGxvd3NSb3VuZGluZ0hhY2tzRWIKQEAgLTEyODEsNyArMTI4MSw2IEBAIF9fWk43V2Vi
Q29yZTdqc0FycmF5RVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFTjNX
VEYxMFBhc3NSZWZQdHJJCiBfX1pON1dlYkNvcmU3bWFrZVJHQkVpaWkKIF9fWk43V2ViQ29yZTd0
b0ludDE2RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNp
b25Db25maWd1cmF0aW9uRQogX19aTjdXZWJDb3JlN3RvSW50NjRFUE4zSlNDOUV4ZWNTdGF0ZUVO
UzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb25FCi1fX1pON1dl
YkNvcmU3dG9SYW5nZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN3RvVUludDhFUE4zSlND
OUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRp
b25FCiBfX1pON1dlYkNvcmU4QmxvYkRhdGExNHNldENvbnRlbnRUeXBlRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlOENTU1ZhbHVlN2Rlc3Ryb3lFdgpAQCAtMTQ5NSw2ICsxNDk0LDcgQEAg
X19aTjdXZWJDb3JlOUlubGluZUJveDE0ZGlydHlMaW5lQm94ZXNFdgogX19aTjdXZWJDb3JlOUlu
bGluZUJveDE0c2VsZWN0aW9uU3RhdGVFdgogX19aTjdXZWJDb3JlOUlubGluZUJveDE2cGxhY2VF
bGxpcHNpc0JveEViZmZmUmZSYgogX19aTjdXZWJDb3JlOUpTRWxlbWVudDZzX2luZm9FCitfX1pO
N1dlYkNvcmU5SlNFbGVtZW50NnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlOUxh
eWVyUG9vbEMxRXYKIF9fWk43V2ViQ29yZTlMYXllclBvb2xEMUV2CiBfX1pON1dlYkNvcmU5UGFn
ZUNhY2hlMTFzZXRDYXBhY2l0eUVpCkBAIC0xNTM1LDcgKzE1MzUsNiBAQCBfX1pON1dlYkNvcmU5
Zm9udENhY2hlRXYKIF9fWk43V2ViQ29yZTltYWtlUmFuZ2VFUktOU18xNVZpc2libGVQb3NpdGlv
bkVTMl8KIF9fWk43V2ViQ29yZTlwYWdlQ2FjaGVFdgogX19aTjdXZWJDb3JlOXBsYWluVGV4dEVQ
S05TXzVSYW5nZUV0YgotX19aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRQogX19a
TjdXZWJDb3JlOXVuaW9uUmVjdEVSS04zV1RGNlZlY3RvcklOU185RmxvYXRSZWN0RUxtMEVOUzBf
MTVDcmFzaE9uT3ZlcmZsb3dFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdDEyZ2xv
YmFsT2JqZWN0RXYKIF9fWk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5nRXYKQEAgLTMyNTcs
NyArMzI1Niw3IEBAIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaEVycm9yRXZl
bnRFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb244ZmluYWxpemVFdgogX19aTjdXZWJDb3Jl
MTJOb3RpZmljYXRpb25DMUV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbkQxRXYKLV9fWk43
V2ViQ29yZTE0dG9Ob3RpZmljYXRpb25FTjNKU0M3SlNWYWx1ZUUKK19fWk43V2ViQ29yZTE0SlNO
b3RpZmljYXRpb242dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxOXByb3ZpZGVO
b3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18xOE5vdGlmaWNhdGlvbkNsaWVudEUKIF9fWk43V2Vi
Q29yZTIyTm90aWZpY2F0aW9uQ29udHJvbGxlcjEwY2xpZW50RnJvbUVQTlNfNFBhZ2VFCiAjZW5k
aWYKQEAgLTMzNjksNyArMzM2OCw3IEBAIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTZoYW5k
bGVUb3VjaEV2ZW50RVJLTlNfMThQbGF0Zm9ybVRvdWNoRXZlbnRFCiAjaWYgRU5BQkxFKFZJREVP
KQogLm9iamNfY2xhc3NfbmFtZV9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyCiBfX1pON1dl
YkNvcmUxMFRpbWVSYW5nZXMzYWRkRWRkCi1fX1pON1dlYkNvcmUxMnRvVGltZVJhbmdlc0VOM0pT
QzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTJKU1RpbWVSYW5nZXM2dG9JbXBsRU4zSlNDN0pTVmFs
dWVFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMmVuZFNjcnViYmluZ0V2CiBfX1pO
N1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxNGJlZ2luU2NydWJiaW5nRXYKIF9fWk43V2ViQ29y
ZTE2SFRNTE1lZGlhRWxlbWVudDE0ZXhpdEZ1bGxzY3JlZW5FdgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20u
Y3BwCmluZGV4IGU2YjUwNjQyN2U0NTg4OTY1YmRiNjdjODlmYTI1NmUzMzVkNGUxNzUuLmFiYjAw
ODBiY2I5ZDM3ZjY4NTlmZTNmNjI1MWUwZWQwNDAwOWQyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3Rv
bS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEpTQXVk
aW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZh
bHVlKQogewotICAgIEF1ZGlvQnVmZmVyKiBidWZmZXIgPSB0b0F1ZGlvQnVmZmVyKHZhbHVlKTsK
KyAgICBBdWRpb0J1ZmZlciogYnVmZmVyID0gSlNBdWRpb0J1ZmZlcjo6dG9JbXBsKHZhbHVlKTsK
ICAgICBpZiAoIWJ1ZmZlcikgewogICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4
ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiVmFsdWUgaXMgbm90IG9mIHR5cGUgQXVkaW9CdWZm
ZXIiKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Js
b2JDdXN0b20uY3BwCmluZGV4IDI5M2FmYjM3NjI4NjhiODM4YjlmNWMxMmViYTY0NTYzZjg5MzQ2
MzguLjA2YTkxMjQ0ODM2MGRkNTdkMzJiNTBjM2UwYjVkZWRkNzU3N2NlODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNCbG9iKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgICAgIGJsb2JCdWlsZGVyLmFwcGVuZChhcnJheUJ1ZmZlcik7CiAgICAg
ICAgIGVsc2UgaWYgKFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGFycmF5QnVmZmVyVmlldyA9IHRv
QXJyYXlCdWZmZXJWaWV3KGl0ZW0pKQogICAgICAgICAgICAgYmxvYkJ1aWxkZXIuYXBwZW5kKGFy
cmF5QnVmZmVyVmlldy5yZWxlYXNlKCkpOwotICAgICAgICBlbHNlIGlmIChCbG9iKiBibG9iID0g
dG9CbG9iKGl0ZW0pKQorICAgICAgICBlbHNlIGlmIChCbG9iKiBibG9iID0gSlNCbG9iOjp0b0lt
cGwoaXRlbSkpCiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYmxvYik7CiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgU3RyaW5nIHN0cmluZyA9IGl0ZW0udG9TdHJpbmcoZXhlYykt
PnZhbHVlKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
b21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwCmluZGV4IDc5NTQ4ZTgyYzM3Y2JkNzUyM2E3
ODQ3YWM4OWQ4NmY5ZjAwMGU3ODYuLmYyZmZjMTdlNzFiNzlkOWFlMmQ0NjE3MDQ1MTU5NmIwZTdi
MzE3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExp
bmVBUElIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Nv
bW1hbmRMaW5lQVBJSG9zdEN1c3RvbS5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBKU1ZhbHVlIEpT
Q29tbWFuZExpbmVBUElIb3N0OjpnZXRFdmVudExpc3RlbmVycyhFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpIHx8IHZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKIAotICAgIE5vZGUqIG5vZGUgPSB0b05vZGUodmFsdWUpOworICAg
IE5vZGUqIG5vZGUgPSBKU05vZGU6OnRvSW1wbCh2YWx1ZSk7CiAgICAgaWYgKCFub2RlKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIApAQCAtMTQ5LDcgKzE0OSw3IEBAIEpTVmFsdWUg
SlNDb21tYW5kTGluZUFQSUhvc3Q6OmRhdGFiYXNlSWQoRXhlY1N0YXRlKiBleGVjKQogICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAg
RGF0YWJhc2UqIGRhdGFiYXNlID0gdG9EYXRhYmFzZShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgw
KSk7CisgICAgRGF0YWJhc2UqIGRhdGFiYXNlID0gSlNEYXRhYmFzZTo6dG9JbXBsKGV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoZGF0YWJhc2UpCiAgICAgICAgIHJldHVybiBq
c1N0cmluZ1dpdGhDYWNoZShleGVjLCBpbXBsKCkuZGF0YWJhc2VJZEltcGwoZGF0YWJhc2UpKTsK
ICNlbmRpZgpAQCAtMTYyLDcgKzE2Miw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQSUhvc3Q6
OnN0b3JhZ2VJZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA8IDEpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgU3RvcmFnZSogc3Rv
cmFnZSA9IHRvU3RvcmFnZShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgU3RvcmFn
ZSogc3RvcmFnZSA9IEpTU3RvcmFnZTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKICAgICBpZiAoc3RvcmFnZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4
ZWMsIGltcGwoKS5zdG9yYWdlSWRJbXBsKHN0b3JhZ2UpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAppbmRleCAzMWIxODBiZjdm
ZWFlNWZmYzA3ZmQwZWU5YzI4YTJmOGQ2MjdkZTU1Li5lOWUwYmI3MTMzYTcxNjQ4Y2NlOGI1ZTJj
MmE2Njg2MTY0MzU2NDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUZvcm1EYXRhQ3VzdG9tLmNwcApAQCAtNDEsOSArNDEsOSBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBIVE1MRm9ybUVsZW1lbnQqIHRv
SFRNTEZvcm1FbGVtZW50KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBIVE1MRm9ybUVsZW1l
bnQqIHRvSFRNTEZvcm1FbGVtZW50T3JOdWxsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBy
ZXR1cm4gdmFsdWUuaW5oZXJpdHMoSlNIVE1MRm9ybUVsZW1lbnQ6OmluZm8oKSkgPyAmanNDYXN0
PEpTSFRNTEZvcm1FbGVtZW50Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpIDogMDsKKyAgICBy
ZXR1cm4gdmFsdWUuaW5oZXJpdHMoSlNIVE1MRm9ybUVsZW1lbnQ6OmluZm8oKSkgPyAmanNDYXN0
PEpTSFRNTEZvcm1FbGVtZW50Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpIDogbnVsbHB0cjsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU0RPTUZvcm1EYXRh
KEV4ZWNTdGF0ZSogZXhlYykKQEAgLTUyLDcgKzUyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU0RPTUZvcm1EYXRhKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEhU
TUxGb3JtRWxlbWVudCogZm9ybSA9IDA7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+
IDApCi0gICAgICAgIGZvcm0gPSB0b0hUTUxGb3JtRWxlbWVudChleGVjLT5hcmd1bWVudCgwKSk7
CisgICAgICAgIGZvcm0gPSB0b0hUTUxGb3JtRWxlbWVudE9yTnVsbChleGVjLT5hcmd1bWVudCgw
KSk7CiAgICAgUmVmUHRyPERPTUZvcm1EYXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRhOjpj
cmVhdGUoZm9ybSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4
ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBkb21Gb3JtRGF0YS5nZXQoKSkpKTsK
IH0KQEAgLTY2LDcgKzY2LDcgQEAgSlNWYWx1ZSBKU0RPTUZvcm1EYXRhOjphcHBlbmQoRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICAgICAgU3RyaW5nIGZpbGVuYW1lOwogICAgICAgICAgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+PSAzICYmICFleGVjLT5hcmd1bWVudCgyKS5pc1VuZGVm
aW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gZXhlYy0+YXJndW1lbnQo
MikudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwotICAgICAgICAgICAgaW1wbCgpLmFwcGVu
ZChuYW1lLCB0b0Jsb2IodmFsdWUpLCBmaWxlbmFtZSk7CisgICAgICAgICAgICBpbXBsKCkuYXBw
ZW5kKG5hbWUsIEpTQmxvYjo6dG9JbXBsKHZhbHVlKSwgZmlsZW5hbWUpOwogICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwgdmFsdWUudG9TdHJpbmcoZXhlYykt
PnZhbHVlKGV4ZWMpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcAppbmRleCAyMzMzN2IyZjJkOTY2MDdiNThkNjI3
YTJiOGNkNDM2MzRmYmQ2OWFhLi5hZDNhYzQ0NDI3MmIzMjU3ZWVmYmMzMDdlMGNiNjVmN2M5YjMz
YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xp
c3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5n
TGlzdEN1c3RvbS5jcHAKQEAgLTI1LDcgKzI1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvRE9NU3Ry
aW5nTGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitQYXNzUmVmUHRyPERPTVN0
cmluZ0xpc3Q+IEpTRE9NU3RyaW5nTGlzdDo6dG9JbXBsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNET01TdHJpbmdMaXN0OjppbmZv
KCkpKQogICAgICAgICByZXR1cm4gJmpzQ2FzdDxKU0RPTVN0cmluZ0xpc3QqPihhc09iamVjdCh2
YWx1ZSkpLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKaW5kZXggNWYzYjUxN2ExNDJiZTMyZmI2NGU3OThhOTVjODFiNTMxMWQx
ZjA4ZC4uZTg0ZDNlZDJmYWE4OTlkMGIzNTA0Yzg1ZjNkYzFhZjYxODNhNzZiZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNjg0
LDcgKzY4NCw3IEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoRXhl
Y1N0YXRlKiBleGVjKQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1ET01XaW5kb3cq
IHRvRE9NV2luZG93KEpTVmFsdWUgdmFsdWUpCitET01XaW5kb3cqIEpTRE9NV2luZG93Ojp0b0lt
cGwoSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAg
IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0
aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAK
aW5kZXggMWFmMDI2ZGJhNDVkOTQ3OTA4NTQ0YmIxODRiNWM2NjZjZTRmYjI2YS4uZDMwYjI2M2Ez
ZjI2NzQwNmFjMzE2YzExNzVjYjQ0MzIwZDg5ODIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBAIC0xNTUsMjIgKzE1NSwyMiBAQCB2b2lkIEpTRGlj
dGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPFNlcmlhbGl6ZQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0
ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxET01XaW5kb3c+JiByZXN1bHQpCiB7Ci0gICAgcmVz
dWx0ID0gdG9ET01XaW5kb3codmFsdWUpOworICAgIHJlc3VsdCA9IEpTRE9NV2luZG93Ojp0b0lt
cGwodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0
ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxFdmVudFRhcmdldD4mIHJlc3VsdCkKIHsKLSAgICBy
ZXN1bHQgPSB0b0V2ZW50VGFyZ2V0KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU0V2ZW50VGFyZ2V0
Ojp0b0ltcGwodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4
ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxOb2RlPiYgcmVzdWx0KQogewotICAgIHJl
c3VsdCA9IHRvTm9kZSh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNOb2RlOjp0b0ltcGwodmFsdWUp
OwogfQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFs
dWUgdmFsdWUsIFJlZlB0cjxTdG9yYWdlPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvU3Rv
cmFnZSh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNTdG9yYWdlOjp0b0ltcGwodmFsdWUpOwogfQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2YWx1ZSwgTWVzc2FnZVBvcnRBcnJheSYgcmVzdWx0KQpAQCAtMjIyLDMxICsyMjIsMzEgQEAg
dm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSB2YWx1ZSwgUmVmUHRyPFVpbnQKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogdm9p
ZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSB2YWx1ZSwgUmVmUHRyPE1lZGlhS2V5RXJyb3I+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0g
dG9NZWRpYUtleUVycm9yKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhS2V5RXJyb3I6OnRv
SW1wbCh2YWx1ZSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lk
IEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
IHZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW0+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9N
ZWRpYVN0cmVhbSh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNNZWRpYVN0cmVhbTo6dG9JbXBsKHZh
bHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiByZXN1bHQp
CiB7Ci0gICAgcmVzdWx0ID0gdG9NZWRpYVN0cmVhbVRyYWNrKHZhbHVlKTsKKyAgICByZXN1bHQg
PSBKU01lZGlhU3RyZWFtVHJhY2s6OnRvSW1wbCh2YWx1ZSk7CiB9CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShGT05UX0xPQURfRVZFTlRTKQogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVs
ZT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0NTU0ZvbnRGYWNlUnVsZSh2YWx1ZSk7Cisg
ICAgcmVzdWx0ID0gSlNDU1NGb250RmFjZVJ1bGU6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZvaWQg
SlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUg
dmFsdWUsIFJlZlB0cjxET01FcnJvcj4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RPTUVy
cm9yKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU0RPTUVycm9yOjp0b0ltcGwodmFsdWUpOwogfQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQpCkBAIC0yNjEs
NyArMjYxLDcgQEAgdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHIKICNpZiBFTkFCTEUoR0FNRVBBRCkK
IHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUgdmFsdWUsIFJlZlB0cjxHYW1lcGFkPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRv
R2FtZXBhZCh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNHYW1lcGFkOjp0b0ltcGwodmFsdWUpOwog
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9j
dW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1
c3RvbS5jcHAKaW5kZXggZmEyNDQ0M2I0ZTlkMTdlZGJmZGFiYWZjYWI0Mzk2NTc1Y2ZkYzE3MS4u
M2I4YTk5ZWRmODNmZjM1MDk3NTQ0NjcwYjA1M2VkNWM0YWZmYzI3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTEyMSw3ICsxMjEs
NyBAQCBKU1ZhbHVlIEpTRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdChFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgUmVmUHRyPFRvdWNoTGlzdD4gdG91Y2hMaXN0ID0gVG91Y2hMaXN0OjpjcmVhdGUoKTsK
IAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhlYy0+YXJndW1lbnRDb3VudCgpOyBpKysp
Ci0gICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKHRvVG91Y2goZXhlYy0+YXJndW1lbnQoaSkpKTsK
KyAgICAgICAgdG91Y2hMaXN0LT5hcHBlbmQoSlNUb3VjaDo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50
KGkpKSk7CiAKICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgdG91Y2hMaXN0
LnJlbGVhc2UoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRUYXJnZXRDdXN0b20uY3BwCmluZGV4IDUyMTBmMTJiYjZjZTM0ZTc0NjNkOGU2ZTI4OWE0Yjhk
NzA2Mzc5Y2YuLmY1NGE1OTY3ZDhlOWNiMmYzY2RhNDZmMjIxZDEwNDlhZjU0NTgyMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3Bw
CkBAIC01OCw3ICs1OCw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50VGFyZ2V0KiB0YXJnCiAgICAgaWYgKHZhbHVl
LmluaGVyaXRzKEpTIyNpbnRlcmZhY2VOYW1lOjppbmZvKCkpKSAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTIyNpbnRlcmZhY2VOYW1lKj4oYXNPYmplY3Qo
dmFsdWUpKS0+aW1wbCgpOwogCi1FdmVudFRhcmdldCogdG9FdmVudFRhcmdldChKU0M6OkpTVmFs
dWUgdmFsdWUpCitFdmVudFRhcmdldCogSlNFdmVudFRhcmdldDo6dG9JbXBsKEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKERPTVdpbmRvd1No
ZWxsKQogICAgIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoRXZlbnRUYXJnZXQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcAppbmRleCBiZGUy
NWIwYTY3NzA4MWU4MGM5ZDVmY2NmYjlhN2ExMmY5NzZjMTk4Li5mNjI2MmQxNzE3OWY2NjAwMDI1
ZmY3ZmEwZmNiYmIzYzA0OTVkM2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXhjZXB0aW9uQmFzZS5jcHAKQEAgLTQxLDIwICs0MSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIEV4Y2VwdGlvbkJhc2UqIHRvRXhjZXB0aW9uQmFzZShKU0M6OkpTVmFsdWUgdmFsdWUp
CiB7Ci0gICAgaWYgKERPTUNvcmVFeGNlcHRpb24qIGRvbUV4Y2VwdGlvbiA9IHRvRE9NQ29yZUV4
Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKERPTUNvcmVFeGNlcHRpb24qIGRvbUV4Y2VwdGlvbiA9
IEpTRE9NQ29yZUV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KGRvbUV4Y2VwdGlvbik7Ci0gICAgaWYgKFJhbmdl
RXhjZXB0aW9uKiByYW5nZUV4Y2VwdGlvbiA9IHRvUmFuZ2VFeGNlcHRpb24odmFsdWUpKQorICAg
IGlmIChSYW5nZUV4Y2VwdGlvbiogcmFuZ2VFeGNlcHRpb24gPSBKU1JhbmdlRXhjZXB0aW9uOjp0
b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25C
YXNlKj4ocmFuZ2VFeGNlcHRpb24pOwotICAgIGlmIChFdmVudEV4Y2VwdGlvbiogZXZlbnRFeGNl
cHRpb24gPSB0b0V2ZW50RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoRXZlbnRFeGNlcHRpb24q
IGV2ZW50RXhjZXB0aW9uID0gSlNFdmVudEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAg
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KGV2ZW50RXhjZXB0aW9u
KTsKLSAgICBpZiAoWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24qIHhtbEh0dHBFeGNlcHRpb24gPSB0
b1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3RF
eGNlcHRpb24qIHhtbEh0dHBFeGNlcHRpb24gPSBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjp0
b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25C
YXNlKj4oeG1sSHR0cEV4Y2VwdGlvbik7Ci0gICAgaWYgKFNWR0V4Y2VwdGlvbiogc3ZnRXhjZXB0
aW9uID0gdG9TVkdFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChTVkdFeGNlcHRpb24qIHN2Z0V4
Y2VwdGlvbiA9IEpTU1ZHRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4oc3ZnRXhjZXB0aW9uKTsKLSAgICBpZiAo
WFBhdGhFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSB0b1hQYXRoRXhjZXB0aW9uKHZhbHVlKSkK
KyAgICBpZiAoWFBhdGhFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSBKU1hQYXRoRXhjZXB0aW9u
Ojp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRp
b25CYXNlKj4ocGF0aEV4Y2VwdGlvbik7CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBp
ZiAoU1FMRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0gdG9TUUxFeGNlcHRpb24odmFsdWUpKQor
ICAgIGlmIChTUUxFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSBKU1NRTEV4Y2VwdGlvbjo6dG9J
bXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFz
ZSo+KHBhdGhFeGNlcHRpb24pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDFkNDBjNjBk
ODcwMjc3NTRmMDEzYzJiMjI1NzJjMDFkYzJjOGNlYjkuLmJmYzFkZDU5NWZhOWVlOGVmZTJmNzU1
YmI3ZTVmOGI3NDk4NzgyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDAsNyArNDAsNyBAQCB2b2lk
IEpTSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIHZh
bHVlKQogICAgIC8vIE9uIHNldHRpbmcsIGl0IG11c3QgZmlyc3QgcmVtb3ZlIHRoZSBlbGVtZW50
J3MgbWVkaWFncm91cCBhdHRyaWJ1dGUsIGlmIGFueSwgCiAgICAgaW1wbCgpLnNldE1lZGlhR3Jv
dXAoU3RyaW5nKCkpOwogICAgIC8vIGFuZCB0aGVuIHNldCB0aGUgY3VycmVudCBtZWRpYSBjb250
cm9sbGVyIHRvIHRoZSBnaXZlbiB2YWx1ZS4KLSAgICBpbXBsKCkuc2V0Q29udHJvbGxlcih0b01l
ZGlhQ29udHJvbGxlcih2YWx1ZSkpOworICAgIGltcGwoKS5zZXRDb250cm9sbGVyKEpTTWVkaWFD
b250cm9sbGVyOjp0b0ltcGwodmFsdWUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3Bw
CmluZGV4IDc0YTU4NjcyZjQ3ZGY3YzZmYWRmZjg0MGY5MzQ3ODI3NmJjOTg4Y2QuLjcxZjNkZGIw
MTM0NjhjYTM1NDQxZmRhODVhNWVhMzBkMDkxMDkwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5j
cHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6aW5kZXhT
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNWYWwKIEpTVmFsdWUgSlNI
VE1MT3B0aW9uc0NvbGxlY3Rpb246OmFkZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSFRNTE9w
dGlvbnNDb2xsZWN0aW9uJiBpbXAgPSBpbXBsKCk7Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9w
dGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIEhUTUxP
cHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwoZXhlYy0+
YXJndW1lbnQoMCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGlmIChleGVjLT5h
cmd1bWVudENvdW50KCkgPCAyKQogICAgICAgICBpbXAuYWRkKG9wdGlvbiwgZWMpOwpAQCAtODEs
NyArODEsNyBAQCBKU1ZhbHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIC8vIFRoZSBhcmd1bWVudCBjYW4gYmUgYW4gSFRNTE9wdGlvbkVs
ZW1lbnQgb3IgYW4gaW5kZXguCiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9IGV4ZWMtPmFyZ3VtZW50
KDApOwotICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gdG9IVE1MT3B0aW9uRWxl
bWVudChhcmd1bWVudCkpCisgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hU
TUxPcHRpb25FbGVtZW50Ojp0b0ltcGwoYXJndW1lbnQpKQogICAgICAgICBpbXBsKCkucmVtb3Zl
KG9wdGlvbik7CiAgICAgZWxzZQogICAgICAgICBpbXBsKCkucmVtb3ZlKGFyZ3VtZW50LnRvSW50
MzIoZXhlYykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
U2VsZWN0RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcAppbmRleCA0M2Y2OTRiNTBhZTMzNmViOTNkZjM2YzE4
Y2M1MDM1ZTQ1ODIwZDA1Li5kZGQwOTI5MmExOTIwMjgxMTE5MTQyNTk4Y2NkZWJhNGNlNDk0YjU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVt
ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxl
Y3RFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDMsNyArNDMsNyBAQCBKU1ZhbHVlIEpTSFRNTFNlbGVj
dEVsZW1lbnQ6OnJlbW92ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gVGhlIEhUTUxTZWxlY3RFbGVt
ZW50OjpyZW1vdmUoKSBmdW5jdGlvbiBjYW4gdGFrZSBlaXRoZXIgYW4gb3B0aW9uIG9iamVjdCBv
ciB0aGUgaW5kZXggb2YgYW4gb3B0aW9uLgotICAgICAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQq
IG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpKQorICAgICAg
ICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRv
SW1wbChleGVjLT5hcmd1bWVudCgwKSkpCiAgICAgICAgICAgICBzZWxlY3QucmVtb3ZlKG9wdGlv
bik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNlbGVjdC5yZW1vdmVCeUluZGV4KGV4ZWMt
PmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYykpOwpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIHNlbGVj
dEluZGV4U2V0dGVyKEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QsIEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZAogICAgICAgICBzZWxlY3QtPnJlbW92ZUJ5SW5kZXgoaW5kZXgpOwogICAg
IGVsc2UgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgSFRNTE9wdGlv
bkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQodmFsdWUpOworICAgICAgICBI
VE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBsKHZh
bHVlKTsKICAgICAgICAgaWYgKCFvcHRpb24pCiAgICAgICAgICAgICBlYyA9IFRZUEVfTUlTTUFU
Q0hfRVJSOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKaW5kZXggZjRiNTU1
ZjgzNDlhNDAzYWIxNDUyMDE2MjM3NTQyNjIwNjgwOWRiZC4uZjU3NDEwMDk5NTkyNjBmZWI3Zjk3
YTZkZDdlM2M1NTNiMjMzNzM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcApAQCAtMTMxLDcg
KzEzMSw3IEBAIEpTVmFsdWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVu
dShFeGVjU3RhdGUqIGV4ZWMpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwot
ICAgIEV2ZW50KiBldmVudCA9IHRvRXZlbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIEV2ZW50
KiBldmVudCA9IEpTRXZlbnQ6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSk7CiAKICAgICBKU0Fy
cmF5KiBhcnJheSA9IGFzQXJyYXkoZXhlYy0+YXJndW1lbnQoMSkpOwogICAgIENvbnRleHRNZW51
IG1lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VF
dmVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVu
dEN1c3RvbS5jcHAKaW5kZXggYmE5ZTNjYzhlZDY5MmU5NDAzZTY3ODc3MWEyNTZlN2ZhYjE4Y2Qx
NS4uOWJiM2ZkYWJkZmIwZjFlODk4MTRmNGEzODlmOTQwMzRhOWQzMTdiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAt
OTUsNyArOTUsNyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGhhbmRsZUluaXRNZXNzYWdlRXZlbnQo
SlNNZXNzYWdlRXZlbnQqIGpzRXZlbnQsIEpTQzo6RXhlY1N0YQogICAgIGJvb2wgY2FuY2VsYWJs
ZUFyZyA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvQm9vbGVhbihleGVjKTsKICAgICBjb25zdCBTdHJp
bmcgb3JpZ2luQXJnID0gZXhlYy0+YXJndW1lbnQoNCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpOwogICAgIGNvbnN0IFN0cmluZyBsYXN0RXZlbnRJZEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDUp
LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKLSAgICBET01XaW5kb3cqIHNvdXJjZUFyZyA9
IHRvRE9NV2luZG93KGV4ZWMtPmFyZ3VtZW50KDYpKTsKKyAgICBET01XaW5kb3cqIHNvdXJjZUFy
ZyA9IEpTRE9NV2luZG93Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoNikpOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxNZXNzYWdlUG9ydEFycmF5PiBtZXNzYWdlUG9ydHM7CiAgICAgT3duUHRyPEFycmF5
QnVmZmVyQXJyYXk+IGFycmF5QnVmZmVyczsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDcpLmlz
VW5kZWZpbmVkT3JOdWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKaW5kZXggNzVhYmUxOGNmM2M1ZmRjNTUwZWM2MmE5Mjhm
ZjA1ZGJjOTQwNWQxYy4uOTQ2ZmUyYWU3NTU4YzJjMDk4NDk2Mjk4OWU3ZmQzYjMxOTNjOTE1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBmaWxsTWVzc2FnZVBvcnRBcnJheShKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEEKICAgICAgICAg
fQogCiAgICAgICAgIC8vIFZhbGlkYXRpb24gb2YgT2JqZWN0cyBpbXBsZW1lbnRpbmcgYW4gaW50
ZXJmYWNlLCBwZXIgV2ViSURMIHNwZWMgNC4xLjE1LgotICAgICAgICBSZWZQdHI8TWVzc2FnZVBv
cnQ+IHBvcnQgPSB0b01lc3NhZ2VQb3J0KHZhbHVlKTsKKyAgICAgICAgUmVmUHRyPE1lc3NhZ2VQ
b3J0PiBwb3J0ID0gSlNNZXNzYWdlUG9ydDo6dG9JbXBsKHZhbHVlKTsKICAgICAgICAgaWYgKHBv
cnQpIHsKICAgICAgICAgICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGUgcG9ydHMuCiAgICAgICAg
ICAgICBpZiAocG9ydEFycmF5LmNvbnRhaW5zKHBvcnQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCBkMzYyNGUxZjIzNzNjZTk3ODAyNWM0NmVi
ZTIxZmNlZTQxZmE2YWNmLi5kZDdiMjM1MDBkMDI3NTQ0NTYxNDBlNThlZDYwZmJjZDBiOGRlMGYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTEz
NSw3ICsxMzUsNyBAQCBib29sIEpTTm9kZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdgogSlNWYWx1ZSBKU05vZGU6Omlu
c2VydEJlZm9yZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgYm9vbCBvayA9IGltcGwoKS5pbnNlcnRCZWZvcmUodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50
KDApKSwgdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBs
KCkuaW5zZXJ0QmVmb3JlKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgSlNOb2Rl
Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgwKTsK
QEAgLTE0NSw3ICsxNDUsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNTdGF0
ZSogZXhlYykKIEpTVmFsdWUgSlNOb2RlOjpyZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQog
ewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkucmVwbGFj
ZUNoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVudCgx
KSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZChKU05vZGU6OnRvSW1w
bChleGVjLT5hcmd1bWVudCgwKSksIEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEpKSwg
ZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAg
ICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0xNTUsNyArMTU1LDcgQEAgSlNWYWx1ZSBK
U05vZGU6OnJlcGxhY2VDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTTm9kZTo6cmVt
b3ZlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGJvb2wgb2sgPSBpbXBsKCkucmVtb3ZlQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDAp
KSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBsKCkucmVtb3ZlQ2hpbGQoSlNOb2RlOjp0b0ltcGwo
ZXhlYy0+YXJndW1lbnQoMCkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsK
ICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE2NSw3
ICsxNjUsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6cmVtb3ZlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQog
SlNWYWx1ZSBKU05vZGU6OmFwcGVuZENoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLmFwcGVuZENoaWxkKHRvTm9k
ZShleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLmFwcGVuZENo
aWxkKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOwogICAgIHNldERPTUV4
Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+YXJn
dW1lbnQoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVG
aWx0ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcAppbmRleCAyOGMxNmMxMWVjOTU0MTEzOTk5NjYyMzZlNTc2OTgwNzVhYjA4MWRh
Li40ZTE0N2Q3NWQ2ZTFiZGVkYjkxY2QyOWEwOTAxODk0Zjg3MmM3YWQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKQEAgLTM1LDcg
KzM1LDcgQEAgdm9pZCBKU05vZGVGaWx0ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKEpTQzo6
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZpbXBsKCkp
OwogfQogCi1QYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU0M6OlZNJiB2bSwg
SlNDOjpKU1ZhbHVlIHZhbHVlKQorUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiBKU05vZGVGaWx0ZXI6
OnRvSW1wbChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1
ZS5pbmhlcml0cyhKU05vZGVGaWx0ZXI6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAmSlNDOjpq
c0Nhc3Q8SlNOb2RlRmlsdGVyKj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCmluZGV4
IGY0MDVhMDNkZjZlMzAxZWU4MDZhY2M4Njg3MjYzMWU2YmRiNDg5ZDguLjY4ODBhMGM4NDEzMzUz
Y2U5MDc2MWNlNTM2YzVkM2YwOWM2MzRjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBK
U1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjplbmNyeXB0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5
ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxD
cnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhl
Yyk7CiAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpkZWNyeXB0
KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQog
Ci0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0
b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAg
ICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTI0OCw3ICsyNDgsNyBAQCBKU1Zh
bHVlIEpTU3VidGxlQ3J5cHRvOjpzaWduKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9D
cnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9L
ZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkp
OwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAK
QEAgLTI5OSw3ICsyOTksNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp2ZXJpZnkoRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1wbChl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtNjAwLDcgKzYwMCw3IEBAIEpTVmFsdWUgSlNT
dWJ0bGVDcnlwdG86OmV4cG9ydEtleShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5
cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5
PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsK
ICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBA
IC02MzAsMTEgKzYzMCwxMSBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp3cmFwS2V5KEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAg
UmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiB3cmFwcGlu
Z0tleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBSZWZQ
dHI8Q3J5cHRvS2V5PiB3cmFwcGluZ0tleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMikpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYyk7CiAKQEAgLTcxMyw3ICs3MTMsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5
cHRvOjp1bndyYXBLZXkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiB1bndyYXBwaW5nS2V5ID0gdG9D
cnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJlZlB0cjxDcnlwdG9L
ZXk+IHVud3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDIpKTsKICAgICBpZiAoIXVud3JhcHBpbmdLZXkpCiAgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihleGVjKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IGM1ZjIxNjEy
OWFjMzlmMGNhMTc1YzI2NWZjMTIwZjNkMmZkNDYxNTUuLmZlNTFmYzlmNmRkNmQ1NzVlNjdmZmY2
NjI4ZWMzNjM3MmQ1YTgyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTI1Nyw3ICsy
NTcsNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hlZFNoYWRl
cnMoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2Vw
dGlvbihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0g
aW1wbCgpOwotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dl
YkdMUHJvZ3JhbTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAo
IXByb2dyYW0gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxs
KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBWZWN0b3I8UmVm
UHRyPFdlYkdMU2hhZGVyPj4gc2hhZGVyczsKQEAgLTM0MSw3ICszNDEsNyBAQCBKU1ZhbHVlIEpT
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyKEV4ZWNTdGF0ZSogZXhl
YykKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4
dCYgY29udGV4dCA9IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSB0b1dlYkdM
UHJvZ3JhbShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQcm9ncmFtKiBw
cm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgw
KSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAg
ICAgdW5zaWduZWQgcG5hbWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKGV4
ZWMpOwpAQCAtMzY5LDcgKzM2OSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFNoYWRlclBhcmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgV2ViR0xSZW5kZXJpbmdD
b250ZXh0JiBjb250ZXh0ID0gaW1wbCgpOwogICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCku
aW5oZXJpdHMoSlNXZWJHTFNoYWRlcjo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlw
ZUVycm9yKGV4ZWMpOwotICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSB0b1dlYkdMU2hhZGVyKGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gSlNX
ZWJHTFNoYWRlcjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICB1bnNp
Z25lZCBwbmFtZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CiAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKQEAgLTQwNSwxMCArNDA1LDEwIEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFVuaWZvcm0oRXhlY1N0YXRlKiBleGVjKQogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0gaW1wbCgpOwotICAgIFdlYkdM
UHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9JbXBs
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIXByb2dyYW0gJiYgIWV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcihleGVjKTsKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRp
b24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsK
KyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0
aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICghbG9jYXRp
b24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTEdldEluZm8gaW5m
byA9IGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbiwgZWMpOwpAQCAtNDc4LDcg
KzQ3OCw3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25U
b0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFdlCiAgICAgbG9uZyBpbmRleCA9IC0xOwog
ICAgIAogICAgIGlmIChmdW5jdGlvbkZvclVuaWZvcm0oZikpIHsKLSAgICAgICAgbG9jYXRpb24g
PSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAg
ICAgICAgbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkpOwogICAgICAgICBpZiAoIWxvY2F0aW9uICYmICFleGVjLT51bmNo
ZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJu
IHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIH0gZWxzZQpAQCAtNTY0LDcgKzU2NCw3IEBAIHN0
YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwgSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIFdlCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAhPSAy
KQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlv
biogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5p
Zm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlm
ICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JO
dWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgCkBAIC02MjQs
NyArNjI0LDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgoRGF0YUZ1
bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXQKICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpICE9IDMpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9u
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKIAotICAgIFdlYkdM
VW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlv
biA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCku
aXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwCmluZGV4IGM5ZWRjZmE4YjRkMWMyMzc0Mzc4MjA2MWY3MjdmMWMyM2Q1ZDJj
MTEuLmY5YWUxNjQ3YWZhNWU1N2YxNDZiNWZmYWQ2NDg3NDZlODNmM2RkNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
CkBAIC0xNDgsMTEgKzE0OCwxMSBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRXhl
Y1N0YXRlKiBleGVjKQogICAgIGlmICh2YWwuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAg
aW1wbCgpLnNlbmQoZWMpOwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0RvY3VtZW50Ojpp
bmZvKCkpKQotICAgICAgICBpbXBsKCkuc2VuZCh0b0RvY3VtZW50KHZhbCksIGVjKTsKKyAgICAg
ICAgaW1wbCgpLnNlbmQoSlNEb2N1bWVudDo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNlIGlm
ICh2YWwuaW5oZXJpdHMoSlNCbG9iOjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2VuZCh0b0Js
b2IodmFsKSwgZWMpOworICAgICAgICBpbXBsKCkuc2VuZChKU0Jsb2I6OnRvSW1wbCh2YWwpLCBl
Yyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTRE9NRm9ybURhdGE6OmluZm8oKSkpCi0g
ICAgICAgIGltcGwoKS5zZW5kKHRvRE9NRm9ybURhdGEodmFsKSwgZWMpOworICAgICAgICBpbXBs
KCkuc2VuZChKU0RPTUZvcm1EYXRhOjp0b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYgKHZh
bC5pbmhlcml0cyhKU0FycmF5QnVmZmVyOjppbmZvKCkpKQogICAgICAgICBpbXBsKCkuc2VuZCh0
b0FycmF5QnVmZmVyKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNBcnJh
eUJ1ZmZlclZpZXc6OmluZm8oKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDI4ZjIyZGFiMGRmMWJlMGFhN2I1
ZTJmMTZhNDRkMTNkNmQ3NzZiZjkuLjcwZTkyMWFlNGE3NGI1YzM5NzRhNTIxZWZkODk4NGFjNDBk
NmVkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcApAQCAtNzg0LDEyICs3ODQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICB3cml0ZShvYmotPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChGaWxl
KiBmaWxlID0gdG9GaWxlKG9iaikpIHsKKyAgICAgICAgICAgIGlmIChGaWxlKiBmaWxlID0gSlNG
aWxlOjp0b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEZpbGVUYWcpOwogICAg
ICAgICAgICAgICAgIHdyaXRlKGZpbGUpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKEZpbGVMaXN0KiBsaXN0ID0gdG9GaWxlTGlz
dChvYmopKSB7CisgICAgICAgICAgICBpZiAoRmlsZUxpc3QqIGxpc3QgPSBKU0ZpbGVMaXN0Ojp0
b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEZpbGVMaXN0VGFnKTsKICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKICAgICAgICAgICAg
ICAgICB3cml0ZShsZW5ndGgpOwpAQCAtNzk3LDcgKzc5Nyw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgICAgIHdyaXRlKGxpc3QtPml0ZW0oaSkpOwogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKEJsb2IqIGJsb2IgPSB0b0Js
b2Iob2JqKSkgeworICAgICAgICAgICAgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvSW1wbChv
YmopKSB7CiAgICAgICAgICAgICAgICAgd3JpdGUoQmxvYlRhZyk7CiAgICAgICAgICAgICAgICAg
bV9ibG9iVVJMcy5hcHBlbmQoYmxvYi0+dXJsKCkpOwogICAgICAgICAgICAgICAgIHdyaXRlKGJs
b2ItPnVybCgpKTsKQEAgLTgwNSw3ICs4MDUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
IHdyaXRlKGJsb2ItPnNpemUoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoSW1hZ2VEYXRhKiBkYXRhID0gdG9JbWFnZURhdGEo
b2JqKSkgeworICAgICAgICAgICAgaWYgKEltYWdlRGF0YSogZGF0YSA9IEpTSW1hZ2VEYXRhOjp0
b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEltYWdlRGF0YVRhZyk7CiAgICAg
ICAgICAgICAgICAgd3JpdGUoZGF0YS0+d2lkdGgoKSk7CiAgICAgICAgICAgICAgICAgd3JpdGUo
ZGF0YS0+aGVpZ2h0KCkpOwpAQCAtODY1LDcgKzg2NSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHN1Y2Nlc3M7CiAgICAgICAgICAgICB9CiAjaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCi0gICAgICAgICAgICBpZiAoQ3J5cHRvS2V5KiBrZXkgPSB0b0NyeXB0b0tleShvYmop
KSB7CisgICAgICAgICAgICBpZiAoQ3J5cHRvS2V5KiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBs
KG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShDcnlwdG9LZXlUYWcpOwogICAgICAgICAg
ICAgICAgIFZlY3Rvcjx1aW50OF90PiBzZXJpYWxpemVkS2V5OwogICAgICAgICAgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IGR1bW15QmxvYlVSTHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDhkNTRkYTEzYzRkOWY1Nzg2MDQw
ZmM0YjUzOWNhYzA2YzE4NGVlMDAuLjQ5YWE5NjQyOTk5M2IyYTg4N2JmNGUzYTNkZmRhZDYzMTMw
ODJhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC04NzQsNiArODc0LDE3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQ
cm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpOwogICAgIH0KIAor
ICAgICMgSlNWYWx1ZSB0byBpbXBsZW1lbnRhdGlvbiB0eXBlCisgICAgaWYgKCEkaGFzUGFyZW50
IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVP
YmplY3QifSkgeworICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGVGaWx0ZXIiKSB7
CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE5vZGVGaWx0ZXI+IHRvSW1wbChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAg
ICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5nTGlzdCIpIHsKKyAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NU3RyaW5n
TGlzdD4gdG9JbXBsKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
JGltcGxUeXBlKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICB9CisgICAgfQor
CiAgICAgJGhlYWRlclRyYWlsaW5nSW5jbHVkZXN7IiR7Y2xhc3NOYW1lfUN1c3RvbS5oIn0gPSAx
IGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUhlYWRlciJ9Owog
CiAgICAgbXkgJG5hbWVkR2V0dGVyRnVuY3Rpb24gPSBHZXROYW1lZEdldHRlckZ1bmN0aW9uKCRp
bnRlcmZhY2UpOwpAQCAtMTE2NiwxNSArMTE3Nyw2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAg
IGlmIChTaG91bGRHZW5lcmF0ZVRvSlNEZWNsYXJhdGlvbigkaGFzUGFyZW50LCAkaW50ZXJmYWNl
KSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiV0VCQ09SRV9FWFBPUlQgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbXBsVHlw
ZSopO1xuIik7CiAgICAgfQotICAgIGlmICghJGhhc1BhcmVudCB8fCAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKLSAgICAgICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIlBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpTQzo6
Vk0mLCBKU0M6OkpTVmFsdWUpO1xuIik7Ci0gICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1l
IGVxICJET01TdHJpbmdMaXN0IikgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IlBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9ET01TdHJpbmdMaXN0KEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlKTtcbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIldFQkNPUkVfRVhQT1JUICRpbXBsVHlwZSogdG8ke2ludGVyZmFj
ZU5hbWV9KEpTQzo6SlNWYWx1ZSk7XG4iKTsKLSAgICAgICAgfQotICAgIH0KICAgICBpZiAoJHVz
ZXNUb0pTTmV3bHlDcmVhdGVkeyRpbnRlcmZhY2VOYW1lfSkgewogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4iKTsKICAgICB9CkBAIC0z
MTEyLDcgKzMxMTQsNyBAQCBFTkQKICAgICB9CiAKICAgICBpZiAoKCEkaGFzUGFyZW50IG9yICRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3Qi
fSkgYW5kICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Ub05hdGl2
ZU9iamVjdCJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJGltcGxUeXBlKiB0byR7
aW50ZXJmYWNlTmFtZX0oSlNDOjpKU1ZhbHVlIHZhbHVlKVxuIik7CisgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiJGltcGxUeXBlKiAke2NsYXNzTmFtZX06OnRvSW1wbChKU0M6OkpTVmFsdWUg
dmFsdWUpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSAiIC4gR2V0Q2FzdGlu
Z0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSkgLiAiKHZhbHVlKSlcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7XG4i
KTsKQEAgLTMyNDMsNyArMzI0NSw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogCiAg
ICAgICAgIGlmICgkYXJnVHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IGN1c3RvbVJl
c29sdmVyO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgWFBhdGhO
U1Jlc29sdmVyKiByZXNvbHZlciA9IHRvWFBhdGhOU1Jlc29sdmVyKGV4ZWMtPmFyZ3VtZW50KCRh
cmdzSW5kZXgpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFhQ
YXRoTlNSZXNvbHZlciogcmVzb2x2ZXIgPSBKU1hQYXRoTlNSZXNvbHZlcjo6dG9JbXBsKGV4ZWMt
PmFyZ3VtZW50KCRhcmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIGlmICghcmVzb2x2ZXIpIHtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgICAgICBjdXN0b21SZXNvbHZlciA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
OjpjcmVhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpXG4iKTsKQEAgLTMyOTYsNyArMzI5OCw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFt
ZXRlcnNDaGVjawogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAkYXJnc0luZGV4LCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsg
aSA8IGNvdW50OyArK2kpIHtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKS5pbmhlcml0cyhKUyR7
YXJnVHlwZX06OmluZm8oKSkpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgaSwg
XCIkbmFtZVwiLCBcIiRpbnRlcmZhY2VOYW1lXCIsICRxdW90ZWRGdW5jdGlvbk5hbWUsIFwiJGFy
Z1R5cGVcIik7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgICRuYW1lLmFwcGVuZCh0byRhcmdUeXBlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7
XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1l
LmFwcGVuZChKUyR7YXJnVHlwZX06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkp
O1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpCiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBWZWN0b3I8JG5hdGl2ZUVsZW1lbnRUeXBlPiAkbmFtZSA9IHRvTmF0aXZlQXJndW1lbnRz
PCRuYXRpdmVFbGVtZW50VHlwZT4oZXhlYywgJGFyZ3NJbmRleCk7XG4iKTsKQEAgLTM4NDksNyAr
Mzg1MSw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKIAogICAgIGlmICgkdHlwZSBlcSAiTm9kZUZp
bHRlciIpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25kaXRp
b25hbCk7Ci0gICAgICAgIHJldHVybiAidG8kdHlwZShleGVjLT52bSgpLCAkdmFsdWUpIjsKKyAg
ICAgICAgcmV0dXJuICJKUyR7dHlwZX06OnRvSW1wbChleGVjLT52bSgpLCAkdmFsdWUpIjsKICAg
ICB9CiAKICAgICBpZiAoJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKQEAgLTM4
ODEsNyArMzg4Myw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICBpZiAoJGFycmF5T3JTZXF1
ZW5jZVR5cGUpIHsKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1JlZlB0clR5cGUoJGFy
cmF5T3JTZXF1ZW5jZVR5cGUpKSB7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMk
e2FycmF5T3JTZXF1ZW5jZVR5cGV9LmgiKTsKLSAgICAgICAgICAgIHJldHVybiAiKHRvUmVmUHRy
TmF0aXZlQXJyYXk8JHthcnJheU9yU2VxdWVuY2VUeXBlfSwgSlMke2FycmF5T3JTZXF1ZW5jZVR5
cGV9PihleGVjLCAkdmFsdWUsICZ0byR7YXJyYXlPclNlcXVlbmNlVHlwZX0pKSI7CisgICAgICAg
ICAgICByZXR1cm4gIih0b1JlZlB0ck5hdGl2ZUFycmF5PCR7YXJyYXlPclNlcXVlbmNlVHlwZX0s
IEpTJHthcnJheU9yU2VxdWVuY2VUeXBlfT4oZXhlYywgJHZhbHVlLCAmSlMke2FycmF5T3JTZXF1
ZW5jZVR5cGV9Ojp0b0ltcGwpKSI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICJ0b05hdGl2
ZUFycmF5PCIgLiBHZXROYXRpdmVWZWN0b3JJbm5lclR5cGUoJGFycmF5T3JTZXF1ZW5jZVR5cGUp
IC4gIj4oZXhlYywgJHZhbHVlKSI7CiAgICAgfQpAQCAtMzg5Miw3ICszODk0LDcgQEAgc3ViIEpT
VmFsdWVUb05hdGl2ZQogCiAgICAgIyBEZWZhdWx0LCBhc3N1bWUgYXV0b2dlbmVyYXRlZCB0eXBl
IGNvbnZlcnNpb24gcm91dGluZXMKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMkdHlwZS5oIiwg
JGNvbmRpdGlvbmFsKTsKLSAgICByZXR1cm4gInRvJHR5cGUoJHZhbHVlKSI7CisgICAgcmV0dXJu
ICJKUyR7dHlwZX06OnRvSW1wbCgkdmFsdWUpIjsKIH0KIAogc3ViIE5hdGl2ZVRvSlNWYWx1ZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA3MTkzOGZiZGViYzU1OGMyNzVj
OTVhYWM2MzE3YWUyZDVkYjg0MDVlLi5hMTYxMTY1YTJiM2VkNjg2YWYyMGYyNmI4M2I5Y2M2NmI3
MjI3ZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMjE0LDcgKzIx
NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2JqZWN0
UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0CiAgICAgVGVzdEFjdGl2ZURPTU9iamVjdCYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgTm9kZSogbmV4dENoaWxkKHRvTm9kZShleGVjLT5h
cmd1bWVudCgwKSkpOworICAgIE5vZGUqIG5leHRDaGlsZChKU05vZGU6OnRvSW1wbChleGVjLT5h
cmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1wbC5l
eGNpdGluZ0Z1bmN0aW9uKG5leHRDaGlsZCk7CkBAIC0yODksNyArMjg5LDcgQEAgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBUZXN0QWN0aXZlRE8KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RBY3RpdmVE
T01PYmplY3Q+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RBY3RpdmVET01PYmplY3Qq
IHRvVGVzdEFjdGl2ZURPTU9iamVjdChKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0QWN0aXZlRE9N
T2JqZWN0KiBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEFjdGl2ZURP
TU9iamVjdCo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0
aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggNTVjMmVmOTRlMjZjMjE4YjEwMTI2MWFkOWUx
MTE0ZTA5MWU0NmYwNy4uZWU2NjQ2Mzc5NDllM2U0YWIzZTJkNWJiMWQ1YTc3ODQ3MDQ1Mzk2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEFjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0QWN0
aXZlRE9NT2JqZWN0KiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShK
U0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RBY3RpdmVET01PYmplY3QoKTsKQEAgLTkzLDcgKzk0
LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQs
IFRlc3RBY3RpdmVET01PYmplY3QqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEFjdGl2ZURPTU9i
amVjdCopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEFjdGl2ZURPTU9iamVjdCogdG9UZXN0QWN0aXZl
RE9NT2JqZWN0KEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXggNTY4YzlkZTg0ZWUyY2Y3ZTJl
MTEyYzdhMTZkMDdjOTdhM2FkYzJkZC4uYWUxNzFjYmEyNjYyNzYzMGI4MzVlYjZkNjEzNjhjYjky
ZDlmNjJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0yNjMs
NyArMjYzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q3VzdG9tTmEKICAgICByZXR1cm4gY3JlYXRlTmV3
V3JhcHBlcjxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0K
IAotVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b1Rlc3RDdXN0b21OYW1lZEdldHRlcihKU0M6OkpT
VmFsdWUgdmFsdWUpCitUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVy
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KHZhbHVlKSkKICAgICAg
ICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5oCmluZGV4IDFlYjM1ZDgyZTA4M2YxNzljNTA2YzE3NTcyZjE3NjY3N2YyYzk3NTAuLjEyMTli
NDc5ZTMxZWNkNDkyNWZjOWY3ODhmNGUwNWZhMzI1NTEyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0
b21OYW1lZEdldHRlci5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RDdXN0b21OYW1lZEdldHRlciog
dG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0Nl
bGwqKTsKQEAgLTk3LDcgKzk4LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdy
YXBwZXJXb3JsZCYgd29ybGQsIFRlc3RDdXN0b21OYW1lZEdldHRlciopCiB9CiAKIFdFQkNPUkVf
RVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RDdXN0b21O
YW1lZEdldHRlciogdG9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpKU1ZhbHVlKTsKIAogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggOGVhZmEwN2RkN2UzNmUyY2Q1YjkxZmU2NjMyM2ZkNmM5MzA4ODJhMi4uNGVlN2UxZDFj
OGUwNzY2MDcyY2M1ZDM2MWY0NzYzNDQxNTU2ODVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmNwcApAQCAtMjkyLDcgKzI5Miw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50Q29u
CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4oZ2xv
YmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEV2ZW50Q29uc3RydWN0b3IqIHRvVGVzdEV2ZW50
Q29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEV2ZW50Q29uc3RydWN0b3IqIEpT
VGVzdEV2ZW50Q29uc3RydWN0b3I6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3Iq
Pih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmgKaW5kZXggNWJiZWVjODBlNGNjNGIzOGExOTc3MTE5NWFjMWRkNDY5
NzZiMTMxNi4uYjNlMjlmNDEwYjU3OTljNDMwMjgyZGNlNGY1MmU0OThlNmYzNGNhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFdmVudENv
bnN0cnVjdG9yKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEV2ZW50Q29uc3RydWN0b3IoKTsKIApAQCAtOTMs
NyArOTQsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCwgVGVzdEV2ZW50Q29uc3RydWN0b3IqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV2ZW50
Q29uc3RydWN0b3IqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RFdmVudENvbnN0cnVjdG9yKiB0b1Rl
c3RFdmVudENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSk7CiAKIGJvb2wgZmlsbFRlc3RFdmVudENv
bnN0cnVjdG9ySW5pdChUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQmLCBKU0RpY3Rpb25hcnkmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggZGIzMzNkMjQ0NGMzOGU0ZTQ2YWI0N2Ji
NWM4OWJjYzhiM2ZhOGE1NC4uZTc3NmNiODI5OGNiYWQzMjVlNDcyYjQ2MDZhYjVhZDdhNzVlZmYw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9u
RGlzcGF0Y2hFdmVudChFeGUKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihleGVjKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgRXZlbnQqIGV2dCh0
b0V2ZW50KGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgRXZlbnQqIGV2dChKU0V2ZW50Ojp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29sZWFuKGltcGwuZGlzcGF0Y2hFdmVudChldnQsIGVj
KSk7CkBAIC0zNjQsNyArMzY0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXZlbnRUYXIKICAgICByZXR1
cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RFdmVudFRhcmdldD4oZ2xvYmFsT2JqZWN0LCBpbXBs
KTsKIH0KIAotVGVzdEV2ZW50VGFyZ2V0KiB0b1Rlc3RFdmVudFRhcmdldChKU0M6OkpTVmFsdWUg
dmFsdWUpCitUZXN0RXZlbnRUYXJnZXQqIEpTVGVzdEV2ZW50VGFyZ2V0Ojp0b0ltcGwoSlNDOjpK
U1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RFdmVudFRhcmdldCo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBs
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCmluZGV4IGViMGEyZDk5YmVjY2FiN2U1MjMxMThlNTRk
YmNhZDQ5MjFmNDQ4MDAuLmQ1YTE1ZWFhNzllNzBkM2Y0MGE3MzkzODhlOTVjOTA4YzBlYTA0ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFdmVudFRhcmdl
dCogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpK
U0NlbGwqKTsKQEAgLTEwMSw3ICsxMDIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQo
RE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEV2ZW50VGFyZ2V0KikKIH0KIAogV0VCQ09SRV9F
WFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCosIFRlc3RFdmVudFRhcmdldCopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEV2ZW50VGFyZ2V0KiB0
b1Rlc3RFdmVudFRhcmdldChKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggNGFkZTc2ZTkxNWIzOGNhNWYwN2I3NThhNjJm
YzVjOTE4ZTliYjk2My4uYzAyYzdlOTI2MzRlZjEwNGJlYWUzMWIxZjVhYmRlNjA0OGVhMWVlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3RFeGNlcHRpbwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV4Y2VwdGlvbj4o
Z2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEV4Y2VwdGlvbiogdG9UZXN0RXhjZXB0aW9u
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RFeGNlcHRpb24qIEpTVGVzdEV4Y2VwdGlvbjo6dG9J
bXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0RXhjZXB0aW9uKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBw
ZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAppbmRleCAzOTg0NTc0ZTk4N2Y5YjgxMTg0YjBi
NmZjYTNiZTFlNzc2ZmExYTRlLi4yMzYwYTljNDExMTgyYTNkYTE5NWViMjIwNzAxNDVjZjFjYjI4
NjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXhjZXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFeGNlcHRpb24q
IHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7
CiAgICAgfkpTVGVzdEV4Y2VwdGlvbigpOwpAQCAtOTQsNyArOTUsNiBAQCBpbmxpbmUgdm9pZCog
d3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEV4Y2VwdGlvbiopCiB9
CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBUZXN0RXhjZXB0aW9uKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0RXhj
ZXB0aW9uKiB0b1Rlc3RFeGNlcHRpb24oSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5kZXgg
NDI3YWJhOGQ0MGViNGQ0ZGQ4YmViNzc5MDQ3Nzk2NWIxN2FlYmIyZi4uZWJhOWY3YTMzMTg3Zjkx
NmJmZGU2MjI0NzhiYzcxMGZkZDI3N2VjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEdlbmVyYXRl
CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4o
Z2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRvVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUqIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OnRvSW1wbChKU0M6OkpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1w
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKaW5kZXggZGY3YmRkYmI0
OTI3ZjA0OGY4YmZkOThiODJhN2Q3NzcwNjYwNjMwOC4uNmVkMzViZDdhZjQ0MGZlMzBhNzUwZjBj
ODMzNWE3M2I3MzE4OGI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5o
CkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBj
cmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CisgICAgc3RhdGljIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b0ltcGwoSlNDOjpK
U1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9p
ZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqKTsK
LVdFQkNPUkVfRVhQT1JUIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcAppbmRleCBiMTQzY2M0ZTM2MjA0ZWY3ZGU2NmEwZDE2ZmVmNTNjNDE2
YTJmYTQzLi45YTFiZjE3N2JmNThlMWUxNjQ5YmYyZGZmMWVjODU3MDA4YmMyNzA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcApAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJm
YWNlSW1wbGVtZW50c05vZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKLSAgICBOb2RlKiBuYXRpdmVWYWx1ZSh0b05vZGUodmFsdWUpKTsK
KyAgICBOb2RlKiBuYXRpdmVWYWx1ZShKU05vZGU6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBs
LnNldEltcGxlbWVudHNOb2RlKG5hdGl2ZVZhbHVlKTsKQEAgLTc5NSw3ICs3OTUsNyBAQCB2b2lk
IHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RJbnRl
cmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgTm9kZSogbmF0aXZlVmFsdWUo
dG9Ob2RlKHZhbHVlKSk7CisgICAgTm9kZSogbmF0aXZlVmFsdWUoSlNOb2RlOjp0b0ltcGwodmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICBy
ZXR1cm47CiAgICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZSgmaW1wbCwg
bmF0aXZlVmFsdWUpOwpAQCAtODQxLDcgKzg0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMihF
CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMCkuaXNFbXB0eSgpID8g
U3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRv
VGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RP
Ymo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLmltcGxlbWVudHNNZXRob2QyKHNjcmlwdENvbnRl
eHQsIHN0ckFyZywgb2JqQXJnLCBlYykpKTsKQEAgLTkwNyw3ICs5MDcsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxl
bWVudGFsTWV0aG9kMgogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDAp
LmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykt
PnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RP
YmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBv
YmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0
ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3Vw
cGxlbWVudGFsTWV0aG9kMigmaW1wbCwgc2NyaXB0Q29udGV4dCwgc3RyQXJnLCBvYmpBcmcsIGVj
KSkpOwpAQCAtOTczLDcgKzk3Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEludGVyZmFjCiAgICAgcmV0
dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0SW50ZXJmYWNlPihnbG9iYWxPYmplY3QsIGltcGwp
OwogfQogCi1UZXN0SW50ZXJmYWNlKiB0b1Rlc3RJbnRlcmZhY2UoSlNDOjpKU1ZhbHVlIHZhbHVl
KQorVGVzdEludGVyZmFjZSogSlNUZXN0SW50ZXJmYWNlOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZh
bHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRl
cmZhY2UqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5oCmluZGV4IDdkZDhkMDMzZTQ3MWIxMjkzMjg4ZTY5NzA5OWRiM2M3ZjU3NzIyMDIu
LjFhNDc0NzgwN2FiYzk0Yjg0YmYwMzhhYWE2MWZjYmRlMzI4OGM3MzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEludGVyZmFjZSogdG9JbXBsKEpTQzo6SlNWYWx1
ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwog
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBz
dGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7CkBAIC0x
MjAsNyArMTIxLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3Js
ZCYgd29ybGQsIFRlc3RJbnRlcmZhY2UqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEludGVyZmFj
ZSopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEludGVyZmFjZSogdG9UZXN0SW50ZXJmYWNlKEpTQzo6
SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDNlOTMxMWU1MzBiNWMzYTZmZDUyMWZk
NTQwOTA0NGM4YzE2NDRkM2MuLmViMTZiMzA5ZjllODc3NGIzYTRmZmU0NTdhYjU4NTNlMWFiY2Ew
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAg
LTIyNyw3ICsyMjcsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RNZWRpYVF1ZQogICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KGdsb2JhbE9iamVjdCwg
aW1wbCk7CiB9CiAKLVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0b1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyKiBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZh
bHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmlt
cGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IDU1
NzM1ZWIzMjMxZDc0Y2M2NGVhZWIzZGM5N2NkODRhMGNmZWU5NGEuLjdjODY1NDJmOTAwMTE4ZDRh
YTE0ZTNmZjlhMTE3YjBhNGZmZjliMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlND
OjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ciogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpT
Q2VsbCopOwogICAgIH5KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKCk7CiAKQEAgLTkxLDcg
KzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lciogdG9UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihKU0M6OkpTVmFsdWUpOwog
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9y
LmNwcAppbmRleCA3NTQ2ZGNjZDJhOTJjMTIxYTg0ZDRmOGU1MmVkNjg4OGYxNjhkODQ1Li43N2Y5
N2NiZTgzZDFiNmRhNTE2NGY2NGRiMjI0ZTM4Zjg4OGMzNGJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQ29uc3RydWN0b3IuY3BwCkBAIC0yODEsNyArMjgxLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0TmFt
ZWRDb24KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3ROYW1lZENvbnN0cnVjdG9y
PihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9UZXN0
TmFtZWRDb25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0TmFtZWRDb25zdHJ1Y3Rv
ciogSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1
Y3Rvcio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQ29uc3RydWN0b3IuaAppbmRleCBlY2U5ODg3NzU5ZTA4NjgwNGQ5YmRjNWE1YTRm
NjZlMjRjZjM3YjYwLi45NjE3YzgzYmZiNGIwYmJhNmE4NTY4ZDdlNzk1ZDJkMmZmMzZjOWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90
b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdE5h
bWVkQ29uc3RydWN0b3IqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRl
c3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcigpOwogCkBA
IC05Miw3ICs5Myw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29y
bGQmIHdvcmxkLCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0
TmFtZWRDb25zdHJ1Y3RvciopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE5hbWVkQ29uc3RydWN0b3Iq
IHRvVGVzdE5hbWVkQ29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKaW5kZXggZTE3M2Fh
Y2Y3ODg3NGFiM2FlMDA4Mzg2YTRlMTg5MWE2NGI3NzE2Zi4uOGI1YTVlY2M1NmZmYmRhMjcyMmI1
ZjZiMmRmMjliOTY2Nzg2ZGQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNw
cApAQCAtNTM0LDcgKzUzNCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5vbmRldGVyCiAgICAgcmV0dXJu
IGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4oZ2xvYmFsT2JqZWN0LCBp
bXBsKTsKIH0KIAotVGVzdE5vbmRldGVybWluaXN0aWMqIHRvVGVzdE5vbmRldGVybWluaXN0aWMo
SlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE5vbmRldGVybWluaXN0aWMqIEpTVGVzdE5vbmRldGVy
bWluaXN0aWM6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdy
YXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vbmRldGVybWluaXN0aWMqPih2YWx1ZSkpCiAg
ICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlz
dGljLmgKaW5kZXggZjUyZWJiZDEzMzAwMWQwNzM3NWVjNDRmNWQ4ZjdmMThlYWQzNjVhYi4uYTY0
MjExMWNhZjE2ZDIzNTEwOTk3MGUzZDAwZjkxZmYxZDhlMDE4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpYy5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3ROb25kZXRlcm1pbmlzdGljKiB0
b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxs
Kik7CiAgICAgfkpTVGVzdE5vbmRldGVybWluaXN0aWMoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBp
bmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE5v
bmRldGVybWluaXN0aWMqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE5vbmRldGVybWluaXN0aWMq
KTsKLVdFQkNPUkVfRVhQT1JUIFRlc3ROb25kZXRlcm1pbmlzdGljKiB0b1Rlc3ROb25kZXRlcm1p
bmlzdGljKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cAppbmRleCBlNDM0ZGVjYmY4MDY4OTk5MzIxYWFjZWY0MTBhOGE3YWM5MjJmMmYxLi5mOGY0ODk5
YjA0NmExMmIzNmRiMzdkMDIyYjBiZTM1Y2M0MjliYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMjA3OCw3
ICsyMDc4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWwKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoq
IG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVl
KEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0VGVzdE9iakF0dHIobmF0
aXZlVmFsdWUpOwpAQCAtMjA5OCw3ICsyMDk4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpB
dHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHUK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAg
IFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGlt
cGwuc2V0WE1MT2JqQXR0cihuYXRpdmVWYWx1ZSk7CkBAIC0yNDU0LDcgKzI0NTQsNyBAQCB2b2lk
IHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rl
c3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1w
bCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAg
ICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0g
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMjQ3Nyw3ICsyNDc3LDcgQEAgdm9pZCBzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogYmFzZU8KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9i
aih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuOwogICAgIGltcGwuc2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMs
IG5hdGl2ZVZhbHVlKTsKQEAgLTI0OTcsNyArMjQ5Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBK
U09iCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsK
KyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwpAQCAtMjUyMCw3ICsyNTIwLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXgK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAg
IFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CkBAIC0yNTQzLDcgKzI1NDMsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YQogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBs
KCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVz
dE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKQEAgLTI1NjYsNyArMjU2Niw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoRXhlCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
LSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2Jq
KiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpA
QCAtMjU4OSw3ICsyNTg5LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRz
QW5kQ2FsbFN0YWNrQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmoKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAg
IFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5h
dGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0V2l0aFNj
cmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShuYXRpdmVWYWx1ZSk7CkBAIC0yNzQw
LDcgKzI3NDAsNyBAQCB2b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYQogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgU1ZHUHJv
cGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUodG9TVkdQb2ludCh2YWx1ZSkpOwor
ICAgIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKEpTU1ZHUG9pbnQ6
OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkp
CiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldE11dGFibGVQb2ludChuYXRpdmVWYWx1ZSk7
CkBAIC0yNzYwLDcgKzI3NjAsNyBAQCB2b2lkIHNldEpTVGVzdE9iakltbXV0YWJsZVBvaW50KEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKUwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0g
ICAgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUodG9TVkdQb2ludCh2
YWx1ZSkpOworICAgIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKEpT
U1ZHUG9pbnQ6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldEltbXV0YWJsZVBvaW50KG5h
dGl2ZVZhbHVlKTsKQEAgLTI5MzksNyArMjkzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0
CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8g
U3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRv
VGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RP
Ymo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgaW1wbC52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpB
cmcpOwpAQCAtMjk3NCw3ICsyOTc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBj
b25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmco
KSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2Jq
KGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9J
bXBsKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
ICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwuYnl0ZU1ldGhvZFdpdGhBcmdzKGJ5
dGVBcmcsIHN0ckFyZywgb2JqQXJnKSk7CkBAIC0zMDA5LDcgKzMwMDksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RX
aXRoQXJncyhFeGVjUwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEp
LmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYykt
PnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RP
YmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBv
YmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC5v
Y3RldE1ldGhvZFdpdGhBcmdzKG9jdGV0QXJnLCBzdHJBcmcsIG9iakFyZykpOwpAQCAtMzA0NCw3
ICszMDQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBjb25zdCBTdHJpbmcmIHN0
ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3Vt
ZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50
KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3Vt
ZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzTnVtYmVyKGltcGwubG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywg
b2JqQXJnKSk7CkBAIC0zMDc5LDcgKzMwNzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YQog
ICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0
cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rl
c3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2Jq
Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC5vYmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJB
cmcsIG9iakFyZykpKTsKQEAgLTMwOTYsNyArMzA5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmco
RXhlCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVmVjdG9yPFJlZlB0
cjxTY3JpcHRQcm9maWxlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8U2NyaXB0
UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxlPihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgJnRvU2Ny
aXB0UHJvZmlsZSkpKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+PiBzZXF1ZW5j
ZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxTY3JpcHRQcm9maWxlLCBKU1NjcmlwdFByb2ZpbGU+
KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmSlNTY3JpcHRQcm9maWxlOjp0b0ltcGwpKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLm1ldGhvZFdpdGhTZXF1ZW5j
ZUFyZyhzZXF1ZW5jZUFyZyk7CkBAIC0zMTUzLDcgKzMxNTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVz
QWxsQXJncwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDApLmlzRW1w
dHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVl
KGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9i
akFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmco
SlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC5tZXRob2RUaGF0UmVxdWlyZXNBbGxB
cmdzQW5kVGhyb3dzKHN0ckFyZywgb2JqQXJnLCBlYykpKTsKQEAgLTM2NjksNyArMzY2OSw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEoCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOwor
ICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJB
cmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVu
dCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwpAQCAtMzY4OSw3ICszNjg5LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kMigKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMp
KTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7Cisg
ICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7
CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMzgwMSw3ICszODAxLDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kOCgKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMp
KTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7Cisg
ICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7
CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLm92ZXJsb2FkZWRNZXRo
b2Qob2JqQXJnKTsKQEAgLTQxMjEsNyArNDEyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVl
KHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNU
ZXN0Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQxKHZhbHVlKTsKQEAgLTQxMzgsNyArNDEzOCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0MihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihl
eGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkp
KTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNUZXN0Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50
KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQy
KHZhbHVlKTsKQEAgLTQxNTUsNyArNDE1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NChFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVlKHRv
VGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNUZXN0
Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQ0KHZhbHVlKTsKQEAgLTQxNzIsNyArNDE3Miw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b252ZXJ0NShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsK
KyAgICBUZXN0Tm9kZSogdmFsdWUoSlNUZXN0Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDAp
KSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQ1KHZh
bHVlKTsKQEAgLTQyNTQsNyArNDI1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jCiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVm
aW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cyhKU1Rlc3RPYmo6Omlu
Zm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCAwLCAi
b2JqQXJnIiwgIlRlc3RPYmoiLCAic3RyaWN0RnVuY3Rpb25XaXRoU2VxdWVuY2UiLCAiVGVzdE9i
aiIpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsK
KyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkp
KTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIFZlY3Rvcjx1bnNpZ25lZD4g
YSh0b05hdGl2ZUFycmF5PHVuc2lnbmVkPihleGVjLCBleGVjLT5hcmd1bWVudCgxKSkpOwpAQCAt
NDI3OSw3ICs0Mjc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KEUKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxs
KCkgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmluaGVyaXRzKEpTVGVzdE9iajo6aW5mbygpKSkKICAg
ICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIDAsICJvYmpBcmciLCAi
VGVzdE9iaiIsICJzdHJpY3RGdW5jdGlvbldpdGhBcnJheSIsICJUZXN0T2JqIik7Ci0gICAgVGVz
dE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoq
IG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgVmVjdG9yPGludD4gYXJyYXkodG9OYXRpdmVBcnJh
eTxpbnQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CkBAIC00MzQxLDE0ICs0MzQxLDE0IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
YXJpYWRpY05vZGVNZXRob2QoRXhlY1N0CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMt
PmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7Ci0gICAgTm9kZSogaGVhZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBOb2Rl
KiBoZWFkKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8Tm9kZSo+IHRhaWw7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMSwgY291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBjb3VudDsgKytp
KSB7CiAgICAgICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkuaW5oZXJpdHMoSlNO
b2RlOjppbmZvKCkpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3Io
KmV4ZWMsIGksICJ0YWlsIiwgIlRlc3RPYmoiLCAidmFyaWFkaWNOb2RlTWV0aG9kIiwgIk5vZGUi
KTsKLSAgICAgICAgdGFpbC5hcHBlbmQodG9Ob2RlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkp
KSk7CisgICAgICAgIHRhaWwuYXBwZW5kKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KGkpKSk7CiAgICAgfQogICAgIGltcGwudmFyaWFkaWNOb2RlTWV0aG9kKGhlYWQsIHRh
aWwpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC00NDM0
LDcgKzQ0MzQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPYmoqIGltcAogICAgIHJldHVybiBjcmVhdGVO
ZXdXcmFwcGVyPEpTVGVzdE9iaj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE9iaiog
dG9UZXN0T2JqKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RPYmoqIEpTVGVzdE9iajo6dG9JbXBs
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaAppbmRleCAzYzBiZmM1YzlkZWQxNGQzZGM2MzcwYmQxYzJlNzgxZTkwZGJiOGZlLi4z
MmVlYWY2NzQwYWZmMWE0ZWU1NmExMmE0YTY2MzBkNDg3NDRlM2JjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0zOCw2
ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90
b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgc3RhdGljIFRlc3RPYmoqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0
cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE9iaigpOwpAQCAtMTA2LDcgKzEwNyw2IEBA
IGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0
T2JqKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RPYmoqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RP
YmoqIHRvVGVzdE9iaihKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA2MzA4
ZDllM2JiMzAwZTdiYWRjYzdkZTIwYWUxYzk1OTM4NTBhYWYwLi4yMzQ2NTJkYzdhODQ2NTFhZGZk
NmRjYzYyN2ZiMmRlZGQ0Nzk1NWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVj
dEoKICAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IqIGNhc3RlZFRo
aXMgPSBqc0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKj4oZXhl
Yy0+Y2FsbGVlKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KGV4ZWMpKTsKLSAgICBCbG9iKiBibG9iKHRvQmxvYihleGVjLT5hcmd1bWVudCgwKSkpOworICAg
IEJsb2IqIGJsb2IoSlNCbG9iOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIFJlZlB0cjxUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9ycz4gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZShibG9iKTsK
QEAgLTI4Myw3ICsyODMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPdmVybG9hZAogICAgIHJldHVybiBj
cmVhdGVOZXdXcmFwcGVyPEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KGdsb2JhbE9iamVj
dCwgaW1wbCk7CiB9CiAKLVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzKiBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjp0b0ltcGwoSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXIt
PmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCmluZGV4
IDljNzZiYWU0NDk4Y2MyYmQ1MzM4MDdiNTNiODIxZTViOGRjMjQ3YzYuLjQ4MjU2NDIzZTA0Mzhm
M2NlOTQyNmY2MzIxN2YxZTYxZTNlYWU5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9ycyogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6
OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKCk7CiAKQEAgLTkx
LDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYg
d29ybGQsIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKikKIH0KIAogV0VCQ09SRV9FWFBPUlQg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyogdG9UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhKU0M6OkpTVmFsdWUp
OwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggODY3ZDBjMDg1YzI1ZTY4
N2ViOWM1NzVkNjZhYTQxZmM3YzlkYWZhMy4uNjUzNzBiNTZkZDYxNjExZmRhM2IwYzJkYzZmODJj
MWM3NmY0Yjg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RT
ZXJpYWxpegogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdG9UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UqIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6dG9JbXBsKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4odmFsdWUpKQogICAgICAgICByZXR1
cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCBhNDhiYzhlMDY5OTNmNDM2NTY3NjAxZTNmNjBm
NDM2NWM4YWJlZGM5Li5lYTAwZGUyMWEyNDhkZjdiODRkNTk0MjVjNWJjMjE1ODQ3N2VkM2YxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uq
IHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0Nl
bGwqKTsKICAgICB+SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKCk7CiAKQEAg
LTk3LDcgKzk4LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3Js
ZCYgd29ybGQsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnQKIH0KIAogV0VCQ09SRV9FWFBP
UlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCos
IFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKTsKLVdFQkNPUkVfRVhQT1JUIFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHRvVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGUyYTkzYWExZjRkZTg2ZGQ5NzUwZWVhYTIzNTlkNmRi
N2ExZTgyYmYuLjBmNmQxYmU2MzdkNmRkMWRiODczMWU2NjQ4OWM4MDZjOWIxZjI1NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBl
ZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFR5cGVkZWZzLmNwcApAQCAtNTc0LDcgKzU3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5j
ZUFyCiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBWZWN0b3I8
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2
ZUFycmF5PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgSlNTZXJpYWxpemVkU2NyaXB0VmFsdWU+KGV4
ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmdG9TZXJpYWxpemVkU2NyaXB0VmFsdWUpKSk7CisgICAg
VmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PiBzZXF1ZW5jZUFyZygodG9SZWZQ
dHJOYXRpdmVBcnJheTxTZXJpYWxpemVkU2NyaXB0VmFsdWUsIEpTU2VyaWFsaXplZFNjcmlwdFZh
bHVlPihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgJkpTU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp0
b0ltcGwpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVlIHJl
c3VsdCA9IGpzTnVtYmVyKGltcGwubWV0aG9kV2l0aFNlcXVlbmNlQXJnKHNlcXVlbmNlQXJnKSk7
CkBAIC02OTcsNyArNjk3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXQKICAgICBUZXN0VHlw
ZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFZlY3RvcjxSZWZQdHI8VGVzdEV2ZW50
VGFyZ2V0Pj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8VGVzdEV2ZW50VGFyZ2V0
LCBKU1Rlc3RFdmVudFRhcmdldD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZ0b1Rlc3RFdmVu
dFRhcmdldCkpKTsKKyAgICBWZWN0b3I8UmVmUHRyPFRlc3RFdmVudFRhcmdldD4+IHNlcXVlbmNl
QXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFRlc3RFdmVudFRhcmdldCwgSlNUZXN0RXZlbnRUYXJn
ZXQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmSlNUZXN0RXZlbnRUYXJnZXQ6OnRvSW1wbCkp
KTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNCb29sZWFuKGltcGwuY2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUoc2VxdWVu
Y2VBcmcpKTsKQEAgLTc2OSw3ICs3NjksNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RUeXBlZGVmcwogICAg
IHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFR5cGVkZWZzPihnbG9iYWxPYmplY3QsIGlt
cGwpOwogfQogCi1UZXN0VHlwZWRlZnMqIHRvVGVzdFR5cGVkZWZzKEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKK1Rlc3RUeXBlZGVmcyogSlNUZXN0VHlwZWRlZnM6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVk
ZWZzKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVm
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmgKaW5kZXggN2U1ZWM4ZGFhY2MyMThmM2VhZmUyYjIyMjA3OWNlMmRmMDRmN2M0YS4uOTVh
ZDI3M2QxOGZmMzRjNzNjYmYxOGE5OTliYzI3OTc3NjJhZTYxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgK
QEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNy
ZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKKyAgICBzdGF0aWMgVGVzdFR5cGVkZWZzKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3Rh
dGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RUeXBlZGVmcygpOwpA
QCAtOTMsNyArOTQsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCwgVGVzdFR5cGVkZWZzKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RUeXBlZGVm
cyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdFR5cGVkZWZzKiB0b1Rlc3RUeXBlZGVmcyhKU0M6OkpT
VmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCmluZGV4IGJh
NDZkOGNjZDUxNzU0OGQ4ZGZhNTlmN2E0MGEzYWQyYjU5ODZiNDUuLjAxMzRmOTVmYmYyOWUxODM2
Njk0OGZjOWI5YmNmYzhjZDkzNGZkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcApAQCAtMjI0LDcgKzIyNCw3
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgYXR0cmlidXRlKiBpCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8
SlNhdHRyaWJ1dGU+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLWF0dHJpYnV0ZSogdG9hdHRy
aWJ1dGUoSlNDOjpKU1ZhbHVlIHZhbHVlKQorYXR0cmlidXRlKiBKU2F0dHJpYnV0ZTo6dG9JbXBs
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Nhc3Q8SlNhdHRyaWJ1dGUqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1w
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTYXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNhdHRyaWJ1dGUuaAppbmRleCAyOTdhZDI2YjUyNTAyYmI4NGZmNjVhNjY3MGY2Y2E2YzQ0YWM2
NTQxLi41YzgxYzAwMzI2OGQ0YzNkNjY5Zjk1NWNiNWRiN2UwNDQ2YmJjYjgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUu
aApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Y3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOworICAgIHN0YXRpYyBhdHRyaWJ1dGUqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAg
IHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNhdHRyaWJ1dGUoKTsK
IApAQCAtOTIsNyArOTMsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCwgYXR0cmlidXRlKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIGF0dHJpYnV0ZSop
OwotV0VCQ09SRV9FWFBPUlQgYXR0cmlidXRlKiB0b2F0dHJpYnV0ZShKU0M6OkpTVmFsdWUpOwog
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcAppbmRleCBlZDRhNDRiNWYwMmQ4
NDFmNmJmNGRkYWI5ZDg1OWQ5YTFhZDg1MjAzLi5jY2JmNWVkYjJkZmNjN2VjYTUwYTNjODJmYzA4
NDFhM2M1M2I1ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCByZWFkb25seSogaW0KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU3JlYWRvbmx5Pihn
bG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1yZWFkb25seSogdG9yZWFkb25seShKU0M6OkpTVmFs
dWUgdmFsdWUpCityZWFkb25seSogSlNyZWFkb25seTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNyZWFkb25seSo+
KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAppbmRleCBi
NmVmYTRhNjc4NzI4YjA0OWU4ZDNmNDg1MzUzZDQ0NzZkYTVlMGY4Li40ZWE2NjUyZWIwZjFmZjY5
ZmQ0OGFhNWI1NjY3YTRjNjI2YTQwMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZN
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQ
cm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgcmVh
ZG9ubHkqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlND
OjpKU0NlbGwqKTsKICAgICB+SlNyZWFkb25seSgpOwogCkBAIC05MSw3ICs5Miw2IEBAIGlubGlu
ZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCByZWFkb25seSop
CiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqLCByZWFkb25seSopOwotV0VCQ09SRV9FWFBPUlQgcmVhZG9ubHkq
IHRvcmVhZG9ubHkoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAppbmRleCAxZTM3ZWVjY2ZmYTg3MDI5OTBkN2Y3NDczZGUwZWFhMmViOTY4
OWI3Li5lOTIwYzFlMTMzNDU5MDE2ZDYyZTg3MjAzOWE0MDdlOWQ3OWY1ZTE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKQEAgLTY4OSw2ICs2ODksMjEgQEAgc3RydWN0IEVsZW1lbnRUeXBlQ2FzdFRyYWl0
czxFeHBlY3RlZFR5cGUsIEV4cGVjdGVkVHlwZT4gewogICAgIHN0YXRpYyBib29sIGlzKEV4cGVj
dGVkVHlwZSYpIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKKy8vIERvd25jYXN0aW5nIGZ1bmN0aW9u
cyBmb3IgRWxlbWVudCB0eXBlcy4KK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUg
U291cmNlPgoraW5saW5lIHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxT
b3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0JiwgVGFyZ2V0Jj46OnR5cGUgZG93bmNhc3QoU291
cmNlJiBzb3VyY2UpCit7CisgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPFRhcmdl
dCwgU291cmNlPjo6dmFsdWUsICJVbm5lY2Vzc2FyeSBjYXN0Iik7CisgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oaXNFbGVtZW50T2ZUeXBlPGNvbnN0IFRhcmdldD4oc291cmNl
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3Rk
Ojppc19jb25zdDxTb3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0JiwgVGFyZ2V0Jj46OnR5cGU+
KHNvdXJjZSk7Cit9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJjZT4g
aW5saW5lIHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxTb3VyY2U+Ojp2
YWx1ZSwgY29uc3QgVGFyZ2V0KiwgVGFyZ2V0Kj46OnR5cGUgZG93bmNhc3QoU291cmNlKiBzb3Vy
Y2UpCit7CisgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPFRhcmdldCwgU291cmNl
Pjo6dmFsdWUsICJVbm5lY2Vzc2FyeSBjYXN0Iik7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oIXNvdXJjZSB8fCBpc0VsZW1lbnRPZlR5cGU8Y29uc3QgVGFyZ2V0Pigqc291
cmNlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8
c3RkOjppc19jb25zdDxTb3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0KiwgVGFyZ2V0Kj46OnR5
cGU+KHNvdXJjZSk7Cit9CisKIGlubGluZSBib29sIE5vZGU6Omhhc0F0dHJpYnV0ZXMoKSBjb25z
dAogewogICAgIHJldHVybiBpc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KHRoaXMpLT5oYXNB
dHRyaWJ1dGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5w
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDM4OWMyYjhhM2I4ZTJm
Nzg2YWMxM2U4ZTQyMThjYjk2YzNmYjhmODguLmNhODM5ZTk4MzAyOGFlNmZmMTM5MjNkMTJkOTg3
NDViOGQyMzE5YjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC02MzMsNiArNjMzLDcg
QEAgc3ViIHByaW50VHlwZUhlbHBlcnMKICAgICAgICAgfQogCiAgICAgICAgIG15ICRjbGFzcyA9
ICRwYXJzZWRUYWdzeyRuYW1lfXtpbnRlcmZhY2VOYW1lfTsKKyAgICAgICAgIyBGSVhNRTogUmVu
YW1lIHRoZXNlIGhlbHBlcnMgdG8gaXM8KkVsZW1lbnQ+KCkuCiAgICAgICAgIG15ICRjaGVja0hl
bHBlciA9ICJpcyRjbGFzcyI7CiAKICAgICAgICAgcHJpbnQgRiA8PEVORApAQCAtNjYzLDYgKzY2
NCwxMCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnVHlwZT4KIHN0cnVjdCBFbGVtZW50VHlwZUNh
c3RUcmFpdHM8Y29uc3QgJGNsYXNzLCBBcmdUeXBlPiB7CiAgICAgc3RhdGljIGJvb2wgaXMoQXJn
VHlwZSYgbm9kZSkgeyByZXR1cm4gJGNoZWNrSGVscGVyKG5vZGUpOyB9CiB9OworCisvLyBGSVhN
RTogUmVtb3ZlIHRoZXNlIG1hY3JvcyBvbmNlIHRoZSBjb2RlIGhhcyBiZWVuIHBvcnRlZCB0byB1
c2luZworLy8gZG93bmNhc3Q8KkVsZW1lbnQ+KCkuCisjZGVmaW5lIHRvJGNsYXNzKHgpIFdlYkNv
cmU6OmRvd25jYXN0PFdlYkNvcmU6OiRjbGFzcz4oeCkKIEVORAogICAgICAgICA7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA0NjY5MTYzMjVjZWQ3NmM2YmM5
N2Y3ODBjN2M1ODYxNTFmZGE5MzZhLi4yMzJiMDI1NjA0M2VhNTZiODVjZDE2ODFmNmQ1ODBiOTE1
YjBmOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC0xNTUs
OCArMTU1LDYgQEAgYm9vbCBpc0VudGVyS2V5S2V5ZG93bkV2ZW50KEV2ZW50Kik7CiBib29sIGlz
TGlua0NsaWNrKEV2ZW50Kik7CiBib29sIHNob3VsZFByb2hpYml0TGlua3MoRWxlbWVudCopOwog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTEFuY2hvckVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEhUTUxBbmNob3JFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBcmVhRWxlbWVudC5oCmluZGV4IGFjMDdlOTg2Y2NjNDhhNWFmNGEyMDMzMTE2NGYxMWVkZGY5
OGExZTUuLjhkYjc1ODk2Y2UzNjAzMWE0MzIxMDUzODVmMzNiODM4M2RjZmNlNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaApAQCAtNzEsOCArNzEsNiBAQCBwcml2YXRlOgog
ICAgIFNoYXBlIG1fc2hhcGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEFyZWFFbGVtZW50
KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXVkaW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0Vs
ZW1lbnQuaAppbmRleCAzMGQyYThmMzllY2FkYjg4ZjcwMTgyNjE4NDMzYmEwZWRlMGY4NTIzLi43
ZTg2NThjODcyMzAyODU1NGFmNTNmZTY2MzJkYzEzMDVmYTc5ZjIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBdWRpb0VsZW1lbnQuaApAQCAtNDMsOCArNDMsNiBAQCBwcml2YXRlOgogICAgIEhU
TUxBdWRpb0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCk7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEF1ZGlvRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCmluZGV4IDQwNTRlMTc1
ODZjMjg4MmEyMmQ4NWVmN2RjNDIwZjUxOWNlMDA0NzguLmI3OTlmMWZhMTg0OTk5NzJmYjAyY2I2
NTY2NGE1NzEyYWQ2ODYyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJh
c2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaApA
QCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShD
b250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEJhc2VF
bGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5oCmluZGV4IDAxN2VmYzIyY2I3NmY2YzVlNzkyNjRkZDJlOWI1ZDIwM2Y5MTVi
ODIuLjBkNGQ2MGE1NjVhNmIyYTE5OTZjODY4MzY2MjgxZjhjNDc0YTJlMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaApAQCAtODEsOCArODEsNiBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJM
PiYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxCb2R5RWxlbWVu
dCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaAppbmRleCA4ODM3ZDA4MjczMjVkNDNjYjRkNjI5YWE4ZGY2YmVkN2YyZDE1OTQ1
Li44YWJkZTc3ZmQ5OWVkNjZjMzZhOWEzOWE0MWE3MDZkNzg0MjRlMjI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0xODAsOCArMTgwLDYgQEAgcHJpdmF0ZToK
ICAgICBtdXRhYmxlIFJlZlB0cjxJbWFnZT4gbV9jb3BpZWRJbWFnZTsgLy8gRklYTUU6IFRoaXMg
aXMgdGVtcG9yYXJ5IGZvciBwbGF0Zm9ybXMgdGhhdCBoYXZlIHRvIGNvcHkgdGhlIGltYWdlIGJ1
ZmZlciB0byByZW5kZXIgKGFuZCBmb3IgQ1NTQ2FudmFzVmFsdWUpLgogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKEhUTUxDYW52YXNFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaAppbmRleCA2N2ZiMWRiOGQ3NzY4
MjFhYzYxN2MxMGRiMGMzZmM5OTBkNGM1NjY3Li5jZjFkM2ZmNjIxYzNmYTIwOGVkZTY4YjNhYmU5
YTU4YmM4MDUyOTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlz
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQu
aApAQCAtNTAsOCArNTAsNiBAQCBwcml2YXRlOgogICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TERhdGFMaXN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmIC8vIEVO
QUJMRShEQVRBTElTVF9FTEVNRU5UKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0Vs
ZW1lbnQuaAppbmRleCBjNDFmNmY0NzFhMDQ2MzBhNzljOWY2ZjQzOTI0ZTYyZTY0OThlN2M1Li4w
NzNjZDU5NGQzMDcwODEyYjliNGFlNjRlODIwZTM1Yjk2YmM3NmIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faXNPcGVuOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEZXRhaWxzRWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTERldGFpbHNFbGVt
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAppbmRleCAxYjVkMjBhZDg4MjNm
ZjFmY2FjMzFlZGViNjg4ZTRiZThiODgyNDRhLi5mZjgxYjliODJjYWJmNzZmMWRlMjA0N2Q0ZjU4
MTFjNWRhYzViZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCkBAIC00MCw4
ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxEaXZFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBIVE1MRGl2RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCmlu
ZGV4IGQ5ZmQ0NTIzZTQyMjM1Yjk3MWRkMTRkNGY4MzFlMmI5ZjQ2YWVkYzAuLmNkZDNiZWNmYmJh
N2ViMGRkNzJiMzBiNTk3ODliZWVkNGJiZWQ1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVt
YmVkRWxlbWVudC5oCkBAIC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJhbWV0
ZXJzRm9yUGx1Z2luKFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1WYWx1ZXMpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxFbWJlZEVsZW1lbnQpCi0K
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCmlu
ZGV4IDdjMTNlYTBkNTNhM2I5NGZjZGQzNWQyYzY3ODEzNzYyYjVkMmRjYTcuLjNhMDIyMzBkMTE4
MjM4N2Y3NGViMzE4YzNlOWFlOWRjMDdiYmI4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZpZWxkU2V0RWxlbWVudC5oCkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJs
ZSB1aW50NjRfdCBtX2RvY3VtZW50VmVyc2lvbjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
RmllbGRTZXRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IGM0NjlkY2VmOGFhNTg2NzI4NDFjMDI4NDEwYjll
MGU2NmI3NmYyODAuLmZjM2RiOWQ5NDhkMmFkNGIwNDcxZjZkYmEzNWJmNDQ2YzQ3MDE5N2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw2IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRm9ybUVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxGb3JtRWxlbWVudF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IDU1NzljOTg0ODg0Mzg1NTAy
NTJlYmMyYzg3ZWRmNGQ4NzExZjdlZWMuLjZlNGZiMGZjOTZiZWY2N2I3NzliNmE3YmI5YmMxZDFm
NDg2ZWVhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCkBAIC01NCw4
ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVyU2V0OwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxGcmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEhUTUxGcmFtZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZVNldEVsZW1lbnQuaAppbmRleCA4MGU3ZjJhZmUyZmIzMDUyZmI5YzY2ODU0ODJiZDcwNzZl
MzhjOGU0Li4yNzI5MzhjZWQyNzgwODJjODAwYmExZDAyODQ3MjdmNTczZmM4OTNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAtMTAwLDggKzEwMCw2IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX25vcmVzaXplOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhU
TUxGcmFtZVNldEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEhUTUxGcmFtZVNldEVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSHRtbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgK
aW5kZXggYjk2NmM4NzBiODEyNzkxNmY4YjMyYWQ1MDRjOWZjYmU5MzhmMWIwMC4uMGY4M2I5YTRl
YzAzNzkxNGNmOTYzYjBiZjE2MGM1OTJjMTI3MTFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxI
dG1sRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxIdG1sRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggOWFlMTkzMjYw
YWY0NWJjMDJhMGI1NWFjMGViYWY1ZjE2NzhlMmY2NC4uZjBlYmNlYzA1MTMzY2Y4YmIwNTdlYTVh
ZmQwMmFlODIwOGJkZTk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZy
YW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
aApAQCAtNDcsOCArNDcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3Zl
cnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElGcmFtZUVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxJRnJhbWVFbGVtZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggZmQ0NDAxODk4ZDM3M2RmNmIxMGVm
ZWZjNDRiMzM5OTdlZWFlZDU3Zi4uOTlmZTI1YjYxNjNiNzYzMDlmMDY4ZjJkYTYzMWM1ZDk0OThl
MmQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAgLTE0Myw4ICsx
NDMsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEltYWdl
RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKaW5kZXggZTM4ODViY2MzMjFhMTk3ZDlmNTMwZTI1MmRhNTIxODg5Mjc5
MDA1ZC4uZDdhNjVjZDZkMzE2MDI1YmY4Y2VkOTdkOTNkYTUwOTNiNzk5MWU4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTQ0OCw3ICs0NDgsNSBAQCBwcml2YXRl
OgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElucHV0RWxlbWVudCkKLQogfSAv
L25hbWVzcGFjZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCmlu
ZGV4IGFlYTUyMzdhODUxM2ZhYmMyMjkyYmNkZjRhNWYwODAzMWIwOGE0NDMuLmNhOGVlNjBiMDU4
ZGVjMjZjMjhmM2JmYmU1YWFhZDc1ZjczNTRiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbikgb3Zl
cnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTExhYmVsRWxlbWVudCkKLQogfSAvL25h
bWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExl
Z2VuZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaApp
bmRleCAyNDU2OGJkYTQwM2MyZDNiNThmNTEwNzIwMDY3YmEyZjliNWU1ZDVkLi45MTA0YWJkNjg4
NjUxZjNlNTFiNjMwMjI4MWMwMzE2MTc5OWQ5NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGVnZW5kRWxlbWVudC5oCkBAIC00NSw4ICs0NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBI
VE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoSFRNTExlZ2VuZEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCA0OTcwMWY4NmZlNGU3ZTQz
YjExYzI0YmQ3NzU5NWE3MGM0ZjZmYzgzLi41Y2FjYjc3ZDJhZWE1MTVjMGQ1OWJhNTQ2YTQ3NmI0
YThiNjQ3MzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTEzNyw4
ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIFBlbmRpbmdTaGVldFR5cGUgbV9wZW5kaW5nU2hlZXRU
eXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxMaW5rRWxlbWVudCkKLQogfSAvL25hbWVz
cGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaAppbmRleCA5YWU0
NDY3Mjg1MmIxMTQwMzA1ODc3YWY5MjYyZDRiYzMxNmUzZGIyLi42MTdhYTEzNjRmYzIyY2Y0NDA3
ODgxOTA1YmJiNGRiMDY5MjFhMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNYXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5o
CkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTWFwRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2VzCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKaW5kZXggZDEw
OTgyYjFkYWNlYjM2YTEyNzRmZmVlYTRiZTE4ZWExZGY5M2EwOS4uOTYzOWU5NjM2MjQyMjRiODgz
OGQ5YjIzMDc1OTc2NTc0MjgzMDVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWFycXVlZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVl
RWxlbWVudC5oCkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyTWFycXVlZSog
cmVuZGVyTWFycXVlZSgpIGNvbnN0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNYXJxdWVl
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTE1hcnF1
ZWVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDI1ZDFh
NzcxYWFkYTU5OTM3NjlhNzU5ZTZhMWI2YTA2Nzc1YWEzYTguLjhiZTZkZGE3MDgyMzI0NmQ3M2E4
YmU0OWFmMDNiOWViMTBmOTNhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQu
aApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2VzcygpOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxNZXRhRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKaW5kZXggOWQ4
MjE3MmZiYzI0ZjdlMTdjODA4NDIzODc1OGQ0NmNhYTc5ZmQyNi4uYTI4Y2I0NDk2ZTZiMGUwYTZm
ZWI5NDlhNjQ1MTE2MjJlZTMwMGU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWV0ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVt
ZW50LmgKQEAgLTgxLDggKzgxLDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWV0ZXJWYWx1ZUVs
ZW1lbnQ+IG1fdmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1ldGVyRWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPTGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxl
bWVudC5oCmluZGV4IDk4OWQ3OTU5MjVmMDhlZDIwZTVjMzYxZTg4YzZiNWUzM2ZkNGU1YTkuLjFm
MGFhZjE0ZDEyY2RkOTE2ZTYyNmE5YzE5YWViZGE3MjNiZWE0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9MaXN0RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3Nob3VsZFJlY2FsY3VsYXRlSXRlbUNvdW50IDogMTsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhIVE1MT0xpc3RFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IDJjNDkxOTMzNjM3ZTE1NzVmZGJmZGI2
MDIwOWVkNWY4Yzg4ZjVkNzkuLmY4ZTdhNmUwMjVkMWU3ZjFkZmFmYmU1YjVjNTE2MTk2ZjAwODE3
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKQEAgLTEwMyw4ICsx
MDMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VGYWxsYmFja0NvbnRlbnQgOiAxOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPYmplY3RFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRleCA2ODljZTRiODJmZjJk
NGI3MzY1YmNiMDMzOTZhNzQ3OTNhM2YzZGI0Li41N2EzNzQyOTc1YzNkYjEzNjdmZjgyODgyYTMw
NzY0MDM2MmY5MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
aApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0aW9u
cygpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRHcm91cEVsZW1lbnQpCi0KIH0gLy9u
YW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgK
aW5kZXggNjQ3ZDAxZTMwNDJiMDhkODQ4ZWZkMTkxNGJmNzkwNTNiYWFjYmNlZi4uNjU0ZWYxMTgz
ODA4YzQ5MzY5NDBlOGI2MWVlM2UzOTQ5YjQ4YWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuaApAQCAtODcsOCArODcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9p
c1NlbGVjdGVkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRpb25FbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBhcmFtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50
LmgKaW5kZXggNGU4MWQyZGE3OWM4MThlNzZiMjI3NGViNWRmZGNmZGZlNzViY2IyYi4uZWQ5YjRl
YjBiYjgxOWIyNDBmZjk5M2Y2YWUxYmVjZGUyN2JhMWNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGFyYW1FbGVtZW50LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUGFyYW1FbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuaAppbmRleCBlZWRiODgwN2IxNjQwMjczM2NmOWNkNzViNmM1MGIzYjUw
YzM4ODQyLi5jN2ZkOTU1MWE1OGE0Mzk5ZmU3YzFkZGVkZGYzODNjZWVjYWQ4NmMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaApAQCAtNjcsOCArNjcsNiBAQCBw
cml2YXRlOgogICAgIFByb2dyZXNzVmFsdWVFbGVtZW50KiBtX3ZhbHVlOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxQcm9ncmVzc0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGI4NTAxYjQ3Mzc2
YTZkM2VjZTM2NDhjZjM1Yjg4MTdmNWM4MDY2MDMuLjY4ZDk2YTNhNjk5MjczNWExZjNiMmNkYjM1
MzI4MjliNjIxZWI1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgK
QEAgLTY3LDggKzY3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVu
dD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIG92ZXJyaWRlOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTY3JpcHRFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGZh
OWNiZTQ3OTZmOGM1NzFjMjNlMjZiZTM3OTU4YTBiMTc4Nzc5YTAuLjI3ZmVmZDYwYjRmY2RiYWMx
MzkxZWQ2ZTg5YzlhOGFmZjUzNjk2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmgKQEAgLTIxMiw4ICsyMTIsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgYm9vbCBt
X3Nob3VsZFJlY2FsY0xpc3RJdGVtczsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU2VsZWN0
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTb3VyY2VFbGVtZW50LmgKaW5kZXggNTU1ODc1Y2Q0MDE4ZGJiMmZhYTY0ZTdkNTY1YWIxMDgx
YWU0ZmVjOC4uNTIyZDc0MzY4MmRkYTk2ZmM5NzdkNjExOTljYzcxZjU0MzljOWY0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaApAQCAtNTcsOCArNTcsNiBAQCBwcml2
YXRlOgogICAgIFRpbWVyPEhUTUxTb3VyY2VFbGVtZW50PiBtX2Vycm9yRXZlbnRUaW1lcjsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU291cmNlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKaW5kZXggOTk1N2Jh
NTA3MDI4MjFhYmFlZjY4ZDA3MjJmZTdkNTZmMTY0NDM4MC4uOTFmMGI3Y2Q1OGQ0NjY4OGJlY2Y2
NGY0NzAwNTAwMDQzZTIzYjg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3R5bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50
LmgKQEAgLTcwLDggKzcwLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbG9hZGVkU2hlZXQ7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFN0eWxlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCmluZGV4IGZi
YWJjZGU1MjU3Y2M2MjMzM2UwYjMyMWI3MTAzNWJmYmI4MGU4ODUuLmJjMjI4NDIwOTkyN2U2NDkz
ZmNkMmRkYjIyNGZhMGZiYjdkOTI5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN1bW1hcnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuaApAQCAtNDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNG
b2N1cygpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5
RWxlbWVudCkKLQogfQogCiAjZW5kaWYgLy8gSFRNTFN1bW1hcnlFbGVtZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAppbmRleCBmMDY0ZTI4YTk4
MDk5NDQ2OGFiMjNjOWY5ZTE3YjhmMTU1MDU5ZjQ3Li45MDRjMzI3YzIwY2MwYTYyZmJiM2NkZGUx
NDQyMDg5NzkwMDE4ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0
aW9uRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRl
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgK
aW5kZXggZTU5NmFiNDIwYTA2MDkzNDczMGU1ZGYxZGZmNzYzMjFmYTZkYmU4MS4uODczZGYyNWMx
OTY5MTA2ZGFmZDM5NmU4OGI4ZGFlNTRkMzg0ZTI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmgKQEAgLTEwMSw4ICsxMDEsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxT
dHlsZVByb3BlcnRpZXM+IG1fc2hhcmVkQ2VsbFN0eWxlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxUYWJsZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCmluZGV4IDMzOGI4Nzk5NzAyNTdkMGU4YWE5
NWE5YzFlM2E2ZTEwM2MzZTEzZjMuLmM0YjBmNzczOWNmYjJjMzQ5Y2QzNDdlYjg1ZmEwZjE5ZWM3
ZTE3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCkBAIC01
Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlUm93RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVS
b3dFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKaW5kZXggZDdmZjk1MWI3YzhkMjI4NGE4MjFhNmYyN2Ix
YTgyNDcyMWZiYjUzNS4uYzgxZjdhNjZjNDgwNGE1ZjdmNWJkNzczM2ExZjA4NmExODc0NmFhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTU2LDggKzU2
LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxUZW1wbGF0ZUNvbnRlbnREb2N1bWVu
dEZyYWdtZW50PiBtX2NvbnRlbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRlbXBsYXRl
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFRF
TVBMQVRFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5o
CmluZGV4IGE4MDFmOTliOWZjZTdkNTFiNzYzNDgxMTA1NDRhNGFkMGE1MDI2ZTIuLmJlZGQwYTFm
NzA4NWI2NjlhOGY4M2UxODg2OTQ0OWU0ZDZlMDI3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC0xMjYsOCArMTI2LDYgQEAgcHJpdmF0ZToKICAgICBt
dXRhYmxlIGJvb2wgbV93YXNNb2RpZmllZEJ5VXNlcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MVGV4dEFyZWFFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAppbmRleCBlYmUxZDNjYzUwOGI2OGZjODdmNjM0OGE3
MzE2YzhjNTJiZThkM2EwLi41ZGUxZWI1NGZlOGUwM2RhNzMwNzU2YmY2OTc1ZDgyNTZlNmVlYjJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaApAQCAtNDYsOCArNDYsNiBA
QCBwcml2YXRlOgogICAgIFN0cmluZ1dpdGhEaXJlY3Rpb24gbV90aXRsZTsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhIVE1MVGl0bGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCA4MzE3MTdiNGJkNmJiOTJi
OGQ0MjlkMWU5Y2QxOGJiZTIyYjdjZWRjLi41MjZkYzAzY2MxODViZjdlMjg3YjUwZmQwZGFhODE5
MmMxODE3YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtOTQs
OCArOTQsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPEhUTUxUcmFja0VsZW1lbnQ+IG1fbG9hZFRp
bWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUcmFja0VsZW1lbnQpCi0KIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGM0ZDRmOWQwMWNk
MWNmMTFiNzc3YzJhOGIwZjg1ZGY1OWJjYWJmMjQuLjc2ZjAxNjU2ZTk5OWU1M2M5ZTYwYmI3NzU0
YmUxYTUwYjE5MTFmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBA
IC0xMDIsOCArMTAyLDYgQEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0UG9z
dGVyVVJMOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxWaWRlb0VsZW1lbnQpCi0KIH0gLy9u
YW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAppbmRleCBmZDdlOTIzODg0NGRiOGE3ZmJlNDg3NTgxODRhYzZkNTFmMDI3
YzVmLi4zNzg2NTU1YjI4YWMxOWM0Y2ZlOTZhNTllNTI0OGEzNmIwYTgxNjdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTIwMTAsNyAr
MjAxMCw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50OjpzY3JpcHRWYWx1ZUFzTm9kZShEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwg
dmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIHRv
Tm9kZSh2YWx1ZS5qc1ZhbHVlKCkpOworICAgIHJldHVybiBKU05vZGU6OnRvSW1wbCh2YWx1ZS5q
c1ZhbHVlKCkpOwogfQogCiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBJbnNwZWN0b3JET01BZ2Vu
dDo6bm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IGRj
NjljMTFiMTRlZDhjNmZmNDQzNmE4NzBkZGU4NDRjMTVlMDM5YmMuLmVlOTczMzUwYjcyZWMzYTFi
ODczMWIyNTFjOTQ4NWY3ZGI0Mzc5MTkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MTWVuY2xvc2VFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNSYWRpY2FsVmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoTWF0aE1MTWVuY2xvc2VF
bGVtZW50KQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCmluZGV4IGFjYjJmMzUwYTczN2QzNmNkODdiNTZk
MjMwYThhZDMxZTIxY2RmOGEuLmM2M2UzNDM3MzUxMDg3NThhZmM4ZWU5ZTMxY2VmYjQyZGEwMGIy
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKQEAgLTM4
LDggKzM4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhEZWZFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCmluZGV4IDUwOTVhYjUzYTU1NmYxZWUxMjI3
NGUxYzNkMThmZTI2NjdhZGUzZTUuLjZiZTlmNzUyYzEwNWI4NmE4NGIxNzkxYTM2NjVlZTdiODJj
YjI3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKQEAgLTU1LDgg
KzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fs
dEdseXBoSXRlbUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1F
bGVtZW50LmgKaW5kZXggODI0OWNiODBiM2QwNmNmMzU5N2ZkMzhkMzgwMzkyNWQyYmZhMDhjNS4u
YzdhZmU2OTVjZTU3MzQ5NDIyNWQ5OTY2ZjhjNGJkYTY1NWQzMWM5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0Fs
dEdseXBoSXRlbUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlTW90aW9uRWxlbWVudC5oCmluZGV4IDM2Njc4MTRhMzIxOTBkMjIyNzhmODc3NGIx
MzczZGQ2YTM2MzA3YzkuLjQxN2Q1ZjI3NWU2NzY4NzZhNjI0ZGE3Y2U5MjM3NGVjOTc3YjNlMjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCkBAIC03
MCw4ICs3MCw2IEBAIHByaXZhdGU6CiAgICAgUGF0aCBtX3BhdGg7CiAgICAgUGF0aCBtX2FuaW1h
dGlvblBhdGg7CiB9OwotCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQp
CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKaW5kZXggYmRjZmY3MGRlNTE4ZDAwM2IzYzU4
YzZjZmU5Y2U5MWQzZTY5ZWE5YS4uYjFhNDRlYWViMDU3MjBlN2Y2NDhjN2JjYzgyN2Y0YTVmMGUz
YTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50LmgKQEAgLTQ3LDggKzQ3LDYgQEAgcHJpdmF0ZToKICAgICBTVkdUcmFuc2Zvcm06OlNWR1Ry
YW5zZm9ybVR5cGUgbV90eXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQ2lyY2xlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQu
aAppbmRleCAwNzlmYTk5ZmNmOTgzZmNkNDVmOTNhNzYzMWQ5YThkN2NlNTY2NzhhLi5lYzE4MmRi
M2MyZDJiYzcxYjQ0OTQ4NDkyYjFkNDdjNmNlNjVhZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
aXJjbGVFbGVtZW50LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFS
RV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ2lyY2xlRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHQ2lyY2xlRWxl
bWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKaW5kZXggOGZkZWIw
MmI2OTRlNTZjM2JjMzYwNjIwYzEwNDlkMDAwMWMxNTU5Ny4uOTM4Y2ZiNDVkOTJlNDIwMmE0NjUy
NTRmMzlkNTZlZTQ0OWJhZmEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuaApAQCAtNTYsOCArNTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVE
X1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDbGlwUGF0aEVsZW1lbnQpCi0K
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAppbmRleCBhNTMw
MWU0NjIyZmE1NmY5MmEwN2JjNDIyYTg1NTljM2I1MDQ4MDdlLi5lYTIyM2U4YTRiZGFmYWEyYTI5
YjhmMGVjOTQ5N2MwMzg0ZmE1YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q3Vyc29yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50
LmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFNWR0VsZW1lbnQqPiBt
X2NsaWVudHM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ3Vyc29yRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmgKaW5kZXggZDZiMjBmNjJiMmM1NzVmZmNmZjIzNDAzMDk3ZjM0NmUxZDYzMzM1MS4u
NWI5ZjkyYzMwMWRjZDljYjFkNzJlMjkxNDFkNTAzNDNiOGM0NGJjYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBF
TkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
RWxsaXBzZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmgKaW5kZXggNzk5ZjZk
NWY5YTc0NzRiYzgyZTU3NmFjYTMzZDRiN2YwNDZlMTliNS4uNjBlYTQ0MzZlYWMzYzYwNTk4YWFj
YzQ0NTFkNWUxMTg4MjAxYmViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlzdGFudExpZ2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3Rh
bnRMaWdodEVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVGdW5jQUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVu
dC5oCmluZGV4IDMxZWJiNGY3OGNjNGIzMmUxMmE3NzliODI3NTI5NDBjMTUzMDRiOWMuLmE0ZTZh
ZDVhZjQzYzE0MDJiZDBhZmQ2YjY5MjBmOTQ2MmM4MjBkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNBRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVG
dW5jQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCmluZGV4IDM1YmM0
NDg1ODI1OGNlMmRhN2M2MDE1NTM4MjJmOTBiYjUzY2I2MzguLmFmNDlkNmY3ZGRmNTE1OWVmODY3
MWY5Y2EzYzJmNWI4NDJlMGJkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNCRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVu
dC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jQkVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
RkVGdW5jQkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCmluZGV4IDM5ODU3ZWRhMTA1NGQ1OTI1MmM3
NzNkYmFmMDFjODk4OGYyZDRlYWYuLjFhZmE0MzI0MTkwODkxZTkyZjRmNzhkMzkwNTFlZTdkZjEy
OTM4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCkBAIC0zMyw4ICsz
Myw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jR0VsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNSRWxlbWVudC5oCmluZGV4IDllNzMyN2M3MzMzNDEwZDM3N2Y5ZTJkMWYxZmEzMzI0NDcz
OGU2YmIuLmIwZDBlYjUxYTBmNjY0MDZkZmMyYmNjZDJmZDZlMjVhMGJhZjBlMWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6
CiAgICAgU1ZHRkVGdW5jUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jUkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVNZXJnZU5vZGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVF
bGVtZW50LmgKaW5kZXggNTE1OTdlYjU3OWY3MmNmNmMzZWFhMjliNDc4MzIxZjIxMDZkMDEwZi4u
NzIzM2YyMzRlZGVkNjY1OGEwZjNlNjMyZjY2MzIzYWJkZWZmZWQ1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRl
OgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdGRU1lcmdlTm9kZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaAppbmRl
eCBiNzAxYmU1OTNiOTdjZDYxYWU5Nzc1N2M5NjQ5MzNhOGViY2ZlYWNmLi4zNDU3OTI0ZmJkNjUw
YTg1MjEyOGZiYTE2ZmQ3OTc0NzU5NjEyNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVBvaW50TGlnaHRFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVQb2ludExpZ2h0RWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RM
aWdodEVsZW1lbnQuaAppbmRleCA4MDM5YWYyZjE1MGUwY2U3ZjBkZTcwZDg5Y2RlYjgwYjc3OTBm
OTNlLi5mZjZiNDhjNWVjMWI0NWU3NjViYzkzMGU4NmFkNDQyZjFkYTYxNmE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBsaWdodFNvdXJjZSgp
IGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFU3BvdExpZ2h0RWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDhlYTczZmI2NjE2MmNhZDc5Mzk5MjYxY2RlN2Y3ZWI4
MzlmMjQzMmYuLjE5MzllMzE3ZjdmMDA0ZDA2ZDhkNDdlNDIyNmI5ZjBhMGQzYzNkODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNzUsOCArNzUsNiBAQCBwcml2YXRl
OgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdGaWx0ZXJFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEVsZW1lbnQuaAppbmRleCA4ZTQyNzRkZDBjYjNjM2Q1ODA1MWI3ZTdjYmViMDliNzdjZmE5MjY5
Li5lYjVjNDZlMDRjZTUyNGZmODAwZDg1NmRiODNiMDlkMjY4ODU5MTQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEVsZW1lbnQuaApAQCAtMTAyLDggKzEwMiw2IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2lzR2x5cGhDYWNoZVZhbGlkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZP
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCmluZGV4IDZhMjExNmE5
NWJmODA0NTRkOGM3MjczOWI3ZTY4ZTNmOGFiODJhMjMuLmRjZDAxZjI0YTIzMDJhZDc3NTc5ZjYy
N2YyMGE0YjFmZDE3MGVmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50
LmgKQEAgLTY2LDggKzY2LDYgQEAgcHJpdmF0ZToKICAgICBTVkdGb250RWxlbWVudCogbV9mb250
RWxlbWVudDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZUVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAppbmRleCAzZjI1NDQ1ZmFh
YjY0ODE1N2Q4MGU4MjM3NTFiMTUyMzc4MTA5YzIyLi5jNjg1ZjhhYzQzMWY5Mjk0MGVjYTQzOTAw
ZjAyNWI0M2UyZGJjNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VOYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVF
bGVtZW50LmgKQEAgLTM5LDggKzM5LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VOYW1lRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAppbmRleCAzYjA5MTRjMTJmM2Q5
YTk5MmNmNTE0YzFiNDYxMzAwNzJlNTI1MWVjLi5iYTVhNjQ0NmJiZTFhZDFjZjM3OTY1NjBlM2E3
ZThmNjk5MzMyN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VT
cmNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVu
dC5oCkBAIC00MCw4ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlU3JjRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAppbmRleCAxODlhNzg5NWFjM2QzNTFjZTNk
M2I2Y2I0MmRiYTc5NTM0NjY1M2M0Li4zNTBmMWZkMWEzYWMyZGJkOTZhZjAxN2I2ODAzYjlhYmI5
N2I0NTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCkBA
IC01MCw4ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
Rm9udD4gbV9jYWNoZWRGb250OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlVXJp
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNW
R19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgK
aW5kZXggNzViYjc0YjdlMjcxMGIzYjA5NzkxYjkxZDFiMDIxYjUxMDYyMmYwYy4uYWI0ZDFhZmM2
YmE5ZmRiMDY4M2E0ODk3ODZiYTUxNzdkMTgwZTIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAgLTU4LDggKzU4LDYgQEAgcHJpdmF0ZToKICAg
ICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKaW5kZXggN2I3ZDM4YTEwZmE1NDBh
NWIzNTVlM2FhM2E4YjIwZDI0N2Y0NjhjMy4uNDAwOWZiNjYyMzI2NTNlZjgxMWM3MzlkZmFlN2I2
Y2I3YTE1MGJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaApAQCAtNTcsOCAr
NTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUdseXBoQ2FjaGUoKTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5
cGhSZWZFbGVtZW50LmgKaW5kZXggNmQ4Y2FjN2ViNzdmYzJmOWYwMjM3OTU3M2I2ZDYxODdmNDYz
NDUzMy4uNDY0ZmVlY2UzMWMyODc1NWUxZTJhMzhiOTMxNjY4NDNkYTdjMzI3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaApAQCAtNjEsOCArNjEsNiBAQCBwcml2YXRl
OgogICAgIGZsb2F0IG1fZHk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHR2x5cGhSZWZFbGVt
ZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hL
ZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCmluZGV4
IGU1ZDhiNzhmZDM4M2M4NDMzZWE2ZWQ0NDdkODgyNTViODMwMDc4N2EuLjFjMTllMDU5YjdkYTVk
ZjYxYzFjNjk2NDQ0OTA0YmM2YjE4Y2FiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdIS2VybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVt
ZW50LmgKQEAgLTQyLDggKzQyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHSEtlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5oCmluZGV4IDFhMzYxYzVjODNlMjI3NzM1Njg3NTA2ZDgyNmQzN2U3OTAy
OWJkYjcuLjE3Njc2MWRhOWViYWQwY2U0ZTE2Njc5NDA3OGM1NzgxZWZkOTZiMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAg
ICBTVkdJbWFnZUxvYWRlciBtX2ltYWdlTG9hZGVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R0ltYWdlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKaW5kZXggNjRlNzg2MzY2MmUwYjUxNDA1ZDg0YTg5MDY5
MjUzODViNGZmMTU5OS4uNTNmZWFkNjU2MDQ1MTRmZmIxYzVjZmEwZmU5NjA2ZDI1YTUzZTgwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0
ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHTGluZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXgg
NjhhYzZiODQzZDcwMGY3NjAyZWVmNjQ0NTI5YmYwYTJkZmRkOGM0Yy4uNDZkOTJkZTMxYjcwNGE2
ZWU0MTNiNjNiYTBhZGQyZmFhOGE1MjM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIEVO
RF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKaW5kZXggOTczMjY0OGEwYzVkMDUxMmQy
Y2Y3ZTc1MzRkN2YxYTFjODJiMGVhOS4uMWJlNjRhNjcwNmU4ZWFkYTA5ZDIwMWU4NjI0NDRiMWVj
NjQ3NTEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaApAQCAtNjgsOCArNjgs
NiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdNUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIFNWR01QYXRoRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtl
ckVsZW1lbnQuaAppbmRleCAxYjkzMGU2M2M5MGExY2FkNWQyNmVmYzFjNTQ5MmZjY2FkZmZiYmIw
Li5iNTIyY2I3YmE2MmU1NWZhMjI4N2Y0ZTc0ZTAzODBjMDg0YzM0MGE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTE2NCw4ICsxNjQsNiBAQCBwcml2YXRlOgogICAg
IG11dGFibGUgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFNWR01hcmtlck9yaWVu
dFR5cGU+IG1fb3JpZW50VHlwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNYXJrZXJFbGVt
ZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
c2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAppbmRleCBm
NTBhOTQ2OWRiZTk0NGYxMTcwMTNhZWU1MmJhOTkxMmUxNDhjYzQ1Li4yMmVkZGJjZDNmNmY1N2Q2
Y2Q0YmRiMDMzNTUzMzMyOWUyMDMxZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQu
aApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6
ZVN5c3RlbUxhbmd1YWdlKCkgb3ZlcnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1M
YW5ndWFnZSh0aGlzKTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01hc2tFbGVtZW50KQot
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdH
bHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50
LmgKaW5kZXggZjU2MzdlZTkyNTU3NDZhMWQ3YWE1MDQ2NmY0MWY5MWZkN2I1ZTNkZC4uOTRhNDI2
N2UwZDcxOWUyOTYyNjcyMmFkOWI2MGU1Y2MzMzY0YzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01pc3NpbmdH
bHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDAyMWI2ZjEw
ODY2MTgxYjRhOTliNDY5YzIzZTQ0MjAwZmY4ZTA2M2QuLmI2NGI0YzVlZjYxNTRhZjlhNDcxZWRj
YjY2MDZiOTlhYjRhYTBkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0x
MjksOCArMTI5LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNBbmltVmFsT2JzZXJ2ZWQ7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVy
bkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCmluZGV4
IDIyYzdjMjAyMmViMzQ3YzEyMTExZDM5MDFkZDgzYzVkYjg3MjlmMDIuLjQ5MmNkNjgxN2E4MDU1
Y2U5NTkxNjhiNTBkNmM1MTQ0ODc5MTU4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJu
RWxlbWVudC5oCkBAIC04Niw4ICs4Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN5
bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6
ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUGF0dGVy
bkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCmluZGV4IGE2MmRlMjAwZjNkYmRlMzVmZTVmNWQxOWZi
MDAyMWU5OGRiNzVlOWQuLmQ5MGRkYWJmYWQ2YjExY2I4ZTdjYmY5MmUxZDU0YzNlZjk0MTlhZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBA
IHByaXZhdGU6CiAgICAgU1ZHUG9seWdvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUG9seWdvbkVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxp
bmVFbGVtZW50LmgKaW5kZXggNGI1ZTg0MWY3NzE4ZTZjYzgwYmNjYzQ1OWI2MDllYTJiZjMyNWRi
YS4uYTA5MWVjNjRlOTVkMmI1YmY4NjFkNWY4NjEzMDBiZGVkN2M5Njg3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgog
ICAgIFNWR1BvbHlsaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdQb2x5bGluZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LmgKaW5kZXggZTU2ZmIyZmQxNzgzMDlhYmVjYjllOTk2OTBkMjcwN2VmODI0
OWUwZi4uMTJiZjRlZDFiY2NlMjI5OTZjMmVhMzJjNzdmM2MyNDRlYWJhY2M2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTYsOCArNTYs
NiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCmluZGV4
IDcyZWI4NzU4MDFjMDU0NDg3YWQ3OTNiOTQ1NWZiYjI4ZDFhMzdjOWYuLjNjZWU4ZDkzMGZiZDI3
NmZmZjY3OTZhNWMwNjFmM2M1YzdlMDY2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVu
dC5oCkBAIC01OCw4ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURf
UFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1JlY3RFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgK
aW5kZXggZWZiNDJlZGRjODMzNzg0YTMyODhmZTJhNGQzODBhNDNlZjRkNzg4My4uMjc4MjI3MmVl
MDQ1YTM1MTIyOTE1MDBjNWUzOTBmMTQ3NzFmZmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5oCkBAIC0xNzUsOCArMTc1LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U1ZHVmlld1Nw
ZWM+IG1fdmlld1NwZWM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU1ZHRWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0
RWxlbWVudC5oCmluZGV4IDU3MmY3OWRlZmYxNDUzMTRjODZhMzVmYzg5MGJmYTA4YTE0YTFmYjUu
LjlhY2RiZGIxYjBhZGYzNzU0MTQ3NjUxYmQ3YjQzMTAyY2I1NTE3NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtODYsOCArODYsNiBAQCBwcml2YXRlOgogICAgIFRp
bWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoU1ZHU2NyaXB0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKaW5kZXggZDg3OWI0ZTkyZTkyMWFlZDc3YTcw
MDc1MGE3ZjZlYWY3NjI5YjBmNi4uN2RhMzdjNmI4MWExNTliNTVkYWZmYjUxMzc0ZjcwOTI2NGRl
MTA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKQEAgLTQ5LDggKzQ5LDYgQEAg
cHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHU3RvcEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKaW5kZXggNmE5MWUzODhjOTVk
OTdmZTgxNjE3NjJmNDQ4NTRlNGJlYzBkZjM0YS4uMWU3MzE3NTI1ZmM3ZGI3NTU4OGQ1M2I4YzM0
NzI5ZGMzYTUyMWRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaApAQCAtNjgs
OCArNjgsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2ZW50
VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU3R5bGVFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdTdHlsZUVsZW1lbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dEVsZW1lbnQuaAppbmRleCBhOGMwYjcyMzAyN2YxZGJiNGVlZGVlNWQwZDljNzY3
MzY5MWM2NTU0Li40MzA4NGQ1YzkzZWMxOTk2NmZkNTY3MGQxZmJjYTk4MjUwNjY2MmM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBj
b25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdUZXh0RWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuaAppbmRleCAwYTRmZjY3NGY4YzgyMGE2NjBhZmQ3OWE1ZjQyOGU4NWNhYjQ4
YjhiLi5mMjQ0YmMzNzMyN2Q0NDcyNDQ0YTkwNmRhOGI3NzY5NDdmZTQyZTBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgcHJpdmF0
ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHVGV4dFBhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCmluZGV4IGM4NGE2MDMyN2NmNTZk
MDY1MmY0YzRjOTU2YmRmNjJiMzE4ZWUyNDYuLjA3NWIyMzliODE4YzVhM2U5YjQ3YzM1Y2YzODM1
ZjhiZTE4ZWI0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKQEAgLTQwLDgg
KzQwLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHVGl0bGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXggM2YxMGVlOTg5OGQ1NjE3NmE2
ZmUwMzQwYTkxMTcwNzUwMmJmMjc1MS4uYjczMmYxOGYyMjM2MWQxOTJkM2ZhMjY3ZWU4MTY3ZDIx
ZGFlZTRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC0xMjgsOCArMTI4LDYg
QEAgcHJpdmF0ZToKICAgICBUaW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xvYWRFdmVudFRpbWVyOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1VzZUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmgKaW5kZXggY2U4OGRlNWI0MGY3MWI3NGJiODQ2Yzlh
ZDUwOWY4ZTVmYjc3NGUxMy4uMTgwYmM3NmQwM2QxNzJhYTg0YWVkN2FiMzEzOTU2OTYzMDkyYzI4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaApAQCAtNDEsOCArNDEsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdWS2VybkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCmluZGV4IDI1MWQ3
MzAzOTEzNTk1NDI2ZjUxZWY2MjllNDZhYTVmZTM1NjUwOGUuLjRiNDRkOWM5NDY4NzNlMjZhNTky
MDU4MWYyYjNlMjJkYjZhMmIzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdW
aWV3RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCkBA
IC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgU1ZHU3RyaW5nTGlzdCBtX3ZpZXdUYXJnZXQ7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVmlld0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hw
cm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMu
ZGVmLmluCmluZGV4IGVkNDA4ZDY3ZWIwOWViMTk2ODkzNGM5ZGY5YTA1MzU1NGE5NDIyMDYuLmE2
N2UxMTE0MGNjM2MzODYwOWE5NzkzNWRlM2I3YjZhYThlYmRiYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9y
dHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0
R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCkBAIC0xNTMsNyArMTUzLDYgQEAgRVhQT1JU
UwogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/PzBIaXRUZXN0UmVzdWx0QFdlYkNvcmVAQFFB
RUBBQlZMYXlvdXRQb2ludEAxQElJSUlAWiwgPz8wSGl0VGVzdFJlc3VsdEBXZWJDb3JlQEBRRUFB
QEFFQlZMYXlvdXRQb2ludEAxQElJSUlAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2lz
UmVwbGFjZW1lbnRPYnNjdXJlZEBSZW5kZXJFbWJlZGRlZE9iamVjdEBXZWJDb3JlQEBRQkVfTlha
LCA/aXNSZXBsYWNlbWVudE9ic2N1cmVkQFJlbmRlckVtYmVkZGVkT2JqZWN0QFdlYkNvcmVAQFFF
QkFfTlhaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/PzFSYW5nZUBXZWJDb3JlQEBRQUVA
WFosID8/MVJhbmdlQFdlYkNvcmVAQFFFQUFAWFopCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVy
KD90b05vZGVAV2ViQ29yZUBAWUFQQVZOb2RlQDFAVkpTVmFsdWVASlNDQEBAWiwgP3RvTm9kZUBX
ZWJDb3JlQEBZQVBFQVZOb2RlQDFAVkpTVmFsdWVASlNDQEBAWikKICAgICAgICAgc3ltYm9sV2l0
aFBvaW50ZXIoPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBQUVAQUJWRmxvYXRSZWN0QDFAQFosID8/
MENsaWVudFJlY3RAV2ViQ29yZUBAQUVBQUBBRUJWRmxvYXRSZWN0QDFAQFopCiAgICAgICAgIHN5
bWJvbFdpdGhQb2ludGVyKD8/MENsaWVudFJlY3RAV2ViQ29yZUBAQUFFQEFCVkludFJlY3RAMUBA
WiwgPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBRUFBQEFFQlZJbnRSZWN0QDFAQFopCiAgICAgICAg
IHN5bWJvbFdpdGhQb2ludGVyKD8/MENsaWVudFJlY3RAV2ViQ29yZUBAQUFFQFhaLCA/PzBDbGll
bnRSZWN0QFdlYkNvcmVAQEFFQUFAWFopCkBAIC0zMTAsOSArMzA5LDYgQEAgRVhQT1JUUwogICAg
ICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dGV4dEBSYW5nZUBXZWJDb3JlQEBRQkU/QVZTdHJpbmdA
V1RGQEBYWiwgP3RleHRAUmFuZ2VAV2ViQ29yZUBAUUVCQT9BVlN0cmluZ0BXVEZAQFhaKQogICAg
ICAgICA/dGV4dGFyZWFUYWdASFRNTE5hbWVzQFdlYkNvcmVAQDNWSFRNTFF1YWxpZmllZE5hbWVA
MkBCCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90ZXh0Q29udGVudEBOb2RlQFdlYkNvcmVA
QFFCRT9BVlN0cmluZ0BXVEZAQF9OQFosID90ZXh0Q29udGVudEBOb2RlQFdlYkNvcmVAQFFFQkE/
QVZTdHJpbmdAV1RGQEBfTkBaKQotICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9Eb2N1bWVu
dEBXZWJDb3JlQEBZQVBBVkRvY3VtZW50QDFAVkpTVmFsdWVASlNDQEBAWiwgP3RvRG9jdW1lbnRA
V2ViQ29yZUBAWUFQRUFWRG9jdW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaKQotICAgICAgICBzeW1i
b2xXaXRoUG9pbnRlcig/dG9ET01TdHJpbmdMaXN0QFdlYkNvcmVAQFlBP0FWPyRQYXNzUmVmUHRy
QFZET01TdHJpbmdMaXN0QFdlYkNvcmVAQEBXVEZAQFBBVkV4ZWNTdGF0ZUBKU0NAQFZKU1ZhbHVl
QDVAQFosID90b0RPTVN0cmluZ0xpc3RAV2ViQ29yZUBAWUE/QVY/JFBhc3NSZWZQdHJAVkRPTVN0
cmluZ0xpc3RAV2ViQ29yZUBAQFdURkBAUEVBVkV4ZWNTdGF0ZUBKU0NAQFZKU1ZhbHVlQDVAQFop
Ci0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0VsZW1lbnRAV2ViQ29yZUBAWUFQQVZFbGVt
ZW50QDFAVkpTVmFsdWVASlNDQEBAWiwgP3RvRWxlbWVudEBXZWJDb3JlQEBZQVBFQVZFbGVtZW50
QDFAVkpTVmFsdWVASlNDQEBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvSlNAV2Vi
Q29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmpl
Y3RAMUBQQVZBcnJheUJ1ZmZlckAzQEBaLCA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlND
QEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEVBVkFycmF5QnVmZmVy
QDNAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNW
YWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWQ1NTU3R5
bGVEZWNsYXJhdGlvbkAxQEBaLCA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQRUFW
RXhlY1N0YXRlQDNAUEVBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEVBVkNTU1N0eWxlRGVjbGFyYXRp
b25AMUBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvSlNAV2ViQ29yZUBAWUE/QVZK
U1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZDbGll
bnRSZWN0QDFAQFosID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBFQVZFeGVjU3Rh
dGVAM0BQRUFWSlNET01HbG9iYWxPYmplY3RAMUBQRUFWQ2xpZW50UmVjdEAxQEBaKQpAQCAtMzIw
LDcgKzMxNiw2IEBAIEVYUE9SVFMKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvSlNAV2Vi
Q29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmpl
Y3RAMUBQQVZOb2RlQDFAQFosID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBFQVZF
eGVjU3RhdGVAM0BQRUFWSlNET01HbG9iYWxPYmplY3RAMUBQRUFWTm9kZUAxQEBaKQogICAgICAg
ICBzeW1ib2xXaXRoUG9pbnRlcig/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZF
eGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVlJhbmdlQDFAQFosID90b0pTQFdl
YkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBFQVZFeGVjU3RhdGVAM0BQRUFWSlNET01HbG9iYWxP
YmplY3RAMUBQRUFWUmFuZ2VAMUBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvSlNA
V2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxP
YmplY3RAMUBQQVZOb2RlTGlzdEAxQEBaLCA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlND
QEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEVBVk5vZGVMaXN0QDFA
QFopCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b1JhbmdlQFdlYkNvcmVAQFlBUEFWUmFu
Z2VAMUBWSlNWYWx1ZUBKU0NAQEBaLCA/dG9SYW5nZUBXZWJDb3JlQEBZQVBFQVZSYW5nZUAxQFZK
U1ZhbHVlQEpTQ0BAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9pc1RyZWVTY29wZUBO
b2RlQFdlYkNvcmVAQFFCRV9OWFosID9pc1RyZWVTY29wZUBOb2RlQFdlYkNvcmVAQFFFQkFfTlha
KQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxl
ZEBFZGl0b3JAV2ViQ29yZUBAUUFFWFhaLCA/dXBkYXRlRWRpdG9yVUlOb3dJZlNjaGVkdWxlZEBF
ZGl0b3JAV2ViQ29yZUBAUUVBQVhYWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3VwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0BEb2N1bWVudEBXZWJDb3JlQEBRQUVYVzRS
dW5Qb3N0TGF5b3V0VGFza3NAMTJAQFosID91cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHNARG9jdW1lbnRAV2ViQ29yZUBAUUVBQVhXNFJ1blBvc3RMYXlvdXRUYXNrc0AxMkBAWikK
QEAgLTQ0OSw3ICs0NDQsNiBAQCBFWFBPUlRTCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90
b1VJbnQzMkVuZm9yY2VSYW5nZUBXZWJDb3JlQEBZQUlQQVZFeGVjU3RhdGVASlNDQEBWSlNWYWx1
ZUAzQEBaLCA/dG9VSW50MzJFbmZvcmNlUmFuZ2VAV2ViQ29yZUBAWUFJUEVBVkV4ZWNTdGF0ZUBK
U0NAQFZKU1ZhbHVlQDNAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b1VJbnQ2NEBX
ZWJDb3JlQEBZQV9LUEFWRXhlY1N0YXRlQEpTQ0BAVkpTVmFsdWVAM0BXNEludGVnZXJDb252ZXJz
aW9uQ29uZmlndXJhdGlvbkAxQEBaLCA/dG9VSW50NjRAV2ViQ29yZUBAWUFfS1BFQVZFeGVjU3Rh
dGVASlNDQEBWSlNWYWx1ZUAzQFc0SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uQDFAQFop
CiAjaWYgRU5BQkxFKFZJREVPKQotICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9UaW1lUmFu
Z2VzQFdlYkNvcmVAQFlBUEFWVGltZVJhbmdlc0AxQFZKU1ZhbHVlQEpTQ0BAQFosID90b1RpbWVS
YW5nZXNAV2ViQ29yZUBAWUFQRUFWVGltZVJhbmdlc0AxQFZKU1ZhbHVlQEpTQ0BAQFopCiAgICAg
ICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBB
VkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWVGltZVJhbmdlc0AxQEBaLCA/
dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpTRE9N
R2xvYmFsT2JqZWN0QDFAUEVBVlRpbWVSYW5nZXNAMUBAWikKICAgICAgICAgc3ltYm9sV2l0aFBv
aW50ZXIoP25lYXJlc3RAVGltZVJhbmdlc0BXZWJDb3JlQEBRQkVOTkBaLCA/bmVhcmVzdEBUaW1l
UmFuZ2VzQFdlYkNvcmVAQFFFQkFOTkBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/YWRk
QFRpbWVSYW5nZXNAV2ViQ29yZUBAUUFFWE5OQFosID9hZGRAVGltZVJhbmdlc0BXZWJDb3JlQEBR
RUFBWE5OQFopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3BlcmF0
aW9ucy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCmluZGV4
IGU0ZmI3NjYwZjlmNDllN2FkNzE5NTYxMDNiYTNiODUxODYyOWM1YzIuLjEwNTRkYjZjOTE4ZDQz
OGY2NWIwYmQwZTE2YTdjNjUzNmZlOWI1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0RPTS9XZWJET01PcGVyYXRpb25zLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJE
T01PcGVyYXRpb25zLm1tCkBAIC03NCw3ICs3NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
ICAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQpOwogICAgIEpTTG9ja0hvbGRlciBs
b2NrKGV4ZWMpOwotICAgIHJldHVybiBraXQodG9FbGVtZW50KHRvSlMoZXhlYywgdmFsdWUpKSk7
CisgICAgcmV0dXJuIGtpdChKU0VsZW1lbnQ6OnRvSW1wbCh0b0pTKGV4ZWMsIHZhbHVlKSkpOwog
fQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYTZmM2I1NGRj
ZDUxYmUyY2M0Y2FkNDFmN2Y3NTU1YjcxY2M2MjQ4Ny4uOWNlNjFiNmZhZTQ2YTI3NDZmNDY5ZTcy
MzNmYWU0NTZhZWIxNGI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAt
ODYyMSw3ICs4NjIxLDcgQEAgc3RhdGljIHZvaWQgZ2xpYkNvbnRleHRJdGVyYXRpb25DYWxsYmFj
ayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHkKIHsKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIEpTQ29u
dGV4dFJlZiBjb250ZXh0ID0gW1tzZWxmIG1haW5GcmFtZV0gZ2xvYmFsQ29udGV4dF07Ci0gICAg
V2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSB0b05vdGlmaWNhdGlvbih0b0pT
KHRvSlMoY29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CisgICAgV2ViQ29yZTo6Tm90aWZpY2F0
aW9uKiBub3RpZmljYXRpb24gPSBKU05vdGlmaWNhdGlvbjo6dG9JbXBsKHRvSlModG9KUyhjb250
ZXh0KSwganNOb3RpZmljYXRpb24pKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViTm90aWZp
Y2F0aW9uQ2xpZW50Kj4oTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xpZW50RnJvbShfcHJpdmF0
ZS0+cGFnZSkpLT5ub3RpZmljYXRpb25JREZvclRlc3Rpbmcobm90aWZpY2F0aW9uKTsKICNlbHNl
CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDk0MzgzNzVlM2U5NDZhMDU5
MDA4MmEzOWJiMGZiMjIwYjBkY2Y2YzcuLmNjNTQ2M2YzY2FjMTlmZjk0ZGZiYWUwMjQ4NmI3MGQ5
Mjk4NTY1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC01OTc0LDcgKzU5NzQsNyBAQCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmVsZW1lbnRGcm9tSlMoCiAKICAgICBKU0M6
OkV4ZWNTdGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7CiAgICAgSlNDOjpKU0xvY2tIb2xkZXIg
bG9jayhleGVjKTsKLSAgICBFbGVtZW50KiBlbHQgPSB0b0VsZW1lbnQodG9KUyhleGVjLCBub2Rl
T2JqZWN0KSk7CisgICAgRWxlbWVudCogZWx0ID0gSlNFbGVtZW50Ojp0b0ltcGwodG9KUyhleGVj
LCBub2RlT2JqZWN0KSk7CiAgICAgaWYgKCFlbHQpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9N
L0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCmluZGV4IGNk
ZGRjODE2YWJiODE3ZTgzNTc3YjkxMGM2MzNlMzBhMGVlNjA1ZmUuLjA0NWE2NjRmYzhjODg4YjBh
NTU3OWIzM2MwMDNlYmRkZjU2MWQ3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlLmNwcApAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgRE9NSGFuZGxlQ2Fj
aGUmIGRvbUhhbmRsZUNhY2hlKCkKIAogUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGU+IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUoSlNDb250ZXh0UmVmLCBK
U09iamVjdFJlZiBvYmplY3QpCiB7Ci0gICAgTm9kZSogbm9kZSA9IHRvTm9kZSh0b0pTKG9iamVj
dCkpOworICAgIE5vZGUqIG5vZGUgPSBKU05vZGU6OnRvSW1wbCh0b0pTKG9iamVjdCkpOwogICAg
IHJldHVybiBnZXRPckNyZWF0ZShub2RlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9Jbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAppbmRleCBmNjMzOTFiNGNlNWNmNzIxYTE5YjA2ODcz
ZjcxMGRjMmUzNWYxOWU3Li42NWY4ZTU5YzU0MDQ4OGM3ZDlkMDBlOTVkNzZlNTU3NzNjOThjNDQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RP
TS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcApA
QCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgRE9NSGFuZGxlQ2FjaGUmIGRvbUhhbmRsZUNhY2hlKCkK
IAogUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZVJh
bmdlSGFuZGxlOjpnZXRPckNyZWF0ZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVjdCkK
IHsKLSAgICBSYW5nZSogcmFuZ2UgPSB0b1JhbmdlKHRvSlMob2JqZWN0KSk7CisgICAgUmFuZ2Uq
IHJhbmdlID0gSlNSYW5nZTo6dG9JbXBsKHRvSlMob2JqZWN0KSk7CiAgICAgcmV0dXJuIGdldE9y
Q3JlYXRlKHJhbmdlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAxYTY3MjdiYWNh
NTkzYzBhN2JiODFkYTAzODkwYTcyOWE1ZDgzYzRiLi5iNjRlODE4MjhkYjhkOWQ4MGVjMGI4Nzdh
OWMxMDEwYzJmZTI1Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTk3LDcgKzU5Nyw3
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25zKFdlYlBhZ2UqIHBhZ2UpCiB1aW50NjRfdCBJbmplY3RlZEJ1bmRsZTo6d2ViTm90aWZpY2F0
aW9uSUQoSlNDb250ZXh0UmVmIGpzQ29udGV4dCwgSlNWYWx1ZVJlZiBqc05vdGlmaWNhdGlvbikK
IHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJ
T05TKQotICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gdG9Ob3RpZmlj
YXRpb24odG9KUyh0b0pTKGpzQ29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CisgICAgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSBKU05vdGlmaWNhdGlvbjo6dG9JbXBsKHRv
SlModG9KUyhqc0NvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOwogICAgIGlmICghbm90aWZpY2F0
aW9uKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCku
c3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpLT5ub3RpZmljYXRpb25JREZvclRl
c3Rpbmcobm90aWZpY2F0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238345</attachid>
            <date>2014-09-18 18:26:00 -0700</date>
            <delta_ts>2014-09-21 16:23:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136839-20140918182558.patch</filename>
            <type>text/plain</type>
            <size>163433</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjYzZmZhNzY0OTc1NDE4
NmJjYzVkNTJmYWJjYjhkOWFhMmI2NmY3Yi4uNjMyOTZlYTI0ZGJiNGM1ODQwZTg3OWZmMzEzYzE0
ZDhlMWE1MDY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxMSBAQAorMjAxNC0wOS0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQg
Y2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9u
cyBpbnN0ZWFkIG9mIHJlcXVpcmluZyBleHBsaWNpdAorICAgICAgICB1c2Ugb2YgTk9ERV9UWVBF
X0NBU1RTKCkgbWFjcm8uIENhc3RpbmcgaXMgbm93IGRvbmUgdXNpbmcgdGhlIGZvbGxvd2luZwor
ICAgICAgICBmb3JtOiBkb3duY2FzdDxIVE1MRGl2RWxlbWVudD4oKSwgaW5zdGVhZCBvZiB0b0hU
TUxEaXZFbGVtZW50KCkuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIGZvcm0gKGkuZS4gdG9IVE1M
RGl2RWxlbWVudCgpKSBpcyBzdGlsbCBzdXBwb3J0ZWQgZm9yIG5vdworICAgICAgICBieSBnZW5l
cmF0aW5nIG1hY3JvcyB0aGF0IGNvbnZlcnQgdGhlc2UgY2FsbHMgaW50byB0aGUgbmV3IGZvcm0s
IHVudGlsCisgICAgICAgIHRoZSBjb2RlIGJhc2UgaXMgcG9ydGVkIHRvIHRoZSBuZXcgY2FzdGlu
ZyBoZWxwZXJzLgorCisgICAgICAgIFRoZSBwbGFuIGlzIGFsc28gdG8gdXNlIGlzPEhUTUxEaXZF
bGVtZW50PigpIGluc3RlYWQgb2YKKyAgICAgICAgaXNIVE1MRGl2RWxlbWVudCgpIGZvciBjb25z
aXN0ZW5jeSBidXQgdGhpcyB3YXMgbm90IGNoYW5nZWQgaW4gdGhpcworICAgICAgICBwYXRjaCB0
byBhdm9pZCBibG93aW5nIHVwIHRoZSBzaXplLgorCisgICAgICAgIFRoaXMgQ0wgYWxzbyB1cGRh
dGVzIHRoZSB3YXkgd2UgY29udmVydCBhIEpTVmFsdWUgaW50byBhbgorICAgICAgICBpbXBsZW1l
bnRhdGlvbiBwb2ludGVyLiBJbnN0ZWFkIG9mIHVzaW5nIHRvSFRNTERpdkVsZW1lbnQoKSwgd2hp
Y2gKKyAgICAgICAgbG9va2VkIGxpa2UgYSBjYXN0LCB3ZSBub3cgdXNlIEpTSFRNTERpdkVsZW1l
bnQ6OnRvSW1wbCgpLiBUaGlzCisgICAgICAgIGF2b2lkcyBjb25mbGljdGluZyB3aXRoIHRoZSB0
b1hYWEVsZW1lbnQoKSBtYWNyb3MgYW5kIG1ha2VzIGl0CisgICAgICAgIGNsZWFyZXIgdGhpcyBp
cyBub3QgYSBzaW1wbGUgY2FzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RKU0Jsb2IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29tbWFuZExpbmVBUElIb3N0OjpnZXRF
dmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6
ZGF0YWJhc2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3Rv
cmFnZUlkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50T3JOdWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN0cnVjdEpTRE9NRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01G
b3JtRGF0YTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdMaXN0Ojp0b0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6dG9ET01TdHJpbmdMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRE9NV2luZG93KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hM
aXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRXZlbnRUYXJnZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0V2ZW50VGFyZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4Y2Vw
dGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb25CYXNlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1M
U2VsZWN0RWxlbWVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdEluZGV4U2V0
dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0Nv
bnRleHRNZW51KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVJbml0TWVzc2FnZUV2ZW50KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGxNZXNzYWdlUG9ydEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6SlNO
b2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OmFwcGVuZENoaWxk
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNOb2RlRmlsdGVyOjp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9O
b2RlRmlsdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0
b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZW5jcnlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6c2lnbik6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRs
ZUNyeXB0bzo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxlQ3J5cHRvOjpleHBv
cnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OndyYXBLZXkpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJvZ3JhbVBhcmFtZXRl
cik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hhZGVy
UGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZXRVbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYpOgorICAgICAgICAo
V2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpkYXRhRnVuY3Rpb25N
YXRyaXgpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjayk6CisgICAgICAgIChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVjdDo6dG9JbXBsKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEFjdGl2ZURPTU9iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9JbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEN1c3RvbU5hbWVkR2V0dGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0RXZlbnRDb25zdHJ1Y3Rvcik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVG
dW5jdGlvbkRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRUYXJn
ZXQ6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RFdmVudFRhcmdldCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNlcHRpb246OnRvSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjp0b1Rlc3RFeGNlcHRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjp0b0ltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9k
Mik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1
cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjp0
b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0SW50ZXJmYWNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcjo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5hbWVkQ29u
c3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYzo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5vbmRl
dGVybWluaXN0aWMpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0
T2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpNdXRhYmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1tdXRh
YmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
b2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2Vx
dWVuY2VBcmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlv
bldpdGhTZXF1ZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdE9iajo6dG9JbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE9iaik6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnND
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9JbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnM6OnRvSW1wbCk6CisgICAgICAgIChX
ZWJDb3JlOjp0b1Rlc3RUeXBlZGVmcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRl
Ojp0b0ltcGwpOgorICAgICAgICAoV2ViQ29yZTo6dG9hdHRyaWJ1dGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTcmVhZG9ubHk6OnRvSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjp0b3JlYWRvbmx5KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5o
OgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpkb3duY2FzdCk6
CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAgIChwcmludFR5cGVIZWxwZXJz
KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
RnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGFiZWxF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTExpbmtFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmpl
Y3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBhcmFt
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU291cmNlRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFN0eWxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRpdGxl
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2NyaXB0
VmFsdWVBc05vZGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0FsdEdseXBoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZFRnVuY0FFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0JFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0dFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZFRnVuY1JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdIS2VybkVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xp
bmVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdNUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2Vy
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1BvbHlnb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdU
ZXh0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHVktlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Zp
ZXdFbGVtZW50Lmg6CisKIDIwMTQtMDktMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGdlbmVyYXRvci95aWVsZCB0ZXJtaW5vbG9neSBp
biBSZW5kZXJJbmxpbmUncyBHZW5lcmF0b3JDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxNDQ2M2ZkNmI1
MDI1Y2M2ZDMxMmVjZDdhNGYxNmZhMmQ0OTg4OGUuLmZkZWY5MWJkOWY0NzViMWI5ZjVhYTAzOTAz
YTBlMjFjMGY0MDIzNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDktMTggIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50
IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIHNvbWUgb2YgdGhlIGV4cG9ydGVkIHN5bWJvbHMgb24g
V2luZG93cyBmb3IgZnVuY3Rpb25zIHRoYXQgd2VyZQorICAgICAgICByZW5hbWVkLgorCisgICAg
ICAgICogV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMu
ZGVmLmluOgorCiAyMDE0LTA5LTE1ICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2su
Y29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gTWFrZSBpdCBlYXNpZXIgdG8gZW5hYmxlL2Rpc2Fi
bGUgR1N0cmVhbWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGMwZmRlZWI0YTU2NWE3N2Y0YzM4MWM5
YTdkZDhhMjgyMTIwYTg5OGMuLjQxOTkyNzE5Nzk2MzhhNjFjOWYwOGQ1YmYyYTI4YzhmMDRjMDE1
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wOS0xNyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQgY2Fz
dGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVc2UgSlNYWFg6OnRvSW1wbCgpIGluc3RlYWQgb2YgdG9YWFgoKSBmdW5j
dGlvbi4KKworICAgICAgICAqIERPTS9XZWJET01PcGVyYXRpb25zLm1tOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfbm90aWZpY2F0aW9uSURGb3JU
ZXN0aW5nOl0pOgorCiAyMDE0LTA5LTE3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTczNjk1LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IDIxNTBmMjg1YWM5ZTFiZGU3YWI5ODIzZTZmM2ZmMzAzM2U3MDg4MWQuLmRkZTc5
MTFmNzAyNTk2Mzk3YjBlMTBjM2I1MzVkMTY0MTYzY2YxN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxNC0wOS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgSlNYWFg6
OnRvSW1wbCgpIGluc3RlYWQgb2YgdG9YWFgoKSBmdW5jdGlvbi4KKworICAgICAgICAqIFdlYlZp
ZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6ZWxlbWVudEZyb21KUyk6CisKIDIwMTQtMDktMDYg
IEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGNvbnZlcnQgRG9ja1NpZGUgdG8gYW4gZW51bSBjbGFzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IGM4MTA2ODAyOWFiNTdjY2MwMGEwMDY3NjFjZDA5YWFmOGU4Y2M0ODguLjg2NzY1OTk3MTA3MGRl
ZTdjN2YyZDExZTUxYjQzMTU5MTcwMTJmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxNC0wOS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdl
bmVyYXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgSlNYWFg6OnRvSW1wbCgpIGluc3Rl
YWQgb2YgdG9YWFgoKSBmdW5jdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRpb25JRCk6CisK
IDIwMTQtMDktMTggIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgogCiAgICAgICAg
IEltcHJvdmUgZnVsbHNjcmVlbiB2aWRlbyByb3RhdGlvbiBhbmltYXRpb24uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1l
bnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQubW0KaW5kZXggMzY5YWJiMTEwNzIyZDc4ZjJlMTY4MDkzNWUyODNjZGY1Y2ZkNzli
ZS4uM2RiZmRlMjg0MDVlNTM3MTRlMDRiMGFkYjIzNTBiMGM5Y2UxZTdjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5tbQpAQCAtMjEzLDcgKzIxMyw3IEBAIGJvb2wgUXVpY2tUaW1lUGx1Z2luUmVw
bGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290KiByb290KQogICAgIC8vIEdl
dCB0aGUgPHZpZGVvPiBjcmVhdGVkIHRvIHJlcGxhY2UgdGhlIHBsdWctaW4uCiAgICAgSlNDOjpK
U1ZhbHVlIHZhbHVlID0gcmVwbGFjZW1lbnQuZ2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVj
LCAidmlkZW8iKSk7CiAgICAgaWYgKCFleGVjLT5oYWRFeGNlcHRpb24oKSAmJiAhdmFsdWUuaXNV
bmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSB0b0hUTUxWaWRlb0Vs
ZW1lbnQodmFsdWUpOworICAgICAgICBtX21lZGlhRWxlbWVudCA9IEpTSFRNTFZpZGVvRWxlbWVu
dDo6dG9JbXBsKHZhbHVlKTsKIAogICAgIGlmICghbV9tZWRpYUVsZW1lbnQpIHsKICAgICAgICAg
TE9HKFBsdWdpbnMsICIlcCAtIEZhaWxlZCB0byBmaW5kIDx2aWRlbz4gZWxlbWVudCBjcmVhdGVk
IGJ5IFF1aWNrVGltZSBwbHVnaW4gcmVwbGFjZW1lbnQgc2NyaXB0LiIsIHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgppbmRleCA4NzRlNTFlNjY3NDc2Y2I0YjJmMjhhODYyMDQ0NGUzZmE0MDNmMjY2
Li4yM2Y2ZmNmYjk5YzVmNzNlZTY3YTYzNTAzNjgwNjJlNmU5NTg1MmE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgpAQCAtNzcsNiArNzcsNyBAQCBfX1pON1dlYkNvcmUxMEZsb2F0UG9pbnRDMUVSSzdD
R1BvaW50CiBfX1pON1dlYkNvcmUxMEZsb2F0UG9pbnRDMUVSS05TXzhJbnRQb2ludEUKIF9fWk43
V2ViQ29yZTEwRm9udEdseXBoczE1cmVsZWFzZUZvbnREYXRhRXYKIF9fWk43V2ViQ29yZTEwSlNE
b2N1bWVudDZzX2luZm9FCitfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2dG9JbXBsRU4zSlNDN0pT
VmFsdWVFCiBfX1pON1dlYkNvcmUxMExheW91dFJlY3Q1c2NhbGVFZgogX19aTjdXZWJDb3JlMTBM
YXlvdXRSZWN0NXVuaXRlRVJLUzBfCiBfX1pON1dlYkNvcmUxMExheW91dFJlY3RDMUVSS05TXzlG
bG9hdFJlY3RFCkBAIC0xMjQsNyArMTI1LDYgQEAgX19aTjdXZWJDb3JlMTBUaW1lUmFuZ2VzQzFF
ZGQKIF9fWk43V2ViQ29yZTEwZGVsZXRlRmlsZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29y
ZTEwZmlsZUV4aXN0c0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEwc2V0Q29va2llc0VQ
TlNfOERvY3VtZW50RVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTEwdG9E
b2N1bWVudEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZTEzZ2V0Q0dJ
bWFnZVJlZkV2CiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlQzFFUDdDR0ltYWdlUE5TXzEzSW1h
Z2VPYnNlcnZlckUKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2VDMUVQTlNfMTNJbWFnZU9ic2Vy
dmVyRQpAQCAtNjY3LDcgKzY2Nyw2IEBAIF9fWk43V2ViQ29yZTE1b3JpZ2luYWxVUkxEYXRhRVA1
TlNVUkwKIF9fWk43V2ViQ29yZTE1cGF0aEdldEZpbGVOYW1lRVJLTjNXVEY2U3RyaW5nRQogX19a
TjdXZWJDb3JlMTVyZXBvcnRFeGNlcHRpb25FUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVF
UE5TXzEyQ2FjaGVkU2NyaXB0RQogX19aTjdXZWJDb3JlMTVzZXRET01FeGNlcHRpb25FUE4zSlND
OUV4ZWNTdGF0ZUVpCi1fX1pON1dlYkNvcmUxNXRvRE9NU3RyaW5nTGlzdEVQTjNKU0M5RXhlY1N0
YXRlRU5TMF83SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE1dmlzaXRlZExpbmtIYXNoRVBLdGoKIF9f
Wk43V2ViQ29yZTE1dmlzaXRlZExpbmtIYXNoRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MTZBcHBsaWNhdGlvbkNhY2hlMThkaXNrVXNhZ2VGb3JPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmln
aW5FCkBAIC0xMjQyLDYgKzEyNDEsNyBAQCBfX1pON1dlYkNvcmU2RWRpdG9yN2NvbW1hbmRFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRpdG9yN2NvcHlVUkxFUktOU18zVVJMRVJLTjNX
VEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNkVkaXRvcjdvdXRkZW50RXYKIF9fWk43V2ViQ29yZTZK
U05vZGU2c19pbmZvRQorX19aTjdXZWJDb3JlNkpTTm9kZTZ0b0ltcGxFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTZMZW5ndGhDMUVOM1dURjdQYXNzUmVmSU5TXzE2Q2FsY3VsYXRpb25WYWx1
ZUVFRQogX19aTjdXZWJDb3JlNlJlZ2lvbjIxdXBkYXRlQm91bmRzRnJvbVNoYXBlRXYKIF9fWk43
V2ViQ29yZTZSZWdpb241dW5pdGVFUktTMF8KQEAgLTEyNTksNyArMTI1OSw2IEBAIF9fWk43V2Vi
Q29yZTZXaWRnZXQ4c2V0Rm9jdXNFYgogX19aTjdXZWJDb3JlNldpZGdldDlzZXRQYXJlbnRFUE5T
XzEwU2Nyb2xsVmlld0UKIF9fWk43V2ViQ29yZTZXaWRnZXREMkV2CiBfX1pON1dlYkNvcmU2dG9J
bnQ4RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25D
b25maWd1cmF0aW9uRQotX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdX
ZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFUzRfUmkK
IF9fWk43V2ViQ29yZTdFbGVtZW50MTJzZXRBdHRyaWJ1dGVFUktOU18xM1F1YWxpZmllZE5hbWVF
UktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlN0VsZW1lbnQxNmNyZWF0ZVNoYWRv
d1Jvb3RFUmkKQEAgLTEyNzMsNiArMTI3Miw3IEBAIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktO
U18xMExheW91dFJlY3RFCiBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfOUZsb2F0UmVjdEUK
IF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUks2Q0dTaXplCiBfX1pON1dlYkNvcmU3SW50U2l6ZUMx
RVJLTlNfOUZsb2F0U2l6ZUUKK19fWk43V2ViQ29yZTdKU1JhbmdlNnRvSW1wbEVOM0pTQzdKU1Zh
bHVlRQogX19aTjdXZWJDb3JlN1RleHRSdW4xOWFsbG93c1JvdW5kaW5nSGFja3NFdgogX19aTjdX
ZWJDb3JlN1RleHRSdW4yMXNfYWxsb3dzUm91bmRpbmdIYWNrc0UKIF9fWk43V2ViQ29yZTdUZXh0
UnVuMjJzZXRBbGxvd3NSb3VuZGluZ0hhY2tzRWIKQEAgLTEyODEsNyArMTI4MSw2IEBAIF9fWk43
V2ViQ29yZTdqc0FycmF5RVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RF
TjNXVEYxMFBhc3NSZWZQdHJJCiBfX1pON1dlYkNvcmU3bWFrZVJHQkVpaWkKIF9fWk43V2ViQ29y
ZTd0b0ludDE2RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZl
cnNpb25Db25maWd1cmF0aW9uRQogX19aTjdXZWJDb3JlN3RvSW50NjRFUE4zSlNDOUV4ZWNTdGF0
ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb25FCi1fX1pO
N1dlYkNvcmU3dG9SYW5nZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN3RvVUludDhFUE4z
SlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFTlNfMzBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3Vy
YXRpb25FCiBfX1pON1dlYkNvcmU4QmxvYkRhdGExNHNldENvbnRlbnRUeXBlRVJLTjNXVEY2U3Ry
aW5nRQogX19aTjdXZWJDb3JlOENTU1ZhbHVlN2Rlc3Ryb3lFdgpAQCAtMTQ5NSw2ICsxNDk0LDcg
QEAgX19aTjdXZWJDb3JlOUlubGluZUJveDE0ZGlydHlMaW5lQm94ZXNFdgogX19aTjdXZWJDb3Jl
OUlubGluZUJveDE0c2VsZWN0aW9uU3RhdGVFdgogX19aTjdXZWJDb3JlOUlubGluZUJveDE2cGxh
Y2VFbGxpcHNpc0JveEViZmZmUmZSYgogX19aTjdXZWJDb3JlOUpTRWxlbWVudDZzX2luZm9FCitf
X1pON1dlYkNvcmU5SlNFbGVtZW50NnRvSW1wbEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3Jl
OUxheWVyUG9vbEMxRXYKIF9fWk43V2ViQ29yZTlMYXllclBvb2xEMUV2CiBfX1pON1dlYkNvcmU5
UGFnZUNhY2hlMTFzZXRDYXBhY2l0eUVpCkBAIC0xNTM1LDcgKzE1MzUsNiBAQCBfX1pON1dlYkNv
cmU5Zm9udENhY2hlRXYKIF9fWk43V2ViQ29yZTltYWtlUmFuZ2VFUktOU18xNVZpc2libGVQb3Np
dGlvbkVTMl8KIF9fWk43V2ViQ29yZTlwYWdlQ2FjaGVFdgogX19aTjdXZWJDb3JlOXBsYWluVGV4
dEVQS05TXzVSYW5nZUV0YgotX19aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRQog
X19aTjdXZWJDb3JlOXVuaW9uUmVjdEVSS04zV1RGNlZlY3RvcklOU185RmxvYXRSZWN0RUxtMEVO
UzBfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdDEy
Z2xvYmFsT2JqZWN0RXYKIF9fWk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5nRXYKQEAgLTMy
NTcsNyArMzI1Niw3IEBAIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaEVycm9y
RXZlbnRFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb244ZmluYWxpemVFdgogX19aTjdXZWJD
b3JlMTJOb3RpZmljYXRpb25DMUV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbkQxRXYKLV9f
Wk43V2ViQ29yZTE0dG9Ob3RpZmljYXRpb25FTjNKU0M3SlNWYWx1ZUUKK19fWk43V2ViQ29yZTE0
SlNOb3RpZmljYXRpb242dG9JbXBsRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxOXByb3Zp
ZGVOb3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18xOE5vdGlmaWNhdGlvbkNsaWVudEUKIF9fWk43
V2ViQ29yZTIyTm90aWZpY2F0aW9uQ29udHJvbGxlcjEwY2xpZW50RnJvbUVQTlNfNFBhZ2VFCiAj
ZW5kaWYKQEAgLTMzNjksNyArMzM2OCw3IEBAIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTZo
YW5kbGVUb3VjaEV2ZW50RVJLTlNfMThQbGF0Zm9ybVRvdWNoRXZlbnRFCiAjaWYgRU5BQkxFKFZJ
REVPKQogLm9iamNfY2xhc3NfbmFtZV9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyCiBfX1pO
N1dlYkNvcmUxMFRpbWVSYW5nZXMzYWRkRWRkCi1fX1pON1dlYkNvcmUxMnRvVGltZVJhbmdlc0VO
M0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTJKU1RpbWVSYW5nZXM2dG9JbXBsRU4zSlNDN0pT
VmFsdWVFCiBfX1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxMmVuZFNjcnViYmluZ0V2CiBf
X1pON1dlYkNvcmUxNkhUTUxNZWRpYUVsZW1lbnQxNGJlZ2luU2NydWJiaW5nRXYKIF9fWk43V2Vi
Q29yZTE2SFRNTE1lZGlhRWxlbWVudDE0ZXhpdEZ1bGxzY3JlZW5FdgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0
b20uY3BwCmluZGV4IGU2YjUwNjQyN2U0NTg4OTY1YmRiNjdjODlmYTI1NmUzMzVkNGUxNzUuLmFi
YjAwODBiY2I5ZDM3ZjY4NTlmZTNmNjI1MWUwZWQwNDAwOWQyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1
c3RvbS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEpT
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQogewotICAgIEF1ZGlvQnVmZmVyKiBidWZmZXIgPSB0b0F1ZGlvQnVmZmVyKHZhbHVl
KTsKKyAgICBBdWRpb0J1ZmZlciogYnVmZmVyID0gSlNBdWRpb0J1ZmZlcjo6dG9JbXBsKHZhbHVl
KTsKICAgICBpZiAoIWJ1ZmZlcikgewogICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9u
KGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiVmFsdWUgaXMgbm90IG9mIHR5cGUgQXVkaW9C
dWZmZXIiKSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Jsb2JDdXN0b20uY3BwCmluZGV4IDI5M2FmYjM3NjI4NjhiODM4YjlmNWMxMmViYTY0NTYzZjg5
MzQ2MzguLjA2YTkxMjQ0ODM2MGRkNTdkMzJiNTBjM2UwYjVkZWRkNzU3N2NlODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcApAQCAtMTIxLDcgKzEyMSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNCbG9iKEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgICAgIGJsb2JCdWlsZGVyLmFwcGVuZChhcnJheUJ1ZmZlcik7CiAg
ICAgICAgIGVsc2UgaWYgKFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGFycmF5QnVmZmVyVmlldyA9
IHRvQXJyYXlCdWZmZXJWaWV3KGl0ZW0pKQogICAgICAgICAgICAgYmxvYkJ1aWxkZXIuYXBwZW5k
KGFycmF5QnVmZmVyVmlldy5yZWxlYXNlKCkpOwotICAgICAgICBlbHNlIGlmIChCbG9iKiBibG9i
ID0gdG9CbG9iKGl0ZW0pKQorICAgICAgICBlbHNlIGlmIChCbG9iKiBibG9iID0gSlNCbG9iOjp0
b0ltcGwoaXRlbSkpCiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYmxvYik7CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgU3RyaW5nIHN0cmluZyA9IGl0ZW0udG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0b20uY3BwCmluZGV4IDc5NTQ4ZTgyYzM3Y2JkNzUy
M2E3ODQ3YWM4OWQ4NmY5ZjAwMGU3ODYuLmYyZmZjMTdlNzFiNzlkOWFlMmQ0NjE3MDQ1MTU5NmIw
ZTdiMzE3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFu
ZExpbmVBUElIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NvbW1hbmRMaW5lQVBJSG9zdEN1c3RvbS5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBKU1ZhbHVl
IEpTQ29tbWFuZExpbmVBUElIb3N0OjpnZXRFdmVudExpc3RlbmVycyhFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpIHx8IHZhbHVlLmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIE5vZGUqIG5vZGUgPSB0b05vZGUodmFsdWUpOwor
ICAgIE5vZGUqIG5vZGUgPSBKU05vZGU6OnRvSW1wbCh2YWx1ZSk7CiAgICAgaWYgKCFub2RlKQog
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIApAQCAtMTQ5LDcgKzE0OSw3IEBAIEpTVmFs
dWUgSlNDb21tYW5kTGluZUFQSUhvc3Q6OmRhdGFiYXNlSWQoRXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0g
ICAgRGF0YWJhc2UqIGRhdGFiYXNlID0gdG9EYXRhYmFzZShleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CisgICAgRGF0YWJhc2UqIGRhdGFiYXNlID0gSlNEYXRhYmFzZTo6dG9JbXBsKGV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoZGF0YWJhc2UpCiAgICAgICAgIHJldHVy
biBqc1N0cmluZ1dpdGhDYWNoZShleGVjLCBpbXBsKCkuZGF0YWJhc2VJZEltcGwoZGF0YWJhc2Up
KTsKICNlbmRpZgpAQCAtMTYyLDcgKzE2Miw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQSUhv
c3Q6OnN0b3JhZ2VJZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgU3RvcmFnZSog
c3RvcmFnZSA9IHRvU3RvcmFnZShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgU3Rv
cmFnZSogc3RvcmFnZSA9IEpTU3RvcmFnZTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KDApKTsKICAgICBpZiAoc3RvcmFnZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hl
KGV4ZWMsIGltcGwoKS5zdG9yYWdlSWRJbXBsKHN0b3JhZ2UpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAppbmRleCAzMWIxODBi
ZjdmZWFlNWZmYzA3ZmQwZWU5YzI4YTJmOGQ2MjdkZTU1Li5lOWUwYmI3MTMzYTcxNjQ4Y2NlOGI1
ZTJjMmE2Njg2MTY0MzU2NDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcApAQCAtNDEsOSArNDEsOSBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBIVE1MRm9ybUVsZW1lbnQq
IHRvSFRNTEZvcm1FbGVtZW50KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBIVE1MRm9ybUVs
ZW1lbnQqIHRvSFRNTEZvcm1FbGVtZW50T3JOdWxsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKLSAg
ICByZXR1cm4gdmFsdWUuaW5oZXJpdHMoSlNIVE1MRm9ybUVsZW1lbnQ6OmluZm8oKSkgPyAmanND
YXN0PEpTSFRNTEZvcm1FbGVtZW50Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpIDogMDsKKyAg
ICByZXR1cm4gdmFsdWUuaW5oZXJpdHMoSlNIVE1MRm9ybUVsZW1lbnQ6OmluZm8oKSkgPyAmanND
YXN0PEpTSFRNTEZvcm1FbGVtZW50Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpIDogbnVsbHB0
cjsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU0RPTUZvcm1E
YXRhKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTUyLDcgKzUyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU0RPTUZvcm1EYXRhKEV4ZWNTdGF0ZSogZXhlYykKIAogICAg
IEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IDA7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA+IDApCi0gICAgICAgIGZvcm0gPSB0b0hUTUxGb3JtRWxlbWVudChleGVjLT5hcmd1bWVudCgw
KSk7CisgICAgICAgIGZvcm0gPSB0b0hUTUxGb3JtRWxlbWVudE9yTnVsbChleGVjLT5hcmd1bWVu
dCgwKSk7CiAgICAgUmVmUHRyPERPTUZvcm1EYXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRh
OjpjcmVhdGUoZm9ybSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pT
KGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBkb21Gb3JtRGF0YS5nZXQoKSkp
KTsKIH0KQEAgLTY2LDcgKzY2LDcgQEAgSlNWYWx1ZSBKU0RPTUZvcm1EYXRhOjphcHBlbmQoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICAgICAgU3RyaW5nIGZpbGVuYW1lOwogICAgICAgICAgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+PSAzICYmICFleGVjLT5hcmd1bWVudCgyKS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gZXhlYy0+YXJndW1l
bnQoMikudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwotICAgICAgICAgICAgaW1wbCgpLmFw
cGVuZChuYW1lLCB0b0Jsb2IodmFsdWUpLCBmaWxlbmFtZSk7CisgICAgICAgICAgICBpbXBsKCku
YXBwZW5kKG5hbWUsIEpTQmxvYjo6dG9JbXBsKHZhbHVlKSwgZmlsZW5hbWUpOwogICAgICAgICB9
IGVsc2UKICAgICAgICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwgdmFsdWUudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcAppbmRleCAyMzMzN2IyZjJkOTY2MDdiNThk
NjI3YTJiOGNkNDM2MzRmYmQ2OWFhLi5hZDNhYzQ0NDI3MmIzMjU3ZWVmYmMzMDdlMGNiNjVmN2M5
YjMzYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmlu
Z0xpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3Ry
aW5nTGlzdEN1c3RvbS5jcHAKQEAgLTI1LDcgKzI1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHRvRE9N
U3RyaW5nTGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCitQYXNzUmVmUHRyPERP
TVN0cmluZ0xpc3Q+IEpTRE9NU3RyaW5nTGlzdDo6dG9JbXBsKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNET01TdHJpbmdMaXN0Ojpp
bmZvKCkpKQogICAgICAgICByZXR1cm4gJmpzQ2FzdDxKU0RPTVN0cmluZ0xpc3QqPihhc09iamVj
dCh2YWx1ZSkpLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggNWYzYjUxN2ExNDJiZTMyZmI2NGU3OThhOTVjODFiNTMx
MWQxZjA4ZC4uZTg0ZDNlZDJmYWE4OTlkMGIzNTA0Yzg1ZjNkYzFhZjYxODNhNzZiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAt
Njg0LDcgKzY4NCw3IEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIo
RXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1ET01XaW5k
b3cqIHRvRE9NV2luZG93KEpTVmFsdWUgdmFsdWUpCitET01XaW5kb3cqIEpTRE9NV2luZG93Ojp0
b0ltcGwoSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAg
ICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
aWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5j
cHAKaW5kZXggMWFmMDI2ZGJhNDVkOTQ3OTA4NTQ0YmIxODRiNWM2NjZjZTRmYjI2YS4uZDMwYjI2
M2EzZjI2NzQwNmFjMzE2YzExNzVjYjQ0MzIwZDg5ODIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBAIC0xNTUsMjIgKzE1NSwyMiBAQCB2b2lkIEpT
RGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwg
UmVmUHRyPFNlcmlhbGl6ZQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNT
dGF0ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxET01XaW5kb3c+JiByZXN1bHQpCiB7Ci0gICAg
cmVzdWx0ID0gdG9ET01XaW5kb3codmFsdWUpOworICAgIHJlc3VsdCA9IEpTRE9NV2luZG93Ojp0
b0ltcGwodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNT
dGF0ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxFdmVudFRhcmdldD4mIHJlc3VsdCkKIHsKLSAg
ICByZXN1bHQgPSB0b0V2ZW50VGFyZ2V0KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU0V2ZW50VGFy
Z2V0Ojp0b0ltcGwodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVl
KEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxOb2RlPiYgcmVzdWx0KQogewotICAg
IHJlc3VsdCA9IHRvTm9kZSh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNOb2RlOjp0b0ltcGwodmFs
dWUpOwogfQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpT
VmFsdWUgdmFsdWUsIFJlZlB0cjxTdG9yYWdlPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRv
U3RvcmFnZSh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNTdG9yYWdlOjp0b0ltcGwodmFsdWUpOwog
fQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWx1ZSwgTWVzc2FnZVBvcnRBcnJheSYgcmVzdWx0KQpAQCAtMjIyLDMxICsyMjIsMzEg
QEAgdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPFVpbnQKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQog
dm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSB2YWx1ZSwgUmVmUHRyPE1lZGlhS2V5RXJyb3I+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0
ID0gdG9NZWRpYUtleUVycm9yKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhS2V5RXJyb3I6
OnRvSW1wbCh2YWx1ZSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiB2
b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlIHZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW0+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0g
dG9NZWRpYVN0cmVhbSh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNNZWRpYVN0cmVhbTo6dG9JbXBs
KHZhbHVlKTsKIH0KIAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiByZXN1
bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9NZWRpYVN0cmVhbVRyYWNrKHZhbHVlKTsKKyAgICByZXN1
bHQgPSBKU01lZGlhU3RyZWFtVHJhY2s6OnRvSW1wbCh2YWx1ZSk7CiB9CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShGT05UX0xPQURfRVZFTlRTKQogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPENTU0ZvbnRGYWNl
UnVsZT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0NTU0ZvbnRGYWNlUnVsZSh2YWx1ZSk7
CisgICAgcmVzdWx0ID0gSlNDU1NGb250RmFjZVJ1bGU6OnRvSW1wbCh2YWx1ZSk7CiB9CiAKIHZv
aWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUgdmFsdWUsIFJlZlB0cjxET01FcnJvcj4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RP
TUVycm9yKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU0RPTUVycm9yOjp0b0ltcGwodmFsdWUpOwog
fQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQpCkBAIC0y
NjEsNyArMjYxLDcgQEAgdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHIKICNpZiBFTkFCTEUoR0FNRVBB
RCkKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxHYW1lcGFkPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9
IHRvR2FtZXBhZCh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNHYW1lcGFkOjp0b0ltcGwodmFsdWUp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVu
dEN1c3RvbS5jcHAKaW5kZXggZmEyNDQ0M2I0ZTlkMTdlZGJmZGFiYWZjYWI0Mzk2NTc1Y2ZkYzE3
MS4uM2I4YTk5ZWRmODNmZjM1MDk3NTQ0NjcwYjA1M2VkNWM0YWZmYzI3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTEyMSw3ICsx
MjEsNyBAQCBKU1ZhbHVlIEpTRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgUmVmUHRyPFRvdWNoTGlzdD4gdG91Y2hMaXN0ID0gVG91Y2hMaXN0OjpjcmVhdGUo
KTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhlYy0+YXJndW1lbnRDb3VudCgpOyBp
KyspCi0gICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKHRvVG91Y2goZXhlYy0+YXJndW1lbnQoaSkp
KTsKKyAgICAgICAgdG91Y2hMaXN0LT5hcHBlbmQoSlNUb3VjaDo6dG9JbXBsKGV4ZWMtPmFyZ3Vt
ZW50KGkpKSk7CiAKICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgdG91Y2hM
aXN0LnJlbGVhc2UoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRUYXJnZXRDdXN0b20uY3BwCmluZGV4IDUyMTBmMTJiYjZjZTM0ZTc0NjNkOGU2ZTI4OWE0
YjhkNzA2Mzc5Y2YuLmY1NGE1OTY3ZDhlOWNiMmYzY2RhNDZmMjIxZDEwNDlhZjU0NTgyMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20u
Y3BwCkBAIC01OCw3ICs1OCw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50VGFyZ2V0KiB0YXJnCiAgICAgaWYgKHZh
bHVlLmluaGVyaXRzKEpTIyNpbnRlcmZhY2VOYW1lOjppbmZvKCkpKSAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTIyNpbnRlcmZhY2VOYW1lKj4oYXNPYmpl
Y3QodmFsdWUpKS0+aW1wbCgpOwogCi1FdmVudFRhcmdldCogdG9FdmVudFRhcmdldChKU0M6OkpT
VmFsdWUgdmFsdWUpCitFdmVudFRhcmdldCogSlNFdmVudFRhcmdldDo6dG9JbXBsKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKERPTVdpbmRv
d1NoZWxsKQogICAgIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoRXZlbnRUYXJnZXQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcAppbmRleCBi
ZGUyNWIwYTY3NzA4MWU4MGM5ZDVmY2NmYjlhN2ExMmY5NzZjMTk4Li5mNjI2MmQxNzE3OWY2NjAw
MDI1ZmY3ZmEwZmNiYmIzYzA0OTVkM2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKQEAgLTQxLDIwICs0MSwyMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEV4Y2VwdGlvbkJhc2UqIHRvRXhjZXB0aW9uQmFzZShKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7Ci0gICAgaWYgKERPTUNvcmVFeGNlcHRpb24qIGRvbUV4Y2VwdGlvbiA9IHRvRE9NQ29y
ZUV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKERPTUNvcmVFeGNlcHRpb24qIGRvbUV4Y2VwdGlv
biA9IEpTRE9NQ29yZUV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KGRvbUV4Y2VwdGlvbik7Ci0gICAgaWYgKFJh
bmdlRXhjZXB0aW9uKiByYW5nZUV4Y2VwdGlvbiA9IHRvUmFuZ2VFeGNlcHRpb24odmFsdWUpKQor
ICAgIGlmIChSYW5nZUV4Y2VwdGlvbiogcmFuZ2VFeGNlcHRpb24gPSBKU1JhbmdlRXhjZXB0aW9u
Ojp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRp
b25CYXNlKj4ocmFuZ2VFeGNlcHRpb24pOwotICAgIGlmIChFdmVudEV4Y2VwdGlvbiogZXZlbnRF
eGNlcHRpb24gPSB0b0V2ZW50RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoRXZlbnRFeGNlcHRp
b24qIGV2ZW50RXhjZXB0aW9uID0gSlNFdmVudEV4Y2VwdGlvbjo6dG9JbXBsKHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KGV2ZW50RXhjZXB0
aW9uKTsKLSAgICBpZiAoWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24qIHhtbEh0dHBFeGNlcHRpb24g
PSB0b1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoWE1MSHR0cFJlcXVl
c3RFeGNlcHRpb24qIHhtbEh0dHBFeGNlcHRpb24gPSBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9u
Ojp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRp
b25CYXNlKj4oeG1sSHR0cEV4Y2VwdGlvbik7Ci0gICAgaWYgKFNWR0V4Y2VwdGlvbiogc3ZnRXhj
ZXB0aW9uID0gdG9TVkdFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChTVkdFeGNlcHRpb24qIHN2
Z0V4Y2VwdGlvbiA9IEpTU1ZHRXhjZXB0aW9uOjp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4oc3ZnRXhjZXB0aW9uKTsKLSAgICBp
ZiAoWFBhdGhFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSB0b1hQYXRoRXhjZXB0aW9uKHZhbHVl
KSkKKyAgICBpZiAoWFBhdGhFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSBKU1hQYXRoRXhjZXB0
aW9uOjp0b0ltcGwodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNl
cHRpb25CYXNlKj4ocGF0aEV4Y2VwdGlvbik7CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAg
ICBpZiAoU1FMRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9uID0gdG9TUUxFeGNlcHRpb24odmFsdWUp
KQorICAgIGlmIChTUUxFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSBKU1NRTEV4Y2VwdGlvbjo6
dG9JbXBsKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9u
QmFzZSo+KHBhdGhFeGNlcHRpb24pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDFkNDBj
NjBkODcwMjc3NTRmMDEzYzJiMjI1NzJjMDFkYzJjOGNlYjkuLmJmYzFkZDU5NWZhOWVlOGVmZTJm
NzU1YmI3ZTVmOGI3NDk4NzgyNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDAsNyArNDAsNyBAQCB2
b2lkIEpTSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29udHJvbGxlcihFeGVjU3RhdGUqLCBKU1ZhbHVl
IHZhbHVlKQogICAgIC8vIE9uIHNldHRpbmcsIGl0IG11c3QgZmlyc3QgcmVtb3ZlIHRoZSBlbGVt
ZW50J3MgbWVkaWFncm91cCBhdHRyaWJ1dGUsIGlmIGFueSwgCiAgICAgaW1wbCgpLnNldE1lZGlh
R3JvdXAoU3RyaW5nKCkpOwogICAgIC8vIGFuZCB0aGVuIHNldCB0aGUgY3VycmVudCBtZWRpYSBj
b250cm9sbGVyIHRvIHRoZSBnaXZlbiB2YWx1ZS4KLSAgICBpbXBsKCkuc2V0Q29udHJvbGxlcih0
b01lZGlhQ29udHJvbGxlcih2YWx1ZSkpOworICAgIGltcGwoKS5zZXRDb250cm9sbGVyKEpTTWVk
aWFDb250cm9sbGVyOjp0b0ltcGwodmFsdWUpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20u
Y3BwCmluZGV4IDc0YTU4NjcyZjQ3ZGY3YzZmYWRmZjg0MGY5MzQ3ODI3NmJjOTg4Y2QuLjcxZjNk
ZGIwMTM0NjhjYTM1NDQxZmRhODVhNWVhMzBkMDkxMDkwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3Rv
bS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6aW5k
ZXhTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNWYWwKIEpTVmFsdWUg
SlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmFkZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSFRN
TE9wdGlvbnNDb2xsZWN0aW9uJiBpbXAgPSBpbXBsKCk7Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQq
IG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIEhU
TUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwoZXhl
Yy0+YXJndW1lbnQoMCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPCAyKQogICAgICAgICBpbXAuYWRkKG9wdGlvbiwgZWMpOwpAQCAt
ODEsNyArODEsNyBAQCBKU1ZhbHVlIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIC8vIFRoZSBhcmd1bWVudCBjYW4gYmUgYW4gSFRNTE9wdGlv
bkVsZW1lbnQgb3IgYW4gaW5kZXguCiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9IGV4ZWMtPmFyZ3Vt
ZW50KDApOwotICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gdG9IVE1MT3B0aW9u
RWxlbWVudChhcmd1bWVudCkpCisgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBK
U0hUTUxPcHRpb25FbGVtZW50Ojp0b0ltcGwoYXJndW1lbnQpKQogICAgICAgICBpbXBsKCkucmVt
b3ZlKG9wdGlvbik7CiAgICAgZWxzZQogICAgICAgICBpbXBsKCkucmVtb3ZlKGFyZ3VtZW50LnRv
SW50MzIoZXhlYykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MU2VsZWN0RWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcAppbmRleCA0M2Y2OTRiNTBhZTMzNmViOTNkZjM2
YzE4Y2M1MDM1ZTQ1ODIwZDA1Li5kZGQwOTI5MmExOTIwMjgxMTE5MTQyNTk4Y2NkZWJhNGNlNDk0
YjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RF
bGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxT
ZWxlY3RFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDMsNyArNDMsNyBAQCBKU1ZhbHVlIEpTSFRNTFNl
bGVjdEVsZW1lbnQ6OnJlbW92ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHNldERPTUV4Y2Vw
dGlvbihleGVjLCBlYyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gVGhlIEhUTUxTZWxlY3RF
bGVtZW50OjpyZW1vdmUoKSBmdW5jdGlvbiBjYW4gdGFrZSBlaXRoZXIgYW4gb3B0aW9uIG9iamVj
dCBvciB0aGUgaW5kZXggb2YgYW4gb3B0aW9uLgotICAgICAgICBpZiAoSFRNTE9wdGlvbkVsZW1l
bnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpKQorICAg
ICAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6
OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpCiAgICAgICAgICAgICBzZWxlY3QucmVtb3ZlKG9w
dGlvbik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNlbGVjdC5yZW1vdmVCeUluZGV4KGV4
ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYykpOwpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIHNl
bGVjdEluZGV4U2V0dGVyKEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QsIEpTQzo6RXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZAogICAgICAgICBzZWxlY3QtPnJlbW92ZUJ5SW5kZXgoaW5kZXgpOwog
ICAgIGVsc2UgewogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgSFRNTE9w
dGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQodmFsdWUpOworICAgICAg
ICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9JbXBs
KHZhbHVlKTsKICAgICAgICAgaWYgKCFvcHRpb24pCiAgICAgICAgICAgICBlYyA9IFRZUEVfTUlT
TUFUQ0hfRVJSOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKaW5kZXggZjRi
NTU1ZjgzNDlhNDAzYWIxNDUyMDE2MjM3NTQyNjIwNjgwOWRiZC4uZjU3NDEwMDk5NTkyNjBmZWI3
Zjk3YTZkZDdlM2M1NTNiMjMzNzM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcApAQCAtMTMx
LDcgKzEzMSw3IEBAIEpTVmFsdWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0
TWVudShFeGVjU3RhdGUqIGV4ZWMpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgIEV2ZW50KiBldmVudCA9IHRvRXZlbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIEV2
ZW50KiBldmVudCA9IEpTRXZlbnQ6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSk7CiAKICAgICBK
U0FycmF5KiBhcnJheSA9IGFzQXJyYXkoZXhlYy0+YXJndW1lbnQoMSkpOwogICAgIENvbnRleHRN
ZW51IG1lbnU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3Nh
Z2VFdmVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VF
dmVudEN1c3RvbS5jcHAKaW5kZXggYmE5ZTNjYzhlZDY5MmU5NDAzZTY3ODc3MWEyNTZlN2ZhYjE4
Y2QxNS4uOWJiM2ZkYWJkZmIwZjFlODk4MTRmNGEzODlmOTQwMzRhOWQzMTdiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApA
QCAtOTUsNyArOTUsNyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGhhbmRsZUluaXRNZXNzYWdlRXZl
bnQoSlNNZXNzYWdlRXZlbnQqIGpzRXZlbnQsIEpTQzo6RXhlY1N0YQogICAgIGJvb2wgY2FuY2Vs
YWJsZUFyZyA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvQm9vbGVhbihleGVjKTsKICAgICBjb25zdCBT
dHJpbmcgb3JpZ2luQXJnID0gZXhlYy0+YXJndW1lbnQoNCkudG9TdHJpbmcoZXhlYyktPnZhbHVl
KGV4ZWMpOwogICAgIGNvbnN0IFN0cmluZyBsYXN0RXZlbnRJZEFyZyA9IGV4ZWMtPmFyZ3VtZW50
KDUpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKLSAgICBET01XaW5kb3cqIHNvdXJjZUFy
ZyA9IHRvRE9NV2luZG93KGV4ZWMtPmFyZ3VtZW50KDYpKTsKKyAgICBET01XaW5kb3cqIHNvdXJj
ZUFyZyA9IEpTRE9NV2luZG93Ojp0b0ltcGwoZXhlYy0+YXJndW1lbnQoNikpOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxNZXNzYWdlUG9ydEFycmF5PiBtZXNzYWdlUG9ydHM7CiAgICAgT3duUHRyPEFy
cmF5QnVmZmVyQXJyYXk+IGFycmF5QnVmZmVyczsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDcp
LmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKaW5kZXggNzVhYmUxOGNmM2M1ZmRjNTUwZWM2MmE5
MjhmZjA1ZGJjOTQwNWQxYy4uOTQ2ZmUyYWU3NTU4YzJjMDk4NDk2Mjk4OWU3ZmQzYjMxOTNjOTE1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1
c3RvbS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBmaWxsTWVzc2FnZVBvcnRBcnJheShKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEEKICAgICAg
ICAgfQogCiAgICAgICAgIC8vIFZhbGlkYXRpb24gb2YgT2JqZWN0cyBpbXBsZW1lbnRpbmcgYW4g
aW50ZXJmYWNlLCBwZXIgV2ViSURMIHNwZWMgNC4xLjE1LgotICAgICAgICBSZWZQdHI8TWVzc2Fn
ZVBvcnQ+IHBvcnQgPSB0b01lc3NhZ2VQb3J0KHZhbHVlKTsKKyAgICAgICAgUmVmUHRyPE1lc3Nh
Z2VQb3J0PiBwb3J0ID0gSlNNZXNzYWdlUG9ydDo6dG9JbXBsKHZhbHVlKTsKICAgICAgICAgaWYg
KHBvcnQpIHsKICAgICAgICAgICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGUgcG9ydHMuCiAgICAg
ICAgICAgICBpZiAocG9ydEFycmF5LmNvbnRhaW5zKHBvcnQpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCBkMzYyNGUxZjIzNzNjZTk3ODAyNWM0
NmViZTIxZmNlZTQxZmE2YWNmLi5kZDdiMjM1MDBkMDI3NTQ0NTYxNDBlNThlZDYwZmJjZDBiOGRl
MGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAg
LTEzNSw3ICsxMzUsNyBAQCBib29sIEpTTm9kZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdgogSlNWYWx1ZSBKU05vZGU6
Omluc2VydEJlZm9yZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgYm9vbCBvayA9IGltcGwoKS5pbnNlcnRCZWZvcmUodG9Ob2RlKGV4ZWMtPmFyZ3Vt
ZW50KDApKSwgdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOworICAgIGJvb2wgb2sgPSBp
bXBsKCkuaW5zZXJ0QmVmb3JlKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgSlNO
b2RlOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9u
KGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgw
KTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNT
dGF0ZSogZXhlYykKIEpTVmFsdWUgSlNOb2RlOjpyZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkucmVw
bGFjZUNoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVu
dCgxKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZChKU05vZGU6OnRv
SW1wbChleGVjLT5hcmd1bWVudCgwKSksIEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDEp
KSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAg
ICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0xNTUsNyArMTU1LDcgQEAgSlNWYWx1
ZSBKU05vZGU6OnJlcGxhY2VDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTTm9kZTo6
cmVtb3ZlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIGJvb2wgb2sgPSBpbXBsKCkucmVtb3ZlQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50
KDApKSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBsKCkucmVtb3ZlQ2hpbGQoSlNOb2RlOjp0b0lt
cGwoZXhlYy0+YXJndW1lbnQoMCkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVj
KTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE2
NSw3ICsxNjUsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6cmVtb3ZlQ2hpbGQoRXhlY1N0YXRlKiBleGVj
KQogSlNWYWx1ZSBKU05vZGU6OmFwcGVuZENoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLmFwcGVuZENoaWxkKHRv
Tm9kZShleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLmFwcGVu
ZENoaWxkKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOwogICAgIHNldERP
TUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gZXhlYy0+
YXJndW1lbnQoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVGaWx0ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmls
dGVyQ3VzdG9tLmNwcAppbmRleCAyOGMxNmMxMWVjOTU0MTEzOTk5NjYyMzZlNTc2OTgwNzVhYjA4
MWRhLi40ZTE0N2Q3NWQ2ZTFiZGVkYjkxY2QyOWEwOTAxODk0Zjg3MmM3YWQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKQEAgLTM1
LDcgKzM1LDcgQEAgdm9pZCBKU05vZGVGaWx0ZXI6OnZpc2l0QWRkaXRpb25hbENoaWxkcmVuKEpT
Qzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KCZpbXBs
KCkpOwogfQogCi1QYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU0M6OlZNJiB2
bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQorUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiBKU05vZGVGaWx0
ZXI6OnRvSW1wbChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2
YWx1ZS5pbmhlcml0cyhKU05vZGVGaWx0ZXI6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAmSlND
Ojpqc0Nhc3Q8SlNOb2RlRmlsdGVyKj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCmlu
ZGV4IGY0MDVhMDNkZjZlMzAxZWU4MDZhY2M4Njg3MjYzMWU2YmRiNDg5ZDguLjY4ODBhMGM4NDEz
MzUzY2U5MDc2MWNlNTM2YzVkM2YwOWM2MzRjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBA
QCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjplbmNyeXB0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4g
a2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0
cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
ZXhlYyk7CiAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpkZWNy
eXB0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAg
fQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVj
a2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5
Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAg
ICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTI0OCw3ICsyNDgsNyBAQCBK
U1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpzaWduKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0g
dG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlw
dG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7
CiAKQEAgLTI5OSw3ICsyOTksNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp2ZXJpZnkoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvSW1w
bChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtNjAwLDcgKzYwMCw3IEBAIEpTVmFsdWUg
SlNTdWJ0bGVDcnlwdG86OmV4cG9ydEtleShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRv
Q3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRv
S2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwog
CkBAIC02MzAsMTEgKzYzMCwxMSBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp3cmFwS2V5KEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0g
ICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b0lt
cGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiB3cmFw
cGluZ0tleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiB3cmFwcGluZ0tleSA9IEpTQ3J5cHRvS2V5Ojp0b0ltcGwoZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMikpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhy
b3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTcxMyw3ICs3MTMsNyBAQCBKU1ZhbHVlIEpTU3VidGxl
Q3J5cHRvOjp1bndyYXBLZXkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiB1bndyYXBwaW5nS2V5ID0g
dG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJlZlB0cjxDcnlw
dG9LZXk+IHVud3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KDIpKTsKICAgICBpZiAoIXVud3JhcHBpbmdLZXkpCiAgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihleGVjKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IGM1ZjIx
NjEyOWFjMzlmMGNhMTc1YzI2NWZjMTIwZjNkMmZkNDYxNTUuLmZlNTFmYzlmNmRkNmQ1NzVlNjdm
ZmY2NjI4ZWMzNjM3MmQ1YTgyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTI1Nyw3
ICsyNTcsNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hlZFNo
YWRlcnMoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4
Y2VwdGlvbihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0
ID0gaW1wbCgpOwotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBK
U1dlYkdMUHJvZ3JhbTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBp
ZiAoIXByb2dyYW0gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JO
dWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBWZWN0b3I8
UmVmUHRyPFdlYkdMU2hhZGVyPj4gc2hhZGVyczsKQEAgLTM0MSw3ICszNDEsNyBAQCBKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyKEV4ZWNTdGF0ZSog
ZXhlYykKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCYgY29udGV4dCA9IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSB0b1dl
YkdMUHJvZ3JhbShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQcm9ncmFt
KiBwcm9ncmFtID0gSlNXZWJHTFByb2dyYW06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CiAgICAgaWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5p
c1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7
CiAgICAgdW5zaWduZWQgcG5hbWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMy
KGV4ZWMpOwpAQCAtMzY5LDcgKzM2OSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OmdldFNoYWRlclBhcmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgV2ViR0xSZW5kZXJp
bmdDb250ZXh0JiBjb250ZXh0ID0gaW1wbCgpOwogICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MCkuaW5oZXJpdHMoSlNXZWJHTFNoYWRlcjo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKGV4ZWMpOwotICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSB0b1dlYkdMU2hhZGVy
KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFNoYWRlciogc2hhZGVyID0g
SlNXZWJHTFNoYWRlcjo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICB1
bnNpZ25lZCBwbmFtZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7
CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKQEAgLTQwNSwxMCArNDA1LDEwIEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OmdldFVuaWZvcm0oRXhlY1N0YXRlKiBleGVjKQogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0gaW1wbCgpOwotICAgIFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9J
bXBsKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIXByb2dyYW0gJiYgIWV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9j
YXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxv
Y2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICghbG9j
YXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkT3JOdWxsKCkp
CiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTEdldEluZm8g
aW5mbyA9IGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbiwgZWMpOwpAQCAtNDc4
LDcgKzQ3OCw3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rp
b25Ub0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFdlCiAgICAgbG9uZyBpbmRleCA9IC0x
OwogICAgIAogICAgIGlmIChmdW5jdGlvbkZvclVuaWZvcm0oZikpIHsKLSAgICAgICAgbG9jYXRp
b24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsK
KyAgICAgICAgbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgICAgICBpZiAoIWxvY2F0aW9uICYmICFleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIH0gZWxzZQpAQCAtNTY0LDcgKzU2NCw3IEBA
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFdlCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAh
PSAyKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAKLSAgICBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDApKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdM
VW5pZm9ybUxvY2F0aW9uOjp0b0ltcGwoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAg
IGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVk
T3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgCkBAIC02
MjQsNyArNjI0LDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgoRGF0
YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXQKICAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpICE9IDMpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0
aW9uKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKIAotICAgIFdl
YkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oZXhl
Yy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2Nh
dGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4
ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJl
cXVlc3RDdXN0b20uY3BwCmluZGV4IGM5ZWRjZmE4YjRkMWMyMzc0Mzc4MjA2MWY3MjdmMWMyM2Q1
ZDJjMTEuLmY5YWUxNjQ3YWZhNWU1N2YxNDZiNWZmYWQ2NDg3NDZlODNmM2RkNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20u
Y3BwCkBAIC0xNDgsMTEgKzE0OCwxMSBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQo
RXhlY1N0YXRlKiBleGVjKQogICAgIGlmICh2YWwuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAg
ICAgaW1wbCgpLnNlbmQoZWMpOwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0RvY3VtZW50
OjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2VuZCh0b0RvY3VtZW50KHZhbCksIGVjKTsKKyAg
ICAgICAgaW1wbCgpLnNlbmQoSlNEb2N1bWVudDo6dG9JbXBsKHZhbCksIGVjKTsKICAgICBlbHNl
IGlmICh2YWwuaW5oZXJpdHMoSlNCbG9iOjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2VuZCh0
b0Jsb2IodmFsKSwgZWMpOworICAgICAgICBpbXBsKCkuc2VuZChKU0Jsb2I6OnRvSW1wbCh2YWwp
LCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTRE9NRm9ybURhdGE6OmluZm8oKSkp
Ci0gICAgICAgIGltcGwoKS5zZW5kKHRvRE9NRm9ybURhdGEodmFsKSwgZWMpOworICAgICAgICBp
bXBsKCkuc2VuZChKU0RPTUZvcm1EYXRhOjp0b0ltcGwodmFsKSwgZWMpOwogICAgIGVsc2UgaWYg
KHZhbC5pbmhlcml0cyhKU0FycmF5QnVmZmVyOjppbmZvKCkpKQogICAgICAgICBpbXBsKCkuc2Vu
ZCh0b0FycmF5QnVmZmVyKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNB
cnJheUJ1ZmZlclZpZXc6OmluZm8oKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDI4ZjIyZGFiMGRmMWJlMGFh
N2I1ZTJmMTZhNDRkMTNkNmQ3NzZiZjkuLjcwZTkyMWFlNGE3NGI1YzM5NzRhNTIxZWZkODk4NGFj
NDBkNmVkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcApAQCAtNzg0LDEyICs3ODQsMTIgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICB3cml0ZShvYmotPmludGVybmFsVmFsdWUoKS5hc051bWJlcigpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChG
aWxlKiBmaWxlID0gdG9GaWxlKG9iaikpIHsKKyAgICAgICAgICAgIGlmIChGaWxlKiBmaWxlID0g
SlNGaWxlOjp0b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEZpbGVUYWcpOwog
ICAgICAgICAgICAgICAgIHdyaXRlKGZpbGUpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKEZpbGVMaXN0KiBsaXN0ID0gdG9GaWxl
TGlzdChvYmopKSB7CisgICAgICAgICAgICBpZiAoRmlsZUxpc3QqIGxpc3QgPSBKU0ZpbGVMaXN0
Ojp0b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEZpbGVMaXN0VGFnKTsKICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0LT5sZW5ndGgoKTsKICAgICAgICAg
ICAgICAgICB3cml0ZShsZW5ndGgpOwpAQCAtNzk3LDcgKzc5Nyw3IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgICAgIHdyaXRlKGxpc3QtPml0ZW0oaSkpOwogICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKEJsb2IqIGJsb2IgPSB0
b0Jsb2Iob2JqKSkgeworICAgICAgICAgICAgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvSW1w
bChvYmopKSB7CiAgICAgICAgICAgICAgICAgd3JpdGUoQmxvYlRhZyk7CiAgICAgICAgICAgICAg
ICAgbV9ibG9iVVJMcy5hcHBlbmQoYmxvYi0+dXJsKCkpOwogICAgICAgICAgICAgICAgIHdyaXRl
KGJsb2ItPnVybCgpKTsKQEAgLTgwNSw3ICs4MDUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIHdyaXRlKGJsb2ItPnNpemUoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoSW1hZ2VEYXRhKiBkYXRhID0gdG9JbWFnZURh
dGEob2JqKSkgeworICAgICAgICAgICAgaWYgKEltYWdlRGF0YSogZGF0YSA9IEpTSW1hZ2VEYXRh
Ojp0b0ltcGwob2JqKSkgewogICAgICAgICAgICAgICAgIHdyaXRlKEltYWdlRGF0YVRhZyk7CiAg
ICAgICAgICAgICAgICAgd3JpdGUoZGF0YS0+d2lkdGgoKSk7CiAgICAgICAgICAgICAgICAgd3Jp
dGUoZGF0YS0+aGVpZ2h0KCkpOwpAQCAtODY1LDcgKzg2NSw3IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7CiAgICAgICAgICAgICB9CiAjaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCi0gICAgICAgICAgICBpZiAoQ3J5cHRvS2V5KiBrZXkgPSB0b0NyeXB0b0tleShv
YmopKSB7CisgICAgICAgICAgICBpZiAoQ3J5cHRvS2V5KiBrZXkgPSBKU0NyeXB0b0tleTo6dG9J
bXBsKG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0ZShDcnlwdG9LZXlUYWcpOwogICAgICAg
ICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBzZXJpYWxpemVkS2V5OwogICAgICAgICAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IGR1bW15QmxvYlVSTHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDhkNTRkYTEzYzRkOWY1Nzg2
MDQwZmM0YjUzOWNhYzA2YzE4NGVlMDAuLjQ5YWE5NjQyOTk5M2IyYTg4N2JmNGUzYTNkZmRhZDYz
MTMwODJhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCkBAIC04NzQsNiArODc0LDE3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBn
ZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpOwogICAgIH0K
IAorICAgICMgSlNWYWx1ZSB0byBpbXBsZW1lbnRhdGlvbiB0eXBlCisgICAgaWYgKCEkaGFzUGFy
ZW50IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRp
dmVPYmplY3QifSkgeworICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGVGaWx0ZXIi
KSB7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE5vZGVGaWx0ZXI+IHRvSW1wbChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTtcbiIpOworICAg
ICAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5nTGlzdCIpIHsKKyAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NU3Ry
aW5nTGlzdD4gdG9JbXBsKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTtcbiIpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0
aWMgJGltcGxUeXBlKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICB9CisgICAg
fQorCiAgICAgJGhlYWRlclRyYWlsaW5nSW5jbHVkZXN7IiR7Y2xhc3NOYW1lfUN1c3RvbS5oIn0g
PSAxIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUhlYWRlciJ9
OwogCiAgICAgbXkgJG5hbWVkR2V0dGVyRnVuY3Rpb24gPSBHZXROYW1lZEdldHRlckZ1bmN0aW9u
KCRpbnRlcmZhY2UpOwpAQCAtMTE2NiwxNSArMTE3Nyw2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgIGlmIChTaG91bGRHZW5lcmF0ZVRvSlNEZWNsYXJhdGlvbigkaGFzUGFyZW50LCAkaW50ZXJm
YWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiV0VCQ09SRV9FWFBPUlQgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbXBs
VHlwZSopO1xuIik7CiAgICAgfQotICAgIGlmICghJGhhc1BhcmVudCB8fCAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKLSAgICAg
ICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIlBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpT
Qzo6Vk0mLCBKU0M6OkpTVmFsdWUpO1xuIik7Ci0gICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJET01TdHJpbmdMaXN0IikgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIlBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9ET01TdHJpbmdMaXN0KEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlKTtcbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIldFQkNPUkVfRVhQT1JUICRpbXBsVHlwZSogdG8ke2ludGVy
ZmFjZU5hbWV9KEpTQzo6SlNWYWx1ZSk7XG4iKTsKLSAgICAgICAgfQotICAgIH0KICAgICBpZiAo
JHVzZXNUb0pTTmV3bHlDcmVhdGVkeyRpbnRlcmZhY2VOYW1lfSkgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4iKTsKICAgICB9CkBA
IC0zMTEyLDcgKzMxMTQsNyBAQCBFTkQKICAgICB9CiAKICAgICBpZiAoKCEkaGFzUGFyZW50IG9y
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmpl
Y3QifSkgYW5kICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Ub05h
dGl2ZU9iamVjdCJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJGltcGxUeXBlKiB0
byR7aW50ZXJmYWNlTmFtZX0oSlNDOjpKU1ZhbHVlIHZhbHVlKVxuIik7CisgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiJGltcGxUeXBlKiAke2NsYXNzTmFtZX06OnRvSW1wbChKU0M6OkpTVmFs
dWUgdmFsdWUpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSAiIC4gR2V0Q2Fz
dGluZ0hlbHBlckZvclRoaXNPYmplY3QoJGludGVyZmFjZSkgLiAiKHZhbHVlKSlcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7
XG4iKTsKQEAgLTMyNDMsNyArMzI0NSw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawog
CiAgICAgICAgIGlmICgkYXJnVHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IGN1c3Rv
bVJlc29sdmVyO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgWFBh
dGhOU1Jlc29sdmVyKiByZXNvbHZlciA9IHRvWFBhdGhOU1Jlc29sdmVyKGV4ZWMtPmFyZ3VtZW50
KCRhcmdzSW5kZXgpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IFhQYXRoTlNSZXNvbHZlciogcmVzb2x2ZXIgPSBKU1hQYXRoTlNSZXNvbHZlcjo6dG9JbXBsKGV4
ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGlmICghcmVzb2x2ZXIpIHtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICBjdXN0b21SZXNvbHZlciA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyOjpjcmVhdGUoZXhlYywgZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpXG4iKTsKQEAgLTMyOTYsNyArMzI5OCw3IEBAIHN1YiBHZW5lcmF0ZVBh
cmFtZXRlcnNDaGVjawogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBm
b3IgKHVuc2lnbmVkIGkgPSAkYXJnc0luZGV4LCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQo
KTsgaSA8IGNvdW50OyArK2kpIHtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKS5pbmhlcml0cyhK
UyR7YXJnVHlwZX06OmluZm8oKSkpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywg
aSwgXCIkbmFtZVwiLCBcIiRpbnRlcmZhY2VOYW1lXCIsICRxdW90ZWRGdW5jdGlvbk5hbWUsIFwi
JGFyZ1R5cGVcIik7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgICAgICRuYW1lLmFwcGVuZCh0byRhcmdUeXBlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkp
KSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRu
YW1lLmFwcGVuZChKUyR7YXJnVHlwZX06OnRvSW1wbChleGVjLT51bmNoZWNrZWRBcmd1bWVudChp
KSkpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIp
CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBWZWN0b3I8JG5hdGl2ZUVsZW1lbnRUeXBlPiAkbmFtZSA9IHRvTmF0aXZlQXJndW1l
bnRzPCRuYXRpdmVFbGVtZW50VHlwZT4oZXhlYywgJGFyZ3NJbmRleCk7XG4iKTsKQEAgLTM4NDks
NyArMzg1MSw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKIAogICAgIGlmICgkdHlwZSBlcSAiTm9k
ZUZpbHRlciIpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25k
aXRpb25hbCk7Ci0gICAgICAgIHJldHVybiAidG8kdHlwZShleGVjLT52bSgpLCAkdmFsdWUpIjsK
KyAgICAgICAgcmV0dXJuICJKUyR7dHlwZX06OnRvSW1wbChleGVjLT52bSgpLCAkdmFsdWUpIjsK
ICAgICB9CiAKICAgICBpZiAoJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKQEAg
LTM4ODEsNyArMzg4Myw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICBpZiAoJGFycmF5T3JT
ZXF1ZW5jZVR5cGUpIHsKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1JlZlB0clR5cGUo
JGFycmF5T3JTZXF1ZW5jZVR5cGUpKSB7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygi
SlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9LmgiKTsKLSAgICAgICAgICAgIHJldHVybiAiKHRvUmVm
UHRyTmF0aXZlQXJyYXk8JHthcnJheU9yU2VxdWVuY2VUeXBlfSwgSlMke2FycmF5T3JTZXF1ZW5j
ZVR5cGV9PihleGVjLCAkdmFsdWUsICZ0byR7YXJyYXlPclNlcXVlbmNlVHlwZX0pKSI7CisgICAg
ICAgICAgICByZXR1cm4gIih0b1JlZlB0ck5hdGl2ZUFycmF5PCR7YXJyYXlPclNlcXVlbmNlVHlw
ZX0sIEpTJHthcnJheU9yU2VxdWVuY2VUeXBlfT4oZXhlYywgJHZhbHVlLCAmSlMke2FycmF5T3JT
ZXF1ZW5jZVR5cGV9Ojp0b0ltcGwpKSI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICJ0b05h
dGl2ZUFycmF5PCIgLiBHZXROYXRpdmVWZWN0b3JJbm5lclR5cGUoJGFycmF5T3JTZXF1ZW5jZVR5
cGUpIC4gIj4oZXhlYywgJHZhbHVlKSI7CiAgICAgfQpAQCAtMzg5Miw3ICszODk0LDcgQEAgc3Vi
IEpTVmFsdWVUb05hdGl2ZQogCiAgICAgIyBEZWZhdWx0LCBhc3N1bWUgYXV0b2dlbmVyYXRlZCB0
eXBlIGNvbnZlcnNpb24gcm91dGluZXMKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMkdHlwZS5o
IiwgJGNvbmRpdGlvbmFsKTsKLSAgICByZXR1cm4gInRvJHR5cGUoJHZhbHVlKSI7CisgICAgcmV0
dXJuICJKUyR7dHlwZX06OnRvSW1wbCgkdmFsdWUpIjsKIH0KIAogc3ViIE5hdGl2ZVRvSlNWYWx1
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA3MTkzOGZiZGViYzU1OGMy
NzVjOTVhYWM2MzE3YWUyZDVkYjg0MDVlLi5hMTYxMTY1YTJiM2VkNjg2YWYyMGYyNmI4M2I5Y2M2
NmI3MjI3ZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMjE0LDcg
KzIxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2Jq
ZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0CiAgICAgVGVzdEFjdGl2ZURPTU9iamVj
dCYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgTm9kZSogbmV4dENoaWxkKHRvTm9kZShleGVj
LT5hcmd1bWVudCgwKSkpOworICAgIE5vZGUqIG5leHRDaGlsZChKU05vZGU6OnRvSW1wbChleGVj
LT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgaW1w
bC5leGNpdGluZ0Z1bmN0aW9uKG5leHRDaGlsZCk7CkBAIC0yODksNyArMjg5LDcgQEAgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0QWN0aXZlRE8KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RBY3Rp
dmVET01PYmplY3Q+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RBY3RpdmVET01PYmpl
Y3QqIHRvVGVzdEFjdGl2ZURPTU9iamVjdChKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0QWN0aXZl
RE9NT2JqZWN0KiBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEFjdGl2
ZURPTU9iamVjdCo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
QWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggNTVjMmVmOTRlMjZjMjE4YjEwMTI2MWFk
OWUxMTE0ZTA5MWU0NmYwNy4uZWU2NjQ2Mzc5NDllM2U0YWIzZTJkNWJiMWQ1YTc3ODQ3MDQ1Mzk2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEFjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFBy
b3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0
QWN0aXZlRE9NT2JqZWN0KiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RBY3RpdmVET01PYmplY3QoKTsKQEAgLTkzLDcg
Kzk0LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29y
bGQsIFRlc3RBY3RpdmVET01PYmplY3QqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEFjdGl2ZURP
TU9iamVjdCopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEFjdGl2ZURPTU9iamVjdCogdG9UZXN0QWN0
aXZlRE9NT2JqZWN0KEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXggNTY4YzlkZTg0ZWUyY2Y3
ZTJlMTEyYzdhMTZkMDdjOTdhM2FkYzJkZC4uYWUxNzFjYmEyNjYyNzYzMGI4MzVlYjZkNjEzNjhj
YjkyZDlmNjJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0y
NjMsNyArMjYzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q3VzdG9tTmEKICAgICByZXR1cm4gY3JlYXRl
TmV3V3JhcHBlcjxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsK
IH0KIAotVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b1Rlc3RDdXN0b21OYW1lZEdldHRlcihKU0M6
OkpTVmFsdWUgdmFsdWUpCitUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyOjp0b0ltcGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFw
cGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KHZhbHVlKSkKICAg
ICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdl
dHRlci5oCmluZGV4IDFlYjM1ZDgyZTA4M2YxNzljNTA2YzE3NTcyZjE3NjY3N2YyYzk3NTAuLjEy
MTliNDc5ZTMxZWNkNDkyNWZjOWY3ODhmNGUwNWZhMzI1NTEyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RDdXN0b21OYW1lZEdldHRl
ciogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpK
U0NlbGwqKTsKQEAgLTk3LDcgKzk4LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERP
TVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RDdXN0b21OYW1lZEdldHRlciopCiB9CiAKIFdFQkNP
UkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RDdXN0
b21OYW1lZEdldHRlciogdG9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpKU1ZhbHVlKTsKIAog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggOGVhZmEwN2RkN2UzNmUyY2Q1YjkxZmU2NjMyM2ZkNmM5MzA4ODJhMi4uNGVlN2Ux
ZDFjOGUwNzY2MDcyY2M1ZDM2MWY0NzYzNDQxNTU2ODVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dENvbnN0cnVjdG9yLmNwcApAQCAtMjkyLDcgKzI5Miw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV2ZW50
Q29uCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4o
Z2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEV2ZW50Q29uc3RydWN0b3IqIHRvVGVzdEV2
ZW50Q29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEV2ZW50Q29uc3RydWN0b3Iq
IEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0
b3IqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29u
c3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudENvbnN0cnVjdG9yLmgKaW5kZXggNWJiZWVjODBlNGNjNGIzOGExOTc3MTE5NWFjMWRk
NDY5NzZiMTMxNi4uYjNlMjlmNDEwYjU3OTljNDMwMjgyZGNlNGY1MmU0OThlNmYzNGNhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90
eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFdmVu
dENvbnN0cnVjdG9yKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0
cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEV2ZW50Q29uc3RydWN0b3IoKTsKIApAQCAt
OTMsNyArOTQsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCwgVGVzdEV2ZW50Q29uc3RydWN0b3IqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV2
ZW50Q29uc3RydWN0b3IqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RFdmVudENvbnN0cnVjdG9yKiB0
b1Rlc3RFdmVudENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSk7CiAKIGJvb2wgZmlsbFRlc3RFdmVu
dENvbnN0cnVjdG9ySW5pdChUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQmLCBKU0RpY3Rpb25hcnkm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggZGIzMzNkMjQ0NGMzOGU0ZTQ2YWI0
N2JiNWM4OWJjYzhiM2ZhOGE1NC4uZTc3NmNiODI5OGNiYWQzMjVlNDcyYjQ2MDZhYjVhZDdhNzVl
ZmYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0
aW9uRGlzcGF0Y2hFdmVudChFeGUKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihleGVjKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgRXZlbnQqIGV2
dCh0b0V2ZW50KGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgRXZlbnQqIGV2dChKU0V2ZW50Ojp0
b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29sZWFuKGltcGwuZGlzcGF0Y2hFdmVudChldnQs
IGVjKSk7CkBAIC0zNjQsNyArMzY0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0RXZlbnRUYXIKICAgICBy
ZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RFdmVudFRhcmdldD4oZ2xvYmFsT2JqZWN0LCBp
bXBsKTsKIH0KIAotVGVzdEV2ZW50VGFyZ2V0KiB0b1Rlc3RFdmVudFRhcmdldChKU0M6OkpTVmFs
dWUgdmFsdWUpCitUZXN0RXZlbnRUYXJnZXQqIEpTVGVzdEV2ZW50VGFyZ2V0Ojp0b0ltcGwoSlND
OjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RFdmVudFRhcmdldCo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5p
bXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCmluZGV4IGViMGEyZDk5YmVjY2FiN2U1MjMxMThl
NTRkYmNhZDQ5MjFmNDQ4MDAuLmQ1YTE1ZWFhNzllNzBkM2Y0MGE3MzkzODhlOTVjOTA4YzBlYTA0
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFdmVudFRh
cmdldCogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dEJ5SW5kZXgoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlND
OjpKU0NlbGwqKTsKQEAgLTEwMSw3ICsxMDIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRl
eHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEV2ZW50VGFyZ2V0KikKIH0KIAogV0VCQ09S
RV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCosIFRlc3RFdmVudFRhcmdldCopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEV2ZW50VGFyZ2V0
KiB0b1Rlc3RFdmVudFRhcmdldChKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggNGFkZTc2ZTkxNWIzOGNhNWYwN2I3NThh
NjJmYzVjOTE4ZTliYjk2My4uYzAyYzdlOTI2MzRlZjEwNGJlYWUzMWIxZjVhYmRlNjA0OGVhMWVl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFRlc3RFeGNlcHRpbwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV4Y2VwdGlv
bj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEV4Y2VwdGlvbiogdG9UZXN0RXhjZXB0
aW9uKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RFeGNlcHRpb24qIEpTVGVzdEV4Y2VwdGlvbjo6
dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0RXhjZXB0aW9uKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndy
YXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAppbmRleCAzOTg0NTc0ZTk4N2Y5YjgxMTg0
YjBiNmZjYTNiZTFlNzc2ZmExYTRlLi4yMzYwYTljNDExMTgyYTNkYTE5NWViMjIwNzAxNDVjZjFj
YjI4NjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXhjZXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFeGNlcHRp
b24qIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxs
Kik7CiAgICAgfkpTVGVzdEV4Y2VwdGlvbigpOwpAQCAtOTQsNyArOTUsNiBAQCBpbmxpbmUgdm9p
ZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEV4Y2VwdGlvbiop
CiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqLCBUZXN0RXhjZXB0aW9uKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0
RXhjZXB0aW9uKiB0b1Rlc3RFeGNlcHRpb24oSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5k
ZXggNDI3YWJhOGQ0MGViNGQ0ZGQ4YmViNzc5MDQ3Nzk2NWIxN2FlYmIyZi4uZWJhOWY3YTMzMTg3
ZjkxNmJmZGU2MjI0NzhiYzcxMGZkZDI3N2VjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEdlbmVy
YXRlCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRv
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUqIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OnRvSW1wbChKU0M6OkpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+
aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKaW5kZXggZGY3YmRk
YmI0OTI3ZjA0OGY4YmZkOThiODJhN2Q3NzcwNjYwNjMwOC4uNmVkMzViZDdhZjQ0MGZlMzBhNzUw
ZjBjODMzNWE3M2I3MzE4OGI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZS5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b0ltcGwoSlND
OjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAg
fkpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUg
dm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUq
KTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCBiMTQzY2M0ZTM2MjA0ZWY3ZGU2NmEwZDE2ZmVmNTNj
NDE2YTJmYTQzLi45YTFiZjE3N2JmNThlMWUxNjQ5YmYyZGZmMWVjODU3MDA4YmMyNzA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgc2V0SlNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50c05vZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVj
dCwgRW5jCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9
IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBOb2RlKiBuYXRpdmVWYWx1ZSh0b05vZGUodmFsdWUp
KTsKKyAgICBOb2RlKiBuYXRpdmVWYWx1ZShKU05vZGU6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBp
bXBsLnNldEltcGxlbWVudHNOb2RlKG5hdGl2ZVZhbHVlKTsKQEAgLTc5NSw3ICs3OTUsNyBAQCB2
b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogYmFzZU9iamVjdCwgRQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RJ
bnRlcmZhY2UmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgTm9kZSogbmF0aXZlVmFs
dWUodG9Ob2RlKHZhbHVlKSk7CisgICAgTm9kZSogbmF0aXZlVmFsdWUoSlNOb2RlOjp0b0ltcGwo
dmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAg
ICByZXR1cm47CiAgICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZSgmaW1w
bCwgbmF0aXZlVmFsdWUpOwpAQCAtODQxLDcgKzg0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9k
MihFCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMCkuaXNFbXB0eSgp
ID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
YykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJn
KHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rl
c3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgxKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLmltcGxlbWVudHNNZXRob2QyKHNjcmlwdENv
bnRleHQsIHN0ckFyZywgb2JqQXJnLCBlYykpKTsKQEAgLTkwNyw3ICs5MDcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3Vw
cGxlbWVudGFsTWV0aG9kMgogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50
KDApLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRl
c3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2Jq
KiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6
c3VwcGxlbWVudGFsTWV0aG9kMigmaW1wbCwgc2NyaXB0Q29udGV4dCwgc3RyQXJnLCBvYmpBcmcs
IGVjKSkpOwpAQCAtOTczLDcgKzk3Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEludGVyZmFjCiAgICAg
cmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0SW50ZXJmYWNlPihnbG9iYWxPYmplY3QsIGlt
cGwpOwogfQogCi1UZXN0SW50ZXJmYWNlKiB0b1Rlc3RJbnRlcmZhY2UoSlNDOjpKU1ZhbHVlIHZh
bHVlKQorVGVzdEludGVyZmFjZSogSlNUZXN0SW50ZXJmYWNlOjp0b0ltcGwoSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oCmluZGV4IDdkZDhkMDMzZTQ3MWIxMjkzMjg4ZTY5NzA5OWRiM2M3ZjU3NzIy
MDIuLjFhNDc0NzgwN2FiYzk0Yjg0YmYwMzhhYWE2MWZjYmRlMzI4OGM3MzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEludGVyZmFjZSogdG9JbXBsKEpTQzo6SlNW
YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7CkBA
IC0xMjAsNyArMTIxLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJX
b3JsZCYgd29ybGQsIFRlc3RJbnRlcmZhY2UqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEludGVy
ZmFjZSopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEludGVyZmFjZSogdG9UZXN0SW50ZXJmYWNlKEpT
Qzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDNlOTMxMWU1MzBiNWMzYTZmZDUy
MWZkNTQwOTA0NGM4YzE2NDRkM2MuLmViMTZiMzA5ZjllODc3NGIzYTRmZmU0NTdhYjU4NTNlMWFi
Y2EwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAK
QEAgLTIyNyw3ICsyMjcsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RNZWRpYVF1ZQogICAgIHJldHVybiBj
cmVhdGVOZXdXcmFwcGVyPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KGdsb2JhbE9iamVj
dCwgaW1wbCk7CiB9CiAKLVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0b1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyKiBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0b0ltcGwoSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXIt
PmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4
IDU1NzM1ZWIzMjMxZDc0Y2M2NGVhZWIzZGM5N2NkODRhMGNmZWU5NGEuLjdjODY1NDJmOTAwMTE4
ZDRhYTE0ZTNmZjlhMTE3YjBhNGZmZjliMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lciogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6
OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKCk7CiAKQEAgLTkx
LDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYg
d29ybGQsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKikKIH0KIAogV0VCQ09SRV9FWFBPUlQg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lciogdG9UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihKU0M6OkpTVmFsdWUp
OwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmNwcAppbmRleCA3NTQ2ZGNjZDJhOTJjMTIxYTg0ZDRmOGU1MmVkNjg4OGYxNjhkODQ1Li43
N2Y5N2NiZTgzZDFiNmRhNTE2NGY2NGRiMjI0ZTM4Zjg4OGMzNGJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0yODEsNyArMjgxLDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0
TmFtZWRDb24KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3ROYW1lZENvbnN0cnVj
dG9yPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9U
ZXN0TmFtZWRDb25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0TmFtZWRDb25zdHJ1
Y3RvciogSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvcio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAppbmRleCBlY2U5ODg3NzU5ZTA4NjgwNGQ5YmRjNWE1
YTRmNjZlMjRjZjM3YjYwLi45NjE3YzgzYmZiNGIwYmJhNmE4NTY4ZDdlNzk1ZDJkMmZmMzZjOWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZN
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQ
cm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVz
dE5hbWVkQ29uc3RydWN0b3IqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcigpOwog
CkBAIC05Miw3ICs5Myw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVy
V29ybGQmIHdvcmxkLCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopCiB9CiAKIFdFQkNPUkVfRVhQT1JU
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBU
ZXN0TmFtZWRDb25zdHJ1Y3RvciopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE5hbWVkQ29uc3RydWN0
b3IqIHRvVGVzdE5hbWVkQ29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKaW5kZXggZTE3
M2FhY2Y3ODg3NGFiM2FlMDA4Mzg2YTRlMTg5MWE2NGI3NzE2Zi4uOGI1YTVlY2M1NmZmYmRhMjcy
MmI1ZjZiMmRmMjliOTY2Nzg2ZGQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGlj
LmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5vbmRldGVyCiAgICAgcmV0
dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYz4oZ2xvYmFsT2JqZWN0
LCBpbXBsKTsKIH0KIAotVGVzdE5vbmRldGVybWluaXN0aWMqIHRvVGVzdE5vbmRldGVybWluaXN0
aWMoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE5vbmRldGVybWluaXN0aWMqIEpTVGVzdE5vbmRl
dGVybWluaXN0aWM6OnRvSW1wbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8q
IHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vbmRldGVybWluaXN0aWMqPih2YWx1ZSkp
CiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1p
bmlzdGljLmgKaW5kZXggZjUyZWJiZDEzMzAwMWQwNzM3NWVjNDRmNWQ4ZjdmMThlYWQzNjVhYi4u
YTY0MjExMWNhZjE2ZDIzNTEwOTk3MGUzZDAwZjkxZmYxZDhlMDE4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0
aWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYy5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3ROb25kZXRlcm1pbmlzdGlj
KiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlND
ZWxsKik7CiAgICAgfkpTVGVzdE5vbmRldGVybWluaXN0aWMoKTsKIApAQCAtOTEsNyArOTIsNiBA
QCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVz
dE5vbmRldGVybWluaXN0aWMqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE5vbmRldGVybWluaXN0
aWMqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3ROb25kZXRlcm1pbmlzdGljKiB0b1Rlc3ROb25kZXRl
cm1pbmlzdGljKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAppbmRleCBlNDM0ZGVjYmY4MDY4OTk5MzIxYWFjZWY0MTBhOGE3YWM5MjJmMmYxLi5mOGY0
ODk5YjA0NmExMmIzNmRiMzdkMDIyYjBiZTM1Y2M0MjliYTg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMjA3
OCw3ICsyMDc4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWwKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RP
YmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZh
bHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0VGVzdE9iakF0dHIo
bmF0aXZlVmFsdWUpOwpAQCAtMjA5OCw3ICsyMDk4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpYTUxP
YmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOwor
ICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAg
IGltcGwuc2V0WE1MT2JqQXR0cihuYXRpdmVWYWx1ZSk7CkBAIC0yNDU0LDcgKzI0NTQsNyBAQCB2
b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9i
aiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0
b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRv
SW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0
ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMjQ3Nyw3ICsyNDc3LDcgQEAgdm9pZCBz
ZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogYmFzZU8KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBp
bXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVz
dE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBs
KHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIGltcGwuc2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4
ZWMsIG5hdGl2ZVZhbHVlKTsKQEAgLTI0OTcsNyArMjQ5Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVj
LCBKU09iCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUp
KTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsK
ICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOwpAQCAtMjUyMCw3ICsyNTIwLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSog
ZXgKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOwor
ICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7CkBAIC0yNTQzLDcgKzI1NDMsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YQog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5p
bXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAg
VGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b0ltcGwodmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKQEAgLTI1NjYsNyArMjU2Niw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoRXhlCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKLSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0
T2JqKiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwpAQCAtMjU4OSw3ICsyNTg5LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1l
bnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmoKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwot
ICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoq
IG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9JbXBsKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0V2l0
aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShuYXRpdmVWYWx1ZSk7CkBAIC0y
NzQwLDcgKzI3NDAsNyBAQCB2b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYQogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgU1ZH
UHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUodG9TVkdQb2ludCh2YWx1ZSkp
OworICAgIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKEpTU1ZHUG9p
bnQ6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldE11dGFibGVQb2ludChuYXRpdmVWYWx1
ZSk7CkBAIC0yNzYwLDcgKzI3NjAsNyBAQCB2b2lkIHNldEpTVGVzdE9iakltbXV0YWJsZVBvaW50
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKUwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
Ci0gICAgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUodG9TVkdQb2lu
dCh2YWx1ZSkpOworICAgIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVl
KEpTU1ZHUG9pbnQ6OnRvSW1wbCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldEltbXV0YWJsZVBvaW50
KG5hdGl2ZVZhbHVlKTsKQEAgLTI5MzksNyArMjkzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhl
Y1N0CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgp
ID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
YykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJn
KHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rl
c3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgaW1wbC52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBv
YmpBcmcpOwpAQCAtMjk3NCw3ICsyOTc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyhFeGVjU3QKICAg
ICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJp
bmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0
T2JqKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6
dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwuYnl0ZU1ldGhvZFdpdGhBcmdz
KGJ5dGVBcmcsIHN0ckFyZywgb2JqQXJnKSk7CkBAIC0zMDA5LDcgKzMwMDksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRo
b2RXaXRoQXJncyhFeGVjUwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50
KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRl
c3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2Jq
KiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1w
bC5vY3RldE1ldGhvZFdpdGhBcmdzKG9jdGV0QXJnLCBzdHJBcmcsIG9iakFyZykpOwpAQCAtMzA0
NCw3ICszMDQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBjb25zdCBTdHJpbmcm
IHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4ZWMtPmFy
Z3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3Vt
ZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFy
Z3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVl
IHJlc3VsdCA9IGpzTnVtYmVyKGltcGwubG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFy
Zywgb2JqQXJnKSk7CkBAIC0zMDc5LDcgKzMwNzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0
YQogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/
IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMp
KTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0
b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0
T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC5vYmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBz
dHJBcmcsIG9iakFyZykpKTsKQEAgLTMwOTYsNyArMzA5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VB
cmcoRXhlCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihl
eGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVmVjdG9yPFJl
ZlB0cjxTY3JpcHRQcm9maWxlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8U2Ny
aXB0UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxlPihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgJnRv
U2NyaXB0UHJvZmlsZSkpKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+PiBzZXF1
ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxTY3JpcHRQcm9maWxlLCBKU1NjcmlwdFByb2Zp
bGU+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmSlNTY3JpcHRQcm9maWxlOjp0b0ltcGwpKSk7
CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLm1ldGhvZFdpdGhTZXF1
ZW5jZUFyZyhzZXF1ZW5jZUFyZyk7CkBAIC0zMTUzLDcgKzMxNTMsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVp
cmVzQWxsQXJncwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDApLmlz
RW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoq
IG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBvYmpB
cmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5MSUtF
TFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRU
aGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC5tZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzQW5kVGhyb3dzKHN0ckFyZywgb2JqQXJnLCBlYykpKTsKQEAgLTM2NjksNyArMzY2OSw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEoCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKICAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihl
eGVjKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkp
OworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgw
KSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBz
dHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1
bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwpAQCAtMzY4OSw3ICszNjg5LDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMigKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4
ZWMpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7
CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDAp
KSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMzgwMSw3ICszODAxLDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kOCgKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4
ZWMpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7
CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDAp
KSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLm92ZXJsb2FkZWRN
ZXRob2Qob2JqQXJnKTsKQEAgLTQxMjEsNyArNDEyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZh
bHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUo
SlNUZXN0Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQxKHZhbHVlKTsKQEAgLTQxMzgsNyArNDEz
OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQo
MCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNUZXN0Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3Vt
ZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZl
cnQyKHZhbHVlKTsKQEAgLTQxNTUsNyArNDE1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NChFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVl
KHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNU
ZXN0Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQ0KHZhbHVlKTsKQEAgLTQxNzIsNyArNDE3Miw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0NShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihl
eGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkp
KTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNUZXN0Tm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50
KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQ1
KHZhbHVlKTsKQEAgLTQyNTQsNyArNDI1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jCiAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cyhKU1Rlc3RPYmo6
OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCAw
LCAib2JqQXJnIiwgIlRlc3RPYmoiLCAic3RyaWN0RnVuY3Rpb25XaXRoU2VxdWVuY2UiLCAiVGVz
dE9iaiIpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkp
KTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQo
MCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIFZlY3Rvcjx1bnNpZ25l
ZD4gYSh0b05hdGl2ZUFycmF5PHVuc2lnbmVkPihleGVjLCBleGVjLT5hcmd1bWVudCgxKSkpOwpA
QCAtNDI3OSw3ICs0Mjc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KEUKICAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JO
dWxsKCkgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmluaGVyaXRzKEpTVGVzdE9iajo6aW5mbygpKSkK
ICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIDAsICJvYmpBcmci
LCAiVGVzdE9iaiIsICJzdHJpY3RGdW5jdGlvbldpdGhBcnJheSIsICJUZXN0T2JqIik7Ci0gICAg
VGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RP
YmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvSW1wbChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgVmVjdG9yPGludD4gYXJyYXkodG9OYXRpdmVB
cnJheTxpbnQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CkBAIC00MzQxLDE0ICs0MzQxLDE0
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25WYXJpYWRpY05vZGVNZXRob2QoRXhlY1N0CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRo
aXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihl
eGVjKSk7Ci0gICAgTm9kZSogaGVhZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBO
b2RlKiBoZWFkKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8Tm9kZSo+IHRhaWw7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMSwgY291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBjb3VudDsg
KytpKSB7CiAgICAgICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkuaW5oZXJpdHMo
SlNOb2RlOjppbmZvKCkpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJy
b3IoKmV4ZWMsIGksICJ0YWlsIiwgIlRlc3RPYmoiLCAidmFyaWFkaWNOb2RlTWV0aG9kIiwgIk5v
ZGUiKTsKLSAgICAgICAgdGFpbC5hcHBlbmQodG9Ob2RlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KGkpKSk7CisgICAgICAgIHRhaWwuYXBwZW5kKEpTTm9kZTo6dG9JbXBsKGV4ZWMtPnVuY2hlY2tl
ZEFyZ3VtZW50KGkpKSk7CiAgICAgfQogICAgIGltcGwudmFyaWFkaWNOb2RlTWV0aG9kKGhlYWQs
IHRhaWwpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC00
NDM0LDcgKzQ0MzQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPYmoqIGltcAogICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPEpTVGVzdE9iaj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE9i
aiogdG9UZXN0T2JqKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RPYmoqIEpTVGVzdE9iajo6dG9J
bXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmlt
cGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaAppbmRleCAzYzBiZmM1YzlkZWQxNGQzZGM2MzcwYmQxYzJlNzgxZTkwZGJiOGZl
Li4zMmVlYWY2NzQwYWZmMWE0ZWU1NmExMmE0YTY2MzBkNDg3NDRlM2JjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0z
OCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQ
cm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CisgICAgc3RhdGljIFRlc3RPYmoqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE9iaigpOwpAQCAtMTA2LDcgKzEwNyw2
IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBU
ZXN0T2JqKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RPYmoqKTsKLVdFQkNPUkVfRVhQT1JUIFRl
c3RPYmoqIHRvVGVzdE9iaihKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA2
MzA4ZDllM2JiMzAwZTdiYWRjYzdkZTIwYWUxYzk1OTM4NTBhYWYwLi4yMzQ2NTJkYzdhODQ2NTFh
ZGZkNmRjYzYyN2ZiMmRlZGQ0Nzk1NWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0
cnVjdEoKICAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IqIGNhc3Rl
ZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKj4o
ZXhlYy0+Y2FsbGVlKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGV4ZWMpKTsKLSAgICBCbG9iKiBibG9iKHRvQmxvYihleGVjLT5hcmd1bWVudCgwKSkpOwor
ICAgIEJsb2IqIGJsb2IoSlNCbG9iOjp0b0ltcGwoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIFJlZlB0cjxUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycz4gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZShibG9i
KTsKQEAgLTI4Myw3ICsyODMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPdmVybG9hZAogICAgIHJldHVy
biBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KGdsb2JhbE9i
amVjdCwgaW1wbCk7CiB9CiAKLVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzKiBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjp0b0ltcGwoSlNDOjpKU1Zh
bHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBw
ZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCmlu
ZGV4IDljNzZiYWU0NDk4Y2MyYmQ1MzM4MDdiNTNiODIxZTViOGRjMjQ3YzYuLjQ4MjU2NDIzZTA0
MzhmM2NlOTQyNmY2MzIxN2YxZTYxZTNlYWU5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZN
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycyogdG9JbXBsKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShK
U0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKCk7CiAKQEAg
LTkxLDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3Js
ZCYgd29ybGQsIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKikKIH0KIAogV0VCQ09SRV9FWFBP
UlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCos
IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycyogdG9UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhKU0M6OkpTVmFs
dWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggODY3ZDBjMDg1YzI1
ZTY4N2ViOWM1NzVkNjZhYTQxZmM3YzlkYWZhMy4uNjUzNzBiNTZkZDYxNjExZmRhM2IwYzJkYzZm
ODJjMWM3NmY0Yjg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRl
c3RTZXJpYWxpegogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdG9UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6dG9JbXBsKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4odmFsdWUpKQogICAgICAgICBy
ZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCBhNDhiYzhlMDY5OTNmNDM2NTY3NjAxZTNm
NjBmNDM2NWM4YWJlZGM5Li5lYTAwZGUyMWEyNDhkZjdiODRkNTk0MjVjNWJjMjE1ODQ3N2VkM2Yx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAg
ICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpK
U0NlbGwqKTsKICAgICB+SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKCk7CiAK
QEAgLTk3LDcgKzk4LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJX
b3JsZCYgd29ybGQsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnQKIH0KIAogV0VCQ09SRV9F
WFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCosIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKTsKLVdFQkNPUkVfRVhQT1JU
IFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHRvVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGUyYTkzYWExZjRkZTg2ZGQ5NzUwZWVhYTIzNTlk
NmRiN2ExZTgyYmYuLjBmNmQxYmU2MzdkNmRkMWRiODczMWU2NjQ4OWM4MDZjOWIxZjI1NzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtNTc0LDcgKzU3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1
ZW5jZUFyCiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBWZWN0
b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5h
dGl2ZUFycmF5PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgSlNTZXJpYWxpemVkU2NyaXB0VmFsdWU+
KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmdG9TZXJpYWxpemVkU2NyaXB0VmFsdWUpKSk7Cisg
ICAgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PiBzZXF1ZW5jZUFyZygodG9S
ZWZQdHJOYXRpdmVBcnJheTxTZXJpYWxpemVkU2NyaXB0VmFsdWUsIEpTU2VyaWFsaXplZFNjcmlw
dFZhbHVlPihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgJkpTU2VyaWFsaXplZFNjcmlwdFZhbHVl
Ojp0b0ltcGwpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBKU1ZhbHVl
IHJlc3VsdCA9IGpzTnVtYmVyKGltcGwubWV0aG9kV2l0aFNlcXVlbmNlQXJnKHNlcXVlbmNlQXJn
KSk7CkBAIC02OTcsNyArNjk3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXQKICAgICBUZXN0
VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFZlY3RvcjxSZWZQdHI8VGVzdEV2
ZW50VGFyZ2V0Pj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8VGVzdEV2ZW50VGFy
Z2V0LCBKU1Rlc3RFdmVudFRhcmdldD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZ0b1Rlc3RF
dmVudFRhcmdldCkpKTsKKyAgICBWZWN0b3I8UmVmUHRyPFRlc3RFdmVudFRhcmdldD4+IHNlcXVl
bmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFRlc3RFdmVudFRhcmdldCwgSlNUZXN0RXZlbnRU
YXJnZXQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmSlNUZXN0RXZlbnRUYXJnZXQ6OnRvSW1w
bCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNCb29sZWFuKGltcGwuY2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUoc2Vx
dWVuY2VBcmcpKTsKQEAgLTc2OSw3ICs3NjksNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RUeXBlZGVmcwog
ICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFR5cGVkZWZzPihnbG9iYWxPYmplY3Qs
IGltcGwpOwogfQogCi1UZXN0VHlwZWRlZnMqIHRvVGVzdFR5cGVkZWZzKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKK1Rlc3RUeXBlZGVmcyogSlNUZXN0VHlwZWRlZnM6OnRvSW1wbChKU0M6OkpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5
cGVkZWZzKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBl
ZGVmcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5
cGVkZWZzLmgKaW5kZXggN2U1ZWM4ZGFhY2MyMThmM2VhZmUyYjIyMjA3OWNlMmRmMDRmN2M0YS4u
OTVhZDI3M2QxOGZmMzRjNzNjYmYxOGE5OTliYzI3OTc3NjJhZTYxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZz
LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdFR5cGVkZWZzKiB0b0ltcGwoSlNDOjpKU1ZhbHVlKTsK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RUeXBlZGVmcygp
OwpAQCAtOTMsNyArOTQsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCwgVGVzdFR5cGVkZWZzKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RUeXBl
ZGVmcyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdFR5cGVkZWZzKiB0b1Rlc3RUeXBlZGVmcyhKU0M6
OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCmluZGV4
IGJhNDZkOGNjZDUxNzU0OGQ4ZGZhNTlmN2E0MGEzYWQyYjU5ODZiNDUuLjAxMzRmOTVmYmYyOWUx
ODM2Njk0OGZjOWI5YmNmYzhjZDkzNGZkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcApAQCAtMjI0LDcgKzIy
NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgYXR0cmlidXRlKiBpCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBw
ZXI8SlNhdHRyaWJ1dGU+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLWF0dHJpYnV0ZSogdG9h
dHRyaWJ1dGUoSlNDOjpKU1ZhbHVlIHZhbHVlKQorYXR0cmlidXRlKiBKU2F0dHJpYnV0ZTo6dG9J
bXBsKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNhdHRyaWJ1dGUqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+
aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTYXR0cmlidXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuaAppbmRleCAyOTdhZDI2YjUyNTAyYmI4NGZmNjVhNjY3MGY2Y2E2YzQ0
YWM2NTQxLi41YzgxYzAwMzI2OGQ0YzNkNjY5Zjk1NWNiNWRiN2UwNDQ2YmJjYjgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1
dGUuaApAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAg
c3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOworICAgIHN0YXRpYyBhdHRyaWJ1dGUqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwog
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNhdHRyaWJ1dGUo
KTsKIApAQCAtOTIsNyArOTMsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCwgYXR0cmlidXRlKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIGF0dHJpYnV0
ZSopOwotV0VCQ09SRV9FWFBPUlQgYXR0cmlidXRlKiB0b2F0dHJpYnV0ZShKU0M6OkpTVmFsdWUp
OwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcAppbmRleCBlZDRhNDRiNWYw
MmQ4NDFmNmJmNGRkYWI5ZDg1OWQ5YTFhZDg1MjAzLi5jY2JmNWVkYjJkZmNjN2VjYTUwYTNjODJm
YzA4NDFhM2M1M2I1ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCByZWFkb25seSogaW0KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU3JlYWRvbmx5
PihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1yZWFkb25seSogdG9yZWFkb25seShKU0M6OkpT
VmFsdWUgdmFsdWUpCityZWFkb25seSogSlNyZWFkb25seTo6dG9JbXBsKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNyZWFkb25s
eSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAppbmRl
eCBiNmVmYTRhNjc4NzI4YjA0OWU4ZDNmNDg1MzUzZDQ0NzZkYTVlMGY4Li40ZWE2NjUyZWIwZjFm
ZjY5ZmQ0OGFhNWI1NjY3YTRjNjI2YTQwMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmgKQEAgLTM4LDYgKzM4LDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBn
ZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMg
cmVhZG9ubHkqIHRvSW1wbChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3ko
SlNDOjpKU0NlbGwqKTsKICAgICB+SlNyZWFkb25seSgpOwogCkBAIC05MSw3ICs5Miw2IEBAIGlu
bGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCByZWFkb25s
eSopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqLCByZWFkb25seSopOwotV0VCQ09SRV9FWFBPUlQgcmVhZG9u
bHkqIHRvcmVhZG9ubHkoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaAppbmRleCAxZTM3ZWVjY2ZmYTg3MDI5OTBkN2Y3NDczZGUwZWFhMmVi
OTY4OWI3Li5lOTIwYzFlMTMzNDU5MDE2ZDYyZTg3MjAzOWE0MDdlOWQ3OWY1ZTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmgKQEAgLTY4OSw2ICs2ODksMjEgQEAgc3RydWN0IEVsZW1lbnRUeXBlQ2FzdFRy
YWl0czxFeHBlY3RlZFR5cGUsIEV4cGVjdGVkVHlwZT4gewogICAgIHN0YXRpYyBib29sIGlzKEV4
cGVjdGVkVHlwZSYpIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKKy8vIERvd25jYXN0aW5nIGZ1bmN0
aW9ucyBmb3IgRWxlbWVudCB0eXBlcy4KK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5h
bWUgU291cmNlPgoraW5saW5lIHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25z
dDxTb3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0JiwgVGFyZ2V0Jj46OnR5cGUgZG93bmNhc3Qo
U291cmNlJiBzb3VyY2UpCit7CisgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPFRh
cmdldCwgU291cmNlPjo6dmFsdWUsICJVbm5lY2Vzc2FyeSBjYXN0Iik7CisgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXNFbGVtZW50T2ZUeXBlPGNvbnN0IFRhcmdldD4oc291
cmNlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8
c3RkOjppc19jb25zdDxTb3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0JiwgVGFyZ2V0Jj46OnR5
cGU+KHNvdXJjZSk7Cit9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJj
ZT4gaW5saW5lIHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxTb3VyY2U+
Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0KiwgVGFyZ2V0Kj46OnR5cGUgZG93bmNhc3QoU291cmNlKiBz
b3VyY2UpCit7CisgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPFRhcmdldCwgU291
cmNlPjo6dmFsdWUsICJVbm5lY2Vzc2FyeSBjYXN0Iik7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oIXNvdXJjZSB8fCBpc0VsZW1lbnRPZlR5cGU8Y29uc3QgVGFyZ2V0Pigq
c291cmNlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9u
YWw8c3RkOjppc19jb25zdDxTb3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0KiwgVGFyZ2V0Kj46
OnR5cGU+KHNvdXJjZSk7Cit9CisKIGlubGluZSBib29sIE5vZGU6Omhhc0F0dHJpYnV0ZXMoKSBj
b25zdAogewogICAgIHJldHVybiBpc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KHRoaXMpLT5o
YXNBdHRyaWJ1dGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1l
cy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDM4OWMyYjhhM2I4
ZTJmNzg2YWMxM2U4ZTQyMThjYjk2YzNmYjhmODguLmNhODM5ZTk4MzAyOGFlNmZmMTM5MjNkMTJk
OTg3NDViOGQyMzE5YjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVz
LnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC02MzMsNiArNjMz
LDcgQEAgc3ViIHByaW50VHlwZUhlbHBlcnMKICAgICAgICAgfQogCiAgICAgICAgIG15ICRjbGFz
cyA9ICRwYXJzZWRUYWdzeyRuYW1lfXtpbnRlcmZhY2VOYW1lfTsKKyAgICAgICAgIyBGSVhNRTog
UmVuYW1lIHRoZXNlIGhlbHBlcnMgdG8gaXM8KkVsZW1lbnQ+KCkuCiAgICAgICAgIG15ICRjaGVj
a0hlbHBlciA9ICJpcyRjbGFzcyI7CiAKICAgICAgICAgcHJpbnQgRiA8PEVORApAQCAtNjYzLDYg
KzY2NCwxMCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnVHlwZT4KIHN0cnVjdCBFbGVtZW50VHlw
ZUNhc3RUcmFpdHM8Y29uc3QgJGNsYXNzLCBBcmdUeXBlPiB7CiAgICAgc3RhdGljIGJvb2wgaXMo
QXJnVHlwZSYgbm9kZSkgeyByZXR1cm4gJGNoZWNrSGVscGVyKG5vZGUpOyB9CiB9OworCisvLyBG
SVhNRTogUmVtb3ZlIHRoZXNlIG1hY3JvcyBvbmNlIHRoZSBjb2RlIGhhcyBiZWVuIHBvcnRlZCB0
byB1c2luZworLy8gZG93bmNhc3Q8KkVsZW1lbnQ+KCkuCisjZGVmaW5lIHRvJGNsYXNzKHgpIFdl
YkNvcmU6OmRvd25jYXN0PFdlYkNvcmU6OiRjbGFzcz4oeCkKIEVORAogICAgICAgICA7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA0NjY5MTYzMjVjZWQ3NmM2
YmM5N2Y3ODBjN2M1ODYxNTFmZGE5MzZhLi4yMzJiMDI1NjA0M2VhNTZiODVjZDE2ODFmNmQ1ODBi
OTE1YjBmOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC0x
NTUsOCArMTU1LDYgQEAgYm9vbCBpc0VudGVyS2V5S2V5ZG93bkV2ZW50KEV2ZW50Kik7CiBib29s
IGlzTGlua0NsaWNrKEV2ZW50Kik7CiBib29sIHNob3VsZFByb2hpYml0TGlua3MoRWxlbWVudCop
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEFuY2hvckVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxBbmNob3JFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBcmVhRWxlbWVudC5oCmluZGV4IGFjMDdlOTg2Y2NjNDhhNWFmNGEyMDMzMTE2NGYxMWVk
ZGY5OGExZTUuLjhkYjc1ODk2Y2UzNjAzMWE0MzIxMDUzODVmMzNiODM4M2RjZmNlNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaApAQCAtNzEsOCArNzEsNiBAQCBwcml2YXRl
OgogICAgIFNoYXBlIG1fc2hhcGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEFyZWFFbGVt
ZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRp
b0VsZW1lbnQuaAppbmRleCAzMGQyYThmMzllY2FkYjg4ZjcwMTgyNjE4NDMzYmEwZWRlMGY4NTIz
Li43ZTg2NThjODcyMzAyODU1NGFmNTNmZTY2MzJkYzEzMDVmYTc5ZjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaApAQCAtNDMsOCArNDMsNiBAQCBwcml2YXRlOgogICAg
IEhUTUxBdWRpb0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCk7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEF1ZGlvRWxlbWVudCkKLQogfSAvL25hbWVzcGFj
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCmluZGV4IDQwNTRl
MTc1ODZjMjg4MmEyMmQ4NWVmN2RjNDIwZjUxOWNlMDA0NzguLmI3OTlmMWZhMTg0OTk5NzJmYjAy
Y2I2NTY2NGE1NzEyYWQ2ODYyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJhc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQu
aApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJv
bShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEJh
c2VFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5oCmluZGV4IDAxN2VmYzIyY2I3NmY2YzVlNzkyNjRkZDJlOWI1ZDIwM2Y5
MTViODIuLjBkNGQ2MGE1NjVhNmIyYTE5OTZjODY4MzY2MjgxZjhjNDc0YTJlMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaApAQCAtODEsOCArODEsNiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8
VVJMPiYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxCb2R5RWxl
bWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuaAppbmRleCA4ODM3ZDA4MjczMjVkNDNjYjRkNjI5YWE4ZGY2YmVkN2YyZDE1
OTQ1Li44YWJkZTc3ZmQ5OWVkNjZjMzZhOWEzOWE0MWE3MDZkNzg0MjRlMjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0xODAsOCArMTgwLDYgQEAgcHJpdmF0
ZToKICAgICBtdXRhYmxlIFJlZlB0cjxJbWFnZT4gbV9jb3BpZWRJbWFnZTsgLy8gRklYTUU6IFRo
aXMgaXMgdGVtcG9yYXJ5IGZvciBwbGF0Zm9ybXMgdGhhdCBoYXZlIHRvIGNvcHkgdGhlIGltYWdl
IGJ1ZmZlciB0byByZW5kZXIgKGFuZCBmb3IgQ1NTQ2FudmFzVmFsdWUpLgogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxDYW52YXNFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaAppbmRleCA2N2ZiMWRiOGQ3
NzY4MjFhYzYxN2MxMGRiMGMzZmM5OTBkNGM1NjY3Li5jZjFkM2ZmNjIxYzNmYTIwOGVkZTY4YjNh
YmU5YTU4YmM4MDUyOTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRh
TGlzdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1l
bnQuaApAQCAtNTAsOCArNTAsNiBAQCBwcml2YXRlOgogICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
SFRNTERhdGFMaXN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmIC8v
IEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWls
c0VsZW1lbnQuaAppbmRleCBjNDFmNmY0NzFhMDQ2MzBhNzljOWY2ZjQzOTI0ZTYyZTY0OThlN2M1
Li4wNzNjZDU5NGQzMDcwODEyYjliNGFlNjRlODIwZTM1Yjk2YmM3NmIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faXNPcGVuOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEZXRhaWxzRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTERldGFpbHNF
bGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAppbmRleCAxYjVkMjBhZDg4
MjNmZjFmY2FjMzFlZGViNjg4ZTRiZThiODgyNDRhLi5mZjgxYjliODJjYWJmNzZmMWRlMjA0N2Q0
ZjU4MTFjNWRhYzViZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCkBAIC00
MCw4ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKEhUTUxEaXZFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBIVE1MRGl2RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5o
CmluZGV4IGQ5ZmQ0NTIzZTQyMjM1Yjk3MWRkMTRkNGY4MzFlMmI5ZjQ2YWVkYzAuLmNkZDNiZWNm
YmJhN2ViMGRkNzJiMzBiNTk3ODliZWVkNGJiZWQ1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVtYmVkRWxlbWVudC5oCkBAIC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJh
bWV0ZXJzRm9yUGx1Z2luKFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0b3I8U3RyaW5n
PiYgcGFyYW1WYWx1ZXMpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxFbWJlZEVsZW1lbnQp
Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVs
ZFNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5o
CmluZGV4IDdjMTNlYTBkNTNhM2I5NGZjZGQzNWQyYzY3ODEzNzYyYjVkMmRjYTcuLjNhMDIyMzBk
MTE4MjM4N2Y3NGViMzE4YzNlOWFlOWRjMDdiYmI4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZpZWxkU2V0RWxlbWVudC5oCkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0
YWJsZSB1aW50NjRfdCBtX2RvY3VtZW50VmVyc2lvbjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MRmllbGRTZXRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IGM0NjlkY2VmOGFhNTg2NzI4NDFjMDI4NDEw
YjllMGU2NmI3NmYyODAuLmZjM2RiOWQ5NDhkMmFkNGIwNDcxZjZkYmEzNWJmNDQ2YzQ3MDE5N2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw2IEBA
IHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRm9ybUVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxGb3JtRWxlbWVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IDU1NzljOTg0ODg0Mzg1
NTAyNTJlYmMyYzg3ZWRmNGQ4NzExZjdlZWMuLjZlNGZiMGZjOTZiZWY2N2I3NzliNmE3YmI5YmMx
ZDFmNDg2ZWVhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCkBAIC01
NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVyU2V0OwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxGcmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEhUTUxGcmFtZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZVNldEVsZW1lbnQuaAppbmRleCA4MGU3ZjJhZmUyZmIzMDUyZmI5YzY2ODU0ODJiZDcw
NzZlMzhjOGU0Li4yNzI5MzhjZWQyNzgwODJjODAwYmExZDAyODQ3MjdmNTczZmM4OTNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAtMTAwLDggKzEwMCw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25vcmVzaXplOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxGcmFtZVNldEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEhUTUxGcmFtZVNldEVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSHRtbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50
LmgKaW5kZXggYjk2NmM4NzBiODEyNzkxNmY4YjMyYWQ1MDRjOWZjYmU5MzhmMWIwMC4uMGY4M2I5
YTRlYzAzNzkxNGNmOTYzYjBiZjE2MGM1OTJjMTI3MTFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxIdG1sRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKEhUTUxIdG1sRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggOWFlMTkz
MjYwYWY0NWJjMDJhMGI1NWFjMGViYWY1ZjE2NzhlMmY2NC4uZjBlYmNlYzA1MTMzY2Y4YmIwNTdl
YTVhZmQwMmFlODIwOGJkZTk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SUZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1l
bnQuaApAQCAtNDcsOCArNDcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
b3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElGcmFtZUVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxJRnJhbWVFbGVtZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggZmQ0NDAxODk4ZDM3M2RmNmIx
MGVmZWZjNDRiMzM5OTdlZWFlZDU3Zi4uOTlmZTI1YjYxNjNiNzYzMDlmMDY4ZjJkYTYzMWM1ZDk0
OThlMmQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAgLTE0Myw4
ICsxNDMsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElt
YWdlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZTM4ODViY2MzMjFhMTk3ZDlmNTMwZTI1MmRhNTIxODg5
Mjc5MDA1ZC4uZDdhNjVjZDZkMzE2MDI1YmY4Y2VkOTdkOTNkYTUwOTNiNzk5MWU4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTQ0OCw3ICs0NDgsNSBAQCBwcml2
YXRlOgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTElucHV0RWxlbWVudCkKLQog
fSAvL25hbWVzcGFjZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5o
CmluZGV4IGFlYTUyMzdhODUxM2ZhYmMyMjkyYmNkZjRhNWYwODAzMWIwOGE0NDMuLmNhOGVlNjBi
MDU4ZGVjMjZjMjhmM2JmYmU1YWFhZDc1ZjczNTRiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExhYmVsRWxlbWVudC5oCkBAIC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbikg
b3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTExhYmVsRWxlbWVudCkKLQogfSAv
L25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExlZ2VuZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQu
aAppbmRleCAyNDU2OGJkYTQwM2MyZDNiNThmNTEwNzIwMDY3YmEyZjliNWU1ZDVkLi45MTA0YWJk
Njg4NjUxZjNlNTFiNjMwMjI4MWMwMzE2MTc5OWQ5NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGVnZW5kRWxlbWVudC5oCkBAIC00NSw4ICs0NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTExlZ2VuZEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCA0OTcwMWY4NmZlNGU3
ZTQzYjExYzI0YmQ3NzU5NWE3MGM0ZjZmYzgzLi41Y2FjYjc3ZDJhZWE1MTVjMGQ1OWJhNTQ2YTQ3
NmI0YThiNjQ3MzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTEz
Nyw4ICsxMzcsNiBAQCBwcml2YXRlOgogICAgIFBlbmRpbmdTaGVldFR5cGUgbV9wZW5kaW5nU2hl
ZXRUeXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxMaW5rRWxlbWVudCkKLQogfSAvL25h
bWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1h
cEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaAppbmRleCA5
YWU0NDY3Mjg1MmIxMTQwMzA1ODc3YWY5MjYyZDRiYzMxNmUzZGIyLi42MTdhYTEzNjRmYzIyY2Y0
NDA3ODgxOTA1YmJiNGRiMDY5MjFhMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNYXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVu
dC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTWFwRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2Vz
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKaW5kZXgg
ZDEwOTgyYjFkYWNlYjM2YTEyNzRmZmVlYTRiZTE4ZWExZGY5M2EwOS4uOTYzOWU5NjM2MjQyMjRi
ODgzOGQ5YjIzMDc1OTc2NTc0MjgzMDVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWFycXVlZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJx
dWVlRWxlbWVudC5oCkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyTWFycXVl
ZSogcmVuZGVyTWFycXVlZSgpIGNvbnN0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNYXJx
dWVlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTE1h
cnF1ZWVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDI1
ZDFhNzcxYWFkYTU5OTM3NjlhNzU5ZTZhMWI2YTA2Nzc1YWEzYTguLjhiZTZkZGE3MDgyMzI0NmQ3
M2E4YmU0OWFmMDNiOWViMTBmOTNhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1l
bnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2VzcygpOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNZXRhRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVy
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKaW5kZXgg
OWQ4MjE3MmZiYzI0ZjdlMTdjODA4NDIzODc1OGQ0NmNhYTc5ZmQyNi4uYTI4Y2I0NDk2ZTZiMGUw
YTZmZWI5NDlhNjQ1MTE2MjJlZTMwMGU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWV0ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmgKQEAgLTgxLDggKzgxLDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWV0ZXJWYWx1
ZUVsZW1lbnQ+IG1fdmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1ldGVyRWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0
RWxlbWVudC5oCmluZGV4IDk4OWQ3OTU5MjVmMDhlZDIwZTVjMzYxZTg4YzZiNWUzM2ZkNGU1YTku
LjFmMGFhZjE0ZDEyY2RkOTE2ZTYyNmE5YzE5YWViZGE3MjNiZWE0NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3Nob3VsZFJlY2FsY3VsYXRlSXRlbUNvdW50IDogMTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MT0xpc3RFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IDJjNDkxOTMzNjM3ZTE1NzVmZGJm
ZGI2MDIwOWVkNWY4Yzg4ZjVkNzkuLmY4ZTdhNmUwMjVkMWU3ZjFkZmFmYmU1YjVjNTE2MTk2ZjAw
ODE3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKQEAgLTEwMyw4
ICsxMDMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VGYWxsYmFja0NvbnRlbnQgOiAxOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPYmplY3RFbGVtZW50KQotCiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRleCA2ODljZTRiODJm
ZjJkNGI3MzY1YmNiMDMzOTZhNzQ3OTNhM2YzZGI0Li41N2EzNzQyOTc1YzNkYjEzNjdmZjgyODgy
YTMwNzY0MDM2MmY5MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0
aW9ucygpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRHcm91cEVsZW1lbnQpCi0KIH0g
Ly9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmgKaW5kZXggNjQ3ZDAxZTMwNDJiMDhkODQ4ZWZkMTkxNGJmNzkwNTNiYWFjYmNlZi4uNjU0ZWYx
MTgzODA4YzQ5MzY5NDBlOGI2MWVlM2UzOTQ5YjQ4YWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtODcsOCArODcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc1NlbGVjdGVkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRpb25FbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBhcmFtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVt
ZW50LmgKaW5kZXggNGU4MWQyZGE3OWM4MThlNzZiMjI3NGViNWRmZGNmZGZlNzViY2IyYi4uZWQ5
YjRlYjBiYjgxOWIyNDBmZjk5M2Y2YWUxYmVjZGUyN2JhMWNmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGFyYW1FbGVtZW50LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBj
b25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUGFyYW1FbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuaAppbmRleCBlZWRiODgwN2IxNjQwMjczM2NmOWNkNzViNmM1MGIz
YjUwYzM4ODQyLi5jN2ZkOTU1MWE1OGE0Mzk5ZmU3YzFkZGVkZGYzODNjZWVjYWQ4NmMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaApAQCAtNjcsOCArNjcsNiBA
QCBwcml2YXRlOgogICAgIFByb2dyZXNzVmFsdWVFbGVtZW50KiBtX3ZhbHVlOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxQcm9ncmVzc0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGI4NTAxYjQ3
Mzc2YTZkM2VjZTM2NDhjZjM1Yjg4MTdmNWM4MDY2MDMuLjY4ZDk2YTNhNjk5MjczNWExZjNiMmNk
YjM1MzI4MjliNjIxZWI1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50
LmgKQEAgLTY3LDggKzY3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxl
bWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIG92ZXJyaWRl
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTY3JpcHRFbGVtZW50KQotCiB9IC8vbmFtZXNw
YWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4
IGZhOWNiZTQ3OTZmOGM1NzFjMjNlMjZiZTM3OTU4YTBiMTc4Nzc5YTAuLjI3ZmVmZDYwYjRmY2Ri
YWMxMzkxZWQ2ZTg5YzlhOGFmZjUzNjk2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmgKQEAgLTIxMiw4ICsyMTIsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgYm9v
bCBtX3Nob3VsZFJlY2FsY0xpc3RJdGVtczsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU2Vs
ZWN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTb3VyY2VFbGVtZW50LmgKaW5kZXggNTU1ODc1Y2Q0MDE4ZGJiMmZhYTY0ZTdkNTY1YWIx
MDgxYWU0ZmVjOC4uNTIyZDc0MzY4MmRkYTk2ZmM5NzdkNjExOTljYzcxZjU0MzljOWY0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaApAQCAtNTcsOCArNTcsNiBAQCBw
cml2YXRlOgogICAgIFRpbWVyPEhUTUxTb3VyY2VFbGVtZW50PiBtX2Vycm9yRXZlbnRUaW1lcjsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU291cmNlRWxlbWVudCkKLQogfSAvL25hbWVzcGFj
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKaW5kZXggOTk1
N2JhNTA3MDI4MjFhYmFlZjY4ZDA3MjJmZTdkNTZmMTY0NDM4MC4uOTFmMGI3Y2Q1OGQ0NjY4OGJl
Y2Y2NGY0NzAwNTAwMDQzZTIzYjg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3R5bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVt
ZW50LmgKQEAgLTcwLDggKzcwLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbG9hZGVkU2hlZXQ7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFN0eWxlRWxlbWVudCkKLQogfSAvL25hbWVzcGFj
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCmluZGV4
IGZiYWJjZGU1MjU3Y2M2MjMzM2UwYjMyMWI3MTAzNWJmYmI4MGU4ODUuLmJjMjI4NDIwOTkyN2U2
NDkzZmNkMmRkYjIyNGZhMGZiYjdkOTI5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3Vt
bWFyeUVsZW1lbnQuaApAQCAtNDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9y
dHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1t
YXJ5RWxlbWVudCkKLQogfQogCiAjZW5kaWYgLy8gSFRNTFN1bW1hcnlFbGVtZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAppbmRleCBmMDY0ZTI4
YTk4MDk5NDQ2OGFiMjNjOWY5ZTE3YjhmMTU1MDU5ZjQ3Li45MDRjMzI3YzIwY2MwYTYyZmJiM2Nk
ZGUxNDQyMDg5NzkwMDE4ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVD
YXB0aW9uRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJy
aWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50
LmgKaW5kZXggZTU5NmFiNDIwYTA2MDkzNDczMGU1ZGYxZGZmNzYzMjFmYTZkYmU4MS4uODczZGYy
NWMxOTY5MTA2ZGFmZDM5NmU4OGI4ZGFlNTRkMzg0ZTI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVFbGVtZW50LmgKQEAgLTEwMSw4ICsxMDEsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxTdHlsZVByb3BlcnRpZXM+IG1fc2hhcmVkQ2VsbFN0eWxlOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxUYWJsZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCmluZGV4IDMzOGI4Nzk5NzAyNTdkMGU4
YWE5NWE5YzFlM2E2ZTEwM2MzZTEzZjMuLmM0YjBmNzczOWNmYjJjMzQ5Y2QzNDdlYjg1ZmEwZjE5
ZWM3ZTE3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCkBA
IC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlUm93RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGFi
bGVSb3dFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKaW5kZXggZDdmZjk1MWI3YzhkMjI4NGE4MjFhNmYy
N2IxYTgyNDcyMWZiYjUzNS4uYzgxZjdhNjZjNDgwNGE1ZjdmNWJkNzczM2ExZjA4NmExODc0NmFh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTU2LDgg
KzU2LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJlZlB0cjxUZW1wbGF0ZUNvbnRlbnREb2N1
bWVudEZyYWdtZW50PiBtX2NvbnRlbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRlbXBs
YXRlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5oCmluZGV4IGE4MDFmOTliOWZjZTdkNTFiNzYzNDgxMTA1NDRhNGFkMGE1MDI2ZTIuLmJlZGQw
YTFmNzA4NWI2NjlhOGY4M2UxODg2OTQ0OWU0ZDZlMDI3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC0xMjYsOCArMTI2LDYgQEAgcHJpdmF0ZToKICAg
ICBtdXRhYmxlIGJvb2wgbV93YXNNb2RpZmllZEJ5VXNlcjsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhIVE1MVGV4dEFyZWFFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAppbmRleCBlYmUxZDNjYzUwOGI2OGZjODdmNjM0
OGE3MzE2YzhjNTJiZThkM2EwLi41ZGUxZWI1NGZlOGUwM2RhNzMwNzU2YmY2OTc1ZDgyNTZlNmVl
YjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaApAQCAtNDYsOCArNDYs
NiBAQCBwcml2YXRlOgogICAgIFN0cmluZ1dpdGhEaXJlY3Rpb24gbV90aXRsZTsKIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhIVE1MVGl0bGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCA4MzE3MTdiNGJkNmJi
OTJiOGQ0MjlkMWU5Y2QxOGJiZTIyYjdjZWRjLi41MjZkYzAzY2MxODViZjdlMjg3YjUwZmQwZGFh
ODE5MmMxODE3YzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAt
OTQsOCArOTQsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPEhUTUxUcmFja0VsZW1lbnQ+IG1fbG9h
ZFRpbWVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUcmFja0VsZW1lbnQpCi0KIH0KIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGM0ZDRmOWQw
MWNkMWNmMTFiNzc3YzJhOGIwZjg1ZGY1OWJjYWJmMjQuLjc2ZjAxNjU2ZTk5OWU1M2M5ZTYwYmI3
NzU0YmUxYTUwYjE5MTFmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5o
CkBAIC0xMDIsOCArMTAyLDYgQEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0
UG9zdGVyVVJMOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxWaWRlb0VsZW1lbnQpCi0KIH0g
Ly9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcAppbmRleCBmZDdlOTIzODg0NGRiOGE3ZmJlNDg3NTgxODRhYzZkNTFm
MDI3YzVmLi4zNzg2NTU1YjI4YWMxOWM0Y2ZlOTZhNTllNTI0OGEzNmIwYTgxNjdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTIwMTAs
NyArMjAxMCw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50OjpzY3JpcHRWYWx1ZUFzTm9kZShE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSB2YWx1ZSkKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkg
fHwgdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJu
IHRvTm9kZSh2YWx1ZS5qc1ZhbHVlKCkpOworICAgIHJldHVybiBKU05vZGU6OnRvSW1wbCh2YWx1
ZS5qc1ZhbHVlKCkpOwogfQogCiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBJbnNwZWN0b3JET01B
Z2VudDo6bm9kZUFzU2NyaXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2Rl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4
IGRjNjljMTFiMTRlZDhjNmZmNDQzNmE4NzBkZGU4NDRjMTVlMDM5YmMuLmVlOTczMzUwYjcyZWMz
YTFiODczMWIyNTFjOTQ4NWY3ZGI0Mzc5MTkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNSYWRpY2FsVmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoTWF0aE1MTWVuY2xv
c2VFbGVtZW50KQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCmluZGV4IGFjYjJmMzUwYTczN2QzNmNkODdi
NTZkMjMwYThhZDMxZTIxY2RmOGEuLmM2M2UzNDM3MzUxMDg3NThhZmM4ZWU5ZTMxY2VmYjQyZGEw
MGIyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKQEAg
LTM4LDggKzM4LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhEZWZFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCmluZGV4IDUwOTVhYjUzYTU1NmYxZWUx
MjI3NGUxYzNkMThmZTI2NjdhZGUzZTUuLjZiZTlmNzUyYzEwNWI4NmE4NGIxNzkxYTM2NjVlZTdi
ODJjYjI3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKQEAgLTU1
LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVT
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhFbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FsdEdseXBoSXRlbUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0
ZW1FbGVtZW50LmgKaW5kZXggODI0OWNiODBiM2QwNmNmMzU5N2ZkMzhkMzgwMzkyNWQyYmZhMDhj
NS4uYzdhZmU2OTVjZTU3MzQ5NDIyNWQ5OTY2ZjhjNGJkYTY1NWQzMWM5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNW
R0FsdEdseXBoSXRlbUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCmluZGV4IDM2Njc4MTRhMzIxOTBkMjIyNzhmODc3
NGIxMzczZGQ2YTM2MzA3YzkuLjQxN2Q1ZjI3NWU2NzY4NzZhNjI0ZGE3Y2U5MjM3NGVjOTc3YjNl
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCkBA
IC03MCw4ICs3MCw2IEBAIHByaXZhdGU6CiAgICAgUGF0aCBtX3BhdGg7CiAgICAgUGF0aCBtX2Fu
aW1hdGlvblBhdGg7CiB9OwotCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQpCiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKaW5kZXggYmRjZmY3MGRlNTE4ZDAwM2Iz
YzU4YzZjZmU5Y2U5MWQzZTY5ZWE5YS4uYjFhNDRlYWViMDU3MjBlN2Y2NDhjN2JjYzgyN2Y0YTVm
MGUzYTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1F
bGVtZW50LmgKQEAgLTQ3LDggKzQ3LDYgQEAgcHJpdmF0ZToKICAgICBTVkdUcmFuc2Zvcm06OlNW
R1RyYW5zZm9ybVR5cGUgbV90eXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBT
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ2lyY2xlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuaAppbmRleCAwNzlmYTk5ZmNmOTgzZmNkNDVmOTNhNzYzMWQ5YThkN2NlNTY2NzhhLi5lYzE4
MmRiM2MyZDJiYzcxYjQ0OTQ4NDkyYjFkNDdjNmNlNjVhZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDaXJjbGVFbGVtZW50LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVD
TEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ2lyY2xl
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHQ2lyY2xl
RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKaW5kZXggOGZk
ZWIwMmI2OTRlNTZjM2JjMzYwNjIwYzEwNDlkMDAwMWMxNTU5Ny4uOTM4Y2ZiNDVkOTJlNDIwMmE0
NjUyNTRmMzlkNTZlZTQ0OWJhZmEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NsaXBQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuaApAQCAtNTYsOCArNTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1B
VEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDbGlwUGF0aEVsZW1lbnQp
Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAppbmRleCBh
NTMwMWU0NjIyZmE1NmY5MmEwN2JjNDIyYTg1NTljM2I1MDQ4MDdlLi5lYTIyM2U4YTRiZGFmYWEy
YTI5YjhmMGVjOTQ5N2MwMzg0ZmE1YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQ3Vyc29yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVt
ZW50LmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFNWR0VsZW1lbnQq
PiBtX2NsaWVudHM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ3Vyc29yRWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlw
c2VFbGVtZW50LmgKaW5kZXggZDZiMjBmNjJiMmM1NzVmZmNmZjIzNDAzMDk3ZjM0NmUxZDYzMzM1
MS4uNWI5ZjkyYzMwMWRjZDljYjFkNzJlMjkxNDFkNTAzNDNiOGM0NGJjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAg
ICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHRWxsaXBzZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmgKaW5kZXggNzk5
ZjZkNWY5YTc0NzRiYzgyZTU3NmFjYTMzZDRiN2YwNDZlMTliNS4uNjBlYTQ0MzZlYWMzYzYwNTk4
YWFjYzQ0NTFkNWUxMTg4MjAxYmViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURp
c3RhbnRMaWdodEVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQpCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVGdW5jQUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxl
bWVudC5oCmluZGV4IDMxZWJiNGY3OGNjNGIzMmUxMmE3NzliODI3NTI5NDBjMTUzMDRiOWMuLmE0
ZTZhZDVhZjQzYzE0MDJiZDBhZmQ2YjY5MjBmOTQ2MmM4MjBkNzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZH
RkVGdW5jQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCmluZGV4IDM1
YmM0NDg1ODI1OGNlMmRhN2M2MDE1NTM4MjJmOTBiYjUzY2I2MzguLmFmNDlkNmY3ZGRmNTE1OWVm
ODY3MWY5Y2EzYzJmNWI4NDJlMGJkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNCRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxl
bWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jQkVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHRkVGdW5jQkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCmluZGV4IDM5ODU3ZWRhMTA1NGQ1OTI1
MmM3NzNkYmFmMDFjODk4OGYyZDRlYWYuLjFhZmE0MzI0MTkwODkxZTkyZjRmNzhkMzkwNTFlZTdk
ZjEyOTM4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCkBAIC0zMyw4
ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jR0VsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNSRWxlbWVudC5oCmluZGV4IDllNzMyN2M3MzMzNDEwZDM3N2Y5ZTJkMWYxZmEzMzI0
NDczOGU2YmIuLmIwZDBlYjUxYTBmNjY0MDZkZmMyYmNjZDJmZDZlMjVhMGJhZjBlMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZh
dGU6CiAgICAgU1ZHRkVGdW5jUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jUkVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50LmgKaW5kZXggNTE1OTdlYjU3OWY3MmNmNmMzZWFhMjliNDc4MzIxZjIxMDZkMDEw
Zi4uNzIzM2YyMzRlZGVkNjY1OGEwZjNlNjMyZjY2MzIzYWJkZWZmZWQ1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2
YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhTVkdGRU1lcmdlTm9kZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaApp
bmRleCBiNzAxYmU1OTNiOTdjZDYxYWU5Nzc1N2M5NjQ5MzNhOGViY2ZlYWNmLi4zNDU3OTI0ZmJk
NjUwYTg1MjEyOGZiYTE2ZmQ3OTc0NzU5NjEyNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVBvaW50TGlnaHRFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVQb2ludExpZ2h0RWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNw
b3RMaWdodEVsZW1lbnQuaAppbmRleCA4MDM5YWYyZjE1MGUwY2U3ZjBkZTcwZDg5Y2RlYjgwYjc3
OTBmOTNlLi5mZjZiNDhjNWVjMWI0NWU3NjViYzkzMGU4NmFkNDQyZjFkYTYxNmE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCkBAIC0zNCw4ICszNCw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBsaWdodFNvdXJj
ZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFU3BvdExpZ2h0
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDhlYTczZmI2NjE2MmNhZDc5Mzk5MjYxY2RlN2Y3
ZWI4MzlmMjQzMmYuLjE5MzllMzE3ZjdmMDA0ZDA2ZDhkNDdlNDIyNmI5ZjBhMGQzYzNkODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNzUsOCArNzUsNiBAQCBwcml2
YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhTVkdGaWx0ZXJFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEVsZW1lbnQuaAppbmRleCA4ZTQyNzRkZDBjYjNjM2Q1ODA1MWI3ZTdjYmViMDliNzdjZmE5
MjY5Li5lYjVjNDZlMDRjZTUyNGZmODAwZDg1NmRiODNiMDlkMjY4ODU5MTQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEVsZW1lbnQuaApAQCAtMTAyLDggKzEwMiw2IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzR2x5cGhDYWNoZVZhbGlkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRF
bGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZH
X0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCmluZGV4IDZhMjEx
NmE5NWJmODA0NTRkOGM3MjczOWI3ZTY4ZTNmOGFiODJhMjMuLmRjZDAxZjI0YTIzMDJhZDc3NTc5
ZjYyN2YyMGE0YjFmZDE3MGVmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVt
ZW50LmgKQEAgLTY2LDggKzY2LDYgQEAgcHJpdmF0ZToKICAgICBTVkdGb250RWxlbWVudCogbV9m
b250RWxlbWVudDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZUVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAppbmRleCAzZjI1NDQ1
ZmFhYjY0ODE1N2Q4MGU4MjM3NTFiMTUyMzc4MTA5YzIyLi5jNjg1ZjhhYzQzMWY5Mjk0MGVjYTQz
OTAwZjAyNWI0M2UyZGJjNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5h
bWVFbGVtZW50LmgKQEAgLTM5LDggKzM5LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZh
bHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VOYW1lRWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAppbmRleCAzYjA5MTRjMTJm
M2Q5YTk5MmNmNTE0YzFiNDYxMzAwNzJlNTI1MWVjLi5iYTVhNjQ0NmJiZTFhZDFjZjM3OTY1NjBl
M2E3ZThmNjk5MzMyN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VTcmNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxl
bWVudC5oCkBAIC00MCw4ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlU3JjRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAppbmRleCAxODlhNzg5NWFjM2QzNTFj
ZTNkM2I2Y2I0MmRiYTc5NTM0NjY1M2M0Li4zNTBmMWZkMWEzYWMyZGJkOTZhZjAxN2I2ODAzYjlh
YmI5N2I0NTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5o
CkBAIC01MCw4ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkRm9udD4gbV9jYWNoZWRGb250OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNl
VXJpRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LmgKaW5kZXggNzViYjc0YjdlMjcxMGIzYjA5NzkxYjkxZDFiMDIxYjUxMDYyMmYwYy4uYWI0ZDFh
ZmM2YmE5ZmRiMDY4M2E0ODk3ODZiYTUxNzdkMTgwZTIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAgLTU4LDggKzU4LDYgQEAgcHJpdmF0ZToK
ICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKaW5kZXggN2I3ZDM4YTEwZmE1
NDBhNWIzNTVlM2FhM2E4YjIwZDI0N2Y0NjhjMy4uNDAwOWZiNjYyMzI2NTNlZjgxMWM3MzlkZmFl
N2I2Y2I3YTE1MGJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaApAQCAtNTcs
OCArNTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUdseXBoQ2FjaGUoKTsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R2x5cGhSZWZFbGVtZW50LmgKaW5kZXggNmQ4Y2FjN2ViNzdmYzJmOWYwMjM3OTU3M2I2ZDYxODdm
NDYzNDUzMy4uNDY0ZmVlY2UzMWMyODc1NWUxZTJhMzhiOTMxNjY4NDNkYTdjMzI3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaApAQCAtNjEsOCArNjEsNiBAQCBwcml2
YXRlOgogICAgIGZsb2F0IG1fZHk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHR2x5cGhSZWZF
bGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0hLZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCmlu
ZGV4IGU1ZDhiNzhmZDM4M2M4NDMzZWE2ZWQ0NDdkODgyNTViODMwMDc4N2EuLjFjMTllMDU5Yjdk
YTVkZjYxYzFjNjk2NDQ0OTA0YmM2YjE4Y2FiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdIS2VybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5F
bGVtZW50LmgKQEAgLTQyLDggKzQyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHSEtlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ltYWdlRWxlbWVudC5oCmluZGV4IDFhMzYxYzVjODNlMjI3NzM1Njg3NTA2ZDgyNmQzN2U3
OTAyOWJkYjcuLjE3Njc2MWRhOWViYWQwY2U0ZTE2Njc5NDA3OGM1NzgxZWZkOTZiMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToK
ICAgICBTVkdJbWFnZUxvYWRlciBtX2ltYWdlTG9hZGVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KFNWR0ltYWdlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKaW5kZXggNjRlNzg2MzY2MmUwYjUxNDA1ZDg0YTg5
MDY5MjUzODViNGZmMTU5OS4uNTNmZWFkNjU2MDQ1MTRmZmIxYzVjZmEwZmU5NjA2ZDI1YTUzZTgw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJp
dmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHTGluZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5k
ZXggNjhhYzZiODQzZDcwMGY3NjAyZWVmNjQ0NTI5YmYwYTJkZmRkOGM0Yy4uNDZkOTJkZTMxYjcw
NGE2ZWU0MTNiNjNiYTBhZGQyZmFhOGE1MjM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAg
IEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKaW5kZXggOTczMjY0OGEwYzVkMDUx
MmQyY2Y3ZTc1MzRkN2YxYTFjODJiMGVhOS4uMWJlNjRhNjcwNmU4ZWFkYTA5ZDIwMWU4NjI0NDRi
MWVjNjQ3NTEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaApAQCAtNjgsOCAr
NjgsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIFNWR01QYXRoRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuaAppbmRleCAxYjkzMGU2M2M5MGExY2FkNWQyNmVmYzFjNTQ5MmZjY2FkZmZi
YmIwLi5iNTIyY2I3YmE2MmU1NWZhMjI4N2Y0ZTc0ZTAzODBjMDg0YzM0MGE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTE2NCw4ICsxNjQsNiBAQCBwcml2YXRlOgog
ICAgIG11dGFibGUgU1ZHU3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFNWR01hcmtlck9y
aWVudFR5cGU+IG1fb3JpZW50VHlwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNYXJrZXJF
bGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAppbmRl
eCBmNTBhOTQ2OWRiZTk0NGYxMTcwMTNhZWU1MmJhOTkxMmUxNDhjYzQ1Li4yMmVkZGJjZDNmNmY1
N2Q2Y2Q0YmRiMDMzNTUzMzMyOWUyMDMxZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFza0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJv
bml6ZVN5c3RlbUxhbmd1YWdlKCkgb3ZlcnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0
ZW1MYW5ndWFnZSh0aGlzKTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01hc2tFbGVtZW50
KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3Np
bmdHbHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVt
ZW50LmgKaW5kZXggZjU2MzdlZTkyNTU3NDZhMWQ3YWE1MDQ2NmY0MWY5MWZkN2I1ZTNkZC4uOTRh
NDI2N2UwZDcxOWUyOTYyNjcyMmFkOWI2MGU1Y2MzMzY0YzQxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01pc3Np
bmdHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDAyMWI2
ZjEwODY2MTgxYjRhOTliNDY5YzIzZTQ0MjAwZmY4ZTA2M2QuLmI2NGI0YzVlZjYxNTRhZjlhNDcx
ZWRjYjY2MDZiOTlhYjRhYTBkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBA
IC0xMjksOCArMTI5LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNBbmltVmFsT2JzZXJ2ZWQ7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
dGVybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCmlu
ZGV4IDIyYzdjMjAyMmViMzQ3YzEyMTExZDM5MDFkZDgzYzVkYjg3MjlmMDIuLjQ5MmNkNjgxN2E4
MDU1Y2U5NTkxNjhiNTBkNmM1MTQ0ODc5MTU4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0
ZXJuRWxlbWVudC5oCkBAIC04Niw4ICs4Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJv
bml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUGF0
dGVybkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCmluZGV4IGE2MmRlMjAwZjNkYmRlMzVmZTVmNWQx
OWZiMDAyMWU5OGRiNzVlOWQuLmQ5MGRkYWJmYWQ2YjExY2I4ZTdjYmY5MmUxZDU0YzNlZjk0MTlh
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2
IEBAIHByaXZhdGU6CiAgICAgU1ZHUG9seWdvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUG9seWdvbkVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9s
eWxpbmVFbGVtZW50LmgKaW5kZXggNGI1ZTg0MWY3NzE4ZTZjYzgwYmNjYzQ1OWI2MDllYTJiZjMy
NWRiYS4uYTA5MWVjNjRlOTVkMmI1YmY4NjFkNWY4NjEzMDBiZGVkN2M5Njg3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRl
OgogICAgIFNWR1BvbHlsaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdQb2x5bGluZUVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LmgKaW5kZXggZTU2ZmIyZmQxNzgzMDlhYmVjYjllOTk2OTBkMjcwN2Vm
ODI0OWUwZi4uMTJiZjRlZDFiY2NlMjI5OTZjMmVhMzJjNzdmM2MyNDRlYWJhY2M2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTYsOCAr
NTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCmlu
ZGV4IDcyZWI4NzU4MDFjMDU0NDg3YWQ3OTNiOTQ1NWZiYjI4ZDFhMzdjOWYuLjNjZWU4ZDkzMGZi
ZDI3NmZmZjY3OTZhNWMwNjFmM2M1YzdlMDY2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxl
bWVudC5oCkBAIC01OCw4ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1JlY3RFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmgKaW5kZXggZWZiNDJlZGRjODMzNzg0YTMyODhmZTJhNGQzODBhNDNlZjRkNzg4My4uMjc4MjI3
MmVlMDQ1YTM1MTIyOTE1MDBjNWUzOTBmMTQ3NzFmZmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5oCkBAIC0xNzUsOCArMTc1LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U1ZHVmll
d1NwZWM+IG1fdmlld1NwZWM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU1ZHRWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oCmluZGV4IDU3MmY3OWRlZmYxNDUzMTRjODZhMzVmYzg5MGJmYTA4YTE0YTFm
YjUuLjlhY2RiZGIxYjBhZGYzNzU0MTQ3NjUxYmQ3YjQzMTAyY2I1NTE3NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtODYsOCArODYsNiBAQCBwcml2YXRlOgogICAg
IFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoU1ZHU2NyaXB0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKaW5kZXggZDg3OWI0ZTkyZTkyMWFlZDc3
YTcwMDc1MGE3ZjZlYWY3NjI5YjBmNi4uN2RhMzdjNmI4MWExNTliNTVkYWZmYjUxMzc0ZjcwOTI2
NGRlMTA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKQEAgLTQ5LDggKzQ5LDYg
QEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHU3RvcEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKaW5kZXggNmE5MWUzODhj
OTVkOTdmZTgxNjE3NjJmNDQ4NTRlNGJlYzBkZjM0YS4uMWU3MzE3NTI1ZmM3ZGI3NTU4OGQ1M2I4
YzM0NzI5ZGMzYTUyMWRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaApAQCAt
NjgsOCArNjgsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2
ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU3R5bGVFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdTdHlsZUVsZW1lbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAppbmRleCBhOGMwYjcyMzAyN2YxZGJiNGVlZGVlNWQwZDlj
NzY3MzY5MWM2NTU0Li40MzA4NGQ1YzkzZWMxOTk2NmZkNTY3MGQxZmJjYTk4MjUwNjY2MmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUm
KSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdUZXh0RWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0UGF0aEVsZW1lbnQuaAppbmRleCAwYTRmZjY3NGY4YzgyMGE2NjBhZmQ3OWE1ZjQyOGU4NWNh
YjQ4YjhiLi5mMjQ0YmMzNzMyN2Q0NDcyNDQ0YTkwNmRhOGI3NzY5NDdmZTQyZTBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgcHJp
dmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHVGV4dFBhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCmluZGV4IGM4NGE2MDMyN2Nm
NTZkMDY1MmY0YzRjOTU2YmRmNjJiMzE4ZWUyNDYuLjA3NWIyMzliODE4YzVhM2U5YjQ3YzM1Y2Yz
ODM1ZjhiZTE4ZWI0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKQEAgLTQw
LDggKzQwLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHVGl0bGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXggM2YxMGVlOTg5OGQ1NjE3
NmE2ZmUwMzQwYTkxMTcwNzUwMmJmMjc1MS4uYjczMmYxOGYyMjM2MWQxOTJkM2ZhMjY3ZWU4MTY3
ZDIxZGFlZTRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC0xMjgsOCArMTI4
LDYgQEAgcHJpdmF0ZToKICAgICBUaW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xvYWRFdmVudFRpbWVy
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1VzZUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmgKaW5kZXggY2U4OGRlNWI0MGY3MWI3NGJiODQ2
YzlhZDUwOWY4ZTVmYjc3NGUxMy4uMTgwYmM3NmQwM2QxNzJhYTg0YWVkN2FiMzEzOTU2OTYzMDky
YzI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaApAQCAtNDEsOCArNDEsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdWS2VybkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCmluZGV4IDI1
MWQ3MzAzOTEzNTk1NDI2ZjUxZWY2MjllNDZhYTVmZTM1NjUwOGUuLjRiNDRkOWM5NDY4NzNlMjZh
NTkyMDU4MWYyYjNlMjJkYjZhMmIzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5o
CkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgU1ZHU3RyaW5nTGlzdCBtX3ZpZXdUYXJn
ZXQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVmlld0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52
Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9y
dHMuZGVmLmluCmluZGV4IGVkNDA4ZDY3ZWIwOWViMTk2ODkzNGM5ZGY5YTA1MzU1NGE5NDIyMDYu
LjlmYmUzNzA3Y2RiNGQ4MDM1M2U1NTY0NTAzODcxZDg1YmRkYzNhZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4
cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhw
b3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCkBAIC0xNTMsNyArMTUzLDcgQEAgRVhQ
T1JUUwogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/PzBIaXRUZXN0UmVzdWx0QFdlYkNvcmVA
QFFBRUBBQlZMYXlvdXRQb2ludEAxQElJSUlAWiwgPz8wSGl0VGVzdFJlc3VsdEBXZWJDb3JlQEBR
RUFBQEFFQlZMYXlvdXRQb2ludEAxQElJSUlAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIo
P2lzUmVwbGFjZW1lbnRPYnNjdXJlZEBSZW5kZXJFbWJlZGRlZE9iamVjdEBXZWJDb3JlQEBRQkVf
TlhaLCA/aXNSZXBsYWNlbWVudE9ic2N1cmVkQFJlbmRlckVtYmVkZGVkT2JqZWN0QFdlYkNvcmVA
QFFFQkFfTlhaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/PzFSYW5nZUBXZWJDb3JlQEBR
QUVAWFosID8/MVJhbmdlQFdlYkNvcmVAQFFFQUFAWFopCi0gICAgICAgIHN5bWJvbFdpdGhQb2lu
dGVyKD90b05vZGVAV2ViQ29yZUBAWUFQQVZOb2RlQDFAVkpTVmFsdWVASlNDQEBAWiwgP3RvTm9k
ZUBXZWJDb3JlQEBZQVBFQVZOb2RlQDFAVkpTVmFsdWVASlNDQEBAWikKKyAgICAgICAgc3ltYm9s
V2l0aFBvaW50ZXIoP3RvSW1wbEBKU05vZGVAV2ViQ29yZUBAU0FQQVZOb2RlQDJAVkpTVmFsdWVA
SlNDQEBAWiwgP3RvSW1wbEBKU05vZGVAV2ViQ29yZUBAU0FQQVZOb2RlQDJAVkpTVmFsdWVASlND
QEBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBB
QUVAQUJWRmxvYXRSZWN0QDFAQFosID8/MENsaWVudFJlY3RAV2ViQ29yZUBAQUVBQUBBRUJWRmxv
YXRSZWN0QDFAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD8/MENsaWVudFJlY3RAV2Vi
Q29yZUBAQUFFQEFCVkludFJlY3RAMUBAWiwgPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBRUFBQEFF
QlZJbnRSZWN0QDFAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD8/MENsaWVudFJlY3RA
V2ViQ29yZUBAQUFFQFhaLCA/PzBDbGllbnRSZWN0QFdlYkNvcmVAQEFFQUFAWFopCkBAIC0zMTAs
OSArMzEwLDggQEAgRVhQT1JUUwogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dGV4dEBSYW5n
ZUBXZWJDb3JlQEBRQkU/QVZTdHJpbmdAV1RGQEBYWiwgP3RleHRAUmFuZ2VAV2ViQ29yZUBAUUVC
QT9BVlN0cmluZ0BXVEZAQFhaKQogICAgICAgICA/dGV4dGFyZWFUYWdASFRNTE5hbWVzQFdlYkNv
cmVAQDNWSFRNTFF1YWxpZmllZE5hbWVAMkBCCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90
ZXh0Q29udGVudEBOb2RlQFdlYkNvcmVAQFFCRT9BVlN0cmluZ0BXVEZAQF9OQFosID90ZXh0Q29u
dGVudEBOb2RlQFdlYkNvcmVAQFFFQkE/QVZTdHJpbmdAV1RGQEBfTkBaKQotICAgICAgICBzeW1i
b2xXaXRoUG9pbnRlcig/dG9Eb2N1bWVudEBXZWJDb3JlQEBZQVBBVkRvY3VtZW50QDFAVkpTVmFs
dWVASlNDQEBAWiwgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQRUFWRG9jdW1lbnRAMUBWSlNWYWx1
ZUBKU0NAQEBaKQotICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9ET01TdHJpbmdMaXN0QFdl
YkNvcmVAQFlBP0FWPyRQYXNzUmVmUHRyQFZET01TdHJpbmdMaXN0QFdlYkNvcmVAQEBXVEZAQFBB
VkV4ZWNTdGF0ZUBKU0NAQFZKU1ZhbHVlQDVAQFosID90b0RPTVN0cmluZ0xpc3RAV2ViQ29yZUBA
WUE/QVY/JFBhc3NSZWZQdHJAVkRPTVN0cmluZ0xpc3RAV2ViQ29yZUBAQFdURkBAUEVBVkV4ZWNT
dGF0ZUBKU0NAQFZKU1ZhbHVlQDVAQFopCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0Vs
ZW1lbnRAV2ViQ29yZUBAWUFQQVZFbGVtZW50QDFAVkpTVmFsdWVASlNDQEBAWiwgP3RvRWxlbWVu
dEBXZWJDb3JlQEBZQVBFQVZFbGVtZW50QDFAVkpTVmFsdWVASlNDQEBAWikKKyAgICAgICAgc3lt
Ym9sV2l0aFBvaW50ZXIoP3RvSW1wbEBKU0RvY3VtZW50QFdlYkNvcmVAQFNBUEFWRG9jdW1lbnRA
MkBWSlNWYWx1ZUBKU0NAQEBaLCA/dG9JbXBsQEpTRG9jdW1lbnRAV2ViQ29yZUBAU0FQQVZEb2N1
bWVudEAyQFZKU1ZhbHVlQEpTQ0BAQFopCisgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0lt
cGxASlNFbGVtZW50QFdlYkNvcmVAQFNBUEFWRWxlbWVudEAyQFZKU1ZhbHVlQEpTQ0BAQFosID90
b0ltcGxASlNFbGVtZW50QFdlYkNvcmVAQFNBUEFWRWxlbWVudEAyQFZKU1ZhbHVlQEpTQ0BAQFop
CiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBK
U0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWQXJyYXlCdWZmZXJA
M0BAWiwgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAzQFBF
QVZKU0RPTUdsb2JhbE9iamVjdEAxQFBFQVZBcnJheUJ1ZmZlckAzQEBaKQogICAgICAgICBzeW1i
b2xXaXRoUG9pbnRlcig/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3Rh
dGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVkNTU1N0eWxlRGVjbGFyYXRpb25AMUBAWiwg
P3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAzQFBFQVZKU0RP
TUdsb2JhbE9iamVjdEAxQFBFQVZDU1NTdHlsZURlY2xhcmF0aW9uQDFAQFopCiAgICAgICAgIHN5
bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNT
dGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWQ2xpZW50UmVjdEAxQEBaLCA/dG9KU0BX
ZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpTRE9NR2xvYmFs
T2JqZWN0QDFAUEVBVkNsaWVudFJlY3RAMUBAWikKQEAgLTMyMCw3ICszMTksNyBAQCBFWFBPUlRT
CiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBK
U0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBaLCA/
dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpTRE9N
R2xvYmFsT2JqZWN0QDFAUEVBVk5vZGVAMUBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIo
P3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01H
bG9iYWxPYmplY3RAMUBQQVZSYW5nZUAxQEBaLCA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVA
SlNDQEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEVBVlJhbmdlQDFA
QFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1
ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUxpc3RA
MUBAWiwgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAzQFBF
QVZKU0RPTUdsb2JhbE9iamVjdEAxQFBFQVZOb2RlTGlzdEAxQEBaKQotICAgICAgICBzeW1ib2xX
aXRoUG9pbnRlcig/dG9SYW5nZUBXZWJDb3JlQEBZQVBBVlJhbmdlQDFAVkpTVmFsdWVASlNDQEBA
WiwgP3RvUmFuZ2VAV2ViQ29yZUBAWUFQRUFWUmFuZ2VAMUBWSlNWYWx1ZUBKU0NAQEBaKQorICAg
ICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9JbXBsQEpTUmFuZ2VAV2ViQ29yZUBAU0FQQVZSYW5n
ZUAyQFZKU1ZhbHVlQEpTQ0BAQFosID90b0ltcGxASlNSYW5nZUBXZWJDb3JlQEBTQVBBVlJhbmdl
QDJAVkpTVmFsdWVASlNDQEBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2lzVHJlZVNj
b3BlQE5vZGVAV2ViQ29yZUBAUUJFX05YWiwgP2lzVHJlZVNjb3BlQE5vZGVAV2ViQ29yZUBAUUVC
QV9OWFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD91cGRhdGVFZGl0b3JVSU5vd0lmU2No
ZWR1bGVkQEVkaXRvckBXZWJDb3JlQEBRQUVYWFosID91cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1
bGVkQEVkaXRvckBXZWJDb3JlQEBRRUFBWFhaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQERvY3VtZW50QFdlYkNvcmVAQFFB
RVhXNFJ1blBvc3RMYXlvdXRUYXNrc0AxMkBAWiwgP3VwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0c0BEb2N1bWVudEBXZWJDb3JlQEBRRUFBWFc0UnVuUG9zdExheW91dFRhc2tzQDEy
QEBaKQpAQCAtNDQ5LDcgKzQ0OCw3IEBAIEVYUE9SVFMKICAgICAgICAgc3ltYm9sV2l0aFBvaW50
ZXIoP3RvVUludDMyRW5mb3JjZVJhbmdlQFdlYkNvcmVAQFlBSVBBVkV4ZWNTdGF0ZUBKU0NAQFZK
U1ZhbHVlQDNAQFosID90b1VJbnQzMkVuZm9yY2VSYW5nZUBXZWJDb3JlQEBZQUlQRUFWRXhlY1N0
YXRlQEpTQ0BAVkpTVmFsdWVAM0BAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvVUlu
dDY0QFdlYkNvcmVAQFlBX0tQQVZFeGVjU3RhdGVASlNDQEBWSlNWYWx1ZUAzQFc0SW50ZWdlckNv
bnZlcnNpb25Db25maWd1cmF0aW9uQDFAQFosID90b1VJbnQ2NEBXZWJDb3JlQEBZQV9LUEVBVkV4
ZWNTdGF0ZUBKU0NAQFZKU1ZhbHVlQDNAVzRJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb25A
MUBAWikKICNpZiBFTkFCTEUoVklERU8pCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b1Rp
bWVSYW5nZXNAV2ViQ29yZUBAWUFQQVZUaW1lUmFuZ2VzQDFAVkpTVmFsdWVASlNDQEBAWiwgP3Rv
VGltZVJhbmdlc0BXZWJDb3JlQEBZQVBFQVZUaW1lUmFuZ2VzQDFAVkpTVmFsdWVASlNDQEBAWikK
KyAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvSW1wbEBKU1RpbWVSYW5nZXNAV2ViQ29yZUBA
U0FQQVZUaW1lUmFuZ2VzQDJAVkpTVmFsdWVASlNDQEBAWiwgP3RvSW1wbEBKU1RpbWVSYW5nZXNA
V2ViQ29yZUBAU0FQQVZUaW1lUmFuZ2VzQDJAVkpTVmFsdWVASlNDQEBAWikKICAgICAgICAgc3lt
Ym9sV2l0aFBvaW50ZXIoP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0
YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZUaW1lUmFuZ2VzQDFAQFosID90b0pTQFdl
YkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBFQVZFeGVjU3RhdGVAM0BQRUFWSlNET01HbG9iYWxP
YmplY3RAMUBQRUFWVGltZVJhbmdlc0AxQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/
bmVhcmVzdEBUaW1lUmFuZ2VzQFdlYkNvcmVAQFFCRU5OQFosID9uZWFyZXN0QFRpbWVSYW5nZXNA
V2ViQ29yZUBAUUVCQU5OQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9hZGRAVGltZVJh
bmdlc0BXZWJDb3JlQEBRQUVYTk5AWiwgP2FkZEBUaW1lUmFuZ2VzQFdlYkNvcmVAQFFFQUFYTk5A
WikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1t
IGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KaW5kZXggZTRmYjc2
NjBmOWY0OWU3YWQ3MTk1NjEwM2JhM2I4NTE4NjI5YzVjMi4uMTA1NGRiNmM5MThkNDM4ZjY1YjBi
ZDBlMTZhN2M2NTM2ZmU5YjVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL1dl
YkRPTU9wZXJhdGlvbnMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJh
dGlvbnMubW0KQEAgLTc0LDcgKzc0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogICAgIEV4
ZWNTdGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhl
Yyk7Ci0gICAgcmV0dXJuIGtpdCh0b0VsZW1lbnQodG9KUyhleGVjLCB2YWx1ZSkpKTsKKyAgICBy
ZXR1cm4ga2l0KEpTRWxlbWVudDo6dG9JbXBsKHRvSlMoZXhlYywgdmFsdWUpKSk7CiB9CiAKIEBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhNmYzYjU0ZGNkNTFiZTJj
YzRjYWQ0MWY3Zjc1NTViNzFjYzYyNDg3Li45Y2U2MWI2ZmFlNDZhMjc0NmY0NjllNzIzM2ZhZTQ1
NmFlYjE0YjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04NjIxLDcg
Kzg2MjEsNyBAQCBzdGF0aWMgdm9pZCBnbGliQ29udGV4dEl0ZXJhdGlvbkNhbGxiYWNrKENGUnVu
TG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eQogewogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgSlNDb250ZXh0UmVm
IGNvbnRleHQgPSBbW3NlbGYgbWFpbkZyYW1lXSBnbG9iYWxDb250ZXh0XTsKLSAgICBXZWJDb3Jl
OjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90aWZpY2F0aW9uKHRvSlModG9KUyhj
b250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGlvbiA9IEpTTm90aWZpY2F0aW9uOjp0b0ltcGwodG9KUyh0b0pTKGNvbnRleHQpLCBq
c05vdGlmaWNhdGlvbikpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJOb3RpZmljYXRpb25D
bGllbnQqPihOb3RpZmljYXRpb25Db250cm9sbGVyOjpjbGllbnRGcm9tKF9wcml2YXRlLT5wYWdl
KSktPm5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhub3RpZmljYXRpb24pOwogI2Vsc2UKICAgICBy
ZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggOTQzODM3NWUzZTk0NmEwNTkwMDgyYTM5
YmIwZmIyMjBiMGRjZjZjNy4uY2M1NDYzZjNjYWMxOWZmOTRkZmJhZTAyNDg2YjcwZDkyOTg1NjVj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTU5NzQsNyArNTk3NCw3IEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6ZWxlbWVudEZyb21KUygKIAogICAgIEpTQzo6RXhlY1N0
YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKGV4
ZWMpOwotICAgIEVsZW1lbnQqIGVsdCA9IHRvRWxlbWVudCh0b0pTKGV4ZWMsIG5vZGVPYmplY3Qp
KTsKKyAgICBFbGVtZW50KiBlbHQgPSBKU0VsZW1lbnQ6OnRvSW1wbCh0b0pTKGV4ZWMsIG5vZGVP
YmplY3QpKTsKICAgICBpZiAoIWVsdCkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0
ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKaW5kZXggY2RkZGM4MTZh
YmI4MTdlODM1NzdiOTEwYzYzM2UzMGEwZWU2MDVmZS4uMDQ1YTY2NGZjOGM4ODhiMGE1NTc5YjMz
YzAwM2ViZGRmNTYxZDdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGUuY3BwCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBET01IYW5kbGVDYWNoZSYgZG9t
SGFuZGxlQ2FjaGUoKQogCiBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0ZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0
UmVmIG9iamVjdCkKIHsKLSAgICBOb2RlKiBub2RlID0gdG9Ob2RlKHRvSlMob2JqZWN0KSk7Cisg
ICAgTm9kZSogbm9kZSA9IEpTTm9kZTo6dG9JbXBsKHRvSlMob2JqZWN0KSk7CiAgICAgcmV0dXJu
IGdldE9yQ3JlYXRlKG5vZGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGUuY3BwCmluZGV4IGY2MzM5MWI0Y2U1Y2Y3MjFhMTliMDY4NzNmNzEwZGMy
ZTM1ZjE5ZTcuLjY1ZjhlNTljNTQwNDg4YzdkOWQwMGU5NWQ3NmU1NTc3M2M5OGM0NDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIHN0YXRpYyBET01IYW5kbGVDYWNoZSYgZG9tSGFuZGxlQ2FjaGUoKQogCiBQYXNz
UmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgb2JqZWN0KQogewotICAg
IFJhbmdlKiByYW5nZSA9IHRvUmFuZ2UodG9KUyhvYmplY3QpKTsKKyAgICBSYW5nZSogcmFuZ2Ug
PSBKU1JhbmdlOjp0b0ltcGwodG9KUyhvYmplY3QpKTsKICAgICByZXR1cm4gZ2V0T3JDcmVhdGUo
cmFuZ2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDFhNjcyN2JhY2E1OTNjMGE3
YmI4MWRhMDM4OTBhNzI5YTVkODNjNGIuLmI2NGU4MTgyOGRiOGQ5ZDgwZWMwYjg3N2E5YzEwMTBj
MmZlMjUzODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC01OTcsNyArNTk3LDcgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoV2Vi
UGFnZSogcGFnZSkKIHVpbnQ2NF90IEluamVjdGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRpb25JRChK
U0NvbnRleHRSZWYganNDb250ZXh0LCBKU1ZhbHVlUmVmIGpzTm90aWZpY2F0aW9uKQogewogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0g
ICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSB0b05vdGlmaWNhdGlvbih0
b0pTKHRvSlMoanNDb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAgICBXZWJDb3JlOjpOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IEpTTm90aWZpY2F0aW9uOjp0b0ltcGwodG9KUyh0b0pT
KGpzQ29udGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CiAgICAgaWYgKCFub3RpZmljYXRpb24pCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5zdXBwbGVt
ZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPm5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhu
b3RpZmljYXRpb24pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238439</attachid>
            <date>2014-09-21 16:23:52 -0700</date>
            <delta_ts>2014-09-21 20:02:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136839-20140921162350.patch</filename>
            <type>text/plain</type>
            <size>163891</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmNGYxNzQ4ZjU4MGE3
YjhmODViNjU1ZDQ4OWJmZDkxNWQ0N2NlNy4uM2RjYmYxZmExOGU0NmZhOTllMDdhYWE1OTUyMWM1
ZDBlOTNmZWQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxMSBAQAorMjAxNC0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQg
Y2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucyBp
bnN0ZWFkIG9mIHJlcXVpcmluZyBleHBsaWNpdAorICAgICAgICB1c2Ugb2YgTk9ERV9UWVBFX0NB
U1RTKCkgbWFjcm8uIENhc3RpbmcgaXMgbm93IGRvbmUgdXNpbmcgdGhlIGZvbGxvd2luZworICAg
ICAgICBmb3JtOiBkb3duY2FzdDxIVE1MRGl2RWxlbWVudD4oKSwgaW5zdGVhZCBvZiB0b0hUTUxE
aXZFbGVtZW50KCkuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIGZvcm0gKGkuZS4gdG9IVE1MRGl2
RWxlbWVudCgpKSBpcyBzdGlsbCBzdXBwb3J0ZWQgZm9yIG5vdworICAgICAgICBieSBnZW5lcmF0
aW5nIG1hY3JvcyB0aGF0IGNvbnZlcnQgdGhlc2UgY2FsbHMgaW50byB0aGUgbmV3IGZvcm0sIHVu
dGlsCisgICAgICAgIHRoZSBjb2RlIGJhc2UgaXMgcG9ydGVkIHRvIHRoZSBuZXcgY2FzdGluZyBo
ZWxwZXJzLgorCisgICAgICAgIFRoZSBwbGFuIGlzIGFsc28gdG8gdXNlIGlzPEhUTUxEaXZFbGVt
ZW50PigpIGluc3RlYWQgb2YKKyAgICAgICAgaXNIVE1MRGl2RWxlbWVudCgpIGZvciBjb25zaXN0
ZW5jeSBidXQgdGhpcyB3YXMgbm90IGNoYW5nZWQgaW4gdGhpcworICAgICAgICBwYXRjaCB0byBh
dm9pZCBibG93aW5nIHVwIHRoZSBzaXplLgorCisgICAgICAgIFRoaXMgQ0wgYWxzbyB1cGRhdGVz
IHRoZSB3YXkgd2UgY29udmVydCBhIEpTVmFsdWUgaW50byBhbgorICAgICAgICBpbXBsZW1lbnRh
dGlvbiBwb2ludGVyLiBJbnN0ZWFkIG9mIHVzaW5nIHRvSFRNTERpdkVsZW1lbnQoKSwgd2hpY2gK
KyAgICAgICAgbG9va2VkIGxpa2UgYSBjYXN0LCB3ZSBub3cgdXNlIEpTSFRNTERpdkVsZW1lbnQ6
OnRvV3JhcHBlZCgpLiBUaGlzCisgICAgICAgIGF2b2lkcyBjb25mbGljdGluZyB3aXRoIHRoZSB0
b1hYWEVsZW1lbnQoKSBtYWNyb3MgYW5kIG1ha2VzIGl0CisgICAgICAgIGNsZWFyZXIgdGhpcyBp
cyBub3QgYSBzaW1wbGUgY2FzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RKU0Jsb2IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29tbWFuZExpbmVBUElIb3N0OjpnZXRF
dmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6
ZGF0YWJhc2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3Rv
cmFnZUlkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50T3JOdWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN0cnVjdEpTRE9NRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01G
b3JtRGF0YTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdMaXN0Ojp0b1dyYXBwZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9ET01TdHJpbmdMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
dzo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRE9NV2luZG93KTogRGVsZXRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6Y3JlYXRl
VG91Y2hMaXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRUYXJnZXQ6OnRvV3JhcHBlZCk6CisgICAgICAg
IChXZWJDb3JlOjp0b0V2ZW50VGFyZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0V4Y2VwdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb25CYXNl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVj
dEluZGV4U2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5k
SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9z
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVu
dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVJbml0TWVzc2FnZUV2ZW50KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmZpbGxNZXNzYWdlUG9ydEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U05vZGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjppbnNlcnRCZWZvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNOb2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OmFw
cGVuZENoaWxkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlRmlsdGVyOjp0b1dyYXBwZWQpOgorICAgICAgICAo
V2ViQ29yZTo6dG9Ob2RlRmlsdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1N1YnRsZUNyeXB0b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0
bzo6ZW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6c2lnbik6CisgICAgICAgIChXZWJD
b3JlOjpKU1N1YnRsZUNyeXB0bzo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxl
Q3J5cHRvOjpleHBvcnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86Ondy
YXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hh
ZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJv
Z3JhbVBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0U2hhZGVyUGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRVbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYp
OgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpk
YXRhRnVuY3Rpb25NYXRyaXgpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6c2VuZCk6
CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVI
ZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5l
cmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25F
eGNpdGluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVj
dDo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEFjdGl2ZURPTU9iamVjdCk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlcjo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEN1c3RvbU5hbWVk
R2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RF
dmVudENvbnN0cnVjdG9yOjp0b1dyYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0RXZl
bnRDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0RXZlbnRUYXJnZXQ6OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjp0
b1Rlc3RFdmVudFRhcmdldCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNl
cHRpb246OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RFeGNlcHRpb24pOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlOjp0b1dyYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVy
ZmFjZUltcGxlbWVudHNOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjp0b1dyYXBwZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6dG9UZXN0SW50ZXJmYWNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6dG9XcmFw
cGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5hbWVkQ29uc3RydWN0b3IpOiBEZWxldGVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6
dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5vbmRldGVybWluaXN0aWMpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRl
cm1pbmlzdGljLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxT
dGFja0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpNdXRhYmxlUG9p
bnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFy
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0
aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PY3RldE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWly
ZXNBbGxBcmdzQW5kVGhyb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4KToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0
aW9uV2l0aEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVmFyaWFkaWNOb2RlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6dG9X
cmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE9iaik6IERlbGV0ZWQuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6
Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhTZXF1ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnM6OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJD
b3JlOjp0b1Rlc3RUeXBlZGVmcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRlOjp0
b1dyYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6dG9hdHRyaWJ1dGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTcmVhZG9ubHk6OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b3JlYWRvbmx5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25s
eS5oOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpkb3duY2Fz
dCk6CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAgIChwcmludFR5cGVIZWxw
ZXJzKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJv
ZHlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERldGFp
bHNFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGFi
ZWxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTExpbmtFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxP
YmplY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBh
cmFtRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTZWxl
Y3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU291cmNlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRp
dGxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2Ny
aXB0VmFsdWVBc05vZGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0FsdEdseXBoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Np
cmNsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0ZFRnVuY0FFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0JF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0dFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0ZFRnVuY1JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZvbnRGYWNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5hbWVFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdIS2VybkVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0xpbmVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdNUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFy
a2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1BvbHlnb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdUZXh0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVktlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1ZpZXdFbGVtZW50Lmg6CisKIDIwMTQtMDktMjEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBzcGVjdWxhdGl2ZSBidWlsZCBmaXguCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGYxNDQ2M2ZkNmI1MDI1Y2M2ZDMxMmVjZDdhNGYxNmZhMmQ0OTg4OGUuLmFiNTE1Y2E3
Y2Q0ODFkNjZkMzNkN2JjOWNhMWZhYzUwYTlkZTYwMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTQtMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXBkYXRlIHNvbWUgb2YgdGhlIGV4cG9y
dGVkIHN5bWJvbHMgb24gV2luZG93cyBmb3IgZnVuY3Rpb25zIHRoYXQgd2VyZQorICAgICAgICBy
ZW5hbWVkLgorCisgICAgICAgICogV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9y
L1dlYktpdEV4cG9ydHMuZGVmLmluOgorCiAyMDE0LTA5LTE1ICBwZWF2b0BvdXRsb29rLmNvbSAg
PHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gTWFrZSBpdCBlYXNpZXIg
dG8gZW5hYmxlL2Rpc2FibGUgR1N0cmVhbWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDFmODdlOWFm
NTZmMzdlNzkyYzdjMDY0MDRkOGFjMDFlM2ExMjI5MDYuLmNmYmI4NTVkN2Y3NjNiNzMxY2FkMTRk
MDlkNjkzY2ZjMzFjNWNkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
NC0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVy
YXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBVc2UgSlNYWFg6OnRvV3JhcHBlZCgpIGluc3RlYWQg
b2YgdG9YWFgoKSBmdW5jdGlvbi4KKworICAgICAgICAqIERPTS9XZWJET01PcGVyYXRpb25zLm1t
OgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfbm90
aWZpY2F0aW9uSURGb3JUZXN0aW5nOl0pOgorCiAyMDE0LTA5LTE5ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBNdWx0aXRocmVhZGVkIFdlYkdMIGlzIGEgYmFkIGlk
ZWEgLSByZW1vdmUgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAyMTUwZjI4NWFjOWUxYmRlN2FiOTgy
M2U2ZjNmZjMwMzNlNzA4ODFkLi41MWY3YzIxYTQzNzkwZDVhNDBlYzA3NDgwOWNmN2JhMDI3MmFm
OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDktMjEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNh
c3RpbmcgaGVscGVyIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgVXNlIEpTWFhYOjp0b1dyYXBwZWQoKSBpbnN0ZWFkIG9mIHRvWFhYKCkgZnVu
Y3Rpb24uCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmVsZW1l
bnRGcm9tSlMpOgorCiAyMDE0LTA5LTA2ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5n
dG9uLmVkdT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb252ZXJ0IERvY2tTaWRlIHRvIGFu
IGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjZmRmZWYyYzc0NjExMjUzMDhmYzA0OGY3ZGYzNzJj
ZjM2ZGI1MDliLi43ODFjYmQ1MjM1OTI0ZDM0ZTgzM2VmNzdlMjZkOTUxZDgxMmIxOGI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1
bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM2ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXNl
IEpTWFhYOjp0b1dyYXBwZWQoKSBpbnN0ZWFkIG9mIHRvWFhYKCkgZnVuY3Rpb24uCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9y
Q3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZTo6d2ViTm90aWZpY2F0aW9uSUQpOgorCiAyMDE0LTA5LTE5ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYkNvbnRlbnQgY3Jhc2ggaW4gV2ViS2l0OjpXZWJQ
YWdlOjpleHBhbmRlZFJhbmdlRnJvbUhhbmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4
IDM2OWFiYjExMDcyMmQ3OGYyZTE2ODA5MzVlMjgzY2RmNWNmZDc5YmUuLmVhZDZkYzYwYjlmY2Nm
YWJhMzdiNzIzOTZiZTQzZWI5NzcxMTcwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAg
LTIxMyw3ICsyMTMsNyBAQCBib29sIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50OjppbnN0YWxs
UmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKICAgICAvLyBHZXQgdGhlIDx2aWRlbz4gY3Jl
YXRlZCB0byByZXBsYWNlIHRoZSBwbHVnLWluLgogICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZSA9IHJl
cGxhY2VtZW50LmdldChleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgInZpZGVvIikpOwogICAg
IGlmICghZXhlYy0+aGFkRXhjZXB0aW9uKCkgJiYgIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkp
Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50ID0gdG9IVE1MVmlkZW9FbGVtZW50KHZhbHVlKTsKKyAg
ICAgICAgbV9tZWRpYUVsZW1lbnQgPSBKU0hUTUxWaWRlb0VsZW1lbnQ6OnRvV3JhcHBlZCh2YWx1
ZSk7CiAKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KSB7CiAgICAgICAgIExPRyhQbHVnaW5zLCAi
JXAgLSBGYWlsZWQgdG8gZmluZCA8dmlkZW8+IGVsZW1lbnQgY3JlYXRlZCBieSBRdWlja1RpbWUg
cGx1Z2luIHJlcGxhY2VtZW50IHNjcmlwdC4iLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggODc0ZTUxZTY2NzQ3NmNiNGIyZjI4YTg2MjA0NDRlM2ZhNDAzZjI2Ni4uN2E2ODM4MmM5YTgw
YmZlZjkxZWYyZTE3ZGU5ZmZkOTEwOTdiOWQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTc3
LDYgKzc3LDcgQEAgX19aTjdXZWJDb3JlMTBGbG9hdFBvaW50QzFFUks3Q0dQb2ludAogX19aTjdX
ZWJDb3JlMTBGbG9hdFBvaW50QzFFUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxMEZvbnRH
bHlwaHMxNXJlbGVhc2VGb250RGF0YUV2CiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZv
RQorX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50OXRvV3JhcHBlZEVOM0pTQzdKU1ZhbHVlRQogX19a
TjdXZWJDb3JlMTBMYXlvdXRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDV1
bml0ZUVSS1MwXwogX19aTjdXZWJDb3JlMTBMYXlvdXRSZWN0QzFFUktOU185RmxvYXRSZWN0RQpA
QCAtMTI0LDcgKzEyNSw2IEBAIF9fWk43V2ViQ29yZTEwVGltZVJhbmdlc0MxRWRkCiBfX1pON1dl
YkNvcmUxMGRlbGV0ZUZpbGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMGZpbGVFeGlz
dHNFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMHNldENvb2tpZXNFUE5TXzhEb2N1bWVu
dEVSS05TXzNVUkxFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxMHRvRG9jdW1lbnRFTjNK
U0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2UxM2dldENHSW1hZ2VSZWZFdgog
X19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZUMxRVA3Q0dJbWFnZVBOU18xM0ltYWdlT2JzZXJ2ZXJF
CiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlQzFFUE5TXzEzSW1hZ2VPYnNlcnZlckUKQEAgLTY2
Nyw3ICs2NjcsNiBAQCBfX1pON1dlYkNvcmUxNW9yaWdpbmFsVVJMRGF0YUVQNU5TVVJMCiBfX1pO
N1dlYkNvcmUxNXBhdGhHZXRGaWxlTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1
cmVwb3J0RXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVBOU18xMkNhY2hl
ZFNjcmlwdEUKIF9fWk43V2ViQ29yZTE1c2V0RE9NRXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVF
aQotX19aTjdXZWJDb3JlMTV0b0RPTVN0cmluZ0xpc3RFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pT
VmFsdWVFCiBfX1pON1dlYkNvcmUxNXZpc2l0ZWRMaW5rSGFzaEVQS3RqCiBfX1pON1dlYkNvcmUx
NXZpc2l0ZWRMaW5rSGFzaEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2QXBwbGljYXRp
b25DYWNoZTE4ZGlza1VzYWdlRm9yT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQpAQCAtMTI0
Miw2ICsxMjQxLDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjdjb21tYW5kRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlNkVkaXRvcjdjb3B5VVJMRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTZFZGl0b3I3b3V0ZGVudEV2CiBfX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5m
b0UKK19fWk43V2ViQ29yZTZKU05vZGU5dG9XcmFwcGVkRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dl
YkNvcmU2TGVuZ3RoQzFFTjNXVEY3UGFzc1JlZklOU18xNkNhbGN1bGF0aW9uVmFsdWVFRUUKIF9f
Wk43V2ViQ29yZTZSZWdpb24yMXVwZGF0ZUJvdW5kc0Zyb21TaGFwZUV2CiBfX1pON1dlYkNvcmU2
UmVnaW9uNXVuaXRlRVJLUzBfCkBAIC0xMjU5LDcgKzEyNTksNiBAQCBfX1pON1dlYkNvcmU2V2lk
Z2V0OHNldEZvY3VzRWIKIF9fWk43V2ViQ29yZTZXaWRnZXQ5c2V0UGFyZW50RVBOU18xMFNjcm9s
bFZpZXdFCiBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvSW50OEVQTjNK
U0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJh
dGlvbkUKLV9fWk43V2ViQ29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTdF
bGVtZW50MTJzZXRBdHRyaWJ1dGVFUktOM1dURjEyQXRvbWljU3RyaW5nRVM0X1JpCiBfX1pON1dl
YkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVJLTjNXVEYx
MkF0b21pY1N0cmluZ0UKIF9fWk43V2ViQ29yZTdFbGVtZW50MTZjcmVhdGVTaGFkb3dSb290RVJp
CkBAIC0xMjczLDYgKzEyNzIsNyBAQCBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfMTBMYXlv
dXRSZWN0RQogX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dl
YkNvcmU3SW50U2l6ZUMxRVJLNkNHU2l6ZQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSS05TXzlG
bG9hdFNpemVFCitfX1pON1dlYkNvcmU3SlNSYW5nZTl0b1dyYXBwZWRFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTdUZXh0UnVuMTlhbGxvd3NSb3VuZGluZ0hhY2tzRXYKIF9fWk43V2ViQ29y
ZTdUZXh0UnVuMjFzX2FsbG93c1JvdW5kaW5nSGFja3NFCiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIy
c2V0QWxsb3dzUm91bmRpbmdIYWNrc0ViCkBAIC0xMjgxLDcgKzEyODEsNiBAQCBfX1pON1dlYkNv
cmU3anNBcnJheUVQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RU4zV1RG
MTBQYXNzUmVmUHRySQogX19aTjdXZWJDb3JlN21ha2VSR0JFaWlpCiBfX1pON1dlYkNvcmU3dG9J
bnQxNkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9u
Q29uZmlndXJhdGlvbkUKIF9fWk43V2ViQ29yZTd0b0ludDY0RVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uRQotX19aTjdXZWJD
b3JlN3RvUmFuZ2VFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTd0b1VJbnQ4RVBOM0pTQzlF
eGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
RQogX19aTjdXZWJDb3JlOEJsb2JEYXRhMTRzZXRDb250ZW50VHlwZUVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZThDU1NWYWx1ZTdkZXN0cm95RXYKQEAgLTE0OTUsNiArMTQ5NCw3IEBAIF9f
Wk43V2ViQ29yZTlJbmxpbmVCb3gxNGRpcnR5TGluZUJveGVzRXYKIF9fWk43V2ViQ29yZTlJbmxp
bmVCb3gxNHNlbGVjdGlvblN0YXRlRXYKIF9fWk43V2ViQ29yZTlJbmxpbmVCb3gxNnBsYWNlRWxs
aXBzaXNCb3hFYmZmZlJmUmIKIF9fWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRQorX19aTjdX
ZWJDb3JlOUpTRWxlbWVudDl0b1dyYXBwZWRFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTlM
YXllclBvb2xDMUV2CiBfX1pON1dlYkNvcmU5TGF5ZXJQb29sRDFFdgogX19aTjdXZWJDb3JlOVBh
Z2VDYWNoZTExc2V0Q2FwYWNpdHlFaQpAQCAtMTUzNSw3ICsxNTM1LDYgQEAgX19aTjdXZWJDb3Jl
OWZvbnRDYWNoZUV2CiBfX1pON1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRp
b25FUzJfCiBfX1pON1dlYkNvcmU5cGFnZUNhY2hlRXYKIF9fWk43V2ViQ29yZTlwbGFpblRleHRF
UEtOU181UmFuZ2VFdGIKLV9fWk43V2ViQ29yZTl0b0VsZW1lbnRFTjNKU0M3SlNWYWx1ZUUKIF9f
Wk43V2ViQ29yZTl1bmlvblJlY3RFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UmVjdEVMbTBFTlMw
XzE1Q3Jhc2hPbk92ZXJmbG93RUVFCiBfX1pOSzNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3QxMmds
b2JhbE9iamVjdEV2CiBfX1pOSzNXVEY2U3RyaW5nMTRjcmVhdGVDRlN0cmluZ0V2CkBAIC0zMjA1
LDcgKzMyMDQsNyBAQCBfX1pON1dlYkNvcmU4RG9jdW1lbnQxM2dldFRvdWNoUmVjdHNFUk4zV1RG
NlZlY3RvcklOU183SW50UmVjdEVMbTBFTlMxXzE1Q3Jhc2hPbgogCiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKIF9fWk43V2ViQ29yZTEyU291cmNlQnVmZmVyMjVidWZmZXJlZFNhbXBsZXNGb3JU
cmFja0lERVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKLV9fWk43V2ViQ29yZTE0dG9Tb3VyY2VCdWZm
ZXJFTjNKU0M3SlNWYWx1ZUUKK19fWk43V2ViQ29yZTE0SlNTb3VyY2VCdWZmZXI5dG9XcmFwcGVk
RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUyNk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNl
MTlyZWdpc3Rlck1lZGlhRW5naW5lRVBGdlBGTjNXVEYxMFBhc3NPd25QdHJJTlNfMjdNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2VFRUVQTlNfMTFNZWRpYVBsYXllckVFUEZ2Uk5TMV83SGFzaFNl
dElOUzFfNlN0cmluZ0VOUzFfMTBTdHJpbmdIYXNoRU5TMV8xMEhhc2hUcmFpdHNJU0FfRUVFRUVQ
Rk5TNV8xMlN1cHBvcnRzVHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VF
UEZ2Uk5TMV82VmVjdG9ySVNBX0xtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZS
S1NBX0VQRmJTWF9TWF9FRQogI2VuZGlmCiAKQEAgLTMyNTcsNyArMzI1Niw2IEBAIF9fWk43V2Vi
Q29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaEVycm9yRXZlbnRFdgogX19aTjdXZWJDb3JlMTJO
b3RpZmljYXRpb244ZmluYWxpemVFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb25DMUV2CiBf
X1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbkQxRXYKLV9fWk43V2ViQ29yZTE0dG9Ob3RpZmljYXRp
b25FTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTE5cHJvdmlkZU5vdGlmaWNhdGlvbkVQTlNf
NFBhZ2VFUE5TXzE4Tm90aWZpY2F0aW9uQ2xpZW50RQogX19aTjdXZWJDb3JlMjJOb3RpZmljYXRp
b25Db250cm9sbGVyMTBjbGllbnRGcm9tRVBOU180UGFnZUUKICNlbmRpZgpAQCAtMzM2OSw3ICsz
MzY3LDcgQEAgX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxNmhhbmRsZVRvdWNoRXZlbnRFUktO
U18xOFBsYXRmb3JtVG91Y2hFdmVudEUKICNpZiBFTkFCTEUoVklERU8pCiAub2JqY19jbGFzc19u
YW1lX1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIKIF9fWk43V2ViQ29yZTEwVGltZVJhbmdl
czNhZGRFZGQKLV9fWk43V2ViQ29yZTEydG9UaW1lUmFuZ2VzRU4zSlNDN0pTVmFsdWVFCitfX1pO
N1dlYkNvcmUxMkpTVGltZVJhbmdlczl0b1dyYXBwZWRFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2Vi
Q29yZTE2SFRNTE1lZGlhRWxlbWVudDEyZW5kU2NydWJiaW5nRXYKIF9fWk43V2ViQ29yZTE2SFRN
TE1lZGlhRWxlbWVudDE0YmVnaW5TY3J1YmJpbmdFdgogX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFF
bGVtZW50MTRleGl0RnVsbHNjcmVlbkV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAKaW5kZXggZTZi
NTA2NDI3ZTQ1ODg5NjViZGI2N2M4OWZhMjU2ZTMzNWQ0ZTE3NS4uZjNkOWRiZjM3MGJmMWM5YWE1
NjFjNzIxZmZkOTUzZDM3YTY5ODk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcApAQCAtNDEs
NyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgSlNBdWRpb0J1ZmZlclNvdXJj
ZU5vZGU6OnNldEJ1ZmZlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAg
QXVkaW9CdWZmZXIqIGJ1ZmZlciA9IHRvQXVkaW9CdWZmZXIodmFsdWUpOworICAgIEF1ZGlvQnVm
ZmVyKiBidWZmZXIgPSBKU0F1ZGlvQnVmZmVyOjp0b1dyYXBwZWQodmFsdWUpOwogICAgIGlmICgh
YnVmZmVyKSB7CiAgICAgICAgIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRl
VHlwZUVycm9yKGV4ZWMsICJWYWx1ZSBpcyBub3Qgb2YgdHlwZSBBdWRpb0J1ZmZlciIpKTsKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNC
bG9iQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5j
cHAKaW5kZXggMjkzYWZiMzc2Mjg2OGI4MzhiOWY1YzEyZWJhNjQ1NjNmODkzNDYzOC4uYWRlNWEw
YTkzNmNlY2IxODgzNWVhMDRkMWUwYzgwYWM5ZmEyMGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU0Jsb2IoRXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICAgICAgYmxvYkJ1aWxkZXIuYXBwZW5kKGFycmF5QnVmZmVyKTsKICAgICAgICAgZWxzZSBp
ZiAoUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gYXJyYXlCdWZmZXJWaWV3ID0gdG9BcnJheUJ1ZmZl
clZpZXcoaXRlbSkpCiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYXJyYXlCdWZmZXJW
aWV3LnJlbGVhc2UoKSk7Ci0gICAgICAgIGVsc2UgaWYgKEJsb2IqIGJsb2IgPSB0b0Jsb2IoaXRl
bSkpCisgICAgICAgIGVsc2UgaWYgKEJsb2IqIGJsb2IgPSBKU0Jsb2I6OnRvV3JhcHBlZChpdGVt
KSkKICAgICAgICAgICAgIGJsb2JCdWlsZGVyLmFwcGVuZChibG9iKTsKICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICBTdHJpbmcgc3RyaW5nID0gaXRlbS50b1N0cmluZyhleGVjKS0+dmFsdWUo
ZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRM
aW5lQVBJSG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1h
bmRMaW5lQVBJSG9zdEN1c3RvbS5jcHAKaW5kZXggNzk1NDhlODJjMzdjYmQ3NTIzYTc4NDdhYzg5
ZDg2ZjlmMDAwZTc4Ni4uN2U4NmRiNjE4Njc2NTdmYWQyNjk4NjU1NGRkNzJmZTE2MWZlMzY2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGluZUFQSUhv
c3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExp
bmVBUElIb3N0Q3VzdG9tLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIEpTVmFsdWUgSlNDb21tYW5k
TGluZUFQSUhvc3Q6OmdldEV2ZW50TGlzdGVuZXJzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAo
IXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogCi0gICAgTm9kZSogbm9kZSA9IHRvTm9kZSh2YWx1ZSk7CisgICAgTm9kZSog
bm9kZSA9IEpTTm9kZTo6dG9XcmFwcGVkKHZhbHVlKTsKICAgICBpZiAoIW5vZGUpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwogCkBAIC0xNDksNyArMTQ5LDcgQEAgSlNWYWx1ZSBKU0Nv
bW1hbmRMaW5lQVBJSG9zdDo6ZGF0YWJhc2VJZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBEYXRh
YmFzZSogZGF0YWJhc2UgPSB0b0RhdGFiYXNlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsK
KyAgICBEYXRhYmFzZSogZGF0YWJhc2UgPSBKU0RhdGFiYXNlOjp0b1dyYXBwZWQoZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmIChkYXRhYmFzZSkKICAgICAgICAgcmV0dXJuIGpz
U3RyaW5nV2l0aENhY2hlKGV4ZWMsIGltcGwoKS5kYXRhYmFzZUlkSW1wbChkYXRhYmFzZSkpOwog
I2VuZGlmCkBAIC0xNjIsNyArMTYyLDcgQEAgSlNWYWx1ZSBKU0NvbW1hbmRMaW5lQVBJSG9zdDo6
c3RvcmFnZUlkKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBTdG9yYWdlKiBzdG9y
YWdlID0gdG9TdG9yYWdlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBTdG9yYWdl
KiBzdG9yYWdlID0gSlNTdG9yYWdlOjp0b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MCkpOwogICAgIGlmIChzdG9yYWdlKQogICAgICAgICByZXR1cm4ganNTdHJpbmdXaXRoQ2FjaGUo
ZXhlYywgaW1wbCgpLnN0b3JhZ2VJZEltcGwoc3RvcmFnZSkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCmluZGV4IDMxYjE4MGJm
N2ZlYWU1ZmZjMDdmZDBlZTljMjhhMmY4ZDYyN2RlNTUuLjdlYzI0OTVkZGViZmM0YTM1MjZhZDZj
M2YzOGUyNDQ5NmI0YWNiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCkBAIC00MSwxOCArNDEsMTYgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgSFRNTEZvcm1FbGVtZW50
KiB0b0hUTUxGb3JtRWxlbWVudChKU0M6OkpTVmFsdWUgdmFsdWUpCitzdGF0aWMgSFRNTEZvcm1F
bGVtZW50KiB0b0hUTUxGb3JtRWxlbWVudE9yTnVsbChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7Ci0g
ICAgcmV0dXJuIHZhbHVlLmluaGVyaXRzKEpTSFRNTEZvcm1FbGVtZW50OjppbmZvKCkpID8gJmpz
Q2FzdDxKU0hUTUxGb3JtRWxlbWVudCo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKSA6IDA7Cisg
ICAgcmV0dXJuIHZhbHVlLmluaGVyaXRzKEpTSFRNTEZvcm1FbGVtZW50OjppbmZvKCkpID8gJmpz
Q2FzdDxKU0hUTUxGb3JtRWxlbWVudCo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKSA6IG51bGxw
dHI7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNET01Gb3Jt
RGF0YShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRE9NQ29uc3RydWN0b3JPYmplY3QqIGpzQ29u
c3RydWN0b3IgPSBqc0Nhc3Q8RE9NQ29uc3RydWN0b3JPYmplY3QqPihleGVjLT5jYWxsZWUoKSk7
CiAKLSAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSAwOwotICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPiAwKQotICAgICAgICBmb3JtID0gdG9IVE1MRm9ybUVsZW1lbnQoZXhlYy0+YXJn
dW1lbnQoMCkpOworICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50
T3JOdWxsKGV4ZWMtPmFyZ3VtZW50KDApKTsKICAgICBSZWZQdHI8RE9NRm9ybURhdGE+IGRvbUZv
cm1EYXRhID0gRE9NRm9ybURhdGE6OmNyZWF0ZShmb3JtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCks
IGRvbUZvcm1EYXRhLmdldCgpKSkpOwogfQpAQCAtNjYsNyArNjQsNyBAQCBKU1ZhbHVlIEpTRE9N
Rm9ybURhdGE6OmFwcGVuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICBTdHJpbmcgZmls
ZW5hbWU7CiAgICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDMgJiYgIWV4
ZWMtPmFyZ3VtZW50KDIpLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICAgICAgZmls
ZW5hbWUgPSBleGVjLT5hcmd1bWVudCgyKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Ci0g
ICAgICAgICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIHRvQmxvYih2YWx1ZSksIGZpbGVuYW1lKTsK
KyAgICAgICAgICAgIGltcGwoKS5hcHBlbmQobmFtZSwgSlNCbG9iOjp0b1dyYXBwZWQodmFsdWUp
LCBmaWxlbmFtZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgaW1wbCgpLmFwcGVuZChu
YW1lLCB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCmlu
ZGV4IDIzMzM3YjJmMmQ5NjYwN2I1OGQ2MjdhMmI4Y2Q0MzYzNGZiZDY5YWEuLjAwZTE0MWIxMzk3
NTA3YTZjMzVkNDIzNWY2NTc5NjRjOGEyZTFhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcApAQCAtMjUsNyArMjUsNyBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gdG9ET01TdHJpbmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2YWx1ZSkKK1Bhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gSlNET01TdHJpbmdMaXN0Ojp0b1dy
YXBwZWQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5p
bmhlcml0cyhKU0RPTVN0cmluZ0xpc3Q6OmluZm8oKSkpCiAgICAgICAgIHJldHVybiAmanNDYXN0
PEpTRE9NU3RyaW5nTGlzdCo+KGFzT2JqZWN0KHZhbHVlKSktPmltcGwoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA1ZjNiNTE3
YTE0MmJlMzJmYjY0ZTc5OGE5NWM4MWI1MzExZDFmMDhkLi5iMGZkZjY1YjI5NjJmYTlhODFlYmI5
ODk1Yjc3ODJjZDNlNGU2YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02ODQsNyArNjg0LDcgQEAgSlNWYWx1ZSBKU0RPTVdp
bmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiB9CiAKLURPTVdpbmRvdyogdG9ET01XaW5kb3coSlNWYWx1ZSB2YWx1ZSkK
K0RPTVdpbmRvdyogSlNET01XaW5kb3c6OnRvV3JhcHBlZChKU1ZhbHVlIHZhbHVlKQogewogICAg
IGlmICghdmFsdWUuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcAppbmRleCAxYWYwMjZkYmE0NWQ5NDc5MDg1
NDRiYjE4NGI1YzY2NmNlNGZiMjZhLi4yMGQ4ZjgzY2QwZTQ5YWE2YTA0YzNmNjdiYzhkMjVlZTIz
YmY5OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25h
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAK
QEAgLTE1NSwyMiArMTU1LDIyIEBAIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8U2VyaWFsaXplCiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRy
PERPTVdpbmRvdz4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RPTVdpbmRvdyh2YWx1ZSk7
CisgICAgcmVzdWx0ID0gSlNET01XaW5kb3c6OnRvV3JhcHBlZCh2YWx1ZSk7CiB9CiAKIHZvaWQg
SlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPEV2ZW50VGFyZ2V0PiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvRXZlbnRUYXJnZXQo
dmFsdWUpOworICAgIHJlc3VsdCA9IEpTRXZlbnRUYXJnZXQ6OnRvV3JhcHBlZCh2YWx1ZSk7CiB9
CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2
YWx1ZSwgUmVmUHRyPE5vZGU+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9Ob2RlKHZhbHVl
KTsKKyAgICByZXN1bHQgPSBKU05vZGU6OnRvV3JhcHBlZCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRy
PFN0b3JhZ2U+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9TdG9yYWdlKHZhbHVlKTsKKyAg
ICByZXN1bHQgPSBKU1N0b3JhZ2U6OnRvV3JhcHBlZCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNEaWN0
aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBNZXNz
YWdlUG9ydEFycmF5JiByZXN1bHQpCkBAIC0yMjIsMzEgKzIyMiwzMSBAQCB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBS
ZWZQdHI8VWludAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiB2b2lkIEpTRGljdGlvbmFy
eTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQ
dHI8TWVkaWFLZXlFcnJvcj4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhS2V5RXJy
b3IodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVkaWFLZXlFcnJvcjo6dG9XcmFwcGVkKHZhbHVl
KTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgSlNEaWN0aW9u
YXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJl
ZlB0cjxNZWRpYVN0cmVhbT4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b01lZGlhU3RyZWFt
KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhU3RyZWFtOjp0b1dyYXBwZWQodmFsdWUpOwog
fQogCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4mIHJlc3VsdCkKIHsKLSAg
ICByZXN1bHQgPSB0b01lZGlhU3RyZWFtVHJhY2sodmFsdWUpOworICAgIHJlc3VsdCA9IEpTTWVk
aWFTdHJlYW1UcmFjazo6dG9XcmFwcGVkKHZhbHVlKTsKIH0KICNlbmRpZgogCiAjaWYgRU5BQkxF
KEZPTlRfTE9BRF9FVkVOVFMpCiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHI8Q1NTRm9udEZhY2VSdWxlPiYg
cmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvQ1NTRm9udEZhY2VSdWxlKHZhbHVlKTsKKyAgICBy
ZXN1bHQgPSBKU0NTU0ZvbnRGYWNlUnVsZTo6dG9XcmFwcGVkKHZhbHVlKTsKIH0KIAogdm9pZCBK
U0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2
YWx1ZSwgUmVmUHRyPERPTUVycm9yPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvRE9NRXJy
b3IodmFsdWUpOworICAgIHJlc3VsdCA9IEpTRE9NRXJyb3I6OnRvV3JhcHBlZCh2YWx1ZSk7CiB9
CiAKIHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPFZvaWRDYWxsYmFjaz4mIHJlc3VsdCkKQEAgLTI2
MSw3ICsyNjEsNyBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cgogI2lmIEVOQUJMRShHQU1FUEFE
KQogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPEdhbWVwYWQ+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0g
dG9HYW1lcGFkKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU0dhbWVwYWQ6OnRvV3JhcHBlZCh2YWx1
ZSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEb2N1bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3Vt
ZW50Q3VzdG9tLmNwcAppbmRleCBmYTI0NDQzYjRlOWQxN2VkYmZkYWJhZmNhYjQzOTY1NzVjZmRj
MTcxLi42YmYxNjc0Njg4MmRlYjYzNjU3YjNjM2UzYmYxN2VjYjZkYzYxNWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcApAQCAtMTIxLDcg
KzEyMSw3IEBAIEpTVmFsdWUgSlNEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBSZWZQdHI8VG91Y2hMaXN0PiB0b3VjaExpc3QgPSBUb3VjaExpc3Q6OmNyZWF0
ZSgpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleGVjLT5hcmd1bWVudENvdW50KCk7
IGkrKykKLSAgICAgICAgdG91Y2hMaXN0LT5hcHBlbmQodG9Ub3VjaChleGVjLT5hcmd1bWVudChp
KSkpOworICAgICAgICB0b3VjaExpc3QtPmFwcGVuZChKU1RvdWNoOjp0b1dyYXBwZWQoZXhlYy0+
YXJndW1lbnQoaSkpKTsKIAogICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCB0
b3VjaExpc3QucmVsZWFzZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKaW5kZXggNTIxMGYxMmJiNmNlMzRlNzQ2M2Q4ZTZl
Mjg5YTRiOGQ3MDYzNzljZi4uYzdjNzQ1MDVhNmExZmFlZjBjYzdkYTliMmM2NjUzMjRlMmQ0Zjc5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1
c3RvbS5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXZlbnRUYXJnZXQqIHRhcmcKICAgICBp
ZiAodmFsdWUuaW5oZXJpdHMoSlMjI2ludGVyZmFjZU5hbWU6OmluZm8oKSkpICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlMjI2ludGVyZmFjZU5hbWUqPihh
c09iamVjdCh2YWx1ZSkpLT5pbXBsKCk7CiAKLUV2ZW50VGFyZ2V0KiB0b0V2ZW50VGFyZ2V0KEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKK0V2ZW50VGFyZ2V0KiBKU0V2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQo
SlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0Uo
RE9NV2luZG93U2hlbGwpCiAgICAgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFDRShFdmVudFRh
cmdldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhjZXB0aW9u
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3Bw
CmluZGV4IGJkZTI1YjBhNjc3MDgxZTgwYzlkNWZjY2ZiOWE3YTEyZjk3NmMxOTguLmE5YjYzOWU3
YjcwZGM4YmQwMmRjYTZkMWQ1NmIyYjllMzJlZTgzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcApAQCAtNDEsMjAgKzQxLDIwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogRXhjZXB0aW9uQmFzZSogdG9FeGNlcHRpb25CYXNlKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoRE9NQ29yZUV4Y2VwdGlvbiogZG9tRXhjZXB0aW9uID0g
dG9ET01Db3JlRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoRE9NQ29yZUV4Y2VwdGlvbiogZG9t
RXhjZXB0aW9uID0gSlNET01Db3JlRXhjZXB0aW9uOjp0b1dyYXBwZWQodmFsdWUpKQogICAgICAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4oZG9tRXhjZXB0aW9uKTsK
LSAgICBpZiAoUmFuZ2VFeGNlcHRpb24qIHJhbmdlRXhjZXB0aW9uID0gdG9SYW5nZUV4Y2VwdGlv
bih2YWx1ZSkpCisgICAgaWYgKFJhbmdlRXhjZXB0aW9uKiByYW5nZUV4Y2VwdGlvbiA9IEpTUmFu
Z2VFeGNlcHRpb246OnRvV3JhcHBlZCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihyYW5nZUV4Y2VwdGlvbik7Ci0gICAgaWYgKEV2ZW50RXhj
ZXB0aW9uKiBldmVudEV4Y2VwdGlvbiA9IHRvRXZlbnRFeGNlcHRpb24odmFsdWUpKQorICAgIGlm
IChFdmVudEV4Y2VwdGlvbiogZXZlbnRFeGNlcHRpb24gPSBKU0V2ZW50RXhjZXB0aW9uOjp0b1dy
YXBwZWQodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25C
YXNlKj4oZXZlbnRFeGNlcHRpb24pOwotICAgIGlmIChYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiog
eG1sSHR0cEV4Y2VwdGlvbiA9IHRvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24odmFsdWUpKQorICAg
IGlmIChYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiogeG1sSHR0cEV4Y2VwdGlvbiA9IEpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb246OnRvV3JhcHBlZCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPih4bWxIdHRwRXhjZXB0aW9uKTsKLSAgICBpZiAo
U1ZHRXhjZXB0aW9uKiBzdmdFeGNlcHRpb24gPSB0b1NWR0V4Y2VwdGlvbih2YWx1ZSkpCisgICAg
aWYgKFNWR0V4Y2VwdGlvbiogc3ZnRXhjZXB0aW9uID0gSlNTVkdFeGNlcHRpb246OnRvV3JhcHBl
ZCh2YWx1ZSkpCiAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2Uq
PihzdmdFeGNlcHRpb24pOwotICAgIGlmIChYUGF0aEV4Y2VwdGlvbiogcGF0aEV4Y2VwdGlvbiA9
IHRvWFBhdGhFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChYUGF0aEV4Y2VwdGlvbiogcGF0aEV4
Y2VwdGlvbiA9IEpTWFBhdGhFeGNlcHRpb246OnRvV3JhcHBlZCh2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PEV4Y2VwdGlvbkJhc2UqPihwYXRoRXhjZXB0aW9uKTsKICNp
ZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIGlmIChTUUxFeGNlcHRpb24qIHBhdGhFeGNlcHRp
b24gPSB0b1NRTEV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKFNRTEV4Y2VwdGlvbiogcGF0aEV4
Y2VwdGlvbiA9IEpTU1FMRXhjZXB0aW9uOjp0b1dyYXBwZWQodmFsdWUpKQogICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4ocGF0aEV4Y2VwdGlvbik7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MTWVkaWFF
bGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlh
RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggMWQ0MGM2MGQ4NzAyNzc1NGYwMTNjMmIyMjU3MmMwMWRj
MmM4Y2ViOS4uMjA3YWI3MWRhYmUzM2Y3NjBmMzA1ZGNiZDM5ZDBmZDljYjMyOGJjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRD
dXN0b20uY3BwCkBAIC00MCw3ICs0MCw3IEBAIHZvaWQgSlNIVE1MTWVkaWFFbGVtZW50OjpzZXRD
b250cm9sbGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUpCiAgICAgLy8gT24gc2V0dGluZywg
aXQgbXVzdCBmaXJzdCByZW1vdmUgdGhlIGVsZW1lbnQncyBtZWRpYWdyb3VwIGF0dHJpYnV0ZSwg
aWYgYW55LCAKICAgICBpbXBsKCkuc2V0TWVkaWFHcm91cChTdHJpbmcoKSk7CiAgICAgLy8gYW5k
IHRoZW4gc2V0IHRoZSBjdXJyZW50IG1lZGlhIGNvbnRyb2xsZXIgdG8gdGhlIGdpdmVuIHZhbHVl
LgotICAgIGltcGwoKS5zZXRDb250cm9sbGVyKHRvTWVkaWFDb250cm9sbGVyKHZhbHVlKSk7Cisg
ICAgaW1wbCgpLnNldENvbnRyb2xsZXIoSlNNZWRpYUNvbnRyb2xsZXI6OnRvV3JhcHBlZCh2YWx1
ZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKaW5kZXggNzRhNTg2NzJmNDdkZjdj
NmZhZGZmODQwZjkzNDc4Mjc2YmM5ODhjZC4uMDY5MDIyYmUyOTdkM2Y0ZjhkMzE1OTRhZjljZTI3
M2UzNmIwZjEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
T3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAtNjMsNyArNjMsNyBAQCB2
b2lkIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjppbmRleFNldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIGluZGV4LCBKU1ZhbAogSlNWYWx1ZSBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6
YWRkKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBIVE1MT3B0aW9uc0NvbGxlY3Rpb24mIGltcCA9
IGltcGwoKTsKLSAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gdG9IVE1MT3B0aW9uRWxl
bWVudChleGVjLT5hcmd1bWVudCgwKSk7CisgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9
IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgwKSk7CiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIp
CiAgICAgICAgIGltcC5hZGQob3B0aW9uLCBlYyk7CkBAIC04MSw3ICs4MSw3IEBAIEpTVmFsdWUg
SlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OnJlbW92ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAg
Ly8gVGhlIGFyZ3VtZW50IGNhbiBiZSBhbiBIVE1MT3B0aW9uRWxlbWVudCBvciBhbiBpbmRleC4K
ICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gZXhlYy0+YXJndW1lbnQoMCk7Ci0gICAgaWYgKEhUTUxP
cHRpb25FbGVtZW50KiBvcHRpb24gPSB0b0hUTUxPcHRpb25FbGVtZW50KGFyZ3VtZW50KSkKKyAg
ICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRv
V3JhcHBlZChhcmd1bWVudCkpCiAgICAgICAgIGltcGwoKS5yZW1vdmUob3B0aW9uKTsKICAgICBl
bHNlCiAgICAgICAgIGltcGwoKS5yZW1vdmUoYXJndW1lbnQudG9JbnQzMihleGVjKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVtZW50Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1lbnRD
dXN0b20uY3BwCmluZGV4IDQzZjY5NGI1MGFlMzM2ZWI5M2RmMzZjMThjYzUwMzVlNDU4MjBkMDUu
LjE0NmUyNDJhMDVkOGQ4YjU0ZTFlMjliMTcwZTI0NDIzMzcyYzk3MjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20u
Y3BwCkBAIC00Myw3ICs0Myw3IEBAIEpTVmFsdWUgSlNIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3Zl
KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAg
ICB9IGVsc2UgewogICAgICAgICAvLyBUaGUgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZSgpIGZ1
bmN0aW9uIGNhbiB0YWtlIGVpdGhlciBhbiBvcHRpb24gb2JqZWN0IG9yIHRoZSBpbmRleCBvZiBh
biBvcHRpb24uCi0gICAgICAgIGlmIChIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gdG9IVE1M
T3B0aW9uRWxlbWVudChleGVjLT5hcmd1bWVudCgwKSkpCisgICAgICAgIGlmIChIVE1MT3B0aW9u
RWxlbWVudCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9XcmFwcGVkKGV4ZWMtPmFy
Z3VtZW50KDApKSkKICAgICAgICAgICAgIHNlbGVjdC5yZW1vdmUob3B0aW9uKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgc2VsZWN0LnJlbW92ZUJ5SW5kZXgoZXhlYy0+YXJndW1lbnQoMCku
dG9JbnQzMihleGVjKSk7CkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgc2VsZWN0SW5kZXhTZXR0ZXIo
SFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVk
CiAgICAgICAgIHNlbGVjdC0+cmVtb3ZlQnlJbmRleChpbmRleCk7CiAgICAgZWxzZSB7CiAgICAg
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0
aW9uID0gdG9IVE1MT3B0aW9uRWxlbWVudCh2YWx1ZSk7CisgICAgICAgIEhUTUxPcHRpb25FbGVt
ZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b1dyYXBwZWQodmFsdWUpOwogICAg
ICAgICBpZiAoIW9wdGlvbikKICAgICAgICAgICAgIGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CiAg
ICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5z
cGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAppbmRleCBmNGI1NTVmODM0OWE0MDNh
YjE0NTIwMTYyMzc1NDI2MjA2ODA5ZGJkLi5jMjUwYjVmMTMxYmJjY2E3ODA0MTg2ZmFiMTc5NTdk
ZTBhMzg1MjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3Bl
Y3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAg
SlNWYWx1ZSBKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV4ZWNTdGF0
ZSogZXhlYykKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMikKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgRXZlbnQq
IGV2ZW50ID0gdG9FdmVudChleGVjLT5hcmd1bWVudCgwKSk7CisgICAgRXZlbnQqIGV2ZW50ID0g
SlNFdmVudDo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKTsKIAogICAgIEpTQXJyYXkqIGFy
cmF5ID0gYXNBcnJheShleGVjLT5hcmd1bWVudCgxKSk7CiAgICAgQ29udGV4dE1lbnUgbWVudTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcAppbmRleCBiYTllM2NjOGVkNjkyZTk0MDNlNjc4NzcxYTI1NmU3ZmFiMThjZDE1Li5kNjI3
ZjBjOGZkMjEzZGQyYTI3NmEyMWE4YjcxY2UwZDM2NWRiM2M3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC05NSw3ICs5
NSw3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgaGFuZGxlSW5pdE1lc3NhZ2VFdmVudChKU01lc3Nh
Z2VFdmVudCoganNFdmVudCwgSlNDOjpFeGVjU3RhCiAgICAgYm9vbCBjYW5jZWxhYmxlQXJnID0g
ZXhlYy0+YXJndW1lbnQoMikudG9Cb29sZWFuKGV4ZWMpOwogICAgIGNvbnN0IFN0cmluZyBvcmln
aW5BcmcgPSBleGVjLT5hcmd1bWVudCg0KS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAg
ICAgY29uc3QgU3RyaW5nIGxhc3RFdmVudElkQXJnID0gZXhlYy0+YXJndW1lbnQoNSkudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpOwotICAgIERPTVdpbmRvdyogc291cmNlQXJnID0gdG9ET01X
aW5kb3coZXhlYy0+YXJndW1lbnQoNikpOworICAgIERPTVdpbmRvdyogc291cmNlQXJnID0gSlNE
T01XaW5kb3c6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCg2KSk7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VQb3J0QXJyYXk+IG1lc3NhZ2VQb3J0czsKICAgICBPd25QdHI8QXJyYXlCdWZm
ZXJBcnJheT4gYXJyYXlCdWZmZXJzOwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoNykuaXNVbmRl
ZmluZWRPck51bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01l
c3NhZ2VQb3J0Q3VzdG9tLmNwcAppbmRleCA3NWFiZTE4Y2YzYzVmZGM1NTBlYzYyYTkyOGZmMDVk
YmM5NDA1ZDFjLi45OGE3NGI1MTkxYjI0YzUyYTA5ZWY5ZWUyOGQwNzM3MjA1MWIzMWJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNw
cApAQCAtODQsNyArODQsNyBAQCB2b2lkIGZpbGxNZXNzYWdlUG9ydEFycmF5KEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUsIE1lc3NhZ2VQb3J0QQogICAgICAgICB9CiAK
ICAgICAgICAgLy8gVmFsaWRhdGlvbiBvZiBPYmplY3RzIGltcGxlbWVudGluZyBhbiBpbnRlcmZh
Y2UsIHBlciBXZWJJREwgc3BlYyA0LjEuMTUuCi0gICAgICAgIFJlZlB0cjxNZXNzYWdlUG9ydD4g
cG9ydCA9IHRvTWVzc2FnZVBvcnQodmFsdWUpOworICAgICAgICBSZWZQdHI8TWVzc2FnZVBvcnQ+
IHBvcnQgPSBKU01lc3NhZ2VQb3J0Ojp0b1dyYXBwZWQodmFsdWUpOwogICAgICAgICBpZiAocG9y
dCkgewogICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGR1cGxpY2F0ZSBwb3J0cy4KICAgICAgICAg
ICAgIGlmIChwb3J0QXJyYXkuY29udGFpbnMocG9ydCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IGQzNjI0ZTFmMjM3M2NlOTc4MDI1YzQ2ZWJl
MjFmY2VlNDFmYTZhY2YuLmNiOWU5ZDcxMTkyMGI5MWIzOGI1YWNlMmY3YmE0NDJmNTA3MjU3YmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcApAQCAtMTM1
LDcgKzEzNSw3IEBAIGJvb2wgSlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2CiBKU1ZhbHVlIEpTTm9kZTo6aW5z
ZXJ0QmVmb3JlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBib29sIG9rID0gaW1wbCgpLmluc2VydEJlZm9yZSh0b05vZGUoZXhlYy0+YXJndW1lbnQo
MCkpLCB0b05vZGUoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7CisgICAgYm9vbCBvayA9IGltcGwo
KS5pbnNlcnRCZWZvcmUoSlNOb2RlOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpLCBKU05v
ZGU6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgxKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50
KDApOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjppbnNlcnRCZWZvcmUoRXhl
Y1N0YXRlKiBleGVjKQogSlNWYWx1ZSBKU05vZGU6OnJlcGxhY2VDaGlsZChFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcGwoKS5y
ZXBsYWNlQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgdG9Ob2RlKGV4ZWMtPmFyZ3Vt
ZW50KDEpKSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBsKCkucmVwbGFjZUNoaWxkKEpTTm9kZTo6
dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSwgSlNOb2RlOjp0b1dyYXBwZWQoZXhlYy0+YXJn
dW1lbnQoMSkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAo
b2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgxKTsKQEAgLTE1NSw3ICsxNTUsNyBA
QCBKU1ZhbHVlIEpTTm9kZTo6cmVwbGFjZUNoaWxkKEV4ZWNTdGF0ZSogZXhlYykKIEpTVmFsdWUg
SlNOb2RlOjpyZW1vdmVDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgYm9vbCBvayA9IGltcGwoKS5yZW1vdmVDaGlsZCh0b05vZGUoZXhlYy0+
YXJndW1lbnQoMCkpLCBlYyk7CisgICAgYm9vbCBvayA9IGltcGwoKS5yZW1vdmVDaGlsZChKU05v
ZGU6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOwogICAgIGlmIChvaykKICAgICAgICAgcmV0dXJuIGV4ZWMtPmFyZ3VtZW50
KDApOwpAQCAtMTY1LDcgKzE2NSw3IEBAIEpTVmFsdWUgSlNOb2RlOjpyZW1vdmVDaGlsZChFeGVj
U3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpTTm9kZTo6YXBwZW5kQ2hpbGQoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkuYXBw
ZW5kQ2hpbGQodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMpOworICAgIGJvb2wgb2sgPSBp
bXBsKCkuYXBwZW5kQ2hpbGQoSlNOb2RlOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpLCBl
Yyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAg
IHJldHVybiBleGVjLT5hcmd1bWVudCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCmluZGV4IDI4YzE2YzExZWM5NTQxMTM5OTk2NjIz
NmU1NzY5ODA3NWFiMDgxZGEuLjYyZDFiMWNjNDAzYTMxMTJiYWJmY2U5YmJmYTc5ODI4YWViMjlh
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3Vz
dG9tLmNwcApAQCAtMzUsNyArMzUsNyBAQCB2b2lkIEpTTm9kZUZpbHRlcjo6dmlzaXRBZGRpdGlv
bmFsQ2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3QoJmltcGwoKSk7CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmls
dGVyKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCitQYXNzUmVmUHRyPE5vZGVGaWx0
ZXI+IEpTTm9kZUZpbHRlcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTTm9kZUZpbHRlcjo6aW5mbygpKSkKICAg
ICAgICAgcmV0dXJuICZKU0M6OmpzQ2FzdDxKU05vZGVGaWx0ZXIqPihhc09iamVjdCh2YWx1ZSkp
LT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRs
ZUNyeXB0b0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNy
eXB0b0N1c3RvbS5jcHAKaW5kZXggZjQwNWEwM2RmNmUzMDFlZTgwNmFjYzg2ODcyNjMxZTZiZGI0
ODlkOC4uYjJhNjQ4ODhkZmE2NWNkMWQ5MzQ1M2IxZjJjNmRiMDE2OWE0MjI5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcApA
QCAtMTQ1LDcgKzE0NSw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmVuY3J5cHQoRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBl
ZChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtMTk3LDcgKzE5Nyw3IEBAIEpTVmFsdWUg
SlNTdWJ0bGVDcnlwdG86OmRlY3J5cHQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0Ny
eXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tl
eT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgx
KSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsK
IApAQCAtMjQ4LDcgKzI0OCw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OnNpZ24oRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBl
ZChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApAQCAtMjk5LDcgKzI5OSw3IEBAIEpTVmFsdWUg
SlNTdWJ0bGVDcnlwdG86OnZlcmlmeShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5
cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5
PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwog
CkBAIC02MDAsNyArNjAwLDcgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZXhwb3J0S2V5KEV4
ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0g
ICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dy
YXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAg
ICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTYzMCwxMSArNjMwLDExIEBAIEpT
VmFsdWUgSlNTdWJ0bGVDcnlwdG86OndyYXBLZXkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkg
PSB0b0NyeXB0b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENy
eXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChleGVjLT51bmNoZWNrZWRBcmd1
bWVudCgxKSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihl
eGVjKTsKIAotICAgIFJlZlB0cjxDcnlwdG9LZXk+IHdyYXBwaW5nS2V5ID0gdG9DcnlwdG9LZXko
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IHdyYXBw
aW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgy
KSk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsK
IApAQCAtNzEzLDcgKzcxMyw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAot
ICAgIFJlZlB0cjxDcnlwdG9LZXk+IHVud3JhcHBpbmdLZXkgPSB0b0NyeXB0b0tleShleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgyKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4gdW53cmFwcGluZ0tl
eSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikpOwog
ICAgIGlmICghdW53cmFwcGluZ0tleSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4
ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggYzVmMjE2MTI5YWMzOWYwY2ExNzVj
MjY1ZmMxMjBmM2QyZmQ0NjE1NS4uODAwMjgwZDIzZDMwOTAxYjRlZmYzZDAzZjMxMjdhYWViYWRl
ZmY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIEpTVmFs
dWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hhZGVycyhFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQgPSBpbXBsKCk7Ci0gICAg
V2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkpOworICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQcm9ncmFtOjp0
b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJvZ3JhbSAm
JiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIFZlY3RvcjxSZWZQdHI8V2ViR0xT
aGFkZXI+PiBzaGFkZXJzOwpAQCAtMzQxLDcgKzM0MSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmdldFByb2dyYW1QYXJhbWV0ZXIoRXhlY1N0YXRlKiBleGVjKQogCiAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0
ID0gaW1wbCgpOwotICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBK
U1dlYkdMUHJvZ3JhbTo6dG9XcmFwcGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAg
ICBpZiAoIXByb2dyYW0gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVk
T3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICB1bnNp
Z25lZCBwbmFtZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CkBA
IC0zNjksNyArMzY5LDcgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U2hh
ZGVyUGFyYW1ldGVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQm
IGNvbnRleHQgPSBpbXBsKCk7CiAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5p
c1VuZGVmaW5lZE9yTnVsbCgpICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pbmhlcml0
cyhKU1dlYkdMU2hhZGVyOjppbmZvKCkpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3Io
ZXhlYyk7Ci0gICAgV2ViR0xTaGFkZXIqIHNoYWRlciA9IHRvV2ViR0xTaGFkZXIoZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkpOworICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSBKU1dlYkdMU2hh
ZGVyOjp0b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIHVuc2lnbmVk
IHBuYW1lID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpA
QCAtNDA1LDEwICs0MDUsMTAgQEAgSlNWYWx1ZSBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
VW5pZm9ybShFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAg
ICBXZWJHTFJlbmRlcmluZ0NvbnRleHQmIGNvbnRleHQgPSBpbXBsKCk7Ci0gICAgV2ViR0xQcm9n
cmFtKiBwcm9ncmFtID0gdG9XZWJHTFByb2dyYW0oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkp
OworICAgIFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSA9IEpTV2ViR0xQcm9ncmFtOjp0b1dyYXBwZWQo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgIGlmICghcHJvZ3JhbSAmJiAhZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJu
IHRocm93VHlwZUVycm9yKGV4ZWMpOwotICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlv
biA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwor
ICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRp
b246OnRvV3JhcHBlZChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgaWYgKCFsb2Nh
dGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkuaXNVbmRlZmluZWRPck51bGwoKSkK
ICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIFdlYkdMR2V0SW5mbyBp
bmZvID0gY29udGV4dC5nZXRVbmlmb3JtKHByb2dyYW0sIGxvY2F0aW9uLCBlYyk7CkBAIC00Nzgs
NyArNDc4LDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25mKERhdGFGdW5jdGlv
blRvQ2FsbCBmLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgV2UKICAgICBsb25nIGluZGV4ID0gLTE7
CiAgICAgCiAgICAgaWYgKGZ1bmN0aW9uRm9yVW5pZm9ybShmKSkgewotICAgICAgICBsb2NhdGlv
biA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwor
ICAgICAgICBsb2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChleGVj
LT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMt
PnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgfSBlbHNlCkBAIC01NjQsNyArNTY0LDcg
QEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25pKERhdGFGdW5jdGlvblRvQ2FsbCBm
LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgV2UKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
ICE9IDIpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNy
ZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKIAotICAgIFdlYkdMVW5pZm9ybUxv
Y2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24oZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMCkpOworICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IEpTV2Vi
R0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7
CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNVbmRl
ZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAK
QEAgLTYyNCw3ICs2MjQsNyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGRhdGFGdW5jdGlvbk1hdHJp
eChEYXRhRnVuY3Rpb25NYXRyaXhUb0NhbGwgZiwgSlNDOjpFeGVjU3RhdAogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgIT0gMykKICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dF
eGNlcHRpb24oZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogCi0g
ICAgV2ViR0xVbmlmb3JtTG9jYXRpb24qIGxvY2F0aW9uID0gdG9XZWJHTFVuaWZvcm1Mb2NhdGlv
bihleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xVbmlmb3JtTG9jYXRpb24q
IGxvY2F0aW9uID0gSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbjo6dG9XcmFwcGVkKGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIWxvY2F0aW9uICYmICFleGVjLT51bmNoZWNrZWRB
cmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoZXhlYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKaW5kZXggYzllZGNmYThiNGQxYzIzNzQzNzgyMDYxZjcy
N2YxYzIzZDVkMmMxMS4uODE2MWIzMjI2NGYwNzE1MTMxNTI2NWM4ZmM3ZDM4NWJiOGMxMDljMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAKQEAgLTE0OCwxMSArMTQ4LDExIEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVz
dDo6c2VuZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKHZhbC5pc1VuZGVmaW5lZE9yTnVsbCgp
KQogICAgICAgICBpbXBsKCkuc2VuZChlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpT
RG9jdW1lbnQ6OmluZm8oKSkpCi0gICAgICAgIGltcGwoKS5zZW5kKHRvRG9jdW1lbnQodmFsKSwg
ZWMpOworICAgICAgICBpbXBsKCkuc2VuZChKU0RvY3VtZW50Ojp0b1dyYXBwZWQodmFsKSwgZWMp
OwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0Jsb2I6OmluZm8oKSkpCi0gICAgICAgIGlt
cGwoKS5zZW5kKHRvQmxvYih2YWwpLCBlYyk7CisgICAgICAgIGltcGwoKS5zZW5kKEpTQmxvYjo6
dG9XcmFwcGVkKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNET01Gb3Jt
RGF0YTo6aW5mbygpKSkKLSAgICAgICAgaW1wbCgpLnNlbmQodG9ET01Gb3JtRGF0YSh2YWwpLCBl
Yyk7CisgICAgICAgIGltcGwoKS5zZW5kKEpTRE9NRm9ybURhdGE6OnRvV3JhcHBlZCh2YWwpLCBl
Yyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTQXJyYXlCdWZmZXI6OmluZm8oKSkpCiAg
ICAgICAgIGltcGwoKS5zZW5kKHRvQXJyYXlCdWZmZXIodmFsKSwgZWMpOwogICAgIGVsc2UgaWYg
KHZhbC5pbmhlcml0cyhKU0FycmF5QnVmZmVyVmlldzo6aW5mbygpKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXgg
MjhmMjJkYWIwZGYxYmUwYWE3YjVlMmYxNmE0NGQxM2Q2ZDc3NmJmOS4uNDFkMThlNjA1NDE5MGRi
NjY5ZDBhYjk0NjNiMDgzNjk2MTRhMDk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC03ODQsMTIgKzc4NCwxMiBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHdyaXRlKG9iai0+aW50ZXJuYWxWYWx1ZSgpLmFz
TnVtYmVyKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgaWYgKEZpbGUqIGZpbGUgPSB0b0ZpbGUob2JqKSkgeworICAgICAgICAgICAg
aWYgKEZpbGUqIGZpbGUgPSBKU0ZpbGU6OnRvV3JhcHBlZChvYmopKSB7CiAgICAgICAgICAgICAg
ICAgd3JpdGUoRmlsZVRhZyk7CiAgICAgICAgICAgICAgICAgd3JpdGUoZmlsZSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoRmls
ZUxpc3QqIGxpc3QgPSB0b0ZpbGVMaXN0KG9iaikpIHsKKyAgICAgICAgICAgIGlmIChGaWxlTGlz
dCogbGlzdCA9IEpTRmlsZUxpc3Q6OnRvV3JhcHBlZChvYmopKSB7CiAgICAgICAgICAgICAgICAg
d3JpdGUoRmlsZUxpc3RUYWcpOwogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGxp
c3QtPmxlbmd0aCgpOwogICAgICAgICAgICAgICAgIHdyaXRlKGxlbmd0aCk7CkBAIC03OTcsNyAr
Nzk3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgd3JpdGUobGlzdC0+aXRlbShp
KSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAoQmxvYiogYmxvYiA9IHRvQmxvYihvYmopKSB7CisgICAgICAgICAgICBpZiAoQmxv
YiogYmxvYiA9IEpTQmxvYjo6dG9XcmFwcGVkKG9iaikpIHsKICAgICAgICAgICAgICAgICB3cml0
ZShCbG9iVGFnKTsKICAgICAgICAgICAgICAgICBtX2Jsb2JVUkxzLmFwcGVuZChibG9iLT51cmwo
KSk7CiAgICAgICAgICAgICAgICAgd3JpdGUoYmxvYi0+dXJsKCkpOwpAQCAtODA1LDcgKzgwNSw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgd3JpdGUoYmxvYi0+c2l6ZSgpKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChJ
bWFnZURhdGEqIGRhdGEgPSB0b0ltYWdlRGF0YShvYmopKSB7CisgICAgICAgICAgICBpZiAoSW1h
Z2VEYXRhKiBkYXRhID0gSlNJbWFnZURhdGE6OnRvV3JhcHBlZChvYmopKSB7CiAgICAgICAgICAg
ICAgICAgd3JpdGUoSW1hZ2VEYXRhVGFnKTsKICAgICAgICAgICAgICAgICB3cml0ZShkYXRhLT53
aWR0aCgpKTsKICAgICAgICAgICAgICAgICB3cml0ZShkYXRhLT5oZWlnaHQoKSk7CkBAIC04NjUs
NyArODY1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VzczsKICAg
ICAgICAgICAgIH0KICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSAgICAgICAgICAgIGlmIChD
cnlwdG9LZXkqIGtleSA9IHRvQ3J5cHRvS2V5KG9iaikpIHsKKyAgICAgICAgICAgIGlmIChDcnlw
dG9LZXkqIGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQob2JqKSkgewogICAgICAgICAgICAg
ICAgIHdyaXRlKENyeXB0b0tleVRhZyk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+
IHNlcmlhbGl6ZWRLZXk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gZHVtbXlCbG9i
VVJMczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggOGQ1NGRhMTNjNGQ5ZjU3ODYwNDBmYzRiNTM5Y2FjMDZjMTg0ZWUwMC4u
YmZlODFkODcxMTc2MGZhN2E1YTZiMDkzODA4MTc0NWVlNmQ1YmQ3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTg3NCw2
ICs4NzQsMTcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlND
OjpKU0dsb2JhbE9iamVjdCopO1xuIik7CiAgICAgfQogCisgICAgIyBKU1ZhbHVlIHRvIGltcGxl
bWVudGF0aW9uIHR5cGUKKyAgICBpZiAoISRoYXNQYXJlbnQgfHwgJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSB7CisgICAgICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZUZpbHRlciIpIHsKKyAgICAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9XcmFwcGVk
KEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUpO1xuIik7CisgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01TdHJpbmdMaXN0IikgeworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiB0b1dyYXBwZWQoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpO1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAkaW1wbFR5cGUqIHRvV3Jh
cHBlZChKU0M6OkpTVmFsdWUpO1xuIik7CisgICAgICAgIH0KKyAgICB9CisKICAgICAkaGVhZGVy
VHJhaWxpbmdJbmNsdWRlc3siJHtjbGFzc05hbWV9Q3VzdG9tLmgifSA9IDEgaWYgJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tSGVhZGVyIn07CiAKICAgICBteSAkbmFt
ZWRHZXR0ZXJGdW5jdGlvbiA9IEdldE5hbWVkR2V0dGVyRnVuY3Rpb24oJGludGVyZmFjZSk7CkBA
IC0xMTY2LDE1ICsxMTc3LDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKFNob3VsZEdl
bmVyYXRlVG9KU0RlY2xhcmF0aW9uKCRoYXNQYXJlbnQsICRpbnRlcmZhY2UpKSB7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgJGltcGxUeXBlKik7XG4iKTsKICAg
ICB9Ci0gICAgaWYgKCEkaGFzUGFyZW50IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QifSkgewotICAgICAgICBpZiAoJGludGVyZmFj
ZU5hbWUgZXEgIk5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIoSlNDOjpWTSYsIEpTQzo6SlNW
YWx1ZSk7XG4iKTsKLSAgICAgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0cmlu
Z0xpc3QiKSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiUGFzc1JlZlB0cjxE
T01TdHJpbmdMaXN0PiB0b0RPTVN0cmluZ0xpc3QoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFs
dWUpO1xuIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiV0VCQ09SRV9FWFBPUlQgJGltcGxUeXBlKiB0byR7aW50ZXJmYWNlTmFtZX0oSlNDOjpK
U1ZhbHVlKTtcbiIpOwotICAgICAgICB9Ci0gICAgfQogICAgIGlmICgkdXNlc1RvSlNOZXdseUNy
ZWF0ZWR7JGludGVyZmFjZU5hbWV9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJK
U0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiwgJGludGVyZmFjZU5hbWUqKTtcbiIpOwogICAgIH0KQEAgLTMxMTIsNyArMzExNCw3
IEBAIEVORAogICAgIH0KIAogICAgIGlmICgoISRoYXNQYXJlbnQgb3IgJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCJ9KSBhbmQgISRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbVRvTmF0aXZlT2JqZWN0In0pIHsK
LSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIkaW1wbFR5cGUqIHRvJHtpbnRlcmZhY2VOYW1l
fShKU0M6OkpTVmFsdWUgdmFsdWUpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIk
aW1wbFR5cGUqICR7Y2xhc3NOYW1lfTo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1ZSlcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAoYXV0byogd3JhcHBlciA9ICIgLiBHZXRDYXN0aW5nSGVscGVyRm9y
VGhpc09iamVjdCgkaW50ZXJmYWNlKSAuICIodmFsdWUpKVxuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTtcbiIpOwpAQCAtMzI0
Myw3ICszMjQ1LDcgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAKICAgICAgICAgaWYg
KCRhcmdUeXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7CiAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gY3VzdG9tUmVzb2x2ZXI7XG4i
KTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBYUGF0aE5TUmVzb2x2ZXIq
IHJlc29sdmVyID0gdG9YUGF0aE5TUmVzb2x2ZXIoZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkp
O1xuIik7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgWFBhdGhOU1Jlc29s
dmVyKiByZXNvbHZlciA9IEpTWFBhdGhOU1Jlc29sdmVyOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1l
bnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgaWYgKCFyZXNvbHZlcikge1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgICAgIGN1c3RvbVJlc29sdmVyID0gSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6OmNyZWF0
ZShleGVjLCBleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSk7XG4iKTsKICAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSlcbiIpOwpAQCAtMzI5Niw3ICszMjk4LDcgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0No
ZWNrCiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGZvciAodW5zaWdu
ZWQgaSA9ICRhcmdzSW5kZXgsIGNvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOyBpIDwgY291
bnQ7ICsraSkge1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICBpZiAoIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpLmluaGVyaXRzKEpTJHthcmdUeXBl
fTo6aW5mbygpKSlcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCBpLCBcIiRuYW1l
XCIsIFwiJGludGVyZmFjZU5hbWVcIiwgJHF1b3RlZEZ1bmN0aW9uTmFtZSwgXCIkYXJnVHlwZVwi
KTtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJG5h
bWUuYXBwZW5kKHRvJGFyZ1R5cGUoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTtcbiIpOwor
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJG5hbWUuYXBwZW5k
KEpTJHthcmdUeXBlfTo6dG9XcmFwcGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7XG4i
KTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxuIikKICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IFZlY3RvcjwkbmF0aXZlRWxlbWVudFR5cGU+ICRuYW1lID0gdG9OYXRpdmVBcmd1bWVudHM8JG5h
dGl2ZUVsZW1lbnRUeXBlPihleGVjLCAkYXJnc0luZGV4KTtcbiIpOwpAQCAtMzg0OSw3ICszODUx
LDcgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogCiAgICAgaWYgKCR0eXBlIGVxICJOb2RlRmlsdGVy
IikgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMkdHlwZS5oIiwgJGNvbmRpdGlvbmFs
KTsKLSAgICAgICAgcmV0dXJuICJ0byR0eXBlKGV4ZWMtPnZtKCksICR2YWx1ZSkiOworICAgICAg
ICByZXR1cm4gIkpTJHt0eXBlfTo6dG9XcmFwcGVkKGV4ZWMtPnZtKCksICR2YWx1ZSkiOwogICAg
IH0KIAogICAgIGlmICgkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIikgewpAQCAtMzg4
MSw3ICszODgzLDcgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgIGlmICgkYXJyYXlPclNlcXVl
bmNlVHlwZSkgewogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUmVmUHRyVHlwZSgkYXJy
YXlPclNlcXVlbmNlVHlwZSkpIHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR7
YXJyYXlPclNlcXVlbmNlVHlwZX0uaCIpOwotICAgICAgICAgICAgcmV0dXJuICIodG9SZWZQdHJO
YXRpdmVBcnJheTwke2FycmF5T3JTZXF1ZW5jZVR5cGV9LCBKUyR7YXJyYXlPclNlcXVlbmNlVHlw
ZX0+KGV4ZWMsICR2YWx1ZSwgJnRvJHthcnJheU9yU2VxdWVuY2VUeXBlfSkpIjsKKyAgICAgICAg
ICAgIHJldHVybiAiKHRvUmVmUHRyTmF0aXZlQXJyYXk8JHthcnJheU9yU2VxdWVuY2VUeXBlfSwg
SlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9PihleGVjLCAkdmFsdWUsICZKUyR7YXJyYXlPclNlcXVl
bmNlVHlwZX06OnRvV3JhcHBlZCkpIjsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gInRvTmF0
aXZlQXJyYXk8IiAuIEdldE5hdGl2ZVZlY3RvcklubmVyVHlwZSgkYXJyYXlPclNlcXVlbmNlVHlw
ZSkgLiAiPihleGVjLCAkdmFsdWUpIjsKICAgICB9CkBAIC0zODkyLDcgKzM4OTQsNyBAQCBzdWIg
SlNWYWx1ZVRvTmF0aXZlCiAKICAgICAjIERlZmF1bHQsIGFzc3VtZSBhdXRvZ2VuZXJhdGVkIHR5
cGUgY29udmVyc2lvbiByb3V0aW5lcwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgi
LCAkY29uZGl0aW9uYWwpOwotICAgIHJldHVybiAidG8kdHlwZSgkdmFsdWUpIjsKKyAgICByZXR1
cm4gIkpTJHt0eXBlfTo6dG9XcmFwcGVkKCR2YWx1ZSkiOwogfQogCiBzdWIgTmF0aXZlVG9KU1Zh
bHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDcxOTM4ZmJkZWJjNTU4
YzI3NWM5NWFhYzYzMTdhZTJkNWRiODQwNWUuLjBkYmEzMTE1YjllYzhlYmU1YWFmMTMxMDNhODJk
ODViOTE1MDBlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0yMTQs
NyArMjE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RBY3RpdmVET01P
YmplY3RQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3QKICAgICBUZXN0QWN0aXZlRE9NT2Jq
ZWN0JiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBOb2RlKiBuZXh0Q2hpbGQodG9Ob2RlKGV4
ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgTm9kZSogbmV4dENoaWxkKEpTTm9kZTo6dG9XcmFwcGVk
KGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBpbXBsLmV4Y2l0aW5nRnVuY3Rpb24obmV4dENoaWxkKTsKQEAgLTI4OSw3ICsyODksNyBAQCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRlc3RBY3RpdmVETwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVz
dEFjdGl2ZURPTU9iamVjdD4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEFjdGl2ZURP
TU9iamVjdCogdG9UZXN0QWN0aXZlRE9NT2JqZWN0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RB
Y3RpdmVET01PYmplY3QqIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6dG9XcmFwcGVkKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0QWN0aXZlRE9NT2JqZWN0Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmlt
cGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCA1NWMyZWY5NGUyNmMyMThi
MTAxMjYxYWQ5ZTExMTRlMDkxZTQ2ZjA3Li4zYTQzYTBlNzRkY2I4OTM3YTlhNDQ4MmVmMDlmZDc0
NGE0NWZmMGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCkBAIC0zOCw2ICszOCw3
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUo
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3Rh
dGljIFRlc3RBY3RpdmVET01PYmplY3QqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEFjdGl2ZURPTU9iamVjdCgp
OwpAQCAtOTMsNyArOTQsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCwgVGVzdEFjdGl2ZURPTU9iamVjdCopCiB9CiAKIFdFQkNPUkVfRVhQT1JU
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBU
ZXN0QWN0aXZlRE9NT2JqZWN0Kik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0QWN0aXZlRE9NT2JqZWN0
KiB0b1Rlc3RBY3RpdmVET01PYmplY3QoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAppbmRleCA1Njhj
OWRlODRlZTJjZjdlMmUxMTJjN2ExNmQwN2M5N2EzYWRjMmRkLi4xNDQ1OWZiZGI0OWU3NzcxNGUz
Nzg3YWNkZTBjNjg1NDdmNjljNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDdXN0b21OYQogICAgIHJl
dHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyPihnbG9iYWxPYmpl
Y3QsIGltcGwpOwogfQogCi1UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvVGVzdEN1c3RvbU5hbWVk
R2V0dGVyKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RDdXN0b21OYW1lZEdldHRlciogSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXI6OnRvV3JhcHBlZChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
Kj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXggMWViMzVkODJlMDgzZjE3OWM1MDZjMTc1NzJmMTc2
Njc3ZjJjOTc1MC4uOWM1NDY1M2Y1ZDViYjg4NDJlYWUzM2JmMmVhNzRjZThlYzc3YmJmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90
b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEN1
c3RvbU5hbWVkR2V0dGVyKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwpAQCAtOTcsNyArOTgsNiBAQCBpbmxpbmUgdm9pZCog
d3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDdXN0b21OYW1lZEdldHRlciopOwotV0VCQ09S
RV9FWFBPUlQgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b1Rlc3RDdXN0b21OYW1lZEdldHRlcihK
U0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmNwcAppbmRleCA4ZWFmYTA3ZGQ3ZTM2ZTJjZDViOTFmZTY2MzIzZmQ2
YzkzMDg4MmEyLi5mNmFjNjQ2N2QyMjVmNGI5YjdkYjc3MjFlNGIyMGU1MGFjYzgxYmQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0yOTIsNyArMjkyLDcgQEAgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0RXZlbnRDb24KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RF
dmVudENvbnN0cnVjdG9yPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0RXZlbnRDb25z
dHJ1Y3RvciogdG9UZXN0RXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0
RXZlbnRDb25zdHJ1Y3RvciogSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6dG9XcmFwcGVkKEpTQzo6
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVy
LT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAppbmRleCA1YmJlZWM4MGU0
Y2M0YjM4YTE5NzcxMTk1YWMxZGQ0Njk3NmIxMzE2Li5jM2UzMzI1NjMxODZhZTU0MWU1N2ZjNmFj
MzgzZmNhNWEzOWI0ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKQEAgLTQw
LDYgKzQwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVBy
b3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6
OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
KyAgICBzdGF0aWMgVGVzdEV2ZW50Q29uc3RydWN0b3IqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUp
OwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0RXZl
bnRDb25zdHJ1Y3RvcigpOwogCkBAIC05Myw3ICs5NCw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVy
Q29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0RXZlbnRDb25zdHJ1Y3RvciopCiB9
CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBUZXN0RXZlbnRDb25zdHJ1Y3RvciopOwotV0VCQ09SRV9FWFBPUlQg
VGVzdEV2ZW50Q29uc3RydWN0b3IqIHRvVGVzdEV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU1ZhbHVl
KTsKIAogYm9vbCBmaWxsVGVzdEV2ZW50Q29uc3RydWN0b3JJbml0KFRlc3RFdmVudENvbnN0cnVj
dG9ySW5pdCYsIEpTRGljdGlvbmFyeSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRl
eCBkYjMzM2QyNDQ0YzM4ZTRlNDZhYjQ3YmI1Yzg5YmNjOGIzZmE4YTU0Li5lODUwZGEwZTJiNjA5
OGUxY2VlNjAwY2QyODc0YjYxZWMzYWY3Y2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAK
QEAgLTI5NCw3ICsyOTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2
ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25EaXNwYXRjaEV2ZW50KEV4ZQogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBFdmVudCogZXZ0KHRvRXZlbnQoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAg
ICBFdmVudCogZXZ0KEpTRXZlbnQ6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgwKSkpOwogICAg
IGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xl
YW4oaW1wbC5kaXNwYXRjaEV2ZW50KGV2dCwgZWMpKTsKQEAgLTM2NCw3ICszNjQsNyBAQCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRlc3RFdmVudFRhcgogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV2
ZW50VGFyZ2V0PihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0RXZlbnRUYXJnZXQqIHRv
VGVzdEV2ZW50VGFyZ2V0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RFdmVudFRhcmdldCogSlNU
ZXN0RXZlbnRUYXJnZXQ6OnRvV3JhcHBlZChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYg
KGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4odmFsdWUp
KQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgK
aW5kZXggZWIwYTJkOTliZWNjYWI3ZTUyMzExOGU1NGRiY2FkNDkyMWY0NDgwMC4uMTlhOTk4MjMx
NWJjYTk4YzI3MDY5ZWZiZGJhM2VjZDc0MmEzZDFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgK
QEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNy
ZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKKyAgICBzdGF0aWMgVGVzdEV2ZW50VGFyZ2V0KiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVl
KTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwpAQCAtMTAxLDcgKzEw
Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxk
LCBUZXN0RXZlbnRUYXJnZXQqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEV2ZW50VGFyZ2V0Kik7
Ci1XRUJDT1JFX0VYUE9SVCBUZXN0RXZlbnRUYXJnZXQqIHRvVGVzdEV2ZW50VGFyZ2V0KEpTQzo6
SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNw
cAppbmRleCA0YWRlNzZlOTE1YjM4Y2E1ZjA3Yjc1OGE2MmZjNWM5MThlOWJiOTYzLi5iZjhmZTEy
ZDZiZWFjYjc4MzI4YjAyMDVlMTM3MmQxM2YwMWE4N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNw
cApAQCAtMjM5LDcgKzIzOSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEV4Y2VwdGlvCiAgICAgcmV0dXJu
IGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXhjZXB0aW9uPihnbG9iYWxPYmplY3QsIGltcGwpOwog
fQogCi1UZXN0RXhjZXB0aW9uKiB0b1Rlc3RFeGNlcHRpb24oSlNDOjpKU1ZhbHVlIHZhbHVlKQor
VGVzdEV4Y2VwdGlvbiogSlNUZXN0RXhjZXB0aW9uOjp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZh
bHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNl
cHRpb24qPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2Vw
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5oCmluZGV4IDM5ODQ1NzRlOTg3ZjliODExODRiMGI2ZmNhM2JlMWU3NzZmYTFhNGUu
LjljZjllZGQ4YmFiYmRiN2EzZjliOWE3MWZjMDAyNTkzZjkwNzUwOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0
aW9uLmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmpl
Y3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEV4Y2VwdGlvbiogdG9XcmFwcGVkKEpTQzo6SlNW
YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0RXhj
ZXB0aW9uKCk7CkBAIC05NCw3ICs5NSw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChE
T01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0RXhjZXB0aW9uKikKIH0KIAogV0VCQ09SRV9FWFBP
UlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCos
IFRlc3RFeGNlcHRpb24qKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3RFeGNlcHRpb24qIHRvVGVzdEV4
Y2VwdGlvbihKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCA0MjdhYmE4ZDQwZWI0ZDRk
ZDhiZWI3NzkwNDc3OTY1YjE3YWViYjJmLi5lYjRiOTExOWJmNTI3NGU1MGRiMDY4Y2E3YmRkNjRi
NzE4MDA4ZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCkBA
IC0yMTEsNyArMjExLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0R2VuZXJhdGUKICAgICByZXR1cm4gY3Jl
YXRlTmV3V3JhcHBlcjxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPihnbG9iYWxPYmplY3QsIGlt
cGwpOwogfQogCi1UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogdG9UZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZShKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogSlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZTo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAppbmRleCBkZjdiZGRiYjQ5MjdmMDQ4ZjhiZmQ5
OGI4MmE3ZDc3NzA2NjA2MzA4Li5kMThlMTBjNTIzY2YxYWMzMTZlMTBjN2ZmOTFmNWQyOWFmNzQy
YjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKQEAgLTM4LDYgKzM4
LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlw
ZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBz
dGF0aWMgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwog
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZSgpOwogCkBAIC05MSw3ICs5Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVy
Q29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSop
CiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqLCBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSopOwotV0VCQ09SRV9F
WFBPUlQgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRvVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUo
SlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCmluZGV4IGIxNDNjYzRlMzYyMDRlZjdkZTY2YTBkMTZmZWY1M2M0MTZhMmZhNDMuLmU2
MWFjNjRjM2ZlYzA0MTNlZDQ4YTFjMzNkNmYzZjFlZjE1ZDc1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCkBAIC03MjQsNyArNzI0LDcgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1l
bnRzTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmMKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0SW50ZXJmYWNlJiBpbXBsID0gY2FzdGVkVGhpcy0+
aW1wbCgpOwotICAgIE5vZGUqIG5hdGl2ZVZhbHVlKHRvTm9kZSh2YWx1ZSkpOworICAgIE5vZGUq
IG5hdGl2ZVZhbHVlKEpTTm9kZTo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0SW1w
bGVtZW50c05vZGUobmF0aXZlVmFsdWUpOwpAQCAtNzk1LDcgKzc5NSw3IEBAIHZvaWQgc2V0SlNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBFCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgVGVzdEludGVyZmFjZSYg
aW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBOb2RlKiBuYXRpdmVWYWx1ZSh0b05vZGUo
dmFsdWUpKTsKKyAgICBOb2RlKiBuYXRpdmVWYWx1ZShKU05vZGU6OnRvV3JhcHBlZCh2YWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
bjsKICAgICBUZXN0U3VwcGxlbWVudGFsOjpzZXRTdXBwbGVtZW50YWxOb2RlKCZpbXBsLCBuYXRp
dmVWYWx1ZSk7CkBAIC04NDEsNyArODQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkltcGxlbWVudHNNZXRob2QyKEUKICAg
ICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgwKS5pc0VtcHR5KCkgPyBTdHJp
bmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0
T2JqKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6
dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDEpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwuaW1wbGVtZW50c01ldGhvZDIoc2NyaXB0Q29udGV4
dCwgc3RyQXJnLCBvYmpBcmcsIGVjKSkpOwpAQCAtOTA3LDcgKzkwNyw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVt
ZW50YWxNZXRob2QyCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMCku
aXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9i
aiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSkpOworICAgIFRlc3RPYmoqIG9i
akFyZyhKU1Rlc3RPYmo6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgxKSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNh
c3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihUZXN0U3VwcGxlbWVudGFsOjpz
dXBwbGVtZW50YWxNZXRob2QyKCZpbXBsLCBzY3JpcHRDb250ZXh0LCBzdHJBcmcsIG9iakFyZywg
ZWMpKSk7CkBAIC05NzMsNyArOTczLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0SW50ZXJmYWMKICAgICBy
ZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RJbnRlcmZhY2U+KGdsb2JhbE9iamVjdCwgaW1w
bCk7CiB9CiAKLVRlc3RJbnRlcmZhY2UqIHRvVGVzdEludGVyZmFjZShKU0M6OkpTVmFsdWUgdmFs
dWUpCitUZXN0SW50ZXJmYWNlKiBKU1Rlc3RJbnRlcmZhY2U6OnRvV3JhcHBlZChKU0M6OkpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dEludGVyZmFjZSo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmgKaW5kZXggN2RkOGQwMzNlNDcxYjEyOTMyODhlNjk3MDk5ZGIzYzdmNTc3
MjIwMi4uOWQxMTZhYzNmMWNkOGY3NjBiNjEyMDFiMTFjZDA4YmI2NmU1MTBjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0SW50ZXJmYWNlKiB0b1dyYXBwZWQoSlND
OjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09i
amVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBib29sIHNob3VsZFRocm93
KTsKQEAgLTEyMCw3ICsxMjEsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCwgVGVzdEludGVyZmFjZSopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0
SW50ZXJmYWNlKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0SW50ZXJmYWNlKiB0b1Rlc3RJbnRlcmZh
Y2UoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggM2U5MzExZTUzMGI1YzNh
NmZkNTIxZmQ1NDA5MDQ0YzhjMTY0NGQzYy4uN2QzMWExNTEzZjJjYWI5NDViZjAxMTRhNDFhMTQ2
ZjFiZDdjMDA2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE1lZGlhUXVlCiAgICAgcmV0
dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4oZ2xvYmFs
T2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHRvVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIqIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OnRvV3JhcHBlZChKU0M6
OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAm
d3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKaW5kZXggNTU3MzVlYjMyMzFkNzRjYzY0ZWFlYjNkYzk3Y2Q4NGEwY2ZlZTk0YS4uNTJkOGQ4
NDRmYzk2YWZlYzNkN2ZjOGE0MmQxNzRjMDgwMGM4OGJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIo
KTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKQogfQogCiBXRUJD
T1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiwgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqKTsKLVdFQkNPUkVfRVhQT1JUIFRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0b1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKEpT
Qzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IDc1NDZkY2NkMmE5MmMxMjFhODRkNGY4ZTUyZWQ2ODg4
ZjE2OGQ4NDUuLjdlNTkzMTgwMjE4YzM0ZTViNjQ3NGExZTQ2OGNmZmVhYWM1MzBkZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRlc3ROYW1lZENvbgogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE5h
bWVkQ29uc3RydWN0b3I+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3ROYW1lZENvbnN0
cnVjdG9yKiB0b1Rlc3ROYW1lZENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RO
YW1lZENvbnN0cnVjdG9yKiBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjp0b1dyYXBwZWQoSlNDOjpK
U1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3ROYW1lZENvbnN0cnVjdG9yKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXIt
PmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCmluZGV4IGVjZTk4ODc3NTll
MDg2ODA0ZDliZGM1YTVhNGY2NmUyNGNmMzdiNjAuLmVmODIzYTJmNDcxYTY0YjAwM2ZmNGI3MmE5
NzAxMjE0N2NjMGUzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaApAQCAtMzgs
NiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwor
ICAgIHN0YXRpYyBUZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7
CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yKCk7CiAKQEAgLTkyLDcgKzkzLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJD
b250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3ROYW1lZENvbnN0cnVjdG9yKikKIH0K
IAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCosIFRlc3ROYW1lZENvbnN0cnVjdG9yKik7Ci1XRUJDT1JFX0VYUE9SVCBU
ZXN0TmFtZWRDb25zdHJ1Y3RvciogdG9UZXN0TmFtZWRDb25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUp
OwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlz
dGljLmNwcAppbmRleCBlMTczYWFjZjc4ODc0YWIzYWUwMDgzODZhNGUxODkxYTY0Yjc3MTZmLi5i
NjFiZGEwNmYyNDRkYWRhZGE3MzY1ZDQ4Y2FmNGZmZGYzZTBkZDQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5vbmRldGVybWluaXN0aWMuY3BwCkBAIC01MzQsNyArNTM0LDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0
Tm9uZGV0ZXIKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3ROb25kZXRlcm1pbmlz
dGljPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0Tm9uZGV0ZXJtaW5pc3RpYyogdG9U
ZXN0Tm9uZGV0ZXJtaW5pc3RpYyhKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0Tm9uZGV0ZXJtaW5p
c3RpYyogSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpYyo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuaAppbmRleCBmNTJlYmJkMTMzMDAxZDA3Mzc1ZWM0
NGY1ZDhmN2YxOGVhZDM2NWFiLi4wOTkxMTdkMWJhYTFiOTEwZWI0N2UwNmE5YWEyYzhiZWI2ZmVh
NTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKQEAgLTM4LDYgKzM4LDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBn
ZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMg
VGVzdE5vbmRldGVybWluaXN0aWMqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRp
YyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
YygpOwogCkBAIC05MSw3ICs5Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01X
cmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyopCiB9CiAKIFdFQkNPUkVf
RVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCBUZXN0Tm9uZGV0ZXJtaW5pc3RpYyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdE5vbmRldGVy
bWluaXN0aWMqIHRvVGVzdE5vbmRldGVybWluaXN0aWMoSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGU0MzRkZWNiZjgwNjg5OTkzMjFhYWNl
ZjQxMGE4YTdhYzkyMmYyZjEuLjY0ZmQ5NGJkNjJmOTkzYjcxNWI1NzkyMWU4MjhiN2ZlZTdjOGFj
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCkBAIC0yMDc4LDcgKzIwNzgsNyBAQCB2b2lkIHNldEpTVGVzdE9ialRl
c3RPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRK
U1ZhbAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7
CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b1dyYXBwZWQodmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47
CiAgICAgaW1wbC5zZXRUZXN0T2JqQXR0cihuYXRpdmVWYWx1ZSk7CkBAIC0yMDk4LDcgKzIwOTgs
NyBAQCB2b2lkIHNldEpTVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdQogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9iaiogbmF0aXZl
VmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFsdWUoSlNUZXN0
T2JqOjp0b1dyYXBwZWQodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRYTUxPYmpBdHRyKG5hdGl2ZVZh
bHVlKTsKQEAgLTI0NTQsNyArMjQ1NCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RP
YmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7CkBAIC0yNDc3LDcgKzI0NzcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0
ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlTwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7
Ci0gICAgVGVzdE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9i
aiogbmF0aXZlVmFsdWUoSlNUZXN0T2JqOjp0b1dyYXBwZWQodmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5z
ZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgbmF0aXZlVmFsdWUpOwpAQCAt
MjQ5Nyw3ICsyNDk3LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2IKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRl
c3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2
ZVZhbHVlKEpTVGVzdE9iajo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0y
NTIwLDcgKzI1MjAsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleAogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVz
dE9iaiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZl
VmFsdWUoSlNUZXN0T2JqOjp0b1dyYXBwZWQodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI1
NDMsNyArMjU0Myw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0
T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVW
YWx1ZShKU1Rlc3RPYmo6OnRvV3JhcHBlZCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMjU2
Niw3ICsyNTY2LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShFeGUKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RP
YmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZh
bHVlKEpTVGVzdE9iajo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0yNTg5
LDcgKzI1ODksNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxs
U3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iagogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9i
aiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFs
dWUoSlNUZXN0T2JqOjp0b1dyYXBwZWQodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgaW1wbC5zZXRXaXRoU2NyaXB0
QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKG5hdGl2ZVZhbHVlKTsKQEAgLTI3NDAsNyAr
Mjc0MCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBTVkdQcm9wZXJ0
eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZSh0b1NWR1BvaW50KHZhbHVlKSk7CisgICAg
U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUoSlNTVkdQb2ludDo6dG9X
cmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0TXV0YWJsZVBvaW50KG5hdGl2ZVZhbHVlKTsK
QEAgLTI3NjAsNyArMjc2MCw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAg
ICBTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHUG9pbnQ+KiBuYXRpdmVWYWx1ZSh0b1NWR1BvaW50KHZh
bHVlKSk7CisgICAgU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUoSlNT
VkdQb2ludDo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0SW1tdXRhYmxlUG9pbnQo
bmF0aXZlVmFsdWUpOwpAQCAtMjkzOSw3ICsyOTM5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVj
U3QKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkg
PyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVj
KSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmco
dG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVz
dE9iajo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBpbXBsLnZvaWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcs
IG9iakFyZyk7CkBAIC0yOTc0LDcgKzI5NzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzKEV4ZWNTdAog
ICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0
cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rl
c3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2Jq
Ojp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC5ieXRlTWV0aG9kV2l0
aEFyZ3MoYnl0ZUFyZywgc3RyQXJnLCBvYmpBcmcpKTsKQEAgLTMwMDksNyArMzAwOSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3Rl
dE1ldGhvZFdpdGhBcmdzKEV4ZWNTCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJn
dW1lbnQoMSkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmlu
ZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRp
b24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0g
ICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRl
c3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgyKSkpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051
bWJlcihpbXBsLm9jdGV0TWV0aG9kV2l0aEFyZ3Mob2N0ZXRBcmcsIHN0ckFyZywgb2JqQXJnKSk7
CkBAIC0zMDQ0LDcgKzMwNDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIGNvbnN0
IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDog
ZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhl
Yy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b1dyYXBw
ZWQoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC5sb25nTWV0aG9kV2l0aEFyZ3MobG9u
Z0FyZywgc3RyQXJnLCBvYmpBcmcpKTsKQEAgLTMwNzksNyArMzA3OSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRo
QXJncyhFeGVjU3RhCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSku
aXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9i
aiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9i
akFyZyhKU1Rlc3RPYmo6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChV
TkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNh
c3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLm9iak1ldGhvZFdpdGhB
cmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSkpOwpAQCAtMzA5Niw3ICszMDk2LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhTZXF1ZW5jZUFyZyhFeGUKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1w
bCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsK
LSAgICBWZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJO
YXRpdmVBcnJheTxTY3JpcHRQcm9maWxlLCBKU1NjcmlwdFByb2ZpbGU+KGV4ZWMsIGV4ZWMtPmFy
Z3VtZW50KDApLCAmdG9TY3JpcHRQcm9maWxlKSkpOworICAgIFZlY3RvcjxSZWZQdHI8U2NyaXB0
UHJvZmlsZT4+IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNjcmlwdFByb2ZpbGUs
IEpTU2NyaXB0UHJvZmlsZT4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZKU1NjcmlwdFByb2Zp
bGU6OnRvV3JhcHBlZCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGlt
cGwubWV0aG9kV2l0aFNlcXVlbmNlQXJnKHNlcXVlbmNlQXJnKTsKQEAgLTMxNTMsNyArMzE1Myw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzCiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhl
Yy0+YXJndW1lbnQoMCkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgwKS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgxKSkpOwor
ICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgx
KSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgSlNWYWx1ZSByZXN1bHQg
PSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBs
Lm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3Moc3RyQXJnLCBvYmpBcmcsIGVjKSkp
OwpAQCAtMzY2OSw3ICszNjY5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMSgKICAgICBUZXN0
T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPCAyKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2Jq
KGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9X
cmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkg
PyBTdHJpbmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVj
KSk7CkBAIC0zNjg5LDcgKzM2ODksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyKAogICAgIFRl
c3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RP
YmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0
b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogCkBAIC0zODAxLDcgKzM4MDEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4KAogICAg
IFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rl
c3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2Jq
Ojp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIGltcGwub3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcpOwpAQCAtNDEyMSw3ICs0
MTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbnZlcnQxKEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqJiBpbXBsID0gY2Fz
dGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGV4ZWMpKTsKLSAgICBUZXN0Tm9kZSogdmFsdWUodG9UZXN0Tm9kZShleGVjLT5hcmd1bWVu
dCgwKSkpOworICAgIFRlc3ROb2RlKiB2YWx1ZShKU1Rlc3ROb2RlOjp0b1dyYXBwZWQoZXhlYy0+
YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwu
Y29udmVydDEodmFsdWUpOwpAQCAtNDEzOCw3ICs0MTM4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4
ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0Tm9kZSog
dmFsdWUodG9UZXN0Tm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3ROb2RlKiB2YWx1
ZShKU1Rlc3ROb2RlOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuY29udmVydDIodmFsdWUpOwpAQCAtNDE1NSw3
ICs0MTU1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNvbnZlcnQ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqJiBpbXBsID0g
Y2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0Tm9kZSogdmFsdWUodG9UZXN0Tm9kZShleGVjLT5hcmd1
bWVudCgwKSkpOworICAgIFRlc3ROb2RlKiB2YWx1ZShKU1Rlc3ROb2RlOjp0b1dyYXBwZWQoZXhl
Yy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGlt
cGwuY29udmVydDQodmFsdWUpOwpAQCAtNDE3Miw3ICs0MTcyLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ1KEV4ZWNTdGF0
ZSogZXhlYykKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0Tm9k
ZSogdmFsdWUodG9UZXN0Tm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3ROb2RlKiB2
YWx1ZShKU1Rlc3ROb2RlOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGltcGwuY29udmVydDUodmFsdWUpOwpAQCAtNDI1
NCw3ICs0MjU0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0aW9uV2l0aFNlcXVlbmMKICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkg
JiYgIWV4ZWMtPmFyZ3VtZW50KDApLmluaGVyaXRzKEpTVGVzdE9iajo6aW5mbygpKSkKICAgICAg
ICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIDAsICJvYmpBcmciLCAiVGVz
dE9iaiIsICJzdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jZSIsICJUZXN0T2JqIik7Ci0gICAgVGVz
dE9iaiogb2JqQXJnKHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoq
IG9iakFyZyhKU1Rlc3RPYmo6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlm
IChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgVmVjdG9yPHVuc2lnbmVkPiBhKHRvTmF0aXZl
QXJyYXk8dW5zaWduZWQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CkBAIC00Mjc5LDcgKzQy
NzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uU3RyaWN0RnVuY3Rpb25XaXRoQXJyYXkoRQogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSAmJiAhZXhl
Yy0+YXJndW1lbnQoMCkuaW5oZXJpdHMoSlNUZXN0T2JqOjppbmZvKCkpKQogICAgICAgICByZXR1
cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgMCwgIm9iakFyZyIsICJUZXN0T2JqIiwg
InN0cmljdEZ1bmN0aW9uV2l0aEFycmF5IiwgIlRlc3RPYmoiKTsKLSAgICBUZXN0T2JqKiBvYmpB
cmcodG9UZXN0T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpT
VGVzdE9iajo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZ
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8aW50PiBhcnJheSh0b05hdGl2ZUFycmF5PGludD4o
ZXhlYywgZXhlYy0+YXJndW1lbnQoMSkpKTsKQEAgLTQzNDEsMTQgKzQzNDEsMTQgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGlj
Tm9kZU1ldGhvZChFeGVjU3QKICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgp
OwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAg
ICBOb2RlKiBoZWFkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSkpOworICAgIE5vZGUqIGhlYWQo
SlNOb2RlOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAoVU5MSUtFTFko
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogICAgIFZlY3RvcjxOb2RlKj4gdGFpbDsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAxLCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgaSA8IGNvdW50OyArK2kpIHsK
ICAgICAgICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKS5pbmhlcml0cyhKU05vZGU6
OmluZm8oKSkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhl
YywgaSwgInRhaWwiLCAiVGVzdE9iaiIsICJ2YXJpYWRpY05vZGVNZXRob2QiLCAiTm9kZSIpOwot
ICAgICAgICB0YWlsLmFwcGVuZCh0b05vZGUoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkpKTsK
KyAgICAgICAgdGFpbC5hcHBlbmQoSlNOb2RlOjp0b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoaSkpKTsKICAgICB9CiAgICAgaW1wbC52YXJpYWRpY05vZGVNZXRob2QoaGVhZCwgdGFp
bCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTQ0MzQs
NyArNDQzNCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE9iaiogaW1wCiAgICAgcmV0dXJuIGNyZWF0ZU5l
d1dyYXBwZXI8SlNUZXN0T2JqPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0T2JqKiB0
b1Rlc3RPYmooSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE9iaiogSlNUZXN0T2JqOjp0b1dyYXBw
ZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1w
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oCmluZGV4IDNjMGJmYzVjOWRlZDE0ZDNkYzYzNzBiZDFjMmU3ODFlOTBkYmI4ZmUu
LjQ0MDI5NjA1ZWRlOTQyMTYyNTVmNzU3ZDNkNDhhNzI3NDk3NDc1NWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTM4
LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVBy
b3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6
OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
KyAgICBzdGF0aWMgVGVzdE9iaiogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0T2JqKCk7CkBAIC0xMDYsNyArMTA3
LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQs
IFRlc3RPYmoqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdE9iaiopOwotV0VCQ09SRV9FWFBPUlQg
VGVzdE9iaiogdG9UZXN0T2JqKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCmluZGV4
IDYzMDhkOWUzYmIzMDBlN2JhZGNjN2RlMjBhZTFjOTU5Mzg1MGFhZjAuLmE2MjExZDM5ZDMxMWM1
NTcxM2IzNGM5ODc0YjcyMjU0OTRmMjRmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29u
c3RydWN0SgogICAgIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciogY2Fz
dGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Iq
PihleGVjLT5jYWxsZWUoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoZXhlYykpOwotICAgIEJsb2IqIGJsb2IodG9CbG9iKGV4ZWMtPmFyZ3VtZW50KDApKSk7
CisgICAgQmxvYiogYmxvYihKU0Jsb2I6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgwKSkpOwog
ICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgUmVmUHRyPFRlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzPiBvYmplY3QgPSBUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Y3JlYXRl
KGJsb2IpOwpAQCAtMjgzLDcgKzI4Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE92ZXJsb2FkCiAgICAg
cmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4oZ2xv
YmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHRvVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMqIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OnRvV3JhcHBlZChK
U0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqPih2YWx1ZSkpCiAgICAgICAgIHJldHVy
biAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmgKaW5kZXggOWM3NmJhZTQ0OThjYzJiZDUzMzgwN2I1M2I4MjFlNWI4ZGMyNDdjNi4uZThm
ZTFkNmNiOGRiMTIxMzE2YTBkODNhOTFmN2U5ZWRhYTU5NjFiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBl
KEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgdm9p
ZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnMoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqKQogfQogCiBX
RUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiwgVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqKTsKLVdFQkNPUkVfRVhQT1JU
IFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
KEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCA4
NjdkMGMwODVjMjVlNjg3ZWI5YzU3NWQ2NmFhNDFmYzdjOWRhZmEzLi44ZjI1N2JmNWY2YzhjMDY2
OTY2NzM0Mzc5N2ZjZDgwYWVjMzcwYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMzYyLDcgKzM2Miw3IEBAIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVGVzdFNlcmlhbGl6CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQog
Ci1UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiB0b1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSogSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjp0
b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPih2YWx1
ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IGE0OGJjOGUwNjk5
M2Y0MzY1Njc2MDFlM2Y2MGY0MzY1YzhhYmVkYzkuLjdhNTdjYzY2YTQ5OGUzYjgxZTc1ZmNiYzY1
NDZmMzI5ZmZmOTEwYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UoKTsKIApAQCAtOTcsNyArOTgsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNv
bnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dAogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSop
OwotV0VCQ09SRV9FWFBPUlQgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdG9U
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKaW5kZXggZTJhOTNhYTFmNGRl
ODZkZDk3NTBlZWFhMjM1OWQ2ZGI3YTFlODJiZi4uYmIyNDcxOGFlMDg2OThjNjgwZDYwOTMyYjlj
YmVkNGIzOGYzN2M5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCkBAIC01NzQsNyArNTc0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXIKICAgICBUZXN0VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRU
aGlzLT5pbXBsKCk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
ZXhlYykpOwotICAgIFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4gc2VxdWVu
Y2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8U2VyaWFsaXplZFNjcmlwdFZhbHVlLCBKU1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZ0b1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSkpKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+
IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwg
SlNTZXJpYWxpemVkU2NyaXB0VmFsdWU+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmSlNTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OnRvV3JhcHBlZCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC5tZXRob2RXaXRoU2Vx
dWVuY2VBcmcoc2VxdWVuY2VBcmcpKTsKQEAgLTY5Nyw3ICs2OTcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxsV2l0aFNl
cXVlbmNlVGhhdAogICAgIFRlc3RUeXBlZGVmcyYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAg
VmVjdG9yPFJlZlB0cjxUZXN0RXZlbnRUYXJnZXQ+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRp
dmVBcnJheTxUZXN0RXZlbnRUYXJnZXQsIEpTVGVzdEV2ZW50VGFyZ2V0PihleGVjLCBleGVjLT5h
cmd1bWVudCgwKSwgJnRvVGVzdEV2ZW50VGFyZ2V0KSkpOworICAgIFZlY3RvcjxSZWZQdHI8VGVz
dEV2ZW50VGFyZ2V0Pj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZlQXJyYXk8VGVzdEV2ZW50
VGFyZ2V0LCBKU1Rlc3RFdmVudFRhcmdldD4oZXhlYywgZXhlYy0+YXJndW1lbnQoMCksICZKU1Rl
c3RFdmVudFRhcmdldDo6dG9XcmFwcGVkKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc0Jvb2xlYW4oaW1wbC5jYWxsV2l0aFNlcXVlbmNl
VGhhdFJlcXVpcmVzSW5jbHVkZShzZXF1ZW5jZUFyZykpOwpAQCAtNzY5LDcgKzc2OSw3IEBAIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgVGVzdFR5cGVkZWZzCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0
VHlwZWRlZnM+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RUeXBlZGVmcyogdG9UZXN0
VHlwZWRlZnMoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdFR5cGVkZWZzKiBKU1Rlc3RUeXBlZGVm
czo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBl
ciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPih2YWx1ZSkpCiAgICAgICAgIHJldHVy
biAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaAppbmRleCA3ZTVlYzhkYWFjYzIxOGYz
ZWFmZTJiMjIyMDc5Y2UyZGYwNGY3YzRhLi4yMGYyNDZiZTdmNzU2MDI5OTM1ZGExOTJhNTIzNWUw
MmUwODRjZmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0VHlwZWRlZnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlw
ZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0VHlwZWRl
ZnMqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlND
ZWxsKik7CiAgICAgfkpTVGVzdFR5cGVkZWZzKCk7CkBAIC05Myw3ICs5NCw2IEBAIGlubGluZSB2
b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0VHlwZWRlZnMq
KQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdFR5cGVkZWZzKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0
VHlwZWRlZnMqIHRvVGVzdFR5cGVkZWZzKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTYXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKaW5kZXggYmE0NmQ4Y2NkNTE3NTQ4ZDhkZmE1OWY3YTQw
YTNhZDJiNTk4NmI0NS4uZDE4NzYzM2E1ZmZjNjFhNTRkNDE0OWYzZGQxZmZhZWQwMDJmYTBjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0
cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNhdHRyaWJ1dGUuY3BwCkBAIC0yMjQsNyArMjI0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBhdHRyaWJ1dGUq
IGkKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU2F0dHJpYnV0ZT4oZ2xvYmFsT2JqZWN0
LCBpbXBsKTsKIH0KIAotYXR0cmlidXRlKiB0b2F0dHJpYnV0ZShKU0M6OkpTVmFsdWUgdmFsdWUp
CithdHRyaWJ1dGUqIEpTYXR0cmlidXRlOjp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU2F0dHJpYnV0ZSo+KHZh
bHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCmluZGV4IDI5
N2FkMjZiNTI1MDJiYjg0ZmY2NWE2NjcwZjZjYTZjNDRhYzY1NDEuLjlmNWNkYzkzNGI0NzE3Mzlk
ZDA2OTgxMzBkMDYzODg5NWM3YTU0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oCkBAIC0zOSw2ICszOSw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0
UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIGF0
dHJpYnV0ZSogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0M6OkpTQ2VsbCopOwogICAgIH5KU2F0dHJpYnV0ZSgpOwogCkBAIC05Miw3ICs5Myw2IEBA
IGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBhdHRy
aWJ1dGUqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgYXR0cmlidXRlKik7Ci1XRUJDT1JFX0VYUE9SVCBh
dHRyaWJ1dGUqIHRvYXR0cmlidXRlKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTcmVhZG9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTcmVhZG9ubHkuY3BwCmluZGV4IGVkNGE0NGI1ZjAyZDg0MWY2YmY0ZGRhYjlkODU5ZDlh
MWFkODUyMDMuLjg5MDE0NWZkNTYyOTMxMWY2Y2Q1M2U3MGFlM2YwNDFjM2NiMmY1NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFk
b25seS5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHJlYWRvbmx5KiBpbQogICAg
IHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTcmVhZG9ubHk+KGdsb2JhbE9iamVjdCwgaW1wbCk7
CiB9CiAKLXJlYWRvbmx5KiB0b3JlYWRvbmx5KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3JlYWRvbmx5
KiBKU3JlYWRvbmx5Ojp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChh
dXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU3JlYWRvbmx5Kj4odmFsdWUpKQogICAgICAg
ICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oCmluZGV4IGI2ZWZhNGE2Nzg3MjhiMDQ5
ZThkM2Y0ODUzNTNkNDQ3NmRhNWUwZjguLmI1YTQwOTQ4MTJhYzUxOTZhMGU0ZGM0NWM1YmMzOGY0
ZTE0OTEyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU3JlYWRvbmx5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTcmVhZG9ubHkuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6OlZN
JiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyByZWFkb25seSogdG9XcmFwcGVk
KEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwog
ICAgIH5KU3JlYWRvbmx5KCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBw
ZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIHJlYWRvbmx5KikKIH0KIAogV0VCQ09S
RV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCosIHJlYWRvbmx5Kik7Ci1XRUJDT1JFX0VYUE9SVCByZWFkb25seSogdG9yZWFkb25seShK
U0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CmluZGV4IGY2YzIwMWQ4YzM2Nzk1OGMzNDJmZWIxZGZhNjgxMDczYmQ1YjU2YjEuLjljOGIzNDA1
MTUxMzM5ZTcxOThkNmRiNmQ5NTY2OWRjYmMxN2RkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAt
Njg5LDYgKzY4OSwyMSBAQCBzdHJ1Y3QgRWxlbWVudFR5cGVDYXN0VHJhaXRzPEV4cGVjdGVkVHlw
ZSwgRXhwZWN0ZWRUeXBlPiB7CiAgICAgc3RhdGljIGJvb2wgaXMoRXhwZWN0ZWRUeXBlJikgeyBy
ZXR1cm4gdHJ1ZTsgfQogfTsKIAorLy8gRG93bmNhc3RpbmcgZnVuY3Rpb25zIGZvciBFbGVtZW50
IHR5cGVzLgordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0LCB0eXBlbmFtZSBTb3VyY2U+Citpbmxp
bmUgdHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2NvbnN0PFNvdXJjZT46OnZhbHVl
LCBjb25zdCBUYXJnZXQmLCBUYXJnZXQmPjo6dHlwZSBkb3duY2FzdChTb3VyY2UmIHNvdXJjZSkK
K3sKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8VGFyZ2V0LCBTb3VyY2U+Ojp2
YWx1ZSwgIlVubmVjZXNzYXJ5IGNhc3QiKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTihpc0VsZW1lbnRPZlR5cGU8Y29uc3QgVGFyZ2V0Pihzb3VyY2UpKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8dHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2NvbnN0PFNv
dXJjZT46OnZhbHVlLCBjb25zdCBUYXJnZXQmLCBUYXJnZXQmPjo6dHlwZT4oc291cmNlKTsKK30K
K3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlPiBpbmxpbmUgdHlwZW5h
bWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2NvbnN0PFNvdXJjZT46OnZhbHVlLCBjb25zdCBU
YXJnZXQqLCBUYXJnZXQqPjo6dHlwZSBkb3duY2FzdChTb3VyY2UqIHNvdXJjZSkKK3sKKyAgICBz
dGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8VGFyZ2V0LCBTb3VyY2U+Ojp2YWx1ZSwgIlVu
bmVjZXNzYXJ5IGNhc3QiKTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigh
c291cmNlIHx8IGlzRWxlbWVudE9mVHlwZTxjb25zdCBUYXJnZXQ+KCpzb3VyY2UpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dHlwZW5hbWUgc3RkOjpjb25kaXRpb25hbDxzdGQ6OmlzX2NvbnN0
PFNvdXJjZT46OnZhbHVlLCBjb25zdCBUYXJnZXQqLCBUYXJnZXQqPjo6dHlwZT4oc291cmNlKTsK
K30KKwogaW5saW5lIGJvb2wgTm9kZTo6aGFzQXR0cmlidXRlcygpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQodGhpcyktPmhhc0F0dHJpYnV0ZXMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dl
YkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5kZXggMzg5YzJiOGEzYjhlMmY3ODZhYzEzZThlNDIx
OGNiOTZjM2ZiOGY4OC4uY2E4MzllOTgzMDI4YWU2ZmYxMzkyM2QxMmQ5ODc0NWI4ZDIzMTliMCAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKQEAgLTYzMyw2ICs2MzMsNyBAQCBzdWIgcHJpbnRU
eXBlSGVscGVycwogICAgICAgICB9CiAKICAgICAgICAgbXkgJGNsYXNzID0gJHBhcnNlZFRhZ3N7
JG5hbWV9e2ludGVyZmFjZU5hbWV9OworICAgICAgICAjIEZJWE1FOiBSZW5hbWUgdGhlc2UgaGVs
cGVycyB0byBpczwqRWxlbWVudD4oKS4KICAgICAgICAgbXkgJGNoZWNrSGVscGVyID0gImlzJGNs
YXNzIjsKIAogICAgICAgICBwcmludCBGIDw8RU5ECkBAIC02NjMsNiArNjY0LDEwIEBAIHRlbXBs
YXRlIDx0eXBlbmFtZSBBcmdUeXBlPgogc3RydWN0IEVsZW1lbnRUeXBlQ2FzdFRyYWl0czxjb25z
dCAkY2xhc3MsIEFyZ1R5cGU+IHsKICAgICBzdGF0aWMgYm9vbCBpcyhBcmdUeXBlJiBub2RlKSB7
IHJldHVybiAkY2hlY2tIZWxwZXIobm9kZSk7IH0KIH07CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhl
c2UgbWFjcm9zIG9uY2UgdGhlIGNvZGUgaGFzIGJlZW4gcG9ydGVkIHRvIHVzaW5nCisvLyBkb3du
Y2FzdDwqRWxlbWVudD4oKS4KKyNkZWZpbmUgdG8kY2xhc3MoeCkgV2ViQ29yZTo6ZG93bmNhc3Q8
V2ViQ29yZTo6JGNsYXNzPih4KQogRU5ECiAgICAgICAgIDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDQ2NjkxNjMyNWNlZDc2YzZiYzk3Zjc4MGM3YzU4NjE1
MWZkYTkzNmEuLjIzMmIwMjU2MDQzZWE1NmI4NWNkMTY4MWY2ZDU4MGI5MTViMGY4YzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKQEAgLTE1NSw4ICsxNTUsNiBAQCBi
b29sIGlzRW50ZXJLZXlLZXlkb3duRXZlbnQoRXZlbnQqKTsKIGJvb2wgaXNMaW5rQ2xpY2soRXZl
bnQqKTsKIGJvb2wgc2hvdWxkUHJvaGliaXRMaW5rcyhFbGVtZW50Kik7CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MQW5jaG9yRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gSFRNTEFuY2hvckVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50
LmgKaW5kZXggYWMwN2U5ODZjY2M0OGE1YWY0YTIwMzMxMTY0ZjExZWRkZjk4YTFlNS4uOGRiNzU4
OTZjZTM2MDMxYTQzMjEwNTM4NWYzM2I4MzgzZGNmY2U0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBcmVhRWxlbWVudC5oCkBAIC03MSw4ICs3MSw2IEBAIHByaXZhdGU6CiAgICAgU2hhcGUgbV9z
aGFwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQXJlYUVsZW1lbnQpCi0KIH0gLy9uYW1l
c3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRp
b0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oCmluZGV4
IDMwZDJhOGYzOWVjYWRiODhmNzAxODI2MTg0MzNiYTBlZGUwZjg1MjMuLjdlODY1OGM4NzIzMDI4
NTU0YWY1M2ZlNjYzMmRjMTMwNWZhNzlmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEF1ZGlvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlv
RWxlbWVudC5oCkBAIC00Myw4ICs0Myw2IEBAIHByaXZhdGU6CiAgICAgSFRNTEF1ZGlvRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sKTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhIVE1MQXVkaW9FbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKaW5kZXggNDA1NGUxNzU4NmMyODgyYTIyZDg1
ZWY3ZGM0MjBmNTE5Y2UwMDQ3OC4uYjc5OWYxZmExODQ5OTk3MmZiMDJjYjY1NjY0YTU3MTJhZDY4
NjJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCkBAIC00NCw4ICs0NCw2
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUm
KSBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MQmFzZUVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgK
aW5kZXggMDE3ZWZjMjJjYjc2ZjZjNWU3OTI2NGRkMmU5YjVkMjAzZjkxNWI4Mi4uMGQ0ZDYwYTU2
NWE2YjJhMTk5NmM4NjgzNjYyODFmOGM0NzRhMmUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5oCkBAIC04MSw4ICs4MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qgb3Zl
cnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEJvZHlFbGVtZW50KQotCiB9IC8vbmFt
ZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmlu
ZGV4IDg4MzdkMDgyNzMyNWQ0M2NiNGQ2MjlhYThkZjZiZWQ3ZjJkMTU5NDUuLjhhYmRlNzdmZDk5
ZWQ2NmMzNmE5YTM5YTQxYTcwNmQ3ODQyNGUyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmgKQEAgLTE4MCw4ICsxODAsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUg
UmVmUHRyPEltYWdlPiBtX2NvcGllZEltYWdlOyAvLyBGSVhNRTogVGhpcyBpcyB0ZW1wb3Jhcnkg
Zm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUgdG8gY29weSB0aGUgaW1hZ2UgYnVmZmVyIHRvIHJlbmRl
ciAoYW5kIGZvciBDU1NDYW52YXNWYWx1ZSkuCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTENh
bnZhc0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oCmluZGV4IDY3ZmIxZGI4ZDc3NjgyMWFjNjE3YzEwZGIw
YzNmYzk5MGQ0YzU2NjcuLmNmMWQzZmY2MjFjM2ZhMjA4ZWRlNjhiM2FiZTlhNThiYzgwNTI5MDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oCkBAIC01MCw4ICs1
MCw2IEBAIHByaXZhdGU6CiAgICAgSFRNTERhdGFMaXN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRGF0YUxpc3RFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAjZW5kaWYgLy8gRU5BQkxFKERBVEFMSVNU
X0VMRU1FTlQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCmluZGV4
IGM0MWY2ZjQ3MWEwNDYzMGE3OWM5ZjZmNDM5MjRlNjJlNjQ5OGU3YzUuLjA3M2NkNTk0ZDMwNzA4
MTJiOWI0YWU2NGU4MjBlMzViOTZiYzc2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERldGFpbHNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc09w
ZW47CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTERldGFpbHNFbGVtZW50KQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MRGV0YWlsc0VsZW1lbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCmluZGV4IDFiNWQyMGFkODgyM2ZmMWZjYWMzMWVkZWI2
ODhlNGJlOGI4ODI0NGEuLmZmODFiOWI4MmNhYmY3NmYxZGUyMDQ3ZDRmNTgxMWM1ZGFjNWJmMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKQEAgLTQwLDggKzQwLDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTERpdkVs
ZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxEaXZFbGVt
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKaW5kZXggZDlmZDQ1MjNl
NDIyMzViOTcxZGQxNGQ0ZjgzMWUyYjlmNDZhZWRjMC4uY2RkM2JlY2ZiYmE3ZWIwZGQ3MmIzMGI1
OTc4OWJlZWQ0YmJlZDU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1i
ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgK
QEAgLTUyLDggKzUyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhcmFtZXRlcnNGb3JQbHVnaW4o
VmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcyk7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEVtYmVkRWxlbWVudCkKLQogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKaW5kZXggN2MxM2VhMGQ1
M2EzYjk0ZmNkZDM1ZDJjNjc4MTM3NjJiNWQyZGNhNy4uM2EwMjIzMGQxMTgyMzg3Zjc0ZWIzMThj
M2U5YWU5ZGMwN2JiYjg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmll
bGRTZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVt
ZW50LmgKQEAgLTY0LDggKzY0LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVpbnQ2NF90IG1f
ZG9jdW1lbnRWZXJzaW9uOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGaWVsZFNldEVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmgKaW5kZXggYzQ2OWRjZWY4YWE1ODY3Mjg0MWMwMjg0MTBiOWUwZTY2Yjc2ZjI4MC4u
ZmMzZGI5ZDk0OGQyYWQ0YjA0NzFmNmRiYTM1YmY0NDZjNDcwMTk3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC0yMDEsOCArMjAxLDYgQEAgcHJpdmF0ZToKICNlbmRp
ZgogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGb3JtRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTEZvcm1FbGVtZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmgKaW5kZXggNTU3OWM5ODQ4ODQzODU1MDI1MmViYzJjODdlZGY0
ZDg3MTFmN2VlYy4uNmU0ZmIwZmM5NmJlZjY3Yjc3OWI2YTdiYjliYzFkMWY0ODZlZWE5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fZnJhbWVCb3JkZXJTZXQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
SFRNTEZyYW1lRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
SFRNTEZyYW1lRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZVNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVu
dC5oCmluZGV4IDgwZTdmMmFmZTJmYjMwNTJmYjljNjY4NTQ4MmJkNzA3NmUzOGM4ZTQuLjI3Mjkz
OGNlZDI3ODA4MmM4MDBiYTFkMDI4NDcyN2Y1NzNmYzg5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC0xMDAsOCArMTAwLDYgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fbm9yZXNpemU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEZyYW1lU2V0RWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTEZyYW1lU2V0
RWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaAppbmRleCBiOTY2Yzg3
MGI4MTI3OTE2ZjhiMzJhZDUwNGM5ZmNiZTkzOGYxYjAwLi4wZjgzYjlhNGVjMDM3OTE0Y2Y5NjNi
MGJmMTYwYzU5MmMxMjcxMWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxI
dG1sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgK
QEAgLTQxLDggKzQxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1
dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTEh0bWxFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAppbmRleCA5YWUxOTMyNjBhZjQ1YmMwMmEwYjU1
YWMwZWJhZjVmMTY3OGUyZjY0Li5mMGViY2VjMDUxMzNjZjhiYjA1N2VhNWFmZDAyYWU4MjA4YmRl
OTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCkBAIC00Nyw4ICs0
Nyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MSUZyYW1lRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gSFRNTElGcmFtZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuaAppbmRleCBmZDQ0MDE4OThkMzczZGY2YjEwZWZlZmM0NGIzMzk5N2Vl
YWVkNTdmLi45OWZlMjViNjE2M2I3NjMwOWYwNjhmMmRhNjMxYzVkOTQ5OGUyZDVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTQzLDggKzE0Myw2IEBAIHByaXZh
dGU6CiAjZW5kaWYKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MSW1hZ2VFbGVtZW50KQotCiB9
IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAppbmRleCBlMzg4NWJjYzMyMWExOTdkOWY1MzBlMjUyZGE1MjE4ODkyNzkwMDVkLi5kN2E2NWNk
NmQzMTYwMjViZjhjZWQ5N2Q5M2RhNTA5M2I3OTkxZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaApAQCAtNDQ4LDcgKzQ0OCw1IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MSW5wdXRFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgKaW5kZXggYWVhNTIzN2E4
NTEzZmFiYzIyOTJiY2RmNGE1ZjA4MDMxYjA4YTQ0My4uY2E4ZWU2MGIwNThkZWMyNmMyOGYzYmZi
ZTVhYWFkNzVmNzM1NGJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFi
ZWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgK
QEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCBy
ZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uKSBvdmVycmlkZTsKIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhIVE1MTGFiZWxFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oCmluZGV4IDI0NTY4YmRh
NDAzYzJkM2I1OGY1MTA3MjAwNjdiYTJmOWI1ZTVkNWQuLjkxMDRhYmQ2ODg2NTFmM2U1MWI2MzAy
MjgxYzAzMTYxNzk5ZDk2Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExl
Z2VuZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50
LmgKQEAgLTQ1LDggKzQ1LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVu
dCogdmlydHVhbEZvcm0oKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhI
VE1MTGVnZW5kRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5oCmluZGV4IDQ5NzAxZjg2ZmU0ZTdlNDNiMTFjMjRiZDc3NTk1
YTcwYzRmNmZjODMuLjVjYWNiNzdkMmFlYTUxNWMwZDU5YmE1NDZhNDc2YjRhOGI2NDczMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaApAQCAtMTM3LDggKzEzNyw2IEBAIHBy
aXZhdGU6CiAgICAgUGVuZGluZ1NoZWV0VHlwZSBtX3BlbmRpbmdTaGVldFR5cGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTExpbmtFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCmluZGV4IDlhZTQ0NjcyODUyYjExNDAz
MDU4NzdhZjkyNjJkNGJjMzE2ZTNkYjIuLjYxN2FhMTM2NGZjMjJjZjQ0MDc4ODE5MDViYmI0ZGIw
NjkyMWExZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKQEAgLTU0LDggKzU0
LDYgQEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9uYW1lOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKEhUTUxNYXBFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZXMKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaAppbmRleCBkMTA5ODJiMWRhY2ViMzZh
MTI3NGZmZWVhNGJlMThlYTFkZjkzYTA5Li45NjM5ZTk2MzYyNDIyNGI4ODM4ZDliMjMwNzU5NzY1
NzQyODMwNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKQEAg
LTY0LDggKzY0LDYgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJNYXJxdWVlKiByZW5kZXJNYXJxdWVl
KCkgY29uc3Q7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1hcnF1ZWVFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MTWFycXVlZUVsZW1lbnRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKaW5kZXggMjVkMWE3NzFhYWRhNTk5Mzc2
OWE3NTllNmExYjZhMDY3NzVhYTNhOC4uOGJlNmRkYTcwODIzMjQ2ZDczYThiZTQ5YWYwM2I5ZWIx
MGY5M2FiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCkBAIC00NCw4ICs0
NCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzKCk7CiB9OwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTE1ldGFFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAppbmRleCA5ZDgyMTcyZmJjMjRmN2Ux
N2M4MDg0MjM4NzU4ZDQ2Y2FhNzlmZDI2Li5hMjhjYjQ0OTZlNmIwZTBhNmZlYjk0OWE2NDUxMTYy
MmVlMzAwZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaApAQCAtODEs
OCArODEsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxNZXRlclZhbHVlRWxlbWVudD4gbV92YWx1
ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MTWV0ZXJFbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgKaW5kZXgg
OTg5ZDc5NTkyNWYwOGVkMjBlNWMzNjFlODhjNmI1ZTMzZmQ0ZTVhOS4uMWYwYWFmMTRkMTJjZGQ5
MTZlNjI2YTljMTlhZWJkYTcyM2JlYTQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT0xpc3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RF
bGVtZW50LmgKQEAgLTY1LDggKzY1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkUmVj
YWxjdWxhdGVJdGVtQ291bnQgOiAxOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPTGlzdEVs
ZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmgKaW5kZXggMmM0OTE5MzM2MzdlMTU3NWZkYmZkYjYwMjA5ZWQ1ZjhjODhm
NWQ3OS4uZjhlN2E2ZTAyNWQxZTdmMWRmYWZiZTViNWM1MTYxOTZmMDA4MTdiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaApAQCAtMTAzLDggKzEwMyw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3VzZUZhbGxiYWNrQ29udGVudCA6IDE7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTE9iamVjdEVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCmluZGV4IDY4OWNlNGI4MmZmMmQ0YjczNjViY2IwMzM5
NmE3NDc5M2EzZjNkYjQuLjU3YTM3NDI5NzVjM2RiMTM2N2ZmODI4ODJhMzA3NjQwMzYyZjkwNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCkBAIC01NCw4ICs1
NCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNhbGNTZWxlY3RPcHRpb25zKCk7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTE9wdEdyb3VwRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAppbmRleCA2NDdkMDFl
MzA0MmIwOGQ4NDhlZmQxOTE0YmY3OTA1M2JhYWNiY2VmLi42NTRlZjExODM4MDhjNDkzNjk0MGU4
YjYxZWUzZTM5NDliNDhhZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVu
dC5oCkBAIC04Nyw4ICs4Nyw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU2VsZWN0ZWQ7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE9wdGlvbkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaAppbmRleCA0ZTgx
ZDJkYTc5YzgxOGU3NmIyMjc0ZWI1ZGZkY2ZkZmU3NWJjYjJiLi5lZDliNGViMGJiODE5YjI0MGZm
OTkzZjZhZTFiZWNkZTI3YmExY2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQYXJhbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1l
bnQuaApAQCAtNDMsOCArNDMsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJy
ZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IG92ZXJyaWRlOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxQYXJhbUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
cm9ncmVzc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVu
dC5oCmluZGV4IGVlZGI4ODA3YjE2NDAyNzMzY2Y5Y2Q3NWI2YzUwYjNiNTBjMzg4NDIuLmM3ZmQ5
NTUxYTU4YTQzOTlmZTdjMWRkZWRkZjM4M2NlZWNhZDg2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCkBAIC02Nyw4ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAg
UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQqIG1fdmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TFByb2dyZXNzRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggYjg1MDFiNDczNzZhNmQzZWNlMzY0OGNm
MzViODgxN2Y1YzgwNjYwMy4uNjhkOTZhM2E2OTkyNzM1YTFmM2IyY2RiMzUzMjgyOWI2MjFlYjVl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtNjcsOCArNjcs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1l
bnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoSFRNTFNjcmlwdEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggZmE5Y2JlNDc5NmY4YzU3
MWMyM2UyNmJlMzc5NThhMGIxNzg3NzlhMC4uMjdmZWZkNjBiNGZjZGJhYzEzOTFlZDZlODljOWE4
YWZmNTM2OTY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAt
MjEyLDggKzIxMiw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBib29sIG1fc2hvdWxkUmVjYWxj
TGlzdEl0ZW1zOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTZWxlY3RFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNvdXJjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuaAppbmRleCA1NTU4NzVjZDQwMThkYmIyZmFhNjRlN2Q1NjVhYjEwODFhZTRmZWM4Li41MjJk
NzQzNjgyZGRhOTZmYzk3N2Q2MTE5OWNjNzFmNTQzOWM5ZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU291cmNlRWxlbWVudC5oCkBAIC01Nyw4ICs1Nyw2IEBAIHByaXZhdGU6CiAgICAgVGlt
ZXI8SFRNTFNvdXJjZUVsZW1lbnQ+IG1fZXJyb3JFdmVudFRpbWVyOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKEhUTUxTb3VyY2VFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAppbmRleCA5OTU3YmE1MDcwMjgyMWFiYWVm
NjhkMDcyMmZlN2Q1NmYxNjQ0MzgwLi45MWYwYjdjZDU4ZDQ2Njg4YmVjZjY0ZjQ3MDA1MDAwNDNl
MjNiODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaApAQCAtNzAsOCAr
NzAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9sb2FkZWRTaGVldDsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhIVE1MU3R5bGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmgKaW5kZXggZmJhYmNkZTUyNTdjYzYy
MzMzZTBiMzIxYjcxMDM1YmZiYjgwZTg4NS4uYmMyMjg0MjA5OTI3ZTY0OTNmY2QyZGRiMjI0ZmEw
ZmJiN2Q5MjkyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCkBA
IC00Niw4ICs0Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qg
b3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFN1bW1hcnlFbGVtZW50KQotCiB9
CiAKICNlbmRpZiAvLyBIVE1MU3VtbWFyeUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCmluZGV4IGYwNjRlMjhhOTgwOTk0NDY4YWIyM2M5
ZjllMTdiOGYxNTUwNTlmNDcuLjkwNGMzMjdjMjBjYzBhNjJmYmIzY2RkZTE0NDIwODk3OTAwMTg4
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgK
QEAgLTQxLDggKzQxLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAppbmRleCBlNTk2YWI0
MjBhMDYwOTM0NzMwZTVkZjFkZmY3NjMyMWZhNmRiZTgxLi44NzNkZjI1YzE5NjkxMDZkYWZkMzk2
ZTg4YjhkYWU1NGQzODRlMjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
aApAQCAtMTAxLDggKzEwMSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFN0eWxlUHJvcGVydGll
cz4gbV9zaGFyZWRDZWxsU3R5bGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRhYmxlRWxl
bWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVSb3dFbGVtZW50LmgKaW5kZXggMzM4Yjg3OTk3MDI1N2QwZThhYTk1YTljMWUzYTZlMTAz
YzNlMTNmMy4uYzRiMGY3NzM5Y2ZiMmMzNDljZDM0N2ViODVmYTBmMTllYzdlMTc2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmgKQEAgLTUyLDggKzUyLDYgQEAg
cHJpdmF0ZToKICAgICBIVE1MVGFibGVSb3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUYWJsZVJvd0VsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0
ZUVsZW1lbnQuaAppbmRleCBkN2ZmOTUxYjdjOGQyMjg0YTgyMWE2ZjI3YjFhODI0NzIxZmJiNTM1
Li5jODFmN2E2NmM0ODA0YTVmN2Y1YmQ3NzMzYTFmMDg2YTE4NzQ2YWE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZW1wbGF0ZUVsZW1lbnQuaApAQCAtNTYsOCArNTYsNiBAQCBwcml2YXRl
OgogICAgIG11dGFibGUgUmVmUHRyPFRlbXBsYXRlQ29udGVudERvY3VtZW50RnJhZ21lbnQ+IG1f
Y29udGVudDsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGVtcGxhdGVFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVEVNUExBVEVfRUxFTUVO
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggYTgwMWY5
OWI5ZmNlN2Q1MWI3NjM0ODExMDU0NGE0YWQwYTUwMjZlMi4uYmVkZDBhMWY3MDg1YjY2OWE4Zjgz
ZTE4ODY5NDQ5ZTRkNmUwMjdkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFF
bGVtZW50LmgKQEAgLTEyNiw4ICsxMjYsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgYm9vbCBt
X3dhc01vZGlmaWVkQnlVc2VyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUZXh0QXJlYUVs
ZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRp
dGxlRWxlbWVudC5oCmluZGV4IGViZTFkM2NjNTA4YjY4ZmM4N2Y2MzQ4YTczMTZjOGM1MmJlOGQz
YTAuLjVkZTFlYjU0ZmU4ZTAzZGE3MzA3NTZiZjY5NzVkODI1NmU2ZWViMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCkBAIC00Niw4ICs0Niw2IEBAIHByaXZhdGU6CiAg
ICAgU3RyaW5nV2l0aERpcmVjdGlvbiBtX3RpdGxlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhU
TUxUaXRsZUVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRyYWNrRWxlbWVudC5oCmluZGV4IDgzMTcxN2I0YmQ2YmI5MmI4ZDQyOWQxZTljZDE4
YmJlMjJiN2NlZGMuLjUyNmRjMDNjYzE4NWJmN2UyODdiNTBmZDBkYWE4MTkyYzE4MTdjNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCkBAIC05NCw4ICs5NCw2IEBAIHBy
aXZhdGU6CiAgICAgVGltZXI8SFRNTFRyYWNrRWxlbWVudD4gbV9sb2FkVGltZXI7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTFRyYWNrRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggYzRkNGY5ZDAxY2QxY2YxMWI3NzdjMmE4
YjBmODVkZjU5YmNhYmYyNC4uNzZmMDE2NTZlOTk5ZTUzYzllNjBiYjc3NTRiZTFhNTBiMTkxMWZi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTEwMiw4ICsxMDIs
NiBAQCBwcml2YXRlOgogICAgIEF0b21pY1N0cmluZyBtX2RlZmF1bHRQb3N0ZXJVUkw7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTFZpZGVvRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3Bw
CmluZGV4IGZkN2U5MjM4ODQ0ZGI4YTdmYmU0ODc1ODE4NGFjNmQ1MWYwMjdjNWYuLmQyZGY0YTg3
YTRlMGU3ZDZjZDE5NzhkNGZjYzg1NTFmOWQ0OWMyY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMjAxMCw3ICsyMDEwLDcgQEAgTm9k
ZSogSW5zcGVjdG9yRE9NQWdlbnQ6OnNjcmlwdFZhbHVlQXNOb2RlKERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlIHZhbHVlKQogICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gdG9Ob2RlKHZhbHVlLmpz
VmFsdWUoKSk7CisgICAgcmV0dXJuIEpTTm9kZTo6dG9XcmFwcGVkKHZhbHVlLmpzVmFsdWUoKSk7
CiB9CiAKIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIEluc3BlY3RvckRPTUFnZW50Ojpub2RlQXNT
Y3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIE5vZGUqIG5vZGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKaW5kZXggZGM2OWMxMWIxNGVk
OGM2ZmY0NDM2YTg3MGRkZTg0NGMxNWUwMzliYy4uZWU5NzMzNTBiNzJlYzNhMWI4NzMxYjI1MWM5
NDg1ZjdkYjQzNzkxOSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1l
bmNsb3NlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9z
ZUVsZW1lbnQuaApAQCAtNTAsOCArNTAsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1JhZGlj
YWxWYWx1ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhNYXRoTUxNZW5jbG9zZUVsZW1lbnQpCi0K
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShNQVRITUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0
R2x5cGhEZWZFbGVtZW50LmgKaW5kZXggYWNiMmYzNTBhNzM3ZDM2Y2Q4N2I1NmQyMzBhOGFkMzFl
MjFjZGY4YS4uYzYzZTM0MzczNTEwODc1OGFmYzhlZTllMzFjZWZiNDJkYTAwYjI0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdBbHRHbHlwaERlZkVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQWx0R2x5cGhFbGVtZW50LmgKaW5kZXggNTA5NWFiNTNhNTU2ZjFlZTEyMjc0ZTFjM2QxOGZl
MjY2N2FkZTNlNS4uNmJlOWY3NTJjMTA1Yjg2YTg0YjE3OTFhMzY2NWVlN2I4MmNiMjc0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaApAQCAtNTUsOCArNTUsNiBAQCBw
cml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhTVkdBbHRHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVt
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaApp
bmRleCA4MjQ5Y2I4MGIzZDA2Y2YzNTk3ZmQzOGQzODAzOTI1ZDJiZmEwOGM1Li5jN2FmZTY5NWNl
NTczNDk0MjI1ZDk5NjZmOGM0YmRhNjU1ZDMxYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhJdGVt
RWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlTW90aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVN
b3Rpb25FbGVtZW50LmgKaW5kZXggMzY2NzgxNGEzMjE5MGQyMjI3OGY4Nzc0YjEzNzNkZDZhMzYz
MDdjOS4uNDE3ZDVmMjc1ZTY3Njg3NmE2MjRkYTdjZTkyMzc0ZWM5NzdiM2UyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKQEAgLTcwLDggKzcwLDYg
QEAgcHJpdmF0ZToKICAgICBQYXRoIG1fcGF0aDsKICAgICBQYXRoIG1fYW5pbWF0aW9uUGF0aDsK
IH07Ci0KLU5PREVfVFlQRV9DQVNUUyhTVkdBbmltYXRlTW90aW9uRWxlbWVudCkKICAgICAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQuaAppbmRleCBiZGNmZjcwZGU1MThkMDAzYjNjNThjNmNmZTljZTkx
ZDNlNjllYTlhLi5iMWE0NGVhZWIwNTcyMGU3ZjY0OGM3YmNjODI3ZjRhNWYwZTNhMzkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaApAQCAt
NDcsOCArNDcsNiBAQCBwcml2YXRlOgogICAgIFNWR1RyYW5zZm9ybTo6U1ZHVHJhbnNmb3JtVHlw
ZSBtX3R5cGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCmluZGV4IDA3
OWZhOTlmY2Y5ODNmY2Q0NWY5M2E3NjMxZDlhOGQ3Y2U1NjY3OGEuLmVjMTgyZGIzYzJkMmJjNzFi
NDQ5NDg0OTJiMWQ0N2M2Y2U2NWFlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDaXJjbGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVE
X1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDaXJjbGVFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdDaXJjbGVFbGVtZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAppbmRleCA4ZmRlYjAyYjY5NGU1NmMz
YmMzNjA2MjBjMTA0OWQwMDAxYzE1NTk3Li45MzhjZmI0NWQ5MmU0MjAyYTQ2NTI1NGYzOWQ1NmVl
NDQ5YmFmYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCkBAIC01
Niw4ICs1Niw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElF
UwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0NsaXBQYXRoRWxlbWVudCkKLQogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCmluZGV4IGE1MzAxZTQ2MjJmYTU2
ZjkyYTA3YmM0MjJhODU1OWMzYjUwNDgwN2UuLmVhMjIzZThhNGJkYWZhYTJhMjliOGYwZWM5NDk3
YzAzODRmYTVhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaApAQCAtNzIs
OCArNzIsNiBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8U1ZHRWxlbWVudCo+IG1fY2xpZW50czsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDdXJzb3JFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
bGlwc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaApp
bmRleCBkNmIyMGY2MmIyYzU3NWZmY2ZmMjM0MDMwOTdmMzQ2ZTFkNjMzMzUxLi41YjlmOTJjMzAx
ZGNkOWNiMWQ3MmUyOTE0MWQ1MDM0M2I4YzQ0YmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxs
aXBzZUVsZW1lbnQuaApAQCAtNTUsOCArNTUsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJF
X0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdFbGxpcHNlRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaAppbmRleCA3OTlmNmQ1ZjlhNzQ3NGJj
ODJlNTc2YWNhMzNkNGI3ZjA0NmUxOWI1Li42MGVhNDQzNmVhYzNjNjA1OThhYWNjNDQ1MWQ1ZTEx
ODgyMDFiZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGln
aHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxl
bWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PExpZ2h0U291cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNB
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmgKaW5kZXgg
MzFlYmI0Zjc4Y2M0YjMyZTEyYTc3OWI4Mjc1Mjk0MGMxNTMwNGI5Yy4uYTRlNmFkNWFmNDNjMTQw
MmJkMGFmZDZiNjkyMGY5NDYyYzgyMGQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRnVuY0FFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FF
bGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNBRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdGRUZ1bmNBRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmgKaW5kZXggMzViYzQ0ODU4MjU4Y2Uy
ZGE3YzYwMTU1MzgyMmY5MGJiNTNjYjYzOC4uYWY0OWQ2ZjdkZGY1MTU5ZWY4NjcxZjljYTNjMmY1
Yjg0MmUwYmRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmgKQEAgLTMz
LDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdGRUZ1bmNCRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1bmNCRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRnVuY0dFbGVtZW50LmgKaW5kZXggMzk4NTdlZGExMDU0ZDU5MjUyYzc3M2RiYWYwMWM4
OTg4ZjJkNGVhZi4uMWFmYTQzMjQxOTA4OTFlOTJmNGY3OGQzOTA1MWVlN2RmMTI5MzgyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJp
dmF0ZToKICAgICBTVkdGRUZ1bmNHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRUZ1bmNHRWxlbWVudCkKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUZ1bmNSRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVt
ZW50LmgKaW5kZXggOWU3MzI3YzczMzM0MTBkMzc3ZjllMmQxZjFmYTMzMjQ0NzM4ZTZiYi4uYjBk
MGViNTFhMGY2NjQwNmRmYzJiY2NkMmZkNmUyNWEwYmFmMGUxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRnVuY1JFbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToKICAgICBTVkdG
RUZ1bmNSRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhTVkdGRUZ1bmNSRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9k
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaApp
bmRleCA1MTU5N2ViNTc5ZjcyY2Y2YzNlYWEyOWI0NzgzMjFmMjEwNmQwMTBmLi43MjMzZjIzNGVk
ZWQ2NjU4YTBmM2U2MzJmNjYzMjNhYmRlZmZlZDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5oCkBAIC00NCw4ICs0NCw2IEBAIHByaXZhdGU6CiAgICAgRU5E
X0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZF
TWVyZ2VOb2RlRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCmluZGV4IGI3MDFiZTU5
M2I5N2NkNjFhZTk3NzU3Yzk2NDkzM2E4ZWJjZmVhY2YuLjM0NTc5MjRmYmQ2NTBhODUyMTI4ZmJh
MTZmZDc5NzQ3NTk2MTI2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBv
aW50TGlnaHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdo
dEVsZW1lbnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxMaWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhTVkdGRVBvaW50TGlnaHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3Bv
dExpZ2h0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVu
dC5oCmluZGV4IDgwMzlhZjJmMTUwZTBjZTdmMGRlNzBkODljZGViODBiNzc5MGY5M2UuLmZmNmI0
OGM1ZWMxYjQ1ZTc2NWJjOTMwZTg2YWQ0NDJmMWRhNjE2YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3Zl
cnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVTcG90TGlnaHRFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmgKaW5kZXggOGVhNzNmYjY2MTYyY2FkNzkzOTkyNjFjZGU3ZjdlYjgzOWYyNDMyZi4u
MTkzOWUzMTdmN2YwMDRkMDZkOGQ0N2U0MjI2YjlmMGEwZDNjM2Q4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBAIC03NSw4ICs3NSw2IEBAIHByaXZhdGU6CiAgICAgRU5E
X0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0Zp
bHRlckVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5o
CmluZGV4IDhlNDI3NGRkMGNiM2MzZDU4MDUxYjdlN2NiZWIwOWI3N2NmYTkyNjkuLmViNWM0NmUw
NGNlNTI0ZmY4MDBkODU2ZGI4M2IwOWQyNjg4NTkxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RWxlbWVudC5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNHbHlw
aENhY2hlVmFsaWQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEVsZW1lbnQpCi0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgKaW5kZXggNmEyMTE2YTk1YmY4MDQ1NGQ4
YzcyNzM5YjdlNjhlM2Y4YWI4MmEyMy4uZGNkMDFmMjRhMjMwMmFkNzc1NzlmNjI3ZjIwYTRiMWZk
MTcwZWYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaApAQCAtNjYs
OCArNjYsNiBAQCBwcml2YXRlOgogICAgIFNWR0ZvbnRFbGVtZW50KiBtX2ZvbnRFbGVtZW50Owog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCmluZGV4IDNmMjU0NDVmYWFiNjQ4MTU3ZDgw
ZTgyMzc1MWIxNTIzNzgxMDljMjIuLmM2ODVmOGFjNDMxZjkyOTQwZWNhNDM5MDBmMDI1YjQzZTJk
YmM0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaApA
QCAtMzksOCArMzksNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAK
LU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZU5hbWVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCmluZGV4IDNiMDkxNGMxMmYzZDlhOTkyY2Y1MTRj
MWI0NjEzMDA3MmU1MjUxZWMuLmJhNWE2NDQ2YmJlMWFkMWNmMzc5NjU2MGUzYTdlOGY2OTkzMzI3
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKQEAgLTQw
LDggKzQwLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VTcmNFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5oCmluZGV4IDE4OWE3ODk1YWMzZDM1MWNlM2QzYjZjYjQyZGJh
Nzk1MzQ2NjUzYzQuLjM1MGYxZmQxYTNhYzJkYmQ5NmFmMDE3YjY4MDNiOWFiYjk3YjQ1NDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKQEAgLTUwLDggKzUw
LDYgQEAgcHJpdmF0ZToKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBtX2Nh
Y2hlZEZvbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VVcmlFbGVtZW50KQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAppbmRleCA3NWJi
NzRiN2UyNzEwYjNiMDk3OTFiOTFkMWIwMjFiNTEwNjIyZjBjLi5hYjRkMWFmYzZiYTlmZGIwNjgz
YTQ4OTc4NmJhNTE3N2QxODBlMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQuaApAQCAtNTgsOCArNTgsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNM
QVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAppbmRleCA3YjdkMzhhMTBmYTU0MGE1YjM1NWUzYWEz
YThiMjBkMjQ3ZjQ2OGMzLi40MDA5ZmI2NjIzMjY1M2VmODExYzczOWRmYWU3YjZjYjdhMTUwYmFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCkBAIC01Nyw4ICs1Nyw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlR2x5cGhDYWNoZSgpOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR0dseXBoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHbHlwaFJlZkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1l
bnQuaAppbmRleCA2ZDhjYWM3ZWI3N2ZjMmY5ZjAyMzc5NTczYjZkNjE4N2Y0NjM0NTMzLi40NjRm
ZWVjZTMxYzI4NzU1ZTFlMmEzOGI5MzE2Njg0M2RhN2MzMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dseXBoUmVmRWxlbWVudC5oCkBAIC02MSw4ICs2MSw2IEBAIHByaXZhdGU6CiAgICAgZmxv
YXQgbV9keTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdHbHlwaFJlZkVsZW1lbnQpCi0KIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgKaW5kZXggZTVkOGI3OGZk
MzgzYzg0MzNlYTZlZDQ0N2Q4ODI1NWI4MzAwNzg3YS4uMWMxOWUwNTliN2RhNWRmNjFjMWM2OTY0
NDQ5MDRiYzZiMThjYWJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJu
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaApAQCAt
NDIsOCArNDIsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhTVkdIS2VybkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVt
ZW50LmgKaW5kZXggMWEzNjFjNWM4M2UyMjc3MzU2ODc1MDZkODI2ZDM3ZTc5MDI5YmRiNy4uMTc2
NzYxZGE5ZWJhZDBjZTRlMTY2Nzk0MDc4YzU3ODFlZmQ5NmIwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdJbWFnZUVsZW1lbnQuaApAQCAtNzIsOCArNzIsNiBAQCBwcml2YXRlOgogICAgIFNWR0ltYWdl
TG9hZGVyIG1faW1hZ2VMb2FkZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHSW1hZ2VFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGluZUVsZW1lbnQuaAppbmRleCA2NGU3ODYzNjYyZTBiNTE0MDVkODRhODkwNjkyNTM4NWI0ZmYx
NTk5Li41M2ZlYWQ2NTYwNDUxNGZmYjFjNWNmYTBmZTk2MDZkMjVhNTNlODBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZUVsZW1lbnQuaApAQCAtNTUsOCArNTUsNiBAQCBwcml2YXRlOgogICAgIEVO
RF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdM
aW5lRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAppbmRleCA2OGFjNmI4NDNk
NzAwZjc2MDJlZWY2NDQ1MjliZjBhMmRmZGQ4YzRjLi40NmQ5MmRlMzFiNzA0YTZlZTQxM2I2M2Jh
MGFkZDJmYWE4YTUyMzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVf
QU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0xpbmVhckdyYWRp
ZW50RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAppbmRleCA5NzMyNjQ4YTBjNWQwNTEyZDJjZjdlNzUzNGQ3
ZjFhMWM4MmIwZWE5Li4xYmU2NGE2NzA2ZThlYWRhMDlkMjAxZTg2MjQ0NGIxZWM2NDc1MTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCkBAIC02OCw4ICs2OCw2IEBAIHByaXZh
dGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR01QYXRoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gU1ZHTVBhdGhFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
CmluZGV4IDFiOTMwZTYzYzkwYTFjYWQ1ZDI2ZWZjMWM1NDkyZmNjYWRmZmJiYjAuLmI1MjJjYjdi
YTYyZTU1ZmEyMjg3ZjRlNzRlMDM4MGMwODRjMzQwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuaApAQCAtMTY0LDggKzE2NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBT
VkdTeW5jaHJvbml6YWJsZUFuaW1hdGVkUHJvcGVydHk8U1ZHTWFya2VyT3JpZW50VHlwZT4gbV9v
cmllbnRUeXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01hcmtlckVsZW1lbnQpCi0KIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCmluZGV4IGY1MGE5NDY5ZGJl
OTQ0ZjExNzAxM2FlZTUyYmE5OTEyZTE0OGNjNDUuLjIyZWRkYmNkM2Y2ZjU3ZDZjZDRiZGIwMzM1
NTMzMzI5ZTIwMzFkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCkBAIC02OCw4
ICs2OCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lzdGVtTGFu
Z3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRo
aXMpOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTWFza0VsZW1lbnQpCi0KIH0KIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAppbmRleCBm
NTYzN2VlOTI1NTc0NmExZDdhYTUwNDY2ZjQxZjkxZmQ3YjVlM2RkLi45NGE0MjY3ZTBkNzE5ZTI5
NjI2NzIyYWQ5YjYwZTVjYzMzNjRjNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmgKQEAgLTM2LDggKzM2LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTWlzc2luZ0dseXBoRWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05U
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKaW5kZXggMDIxYjZmMTA4NjYxODFiNGE5
OWI0NjljMjNlNDQyMDBmZjhlMDYzZC4uYjY0YjRjNWVmNjE1NGFmOWE0NzFlZGNiNjYwNmI5OWFi
NGFhMGQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKQEAgLTEyOSw4ICsxMjks
NiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0FuaW1WYWxPYnNlcnZlZDsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhTVkdQYXRoRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKaW5kZXggMjJjN2MyMDIy
ZWIzNDdjMTIxMTFkMzkwMWRkODNjNWRiODcyOWYwMi4uNDkyY2Q2ODE3YTgwNTVjZTk1OTE2OGI1
MGQ2YzUxNDQ4NzkxNTgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRl
cm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgK
QEAgLTg2LDggKzg2LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVT
eXN0ZW1MYW5ndWFnZSgpIG92ZXJyaWRlIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplU3lzdGVtTGFu
Z3VhZ2UodGhpcyk7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdQYXR0ZXJuRWxlbWVudCkK
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
bHlnb25FbGVtZW50LmgKaW5kZXggYTYyZGUyMDBmM2RiZGUzNWZlNWY1ZDE5ZmIwMDIxZTk4ZGI3
NWU5ZC4uZDkwZGRhYmZhZDZiMTFjYjhlN2NiZjkyZTFkNTRjM2VmOTQxOWFkYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmgKQEAgLTMzLDggKzMzLDYgQEAgcHJpdmF0ZToK
ICAgICBTVkdQb2x5Z29uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdQb2x5Z29uRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2x5bGluZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQu
aAppbmRleCA0YjVlODQxZjc3MThlNmNjODBiY2NjNDU5YjYwOWVhMmJmMzI1ZGJhLi5hMDkxZWM2
NGU5NWQyYjViZjg2MWQ1Zjg2MTMwMGJkZWQ3Yzk2ODc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BvbHlsaW5lRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHUG9s
eWxpbmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKFNWR1BvbHlsaW5lRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuaAppbmRleCBlNTZmYjJmZDE3ODMwOWFiZWNiOWU5OTY5MGQyNzA3ZWY4MjQ5ZTBmLi4xMmJm
NGVkMWJjY2UyMjk5NmMyZWEzMmM3N2YzYzI0NGVhYmFjYzYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCkBAIC01Niw4ICs1Niw2IEBAIHByaXZh
dGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKaW5kZXggNzJlYjg3NTgw
MWMwNTQ0ODdhZDc5M2I5NDU1ZmJiMjhkMWEzN2M5Zi4uM2NlZThkOTMwZmJkMjc2ZmZmNjc5NmE1
YzA2MWYzYzVjN2UwNjY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKQEAgLTU4
LDggKzU4LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVT
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUmVjdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAppbmRleCBlZmI0
MmVkZGM4MzM3ODRhMzI4OGZlMmE0ZDM4MGE0M2VmNGQ3ODgzLi4yNzgyMjcyZWUwNDVhMzUxMjI5
MTUwMGM1ZTM5MGYxNDc3MWZmYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKQEAg
LTE3NSw4ICsxNzUsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTVkdWaWV3U3BlYz4gbV92aWV3
U3BlYzsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTVkdFbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgK
aW5kZXggNTcyZjc5ZGVmZjE0NTMxNGM4NmEzNWZjODkwYmZhMDhhMTRhMWZiNS4uOWFjZGJkYjFi
MGFkZjM3NTQxNDc2NTFiZDdiNDMxMDJjYjU1MTc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oCkBAIC04Niw4ICs4Niw2IEBAIHByaXZhdGU6CiAgICAgVGltZXI8U1ZHRWxl
bWVudD4gbV9zdmdMb2FkRXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTY3Jp
cHRFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RvcEVsZW1lbnQuaAppbmRleCBkODc5YjRlOTJlOTIxYWVkNzdhNzAwNzUwYTdmNmVh
Zjc2MjliMGY2Li43ZGEzN2M2YjgxYTE1OWI1NWRhZmZiNTEzNzRmNzA5MjY0ZGUxMDYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaApAQCAtNDksOCArNDksNiBAQCBwcml2YXRlOgog
ICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNU
UyhTVkdTdG9wRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAppbmRleCA2YTkxZTM4OGM5NWQ5N2ZlODE2MTc2
MmY0NDg1NGU0YmVjMGRmMzRhLi4xZTczMTc1MjVmYzdkYjc1NTg4ZDUzYjhjMzQ3MjlkYzNhNTIx
ZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCkBAIC02OCw4ICs2OCw2IEBA
IHByaXZhdGU6CiAgICAgVGltZXI8U1ZHRWxlbWVudD4gbV9zdmdMb2FkRXZlbnRUaW1lcjsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdTdHlsZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIFNWR1N0eWxlRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
RWxlbWVudC5oCmluZGV4IGE4YzBiNzIzMDI3ZjFkYmI0ZWVkZWU1ZDBkOWM3NjczNjkxYzY1NTQu
LjQzMDg0ZDVjOTNlYzE5OTY2ZmQ1NjcwZDFmYmNhOTgyNTA2NjYyYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0RWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJy
aWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1RleHRFbGVtZW50KQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVu
dC5oCmluZGV4IDBhNGZmNjc0ZjhjODIwYTY2MGFmZDc5YTVmNDI4ZTg1Y2FiNDhiOGIuLmYyNDRi
YzM3MzI3ZDQ0NzI0NDRhOTA2ZGE4Yjc3Njk0N2ZlNDJlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBhdGhFbGVtZW50LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBwcml2YXRlOgogICAgIEVO
RF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdU
ZXh0UGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKaW5kZXggYzg0YTYwMzI3Y2Y1NmQwNjUyZjRjNGM5
NTZiZGY2MmIzMThlZTI0Ni4uMDc1YjIzOWI4MThjNWEzZTliNDdjMzVjZjM4MzVmOGJlMThlYjRi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaApAQCAtNDAsOCArNDAsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0
eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhT
VkdUaXRsZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRleCAzZjEwZWU5ODk4ZDU2MTc2YTZmZTAzNDBhOTEx
NzA3NTAyYmYyNzUxLi5iNzMyZjE4ZjIyMzYxZDE5MmQzZmEyNjdlZTgxNjdkMjFkYWVlNGExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKQEAgLTEyOCw4ICsxMjgsNiBAQCBwcml2YXRl
OgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHVXNlRWxlbWVudCkKLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWS2VybkVsZW1lbnQuaAppbmRleCBjZTg4ZGU1YjQwZjcxYjc0YmI4NDZjOWFkNTA5ZjhlNWZi
Nzc0ZTEzLi4xODBiYzc2ZDAzZDE3MmFhODRhZWQ3YWIzMTM5NTY5NjMwOTJjMjg4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCkBAIC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1ZLZXJuRWxl
bWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19G
T05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKaW5kZXggMjUxZDczMDM5MTM1OTU0
MjZmNTFlZjYyOWU0NmFhNWZlMzU2NTA4ZS4uNGI0NGQ5Yzk0Njg3M2UyNmE1OTIwNTgxZjJiM2Uy
MmRiNmEyYjMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKQEAgLTY1LDggKzY1
LDYgQEAgcHJpdmF0ZToKICAgICBTVkdTdHJpbmdMaXN0IG1fdmlld1RhcmdldDsKIH07CiAKLU5P
REVfVFlQRV9DQVNUUyhTVkdWaWV3RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0
RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC9XZWJL
aXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5k
ZXggZWQ0MDhkNjdlYjA5ZWIxOTY4OTM0YzlkZjlhMDUzNTU0YTk0MjIwNi4uYTY3ZTExMTQwY2Mz
YzM4NjA5YTk3OTM1ZGUzYjdiNmFhOGViZGJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3Iv
V2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTE1Myw3ICsxNTMsNiBAQCBFWFBPUlRTCiAgICAgICAg
IHN5bWJvbFdpdGhQb2ludGVyKD8/MEhpdFRlc3RSZXN1bHRAV2ViQ29yZUBAUUFFQEFCVkxheW91
dFBvaW50QDFASUlJSUBaLCA/PzBIaXRUZXN0UmVzdWx0QFdlYkNvcmVAQFFFQUFAQUVCVkxheW91
dFBvaW50QDFASUlJSUBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/aXNSZXBsYWNlbWVu
dE9ic2N1cmVkQFJlbmRlckVtYmVkZGVkT2JqZWN0QFdlYkNvcmVAQFFCRV9OWFosID9pc1JlcGxh
Y2VtZW50T2JzY3VyZWRAUmVuZGVyRW1iZWRkZWRPYmplY3RAV2ViQ29yZUBAUUVCQV9OWFopCiAg
ICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD8/MVJhbmdlQFdlYkNvcmVAQFFBRUBYWiwgPz8xUmFu
Z2VAV2ViQ29yZUBAUUVBQUBYWikKLSAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvTm9kZUBX
ZWJDb3JlQEBZQVBBVk5vZGVAMUBWSlNWYWx1ZUBKU0NAQEBaLCA/dG9Ob2RlQFdlYkNvcmVAQFlB
UEVBVk5vZGVAMUBWSlNWYWx1ZUBKU0NAQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/
PzBDbGllbnRSZWN0QFdlYkNvcmVAQEFBRUBBQlZGbG9hdFJlY3RAMUBAWiwgPz8wQ2xpZW50UmVj
dEBXZWJDb3JlQEBBRUFBQEFFQlZGbG9hdFJlY3RAMUBAWikKICAgICAgICAgc3ltYm9sV2l0aFBv
aW50ZXIoPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBQUVAQUJWSW50UmVjdEAxQEBaLCA/PzBDbGll
bnRSZWN0QFdlYkNvcmVAQEFFQUFAQUVCVkludFJlY3RAMUBAWikKICAgICAgICAgc3ltYm9sV2l0
aFBvaW50ZXIoPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBQUVAWFosID8/MENsaWVudFJlY3RAV2Vi
Q29yZUBAQUVBQUBYWikKQEAgLTMxMCw5ICszMDksNiBAQCBFWFBPUlRTCiAgICAgICAgIHN5bWJv
bFdpdGhQb2ludGVyKD90ZXh0QFJhbmdlQFdlYkNvcmVAQFFCRT9BVlN0cmluZ0BXVEZAQFhaLCA/
dGV4dEBSYW5nZUBXZWJDb3JlQEBRRUJBP0FWU3RyaW5nQFdURkBAWFopCiAgICAgICAgID90ZXh0
YXJlYVRhZ0BIVE1MTmFtZXNAV2ViQ29yZUBAM1ZIVE1MUXVhbGlmaWVkTmFtZUAyQEIKICAgICAg
ICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RleHRDb250ZW50QE5vZGVAV2ViQ29yZUBAUUJFP0FWU3Ry
aW5nQFdURkBAX05AWiwgP3RleHRDb250ZW50QE5vZGVAV2ViQ29yZUBAUUVCQT9BVlN0cmluZ0BX
VEZAQF9OQFopCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0RvY3VtZW50QFdlYkNvcmVA
QFlBUEFWRG9jdW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaLCA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZ
QVBFQVZEb2N1bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFopCi0gICAgICAgIHN5bWJvbFdpdGhQb2lu
dGVyKD90b0RPTVN0cmluZ0xpc3RAV2ViQ29yZUBAWUE/QVY/JFBhc3NSZWZQdHJAVkRPTVN0cmlu
Z0xpc3RAV2ViQ29yZUBAQFdURkBAUEFWRXhlY1N0YXRlQEpTQ0BAVkpTVmFsdWVANUBAWiwgP3Rv
RE9NU3RyaW5nTGlzdEBXZWJDb3JlQEBZQT9BVj8kUGFzc1JlZlB0ckBWRE9NU3RyaW5nTGlzdEBX
ZWJDb3JlQEBAV1RGQEBQRUFWRXhlY1N0YXRlQEpTQ0BAVkpTVmFsdWVANUBAWikKLSAgICAgICAg
c3ltYm9sV2l0aFBvaW50ZXIoP3RvRWxlbWVudEBXZWJDb3JlQEBZQVBBVkVsZW1lbnRAMUBWSlNW
YWx1ZUBKU0NAQEBaLCA/dG9FbGVtZW50QFdlYkNvcmVAQFlBUEVBVkVsZW1lbnRAMUBWSlNWYWx1
ZUBKU0NAQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9KU0BXZWJDb3JlQEBZQT9B
VkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVkFy
cmF5QnVmZmVyQDNAQFosID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBFQVZFeGVj
U3RhdGVAM0BQRUFWSlNET01HbG9iYWxPYmplY3RAMUBQRUFWQXJyYXlCdWZmZXJAM0BAWikKICAg
ICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BA
UEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZDU1NTdHlsZURlY2xhcmF0
aW9uQDFAQFosID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBFQVZFeGVjU3RhdGVA
M0BQRUFWSlNET01HbG9iYWxPYmplY3RAMUBQRUFWQ1NTU3R5bGVEZWNsYXJhdGlvbkAxQEBaKQog
ICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlND
QEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVkNsaWVudFJlY3RAMUBA
WiwgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAzQFBFQVZK
U0RPTUdsb2JhbE9iamVjdEAxQFBFQVZDbGllbnRSZWN0QDFAQFopCkBAIC0zMjAsNyArMzE2LDYg
QEAgRVhQT1JUUwogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9KU0BXZWJDb3JlQEBZQT9B
VkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVk5v
ZGVAMUBAWiwgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAz
QFBFQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBFQVZOb2RlQDFAQFopCiAgICAgICAgIHN5bWJvbFdp
dGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAz
QFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWUmFuZ2VAMUBAWiwgP3RvSlNAV2ViQ29yZUBAWUE/
QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAzQFBFQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBF
QVZSYW5nZUAxQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9KU0BXZWJDb3JlQEBZ
QT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBB
Vk5vZGVMaXN0QDFAQFosID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBFQVZFeGVj
U3RhdGVAM0BQRUFWSlNET01HbG9iYWxPYmplY3RAMUBQRUFWTm9kZUxpc3RAMUBAWikKLSAgICAg
ICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvUmFuZ2VAV2ViQ29yZUBAWUFQQVZSYW5nZUAxQFZKU1Zh
bHVlQEpTQ0BAQFosID90b1JhbmdlQFdlYkNvcmVAQFlBUEVBVlJhbmdlQDFAVkpTVmFsdWVASlND
QEBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2lzVHJlZVNjb3BlQE5vZGVAV2ViQ29y
ZUBAUUJFX05YWiwgP2lzVHJlZVNjb3BlQE5vZGVAV2ViQ29yZUBAUUVCQV9OWFopCiAgICAgICAg
IHN5bWJvbFdpdGhQb2ludGVyKD91cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkQEVkaXRvckBX
ZWJDb3JlQEBRQUVYWFosID91cGRhdGVFZGl0b3JVSU5vd0lmU2NoZWR1bGVkQEVkaXRvckBXZWJD
b3JlQEBRRUFBWFhaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzQERvY3VtZW50QFdlYkNvcmVAQFFBRVhXNFJ1blBvc3RMYXlv
dXRUYXNrc0AxMkBAWiwgP3VwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0BEb2N1
bWVudEBXZWJDb3JlQEBRRUFBWFc0UnVuUG9zdExheW91dFRhc2tzQDEyQEBaKQpAQCAtNDQ5LDcg
KzQ0NCw2IEBAIEVYUE9SVFMKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvVUludDMyRW5m
b3JjZVJhbmdlQFdlYkNvcmVAQFlBSVBBVkV4ZWNTdGF0ZUBKU0NAQFZKU1ZhbHVlQDNAQFosID90
b1VJbnQzMkVuZm9yY2VSYW5nZUBXZWJDb3JlQEBZQUlQRUFWRXhlY1N0YXRlQEpTQ0BAVkpTVmFs
dWVAM0BAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvVUludDY0QFdlYkNvcmVAQFlB
X0tQQVZFeGVjU3RhdGVASlNDQEBWSlNWYWx1ZUAzQFc0SW50ZWdlckNvbnZlcnNpb25Db25maWd1
cmF0aW9uQDFAQFosID90b1VJbnQ2NEBXZWJDb3JlQEBZQV9LUEVBVkV4ZWNTdGF0ZUBKU0NAQFZK
U1ZhbHVlQDNAVzRJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb25AMUBAWikKICNpZiBFTkFC
TEUoVklERU8pCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b1RpbWVSYW5nZXNAV2ViQ29y
ZUBAWUFQQVZUaW1lUmFuZ2VzQDFAVkpTVmFsdWVASlNDQEBAWiwgP3RvVGltZVJhbmdlc0BXZWJD
b3JlQEBZQVBFQVZUaW1lUmFuZ2VzQDFAVkpTVmFsdWVASlNDQEBAWikKICAgICAgICAgc3ltYm9s
V2l0aFBvaW50ZXIoP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRl
QDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZUaW1lUmFuZ2VzQDFAQFosID90b0pTQFdlYkNv
cmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBFQVZFeGVjU3RhdGVAM0BQRUFWSlNET01HbG9iYWxPYmpl
Y3RAMUBQRUFWVGltZVJhbmdlc0AxQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/bmVh
cmVzdEBUaW1lUmFuZ2VzQFdlYkNvcmVAQFFCRU5OQFosID9uZWFyZXN0QFRpbWVSYW5nZXNAV2Vi
Q29yZUBAUUVCQU5OQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9hZGRAVGltZVJhbmdl
c0BXZWJDb3JlQEBRQUVYTk5AWiwgP2FkZEBUaW1lUmFuZ2VzQFdlYkNvcmVAQFFFQUFYTk5AWikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KaW5kZXggZTRmYjc2NjBm
OWY0OWU3YWQ3MTk1NjEwM2JhM2I4NTE4NjI5YzVjMi4uNTBhOWQ4ZmRiY2UyZGJiMjRlNDg2NTE1
ZWZlMGVhNzY3NDhiY2Y5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRP
TU9wZXJhdGlvbnMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlv
bnMubW0KQEAgLTc0LDcgKzc0LDcgQEAgKyAoRE9NRWxlbWVudCAqKV9ET01FbGVtZW50RnJvbUpT
Q29udGV4dDooSlNDb250ZXh0UmVmKWNvbnRleHQgdmFsdWU6KEpTVmFsdWVSZWYKIAogICAgIEV4
ZWNTdGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhl
Yyk7Ci0gICAgcmV0dXJuIGtpdCh0b0VsZW1lbnQodG9KUyhleGVjLCB2YWx1ZSkpKTsKKyAgICBy
ZXR1cm4ga2l0KEpTRWxlbWVudDo6dG9XcmFwcGVkKHRvSlMoZXhlYywgdmFsdWUpKSk7CiB9CiAK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAxZGY0ZTMyMTU4NTE5
YjNjMWM0YTFjOWRlMDBjNTljMDI0ZDI1ZTNmLi5kNmVkYzA3MGQ0YTliM2U1YTdmOWI1MGVhYzY0
NGUzZTMzMTZjZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04NjE4
LDcgKzg2MTgsNyBAQCAtICh1aW50NjRfdClfbm90aWZpY2F0aW9uSURGb3JUZXN0aW5nOihKU1Zh
bHVlUmVmKWpzTm90aWZpY2F0aW9uCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVO
QUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFtb
c2VsZiBtYWluRnJhbWVdIGdsb2JhbENvbnRleHRdOwotICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uID0gdG9Ob3RpZmljYXRpb24odG9KUyh0b0pTKGNvbnRleHQpLCBqc05v
dGlmaWNhdGlvbikpOworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0g
SlNOb3RpZmljYXRpb246OnRvV3JhcHBlZCh0b0pTKHRvSlMoY29udGV4dCksIGpzTm90aWZpY2F0
aW9uKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvbkNsaWVudCo+KE5v
dGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZyb20oX3ByaXZhdGUtPnBhZ2UpKS0+bm90aWZp
Y2F0aW9uSURGb3JUZXN0aW5nKG5vdGlmaWNhdGlvbik7CiAjZWxzZQogICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcAppbmRleCA5NDM4Mzc1ZTNlOTQ2YTA1OTAwODJhMzliYjBmYjIyMGIw
ZGNmNmM3Li5lM2RjNmMxMjA5NzNjOTg0MTUwMzU2MGFmZGRjODMwMjUxYWViNTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcApAQCAtNTk3NCw3ICs1OTc0LDcgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJWaWV3OjplbGVtZW50RnJvbUpTKAogCiAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMg
PSB0b0pTKGNvbnRleHQpOwogICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7Ci0gICAg
RWxlbWVudCogZWx0ID0gdG9FbGVtZW50KHRvSlMoZXhlYywgbm9kZU9iamVjdCkpOworICAgIEVs
ZW1lbnQqIGVsdCA9IEpTRWxlbWVudDo6dG9XcmFwcGVkKHRvSlMoZXhlYywgbm9kZU9iamVjdCkp
OwogICAgIGlmICghZWx0KQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAppbmRleCBjZGRkYzgxNmFiYjgxN2U4
MzU3N2I5MTBjNjMzZTMwYTBlZTYwNWZlLi4xZGMwYjRiNTAzMDc0YzJiMWE1NTNjZDg5MDBiZDUx
YzUyYWU2OGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5kbGVD
YWNoZSgpCiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBJbmplY3RlZEJ1
bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgb2Jq
ZWN0KQogewotICAgIE5vZGUqIG5vZGUgPSB0b05vZGUodG9KUyhvYmplY3QpKTsKKyAgICBOb2Rl
KiBub2RlID0gSlNOb2RlOjp0b1dyYXBwZWQodG9KUyhvYmplY3QpKTsKICAgICByZXR1cm4gZ2V0
T3JDcmVhdGUobm9kZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZS5jcHAKaW5kZXggZjYzMzkxYjRjZTVjZjcyMWExOWIwNjg3M2Y3MTBkYzJlMzVm
MTllNy4uOWFjOGIzYzYxNmE2OTBmYzNmMGIxZmZlY2I3MzQ0M2EwYjQ0N2IwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKQEAgLTU3LDcgKzU3
LDcgQEAgc3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5kbGVDYWNoZSgpCiAKIFBhc3NSZWZQ
dHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6
Z2V0T3JDcmVhdGUoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiBvYmplY3QpCiB7Ci0gICAgUmFu
Z2UqIHJhbmdlID0gdG9SYW5nZSh0b0pTKG9iamVjdCkpOworICAgIFJhbmdlKiByYW5nZSA9IEpT
UmFuZ2U6OnRvV3JhcHBlZCh0b0pTKG9iamVjdCkpOwogICAgIHJldHVybiBnZXRPckNyZWF0ZShy
YW5nZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMWE2NzI3YmFjYTU5M2MwYTdi
YjgxZGEwMzg5MGE3MjlhNWQ4M2M0Yi4uNWViOTVjMGVkNTIwZjk5YmJiMmNlZDIzZTE3OThhM2Mz
ZDg1Y2I3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTU5Nyw3ICs1OTcsNyBAQCB2b2lk
IEluamVjdGVkQnVuZGxlOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhXZWJQ
YWdlKiBwYWdlKQogdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklEKEpT
Q29udGV4dFJlZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganNOb3RpZmljYXRpb24pCiB7CiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAg
ICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90aWZpY2F0aW9uKHRv
SlModG9KUyhqc0NvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOworICAgIFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uID0gSlNOb3RpZmljYXRpb246OnRvV3JhcHBlZCh0b0pTKHRv
SlMoanNDb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKICAgICBpZiAoIW5vdGlmaWNhdGlvbikK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnN1cHBs
ZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+bm90aWZpY2F0aW9uSURGb3JUZXN0aW5n
KG5vdGlmaWNhdGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238445</attachid>
            <date>2014-09-21 20:02:40 -0700</date>
            <delta_ts>2014-09-21 20:52:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136839-20140921200238.patch</filename>
            <type>text/plain</type>
            <size>164707</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmNGYxNzQ4ZjU4MGE3
YjhmODViNjU1ZDQ4OWJmZDkxNWQ0N2NlNy4uM2RjYmYxZmExOGU0NmZhOTllMDdhYWE1OTUyMWM1
ZDBlOTNmZWQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxMSBAQAorMjAxNC0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVyYXRlIEVsZW1lbnQg
Y2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucyBp
bnN0ZWFkIG9mIHJlcXVpcmluZyBleHBsaWNpdAorICAgICAgICB1c2Ugb2YgTk9ERV9UWVBFX0NB
U1RTKCkgbWFjcm8uIENhc3RpbmcgaXMgbm93IGRvbmUgdXNpbmcgdGhlIGZvbGxvd2luZworICAg
ICAgICBmb3JtOiBkb3duY2FzdDxIVE1MRGl2RWxlbWVudD4oKSwgaW5zdGVhZCBvZiB0b0hUTUxE
aXZFbGVtZW50KCkuCisKKyAgICAgICAgVGhlIHByZXZpb3VzIGZvcm0gKGkuZS4gdG9IVE1MRGl2
RWxlbWVudCgpKSBpcyBzdGlsbCBzdXBwb3J0ZWQgZm9yIG5vdworICAgICAgICBieSBnZW5lcmF0
aW5nIG1hY3JvcyB0aGF0IGNvbnZlcnQgdGhlc2UgY2FsbHMgaW50byB0aGUgbmV3IGZvcm0sIHVu
dGlsCisgICAgICAgIHRoZSBjb2RlIGJhc2UgaXMgcG9ydGVkIHRvIHRoZSBuZXcgY2FzdGluZyBo
ZWxwZXJzLgorCisgICAgICAgIFRoZSBwbGFuIGlzIGFsc28gdG8gdXNlIGlzPEhUTUxEaXZFbGVt
ZW50PigpIGluc3RlYWQgb2YKKyAgICAgICAgaXNIVE1MRGl2RWxlbWVudCgpIGZvciBjb25zaXN0
ZW5jeSBidXQgdGhpcyB3YXMgbm90IGNoYW5nZWQgaW4gdGhpcworICAgICAgICBwYXRjaCB0byBh
dm9pZCBibG93aW5nIHVwIHRoZSBzaXplLgorCisgICAgICAgIFRoaXMgQ0wgYWxzbyB1cGRhdGVz
IHRoZSB3YXkgd2UgY29udmVydCBhIEpTVmFsdWUgaW50byBhbgorICAgICAgICBpbXBsZW1lbnRh
dGlvbiBwb2ludGVyLiBJbnN0ZWFkIG9mIHVzaW5nIHRvSFRNTERpdkVsZW1lbnQoKSwgd2hpY2gK
KyAgICAgICAgbG9va2VkIGxpa2UgYSBjYXN0LCB3ZSBub3cgdXNlIEpTSFRNTERpdkVsZW1lbnQ6
OnRvV3JhcHBlZCgpLiBUaGlzCisgICAgICAgIGF2b2lkcyBjb25mbGljdGluZyB3aXRoIHRoZSB0
b1hYWEVsZW1lbnQoKSBtYWNyb3MgYW5kIG1ha2VzIGl0CisgICAgICAgIGNsZWFyZXIgdGhpcyBp
cyBub3QgYSBzaW1wbGUgY2FzdC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9y
IGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBs
YWNlbWVudC5tbToKKyAgICAgICAgKFdlYkNvcmU6OlF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50
OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzZXRCdWZmZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RKU0Jsb2IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29tbWFuZExpbmVBUElIb3N0OjpnZXRF
dmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6
ZGF0YWJhc2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NvbW1hbmRMaW5lQVBJSG9zdDo6c3Rv
cmFnZUlkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50T3JOdWxsKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnN0cnVjdEpTRE9NRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01G
b3JtRGF0YTo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdMaXN0Ojp0b1dyYXBwZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9ET01TdHJpbmdMaXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
dzo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvRE9NV2luZG93KTogRGVsZXRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6Y3JlYXRl
VG91Y2hMaXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRUYXJnZXQ6OnRvV3JhcHBlZCk6CisgICAgICAg
IChXZWJDb3JlOjp0b0V2ZW50VGFyZ2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0V4Y2VwdGlvbkJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb25CYXNl
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNIVE1MTWVkaWFFbGVtZW50OjpzZXRDb250cm9sbGVyKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6YWRkKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTSFRNTFNlbGVjdEVsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVj
dEluZGV4U2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5k
SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9z
dDo6c2hvd0NvbnRleHRNZW51KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVu
dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVJbml0TWVzc2FnZUV2ZW50KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmZpbGxNZXNzYWdlUG9ydEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U05vZGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjppbnNlcnRCZWZvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNOb2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGU6OmFw
cGVuZENoaWxkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlRmlsdGVyOjp0b1dyYXBwZWQpOgorICAgICAgICAo
V2ViQ29yZTo6dG9Ob2RlRmlsdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1N1YnRsZUNyeXB0b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0
bzo6ZW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6ZGVjcnlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6c2lnbik6CisgICAgICAgIChXZWJD
b3JlOjpKU1N1YnRsZUNyeXB0bzo6dmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTU3VidGxl
Q3J5cHRvOjpleHBvcnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86Ondy
YXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNTdWJ0bGVDcnlwdG86OnVud3JhcEtleSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEF0dGFjaGVkU2hh
ZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UHJv
Z3JhbVBhcmFtZXRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dDo6Z2V0U2hhZGVyUGFyYW1ldGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRVbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGFGdW5jdGlvbmYp
OgorICAgICAgICAoV2ViQ29yZTo6ZGF0YUZ1bmN0aW9uaSk6CisgICAgICAgIChXZWJDb3JlOjpk
YXRhRnVuY3Rpb25NYXRyaXgpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6c2VuZCk6
CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcElmVGVybWluYWwpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVI
ZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5l
cmF0ZVBhcmFtZXRlcnNDaGVjayk6CisgICAgICAgIChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25F
eGNpdGluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFjdGl2ZURPTU9iamVj
dDo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEFjdGl2ZURPTU9iamVjdCk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlcjo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdEN1c3RvbU5hbWVk
R2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RF
dmVudENvbnN0cnVjdG9yOjp0b1dyYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0RXZl
bnRDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0RXZlbnRUYXJnZXQ6OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjp0
b1Rlc3RFdmVudFRhcmdldCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFeGNl
cHRpb246OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rlc3RFeGNlcHRpb24pOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlOjp0b1dyYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6dG9UZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVy
ZmFjZUltcGxlbWVudHNOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjp0b1dyYXBwZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6dG9UZXN0SW50ZXJmYWNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6dG9XcmFw
cGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5hbWVkQ29uc3RydWN0b3IpOiBEZWxldGVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVj
dG9yLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6
dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE5vbmRldGVybWluaXN0aWMpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRl
cm1pbmlzdGljLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxT
dGFja0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpNdXRhYmxlUG9p
bnQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFy
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0
aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PY3RldE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWly
ZXNBbGxBcmdzQW5kVGhyb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4KToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmljdEZ1bmN0
aW9uV2l0aEFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVmFyaWFkaWNOb2RlTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6dG9X
cmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVGVzdE9iaik6IERlbGV0ZWQuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6
Y29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczMpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OnRvVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOiBEZWxldGVkLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhTZXF1ZW5jZUFyZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnM6OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJD
b3JlOjp0b1Rlc3RUeXBlZGVmcyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTYXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTYXR0cmlidXRlOjp0
b1dyYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6dG9hdHRyaWJ1dGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTcmVhZG9ubHk6OnRvV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjp0b3JlYWRvbmx5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25s
eS5oOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpkb3duY2Fz
dCk6CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAgIChwcmludFR5cGVIZWxw
ZXJzKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJv
ZHlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTERldGFp
bHNFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRGl2RWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTEVtYmVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGFi
ZWxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTExpbmtFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWFwRWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1hcnF1ZWVFbGVtZW50Lmg6CisgICAgICAgICogaHRt
bC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxP
YmplY3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBh
cmFtRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTZWxl
Y3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU291cmNlRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlF
bGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxl
Um93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRp
dGxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2Ny
aXB0VmFsdWVBc05vZGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0FsdEdseXBoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Np
cmNsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0ZFRnVuY0FFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0JF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY0dFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0ZFRnVuY1JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZvbnRGYWNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5hbWVFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2x5cGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdIS2VybkVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0xpbmVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdNUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFy
a2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1BvbHlnb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0b3BFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N0eWxlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdUZXh0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVktlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1ZpZXdFbGVtZW50Lmg6CisKIDIwMTQtMDktMjEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBzcGVjdWxhdGl2ZSBidWlsZCBmaXguCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGYxNDQ2M2ZkNmI1MDI1Y2M2ZDMxMmVjZDdhNGYxNmZhMmQ0OTg4OGUuLmFiNTE1Y2E3
Y2Q0ODFkNjZkMzNkN2JjOWNhMWZhYzUwYTlkZTYwMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTQtMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXBkYXRlIHNvbWUgb2YgdGhlIGV4cG9y
dGVkIHN5bWJvbHMgb24gV2luZG93cyBmb3IgZnVuY3Rpb25zIHRoYXQgd2VyZQorICAgICAgICBy
ZW5hbWVkLgorCisgICAgICAgICogV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9y
L1dlYktpdEV4cG9ydHMuZGVmLmluOgorCiAyMDE0LTA5LTE1ICBwZWF2b0BvdXRsb29rLmNvbSAg
PHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gTWFrZSBpdCBlYXNpZXIg
dG8gZW5hYmxlL2Rpc2FibGUgR1N0cmVhbWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDFmODdlOWFm
NTZmMzdlNzkyYzdjMDY0MDRkOGFjMDFlM2ExMjI5MDYuLmNmYmI4NTVkN2Y3NjNiNzMxY2FkMTRk
MDlkNjkzY2ZjMzFjNWNkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
NC0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEdlbmVy
YXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBVc2UgSlNYWFg6OnRvV3JhcHBlZCgpIGluc3RlYWQg
b2YgdG9YWFgoKSBmdW5jdGlvbi4KKworICAgICAgICAqIERPTS9XZWJET01PcGVyYXRpb25zLm1t
OgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfbm90
aWZpY2F0aW9uSURGb3JUZXN0aW5nOl0pOgorCiAyMDE0LTA5LTE5ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBNdWx0aXRocmVhZGVkIFdlYkdMIGlzIGEgYmFkIGlk
ZWEgLSByZW1vdmUgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAyMTUwZjI4NWFjOWUxYmRlN2FiOTgy
M2U2ZjNmZjMwMzNlNzA4ODFkLi41MWY3YzIxYTQzNzkwZDVhNDBlYzA3NDgwOWNmN2JhMDI3MmFm
OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDktMjEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNh
c3RpbmcgaGVscGVyIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM2ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgVXNlIEpTWFhYOjp0b1dyYXBwZWQoKSBpbnN0ZWFkIG9mIHRvWFhYKCkgZnVu
Y3Rpb24uCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmVsZW1l
bnRGcm9tSlMpOgorCiAyMDE0LTA5LTA2ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5n
dG9uLmVkdT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb252ZXJ0IERvY2tTaWRlIHRvIGFu
IGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjZmRmZWYyYzc0NjExMjUzMDhmYzA0OGY3ZGYzNzJj
ZjM2ZGI1MDliLi43ODFjYmQ1MjM1OTI0ZDM0ZTgzM2VmNzdlMjZkOTUxZDgxMmIxOGI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBFbGVtZW50IGNhc3RpbmcgaGVscGVyIGZ1
bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM2ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXNl
IEpTWFhYOjp0b1dyYXBwZWQoKSBpbnN0ZWFkIG9mIHRvWFhYKCkgZnVuY3Rpb24uCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9y
Q3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZTo6d2ViTm90aWZpY2F0aW9uSUQpOgorCiAyMDE0LTA5LTE5ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYkNvbnRlbnQgY3Jhc2ggaW4gV2ViS2l0OjpXZWJQ
YWdlOjpleHBhbmRlZFJhbmdlRnJvbUhhbmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tCmluZGV4
IDM2OWFiYjExMDcyMmQ3OGYyZTE2ODA5MzVlMjgzY2RmNWNmZDc5YmUuLmVhZDZkYzYwYjlmY2Nm
YWJhMzdiNzIzOTZiZTQzZWI5NzcxMTcwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQubW0KQEAg
LTIxMyw3ICsyMTMsNyBAQCBib29sIFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50OjppbnN0YWxs
UmVwbGFjZW1lbnQoU2hhZG93Um9vdCogcm9vdCkKICAgICAvLyBHZXQgdGhlIDx2aWRlbz4gY3Jl
YXRlZCB0byByZXBsYWNlIHRoZSBwbHVnLWluLgogICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZSA9IHJl
cGxhY2VtZW50LmdldChleGVjLCBKU0M6OklkZW50aWZpZXIoZXhlYywgInZpZGVvIikpOwogICAg
IGlmICghZXhlYy0+aGFkRXhjZXB0aW9uKCkgJiYgIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkp
Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50ID0gdG9IVE1MVmlkZW9FbGVtZW50KHZhbHVlKTsKKyAg
ICAgICAgbV9tZWRpYUVsZW1lbnQgPSBKU0hUTUxWaWRlb0VsZW1lbnQ6OnRvV3JhcHBlZCh2YWx1
ZSk7CiAKICAgICBpZiAoIW1fbWVkaWFFbGVtZW50KSB7CiAgICAgICAgIExPRyhQbHVnaW5zLCAi
JXAgLSBGYWlsZWQgdG8gZmluZCA8dmlkZW8+IGVsZW1lbnQgY3JlYXRlZCBieSBRdWlja1RpbWUg
cGx1Z2luIHJlcGxhY2VtZW50IHNjcmlwdC4iLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggODc0ZTUxZTY2NzQ3NmNiNGIyZjI4YTg2MjA0NDRlM2ZhNDAzZjI2Ni4uYWYwZDVhYjU5MTBm
OGYzMWI4ZDMwMDljODU4NDJhOGNhNzUzZjczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTc3
LDYgKzc3LDcgQEAgX19aTjdXZWJDb3JlMTBGbG9hdFBvaW50QzFFUks3Q0dQb2ludAogX19aTjdX
ZWJDb3JlMTBGbG9hdFBvaW50QzFFUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxMEZvbnRH
bHlwaHMxNXJlbGVhc2VGb250RGF0YUV2CiBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZv
RQorX19aTjdXZWJDb3JlMTBKU0RvY3VtZW50OXRvV3JhcHBlZEVOM0pTQzdKU1ZhbHVlRQogX19a
TjdXZWJDb3JlMTBMYXlvdXRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTEwTGF5b3V0UmVjdDV1
bml0ZUVSS1MwXwogX19aTjdXZWJDb3JlMTBMYXlvdXRSZWN0QzFFUktOU185RmxvYXRSZWN0RQpA
QCAtMTI0LDcgKzEyNSw2IEBAIF9fWk43V2ViQ29yZTEwVGltZVJhbmdlc0MxRWRkCiBfX1pON1dl
YkNvcmUxMGRlbGV0ZUZpbGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMGZpbGVFeGlz
dHNFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMHNldENvb2tpZXNFUE5TXzhEb2N1bWVu
dEVSS05TXzNVUkxFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxMHRvRG9jdW1lbnRFTjNK
U0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTExQml0bWFwSW1hZ2UxM2dldENHSW1hZ2VSZWZFdgog
X19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZUMxRVA3Q0dJbWFnZVBOU18xM0ltYWdlT2JzZXJ2ZXJF
CiBfX1pON1dlYkNvcmUxMUJpdG1hcEltYWdlQzFFUE5TXzEzSW1hZ2VPYnNlcnZlckUKQEAgLTY2
Nyw3ICs2NjcsNiBAQCBfX1pON1dlYkNvcmUxNW9yaWdpbmFsVVJMRGF0YUVQNU5TVVJMCiBfX1pO
N1dlYkNvcmUxNXBhdGhHZXRGaWxlTmFtZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1
cmVwb3J0RXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVBOU18xMkNhY2hl
ZFNjcmlwdEUKIF9fWk43V2ViQ29yZTE1c2V0RE9NRXhjZXB0aW9uRVBOM0pTQzlFeGVjU3RhdGVF
aQotX19aTjdXZWJDb3JlMTV0b0RPTVN0cmluZ0xpc3RFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pT
VmFsdWVFCiBfX1pON1dlYkNvcmUxNXZpc2l0ZWRMaW5rSGFzaEVQS3RqCiBfX1pON1dlYkNvcmUx
NXZpc2l0ZWRMaW5rSGFzaEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE2QXBwbGljYXRp
b25DYWNoZTE4ZGlza1VzYWdlRm9yT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQpAQCAtMTI0
Miw2ICsxMjQxLDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjdjb21tYW5kRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlNkVkaXRvcjdjb3B5VVJMRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTZFZGl0b3I3b3V0ZGVudEV2CiBfX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5m
b0UKK19fWk43V2ViQ29yZTZKU05vZGU5dG9XcmFwcGVkRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dl
YkNvcmU2TGVuZ3RoQzFFTjNXVEY3UGFzc1JlZklOU18xNkNhbGN1bGF0aW9uVmFsdWVFRUUKIF9f
Wk43V2ViQ29yZTZSZWdpb24yMXVwZGF0ZUJvdW5kc0Zyb21TaGFwZUV2CiBfX1pON1dlYkNvcmU2
UmVnaW9uNXVuaXRlRVJLUzBfCkBAIC0xMjU5LDcgKzEyNTksNiBAQCBfX1pON1dlYkNvcmU2V2lk
Z2V0OHNldEZvY3VzRWIKIF9fWk43V2ViQ29yZTZXaWRnZXQ5c2V0UGFyZW50RVBOU18xMFNjcm9s
bFZpZXdFCiBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvSW50OEVQTjNK
U0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJh
dGlvbkUKLV9fWk43V2ViQ29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTdF
bGVtZW50MTJzZXRBdHRyaWJ1dGVFUktOM1dURjEyQXRvbWljU3RyaW5nRVM0X1JpCiBfX1pON1dl
YkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVJLTjNXVEYx
MkF0b21pY1N0cmluZ0UKIF9fWk43V2ViQ29yZTdFbGVtZW50MTZjcmVhdGVTaGFkb3dSb290RVJp
CkBAIC0xMjczLDYgKzEyNzIsNyBAQCBfX1pON1dlYkNvcmU3SW50UmVjdEMxRVJLTlNfMTBMYXlv
dXRSZWN0RQogX19aTjdXZWJDb3JlN0ludFJlY3RDMUVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dl
YkNvcmU3SW50U2l6ZUMxRVJLNkNHU2l6ZQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSS05TXzlG
bG9hdFNpemVFCitfX1pON1dlYkNvcmU3SlNSYW5nZTl0b1dyYXBwZWRFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZTdUZXh0UnVuMTlhbGxvd3NSb3VuZGluZ0hhY2tzRXYKIF9fWk43V2ViQ29y
ZTdUZXh0UnVuMjFzX2FsbG93c1JvdW5kaW5nSGFja3NFCiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIy
c2V0QWxsb3dzUm91bmRpbmdIYWNrc0ViCkBAIC0xMjgxLDcgKzEyODEsNiBAQCBfX1pON1dlYkNv
cmU3anNBcnJheUVQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RU4zV1RG
MTBQYXNzUmVmUHRySQogX19aTjdXZWJDb3JlN21ha2VSR0JFaWlpCiBfX1pON1dlYkNvcmU3dG9J
bnQxNkVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVOU18zMEludGVnZXJDb252ZXJzaW9u
Q29uZmlndXJhdGlvbkUKIF9fWk43V2ViQ29yZTd0b0ludDY0RVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uRQotX19aTjdXZWJD
b3JlN3RvUmFuZ2VFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTd0b1VJbnQ4RVBOM0pTQzlF
eGVjU3RhdGVFTlMwXzdKU1ZhbHVlRU5TXzMwSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9u
RQogX19aTjdXZWJDb3JlOEJsb2JEYXRhMTRzZXRDb250ZW50VHlwZUVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZThDU1NWYWx1ZTdkZXN0cm95RXYKQEAgLTE0OTUsNiArMTQ5NCw3IEBAIF9f
Wk43V2ViQ29yZTlJbmxpbmVCb3gxNGRpcnR5TGluZUJveGVzRXYKIF9fWk43V2ViQ29yZTlJbmxp
bmVCb3gxNHNlbGVjdGlvblN0YXRlRXYKIF9fWk43V2ViQ29yZTlJbmxpbmVCb3gxNnBsYWNlRWxs
aXBzaXNCb3hFYmZmZlJmUmIKIF9fWk43V2ViQ29yZTlKU0VsZW1lbnQ2c19pbmZvRQorX19aTjdX
ZWJDb3JlOUpTRWxlbWVudDl0b1dyYXBwZWRFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZTlM
YXllclBvb2xDMUV2CiBfX1pON1dlYkNvcmU5TGF5ZXJQb29sRDFFdgogX19aTjdXZWJDb3JlOVBh
Z2VDYWNoZTExc2V0Q2FwYWNpdHlFaQpAQCAtMTUzNSw3ICsxNTM1LDYgQEAgX19aTjdXZWJDb3Jl
OWZvbnRDYWNoZUV2CiBfX1pON1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRp
b25FUzJfCiBfX1pON1dlYkNvcmU5cGFnZUNhY2hlRXYKIF9fWk43V2ViQ29yZTlwbGFpblRleHRF
UEtOU181UmFuZ2VFdGIKLV9fWk43V2ViQ29yZTl0b0VsZW1lbnRFTjNKU0M3SlNWYWx1ZUUKIF9f
Wk43V2ViQ29yZTl1bmlvblJlY3RFUktOM1dURjZWZWN0b3JJTlNfOUZsb2F0UmVjdEVMbTBFTlMw
XzE1Q3Jhc2hPbk92ZXJmbG93RUVFCiBfX1pOSzNKU0M4QmluZGluZ3MxMFJvb3RPYmplY3QxMmds
b2JhbE9iamVjdEV2CiBfX1pOSzNXVEY2U3RyaW5nMTRjcmVhdGVDRlN0cmluZ0V2CkBAIC0zMjA1
LDcgKzMyMDQsNyBAQCBfX1pON1dlYkNvcmU4RG9jdW1lbnQxM2dldFRvdWNoUmVjdHNFUk4zV1RG
NlZlY3RvcklOU183SW50UmVjdEVMbTBFTlMxXzE1Q3Jhc2hPbgogCiAjaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKIF9fWk43V2ViQ29yZTEyU291cmNlQnVmZmVyMjVidWZmZXJlZFNhbXBsZXNGb3JU
cmFja0lERVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKLV9fWk43V2ViQ29yZTE0dG9Tb3VyY2VCdWZm
ZXJFTjNKU0M3SlNWYWx1ZUUKK19fWk43V2ViQ29yZTE0SlNTb3VyY2VCdWZmZXI5dG9XcmFwcGVk
RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUyNk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNl
MTlyZWdpc3Rlck1lZGlhRW5naW5lRVBGdlBGTjNXVEYxMFBhc3NPd25QdHJJTlNfMjdNZWRpYVBs
YXllclByaXZhdGVJbnRlcmZhY2VFRUVQTlNfMTFNZWRpYVBsYXllckVFUEZ2Uk5TMV83SGFzaFNl
dElOUzFfNlN0cmluZ0VOUzFfMTBTdHJpbmdIYXNoRU5TMV8xMEhhc2hUcmFpdHNJU0FfRUVFRUVQ
Rk5TNV8xMlN1cHBvcnRzVHlwZUVSS05TXzI4TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyc0VF
UEZ2Uk5TMV82VmVjdG9ySVNBX0xtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUVFUEZ2dkVQRnZS
S1NBX0VQRmJTWF9TWF9FRQogI2VuZGlmCiAKQEAgLTMyNTcsNyArMzI1Niw3IEBAIF9fWk43V2Vi
Q29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaEVycm9yRXZlbnRFdgogX19aTjdXZWJDb3JlMTJO
b3RpZmljYXRpb244ZmluYWxpemVFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb25DMUV2CiBf
X1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbkQxRXYKLV9fWk43V2ViQ29yZTE0dG9Ob3RpZmljYXRp
b25FTjNKU0M3SlNWYWx1ZUUKK19fWk43V2ViQ29yZTE0SlNOb3RpZmljYXRpb245dG9XcmFwcGVk
RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmUxOXByb3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQ
YWdlRVBOU18xOE5vdGlmaWNhdGlvbkNsaWVudEUKIF9fWk43V2ViQ29yZTIyTm90aWZpY2F0aW9u
Q29udHJvbGxlcjEwY2xpZW50RnJvbUVQTlNfNFBhZ2VFCiAjZW5kaWYKQEAgLTMzNjksNyArMzM2
OCw3IEBAIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTZoYW5kbGVUb3VjaEV2ZW50RVJLTlNf
MThQbGF0Zm9ybVRvdWNoRXZlbnRFCiAjaWYgRU5BQkxFKFZJREVPKQogLm9iamNfY2xhc3NfbmFt
ZV9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyCiBfX1pON1dlYkNvcmUxMFRpbWVSYW5nZXMz
YWRkRWRkCi1fX1pON1dlYkNvcmUxMnRvVGltZVJhbmdlc0VOM0pTQzdKU1ZhbHVlRQorX19aTjdX
ZWJDb3JlMTJKU1RpbWVSYW5nZXM5dG9XcmFwcGVkRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNv
cmUxNkhUTUxNZWRpYUVsZW1lbnQxMmVuZFNjcnViYmluZ0V2CiBfX1pON1dlYkNvcmUxNkhUTUxN
ZWRpYUVsZW1lbnQxNGJlZ2luU2NydWJiaW5nRXYKIF9fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxl
bWVudDE0ZXhpdEZ1bGxzY3JlZW5FdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwCmluZGV4IGU2YjUw
NjQyN2U0NTg4OTY1YmRiNjdjODlmYTI1NmUzMzVkNGUxNzUuLmYzZDlkYmYzNzBiZjFjOWFhNTYx
YzcyMWZmZDk1M2QzN2E2OTg5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXVkaW9CdWZmZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEpTQXVkaW9CdWZmZXJTb3VyY2VO
b2RlOjpzZXRCdWZmZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIEF1
ZGlvQnVmZmVyKiBidWZmZXIgPSB0b0F1ZGlvQnVmZmVyKHZhbHVlKTsKKyAgICBBdWRpb0J1ZmZl
ciogYnVmZmVyID0gSlNBdWRpb0J1ZmZlcjo6dG9XcmFwcGVkKHZhbHVlKTsKICAgICBpZiAoIWJ1
ZmZlcikgewogICAgICAgICBleGVjLT52bSgpLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZVR5
cGVFcnJvcihleGVjLCAiVmFsdWUgaXMgbm90IG9mIHR5cGUgQXVkaW9CdWZmZXIiKSk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmxv
YkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3Bw
CmluZGV4IDI5M2FmYjM3NjI4NjhiODM4YjlmNWMxMmViYTY0NTYzZjg5MzQ2MzguLmFkZTVhMGE5
MzZjZWNiMTg4MzVlYTA0ZDFlMGM4MGFjOWZhMjBhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNCbG9iKEV4ZWNTdGF0ZSogZXhlYykKICAgICAg
ICAgICAgIGJsb2JCdWlsZGVyLmFwcGVuZChhcnJheUJ1ZmZlcik7CiAgICAgICAgIGVsc2UgaWYg
KFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGFycmF5QnVmZmVyVmlldyA9IHRvQXJyYXlCdWZmZXJW
aWV3KGl0ZW0pKQogICAgICAgICAgICAgYmxvYkJ1aWxkZXIuYXBwZW5kKGFycmF5QnVmZmVyVmll
dy5yZWxlYXNlKCkpOwotICAgICAgICBlbHNlIGlmIChCbG9iKiBibG9iID0gdG9CbG9iKGl0ZW0p
KQorICAgICAgICBlbHNlIGlmIChCbG9iKiBibG9iID0gSlNCbG9iOjp0b1dyYXBwZWQoaXRlbSkp
CiAgICAgICAgICAgICBibG9iQnVpbGRlci5hcHBlbmQoYmxvYik7CiAgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgU3RyaW5nIHN0cmluZyA9IGl0ZW0udG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb21tYW5kTGlu
ZUFQSUhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDb21tYW5k
TGluZUFQSUhvc3RDdXN0b20uY3BwCmluZGV4IDc5NTQ4ZTgyYzM3Y2JkNzUyM2E3ODQ3YWM4OWQ4
NmY5ZjAwMGU3ODYuLjdlODZkYjYxODY3NjU3ZmFkMjY5ODY1NTRkZDcyZmUxNjFmZTM2NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ29tbWFuZExpbmVBUElIb3N0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NvbW1hbmRMaW5l
QVBJSG9zdEN1c3RvbS5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBKU1ZhbHVlIEpTQ29tbWFuZExp
bmVBUElIb3N0OjpnZXRFdmVudExpc3RlbmVycyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKCF2
YWx1ZS5pc09iamVjdCgpIHx8IHZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKIAotICAgIE5vZGUqIG5vZGUgPSB0b05vZGUodmFsdWUpOworICAgIE5vZGUqIG5v
ZGUgPSBKU05vZGU6OnRvV3JhcHBlZCh2YWx1ZSk7CiAgICAgaWYgKCFub2RlKQogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKIApAQCAtMTQ5LDcgKzE0OSw3IEBAIEpTVmFsdWUgSlNDb21t
YW5kTGluZUFQSUhvc3Q6OmRhdGFiYXNlSWQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgRGF0YWJh
c2UqIGRhdGFiYXNlID0gdG9EYXRhYmFzZShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7Cisg
ICAgRGF0YWJhc2UqIGRhdGFiYXNlID0gSlNEYXRhYmFzZTo6dG9XcmFwcGVkKGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoZGF0YWJhc2UpCiAgICAgICAgIHJldHVybiBqc1N0
cmluZ1dpdGhDYWNoZShleGVjLCBpbXBsKCkuZGF0YWJhc2VJZEltcGwoZGF0YWJhc2UpKTsKICNl
bmRpZgpAQCAtMTYyLDcgKzE2Miw3IEBAIEpTVmFsdWUgSlNDb21tYW5kTGluZUFQSUhvc3Q6OnN0
b3JhZ2VJZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
IDEpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCi0gICAgU3RvcmFnZSogc3RvcmFn
ZSA9IHRvU3RvcmFnZShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgU3RvcmFnZSog
c3RvcmFnZSA9IEpTU3RvcmFnZTo6dG9XcmFwcGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKICAgICBpZiAoc3RvcmFnZSkKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nV2l0aENhY2hlKGV4
ZWMsIGltcGwoKS5zdG9yYWdlSWRJbXBsKHN0b3JhZ2UpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAppbmRleCAzMWIxODBiZjdm
ZWFlNWZmYzA3ZmQwZWU5YzI4YTJmOGQ2MjdkZTU1Li43ZWMyNDk1ZGRlYmZjNGEzNTI2YWQ2YzNm
MzhlMjQ0OTZiNGFjYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUZvcm1EYXRhQ3VzdG9tLmNwcApAQCAtNDEsMTggKzQxLDE2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEhUTUxGb3JtRWxlbWVudCog
dG9IVE1MRm9ybUVsZW1lbnQoSlNDOjpKU1ZhbHVlIHZhbHVlKQorc3RhdGljIEhUTUxGb3JtRWxl
bWVudCogdG9IVE1MRm9ybUVsZW1lbnRPck51bGwoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewotICAg
IHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6aW5mbygpKSA/ICZqc0Nh
c3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCkgOiAwOworICAg
IHJldHVybiB2YWx1ZS5pbmhlcml0cyhKU0hUTUxGb3JtRWxlbWVudDo6aW5mbygpKSA/ICZqc0Nh
c3Q8SlNIVE1MRm9ybUVsZW1lbnQqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCkgOiBudWxscHRy
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTRE9NRm9ybURh
dGEoRXhlY1N0YXRlKiBleGVjKQogewogICAgIERPTUNvbnN0cnVjdG9yT2JqZWN0KiBqc0NvbnN0
cnVjdG9yID0ganNDYXN0PERPTUNvbnN0cnVjdG9yT2JqZWN0Kj4oZXhlYy0+Y2FsbGVlKCkpOwog
Ci0gICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gMDsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpID4gMCkKLSAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50KGV4ZWMtPmFyZ3Vt
ZW50KDApKTsKKyAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSB0b0hUTUxGb3JtRWxlbWVudE9y
TnVsbChleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgUmVmUHRyPERPTUZvcm1EYXRhPiBkb21Gb3Jt
RGF0YSA9IERPTUZvcm1EYXRhOjpjcmVhdGUoZm9ybSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBk
b21Gb3JtRGF0YS5nZXQoKSkpKTsKIH0KQEAgLTY2LDcgKzY0LDcgQEAgSlNWYWx1ZSBKU0RPTUZv
cm1EYXRhOjphcHBlbmQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgU3RyaW5nIGZpbGVu
YW1lOwogICAgICAgICAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+PSAzICYmICFleGVj
LT5hcmd1bWVudCgyKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgICAgIGZpbGVu
YW1lID0gZXhlYy0+YXJndW1lbnQoMikudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwotICAg
ICAgICAgICAgaW1wbCgpLmFwcGVuZChuYW1lLCB0b0Jsb2IodmFsdWUpLCBmaWxlbmFtZSk7Cisg
ICAgICAgICAgICBpbXBsKCkuYXBwZW5kKG5hbWUsIEpTQmxvYjo6dG9XcmFwcGVkKHZhbHVlKSwg
ZmlsZW5hbWUpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGltcGwoKS5hcHBlbmQobmFt
ZSwgdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01TdHJpbmdMaXN0Q3VzdG9tLmNwcAppbmRl
eCAyMzMzN2IyZjJkOTY2MDdiNThkNjI3YTJiOGNkNDM2MzRmYmQ2OWFhLi4wMGUxNDFiMTM5NzUw
N2E2YzM1ZDQyMzVmNjU3OTY0YzhhMmUxYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVN0cmluZ0xpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTGlzdEN1c3RvbS5jcHAKQEAgLTI1LDcgKzI1LDcgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRy
PERPTVN0cmluZ0xpc3Q+IHRvRE9NU3RyaW5nTGlzdChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
dmFsdWUpCitQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IEpTRE9NU3RyaW5nTGlzdDo6dG9XcmFw
cGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaW5o
ZXJpdHMoSlNET01TdHJpbmdMaXN0OjppbmZvKCkpKQogICAgICAgICByZXR1cm4gJmpzQ2FzdDxK
U0RPTVN0cmluZ0xpc3QqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggNWYzYjUxN2Ex
NDJiZTMyZmI2NGU3OThhOTVjODFiNTMxMWQxZjA4ZC4uYjBmZGY2NWIyOTYyZmE5YTgxZWJiOTg5
NWI3NzgyY2QzZTRlNmExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNjg0LDcgKzY4NCw3IEBAIEpTVmFsdWUgSlNET01XaW5k
b3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogfQogCi1ET01XaW5kb3cqIHRvRE9NV2luZG93KEpTVmFsdWUgdmFsdWUpCitE
T01XaW5kb3cqIEpTRE9NV2luZG93Ojp0b1dyYXBwZWQoSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBp
ZiAoIXZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRGljdGlvbmFyeS5jcHAKaW5kZXggMWFmMDI2ZGJhNDVkOTQ3OTA4NTQ0
YmIxODRiNWM2NjZjZTRmYjI2YS4uMjBkOGY4M2NkMGU0OWFhNmEwNGMzZjY3YmM4ZDI1ZWUyM2Jm
OThmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEaWN0aW9uYXJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RpY3Rpb25hcnkuY3BwCkBA
IC0xNTUsMjIgKzE1NSwyMiBAQCB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPFNlcmlhbGl6ZQogCiB2b2lkIEpTRGlj
dGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxE
T01XaW5kb3c+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9ET01XaW5kb3codmFsdWUpOwor
ICAgIHJlc3VsdCA9IEpTRE9NV2luZG93Ojp0b1dyYXBwZWQodmFsdWUpOwogfQogCiB2b2lkIEpT
RGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0
cjxFdmVudFRhcmdldD4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0V2ZW50VGFyZ2V0KHZh
bHVlKTsKKyAgICByZXN1bHQgPSBKU0V2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQodmFsdWUpOwogfQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFs
dWUsIFJlZlB0cjxOb2RlPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvTm9kZSh2YWx1ZSk7
CisgICAgcmVzdWx0ID0gSlNOb2RlOjp0b1dyYXBwZWQodmFsdWUpOwogfQogCiB2b2lkIEpTRGlj
dGlvbmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUsIFJlZlB0cjxT
dG9yYWdlPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRvU3RvcmFnZSh2YWx1ZSk7CisgICAg
cmVzdWx0ID0gSlNTdG9yYWdlOjp0b1dyYXBwZWQodmFsdWUpOwogfQogCiB2b2lkIEpTRGljdGlv
bmFyeTo6Y29udmVydFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgTWVzc2Fn
ZVBvcnRBcnJheSYgcmVzdWx0KQpAQCAtMjIyLDMxICsyMjIsMzEgQEAgdm9pZCBKU0RpY3Rpb25h
cnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVm
UHRyPFVpbnQKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogdm9pZCBKU0RpY3Rpb25hcnk6
OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRy
PE1lZGlhS2V5RXJyb3I+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9NZWRpYUtleUVycm9y
KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlhS2V5RXJyb3I6OnRvV3JhcHBlZCh2YWx1ZSk7
CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiB2b2lkIEpTRGljdGlvbmFy
eTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQ
dHI8TWVkaWFTdHJlYW0+JiByZXN1bHQpCiB7Ci0gICAgcmVzdWx0ID0gdG9NZWRpYVN0cmVhbSh2
YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNNZWRpYVN0cmVhbTo6dG9XcmFwcGVkKHZhbHVlKTsKIH0K
IAogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+JiByZXN1bHQpCiB7Ci0gICAg
cmVzdWx0ID0gdG9NZWRpYVN0cmVhbVRyYWNrKHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU01lZGlh
U3RyZWFtVHJhY2s6OnRvV3JhcHBlZCh2YWx1ZSk7CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShG
T05UX0xPQURfRVZFTlRTKQogdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgUmVmUHRyPENTU0ZvbnRGYWNlUnVsZT4mIHJl
c3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0NTU0ZvbnRGYWNlUnVsZSh2YWx1ZSk7CisgICAgcmVz
dWx0ID0gSlNDU1NGb250RmFjZVJ1bGU6OnRvV3JhcHBlZCh2YWx1ZSk7CiB9CiAKIHZvaWQgSlNE
aWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgdmFs
dWUsIFJlZlB0cjxET01FcnJvcj4mIHJlc3VsdCkKIHsKLSAgICByZXN1bHQgPSB0b0RPTUVycm9y
KHZhbHVlKTsKKyAgICByZXN1bHQgPSBKU0RPTUVycm9yOjp0b1dyYXBwZWQodmFsdWUpOwogfQog
CiB2b2lkIEpTRGljdGlvbmFyeTo6Y29udmVydFZhbHVlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTVmFsdWUgdmFsdWUsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiByZXN1bHQpCkBAIC0yNjEs
NyArMjYxLDcgQEAgdm9pZCBKU0RpY3Rpb25hcnk6OmNvbnZlcnRWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBSZWZQdHIKICNpZiBFTkFCTEUoR0FNRVBBRCkK
IHZvaWQgSlNEaWN0aW9uYXJ5Ojpjb252ZXJ0VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUgdmFsdWUsIFJlZlB0cjxHYW1lcGFkPiYgcmVzdWx0KQogewotICAgIHJlc3VsdCA9IHRv
R2FtZXBhZCh2YWx1ZSk7CisgICAgcmVzdWx0ID0gSlNHYW1lcGFkOjp0b1dyYXBwZWQodmFsdWUp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVu
dEN1c3RvbS5jcHAKaW5kZXggZmEyNDQ0M2I0ZTlkMTdlZGJmZGFiYWZjYWI0Mzk2NTc1Y2ZkYzE3
MS4uNmJmMTY3NDY4ODJkZWI2MzY1N2IzYzNlM2JmMTdlY2I2ZGM2MTVjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTEyMSw3ICsx
MjEsNyBAQCBKU1ZhbHVlIEpTRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgUmVmUHRyPFRvdWNoTGlzdD4gdG91Y2hMaXN0ID0gVG91Y2hMaXN0OjpjcmVhdGUo
KTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXhlYy0+YXJndW1lbnRDb3VudCgpOyBp
KyspCi0gICAgICAgIHRvdWNoTGlzdC0+YXBwZW5kKHRvVG91Y2goZXhlYy0+YXJndW1lbnQoaSkp
KTsKKyAgICAgICAgdG91Y2hMaXN0LT5hcHBlbmQoSlNUb3VjaDo6dG9XcmFwcGVkKGV4ZWMtPmFy
Z3VtZW50KGkpKSk7CiAKICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgdG91
Y2hMaXN0LnJlbGVhc2UoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50VGFyZ2V0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwCmluZGV4IDUyMTBmMTJiYjZjZTM0ZTc0NjNkOGU2ZTI4
OWE0YjhkNzA2Mzc5Y2YuLmM3Yzc0NTA1YTZhMWZhZWYwY2M3ZGE5YjJjNjY1MzI0ZTJkNGY3OWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0
b20uY3BwCkBAIC01OCw3ICs1OCw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50VGFyZ2V0KiB0YXJnCiAgICAgaWYg
KHZhbHVlLmluaGVyaXRzKEpTIyNpbnRlcmZhY2VOYW1lOjppbmZvKCkpKSAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgICAgIHJldHVybiAmanNDYXN0PEpTIyNpbnRlcmZhY2VOYW1lKj4oYXNP
YmplY3QodmFsdWUpKS0+aW1wbCgpOwogCi1FdmVudFRhcmdldCogdG9FdmVudFRhcmdldChKU0M6
OkpTVmFsdWUgdmFsdWUpCitFdmVudFRhcmdldCogSlNFdmVudFRhcmdldDo6dG9XcmFwcGVkKEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKERP
TVdpbmRvd1NoZWxsKQogICAgIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoRXZlbnRUYXJn
ZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGNlcHRpb25CYXNlLmNwcApp
bmRleCBiZGUyNWIwYTY3NzA4MWU4MGM5ZDVmY2NmYjlhN2ExMmY5NzZjMTk4Li5hOWI2MzllN2I3
MGRjOGJkMDJkY2E2ZDFkNTZiMmI5ZTMyZWU4MzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKQEAgLTQxLDIwICs0MSwyMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIEV4Y2VwdGlvbkJhc2UqIHRvRXhjZXB0aW9uQmFzZShKU0M6OkpTVmFs
dWUgdmFsdWUpCiB7Ci0gICAgaWYgKERPTUNvcmVFeGNlcHRpb24qIGRvbUV4Y2VwdGlvbiA9IHRv
RE9NQ29yZUV4Y2VwdGlvbih2YWx1ZSkpCisgICAgaWYgKERPTUNvcmVFeGNlcHRpb24qIGRvbUV4
Y2VwdGlvbiA9IEpTRE9NQ29yZUV4Y2VwdGlvbjo6dG9XcmFwcGVkKHZhbHVlKSkKICAgICAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KGRvbUV4Y2VwdGlvbik7Ci0g
ICAgaWYgKFJhbmdlRXhjZXB0aW9uKiByYW5nZUV4Y2VwdGlvbiA9IHRvUmFuZ2VFeGNlcHRpb24o
dmFsdWUpKQorICAgIGlmIChSYW5nZUV4Y2VwdGlvbiogcmFuZ2VFeGNlcHRpb24gPSBKU1Jhbmdl
RXhjZXB0aW9uOjp0b1dyYXBwZWQodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxFeGNlcHRpb25CYXNlKj4ocmFuZ2VFeGNlcHRpb24pOwotICAgIGlmIChFdmVudEV4Y2Vw
dGlvbiogZXZlbnRFeGNlcHRpb24gPSB0b0V2ZW50RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAo
RXZlbnRFeGNlcHRpb24qIGV2ZW50RXhjZXB0aW9uID0gSlNFdmVudEV4Y2VwdGlvbjo6dG9XcmFw
cGVkKHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFz
ZSo+KGV2ZW50RXhjZXB0aW9uKTsKLSAgICBpZiAoWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24qIHht
bEh0dHBFeGNlcHRpb24gPSB0b1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uKHZhbHVlKSkKKyAgICBp
ZiAoWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24qIHhtbEh0dHBFeGNlcHRpb24gPSBKU1hNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uOjp0b1dyYXBwZWQodmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4oeG1sSHR0cEV4Y2VwdGlvbik7Ci0gICAgaWYgKFNW
R0V4Y2VwdGlvbiogc3ZnRXhjZXB0aW9uID0gdG9TVkdFeGNlcHRpb24odmFsdWUpKQorICAgIGlm
IChTVkdFeGNlcHRpb24qIHN2Z0V4Y2VwdGlvbiA9IEpTU1ZHRXhjZXB0aW9uOjp0b1dyYXBwZWQo
dmFsdWUpKQogICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4o
c3ZnRXhjZXB0aW9uKTsKLSAgICBpZiAoWFBhdGhFeGNlcHRpb24qIHBhdGhFeGNlcHRpb24gPSB0
b1hQYXRoRXhjZXB0aW9uKHZhbHVlKSkKKyAgICBpZiAoWFBhdGhFeGNlcHRpb24qIHBhdGhFeGNl
cHRpb24gPSBKU1hQYXRoRXhjZXB0aW9uOjp0b1dyYXBwZWQodmFsdWUpKQogICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxFeGNlcHRpb25CYXNlKj4ocGF0aEV4Y2VwdGlvbik7CiAjaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBpZiAoU1FMRXhjZXB0aW9uKiBwYXRoRXhjZXB0aW9u
ID0gdG9TUUxFeGNlcHRpb24odmFsdWUpKQorICAgIGlmIChTUUxFeGNlcHRpb24qIHBhdGhFeGNl
cHRpb24gPSBKU1NRTEV4Y2VwdGlvbjo6dG9XcmFwcGVkKHZhbHVlKSkKICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8RXhjZXB0aW9uQmFzZSo+KHBhdGhFeGNlcHRpb24pOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxl
bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxNZWRpYUVs
ZW1lbnRDdXN0b20uY3BwCmluZGV4IDFkNDBjNjBkODcwMjc3NTRmMDEzYzJiMjI1NzJjMDFkYzJj
OGNlYjkuLjIwN2FiNzFkYWJlMzNmNzYwZjMwNWRjYmQzOWQwZmQ5Y2IzMjhiYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MTWVkaWFFbGVtZW50Q3Vz
dG9tLmNwcApAQCAtNDAsNyArNDAsNyBAQCB2b2lkIEpTSFRNTE1lZGlhRWxlbWVudDo6c2V0Q29u
dHJvbGxlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlKQogICAgIC8vIE9uIHNldHRpbmcsIGl0
IG11c3QgZmlyc3QgcmVtb3ZlIHRoZSBlbGVtZW50J3MgbWVkaWFncm91cCBhdHRyaWJ1dGUsIGlm
IGFueSwgCiAgICAgaW1wbCgpLnNldE1lZGlhR3JvdXAoU3RyaW5nKCkpOwogICAgIC8vIGFuZCB0
aGVuIHNldCB0aGUgY3VycmVudCBtZWRpYSBjb250cm9sbGVyIHRvIHRoZSBnaXZlbiB2YWx1ZS4K
LSAgICBpbXBsKCkuc2V0Q29udHJvbGxlcih0b01lZGlhQ29udHJvbGxlcih2YWx1ZSkpOworICAg
IGltcGwoKS5zZXRDb250cm9sbGVyKEpTTWVkaWFDb250cm9sbGVyOjp0b1dyYXBwZWQodmFsdWUp
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
T3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwCmluZGV4IDc0YTU4NjcyZjQ3ZGY3YzZm
YWRmZjg0MGY5MzQ3ODI3NmJjOTg4Y2QuLjA2OTAyMmJlMjk3ZDNmNGY4ZDMxNTk0YWY5Y2UyNzNl
MzZiMGYxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9w
dGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9p
ZCBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbjo6aW5kZXhTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBpbmRleCwgSlNWYWwKIEpTVmFsdWUgSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmFk
ZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSFRNTE9wdGlvbnNDb2xsZWN0aW9uJiBpbXAgPSBp
bXBsKCk7Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1l
bnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBK
U0hUTUxPcHRpb25FbGVtZW50Ojp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpOwogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQog
ICAgICAgICBpbXAuYWRkKG9wdGlvbiwgZWMpOwpAQCAtODEsNyArODEsNyBAQCBKU1ZhbHVlIEpT
SFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIC8v
IFRoZSBhcmd1bWVudCBjYW4gYmUgYW4gSFRNTE9wdGlvbkVsZW1lbnQgb3IgYW4gaW5kZXguCiAg
ICAgSlNWYWx1ZSBhcmd1bWVudCA9IGV4ZWMtPmFyZ3VtZW50KDApOwotICAgIGlmIChIVE1MT3B0
aW9uRWxlbWVudCogb3B0aW9uID0gdG9IVE1MT3B0aW9uRWxlbWVudChhcmd1bWVudCkpCisgICAg
aWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBKU0hUTUxPcHRpb25FbGVtZW50Ojp0b1dy
YXBwZWQoYXJndW1lbnQpKQogICAgICAgICBpbXBsKCkucmVtb3ZlKG9wdGlvbik7CiAgICAgZWxz
ZQogICAgICAgICBpbXBsKCkucmVtb3ZlKGFyZ3VtZW50LnRvSW50MzIoZXhlYykpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MU2VsZWN0RWxlbWVudEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVtZW50Q3Vz
dG9tLmNwcAppbmRleCA0M2Y2OTRiNTBhZTMzNmViOTNkZjM2YzE4Y2M1MDM1ZTQ1ODIwZDA1Li4x
NDZlMjQyYTA1ZDhkOGI1NGUxZTI5YjE3MGUyNDQyMzM3MmM5NzI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxTZWxlY3RFbGVtZW50Q3VzdG9tLmNw
cApAQCAtNDMsNyArNDMsNyBAQCBKU1ZhbHVlIEpTSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZShF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgLy8gVGhlIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUoKSBmdW5j
dGlvbiBjYW4gdGFrZSBlaXRoZXIgYW4gb3B0aW9uIG9iamVjdCBvciB0aGUgaW5kZXggb2YgYW4g
b3B0aW9uLgotICAgICAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHRvSFRNTE9w
dGlvbkVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpKQorICAgICAgICBpZiAoSFRNTE9wdGlvbkVs
ZW1lbnQqIG9wdGlvbiA9IEpTSFRNTE9wdGlvbkVsZW1lbnQ6OnRvV3JhcHBlZChleGVjLT5hcmd1
bWVudCgwKSkpCiAgICAgICAgICAgICBzZWxlY3QucmVtb3ZlKG9wdGlvbik7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHNlbGVjdC5yZW1vdmVCeUluZGV4KGV4ZWMtPmFyZ3VtZW50KDApLnRv
SW50MzIoZXhlYykpOwpAQCAtNTgsNyArNTgsNyBAQCB2b2lkIHNlbGVjdEluZGV4U2V0dGVyKEhU
TUxTZWxlY3RFbGVtZW50KiBzZWxlY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZAog
ICAgICAgICBzZWxlY3QtPnJlbW92ZUJ5SW5kZXgoaW5kZXgpOwogICAgIGVsc2UgewogICAgICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlv
biA9IHRvSFRNTE9wdGlvbkVsZW1lbnQodmFsdWUpOworICAgICAgICBIVE1MT3B0aW9uRWxlbWVu
dCogb3B0aW9uID0gSlNIVE1MT3B0aW9uRWxlbWVudDo6dG9XcmFwcGVkKHZhbHVlKTsKICAgICAg
ICAgaWYgKCFvcHRpb24pCiAgICAgICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOwogICAg
ICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3Bl
Y3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKaW5kZXggZjRiNTU1ZjgzNDlhNDAzYWIx
NDUyMDE2MjM3NTQyNjIwNjgwOWRiZC4uYzI1MGI1ZjEzMWJiY2NhNzgwNDE4NmZhYjE3OTU3ZGUw
YTM4NTIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0
b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIEpT
VmFsdWUgSlNJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudShFeGVjU3RhdGUq
IGV4ZWMpCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDIpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIEV2ZW50KiBl
dmVudCA9IHRvRXZlbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIEV2ZW50KiBldmVudCA9IEpT
RXZlbnQ6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgwKSk7CiAKICAgICBKU0FycmF5KiBhcnJh
eSA9IGFzQXJyYXkoZXhlYy0+YXJndW1lbnQoMSkpOwogICAgIENvbnRleHRNZW51IG1lbnU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3Rv
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHAKaW5kZXggYmE5ZTNjYzhlZDY5MmU5NDAzZTY3ODc3MWEyNTZlN2ZhYjE4Y2QxNS4uZDYyN2Yw
YzhmZDIxM2RkMmEyNzZhMjFhOGI3MWNlMGQzNjVkYjNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtOTUsNyArOTUs
NyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGhhbmRsZUluaXRNZXNzYWdlRXZlbnQoSlNNZXNzYWdl
RXZlbnQqIGpzRXZlbnQsIEpTQzo6RXhlY1N0YQogICAgIGJvb2wgY2FuY2VsYWJsZUFyZyA9IGV4
ZWMtPmFyZ3VtZW50KDIpLnRvQm9vbGVhbihleGVjKTsKICAgICBjb25zdCBTdHJpbmcgb3JpZ2lu
QXJnID0gZXhlYy0+YXJndW1lbnQoNCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAg
IGNvbnN0IFN0cmluZyBsYXN0RXZlbnRJZEFyZyA9IGV4ZWMtPmFyZ3VtZW50KDUpLnRvU3RyaW5n
KGV4ZWMpLT52YWx1ZShleGVjKTsKLSAgICBET01XaW5kb3cqIHNvdXJjZUFyZyA9IHRvRE9NV2lu
ZG93KGV4ZWMtPmFyZ3VtZW50KDYpKTsKKyAgICBET01XaW5kb3cqIHNvdXJjZUFyZyA9IEpTRE9N
V2luZG93Ojp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoNikpOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxNZXNzYWdlUG9ydEFycmF5PiBtZXNzYWdlUG9ydHM7CiAgICAgT3duUHRyPEFycmF5QnVmZmVy
QXJyYXk+IGFycmF5QnVmZmVyczsKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDcpLmlzVW5kZWZp
bmVkT3JOdWxsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNz
YWdlUG9ydEN1c3RvbS5jcHAKaW5kZXggNzVhYmUxOGNmM2M1ZmRjNTUwZWM2MmE5MjhmZjA1ZGJj
OTQwNWQxYy4uOThhNzRiNTE5MWIyNGM1MmEwOWVmOWVlMjhkMDczNzIwNTFiMzFiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAK
QEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBmaWxsTWVzc2FnZVBvcnRBcnJheShKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEEKICAgICAgICAgfQogCiAg
ICAgICAgIC8vIFZhbGlkYXRpb24gb2YgT2JqZWN0cyBpbXBsZW1lbnRpbmcgYW4gaW50ZXJmYWNl
LCBwZXIgV2ViSURMIHNwZWMgNC4xLjE1LgotICAgICAgICBSZWZQdHI8TWVzc2FnZVBvcnQ+IHBv
cnQgPSB0b01lc3NhZ2VQb3J0KHZhbHVlKTsKKyAgICAgICAgUmVmUHRyPE1lc3NhZ2VQb3J0PiBw
b3J0ID0gSlNNZXNzYWdlUG9ydDo6dG9XcmFwcGVkKHZhbHVlKTsKICAgICAgICAgaWYgKHBvcnQp
IHsKICAgICAgICAgICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGUgcG9ydHMuCiAgICAgICAgICAg
ICBpZiAocG9ydEFycmF5LmNvbnRhaW5zKHBvcnQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCBkMzYyNGUxZjIzNzNjZTk3ODAyNWM0NmViZTIx
ZmNlZTQxZmE2YWNmLi5jYjllOWQ3MTE5MjBiOTFiMzhiNWFjZTJmN2JhNDQyZjUwNzI1N2JmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKQEAgLTEzNSw3
ICsxMzUsNyBAQCBib29sIEpTTm9kZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhK
U0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdgogSlNWYWx1ZSBKU05vZGU6Omluc2Vy
dEJlZm9yZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgYm9vbCBvayA9IGltcGwoKS5pbnNlcnRCZWZvcmUodG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDAp
KSwgdG9Ob2RlKGV4ZWMtPmFyZ3VtZW50KDEpKSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBsKCku
aW5zZXJ0QmVmb3JlKEpTTm9kZTo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSwgSlNOb2Rl
Ojp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMSkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9u
KGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgw
KTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6aW5zZXJ0QmVmb3JlKEV4ZWNT
dGF0ZSogZXhlYykKIEpTVmFsdWUgSlNOb2RlOjpyZXBsYWNlQ2hpbGQoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkucmVw
bGFjZUNoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIHRvTm9kZShleGVjLT5hcmd1bWVu
dCgxKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1wbCgpLnJlcGxhY2VDaGlsZChKU05vZGU6OnRv
V3JhcHBlZChleGVjLT5hcmd1bWVudCgwKSksIEpTTm9kZTo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3Vt
ZW50KDEpKSwgZWMpOwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9r
KQogICAgICAgICByZXR1cm4gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0xNTUsNyArMTU1LDcgQEAg
SlNWYWx1ZSBKU05vZGU6OnJlcGxhY2VDaGlsZChFeGVjU3RhdGUqIGV4ZWMpCiBKU1ZhbHVlIEpT
Tm9kZTo6cmVtb3ZlQ2hpbGQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIGJvb2wgb2sgPSBpbXBsKCkucmVtb3ZlQ2hpbGQodG9Ob2RlKGV4ZWMtPmFy
Z3VtZW50KDApKSwgZWMpOworICAgIGJvb2wgb2sgPSBpbXBsKCkucmVtb3ZlQ2hpbGQoSlNOb2Rl
Ojp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpLCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9u
KGV4ZWMsIGVjKTsKICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiBleGVjLT5hcmd1bWVudCgw
KTsKQEAgLTE2NSw3ICsxNjUsNyBAQCBKU1ZhbHVlIEpTTm9kZTo6cmVtb3ZlQ2hpbGQoRXhlY1N0
YXRlKiBleGVjKQogSlNWYWx1ZSBKU05vZGU6OmFwcGVuZENoaWxkKEV4ZWNTdGF0ZSogZXhlYykK
IHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIG9rID0gaW1wbCgpLmFwcGVu
ZENoaWxkKHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSksIGVjKTsKKyAgICBib29sIG9rID0gaW1w
bCgpLmFwcGVuZENoaWxkKEpTTm9kZTo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSwgZWMp
OwogICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgaWYgKG9rKQogICAgICAgICBy
ZXR1cm4gZXhlYy0+YXJndW1lbnQoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAppbmRleCAyOGMxNmMxMWVjOTU0MTEzOTk5NjYyMzZl
NTc2OTgwNzVhYjA4MWRhLi42MmQxYjFjYzQwM2EzMTEyYmFiZmNlOWJiZmE3OTgyOGFlYjI5YWNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3Rv
bS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgdm9pZCBKU05vZGVGaWx0ZXI6OnZpc2l0QWRkaXRpb25h
bENoaWxkcmVuKEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hZGRPcGFx
dWVSb290KCZpbXBsKCkpOwogfQogCi1QYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRl
cihKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQorUGFzc1JlZlB0cjxOb2RlRmlsdGVy
PiBKU05vZGVGaWx0ZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVl
KQogewogICAgIGlmICh2YWx1ZS5pbmhlcml0cyhKU05vZGVGaWx0ZXI6OmluZm8oKSkpCiAgICAg
ICAgIHJldHVybiAmSlNDOjpqc0Nhc3Q8SlNOb2RlRmlsdGVyKj4oYXNPYmplY3QodmFsdWUpKS0+
aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVD
cnlwdG9DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlw
dG9DdXN0b20uY3BwCmluZGV4IGY0MDVhMDNkZjZlMzAxZWU4MDZhY2M4Njg3MjYzMWU2YmRiNDg5
ZDguLmIyYTY0ODg4ZGZhNjVjZDFkOTM0NTNiMWYyYzZkYjAxNjlhNDIyOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAKQEAg
LTE0NSw3ICsxNDUsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjplbmNyeXB0KEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVm
UHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBKU1ZhbHVlIEpT
U3VidGxlQ3J5cHRvOjpkZWNyeXB0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gdG9Dcnlw
dG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+
IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkp
OwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAK
QEAgLTI0OCw3ICsyNDgsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpzaWduKEV4ZWNTdGF0
ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVm
UHRyPENyeXB0b0tleT4ga2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQo
MSkpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQo
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAKQEAgLTI5OSw3ICsyOTksNyBAQCBKU1ZhbHVlIEpT
U3VidGxlQ3J5cHRvOjp2ZXJpZnkoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSB0b0NyeXB0
b0tleShleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7CisgICAgUmVmUHRyPENyeXB0b0tleT4g
a2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKSk7
CiAgICAgaWYgKCFrZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKIApA
QCAtNjAwLDcgKzYwMCw3IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmV4cG9ydEtleShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIH0KIAotICAg
IFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IHRvQ3J5cHRvS2V5KGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFw
cGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKICAgICBpZiAoIWtleSkKICAgICAgICAg
cmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogCkBAIC02MzAsMTEgKzYzMCwxMSBAQCBKU1Zh
bHVlIEpTU3VidGxlQ3J5cHRvOjp3cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0g
dG9DcnlwdG9LZXkoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIFJlZlB0cjxDcnlw
dG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1l
bnQoMSkpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhl
Yyk7CiAKLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiB3cmFwcGluZ0tleSA9IHRvQ3J5cHRvS2V5KGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKKyAgICBSZWZQdHI8Q3J5cHRvS2V5PiB3cmFwcGlu
Z0tleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMikp
OwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAK
QEAgLTcxMyw3ICs3MTMsNyBAQCBKU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjp1bndyYXBLZXkoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9CiAKLSAg
ICBSZWZQdHI8Q3J5cHRvS2V5PiB1bndyYXBwaW5nS2V5ID0gdG9DcnlwdG9LZXkoZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMikpOworICAgIFJlZlB0cjxDcnlwdG9LZXk+IHVud3JhcHBpbmdLZXkg
PSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKICAg
ICBpZiAoIXVud3JhcHBpbmdLZXkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVj
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IGM1ZjIxNjEyOWFjMzlmMGNhMTc1YzI2
NWZjMTIwZjNkMmZkNDYxNTUuLjgwMDI4MGQyM2QzMDkwMWI0ZWZmM2QwM2YzMTI3YWFlYmFkZWZm
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKQEAgLTI1Nyw3ICsyNTcsNyBAQCBKU1ZhbHVl
IEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRBdHRhY2hlZFNoYWRlcnMoRXhlY1N0YXRlKiBl
eGVjKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0gaW1wbCgpOwotICAgIFdl
YkdMUHJvZ3JhbSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKKyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9X
cmFwcGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIXByb2dyYW0gJiYg
IWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAg
IHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkdMU2hh
ZGVyPj4gc2hhZGVyczsKQEAgLTM0MSw3ICszNDEsNyBAQCBKU1ZhbHVlIEpTV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRQcm9ncmFtUGFyYW1ldGVyKEV4ZWNTdGF0ZSogZXhlYykKIAogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dCYgY29udGV4dCA9
IGltcGwoKTsKLSAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSB0b1dlYkdMUHJvZ3JhbShleGVj
LT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgV2ViR0xQcm9ncmFtKiBwcm9ncmFtID0gSlNX
ZWJHTFByb2dyYW06OnRvV3JhcHBlZChleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAg
aWYgKCFwcm9ncmFtICYmICFleGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9y
TnVsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CiAgICAgdW5zaWdu
ZWQgcG5hbWUgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwpAQCAt
MzY5LDcgKzM2OSw3IEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFNoYWRl
clBhcmFtZXRlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0JiBj
b250ZXh0ID0gaW1wbCgpOwogICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaXNV
bmRlZmluZWRPck51bGwoKSAmJiAhZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkuaW5oZXJpdHMo
SlNXZWJHTFNoYWRlcjo6aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4
ZWMpOwotICAgIFdlYkdMU2hhZGVyKiBzaGFkZXIgPSB0b1dlYkdMU2hhZGVyKGV4ZWMtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApKTsKKyAgICBXZWJHTFNoYWRlciogc2hhZGVyID0gSlNXZWJHTFNoYWRl
cjo6dG9XcmFwcGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICB1bnNpZ25lZCBw
bmFtZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAg
LTQwNSwxMCArNDA1LDEwIEBAIEpTVmFsdWUgSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFVu
aWZvcm0oRXhlY1N0YXRlKiBleGVjKQogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAg
V2ViR0xSZW5kZXJpbmdDb250ZXh0JiBjb250ZXh0ID0gaW1wbCgpOwotICAgIFdlYkdMUHJvZ3Jh
bSogcHJvZ3JhbSA9IHRvV2ViR0xQcm9ncmFtKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsK
KyAgICBXZWJHTFByb2dyYW0qIHByb2dyYW0gPSBKU1dlYkdMUHJvZ3JhbTo6dG9XcmFwcGVkKGV4
ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBpZiAoIXByb2dyYW0gJiYgIWV4ZWMtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihleGVjKTsKLSAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24g
PSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKKyAg
ICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9u
Ojp0b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMSkpOwogICAgIGlmICghbG9jYXRp
b24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgICBXZWJHTEdldEluZm8gaW5m
byA9IGNvbnRleHQuZ2V0VW5pZm9ybShwcm9ncmFtLCBsb2NhdGlvbiwgZWMpOwpAQCAtNDc4LDcg
KzQ3OCw3IEBAIHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uZihEYXRhRnVuY3Rpb25U
b0NhbGwgZiwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFdlCiAgICAgbG9uZyBpbmRleCA9IC0xOwog
ICAgIAogICAgIGlmIChmdW5jdGlvbkZvclVuaWZvcm0oZikpIHsKLSAgICAgICAgbG9jYXRpb24g
PSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKKyAg
ICAgICAgbG9jYXRpb24gPSBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoZXhlYy0+
dW5jaGVja2VkQXJndW1lbnQoMCkpOwogICAgICAgICBpZiAoIWxvY2F0aW9uICYmICFleGVjLT51
bmNoZWNrZWRBcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKGV4ZWMpOwogICAgIH0gZWxzZQpAQCAtNTY0LDcgKzU2NCw3IEBA
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZGF0YUZ1bmN0aW9uaShEYXRhRnVuY3Rpb25Ub0NhbGwgZiwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFdlCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAh
PSAyKQogICAgICAgICByZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAKLSAgICBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbiogbG9jYXRpb24gPSB0b1dlYkdMVW5pZm9ybUxvY2F0aW9uKGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDApKTsKKyAgICBXZWJHTFVuaWZvcm1Mb2NhdGlvbiogbG9jYXRpb24gPSBKU1dlYkdM
VW5pZm9ybUxvY2F0aW9uOjp0b1dyYXBwZWQoZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwog
ICAgIGlmICghbG9jYXRpb24gJiYgIWV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKICAgCkBA
IC02MjQsNyArNjI0LDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBkYXRhRnVuY3Rpb25NYXRyaXgo
RGF0YUZ1bmN0aW9uTWF0cml4VG9DYWxsIGYsIEpTQzo6RXhlY1N0YXQKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpICE9IDMpCiAgICAgICAgIHJldHVybiBleGVjLT52bSgpLnRocm93RXhj
ZXB0aW9uKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKIAotICAg
IFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBsb2NhdGlvbiA9IHRvV2ViR0xVbmlmb3JtTG9jYXRpb24o
ZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFdlYkdMVW5pZm9ybUxvY2F0aW9uKiBs
b2NhdGlvbiA9IEpTV2ViR0xVbmlmb3JtTG9jYXRpb246OnRvV3JhcHBlZChleGVjLT51bmNoZWNr
ZWRBcmd1bWVudCgwKSk7CiAgICAgaWYgKCFsb2NhdGlvbiAmJiAhZXhlYy0+dW5jaGVja2VkQXJn
dW1lbnQoMCkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKGV4ZWMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwCmluZGV4IGM5ZWRjZmE4YjRkMWMyMzc0Mzc4MjA2MWY3Mjdm
MWMyM2Q1ZDJjMTEuLjgxNjFiMzIyNjRmMDcxNTEzMTUyNjVjOGZjN2QzODViYjhjMTA5YzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwCkBAIC0xNDgsMTEgKzE0OCwxMSBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6
OnNlbmQoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICh2YWwuaXNVbmRlZmluZWRPck51bGwoKSkK
ICAgICAgICAgaW1wbCgpLnNlbmQoZWMpOwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0Rv
Y3VtZW50OjppbmZvKCkpKQotICAgICAgICBpbXBsKCkuc2VuZCh0b0RvY3VtZW50KHZhbCksIGVj
KTsKKyAgICAgICAgaW1wbCgpLnNlbmQoSlNEb2N1bWVudDo6dG9XcmFwcGVkKHZhbCksIGVjKTsK
ICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoSlNCbG9iOjppbmZvKCkpKQotICAgICAgICBpbXBs
KCkuc2VuZCh0b0Jsb2IodmFsKSwgZWMpOworICAgICAgICBpbXBsKCkuc2VuZChKU0Jsb2I6OnRv
V3JhcHBlZCh2YWwpLCBlYyk7CiAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKEpTRE9NRm9ybURh
dGE6OmluZm8oKSkpCi0gICAgICAgIGltcGwoKS5zZW5kKHRvRE9NRm9ybURhdGEodmFsKSwgZWMp
OworICAgICAgICBpbXBsKCkuc2VuZChKU0RPTUZvcm1EYXRhOjp0b1dyYXBwZWQodmFsKSwgZWMp
OwogICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cyhKU0FycmF5QnVmZmVyOjppbmZvKCkpKQogICAg
ICAgICBpbXBsKCkuc2VuZCh0b0FycmF5QnVmZmVyKHZhbCksIGVjKTsKICAgICBlbHNlIGlmICh2
YWwuaW5oZXJpdHMoSlNBcnJheUJ1ZmZlclZpZXc6OmluZm8oKSkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDI4
ZjIyZGFiMGRmMWJlMGFhN2I1ZTJmMTZhNDRkMTNkNmQ3NzZiZjkuLjQxZDE4ZTYwNTQxOTBkYjY2
OWQwYWI5NDYzYjA4MzY5NjE0YTA5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtNzg0LDEyICs3ODQsMTIgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICB3cml0ZShvYmotPmludGVybmFsVmFsdWUoKS5hc051
bWJlcigpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmIChGaWxlKiBmaWxlID0gdG9GaWxlKG9iaikpIHsKKyAgICAgICAgICAgIGlm
IChGaWxlKiBmaWxlID0gSlNGaWxlOjp0b1dyYXBwZWQob2JqKSkgewogICAgICAgICAgICAgICAg
IHdyaXRlKEZpbGVUYWcpOwogICAgICAgICAgICAgICAgIHdyaXRlKGZpbGUpOwogICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKEZpbGVM
aXN0KiBsaXN0ID0gdG9GaWxlTGlzdChvYmopKSB7CisgICAgICAgICAgICBpZiAoRmlsZUxpc3Qq
IGxpc3QgPSBKU0ZpbGVMaXN0Ojp0b1dyYXBwZWQob2JqKSkgewogICAgICAgICAgICAgICAgIHdy
aXRlKEZpbGVMaXN0VGFnKTsKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBsaXN0
LT5sZW5ndGgoKTsKICAgICAgICAgICAgICAgICB3cml0ZShsZW5ndGgpOwpAQCAtNzk3LDcgKzc5
Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHdyaXRlKGxpc3QtPml0ZW0oaSkp
OwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKEJsb2IqIGJsb2IgPSB0b0Jsb2Iob2JqKSkgeworICAgICAgICAgICAgaWYgKEJsb2Iq
IGJsb2IgPSBKU0Jsb2I6OnRvV3JhcHBlZChvYmopKSB7CiAgICAgICAgICAgICAgICAgd3JpdGUo
QmxvYlRhZyk7CiAgICAgICAgICAgICAgICAgbV9ibG9iVVJMcy5hcHBlbmQoYmxvYi0+dXJsKCkp
OwogICAgICAgICAgICAgICAgIHdyaXRlKGJsb2ItPnVybCgpKTsKQEAgLTgwNSw3ICs4MDUsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgIHdyaXRlKGJsb2ItPnNpemUoKSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoSW1h
Z2VEYXRhKiBkYXRhID0gdG9JbWFnZURhdGEob2JqKSkgeworICAgICAgICAgICAgaWYgKEltYWdl
RGF0YSogZGF0YSA9IEpTSW1hZ2VEYXRhOjp0b1dyYXBwZWQob2JqKSkgewogICAgICAgICAgICAg
ICAgIHdyaXRlKEltYWdlRGF0YVRhZyk7CiAgICAgICAgICAgICAgICAgd3JpdGUoZGF0YS0+d2lk
dGgoKSk7CiAgICAgICAgICAgICAgICAgd3JpdGUoZGF0YS0+aGVpZ2h0KCkpOwpAQCAtODY1LDcg
Kzg2NSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7CiAgICAg
ICAgICAgICB9CiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0gICAgICAgICAgICBpZiAoQ3J5
cHRvS2V5KiBrZXkgPSB0b0NyeXB0b0tleShvYmopKSB7CisgICAgICAgICAgICBpZiAoQ3J5cHRv
S2V5KiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKG9iaikpIHsKICAgICAgICAgICAgICAg
ICB3cml0ZShDcnlwdG9LZXlUYWcpOwogICAgICAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBz
ZXJpYWxpemVkS2V5OwogICAgICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGR1bW15QmxvYlVS
THM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCmluZGV4IDhkNTRkYTEzYzRkOWY1Nzg2MDQwZmM0YjUzOWNhYzA2YzE4NGVlMDAuLmJm
ZTgxZDg3MTE3NjBmYTdhNWE2YjA5MzgwODE3NDVlZTZkNWJkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC04NzQsNiAr
ODc0LDE3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTtcbiIpOwogICAgIH0KIAorICAgICMgSlNWYWx1ZSB0byBpbXBsZW1l
bnRhdGlvbiB0eXBlCisgICAgaWYgKCEkaGFzUGFyZW50IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QifSkgeworICAgICAgICBpZiAo
JGludGVyZmFjZU5hbWUgZXEgIk5vZGVGaWx0ZXIiKSB7CisgICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvV3JhcHBlZChK
U0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICB9IGVsc2lmICgkaW50ZXJmYWNl
TmFtZSBlcSAiRE9NU3RyaW5nTGlzdCIpIHsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gdG9XcmFwcGVkKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGltcGxUeXBlKiB0b1dyYXBw
ZWQoSlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICB9CisgICAgfQorCiAgICAgJGhlYWRlclRy
YWlsaW5nSW5jbHVkZXN7IiR7Y2xhc3NOYW1lfUN1c3RvbS5oIn0gPSAxIGlmICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUhlYWRlciJ9OwogCiAgICAgbXkgJG5hbWVk
R2V0dGVyRnVuY3Rpb24gPSBHZXROYW1lZEdldHRlckZ1bmN0aW9uKCRpbnRlcmZhY2UpOwpAQCAt
MTE2NiwxNSArMTE3Nyw2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmIChTaG91bGRHZW5l
cmF0ZVRvSlNEZWNsYXJhdGlvbigkaGFzUGFyZW50LCAkaW50ZXJmYWNlKSkgewogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbXBsVHlwZSopO1xuIik7CiAgICAg
fQotICAgIGlmICghJGhhc1BhcmVudCB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKLSAgICAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJOb2RlRmlsdGVyIikgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IlBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpTQzo6Vk0mLCBKU0M6OkpTVmFs
dWUpO1xuIik7Ci0gICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01TdHJpbmdM
aXN0IikgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlBhc3NSZWZQdHI8RE9N
U3RyaW5nTGlzdD4gdG9ET01TdHJpbmdMaXN0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
KTtcbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIldFQkNPUkVfRVhQT1JUICRpbXBsVHlwZSogdG8ke2ludGVyZmFjZU5hbWV9KEpTQzo6SlNW
YWx1ZSk7XG4iKTsKLSAgICAgICAgfQotICAgIH0KICAgICBpZiAoJHVzZXNUb0pTTmV3bHlDcmVh
dGVkeyRpbnRlcmZhY2VOYW1lfSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlND
OjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCosICRpbnRlcmZhY2VOYW1lKik7XG4iKTsKICAgICB9CkBAIC0zMTEyLDcgKzMxMTQsNyBA
QCBFTkQKICAgICB9CiAKICAgICBpZiAoKCEkaGFzUGFyZW50IG9yICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QifSkgYW5kICEkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Ub05hdGl2ZU9iamVjdCJ9KSB7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJGltcGxUeXBlKiB0byR7aW50ZXJmYWNlTmFtZX0o
SlNDOjpKU1ZhbHVlIHZhbHVlKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJGlt
cGxUeXBlKiAke2NsYXNzTmFtZX06OnRvV3JhcHBlZChKU0M6OkpTVmFsdWUgdmFsdWUpXG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSAiIC4gR2V0Q2FzdGluZ0hlbHBlckZvclRo
aXNPYmplY3QoJGludGVyZmFjZSkgLiAiKHZhbHVlKSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7XG4iKTsKQEAgLTMyNDMs
NyArMzI0NSw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogCiAgICAgICAgIGlmICgk
YXJnVHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIFJlZlB0cjxYUGF0aE5TUmVzb2x2ZXI+IGN1c3RvbVJlc29sdmVyO1xuIik7
Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgWFBhdGhOU1Jlc29sdmVyKiBy
ZXNvbHZlciA9IHRvWFBhdGhOU1Jlc29sdmVyKGV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpKTtc
biIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFhQYXRoTlNSZXNvbHZl
ciogcmVzb2x2ZXIgPSBKU1hQYXRoTlNSZXNvbHZlcjo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50
KCRhcmdzSW5kZXgpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGlmICghcmVzb2x2ZXIpIHtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICBjdXN0b21SZXNvbHZlciA9IEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpjcmVhdGUo
ZXhlYywgZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkpO1xuIik7CiAgICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpXG4iKTsKQEAgLTMyOTYsNyArMzI5OCw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVj
awogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBmb3IgKHVuc2lnbmVk
IGkgPSAkYXJnc0luZGV4LCBjb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgaSA8IGNvdW50
OyArK2kpIHtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAg
ICAgaWYgKCFleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKS5pbmhlcml0cyhKUyR7YXJnVHlwZX06
OmluZm8oKSkpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqZXhlYywgaSwgXCIkbmFtZVwi
LCBcIiRpbnRlcmZhY2VOYW1lXCIsICRxdW90ZWRGdW5jdGlvbk5hbWUsIFwiJGFyZ1R5cGVcIik7
XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1l
LmFwcGVuZCh0byRhcmdUeXBlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1lLmFwcGVuZChK
UyR7YXJnVHlwZX06OnRvV3JhcHBlZChleGVjLT51bmNoZWNrZWRBcmd1bWVudChpKSkpO1xuIik7
CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpCiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBW
ZWN0b3I8JG5hdGl2ZUVsZW1lbnRUeXBlPiAkbmFtZSA9IHRvTmF0aXZlQXJndW1lbnRzPCRuYXRp
dmVFbGVtZW50VHlwZT4oZXhlYywgJGFyZ3NJbmRleCk7XG4iKTsKQEAgLTM4NDksNyArMzg1MSw3
IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKIAogICAgIGlmICgkdHlwZSBlcSAiTm9kZUZpbHRlciIp
IHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25kaXRpb25hbCk7
Ci0gICAgICAgIHJldHVybiAidG8kdHlwZShleGVjLT52bSgpLCAkdmFsdWUpIjsKKyAgICAgICAg
cmV0dXJuICJKUyR7dHlwZX06OnRvV3JhcHBlZChleGVjLT52bSgpLCAkdmFsdWUpIjsKICAgICB9
CiAKICAgICBpZiAoJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKQEAgLTM4ODEs
NyArMzg4Myw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICBpZiAoJGFycmF5T3JTZXF1ZW5j
ZVR5cGUpIHsKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1JlZlB0clR5cGUoJGFycmF5
T3JTZXF1ZW5jZVR5cGUpKSB7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMke2Fy
cmF5T3JTZXF1ZW5jZVR5cGV9LmgiKTsKLSAgICAgICAgICAgIHJldHVybiAiKHRvUmVmUHRyTmF0
aXZlQXJyYXk8JHthcnJheU9yU2VxdWVuY2VUeXBlfSwgSlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9
PihleGVjLCAkdmFsdWUsICZ0byR7YXJyYXlPclNlcXVlbmNlVHlwZX0pKSI7CisgICAgICAgICAg
ICByZXR1cm4gIih0b1JlZlB0ck5hdGl2ZUFycmF5PCR7YXJyYXlPclNlcXVlbmNlVHlwZX0sIEpT
JHthcnJheU9yU2VxdWVuY2VUeXBlfT4oZXhlYywgJHZhbHVlLCAmSlMke2FycmF5T3JTZXF1ZW5j
ZVR5cGV9Ojp0b1dyYXBwZWQpKSI7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICJ0b05hdGl2
ZUFycmF5PCIgLiBHZXROYXRpdmVWZWN0b3JJbm5lclR5cGUoJGFycmF5T3JTZXF1ZW5jZVR5cGUp
IC4gIj4oZXhlYywgJHZhbHVlKSI7CiAgICAgfQpAQCAtMzg5Miw3ICszODk0LDcgQEAgc3ViIEpT
VmFsdWVUb05hdGl2ZQogCiAgICAgIyBEZWZhdWx0LCBhc3N1bWUgYXV0b2dlbmVyYXRlZCB0eXBl
IGNvbnZlcnNpb24gcm91dGluZXMKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMkdHlwZS5oIiwg
JGNvbmRpdGlvbmFsKTsKLSAgICByZXR1cm4gInRvJHR5cGUoJHZhbHVlKSI7CisgICAgcmV0dXJu
ICJKUyR7dHlwZX06OnRvV3JhcHBlZCgkdmFsdWUpIjsKIH0KIAogc3ViIE5hdGl2ZVRvSlNWYWx1
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA3MTkzOGZiZGViYzU1OGMy
NzVjOTVhYWM2MzE3YWUyZDVkYjg0MDVlLi4wZGJhMzExNWI5ZWM4ZWJlNWFhZjEzMTAzYTgyZDg1
YjkxNTAwZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMjE0LDcg
KzIxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2Jq
ZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0CiAgICAgVGVzdEFjdGl2ZURPTU9iamVj
dCYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgTm9kZSogbmV4dENoaWxkKHRvTm9kZShleGVj
LT5hcmd1bWVudCgwKSkpOworICAgIE5vZGUqIG5leHRDaGlsZChKU05vZGU6OnRvV3JhcHBlZChl
eGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24o
KSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAg
aW1wbC5leGNpdGluZ0Z1bmN0aW9uKG5leHRDaGlsZCk7CkBAIC0yODksNyArMjg5LDcgQEAgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBUZXN0QWN0aXZlRE8KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RB
Y3RpdmVET01PYmplY3Q+KGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RBY3RpdmVET01P
YmplY3QqIHRvVGVzdEFjdGl2ZURPTU9iamVjdChKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0QWN0
aXZlRE9NT2JqZWN0KiBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OnRvV3JhcHBlZChKU0M6OkpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dEFjdGl2ZURPTU9iamVjdCo+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBs
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggNTVjMmVmOTRlMjZjMjE4YjEw
MTI2MWFkOWUxMTE0ZTA5MWU0NmYwNy4uM2E0M2EwZTc0ZGNiODkzN2E5YTQ0ODJlZjA5ZmQ3NDRh
NDVmZjBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaApAQCAtMzgsNiArMzgsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpT
Qzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IGdldFByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRp
YyBUZXN0QWN0aXZlRE9NT2JqZWN0KiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RBY3RpdmVET01PYmplY3QoKTsK
QEAgLTkzLDcgKzk0LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJX
b3JsZCYgd29ybGQsIFRlc3RBY3RpdmVET01PYmplY3QqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVz
dEFjdGl2ZURPTU9iamVjdCopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEFjdGl2ZURPTU9iamVjdCog
dG9UZXN0QWN0aXZlRE9NT2JqZWN0KEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXggNTY4Yzlk
ZTg0ZWUyY2Y3ZTJlMTEyYzdhMTZkMDdjOTdhM2FkYzJkZC4uMTQ0NTlmYmRiNDllNzc3MTRlMzc4
N2FjZGUwYzY4NTQ3ZjY5YzRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
Y3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q3VzdG9tTmEKICAgICByZXR1
cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcj4oZ2xvYmFsT2JqZWN0
LCBpbXBsKTsKIH0KIAotVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b1Rlc3RDdXN0b21OYW1lZEdl
dHRlcihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyOjp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlm
IChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+
KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5oCmluZGV4IDFlYjM1ZDgyZTA4M2YxNzljNTA2YzE3NTcyZjE3NjY3
N2YyYzk3NTAuLjljNTQ2NTNmNWQ1YmI4ODQyZWFlMzNiZjJlYTc0Y2U4ZWM3N2JiZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0
b21OYW1lZEdldHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCkBAIC0zOCw2ICszOCw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90
eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RDdXN0
b21OYW1lZEdldHRlciogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKQEAgLTk3LDcgKzk4LDYgQEAgaW5saW5lIHZvaWQqIHdy
YXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RDdXN0b21OYW1lZEdldHRl
ciopCiB9CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKTsKLVdFQkNPUkVf
RVhQT1JUIFRlc3RDdXN0b21OYW1lZEdldHRlciogdG9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoSlND
OjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOGVhZmEwN2RkN2UzNmUyY2Q1YjkxZmU2NjMyM2ZkNmM5
MzA4ODJhMi4uZjZhYzY0NjdkMjI1ZjRiOWI3ZGI3NzIxZTRiMjBlNTBhY2M4MWJkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcApAQCAtMjkyLDcgKzI5Miw3IEBAIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVGVzdEV2ZW50Q29uCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEV2ZW50Q29uc3Ry
dWN0b3IqIHRvVGVzdEV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEV2
ZW50Q29uc3RydWN0b3IqIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OnRvV3JhcHBlZChKU0M6OkpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEV2ZW50Q29uc3RydWN0b3IqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+
aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmgKaW5kZXggNWJiZWVjODBlNGNj
NGIzOGExOTc3MTE5NWFjMWRkNDY5NzZiMTMxNi4uYzNlMzMyNTYzMTg2YWU1NDFlNTdmYzZhYzM4
M2ZjYTVhMzliNGZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCkBAIC00MCw2
ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90
b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgc3RhdGljIFRlc3RFdmVudENvbnN0cnVjdG9yKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsK
ICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEV2ZW50
Q29uc3RydWN0b3IoKTsKIApAQCAtOTMsNyArOTQsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNv
bnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEV2ZW50Q29uc3RydWN0b3IqKQogfQog
CiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiwgVGVzdEV2ZW50Q29uc3RydWN0b3IqKTsKLVdFQkNPUkVfRVhQT1JUIFRl
c3RFdmVudENvbnN0cnVjdG9yKiB0b1Rlc3RFdmVudENvbnN0cnVjdG9yKEpTQzo6SlNWYWx1ZSk7
CiAKIGJvb2wgZmlsbFRlc3RFdmVudENvbnN0cnVjdG9ySW5pdChUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckluaXQmLCBKU0RpY3Rpb25hcnkmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXgg
ZGIzMzNkMjQ0NGMzOGU0ZTQ2YWI0N2JiNWM4OWJjYzhiM2ZhOGE1NC4uZTg1MGRhMGUyYjYwOThl
MWNlZTYwMGNkMjg3NGI2MWVjM2FmN2NmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBA
IC0yOTQsNyArMjk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RFdmVu
dFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uRGlzcGF0Y2hFdmVudChFeGUKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgRXZlbnQqIGV2dCh0b0V2ZW50KGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAg
RXZlbnQqIGV2dChKU0V2ZW50Ojp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBp
ZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29sZWFu
KGltcGwuZGlzcGF0Y2hFdmVudChldnQsIGVjKSk7CkBAIC0zNjQsNyArMzY0LDcgQEAgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0RXZlbnRUYXIKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RFdmVu
dFRhcmdldD4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdEV2ZW50VGFyZ2V0KiB0b1Rl
c3RFdmVudFRhcmdldChKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0RXZlbnRUYXJnZXQqIEpTVGVz
dEV2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChh
dXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KHZhbHVlKSkK
ICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCmlu
ZGV4IGViMGEyZDk5YmVjY2FiN2U1MjMxMThlNTRkYmNhZDQ5MjFmNDQ4MDAuLjE5YTk5ODIzMTVi
Y2E5OGMyNzA2OWVmYmRiYTNlY2Q3NDJhM2QxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5oCkBA
IC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVh
dGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CisgICAgc3RhdGljIFRlc3RFdmVudFRhcmdldCogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7
CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU09iamVjdCosIEpT
Qzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKQEAgLTEwMSw3ICsxMDIs
NiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwg
VGVzdEV2ZW50VGFyZ2V0KikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RFdmVudFRhcmdldCopOwot
V0VCQ09SRV9FWFBPUlQgVGVzdEV2ZW50VGFyZ2V0KiB0b1Rlc3RFdmVudFRhcmdldChKU0M6OkpT
VmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAK
aW5kZXggNGFkZTc2ZTkxNWIzOGNhNWYwN2I3NThhNjJmYzVjOTE4ZTliYjk2My4uYmY4ZmUxMmQ2
YmVhY2I3ODMyOGIwMjA1ZTEzNzJkMTNmMDFhODdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAK
QEAgLTIzOSw3ICsyMzksNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RFeGNlcHRpbwogICAgIHJldHVybiBj
cmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV4Y2VwdGlvbj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0K
IAotVGVzdEV4Y2VwdGlvbiogdG9UZXN0RXhjZXB0aW9uKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rl
c3RFeGNlcHRpb24qIEpTVGVzdEV4Y2VwdGlvbjo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXhjZXB0
aW9uKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uaAppbmRleCAzOTg0NTc0ZTk4N2Y5YjgxMTg0YjBiNmZjYTNiZTFlNzc2ZmExYTRlLi45
Y2Y5ZWRkOGJhYmJkYjdhM2Y5YjlhNzFmYzAwMjU5M2Y5MDc1MDhjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlv
bi5oCkBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RFeGNlcHRpb24qIHRvV3JhcHBlZChKU0M6OkpTVmFs
dWUpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEV4Y2Vw
dGlvbigpOwpAQCAtOTQsNyArOTUsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEV4Y2VwdGlvbiopCiB9CiAKIFdFQkNPUkVfRVhQT1JU
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBU
ZXN0RXhjZXB0aW9uKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0RXhjZXB0aW9uKiB0b1Rlc3RFeGNl
cHRpb24oSlNDOjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5kZXggNDI3YWJhOGQ0MGViNGQ0ZGQ4
YmViNzc5MDQ3Nzk2NWIxN2FlYmIyZi4uZWI0YjkxMTliZjUyNzRlNTBkYjA2OGNhN2JkZDY0Yjcx
ODAwOGRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApAQCAt
MjExLDcgKzIxMSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEdlbmVyYXRlCiAgICAgcmV0dXJuIGNyZWF0
ZU5ld1dyYXBwZXI8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT4oZ2xvYmFsT2JqZWN0LCBpbXBs
KTsKIH0KIAotVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIHRvVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIEpTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGU6OnRvV3JhcHBlZChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
aWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmgKaW5kZXggZGY3YmRkYmI0OTI3ZjA0OGY4YmZkOThi
ODJhN2Q3NzcwNjYwNjMwOC4uZDE4ZTEwYzUyM2NmMWFjMzE2ZTEwYzdmZjkxZjVkMjlhZjc0MmIz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5oCkBAIC0zOCw2ICszOCw3
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUo
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3Rh
dGljIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUoKTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNv
bnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqKQog
fQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiwgVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqKTsKLVdFQkNPUkVfRVhQ
T1JUIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiB0b1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKEpT
Qzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcAppbmRleCBiMTQzY2M0ZTM2MjA0ZWY3ZGU2NmEwZDE2ZmVmNTNjNDE2YTJmYTQzLi5lNjFh
YzY0YzNmZWMwNDEzZWQ0OGExYzMzZDZmM2YxZWYxNWQ3NWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcApAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50
c05vZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgVGVzdEludGVyZmFjZSYgaW1wbCA9IGNhc3RlZFRoaXMtPmlt
cGwoKTsKLSAgICBOb2RlKiBuYXRpdmVWYWx1ZSh0b05vZGUodmFsdWUpKTsKKyAgICBOb2RlKiBu
YXRpdmVWYWx1ZShKU05vZGU6OnRvV3JhcHBlZCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldEltcGxl
bWVudHNOb2RlKG5hdGl2ZVZhbHVlKTsKQEAgLTc5NSw3ICs3OTUsNyBAQCB2b2lkIHNldEpTVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFz
ZU9iamVjdCwgRQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRlc3RJbnRlcmZhY2UmIGlt
cGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgTm9kZSogbmF0aXZlVmFsdWUodG9Ob2RlKHZh
bHVlKSk7CisgICAgTm9kZSogbmF0aXZlVmFsdWUoSlNOb2RlOjp0b1dyYXBwZWQodmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47
CiAgICAgVGVzdFN1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFsTm9kZSgmaW1wbCwgbmF0aXZl
VmFsdWUpOwpAQCAtODQxLDcgKzg0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25JbXBsZW1lbnRzTWV0aG9kMihFCiAgICAg
Y29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMCkuaXNFbXB0eSgpID8gU3RyaW5n
KCkgOiBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAg
IGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9i
aihleGVjLT5hcmd1bWVudCgxKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRv
V3JhcHBlZChleGVjLT5hcmd1bWVudCgxKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRF
eGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9i
amVjdCgpLCBXVEY6OmdldFB0cihpbXBsLmltcGxlbWVudHNNZXRob2QyKHNjcmlwdENvbnRleHQs
IHN0ckFyZywgb2JqQXJnLCBlYykpKTsKQEAgLTkwNyw3ICs5MDcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVu
dGFsTWV0aG9kMgogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDApLmlz
RW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoq
IG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAgICBUZXN0T2JqKiBvYmpB
cmcoSlNUZXN0T2JqOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMSkpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0
ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoVGVzdFN1cHBsZW1lbnRhbDo6c3Vw
cGxlbWVudGFsTWV0aG9kMigmaW1wbCwgc2NyaXB0Q29udGV4dCwgc3RyQXJnLCBvYmpBcmcsIGVj
KSkpOwpAQCAtOTczLDcgKzk3Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEludGVyZmFjCiAgICAgcmV0
dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0SW50ZXJmYWNlPihnbG9iYWxPYmplY3QsIGltcGwp
OwogfQogCi1UZXN0SW50ZXJmYWNlKiB0b1Rlc3RJbnRlcmZhY2UoSlNDOjpKU1ZhbHVlIHZhbHVl
KQorVGVzdEludGVyZmFjZSogSlNUZXN0SW50ZXJmYWNlOjp0b1dyYXBwZWQoSlNDOjpKU1ZhbHVl
IHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oCmluZGV4IDdkZDhkMDMzZTQ3MWIxMjkzMjg4ZTY5NzA5OWRiM2M3ZjU3NzIy
MDIuLjlkMTE2YWMzZjFjZDhmNzYwYjYxMjAxYjExY2QwOGJiNjZlNTEwYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdEludGVyZmFjZSogdG9XcmFwcGVkKEpTQzo6
SlNWYWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7
CkBAIC0xMjAsNyArMTIxLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQsIFRlc3RJbnRlcmZhY2UqKQogfQogCiBXRUJDT1JFX0VYUE9SVCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdElu
dGVyZmFjZSopOwotV0VCQ09SRV9FWFBPUlQgVGVzdEludGVyZmFjZSogdG9UZXN0SW50ZXJmYWNl
KEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDNlOTMxMWU1MzBiNWMzYTZm
ZDUyMWZkNTQwOTA0NGM4YzE2NDRkM2MuLjdkMzFhMTUxM2YyY2FiOTQ1YmYwMTE0YTQxYTE0NmYx
YmQ3YzAwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5j
cHAKQEAgLTIyNyw3ICsyMjcsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RNZWRpYVF1ZQogICAgIHJldHVy
biBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KGdsb2JhbE9i
amVjdCwgaW1wbCk7CiB9CiAKLVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0b1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyKiBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp0b1dyYXBwZWQoSlNDOjpK
U1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndy
YXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
CmluZGV4IDU1NzM1ZWIzMjMxZDc0Y2M2NGVhZWIzZGM5N2NkODRhMGNmZWU5NGEuLjUyZDhkODQ0
ZmM5NmFmZWMzZDdmYzhhNDJkMTc0YzA4MDBjODhiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShKU0M6
OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lciogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQgZGVz
dHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKCk7
CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKikKIH0KIAogV0VCQ09S
RV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCosIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKik7Ci1XRUJDT1JFX0VYUE9SVCBUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogdG9UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihKU0M6
OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcAppbmRleCA3NTQ2ZGNjZDJhOTJjMTIxYTg0ZDRmOGU1MmVkNjg4OGYx
NjhkODQ1Li43ZTU5MzE4MDIxOGMzNGU1YjY0NzRhMWU0NjhjZmZlYWFjNTMwZGVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0yODEsNyArMjgxLDcgQEAgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0TmFtZWRDb24KICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0TmFtZWRDb25zdHJ1
Y3RvciogdG9UZXN0TmFtZWRDb25zdHJ1Y3RvcihKU0M6OkpTVmFsdWUgdmFsdWUpCitUZXN0TmFt
ZWRDb25zdHJ1Y3RvciogSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6dG9XcmFwcGVkKEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT5p
bXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuaAppbmRleCBlY2U5ODg3NzU5ZTA4
NjgwNGQ5YmRjNWE1YTRmNjZlMjRjZjM3YjYwLi5lZjgyM2EyZjQ3MWE2NGIwMDNmZjRiNzJhOTcw
MTIxNDdjYzBlMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmgKQEAgLTM4LDYg
KzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3Rv
dHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAg
ICBzdGF0aWMgVGVzdE5hbWVkQ29uc3RydWN0b3IqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwog
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0TmFtZWRD
b25zdHJ1Y3RvcigpOwogCkBAIC05Miw3ICs5Myw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29u
dGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopCiB9CiAK
IFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqLCBUZXN0TmFtZWRDb25zdHJ1Y3RvciopOwotV0VCQ09SRV9FWFBPUlQgVGVz
dE5hbWVkQ29uc3RydWN0b3IqIHRvVGVzdE5hbWVkQ29uc3RydWN0b3IoSlNDOjpKU1ZhbHVlKTsK
IAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yy5jcHAKaW5kZXggZTE3M2FhY2Y3ODg3NGFiM2FlMDA4Mzg2YTRlMTg5MWE2NGI3NzE2Zi4uYjYx
YmRhMDZmMjQ0ZGFkYWRhNzM2NWQ0OGNhZjRmZmRmM2UwZGQ0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
b25kZXRlcm1pbmlzdGljLmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdE5v
bmRldGVyCiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yz4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE5vbmRldGVybWluaXN0aWMqIHRvVGVz
dE5vbmRldGVybWluaXN0aWMoSlNDOjpKU1ZhbHVlIHZhbHVlKQorVGVzdE5vbmRldGVybWluaXN0
aWMqIEpTVGVzdE5vbmRldGVybWluaXN0aWM6OnRvV3JhcHBlZChKU0M6OkpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vbmRldGVy
bWluaXN0aWMqPih2YWx1ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
bmRldGVybWluaXN0aWMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmgKaW5kZXggZjUyZWJiZDEzMzAwMWQwNzM3NWVjNDRm
NWQ4ZjdmMThlYWQzNjVhYi4uMDk5MTE3ZDFiYWExYjkxMGViNDdlMDZhOWFhMmM4YmViNmZlYTUx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vbmRldGVybWluaXN0aWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYy5oCkBAIC0zOCw2ICszOCw3IEBAIHB1
YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpW
TSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0
UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRl
c3ROb25kZXRlcm1pbmlzdGljKiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE5vbmRldGVybWluaXN0aWMo
KTsKIApAQCAtOTEsNyArOTIsNiBAQCBpbmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCwgVGVzdE5vbmRldGVybWluaXN0aWMqKQogfQogCiBXRUJDT1JFX0VY
UE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiwgVGVzdE5vbmRldGVybWluaXN0aWMqKTsKLVdFQkNPUkVfRVhQT1JUIFRlc3ROb25kZXRlcm1p
bmlzdGljKiB0b1Rlc3ROb25kZXRlcm1pbmlzdGljKEpTQzo6SlNWYWx1ZSk7CiAKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBlNDM0ZGVjYmY4MDY4OTk5MzIxYWFjZWY0
MTBhOGE3YWM5MjJmMmYxLi42NGZkOTRiZDYyZjk5M2I3MTViNTc5MjFlODI4YjdmZWU3YzhhY2Rm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcApAQCAtMjA3OCw3ICsyMDc4LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpUZXN0
T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNW
YWwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOwor
ICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9XcmFwcGVkKHZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGltcGwuc2V0VGVzdE9iakF0dHIobmF0aXZlVmFsdWUpOwpAQCAtMjA5OCw3ICsyMDk4LDcg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHUKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoqIG5hdGl2ZVZh
bHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKEpTVGVzdE9i
ajo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0WE1MT2JqQXR0cihuYXRpdmVWYWx1
ZSk7CkBAIC0yNDU0LDcgKzI0NTQsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
LSAgICBUZXN0T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2Jq
KiBuYXRpdmVWYWx1ZShKU1Rlc3RPYmo6OnRvV3JhcHBlZCh2YWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwpAQCAtMjQ3Nyw3ICsyNDc3LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU8KICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwot
ICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoq
IG5hdGl2ZVZhbHVlKEpTVGVzdE9iajo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0
V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIG5hdGl2ZVZhbHVlKTsKQEAgLTI0
OTcsNyArMjQ5Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0
T2JqKiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVW
YWx1ZShKU1Rlc3RPYmo6OnRvV3JhcHBlZCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMjUy
MCw3ICsyNTIwLDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXgKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RP
YmoqIG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZh
bHVlKEpTVGVzdE9iajo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC0yNTQz
LDcgKzI1NDMsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YQogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgVGVzdE9i
aiogbmF0aXZlVmFsdWUodG9UZXN0T2JqKHZhbHVlKSk7CisgICAgVGVzdE9iaiogbmF0aXZlVmFs
dWUoSlNUZXN0T2JqOjp0b1dyYXBwZWQodmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTI1NjYs
NyArMjU2Niw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoRXhlCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKLSAgICBUZXN0T2Jq
KiBuYXRpdmVWYWx1ZSh0b1Rlc3RPYmoodmFsdWUpKTsKKyAgICBUZXN0T2JqKiBuYXRpdmVWYWx1
ZShKU1Rlc3RPYmo6OnRvV3JhcHBlZCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtMjU4OSw3
ICsyNTg5LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0
YWNrQXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmoKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBUZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwotICAgIFRlc3RPYmoq
IG5hdGl2ZVZhbHVlKHRvVGVzdE9iaih2YWx1ZSkpOworICAgIFRlc3RPYmoqIG5hdGl2ZVZhbHVl
KEpTVGVzdE9iajo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIGltcGwuc2V0V2l0aFNjcmlwdEFy
Z3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShuYXRpdmVWYWx1ZSk7CkBAIC0yNzQwLDcgKzI3
NDAsNyBAQCB2b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYQogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAgU1ZHUHJvcGVydHlU
ZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUodG9TVkdQb2ludCh2YWx1ZSkpOworICAgIFNW
R1Byb3BlcnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKEpTU1ZHUG9pbnQ6OnRvV3Jh
cHBlZCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldE11dGFibGVQb2ludChuYXRpdmVWYWx1ZSk7CkBA
IC0yNzYwLDcgKzI3NjAsNyBAQCB2b2lkIHNldEpTVGVzdE9iakltbXV0YWJsZVBvaW50KEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKUwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIFRlc3RPYmomIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7Ci0gICAg
U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR1BvaW50PiogbmF0aXZlVmFsdWUodG9TVkdQb2ludCh2YWx1
ZSkpOworICAgIFNWR1Byb3BlcnR5VGVhck9mZjxTVkdQb2ludD4qIG5hdGl2ZVZhbHVlKEpTU1ZH
UG9pbnQ6OnRvV3JhcHBlZCh2YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKICAgICBpbXBsLnNldEltbXV0YWJsZVBvaW50KG5h
dGl2ZVZhbHVlKTsKQEAgLTI5MzksNyArMjkzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0
CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8g
U3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykp
OwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRv
VGVzdE9iaihleGVjLT5hcmd1bWVudCgyKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RP
Ymo6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgyKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVj
LT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgaW1wbC52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBv
YmpBcmcpOwpAQCAtMjk3NCw3ICsyOTc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyhFeGVjU3QKICAg
ICBjb25zdCBTdHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJp
bmcoKSA6IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAg
ICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0
T2JqKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6
dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwuYnl0ZU1ldGhvZFdpdGhB
cmdzKGJ5dGVBcmcsIHN0ckFyZywgb2JqQXJnKSk7CkBAIC0zMDA5LDcgKzMwMDksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRN
ZXRob2RXaXRoQXJncyhFeGVjUwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3Vt
ZW50KDEpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAg
IFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0
T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMikpKTsKICAg
ICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1i
ZXIoaW1wbC5vY3RldE1ldGhvZFdpdGhBcmdzKG9jdGV0QXJnLCBzdHJBcmcsIG9iakFyZykpOwpA
QCAtMzA0NCw3ICszMDQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBjb25zdCBT
dHJpbmcmIHN0ckFyZyhleGVjLT5hcmd1bWVudCgxKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IGV4
ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKGV4ZWMt
PmFyZ3VtZW50KDIpKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9XcmFwcGVk
KGV4ZWMtPmFyZ3VtZW50KDIpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwubG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdB
cmcsIHN0ckFyZywgb2JqQXJnKSk7CkBAIC0zMDc5LDcgKzMwNzksNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFy
Z3MoRXhlY1N0YQogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMtPmFyZ3VtZW50KDEpLmlz
RW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIFRlc3RPYmoq
IG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMikpKTsKKyAgICBUZXN0T2JqKiBvYmpB
cmcoSlNUZXN0T2JqOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMikpKTsKICAgICBpZiAoVU5M
SUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0
ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC5vYmpNZXRob2RXaXRoQXJn
cyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZykpKTsKQEAgLTMwOTYsNyArMzA5Niw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoU2VxdWVuY2VBcmcoRXhlCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwo
KTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0g
ICAgVmVjdG9yPFJlZlB0cjxTY3JpcHRQcm9maWxlPj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0
aXZlQXJyYXk8U2NyaXB0UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxlPihleGVjLCBleGVjLT5hcmd1
bWVudCgwKSwgJnRvU2NyaXB0UHJvZmlsZSkpKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNjcmlwdFBy
b2ZpbGU+PiBzZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxTY3JpcHRQcm9maWxlLCBK
U1NjcmlwdFByb2ZpbGU+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmSlNTY3JpcHRQcm9maWxl
Ojp0b1dyYXBwZWQpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBs
Lm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhzZXF1ZW5jZUFyZyk7CkBAIC0zMTUzLDcgKzMxNTMsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJncwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKGV4ZWMt
PmFyZ3VtZW50KDApLmlzRW1wdHkoKSA/IFN0cmluZygpIDogZXhlYy0+YXJndW1lbnQoMCkudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwotICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMSkpKTsKKyAg
ICBUZXN0T2JqKiBvYmpBcmcoSlNUZXN0T2JqOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMSkp
KTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0g
dG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC5t
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKHN0ckFyZywgb2JqQXJnLCBlYykpKTsK
QEAgLTM2NjksNyArMzY2OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEoCiAgICAgVGVzdE9i
aiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMikKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihl
eGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rlc3RPYmo6OnRvV3Jh
cHBlZChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShleGVjLT5oYWRFeGNl
cHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoZXhlYy0+YXJndW1lbnQoMSkuaXNFbXB0eSgpID8g
U3RyaW5nKCkgOiBleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykp
OwpAQCAtMzY4OSw3ICszNjg5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMigKICAgICBUZXN0
T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENv
dW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2Jq
KGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6dG9X
cmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIApAQCAtMzgwMSw3ICszODAxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kOCgKICAgICBU
ZXN0T2JqJiBpbXBsID0gY2FzdGVkVGhpcy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0
T2JqKGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgVGVzdE9iaiogb2JqQXJnKEpTVGVzdE9iajo6
dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICBpbXBsLm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnKTsKQEAgLTQxMjEsNyArNDEy
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQo
MCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNUZXN0Tm9kZTo6dG9XcmFwcGVkKGV4ZWMtPmFy
Z3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNv
bnZlcnQxKHZhbHVlKTsKQEAgLTQxMzgsNyArNDEzOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MihFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZh
bHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUo
SlNUZXN0Tm9kZTo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElL
RUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQyKHZhbHVlKTsKQEAgLTQxNTUsNyAr
NDE1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db252ZXJ0NChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNh
c3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihleGVjKSk7Ci0gICAgVGVzdE5vZGUqIHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1l
bnQoMCkpKTsKKyAgICBUZXN0Tm9kZSogdmFsdWUoSlNUZXN0Tm9kZTo6dG9XcmFwcGVkKGV4ZWMt
PmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBs
LmNvbnZlcnQ0KHZhbHVlKTsKQEAgLTQxNzIsNyArNDE3Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihl
eGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgVGVzdE5vZGUq
IHZhbHVlKHRvVGVzdE5vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0Tm9kZSogdmFs
dWUoSlNUZXN0Tm9kZTo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVO
TElLRUxZKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBpbXBsLmNvbnZlcnQ1KHZhbHVlKTsKQEAgLTQyNTQs
NyArNDI1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25TdHJpY3RGdW5jdGlvbldpdGhTZXF1ZW5jCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZE9yTnVsbCgpICYm
ICFleGVjLT5hcmd1bWVudCgwKS5pbmhlcml0cyhKU1Rlc3RPYmo6OmluZm8oKSkpCiAgICAgICAg
IHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpleGVjLCAwLCAib2JqQXJnIiwgIlRlc3RP
YmoiLCAic3RyaWN0RnVuY3Rpb25XaXRoU2VxdWVuY2UiLCAiVGVzdE9iaiIpOwotICAgIFRlc3RP
YmoqIG9iakFyZyh0b1Rlc3RPYmooZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBUZXN0T2JqKiBv
YmpBcmcoSlNUZXN0T2JqOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAgICBpZiAo
VU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gYSh0b05hdGl2ZUFy
cmF5PHVuc2lnbmVkPihleGVjLCBleGVjLT5hcmd1bWVudCgxKSkpOwpAQCAtNDI3OSw3ICs0Mjc5
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblN0cmljdEZ1bmN0aW9uV2l0aEFycmF5KEUKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
ICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIWV4ZWMt
PmFyZ3VtZW50KDApLmluaGVyaXRzKEpTVGVzdE9iajo6aW5mbygpKSkKICAgICAgICAgcmV0dXJu
IHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMsIDAsICJvYmpBcmciLCAiVGVzdE9iaiIsICJz
dHJpY3RGdW5jdGlvbldpdGhBcnJheSIsICJUZXN0T2JqIik7Ci0gICAgVGVzdE9iaiogb2JqQXJn
KHRvVGVzdE9iaihleGVjLT5hcmd1bWVudCgwKSkpOworICAgIFRlc3RPYmoqIG9iakFyZyhKU1Rl
c3RPYmo6OnRvV3JhcHBlZChleGVjLT5hcmd1bWVudCgwKSkpOwogICAgIGlmIChVTkxJS0VMWShl
eGVjLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgVmVjdG9yPGludD4gYXJyYXkodG9OYXRpdmVBcnJheTxpbnQ+KGV4
ZWMsIGV4ZWMtPmFyZ3VtZW50KDEpKSk7CkBAIC00MzQxLDE0ICs0MzQxLDE0IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05v
ZGVNZXRob2QoRXhlY1N0CiAgICAgVGVzdE9iaiYgaW1wbCA9IGNhc3RlZFRoaXMtPmltcGwoKTsK
ICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAg
Tm9kZSogaGVhZCh0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpKTsKKyAgICBOb2RlKiBoZWFkKEpT
Tm9kZTo6dG9XcmFwcGVkKGV4ZWMtPmFyZ3VtZW50KDApKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBWZWN0b3I8Tm9kZSo+IHRhaWw7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMSwgY291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7IGkgPCBjb3VudDsgKytpKSB7CiAg
ICAgICAgIGlmICghZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkuaW5oZXJpdHMoSlNOb2RlOjpp
bmZvKCkpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKmV4ZWMs
IGksICJ0YWlsIiwgIlRlc3RPYmoiLCAidmFyaWFkaWNOb2RlTWV0aG9kIiwgIk5vZGUiKTsKLSAg
ICAgICAgdGFpbC5hcHBlbmQodG9Ob2RlKGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KGkpKSk7Cisg
ICAgICAgIHRhaWwuYXBwZW5kKEpTTm9kZTo6dG9XcmFwcGVkKGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KGkpKSk7CiAgICAgfQogICAgIGltcGwudmFyaWFkaWNOb2RlTWV0aG9kKGhlYWQsIHRhaWwp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC00NDM0LDcg
KzQ0MzQsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPYmoqIGltcAogICAgIHJldHVybiBjcmVhdGVOZXdX
cmFwcGVyPEpTVGVzdE9iaj4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAotVGVzdE9iaiogdG9U
ZXN0T2JqKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RPYmoqIEpTVGVzdE9iajo6dG9XcmFwcGVk
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4odmFsdWUpKQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouaAppbmRleCAzYzBiZmM1YzlkZWQxNGQzZGM2MzcwYmQxYzJlNzgxZTkwZGJiOGZlLi40
NDAyOTYwNWVkZTk0MjE2MjU1Zjc1N2QzZDQ4YTcyNzQ5NzQ3NTVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0zOCw2
ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90
b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgc3RhdGljIFRlc3RPYmoqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBk
ZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE9iaigpOwpAQCAtMTA2LDcgKzEwNyw2
IEBAIGlubGluZSB2b2lkKiB3cmFwcGVyQ29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCBU
ZXN0T2JqKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RPYmoqKTsKLVdFQkNPUkVfRVhQT1JUIFRl
c3RPYmoqIHRvVGVzdE9iaihKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA2
MzA4ZDllM2JiMzAwZTdiYWRjYzdkZTIwYWUxYzk1OTM4NTBhYWYwLi5hNjIxMWQzOWQzMTFjNTU3
MTNiMzRjOTg3NGI3MjI1NDk0ZjI0ZjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0
cnVjdEoKICAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IqIGNhc3Rl
ZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKj4o
ZXhlYy0+Y2FsbGVlKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGV4ZWMpKTsKLSAgICBCbG9iKiBibG9iKHRvQmxvYihleGVjLT5hcmd1bWVudCgwKSkpOwor
ICAgIEJsb2IqIGJsb2IoSlNCbG9iOjp0b1dyYXBwZWQoZXhlYy0+YXJndW1lbnQoMCkpKTsKICAg
ICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIFJlZlB0cjxUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycz4gb2JqZWN0ID0gVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZShi
bG9iKTsKQEAgLTI4Myw3ICsyODMsNyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RPdmVybG9hZAogICAgIHJl
dHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KGdsb2Jh
bE9iamVjdCwgaW1wbCk7CiB9CiAKLVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiB0b1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzKiBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjp0b1dyYXBwZWQoSlND
OjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKj4odmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5oCmluZGV4IDljNzZiYWU0NDk4Y2MyYmQ1MzM4MDdiNTNiODIxZTViOGRjMjQ3YzYuLmU4ZmUx
ZDZjYjhkYjEyMTMxNmEwZDgzYTkxZjdlOWVkYWE1OTYxYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaApAQCAtMzgsNiArMzgsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFByb3RvdHlwZShK
U0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycyogdG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSk7CiAgICAgc3RhdGljIHZvaWQg
ZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
KCk7CiAKQEAgLTkxLDcgKzkyLDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdy
YXBwZXJXb3JsZCYgd29ybGQsIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKikKIH0KIAogV0VC
Q09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCosIFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKik7Ci1XRUJDT1JFX0VYUE9SVCBU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogdG9UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyhK
U0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggODY3
ZDBjMDg1YzI1ZTY4N2ViOWM1NzVkNjZhYTQxZmM3YzlkYWZhMy4uOGYyNTdiZjVmNmM4YzA2Njk2
NjczNDM3OTdmY2Q4MGFlYzM3MGM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRlc3RTZXJpYWxpegogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIAot
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogdG9UZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UqIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6dG9X
cmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4odmFsdWUp
KQogICAgICAgICByZXR1cm4gJndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCBhNDhiYzhlMDY5OTNm
NDM2NTY3NjAxZTNmNjBmNDM2NWM4YWJlZGM5Li43YTU3Y2M2NmE0OThlM2I4MWU3NWZjYmM2NTQ2
ZjMyOWZmZjkxMGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogZ2V0UHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisgICAgc3RhdGljIFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlKCk7CiAKQEAgLTk3LDcgKzk4LDYgQEAgaW5saW5lIHZvaWQqIHdyYXBwZXJDb250
ZXh0KERPTVdyYXBwZXJXb3JsZCYgd29ybGQsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnQK
IH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqKTsK
LVdFQkNPUkVfRVhQT1JUIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHRvVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGUyYTkzYWExZjRkZTg2
ZGQ5NzUwZWVhYTIzNTlkNmRiN2ExZTgyYmYuLmJiMjQ3MThhZTA4Njk4YzY4MGQ2MDkzMmI5Y2Jl
ZDRiMzhmMzdjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtNTc0LDcgKzU3NCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhTZXF1ZW5jZUFyCiAgICAgVGVzdFR5cGVkZWZzJiBpbXBsID0gY2FzdGVkVGhp
cy0+aW1wbCgpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4
ZWMpKTsKLSAgICBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+IHNlcXVlbmNl
QXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwgSlNTZXJpYWxp
emVkU2NyaXB0VmFsdWU+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmdG9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUpKSk7CisgICAgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PiBz
ZXF1ZW5jZUFyZygodG9SZWZQdHJOYXRpdmVBcnJheTxTZXJpYWxpemVkU2NyaXB0VmFsdWUsIEpT
U2VyaWFsaXplZFNjcmlwdFZhbHVlPihleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgJkpTU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjp0b1dyYXBwZWQpKSk7CiAgICAgaWYgKFVOTElLRUxZKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwubWV0aG9kV2l0aFNlcXVl
bmNlQXJnKHNlcXVlbmNlQXJnKSk7CkBAIC02OTcsNyArNjk3LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1
ZW5jZVRoYXQKICAgICBUZXN0VHlwZWRlZnMmIGltcGwgPSBjYXN0ZWRUaGlzLT5pbXBsKCk7CiAg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIFZl
Y3RvcjxSZWZQdHI8VGVzdEV2ZW50VGFyZ2V0Pj4gc2VxdWVuY2VBcmcoKHRvUmVmUHRyTmF0aXZl
QXJyYXk8VGVzdEV2ZW50VGFyZ2V0LCBKU1Rlc3RFdmVudFRhcmdldD4oZXhlYywgZXhlYy0+YXJn
dW1lbnQoMCksICZ0b1Rlc3RFdmVudFRhcmdldCkpKTsKKyAgICBWZWN0b3I8UmVmUHRyPFRlc3RF
dmVudFRhcmdldD4+IHNlcXVlbmNlQXJnKCh0b1JlZlB0ck5hdGl2ZUFycmF5PFRlc3RFdmVudFRh
cmdldCwgSlNUZXN0RXZlbnRUYXJnZXQ+KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApLCAmSlNUZXN0
RXZlbnRUYXJnZXQ6OnRvV3JhcHBlZCkpKTsKICAgICBpZiAoVU5MSUtFTFkoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNCb29sZWFuKGltcGwuY2FsbFdpdGhTZXF1ZW5jZVRo
YXRSZXF1aXJlc0luY2x1ZGUoc2VxdWVuY2VBcmcpKTsKQEAgLTc2OSw3ICs3NjksNyBAQCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRlc3RUeXBlZGVmcwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFR5
cGVkZWZzPihnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCi1UZXN0VHlwZWRlZnMqIHRvVGVzdFR5
cGVkZWZzKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK1Rlc3RUeXBlZGVmcyogSlNUZXN0VHlwZWRlZnM6
OnRvV3JhcHBlZChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKGF1dG8qIHdyYXBwZXIg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4odmFsdWUpKQogICAgICAgICByZXR1cm4g
JndyYXBwZXItPmltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKaW5kZXggN2U1ZWM4ZGFhY2MyMThmM2Vh
ZmUyYjIyMjA3OWNlMmRmMDRmN2M0YS4uMjBmMjQ2YmU3Zjc1NjAyOTkzNWRhMTkyYTUyMzVlMDJl
MDg0Y2ZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFR5cGVkZWZzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUo
SlNDOjpWTSYsIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgVGVzdFR5cGVkZWZz
KiB0b1dyYXBwZWQoSlNDOjpKU1ZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2Vs
bCopOwogICAgIH5KU1Rlc3RUeXBlZGVmcygpOwpAQCAtOTMsNyArOTQsNiBAQCBpbmxpbmUgdm9p
ZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgVGVzdFR5cGVkZWZzKikK
IH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFRlc3RUeXBlZGVmcyopOwotV0VCQ09SRV9FWFBPUlQgVGVzdFR5
cGVkZWZzKiB0b1Rlc3RUeXBlZGVmcyhKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU2F0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNhdHRyaWJ1dGUuY3BwCmluZGV4IGJhNDZkOGNjZDUxNzU0OGQ4ZGZhNTlmN2E0MGEz
YWQyYjU5ODZiNDUuLmQxODc2MzNhNWZmYzYxYTU0ZDQxNDlmM2RkMWZmYWVkMDAyZmEwY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJp
YnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
YXR0cmlidXRlLmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgYXR0cmlidXRlKiBp
CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNhdHRyaWJ1dGU+KGdsb2JhbE9iamVjdCwg
aW1wbCk7CiB9CiAKLWF0dHJpYnV0ZSogdG9hdHRyaWJ1dGUoSlNDOjpKU1ZhbHVlIHZhbHVlKQor
YXR0cmlidXRlKiBKU2F0dHJpYnV0ZTo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNhdHRyaWJ1dGUqPih2YWx1
ZSkpCiAgICAgICAgIHJldHVybiAmd3JhcHBlci0+aW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAppbmRleCAyOTdh
ZDI2YjUyNTAyYmI4NGZmNjVhNjY3MGY2Y2E2YzQ0YWM2NTQxLi45ZjVjZGM5MzRiNDcxNzM5ZGQw
Njk4MTMwZDA2Mzg4OTVjN2E1NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuaApAQCAtMzksNiArMzksNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0m
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGdldFBy
b3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOworICAgIHN0YXRpYyBhdHRy
aWJ1dGUqIHRvV3JhcHBlZChKU0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3ko
SlNDOjpKU0NlbGwqKTsKICAgICB+SlNhdHRyaWJ1dGUoKTsKIApAQCAtOTIsNyArOTMsNiBAQCBp
bmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgYXR0cmli
dXRlKikKIH0KIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIGF0dHJpYnV0ZSopOwotV0VCQ09SRV9FWFBPUlQgYXR0
cmlidXRlKiB0b2F0dHJpYnV0ZShKU0M6OkpTVmFsdWUpOwogCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU3JlYWRvbmx5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU3JlYWRvbmx5LmNwcAppbmRleCBlZDRhNDRiNWYwMmQ4NDFmNmJmNGRkYWI5ZDg1OWQ5YTFh
ZDg1MjAzLi44OTAxNDVmZDU2MjkzMTFmNmNkNTNlNzBhZTNmMDQxYzNjYjJmNTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9u
bHkuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCByZWFkb25seSogaW0KICAgICBy
ZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU3JlYWRvbmx5PihnbG9iYWxPYmplY3QsIGltcGwpOwog
fQogCi1yZWFkb25seSogdG9yZWFkb25seShKU0M6OkpTVmFsdWUgdmFsdWUpCityZWFkb25seSog
SlNyZWFkb25seTo6dG9XcmFwcGVkKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoYXV0
byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNyZWFkb25seSo+KHZhbHVlKSkKICAgICAgICAg
cmV0dXJuICZ3cmFwcGVyLT5pbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuaAppbmRleCBiNmVmYTRhNjc4NzI4YjA0OWU4
ZDNmNDg1MzUzZDQ0NzZkYTVlMGY4Li5iNWE0MDk0ODEyYWM1MTk2YTBlNGRjNDVjNWJjMzhmNGUx
NDkxMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNyZWFkb25seS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU3JlYWRvbmx5LmgKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBnZXRQcm90b3R5cGUoSlNDOjpWTSYs
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKyAgICBzdGF0aWMgcmVhZG9ubHkqIHRvV3JhcHBlZChK
U0M6OkpTVmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAg
ICB+SlNyZWFkb25seSgpOwogCkBAIC05MSw3ICs5Miw2IEBAIGlubGluZSB2b2lkKiB3cmFwcGVy
Q29udGV4dChET01XcmFwcGVyV29ybGQmIHdvcmxkLCByZWFkb25seSopCiB9CiAKIFdFQkNPUkVf
RVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqLCByZWFkb25seSopOwotV0VCQ09SRV9FWFBPUlQgcmVhZG9ubHkqIHRvcmVhZG9ubHkoSlND
OjpKU1ZhbHVlKTsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApp
bmRleCBmNmMyMDFkOGMzNjc5NThjMzQyZmViMWRmYTY4MTA3M2JkNWI1NmIxLi45YzhiMzQwNTE1
MTMzOWU3MTk4ZDZkYjZkOTU2NjlkY2JjMTdkZDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTY4
OSw2ICs2ODksMjEgQEAgc3RydWN0IEVsZW1lbnRUeXBlQ2FzdFRyYWl0czxFeHBlY3RlZFR5cGUs
IEV4cGVjdGVkVHlwZT4gewogICAgIHN0YXRpYyBib29sIGlzKEV4cGVjdGVkVHlwZSYpIHsgcmV0
dXJuIHRydWU7IH0KIH07CiAKKy8vIERvd25jYXN0aW5nIGZ1bmN0aW9ucyBmb3IgRWxlbWVudCB0
eXBlcy4KK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdldCwgdHlwZW5hbWUgU291cmNlPgoraW5saW5l
IHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxTb3VyY2U+Ojp2YWx1ZSwg
Y29uc3QgVGFyZ2V0JiwgVGFyZ2V0Jj46OnR5cGUgZG93bmNhc3QoU291cmNlJiBzb3VyY2UpCit7
CisgICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPFRhcmdldCwgU291cmNlPjo6dmFs
dWUsICJVbm5lY2Vzc2FyeSBjYXN0Iik7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElD
QVRJT04oaXNFbGVtZW50T2ZUeXBlPGNvbnN0IFRhcmdldD4oc291cmNlKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxTb3Vy
Y2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0JiwgVGFyZ2V0Jj46OnR5cGU+KHNvdXJjZSk7Cit9Cit0
ZW1wbGF0ZTx0eXBlbmFtZSBUYXJnZXQsIHR5cGVuYW1lIFNvdXJjZT4gaW5saW5lIHR5cGVuYW1l
IHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxTb3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFy
Z2V0KiwgVGFyZ2V0Kj46OnR5cGUgZG93bmNhc3QoU291cmNlKiBzb3VyY2UpCit7CisgICAgc3Rh
dGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPFRhcmdldCwgU291cmNlPjo6dmFsdWUsICJVbm5l
Y2Vzc2FyeSBjYXN0Iik7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIXNv
dXJjZSB8fCBpc0VsZW1lbnRPZlR5cGU8Y29uc3QgVGFyZ2V0Pigqc291cmNlKSk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8c3RkOjppc19jb25zdDxT
b3VyY2U+Ojp2YWx1ZSwgY29uc3QgVGFyZ2V0KiwgVGFyZ2V0Kj46OnR5cGU+KHNvdXJjZSk7Cit9
CisKIGlubGluZSBib29sIE5vZGU6Omhhc0F0dHJpYnV0ZXMoKSBjb25zdAogewogICAgIHJldHVy
biBpc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KHRoaXMpLT5oYXNBdHRyaWJ1dGVzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDM4OWMyYjhhM2I4ZTJmNzg2YWMxM2U4ZTQyMThj
Yjk2YzNmYjhmODguLmNhODM5ZTk4MzAyOGFlNmZmMTM5MjNkMTJkOTg3NDViOGQyMzE5YjAgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC02MzMsNiArNjMzLDcgQEAgc3ViIHByaW50VHlw
ZUhlbHBlcnMKICAgICAgICAgfQogCiAgICAgICAgIG15ICRjbGFzcyA9ICRwYXJzZWRUYWdzeyRu
YW1lfXtpbnRlcmZhY2VOYW1lfTsKKyAgICAgICAgIyBGSVhNRTogUmVuYW1lIHRoZXNlIGhlbHBl
cnMgdG8gaXM8KkVsZW1lbnQ+KCkuCiAgICAgICAgIG15ICRjaGVja0hlbHBlciA9ICJpcyRjbGFz
cyI7CiAKICAgICAgICAgcHJpbnQgRiA8PEVORApAQCAtNjYzLDYgKzY2NCwxMCBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgQXJnVHlwZT4KIHN0cnVjdCBFbGVtZW50VHlwZUNhc3RUcmFpdHM8Y29uc3Qg
JGNsYXNzLCBBcmdUeXBlPiB7CiAgICAgc3RhdGljIGJvb2wgaXMoQXJnVHlwZSYgbm9kZSkgeyBy
ZXR1cm4gJGNoZWNrSGVscGVyKG5vZGUpOyB9CiB9OworCisvLyBGSVhNRTogUmVtb3ZlIHRoZXNl
IG1hY3JvcyBvbmNlIHRoZSBjb2RlIGhhcyBiZWVuIHBvcnRlZCB0byB1c2luZworLy8gZG93bmNh
c3Q8KkVsZW1lbnQ+KCkuCisjZGVmaW5lIHRvJGNsYXNzKHgpIFdlYkNvcmU6OmRvd25jYXN0PFdl
YkNvcmU6OiRjbGFzcz4oeCkKIEVORAogICAgICAgICA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuaAppbmRleCA0NjY5MTYzMjVjZWQ3NmM2YmM5N2Y3ODBjN2M1ODYxNTFm
ZGE5MzZhLi4yMzJiMDI1NjA0M2VhNTZiODVjZDE2ODFmNmQ1ODBiOTE1YjBmOGM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC0xNTUsOCArMTU1LDYgQEAgYm9v
bCBpc0VudGVyS2V5S2V5ZG93bkV2ZW50KEV2ZW50Kik7CiBib29sIGlzTGlua0NsaWNrKEV2ZW50
Kik7CiBib29sIHNob3VsZFByb2hpYml0TGlua3MoRWxlbWVudCopOwogCi1OT0RFX1RZUEVfQ0FT
VFMoSFRNTEFuY2hvckVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEhUTUxBbmNob3JFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5o
CmluZGV4IGFjMDdlOTg2Y2NjNDhhNWFmNGEyMDMzMTE2NGYxMWVkZGY5OGExZTUuLjhkYjc1ODk2
Y2UzNjAzMWE0MzIxMDUzODVmMzNiODM4M2RjZmNlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaApAQCAtNzEsOCArNzEsNiBAQCBwcml2YXRlOgogICAgIFNoYXBlIG1fc2hh
cGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEFyZWFFbGVtZW50KQotCiB9IC8vbmFtZXNw
YWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaAppbmRleCAz
MGQyYThmMzllY2FkYjg4ZjcwMTgyNjE4NDMzYmEwZWRlMGY4NTIzLi43ZTg2NThjODcyMzAyODU1
NGFmNTNmZTY2MzJkYzEzMDVmYTc5ZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBdWRpb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0Vs
ZW1lbnQuaApAQCAtNDMsOCArNDMsNiBAQCBwcml2YXRlOgogICAgIEhUTUxBdWRpb0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCk7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTEF1ZGlvRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCmluZGV4IDQwNTRlMTc1ODZjMjg4MmEyMmQ4NWVm
N2RjNDIwZjUxOWNlMDA0NzguLmI3OTlmMWZhMTg0OTk5NzJmYjAyY2I2NTY2NGE1NzEyYWQ2ODYy
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikg
b3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEJhc2VFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJvZHlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oCmlu
ZGV4IDAxN2VmYzIyY2I3NmY2YzVlNzkyNjRkZDJlOWI1ZDIwM2Y5MTViODIuLjBkNGQ2MGE1NjVh
NmIyYTE5OTZjODY4MzY2MjgxZjhjNDc0YTJlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9k
eUVsZW1lbnQuaApAQCAtODEsOCArODEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBh
ZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IG92ZXJy
aWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxCb2R5RWxlbWVudCkKLQogfSAvL25hbWVz
cGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRl
eCA4ODM3ZDA4MjczMjVkNDNjYjRkNjI5YWE4ZGY2YmVkN2YyZDE1OTQ1Li44YWJkZTc3ZmQ5OWVk
NjZjMzZhOWEzOWE0MWE3MDZkNzg0MjRlMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5oCkBAIC0xODAsOCArMTgwLDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFJl
ZlB0cjxJbWFnZT4gbV9jb3BpZWRJbWFnZTsgLy8gRklYTUU6IFRoaXMgaXMgdGVtcG9yYXJ5IGZv
ciBwbGF0Zm9ybXMgdGhhdCBoYXZlIHRvIGNvcHkgdGhlIGltYWdlIGJ1ZmZlciB0byByZW5kZXIg
KGFuZCBmb3IgQ1NTQ2FudmFzVmFsdWUpLgogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxDYW52
YXNFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEYXRhTGlzdEVsZW1lbnQuaAppbmRleCA2N2ZiMWRiOGQ3NzY4MjFhYzYxN2MxMGRiMGMz
ZmM5OTBkNGM1NjY3Li5jZjFkM2ZmNjIxYzNmYTIwOGVkZTY4YjNhYmU5YTU4YmM4MDUyOTAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaApAQCAtNTAsOCArNTAs
NiBAQCBwcml2YXRlOgogICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTERhdGFMaXN0RWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmIC8vIEVOQUJMRShEQVRBTElTVF9F
TEVNRU5UKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAppbmRleCBj
NDFmNmY0NzFhMDQ2MzBhNzljOWY2ZjQzOTI0ZTYyZTY0OThlN2M1Li4wNzNjZDU5NGQzMDcwODEy
YjliNGFlNjRlODIwZTM1Yjk2YmM3NmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFp
bHNFbGVtZW50LmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNPcGVu
OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEZXRhaWxzRWxlbWVudCkKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTERldGFpbHNFbGVtZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERpdkVsZW1lbnQuaAppbmRleCAxYjVkMjBhZDg4MjNmZjFmY2FjMzFlZGViNjg4
ZTRiZThiODgyNDRhLi5mZjgxYjliODJjYWJmNzZmMWRlMjA0N2Q0ZjU4MTFjNWRhYzViZjBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCkBAIC00MCw4ICs0MCw2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxEaXZFbGVt
ZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MRGl2RWxlbWVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCmluZGV4IGQ5ZmQ0NTIzZTQy
MjM1Yjk3MWRkMTRkNGY4MzFlMmI5ZjQ2YWVkYzAuLmNkZDNiZWNmYmJhN2ViMGRkNzJiMzBiNTk3
ODliZWVkNGJiZWQ1NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVk
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCkBA
IC01Miw4ICs1Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYXJhbWV0ZXJzRm9yUGx1Z2luKFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxFbWJlZEVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCmluZGV4IDdjMTNlYTBkNTNh
M2I5NGZjZGQzNWQyYzY3ODEzNzYyYjVkMmRjYTcuLjNhMDIyMzBkMTE4MjM4N2Y3NGViMzE4YzNl
OWFlOWRjMDdiYmI4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5oCkBAIC02NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSB1aW50NjRfdCBtX2Rv
Y3VtZW50VmVyc2lvbjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRmllbGRTZXRFbGVtZW50
KQotCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxl
bWVudC5oCmluZGV4IGM0NjlkY2VmOGFhNTg2NzI4NDFjMDI4NDEwYjllMGU2NmI3NmYyODAuLmZj
M2RiOWQ5NDhkMmFkNGIwNDcxZjZkYmEzNWJmNDQ2YzQ3MDE5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUVsZW1lbnQuaApAQCAtMjAxLDggKzIwMSw2IEBAIHByaXZhdGU6CiAjZW5kaWYK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MRm9ybUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxGb3JtRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IDU1NzljOTg0ODg0Mzg1NTAyNTJlYmMyYzg3ZWRmNGQ4
NzExZjdlZWMuLjZlNGZiMGZjOTZiZWY2N2I3NzliNmE3YmI5YmMxZDFmNDg2ZWVhOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVyU2V0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhU
TUxGcmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhU
TUxGcmFtZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
aAppbmRleCA4MGU3ZjJhZmUyZmIzMDUyZmI5YzY2ODU0ODJiZDcwNzZlMzhjOGU0Li4yNzI5Mzhj
ZWQyNzgwODJjODAwYmExZDAyODQ3MjdmNTczZmM4OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAtMTAwLDggKzEwMCw2IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX25vcmVzaXplOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxGcmFtZVNldEVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEhUTUxGcmFtZVNldEVs
ZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgKaW5kZXggYjk2NmM4NzBi
ODEyNzkxNmY4YjMyYWQ1MDRjOWZjYmU5MzhmMWIwMC4uMGY4M2I5YTRlYzAzNzkxNGNmOTYzYjBi
ZjE2MGM1OTJjMTI3MTFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRt
bEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oCkBA
IC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRl
KGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxIdG1sRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggOWFlMTkzMjYwYWY0NWJjMDJhMGI1NWFj
MGViYWY1ZjE2NzhlMmY2NC4uZjBlYmNlYzA1MTMzY2Y4YmIwNTdlYTVhZmQwMmFlODIwOGJkZTk3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNDcsOCArNDcs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTElGcmFtZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEhUTUxJRnJhbWVFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmgKaW5kZXggZmQ0NDAxODk4ZDM3M2RmNmIxMGVmZWZjNDRiMzM5OTdlZWFl
ZDU3Zi4uOTlmZTI1YjYxNjNiNzYzMDlmMDY4ZjJkYTYzMWM1ZDk0OThlMmQ1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBwcml2YXRl
OgogI2VuZGlmCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTEltYWdlRWxlbWVudCkKLQogfSAv
L25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
aW5kZXggZTM4ODViY2MzMjFhMTk3ZDlmNTMwZTI1MmRhNTIxODg5Mjc5MDA1ZC4uZDdhNjVjZDZk
MzE2MDI1YmY4Y2VkOTdkOTNkYTUwOTNiNzk5MWU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKQEAgLTQ0OCw3ICs0NDgsNSBAQCBwcml2YXRlOgogI2VuZGlmCiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoSFRNTElucHV0RWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCmluZGV4IGFlYTUyMzdhODUx
M2ZhYmMyMjkyYmNkZjRhNWYwODAzMWIwOGE0NDMuLmNhOGVlNjBiMDU4ZGVjMjZjMjhmM2JmYmU1
YWFhZDc1ZjczNTRiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVs
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCkBA
IC01NSw4ICs1NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVz
dG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbikgb3ZlcnJpZGU7CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoSFRNTExhYmVsRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAppbmRleCAyNDU2OGJkYTQw
M2MyZDNiNThmNTEwNzIwMDY3YmEyZjliNWU1ZDVkLi45MTA0YWJkNjg4NjUxZjNlNTFiNjMwMjI4
MWMwMzE2MTc5OWQ5NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdl
bmRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5o
CkBAIC00NSw4ICs0NSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQq
IHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRN
TExlZ2VuZEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCA0OTcwMWY4NmZlNGU3ZTQzYjExYzI0YmQ3NzU5NWE3
MGM0ZjZmYzgzLi41Y2FjYjc3ZDJhZWE1MTVjMGQ1OWJhNTQ2YTQ3NmI0YThiNjQ3MzBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTEzNyw4ICsxMzcsNiBAQCBwcml2
YXRlOgogICAgIFBlbmRpbmdTaGVldFR5cGUgbV9wZW5kaW5nU2hlZXRUeXBlOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxMaW5rRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaAppbmRleCA5YWU0NDY3Mjg1MmIxMTQwMzA1
ODc3YWY5MjYyZDRiYzMxNmUzZGIyLi42MTdhYTEzNjRmYzIyY2Y0NDA3ODgxOTA1YmJiNGRiMDY5
MjFhMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCkBAIC01NCw4ICs1NCw2
IEBAIHByaXZhdGU6CiAgICAgQXRvbWljU3RyaW5nIG1fbmFtZTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MTWFwRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2VzCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKaW5kZXggZDEwOTgyYjFkYWNlYjM2YTEy
NzRmZmVlYTRiZTE4ZWExZGY5M2EwOS4uOTYzOWU5NjM2MjQyMjRiODgzOGQ5YjIzMDc1OTc2NTc0
MjgzMDVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCkBAIC02
NCw4ICs2NCw2IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyTWFycXVlZSogcmVuZGVyTWFycXVlZSgp
IGNvbnN0OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxNYXJxdWVlRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSFRNTE1hcnF1ZWVFbGVtZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDI1ZDFhNzcxYWFkYTU5OTM3Njlh
NzU5ZTZhMWI2YTA2Nzc1YWEzYTguLjhiZTZkZGE3MDgyMzI0NmQ3M2E4YmU0OWFmMDNiOWViMTBm
OTNhYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaApAQCAtNDQsOCArNDQs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2VzcygpOwogfTsKIAotTk9ERV9UWVBFX0NBU1RT
KEhUTUxNZXRhRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKaW5kZXggOWQ4MjE3MmZiYzI0ZjdlMTdj
ODA4NDIzODc1OGQ0NmNhYTc5ZmQyNi4uYTI4Y2I0NDk2ZTZiMGUwYTZmZWI5NDlhNjQ1MTE2MjJl
ZTMwMGU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgKQEAgLTgxLDgg
KzgxLDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IG1fdmFsdWU7
CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTE1ldGVyRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCmluZGV4IDk4
OWQ3OTU5MjVmMDhlZDIwZTVjMzYxZTg4YzZiNWUzM2ZkNGU1YTkuLjFmMGFhZjE0ZDEyY2RkOTE2
ZTYyNmE5YzE5YWViZGE3MjNiZWE0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxl
bWVudC5oCkBAIC02NSw4ICs2NSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFJlY2Fs
Y3VsYXRlSXRlbUNvdW50IDogMTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MT0xpc3RFbGVt
ZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oCmluZGV4IDJjNDkxOTMzNjM3ZTE1NzVmZGJmZGI2MDIwOWVkNWY4Yzg4ZjVk
NzkuLmY4ZTdhNmUwMjVkMWU3ZjFkZmFmYmU1YjVjNTE2MTk2ZjAwODE3YjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgKQEAgLTEwMyw4ICsxMDMsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV91c2VGYWxsYmFja0NvbnRlbnQgOiAxOwogfTsKIAotTk9ERV9UWVBFX0NB
U1RTKEhUTUxPYmplY3RFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRleCA2ODljZTRiODJmZjJkNGI3MzY1YmNiMDMzOTZh
NzQ3OTNhM2YzZGI0Li41N2EzNzQyOTc1YzNkYjEzNjdmZjgyODgyYTMwNzY0MDM2MmY5MDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaApAQCAtNTQsOCArNTQs
NiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0aW9ucygpOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxPcHRHcm91cEVsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKaW5kZXggNjQ3ZDAxZTMw
NDJiMDhkODQ4ZWZkMTkxNGJmNzkwNTNiYWFjYmNlZi4uNjU0ZWYxMTgzODA4YzQ5MzY5NDBlOGI2
MWVlM2UzOTQ5YjQ4YWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
aApAQCAtODcsOCArODcsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1NlbGVjdGVkOwogfTsK
IAotTk9ERV9UWVBFX0NBU1RTKEhUTUxPcHRpb25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKaW5kZXggNGU4MWQy
ZGE3OWM4MThlNzZiMjI3NGViNWRmZGNmZGZlNzViY2IyYi4uZWQ5YjRlYjBiYjgxOWIyNDBmZjk5
M2Y2YWUxYmVjZGUyN2JhMWNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGFyYW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50
LmgKQEAgLTQzLDggKzQzLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVz
b3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MUGFyYW1FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
aAppbmRleCBlZWRiODgwN2IxNjQwMjczM2NmOWNkNzViNmM1MGIzYjUwYzM4ODQyLi5jN2ZkOTU1
MWE1OGE0Mzk5ZmU3YzFkZGVkZGYzODNjZWVjYWQ4NmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuaApAQCAtNjcsOCArNjcsNiBAQCBwcml2YXRlOgogICAgIFBy
b2dyZXNzVmFsdWVFbGVtZW50KiBtX3ZhbHVlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxQ
cm9ncmVzc0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGI4NTAxYjQ3Mzc2YTZkM2VjZTM2NDhjZjM1
Yjg4MTdmNWM4MDY2MDMuLjY4ZDk2YTNhNjk5MjczNWExZjNiMmNkYjM1MzI4MjliNjIxZWI1ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTY3LDggKzY3LDYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50
V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBF
X0NBU1RTKEhUTUxTY3JpcHRFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGZhOWNiZTQ3OTZmOGM1NzFj
MjNlMjZiZTM3OTU4YTBiMTc4Nzc5YTAuLjI3ZmVmZDYwYjRmY2RiYWMxMzkxZWQ2ZTg5YzlhOGFm
ZjUzNjk2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTIx
Miw4ICsyMTIsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgYm9vbCBtX3Nob3VsZFJlY2FsY0xp
c3RJdGVtczsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MU2VsZWN0RWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTb3VyY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50
LmgKaW5kZXggNTU1ODc1Y2Q0MDE4ZGJiMmZhYTY0ZTdkNTY1YWIxMDgxYWU0ZmVjOC4uNTIyZDc0
MzY4MmRkYTk2ZmM5NzdkNjExOTljYzcxZjU0MzljOWY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNvdXJjZUVsZW1lbnQuaApAQCAtNTcsOCArNTcsNiBAQCBwcml2YXRlOgogICAgIFRpbWVy
PEhUTUxTb3VyY2VFbGVtZW50PiBtX2Vycm9yRXZlbnRUaW1lcjsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhIVE1MU291cmNlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKaW5kZXggOTk1N2JhNTA3MDI4MjFhYmFlZjY4
ZDA3MjJmZTdkNTZmMTY0NDM4MC4uOTFmMGI3Y2Q1OGQ0NjY4OGJlY2Y2NGY0NzAwNTAwMDQzZTIz
Yjg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKQEAgLTcwLDggKzcw
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbG9hZGVkU2hlZXQ7CiB9OwogCi1OT0RFX1RZUEVf
Q0FTVFMoSFRNTFN0eWxlRWxlbWVudCkKLQogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5oCmluZGV4IGZiYWJjZGU1MjU3Y2M2MjMz
M2UwYjMyMWI3MTAzNWJmYmI4MGU4ODUuLmJjMjI4NDIwOTkyN2U2NDkzZmNkMmRkYjIyNGZhMGZi
YjdkOTI5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaApAQCAt
NDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92
ZXJyaWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5RWxlbWVudCkKLQogfQog
CiAjZW5kaWYgLy8gSFRNTFN1bW1hcnlFbGVtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAppbmRleCBmMDY0ZTI4YTk4MDk5NDQ2OGFiMjNjOWY5
ZTE3YjhmMTU1MDU5ZjQ3Li45MDRjMzI3YzIwY2MwYTYyZmJiM2NkZGUxNDQyMDg5NzkwMDE4ODM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBA
IC00MSw4ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKaW5kZXggZTU5NmFiNDIw
YTA2MDkzNDczMGU1ZGYxZGZmNzYzMjFmYTZkYmU4MS4uODczZGYyNWMxOTY5MTA2ZGFmZDM5NmU4
OGI4ZGFlNTRkMzg0ZTI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgK
QEAgLTEwMSw4ICsxMDEsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTdHlsZVByb3BlcnRpZXM+
IG1fc2hhcmVkQ2VsbFN0eWxlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKEhUTUxUYWJsZUVsZW1l
bnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlUm93RWxlbWVudC5oCmluZGV4IDMzOGI4Nzk5NzAyNTdkMGU4YWE5NWE5YzFlM2E2ZTEwM2Mz
ZTEzZjMuLmM0YjBmNzczOWNmYjJjMzQ5Y2QzNDdlYjg1ZmEwZjE5ZWM3ZTE3NjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5oCkBAIC01Miw4ICs1Miw2IEBAIHBy
aXZhdGU6CiAgICAgSFRNTFRhYmxlUm93RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGFibGVSb3dFbGVtZW50KQotCiB9
IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVF
bGVtZW50LmgKaW5kZXggZDdmZjk1MWI3YzhkMjI4NGE4MjFhNmYyN2IxYTgyNDcyMWZiYjUzNS4u
YzgxZjdhNjZjNDgwNGE1ZjdmNWJkNzczM2ExZjA4NmExODc0NmFhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKQEAgLTU2LDggKzU2LDYgQEAgcHJpdmF0ZToK
ICAgICBtdXRhYmxlIFJlZlB0cjxUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50PiBtX2Nv
bnRlbnQ7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoSFRNTFRlbXBsYXRlRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCmluZGV4IGE4MDFmOTli
OWZjZTdkNTFiNzYzNDgxMTA1NDRhNGFkMGE1MDI2ZTIuLmJlZGQwYTFmNzA4NWI2NjlhOGY4M2Ux
ODg2OTQ0OWU0ZDZlMDI3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5oCkBAIC0xMjYsOCArMTI2LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIGJvb2wgbV93
YXNNb2RpZmllZEJ5VXNlcjsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1MVGV4dEFyZWFFbGVt
ZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGl0bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRs
ZUVsZW1lbnQuaAppbmRleCBlYmUxZDNjYzUwOGI2OGZjODdmNjM0OGE3MzE2YzhjNTJiZThkM2Ew
Li41ZGUxZWI1NGZlOGUwM2RhNzMwNzU2YmY2OTc1ZDgyNTZlNmVlYjJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaApAQCAtNDYsOCArNDYsNiBAQCBwcml2YXRlOgogICAg
IFN0cmluZ1dpdGhEaXJlY3Rpb24gbV90aXRsZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhIVE1M
VGl0bGVFbGVtZW50KQotCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCA4MzE3MTdiNGJkNmJiOTJiOGQ0MjlkMWU5Y2QxOGJi
ZTIyYjdjZWRjLi41MjZkYzAzY2MxODViZjdlMjg3YjUwZmQwZGFhODE5MmMxODE3YzQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtOTQsOCArOTQsNiBAQCBwcml2
YXRlOgogICAgIFRpbWVyPEhUTUxUcmFja0VsZW1lbnQ+IG1fbG9hZFRpbWVyOwogfTsKIAotTk9E
RV9UWVBFX0NBU1RTKEhUTUxUcmFja0VsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IGM0ZDRmOWQwMWNkMWNmMTFiNzc3YzJhOGIw
Zjg1ZGY1OWJjYWJmMjQuLjc2ZjAxNjU2ZTk5OWU1M2M5ZTYwYmI3NzU0YmUxYTUwYjE5MTFmYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0xMDIsOCArMTAyLDYg
QEAgcHJpdmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0UG9zdGVyVVJMOwogfTsKIAot
Tk9ERV9UWVBFX0NBU1RTKEhUTUxWaWRlb0VsZW1lbnQpCi0KIH0gLy9uYW1lc3BhY2UKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApp
bmRleCBmZDdlOTIzODg0NGRiOGE3ZmJlNDg3NTgxODRhYzZkNTFmMDI3YzVmLi5kMmRmNGE4N2E0
ZTBlN2Q2Y2QxOTc4ZDRmY2M4NTUxZjlkNDljMmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTIwMTAsNyArMjAxMCw3IEBAIE5vZGUq
IEluc3BlY3RvckRPTUFnZW50OjpzY3JpcHRWYWx1ZUFzTm9kZShEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSB2YWx1ZSkKICAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaXNOdWxsKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIHRvTm9kZSh2YWx1ZS5qc1Zh
bHVlKCkpOworICAgIHJldHVybiBKU05vZGU6OnRvV3JhcHBlZCh2YWx1ZS5qc1ZhbHVlKCkpOwog
fQogCiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUFzU2Ny
aXB0VmFsdWUoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IGRjNjljMTFiMTRlZDhj
NmZmNDQzNmE4NzBkZGU4NDRjMTVlMDM5YmMuLmVlOTczMzUwYjcyZWMzYTFiODczMWIyNTFjOTQ4
NWY3ZGI0Mzc5MTkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5j
bG9zZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VF
bGVtZW50LmgKQEAgLTUwLDggKzUwLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNSYWRpY2Fs
VmFsdWU7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoTWF0aE1MTWVuY2xvc2VFbGVtZW50KQotCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEds
eXBoRGVmRWxlbWVudC5oCmluZGV4IGFjYjJmMzUwYTczN2QzNmNkODdiNTZkMjMwYThhZDMxZTIx
Y2RmOGEuLmM2M2UzNDM3MzUxMDg3NThhZmM4ZWU5ZTMxY2VmYjQyZGEwMGIyNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKQEAgLTM4LDggKzM4LDYgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJT
dHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHQWx0R2x5cGhEZWZFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FsdEdseXBoRWxlbWVudC5oCmluZGV4IDUwOTVhYjUzYTU1NmYxZWUxMjI3NGUxYzNkMThmZTI2
NjdhZGUzZTUuLjZiZTlmNzUyYzEwNWI4NmE4NGIxNzkxYTM2NjVlZTdiODJjYjI3NDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJp
dmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHQWx0R2x5cGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmgKaW5k
ZXggODI0OWNiODBiM2QwNmNmMzU5N2ZkMzhkMzgwMzkyNWQyYmZhMDhjNS4uYzdhZmU2OTVjZTU3
MzQ5NDIyNWQ5OTY2ZjhjNGJkYTY1NWQzMWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QWx0R2x5cGhJdGVtRWxlbWVudC5oCkBAIC0zOCw4ICszOCw2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FsdEdseXBoSXRlbUVs
ZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5oCmluZGV4IDM2Njc4MTRhMzIxOTBkMjIyNzhmODc3NGIxMzczZGQ2YTM2MzA3
YzkuLjQxN2Q1ZjI3NWU2NzY4NzZhNjI0ZGE3Y2U5MjM3NGVjOTc3YjNlMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCkBAIC03MCw4ICs3MCw2IEBA
IHByaXZhdGU6CiAgICAgUGF0aCBtX3BhdGg7CiAgICAgUGF0aCBtX2FuaW1hdGlvblBhdGg7CiB9
OwotCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQpCiAgICAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmgKaW5kZXggYmRjZmY3MGRlNTE4ZDAwM2IzYzU4YzZjZmU5Y2U5MWQz
ZTY5ZWE5YS4uYjFhNDRlYWViMDU3MjBlN2Y2NDhjN2JjYzgyN2Y0YTVmMGUzYTM5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKQEAgLTQ3
LDggKzQ3LDYgQEAgcHJpdmF0ZToKICAgICBTVkdUcmFuc2Zvcm06OlNWR1RyYW5zZm9ybVR5cGUg
bV90eXBlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAppbmRleCAwNzlm
YTk5ZmNmOTgzZmNkNDVmOTNhNzYzMWQ5YThkN2NlNTY2NzhhLi5lYzE4MmRiM2MyZDJiYzcxYjQ0
OTQ4NDkyYjFkNDdjNmNlNjVhZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q2lyY2xlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50
LmgKQEAgLTU0LDggKzU0LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9Q
Uk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ2lyY2xlRWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1ZHQ2lyY2xlRWxlbWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKaW5kZXggOGZkZWIwMmI2OTRlNTZjM2Jj
MzYwNjIwYzEwNDlkMDAwMWMxNTU5Ny4uOTM4Y2ZiNDVkOTJlNDIwMmE0NjUyNTRmMzlkNTZlZTQ0
OWJhZmEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaApAQCAtNTYs
OCArNTYsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMK
IH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdDbGlwUGF0aEVsZW1lbnQpCi0KIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAppbmRleCBhNTMwMWU0NjIyZmE1NmY5
MmEwN2JjNDIyYTg1NTljM2I1MDQ4MDdlLi5lYTIyM2U4YTRiZGFmYWEyYTI5YjhmMGVjOTQ5N2Mw
Mzg0ZmE1YTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKQEAgLTcyLDgg
KzcyLDYgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFNWR0VsZW1lbnQqPiBtX2NsaWVudHM7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHQ3Vyc29yRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKaW5k
ZXggZDZiMjBmNjJiMmM1NzVmZmNmZjIzNDAzMDk3ZjM0NmUxZDYzMzM1MS4uNWI5ZjkyYzMwMWRj
ZDljYjFkNzJlMjkxNDFkNTAzNDNiOGM0NGJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlw
c2VFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRWxsaXBzZUVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmgKaW5kZXggNzk5ZjZkNWY5YTc0NzRiYzgy
ZTU3NmFjYTMzZDRiN2YwNDZlMTliNS4uNjBlYTQ0MzZlYWMzYzYwNTk4YWFjYzQ0NTFkNWUxMTg4
MjAxYmViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1l
bnQuaApAQCAtMzQsOCArMzQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxM
aWdodFNvdXJjZT4gbGlnaHRTb3VyY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKLU5PREVfVFlQ
RV9DQVNUUyhTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5oCmluZGV4IDMx
ZWJiNGY3OGNjNGIzMmUxMmE3NzliODI3NTI5NDBjMTUzMDRiOWMuLmE0ZTZhZDVhZjQzYzE0MDJi
ZDBhZmQ2YjY5MjBmOTQ2MmM4MjBkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNBRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxl
bWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jQUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHRkVGdW5jQUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCmluZGV4IDM1YmM0NDg1ODI1OGNlMmRh
N2M2MDE1NTM4MjJmOTBiYjUzY2I2MzguLmFmNDlkNmY3ZGRmNTE1OWVmODY3MWY5Y2EzYzJmNWI4
NDJlMGJkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCkBAIC0zMyw4
ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVGdW5jQkVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jQkVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNHRWxlbWVudC5oCmluZGV4IDM5ODU3ZWRhMTA1NGQ1OTI1MmM3NzNkYmFmMDFjODk4
OGYyZDRlYWYuLjFhZmE0MzI0MTkwODkxZTkyZjRmNzhkMzkwNTFlZTdkZjEyOTM4MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZh
dGU6CiAgICAgU1ZHRkVGdW5jR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRkVGdW5jR0VsZW1lbnQpCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVGdW5jUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVu
dC5oCmluZGV4IDllNzMyN2M3MzMzNDEwZDM3N2Y5ZTJkMWYxZmEzMzI0NDczOGU2YmIuLmIwZDBl
YjUxYTBmNjY0MDZkZmMyYmNjZDJmZDZlMjVhMGJhZjBlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNSRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVG
dW5jUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHRkVGdW5jUkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKaW5k
ZXggNTE1OTdlYjU3OWY3MmNmNmMzZWFhMjliNDc4MzIxZjIxMDZkMDEwZi4uNzIzM2YyMzRlZGVk
NjY1OGEwZjNlNjMyZjY2MzIzYWJkZWZmZWQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RU1lcmdlTm9kZUVsZW1lbnQuaApAQCAtNDQsOCArNDQsNiBAQCBwcml2YXRlOgogICAgIEVORF9E
RUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGRU1l
cmdlTm9kZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaAppbmRleCBiNzAxYmU1OTNi
OTdjZDYxYWU5Nzc1N2M5NjQ5MzNhOGViY2ZlYWNmLi4zNDU3OTI0ZmJkNjUwYTg1MjEyOGZiYTE2
ZmQ3OTc0NzU5NjEyNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2lu
dExpZ2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRF
bGVtZW50LmgKQEAgLTM0LDggKzM0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8TGlnaHRTb3VyY2U+IGxpZ2h0U291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHRkVQb2ludExpZ2h0RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RM
aWdodEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQu
aAppbmRleCA4MDM5YWYyZjE1MGUwY2U3ZjBkZTcwZDg5Y2RlYjgwYjc3OTBmOTNlLi5mZjZiNDhj
NWVjMWI0NWU3NjViYzkzMGU4NmFkNDQyZjFkYTYxNmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCkBAIC0zNCw4ICszNCw2IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPExpZ2h0U291cmNlPiBsaWdodFNvdXJjZSgpIGNvbnN0IG92ZXJy
aWRlOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZFU3BvdExpZ2h0RWxlbWVudCkKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5oCmluZGV4IDhlYTczZmI2NjE2MmNhZDc5Mzk5MjYxY2RlN2Y3ZWI4MzlmMjQzMmYuLjE5
MzllMzE3ZjdmMDA0ZDA2ZDhkNDdlNDIyNmI5ZjBhMGQzYzNkODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNzUsOCArNzUsNiBAQCBwcml2YXRlOgogICAgIEVORF9E
RUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGaWx0
ZXJFbGVtZW50KQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaApp
bmRleCA4ZTQyNzRkZDBjYjNjM2Q1ODA1MWI3ZTdjYmViMDliNzdjZmE5MjY5Li5lYjVjNDZlMDRj
ZTUyNGZmODAwZDg1NmRiODNiMDlkMjY4ODU5MTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVs
ZW1lbnQuaApAQCAtMTAyLDggKzEwMiw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzR2x5cGhD
YWNoZVZhbGlkOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRFbGVtZW50KQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCmluZGV4IDZhMjExNmE5NWJmODA0NTRkOGM3
MjczOWI3ZTY4ZTNmOGFiODJhMjMuLmRjZDAxZjI0YTIzMDJhZDc3NTc5ZjYyN2YyMGE0YjFmZDE3
MGVmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgKQEAgLTY2LDgg
KzY2LDYgQEAgcHJpdmF0ZToKICAgICBTVkdGb250RWxlbWVudCogbV9mb250RWxlbWVudDsKIH07
CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAppbmRleCAzZjI1NDQ1ZmFhYjY0ODE1N2Q4MGU4
MjM3NTFiMTUyMzc4MTA5YzIyLi5jNjg1ZjhhYzQzMWY5Mjk0MGVjYTQzOTAwZjAyNWI0M2UyZGJj
NGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgKQEAg
LTM5LDggKzM5LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1O
T0RFX1RZUEVfQ0FTVFMoU1ZHRm9udEZhY2VOYW1lRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaAppbmRleCAzYjA5MTRjMTJmM2Q5YTk5MmNmNTE0YzFi
NDYxMzAwNzJlNTI1MWVjLi5iYTVhNjQ0NmJiZTFhZDFjZjM3OTY1NjBlM2E3ZThmNjk5MzMyN2Rl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCkBAIC00MCw4
ICs0MCw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR0ZvbnRGYWNlU3JjRWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZVVyaUVsZW1lbnQuaAppbmRleCAxODlhNzg5NWFjM2QzNTFjZTNkM2I2Y2I0MmRiYTc5
NTM0NjY1M2M0Li4zNTBmMWZkMWEzYWMyZGJkOTZhZjAxN2I2ODAzYjlhYmI5N2I0NTQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCkBAIC01MCw4ICs1MCw2
IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4gbV9jYWNo
ZWRGb250OwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlVXJpRWxlbWVudCkKLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWR19GT05UUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKaW5kZXggNzViYjc0
YjdlMjcxMGIzYjA5NzkxYjkxZDFiMDIxYjUxMDYyMmYwYy4uYWI0ZDFhZmM2YmE5ZmRiMDY4M2E0
ODk3ODZiYTUxNzdkMTgwZTIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LmgKQEAgLTU4LDggKzU4LDYgQEAgcHJpdmF0ZToKICAgICBFTkRfREVDTEFS
RV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKaW5kZXggN2I3ZDM4YTEwZmE1NDBhNWIzNTVlM2FhM2E4
YjIwZDI0N2Y0NjhjMy4uNDAwOWZiNjYyMzI2NTNlZjgxMWM3MzlkZmFlN2I2Y2I3YTE1MGJhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaApAQCAtNTcsOCArNTcsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZUdseXBoQ2FjaGUoKTsKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdHbHlwaEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShTVkdfRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R2x5cGhSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50
LmgKaW5kZXggNmQ4Y2FjN2ViNzdmYzJmOWYwMjM3OTU3M2I2ZDYxODdmNDYzNDUzMy4uNDY0ZmVl
Y2UzMWMyODc1NWUxZTJhMzhiOTMxNjY4NDNkYTdjMzI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHbHlwaFJlZkVsZW1lbnQuaApAQCAtNjEsOCArNjEsNiBAQCBwcml2YXRlOgogICAgIGZsb2F0
IG1fZHk7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHR2x5cGhSZWZFbGVtZW50KQotCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCmluZGV4IGU1ZDhiNzhmZDM4
M2M4NDMzZWE2ZWQ0NDdkODgyNTViODMwMDc4N2EuLjFjMTllMDU5YjdkYTVkZjYxYzFjNjk2NDQ0
OTA0YmM2YjE4Y2FiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgKQEAgLTQy
LDggKzQyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHSEtlcm5FbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5oCmluZGV4IDFhMzYxYzVjODNlMjI3NzM1Njg3NTA2ZDgyNmQzN2U3OTAyOWJkYjcuLjE3Njc2
MWRhOWViYWQwY2U0ZTE2Njc5NDA3OGM1NzgxZWZkOTZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SW1hZ2VFbGVtZW50LmgKQEAgLTcyLDggKzcyLDYgQEAgcHJpdmF0ZToKICAgICBTVkdJbWFnZUxv
YWRlciBtX2ltYWdlTG9hZGVyOwogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR0ltYWdlRWxlbWVu
dCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVFbGVtZW50LmgKaW5kZXggNjRlNzg2MzY2MmUwYjUxNDA1ZDg0YTg5MDY5MjUzODViNGZmMTU5
OS4uNTNmZWFkNjU2MDQ1MTRmZmIxYzVjZmEwZmU5NjA2ZDI1YTUzZTgwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVFbGVtZW50LmgKQEAgLTU1LDggKzU1LDYgQEAgcHJpdmF0ZToKICAgICBFTkRf
REVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHTGlu
ZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggNjhhYzZiODQzZDcw
MGY3NjAyZWVmNjQ0NTI5YmYwYTJkZmRkOGM0Yy4uNDZkOTJkZTMxYjcwNGE2ZWU0MTNiNjNiYTBh
ZGQyZmFhOGE1MjM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQuaApAQCAtNTQsOCArNTQsNiBAQCBwcml2YXRlOgogICAgIEVORF9ERUNMQVJFX0FO
SU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTVBhdGhFbGVtZW50LmgKaW5kZXggOTczMjY0OGEwYzVkMDUxMmQyY2Y3ZTc1MzRkN2Yx
YTFjODJiMGVhOS4uMWJlNjRhNjcwNmU4ZWFkYTA5ZDIwMWU4NjI0NDRiMWVjNjQ3NTEwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBwcml2YXRl
OgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdNUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIFNWR01QYXRoRWxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaApp
bmRleCAxYjkzMGU2M2M5MGExY2FkNWQyNmVmYzFjNTQ5MmZjY2FkZmZiYmIwLi5iNTIyY2I3YmE2
MmU1NWZhMjI4N2Y0ZTc0ZTAzODBjMDg0YzM0MGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmgKQEAgLTE2NCw4ICsxNjQsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgU1ZH
U3luY2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFNWR01hcmtlck9yaWVudFR5cGU+IG1fb3Jp
ZW50VHlwZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdNYXJrZXJFbGVtZW50KQotCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAppbmRleCBmNTBhOTQ2OWRiZTk0
NGYxMTcwMTNhZWU1MmJhOTkxMmUxNDhjYzQ1Li4yMmVkZGJjZDNmNmY1N2Q2Y2Q0YmRiMDMzNTUz
MzMyOWUyMDMxZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaApAQCAtNjgsOCAr
NjgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVN5c3RlbUxhbmd1
YWdlKCkgb3ZlcnJpZGUgeyBTVkdUZXN0czo6c3luY2hyb25pemVTeXN0ZW1MYW5ndWFnZSh0aGlz
KTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01hc2tFbGVtZW50KQotCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgKaW5kZXggZjU2
MzdlZTkyNTU3NDZhMWQ3YWE1MDQ2NmY0MWY5MWZkN2I1ZTNkZC4uOTRhNDI2N2UwZDcxOWUyOTYy
NjcyMmFkOWI2MGU1Y2MzMzY0YzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01pc3NpbmdHbHlwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudC5oCkBAIC0zNiw4ICszNiw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogfTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR01pc3NpbmdHbHlwaEVsZW1lbnQp
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9OVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDAyMWI2ZjEwODY2MTgxYjRhOTli
NDY5YzIzZTQ0MjAwZmY4ZTA2M2QuLmI2NGI0YzVlZjYxNTRhZjlhNDcxZWRjYjY2MDZiOTlhYjRh
YTBkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0xMjksOCArMTI5LDYg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faXNBbmltVmFsT2JzZXJ2ZWQ7CiB9OwogCi1OT0RFX1RZ
UEVfQ0FTVFMoU1ZHUGF0aEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCmluZGV4IDIyYzdjMjAyMmVi
MzQ3YzEyMTExZDM5MDFkZDgzYzVkYjg3MjlmMDIuLjQ5MmNkNjgxN2E4MDU1Y2U5NTkxNjhiNTBk
NmM1MTQ0ODc5MTU4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJu
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBA
IC04Niw4ICs4Niw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lz
dGVtTGFuZ3VhZ2UoKSBvdmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1
YWdlKHRoaXMpOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUGF0dGVybkVsZW1lbnQpCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5
Z29uRWxlbWVudC5oCmluZGV4IGE2MmRlMjAwZjNkYmRlMzVmZTVmNWQxOWZiMDAyMWU5OGRiNzVl
OWQuLmQ5MGRkYWJmYWQ2YjExY2I4ZTdjYmY5MmUxZDU0YzNlZjk0MTlhZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCkBAIC0zMyw4ICszMyw2IEBAIHByaXZhdGU6CiAg
ICAgU1ZHUG9seWdvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiB9
OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHUG9seWdvbkVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9s
eWxpbmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmgK
aW5kZXggNGI1ZTg0MWY3NzE4ZTZjYzgwYmNjYzQ1OWI2MDllYTJiZjMyNWRiYS4uYTA5MWVjNjRl
OTVkMmI1YmY4NjFkNWY4NjEzMDBiZGVkN2M5Njg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2x5bGluZUVsZW1lbnQuaApAQCAtMzMsOCArMzMsNiBAQCBwcml2YXRlOgogICAgIFNWR1BvbHls
aW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKLU5PREVf
VFlQRV9DQVNUUyhTVkdQb2x5bGluZUVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LmgKaW5kZXggZTU2ZmIyZmQxNzgzMDlhYmVjYjllOTk2OTBkMjcwN2VmODI0OWUwZi4uMTJiZjRl
ZDFiY2NlMjI5OTZjMmVhMzJjNzdmM2MyNDRlYWJhY2M2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTYsOCArNTYsNiBAQCBwcml2YXRl
OgogICAgIEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIH07CiAKLU5PREVfVFlQRV9D
QVNUUyhTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCmluZGV4IDcyZWI4NzU4MDFj
MDU0NDg3YWQ3OTNiOTQ1NWZiYjI4ZDFhMzdjOWYuLjNjZWU4ZDkzMGZiZDI3NmZmZjY3OTZhNWMw
NjFmM2M1YzdlMDY2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCkBAIC01OCw4
ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgRU5EX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUwog
fTsKIAotTk9ERV9UWVBFX0NBU1RTKFNWR1JlY3RFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5kZXggZWZiNDJl
ZGRjODMzNzg0YTMyODhmZTJhNGQzODBhNDNlZjRkNzg4My4uMjc4MjI3MmVlMDQ1YTM1MTIyOTE1
MDBjNWUzOTBmMTQ3NzFmZmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0x
NzUsOCArMTc1LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U1ZHVmlld1NwZWM+IG1fdmlld1Nw
ZWM7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU1ZHRWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmlu
ZGV4IDU3MmY3OWRlZmYxNDUzMTRjODZhMzVmYzg5MGJmYTA4YTE0YTFmYjUuLjlhY2RiZGIxYjBh
ZGYzNzU0MTQ3NjUxYmQ3YjQzMTAyY2I1NTE3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuaApAQCAtODYsOCArODYsNiBAQCBwcml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1l
bnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHU2NyaXB0
RWxlbWVudCkKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0b3BFbGVtZW50LmgKaW5kZXggZDg3OWI0ZTkyZTkyMWFlZDc3YTcwMDc1MGE3ZjZlYWY3
NjI5YjBmNi4uN2RhMzdjNmI4MWExNTliNTVkYWZmYjUxMzc0ZjcwOTI2NGRlMTA2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKQEAgLTQ5LDggKzQ5LDYgQEAgcHJpdmF0ZToKICAg
ICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMo
U1ZHU3RvcEVsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKaW5kZXggNmE5MWUzODhjOTVkOTdmZTgxNjE3NjJm
NDQ4NTRlNGJlYzBkZjM0YS4uMWU3MzE3NTI1ZmM3ZGI3NTU4OGQ1M2I4YzM0NzI5ZGMzYTUyMWRk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaApAQCAtNjgsOCArNjgsNiBAQCBw
cml2YXRlOgogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2ZW50VGltZXI7CiB9Owog
Ci1OT0RFX1RZUEVfQ0FTVFMoU1ZHU3R5bGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBTVkdTdHlsZUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVs
ZW1lbnQuaAppbmRleCBhOGMwYjcyMzAyN2YxZGJiNGVlZGVlNWQwZDljNzY3MzY5MWM2NTU0Li40
MzA4NGQ1YzkzZWMxOTk2NmZkNTY3MGQxZmJjYTk4MjUwNjY2MmM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dEVsZW1lbnQuaApAQCAtMzgsOCArMzgsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlk
ZTsKIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdUZXh0RWxlbWVudCkKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQu
aAppbmRleCAwYTRmZjY3NGY4YzgyMGE2NjBhZmQ3OWE1ZjQyOGU4NWNhYjQ4YjhiLi5mMjQ0YmMz
NzMyN2Q0NDcyNDQ0YTkwNmRhOGI3NzY5NDdmZTQyZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRQYXRoRWxlbWVudC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgcHJpdmF0ZToKICAgICBFTkRf
REVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZHVGV4
dFBhdGhFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCmluZGV4IGM4NGE2MDMyN2NmNTZkMDY1MmY0YzRjOTU2
YmRmNjJiMzE4ZWUyNDYuLjA3NWIyMzliODE4YzVhM2U5YjQ3YzM1Y2YzODM1ZjhiZTE4ZWI0Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKQEAgLTQwLDggKzQwLDYgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCi1OT0RFX1RZUEVfQ0FTVFMoU1ZH
VGl0bGVFbGVtZW50KQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdVc2VFbGVtZW50LmgKaW5kZXggM2YxMGVlOTg5OGQ1NjE3NmE2ZmUwMzQwYTkxMTcw
NzUwMmJmMjc1MS4uYjczMmYxOGYyMjM2MWQxOTJkM2ZhMjY3ZWU4MTY3ZDIxZGFlZTRhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCkBAIC0xMjgsOCArMTI4LDYgQEAgcHJpdmF0ZToK
ICAgICBUaW1lcjxTVkdFbGVtZW50PiBtX3N2Z0xvYWRFdmVudFRpbWVyOwogfTsKIAotTk9ERV9U
WVBFX0NBU1RTKFNWR1VzZUVsZW1lbnQpCi0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vktlcm5FbGVtZW50LmgKaW5kZXggY2U4OGRlNWI0MGY3MWI3NGJiODQ2YzlhZDUwOWY4ZTVmYjc3
NGUxMy4uMTgwYmM3NmQwM2QxNzJhYTg0YWVkN2FiMzEzOTU2OTYzMDkyYzI4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaApAQCAtNDEsOCArNDEsNiBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKLU5PREVfVFlQRV9DQVNUUyhTVkdWS2VybkVsZW1l
bnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkdfRk9O
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCmluZGV4IDI1MWQ3MzAzOTEzNTk1NDI2
ZjUxZWY2MjllNDZhYTVmZTM1NjUwOGUuLjRiNDRkOWM5NDY4NzNlMjZhNTkyMDU4MWYyYjNlMjJk
YjZhMmIzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCkBAIC02NSw4ICs2NSw2
IEBAIHByaXZhdGU6CiAgICAgU1ZHU3RyaW5nTGlzdCBtX3ZpZXdUYXJnZXQ7CiB9OwogCi1OT0RF
X1RZUEVfQ0FTVFMoU1ZHVmlld0VsZW1lbnQpCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4
cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4
IGVkNDA4ZDY3ZWIwOWViMTk2ODkzNGM5ZGY5YTA1MzU1NGE5NDIyMDYuLmZiZTgzOTRiZTQ4Yjdm
ZjBiY2MyMWY2ZmRhYjEwMTNiY2Y5MTFkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dl
YktpdEV4cG9ydHMuZGVmLmluCkBAIC0xNTMsNyArMTUzLDcgQEAgRVhQT1JUUwogICAgICAgICBz
eW1ib2xXaXRoUG9pbnRlcig/PzBIaXRUZXN0UmVzdWx0QFdlYkNvcmVAQFFBRUBBQlZMYXlvdXRQ
b2ludEAxQElJSUlAWiwgPz8wSGl0VGVzdFJlc3VsdEBXZWJDb3JlQEBRRUFBQEFFQlZMYXlvdXRQ
b2ludEAxQElJSUlAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2lzUmVwbGFjZW1lbnRP
YnNjdXJlZEBSZW5kZXJFbWJlZGRlZE9iamVjdEBXZWJDb3JlQEBRQkVfTlhaLCA/aXNSZXBsYWNl
bWVudE9ic2N1cmVkQFJlbmRlckVtYmVkZGVkT2JqZWN0QFdlYkNvcmVAQFFFQkFfTlhaKQogICAg
ICAgICBzeW1ib2xXaXRoUG9pbnRlcig/PzFSYW5nZUBXZWJDb3JlQEBRQUVAWFosID8/MVJhbmdl
QFdlYkNvcmVAQFFFQUFAWFopCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b05vZGVAV2Vi
Q29yZUBAWUFQQVZOb2RlQDFAVkpTVmFsdWVASlNDQEBAWiwgP3RvTm9kZUBXZWJDb3JlQEBZQVBF
QVZOb2RlQDFAVkpTVmFsdWVASlNDQEBAWikKKyAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3Rv
V3JhcHBlZEBKU05vZGVAV2ViQ29yZUBAU0FQQVZOb2RlQDJAVkpTVmFsdWVASlNDQEBAWiwgP3Rv
V3JhcHBlZEBKU05vZGVAV2ViQ29yZUBAU0FQQVZOb2RlQDJAVkpTVmFsdWVASlNDQEBAWikKICAg
ICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBQUVAQUJWRmxv
YXRSZWN0QDFAQFosID8/MENsaWVudFJlY3RAV2ViQ29yZUBAQUVBQUBBRUJWRmxvYXRSZWN0QDFA
QFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD8/MENsaWVudFJlY3RAV2ViQ29yZUBAQUFF
QEFCVkludFJlY3RAMUBAWiwgPz8wQ2xpZW50UmVjdEBXZWJDb3JlQEBBRUFBQEFFQlZJbnRSZWN0
QDFAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD8/MENsaWVudFJlY3RAV2ViQ29yZUBA
QUFFQFhaLCA/PzBDbGllbnRSZWN0QFdlYkNvcmVAQEFFQUFAWFopCkBAIC0zMTAsOSArMzEwLDgg
QEAgRVhQT1JUUwogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dGV4dEBSYW5nZUBXZWJDb3Jl
QEBRQkU/QVZTdHJpbmdAV1RGQEBYWiwgP3RleHRAUmFuZ2VAV2ViQ29yZUBAUUVCQT9BVlN0cmlu
Z0BXVEZAQFhaKQogICAgICAgICA/dGV4dGFyZWFUYWdASFRNTE5hbWVzQFdlYkNvcmVAQDNWSFRN
TFF1YWxpZmllZE5hbWVAMkBCCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90ZXh0Q29udGVu
dEBOb2RlQFdlYkNvcmVAQFFCRT9BVlN0cmluZ0BXVEZAQF9OQFosID90ZXh0Q29udGVudEBOb2Rl
QFdlYkNvcmVAQFFFQkE/QVZTdHJpbmdAV1RGQEBfTkBaKQotICAgICAgICBzeW1ib2xXaXRoUG9p
bnRlcig/dG9Eb2N1bWVudEBXZWJDb3JlQEBZQVBBVkRvY3VtZW50QDFAVkpTVmFsdWVASlNDQEBA
WiwgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQRUFWRG9jdW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBa
KQotICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9ET01TdHJpbmdMaXN0QFdlYkNvcmVAQFlB
P0FWPyRQYXNzUmVmUHRyQFZET01TdHJpbmdMaXN0QFdlYkNvcmVAQEBXVEZAQFBBVkV4ZWNTdGF0
ZUBKU0NAQFZKU1ZhbHVlQDVAQFosID90b0RPTVN0cmluZ0xpc3RAV2ViQ29yZUBAWUE/QVY/JFBh
c3NSZWZQdHJAVkRPTVN0cmluZ0xpc3RAV2ViQ29yZUBAQFdURkBAUEVBVkV4ZWNTdGF0ZUBKU0NA
QFZKU1ZhbHVlQDVAQFopCi0gICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0VsZW1lbnRAV2Vi
Q29yZUBAWUFQQVZFbGVtZW50QDFAVkpTVmFsdWVASlNDQEBAWiwgP3RvRWxlbWVudEBXZWJDb3Jl
QEBZQVBFQVZFbGVtZW50QDFAVkpTVmFsdWVASlNDQEBAWikKKyAgICAgICAgc3ltYm9sV2l0aFBv
aW50ZXIoP3RvV3JhcHBlZEBKU0RvY3VtZW50QFdlYkNvcmVAQFNBUEFWRG9jdW1lbnRAMkBWSlNW
YWx1ZUBKU0NAQEBaLCA/dG9XcmFwcGVkQEpTRG9jdW1lbnRAV2ViQ29yZUBAU0FQQVZEb2N1bWVu
dEAyQFZKU1ZhbHVlQEpTQ0BAQFopCisgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b1dyYXBw
ZWRASlNFbGVtZW50QFdlYkNvcmVAQFNBUEFWRWxlbWVudEAyQFZKU1ZhbHVlQEpTQ0BAQFosID90
b1dyYXBwZWRASlNFbGVtZW50QFdlYkNvcmVAQFNBUEFWRWxlbWVudEAyQFZKU1ZhbHVlQEpTQ0BA
QFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1
ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWQXJyYXlCdWZm
ZXJAM0BAWiwgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAz
QFBFQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBFQVZBcnJheUJ1ZmZlckAzQEBaKQogICAgICAgICBz
eW1ib2xXaXRoUG9pbnRlcig/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVj
U3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVkNTU1N0eWxlRGVjbGFyYXRpb25AMUBA
WiwgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAzQFBFQVZK
U0RPTUdsb2JhbE9iamVjdEAxQFBFQVZDU1NTdHlsZURlY2xhcmF0aW9uQDFAQFopCiAgICAgICAg
IHN5bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4
ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWQ2xpZW50UmVjdEAxQEBaLCA/dG9K
U0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpTRE9NR2xv
YmFsT2JqZWN0QDFAUEVBVkNsaWVudFJlY3RAMUBAWikKQEAgLTMyMCw3ICszMTksNyBAQCBFWFBP
UlRTCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1
ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBa
LCA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpT
RE9NR2xvYmFsT2JqZWN0QDFAUEVBVk5vZGVAMUBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50
ZXIoP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNE
T01HbG9iYWxPYmplY3RAMUBQQVZSYW5nZUAxQEBaLCA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFs
dWVASlNDQEBQRUFWRXhlY1N0YXRlQDNAUEVBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEVBVlJhbmdl
QDFAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD90b0pTQFdlYkNvcmVAQFlBP0FWSlNW
YWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUxp
c3RAMUBAWiwgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEVBVkV4ZWNTdGF0ZUAz
QFBFQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBFQVZOb2RlTGlzdEAxQEBaKQotICAgICAgICBzeW1i
b2xXaXRoUG9pbnRlcig/dG9SYW5nZUBXZWJDb3JlQEBZQVBBVlJhbmdlQDFAVkpTVmFsdWVASlND
QEBAWiwgP3RvUmFuZ2VAV2ViQ29yZUBAWUFQRUFWUmFuZ2VAMUBWSlNWYWx1ZUBKU0NAQEBaKQor
ICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dG9XcmFwcGVkQEpTUmFuZ2VAV2ViQ29yZUBAU0FQ
QVZSYW5nZUAyQFZKU1ZhbHVlQEpTQ0BAQFosID90b1dyYXBwZWRASlNSYW5nZUBXZWJDb3JlQEBT
QVBBVlJhbmdlQDJAVkpTVmFsdWVASlNDQEBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIo
P2lzVHJlZVNjb3BlQE5vZGVAV2ViQ29yZUBAUUJFX05YWiwgP2lzVHJlZVNjb3BlQE5vZGVAV2Vi
Q29yZUBAUUVCQV9OWFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD91cGRhdGVFZGl0b3JV
SU5vd0lmU2NoZWR1bGVkQEVkaXRvckBXZWJDb3JlQEBRQUVYWFosID91cGRhdGVFZGl0b3JVSU5v
d0lmU2NoZWR1bGVkQEVkaXRvckBXZWJDb3JlQEBRRUFBWFhaKQogICAgICAgICBzeW1ib2xXaXRo
UG9pbnRlcig/dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQERvY3VtZW50QFdl
YkNvcmVAQFFBRVhXNFJ1blBvc3RMYXlvdXRUYXNrc0AxMkBAWiwgP3VwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0c0BEb2N1bWVudEBXZWJDb3JlQEBRRUFBWFc0UnVuUG9zdExheW91
dFRhc2tzQDEyQEBaKQpAQCAtNDQ5LDcgKzQ0OCw3IEBAIEVYUE9SVFMKICAgICAgICAgc3ltYm9s
V2l0aFBvaW50ZXIoP3RvVUludDMyRW5mb3JjZVJhbmdlQFdlYkNvcmVAQFlBSVBBVkV4ZWNTdGF0
ZUBKU0NAQFZKU1ZhbHVlQDNAQFosID90b1VJbnQzMkVuZm9yY2VSYW5nZUBXZWJDb3JlQEBZQUlQ
RUFWRXhlY1N0YXRlQEpTQ0BAVkpTVmFsdWVAM0BAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50
ZXIoP3RvVUludDY0QFdlYkNvcmVAQFlBX0tQQVZFeGVjU3RhdGVASlNDQEBWSlNWYWx1ZUAzQFc0
SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uQDFAQFosID90b1VJbnQ2NEBXZWJDb3JlQEBZ
QV9LUEVBVkV4ZWNTdGF0ZUBKU0NAQFZKU1ZhbHVlQDNAVzRJbnRlZ2VyQ29udmVyc2lvbkNvbmZp
Z3VyYXRpb25AMUBAWikKICNpZiBFTkFCTEUoVklERU8pCi0gICAgICAgIHN5bWJvbFdpdGhQb2lu
dGVyKD90b1RpbWVSYW5nZXNAV2ViQ29yZUBAWUFQQVZUaW1lUmFuZ2VzQDFAVkpTVmFsdWVASlND
QEBAWiwgP3RvVGltZVJhbmdlc0BXZWJDb3JlQEBZQVBFQVZUaW1lUmFuZ2VzQDFAVkpTVmFsdWVA
SlNDQEBAWikKKyAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvV3JhcHBlZEBKU1RpbWVSYW5n
ZXNAV2ViQ29yZUBAU0FQQVZUaW1lUmFuZ2VzQDJAVkpTVmFsdWVASlNDQEBAWiwgP3RvV3JhcHBl
ZEBKU1RpbWVSYW5nZXNAV2ViQ29yZUBAU0FQQVZUaW1lUmFuZ2VzQDJAVkpTVmFsdWVASlNDQEBA
WikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVl
QEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZUaW1lUmFuZ2Vz
QDFAQFosID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBFQVZFeGVjU3RhdGVAM0BQ
RUFWSlNET01HbG9iYWxPYmplY3RAMUBQRUFWVGltZVJhbmdlc0AxQEBaKQogICAgICAgICBzeW1i
b2xXaXRoUG9pbnRlcig/bmVhcmVzdEBUaW1lUmFuZ2VzQFdlYkNvcmVAQFFCRU5OQFosID9uZWFy
ZXN0QFRpbWVSYW5nZXNAV2ViQ29yZUBAUUVCQU5OQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2lu
dGVyKD9hZGRAVGltZVJhbmdlc0BXZWJDb3JlQEBRQUVYTk5AWiwgP2FkZEBUaW1lUmFuZ2VzQFdl
YkNvcmVAQFFFQUFYTk5AWikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJE
T01PcGVyYXRpb25zLm1tIGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMu
bW0KaW5kZXggZTRmYjc2NjBmOWY0OWU3YWQ3MTk1NjEwM2JhM2I4NTE4NjI5YzVjMi4uNTBhOWQ4
ZmRiY2UyZGJiMjRlNDg2NTE1ZWZlMGVhNzY3NDhiY2Y5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
RE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KQEAgLTc0LDcgKzc0LDcgQEAgKyAoRE9NRWxlbWVudCAq
KV9ET01FbGVtZW50RnJvbUpTQ29udGV4dDooSlNDb250ZXh0UmVmKWNvbnRleHQgdmFsdWU6KEpT
VmFsdWVSZWYKIAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHRvSlMoY29udGV4dCk7CiAgICAgSlNM
b2NrSG9sZGVyIGxvY2soZXhlYyk7Ci0gICAgcmV0dXJuIGtpdCh0b0VsZW1lbnQodG9KUyhleGVj
LCB2YWx1ZSkpKTsKKyAgICByZXR1cm4ga2l0KEpTRWxlbWVudDo6dG9XcmFwcGVkKHRvSlMoZXhl
YywgdmFsdWUpKSk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpp
bmRleCAxZGY0ZTMyMTU4NTE5YjNjMWM0YTFjOWRlMDBjNTljMDI0ZDI1ZTNmLi5kNmVkYzA3MGQ0
YTliM2U1YTdmOWI1MGVhYzY0NGUzZTMzMTZjZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCkBAIC04NjE4LDcgKzg2MTgsNyBAQCAtICh1aW50NjRfdClfbm90aWZpY2F0aW9u
SURGb3JUZXN0aW5nOihKU1ZhbHVlUmVmKWpzTm90aWZpY2F0aW9uCiB7CiAjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBKU0NvbnRl
eHRSZWYgY29udGV4dCA9IFtbc2VsZiBtYWluRnJhbWVdIGdsb2JhbENvbnRleHRdOwotICAgIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gdG9Ob3RpZmljYXRpb24odG9KUyh0
b0pTKGNvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uID0gSlNOb3RpZmljYXRpb246OnRvV3JhcHBlZCh0b0pTKHRvSlMoY29u
dGV4dCksIGpzTm90aWZpY2F0aW9uKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYk5vdGlm
aWNhdGlvbkNsaWVudCo+KE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNsaWVudEZyb20oX3ByaXZh
dGUtPnBhZ2UpKS0+bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKG5vdGlmaWNhdGlvbik7CiAjZWxz
ZQogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA5NDM4Mzc1ZTNlOTQ2YTA1
OTAwODJhMzliYjBmYjIyMGIwZGNmNmM3Li5lM2RjNmMxMjA5NzNjOTg0MTUwMzU2MGFmZGRjODMw
MjUxYWViNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNTk3NCw3ICs1OTc0LDcgQEAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjplbGVtZW50RnJvbUpTKAogCiAgICAgSlND
OjpFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGNvbnRleHQpOwogICAgIEpTQzo6SlNMb2NrSG9sZGVy
IGxvY2soZXhlYyk7Ci0gICAgRWxlbWVudCogZWx0ID0gdG9FbGVtZW50KHRvSlMoZXhlYywgbm9k
ZU9iamVjdCkpOworICAgIEVsZW1lbnQqIGVsdCA9IEpTRWxlbWVudDo6dG9XcmFwcGVkKHRvSlMo
ZXhlYywgbm9kZU9iamVjdCkpOwogICAgIGlmICghZWx0KQogICAgICAgICByZXR1cm4gRV9GQUlM
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAppbmRl
eCBjZGRkYzgxNmFiYjgxN2U4MzU3N2I5MTBjNjMzZTMwYTBlZTYwNWZlLi4xZGMwYjRiNTAzMDc0
YzJiMWE1NTNjZDg5MDBiZDUxYzUyYWU2OGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIERPTUhhbmRs
ZUNhY2hlJiBkb21IYW5kbGVDYWNoZSgpCiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2Rl
SGFuZGxlPiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJl
ZiwgSlNPYmplY3RSZWYgb2JqZWN0KQogewotICAgIE5vZGUqIG5vZGUgPSB0b05vZGUodG9KUyhv
YmplY3QpKTsKKyAgICBOb2RlKiBub2RlID0gSlNOb2RlOjp0b1dyYXBwZWQodG9KUyhvYmplY3Qp
KTsKICAgICByZXR1cm4gZ2V0T3JDcmVhdGUobm9kZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFu
Z2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKaW5kZXggZjYzMzkxYjRjZTVjZjcyMWEx
OWIwNjg3M2Y3MTBkYzJlMzVmMTllNy4uOWFjOGIzYzYxNmE2OTBmYzNmMGIxZmZlY2I3MzQ0M2Ew
YjQ0N2IwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIERPTUhhbmRsZUNhY2hlJiBkb21IYW5kbGVD
YWNoZSgpCiAKIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiBv
YmplY3QpCiB7Ci0gICAgUmFuZ2UqIHJhbmdlID0gdG9SYW5nZSh0b0pTKG9iamVjdCkpOworICAg
IFJhbmdlKiByYW5nZSA9IEpTUmFuZ2U6OnRvV3JhcHBlZCh0b0pTKG9iamVjdCkpOwogICAgIHJl
dHVybiBnZXRPckNyZWF0ZShyYW5nZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXgg
MWE2NzI3YmFjYTU5M2MwYTdiYjgxZGEwMzg5MGE3MjlhNWQ4M2M0Yi4uNWViOTVjMGVkNTIwZjk5
YmJiMmNlZDIzZTE3OThhM2MzZDg1Y2I3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTU5
Nyw3ICs1OTcsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9ucyhXZWJQYWdlKiBwYWdlKQogdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6Ondl
Yk5vdGlmaWNhdGlvbklEKEpTQ29udGV4dFJlZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganNOb3Rp
ZmljYXRpb24pCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lf
Tk9USUZJQ0FUSU9OUykKLSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9
IHRvTm90aWZpY2F0aW9uKHRvSlModG9KUyhqc0NvbnRleHQpLCBqc05vdGlmaWNhdGlvbikpOwor
ICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gSlNOb3RpZmljYXRpb246
OnRvV3JhcHBlZCh0b0pTKHRvSlMoanNDb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKICAgICBp
ZiAoIW5vdGlmaWNhdGlvbikKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIFdlYlByb2Nl
c3M6OnNoYXJlZCgpLnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+bm90aWZp
Y2F0aW9uSURGb3JUZXN0aW5nKG5vdGlmaWNhdGlvbik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>