<?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>117065</bug_id>
          
          <creation_ts>2013-05-31 01:46:32 -0700</creation_ts>
          <short_desc>Clean up CachedResourceRequest initiators</short_desc>
          <delta_ts>2016-05-01 07:55:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>116791</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pdr</cc>
    
    <cc>rakuco</cc>
    
    <cc>schenney</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>895819</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-05-31 01:46:32 -0700</bug_when>
    <thetext>Clean up CachedResourceRequest initiators</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896457</commentid>
    <comment_count>1</comment_count>
      <attachid>203592</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-06-03 08:22:33 -0700</bug_when>
    <thetext>Created attachment 203592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896535</commentid>
    <comment_count>2</comment_count>
      <attachid>203592</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-06-03 10:34:33 -0700</bug_when>
    <thetext>Comment on attachment 203592
Patch

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

&gt; Source/WebCore/ChangeLog:22
&gt; +        the request&apos;s initiator, as compared to the previous possibility of defining the initiator through an AtomicString or an Element
&gt; +        object&apos;s name (which is not in line with the specification and therefor removed).

Oh, I didn&apos;t realize that this could be a name.

Looking at the current editor&apos;s draft &lt;http://www.w3c-test.org/webperf/specs/ResourceTiming/&gt;, the feature is there:

initiatorType attribute

If the initiator is an element, on getting, the initiatorType attribute must return a DOMString with the same value as the localName of that element.

If the initiator is a CSS resource downloaded by the url() syntax, such as @import url() or background: url(), on getting, the initiatorType attribute must return the DOMString &quot;css&quot;.

If the initiator is an XMLHttpRequest object, on getting, the initiatorType attribute must return the DOMString &quot;xmlhttprequest&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896541</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-06-03 10:49:06 -0700</bug_when>
    <thetext>Hmm. I was looking at this one, which is marked as a Candidate Recommendation.
http://www.w3.org/TR/resource-timing/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896631</commentid>
    <comment_count>4</comment_count>
      <attachid>203592</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-06-03 14:58:00 -0700</bug_when>
    <thetext>Comment on attachment 203592
Patch

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

I’m OK with this change, but think it could be better.

&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:102
&gt; +    default:

Adding this default case gets rid of the compile time checking that we have all the tag values covered. Could you undo that change?

&gt; Source/WebCore/loader/cache/CachedResourceRequestInitiator.h:30
&gt; +#include &quot;ThreadGlobalData.h&quot;
&gt; +#include &lt;wtf/text/AtomicString.h&gt;

This file should not be including these headers.

&gt; Source/WebCore/loader/cache/CachedResourceRequestInitiator.h:34
&gt; +enum CachedResourceRequestInitiator {

Can we use a shorter name for this class and this source file? I suggest CacheRequestInitiator or LoadInitiator or LoadInitiatorType.

&gt; Source/WebCore/page/PerformanceResourceTiming.cpp:105
&gt; +    DEFINE_STATIC_LOCAL(const String, cssName, (ASCIILiteral(&quot;css&quot;)));
&gt; +    DEFINE_STATIC_LOCAL(const String, embedName, (ASCIILiteral(&quot;embed&quot;)));
&gt; +    DEFINE_STATIC_LOCAL(const String, imageName, (ASCIILiteral(&quot;img&quot;)));
&gt; +    DEFINE_STATIC_LOCAL(const String, linkName, (ASCIILiteral(&quot;link&quot;)));
&gt; +    DEFINE_STATIC_LOCAL(const String, objectName, (ASCIILiteral(&quot;object&quot;)));
&gt; +    DEFINE_STATIC_LOCAL(const String, scriptName, (ASCIILiteral(&quot;script&quot;)));
&gt; +    DEFINE_STATIC_LOCAL(const String, subdocumentName, (ASCIILiteral(&quot;subdocument&quot;)));
&gt; +    DEFINE_STATIC_LOCAL(const String, svgName, (ASCIILiteral(&quot;svg&quot;)));
&gt; +    DEFINE_STATIC_LOCAL(const String, xmlhttprequestName, (ASCIILiteral(&quot;xmlhttprequest&quot;)));
&gt; +    DEFINE_STATIC_LOCAL(const String, otherName, (ASCIILiteral(&quot;other&quot;)));

Is having a global for each of these an important optimization?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896653</commentid>
    <comment_count>5</comment_count>
      <attachid>203592</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-06-03 15:55:25 -0700</bug_when>
    <thetext>Comment on attachment 203592
Patch

My comment was confusing, and I really should have r-&apos;ed the patch.

Unless there is a specific reason why we disagree with current editor&apos;s draft, and are trying to get it fixed, this is really the version we should be targeting. So, removing support for something that&apos;s in the draft would be a step in the wrong direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896772</commentid>
    <comment_count>6</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-06-04 01:26:58 -0700</bug_when>
    <thetext>Agreed, I&apos;ll produce a patch based on the editor&apos;s draft.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898481</commentid>
    <comment_count>7</comment_count>
      <attachid>204120</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-06-09 08:12:54 -0700</bug_when>
    <thetext>Created attachment 204120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898482</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-09 08:14:31 -0700</bug_when>
    <thetext>Attachment 204120 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-css-expected.txt&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-css.html&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-iframe-expected.txt&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-iframe.html&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-img-expected.txt&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-img.html&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-link-expected.txt&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-link.html&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-script-expected.txt&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-script.html&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-xmlhttprequest-expected.txt&apos;, u&apos;LayoutTests/http/tests/webperf/resource-timing/initiator-type-xmlhttprequest.html&apos;, u&apos;LayoutTests/http/tests/webperf/resources/abe.png&apos;, u&apos;LayoutTests/http/tests/webperf/resources/iframe.html&apos;, u&apos;LayoutTests/platform/efl/TestExpectations&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;LayoutTests/platform/qt/TestExpectations&apos;, u&apos;LayoutTests/platform/win/TestExpectations&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/css/CSSFontFaceSrcValue.cpp&apos;, u&apos;Source/WebCore/css/CSSImageSetValue.cpp&apos;, u&apos;Source/WebCore/css/CSSImageValue.cpp&apos;, u&apos;Source/WebCore/css/CSSImageValue.h&apos;, u&apos;Source/WebCore/css/StyleRuleImport.cpp&apos;, u&apos;Source/WebCore/css/WebKitCSSSVGDocumentValue.cpp&apos;, u&apos;Source/WebCore/css/WebKitCSSShaderValue.cpp&apos;, u&apos;Source/WebCore/dom/ScriptElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLBodyElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLLinkElement.cpp&apos;, u&apos;Source/WebCore/html/parser/CSSPreloadScanner.cpp&apos;, u&apos;Source/WebCore/html/parser/HTMLPreloadScanner.cpp&apos;, u&apos;Source/WebCore/html/parser/HTMLResourcePreloader.h&apos;, u&apos;Source/WebCore/loader/DocumentThreadableLoader.cpp&apos;, u&apos;Source/WebCore/loader/ImageLoader.cpp&apos;, u&apos;Source/WebCore/loader/LinkLoader.cpp&apos;, u&apos;Source/WebCore/loader/ThreadableLoader.cpp&apos;, u&apos;Source/WebCore/loader/ThreadableLoader.h&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceLoader.cpp&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceLoader.h&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceRequest.cpp&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceRequest.h&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceRequestInitiator.h&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceRequestInitiators.cpp&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceRequestInitiators.h&apos;, u&apos;Source/WebCore/loader/icon/IconLoader.cpp&apos;, u&apos;Source/WebCore/page/Performance.cpp&apos;, u&apos;Source/WebCore/page/Performance.h&apos;, u&apos;Source/WebCore/page/PerformanceResourceTiming.cpp&apos;, u&apos;Source/WebCore/page/PerformanceResourceTiming.h&apos;, u&apos;Source/WebCore/platform/ThreadGlobalData.cpp&apos;, u&apos;Source/WebCore/platform/ThreadGlobalData.h&apos;, u&apos;Source/WebCore/svg/SVGFEImageElement.cpp&apos;, u&apos;Source/WebCore/svg/SVGFontFaceUriElement.cpp&apos;, u&apos;Source/WebCore/svg/SVGUseElement.cpp&apos;, u&apos;Source/WebCore/xml/XMLHttpRequest.cpp&apos;]&quot; exit_code: 1
Source/WebCore/loader/cache/CachedResourceLoader.h:183:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebCore/loader/cache/CachedResourceRequestInitiator.h:38:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 55 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898483</commentid>
    <comment_count>9</comment_count>
      <attachid>204120</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-09 08:20:16 -0700</bug_when>
    <thetext>Comment on attachment 204120
Patch

Attachment 204120 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/786220</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>898484</commentid>
    <comment_count>10</comment_count>
      <attachid>204120</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-06-09 08:22:53 -0700</bug_when>
    <thetext>Comment on attachment 204120
Patch

Attachment 204120 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/697909</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001295</commentid>
    <comment_count>11</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-16 13:14:37 -0700</bug_when>
    <thetext>What&apos;s happening with this patch? Has the draft been finalized? Should we take this patch? (Alexey? Darin?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019334</commentid>
    <comment_count>12</comment_count>
      <attachid>204120</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-06-30 08:49:16 -0700</bug_when>
    <thetext>Comment on attachment 204120
Patch

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

Generally looks good, but I’m not sure this patch is a big improvement.

Replacing the concept &quot;initiator type&quot; with a new concept &quot;initiator&quot; is not so great, since the data is actually the type of initiator, not the initiator itself.

And moving the code to extract the local name from a central place and instead doing it at each call site isn’t an obvious improvement either.

Using hard-coded strings for &quot;icon&quot; and &quot;link&quot; at the call site also isn’t really an improvement.

&gt; Source/WebCore/dom/ScriptElement.cpp:271
&gt; +        request.setInitiator(String(m_element-&gt;localName()));

This is not the preferred syntax. Instead we should use localName().string().

&gt; Source/WebCore/html/HTMLLinkElement.cpp:221
&gt; +        request.setInitiator(String(localName()));

Ditto.

&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:102
&gt; -        ASSERT_NOT_REACHED();
&gt; -        return &quot;unknown&quot;;
&gt; +        break;

Why this change?

&gt; Source/WebCore/html/parser/HTMLPreloadScanner.cpp:104
&gt; +

Why this change? I don’t think we need to touch this file in this patch.

&gt; Source/WebCore/html/parser/HTMLResourcePreloader.h:31
&gt; +#include &lt;wtf/WeakPtr.h&gt;

Why are we adding this include? I don’t see any new use of WeakPtr in this header.

&gt; Source/WebCore/loader/ImageLoader.cpp:184
&gt; +        request.setInitiator(String(m_element-&gt;localName()));

Please use localName().string() here instead as above.

&gt; Source/WebCore/loader/LinkLoader.cpp:119
&gt; +        // FIXME: Should use the HTMLLinkElement::localName.

Not sure calling through HTMLLinkElement is really important. We can use HTMLNames::linkTag.string() here instead of writing it as a literal.

&gt; Source/WebCore/loader/LinkLoader.cpp:120
&gt; +        linkRequest.setInitiator(String(&quot;link&quot;));

This should either be just &quot;link&quot; or ASCIILiteral(&quot;link&quot;). Not String(&quot;link&quot;).

&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:559
&gt; +            InitiatorInfo info(String(frame()-&gt;ownerElement()-&gt;localName()), monotonicallyIncreasingTime());

Again, should use localName().string().

Why change to the old function-style initialization instead of the modern C++ style? I like the new style better; it looks more like initialization to me and is stricter about type conversions.

&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:563
&gt; -        InitiatorInfo info = { request.initiatorName(), monotonicallyIncreasingTime() };
&gt; +        InitiatorInfo info(request.initiator(), monotonicallyIncreasingTime());

Why change to the old function-style initialization instead of the modern C++ style? I like the new style better; it looks more like initialization to me and is stricter about type conversions.

&gt; Source/WebCore/loader/cache/CachedResourceLoader.h:181
&gt; -    struct InitiatorInfo {
&gt; -        AtomicString name;
&gt; -        double startTime;
&gt; +    class InitiatorInfo {

Why change this from a struct to a class?

&gt; Source/WebCore/loader/cache/CachedResourceRequestInitiator.h:53
&gt; +    CachedResourceRequestInitiator(const String&amp; initiatorName)
&gt; +        : m_type(Element)
&gt; +        , m_initiatorName(initiatorName)
&gt; +    {
&gt; +        ASSERT(!m_initiatorName.isEmpty());
&gt; +    }

It’s not necessarily good to store element local names as a String rather than an AtomicString. I guess the reason is wanting to send things across threads?

&gt; Source/WebCore/loader/icon/IconLoader.cpp:70
&gt; +    request.setInitiator(String(&quot;icon&quot;));

Should be ASCIILiteral(&quot;icon&quot;).

&gt; Source/WebCore/page/PerformanceResourceTiming.cpp:81
&gt; +    : PerformanceEntry(request.url().string(), &quot;resource&quot;, monotonicTimeToDocumentMilliseconds(requestingDocument, initiationTime),

Should use ASCIILiteral(&quot;resource&quot;).

&gt; Source/WebCore/page/PerformanceResourceTiming.cpp:100
&gt; +        return &quot;unknown&quot;;

Should be return ASCIILiteral(&quot;unknown&quot;).

&gt; Source/WebCore/page/PerformanceResourceTiming.cpp:104
&gt; +        return &quot;css&quot;;

Should also use ACIILiteral.

&gt; Source/WebCore/page/PerformanceResourceTiming.cpp:106
&gt; +        return &quot;xmlhttprequest&quot;;

Ditto.

&gt; Source/WebCore/page/PerformanceResourceTiming.cpp:110
&gt; +    return &quot;unknown&quot;;

Ditto.

&gt; Source/WebCore/svg/SVGFEImageElement.cpp:85
&gt; +    request.setInitiator(String(localName()));

Again, localName().string().

&gt; Source/WebCore/svg/SVGFontFaceUriElement.cpp:100
&gt; +        request.setInitiator(String(localName()));

Ditto.

&gt; Source/WebCore/svg/SVGUseElement.cpp:254
&gt; +                request.setInitiator(String(localName()));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177143</commentid>
    <comment_count>13</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-22 14:56:11 -0700</bug_when>
    <thetext>It seems like this (approved) patch got abandoned. Can someone at Igalia clean it up and land it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189210</commentid>
    <comment_count>14</comment_count>
      <attachid>277861</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-01 07:54:02 -0700</bug_when>
    <thetext>Created attachment 277861
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189211</commentid>
    <comment_count>15</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-01 07:55:47 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created attachment 277861 [details]
&gt; WIP

Work in progress. Needs:
* xcode build rules,
* passing layout tests,
* initiator for the DocumentLoader case.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203592</attachid>
            <date>2013-06-03 08:22:33 -0700</date>
            <delta_ts>2013-06-09 08:12:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117065-20130603082104.patch</filename>
            <type>text/plain</type>
            <size>100985</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxMDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE0NGQxZTQ0MzFjZTc5
OWQ4YTllOWU5MDE5YzQzYjk3NGZjNDliOC4uMTlmZTE1ZTlhMjRlNDAwOTc1Mzg1ZjE5ZTcxY2Fm
N2IxMWE5YzhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOSBAQAorMjAxMy0wNi0wMyAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IGluaXRpYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzA2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycyBzdHJ1Y3QgZnJvbSB0aGUgY29kZS4gSXRzIGluc3RhbmNlIHdhcyBsb2NhdGVkIGlu
IHRoZSBUaHJlYWRHbG9iYWxEYXRhCisgICAgICAgIGNsYXNzIGFuZCB3YXMgYXMgc3VjaCBhIGxh
eWVyaW5nIHZpb2xhdGlvbi4gVGhlIHRocmVhZC1zcGVjaWZpYyBpbnN0YW5jZSBjb250YWluZWQg
QXRvbWljU3RyaW5nIG1lbWJlcnMgdGhhdCByZXByZXNlbnRlZAorICAgICAgICB2YXJpb3VzIHR5
cGVzIG9mIGluaXRpYXRvcnMgb2YgdGhlIENhY2hlZFJlc291cmNlUmVxdWVzdHMuCisKKyAgICAg
ICAgVGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGluaXRpYXRvcnMgZmVsbCBiZWhpbmQgdGhlIFJlc291
cmNlIFRpbWluZyBzcGVjaWZpY2F0aW9uIHNvbWUgdGltZSBhZ28uIFRoaXMgcGF0Y2ggaW50cm9k
dWNlcyBhIGNvbXBsZXRlCisgICAgICAgIGxpc3Qgb2YgdGhlIGluaXRpYXRvcnMgZGVmaW5lZCBp
biB0aGUgc3BlY2lmaWNhdGlvbiBidXQgZG9lcyBub3QgZ3VhcmFudGVlIHRoYXQgZWFjaCByZXF1
ZXN0IHJlcHJlc2VudGVkIGJ5IHRoZQorICAgICAgICBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
IG9iamVjdHMgd2lsbCBoYXZlIHRoZSBjb3JyZWN0IGluaXRpYXRvclR5cGUgYXR0cmlidXRlIHZh
bHVlIGFzIGRlZmluZWQgYnkgdGhlIHNwZWNpZmljYXRpb24uIEl0IGRvZXMKKyAgICAgICAgaW1w
cm92ZSBjZXJ0YWluIGNhc2VzLCBidXQgZnVydGhlciBpbXByb3ZlbWVudHMgYXJlIHRvIGJlIG1h
ZGUuCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8KKworICAg
ICAgICBUaGUgaW50cm9kdWNlZCBjaGFuZ2VzIHJlbW92ZSB0aGUgbmVjZXNzaXR5IGZvciBhIHRo
cmVhZC1zcGVjaWZpYyBzdHJ1Y3QgY29udGFpbmluZyBBdG9taWNTdHJpbmdzIG9mIHRoZSBpbml0
aWF0b3JzIGJ5IGludHJvZHVjaW5nCisgICAgICAgIGFuIGVudW0gdGhhdCBsaXN0cyBhbGwgdGhl
IGF2YWlsYWJsZSBpbml0aWF0b3JzLiBUaGVzZSBpbml0aWF0b3JzIGFyZSB0aGVuIHNldCB0byB0
aGUgbmV3IENhY2hlZFJlc291cmNlUmVxdWVzdHMgYXMgcmVxdWlyZWQuCisgICAgICAgIFRoZSBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgaXMgYWxzbyBjbGVhbmVkIHVwIHdpdGggbm93IG9ubHkgb25l
IG1lbWJlciB2YXJpYWJsZSBvZiB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIHR5
cGUgZGVmaW5pbmcKKyAgICAgICAgdGhlIHJlcXVlc3QncyBpbml0aWF0b3IsIGFzIGNvbXBhcmVk
IHRvIHRoZSBwcmV2aW91cyBwb3NzaWJpbGl0eSBvZiBkZWZpbmluZyB0aGUgaW5pdGlhdG9yIHRo
cm91Z2ggYW4gQXRvbWljU3RyaW5nIG9yIGFuIEVsZW1lbnQKKyAgICAgICAgb2JqZWN0J3MgbmFt
ZSAod2hpY2ggaXMgbm90IGluIGxpbmUgd2l0aCB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgdGhlcmVm
b3IgcmVtb3ZlZCkuCisKKyAgICAgICAgVGhlIGluaXRpYXRvcnMgYXJlIGtlcHQgYXMgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIHZhbHVlcyBmcm9tIHRoZSBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QgY3JlYXRpb24gYW5kIGxvYWRpbmcgYWxsIHRoZSB3YXkKKyAgICAgICAgdG8gdGhlIFBl
cmZvcm1hbmNlUmVxdWVzdFRpbWluZyBpbnRlcmZhY2UuIE9ubHkgaW4gUGVyZm9ybWFuY2VSZXF1
ZXN0VGltaW5nOjppbml0aWF0b3JUeXBlIGRvZXMgdGhlIGluaXRpYXRvciBnZXQgdHJhbnNsYXRl
ZCBpbnRvCisgICAgICAgIHRoZSBhcHByb3ByaWF0ZSBzdHJpbmcgdmFsdWUuCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUt
Y3NzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1p
bmcvaW5pdGlhdG9yLXR5cGUtaW1nLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vi
cGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtbGluay5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLXNj
cmlwdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGlt
aW5nL2luaXRpYXRvci10eXBlLXN1YmRvY3VtZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUteG1saHR0cHJlcXVl
c3QuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZp
bGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJz
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KTogVXNlIENTU0luaXRpYXRvciBhcyB0aGUgaW5pdGlh
dG9yIGZvciB0aGUgZm9udCByZXNvdXJjZSByZXF1ZXN0LgorICAgICAgICAqIGNzcy9DU1NJbWFn
ZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OmNhY2hl
ZEltYWdlU2V0KTogVXNlIENTU0luaXRpYXRvciBhcyB0aGUgaW5pdGlhdG9yIGZvciB0aGUgaW1h
Z2UgcmVzb3VyY2UgcmVxdWVzdC4KKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZSk6IERpdHRvLgorICAg
ICAgICAqIGNzcy9DU1NJbWFnZVZhbHVlLmg6IFJlbW92ZSB0aGUgc2V0SW5pdGlhdG9yIHNldHRl
ciwgbV9pbml0aWF0b3JOYW1lIG1lbWJlciB2YXJpYWJsZS4gVGhlc2Ugd2VyZSB1c2VkIHdoZW4K
KyAgICAgICAgSFRNTEJvZHlFbGVtZW50IHJlcG9ydGVkIGl0c2VsZiBhcyB0aGUgaW5pdGlhdG9y
IG9mIHRoZSBiYWNrZ3JvdW5kIGltYWdlIHJlc291cmNlIHJlcXVlc3QuIFRoaXMgaXMgbm90IGlu
IGxpbmUKKyAgICAgICAgd2l0aCB0aGUgUmVzb3VyY2UgVGltaW5nIHNwZWNpZmljYXRpb24sIHNv
IHJlbW92aW5nIGl0LgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVldCk6IFVzZSBDU1NJ
bml0aWF0b3IgYXMgdGhlIGluaXRpYXRvciBmb3IgdGhlIENTUyBzdHlsZSBzaGVldCByZXNvdXJj
ZSByZXF1ZXN0LgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1NWR0RvY3VtZW50VmFsdWU6OmxvYWQpOiBVc2Ug
Q1NTSW5pdGlhdG9yIGFzIHRoZSBpbml0aWF0b3IgZm9yIHRoZSBDU1MgZmlsdGVyIHJlc291cmNl
IHJlcXVlc3QuCisgICAgICAgICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIpOiBVc2UgQ1NT
SW5pdGlhdG9yIGFzIHRoZSBpbml0aWF0b3IgZm9yIHRoZSBDU1Mgc2hhZGVyIHJlc291cmNlIHJl
cXVlc3QuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdCk6IFVzZSBTY3JpcHRJbml0aWF0b3IgYXMg
dGhlIGluaXRpYXRvciBmb3IgdGhlIHNjcmlwdCByZXNvdXJjZSByZXF1ZXN0LgorICAgICAgICAq
IGh0bWwvSFRNTEJvZHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5RWxl
bWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTogU3RvcCBzZXR0aW5n
IHRoZSAnYm9keScgc3RyaW5nIGFzIHRoZSBpbml0aWF0b3IgZm9yIHRoZSBDU1MKKyAgICAgICAg
aW1hZ2UgcmVzb3VyY2UgcmVxdWVzdCB0aGF0J3MgdG8gYmUgdXNlZCBhcyB0aGUgYmFja2dyb3Vu
ZCBvZiB0aGUgSFRNTEJvZHlFbGVtZW50LiBUaGlzIGlzIG5vdCBpbiBsaW5lIHdpdGggdGhlIHNw
ZWNpZmljYXRpb24KKyAgICAgICAgc28gdGhlIGVudGlyZSBtZWNoYW5pc20gb2Ygc2V0dGluZyB0
aGUgaW5pdGlhdG9yIHRvIHRoZSBzdHJpbmcgdmFsdWUgb2YgYW4gZWxlbWVudCBpcyBiZWluZyBy
ZW1vdmVkLgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cHJvY2Vzcyk6IFVzZSBMaW5rSW5pdGlhdG9yIGFzIHRo
ZSBpbml0aWF0b3IgZm9yIHRoZSBIVE1MTGlua0VsZW1lbnQgcmVzb3VyY2UgcmVxdWVzdC4KKyAg
ICAgICAgKiBodG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcmVsb2FkU2Nhbm5lcjo6ZW1pdFJ1bGUpOiBVc2UgQ1NTSW5pdGlhdG9yIGFzIHRo
ZSBpbml0aWF0b3IgZm9yIHRoZSBwb3NzaWJsZSBDU1MgcmVzb3VyY2UgcmVxdWVzdC4KKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VG9rZW5QcmVsb2FkU2Nhbm5lcjo6aW5pdGlhdG9yRm9yKTogTW9kaWZ5IHRoZSBtZXRob2Qg
dG8gcmV0dXJuIHRoZSBhcHByb3ByaWF0ZSBpbml0aWF0b3IgZm9yIHRoZSBnaXZlbiBUYWdJZCwK
KyAgICAgICAgdGhlIGluaXRpYXRvciBiZWluZyBvZiB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9yIHR5cGUgYW5kIG5vdCBhIHN0cmluZy4KKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MUHJlbG9hZFNjYW5uZXIuaDogQWRqdXN0IHRoZSBpbml0aWF0b3JGb3IgZGVjbGFyYXRpb24u
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlByZWxvYWRSZXF1ZXN0Ojppc1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQp
OiBUaGUgbV9pbml0aWF0b3IgbWVtYmVyIGlzIG5vdCBhIFN0cmluZyBhbnltb3JlLAorICAgICAg
ICBzbyBubyBuZWVkIGZvciB0aGUgdGhyZWFkLXNhZmUgY2hlY2suCisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpQcmVsb2Fk
UmVxdWVzdDo6Y3JlYXRlKTogTWFrZSB0aGUgaW5pdGlhdG9yIHBhcmFtZXRlciBoYXZlIHRoZSBD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlBy
ZWxvYWRSZXF1ZXN0OjpQcmVsb2FkUmVxdWVzdCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9E
b2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdCk6IFJlbW92ZSB0aGUgUkVTT1VSQ0VfVElNSU5H
IGd1YXJkLiBUaGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRJbml0aWF0b3IKKyAgICAgICAg
bWV0aG9kIGlzIG5vdCBndWFyZGVkIGJ5IHRoYXQgZ3VhcmQgZWl0aGVyLgorICAgICAgICAqIGxv
YWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBk
YXRlRnJvbUVsZW1lbnQpOiBVc2UgSW1hZ2VJbml0aWF0b3IgYXMgdGhlIGluaXRpYXRvciBmb3Ig
dGhlIEltYWdlTG9hZGVyIHJlc291cmNlIHJlcXVlc3QuCisgICAgICAgICogbG9hZGVyL0xpbmtM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6bG9hZExpbmspOiBVc2Ug
TGlua0luaXRpYXRvciBhcyB0aGUgaW5pdGlhdG9yIGZvciB0aGUgTGlua0xvYWRlciByZXNvdXJj
ZSByZXF1ZXN0LgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJPcHRpb25zOjpUaHJlYWRhYmxlTG9hZGVyT3B0
aW9ucyk6IEluaXRpYWxpemUgdGhlIGluaXRpYXRvciBtZW1iZXIgdmFyaWFibGUgdG8gT3RoZXJJ
bml0aWF0b3IgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5o
OiBVbi1ndWFyZCB0aGUgaW5pdGlhdG9yIG1lbWJlciBhbmQgY2hhbmdlIGl0IHRvIGhhdmUgdGhl
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciB0eXBlLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6c3RvcmVSZXNvdXJjZVRpbWluZ0luaXRpYXRvckluZm9ybWF0aW9uKTog
VXNlIFN1YmRvY3VtZW50SW5pdGlhdG9yIGFzIHRoZSBpbml0aWF0b3IgZm9yIGZyYW1lIHJlc291
cmNlCisgICAgICAgIHJlcXVlc3RzLiBVc2UgdGhlIENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5p
dGlhdG9yIG1ldGhvZCB0byBnZXQgdGhlIHJlcXVlc3QncyBpbml0aWF0b3IuCisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZERvbmUpOiBQYXNzIHRoZSBsb2FkZWQg
cmVxdWVzdCdzIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciAoc3RvcmVkIGluIHRoZSBj
b3JyZXNwb25kaW5nCisgICAgICAgIEluaXRpYXRvckluZm8pIHRvIHRoZSBQZXJmb3JtYW5jZTo6
YWRkUmVzb3VyY2VUaW1pbmcgbWV0aG9kLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5oOiBTdG9yZSB0aGUgaW5pdGlhdG9yIGluIEluaXRpYXRvckluZm8gYXMg
YSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IgaW5zdGVhZCBvZiBhbiBBdG9taWNTdHJp
bmcuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVx
dWVzdCk6IEluaXRpYWxpemUgdGhlIG1faW5pdGlhdG9yIG1lbWJlciB0byBPdGhlckluaXRpYXRv
ci4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg6IFJlbW92
ZSB0aGUgc2V0SW5pdGlhdG9yLCBpbml0aWF0b3JOYW1lIG1ldGhvZHMgdGhhdCB3ZXJlIHRha2lu
ZyBhbiBFbGVtZW50CisgICAgICAgIG9yIGFuIEF0b21pY1N0cmluZyBhcyBhbiBpbml0aWF0b3Iu
IFRoZSByZXF1ZXN0J3MgaW5pdGlhdG9yIG5vdyBoYXMgdGhlIENhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvciB0eXBlCisgICAgICAgIGFuZCB0d28gc2ltcGxlIG1ldGhvZHMgYXJlIHByb3Zp
ZGVyIHRvIHJldHJpZXZlIG9yIHNldCBpdC4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6aW5pdGlhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
UmVxdWVzdDo6c2V0SW5pdGlhdG9yKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAuIERlZmluZXMKKyAg
ICAgICAgdGhlIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBhcyBhbiBlbnVtIGxpc3Rp
bmcgYWxsIHRoZSBwb3NzaWJsZSBpbml0aWF0b3JzIGFzIHNwZWNpZmllZCBieSB0aGUgUmVzb3Vy
Y2UgVGltaW5nIHNwZWNpZmljYXRpb24uCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsb2FkZXIvaWNv
bi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9h
ZGluZyk6IFJlbW92ZSB0aGUgaW5pdGlhdG9yIHNldHRpbmcuIE5vIGluaXRpYXRvciBpcyBkZWZp
bmVkIGZvciB0aGUgaWNvbiByZXNvdXJjZSByZXF1ZXN0IHNvIHRoZSBkZWZhdWx0CisgICAgICAg
IE90aGVySW5pdGlhdG9yIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgcmVxdWVzdC4KKyAgICAgICAg
KiBwYWdlL1BlcmZvcm1hbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjph
ZGRSZXNvdXJjZVRpbWluZyk6IFRoZSBtZXRob2Qgc2hvdWxkIG5vdyB0YWtlIGFuIGluaXRpYXRv
ciBvZiB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIHR5cGUuCisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZS5oOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZzo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6aW5pdGlhdG9yVHlwZSk6IFJldHVybiBhIHBy
b3BlciBpbml0aWF0b3IgaW4gc3RyaW5nIGZvcm0gZm9yIHRoZSBtX2luaXRpYXRvciBtZW1iZXIg
dmFyaWFibGUuCisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmg6IE1h
a2UgdGhlIG1faW5pdGlhdG9yIGhhdmUgdGhlIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
ciB0eXBlLiBUaGUgaW5pdGlhdG9yVHlwZSBtZXRob2QKKyAgICAgICAgc2hvdWxkIHJldHVybiBh
IFN0cmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNy
ZWF0ZSk6IFRha2UgdGhlIGluaXRpYXRvciBpbiB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9yIGZvcm0uCisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaHJlYWRHbG9iYWxEYXRhOjpUaHJlYWRHbG9iYWxEYXRhKTogUmVt
b3ZlIHRoZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzIG1lbWJlciB2YXJpYWJsZSBp
bml0aWFsaXphdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmg6IFJl
bW92ZSB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyBtZW1iZXIgdmFyaWFibGUg
YW5kIGl0cyBnZXR0ZXIgbWV0aG9kLgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVz
b3VyY2UpOiBVc2UgU1ZHSW5pdGlhdG9yIGFzIHRoZSBpbml0aWF0b3IgZm9yIHRoZSBTVkcgZmVJ
bWFnZSBlbGVtZW50IHJlc291cmNlIHJlcXVlc3QuCisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1lbnQ6
OmxvYWRGb250KTogVXNlIFNWR0luaXRpYXRvciBhcyB0aGUgaW5pdGlhdG9yIGZvciB0aGUgU1ZH
IGZvbnQtZmFjZS11cmkgZWxlbWVudCByZXNvdXJjZSByZXF1ZXN0LgorICAgICAgICAqIHN2Zy9T
VkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQpOiBVc2UgU1ZHSW5pdGlhdG9yIGFzIHRoZSBpbml0aWF0b3IgZm9yIHRo
ZSBTVkcgdXNlIGVsZW1lbnQgcmVzb3VyY2UgcmVxdWVzdC4KKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJl
cXVlc3QpOiBVc2UgWE1MSHR0cFJlcXVlc3RJbml0aWF0b3IgYXMgdGhlIGluaXRpYXRvciBmb3Ig
dGhlIFhIUiByZXNvdXJjZSByZXF1ZXN0LgorCiAyMDEzLTA2LTAyICBBcnVucHJhc2FkIFJhamt1
bWFyICA8YXJ1cmFqa3VAY2lzY28uY29tPgogCiAgICAgICAgIFtRdF0gTW92ZSBRdCBwb3J0IG9m
ZiBsZWdhY3kgY2xpcGJvYXJkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDhjNWE4OWY5MTkzN2Zi
YzZhNjgzYWZhNTk3YTMxOTc2Y2FhNzcxMWMuLjUzNWJiMGQzYjJhNDhiNGRjOTY1NTM2ZTc2NDcx
MDgyNDdhNmYyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjk3LDcgKzE2OTcsNiBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxl
LmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKICAgICBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAotICAgIGxvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRT
Y3JpcHQuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAKICAgICBsb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBlYmM4NDVhMjM3ZTU4MTk1MzVhOGFlMWMwMzIwYjA1YjI4Zjg3NDRjLi5hNGY0NGM4ZTJj
YWZiMjQ1M2E4N2ExMTU3YjAyM2M4Yzk0ZDJiMGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTQwMzAsOCArNDAzMCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggXAotCVNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBc
Ci0JU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCA3OTlkMGE1NTA1ZjY3MTI4N2EyYmRiMTdkOGQ1MTZiYzA3ZTI3YjVhLi4xY2E0OWI1
Y2Y1MjlkZGQzYjJiZTVjZTY5NjEzODllMWFlOWEwOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg1Myw3
ICs4NTMsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRS
ZXN1bHRDYWNoZS5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIFwKLSAgICBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgXAogICAgIGxv
YWRlci9Eb2N1bWVudExvYWRUaW1pbmcuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBcCkBAIC0yMDI2
LDcgKzIwMjUsNyBAQCBIRUFERVJTICs9IFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZS5oIFwKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aCBcCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIFwKLSAgICBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIFwKKyAgICBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmggXAogICAgIGxvYWRlci9Eb2N1
bWVudExvYWRlci5oIFwKICAgICBsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmggXAog
ICAgIGxvYWRlci9Gb3JtU3RhdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IGJmMDkzOGYwYjVhNGZkZGJiMDQ2MzU3ZDlhMjk3YzM1NTJm
NTU0ZTAuLjA3Y2E5OTkwMjNmNmUxNjZmYjdmNTkzYzY5MGM4NjRmYjM2N2U0NjAgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yODY1NCwxMSAr
Mjg2NTQsNyBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZl
UGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
IgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5c
bG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
LmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGMwYzJlNTAyNWQ3ZTRjY2YxMDM4
NWRlMThjODUzZGRlYjYwNmNhMTUuLjVmM2NiMTcwMTdkN2ZmZDZmZTUxNDEzMmU1YmFkM2RkM2Ez
MDc2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagpAQCAtNDA2NCw3ICs0MDY0LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGxv
YWRlclxjYWNoZVxDYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVz
dC5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkU2NyaXB0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTaGFkZXIuY3BwIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFNWR0RvY3VtZW50LmNwcCIgLz4KQEAg
LTExNDgxLDcgKzExNDgwLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGxvYWRlclxj
YWNoZVxDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlTG9hZGVyLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiIC8+Ci0g
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNh
Y2hlXENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFNjcmlwdC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFNoYWRlci5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCIg
Lz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ouZmlsdGVycwppbmRleCAwM2UzZDhhOTg4MDI3ZjFmNTRkMmVlMDI4ZmVhZWRiOTgzNTk0
ODA1Li5iOTNkZDAxZjRiYmQ0NjcyYzEwNjc1ZmRlOTYyNGY2ODgwYTc3MDE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCkBAIC0xMDM1LDkgKzEwMzUsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cbG9h
ZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAiPgogICAgICAgPEZpbHRlcj5sb2Fk
ZXJcY2FjaGU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCI+
Ci0gICAgICA8RmlsdGVyPmxvYWRlclxjYWNoZTwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFNjcmlwdC5jcHAi
PgogICAgICAgPEZpbHRlcj5sb2FkZXJcY2FjaGU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
QEAgLTc3NTIsNyArNzc0OSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJc
Y2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiPgogICAgICAgPEZpbHRlcj5sb2FkZXJcY2Fj
aGU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGxvYWRlclxjYWNoZVxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvci5oIj4KICAgICAgIDxGaWx0ZXI+bG9hZGVyXGNhY2hlPC9GaWx0ZXI+CiAgICAgPC9D
bEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVk
U2NyaXB0LmgiPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGUwODUzNDc5Y2EyMTFhMDY4MzVmMzM4ODViNmYwYjhkNjJiNjI2YzYu
LjM1YzdmNWI2NDFhYTlhYzY1MWMzMzNlMDk1NzMzZDFkMDFhMWVlOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MDgsOCAr
MTgwOCw3IEBACiAJCTY1RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RTBFOTQzMTEz
M0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NUZFQTg2OTA5ODMzQURFMDBCRUQ0QUIgLyogUGFn
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUZF
QTg2ODA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi87IH07CiAJCTZCMzQ4MDk0MEVFRjUw
RDQwMEFDMUI0MSAvKiBOYXRpdmVJbWFnZVB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUlt
YWdlUHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZD
NjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNkM2
Mzg4OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4
OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3Bw
ICovOyB9OworCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNkUyMUM2QzAxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMjFDNkJGMTEyNjMz
ODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi87IH07CiAJCTZFMjFDNkMyMTEy
NjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAv
KiBHcmFwaGljc0NvbnRleHQzRENHLmNwcCAqLzsgfTsKIAkJNkUzRkFEMzgxNDczM0Y0MDAwRTQy
MzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8q
IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovOyB9OwpAQCAtODIwMSw4ICs4MjAw
LDcgQEAKIAkJNjVGODA2OTcwNTREOUY4NjAwOEJGNzc2IC8qIEJsb2NrRXhjZXB0aW9ucy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEJsb2NrRXhjZXB0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CiAJCTY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkIzNDgwOTIwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2
ZUltYWdlUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVJbWFn
ZVB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QzYzODg5M0E5NkNDRUU1MEM4
Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250
ZXh0M0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3ND
b250ZXh0M0QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZDMTExMjYz
Mzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRENHLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFEMzYxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzUyOSw4ICsxNzUyNyw3IEBACiAJCQkJQkNCMTZDMTEwOTc5QzNCRDAwNDY3
NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJNTA4MUUzREYzQ0ZDODBDMTZF
RjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi8sCiAJCQkJNTA4MUUzRTEzRDAy
ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovLAotCQkJCTZDNjM4ODk0
QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAq
LywKLQkJCQk2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oICovLAorCQkJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IuaCAqLywKIAkJCQlCQ0IxNkMwQTA5NzlDM0JEMDA0Njc3
NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCAqLywKIAkJCQlCQ0IxNkMwQjA5NzlDM0JEMDA0Njc3NDEg
LyogQ2FjaGVkU2NyaXB0LmggKi8sCiAJCQkJNTAzOEJFM0UxNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5jcHAgKi8sCkBAIC0yMTAzNSw3ICsyMTAzMiw3IEBACiAJCQkJRTQ3QjRCRTgw
RTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0IxNkMyQTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTUwODFFM0UwM0NGRjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTZDNjM4ODk1QTk2Q0NFRTUwQzhDOTQ2
QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMyNDA5NzlDM0JEMDA0Njc3NDEgLyogQ2Fj
aGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q1MzM2NDBFRDY4NDg5MDA4ODc0Njgg
LyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwMzhC
RTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
MjQ0NzIsNyArMjQ0NjksNiBAQAogCQkJCUU0N0I0QkU5MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNo
ZWRSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyOTA5NzlDM0JE
MDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyMzA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwMzhC
RTQwMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTEwNEYyNDMxNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3Jj
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmlu
ZGV4IGJmZGI3YTc0MWI4YzAyOWFhNTkzZjEzMWVhMWQyNjlkZmQ5MTFiZjAuLjRkMWJjZTQ1MWM0
OGYyNzFlMWZkZmQ3MmE1MTk4ZDI4Y2ViNGFiYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJDYWNoZWRG
b250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgpAQCAtOTcsNyArOTYsNyBAQCBDYWNoZWRG
b250KiBDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KERvY3VtZW50KiBkb2N1bWVudCkK
IHsKICAgICBpZiAoIW1fY2FjaGVkRm9udCkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1fcmVzb3Vy
Y2UpKSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMoKS5jc3MpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihDU1NJbml0
aWF0b3IpOwogICAgICAgICBtX2NhY2hlZEZvbnQgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKS0+cmVxdWVzdEZvbnQocmVxdWVzdCk7CiAgICAgfQogICAgIHJldHVybiBtX2NhY2hl
ZEZvbnQuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXgg
Y2JkOGE0MzMzMzM5MTYwYzEwODQ3YTQ1MDU2NTkxZWM1ZGEzY2MwMy4uMzRiYzQ5ZmYxYjI4ZTJl
MWMwZDM0MTg1YTZjZmFkNjIxNGRiMDU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNl
dFZhbHVlLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU3R5
bGVDYWNoZWRJbWFnZVNldC5oIgpAQCAtMTEyLDcgKzExMSw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2VT
ZXQqIENTU0ltYWdlU2V0VmFsdWU6OmNhY2hlZEltYWdlU2V0KENhY2hlZFJlc291cmNlTG9hZGVy
KiBsb2FkCiAgICAgICAgIC8vIGFuZCBhbnkgQ1NTIHRyYW5zZm9ybXMuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTY5OAogICAgICAgICBJbWFnZVdpdGhTY2FsZSBp
bWFnZSA9IGJlc3RJbWFnZUZvclNjYWxlRmFjdG9yKCk7CiAgICAgICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1h
Z2UuaW1hZ2VVUkwpKSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRv
cihDU1NJbml0aWF0b3IpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
SW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpIHsKICAg
ICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNhY2hlZEltYWdlU2V0OjpjcmVhdGUoY2FjaGVk
SW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9yLCB0aGlzKTsKICAgICAgICAgICAgIG1fYWNj
ZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3Bw
CmluZGV4IGQ2Y2E4MzRhZDNlMDc0NDM4M2MwNDU4YTg4ZmFiZmM0NGQ3MWUzZDguLjIyZjU4MDlj
ZmU4ZGQxNmZlOTUxYjZiZDA1NjU0NmE5NDg2NTNjM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VWYWx1ZS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUg
Ik1lbW9yeUNhY2hlLmgiCkBAIC03MSwxMCArNzAsNyBAQCBTdHlsZUNhY2hlZEltYWdlKiBDU1NJ
bWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAg
ICAgICBtX2FjY2Vzc2VkSW1hZ2UgPSB0cnVlOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKG1fdXJsKSkpOwotICAgICAgICBpZiAobV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMoKS5jc3MpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXF1ZXN0LnNldEluaXRp
YXRvcihtX2luaXRpYXRvck5hbWUpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihDU1NJ
bml0aWF0b3IpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+
IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpCiAgICAgICAgICAg
ICBtX2ltYWdlID0gU3R5bGVDYWNoZWRJbWFnZTo6Y3JlYXRlKGNhY2hlZEltYWdlLmdldCgpKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAppbmRleCA2MmUxMTYyNWJjYzhjZmEw
OTQ5YjJkYTE3YjVhZTlhNmZkOWFkNjk2Li44NDUwZjBhOGFhOTZiOTliMzc5ZjU3M2U0ZmU5ZGVi
Yzg2YzgyNDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmgKQEAgLTU0LDggKzU0LDYg
QEAgcHVibGljOgogCiAgICAgYm9vbCBrbm93blRvQmVPcGFxdWUoY29uc3QgUmVuZGVyT2JqZWN0
KikgY29uc3Q7CiAKLSAgICB2b2lkIHNldEluaXRpYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUpIHsgbV9pbml0aWF0b3JOYW1lID0gbmFtZTsgfQotCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IENTU0ltYWdlVmFsdWUoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIENTU0ltYWdlVmFsdWUoY29u
c3QgU3RyaW5nJiB1cmwsIFN0eWxlSW1hZ2UqKTsKQEAgLTYzLDcgKzYxLDYgQEAgcHJpdmF0ZToK
ICAgICBTdHJpbmcgbV91cmw7CiAgICAgUmVmUHRyPFN0eWxlSW1hZ2U+IG1faW1hZ2U7CiAgICAg
Ym9vbCBtX2FjY2Vzc2VkSW1hZ2U7Ci0gICAgQXRvbWljU3RyaW5nIG1faW5pdGlhdG9yTmFtZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUlt
cG9ydC5jcHAKaW5kZXggYTU0MWViZDhmNWNiNDMzYTEwZGEwOTg3YjhmODZmNGI4YjAwYjY1Ni4u
MjgxYWQ3MWE1MGQwYWFlNDc0ZWUzNDg4MzE4ZjllYjdkMThjNGNiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUnVsZUltcG9ydC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJDYWNo
ZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgpAQCAtMTE4
LDcgKzExNyw3IEBAIHZvaWQgU3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVldCgpCiAg
ICAgfQogCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGFic1VSTCksIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsKLSAgICByZXF1ZXN0LnNl
dEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzKTsKKyAgICBy
ZXF1ZXN0LnNldEluaXRpYXRvcihDU1NJbml0aWF0b3IpOwogICAgIGlmIChtX3BhcmVudFN0eWxl
U2hlZXQtPmlzVXNlclN0eWxlU2hlZXQoKSkKICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGNhY2hl
ZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQocmVxdWVzdCk7CiAgICAg
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUu
Y3BwCmluZGV4IDZhMzZhZDczYzA2ZWJkOWY0YjllNTZmZTc2MzM0YmQ5NjdkOTg0NDAuLmEyOGU5
NzRkNTNhOTZmMTMxY2E0ZWQ3ZjUyYmNmMmIwZWU5NThmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAK
ICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJDYWNoZWRTVkdEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAKQEAgLTU1LDcgKzU0LDcgQEAgQ2FjaGVkU1ZHRG9j
dW1lbnQqIFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWU6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqIGxvYWRlcikKICAgICAgICAgbV9sb2FkUmVxdWVzdGVkID0gdHJ1ZTsKIAogICAgICAgICBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5kb2N1
bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0
b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcyk7CisgICAgICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9yKENTU0luaXRpYXRvcik7CiAgICAgICAgIG1fZG9jdW1lbnQgPSBsb2Fk
ZXItPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCmluZGV4IDdjOWE4ZWRhOGNhNTMyNGJjOWNk
N2JhYTI4ZjI4NmMxZGI1NTkwZDcuLjg1Zjg3ZTllYzIzZTYyYzE0MGJiZDQ2NDNmNjYyYjZkZjQ1
OTYwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcApA
QCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCi0j
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkU2hhZGVy
LmgiCkBAIC02OCw3ICs2Nyw3IEBAIFN0eWxlQ2FjaGVkU2hhZGVyKiBXZWJLaXRDU1NTaGFkZXJW
YWx1ZTo6Y2FjaGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkCiAgICAgICAgIG1f
YWNjZXNzZWRTaGFkZXIgPSB0cnVlOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChjb21wbGV0ZVVSTChsb2FkZXIpKSk7Ci0gICAgICAgIHJl
cXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3Mp
OworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihDU1NJbml0aWF0b3IpOwogICAgICAgICBp
ZiAoQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBjYWNoZWRTaGFkZXIgPSBsb2Fk
ZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkpCiAgICAgICAgICAgICBtX3NoYWRlciA9IFN0eWxl
Q2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVkU2hhZGVyLmdldCgpKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMjNmMGY2NTJmZjJiNDgwOGVmOWZhZmE5ZmYz
OWMwOWY5NTdjNWM2Mi4uMDAxNDVjMWQ2YTUzYzRjZDEwMWIwZTg0YWQxNTE0M2ExMTdiN2IzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjY4LDcgKzI2OCw3IEBAIGJv
b2wgU2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCkK
ICAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJs
ZVJlc291cmNlUmVxdWVzdCgpLCBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIGFsbG93Q3JlZGVudGlhbHMpOwogICAgICAgICB9CiAgICAgICAgIHJlcXVlc3Quc2V0Q2hh
cnNldChzY3JpcHRDaGFyc2V0KCkpOwotICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihlbGVt
ZW50KCkpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihTY3JpcHRJbml0aWF0b3IpOwog
CiAgICAgICAgIG1fY2FjaGVkU2NyaXB0ID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U2NyaXB0KHJlcXVlc3QpOwogICAgICAgICBtX2lzRXh0
ZXJuYWxTY3JpcHQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Qm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3Bw
CmluZGV4IDQ3ZWQ2NGQwZjY0YmNhNGI4MGY4MTFiMGNhMzcyMzUxNjMzN2FiMTAuLjE5YzI1YjNl
ZTA0NGZkNzZhNTNkYTM1NmZhZDMxNjcwNjQ1YjdjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKQEAgLTc1LDcgKzc1LDYgQEAgdm9pZCBIVE1MQm9keUVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JgogICAgICAgICBTdHJpbmcgdXJsID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2Vz
KHZhbHVlKTsKICAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBSZWZQ
dHI8Q1NTSW1hZ2VWYWx1ZT4gaW1hZ2VWYWx1ZSA9IENTU0ltYWdlVmFsdWU6OmNyZWF0ZShkb2N1
bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpLnN0cmluZygpKTsKLSAgICAgICAgICAgIGltYWdlVmFs
dWUtPnNldEluaXRpYXRvcihsb2NhbE5hbWUoKSk7CiAgICAgICAgICAgICBzdHlsZS0+c2V0UHJv
cGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2UsIGltYWdlVmFsdWUu
cmVsZWFzZSgpKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbWFyZ2lud2lk
dGhBdHRyIHx8IG5hbWUgPT0gbGVmdG1hcmdpbkF0dHIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcAppbmRleCBkZjczMTcyMWNhZjU5OTQxZTc2NTZkMzZjMjRhMzZmMDcx
ZWYxOWMyLi4yOTAxMzlhZTNlYmE5NjE3YWQwMTdjNjdjZjJkODg5ZTM3MmY3OWNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0yMTgsNyArMjE4LDcgQEAgdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogICAgICAgICAvLyBMb2FkIHN0eWxlc2hlZXRz
IHRoYXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1tZWRpYXRlbHkgd2l0aCBs
b3cgcHJpb3JpdHkuCiAgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gYmxv
Y2tpbmcgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBSZXNvdXJjZUxvYWRQcmlv
cml0eVZlcnlMb3c7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291
cmNlUmVxdWVzdChkb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKSwgY2hhcnNldCwgcHJpb3Jp
dHkpOwotICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcih0aGlzKTsKKyAgICAgICAgcmVxdWVz
dC5zZXRJbml0aWF0b3IoTGlua0luaXRpYXRvcik7CiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBk
b2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0Q1NTU3R5bGVTaGVldChy
ZXF1ZXN0KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hlZFNoZWV0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IDUyN2Jl
ZjY4YmZmMzViYTgyMGYwMjk4ZjVjNmVhYjEzY2Q2NTA3YTguLjlmNDI3ZjYzNzg0Yjk0NDRhYjYx
YTRmZTA3NGQ3NWM0MmQ3ODlhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJDU1NQcmVsb2FkU2Nhbm5lci5oIgogCi0jaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvci5oIgogI2luY2x1ZGUgIkhUTUxJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgogCkBAIC0yMjQsNyArMjI0LDcgQEAgdm9pZCBDU1NQcmVsb2Fk
U2Nhbm5lcjo6ZW1pdFJ1bGUoKQogICAgICAgICBTdHJpbmcgdXJsID0gcGFyc2VDU1NTdHJpbmdP
clVSTChtX3J1bGVWYWx1ZS5kYXRhKCksIG1fcnVsZVZhbHVlLnNpemUoKSk7CiAgICAgICAgIGlm
ICghdXJsLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgS1VSTCBiYXNlRWxlbWVudFVSTDsgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIGJlIHBhc3NlZCBpbiBmcm9tIHRoZSBIVE1MUHJlbG9hZFNjYW5l
ciB2aWEgc2NhbigpIQotICAgICAgICAgICAgT3duUHRyPFByZWxvYWRSZXF1ZXN0PiByZXF1ZXN0
ID0gUHJlbG9hZFJlcXVlc3Q6OmNyZWF0ZSgiY3NzIiwgdXJsLCBiYXNlRWxlbWVudFVSTCwgQ2Fj
aGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpOworICAgICAgICAgICAgT3duUHRyPFByZWxvYWRS
ZXF1ZXN0PiByZXF1ZXN0ID0gUHJlbG9hZFJlcXVlc3Q6OmNyZWF0ZShDU1NJbml0aWF0b3IsIHVy
bCwgYmFzZUVsZW1lbnRVUkwsIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KTsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSBpbmNsdWRpbmcgdGhlIGNoYXJzZXQgaW4g
dGhlIHByZWxvYWQgcmVxdWVzdD8KICAgICAgICAgICAgIG1fcmVxdWVzdHMtPmFwcGVuZChyZXF1
ZXN0LnJlbGVhc2UoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IGUwMTFlYTI5YTBiZGVhZDdmOGY5NmFi
NjBkYTlkNjRkZTYwMTZjOWEuLjhkZGZhOWE5MzQ0OWRjZDJiMTkyN2Y1YTVhZTMwZTU4NWVhY2Rm
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nh
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2Fu
bmVyLmNwcApAQCAtODQsMjYgKzg0LDI1IEBAIFRva2VuUHJlbG9hZFNjYW5uZXI6OlRhZ0lkIFRv
a2VuUHJlbG9hZFNjYW5uZXI6OnRhZ0lkRm9yKGNvbnN0IEhUTUxJZGVudGlmaWVyJiB0CiB9CiAj
ZW5kaWYKIAotU3RyaW5nIFRva2VuUHJlbG9hZFNjYW5uZXI6OmluaXRpYXRvckZvcihUYWdJZCB0
YWdJZCkKK0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBUb2tlblByZWxvYWRTY2FubmVy
Ojppbml0aWF0b3JGb3IoVGFnSWQgdGFnSWQpCiB7CiAgICAgc3dpdGNoICh0YWdJZCkgewogICAg
IGNhc2UgSW1nVGFnSWQ6Ci0gICAgICAgIHJldHVybiAiaW1nIjsKKyAgICAgICAgcmV0dXJuIElt
YWdlSW5pdGlhdG9yOwogICAgIGNhc2UgSW5wdXRUYWdJZDoKLSAgICAgICAgcmV0dXJuICJpbnB1
dCI7CisgICAgICAgIHJldHVybiBPdGhlckluaXRpYXRvcjsKICAgICBjYXNlIExpbmtUYWdJZDoK
LSAgICAgICAgcmV0dXJuICJsaW5rIjsKKyAgICAgICAgcmV0dXJuIExpbmtJbml0aWF0b3I7CiAg
ICAgY2FzZSBTY3JpcHRUYWdJZDoKLSAgICAgICAgcmV0dXJuICJzY3JpcHQiOworICAgICAgICBy
ZXR1cm4gU2NyaXB0SW5pdGlhdG9yOwogICAgIGNhc2UgVW5rbm93blRhZ0lkOgogICAgIGNhc2Ug
U3R5bGVUYWdJZDoKICAgICBjYXNlIEJhc2VUYWdJZDoKICAgICBjYXNlIFRlbXBsYXRlVGFnSWQ6
CisgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybiAidW5rbm93biI7CisgICAgICAgIHJldHVybiBPdGhlckluaXRpYXRvcjsKICAgICB9Ci0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuICJ1bmtub3duIjsKIH0KIAogY2xh
c3MgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6U3RhcnRUYWdTY2FubmVyIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmgKaW5kZXggZDJmMmMxMTg5YzI1
ZjUwZGIyOTIzZmZiMzRhNzEyNmU0MjdhM2IyOS4uODljOTY2ZGViZTcyNWM5MTQ4MzViNWVkZjI2
OTE5YzRhNDlmMTgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFByZWxvYWRTY2FubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBy
ZWxvYWRTY2FubmVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgSFRNTFByZWxvYWRTY2Fu
bmVyX2gKIAogI2luY2x1ZGUgIkNTU1ByZWxvYWRTY2FubmVyLmgiCisjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmgiCiAjaW5jbHVkZSAiQ29tcGFjdEhUTUxUb2tlbi5o
IgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgpA
QCAtODgsNyArODksNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBUYWdJZCB0YWdJZEZvcihjb25z
dCBIVE1MVG9rZW46OkRhdGFWZWN0b3ImKTsKICAgICBzdGF0aWMgVGFnSWQgdGFnSWRGb3IoY29u
c3QgSFRNTElkZW50aWZpZXImKTsKIAotICAgIHN0YXRpYyBTdHJpbmcgaW5pdGlhdG9yRm9yKFRh
Z0lkKTsKKyAgICBzdGF0aWMgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIGluaXRpYXRv
ckZvcihUYWdJZCk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUb2tlbj4KICAgICB2b2lkIHVw
ZGF0ZVByZWRpY3RlZEJhc2VVUkwoY29uc3QgVG9rZW4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuY3BwCmluZGV4IGZhNWFkZmJl
NjkwMzYzZGNmNmI1OWEwMzIwN2YxNDViMjU0MDlmMDIuLjFjZjAxZjk3MTE5ZWVmMTgxMTNlMWJj
ZDNkZDY4YzAxYTVlMTc3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmNwcApAQCAtMzMsOCArMzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGJvb2wgUHJlbG9hZFJlcXVlc3Q6OmlzU2FmZVRvU2VuZFRvQW5vdGhlclRo
cmVhZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faW5pdGlhdG9yLmlzU2FmZVRvU2VuZFRvQW5v
dGhlclRocmVhZCgpCi0gICAgICAgICYmIG1fY2hhcnNldC5pc1NhZmVUb1NlbmRUb0Fub3RoZXJU
aHJlYWQoKQorICAgIHJldHVybiBtX2NoYXJzZXQuaXNTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFk
KCkKICAgICAgICAgJiYgbV9yZXNvdXJjZVVSTC5pc1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQo
KQogICAgICAgICAmJiBtX2Jhc2VVUkwuaXNTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVs
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRl
ci5oCmluZGV4IDIyZWFhM2EwMDMxYzhjYjQ3OTE3MjA3ZDE4ZWY1ZmMzOTllMjdhNjIuLjFhZjI4
MDI0MmJiZWY5MTk1MDlmOTUwMTBkMWUwOWIxZDc5NWNmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oCkBAIC0zMyw3ICszMyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUHJlbG9hZFJlcXVlc3QgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFByZWxvYWRSZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBpbml0aWF0b3IsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkwsIGNvbnN0IEtVUkwmIGJh
c2VVUkwsIENhY2hlZFJlc291cmNlOjpUeXBlIHJlc291cmNlVHlwZSkKKyAgICBzdGF0aWMgUGFz
c093blB0cjxQcmVsb2FkUmVxdWVzdD4gY3JlYXRlKENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvciBpbml0aWF0b3IsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkwsIGNvbnN0IEtVUkwmIGJh
c2VVUkwsIENhY2hlZFJlc291cmNlOjpUeXBlIHJlc291cmNlVHlwZSkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgUHJlbG9hZFJlcXVlc3QoaW5pdGlhdG9yLCByZXNvdXJjZVVS
TCwgYmFzZVVSTCwgcmVzb3VyY2VUeXBlKSk7CiAgICAgfQpAQCAtNDgsNyArNDgsNyBAQCBwdWJs
aWM6CiAgICAgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgcmVzb3VyY2VUeXBlKCkgY29uc3QgeyByZXR1
cm4gbV9yZXNvdXJjZVR5cGU7IH0KIAogcHJpdmF0ZToKLSAgICBQcmVsb2FkUmVxdWVzdChjb25z
dCBTdHJpbmcmIGluaXRpYXRvciwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgY29uc3QgS1VS
TCYgYmFzZVVSTCwgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgcmVzb3VyY2VUeXBlKQorICAgIFByZWxv
YWRSZXF1ZXN0KENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBpbml0aWF0b3IsIGNvbnN0
IFN0cmluZyYgcmVzb3VyY2VVUkwsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIENhY2hlZFJlc291cmNl
OjpUeXBlIHJlc291cmNlVHlwZSkKICAgICAgICAgOiBtX2luaXRpYXRvcihpbml0aWF0b3IpCiAg
ICAgICAgICwgbV9yZXNvdXJjZVVSTChyZXNvdXJjZVVSTC5pc29sYXRlZENvcHkoKSkKICAgICAg
ICAgLCBtX2Jhc2VVUkwoYmFzZVVSTC5jb3B5KCkpCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6
CiAKICAgICBLVVJMIGNvbXBsZXRlVVJMKERvY3VtZW50Kik7CiAKLSAgICBTdHJpbmcgbV9pbml0
aWF0b3I7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIG1faW5pdGlhdG9yOwog
ICAgIFN0cmluZyBtX3Jlc291cmNlVVJMOwogICAgIEtVUkwgbV9iYXNlVVJMOwogICAgIFN0cmlu
ZyBtX2NoYXJzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuY3BwCmluZGV4IGU4ZmUwMTg1ZWM4MWQ2ZTFlMzg1NzAxNDI2ODE5NzkxNjE3
ZTc3YmIuLmJhZmFiY2IwYjJiNzk5ZjczZDMyZmI5MGE1M2I4ZTk3OGI3MTBmNDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBA
IC0zNzcsOSArMzc3LDggQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2VjdXIKICAgICAgICAgfQogCiAg
ICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KHJlcXVlc3QsIG9wdGlvbnMp
OwotI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCiAgICAgICAgIG5ld1JlcXVlc3Quc2V0SW5p
dGlhdG9yKG1fb3B0aW9ucy5pbml0aWF0b3IpOwotI2VuZGlmCisKICAgICAgICAgQVNTRVJUKCFt
X3Jlc291cmNlKTsKICAgICAgICAgbV9yZXNvdXJjZSA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291
cmNlTG9hZGVyKCktPnJlcXVlc3RSYXdSZXNvdXJjZShuZXdSZXF1ZXN0KTsKICAgICAgICAgaWYg
KG1fcmVzb3VyY2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IDRh
YzhjNDc2ZDg5MzU5Y2I3MDdmNjBkNDJkNjAyOGY1MjU4MzMyOTAuLjc1OWMwZWIyYTliNDc1YTQy
ODc3NThjMjQ4YzM4ZmNkYTAxZDNjYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVy
LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVt
ZW50KCkKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gbmV3SW1hZ2UgPSAw
OwogICAgIGlmICghYXR0ci5pc051bGwoKSAmJiAhc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1M
U3BhY2VzKGF0dHIpLmlzRW1wdHkoKSkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKHNvdXJjZVVSSShh
dHRyKSkpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoZWxlbWVudCgpKTsKKyAgICAg
ICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoSW1hZ2VJbml0aWF0b3IpOwogCiAgICAgICAgIFN0cmlu
ZyBjcm9zc09yaWdpbk1vZGUgPSBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVz
Ojpjcm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCmluZGV4IGI5YmNjZDliMmEwNDUz
MTUyNGZlOGIyYzRmZjMwMjkxYTE4NjMxZmEuLmEzNjMzNjZjYzRhMmUxZGQ5ODEzODZjZDgwYzhi
YjY2NGNkMWVjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTExNiw2
ICsxMTYsNyBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1
dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgU3RyaW5nJiB0eQogICAgICAgICAgICAgdHlwZSA9IENh
Y2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2U7CiAgICAgICAgIH0KICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IGxpbmtSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC0+Y29t
cGxldGVVUkwoaHJlZikpLCBwcmlvcml0eSk7CisgICAgICAgIGxpbmtSZXF1ZXN0LnNldEluaXRp
YXRvcihMaW5rSW5pdGlhdG9yKTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtS
ZXNvdXJjZSkgewogICAgICAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2UtPnJlbW92ZUNsaWVu
dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRl
eCA0YTJjZjdiZTMyYjNkNzI5OWRmY2U5NWU4ZDk3YjljOTFmNmVjOTE3Li40ZGMxMzhjNWVkNWY3
ODYwOGFjNTc1OTJkNjVhMWI3NzZkNTc4OTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Ro
cmVhZGFibGVMb2FkZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IFRocmVhZGFibGVMb2FkZXJPcHRpb25zOjpUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucygpCiAgICAg
OiBwcmVmbGlnaHRQb2xpY3koQ29uc2lkZXJQcmVmbGlnaHQpCiAgICAgLCBjcm9zc09yaWdpblJl
cXVlc3RQb2xpY3koRGVueUNyb3NzT3JpZ2luUmVxdWVzdHMpCisgICAgLCBpbml0aWF0b3IoT3Ro
ZXJJbml0aWF0b3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9U
aHJlYWRhYmxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRl
ci5oCmluZGV4IDBjOWEwZjI1MzRlNDcxMTQ0NjBhZjE3YWY2ZjE5OWI5ZDBjYjFhOGYuLjc1MGVh
ZmFiZTgxN2MwYWZlNjJiNGI0ZjdjNjk1Mzg5ODQyNTk4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1RocmVhZGFibGVMb2FkZXIuaApAQCAtMzEsMTYgKzMxLDEzIEBACiAjaWZuZGVmIFRocmVh
ZGFibGVMb2FkZXJfaAogI2RlZmluZSBUaHJlYWRhYmxlTG9hZGVyX2gKIAorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVy
T3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAotI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCi0jaW5jbHVkZSA8d3RmL3RleHQv
QXRvbWljU3RyaW5nLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgUmVzb3VyY2VFcnJvcjsKQEAgLTY5LDkgKzY2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5OyAvLyBJZiBBY2Nlc3NDb250
cm9sIGlzIHVzZWQsIGhvdyB0byBkZXRlcm1pbmUgaWYgYSBwcmVmbGlnaHQgaXMgbmVlZGVkLgog
ICAgICAgICBDcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5
OwogICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luOwotI2lmIEVO
QUJMRShSRVNPVVJDRV9USU1JTkcpCi0gICAgICAgIEF0b21pY1N0cmluZyBpbml0aWF0b3I7Ci0j
ZW5kaWYKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIGluaXRpYXRvcjsK
ICAgICB9OwogCiAgICAgLy8gVXNlZnVsIGZvciBkb2luZyBsb2FkZXIgb3BlcmF0aW9ucyBmcm9t
IGFueSB0aHJlYWQgKG5vdCB0aHJlYWRzYWZlLCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDg5ODliZjExYzRmNzc4
MjVlNjM1MDk5NzJiMTBlNTc0OWQ4ODFkNzUuLmVlMTA5MzNhMzdhMzZhOTE2ZTUwODNkM2ZiMWNj
ZTE3NWU5MmE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNTU2LDExICs1NTYsMTEgQEAgdm9pZCBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6c3RvcmVSZXNvdXJjZVRpbWluZ0luaXRpYXRvckluZm9ybWF0aW9uKGNv
bnN0IENhY2hlZFIKICAgICBpZiAocmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6
TWFpblJlc291cmNlKSB7CiAgICAgICAgIC8vIDxpZnJhbWU+cyBzaG91bGQgcmVwb3J0IHRoZSBp
bml0aWFsIG5hdmlnYXRpb24gcmVxdWVzdGVkIGJ5IHRoZSBwYXJlbnQgZG9jdW1lbnQsIGJ1dCBu
b3Qgc3Vic2VxdWVudCBuYXZpZ2F0aW9ucy4KICAgICAgICAgaWYgKGZyYW1lKCktPm93bmVyRWxl
bWVudCgpICYmIG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgp
LT5jb21taXR0aW5nRmlyc3RSZWFsTG9hZCgpKSB7Ci0gICAgICAgICAgICBJbml0aWF0b3JJbmZv
IGluZm8gPSB7IGZyYW1lKCktPm93bmVyRWxlbWVudCgpLT5sb2NhbE5hbWUoKSwgbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCkgfTsKKyAgICAgICAgICAgIEluaXRpYXRvckluZm8gaW5mbyA9
IHsgU3ViZG9jdW1lbnRJbml0aWF0b3IsIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIH07
CiAgICAgICAgICAgICBtX2luaXRpYXRvck1hcC5hZGQocmVzb3VyY2UuZ2V0KCksIGluZm8pOwog
ICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgSW5pdGlhdG9ySW5mbyBpbmZvID0geyBy
ZXF1ZXN0LmluaXRpYXRvck5hbWUoKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgfTsK
KyAgICAgICAgSW5pdGlhdG9ySW5mbyBpbmZvID0geyByZXF1ZXN0LmluaXRpYXRvcigpLCBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSB9OwogICAgICAgICBtX2luaXRpYXRvck1hcC5hZGQo
cmVzb3VyY2UuZ2V0KCksIGluZm8pOwogICAgIH0KIH0KQEAgLTc1OSw3ICs3NTksNyBAQCB2b2lk
IENhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkRG9uZShDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Up
CiAgICAgICAgICAgICAgICAgaW5pdGlhdG9yRG9jdW1lbnQgPSBkb2N1bWVudCgpLT5wYXJlbnRE
b2N1bWVudCgpOwogICAgICAgICAgICAgQVNTRVJUKGluaXRpYXRvckRvY3VtZW50KTsKICAgICAg
ICAgICAgIGNvbnN0IEluaXRpYXRvckluZm8mIGluZm8gPSBpbml0aWF0b3JJdC0+dmFsdWU7Ci0g
ICAgICAgICAgICBpbml0aWF0b3JEb2N1bWVudC0+ZG9tV2luZG93KCktPnBlcmZvcm1hbmNlKCkt
PmFkZFJlc291cmNlVGltaW5nKGluZm8ubmFtZSwgaW5pdGlhdG9yRG9jdW1lbnQsIHJlc291cmNl
LT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3VyY2UtPnJlc3BvbnNlKCksIGluZm8uc3RhcnRUaW1l
LCByZXNvdXJjZS0+bG9hZEZpbmlzaFRpbWUoKSk7CisgICAgICAgICAgICBpbml0aWF0b3JEb2N1
bWVudC0+ZG9tV2luZG93KCktPnBlcmZvcm1hbmNlKCktPmFkZFJlc291cmNlVGltaW5nKGluZm8u
aW5pdGlhdG9yLCBpbml0aWF0b3JEb2N1bWVudCwgcmVzb3VyY2UtPnJlc291cmNlUmVxdWVzdCgp
LCByZXNvdXJjZS0+cmVzcG9uc2UoKSwgaW5mby5zdGFydFRpbWUsIHJlc291cmNlLT5sb2FkRmlu
aXNoVGltZSgpKTsKICAgICAgICAgICAgIG1faW5pdGlhdG9yTWFwLnJlbW92ZShpbml0aWF0b3JJ
dCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCmluZGV4IDBlNTg2ODhhNWRjNGI1M2UyODdjZjVhYWEx
MDZiZTkzZTA0YjcxMWQuLmFkNjFmMzc2ODczOTVmMzU5OGU0ODJlZTk5Zjc2NTBhZDU3ODk4NzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5oCkBAIC0xNzksNyArMTc5LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9USU1JTkcpCiAgICAgc3RydWN0IEluaXRpYXRvckluZm8gewotICAgICAgICBBdG9taWNTdHJp
bmcgbmFtZTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIGluaXRpYXRv
cjsKICAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKICAgICB9OwogICAgIEhhc2hNYXA8Q2FjaGVk
UmVzb3VyY2UqLCBJbml0aWF0b3JJbmZvPiBtX2luaXRpYXRvck1hcDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXgg
NTVhNDkzODU5ZWYyMjMxOTYwNzY0ZGIxNzA2OGNjMTgyNDFiMGY2Yy4uYzkyYTU2ZDkxYTY2YmUy
NDdhZjI4MzE4YjQ0NzM5ODUyZjkwZjFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXUKICAgICAsIG1fcHJpb3JpdHkocHJpb3JpdHkpCiAgICAg
LCBtX2ZvclByZWxvYWQoZmFsc2UpCiAgICAgLCBtX2RlZmVyKE5vRGVmZXIpCisgICAgLCBtX2lu
aXRpYXRvcihPdGhlckluaXRpYXRvcikKIHsKIH0KIApAQCAtNDgsNiArNDksNyBAQCBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlc291cmNlUmVxdQogICAgICwgbV9wcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eVVu
cmVzb2x2ZWQpCiAgICAgLCBtX2ZvclByZWxvYWQoZmFsc2UpCiAgICAgLCBtX2RlZmVyKE5vRGVm
ZXIpCisgICAgLCBtX2luaXRpYXRvcihPdGhlckluaXRpYXRvcikKIHsKIH0KIApAQCAtNTcsNiAr
NTksNyBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdQogICAgICwgbV9wcmlvcml0eShwcmlvcml0
eSkKICAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKICAgICAsIG1fZGVmZXIoTm9EZWZlcikKKyAg
ICAsIG1faW5pdGlhdG9yKE90aGVySW5pdGlhdG9yKQogewogfQogCkBAIC02NCwyNyArNjcsNCBA
QCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6On5DYWNoZWRSZXNvdXJjZVJlcXVlc3QoKQogewogfQog
Ci12b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCkKLXsKLSAgICBBU1NFUlQoIW1faW5pdGlhdG9yRWxlbWVudCAmJiBtX2lu
aXRpYXRvck5hbWUuaXNFbXB0eSgpKTsKLSAgICBtX2luaXRpYXRvckVsZW1lbnQgPSBlbGVtZW50
OwotfQotCi12b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9yKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSkKLXsKLSAgICBBU1NFUlQoIW1faW5pdGlhdG9yRWxlbWVudCAmJiBt
X2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKTsKLSAgICBtX2luaXRpYXRvck5hbWUgPSBuYW1lOwot
fQotCi1jb25zdCBBdG9taWNTdHJpbmcmIENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9y
TmFtZSgpIGNvbnN0Ci17Ci0gICAgaWYgKG1faW5pdGlhdG9yRWxlbWVudCkKLSAgICAgICAgcmV0
dXJuIG1faW5pdGlhdG9yRWxlbWVudC0+bG9jYWxOYW1lKCk7Ci0gICAgaWYgKCFtX2luaXRpYXRv
ck5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbV9pbml0aWF0b3JOYW1lOwotCi0gICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRlZmF1bHROYW1lLCAoInJlc291cmNl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHJldHVybiBkZWZh
dWx0TmFtZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IDAxMjJjOTk1
OGQxYTU3ZWE5OGIwMzIyNzU3MzQyNjM2NGU3NjAyMDMuLjk1ZTU3ODk3OWRhNjdhYjVkMGUyYjUw
OTdjM2EwOGMzNGI3NzdlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0X2gKICNkZWZpbmUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0X2gKIAor
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZGVyT3B0aW9ucy5oIgpAQCAtNTcsOSArNTgsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRGb3JQcmVsb2FkKGJvb2wgZm9yUHJlbG9hZCkgeyBtX2ZvclByZWxvYWQgPSBmb3JQcmVs
b2FkOyB9CiAgICAgRGVmZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyOyB9
CiAgICAgdm9pZCBzZXREZWZlcihEZWZlck9wdGlvbiBkZWZlcikgeyBtX2RlZmVyID0gZGVmZXI7
IH0KLSAgICB2b2lkIHNldEluaXRpYXRvcihQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKLSAgICB2b2lk
IHNldEluaXRpYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpOwotICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgaW5pdGlhdG9yTmFtZSgpIGNvbnN0OworICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvciBpbml0aWF0b3IoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYXRvcjsgfQorICAg
IHZvaWQgc2V0SW5pdGlhdG9yKENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBpbml0aWF0
b3IpIHsgbV9pbml0aWF0b3IgPSBpbml0aWF0b3I7IH0KIAogcHJpdmF0ZToKICAgICBSZXNvdXJj
ZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CkBAIC02OCw4ICs2OCw3IEBAIHByaXZhdGU6CiAg
ICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlvcml0eTsKICAgICBib29sIG1fZm9yUHJlbG9h
ZDsKICAgICBEZWZlck9wdGlvbiBtX2RlZmVyOwotICAgIFJlZlB0cjxFbGVtZW50PiBtX2luaXRp
YXRvckVsZW1lbnQ7Ci0gICAgQXRvbWljU3RyaW5nIG1faW5pdGlhdG9yTmFtZTsKKyAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IgbV9pbml0aWF0b3I7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJhNTIyN2Fi
MWFmZjMyZWUwZTZmZDU5ZGEyYTQwZWZmOWQ3NmVjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IuaApA
QCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JfaAorI2RlZmluZSBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JfaAorCisjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIHsKKyAgICBDU1NJbml0aWF0
b3IgPSAwLAorICAgIEVtYmVkSW5pdGlhdG9yLAorICAgIEltYWdlSW5pdGlhdG9yLAorICAgIExp
bmtJbml0aWF0b3IsCisgICAgT2JqZWN0SW5pdGlhdG9yLAorICAgIFNjcmlwdEluaXRpYXRvciwK
KyAgICBTdWJkb2N1bWVudEluaXRpYXRvciwKKyAgICBTVkdJbml0aWF0b3IsCisgICAgWE1MSHR0
cFJlcXVlc3RJbml0aWF0b3IsCisgICAgT3RoZXJJbml0aWF0b3IKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDkxYTE3YjY2YjAzZTdmYzc3YTE5NDdhNDdhNzJmZGFmNmM3NDRkM2EuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMoKQotICAgIDogY3NzKCJjc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKQotICAgICwgaWNvbigiaWNvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpCi0gICAgLCB4bWxodHRwcmVxdWVzdCgieG1saHR0cHJlcXVlc3QiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRh
YzIzODdkYjRhNGNhMzFkODMxMDAxZmU0MWMzNTM4MTc1ZWQ2Mi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnNfaAotI2Rl
ZmluZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzX2gKLQotI2luY2x1ZGUgIlRocmVh
ZEdsb2JhbERhdGEuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1zdHJ1Y3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cyB7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nIGNzczsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcg
aWNvbjsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcgeG1saHR0cHJlcXVlc3Q7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotcHJpdmF0ZToKLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzKCk7Ci0gICAgZnJpZW5kIGNsYXNzIFRocmVhZEdsb2JhbERhdGE7Ci19OwotCi1pbmxp
bmUgY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyYgY2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9ycygpCi17Ci0gICAgcmV0dXJuIHRocmVhZEdsb2JhbERhdGEoKS5jYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29u
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCmlu
ZGV4IDE4NTU4NTQ3ZWIwNDU5Mjk2YTY4NjVmMDUyYTBmYWVlYjdkNDU3YzAuLjc5MWNkM2NmZDc0
OTI3OGUwNjIzMDAyNGI1Zjc3NzE1ZjY2Nzk3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25Mb2FkZXIuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmF3
UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTY4LDcgKzY3LDYgQEAgdm9pZCBJY29uTG9h
ZGVyOjpzdGFydExvYWRpbmcoKQogICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgp
LnNldFRhcmdldFR5cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOwogI2VuZGlm
CiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0UHJpb3JpdHkoUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlMb3cpOwotICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5pY29uKTsKIAogICAgIG1fcmVzb3VyY2UgPSBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2Uo
cmVxdWVzdCk7CiAgICAgaWYgKG1fcmVzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2Uu
Y3BwCmluZGV4IDI4YzJhNDYzNjIzNDk5YTdiZGQ3ZGFhODlmMmYwMWExYjAzZTdiOGYuLjc3MTZm
YTcyY2U5NzYyNzMwN2EzZDViNmZkM2ZlM2ZlZmVlYmYwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2UuY3BwCkBAIC0xODQsMTMgKzE4NCwxMiBAQCB2b2lkIFBlcmZvcm1hbmNlOjp3ZWJr
aXRTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5zaWduZWQgc2l6ZSkKICAgICAgICAgZGlz
cGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRyZXNvdXJjZXRpbWlu
Z2J1ZmZlcmZ1bGxFdmVudCwgZmFsc2UsIGZhbHNlKSk7CiB9CiAKLXZvaWQgUGVyZm9ybWFuY2U6
OmFkZFJlc291cmNlVGltaW5nKGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yTmFtZSwgRG9jdW1lbnQq
IGluaXRpYXRvckRvY3VtZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJs
ZSBmaW5pc2hUaW1lKQordm9pZCBQZXJmb3JtYW5jZTo6YWRkUmVzb3VyY2VUaW1pbmcoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIGluaXRpYXRvciwgRG9jdW1lbnQqIGluaXRpYXRvckRv
Y3VtZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5pc2hUaW1l
KQogewogICAgIGlmIChpc1Jlc291cmNlVGltaW5nQnVmZmVyRnVsbCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gZW50cnkgPSBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nOjpjcmVhdGUoaW5pdGlhdG9yTmFtZSwgcmVxdWVzdCwgcmVzcG9uc2UsIGlu
aXRpYXRpb25UaW1lLCBmaW5pc2hUaW1lLCBpbml0aWF0b3JEb2N1bWVudCk7Ci0KKyAgICBSZWZQ
dHI8UGVyZm9ybWFuY2VFbnRyeT4gZW50cnkgPSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nOjpj
cmVhdGUoaW5pdGlhdG9yLCByZXF1ZXN0LCByZXNwb25zZSwgaW5pdGlhdGlvblRpbWUsIGZpbmlz
aFRpbWUsIGluaXRpYXRvckRvY3VtZW50KTsKICAgICBtX3Jlc291cmNlVGltaW5nQnVmZmVyLmFw
cGVuZChlbnRyeSk7CiAKICAgICBpZiAoaXNSZXNvdXJjZVRpbWluZ0J1ZmZlckZ1bGwoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA3NTEwMzg5NDMxMGUyNGExMjk3MDU4M2M2OGFk
YmViMWVkMjU2ZWNkLi45N2EzYjEzMzY0ZjZjNDg3OTY3YzE5YmNkMjY4YTNjZGIzY2ZlODliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zNCw2ICszNCw3IEBACiAKICNpZiBFTkFC
TEUoV0VCX1RJTUlORykKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
ci5oIgogI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKICNpbmNsdWRlICJNZW1vcnlJbmZvLmgiCkBAIC03OCw3ICs3OSw3IEBAIHB1YmxpYzoK
IAogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIod2Via2l0cmVzb3VyY2V0aW1p
bmdidWZmZXJmdWxsKTsKIAotICAgIHZvaWQgYWRkUmVzb3VyY2VUaW1pbmcoY29uc3QgU3RyaW5n
JiBpbml0aWF0b3JOYW1lLCBEb2N1bWVudCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5pc2hU
aW1lKTsKKyAgICB2b2lkIGFkZFJlc291cmNlVGltaW5nKENhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvciBpbml0aWF0b3JOYW1lLCBEb2N1bWVudCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBm
aW5pc2hUaW1lKTsKICNlbmRpZgogCiAgICAgdXNpbmcgUmVmQ291bnRlZDxQZXJmb3JtYW5jZT46
OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwCmluZGV4IDUzOTg3OGY2ZjQ3MGNmYTgwYjZhYjlmOGQwMWFjYzhhOTVkZWQ3NTIuLjUw
YTQ3ZTQxOTRjZDEwM2Q2MGQ3ZGY1M2EzMThhNGU3YjE0MTJmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcApAQCAtNzYsOSArNzYs
OSBAQCBzdGF0aWMgYm9vbCBwYXNzZXNUaW1pbmdBbGxvd0NoZWNrKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBEb2N1bWVudCogcgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyhjb25zdCBB
dG9taWNTdHJpbmcmIGluaXRpYXRvclR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGRvdWJsZSBpbml0aWF0aW9uVGlt
ZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9jdW1lbnQpCitQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKENhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvciBpbml0aWF0b3IsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGRvdWJsZSBpbml0aWF0
aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9jdW1lbnQp
CiAgICAgOiBQZXJmb3JtYW5jZUVudHJ5KHJlcXVlc3QudXJsKCkuc3RyaW5nKCksICJyZXNvdXJj
ZSIsIG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKHJlcXVlc3RpbmdEb2N1bWVu
dCwgaW5pdGlhdGlvblRpbWUpLCBtb25vdG9uaWNUaW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhy
ZXF1ZXN0aW5nRG9jdW1lbnQsIGZpbmlzaFRpbWUpKQotICAgICwgbV9pbml0aWF0b3JUeXBlKGlu
aXRpYXRvclR5cGUpCisgICAgLCBtX2luaXRpYXRvcihpbml0aWF0b3IpCiAgICAgLCBtX3RpbWlu
ZyhyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKICAgICAsIG1fZmluaXNoVGltZShmaW5p
c2hUaW1lKQogICAgICwgbV9kaWRSZXVzZUNvbm5lY3Rpb24ocmVzcG9uc2UuY29ubmVjdGlvblJl
dXNlZCgpKQpAQCAtOTEsOSArOTEsNDQgQEAgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6flBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoKQogewogfQogCi1BdG9taWNTdHJpbmcgUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6aW5pdGlhdG9yVHlwZSgpIGNvbnN0CitTdHJpbmcgUGVyZm9ybWFu
Y2VSZXNvdXJjZVRpbWluZzo6aW5pdGlhdG9yVHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
aW5pdGlhdG9yVHlwZTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgY3Nz
TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiY3NzIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNv
bnN0IFN0cmluZywgZW1iZWROYW1lLCAoQVNDSUlMaXRlcmFsKCJlbWJlZCIpKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIGltYWdlTmFtZSwgKEFTQ0lJTGl0ZXJhbCgi
aW1nIikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgbGlua05hbWUs
IChBU0NJSUxpdGVyYWwoImxpbmsiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3Qg
U3RyaW5nLCBvYmplY3ROYW1lLCAoQVNDSUlMaXRlcmFsKCJvYmplY3QiKSkpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzY3JpcHROYW1lLCAoQVNDSUlMaXRlcmFsKCJz
Y3JpcHQiKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzdWJkb2N1
bWVudE5hbWUsIChBU0NJSUxpdGVyYWwoInN1YmRvY3VtZW50IikpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3ZnTmFtZSwgKEFTQ0lJTGl0ZXJhbCgic3ZnIikpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgeG1saHR0cHJlcXVlc3ROYW1l
LCAoQVNDSUlMaXRlcmFsKCJ4bWxodHRwcmVxdWVzdCIpKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChjb25zdCBTdHJpbmcsIG90aGVyTmFtZSwgKEFTQ0lJTGl0ZXJhbCgib3RoZXIiKSkpOwor
CisgICAgc3dpdGNoIChtX2luaXRpYXRvcikgeworICAgIGNhc2UgQ1NTSW5pdGlhdG9yOgorICAg
ICAgICByZXR1cm4gY3NzTmFtZTsKKyAgICBjYXNlIEVtYmVkSW5pdGlhdG9yOgorICAgICAgICBy
ZXR1cm4gZW1iZWROYW1lOworICAgIGNhc2UgSW1hZ2VJbml0aWF0b3I6CisgICAgICAgIHJldHVy
biBpbWFnZU5hbWU7CisgICAgY2FzZSBMaW5rSW5pdGlhdG9yOgorICAgICAgICByZXR1cm4gbGlu
a05hbWU7CisgICAgY2FzZSBPYmplY3RJbml0aWF0b3I6CisgICAgICAgIHJldHVybiBvYmplY3RO
YW1lOworICAgIGNhc2UgU2NyaXB0SW5pdGlhdG9yOgorICAgICAgICByZXR1cm4gc2NyaXB0TmFt
ZTsKKyAgICBjYXNlIFN1YmRvY3VtZW50SW5pdGlhdG9yOgorICAgICAgICByZXR1cm4gc3ViZG9j
dW1lbnROYW1lOworICAgIGNhc2UgU1ZHSW5pdGlhdG9yOgorICAgICAgICByZXR1cm4gc3ZnTmFt
ZTsKKyAgICBjYXNlIFhNTEh0dHBSZXF1ZXN0SW5pdGlhdG9yOgorICAgICAgICByZXR1cm4geG1s
aHR0cHJlcXVlc3ROYW1lOworICAgIGNhc2UgT3RoZXJJbml0aWF0b3I6CisgICAgICAgIHJldHVy
biBvdGhlck5hbWU7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIG90aGVyTmFtZTsKIH0KIAogZG91YmxlIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OnJl
ZGlyZWN0U3RhcnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaAppbmRleCBlZDI0NDkyYzM1NTAxMGE4YmNmMDRiN2VjMzI3Yjg4MmY4
YzBhMmQ4Li40OWM1ODFiMGE0ZjIxYmU1OWE4YzU1Y2YxOTBhYTc5ZTlkYTM2ODg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaApAQCAtMzQs
NiArMzQsNyBAQAogCiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlORykKIAorI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlRW50
cnkuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KQEAgLTQ5LDEyICs1MCwxMiBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogCiBjbGFzcyBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIDogcHVibGljIFBlcmZvcm1hbmNlRW50cnkgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+IGNy
ZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYXRvclR5cGUsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGRvdWJsZSBp
bml0aWF0aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9j
dW1lbnQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4g
Y3JlYXRlKENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBpbml0aWF0b3IsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGRvdWJsZSBpbml0aWF0aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiByZXF1
ZXN0aW5nRG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcoaW5pdGlhdG9yVHlwZSwgcmVxdWVzdCwgcmVzcG9uc2UsIGlu
aXRpYXRpb25UaW1lLCBmaW5pc2hUaW1lLCByZXF1ZXN0aW5nRG9jdW1lbnQpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKGluaXRpYXRvciwg
cmVxdWVzdCwgcmVzcG9uc2UsIGluaXRpYXRpb25UaW1lLCBmaW5pc2hUaW1lLCByZXF1ZXN0aW5n
RG9jdW1lbnQpKTsKICAgICB9CiAKLSAgICBBdG9taWNTdHJpbmcgaW5pdGlhdG9yVHlwZSgpIGNv
bnN0OworICAgIFN0cmluZyBpbml0aWF0b3JUeXBlKCkgY29uc3Q7CiAKICAgICBkb3VibGUgcmVk
aXJlY3RTdGFydCgpIGNvbnN0OwogICAgIGRvdWJsZSByZWRpcmVjdEVuZCgpIGNvbnN0OwpAQCAt
NzEsMTIgKzcyLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNSZXNvdXJjZSgpIHsg
cmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKLSAgICBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
KGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGF0b3JUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgZG91YmxlIGluaXRpYXRpb25UaW1lLCBkb3VibGUg
ZmluaXNoVGltZSwgRG9jdW1lbnQqKTsKKyAgICBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKENh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBpbml0YXRvciwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGRvdWJsZSBpbml0aWF0aW9uVGltZSwgZG91
YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50Kik7CiAgICAgflBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcoKTsKIAogICAgIGRvdWJsZSByZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKGlu
dCBkZWx0YU1pbGxpc2Vjb25kcykgY29uc3Q7CiAKLSAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0
b3JUeXBlOworICAgIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBtX2luaXRpYXRvcjsK
ICAgICBSZWZQdHI8UmVzb3VyY2VMb2FkVGltaW5nPiBtX3RpbWluZzsKICAgICBkb3VibGUgbV9m
aW5pc2hUaW1lOwogICAgIGJvb2wgbV9kaWRSZXVzZUNvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCmluZGV4IGY0ZDU5ZGQ5ZTUxOTU1NWVm
ZGZiZmRkYmEwNTY5OTNjNjYwYmFjNmIuLjE5MzM2NTJkOTQ3OGI3MjhkNDU1ZTE5OTFlYTVlNTkz
MjU2MDY0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2Jh
bERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEu
Y3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGhy
ZWFkR2xvYmFsRGF0YS5oIgogCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycy5oIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvdW50ZXJzLmgiCkBAIC01OSw4ICs1OCw3IEBA
IFRocmVhZEdsb2JhbERhdGEqIFRocmVhZEdsb2JhbERhdGE6OnN0YXRpY0RhdGE7CiAjZW5kaWYK
IAogVGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xvYmFsRGF0YSgpCi0gICAgOiBtX2NhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMoYWRvcHRQdHIobmV3IENhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMpKQotICAgICwgbV9ldmVudE5hbWVzKGFkb3B0UHRyKG5ldyBFdmVudE5hbWVz
KSkKKyAgICA6IG1fZXZlbnROYW1lcyhhZG9wdFB0cihuZXcgRXZlbnROYW1lcykpCiAgICAgLCBt
X3RocmVhZFRpbWVycyhhZG9wdFB0cihuZXcgVGhyZWFkVGltZXJzKSkKICAgICAsIG1feG1sVHlw
ZVJlZ0V4cChhZG9wdFB0cihuZXcgWE1MTUlNRVR5cGVSZWdFeHApKQogI2lmbmRlZiBOREVCVUcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAppbmRleCBjZGJmNDVm
OGNiZDc4YTU2NTMyZWVhM2E5MGQwNDNmMjZkMDc5OTE3Li4zNmQ2OGIwN2MyMWY1ZTU0ZWRhOTQ0
M2IyOWNjZGJjNjU3YTUxYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aHJlYWRHbG9iYWxEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xv
YmFsRGF0YS5oCkBAIC01Nyw3ICs1Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
flRocmVhZEdsb2JhbERhdGEoKTsKICAgICAgICAgdm9pZCBkZXN0cm95KCk7IC8vIGNhbGxlZCBv
biB3b3JrZXJzIHRvIGNsZWFuIHVwIHRoZSBUaHJlYWRHbG9iYWxEYXRhIGJlZm9yZSB0aGUgdGhy
ZWFkIGV4aXRzLgogCi0gICAgICAgIGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMmIGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKSB7IHJldHVybiAqbV9jYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOyB9CiAgICAgICAgIEV2ZW50TmFtZXMmIGV2ZW50TmFt
ZXMoKSB7IHJldHVybiAqbV9ldmVudE5hbWVzOyB9CiAgICAgICAgIFRocmVhZFRpbWVycyYgdGhy
ZWFkVGltZXJzKCkgeyByZXR1cm4gKm1fdGhyZWFkVGltZXJzOyB9CiAgICAgICAgIFhNTE1JTUVU
eXBlUmVnRXhwJiB4bWxUeXBlUmVnRXhwKCkgeyByZXR1cm4gKm1feG1sVHlwZVJlZ0V4cDsgfQpA
QCAtNzUsNyArNzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIE93blB0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzPiBtX2Nh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM7CiAgICAgICAgIE93blB0cjxFdmVudE5hbWVz
PiBtX2V2ZW50TmFtZXM7CiAgICAgICAgIE93blB0cjxUaHJlYWRUaW1lcnM+IG1fdGhyZWFkVGlt
ZXJzOwogICAgICAgICBPd25QdHI8WE1MTUlNRVR5cGVSZWdFeHA+IG1feG1sVHlwZVJlZ0V4cDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDkyZTcyN2MxODk4
NDI4N2E0OTJkYzU1Y2MzOGEzZGE1MDJhYjE2ZGEuLjNlY2VmMDdlOGZmYzRjYjNiM2I2MDA5M2I0
MDJlMTkyMjc5ZTA0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNw
cApAQCAtODIsNyArODIsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVhclJlc291cmNl
UmVmZXJlbmNlcygpCiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJj
ZSgpCiB7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KG93bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkpOwotICAgIHJlcXVlc3Quc2V0
SW5pdGlhdG9yKHRoaXMpOworICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKFNWR0luaXRpYXRvcik7
CiAgICAgbV9jYWNoZWRJbWFnZSA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RJbWFnZShyZXF1ZXN0KTsKIAogICAgIGlmIChtX2NhY2hlZEltYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAppbmRleCAxYjU1NDQ1MzQ3
ZWE4OTJmYmVlNTZkYWYzMTZjMTgzZTUxNGJiYzk0Li4xMGMwNmU0ODNhMjIwOGYyNGM2ZjIyN2Iz
ZjY1Zjg0MmZjMzQ4M2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VVcmlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlF
bGVtZW50LmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6
bG9hZEZvbnQoKQogICAgIGlmICghaHJlZi5pc051bGwoKSkgewogICAgICAgICBDYWNoZWRSZXNv
dXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpOwogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZikpKTsKLSAgICAgICAgcmVx
dWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKFNW
R0luaXRpYXRvcik7CiAgICAgICAgIG1fY2FjaGVkRm9udCA9IGNhY2hlZFJlc291cmNlTG9hZGVy
LT5yZXF1ZXN0Rm9udChyZXF1ZXN0KTsKICAgICAgICAgaWYgKG1fY2FjaGVkRm9udCkgewogICAg
ICAgICAgICAgbV9jYWNoZWRGb250LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VXNlRWxlbWVudC5jcHAKaW5kZXggZDYzODIzZDU1MzM5NmQ4OGJhMzQ0MTJjMThlNjUxNWVhYzE0
YzFhYS4uYWI2OWMzYzllN2E1MTM0OWZjZTRjYzZjNjlmMzk4YmEwOTFmYWIyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMjUxLDcgKzI1MSw3IEBAIHZvaWQgU1ZHVXNl
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKICAgICAgICAgICAgIEtVUkwgdXJsID0gZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigp
KTsKICAgICAgICAgICAgIGlmICh1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKICAgICAg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
dXJsLnN0cmluZygpKSk7Ci0gICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhp
cyk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoU1ZHSW5pdGlhdG9yKTsK
ICAgICAgICAgICAgICAgICBzZXRDYWNoZWREb2N1bWVudChkb2N1bWVudCgpLT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVzdCkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4
IDljMWNmNmNlNDkxOTU1Y2E5OWY1MjU3ZDdhMzY0OTNmZTgxZTUxOGMuLjgzYzQ5MjNlYTNjNjAx
NzcyYjRiZDcwMjI3MmYwOWFjZThiMzlkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcApAQCAtNjYsMTAgKzY2LDYgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaWYgRU5BQkxFKFJFU09VUkNFX1RJ
TUlORykKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCi0jZW5k
aWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RG
OjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHhtbEh0dHBSZXF1ZXN0Q291bnRlciwgKCJYTUxIdHRw
UmVxdWVzdCIpKTsKQEAgLTc4Nyw3ICs3ODMsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjcmVh
dGVSZXF1ZXN0KEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1
ZXN0UG9saWN5ID0gVXNlQWNjZXNzQ29udHJvbDsKICAgICBvcHRpb25zLnNlY3VyaXR5T3JpZ2lu
ID0gc2VjdXJpdHlPcmlnaW4oKTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVElNSU5HKQotICAgIG9w
dGlvbnMuaW5pdGlhdG9yID0gY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLnhtbGh0
dHByZXF1ZXN0OworICAgIG9wdGlvbnMuaW5pdGlhdG9yID0gWE1MSHR0cFJlcXVlc3RJbml0aWF0
b3I7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShYSFJfVElNRU9VVCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5MWVjMTg5Njcz
YmFlZjgzZTgzMTA0NDM1MWM1MTBmMjg5ZjBlODkwLi43NDVmMzY1ZGIyNWJhMmZlODczMGVhYzMw
MGZlZjM3OTA2NTM0Y2QxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTMtMDYtMDMgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIENsZWFuIHVwIENhY2hl
ZFJlc291cmNlUmVxdWVzdCBpbml0aWF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTcwNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIGNoZWNraW5nIHRoZSBjb3JyZWN0IGlu
aXRpYXRvclR5cGUgYXR0cmlidXRlIHZhbHVlIG9mIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcK
KyAgICAgICAgb2JqZWN0cy4gVGhlIGFkZGVkIHRlc3RzIGNvdmVyIGNzcywgaW1nLCBsaW5rLCBz
Y3JpcHQsIHN1YmRvY3VtZW50IGFuZCB4bWxodHRwcmVxdWVzdCBpbml0aWF0b3JzLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1j
c3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVz
b3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWNzcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWltZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10
aW1pbmcvaW5pdGlhdG9yLXR5cGUtaW1nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtbGluay1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcv
aW5pdGlhdG9yLXR5cGUtbGluay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLXNjcmlwdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5p
dGlhdG9yLXR5cGUtc2NyaXB0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
cGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtc3ViZG9jdW1lbnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5n
L2luaXRpYXRvci10eXBlLXN1YmRvY3VtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUteG1saHR0cHJlcXVl
c3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVz
b3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLXhtbGh0dHByZXF1ZXN0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZXMvYWJlLnBuZzogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlcy9pZnJhbWUuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6IFJlc291cmNlIHRpbWlu
ZyBpcyBub3QgZW5hYmxlZCBmb3IgdGhlIEVGTCBwb3J0LCBzbyBza2lwIHRoZSB0ZXN0LgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOiBEaXR0byBmb3IgdGhlIEFwcGxl
IE1hYyBwb3J0LgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6IERpdHRv
IGZvciB0aGUgUXQgcG9ydC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
czogRGl0dG8gZm9yIHRoZSBBcHBsZSBXaW4gcG9ydC4KKwogMjAxMy0wNi0wMiAgR3l1eW91bmcg
S2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgRUZM
IEdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9y
ZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtY3Nz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODVmYjdkYzMwYjIwY2FhMTJlODE1YjRkMjU5NjM4
ZWMzNzg3YTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJw
ZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1jc3MtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNyBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgaW5pdGlh
dG9yVHlwZSBhdHRyaWJ1dGUgZm9yIGEgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBvYmplY3Qg
cmVwcmVzZW50aW5nIGEgcmVzb3VyY2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5pdGlhdGVkIGJ5
IHRoZSBDU1MgdXJsKCkgc3ludGF4LgorCisKK1BBU1MgJ2NzcycgaW5pdGlhdG9yIHR5cGUgZm9y
IGVudHJ5ICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvd2VicGVyZi9yZXNvdXJjZXMvYWJlLnBuZycg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10
aW1pbmcvaW5pdGlhdG9yLXR5cGUtY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWNzcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU1ZDhlMTM4NGM2MTE1YTU4ODY1MzU3MTcxMmZlNzEyYWY0YTQ5M2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRp
YXRvci10eXBlLWNzcy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5jc3MiIC8+Cis8c2NyaXB0Pgorc2V0dXAoe3RpbWVvdXQ6IDIwMDAsIGV4
cGxpY2l0X2RvbmU6IHRydWV9KTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgdmFyIHRl
c3RlZEVudHJ5TmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAiL3dlYnBlcmYvcmVzb3Vy
Y2VzL2FiZS5wbmciOworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBlbnRyaWVz
ID0gd2luZG93LnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeU5hbWUodGVzdGVkRW50cnlO
YW1lKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyaWVzLmxlbmd0aCwgMSk7CisKKyAgICAg
ICAgdmFyIGVudHJ5ID0gZW50cmllc1swXTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5u
YW1lLCB0ZXN0ZWRFbnRyeU5hbWUpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5LmluaXRp
YXRvclR5cGUsICJjc3MiKTsKKyAgICB9LCAiJ2NzcycgaW5pdGlhdG9yIHR5cGUgZm9yIGVudHJ5
ICciICsgdGVzdGVkRW50cnlOYW1lICsgIiciKTsKKworICAgIGRvbmUoKTsKK30KKzwvc2NyaXB0
PgorPHN0eWxlPgorZGl2IHsKKyAgICBiYWNrZ3JvdW5kOiB1cmwoJy93ZWJwZXJmL3Jlc291cmNl
cy9hYmUucG5nJyk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
cygpIj4KKzxoMT5EZXNjcmlwdGlvbjwvaDE+Cis8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBp
bml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIG9i
amVjdAorcmVwcmVzZW50aW5nIGEgcmVzb3VyY2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5pdGlh
dGVkIGJ5IHRoZSBDU1MgdXJsKCkgc3ludGF4LjwvcD4KKzxkaXYgaWQ9InRlc3REaXYiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1pbWctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3It
dHlwZS1pbWctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYzBjZDM5MDJmYjZiOThkMWQxODlh
YTJlNDFlYzg2M2Y4MTNjNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWltZy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4IEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRo
ZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
IG9iamVjdCByZXByZXNlbnRpbmcgYSByZXNvdXJjZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0
aWF0ZWQgYnkgdGhlIEhUTUwgPGltZz4gZWxlbWVudC4KKworCisKK1BBU1MgJ2ltZycgaW5pdGlh
dG9yIHR5cGUgZm9yIGVudHJ5ICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvd2VicGVyZi9yZXNvdXJj
ZXMvYWJlLnBuZycgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVy
Zi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtaW1nLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWltZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE1OTY1NDMzNjIxMWVlMjRhNjA4M2RhMzEyN2Q3MGQxZmNhOTIyZmMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2Ut
dGltaW5nL2luaXRpYXRvci10eXBlLWltZy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiIC8+Cis8c2NyaXB0Pgorc2V0dXAoe3RpbWVv
dXQ6IDIwMDAsIGV4cGxpY2l0X2RvbmU6IHRydWV9KTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7
CisgICAgdmFyIHRlc3RlZEVudHJ5TmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAiL3dl
YnBlcmYvcmVzb3VyY2VzL2FiZS5wbmciOworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAg
IHZhciBlbnRyaWVzID0gd2luZG93LnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeU5hbWUo
dGVzdGVkRW50cnlOYW1lKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyaWVzLmxlbmd0aCwg
MSk7CisKKyAgICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1swXTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlbnRyeS5uYW1lLCB0ZXN0ZWRFbnRyeU5hbWUpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KGVudHJ5LmluaXRpYXRvclR5cGUsICJpbWciKTsKKyAgICB9LCAiJ2ltZycgaW5pdGlhdG9yIHR5
cGUgZm9yIGVudHJ5ICciICsgdGVzdGVkRW50cnlOYW1lICsgIiciKTsKKworICAgIGRvbmUoKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzxoMT5E
ZXNjcmlwdGlvbjwvaDE+Cis8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBl
IGF0dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdAorcmVwcmVz
ZW50aW5nIGEgcmVzb3VyY2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5pdGlhdGVkIGJ5IHRoZSBI
VE1MICYjeDAwM2M7aW1nJiN4MDAzZTsgZWxlbWVudC48L3A+Cis8aW1nIHNyYz0iL3dlYnBlcmYv
cmVzb3VyY2VzL2FiZS5wbmciPjwvaW1nPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3It
dHlwZS1saW5rLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9y
ZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtbGluay1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmNlNDliM2NlMmJhMmE1YTk2NjYxNGMxZDljNDQyOGVlZjk1ZmVlMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5p
dGlhdG9yLXR5cGUtbGluay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitEZXNjcmlwdGlv
bgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3Ig
YSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdCByZXByZXNlbnRpbmcgYSByZXNvdXJj
ZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIEhUTUwgPGxpbms+IGVsZW1l
bnQuCisKKworUEFTUyAnbGluaycgaW5pdGlhdG9yIHR5cGUgZm9yIGVudHJ5ICdodHRwOi8vMTI3
LjAuMC4xOjgwMDAvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRv
ci10eXBlLWxpbmsuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJj
ZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtbGluay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5NWYxNDJjYjY4
YTUwMzQwZTkyZTY2NmM1ZTBhMTMwNjg1YzQzYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWxp
bmsuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuY3NzIiAvPgorPHNjcmlwdD4KK3NldHVwKHt0aW1lb3V0OiAyMDAwLCBleHBsaWNpdF9kb25l
OiB0cnVlfSk7CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIHZhciB0ZXN0ZWRFbnRyeU5h
bWUgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgIi93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmNzcyI7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGVudHJpZXMgPSB3aW5k
b3cucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5TmFtZSh0ZXN0ZWRFbnRyeU5hbWUpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJpZXMubGVuZ3RoLCAxKTsKKworICAgICAgICB2YXIg
ZW50cnkgPSBlbnRyaWVzWzBdOworICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5Lm5hbWUsIHRl
c3RlZEVudHJ5TmFtZSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkuaW5pdGlhdG9yVHlw
ZSwgImxpbmsiKTsKKyAgICB9LCAiJ2xpbmsnIGluaXRpYXRvciB0eXBlIGZvciBlbnRyeSAnIiAr
IHRlc3RlZEVudHJ5TmFtZSArICInIik7CisKKyAgICBkb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Cis8aDE+RGVzY3JpcHRpb248L2gxPgor
PHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgaW5pdGlhdG9yVHlwZSBhdHRyaWJ1dGUgZm9yIGEg
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBvYmplY3QKK3JlcHJlc2VudGluZyBhIHJlc291cmNl
IG9mIHdoaWNoIHJlcXVlc3Qgd2FzIGluaXRpYXRlZCBieSB0aGUgSFRNTCAmI3gwMDNjO2xpbmsm
I3gwMDNlOyBlbGVtZW50LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUt
c2NyaXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNv
dXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtc2NyaXB0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNzBhMmM0NmI3NTYwZmFmNTM5MDVlYzQwMjNlZmVmNWU4NzMzYmYzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0
aWF0b3ItdHlwZS1zY3JpcHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorRGVzY3JpcHRp
b24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgaW5pdGlhdG9yVHlwZSBhdHRyaWJ1dGUgZm9y
IGEgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBvYmplY3QgcmVwcmVzZW50aW5nIGEgcmVzb3Vy
Y2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5pdGlhdGVkIGJ5IHRoZSBIVE1MIDxzY3JpcHQ+IGVs
ZW1lbnQuCisKKworUEFTUyAnc2NyaXB0JyBpbml0aWF0b3IgdHlwZSBmb3IgZW50cnkgJ2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJyAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0
aWF0b3ItdHlwZS1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9y
ZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtc2NyaXB0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEw
MmYxYTUyNjE1ZWFlMTU4NmYwOWQ0MDIyYzE3NzVkNGIwOWM4NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9y
LXR5cGUtc2NyaXB0Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmNzcyIgLz4KKzxzY3JpcHQ+CitzZXR1cCh7dGltZW91dDogMjAwMCwgZXhw
bGljaXRfZG9uZTogdHJ1ZX0pOworCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICB2YXIgdGVz
dGVkRW50cnlOYW1lID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGVudHJp
ZXMgPSB3aW5kb3cucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5TmFtZSh0ZXN0ZWRFbnRy
eU5hbWUpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJpZXMubGVuZ3RoLCAxKTsKKworICAg
ICAgICB2YXIgZW50cnkgPSBlbnRyaWVzWzBdOworICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5
Lm5hbWUsIHRlc3RlZEVudHJ5TmFtZSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkuaW5p
dGlhdG9yVHlwZSwgInNjcmlwdCIpOworICAgIH0sICInc2NyaXB0JyBpbml0aWF0b3IgdHlwZSBm
b3IgZW50cnkgJyIgKyB0ZXN0ZWRFbnRyeU5hbWUgKyAiJyIpOworCisgICAgZG9uZSgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorPGgxPkRlc2Ny
aXB0aW9uPC9oMT4KKzxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGluaXRpYXRvclR5cGUgYXR0
cmlidXRlIGZvciBhIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgb2JqZWN0CityZXByZXNlbnRp
bmcgYSByZXNvdXJjZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIEhUTUwg
JiN4MDAzYztzY3JpcHQmI3gwMDNlOyBlbGVtZW50LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcv
aW5pdGlhdG9yLXR5cGUtc3ViZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1zdWJkb2N1bWVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU2NTkxMDA0Zjc0MjViY2RhZTIzOWI3NWQ1N2Zm
NTE4NTI4MTFjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
cGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtc3ViZG9jdW1lbnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0
aGUgaW5pdGlhdG9yVHlwZSBhdHRyaWJ1dGUgZm9yIGEgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
ZyBvYmplY3QgcmVwcmVzZW50aW5nIGEgcmVzb3VyY2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5p
dGlhdGVkIGJ5IHRoZSBIVE1MIDxmcmFtZT4gb3IgPGlmcmFtZT4gZWxlbWVudC4KKworCisKK1BB
U1MgJ3N1YmRvY3VtZW50JyBpbml0aWF0b3IgdHlwZSBmb3IgZW50cnkgJ2h0dHA6Ly8xMjcuMC4w
LjE6ODAwMC93ZWJwZXJmL3Jlc291cmNlcy9pZnJhbWUuaHRtbCcgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5
cGUtc3ViZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNv
dXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtc3ViZG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MTgwMTVlMzViZmIwMjk0ZDM4NDRkMzFjZWEyYjVmMzFjZWEzNWRkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0
b3ItdHlwZS1zdWJkb2N1bWVudC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5jc3MiIC8+Cis8c2NyaXB0Pgorc2V0dXAoe3RpbWVvdXQ6IDIw
MDAsIGV4cGxpY2l0X2RvbmU6IHRydWV9KTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAg
dmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgIGlmcmFt
ZS5zcmMgPSAiL3dlYnBlcmYvcmVzb3VyY2VzL2lmcmFtZS5odG1sIjsKKyAgICBpZnJhbWUub25s
b2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB2YXIgdGVzdGVkRW50cnlOYW1lID0gaWZyYW1lLnNyYzsKKyAgICAgICAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB3aW5kb3cucGVy
Zm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5TmFtZSh0ZXN0ZWRFbnRyeU5hbWUpOworICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cmllcy5sZW5ndGgsIDEpOworCisgICAgICAgICAg
ICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1swXTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGVudHJ5Lm5hbWUsIHRlc3RlZEVudHJ5TmFtZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlbnRyeS5pbml0aWF0b3JUeXBlLCAic3ViZG9jdW1lbnQiKTsKKyAgICAgICAgICAg
IH0sICInc3ViZG9jdW1lbnQnIGluaXRpYXRvciB0eXBlIGZvciBlbnRyeSAnIiArIHRlc3RlZEVu
dHJ5TmFtZSArICInIik7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0sIDIwMCk7Cisg
ICAgfQorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzxoMT5EZXNjcmlwdGlvbjwv
aDE+Cis8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBm
b3IgYSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdCByZXByZXNlbnRpbmcKK2EgcmVz
b3VyY2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5pdGlhdGVkIGJ5IHRoZSBIVE1MICYjeDAwM2M7
ZnJhbWUmI3gwMDNlOyBvciAmI3gwMDNjO2lmcmFtZSYjeDAwM2U7IGVsZW1lbnQuPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJm
L3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14bWxodHRwcmVxdWVzdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRp
YXRvci10eXBlLXhtbGh0dHByZXF1ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODE5Y2I2
Y2RmODViZGMyZGQ1OWVjMGM2MjE0NDUzNTc5MzYyZGJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlw
ZS14bWxodHRwcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitEZXNjcmlwdGlv
bgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3Ig
YSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdCByZXByZXNlbnRpbmcgYSByZXNvdXJj
ZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIFhNTEh0dHBSZXF1ZXN0Lgor
CisKK1BBU1MgJ3htbGh0dHByZXF1ZXN0JyBpbml0aWF0b3IgdHlwZSBmb3IgZW50cnkgJ2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC93ZWJwZXJmL3Jlc291cmNlcy9hYmUucG5nJyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0
b3ItdHlwZS14bWxodHRwcmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJw
ZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14bWxodHRwcmVxdWVzdC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI3MWM0OGZiZTMwMTliOTgzZjJiMGZhNjk0MDdkY2E2ZTIxZmEzNTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGlt
aW5nL2luaXRpYXRvci10eXBlLXhtbGh0dHByZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyIgLz4KKzxzY3JpcHQ+CitzZXR1
cCh7dGltZW91dDogMjAwMCwgZXhwbGljaXRfZG9uZTogdHJ1ZX0pOworCitmdW5jdGlvbiBydW5U
ZXN0cygpIHsKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgdmFyIHRl
c3RlZEVudHJ5TmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAiL3dlYnBlcmYvcmVzb3Vy
Y2VzL2FiZS5wbmciOworICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgdmFyIGVudHJpZXMgPSB3aW5kb3cucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50
cmllc0J5TmFtZSh0ZXN0ZWRFbnRyeU5hbWUpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZW50cmllcy5sZW5ndGgsIDEpOworCisgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gZW50
cmllc1swXTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5Lm5hbWUsIHRlc3Rl
ZEVudHJ5TmFtZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5pbml0aWF0
b3JUeXBlLCAieG1saHR0cHJlcXVlc3QiKTsKKyAgICAgICAgICAgIH0sICIneG1saHR0cHJlcXVl
c3QnIGluaXRpYXRvciB0eXBlIGZvciBlbnRyeSAnIiArIHRlc3RlZEVudHJ5TmFtZSArICInIik7
CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0sIDIwMCk7CisgICAgfTsKKyAgICB4aHIu
b3BlbigiR0VUIiwgdGVzdGVkRW50cnlOYW1lLCB0cnVlKTsKKyAgICB4aHIuc2VuZCgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorPGgxPkRlc2Ny
aXB0aW9uPC9oMT4KKzxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGluaXRpYXRvclR5cGUgYXR0
cmlidXRlIGZvciBhIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgb2JqZWN0CityZXByZXNlbnRp
bmcgYSByZXNvdXJjZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIFhNTEh0
dHBSZXF1ZXN0LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZXMvYWJlLnBuZyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2VicGVyZi9yZXNvdXJjZXMvYWJlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTMyNTM2NzM0YTky
NDY0YTNmNjU4YzhhMmQyOTZkZDZlZmRhZTUwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMjI0
Mgp6Y21XKysyUk4xZzdxPHluLUdwUmIrKTc5aWxEKTFGTGlUb3pCeEdtSDRwRGEybF5zSHxsNXhx
LWBxXlohPj9FODIKej4zQDZoSlV5PVd6VkcqKCZwSWJ1VH18O0tJVEpZXjleT1Q/bEFJPnxSRG15
Ukc2TUx7bTN9ODJlcTMtPSh0Q2wyCnpNeygpajdkfkZmZGo+b19IYXhWUHczZiZGWFdxODwlKiZx
Vi1SdUFVYFM4MVl2U0t+TEs3M0hwUTBocHkpZlZ3Zwp6UlBrREMkKSk9fWlKd3R7RUV5MzVAJlE8
ejt7c3hHQSpyQSo9Z255S0UyP0pJd3dEVz51WFItTns+bndoJjJqT3kKejhhYTA/e0BoPCpYRmpL
dntJTTIwY19fdVpwWDUyY1UqcEBtPEBxITVvQVk3PjgoQUUoalExJStOTVRgMEVAS0VnCnpuaHF5
R2lSJSttKWorNVk5eX1Rb2lrPXJ6ZUpZJHZpNCRSX1FYUkNiT3lUVmtQTDBaNGIqcjBsc0IkJlJ2
cldtaAp6bURkbzd6QyRVU1Y1UDE3TyF6OEpwdGh1X0BSeTYyWGYoWEJ1I2h+RUVySjZsQWVgRVJz
VzN4VWhuSzh2eFlaNVcKem1HTzQlaW5scGNVa0xmblVVO1YmUXpKbFdHOyRIdz1iQzF2bXRlKmFm
JktSfUY1ZFpvaWtLSHNwPU87YGpsaytBCnp2PDV2QlBETW9vdlQ1Q2oqRFA0ckBlb3FZTXMrJD0t
SnlKM0l4P3sjajF6Rkh5U0RXKFBFTy1wdUMwKTIxQERCNwp6KEQ9cHxFREVsXj16Sm0ybHB6Rioz
Tmg7d2RSOCZeTiQzRFJPWjY+b0RHZnhqcT1KMHZtMUo/dDVZS1h0TTNvZFEKek5+cyVERn1yXmQp
P1A4P0ZrdnEmTyhQS0lSKEZmNnh2XjJJUXZhQ3tRKD5WWHIzQ3tDZWRAQWpgPlJ+cmtOUVBKCnom
M08pMFJ8USt7bTJHPTRHWkxvZjdaI2NeOUVrU3doN2wyUjRzdnB+LTRGNUhjeXhzI0Q3Qm9JQkRr
cig5cUdpYAp6Rmx8eWdheT1yQEV4cnJ4bmxaI2xFS1IpazkjZlE4ZU0jWEJoZD5pKXowNGYoVVc7
VlVea3ErJFVUdGt7NE1nNDQKenJnSUlQIShOcX5nWU55I3VrQSEoRGBEVTFEbVlUdzxFUkIob3Ym
elhjV2l2VDUhLXtZQ2AmQDNAODc+NEV7RTs2Cno1bEtfNG5uPiVnXnA/bkFCWVRyTjx1S3d9dVR5
bEpsOVA7fXQ2Yk0zQTVVSCowJkExPFU0WVg1SDVQU3BTKU1rTQp6QWVMXjNPTj59X3A0MHIkKHFT
UG1ZQ1pCSWcldDBfTUQ0QiYmeTc4PWlAMGpmLUtDZFhfNHxfTnlPSlNodVcpQVIKeiVaZHZCVUxo
ZU5HaW19WmJ5SE41YXZGI29NbVpgRWRhWG4oTi14Mm5JMDE+SztaIzVxZyo3QnktVSp8KkxkKkh7
CnpXYlR0KkhFSF5DYWwrQi1ZeEFURyQhK3Q4dF5CP19gK24jOT9wckB5TVZRTlVLYVNhQjFlMUd1
ZE1ZYWBgfV9OQwp6Z2dTUz52WE56fXFuTjM+JUhNWV9Rc1RsQ3ZaK0Z8d1FnTEZsczZpZ2E9NzxT
S0pKNCQzUEROMiZXRX5sSGZQZEoKejZ5YVpIcmdMIVJyVk5vMSN6eHlpQyY5fCoke3wtU2t4YCZJ
UDVxRm9rRn5ZNm8xMkBoWk84bzEhUmM5antSNiFPCnohVGBLQnI8WDVaNzhhSjJtWDZwfXk0NWBw
NSVEPEtvLUhtZVpmJXY8T1EyPkpuUV5Zc2RHaDMqdSZ8MyFqNnlhUgp6Xjs/YGoha219Pj5hfWF2
NyNPeV8+VXxxbj98ZGRGPkl9eTNPUTB3K0p4dyYhRzAyZlRUSCltVkleX141Q2NQPH4KelQwR19P
RyRxN3U9VDd1fE1DO3NJWCtzSDB4ISFwSCgzYG19Ny15RXolaFRvVD8hR0BXbGk0PFpKK1VpWGp3
NG9TCnpWZlhPb1BoKHh2R0Y+UnVNUTI3OT9Td0BTYWYhUWs/fjAzZTMjZHFCPGtebUk/ZUJgUyM8
VzRKcTlTJVkjRj9VOwp6bmUqMGFkQXM3M1ROajtJWW1KTF92V0VKSUlWajJLLUp+ZiFCd3h7IyVE
eHdRTjJJZyFJXjV5O15Ddn54TWtBTnkKelpIMVYwVUE0N0NMcWZ7Tz5+RjtYX05zc0k7S0F3WD5E
MUtKa2UleWA3Y1pWYT1ae3hqYlFXZEVnTVJYP0c1bGRFCnpzRndHNVdZMURDeG9ncUk9bjdGMnJl
YkpxNF55JGE9aGdROGA7WWdjeUM9SzdrPVBadEkjOzcqa3NuKzg3NmNKawp6c3BGNTJJYW07bkNs
bT1qYk56MF8ra1F+PT5qaVZAUCQjQ008Pn5iWmYoQXsjTUFpcGhOSGtyV2xnSHF5JWlxNiQKejtq
bTtyKXN8SDAtKWhrPGp9RGVHZ098SmUyJk11YGZHbTAwXkIrYns9cHteemsxSGVUYzZXQ3hEa2BR
PUh7R2RPCnojN0ZIYXdeeCpOSUxIV00tYHU0IXJEZk1YJj5IP15zRHN6PFAtVHxpbEV0MkJSaVhG
dyFqIV90PVQjRiM+fUUjRgp6SVJrVFpiS35SVjNrI09AIy1ZcU47Pm5rNnQwdH5UKmE8Tm1kVmY8
I3VgTEt2YXo9MVNHMjtaTkxTKyVIX1FJKTMKeiRYfE8kUytiIzJFYUc4YF90VnI9Mk16aEklbis1
eTdGRTAmbVU3TXIhb1Rea0VRQyFFSnV8ZW8yYWpqV3B+XkZ6CnpYR2RLRkYtbUVReDgoMTRHb0po
cHYweGsxeW8zNzEwfHE2JEk0d2pEen1+S0JPans3Y3NFclVeSU1LeylFa3I8fQp6RjdLUzRvTT4/
Ykk8LTJuYSh2PVdiZm92eVFZJD9eYHBCelN1TSZ5UDdnV2RjY0IkcFBvcEVKanNHMlpCQT07SD8K
ejR8RVlUbkM/cmFafUoodD1fbkw2d0NiaXhoVXs5K1czbDxzKGF+UEBLa1hgaT9USXpCQVZQKDJp
KE1kPE5+YDkxCnorRGZqWXNLV2NVYVU0XlQrYElnPzFGMVJ+aGVYRnw2JUViITU9KWJYO2ArISEl
cUFWfntTSHlpbmNNTCYmR34lNgp6MVlsWDZtZi1UXykhdHE4R28yITBRUTM4ZGxFS3g8dWB4WWUt
N3E8aEsoPENsUjc4WUFjRCE8TXFmdnsoWWtHSXcKekxQbnNnNGg2UykzdiViY3VDbGhXYT4kfFQt
JnQ7aWJmVipzNWdmMF4+PyRxd3hjaWNxNUE3PEl3YThYWjd7OEx0CnpuPXowYFFPXksqOzdMdEpW
ZT9iKEp3SUZFa0BXbiUoNk8rdnUoRmNoeUw9TnR6VVAlRE09YGtfSXFPZzBtWkteYQp6SShFc0No
Zkpubz8zSj5tQVkpQTE7flZpSihZcWV2I1gzKSlLY34qQjlKOGs8Qys2VXczJWpmT1NVWX1ScSpA
TGcKelhQVXFnbFVHLUZ7OW5PaW1ZNm4mRHI+PnlQLTwyX2V0eXw5K0tqQlNhXjc5PkUkNW48UCs/
KFYtOztTKGNYIyptCnpqKk9FSXNEdyFlX2orVFZxaXtYYmZYcEp+YCVnclNlVUlpSmdxUmYkLUR1
TDAkUzU3TkZadVpLS2ZBakdzdXl1Swp6TFFHSyNneE9fU1lkWHBjJjMzfTYyPkZYdFJLOUJsKF9S
fnVCTG81ZGdSN1EkVWt2JkYtUWJWM2AmYW1semsyUisKelRYNVN7Pmh9bXhoVF5pO3liODFldE1Z
OGNsMnZAU25ARDRvPFBoP3F4RSstPCh+SE1ZZHZVRzBPP2I/dmZIRUg5Cno4KlckbSZVV1Y4TW9M
Vy04PEVZU2tfYU12b3pTb1d5R2xvYyVyOTxyOH5ldkcqWTNNNWJ0ZX1UNnFwS3haNDxBTgp6bExW
Rk4rSXhGQEozMmFnZCFJYU1JTU9jRzBXeDBPOCghTjM9dFJmVyo0OUZvSTJhVmBARWNaZEZRcTtZ
IUlAUngKelVQQ3NsaCtLfl9GQj5KfGRLMWpQaEY/YHZTLUgyPCM+Iyl8bVN+ejl2UmR2RCZBeHN5
e1pkVGNfe0x2VGZmY3drCnp2IzZrJG5BcUxCbSFsTlNQRTV1OEZGTWB+I20oKj9IeWpPPnM7UjAq
TU1XOFhfMUdERkI+QWpUemc8bUJgJlBVJQp6XnF7c2pnQmtaKmJselpARSt1dVBgTCkrJFYoNjR5
eX05V04kaV5xeStDWHRQTWpXY1BlJThPLWA9dzF1ayF9PSsKelQlbVVPWipYdmEmKzdwVF59RTZP
b2otZWZ1Q0F7MmY1KUYlNXtwSiM9OzxVWlk4RHtLaCR3TXZANSE3T09HLSp1CnpQaTlFckBPe3J1
X3hYKSN3ZkdXPXJUY2A2aHdQZ0NwSD8jVT9tYCY+Tk9ebXxYTTFEKUU8diMzYWhSUUNNdkRQNQp6
SU92a0s5PSh1T3V9Kz1lYFB0dlUhbntQciEwYGF8NSFse2szTD02c1UwdyFDMXJGTjh1R1piSjZD
MFo9RTZgbXoKem5ySXJMXnlTJTVNfXYmcyZ+M3RvVysmJFNPUX03JXcmUks0eyV8IStPOX4xKUBC
SkZPQDRuZXlKfj1YeSp0PCpeCno7RXpRaTxnWjhrOTwkRG57KjlDX2B8LUI/JT5+ZCNhXmN+fm9k
QGE1U3I2bG8mK1A0eWJRZVVQd2hQZFpRQnFTdwp6I2xFY249Xl80ZVhzRmZjSnJXSVE5KjAhRkkr
TSN4TVZkaFVyTz1rQ1VBa3EhWFNCN3ZrNGUxVmtTYEtARiNmYk8KekRtd2FYN288U14lX3F0XmJh
RVN4QkVSLShPVipOQW1pfSVgMEEpeUkjSGpSczYxYnx2NnU/Q2tiSnJxZDV4RHdtCnpKRWtJN3Jm
Sm5CY2hFTHtgUEJFa3JLUDNnRWwqdXQ5Vzc1I2xQTDs4S29fV0pybCZLcXI7dSR7SEV+JVUtP3k9
NAp6YCk7RVZQSm82KlVnUHRhZVgtNiU4bHE1S3pgXlM3VlBGJVJHYXwlez9VYE56ZGshM24lK2x2
JU5CeFZ4M3RXaHYKenpQODJ7ZmJ1JVVfcEdSXj52QSQ9cXNpQzBwX1clK1QqQGxwZUd2YnxTayFx
VHRabStAIyZFfWoqXz53KFMzRTAmCnp7K1dwKVp5SDNWOypSVzZMTUYqZ1dUbCt6cmlARzc5VVZW
NEcpeE9uIzxhYXY7V3FLdig8VCM3Uip+QGhaUnpWUAp6QHdQKlY+N3FFfDloMXp4WFk0fE1HdnEk
TVlkMXAzcW1yZl5zNiVsfG1ROVB5X3VZN3pxUk0lJWhSZX1Wbj84QUUKejYrfnlnQGxpTHpBSDYx
OW9NXkAlLWI7OEBubkZRUWsoeU92dmNEZ24oMUt3cCZIYm1lYEdxcFZYK2xjUSM9d3d9CnoofExZ
YilVTmQ7RkZQQk52fTRfcj19bT9aPV83dTA5Qi1GZjliNjlBLTQ7dlV5cFQhRTUpO1pzeDw8fkZB
VCZaQQp6Y2NDQHA8RnZyKlp7Tk9NOyElNFk5c09sdTxMdkNydTJTc0lvalZVNlQjSVo0TnxCPFlk
KVI0dFdjcFdVPCU/djgKel4+RjtoJj8kJHVzLVB5ZUlPdUJBJjtJS09kRmR3eGs0JXNtKztxTW5z
dWcwUU1mbX5HKTcweyY5N3hhcTh5Z2M5Cno2SnckenV9dntISFU+dUY8bUFOUmFJczMzUiNzZFl5
YDFXbyhxbV9Jb2l9KHlFQypXSm4pZUN7JHEmM3s4VXF8Zgp6UjBKdCRueFloQjJaaGphREx2Zmk3
bWwoa0gld194aTllcEpzQm02c1F0MzBtVj94Sj8tTWA8UHstRXlMSHdqNWUKenp2VWxrR0ZncEls
U1FUOSMlK1dXNSkqK2smOGEoWUhCdHstUyV1KiRqZGR5WTV7aVpqYjhUNS10VVd3TDckYFlECnpu
aH1KfSM0RzJGKzNWYmhTSUYrUzdkOXhTNCsqMHI0NW8zOFpSSXVfN2todnJiSUNJPDw9al92VVUj
ZDVpQGpYdwp6JWhEYHgqX21zViRAKX1SMlkkZHVWKjItUVhUZkFHMVRoO2V7JHpeU1RKNzA/a3tA
UCpDOyQtfSVvdEQ+MFkyOWUKejxaTGZ6NyZoRXEwJT5kQTdfekk+REtjeDB6X1BpJGpsYG95WlF0
MT9CRnBMP2MqRVAzJiZ+RSlvK0VicHNDZkY8CnolOEpMeSFFSyR4LS19JW42Qjl0KzZjaU1vS1k9
OT83b01Ebng+YyZobUhYP0d3YWh3LXIyU0NIRX5+R0gyT3NOSwp6VzVgRzIyOERaZWs/e181WDhj
TDBCKGZ8fkJ9QX00VU9PKTcwflJIYihUa35RbnFqTzYxVypUc2VzcHd7KHRgbkgKekJuZ1VQY2Ah
YVBhb191M2B9Z25QK3VNI3BPc3hacjYjQT0wSn5ROFNiPHhQPDJ5RkcjcmRfMzcjaDZUMS19Klcp
Cno1PzV8N25CMlgqVFVaRChBJjhWKDZHNjwqODM/QSZRUkt9eyhqZSYmR1hWYXRMZy14ZjY3dz4k
X3oqUFZ1clNqXwp6ckFLaWVUKlNheEdCaTVab1hqKUBEYU5va0YoPDAhZnlOJDlpO3VzWVYzbnEz
dCpBKTRCRXc2TXhAXmN4Jis9UlkKemxTQ3JNbFRjRyQ/dEZmQnM9fVNVPHxVUzx1K1NMVEIrRkxH
PjNVeVYrZXt6TkNKeERkMS12RzZuPHo3dDJMaStxCnprSVlnOEhvcCs2RnR2eDxUdnNBdmRVU01V
Ynlke3NrND9weDNpbiQ4KGgqbEZNMW1FVih0MllQZVNJKTxLd19oMQp6N1FtN1RpIXhkTVN9I29F
WHMlZ1lyKWlYQyYoNT4wKWhVeylmNFRvWD5UMHNlX2tVNyRFRmQ1dER+bW0mY1Z1a3IKemc3VmVN
V3UybTY1OFl4TkFkYXJgSzBEMW5LcmduK1d4RFVJNyhFQ05aX3BFR0c0eFhxQ1oobyFWSmhJaGpm
ez1jCnpHY3JnT3dsKzUlRCluYV9Kemw9Nyg8diRfT3pCO1lZe2VFOUhsQmpQP2xnS31eO1NTZjwh
WlFTQDl2P3VGUjByVwp6RkR9dTdDZ0pjbHFqQDlsJVltayZHfDwtZVcrYn0pWmdBR0l6NUttJDRt
fnxSaS1mb0NqcmlRV0pUUE5RT3tIMmwKem5rWTxidG58S2ZMVnZpc3hncFZrZXhNQW9DQDU/PDg9
SEwxZnxFYWFsMmJvX2hSfjcrc2BEbDRDQTh8KCNQcX0rCnp7OGRwYDJ6I3UzSCh2UmZnOUV7fFpP
V0d+VXh3fDR1aDckSGVzLXczUGVUU0tETHAtWFhVRkxTfEYqT0d4Xmhsagp6NTJnc0x5e0A2NUEo
UnZRWFI1biZOVVd9RXdXNDBhWWB2d1BMTnJOM1RHdH1EKk5GfFBVPk57dDc2eWlEKlJ8b2EKemB8
Zz9VNURSR0N6O350WGQmSmhaOTRHV21UfFhDOVhrNDE4JSUhYzNAOFYodjE+OTsqaXcqJk89TSNx
dk5DaE18CnpIMzJrOE9pYXVXX25kUkNTejIxcyhhfnxQRiUoTjk4Q2lEYDE0a3h0dk1wOyMkTiVr
TVpnaUJQJjF1Til2ZDEtSQp6eytLcEdsMl9QI2QqUHpCK0w1KShAO2pnYmZOQDRqajMkMm17T2VW
KHErX1kpQWVfM2dFYWgtb1E+JmtTJEt0eCkKelRlaFZnND0qbi1AP2U9OEBpSXEydUx3VXdPcHcy
amlKRVp7Z0UhLTV4OWhnUC1SJH11JUljZmMxdjIzczdSN0x7CnpHajdPRThffk00QGhrJDE/T3oh
bCk9XlljNmt2RkAjPDd+aU1wbXFJR3FKMHF7QyRVfEE+VC11TUh8P0skO3RQcQp6Mj55blhhd1Bn
bWk2TVMzZmoqXmxZUmhiSXttckgjOVokT3k1XzxxP3lVS0MrT0U9O05UKDhaMSQ1ZSE0bHs2NkkK
ek1EYGNudHdUOHBGYGNHT0FFdHBlKFlnYEx3JXtVbUopJl5QUERuTVZUYG1GKSgyTHBUVjNZSHM1
dVFpcy1wZ3QzCnpQJG03O0dKYElsPHRwX1plfUluK1Zxe3t7SCNRRVRJUWYzPjgtQVBAUk9Yb2Ra
KmYtZzs3MGRZI0wyRCpkUWQxfAp6QGswZjM4IWQrVHApKXxZM2lzfHo2SmgkWWJaXnNiaiU3Sz9T
R2R7NnlwLUlZP3J3akNneH1mOEBtN05nVW1gOFoKelVEYUskZGNlWmMoazx4eksoPFU5RjAkc0gp
TypDelFnPk85WXw4SjFRPWVIfGh5RHdmOXRhNCQ+QX00MXVtbWI0CnpBXyFBeWlAeEA+WUdUJiQ7
R3hOcFd+SUxUJDFtZyVRJXN+anxKST5mTkpkMFkrbGlQMXFYPHdZTG1NcTExd285LQp6X00hS29j
UkdeVSRIJUExdn5QTDBiPjY4T1libUgjSSYjNzAkTVNBRFp3JU8rbjMkaz1lKT5xWUpoKzNQZWo5
e3UKeldiUF47e25+SmA5MHotWmBTYShjeHdmaz1PbmQ5UHl1eU5sYk5rMmwjbCNAbzBCUSElZFJH
M01maDlSe3F2emY8CnpheH11eU1NP0k7VSY3MWZAVCNrTypiKmowLXBVKCstUkFjSGFrI3R1Q3wh
SlBYZWlqNT45VldIY1lFUTthZGY/TAp6MTdzVldvI2QqfXgocjg/Yzlwcmd7eyZWYzJBRHp9Xnsj
Nz9rZCo0WnhNI1U4P35rNHlfUXZLbWc9YEpJMWtUdG4KekI+Rmd8cXVne055JlQ7KzVIMDZTRU1r
Pzx5Mjk4bjRPVnwtYyRqUUhNNVN9cGdAWWVScj9DajZlRyY8RVNnU2RJCnp7VTZQRzxNV201Nztz
eCleT1Apb2VDaXQtJkpUOXheVkhKcHN3TkotamNKSlRSVnYxYWU1STV7QDd+byRBPmk8Tgp6Y3pD
cTY+cGdjZEloeFdObDs3fGNHSV9nRHBXYlRHJElIS05ga1NgcHQkNlAjMjY8V0x2eT9GOUQzbkl2
PHdocGUKektgYmlwRkBhWUlRWkZIQFpUfFYhOVRHI1U/MHpZMjNsOSRsYnJ2KD1QKFpzeT1OZU4x
QWlFdUskaVh0fjVhM051CnpaQEd3UmtQK0B9SSpSOzBKWldyZm9TOSs2Mj49N0d0KnpDVHo9Mjha
UHJndWtzdiReX29TKFgzXkk8NTZxe2hCZAp6Z1Rxe2pTKWE7YGlqdEM5KyhSSDxJVXA1NjNiKHA/
e28qaEJ3LVVSRV9jbThvSnMwRGpkXj1nPmhwM1IzOSQpVjAKel87fmtGVHgxVnE1ViUpfUc2d1M9
djVHaih0bl9DcSV7NypDK095JVh8Ql4qY2VVYyNReCt3XygwZkYxTW96Qm1FCno+WlUqeUZZWF5W
dXxOUmhDPDRhQGE1bDJXVyVWZC1kaTFCcXtLZD5xKjV3anhRa29CQzJWUXlmTy13eyl4d3lJMgp6
UEMweTRMZWcxU1NiJD1BeHpsPigpWXE+LTN3U2V5NTtnQiExNVI7eGNvK2E7fEojMGpMQmFLZz44
OyZFc1k1ZCUKekJPe355czwkNmk2QlolKUAoYHk9RklQdmN1ZGxuZnk4M0s5SE16PmpEOXQmeXc+
QmJ1b2lTd0F0KipicyUmUEMlCnpedlRqYWJvQGxoYyRVXntmM3FaMnw1byRjMj1lLWF4a3cxSE49
bVJ5UmtnTUhEMUA9XjtvQEBvTzl5anZmflNtQgp6cCYoUHJiWCVPa2JlNEtBLVVQV2BTbV5OVlM8
akNqMWlDQEAyPCE8eTxMJD1POGZFdWBVY1koc0NVZ2ApTVRrYlIKejRpTTkkTjQ8YWtlNGdIVnFQ
O2dDQlk4SF9hQjUmUXFMSnJWVitnLXYhdWBWUlk3fmlkQGlFNChnOGRDMUlnWGJMCnpFI3EhMiFr
bWx4KXQhOFl3fkxSTDdtalReXz0+VGtTUV9ZMUlCU3FTcSpUbU9HaXV5I1NHTXJFVndIMkM1PCFS
Xgp6ZjR9LTE5e2Jka2slKUYyb3N8Q3Z2U0wmeE5TViNlJX5IUzlIN0tOanEkcWBLemteVWVHOD1O
MGYwe3VaXkBfJi0KekAqbDdJX0tkS0JhKHtmfUR8UE0oYEYxa2d4fTJxK1BUWXJ5c15eaGQ1cGkq
R1FCaEc1ays5RTZeVkxIYEx4ejAmCnolQHE3XlNZK158PFRiI140diZtbnFmKlMjNEE2Y2xwNigk
WT9MfHZNIzMzYHtgdGhNZWhLWjM7ejFRQmFzSF52Kwp6Y0hiJDMjdzlnVFBOd3w2dzFnMzBASUc4
ampBNTFCLTB8PlZyUU16fStRMGI1PnhlQGFLVmFoMXBaWlV7a0BEa1gKelc3cHs7ZUgkZHtCa180
YTEyIzFeeHokQ1AyYmVMS2BWJmQ3dGduQ2RKQ19qcV9ETUg4SX4jUT9rUX5gN1cxUGBwCnpzaW0h
JkgmfDN1MWNyVGphKn47dWBKK3d8RDJBPjVJenZBMUoyWWdPRyFoVX57YCMpfjkhVjNRbEQhNCoy
Vm8xWQp6ZXcmS3JEez9ldyNQenFncjZMeX5LIWNfPmszZT1VSS1tWWRZPUI1Y3h7RkdrQjlMQEoy
VFokQkV6I0Y2V259PloKelZUT3o/OyZ3M3gxX3Njd25ndzdqOWpaVl95alFhcFhDZHtLaVZPY3JT
O1VWWDcjLUNXVk9CdXdjLTIkbEdIPF9YCnpwXm1fKyU8VEhAYEFmd1NAaTFWVlVWP1pqYmA8WWI8
ZSlWZ2t2IVNQSig0e0ExTHktV0RIZXJZZzU8NFklKVVVWQp6YDM5VkQjPm9OPzk7entEYCp6PGI1
SVFlQzsyUW12RTJTbjRDMkx9Sy0yaCZ1cmx1fH4/O0w7ZUJ8YiM3MHh9bEMKem5MUUM9bERESnNA
VzArQF5jV05PYnowWF8rLVVOUzNMUjRjazE8O3EjMDAxNyl7PXpVPnxfTUc7YSFSUkYpPVpyCnpH
RmdeX3xBNl8zU0wyQ1BmfV9hRXZmdFRxeFpHVW4qe0BQPjMwN1hsYXBSJlBidTRJa2MtcUZMUlNe
Mz9QQkszfgp6NTRPZypiaVh0SFgwUFBBeER1aCV4bEM1KG5pdzskR0FHUEF2fkMxPW1nfT5zNGok
djNNcVYpJFE9enBYVlVjOEAKekdfTG5Ad1k5eUZ5YTBre2JFKiNGaHBTUUZvMTI/S0wkalNJV0N5
Jio2Sjx9UzI5KksyMXQtVHI4YCg8Nk8helRxCnpFaj1+V0xlSV83UUdoODVMaHptY3pvMmw+X2V7
PVJRM3orVEd6ZWxYRUk3ZWwxJn5aaVo8NnFZe3pwdzQoRWo+dgp6SWA+QlNjWV5paWluc2NnYVJM
dzt8NStYVXxHTiU8VFliYG83PGp8JmAxSWBYJkAlIW5hZHV6PDs1SSE/b2RuTEgKemV8azYxPzxq
QlU+K1RRZUZKU1A3RkpKeCs4JDVTKWJKSWp7cTNLbyNLNl9KQlFBSj5ybHlpKnpQRipkUl9jeH49
CnpCTmx0bClfWi1vX0kqcTlAXn5QbGtqZClyKkZlV2ZNYXEybkBVPlVCVH5SNDY3KXl3YiNnTTB0
TyVoVlNJd1BENgp6JXZ9WlNeQEReOz5IM01VcS1KcVBNK2YrdG5pfGBSdkNoVGMjUmdTeHY+e00p
NXR7flo0YUdIO3VlJiFLOCU1OWkKenA2ekN3UGZlZDFKJTdGaHAjbDZKMj8+ZEAqRDlBWk8qRzJg
dXA7VmpVTzdZbCk1aXRGZ01PTz4/e0JmT3c5Kyg8CnpOQkVgOUxNfmt4QWBmbWxWIWhAVWNRQ1Rs
Uj5KYV5KYzIyN0tBQENFbT9mTVMrUUg/LWpYUjJuT0d2ME85cmtnQgp6KVB7fCRKJUluRztRIzcp
XnY5TmxSV1h7bS14VWJ2NEM7amtDamRBLWVmR0VOZTIpTGorfCU9cl4/WmpfSGpDIUgKenMwPkFk
dCY3WCZxTjFEaGskZTA1YCt4cGFQZFIpUGRFYTFXJWJqOz9OWlE7VEF3VHhoWXdaQERYZ2VqbENm
PTNiCnorP19GT2xgc1JTZF4jZWhMNnBgJUgzZUdlUSQ8RDR1JHNJXnBaTHhxenUpMT47VnpIYmA8
MmJqKyNXa2heX0B1bQp6WmBFSkV4QjtfUnZfKUc5Q1dFeDJ5bSpuQTBBSXZkMTJMUTY8X0A5YlJg
P35KP2A+QCRVdU5gYVNJfjx+ak9uenkKenBUQVF+SlU/NHs5PTh6MFBfKGcxRi0mPChGSGRgVXQ1
QFFmdlowd0o3aCppNDV6YmdMVWx8UThjckdDMmBtK19LCnpsanBqfiUlS0FjMylOSXFSTWdhcllo
NE8tZERIS15KNkt2R1ErcTtXKmtRdFU1Y1NJeE5oZUx5JT4xU2pFMml7dQp6XlpZJjFiR057VTR8
IXQlIStDUWR5MkslJCZ5REVNLUBvWiV1RF9yY1U8UlU3I1B0XktnMipxXz1jVUtaM1QhV2MKeiRk
JCtseSRhWjckfGRiNHJUcCZeR2xtQGNvb301N09hVHFISm9mKHF2NG9QPl93fDZsWWppUlFzfjBr
azI2PnFWCnpWd0pqcVEoLWImcjBOT0pRVmstTm1hdURMY3NAYyoqSH5FXzA4aXlMWXxNOEtWSDVe
KWlAVHtra05efkQzOD99Swp6Q2kwc28ze3JIKm48YXJGa21JLXdhb1IjVnQtTUFeWHowWC1uPlkm
JFdJVSE8VTJhNmdESXZqWE5YPDRqblI9O1AKemJUJUl1YTlRZSg4QDBFX1ZXTjZ0UyNYVXo0NDZi
UjdzNjdZekEoKFlXYzxGcTZXXnQ3I3k/dWl5TjVNM3FFIT05CnpnTSpqQzw9JnZhJnBXOU9tWEVD
dTM9RHc1cXtKTnpTQUR4Mip+JWo2YCpGPCskflEtSWJvNHt2RkpRUjBKZGFASgp6QXJpZnx6SyhS
JncmYW19REJhU1J6PlVQTVBuRF44X315IXxCU0RAT0xpQ3NwR24xa0k3dFE/XkE8dGc0QihlIzMK
endkWkEmdSgtUzJuKnAjaFNAUXlIem0rKWVgTEFFVVBFTmojdG9pSD5KISR3YFMmRHhQcUd6RTEw
SUIlcCEkY0ViCnptYDV4LWl+Y0Z1N019KGdCYzNGYiZyVDlKKThHOUp8NlRCTG03MjkqOTloVCpJ
a1kkUnZyVXpXe3BRQDtyYUNNIQp6SlA3alo1Z2NnRT9FYU5zenZldUJKdzVkaHRyPSYzXjEjbGx1
QzN3bmdpfipeI1E2UjA7Qmwpdm9wUFQoP1JAZ0IKenliNUEhZVRqQG1JaHRBT0R9YnJTclN9KnBB
clcqYEAzN1B5ezAhbUE7R2s/Xzt3TWs3Q2BnOEdNNlRwaiowTkYjCnp7Y15RUSFCcG4kRHx3Izw2
bnZNbmI7YG5WKH52PTd6PGRtezAkWmx2YWt7KWZXeHkqJUx0WkJiUEdDTXApKnhFVgp6PXpYTjNh
PFpaKiQ7ODZLbSlLPVBqWWlTfHozcCNKRThlfVpmclgxRXomc1htIVJuZnRhNE1HUWN9UlVIc2J8
PFQKemBNPEVVbTYrU3RqX0c1PnIjaFBUWj5KOWw3U0RaUXMtNTJBTjA2aDJnUDVnezs4Xj1JMSUh
cGNwcGdlUkBBZ1c5CnpFQzwwME5EREM0LW1XQj0+ezRUeHFxKH0mbGxzciU5WCU3YTI+RE1CNTBC
ZDgtITRFWmo1IT50K1U5cShaZDZ1Ugp6PmxTRjBtXjEoPU9HLSNrO2lUeVpKRkUxSVlZcThTMk9I
VSY8V30/UUpmaVhAR0lpcyZgVnlYZlNTYTEmSllsKFgKekptUG1jO3YhfVF4QlQqQHcxUjJDSExB
OW9yQyRmZSN0djhXRzlacFYrWVhoS0pDfiVsXjZAIXMzTC1yfVphQlhnCnpGKmgoa2hqLUVSbDFy
WHVmajY4Xl4kXjZjcSRESkwpbDIpd0ZjYEpjZ09wVUQlP1RDN2hXbmhkYzwkTFIpVDRqdAp6KCVL
KVRsTWxDZ0NibW81PlVeeE1oQFp0fnNncmZSUFd1RlFWKnZqNik1YElkbVJHMDw3IXlLKjBuaTgk
Tj8xTTIKejs9cm5qeTshMG9zRH18SyEzKlhwJFFJeHNSYUd0VGN7UUJ2bUcqWGJPUyE9NHlRXmhq
QVB6emlJU3Z+XkxlQGloCno7P0h3fktGY3pLN0RhfnxuMkZYcW95QldueWV1MG1ybX4+WVQjVG0y
JEExQksoP18xNFBNPT4zbSFyZ3VqKnA5Wgp6WXxtSXtfPmc9SW90cTZIQm5eYCs4ZD1sNXQxPUkk
NlVLO2cmRnE4P2Zad15NMHRZYHxaaSVNLTclX2ZYVHYyZ0oKej9xJCZzaGwqJSZ2MzV2SFEyN1ZO
QE4jP0N0bn16RjNudHIkJEIhUjNmUn5XZ1IhMztfQ0NYOzAqQkpoc25nWGk+CnpmaH1BLUNBWVk9
dzUhfEBQUWM1SEFWOHwjXykqXkFzQlBHdjclV1BRfDMqQ0lMZnduYnBuRkUyRkZBXzlQKjlsSwp6
ZzdoYWVjZDc1Kk8+SiF4O00wY2JuM0teUHZVQXNwYWs9ZFk3WCl2dnQ/e2VUeWB0JmUxKyRpdGxt
eGRGa1pUKCoKek4xKSFjdyYhNFA1NWhBZ19lSVY3LWVuNnQ7V1JaXmYleGhtenxlQXJ3Q0JUVD97
bGNxYTMmSWZ0T2tydzZFaX55Cnp7dXNvRU1BRXU/ZGVTV14+Rko7eDFLQnxOVGMxUVpZfVJxU3tk
fkgpYnluaT1XI28yM14hME0kV3trdFApP0tpcwp6ViRFPT8xelAkaENXYG1QUSspbFdXKk9HcVVQ
QCQ7LVV9R0V1end8RWRyfDQ0OHI+cTNJRERYV1AjUXImRmU5UWcKenFHRTZ0TyNiUyE4aXomWVhr
TCQzWDIwWWptaUVheT48PVRtNDxHdH5WYzx5R257cVhkR2VUSmQhNCVxYD90WlhzCnpyazdBdlJS
emg4U15kbV40NytkZWlKWih3aFpfKmB2cjcwbGB8IXJrRnhQO3BQe3s2Nmg7dVpabGAwQ3ZLU31n
RQp6T2d1YjFnbEFYOzRFVn40cGRqMGJQJiFAM256aHd7WFAxKTlvNy1PSTEmemBfaUk4OWcpM1dO
JXBGZndDTiRVLX4KelAjc2grbEtXNChzck1JLTx9fFpORGZSKE5aKH0yI1RaMzRkVDZmMG5ONEd7
TkNXMX5NIyhoOV9aZl4xIT8jI2BaCnpgfXYqMkpQI1ZJS0whTE0zYChtSGVLSWtzQ0U9SiRhblo9
ME1wPD5FfDkqanZRZERlJVk1cVNrelByQFphRzJVcQp6cGlALU5uezdzR3JQREx7cVN6b3NzKUok
JDdEYmY0JkFKOVNIQDBBWkRoJiM/SWVgSiVqOysqSnI2RjF1c3I1WlEKejAmMUFzSXEyKV9nWmhS
MTBiV3E8Rnp1TWQhPCpBOSFVZGxie2xMclJrfHk/TGItKzkzZipAe1U8THt3JnJVOShXCno7QVQ8
dWt2Kjc4c2FxRjVUSiFwRlo3PHsjRyRsRU81RjltSFY9eXZWWl9MfjxaKkV6R3lhblcwYi1AVFMr
R2lueQp6Q1YmMV5MKChQazhBWnIoSygjfnUwPTZ1JilmeyNpPmYxaiRqQWRoQFpvU0p7WlNfYkl5
eG09UmNSXlRFXjFMR0IKel5ySW1rSTBMbXVrNjxjRXZfZHBIODxgQEx7OXFGWG5aPDU0aXRwZFFL
Uk1mUFYyeH1JOHlkQTJldW8tZDY9RXtmCnpwcz1aJHUoNSl7aXcmOUwyazxxQS1lLVVrZm92Knw5
KVpNRVEmYW85emg4bU9EZ09+cnspV3ZfdkwpO3k0c1lVdQp6ZiNUNVdUcXtJM2dJb0s2N0xiTzZw
RmorSmBFSzBGWVp7Y3dVWjtkX2cyNztaYFd8bHBhfFV0e0BaKGViPWohOSsKek1DLX11WXR4Zm5S
enZjWUA8Yks1TDVOQjZ7SUl0dlJXNGlPZCp8UyslJmt7Njs9Xzs3ZEwqeEhheGBtUFJ0RlNXCnpl
VGFtd3koRyE5ZT5jWWFUKXRzSlBlPkooQlg5eVV1SFYwWktieFVHbiptbCRPLT0xJW82KiNAaGQy
MmczayRHKQp6I0ppNFBwbU9QND9sbWhKVDY/SDFoU2o5Yj9PRGU0UH5TQGhPaVMkN2tRallpbVlJ
TkBvRSRKQ0NmfmRuSE9od1UKenFHRHBRSikofiE9KT9aaGB5VTRsYU0lK087T2l3RUEwTUJ1I0dJ
fEhrNSVrPlU4N3xVLX5wMyZPRkNpaz19M3ROCnpBfj1QVnNSU0Mta1pwX352dj9pOSViKWFfQFdo
IWZ6OW40fV43QENeQUlkNjhXKD1Tb2dLREFaWWlvfklgWj9GPAp6TGt2aWhxN3x+aSQkK0RXJlNh
K0ErU21ZRHElTUp5c2hXNn0qaXtLVlNXJlMlYEoocH14WUJEal8pNmhXVlBUPGYKekx4WC1Ydzhv
NXQ+Zm5qKmNgKEo1ejZXOVFpa3MkMUZCI0RFR05+SUU5cW56Tmo5VEJwdnRxbUxmJXRmRD45dUth
CnpTYGR1VmVlfmM7NDxBMFBGKVpuflg+NlUoTUt5JXJXfWtie1VvRjtJWVl6VDU9bTFNM0AyWX1f
cEtIazF1czNXVgp6LXNgdVVJeFEhUGNkSHlHQ3BUcW15SnNDQzhqRiFRQjZETztlX2ReMyErWVUo
T0Q3cll2RklGclAtOUE3Xl92Q1IKemQlYkR8dDRUXm8wUWk1cl42QXI/dTB7M0U7OE09QzJMZTZg
UihaTCgxT2EmWVE4MDIpOz9DJkpla1VtYHsxO00tCnoyPyFyZDc1YnU9X202PXhWWSFCbGhWM2V+
Wk9Zazk1T3RyTS1KT1okeVN0ZjBAOXVTd0FtfUVGYF9sI1dzRD8ydAp6U1c4dDJuJl5pKW4hPjVf
PDtVQnp4Wj5obHJsQD9PZW4oVlI0fjdzYEklRWZkfEhqc3E8Y3A8bGE0OTgqSE5XQlUKellpazNA
e0VLX3NyK3dVPW8jfWp1cnZ5ZCpgKFJ2fUp4SmdWKEZrPEZSPlFlKGZmbVBoRnF5d1U+Rys1N15u
UWI8CnordCFSLVZ+bzZBMW0wTGZlOGJ4Nj5nd2B4Zn1eQktHQWgtKD9pT1dCIyV1QH5RXn1RMl9o
MF45aGpqRTFEMjxDUQp6ZTlMP0pLRyp9T14mSExjK1lmWDh6c0BKRyhmQWJOKXpYbmprY2AmV193
TD1oJV93NGJWNkElJXxMU00xKjFZYTAKeiQ0OVF7eEZAZzJ6Nkk1ZiFxU1lja3heUHxEbFAlI1Yp
SSkoQ1c7Vj1yU1RgUmtGdzY+IWMqT1djMiFlNVRRb1cyCnpzd0dxMzMzKkYmQiYpfCU2bDhfJXtg
SGBpPTdLbnFIdGY/cFE1bnF2K0xgdmQlcihoTUctNnJmIXtEazRfbHdnYgp6U2J1Pys+bm01cGZW
NT9uVXpGKWgpTjN7fTIlKUcjMzhASUxWVD88IXEoamdoWXRFZnlXOXJqUS1jSzxlZlMlaj4Kel5Y
Q3QyaUJUWnBJfmNYOVpGV35+MT5RNWVGUEQpT3J+V2JfM0NyOEg+ZiF9NjY5KSRlJGxXWH4yPWBA
Yk5iVm4qCnp0c3Z4S3JeQEE0ZWokMGdPbG14X1VJSSlzJlNxSzlYMklSeW1DNEc9P3MkQXZOQWRG
V2dWdXNvR3dgRmF2OWFvPwp6fDNDITBZNGw5S1pyblpEbjVhdGFTKD9SIyFmSiFSTldmczVrZ0JZ
M1dZayp3ck9mKVVfaGQyWm1qK0pCO3hRVTsKel4kaVJOeVg0ZCsqQEoxfldMSzZqY01nN2Ypa2g9
bk5xY3kyLUdiYyR0Qk50bnZ3MkJocCE0YWlVUTBvJCY+K1ZSCnotQUVVKSgrLXt0MWJIeSpGWlRD
NExDQyhrWU1jMj5pcD4jKmtvIU1oSzhIQ29lUHEqQlhlMVNHVHltJmBuWk9LYgp6fEZFSX42flRQ
PnYpM1V0dis9cE1eYj0hT3UzWHVnWmZHYmtoc2xpZ0YwV3xadT9EdiEkUUA/TiZGQlFuPT1yYjQK
elRsY3JWLW5vNHslWGErYTxZY1BPOVVzfShDeShnSFklKXBqVUVUT3Y8dUcqPWJBQ1hMSyVWK2Fp
V3dsJG90QT1XCnpYPXljdlJBPVpyazlecDVJfFdqPVghTnlUUk5WZDx4OzQ2QUAtTEFaOVpreH1m
THV6QnVVR0hLSkdTVH5IZUl8WQp6O3VteWR1PXl7UmYxSipjTzBLTXxLIyZOQDd6ciopNCZSRk1o
ajw1ZDBFQD4oV256WmNtdGhNc1VZWW9FZFJwMncKejUyTWQheEx5M0s5Q0VUOUl9JHFoKnhhNnFZ
aUppcyQrTHJiTCV6ZmclUlkmb0IlWFlsO2V9KWJeYlJnRHZ4ZDsqCnpfI2VsUjJnQUgra2luYVFQ
T1ZZQF5RZ3NKVUsoeUltaXl8KEk+Z2ZjemQhfSZZRi1hOWdHQntoUnQ5I3Y4Kio3Ugp6V2dAI3V2
WGVBI1RNe2wleklISnhnTm0yM1l9MjZta1h3K1BzPF9TMXshWnlET2oxX1p6Tj18eEhiQXtYMHk4
TGQKekYlJXUwKiFiKU1iemxIP2dnRz8zaz9sQCRfckQ9MkJOQEBtX1clckkjZT4oNTRwSXY9KlMo
M1pWK1Z3eXU0eD5QCnojOz5xUSVOX2BTQkQxbko8UU5sNmMjRyhiVyk+eXJlKmphbmpJLTRZaU5s
M1Ulby1zfmNmN2YpNiVjTmpXUl8yYgp6ZHZgQEJWNmtMMl5WV084b0hhNHdAQnR4SiUyWVc/SS1k
VGJ0ZHk2dD9YanRydlA/SnVkalNUeUsyRXk5cDJ2a0AKekNSVilobV5aQF8qZipCVHUmcVNYOV4t
ZDE/e3szfl9vQnY3ZlcrbHlWRTY9JmUpcGpFJkc/QWtXZihXWjt1OTd7Cnp1bileMEdGZFlfOSZk
dXBzN2JtUlh2bkZpSnlPbmNkI0VtP2RUdylMcUp2RVMtWWcyRTQrLVl+dWppTXoxTzU9dAp6QTdt
S0d3aVhzdVlnb2RtODEyWk0qdEgwZDt6UzREOEQ/JF5RQXFTQmJjQGY3P0pIS0FGRHM4akFybztT
QV8kUDwKemZjQzthQmd0WSZiRmFTNCN2K3c3dmV4UDtyWWtZWVR2QlBzWENZZnNTYXwjbjhLQ3FJ
RXJpZGdYXzd5UyZ0KllXCnpUYXZ4OyUxVGQqaHttPDd0WWRrWC04a0RtcUFfYTItU0wjUzMlZGFF
e0FLY0JmZ3U9OFBmdFZUKH4kPyRedWJ6eQp6SC1EJFZDbHdkNyo7a0IkR3kyNmtlMktGcXVgS3V6
V2dtezttdT4kRiR6Z2x3Njc9Tz0pRW81dHd3Jlhfc0ojTTgKekEjPHw2ekZyOSNjKUFmYms5cmtB
Qmp6O00wIy1eO1I1Wks7PzslNzdpO0lpWFVeTnU0TmQ4czB2dCQtOXllTz5GCnpJVSNWcnY7RHAk
WFBkLWk4UHlheXAzK3BAQngzcUBjUjYpdURYYzs7eDR8MUJWb31qUmtiVGZFUFV4fXtkZnpreAp6
K2NVbldZYktJVGI0MjwmczloSGcyMnNLMTxLbktMSDQ5OTBXXylSMGt1aFpRaFQ1NDI2JkR1NWxD
eVBEPTBpZU4KeitlfGVWQmtQV2pBTXg8MHFFc2U0ajxtR240Iyl5d1NiX0g8UkpMPWBTPnpqSSg2
KXpvbCleaitodnlCYWY0alJXCnp8TCR2SXswTmI8JjNMQUV1eiUjWCFRez1ePF48d3opKUQtRmk+
ISRDeEghWSpFVjhQPVdtMU81YDtJY2dzVDtkegp6Ryg3YEAxVE4tTDtfcXNuTX05aVp2Oz1FSVF8
XjAhVn0lRHpFcGRSP3FZVD42ZnNHe3d0fUBaRWJHMEdNbVB3ZXkKemc4SGZrMmg0QihzRWZteyQo
WCRgUTxTKzBEM09tZnN6aVMxRl9PT3U+UV5qdWlVYn5YMmZrQyMmMWJjYEtCZWNICno8ZHFXTSU0
ZiljN0dRdz1nYj1mQmFsZk5LdEZaOV8rSG1YcVklOXxlcVZkZzUyPyNTRitfO0R2OVVFKHNjOHRM
Swp6Nkc9VU1KPntTblNGcS1sLTQ5IzNYMFItUDB3RnhnOFE+QmxlMVlrZWppcGo7M0U+U2s4ZExX
MTRZdz9IMGhQXz0KYWIzKDQoX1pzYStEKShWWTl9Z3xCQ1JaWTM4dSZqbCNfN05TCgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBl
cmYvcmVzb3VyY2VzL2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJm
L3Jlc291cmNlcy9pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmI5ZjA0MGZkMGE3ZjU3ZTRjMjM1
MDlhMDhiNzFkMjM5MTYwMzVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJwZXJmL3Jlc291cmNlcy9pZnJhbWUuaHRtbApAQCAtMCwwICsxLDYgQEAKKzxodG1s
PgorPGhlYWQ+Cis8Ym9keT4KK1Rlc3QgZnJhbWUuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDEyZjNmM2FjZTdlNDNhZDY2
OWUyNTVjYTNkZDY3YmQ5NjJmNjVlMjkuLjAxMWQ0OGM0YjNlNTI2OTA3ODBhMjE3MDJiNjI0MTQx
Mjg0ZTY4NmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xNTE4LDYgKzE1MTgsNyBAQCB3ZWJraXQub3JnL2IvOTk2OTEgZ2FtZXBhZC9nYW1lcGFkLW91
dC1vZi1yYW5nZS1jcmFzaGVyLmh0bWwgWyBGYWlsdXJlIF0KIAogIyBSZXNvdXJjZSBUaW1pbmcg
aXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCiB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzYxMTM4IGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcgWyBT
a2lwIF0KIAogIyBFbnRlcmluZyBpbnRvIGZ1bGwgc2NyZWVuIHBsYXliYWNrIG1vZGUgZmFpbHMg
d2hlbiB0cmlnZ2VyZWQgYnkgY29udGV4dCBtZW51CiBCdWcoRUZMKSBtZWRpYS9jb250ZXh0LW1l
bnUtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDkxZTZhYmM0OWIxZWVkMGQ1ODMyMjNjNjUzYTkwZjlkYmJmOTIy
OTUuLjQ3MjEwZmIyYTMwODU2YmRjMWE0OGZjZjI4YjkzNjcxNDI4ZjhkZjcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTM1LDYgKzExMzUsNyBAQCB3
ZWJraXQub3JnL2IvOTgyNTcgZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWlu
dC5odG1sIFsgRmFpbHVyZSBQYXNzCiAKICMgUmVzb3VyY2UgVGltaW5nIGlzIG5vdCBlbmFibGUg
eWV0LCBza2lwIGl0Lgogd2Via2l0Lm9yZy9iLzYxMTM4IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYv
c3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi82
MTEzOCBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nIFsgU2tpcCBdCiAKICMgRmxh
Y2t5IG9uIE1vdW50YWluIExpb24gUmVsZWFzZSwgZmFpbHMgZXZlcnl3aGVyZSBlbHNlLgogZmFz
dC9jc3Mvc3RpY2t5L3N0aWNreS10b3Atem9vbWVkLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFhYzE4ZjE4NmRi
MDUxZTg4Y2JiODI0MWIzMGE0M2E4NGQxYTBkOGIuLjI4YTY4OGYzZDA3ZTMyMDc0M2I3NzFmNWEx
MTNkNThhNTEyNWNjZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNDc4LDYgKzQ3OCw3IEBAIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rlc3RzL3czYy93
ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcKIAogIyBSZXNvdXJjZSBUaW1pbmcg
aXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCiB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZword2Via2l0Lm9y
Zy9iLzYxMTM4IGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcgWyBTa2lwIF0KIAog
IyBNaXNzaW5nIGV2ZW50U2VuZGVyLnNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93bigpIGltcGxl
bWVudGF0aW9uCiBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2lubGluZS1ldmVudC1saXN0ZW5l
ci5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDVl
M2EwZDc2MGFkZjc3N2Q4NDYyZDYzYTVmOGUyYTcyYzVjMDY0OGYuLjIyYTBiNzM2NDA3MmU5NjNj
YzdjYjViYTllNmNmYmI3OTI2NDNjNmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zCkBAIC0yNjU0LDYgKzI2NTQsNyBAQCB3ZWJraXQub3JnL2IvODQ4OTMgaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nCiAKICMgUmVz
b3VyY2UgVGltaW5nIGlzIG5vdCBlbmFibGUgeWV0LCBza2lwIGl0Lgogd2Via2l0Lm9yZy9iLzYx
MTM4IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1p
bmcKK3dlYmtpdC5vcmcvYi82MTEzOCBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5n
IFsgU2tpcCBdCiAKICMgYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEyMzUKIGNz
czMvZmlsdGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRheAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204120</attachid>
            <date>2013-06-09 08:12:54 -0700</date>
            <delta_ts>2016-05-01 07:53:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-117065-20130609171117.patch</filename>
            <type>text/plain</type>
            <size>98813</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUxMzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE5ODM0MzQ4N2U5ZjNj
MWFmM2Y5MGYwYzkwNzdkZTc1ZGVlYTBiNC4uYjhiMGJkMTQxNTMxNjMyNjNlNzI4NTkwOTExZTUz
YjJhMDgzNmJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAxMy0wNi0wOSAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IGluaXRpYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzA2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycyBzdHJ1Y3QgZnJvbSB0aGUgY29kZS4gSXRzIGluc3RhbmNlIHdhcyBsb2NhdGVkIGlu
IHRoZSBUaHJlYWRHbG9iYWxEYXRhCisgICAgICAgIGNsYXNzIGFuZCB3YXMgYXMgc3VjaCBhIGxh
eWVyaW5nIHZpb2xhdGlvbi4gVGhlIHRocmVhZC1zcGVjaWZpYyBpbnN0YW5jZSBjb250YWluZWQg
QXRvbWljU3RyaW5nIG1lbWJlcnMgdGhhdCByZXByZXNlbnRlZAorICAgICAgICB2YXJpb3VzIHR5
cGVzIG9mIGluaXRpYXRvcnMgb2YgdGhlIENhY2hlZFJlc291cmNlUmVxdWVzdHMuCisKKyAgICAg
ICAgVGhlIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBjbGFzcyBpcyBpbnRyb2R1Y2Vk
IHRoYXQgc3VwcG9ydHMgYWxsIHRoZSBpbml0aWF0b3IgdHlwZXMgYXMgc3BlY2lmaWVkIGJ5IHRo
ZSBsYXRlc3QKKyAgICAgICAgZWRpdG9yJ3MgZHJhZnQgb2YgdGhlIFJlc291cmNlIFRpbWluZyBz
cGVjaWZpY2F0aW9uIC0gdGhlICdjc3MnIGFuZCAneG1saHR0cHJlcXVlc3QnIHR5cGVzIGFsb25n
IHdpdGggdGhlIHN1cHBvcnQgZm9yIGFuCisgICAgICAgIGFyYml0cmFyeSBlbGVtZW50IHRoYXQn
cyBhIHJlc291cmNlIGluaXRpYXRvciB0byBoYXZlIGl0cyBuYW1lIGNvbnNpZGVyZWQgYXMgYW4g
aW5pdGlhdG9yIHR5cGUuCisKKyAgICAgICAgQXQgdGhlIG1vbWVudCB0aGVyZSBhcmUgc3RpbGwg
bG9vcGhvbGVzIGluIHRoZSB0ZXJtcyBvZiBlYWNoIHBvc3NpYmxlIHJlc291cmNlIHJlcXVlc3Qg
aGF2aW5nIHRoZSBhcHByb3ByaWF0ZSBpbml0aWF0b3IgdHlwZQorICAgICAgICByZXBvcnRlZC4g
VGhlICd1bmtub3duJyB2YWx1ZSBpcyByZXR1cm5lZCBpbiB0aGF0IGNhc2UuIFRoaXMgaXMgb2Yg
Y291cnNlIG5vdCBpbiBsaW5lIHdpdGggdGhlIHNwZWNpZmljYXRpb24gYnV0IGlzIHJhdGhlcgor
ICAgICAgICBhIHRlbXBvcmFyeSBwYXRjaCBmb3IgdGhlIGxvb3Bob2xlcy4KKworICAgICAgICBF
YWNoIENhY2hlZFJlc291cmNlUmVxdWVzdCBoYXMgYW4gaW5pdGlhdG9yIHRoYXQncyBvZiB0aGUg
dW5rbm93biB0eXBlIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSByZXNldCB0byBlaXRoZXIgYSBzcGVj
aWZpYworICAgICAgICBpbml0aWF0b3IgKG9mIHRoZSBDU1Mgb3IgWE1MSHR0cFJlcXVlc3QgdHlw
ZSkgb3IgYW4gZWxlbWVudCBpbml0aWF0b3IsIHdoZXJlIHRoZSBlbGVtZW50J3MgbG9jYWwgbmFt
ZSBpcyB1c2VkIGFzIHRoZSB0eXBlJ3MKKyAgICAgICAgc3RyaW5nIHZhbHVlIGxhdGVyIGluIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmluaXRpYXRvclR5cGUuIFRoZSBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3IgY29uc3RydWN0b3JzIGFyZSBpbnRlbnRpb25hbGx5CisgICAgICAg
IGxlZnQgYXMgaW1wbGljaXQgdG8gc2ltcGxpZnkgY2FsbHMgdG8gQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0OjpzZXRJbml0aWF0b3IuCisKKyAgICAgICAgVGhlIGFkZGVkIHRlc3RzIGNoZWNrIHRoYXQg
dGhlIGNvcnJlY3QgaW5pdGlhdG9yIHR5cGUgaXMgcmVwb3J0ZWQgaW4gdGhlIGNhc2Ugb2YgcmVx
dWVzdHMgaW5pdGlhdGVkIHRocm91Z2ggdGhlIENTUycgdXJsKCkgc3ludGF4LAorICAgICAgICBY
TUxIdHRwUmVxdWVzdHMgYW5kIHRoZSBpZnJhbWUsIGltZywgbGluayBhbmQgc2NyaXB0IGVsZW1l
bnRzLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5n
L2luaXRpYXRvci10eXBlLWNzcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnBl
cmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWlmcmFtZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWlt
Zy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5n
L2luaXRpYXRvci10eXBlLWxpbmsuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93ZWJw
ZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1zY3JpcHQuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14
bWxodHRwcmVxdWVzdC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQpOiBTZXQg
dGhlIENTUyBpbml0aWF0b3IgZm9yIHRoZSBjYWNoZWQgaW1hZ2UgcmVxdWVzdC4KKyAgICAgICAg
KiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZVNl
dFZhbHVlOjpjYWNoZWRJbWFnZVNldCk6IERpdHRvLgorICAgICAgICAqIGNzcy9DU1NJbWFnZVZh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKTog
RGl0dG8uCisgICAgICAgICogY3NzL0NTU0ltYWdlVmFsdWUuaDogUmVtb3ZlIHRoZSBzZXRJbml0
aWF0b3IgbWV0aG9kIGFuZCB0aGUgbV9pbml0aWF0b3JOYW1lIHZhcmlhYmxlLiBUaGVzZSB3ZXJl
IHVzZWQgdG8gcmVsYXkgdGhlCisgICAgICAgIEhUTUxCb2R5RWxlbWVudCBhcyB0aGUgaW5pdGlh
dG9yIG9mIHRoZSBiYWNrZ3JvdW5kIGltYWdlIHJlc291cmNlIHJlcXVlc3QuIFRoaXMgc2hvdWxk
IGJlIHJlaW1wbGVtZW50ZWQgaWYgcmVxdWlyZWQKKyAgICAgICAgdG8gYmUgaW4gbGluZSB3aXRo
IHRoZSBzcGVjaWZpY2F0aW9uLCBidXQgcG9zc2libHkgYWJzdHJhY3RlZCBpbnRvIGEgc2hhcmVh
YmxlIGJhc2UgY2xhc3MgYXMgdGhlIGZ1bmN0aW9uYWxpdHkgbWlnaHQKKyAgICAgICAgYmUgcmVx
dWlyZWQgZWxzZXdoZXJlLgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVldCk6IFNldCB0
aGUgQ1NTIGluaXRpYXRvciBmb3IgdGhlIGNhY2hlZCBDU1Mgc3R5bGUgc2hlZXQgcmVxdWVzdC4K
KyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlOjpsb2FkKTogU2V0IHRoZSBDU1MgaW5p
dGlhdG9yIGZvciB0aGUgY2FjaGVkIFNWRyBkb2N1bWVudCByZXF1ZXN0LgorICAgICAgICAqIGNz
cy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NT
aGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKTogU2V0IHRoZSBDU1MgaW5pdGlhdG9yIGZvciB0aGUg
Y2FjaGVkIHNoYWRlciByZXF1ZXN0LgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHQpOiBTZXQgdGhl
ICdzY3JpcHQnIGVsZW1lbnQgaW5pdGlhdG9yIGZvciB0aGUgY2FjaGVkIHNjcmlwdCByZXF1ZXN0
LgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxCb2R5RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKTog
UmVtb3ZlIHRoZSBjYWxsIHRvIHRoZSBDU1NJbWFnZVZhbHVlOjpzZXRJbml0aWF0b3IKKyAgICAg
ICAgbWV0aG9kLiBUaGUgbWV0aG9kIGlzIGJlaW5nIHJlbW92ZWQgZnJvbSB0aGUgQ1NTSW1hZ2VW
YWx1ZSBjbGFzcyBhcyBpdCBpcyBjdXJyZW50bHkgbm90IGNsZWFyIHdoZXRoZXIgaW4gdGhpcyBj
YXNlCisgICAgICAgIHVzaW5nIHRoZSAnYm9keScgZWxlbWVudCBpbml0aWF0b3IgZm9yIHRoZSBi
YWNrZ3JvdW5kIGltYWdlIHJlc291cmNlIHJlcXVlc3QgaXMgYWN0dWFsbHkgbmVjZXNzYXJ5LiBJ
ZiBpdCB0dXJucyBvdXQKKyAgICAgICAgdG8gYmUsIHRoZSBpbml0aWF0b3IgaW5mb3JtYXRpb24g
cmVsYXlpbmcgdGhyb3VnaCB0aGUgQ1NTSW1hZ2VWYWx1ZSB0byB0aGUgcmVsZXZhbnQgY2FjaGVk
IGltYWdlIHJlc291cmNlIHJlcXVlc3QKKyAgICAgICAgc2hvdWxkIGJlIHJlaW50cm9kdWNlZC4K
KyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MpOiBTZXQgdGhlICdsaW5rJyBlbGVtZW50IGluaXRpYXRv
ciBmb3IgdGhlIGNhY2hlZCBDU1Mgc3R5bGUgc2hlZXQgcmVxdWVzdC4KKyAgICAgICAgKiBodG1s
L3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmVs
b2FkU2Nhbm5lcjo6ZW1pdFJ1bGUpOiBTZXQgdGhlIENTUyBpbml0aWF0b3IgZm9yIHRoZSBwcmVs
b2FkIENTUyBzdHlsZSBzaGVldCByZXNvdXJjZSByZXF1ZXN0LgorICAgICAgICAqIGh0bWwvcGFy
c2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb2tlblByZWxv
YWRTY2FubmVyOjppbml0aWF0b3JGb3IpOiBCcmVhayBvbiBhbiB1bnN1cHBvcnRlZCB0YWcgSUQg
dG8gbW92ZSBvbiB0byBhc3NlcnRpbmcgYW5kIHJldHVybmluZyB0aGUgJ3Vua25vd24nIGluaXRp
YXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nh
bm5lcjo6Y3JlYXRlUHJlbG9hZFJlcXVlc3QpOiBTZXQgdGhlIHRhZy1zcGVjaWZpYyBpbml0aWF0
b3Igc3RyaW5nIGZvciB0aGUgcHJlbG9hZCByZXF1ZXN0LgorICAgICAgICAqIGh0bWwvcGFyc2Vy
L0hUTUxSZXNvdXJjZVByZWxvYWRlci5oOiBUaGUgbV9pbml0aWF0b3IgbWVtYmVyIHZhcmlhYmxl
IGlzIG5vdyBvZiB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIHR5cGUuCisgICAg
ICAgIChXZWJDb3JlOjpQcmVsb2FkUmVxdWVzdDo6Y3JlYXRlKTogVGFrZSBhIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvciBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyIGluc3RlYWQgb2YgYSBT
dHJpbmcuIAorICAgICAgICAoV2ViQ29yZTo6UHJlbG9hZFJlcXVlc3Q6OlByZWxvYWRSZXF1ZXN0
KTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmxvYWRSZXF1ZXN0
KTogU2V0IHRoZSBpbml0aWF0b3Igb2YgdGhlIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIGFzIHRo
ZSBpbml0aWF0b3IKKyAgICAgICAgZm9yIHRoZSByYXcgcmVzb3VyY2UgcmVxdWVzdC4KKyAgICAg
ICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2Fk
ZXI6OnVwZGF0ZUZyb21FbGVtZW50KTogU2V0IHRoZSAnaW1nJyBlbGVtZW50IGluaXRpYXRvciBm
b3IgdGhlIGNhY2hlZCBpbWFnZSByZXNvdXJjZSByZXF1ZXN0LgorICAgICAgICAqIGxvYWRlci9M
aW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6OmxvYWRMaW5rKTog
U2V0IHRoZSAnbGluaycgaW5pdGlhdG9yIGZvciB0aGUgY2FjaGVkIGxpbmsgcmVzb3VyY2UgcmVx
dWVzdC4KKyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6VGhyZWFkYWJsZUxvYWRlck9wdGlvbnMp
OiBJbml0aWF0ZSB0aGUgaW5pdGlhdG9yVHlwZSB2YXJpYWJsZSB0byB0aGUgdW5rbm93biBpbml0
aWF0b3IgdHlwZS4KKyAgICAgICAgKiBsb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oOiBBZGQgdGhl
IGluaXRpYXRvclR5cGUgdmFyaWFibGUgdG8gdGhlIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIHN0
cnVjdC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnN0b3JlUmVzb3VyY2VUaW1p
bmdJbml0aWF0b3JJbmZvcm1hdGlvbik6IEFkanVzdCB0aGUgSW5pdGlhdG9ySW5mbyBpbml0aWFs
aXphdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZERv
bmUpOiBVc2UgdGhlIG5ldyBJbml0aWF0b3JJbmZvIGluaXRpYXRvciBhbmQgc3RhcnQgdGltZSBn
ZXR0ZXIgbWV0aG9kcy4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaDogTWFrZSBJbml0aWF0b3JJbmZvIGEgY2xhc3MgY29udGFpbmluZyB0aGUgaW5pdGlhdG9y
IGFuZCB0aGUgc3RhcnQgdGltZSBmb3IgdGhlIHJlbGV2YW50IHJlc291cmNlLgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkluaXRpYXRvckluZm86OkluaXRpYXRvcklu
Zm8pOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OkluaXRpYXRvcklu
Zm86OmluaXRpYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
SW5pdGlhdG9ySW5mbzo6c3RhcnRUaW1lKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmNwcDogUmVtb3ZlIHNldEluaXRpYXRvciwgaW5pdGlhdG9yTmFtZSBt
ZXRob2QgZGVmaW5pdGlvbnMuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdC5oOiBEaXR0byBmb3IgdGhlIG1ldGhvZCBkZWNsYXJhdGlvbnMuIFRoZXkncmUgYmVp
bmcgcmVwbGFjZWQgYnkgdGhlIGdldHRlci9zZXR0ZXIgcGFpciB0aGF0IG9wZXJhdGVzCisgICAg
ICAgIG9uIHRoZSByZXF1ZXN0J3MgbV9pbml0aWF0b3IgbWVtYmVyIHZhcmlhYmxlIHRoYXQncyBv
ZiB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIHR5cGUuCisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcik6CisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
aC4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcjo6Q2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcjo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3I6OmluaXRpYXRvck5hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yOjppc1NhZmVUb1NlbmRUb0Fub3RoZXJU
aHJlYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6IFNldCB0aGUg
J2ljb24nIGluaXRpYXRvciBmb3IgdGhlIGNhY2hlZCBpY29uIHJlc291cmNlIHJlcXVlc3QuCisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZTo6YWRkUmVzb3VyY2VUaW1pbmcpOiBBY2NlcHQgdGhlIGluaXRpYXRvciBpbiB0aGUgZm9y
bSBvZiBhIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBpbnN0ZWFkIG9mIGEgU3RyaW5n
LgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuaDogQWRqdXN0IHRoZSBhZGRSZXNvdXJjZVRp
bWluZyBtZXRob2QgZGVjbGFyYXRpb24uCisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmc6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcpOiBBY2NlcHQgdGhlIGluaXRpYXRvciBpbiB0
aGUgZm9ybSBvZiBhIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcgorICAgICAgICBpbnN0
ZWFkIG9mIGFuIEF0b21pY1N0cmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc6OmluaXRpYXRvclR5cGUpOiBSZXR1cm4gYSBTdHJpbmcgY29ycmVzcG9uZGlu
ZyB0byB0aGUgaW5pdGlhdG9yJ3MgdHlwZS4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuaDogQWRqdXN0IHRoZSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIGNvbnN0
cnVjdG9yLCBpbml0aWF0b3JUeXBlIG1ldGhvZCBkZWNsYXJhdGlvbnMuIE1ha2UgdGhlCisgICAg
ICAgIG1faW5pdGlhdG9yIG1lbWJlciB2YXJpYWJsZSBoYXZlIHRoZSBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3IgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmc6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5j
cHA6IFJlbW92ZSB0aGUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluY2x1c2lv
bi4KKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEp
OiBSZW1vdmUgdGhlIG1fY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyBtZW1iZXIgdmFy
aWFibGUgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0
YS5oOiBSZW1vdmV0IGhlIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMgZm9yd2FyZCBk
ZWNsYXJhdGlvbiwgbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzCisgICAgICAgIG1l
bWJlciB2YXJpYWJsZSBhbmQgaXRzIGdldHRlciBtZXRob2QuCisgICAgICAgICogc3ZnL1NWR0ZF
SW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50Ojpy
ZXF1ZXN0SW1hZ2VSZXNvdXJjZSk6IFNldCB0aGUgJ2ZlSW1hZ2UnIGVsZW1lbnQgaW5pdGlhdG9y
IGZvciB0aGUgY2FjaGVkIGltYWdlIHJlc291cmNlIHJlcXVlc3QuCisgICAgICAgICogc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVy
aUVsZW1lbnQ6OmxvYWRGb250KTogU2V0IHRoZSAnZm9udC1mYWNlLXVyaScgZWxlbWVudCBpbml0
aWF0b3IgZm9yIHRoZSBjYWNoZWQgZm9udCByZXNvdXJjZSByZXF1ZXN0LgorICAgICAgICAqIHN2
Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQpOiBTZXQgdGhlICd1c2UnIGVsZW1lbnQgaW5pdGlhdG9yIGZvciB0
aGUgY2FjaGVkIFNWRyBkb2N1bWVudCByZXNvdXJjZSByZXF1ZXN0LgorICAgICAgICAqIHhtbC9Y
TUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y3Jl
YXRlUmVxdWVzdCk6IFNldCB0aGUgWE1MSHR0cFJlcXVlc3QgaW5pdGlhdG9yIHR5cGUgZm9yIHRo
ZSBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvYmplY3QgdGhhdAorICAgICAgICB3aWxsIGJlIHVz
ZWQgZHVyaW5nIHRociBYTUxIdHRwUmVxdWVzdCBleGVjdXRpb24uCisKIDIwMTMtMDYtMDcgIFph
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBGcmFtZSBmbGF0dGVuaW5n
OiBjcmFzaCB3aGVuIGNoaWxkIGlmcmFtZSBpcyByZW1vdmVkIGR1cmluZyBiZWZvcmVsb2FkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4ZTgzNzM1OWM5MzU2NmRjNTU2YTRlM2YyODc5Y2M2Yjc5
NzIxZWZkLi4yYWMzNGE5M2M1ODc2NGEwYjA1MjUxOWQ1Yzg1YTNlZTZmYzU5YjQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTY5NSw3ICsxNjk1LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAKICAgICBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAKLSAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycy5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAogICAgIGxvYWRl
ci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3Vt
ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggODQxYTU0MTk1MDRiODYw
N2VjMjRhYTQzZjE3Yzk2MTkyNmY1Y2JmMS4uNzAzMWM2MDkxODEyYTJkZjU4ZGZmNTM2MjdjZDJh
YjBkNmM5YTQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MDI2LDggKzQw
MjYsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggXAorCVNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IuaCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMGI0YTRmZDlkMDZk
ZGQ4NTNmMjA2YzE1MmIwN2RjMDJjMmYyYTY3OS4uYTNmN2I0MDM1MTQ2ZDkzODg1ZDMyYjlkYjgw
MDZlZmE1ZjQyZDkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04NTIsNyArODUyLDYgQEAgU09VUkNFUyAr
PSBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIFwKICAg
ICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIFwKICAgICBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBcCi0gICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkVGlt
aW5nLmNwcCBcCiAgICAgbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBcCiAgICAgbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgXApAQCAtMjAyNCw3ICsyMDIzLDcgQEAgSEVBREVS
UyArPSBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCBcCiAg
ICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggXAogICAgIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBcCi0gICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBcCisgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvci5oIFwKICAgICBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBcCiAgICAg
bG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIFwKICAgICBsb2FkZXIvRm9ybVN0YXRl
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
aW5kZXggZTgwNzIwMWI0MTEwYjljYWNlNzVmMGUxNjA3NGQzMmQyZWMwZDc2OS4uZGU2OTUwNTg2
YjAzNzg0YjgzMWEwMGU5Yjc1OTlkNjc3MDhhMjU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC00MDU2LDcgKzQwNTYsNiBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlSGFuZGxl
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxsb2FkZXJc
Y2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTY3JpcHQu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFNo
YWRlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2Fj
aGVkU1ZHRG9jdW1lbnQuY3BwIiAvPgpAQCAtMTE0NjQsNyArMTE0NjMsNyBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlSGFuZGxlLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGxvYWRlclxjYWNoZVxDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGxvYWRl
clxjYWNoZVxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiIC8+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVk
U2NyaXB0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2Fj
aGVkU2hhZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVc
Q2FjaGVkU3R5bGVTaGVldENsaWVudC5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGY1ZTg3MjM4Yzdm
MjA4Yjc1OGEwZmQ3MTYxOGQwMmY0ZDIyZGM3MDMuLjgxZjljMTlkNTYzNmQyYzE4ZTkzMjg4MzQ4
OTk3MDIyOGZjNzA2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTEwMzUsOSArMTAzNSw2IEBACiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmNwcCI+CiAgICAgICA8RmlsdGVyPmxvYWRlclxjYWNoZTwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIj4KLSAgICAgIDxGaWx0ZXI+bG9hZGVyXGNhY2hlPC9G
aWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxsb2Fk
ZXJcY2FjaGVcQ2FjaGVkU2NyaXB0LmNwcCI+CiAgICAgICA8RmlsdGVyPmxvYWRlclxjYWNoZTwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNzc0Niw3ICs3NzQzLDcgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCI+
CiAgICAgICA8RmlsdGVyPmxvYWRlclxjYWNoZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgot
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuaCI+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxsb2FkZXJcY2Fj
aGVcQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmgiPgogICAgICAgPEZpbHRlcj5sb2Fk
ZXJcY2FjaGU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTY3JpcHQuaCI+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDUwZjJjNWY1YmQ2NDA0
Y2ZmY2Q3OTk1ZTY2YTdmZGY5MzU0Zjk4Ny4uNzg2MDNkNDczY2Y0OWE1OTNlMzAzZGQzZTlmZWQ2
ZDlhMGMyMjY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTgwOCw4ICsxODA4LDcgQEAKIAkJNjVFMEU5NDQxMTMzQzg5RjAw
QjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjVFMEU5NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTY1RkVB
ODY5MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNw
cCAqLzsgfTsKIAkJNkIzNDgwOTQwRUVGNTBENDAwQUMxQjQxIC8qIE5hdGl2ZUltYWdlUHRyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QjM0ODA5MjBF
RUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM2Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5NEE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgKi87IH07CisJCTZDNjM4ODk1QTk2Q0NFRTUwQzhD
OTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAv
KiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIgLyog
R3JhcGhpY3NDb250ZXh0M0QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNE
LmNwcCAqLzsgfTsKIAkJNkUyMUM2QzIxMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4
dDNEQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkUyMUM2QzExMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovOyB9
OwogCQk2RTNGQUQzODE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5j
cHAgKi87IH07CkBAIC04MTk4LDggKzgxOTcsNyBAQAogCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4QkY3
NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxvY2tFeGNlcHRpb25zLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNjVGRUE4Njgw
OTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjM0ODA5
MjBFRUY1MEQ0MDBBQzFCNDEgLyogTmF0aXZlSW1hZ2VQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUltYWdlUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZD
NjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM2
Mzg4OTNBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMjFDNkJGMTEyNjMz
ODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQz
RENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dDNEQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMz
RjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RD
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTIzLDggKzE3NTIxLDcgQEAK
IAkJCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCAq
LywKIAkJCQk1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmNwcCAqLywKIAkJCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmggKi8sCi0JCQkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovLAotCQkJCTZDNjM4ODkzQTk2Q0NFRTUwQzhDOTQ2
QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8sCisJCQkJNkM2Mzg4OTNB
OTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5oICovLAog
CQkJCUJDQjE2QzBBMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLAogCQkJ
CUJDQjE2QzBCMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuaCAqLywKIAkJCQk1MDM4
QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCAqLywKQEAgLTIxMDI3LDcg
KzIxMDI0LDcgQEAKIAkJCQlFNDdCNEJFODBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzJBMDk3OUMzQkQwMDQ2Nzc0MSAv
KiBDYWNoZWRSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTA4MUUzRTAzQ0ZG
ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNkM2Mzg4OTVBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTZDNjM4ODk1QTk2Q0NFRTUwQzhDOTQ2QyAvKiBD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2
QzI0MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTAzOEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNo
YWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ2Myw3ICsyNDQ2MCw2IEBACiAJCQkJRTQ3QjRC
RTkwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQjE2QzI5MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MDgxRTNDMzNDRTU4MEMxNkVGOEI0OEIgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTZDNjM4ODk2QTk2Q0NF
RTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDQjE2QzIzMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTAzOEJFNDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNo
YWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTA0RjI0MzE0QzcxRjdBMDA5RTJDMjMgLyog
Q2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKaW5kZXggYmZkYjdhNzQxYjhjMDI5YWE1OTNmMTMxZWEx
ZDI2OWRmZDkxMWJmMC4uMmRhMmRiNWJhMjQwM2NlNzE5MmZlNWMyMjIyYmRlMDNkMTc4NDYyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMjgsNyAr
MjgsNiBAQAogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJOb2RlLmgi
CkBAIC05Nyw3ICs5Niw3IEBAIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hl
ZEZvbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIGlmICghbV9jYWNoZWRGb250KSB7CiAg
ICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1
bWVudC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRJbml0
aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcyk7CisgICAgICAgIHJl
cXVlc3Quc2V0SW5pdGlhdG9yKENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcjo6Q1NTKTsK
ICAgICAgICAgbV9jYWNoZWRGb250ID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCkt
PnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAgIH0KICAgICByZXR1cm4gbV9jYWNoZWRGb250Lmdl
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IGNiZDhhNDMz
MzMzOTE2MGMxMDg0N2E0NTA1NjU5MWVjNWRhM2NjMDMuLjA4NDA3YjhhMzQ4MWU3NGQxYTNhMDM4
MGI5ZGE1MzhhZTk4MzI1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFn
ZVNldFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5j
cHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2FjaGVk
SW1hZ2VTZXQuaCIKQEAgLTExMiw3ICsxMTEsNyBAQCBTdHlsZUNhY2hlZEltYWdlU2V0KiBDU1NJ
bWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldChDYWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZAog
ICAgICAgICAvLyBhbmQgYW55IENTUyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBi
ZXN0SW1hZ2VGb3JTY2FsZUZhY3RvcigpOwogICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLmltYWdl
VVJMKSkpOwotICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzKCkuY3NzKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yOjpDU1MpOwogICAgICAgICBpZiAoQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2Uo
cmVxdWVzdCkpIHsKICAgICAgICAgICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNhY2hlZEltYWdlU2V0
OjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCksIGltYWdlLnNjYWxlRmFjdG9yLCB0aGlzKTsKICAg
ICAgICAgICAgIG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlVmFsdWUuY3BwCmluZGV4IGQ2Y2E4MzRhZDNlMDc0NDM4M2MwNDU4YTg4ZmFiZmM0NGQ3
MWUzZDguLjM5NWIyMjY0NDM4ZGY4ODE1ODQ1ZTNiZmQ3ZWFlY2FjYTc5YTMwM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBAIC03MSwxMCArNzAsNyBAQCBTdHlsZUNh
Y2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRl
ciogbG9hZGVyKQogICAgICAgICBtX2FjY2Vzc2VkSW1hZ2UgPSB0cnVlOwogCiAgICAgICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXItPmRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSkpOwotICAgICAgICBpZiAobV9pbml0aWF0b3JOYW1l
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBy
ZXF1ZXN0LnNldEluaXRpYXRvcihtX2luaXRpYXRvck5hbWUpOworICAgICAgICByZXF1ZXN0LnNl
dEluaXRpYXRvcihDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3I6OkNTUyk7CiAgICAgICAg
IGlmIChDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBsb2Fk
ZXItPnJlcXVlc3RJbWFnZShyZXF1ZXN0KSkKICAgICAgICAgICAgIG1faW1hZ2UgPSBTdHlsZUNh
Y2hlZEltYWdlOjpjcmVhdGUoY2FjaGVkSW1hZ2UuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VWYWx1ZS5oCmluZGV4IDYyZTExNjI1YmNjOGNmYTA5NDliMmRhMTdiNWFlOWE2ZmQ5
YWQ2OTYuLjg0NTBmMGE4YWE5NmI5OWIzNzlmNTczZTRmZTlkZWJjODZjODI0MDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlVmFsdWUuaApAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJPYmplY3QqKSBjb25zdDsKIAotICAgIHZv
aWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgeyBtX2luaXRpYXRvck5h
bWUgPSBuYW1lOyB9Ci0KIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShjb25z
dCBTdHJpbmcmIHVybCk7CiAgICAgQ1NTSW1hZ2VWYWx1ZShjb25zdCBTdHJpbmcmIHVybCwgU3R5
bGVJbWFnZSopOwpAQCAtNjMsNyArNjEsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3VybDsK
ICAgICBSZWZQdHI8U3R5bGVJbWFnZT4gbV9pbWFnZTsKICAgICBib29sIG1fYWNjZXNzZWRJbWFn
ZTsKLSAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0b3JOYW1lOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9y
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCBhNTQx
ZWJkOGY1Y2I0MzNhMTBkYTA5ODdiOGY4NmY0YjhiMDBiNjU2Li5lNTE5MWY0MjhkOTQ4ODBkZGUz
NDcxYWI3NzNmNzFjYjRmNDE1ZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlSW1wb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0
LmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCkBAIC0xMTgsNyArMTE3LDcgQEAgdm9pZCBT
dHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKICAgICB9CiAKICAgICBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoYWJzVVJMKSwgbV9wYXJlbnRT
dHlsZVNoZWV0LT5jaGFyc2V0KCkpOwotICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOworICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9y
KENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcjo6Q1NTKTsKICAgICBpZiAobV9wYXJlbnRT
dHlsZVNoZWV0LT5pc1VzZXJTdHlsZVNoZWV0KCkpCiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBj
YWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KHJlcXVlc3QpOwog
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1
bWVudFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTVkdEb2N1bWVudFZh
bHVlLmNwcAppbmRleCA2YTM2YWQ3M2MwNmViZDlmNGI5ZTU2ZmU3NjMzNGJkOTY3ZDk4NDQwLi42
ZDE5MDE5ZGI0YTRhNDJmZWY4MzEzZjhjN2ZlMGM3MDRiYjI0ZmM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1NWR0RvY3VtZW50VmFsdWUuY3BwCkBAIC0zMCw3ICszMCw2
IEBACiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogCkBAIC01NSw3ICs1NCw3IEBAIENhY2hlZFNW
R0RvY3VtZW50KiBXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlOjpsb2FkKENhY2hlZFJlc291cmNl
TG9hZGVyKiBsb2FkZXIpCiAgICAgICAgIG1fbG9hZFJlcXVlc3RlZCA9IHRydWU7CiAKICAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+
ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SW5p
dGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOworICAgICAgICBy
ZXF1ZXN0LnNldEluaXRpYXRvcihDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3I6OkNTUyk7
CiAgICAgICAgIG1fZG9jdW1lbnQgPSBsb2FkZXItPnJlcXVlc3RTVkdEb2N1bWVudChyZXF1ZXN0
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFk
ZXJWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3Bw
CmluZGV4IDdjOWE4ZWRhOGNhNTMyNGJjOWNkN2JhYTI4ZjI4NmMxZGI1NTkwZDcuLmY0Y2EyZmE1
Njg0YjAzYTBjNDJhZjBlNTcyOThlZDJiNzhjNDZiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU1NoYWRlclZhbHVlLmNwcApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIkNT
U1BhcnNlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgog
I2luY2x1ZGUgIlN0eWxlQ2FjaGVkU2hhZGVyLmgiCkBAIC02OCw3ICs2Nyw3IEBAIFN0eWxlQ2Fj
aGVkU2hhZGVyKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKENhY2hlZFJlc291
cmNlTG9hZGVyKiBsb2FkCiAgICAgICAgIG1fYWNjZXNzZWRTaGFkZXIgPSB0cnVlOwogCiAgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChjb21wbGV0
ZVVSTChsb2FkZXIpKSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRv
cihDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3I6OkNTUyk7CiAgICAgICAgIGlmIChDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IGNhY2hlZFNoYWRlciA9IGxvYWRlci0+cmVx
dWVzdFNoYWRlcihyZXF1ZXN0KSkKICAgICAgICAgICAgIG1fc2hhZGVyID0gU3R5bGVDYWNoZWRT
aGFkZXI6OmNyZWF0ZShjYWNoZWRTaGFkZXIuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmNwcAppbmRleCAyM2YwZjY1MmZmMmI0ODA4ZWY5ZmFmYTlmZjM5YzA5Zjk1
N2M1YzYyLi5lNzlmY2IyMzU0ZjM2N2IxZTVmMjI3MzIzY2I2MmM3MzUwMjcyNDk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgYm9vbCBTY3Jp
cHRFbGVtZW50OjpyZXF1ZXN0U2NyaXB0KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogICAgICAg
ICAgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3Vy
Y2VSZXF1ZXN0KCksIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYWxs
b3dDcmVkZW50aWFscyk7CiAgICAgICAgIH0KICAgICAgICAgcmVxdWVzdC5zZXRDaGFyc2V0KHNj
cmlwdENoYXJzZXQoKSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGVsZW1lbnQoKSk7
CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKFN0cmluZyhtX2VsZW1lbnQtPmxvY2FsTmFt
ZSgpKSk7CiAKICAgICAgICAgbV9jYWNoZWRTY3JpcHQgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQocmVxdWVzdCk7CiAgICAgICAg
IG1faXNFeHRlcm5hbFNjcmlwdCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxl
bWVudC5jcHAKaW5kZXggNDdlZDY0ZDBmNjRiY2E0YjgwZjgxMWIwY2EzNzIzNTE2MzM3YWIxMC4u
MTljMjViM2VlMDQ0ZmQ3NmE1M2RhMzU2ZmFkMzE2NzA2NDViN2M3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcApAQCAtNzUsNyArNzUsNiBAQCB2b2lkIEhUTUxCb2R5
RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmCiAgICAgICAgIFN0cmluZyB1cmwgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hU
TUxTcGFjZXModmFsdWUpOwogICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKICAgICAgICAg
ICAgIFJlZlB0cjxDU1NJbWFnZVZhbHVlPiBpbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3Jl
YXRlKGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkuc3RyaW5nKCkpOwotICAgICAgICAgICAg
aW1hZ2VWYWx1ZS0+c2V0SW5pdGlhdG9yKGxvY2FsTmFtZSgpKTsKICAgICAgICAgICAgIHN0eWxl
LT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgaW1h
Z2VWYWx1ZS5yZWxlYXNlKCkpKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBt
YXJnaW53aWR0aEF0dHIgfHwgbmFtZSA9PSBsZWZ0bWFyZ2luQXR0cikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGRmNzMxNzIxY2FmNTk5NDFlNzY1NmQzNmMy
NGEzNmYwNzFlZjE5YzIuLjgyNmIwOTM0M2Y0NDE0NGMyOWNiOGYyZTM2MmQwMmJlZjgyZmY0YTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTIxOCw3ICsyMTgs
NyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAgICAgICAgIC8vIExvYWQgc3R5
bGVzaGVldHMgdGhhdCBhcmUgbm90IG5lZWRlZCBmb3IgdGhlIHJlbmRlcmluZyBpbW1lZGlhdGVs
eSB3aXRoIGxvdyBwcmlvcml0eS4KICAgICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3Jp
dHkgPSBibG9ja2luZyA/IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCA6IFJlc291cmNl
TG9hZFByaW9yaXR5VmVyeUxvdzsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkpLCBjaGFyc2V0
LCBwcmlvcml0eSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOworICAgICAg
ICByZXF1ZXN0LnNldEluaXRpYXRvcihTdHJpbmcobG9jYWxOYW1lKCkpKTsKICAgICAgICAgbV9j
YWNoZWRTaGVldCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RD
U1NTdHlsZVNoZWV0KHJlcXVlc3QpOwogICAgICAgICAKICAgICAgICAgaWYgKG1fY2FjaGVkU2hl
ZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nh
bm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5j
cHAKaW5kZXggNTI3YmVmNjhiZmYzNWJhODIwZjAyOThmNWM2ZWFiMTNjZDY1MDdhOC4uY2ZmNWRm
YmVlZDBiZTJiNWVjYmY2ODM0NGM4MmExNjBkOTQ4MzJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcApAQCAtMjgsNyArMjgsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNTU1ByZWxvYWRTY2FubmVyLmgiCiAKLSNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCisjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmgiCiAjaW5jbHVkZSAiSFRNTElkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAKQEAgLTIyNCw3ICsyMjQsOCBAQCB2
b2lkIENTU1ByZWxvYWRTY2FubmVyOjplbWl0UnVsZSgpCiAgICAgICAgIFN0cmluZyB1cmwgPSBw
YXJzZUNTU1N0cmluZ09yVVJMKG1fcnVsZVZhbHVlLmRhdGEoKSwgbV9ydWxlVmFsdWUuc2l6ZSgp
KTsKICAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBLVVJMIGJhc2VF
bGVtZW50VVJMOyAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcGFzc2VkIGluIGZyb20gdGhlIEhU
TUxQcmVsb2FkU2NhbmVyIHZpYSBzY2FuKCkhCi0gICAgICAgICAgICBPd25QdHI8UHJlbG9hZFJl
cXVlc3Q+IHJlcXVlc3QgPSBQcmVsb2FkUmVxdWVzdDo6Y3JlYXRlKCJjc3MiLCB1cmwsIGJhc2VF
bGVtZW50VVJMLCBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCk7CisgICAgICAgICAgICBP
d25QdHI8UHJlbG9hZFJlcXVlc3Q+IHJlcXVlc3QgPSBQcmVsb2FkUmVxdWVzdDo6Y3JlYXRlKENh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcjo6Q1NTLAorICAgICAgICAgICAgICAgIHVybCwg
YmFzZUVsZW1lbnRVUkwsIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KTsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSBpbmNsdWRpbmcgdGhlIGNoYXJzZXQgaW4gdGhl
IHByZWxvYWQgcmVxdWVzdD8KICAgICAgICAgICAgIG1fcmVxdWVzdHMtPmFwcGVuZChyZXF1ZXN0
LnJlbGVhc2UoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IGUwMTFlYTI5YTBiZGVhZDdmOGY5NmFiNjBk
YTlkNjRkZTYwMTZjOWEuLmJhNWZlMWIzYjdhZmM3Yzc1NzA2NWFiOTUwZWExMmIzM2JjYTU2ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVy
LmNwcApAQCAtOTksOSArOTksOSBAQCBTdHJpbmcgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6aW5pdGlh
dG9yRm9yKFRhZ0lkIHRhZ0lkKQogICAgIGNhc2UgU3R5bGVUYWdJZDoKICAgICBjYXNlIEJhc2VU
YWdJZDoKICAgICBjYXNlIFRlbXBsYXRlVGFnSWQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICByZXR1cm4gInVua25vd24iOworICAgICAgICBicmVhazsKICAgICB9CisK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gInVua25vd24iOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuaApp
bmRleCAyMmVhYTNhMDAzMWM4Y2I0NzkxNzIwN2QxOGVmNWZjMzk5ZTI3YTYyLi44ZTZhMjMyNzlk
YzVhOTM5MjU1ZjlkMjgxODU1YjJiNmYyYjZmZjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuaApAQCAtMjgsMTIgKzI4LDEzIEBA
CiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUHJlbG9hZFJlcXVlc3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3du
UHRyPFByZWxvYWRSZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpbml0aWF0b3IsIGNvbnN0
IFN0cmluZyYgcmVzb3VyY2VVUkwsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIENhY2hlZFJlc291cmNl
OjpUeXBlIHJlc291cmNlVHlwZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxQcmVsb2FkUmVxdWVz
dD4gY3JlYXRlKGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciYgaW5pdGlhdG9y
LCBjb25zdCBTdHJpbmcmIHJlc291cmNlVVJMLCBjb25zdCBLVVJMJiBiYXNlVVJMLCBDYWNoZWRS
ZXNvdXJjZTo6VHlwZSByZXNvdXJjZVR5cGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFByZWxvYWRSZXF1ZXN0KGluaXRpYXRvciwgcmVzb3VyY2VVUkwsIGJhc2VVUkwsIHJl
c291cmNlVHlwZSkpOwogICAgIH0KQEAgLTQ4LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIENhY2hl
ZFJlc291cmNlOjpUeXBlIHJlc291cmNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VU
eXBlOyB9CiAKIHByaXZhdGU6Ci0gICAgUHJlbG9hZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBpbml0
aWF0b3IsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkwsIGNvbnN0IEtVUkwmIGJhc2VVUkwsIENh
Y2hlZFJlc291cmNlOjpUeXBlIHJlc291cmNlVHlwZSkKKyAgICBQcmVsb2FkUmVxdWVzdChjb25z
dCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3ImIGluaXRpYXRvciwgY29uc3QgU3RyaW5n
JiByZXNvdXJjZVVSTCwgY29uc3QgS1VSTCYgYmFzZVVSTCwgQ2FjaGVkUmVzb3VyY2U6OlR5cGUg
cmVzb3VyY2VUeXBlKQogICAgICAgICA6IG1faW5pdGlhdG9yKGluaXRpYXRvcikKICAgICAgICAg
LCBtX3Jlc291cmNlVVJMKHJlc291cmNlVVJMLmlzb2xhdGVkQ29weSgpKQogICAgICAgICAsIG1f
YmFzZVVSTChiYXNlVVJMLmNvcHkoKSkKQEAgLTU5LDcgKzYwLDcgQEAgcHJpdmF0ZToKIAogICAg
IEtVUkwgY29tcGxldGVVUkwoRG9jdW1lbnQqKTsKIAotICAgIFN0cmluZyBtX2luaXRpYXRvcjsK
KyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IgbV9pbml0aWF0b3I7CiAgICAgU3Ry
aW5nIG1fcmVzb3VyY2VVUkw7CiAgICAgS1VSTCBtX2Jhc2VVUkw7CiAgICAgU3RyaW5nIG1fY2hh
cnNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxv
YWRlci5jcHAKaW5kZXggZThmZTAxODVlYzgxZDZlMWUzODU3MDE0MjY4MTk3OTE2MTdlNzdiYi4u
NzMyZmVkNTIxMmI2YmU5MDQ1ZGJhN2NiOTRmMjI2ODJkNWUyMjE2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTM3Nyw5
ICszNzcsOCBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3QoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZWN1cgogICAgICAgICB9CiAKICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7Ci0jaWYg
RU5BQkxFKFJFU09VUkNFX1RJTUlORykKLSAgICAgICAgbmV3UmVxdWVzdC5zZXRJbml0aWF0b3Io
bV9vcHRpb25zLmluaXRpYXRvcik7Ci0jZW5kaWYKKyAgICAgICAgbmV3UmVxdWVzdC5zZXRJbml0
aWF0b3IobV9vcHRpb25zLmluaXRpYXRvclR5cGUpOworCiAgICAgICAgIEFTU0VSVCghbV9yZXNv
dXJjZSk7CiAgICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpLT5yZXF1ZXN0UmF3UmVzb3VyY2UobmV3UmVxdWVzdCk7CiAgICAgICAgIGlmIChtX3Jl
c291cmNlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAppbmRleCA0YWM4YzQ3
NmQ4OTM1OWNiNzA3ZjYwZDQyZDYwMjhmNTI1ODMzMjkwLi43NmI3YzU3MjZiYmU2Y2NkMDI0OGIx
ZGM2Mzg3Mzk2NmNlZDA5MTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1h
Z2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAK
QEAgLTE4MSw3ICsxODEsNyBAQCB2b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgp
CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG5ld0ltYWdlID0gMDsKICAg
ICBpZiAoIWF0dHIuaXNOdWxsKCkgJiYgIXN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNl
cyhhdHRyKS5pc0VtcHR5KCkpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikp
KSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGVsZW1lbnQoKSk7CisgICAgICAgIHJl
cXVlc3Quc2V0SW5pdGlhdG9yKFN0cmluZyhtX2VsZW1lbnQtPmxvY2FsTmFtZSgpKSk7CiAKICAg
ICAgICAgU3RyaW5nIGNyb3NzT3JpZ2luTW9kZSA9IG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0
ZShIVE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0cik7CiAgICAgICAgIGlmICghY3Jvc3NPcmlnaW5N
b2RlLmlzTnVsbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggYjli
Y2NkOWIyYTA0NTMxNTI0ZmU4YjJjNGZmMzAyOTFhMTg2MzFmYS4uNjQ0ZjUxMmQzZDA2ZjIxOWY2
MWMzZWI4MWY5MDFkNjQwM2YyNjJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNw
cApAQCAtMTE2LDYgKzExNiw4IEBAIGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlu
a1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBTdHJpbmcmIHR5CiAgICAgICAgICAg
ICB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZTsKICAgICAgICAgfQogICAg
ICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRv
Y3VtZW50LT5jb21wbGV0ZVVSTChocmVmKSksIHByaW9yaXR5KTsKKyAgICAgICAgLy8gRklYTUU6
IFNob3VsZCB1c2UgdGhlIEhUTUxMaW5rRWxlbWVudDo6bG9jYWxOYW1lLgorICAgICAgICBsaW5r
UmVxdWVzdC5zZXRJbml0aWF0b3IoU3RyaW5nKCJsaW5rIikpOwogICAgICAgICAKICAgICAgICAg
aWYgKG1fY2FjaGVkTGlua1Jlc291cmNlKSB7CiAgICAgICAgICAgICBtX2NhY2hlZExpbmtSZXNv
dXJjZS0+cmVtb3ZlQ2xpZW50KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFi
bGVMb2FkZXIuY3BwCmluZGV4IDRhMmNmN2JlMzJiM2Q3Mjk5ZGZjZTk1ZThkOTdiOWM5MWY2ZWM5
MTcuLjQ2NzU0NWYwY2IyZTRkOTYyOGU3ZTI3NDA4MmNiNTE2YTMyNzA3ZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM6OlRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zKCkKICAgICA6IHByZWZsaWdodFBvbGljeShDb25zaWRlclByZWZsaWdodCkKICAg
ICAsIGNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeShEZW55Q3Jvc3NPcmlnaW5SZXF1ZXN0cykKKyAg
ICAsIGluaXRpYXRvclR5cGUoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yOjpVbmtub3du
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaAppbmRleCAw
YzlhMGYyNTM0ZTQ3MTE0NDYwYWYxN2FmNmYxOTliOWQwY2IxYThmLi4yZWI3MzNmOWEyZDU4YTFi
NzE0YjI1N2I2MzFhYzllM2JiZGM5NjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvVGhyZWFkYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRh
YmxlTG9hZGVyLmgKQEAgLTMxLDE2ICszMSwxMyBAQAogI2lmbmRlZiBUaHJlYWRhYmxlTG9hZGVy
X2gKICNkZWZpbmUgVGhyZWFkYWJsZUxvYWRlcl9oCiAKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIK
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfVElNSU5HKQotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFJlc291cmNl
RXJyb3I7CkBAIC02OSw5ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUHJl
ZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeTsgLy8gSWYgQWNjZXNzQ29udHJvbCBpcyB1c2Vk
LCBob3cgdG8gZGV0ZXJtaW5lIGlmIGEgcHJlZmxpZ2h0IGlzIG5lZWRlZC4KICAgICAgICAgQ3Jv
c3NPcmlnaW5SZXF1ZXN0UG9saWN5IGNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeTsKICAgICAgICAg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbjsKLSNpZiBFTkFCTEUoUkVTT1VS
Q0VfVElNSU5HKQotICAgICAgICBBdG9taWNTdHJpbmcgaW5pdGlhdG9yOwotI2VuZGlmCisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcjo6VHlwZSBpbml0aWF0b3JUeXBlOwog
ICAgIH07CiAKICAgICAvLyBVc2VmdWwgZm9yIGRvaW5nIGxvYWRlciBvcGVyYXRpb25zIGZyb20g
YW55IHRocmVhZCAobm90IHRocmVhZHNhZmUsIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggODk4OWJmMTFjNGY3Nzgy
NWU2MzUwOTk3MmIxMGU1NzQ5ZDg4MWQ3NS4uZjgxMDg2ZGZhODM4NGIxODA5YjZiZWRiMjI2NmMx
NWI4MzMzNTg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01NTYsMTEgKzU1NiwxMSBAQCB2b2lkIENhY2hlZFJl
c291cmNlTG9hZGVyOjpzdG9yZVJlc291cmNlVGltaW5nSW5pdGlhdG9ySW5mb3JtYXRpb24oY29u
c3QgQ2FjaGVkUgogICAgIGlmIChyZXNvdXJjZS0+dHlwZSgpID09IENhY2hlZFJlc291cmNlOjpN
YWluUmVzb3VyY2UpIHsKICAgICAgICAgLy8gPGlmcmFtZT5zIHNob3VsZCByZXBvcnQgdGhlIGlu
aXRpYWwgbmF2aWdhdGlvbiByZXF1ZXN0ZWQgYnkgdGhlIHBhcmVudCBkb2N1bWVudCwgYnV0IG5v
dCBzdWJzZXF1ZW50IG5hdmlnYXRpb25zLgogICAgICAgICBpZiAoZnJhbWUoKS0+b3duZXJFbGVt
ZW50KCkgJiYgbV9kb2N1bWVudExvYWRlci0+ZnJhbWVMb2FkZXIoKS0+c3RhdGVNYWNoaW5lKCkt
PmNvbW1pdHRpbmdGaXJzdFJlYWxMb2FkKCkpIHsKLSAgICAgICAgICAgIEluaXRpYXRvckluZm8g
aW5mbyA9IHsgZnJhbWUoKS0+b3duZXJFbGVtZW50KCktPmxvY2FsTmFtZSgpLCBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSB9OworICAgICAgICAgICAgSW5pdGlhdG9ySW5mbyBpbmZvKFN0
cmluZyhmcmFtZSgpLT5vd25lckVsZW1lbnQoKS0+bG9jYWxOYW1lKCkpLCBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSk7CiAgICAgICAgICAgICBtX2luaXRpYXRvck1hcC5hZGQocmVzb3Vy
Y2UuZ2V0KCksIGluZm8pOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgSW5pdGlh
dG9ySW5mbyBpbmZvID0geyByZXF1ZXN0LmluaXRpYXRvck5hbWUoKSwgbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCkgfTsKKyAgICAgICAgSW5pdGlhdG9ySW5mbyBpbmZvKHJlcXVlc3QuaW5p
dGlhdG9yKCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKICAgICAgICAgbV9pbml0
aWF0b3JNYXAuYWRkKHJlc291cmNlLmdldCgpLCBpbmZvKTsKICAgICB9CiB9CkBAIC03NTksNyAr
NzU5LDggQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZERvbmUoQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlKQogICAgICAgICAgICAgICAgIGluaXRpYXRvckRvY3VtZW50ID0gZG9jdW1l
bnQoKS0+cGFyZW50RG9jdW1lbnQoKTsKICAgICAgICAgICAgIEFTU0VSVChpbml0aWF0b3JEb2N1
bWVudCk7CiAgICAgICAgICAgICBjb25zdCBJbml0aWF0b3JJbmZvJiBpbmZvID0gaW5pdGlhdG9y
SXQtPnZhbHVlOwotICAgICAgICAgICAgaW5pdGlhdG9yRG9jdW1lbnQtPmRvbVdpbmRvdygpLT5w
ZXJmb3JtYW5jZSgpLT5hZGRSZXNvdXJjZVRpbWluZyhpbmZvLm5hbWUsIGluaXRpYXRvckRvY3Vt
ZW50LCByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCksIHJlc291cmNlLT5yZXNwb25zZSgpLCBp
bmZvLnN0YXJ0VGltZSwgcmVzb3VyY2UtPmxvYWRGaW5pc2hUaW1lKCkpOworICAgICAgICAgICAg
aW5pdGlhdG9yRG9jdW1lbnQtPmRvbVdpbmRvdygpLT5wZXJmb3JtYW5jZSgpLT5hZGRSZXNvdXJj
ZVRpbWluZyhpbmZvLmluaXRpYXRvcigpLCBpbml0aWF0b3JEb2N1bWVudCwKKyAgICAgICAgICAg
ICAgICByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCksIHJlc291cmNlLT5yZXNwb25zZSgpLCBp
bmZvLnN0YXJ0VGltZSgpLCByZXNvdXJjZS0+bG9hZEZpbmlzaFRpbWUoKSk7CiAgICAgICAgICAg
ICBtX2luaXRpYXRvck1hcC5yZW1vdmUoaW5pdGlhdG9ySXQpOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aAppbmRleCAwZTU4Njg4YTVkYzRiNTNlMjg3Y2Y1YWFhMTA2YmU5M2UwNGI3MTFkLi5hNjUzMDIz
MzRmMjY5N2E5ZDAxY2U0ODY5YzU0NWY1MjdjZTFlNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtMTc4LDkgKzE3OCwy
MSBAQCBwcml2YXRlOgogICAgIFRpbWVyPENhY2hlZFJlc291cmNlTG9hZGVyPiBtX2dhcmJhZ2VD
b2xsZWN0RG9jdW1lbnRSZXNvdXJjZXNUaW1lcjsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9USU1J
TkcpCi0gICAgc3RydWN0IEluaXRpYXRvckluZm8gewotICAgICAgICBBdG9taWNTdHJpbmcgbmFt
ZTsKLSAgICAgICAgZG91YmxlIHN0YXJ0VGltZTsKKyAgICBjbGFzcyBJbml0aWF0b3JJbmZvIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIEluaXRpYXRvckluZm8oKSB7fQorICAgICAgICBJbml0aWF0
b3JJbmZvKGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciYgaW5pdGlhdG9yLCBk
b3VibGUgc3RhcnRUaW1lKQorICAgICAgICAgICAgOiBtX2luaXRpYXRvcihpbml0aWF0b3IpCisg
ICAgICAgICAgICAsIG1fc3RhcnRUaW1lKHN0YXJ0VGltZSkKKyAgICAgICAgeworICAgICAgICB9
CisKKyAgICAgICAgY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yJiBpbml0aWF0
b3IoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYXRvcjsgfQorICAgICAgICBkb3VibGUgc3RhcnRU
aW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0KKworICAgIHByaXZhdGU6CisgICAg
ICAgIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciBtX2luaXRpYXRvcjsKKyAgICAgICAg
ZG91YmxlIG1fc3RhcnRUaW1lOwogICAgIH07CiAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJjZSos
IEluaXRpYXRvckluZm8+IG1faW5pdGlhdG9yTWFwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IDU1
YTQ5Mzg1OWVmMjIzMTk2MDc2NGRiMTcwNjhjYzE4MjQxYjBmNmMuLmQ4YmNjYmY2OTJhMGVhMmQw
NTIyNGM3MjgxMzM3N2ZhOGZkMTZmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC02NCwyNyArNjQsNCBAQCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6On5DYWNoZWRSZXNvdXJjZVJlcXVlc3QoKQogewogfQogCi12
b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVu
dD4gZWxlbWVudCkKLXsKLSAgICBBU1NFUlQoIW1faW5pdGlhdG9yRWxlbWVudCAmJiBtX2luaXRp
YXRvck5hbWUuaXNFbXB0eSgpKTsKLSAgICBtX2luaXRpYXRvckVsZW1lbnQgPSBlbGVtZW50Owot
fQotCi12b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9yKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkKLXsKLSAgICBBU1NFUlQoIW1faW5pdGlhdG9yRWxlbWVudCAmJiBtX2lu
aXRpYXRvck5hbWUuaXNFbXB0eSgpKTsKLSAgICBtX2luaXRpYXRvck5hbWUgPSBuYW1lOwotfQot
Ci1jb25zdCBBdG9taWNTdHJpbmcmIENhY2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFt
ZSgpIGNvbnN0Ci17Ci0gICAgaWYgKG1faW5pdGlhdG9yRWxlbWVudCkKLSAgICAgICAgcmV0dXJu
IG1faW5pdGlhdG9yRWxlbWVudC0+bG9jYWxOYW1lKCk7Ci0gICAgaWYgKCFtX2luaXRpYXRvck5h
bWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbV9pbml0aWF0b3JOYW1lOwotCi0gICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGRlZmF1bHROYW1lLCAoInJlc291cmNlIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIHJldHVybiBkZWZhdWx0
TmFtZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IDAxMjJjOTk1OGQx
YTU3ZWE5OGIwMzIyNzU3MzQyNjM2NGU3NjAyMDMuLjk1NDMyOGQwOTZjNmRlYzk5YWVkMzkxY2I1
YjEyMjU1MjIzZGNiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0X2gKICNkZWZpbmUgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0X2gKIAotI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpAQCAtNTcs
OSArNTcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGb3JQcmVsb2FkKGJvb2wgZm9yUHJlbG9h
ZCkgeyBtX2ZvclByZWxvYWQgPSBmb3JQcmVsb2FkOyB9CiAgICAgRGVmZXJPcHRpb24gZGVmZXIo
KSBjb25zdCB7IHJldHVybiBtX2RlZmVyOyB9CiAgICAgdm9pZCBzZXREZWZlcihEZWZlck9wdGlv
biBkZWZlcikgeyBtX2RlZmVyID0gZGVmZXI7IH0KLSAgICB2b2lkIHNldEluaXRpYXRvcihQYXNz
UmVmUHRyPEVsZW1lbnQ+KTsKLSAgICB2b2lkIHNldEluaXRpYXRvcihjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUpOwotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGlhdG9yTmFtZSgpIGNvbnN0
OworICAgIGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciYgaW5pdGlhdG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9pbml0aWF0b3I7IH0KKyAgICB2b2lkIHNldEluaXRpYXRvcihjb25z
dCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3ImIGluaXRpYXRvcikgeyBtX2luaXRpYXRv
ciA9IGluaXRpYXRvcjsgfQogCiBwcml2YXRlOgogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291
cmNlUmVxdWVzdDsKQEAgLTY4LDggKzY3LDcgQEAgcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBtX3ByaW9yaXR5OwogICAgIGJvb2wgbV9mb3JQcmVsb2FkOwogICAgIERlZmVyT3B0
aW9uIG1fZGVmZXI7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IG1faW5pdGlhdG9yRWxlbWVudDsKLSAg
ICBBdG9taWNTdHJpbmcgbV9pbml0aWF0b3JOYW1lOworICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvciBtX2luaXRpYXRvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTMxYTY1ODZjZTRlNTRiOTFjMDA2ZmJm
NGI1ZTU1NzA4MGIzMjNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5oCkBAIC0wLDAgKzEsNjcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcl9oCisjZGVmaW5lIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcl9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IgeworcHVibGlj
OgorICAgIGVudW0gVHlwZSB7CisgICAgICAgIFVua25vd24gPSAwLAorICAgICAgICBFbGVtZW50
LAorICAgICAgICBDU1MsCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0CisgICAgfTsKKworICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcihUeXBlIHR5cGUgPSBVbmtub3duKQorICAgICAg
ICA6IG1fdHlwZSh0eXBlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSAhPSBFbGVtZW50
KTsKKyAgICB9CisKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IoY29uc3QgU3Ry
aW5nJiBpbml0aWF0b3JOYW1lKQorICAgICAgICA6IG1fdHlwZShFbGVtZW50KQorICAgICAgICAs
IG1faW5pdGlhdG9yTmFtZShpbml0aWF0b3JOYW1lKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFt
X2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKTsKKyAgICB9CisKKyAgICBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGluaXRpYXRvck5hbWUoKSBj
b25zdCB7IHJldHVybiBtX2luaXRpYXRvck5hbWU7IH0KKworICAgIGJvb2wgaXNTYWZlVG9TZW5k
VG9Bbm90aGVyVGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWF0b3JOYW1lLmlzU2FmZVRv
U2VuZFRvQW5vdGhlclRocmVhZCgpOyB9CisKK3ByaXZhdGU6CisgICAgVHlwZSBtX3R5cGU7Cisg
ICAgU3RyaW5nIG1faW5pdGlhdG9yTmFtZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxYTE3YjY2
YjAzZTdmYzc3YTE5NDdhNDdhNzJmZGFmNmM3NDRkM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKQotICAg
IDogY3NzKCJjc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQotICAgICwg
aWNvbigiaWNvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCi0gICAgLCB4
bWxodHRwcmVxdWVzdCgieG1saHR0cHJlcXVlc3QiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRhYzIzODdkYjRhNGNh
MzFkODMxMDAxZmU0MWMzNTM4MTc1ZWQ2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnNfaAotI2RlZmluZSBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzX2gKLQotI2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEu
aCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1zdHJ1Y3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyB7Ci0gICAgY29u
c3QgQXRvbWljU3RyaW5nIGNzczsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcgaWNvbjsKLSAgICBj
b25zdCBBdG9taWNTdHJpbmcgeG1saHR0cHJlcXVlc3Q7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHJpdmF0ZToKLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCk7Ci0g
ICAgZnJpZW5kIGNsYXNzIFRocmVhZEdsb2JhbERhdGE7Ci19OwotCi1pbmxpbmUgY29uc3QgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyYgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycygpCi17Ci0gICAgcmV0dXJuIHRocmVhZEdsb2JhbERhdGEoKS5jYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCmluZGV4IDE4NTU4NTQ3
ZWIwNDU5Mjk2YTY4NjVmMDUyYTBmYWVlYjdkNDU3YzAuLjJlMDVjOWQ0NzFhYWQ3Njc1ZTE0ZTJk
MWY5M2ZhZDM0MjRhZmZiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2Fk
ZXIuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKQEAgLTY4LDcgKzY3LDcgQEAgdm9pZCBJY29uTG9hZGVyOjpzdGFydExv
YWRpbmcoKQogICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFRhcmdldFR5
cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc0Zhdmljb24pOwogI2VuZGlmCiAgICAgcmVxdWVz
dC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3Jp
dHlMb3cpOwotICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMoKS5pY29uKTsKKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcihTdHJpbmcoImljb24i
KSk7CiAKICAgICBtX3Jlc291cmNlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+cmVxdWVzdFJhd1Jlc291cmNlKHJlcXVlc3QpOwogICAgIGlmIChtX3Jlc291
cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCA5ZGNmNDZlMTNjMzQ2NjZk
MWMwOWRiNjJjYWM4YzAxMTJhMjhjZTM3Li5iZGRmYThjN2RmNDYzODc0NWU3MzkxMGQ2NWJmYWE1
MjlkMmQwMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFu
Y2VFbnRyeS5oIgpAQCAtMTc4LDEzICsxNzksMTMgQEAgdm9pZCBQZXJmb3JtYW5jZTo6d2Via2l0
U2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKHVuc2lnbmVkIHNpemUpCiAgICAgICAgIGRpc3Bh
dGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0cmVzb3VyY2V0aW1pbmdi
dWZmZXJmdWxsRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogfQogCi12b2lkIFBlcmZvcm1hbmNlOjph
ZGRSZXNvdXJjZVRpbWluZyhjb25zdCBTdHJpbmcmIGluaXRpYXRvck5hbWUsIERvY3VtZW50KiBp
bml0aWF0b3JEb2N1bWVudCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGluaXRpYXRpb25UaW1lLCBkb3VibGUg
ZmluaXNoVGltZSkKK3ZvaWQgUGVyZm9ybWFuY2U6OmFkZFJlc291cmNlVGltaW5nKGNvbnN0IENh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciYgaW5pdGlhdG9yLCBEb2N1bWVudCogaW5pdGlh
dG9yRG9jdW1lbnQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKKyAgICBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGluaXRpYXRpb25UaW1lLCBkb3VibGUg
ZmluaXNoVGltZSkKIHsKICAgICBpZiAoaXNSZXNvdXJjZVRpbWluZ0J1ZmZlckZ1bGwoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gUGVy
Zm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6Y3JlYXRlKGluaXRpYXRvck5hbWUsIHJlcXVlc3QsIHJl
c3BvbnNlLCBpbml0aWF0aW9uVGltZSwgZmluaXNoVGltZSwgaW5pdGlhdG9yRG9jdW1lbnQpOwot
CisgICAgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZzo6Y3JlYXRlKGluaXRpYXRvciwgcmVxdWVzdCwgcmVzcG9uc2UsIGluaXRpYXRpb25U
aW1lLCBmaW5pc2hUaW1lLCBpbml0aWF0b3JEb2N1bWVudCk7CiAgICAgbV9yZXNvdXJjZVRpbWlu
Z0J1ZmZlci5hcHBlbmQoZW50cnkpOwogCiAgICAgaWYgKGlzUmVzb3VyY2VUaW1pbmdCdWZmZXJG
dWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKaW5kZXggOWY0ZTYwMjg1ZGQ1MDUxOTM3
ZDEyMDRjMzI0MWE4OGY2YzZkYmI0OS4uMjI2MDYwNDE2YTlhMjUwYzljOTAwMmQ4ZTQwNWUzN2U5
OTM0M2E0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaApAQCAtNDcsNiArNDcsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVz
b3VyY2VSZXNwb25zZTsKQEAgLTc2LDcgKzc3LDggQEAgcHVibGljOgogCiAgICAgREVGSU5FX0FU
VFJJQlVURV9FVkVOVF9MSVNURU5FUih3ZWJraXRyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwpOwog
Ci0gICAgdm9pZCBhZGRSZXNvdXJjZVRpbWluZyhjb25zdCBTdHJpbmcmIGluaXRpYXRvck5hbWUs
IERvY3VtZW50KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYsIGRvdWJsZSBpbml0aWF0aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUpOworICAgIHZvaWQg
YWRkUmVzb3VyY2VUaW1pbmcoY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yJiwg
RG9jdW1lbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLAorICAgICAgICBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgZG91YmxlIGluaXRpYXRpb25UaW1lLCBkb3VibGUgZmluaXNoVGltZSk7CiAj
ZW5kaWYKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGVyZm9ybWFuY2U+OjpyZWY7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcAppbmRleCA1
Mzk4NzhmNmY0NzBjZmE4MGI2YWI5ZjhkMDFhY2M4YTk1ZGVkNzUyLi4yNzg1ZDlhNGZmYjM5ZjY3
NzBjZjYxODBhZThkM2IxNTIzYTRlZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAKQEAgLTc2LDkgKzc2LDExIEBAIHN0YXRpYyBi
b29sIHBhc3Nlc1RpbWluZ0FsbG93Q2hlY2soY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIERvY3VtZW50KiByCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1QZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKGNvbnN0IEF0b21pY1N0cmluZyYg
aW5pdGlhdG9yVHlwZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGluaXRpYXRpb25UaW1lLCBkb3VibGUgZmlu
aXNoVGltZSwgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCkKLSAgICA6IFBlcmZvcm1hbmNl
RW50cnkocmVxdWVzdC51cmwoKS5zdHJpbmcoKSwgInJlc291cmNlIiwgbW9ub3RvbmljVGltZVRv
RG9jdW1lbnRNaWxsaXNlY29uZHMocmVxdWVzdGluZ0RvY3VtZW50LCBpbml0aWF0aW9uVGltZSks
IG1vbm90b25pY1RpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKHJlcXVlc3RpbmdEb2N1bWVudCwg
ZmluaXNoVGltZSkpCi0gICAgLCBtX2luaXRpYXRvclR5cGUoaW5pdGlhdG9yVHlwZSkKK1BlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yJiBpbml0aWF0b3IsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwKKyAgICBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91
YmxlIGluaXRpYXRpb25UaW1lLCBkb3VibGUgZmluaXNoVGltZSwgRG9jdW1lbnQqIHJlcXVlc3Rp
bmdEb2N1bWVudCkKKyAgICA6IFBlcmZvcm1hbmNlRW50cnkocmVxdWVzdC51cmwoKS5zdHJpbmco
KSwgInJlc291cmNlIiwgbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMocmVxdWVz
dGluZ0RvY3VtZW50LCBpbml0aWF0aW9uVGltZSksCisgICAgICAgIG1vbm90b25pY1RpbWVUb0Rv
Y3VtZW50TWlsbGlzZWNvbmRzKHJlcXVlc3RpbmdEb2N1bWVudCwgZmluaXNoVGltZSkpCisgICAg
LCBtX2luaXRpYXRvcihpbml0aWF0b3IpCiAgICAgLCBtX3RpbWluZyhyZXNwb25zZS5yZXNvdXJj
ZUxvYWRUaW1pbmcoKSkKICAgICAsIG1fZmluaXNoVGltZShmaW5pc2hUaW1lKQogICAgICwgbV9k
aWRSZXVzZUNvbm5lY3Rpb24ocmVzcG9uc2UuY29ubmVjdGlvblJldXNlZCgpKQpAQCAtOTEsOSAr
OTMsMjEgQEAgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6flBlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcoKQogewogfQogCi1BdG9taWNTdHJpbmcgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
aW5pdGlhdG9yVHlwZSgpIGNvbnN0CitTdHJpbmcgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6
aW5pdGlhdG9yVHlwZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faW5pdGlhdG9yVHlwZTsKKyAg
ICBzd2l0Y2ggKG1faW5pdGlhdG9yLnR5cGUoKSkgeworICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9yOjpVbmtub3duOgorICAgICAgICByZXR1cm4gInVua25vd24iOworICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yOjpFbGVtZW50OgorICAgICAgICBy
ZXR1cm4gbV9pbml0aWF0b3IuaW5pdGlhdG9yTmFtZSgpOworICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9yOjpDU1M6CisgICAgICAgIHJldHVybiAiY3NzIjsKKyAgICBjYXNl
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcjo6WE1MSHR0cFJlcXVlc3Q6CisgICAgICAg
IHJldHVybiAieG1saHR0cHJlcXVlc3QiOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiAidW5rbm93biI7CiB9CiAKIGRvdWJsZSBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nOjpyZWRpcmVjdFN0YXJ0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgKaW5kZXggZWQyNDQ5MmMzNTUwMTBhOGJjZjA0
YjdlYzMyN2I4ODJmOGMwYTJkOC4uNWM1MWEwMzM5YjkwOWI5YTJhZWFhNjgwOTMwZmVhY2IzMDU0
ODFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nLmgKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCiAK
KyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IuaCIKICNpbmNsdWRlICJQ
ZXJmb3JtYW5jZUVudHJ5LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CkBAIC00OSwxMiArNTAsMTMgQEAgY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZTsKIAogY2xhc3MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyA6IHB1YmxpYyBQZXJmb3JtYW5j
ZUVudHJ5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nPiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWF0b3JUeXBlLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCog
cmVxdWVzdGluZ0RvY3VtZW50KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmc+IGNyZWF0ZShjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Im
IGluaXRpYXRvciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAorICAgICAgICBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGluaXRpYXRpb25UaW1lLCBkb3Vi
bGUgZmluaXNoVGltZSwgRG9jdW1lbnQqIHJlcXVlc3RpbmdEb2N1bWVudCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyhpbml0aWF0
b3JUeXBlLCByZXF1ZXN0LCByZXNwb25zZSwgaW5pdGlhdGlvblRpbWUsIGZpbmlzaFRpbWUsIHJl
cXVlc3RpbmdEb2N1bWVudCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcoaW5pdGlhdG9yLCByZXF1ZXN0LCByZXNwb25zZSwgaW5pdGlhdGlv
blRpbWUsIGZpbmlzaFRpbWUsIHJlcXVlc3RpbmdEb2N1bWVudCkpOwogICAgIH0KIAotICAgIEF0
b21pY1N0cmluZyBpbml0aWF0b3JUeXBlKCkgY29uc3Q7CisgICAgU3RyaW5nIGluaXRpYXRvclR5
cGUoKSBjb25zdDsKIAogICAgIGRvdWJsZSByZWRpcmVjdFN0YXJ0KCkgY29uc3Q7CiAgICAgZG91
YmxlIHJlZGlyZWN0RW5kKCkgY29uc3Q7CkBAIC03MSwxMiArNzMsMTMgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBpc1Jlc291cmNlKCkgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgot
ICAgIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgQXRvbWljU3RyaW5nJiBpbml0YXRv
clR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBk
b3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCopOworICAg
IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9yJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwKKyAgICAgICAgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIGRvdWJsZSBpbml0aWF0aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUsIERvY3Vt
ZW50Kik7CiAgICAgflBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcoKTsKIAogICAgIGRvdWJsZSBy
ZXNvdXJjZVRpbWVUb0RvY3VtZW50TWlsbGlzZWNvbmRzKGludCBkZWx0YU1pbGxpc2Vjb25kcykg
Y29uc3Q7CiAKLSAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0b3JUeXBlOworICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdEluaXRpYXRvciBtX2luaXRpYXRvcjsKICAgICBSZWZQdHI8UmVzb3VyY2VM
b2FkVGltaW5nPiBtX3RpbWluZzsKICAgICBkb3VibGUgbV9maW5pc2hUaW1lOwogICAgIGJvb2wg
bV9kaWRSZXVzZUNvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaHJlYWRHbG9iYWxEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEds
b2JhbERhdGEuY3BwCmluZGV4IGZlODhjM2FmMWI0YTc4OWUwZmEwNWY5YTg1MGJjZGEwMDY5ODNh
ODkuLjRmYjdlYjE3MTA0ZjQyNmE4MDI3MWYzYWRkNjFjODZkNzgxNWJmYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCkBAIC0yNyw3ICsyNyw2IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgogCi0j
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgogI2luY2x1ZGUgIlRo
cmVhZFRpbWVycy5oIgpAQCAtNTgsOCArNTcsNyBAQCBUaHJlYWRHbG9iYWxEYXRhKiBUaHJlYWRH
bG9iYWxEYXRhOjpzdGF0aWNEYXRhOwogI2VuZGlmCiAKIFRocmVhZEdsb2JhbERhdGE6OlRocmVh
ZEdsb2JhbERhdGEoKQotICAgIDogbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKGFk
b3B0UHRyKG5ldyBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKSkKLSAgICAsIG1fZXZl
bnROYW1lcyhhZG9wdFB0cihuZXcgRXZlbnROYW1lcykpCisgICAgOiBtX2V2ZW50TmFtZXMoYWRv
cHRQdHIobmV3IEV2ZW50TmFtZXMpKQogICAgICwgbV90aHJlYWRUaW1lcnMoYWRvcHRQdHIobmV3
IFRocmVhZFRpbWVycykpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc01haW5UaHJlYWQoaXNN
YWluVGhyZWFkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRH
bG9iYWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgK
aW5kZXggNzQ2NWNkY2FhOGJkMGQ2OWEyOTUxZmM1NGJiNjBhMDY5NmEwNzdjNC4uNjkxOWIzNDBl
YWZkYjgxZTNjMWFiN2Q1YTRhZDc4MWI2OWM2MWQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuaApAQCAtNDUsNyArNDUsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgY2xhc3MgVGhyZWFkTG9jYWxJbnNwZWN0b3JDb3VudGVyczsKICAgICBjbGFzcyBU
aHJlYWRUaW1lcnM7CiAKLSAgICBzdHJ1Y3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
czsKICAgICBzdHJ1Y3QgSUNVQ29udmVydGVyV3JhcHBlcjsKICAgICBzdHJ1Y3QgVEVDQ29udmVy
dGVyV3JhcHBlcjsKIApAQCAtNTYsNyArNTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIH5UaHJlYWRHbG9iYWxEYXRhKCk7CiAgICAgICAgIHZvaWQgZGVzdHJveSgpOyAvLyBjYWxs
ZWQgb24gd29ya2VycyB0byBjbGVhbiB1cCB0aGUgVGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgdGhl
IHRocmVhZCBleGl0cy4KIAotICAgICAgICBjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzJiBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkgeyByZXR1cm4gKm1fY2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yczsgfQogICAgICAgICBFdmVudE5hbWVzJiBldmVu
dE5hbWVzKCkgeyByZXR1cm4gKm1fZXZlbnROYW1lczsgfQogICAgICAgICBUaHJlYWRUaW1lcnMm
IHRocmVhZFRpbWVycygpIHsgcmV0dXJuICptX3RocmVhZFRpbWVyczsgfQogCkBAIC03Myw3ICs3
MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgcHJpdmF0ZToKLSAgICAg
ICAgT3duUHRyPENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM+IG1fY2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9yczsKICAgICAgICAgT3duUHRyPEV2ZW50TmFtZXM+IG1fZXZlbnRO
YW1lczsKICAgICAgICAgT3duUHRyPFRocmVhZFRpbWVycz4gbV90aHJlYWRUaW1lcnM7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDkyZTcyN2MxODk4NDI4
N2E0OTJkYzU1Y2MzOGEzZGE1MDJhYjE2ZGEuLmZiZWMzNTFmMWY0NTlmODc5ZDFkM2M4YWQzNzYy
YzY3ODQ5MjM4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApA
QCAtODIsNyArODIsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpjbGVhclJlc291cmNlUmVm
ZXJlbmNlcygpCiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSgp
CiB7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG93
bmVyRG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoaHJlZigpKSkpOwotICAgIHJlcXVlc3Quc2V0SW5p
dGlhdG9yKHRoaXMpOworICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKFN0cmluZyhsb2NhbE5hbWUo
KSkpOwogICAgIG1fY2FjaGVkSW1hZ2UgPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpLT5yZXF1ZXN0SW1hZ2UocmVxdWVzdCk7CiAKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggMWI1NTQ0
NTM0N2VhODkyZmJlZTU2ZGFmMzE2YzE4M2U1MTRiYmM5NC4uYzY0NTIzYWNmNDhhZTQ3ZTUxM2Nm
N2ZkMTIwOGEzYmVjMTQ0NzcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlVXJpRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBTVkdGb250RmFjZVVyaUVsZW1l
bnQ6OmxvYWRGb250KCkKICAgICBpZiAoIWhyZWYuaXNOdWxsKCkpIHsKICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyID0gZG9jdW1lbnQoKS0+Y2FjaGVk
UmVzb3VyY2VMb2FkZXIoKTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGhyZWYpKSk7Ci0gICAgICAg
IHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRv
cihTdHJpbmcobG9jYWxOYW1lKCkpKTsKICAgICAgICAgbV9jYWNoZWRGb250ID0gY2FjaGVkUmVz
b3VyY2VMb2FkZXItPnJlcXVlc3RGb250KHJlcXVlc3QpOwogICAgICAgICBpZiAobV9jYWNoZWRG
b250KSB7CiAgICAgICAgICAgICBtX2NhY2hlZEZvbnQtPmFkZENsaWVudCh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBkNjM4MjNkNTUzMzk2ZDg4YmEzNDQxMmMx
OGU2NTE1ZWFjMTRjMWFhLi5lY2Q3YTI2Y2Y5NDkwMGY2M2NhOGQ0ZTMxMDY0YThhOWM5YWI0Yzcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0yNTEsNyArMjUxLDcgQEAg
dm9pZCBTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgS1VSTCB1cmwgPSBkb2N1bWVudCgpLT5jb21wbGV0
ZVVSTChocmVmKCkpOwogICAgICAgICAgICAgaWYgKHVybC5oYXNGcmFnbWVudElkZW50aWZpZXIo
KSkgewogICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCh1cmwuc3RyaW5nKCkpKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0LnNldElu
aXRpYXRvcih0aGlzKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihTdHJp
bmcobG9jYWxOYW1lKCkpKTsKICAgICAgICAgICAgICAgICBzZXRDYWNoZWREb2N1bWVudChkb2N1
bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0U1ZHRG9jdW1lbnQocmVxdWVz
dCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCmluZGV4IDljMWNmNmNlNDkxOTU1Y2E5OWY1MjU3ZDdhMzY0OTNmZTgxZTUx
OGMuLmFmMzcxMmU5NjliMjUxOTEzYjY2Y2RjNjE3MDJjNDkzNjEzMTIyN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNjYsMTAgKzY2LDYgQEAKICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi0jaWYg
RU5BQkxFKFJFU09VUkNFX1RJTUlORykKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBERUZJTkVfREVC
VUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHhtbEh0dHBSZXF1ZXN0
Q291bnRlciwgKCJYTUxIdHRwUmVxdWVzdCIpKTsKQEAgLTc4Niw5ICs3ODIsNyBAQCB2b2lkIFhN
TEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIG9wdGlv
bnMuYWxsb3dDcmVkZW50aWFscyA9IChtX3NhbWVPcmlnaW5SZXF1ZXN0IHx8IG1faW5jbHVkZUNy
ZWRlbnRpYWxzKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHM7CiAgICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPSBVc2VBY2Nl
c3NDb250cm9sOwogICAgIG9wdGlvbnMuc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbigp
OwotI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCi0gICAgb3B0aW9ucy5pbml0aWF0b3IgPSBj
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkueG1saHR0cHJlcXVlc3Q7Ci0jZW5kaWYK
KyAgICBvcHRpb25zLmluaXRpYXRvclR5cGUgPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3I6OlhNTEh0dHBSZXF1ZXN0OwogCiAjaWYgRU5BQkxFKFhIUl9USU1FT1VUKQogICAgIGlmICht
X3RpbWVvdXRNaWxsaXNlY29uZHMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmY3OWY2MzU2ZDIwNDgzYTM0MTUxNDhkZGU3
MjQ4ZjcwY2ViOWIzOC4uMTgwYjYyYjNjNGRmNTljZmIxN2MyYTYyNTczNmFjMDU0NTY2OWJjNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTA2LTA5ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qg
aW5pdGlhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE3MDY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHRlc3RzIGZvciBjaGVja2luZyB0aGUgY29ycmVjdCBpbml0aWF0b3JUeXBlIGF0dHJp
YnV0ZSB2YWx1ZSBvZiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nCisgICAgICAgIG9iamVjdHMu
IFRoZSBhZGRlZCB0ZXN0cyBjb3ZlciBjc3MsIGlmcmFtZSwgaW1nLCBsaW5rLCBzY3JpcHQgYW5k
IHhtbGh0dHByZXF1ZXN0IGluaXRpYXRvcnMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBl
cmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWNzcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9y
LXR5cGUtY3NzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2VicGVyZi9yZXNv
dXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtaWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlw
ZS1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291
cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1pbWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWlt
Zy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGlt
aW5nL2luaXRpYXRvci10eXBlLWxpbmstZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWxpbmsuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9p
bml0aWF0b3ItdHlwZS1zY3JpcHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLXNjcmlwdC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2lu
aXRpYXRvci10eXBlLXhtbGh0dHByZXF1ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14bWxo
dHRwcmVxdWVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVz
b3VyY2VzL2FiZS5wbmc6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2VicGVyZi9yZXNv
dXJjZXMvaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhw
ZWN0YXRpb25zOiBSZXNvdXJjZSBUaW1pbmcgaXMgbm90IGVuYWJsZWQgZm9yIHRoZSBFRkwgcG9y
dCBzbyB0aGUgYWRkZWQgdGVzdHMgYXJlIHNraXBwZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnM6IERpdHRvIGZvciB0aGUgQXBwbGUgTWFjIHBvcnQuCisgICAgICAg
ICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczogRGl0dG8gZm9yIHRoZSBRdCBwb3J0Lgor
ICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBEaXR0byBmb3IgdGhlIEFw
cGxlIFdpbiBwb3J0LgorCiAyMDEzLTA2LTA3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRnJhbWUgZmxhdHRlbmluZzogY3Jhc2ggd2hlbiBjaGlsZCBpZnJhbWUg
aXMgcmVtb3ZlZCBkdXJpbmcgYmVmb3JlbG9hZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtY3NzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcv
aW5pdGlhdG9yLXR5cGUtY3NzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODVmYjdkYzMwYjIw
Y2FhMTJlODE1YjRkMjU5NjM4ZWMzNzg3YTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1jc3Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZh
bGlkYXRlcyB0aGUgaW5pdGlhdG9yVHlwZSBhdHRyaWJ1dGUgZm9yIGEgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZyBvYmplY3QgcmVwcmVzZW50aW5nIGEgcmVzb3VyY2Ugb2Ygd2hpY2ggcmVxdWVz
dCB3YXMgaW5pdGlhdGVkIGJ5IHRoZSBDU1MgdXJsKCkgc3ludGF4LgorCisKK1BBU1MgJ2Nzcycg
aW5pdGlhdG9yIHR5cGUgZm9yIGVudHJ5ICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvd2VicGVyZi9y
ZXNvdXJjZXMvYWJlLnBuZycgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtY3NzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWNz
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU1ZDhlMTM4NGM2MTE1YTU4ODY1MzU3MTcxMmZlNzEyYWY0YTQ5
M2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVz
b3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWNzcy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MiIC8+Cis8c2NyaXB0Pgorc2V0dXAo
e3RpbWVvdXQ6IDIwMDAsIGV4cGxpY2l0X2RvbmU6IHRydWV9KTsKKworZnVuY3Rpb24gcnVuVGVz
dHMoKSB7CisgICAgdmFyIHRlc3RlZEVudHJ5TmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4g
KyAiL3dlYnBlcmYvcmVzb3VyY2VzL2FiZS5wbmciOworICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHZhciBlbnRyaWVzID0gd2luZG93LnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNC
eU5hbWUodGVzdGVkRW50cnlOYW1lKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyaWVzLmxl
bmd0aCwgMSk7CisKKyAgICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1swXTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlbnRyeS5uYW1lLCB0ZXN0ZWRFbnRyeU5hbWUpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKGVudHJ5LmluaXRpYXRvclR5cGUsICJjc3MiKTsKKyAgICB9LCAiJ2NzcycgaW5pdGlh
dG9yIHR5cGUgZm9yIGVudHJ5ICciICsgdGVzdGVkRW50cnlOYW1lICsgIiciKTsKKworICAgIGRv
bmUoKTsKK30KKzwvc2NyaXB0PgorPHN0eWxlPgorZGl2IHsKKyAgICBiYWNrZ3JvdW5kOiB1cmwo
Jy93ZWJwZXJmL3Jlc291cmNlcy9hYmUucG5nJyk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzxoMT5EZXNjcmlwdGlvbjwvaDE+Cis8cD5UaGlzIHRl
c3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nIG9iamVjdAorcmVwcmVzZW50aW5nIGEgcmVzb3VyY2Ugb2Ygd2hpY2gg
cmVxdWVzdCB3YXMgaW5pdGlhdGVkIGJ5IHRoZSBDU1MgdXJsKCkgc3ludGF4LjwvcD4KKzxkaXYg
aWQ9InRlc3REaXYiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1p
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291
cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRhZjE4YzNhZjk5MWEyZDUxNmI5NTQ4NjY0ODFhYjc1NjJiN2NiNmUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRp
YXRvci10eXBlLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitEZXNjcmlwdGlv
bgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3Ig
YSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdCByZXByZXNlbnRpbmcgYSByZXNvdXJj
ZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIEhUTUwgPGlmcmFtZT4gZWxl
bWVudC4KKworCisKK1BBU1MgJ2lmcmFtZScgaW5pdGlhdG9yIHR5cGUgZm9yIGVudHJ5ICdodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvd2VicGVyZi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwnIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2lu
aXRpYXRvci10eXBlLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJm
L3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZTI4NzA2MjU1MzlhNzdiMzhhZmY5OWJjMmMyYmYwZGYyNjZjNzZmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0
b3ItdHlwZS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuY3NzIiAvPgorPHNjcmlwdD4KK3NldHVwKHt0aW1lb3V0OiAyMDAwLCBl
eHBsaWNpdF9kb25lOiB0cnVlfSk7CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIHZhciBp
ZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBpZnJhbWUuc3Jj
ID0gIi93ZWJwZXJmL3Jlc291cmNlcy9pZnJhbWUuaHRtbCI7CisgICAgaWZyYW1lLm9ubG9hZCA9
IGZ1bmN0aW9uKCkgeworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgdmFyIHRlc3RlZEVudHJ5TmFtZSA9IGlmcmFtZS5zcmM7CisgICAgICAgICAgICB0ZXN0KGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHZhciBlbnRyaWVzID0gd2luZG93LnBlcmZvcm1h
bmNlLndlYmtpdEdldEVudHJpZXNCeU5hbWUodGVzdGVkRW50cnlOYW1lKTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGVudHJpZXMubGVuZ3RoLCAxKTsKKworICAgICAgICAgICAgICAg
IHZhciBlbnRyeSA9IGVudHJpZXNbMF07CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
bnRyeS5uYW1lLCB0ZXN0ZWRFbnRyeU5hbWUpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZW50cnkuaW5pdGlhdG9yVHlwZSwgImlmcmFtZSIpOworICAgICAgICAgICAgfSwgIidpZnJh
bWUnIGluaXRpYXRvciB0eXBlIGZvciBlbnRyeSAnIiArIHRlc3RlZEVudHJ5TmFtZSArICInIik7
CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0sIDIwMCk7CisgICAgfQorICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzxoMT5EZXNjcmlwdGlvbjwvaDE+Cis8cD5UaGlzIHRl
c3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nIG9iamVjdCByZXByZXNlbnRpbmcKK2EgcmVzb3VyY2Ugb2Ygd2hpY2gg
cmVxdWVzdCB3YXMgaW5pdGlhdGVkIGJ5IHRoZSBIVE1MICYjeDAwM2M7aWZyYW1lJiN4MDAzZTsg
ZWxlbWVudC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWltZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5n
L2luaXRpYXRvci10eXBlLWltZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBjMGNkMzkwMmZi
NmI5OGQxZDE4OWFhMmU0MWVjODYzZjgxM2M3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtaW1n
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2
YWxpZGF0ZXMgdGhlIGluaXRpYXRvclR5cGUgYXR0cmlidXRlIGZvciBhIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcgb2JqZWN0IHJlcHJlc2VudGluZyBhIHJlc291cmNlIG9mIHdoaWNoIHJlcXVl
c3Qgd2FzIGluaXRpYXRlZCBieSB0aGUgSFRNTCA8aW1nPiBlbGVtZW50LgorCisKKworUEFTUyAn
aW1nJyBpbml0aWF0b3IgdHlwZSBmb3IgZW50cnkgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC93ZWJw
ZXJmL3Jlc291cmNlcy9hYmUucG5nJyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1pbWcuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5
cGUtaW1nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU5NjU0MzM2MjExZWUyNGE2MDgzZGEzMTI3ZDcwZDFm
Y2E5MjJmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVy
Zi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtaW1nLmh0bWwKQEAgLTAsMCArMSwzMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii93M2MvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyIgLz4KKzxzY3JpcHQ+Citz
ZXR1cCh7dGltZW91dDogMjAwMCwgZXhwbGljaXRfZG9uZTogdHJ1ZX0pOworCitmdW5jdGlvbiBy
dW5UZXN0cygpIHsKKyAgICB2YXIgdGVzdGVkRW50cnlOYW1lID0gd2luZG93LmxvY2F0aW9uLm9y
aWdpbiArICIvd2VicGVyZi9yZXNvdXJjZXMvYWJlLnBuZyI7CisgICAgdGVzdChmdW5jdGlvbigp
IHsKKyAgICAgICAgdmFyIGVudHJpZXMgPSB3aW5kb3cucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50
cmllc0J5TmFtZSh0ZXN0ZWRFbnRyeU5hbWUpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJp
ZXMubGVuZ3RoLCAxKTsKKworICAgICAgICB2YXIgZW50cnkgPSBlbnRyaWVzWzBdOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKGVudHJ5Lm5hbWUsIHRlc3RlZEVudHJ5TmFtZSk7CisgICAgICAgIGFz
c2VydF9lcXVhbHMoZW50cnkuaW5pdGlhdG9yVHlwZSwgImltZyIpOworICAgIH0sICInaW1nJyBp
bml0aWF0b3IgdHlwZSBmb3IgZW50cnkgJyIgKyB0ZXN0ZWRFbnRyeU5hbWUgKyAiJyIpOworCisg
ICAgZG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Rz
KCkiPgorPGgxPkRlc2NyaXB0aW9uPC9oMT4KKzxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGlu
aXRpYXRvclR5cGUgYXR0cmlidXRlIGZvciBhIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgb2Jq
ZWN0CityZXByZXNlbnRpbmcgYSByZXNvdXJjZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0
ZWQgYnkgdGhlIEhUTUwgJiN4MDAzYztpbWcmI3gwMDNlOyBlbGVtZW50LjwvcD4KKzxpbWcgc3Jj
PSIvd2VicGVyZi9yZXNvdXJjZXMvYWJlLnBuZyI+PC9pbWc+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5n
L2luaXRpYXRvci10eXBlLWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1saW5rLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iY2U0OWIzY2UyYmEyYTVhOTY2NjE0YzFkOWM0NDI4ZWVmOTVmZWUyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNl
LXRpbWluZy9pbml0aWF0b3ItdHlwZS1saW5rLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
K0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGluaXRpYXRvclR5cGUgYXR0
cmlidXRlIGZvciBhIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgb2JqZWN0IHJlcHJlc2VudGlu
ZyBhIHJlc291cmNlIG9mIHdoaWNoIHJlcXVlc3Qgd2FzIGluaXRpYXRlZCBieSB0aGUgSFRNTCA8
bGluaz4gZWxlbWVudC4KKworCitQQVNTICdsaW5rJyBpbml0aWF0b3IgdHlwZSBmb3IgZW50cnkg
J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcycgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1p
bmcvaW5pdGlhdG9yLXR5cGUtbGluay5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJw
ZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1saW5rLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTk1ZjE0MmNiNjhhNTAzNDBlOTJlNjY2YzVlMGExMzA2ODVjNDNiOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlh
dG9yLXR5cGUtbGluay5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5jc3MiIC8+Cis8c2NyaXB0Pgorc2V0dXAoe3RpbWVvdXQ6IDIwMDAsIGV4
cGxpY2l0X2RvbmU6IHRydWV9KTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgdmFyIHRl
c3RlZEVudHJ5TmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAiL3czYy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuY3NzIjsKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgZW50
cmllcyA9IHdpbmRvdy5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlOYW1lKHRlc3RlZEVu
dHJ5TmFtZSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cmllcy5sZW5ndGgsIDEpOworCisg
ICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbMF07CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50
cnkubmFtZSwgdGVzdGVkRW50cnlOYW1lKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5p
bml0aWF0b3JUeXBlLCAibGluayIpOworICAgIH0sICInbGluaycgaW5pdGlhdG9yIHR5cGUgZm9y
IGVudHJ5ICciICsgdGVzdGVkRW50cnlOYW1lICsgIiciKTsKKworICAgIGRvbmUoKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzxoMT5EZXNjcmlw
dGlvbjwvaDE+Cis8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJp
YnV0ZSBmb3IgYSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdAorcmVwcmVzZW50aW5n
IGEgcmVzb3VyY2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5pdGlhdGVkIGJ5IHRoZSBIVE1MICYj
eDAwM2M7bGluayYjeDAwM2U7IGVsZW1lbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0
aWF0b3ItdHlwZS1zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1zY3JpcHQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM3MGEyYzQ2Yjc1NjBmYWY1MzkwNWVjNDAyM2VmZWY1ZTg3MzNiZjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2Ut
dGltaW5nL2luaXRpYXRvci10eXBlLXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0
dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdCByZXByZXNlbnRp
bmcgYSByZXNvdXJjZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIEhUTUwg
PHNjcmlwdD4gZWxlbWVudC4KKworCitQQVNTICdzY3JpcHQnIGluaXRpYXRvciB0eXBlIGZvciBl
bnRyeSAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMn
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2Ut
dGltaW5nL2luaXRpYXRvci10eXBlLXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1zY3JpcHQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMTAyZjFhNTI2MTVlYWUxNTg2ZjA5ZDQwMjJjMTc3NWQ0YjA5Yzg1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWlu
Zy9pbml0aWF0b3ItdHlwZS1zY3JpcHQuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIiAvPgorPHNjcmlwdD4KK3NldHVwKHt0aW1lb3V0
OiAyMDAwLCBleHBsaWNpdF9kb25lOiB0cnVlfSk7CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgewor
ICAgIHZhciB0ZXN0ZWRFbnRyeU5hbWUgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgIi93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIjsKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAg
ICB2YXIgZW50cmllcyA9IHdpbmRvdy5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlOYW1l
KHRlc3RlZEVudHJ5TmFtZSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cmllcy5sZW5ndGgs
IDEpOworCisgICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbMF07CisgICAgICAgIGFzc2VydF9l
cXVhbHMoZW50cnkubmFtZSwgdGVzdGVkRW50cnlOYW1lKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlbnRyeS5pbml0aWF0b3JUeXBlLCAic2NyaXB0Iik7CisgICAgfSwgIidzY3JpcHQnIGluaXRp
YXRvciB0eXBlIGZvciBlbnRyeSAnIiArIHRlc3RlZEVudHJ5TmFtZSArICInIik7CisKKyAgICBk
b25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+
Cis8aDE+RGVzY3JpcHRpb248L2gxPgorPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgaW5pdGlh
dG9yVHlwZSBhdHRyaWJ1dGUgZm9yIGEgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBvYmplY3QK
K3JlcHJlc2VudGluZyBhIHJlc291cmNlIG9mIHdoaWNoIHJlcXVlc3Qgd2FzIGluaXRpYXRlZCBi
eSB0aGUgSFRNTCAmI3gwMDNjO3NjcmlwdCYjeDAwM2U7IGVsZW1lbnQuPC9wPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291
cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14bWxodHRwcmVxdWVzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10
eXBlLXhtbGh0dHByZXF1ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODE5Y2I2Y2RmODVi
ZGMyZGQ1OWVjMGM2MjE0NDUzNTc5MzYyZGJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14bWxo
dHRwcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitEZXNjcmlwdGlvbgorCitU
aGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdCByZXByZXNlbnRpbmcgYSByZXNvdXJjZSBvZiB3
aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIFhNTEh0dHBSZXF1ZXN0LgorCisKK1BB
U1MgJ3htbGh0dHByZXF1ZXN0JyBpbml0aWF0b3IgdHlwZSBmb3IgZW50cnkgJ2h0dHA6Ly8xMjcu
MC4wLjE6ODAwMC93ZWJwZXJmL3Jlc291cmNlcy9hYmUucG5nJyAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlw
ZS14bWxodHRwcmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jl
c291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14bWxodHRwcmVxdWVzdC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI3MWM0OGZiZTMwMTliOTgzZjJiMGZhNjk0MDdkY2E2ZTIxZmEzNTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2lu
aXRpYXRvci10eXBlLXhtbGh0dHByZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyIgLz4KKzxzY3JpcHQ+CitzZXR1cCh7dGlt
ZW91dDogMjAwMCwgZXhwbGljaXRfZG9uZTogdHJ1ZX0pOworCitmdW5jdGlvbiBydW5UZXN0cygp
IHsKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgdmFyIHRlc3RlZEVu
dHJ5TmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAiL3dlYnBlcmYvcmVzb3VyY2VzL2Fi
ZS5wbmciOworICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgdmFyIGVudHJpZXMgPSB3aW5kb3cucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5
TmFtZSh0ZXN0ZWRFbnRyeU5hbWUpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZW50
cmllcy5sZW5ndGgsIDEpOworCisgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1sw
XTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5Lm5hbWUsIHRlc3RlZEVudHJ5
TmFtZSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5pbml0aWF0b3JUeXBl
LCAieG1saHR0cHJlcXVlc3QiKTsKKyAgICAgICAgICAgIH0sICIneG1saHR0cHJlcXVlc3QnIGlu
aXRpYXRvciB0eXBlIGZvciBlbnRyeSAnIiArIHRlc3RlZEVudHJ5TmFtZSArICInIik7CisgICAg
ICAgICAgICBkb25lKCk7CisgICAgICAgIH0sIDIwMCk7CisgICAgfTsKKyAgICB4aHIub3Blbigi
R0VUIiwgdGVzdGVkRW50cnlOYW1lLCB0cnVlKTsKKyAgICB4aHIuc2VuZCgpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorPGgxPkRlc2NyaXB0aW9u
PC9oMT4KKzxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGluaXRpYXRvclR5cGUgYXR0cmlidXRl
IGZvciBhIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgb2JqZWN0CityZXByZXNlbnRpbmcgYSBy
ZXNvdXJjZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIFhNTEh0dHBSZXF1
ZXN0LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2VicGVyZi9yZXNvdXJjZXMvYWJlLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2VicGVyZi9yZXNvdXJjZXMvYWJlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTMyNTM2NzM0YTkyNDY0YTNm
NjU4YzhhMmQyOTZkZDZlZmRhZTUwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMjI0Mgp6Y21X
KysyUk4xZzdxPHluLUdwUmIrKTc5aWxEKTFGTGlUb3pCeEdtSDRwRGEybF5zSHxsNXhxLWBxXloh
Pj9FODIKej4zQDZoSlV5PVd6VkcqKCZwSWJ1VH18O0tJVEpZXjleT1Q/bEFJPnxSRG15Ukc2TUx7
bTN9ODJlcTMtPSh0Q2wyCnpNeygpajdkfkZmZGo+b19IYXhWUHczZiZGWFdxODwlKiZxVi1SdUFV
YFM4MVl2U0t+TEs3M0hwUTBocHkpZlZ3Zwp6UlBrREMkKSk9fWlKd3R7RUV5MzVAJlE8ejt7c3hH
QSpyQSo9Z255S0UyP0pJd3dEVz51WFItTns+bndoJjJqT3kKejhhYTA/e0BoPCpYRmpLdntJTTIw
Y19fdVpwWDUyY1UqcEBtPEBxITVvQVk3PjgoQUUoalExJStOTVRgMEVAS0VnCnpuaHF5R2lSJStt
KWorNVk5eX1Rb2lrPXJ6ZUpZJHZpNCRSX1FYUkNiT3lUVmtQTDBaNGIqcjBsc0IkJlJ2cldtaAp6
bURkbzd6QyRVU1Y1UDE3TyF6OEpwdGh1X0BSeTYyWGYoWEJ1I2h+RUVySjZsQWVgRVJzVzN4VWhu
Szh2eFlaNVcKem1HTzQlaW5scGNVa0xmblVVO1YmUXpKbFdHOyRIdz1iQzF2bXRlKmFmJktSfUY1
ZFpvaWtLSHNwPU87YGpsaytBCnp2PDV2QlBETW9vdlQ1Q2oqRFA0ckBlb3FZTXMrJD0tSnlKM0l4
P3sjajF6Rkh5U0RXKFBFTy1wdUMwKTIxQERCNwp6KEQ9cHxFREVsXj16Sm0ybHB6RiozTmg7d2RS
OCZeTiQzRFJPWjY+b0RHZnhqcT1KMHZtMUo/dDVZS1h0TTNvZFEKek5+cyVERn1yXmQpP1A4P0Zr
dnEmTyhQS0lSKEZmNnh2XjJJUXZhQ3tRKD5WWHIzQ3tDZWRAQWpgPlJ+cmtOUVBKCnomM08pMFJ8
USt7bTJHPTRHWkxvZjdaI2NeOUVrU3doN2wyUjRzdnB+LTRGNUhjeXhzI0Q3Qm9JQkRrcig5cUdp
YAp6Rmx8eWdheT1yQEV4cnJ4bmxaI2xFS1IpazkjZlE4ZU0jWEJoZD5pKXowNGYoVVc7VlVea3Er
JFVUdGt7NE1nNDQKenJnSUlQIShOcX5nWU55I3VrQSEoRGBEVTFEbVlUdzxFUkIob3YmelhjV2l2
VDUhLXtZQ2AmQDNAODc+NEV7RTs2Cno1bEtfNG5uPiVnXnA/bkFCWVRyTjx1S3d9dVR5bEpsOVA7
fXQ2Yk0zQTVVSCowJkExPFU0WVg1SDVQU3BTKU1rTQp6QWVMXjNPTj59X3A0MHIkKHFTUG1ZQ1pC
SWcldDBfTUQ0QiYmeTc4PWlAMGpmLUtDZFhfNHxfTnlPSlNodVcpQVIKeiVaZHZCVUxoZU5HaW19
WmJ5SE41YXZGI29NbVpgRWRhWG4oTi14Mm5JMDE+SztaIzVxZyo3QnktVSp8KkxkKkh7CnpXYlR0
KkhFSF5DYWwrQi1ZeEFURyQhK3Q4dF5CP19gK24jOT9wckB5TVZRTlVLYVNhQjFlMUd1ZE1ZYWBg
fV9OQwp6Z2dTUz52WE56fXFuTjM+JUhNWV9Rc1RsQ3ZaK0Z8d1FnTEZsczZpZ2E9NzxTS0pKNCQz
UEROMiZXRX5sSGZQZEoKejZ5YVpIcmdMIVJyVk5vMSN6eHlpQyY5fCoke3wtU2t4YCZJUDVxRm9r
Rn5ZNm8xMkBoWk84bzEhUmM5antSNiFPCnohVGBLQnI8WDVaNzhhSjJtWDZwfXk0NWBwNSVEPEtv
LUhtZVpmJXY8T1EyPkpuUV5Zc2RHaDMqdSZ8MyFqNnlhUgp6Xjs/YGoha219Pj5hfWF2NyNPeV8+
VXxxbj98ZGRGPkl9eTNPUTB3K0p4dyYhRzAyZlRUSCltVkleX141Q2NQPH4KelQwR19PRyRxN3U9
VDd1fE1DO3NJWCtzSDB4ISFwSCgzYG19Ny15RXolaFRvVD8hR0BXbGk0PFpKK1VpWGp3NG9TCnpW
ZlhPb1BoKHh2R0Y+UnVNUTI3OT9Td0BTYWYhUWs/fjAzZTMjZHFCPGtebUk/ZUJgUyM8VzRKcTlT
JVkjRj9VOwp6bmUqMGFkQXM3M1ROajtJWW1KTF92V0VKSUlWajJLLUp+ZiFCd3h7IyVEeHdRTjJJ
ZyFJXjV5O15Ddn54TWtBTnkKelpIMVYwVUE0N0NMcWZ7Tz5+RjtYX05zc0k7S0F3WD5EMUtKa2Ul
eWA3Y1pWYT1ae3hqYlFXZEVnTVJYP0c1bGRFCnpzRndHNVdZMURDeG9ncUk9bjdGMnJlYkpxNF55
JGE9aGdROGA7WWdjeUM9SzdrPVBadEkjOzcqa3NuKzg3NmNKawp6c3BGNTJJYW07bkNsbT1qYk56
MF8ra1F+PT5qaVZAUCQjQ008Pn5iWmYoQXsjTUFpcGhOSGtyV2xnSHF5JWlxNiQKejtqbTtyKXN8
SDAtKWhrPGp9RGVHZ098SmUyJk11YGZHbTAwXkIrYns9cHteemsxSGVUYzZXQ3hEa2BRPUh7R2RP
CnojN0ZIYXdeeCpOSUxIV00tYHU0IXJEZk1YJj5IP15zRHN6PFAtVHxpbEV0MkJSaVhGdyFqIV90
PVQjRiM+fUUjRgp6SVJrVFpiS35SVjNrI09AIy1ZcU47Pm5rNnQwdH5UKmE8Tm1kVmY8I3VgTEt2
YXo9MVNHMjtaTkxTKyVIX1FJKTMKeiRYfE8kUytiIzJFYUc4YF90VnI9Mk16aEklbis1eTdGRTAm
bVU3TXIhb1Rea0VRQyFFSnV8ZW8yYWpqV3B+XkZ6CnpYR2RLRkYtbUVReDgoMTRHb0pocHYweGsx
eW8zNzEwfHE2JEk0d2pEen1+S0JPans3Y3NFclVeSU1LeylFa3I8fQp6RjdLUzRvTT4/Ykk8LTJu
YSh2PVdiZm92eVFZJD9eYHBCelN1TSZ5UDdnV2RjY0IkcFBvcEVKanNHMlpCQT07SD8KejR8RVlU
bkM/cmFafUoodD1fbkw2d0NiaXhoVXs5K1czbDxzKGF+UEBLa1hgaT9USXpCQVZQKDJpKE1kPE5+
YDkxCnorRGZqWXNLV2NVYVU0XlQrYElnPzFGMVJ+aGVYRnw2JUViITU9KWJYO2ArISElcUFWfntT
SHlpbmNNTCYmR34lNgp6MVlsWDZtZi1UXykhdHE4R28yITBRUTM4ZGxFS3g8dWB4WWUtN3E8aEso
PENsUjc4WUFjRCE8TXFmdnsoWWtHSXcKekxQbnNnNGg2UykzdiViY3VDbGhXYT4kfFQtJnQ7aWJm
VipzNWdmMF4+PyRxd3hjaWNxNUE3PEl3YThYWjd7OEx0CnpuPXowYFFPXksqOzdMdEpWZT9iKEp3
SUZFa0BXbiUoNk8rdnUoRmNoeUw9TnR6VVAlRE09YGtfSXFPZzBtWkteYQp6SShFc0NoZkpubz8z
Sj5tQVkpQTE7flZpSihZcWV2I1gzKSlLY34qQjlKOGs8Qys2VXczJWpmT1NVWX1ScSpATGcKelhQ
VXFnbFVHLUZ7OW5PaW1ZNm4mRHI+PnlQLTwyX2V0eXw5K0tqQlNhXjc5PkUkNW48UCs/KFYtOztT
KGNYIyptCnpqKk9FSXNEdyFlX2orVFZxaXtYYmZYcEp+YCVnclNlVUlpSmdxUmYkLUR1TDAkUzU3
TkZadVpLS2ZBakdzdXl1Swp6TFFHSyNneE9fU1lkWHBjJjMzfTYyPkZYdFJLOUJsKF9SfnVCTG81
ZGdSN1EkVWt2JkYtUWJWM2AmYW1semsyUisKelRYNVN7Pmh9bXhoVF5pO3liODFldE1ZOGNsMnZA
U25ARDRvPFBoP3F4RSstPCh+SE1ZZHZVRzBPP2I/dmZIRUg5Cno4KlckbSZVV1Y4TW9MVy04PEVZ
U2tfYU12b3pTb1d5R2xvYyVyOTxyOH5ldkcqWTNNNWJ0ZX1UNnFwS3haNDxBTgp6bExWRk4rSXhG
QEozMmFnZCFJYU1JTU9jRzBXeDBPOCghTjM9dFJmVyo0OUZvSTJhVmBARWNaZEZRcTtZIUlAUngK
elVQQ3NsaCtLfl9GQj5KfGRLMWpQaEY/YHZTLUgyPCM+Iyl8bVN+ejl2UmR2RCZBeHN5e1pkVGNf
e0x2VGZmY3drCnp2IzZrJG5BcUxCbSFsTlNQRTV1OEZGTWB+I20oKj9IeWpPPnM7UjAqTU1XOFhf
MUdERkI+QWpUemc8bUJgJlBVJQp6XnF7c2pnQmtaKmJselpARSt1dVBgTCkrJFYoNjR5eX05V04k
aV5xeStDWHRQTWpXY1BlJThPLWA9dzF1ayF9PSsKelQlbVVPWipYdmEmKzdwVF59RTZPb2otZWZ1
Q0F7MmY1KUYlNXtwSiM9OzxVWlk4RHtLaCR3TXZANSE3T09HLSp1CnpQaTlFckBPe3J1X3hYKSN3
ZkdXPXJUY2A2aHdQZ0NwSD8jVT9tYCY+Tk9ebXxYTTFEKUU8diMzYWhSUUNNdkRQNQp6SU92a0s5
PSh1T3V9Kz1lYFB0dlUhbntQciEwYGF8NSFse2szTD02c1UwdyFDMXJGTjh1R1piSjZDMFo9RTZg
bXoKem5ySXJMXnlTJTVNfXYmcyZ+M3RvVysmJFNPUX03JXcmUks0eyV8IStPOX4xKUBCSkZPQDRu
ZXlKfj1YeSp0PCpeCno7RXpRaTxnWjhrOTwkRG57KjlDX2B8LUI/JT5+ZCNhXmN+fm9kQGE1U3I2
bG8mK1A0eWJRZVVQd2hQZFpRQnFTdwp6I2xFY249Xl80ZVhzRmZjSnJXSVE5KjAhRkkrTSN4TVZk
aFVyTz1rQ1VBa3EhWFNCN3ZrNGUxVmtTYEtARiNmYk8KekRtd2FYN288U14lX3F0XmJhRVN4QkVS
LShPVipOQW1pfSVgMEEpeUkjSGpSczYxYnx2NnU/Q2tiSnJxZDV4RHdtCnpKRWtJN3JmSm5CY2hF
THtgUEJFa3JLUDNnRWwqdXQ5Vzc1I2xQTDs4S29fV0pybCZLcXI7dSR7SEV+JVUtP3k9NAp6YCk7
RVZQSm82KlVnUHRhZVgtNiU4bHE1S3pgXlM3VlBGJVJHYXwlez9VYE56ZGshM24lK2x2JU5CeFZ4
M3RXaHYKenpQODJ7ZmJ1JVVfcEdSXj52QSQ9cXNpQzBwX1clK1QqQGxwZUd2YnxTayFxVHRabStA
IyZFfWoqXz53KFMzRTAmCnp7K1dwKVp5SDNWOypSVzZMTUYqZ1dUbCt6cmlARzc5VVZWNEcpeE9u
IzxhYXY7V3FLdig8VCM3Uip+QGhaUnpWUAp6QHdQKlY+N3FFfDloMXp4WFk0fE1HdnEkTVlkMXAz
cW1yZl5zNiVsfG1ROVB5X3VZN3pxUk0lJWhSZX1Wbj84QUUKejYrfnlnQGxpTHpBSDYxOW9NXkAl
LWI7OEBubkZRUWsoeU92dmNEZ24oMUt3cCZIYm1lYEdxcFZYK2xjUSM9d3d9CnoofExZYilVTmQ7
RkZQQk52fTRfcj19bT9aPV83dTA5Qi1GZjliNjlBLTQ7dlV5cFQhRTUpO1pzeDw8fkZBVCZaQQp6
Y2NDQHA8RnZyKlp7Tk9NOyElNFk5c09sdTxMdkNydTJTc0lvalZVNlQjSVo0TnxCPFlkKVI0dFdj
cFdVPCU/djgKel4+RjtoJj8kJHVzLVB5ZUlPdUJBJjtJS09kRmR3eGs0JXNtKztxTW5zdWcwUU1m
bX5HKTcweyY5N3hhcTh5Z2M5Cno2SnckenV9dntISFU+dUY8bUFOUmFJczMzUiNzZFl5YDFXbyhx
bV9Jb2l9KHlFQypXSm4pZUN7JHEmM3s4VXF8Zgp6UjBKdCRueFloQjJaaGphREx2Zmk3bWwoa0gl
d194aTllcEpzQm02c1F0MzBtVj94Sj8tTWA8UHstRXlMSHdqNWUKenp2VWxrR0ZncElsU1FUOSMl
K1dXNSkqK2smOGEoWUhCdHstUyV1KiRqZGR5WTV7aVpqYjhUNS10VVd3TDckYFlECnpuaH1KfSM0
RzJGKzNWYmhTSUYrUzdkOXhTNCsqMHI0NW8zOFpSSXVfN2todnJiSUNJPDw9al92VVUjZDVpQGpY
dwp6JWhEYHgqX21zViRAKX1SMlkkZHVWKjItUVhUZkFHMVRoO2V7JHpeU1RKNzA/a3tAUCpDOyQt
fSVvdEQ+MFkyOWUKejxaTGZ6NyZoRXEwJT5kQTdfekk+REtjeDB6X1BpJGpsYG95WlF0MT9CRnBM
P2MqRVAzJiZ+RSlvK0VicHNDZkY8CnolOEpMeSFFSyR4LS19JW42Qjl0KzZjaU1vS1k9OT83b01E
bng+YyZobUhYP0d3YWh3LXIyU0NIRX5+R0gyT3NOSwp6VzVgRzIyOERaZWs/e181WDhjTDBCKGZ8
fkJ9QX00VU9PKTcwflJIYihUa35RbnFqTzYxVypUc2VzcHd7KHRgbkgKekJuZ1VQY2AhYVBhb191
M2B9Z25QK3VNI3BPc3hacjYjQT0wSn5ROFNiPHhQPDJ5RkcjcmRfMzcjaDZUMS19KlcpCno1PzV8
N25CMlgqVFVaRChBJjhWKDZHNjwqODM/QSZRUkt9eyhqZSYmR1hWYXRMZy14ZjY3dz4kX3oqUFZ1
clNqXwp6ckFLaWVUKlNheEdCaTVab1hqKUBEYU5va0YoPDAhZnlOJDlpO3VzWVYzbnEzdCpBKTRC
RXc2TXhAXmN4Jis9UlkKemxTQ3JNbFRjRyQ/dEZmQnM9fVNVPHxVUzx1K1NMVEIrRkxHPjNVeVYr
ZXt6TkNKeERkMS12RzZuPHo3dDJMaStxCnprSVlnOEhvcCs2RnR2eDxUdnNBdmRVU01VYnlke3Nr
ND9weDNpbiQ4KGgqbEZNMW1FVih0MllQZVNJKTxLd19oMQp6N1FtN1RpIXhkTVN9I29FWHMlZ1ly
KWlYQyYoNT4wKWhVeylmNFRvWD5UMHNlX2tVNyRFRmQ1dER+bW0mY1Z1a3IKemc3VmVNV3UybTY1
OFl4TkFkYXJgSzBEMW5LcmduK1d4RFVJNyhFQ05aX3BFR0c0eFhxQ1oobyFWSmhJaGpmez1jCnpH
Y3JnT3dsKzUlRCluYV9Kemw9Nyg8diRfT3pCO1lZe2VFOUhsQmpQP2xnS31eO1NTZjwhWlFTQDl2
P3VGUjByVwp6RkR9dTdDZ0pjbHFqQDlsJVltayZHfDwtZVcrYn0pWmdBR0l6NUttJDRtfnxSaS1m
b0NqcmlRV0pUUE5RT3tIMmwKem5rWTxidG58S2ZMVnZpc3hncFZrZXhNQW9DQDU/PDg9SEwxZnxF
YWFsMmJvX2hSfjcrc2BEbDRDQTh8KCNQcX0rCnp7OGRwYDJ6I3UzSCh2UmZnOUV7fFpPV0d+VXh3
fDR1aDckSGVzLXczUGVUU0tETHAtWFhVRkxTfEYqT0d4Xmhsagp6NTJnc0x5e0A2NUEoUnZRWFI1
biZOVVd9RXdXNDBhWWB2d1BMTnJOM1RHdH1EKk5GfFBVPk57dDc2eWlEKlJ8b2EKemB8Zz9VNURS
R0N6O350WGQmSmhaOTRHV21UfFhDOVhrNDE4JSUhYzNAOFYodjE+OTsqaXcqJk89TSNxdk5DaE18
CnpIMzJrOE9pYXVXX25kUkNTejIxcyhhfnxQRiUoTjk4Q2lEYDE0a3h0dk1wOyMkTiVrTVpnaUJQ
JjF1Til2ZDEtSQp6eytLcEdsMl9QI2QqUHpCK0w1KShAO2pnYmZOQDRqajMkMm17T2VWKHErX1kp
QWVfM2dFYWgtb1E+JmtTJEt0eCkKelRlaFZnND0qbi1AP2U9OEBpSXEydUx3VXdPcHcyamlKRVp7
Z0UhLTV4OWhnUC1SJH11JUljZmMxdjIzczdSN0x7CnpHajdPRThffk00QGhrJDE/T3ohbCk9Xllj
Nmt2RkAjPDd+aU1wbXFJR3FKMHF7QyRVfEE+VC11TUh8P0skO3RQcQp6Mj55blhhd1BnbWk2TVMz
ZmoqXmxZUmhiSXttckgjOVokT3k1XzxxP3lVS0MrT0U9O05UKDhaMSQ1ZSE0bHs2NkkKek1EYGNu
dHdUOHBGYGNHT0FFdHBlKFlnYEx3JXtVbUopJl5QUERuTVZUYG1GKSgyTHBUVjNZSHM1dVFpcy1w
Z3QzCnpQJG03O0dKYElsPHRwX1plfUluK1Zxe3t7SCNRRVRJUWYzPjgtQVBAUk9Yb2RaKmYtZzs3
MGRZI0wyRCpkUWQxfAp6QGswZjM4IWQrVHApKXxZM2lzfHo2SmgkWWJaXnNiaiU3Sz9TR2R7Nnlw
LUlZP3J3akNneH1mOEBtN05nVW1gOFoKelVEYUskZGNlWmMoazx4eksoPFU5RjAkc0gpTypDelFn
Pk85WXw4SjFRPWVIfGh5RHdmOXRhNCQ+QX00MXVtbWI0CnpBXyFBeWlAeEA+WUdUJiQ7R3hOcFd+
SUxUJDFtZyVRJXN+anxKST5mTkpkMFkrbGlQMXFYPHdZTG1NcTExd285LQp6X00hS29jUkdeVSRI
JUExdn5QTDBiPjY4T1libUgjSSYjNzAkTVNBRFp3JU8rbjMkaz1lKT5xWUpoKzNQZWo5e3UKeldi
UF47e25+SmA5MHotWmBTYShjeHdmaz1PbmQ5UHl1eU5sYk5rMmwjbCNAbzBCUSElZFJHM01maDlS
e3F2emY8CnpheH11eU1NP0k7VSY3MWZAVCNrTypiKmowLXBVKCstUkFjSGFrI3R1Q3whSlBYZWlq
NT45VldIY1lFUTthZGY/TAp6MTdzVldvI2QqfXgocjg/Yzlwcmd7eyZWYzJBRHp9XnsjNz9rZCo0
WnhNI1U4P35rNHlfUXZLbWc9YEpJMWtUdG4KekI+Rmd8cXVne055JlQ7KzVIMDZTRU1rPzx5Mjk4
bjRPVnwtYyRqUUhNNVN9cGdAWWVScj9DajZlRyY8RVNnU2RJCnp7VTZQRzxNV201NztzeCleT1Ap
b2VDaXQtJkpUOXheVkhKcHN3TkotamNKSlRSVnYxYWU1STV7QDd+byRBPmk8Tgp6Y3pDcTY+cGdj
ZEloeFdObDs3fGNHSV9nRHBXYlRHJElIS05ga1NgcHQkNlAjMjY8V0x2eT9GOUQzbkl2PHdocGUK
ektgYmlwRkBhWUlRWkZIQFpUfFYhOVRHI1U/MHpZMjNsOSRsYnJ2KD1QKFpzeT1OZU4xQWlFdUsk
aVh0fjVhM051CnpaQEd3UmtQK0B9SSpSOzBKWldyZm9TOSs2Mj49N0d0KnpDVHo9MjhaUHJndWtz
diReX29TKFgzXkk8NTZxe2hCZAp6Z1Rxe2pTKWE7YGlqdEM5KyhSSDxJVXA1NjNiKHA/e28qaEJ3
LVVSRV9jbThvSnMwRGpkXj1nPmhwM1IzOSQpVjAKel87fmtGVHgxVnE1ViUpfUc2d1M9djVHaih0
bl9DcSV7NypDK095JVh8Ql4qY2VVYyNReCt3XygwZkYxTW96Qm1FCno+WlUqeUZZWF5WdXxOUmhD
PDRhQGE1bDJXVyVWZC1kaTFCcXtLZD5xKjV3anhRa29CQzJWUXlmTy13eyl4d3lJMgp6UEMweTRM
ZWcxU1NiJD1BeHpsPigpWXE+LTN3U2V5NTtnQiExNVI7eGNvK2E7fEojMGpMQmFLZz44OyZFc1k1
ZCUKekJPe355czwkNmk2QlolKUAoYHk9RklQdmN1ZGxuZnk4M0s5SE16PmpEOXQmeXc+QmJ1b2lT
d0F0KipicyUmUEMlCnpedlRqYWJvQGxoYyRVXntmM3FaMnw1byRjMj1lLWF4a3cxSE49bVJ5Umtn
TUhEMUA9XjtvQEBvTzl5anZmflNtQgp6cCYoUHJiWCVPa2JlNEtBLVVQV2BTbV5OVlM8akNqMWlD
QEAyPCE8eTxMJD1POGZFdWBVY1koc0NVZ2ApTVRrYlIKejRpTTkkTjQ8YWtlNGdIVnFQO2dDQlk4
SF9hQjUmUXFMSnJWVitnLXYhdWBWUlk3fmlkQGlFNChnOGRDMUlnWGJMCnpFI3EhMiFrbWx4KXQh
OFl3fkxSTDdtalReXz0+VGtTUV9ZMUlCU3FTcSpUbU9HaXV5I1NHTXJFVndIMkM1PCFSXgp6ZjR9
LTE5e2Jka2slKUYyb3N8Q3Z2U0wmeE5TViNlJX5IUzlIN0tOanEkcWBLemteVWVHOD1OMGYwe3Va
XkBfJi0KekAqbDdJX0tkS0JhKHtmfUR8UE0oYEYxa2d4fTJxK1BUWXJ5c15eaGQ1cGkqR1FCaEc1
ays5RTZeVkxIYEx4ejAmCnolQHE3XlNZK158PFRiI140diZtbnFmKlMjNEE2Y2xwNigkWT9MfHZN
IzMzYHtgdGhNZWhLWjM7ejFRQmFzSF52Kwp6Y0hiJDMjdzlnVFBOd3w2dzFnMzBASUc4ampBNTFC
LTB8PlZyUU16fStRMGI1PnhlQGFLVmFoMXBaWlV7a0BEa1gKelc3cHs7ZUgkZHtCa180YTEyIzFe
eHokQ1AyYmVMS2BWJmQ3dGduQ2RKQ19qcV9ETUg4SX4jUT9rUX5gN1cxUGBwCnpzaW0hJkgmfDN1
MWNyVGphKn47dWBKK3d8RDJBPjVJenZBMUoyWWdPRyFoVX57YCMpfjkhVjNRbEQhNCoyVm8xWQp6
ZXcmS3JEez9ldyNQenFncjZMeX5LIWNfPmszZT1VSS1tWWRZPUI1Y3h7RkdrQjlMQEoyVFokQkV6
I0Y2V259PloKelZUT3o/OyZ3M3gxX3Njd25ndzdqOWpaVl95alFhcFhDZHtLaVZPY3JTO1VWWDcj
LUNXVk9CdXdjLTIkbEdIPF9YCnpwXm1fKyU8VEhAYEFmd1NAaTFWVlVWP1pqYmA8WWI8ZSlWZ2t2
IVNQSig0e0ExTHktV0RIZXJZZzU8NFklKVVVWQp6YDM5VkQjPm9OPzk7entEYCp6PGI1SVFlQzsy
UW12RTJTbjRDMkx9Sy0yaCZ1cmx1fH4/O0w7ZUJ8YiM3MHh9bEMKem5MUUM9bERESnNAVzArQF5j
V05PYnowWF8rLVVOUzNMUjRjazE8O3EjMDAxNyl7PXpVPnxfTUc7YSFSUkYpPVpyCnpHRmdeX3xB
Nl8zU0wyQ1BmfV9hRXZmdFRxeFpHVW4qe0BQPjMwN1hsYXBSJlBidTRJa2MtcUZMUlNeMz9QQksz
fgp6NTRPZypiaVh0SFgwUFBBeER1aCV4bEM1KG5pdzskR0FHUEF2fkMxPW1nfT5zNGokdjNNcVYp
JFE9enBYVlVjOEAKekdfTG5Ad1k5eUZ5YTBre2JFKiNGaHBTUUZvMTI/S0wkalNJV0N5Jio2Sjx9
UzI5KksyMXQtVHI4YCg8Nk8helRxCnpFaj1+V0xlSV83UUdoODVMaHptY3pvMmw+X2V7PVJRM3or
VEd6ZWxYRUk3ZWwxJn5aaVo8NnFZe3pwdzQoRWo+dgp6SWA+QlNjWV5paWluc2NnYVJMdzt8NStY
VXxHTiU8VFliYG83PGp8JmAxSWBYJkAlIW5hZHV6PDs1SSE/b2RuTEgKemV8azYxPzxqQlU+K1RR
ZUZKU1A3RkpKeCs4JDVTKWJKSWp7cTNLbyNLNl9KQlFBSj5ybHlpKnpQRipkUl9jeH49CnpCTmx0
bClfWi1vX0kqcTlAXn5QbGtqZClyKkZlV2ZNYXEybkBVPlVCVH5SNDY3KXl3YiNnTTB0TyVoVlNJ
d1BENgp6JXZ9WlNeQEReOz5IM01VcS1KcVBNK2YrdG5pfGBSdkNoVGMjUmdTeHY+e00pNXR7flo0
YUdIO3VlJiFLOCU1OWkKenA2ekN3UGZlZDFKJTdGaHAjbDZKMj8+ZEAqRDlBWk8qRzJgdXA7VmpV
TzdZbCk1aXRGZ01PTz4/e0JmT3c5Kyg8CnpOQkVgOUxNfmt4QWBmbWxWIWhAVWNRQ1RsUj5KYV5K
YzIyN0tBQENFbT9mTVMrUUg/LWpYUjJuT0d2ME85cmtnQgp6KVB7fCRKJUluRztRIzcpXnY5TmxS
V1h7bS14VWJ2NEM7amtDamRBLWVmR0VOZTIpTGorfCU9cl4/WmpfSGpDIUgKenMwPkFkdCY3WCZx
TjFEaGskZTA1YCt4cGFQZFIpUGRFYTFXJWJqOz9OWlE7VEF3VHhoWXdaQERYZ2VqbENmPTNiCnor
P19GT2xgc1JTZF4jZWhMNnBgJUgzZUdlUSQ8RDR1JHNJXnBaTHhxenUpMT47VnpIYmA8MmJqKyNX
a2heX0B1bQp6WmBFSkV4QjtfUnZfKUc5Q1dFeDJ5bSpuQTBBSXZkMTJMUTY8X0A5YlJgP35KP2A+
QCRVdU5gYVNJfjx+ak9uenkKenBUQVF+SlU/NHs5PTh6MFBfKGcxRi0mPChGSGRgVXQ1QFFmdlow
d0o3aCppNDV6YmdMVWx8UThjckdDMmBtK19LCnpsanBqfiUlS0FjMylOSXFSTWdhclloNE8tZERI
S15KNkt2R1ErcTtXKmtRdFU1Y1NJeE5oZUx5JT4xU2pFMml7dQp6XlpZJjFiR057VTR8IXQlIStD
UWR5MkslJCZ5REVNLUBvWiV1RF9yY1U8UlU3I1B0XktnMipxXz1jVUtaM1QhV2MKeiRkJCtseSRh
WjckfGRiNHJUcCZeR2xtQGNvb301N09hVHFISm9mKHF2NG9QPl93fDZsWWppUlFzfjBrazI2PnFW
CnpWd0pqcVEoLWImcjBOT0pRVmstTm1hdURMY3NAYyoqSH5FXzA4aXlMWXxNOEtWSDVeKWlAVHtr
a05efkQzOD99Swp6Q2kwc28ze3JIKm48YXJGa21JLXdhb1IjVnQtTUFeWHowWC1uPlkmJFdJVSE8
VTJhNmdESXZqWE5YPDRqblI9O1AKemJUJUl1YTlRZSg4QDBFX1ZXTjZ0UyNYVXo0NDZiUjdzNjdZ
ekEoKFlXYzxGcTZXXnQ3I3k/dWl5TjVNM3FFIT05CnpnTSpqQzw9JnZhJnBXOU9tWEVDdTM9RHc1
cXtKTnpTQUR4Mip+JWo2YCpGPCskflEtSWJvNHt2RkpRUjBKZGFASgp6QXJpZnx6SyhSJncmYW19
REJhU1J6PlVQTVBuRF44X315IXxCU0RAT0xpQ3NwR24xa0k3dFE/XkE8dGc0QihlIzMKendkWkEm
dSgtUzJuKnAjaFNAUXlIem0rKWVgTEFFVVBFTmojdG9pSD5KISR3YFMmRHhQcUd6RTEwSUIlcCEk
Y0ViCnptYDV4LWl+Y0Z1N019KGdCYzNGYiZyVDlKKThHOUp8NlRCTG03MjkqOTloVCpJa1kkUnZy
VXpXe3BRQDtyYUNNIQp6SlA3alo1Z2NnRT9FYU5zenZldUJKdzVkaHRyPSYzXjEjbGx1QzN3bmdp
fipeI1E2UjA7Qmwpdm9wUFQoP1JAZ0IKenliNUEhZVRqQG1JaHRBT0R9YnJTclN9KnBBclcqYEAz
N1B5ezAhbUE7R2s/Xzt3TWs3Q2BnOEdNNlRwaiowTkYjCnp7Y15RUSFCcG4kRHx3Izw2bnZNbmI7
YG5WKH52PTd6PGRtezAkWmx2YWt7KWZXeHkqJUx0WkJiUEdDTXApKnhFVgp6PXpYTjNhPFpaKiQ7
ODZLbSlLPVBqWWlTfHozcCNKRThlfVpmclgxRXomc1htIVJuZnRhNE1HUWN9UlVIc2J8PFQKemBN
PEVVbTYrU3RqX0c1PnIjaFBUWj5KOWw3U0RaUXMtNTJBTjA2aDJnUDVnezs4Xj1JMSUhcGNwcGdl
UkBBZ1c5CnpFQzwwME5EREM0LW1XQj0+ezRUeHFxKH0mbGxzciU5WCU3YTI+RE1CNTBCZDgtITRF
Wmo1IT50K1U5cShaZDZ1Ugp6PmxTRjBtXjEoPU9HLSNrO2lUeVpKRkUxSVlZcThTMk9IVSY8V30/
UUpmaVhAR0lpcyZgVnlYZlNTYTEmSllsKFgKekptUG1jO3YhfVF4QlQqQHcxUjJDSExBOW9yQyRm
ZSN0djhXRzlacFYrWVhoS0pDfiVsXjZAIXMzTC1yfVphQlhnCnpGKmgoa2hqLUVSbDFyWHVmajY4
Xl4kXjZjcSRESkwpbDIpd0ZjYEpjZ09wVUQlP1RDN2hXbmhkYzwkTFIpVDRqdAp6KCVLKVRsTWxD
Z0NibW81PlVeeE1oQFp0fnNncmZSUFd1RlFWKnZqNik1YElkbVJHMDw3IXlLKjBuaTgkTj8xTTIK
ejs9cm5qeTshMG9zRH18SyEzKlhwJFFJeHNSYUd0VGN7UUJ2bUcqWGJPUyE9NHlRXmhqQVB6emlJ
U3Z+XkxlQGloCno7P0h3fktGY3pLN0RhfnxuMkZYcW95QldueWV1MG1ybX4+WVQjVG0yJEExQkso
P18xNFBNPT4zbSFyZ3VqKnA5Wgp6WXxtSXtfPmc9SW90cTZIQm5eYCs4ZD1sNXQxPUkkNlVLO2cm
RnE4P2Zad15NMHRZYHxaaSVNLTclX2ZYVHYyZ0oKej9xJCZzaGwqJSZ2MzV2SFEyN1ZOQE4jP0N0
bn16RjNudHIkJEIhUjNmUn5XZ1IhMztfQ0NYOzAqQkpoc25nWGk+CnpmaH1BLUNBWVk9dzUhfEBQ
UWM1SEFWOHwjXykqXkFzQlBHdjclV1BRfDMqQ0lMZnduYnBuRkUyRkZBXzlQKjlsSwp6ZzdoYWVj
ZDc1Kk8+SiF4O00wY2JuM0teUHZVQXNwYWs9ZFk3WCl2dnQ/e2VUeWB0JmUxKyRpdGxteGRGa1pU
KCoKek4xKSFjdyYhNFA1NWhBZ19lSVY3LWVuNnQ7V1JaXmYleGhtenxlQXJ3Q0JUVD97bGNxYTMm
SWZ0T2tydzZFaX55Cnp7dXNvRU1BRXU/ZGVTV14+Rko7eDFLQnxOVGMxUVpZfVJxU3tkfkgpYnlu
aT1XI28yM14hME0kV3trdFApP0tpcwp6ViRFPT8xelAkaENXYG1QUSspbFdXKk9HcVVQQCQ7LVV9
R0V1end8RWRyfDQ0OHI+cTNJRERYV1AjUXImRmU5UWcKenFHRTZ0TyNiUyE4aXomWVhrTCQzWDIw
WWptaUVheT48PVRtNDxHdH5WYzx5R257cVhkR2VUSmQhNCVxYD90WlhzCnpyazdBdlJSemg4U15k
bV40NytkZWlKWih3aFpfKmB2cjcwbGB8IXJrRnhQO3BQe3s2Nmg7dVpabGAwQ3ZLU31nRQp6T2d1
YjFnbEFYOzRFVn40cGRqMGJQJiFAM256aHd7WFAxKTlvNy1PSTEmemBfaUk4OWcpM1dOJXBGZndD
TiRVLX4KelAjc2grbEtXNChzck1JLTx9fFpORGZSKE5aKH0yI1RaMzRkVDZmMG5ONEd7TkNXMX5N
IyhoOV9aZl4xIT8jI2BaCnpgfXYqMkpQI1ZJS0whTE0zYChtSGVLSWtzQ0U9SiRhblo9ME1wPD5F
fDkqanZRZERlJVk1cVNrelByQFphRzJVcQp6cGlALU5uezdzR3JQREx7cVN6b3NzKUokJDdEYmY0
JkFKOVNIQDBBWkRoJiM/SWVgSiVqOysqSnI2RjF1c3I1WlEKejAmMUFzSXEyKV9nWmhSMTBiV3E8
Rnp1TWQhPCpBOSFVZGxie2xMclJrfHk/TGItKzkzZipAe1U8THt3JnJVOShXCno7QVQ8dWt2Kjc4
c2FxRjVUSiFwRlo3PHsjRyRsRU81RjltSFY9eXZWWl9MfjxaKkV6R3lhblcwYi1AVFMrR2lueQp6
Q1YmMV5MKChQazhBWnIoSygjfnUwPTZ1JilmeyNpPmYxaiRqQWRoQFpvU0p7WlNfYkl5eG09UmNS
XlRFXjFMR0IKel5ySW1rSTBMbXVrNjxjRXZfZHBIODxgQEx7OXFGWG5aPDU0aXRwZFFLUk1mUFYy
eH1JOHlkQTJldW8tZDY9RXtmCnpwcz1aJHUoNSl7aXcmOUwyazxxQS1lLVVrZm92Knw5KVpNRVEm
YW85emg4bU9EZ09+cnspV3ZfdkwpO3k0c1lVdQp6ZiNUNVdUcXtJM2dJb0s2N0xiTzZwRmorSmBF
SzBGWVp7Y3dVWjtkX2cyNztaYFd8bHBhfFV0e0BaKGViPWohOSsKek1DLX11WXR4Zm5SenZjWUA8
Yks1TDVOQjZ7SUl0dlJXNGlPZCp8UyslJmt7Njs9Xzs3ZEwqeEhheGBtUFJ0RlNXCnplVGFtd3ko
RyE5ZT5jWWFUKXRzSlBlPkooQlg5eVV1SFYwWktieFVHbiptbCRPLT0xJW82KiNAaGQyMmczayRH
KQp6I0ppNFBwbU9QND9sbWhKVDY/SDFoU2o5Yj9PRGU0UH5TQGhPaVMkN2tRallpbVlJTkBvRSRK
Q0NmfmRuSE9od1UKenFHRHBRSikofiE9KT9aaGB5VTRsYU0lK087T2l3RUEwTUJ1I0dJfEhrNSVr
PlU4N3xVLX5wMyZPRkNpaz19M3ROCnpBfj1QVnNSU0Mta1pwX352dj9pOSViKWFfQFdoIWZ6OW40
fV43QENeQUlkNjhXKD1Tb2dLREFaWWlvfklgWj9GPAp6TGt2aWhxN3x+aSQkK0RXJlNhK0ErU21Z
RHElTUp5c2hXNn0qaXtLVlNXJlMlYEoocH14WUJEal8pNmhXVlBUPGYKekx4WC1YdzhvNXQ+Zm5q
KmNgKEo1ejZXOVFpa3MkMUZCI0RFR05+SUU5cW56Tmo5VEJwdnRxbUxmJXRmRD45dUthCnpTYGR1
VmVlfmM7NDxBMFBGKVpuflg+NlUoTUt5JXJXfWtie1VvRjtJWVl6VDU9bTFNM0AyWX1fcEtIazF1
czNXVgp6LXNgdVVJeFEhUGNkSHlHQ3BUcW15SnNDQzhqRiFRQjZETztlX2ReMyErWVUoT0Q3cll2
RklGclAtOUE3Xl92Q1IKemQlYkR8dDRUXm8wUWk1cl42QXI/dTB7M0U7OE09QzJMZTZgUihaTCgx
T2EmWVE4MDIpOz9DJkpla1VtYHsxO00tCnoyPyFyZDc1YnU9X202PXhWWSFCbGhWM2V+Wk9Zazk1
T3RyTS1KT1okeVN0ZjBAOXVTd0FtfUVGYF9sI1dzRD8ydAp6U1c4dDJuJl5pKW4hPjVfPDtVQnp4
Wj5obHJsQD9PZW4oVlI0fjdzYEklRWZkfEhqc3E8Y3A8bGE0OTgqSE5XQlUKellpazNAe0VLX3Ny
K3dVPW8jfWp1cnZ5ZCpgKFJ2fUp4SmdWKEZrPEZSPlFlKGZmbVBoRnF5d1U+Rys1N15uUWI8Cnor
dCFSLVZ+bzZBMW0wTGZlOGJ4Nj5nd2B4Zn1eQktHQWgtKD9pT1dCIyV1QH5RXn1RMl9oMF45aGpq
RTFEMjxDUQp6ZTlMP0pLRyp9T14mSExjK1lmWDh6c0BKRyhmQWJOKXpYbmprY2AmV193TD1oJV93
NGJWNkElJXxMU00xKjFZYTAKeiQ0OVF7eEZAZzJ6Nkk1ZiFxU1lja3heUHxEbFAlI1YpSSkoQ1c7
Vj1yU1RgUmtGdzY+IWMqT1djMiFlNVRRb1cyCnpzd0dxMzMzKkYmQiYpfCU2bDhfJXtgSGBpPTdL
bnFIdGY/cFE1bnF2K0xgdmQlcihoTUctNnJmIXtEazRfbHdnYgp6U2J1Pys+bm01cGZWNT9uVXpG
KWgpTjN7fTIlKUcjMzhASUxWVD88IXEoamdoWXRFZnlXOXJqUS1jSzxlZlMlaj4Kel5YQ3QyaUJU
WnBJfmNYOVpGV35+MT5RNWVGUEQpT3J+V2JfM0NyOEg+ZiF9NjY5KSRlJGxXWH4yPWBAYk5iVm4q
Cnp0c3Z4S3JeQEE0ZWokMGdPbG14X1VJSSlzJlNxSzlYMklSeW1DNEc9P3MkQXZOQWRGV2dWdXNv
R3dgRmF2OWFvPwp6fDNDITBZNGw5S1pyblpEbjVhdGFTKD9SIyFmSiFSTldmczVrZ0JZM1dZayp3
ck9mKVVfaGQyWm1qK0pCO3hRVTsKel4kaVJOeVg0ZCsqQEoxfldMSzZqY01nN2Ypa2g9bk5xY3ky
LUdiYyR0Qk50bnZ3MkJocCE0YWlVUTBvJCY+K1ZSCnotQUVVKSgrLXt0MWJIeSpGWlRDNExDQyhr
WU1jMj5pcD4jKmtvIU1oSzhIQ29lUHEqQlhlMVNHVHltJmBuWk9LYgp6fEZFSX42flRQPnYpM1V0
dis9cE1eYj0hT3UzWHVnWmZHYmtoc2xpZ0YwV3xadT9EdiEkUUA/TiZGQlFuPT1yYjQKelRsY3JW
LW5vNHslWGErYTxZY1BPOVVzfShDeShnSFklKXBqVUVUT3Y8dUcqPWJBQ1hMSyVWK2FpV3dsJG90
QT1XCnpYPXljdlJBPVpyazlecDVJfFdqPVghTnlUUk5WZDx4OzQ2QUAtTEFaOVpreH1mTHV6QnVV
R0hLSkdTVH5IZUl8WQp6O3VteWR1PXl7UmYxSipjTzBLTXxLIyZOQDd6ciopNCZSRk1oajw1ZDBF
QD4oV256WmNtdGhNc1VZWW9FZFJwMncKejUyTWQheEx5M0s5Q0VUOUl9JHFoKnhhNnFZaUppcyQr
THJiTCV6ZmclUlkmb0IlWFlsO2V9KWJeYlJnRHZ4ZDsqCnpfI2VsUjJnQUgra2luYVFQT1ZZQF5R
Z3NKVUsoeUltaXl8KEk+Z2ZjemQhfSZZRi1hOWdHQntoUnQ5I3Y4Kio3Ugp6V2dAI3V2WGVBI1RN
e2wleklISnhnTm0yM1l9MjZta1h3K1BzPF9TMXshWnlET2oxX1p6Tj18eEhiQXtYMHk4TGQKekYl
JXUwKiFiKU1iemxIP2dnRz8zaz9sQCRfckQ9MkJOQEBtX1clckkjZT4oNTRwSXY9KlMoM1pWK1Z3
eXU0eD5QCnojOz5xUSVOX2BTQkQxbko8UU5sNmMjRyhiVyk+eXJlKmphbmpJLTRZaU5sM1Ulby1z
fmNmN2YpNiVjTmpXUl8yYgp6ZHZgQEJWNmtMMl5WV084b0hhNHdAQnR4SiUyWVc/SS1kVGJ0ZHk2
dD9YanRydlA/SnVkalNUeUsyRXk5cDJ2a0AKekNSVilobV5aQF8qZipCVHUmcVNYOV4tZDE/e3sz
fl9vQnY3ZlcrbHlWRTY9JmUpcGpFJkc/QWtXZihXWjt1OTd7Cnp1bileMEdGZFlfOSZkdXBzN2Jt
Ulh2bkZpSnlPbmNkI0VtP2RUdylMcUp2RVMtWWcyRTQrLVl+dWppTXoxTzU9dAp6QTdtS0d3aVhz
dVlnb2RtODEyWk0qdEgwZDt6UzREOEQ/JF5RQXFTQmJjQGY3P0pIS0FGRHM4akFybztTQV8kUDwK
emZjQzthQmd0WSZiRmFTNCN2K3c3dmV4UDtyWWtZWVR2QlBzWENZZnNTYXwjbjhLQ3FJRXJpZGdY
Xzd5UyZ0KllXCnpUYXZ4OyUxVGQqaHttPDd0WWRrWC04a0RtcUFfYTItU0wjUzMlZGFFe0FLY0Jm
Z3U9OFBmdFZUKH4kPyRedWJ6eQp6SC1EJFZDbHdkNyo7a0IkR3kyNmtlMktGcXVgS3V6V2dteztt
dT4kRiR6Z2x3Njc9Tz0pRW81dHd3Jlhfc0ojTTgKekEjPHw2ekZyOSNjKUFmYms5cmtBQmp6O00w
Iy1eO1I1Wks7PzslNzdpO0lpWFVeTnU0TmQ4czB2dCQtOXllTz5GCnpJVSNWcnY7RHAkWFBkLWk4
UHlheXAzK3BAQngzcUBjUjYpdURYYzs7eDR8MUJWb31qUmtiVGZFUFV4fXtkZnpreAp6K2NVbldZ
YktJVGI0MjwmczloSGcyMnNLMTxLbktMSDQ5OTBXXylSMGt1aFpRaFQ1NDI2JkR1NWxDeVBEPTBp
ZU4KeitlfGVWQmtQV2pBTXg8MHFFc2U0ajxtR240Iyl5d1NiX0g8UkpMPWBTPnpqSSg2KXpvbCle
aitodnlCYWY0alJXCnp8TCR2SXswTmI8JjNMQUV1eiUjWCFRez1ePF48d3opKUQtRmk+ISRDeEgh
WSpFVjhQPVdtMU81YDtJY2dzVDtkegp6Ryg3YEAxVE4tTDtfcXNuTX05aVp2Oz1FSVF8XjAhVn0l
RHpFcGRSP3FZVD42ZnNHe3d0fUBaRWJHMEdNbVB3ZXkKemc4SGZrMmg0QihzRWZteyQoWCRgUTxT
KzBEM09tZnN6aVMxRl9PT3U+UV5qdWlVYn5YMmZrQyMmMWJjYEtCZWNICno8ZHFXTSU0ZiljN0dR
dz1nYj1mQmFsZk5LdEZaOV8rSG1YcVklOXxlcVZkZzUyPyNTRitfO0R2OVVFKHNjOHRMSwp6Nkc9
VU1KPntTblNGcS1sLTQ5IzNYMFItUDB3RnhnOFE+QmxlMVlrZWppcGo7M0U+U2s4ZExXMTRZdz9I
MGhQXz0KYWIzKDQoX1pzYStEKShWWTl9Z3xCQ1JaWTM4dSZqbCNfN05TCgpsaXRlcmFsIDAKSGNt
Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVz
b3VyY2VzL2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291
cmNlcy9pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmI5ZjA0MGZkMGE3ZjU3ZTRjMjM1MDlhMDhi
NzFkMjM5MTYwMzVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJwZXJmL3Jlc291cmNlcy9pZnJhbWUuaHRtbApAQCAtMCwwICsxLDYgQEAKKzxodG1sPgorPGhl
YWQ+Cis8Ym9keT4KK1Rlc3QgZnJhbWUuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY5OTgxOGYyNjFmYTJjZDM2YzljYWIx
ODIzZjYxNDdjMTE0ZGI5NWMuLjk1MTlhYTQ2MDM0OTk4NDdlNGZmZTM0NGQ4OTFlMzgxYjY1NjFk
MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNTA2
LDYgKzE1MDYsNyBAQCB3ZWJraXQub3JnL2IvOTk2OTEgZ2FtZXBhZC9nYW1lcGFkLW91dC1vZi1y
YW5nZS1jcmFzaGVyLmh0bWwgWyBGYWlsdXJlIF0KIAogIyBSZXNvdXJjZSBUaW1pbmcgaXMgbm90
IGVuYWJsZSB5ZXQsIHNraXAgaXQuCiB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzYxMTM4IGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcgWyBTa2lwIF0K
IAogIyBFbnRlcmluZyBpbnRvIGZ1bGwgc2NyZWVuIHBsYXliYWNrIG1vZGUgZmFpbHMgd2hlbiB0
cmlnZ2VyZWQgYnkgY29udGV4dCBtZW51CiBCdWcoRUZMKSBtZWRpYS9jb250ZXh0LW1lbnUtYWN0
aW9ucy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDkxZTZhYmM0OWIxZWVkMGQ1ODMyMjNjNjUzYTkwZjlkYmJmOTIyOTUuLjQ3
MjEwZmIyYTMwODU2YmRjMWE0OGZjZjI4YjkzNjcxNDI4ZjhkZjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTM1LDYgKzExMzUsNyBAQCB3ZWJraXQu
b3JnL2IvOTgyNTcgZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1s
IFsgRmFpbHVyZSBQYXNzCiAKICMgUmVzb3VyY2UgVGltaW5nIGlzIG5vdCBlbmFibGUgeWV0LCBz
a2lwIGl0Lgogd2Via2l0Lm9yZy9iLzYxMTM4IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi82MTEzOCBo
dHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nIFsgU2tpcCBdCiAKICMgRmxhY2t5IG9u
IE1vdW50YWluIExpb24gUmVsZWFzZSwgZmFpbHMgZXZlcnl3aGVyZSBlbHNlLgogZmFzdC9jc3Mv
c3RpY2t5L3N0aWNreS10b3Atem9vbWVkLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc1ZGI3YTNhMDc1YjcyMGI1
M2JhMDVjY2YyNzkwMDNlZjk0ZmFmNDEuLjlkMzM1NDNjNWI3Y2JhOTJlMzM0ZDhlZGRlNzBlOGNk
ZGUwMzAxMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDc3LDYgKzQ3Nyw3IEBAIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rlc3RzL3czYy93ZWJwZXJm
L3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcKIAogIyBSZXNvdXJjZSBUaW1pbmcgaXMgbm90
IGVuYWJsZSB5ZXQsIHNraXAgaXQuCiB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZword2Via2l0Lm9yZy9iLzYx
MTM4IGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcgWyBTa2lwIF0KIAogIyBNaXNz
aW5nIGV2ZW50U2VuZGVyLnNjaGVkdWxlQXN5bmNocm9ub3VzS2V5RG93bigpIGltcGxlbWVudGF0
aW9uCiBmYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL2lubGluZS1ldmVudC1saXN0ZW5lci5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQ2ZWQyNGY0
YzVhOTYxMTBhZDM2YzdkMmFiMDk4ZGE2NGU5ZTcwOTkuLjEzYmJhOTJiNGE0ZjMxZDVjODE3NzJi
N2M2ZGRjYTgxMjdlYjgxNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yNjE2LDYgKzI2MTYsNyBAQCB3ZWJraXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nCiAKICMgUmVzb3VyY2Ug
VGltaW5nIGlzIG5vdCBlbmFibGUgeWV0LCBza2lwIGl0Lgogd2Via2l0Lm9yZy9iLzYxMTM4IGh0
dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcKK3dl
YmtpdC5vcmcvYi82MTEzOCBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nIFsgU2tp
cCBdCiAKICMgYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEyMzUKIGNzczMvZmls
dGVycy9jdXN0b20td2l0aC1hdC1ydWxlLXN5bnRheAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277861</attachid>
            <date>2016-05-01 07:54:02 -0700</date>
            <delta_ts>2016-05-01 07:54:02 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-117065-20160501075436.patch</filename>
            <type>text/plain</type>
            <size>76434</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJiYjFkMWUwZTM3NzY1
OTJjZmNjYjBiYjNhYWU4MTBjNTc1MDJjZS4uNGQyYmM0Yzc5YWQ2MjRmNGIzN2E5ZWNhMmM0NDhm
MzYyZGQyZDQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxNi0wNS0wMSAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IGluaXRpYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzA2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2Ut
dGltaW5nL2luaXRpYXRvci10eXBlLWNzcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWlmcmFtZS5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10
eXBlLWltZy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2Ut
dGltaW5nL2luaXRpYXRvci10eXBlLWxpbmsuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1zY3JpcHQuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3It
dHlwZS14bWxodHRwcmVxdWVzdC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3Nz
L0NTU0ZvbnRGYWNlU291cmNlLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250
KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldCk6CisgICAgICAgICogY3NzL0NTU0lt
YWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6Y2FjaGVkSW1h
Z2UpOgorICAgICAgICAqIGNzcy9DU1NJbWFnZVZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpD
U1NJbWFnZVZhbHVlOjpzZXRJbml0aWF0b3IpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9TdHls
ZVJ1bGVJbXBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlSW1wb3J0OjpyZXF1
ZXN0U3R5bGVTaGVldCk6CisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6cmVxdWVzdFNjcmlwdCk6CisgICAgICAgICogaHRt
bC9IVE1MQm9keUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50
Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAg
ICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5r
RWxlbWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5u
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJlbG9hZFNjYW5uZXI6OmVtaXRSdWxlKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VG9rZW5QcmVsb2FkU2Nhbm5lcjo6aW5pdGlhdG9yRm9yKToKKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBy
ZWxvYWRSZXF1ZXN0OjpQcmVsb2FkUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdGFydExvYWRp
bmdNYWluUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2Fk
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Omlz
WE1MSHR0cFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAq
IGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByZWxvYWRJZk5lZWRl
ZCk6CisgICAgICAgICogbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkYWJsZUxvYWRlck9wdGlvbnM6OlRocmVhZGFibGVMb2FkZXJPcHRpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVMb2FkZXJPcHRpb25zOjppc29sYXRlZENvcHkp
OgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjpzdG9yZVJlc291cmNlVGltaW5nSW5pdGlhdG9ySW5mb3JtYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWREb25lKToKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpJbml0aWF0b3JJbmZvOjpJbml0aWF0b3JJbmZv
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpJbml0aWF0b3JJbmZv
Ojppbml0aWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6Oklu
aXRpYXRvckluZm86OnN0YXJ0VGltZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OnNldEluaXRpYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlUmVxdWVzdDo6aW5pdGlhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlUmVxdWVzdDo6aW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycy5oLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9yOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcjo6aW5pdGlhdG9yTmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3I6OmlzU2FmZVRvU2VuZFRv
QW5vdGhlclRocmVhZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9yczo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk6
IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMpOiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVu
dFJlZmVyZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudFJlZmVy
ZW5jZTo6bG9hZCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpzdGFydExvYWRpbmcpOgorICAgICAgICAqIHBhZ2Uv
UGVyZm9ybWFuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6OmFkZFJlc291
cmNlVGltaW5nKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6CisgICAgICAgICogcGFn
ZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmc6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6aW5pdGlhdG9yVHlwZSk6Cisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmg6CisgICAgICAgICogcGxh
dGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRHbG9i
YWxEYXRhOjpUaHJlYWRHbG9iYWxEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9i
YWxEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRHbG9iYWxEYXRhOjpjYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFn
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcXVl
c3RJbWFnZVJlc291cmNlKToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQpOgor
ICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Vz
ZUVsZW1lbnQ6OnVwZGF0ZUV4dGVybmFsRG9jdW1lbnQpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVx
dWVzdCk6CisKIDIwMTYtMDQtMzAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVwZGF0ZSBYTUxIdHRwUmVxdWVzdCB0byB1c2UgZW51bSBjbGFzcyBpbnN0ZWFkIG9m
IHN0cmluZyBmb3IgZW51bWVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzhhMGIxZjYx
MTM5ZTZjN2QwMmI1OGU1NmYzYjk1MzRkMTAwOTlhNC4uOTc5ZmM2ODJkZmVkM2JmYWM2NjZkZjYy
NTA2MDUzZjRhMWRlZDNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5NjEsNyArMTk2MSw2
IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VI
YW5kbGUuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAogICAg
IGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCi0gICAgbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNWR0RvY3VtZW50LmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudFJl
ZmVyZW5jZS5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMzNk
OGQxNWM1NDc3ZTcxOGUxMWMxNDZmMmM2OTI5MTQxNWYwNGJiLi44YTViMzEwYTgwYzQxNWYwZGQx
NmU5ZDAxZjg2NjVkM2E5ZTg0OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTAxLDggKzI1MDEsNiBAQAogCQk2QjY5M0Ez
NDFDNTFBOTVEMDBCMDNCRUYgLyogUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI2OTNBMzMxQzUxQTk1RDAwQjAz
QkVGIC8qIFJlc291cmNlTG9hZE9ic2VydmVyLmNwcCAqLzsgfTsKIAkJNkM0Qzk2REUxQUQ0NDgz
NTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNEM5NkRBMUFENDQ4MzUwMDM2NUE1
MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5jcHAgKi87IH07CiAJCTZDNEM5NkRGMUFE
NDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtQ29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0Qzk2REIxQUQ0NDgzNTAwMzY1
QTUwIC8qIEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmggKi87IH07Ci0JCTZDNjM4ODk1QTk2
Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzYzODg5M0E5NkNDRUU1
MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTZDNjM4ODk2QTk2Q0NFRTUw
QzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNjM4ODk0QTk2Q0NFRTUwQzhD
OTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLzsgfTsKIAkJNkNE
REU4RDAxNzcwQkIyMjAwMTZFMDcyIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM3MEE4MTQxNzcwN0M0OTAwOUE0
NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTZFMEU1NjlCMTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJv
dW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZFMEU1Njk5MTgzQkZGRTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmNwcCAqLzsg
fTsKIAkJNkUwRTU2OUMxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFMEU1NjlBMTgzQkZG
RTYwMEUwRThENSAvKiBGbG9hdFJvdW5kZWRSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMTE0LDggKzEwMTEyLDYgQEAKIAkJNkI2OTNB
MzMxQzUxQTk1RDAwQjAzQkVGIC8qIFJlc291cmNlTG9hZE9ic2VydmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlTG9hZE9ic2VydmVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM0Qzk2REExQUQ0NDgzNTAwMzY1QTUwIC8qIEpT
UmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTUmVhZGFibGVTdHJlYW1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkM0Qzk2REIxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJl
YW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVhZGFi
bGVTdHJlYW1Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZDNjM4
ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZDNjM4ODk0QTk2Q0NF
RTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0
aWF0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM3MEE4MTQxNzcwN0M0
OTAwOUE0NDZFIC8qIFJlZ2lvbk92ZXJzZXRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZWdpb25PdmVyc2V0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkUwRTU2OTkxODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxvYXRSb3VuZGVkUmVjdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFMEU1NjlBMTgzQkZGRTYwMEUwRThENSAv
KiBGbG9hdFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZs
b2F0Um91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDY0LDgg
KzIxMDYwLDYgQEAKIAkJCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCAqLywKIAkJCQk1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmNwcCAqLywKIAkJCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmggKi8sCi0JCQkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5NDZDIC8q
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovLAotCQkJCTZDNjM4ODkzQTk2
Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggKi8sCiAJ
CQkJQkNCMTZDMEEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgKi8sCiAJCQkJ
QkNCMTZDMEIwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5oICovLAogCQkJCUQwQkM1
NDQ4MTQ0M0FDNEEwMEUxMDVEQSAvKiBDYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmggKi8sCkBAIC0y
NTE5Nyw3ICsyNTE5MSw2IEBACiAJCQkJRTQ3QjRCRTgwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hl
ZFJlc291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMyQTA5NzlDM0JEMDA0
Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwODFF
M0UwM0NGRjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTZDNjM4ODk1QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMyNDA5NzlDM0JEMDA0Njc3
NDEgLyogQ2FjaGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Q1MzM2NDBFRDY4NDg5
MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUQwQkM1NDQ5MTQ0M0FDNEEwMEUxMDVEQSAvKiBDYWNoZWRTdHlsZVNoZWV0Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTI5MTQ4LDcgKzI5MTQxLDYgQEAKIAkJCQlFNDdCNEJFOTBFNzEy
NDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3VyY2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUwODFFM0MzM0NFNTgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNkM2Mzg4OTZBOTZDQ0VFNTBDOEM5
NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNCMTZDMjMwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBMTA0RjI0MzE0QzcxRjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCNTMzNDcxNzE3RDBBMTAwRjIwNUY5IC8qIENh
Y2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKaW5kZXggNWMwZWY0NDM2YzViN2YwMjY3ZTgwZTg3
NDQyNGE2NTk1MDY1Y2I4MS4uYjg5Yjg4ZWRiZmI0OTFkOWEzNjI1MjI1MjVjYmFkZDFmZWRhZGMz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCkBAIC00Niw2ICs0
Niw3IEBACiAjaW5jbHVkZSAiU1ZHRm9udEZhY2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFt
ZXMuaCIKICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZm
ZXIuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKaW5kZXggMTRmMmIxNjU5ZjJkNTZlNDFkYWY5M2M5NDE1
YjdhMDI5NWQ2MTQ4Ny4uMzA4NWYwYWNiYjM5ZmFlYjIzZTgwNDNmYWY4NTdmZWEyMTEzMTAwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMjgsNyAr
MjgsNiBAQAogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJOb2RlLmgi
CkBAIC0xMDcsNyArMTA2LDcgQEAgQ2FjaGVkRm9udCogQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2Fj
aGVkRm9udChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgaXNTVkcsIGJvb2wKICAgICBvcHRpb25z
LnNldENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24oaXNJbml0aWF0aW5nRWxlbWVudElu
VXNlckFnZW50U2hhZG93VHJlZSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNr
aXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5
Q2hlY2spOwogCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291cmNlKSksIG9wdGlvbnMpOwotICAgIHJl
cXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3Mp
OworICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cjo6Q1NTKTsKICAgICBtX2NhY2hlZEZvbnQgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKS5yZXF1ZXN0Rm9udChyZXF1ZXN0LCBpc1NWRyk7CiAgICAgcmV0dXJuIG1fY2FjaGVkRm9u
dC5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAppbmRleCA4
NDlkODBmZmRiZmMxYTI3ZGNmYjdkODUzOWI1MWJiMDNiZmE3OTJhLi43YjQyNzA5MGJkZjY2NTcx
NTc4NDQyODEzMGNhYWYyYjVhYTRhNGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0
VmFsdWUuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdC5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTExNyw3ICsxMTYsNyBAQCBTdHlsZUNhY2hlZElt
YWdlU2V0KiBDU1NJbWFnZVNldFZhbHVlOjpjYWNoZWRJbWFnZVNldChDYWNoZWRSZXNvdXJjZUxv
YWRlciYgbG9hZAogICAgICAgICAvLyBhbmQgYW55IENTUyB0cmFuc2Zvcm1zLiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgKICAgICAgICAgSW1hZ2VXaXRoU2Nh
bGUgaW1hZ2UgPSBiZXN0SW1hZ2VGb3JTY2FsZUZhY3RvcigpOwogICAgICAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJM
KGltYWdlLmltYWdlVVJMKSksIG9wdGlvbnMpOwotICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRv
cihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzKTsKKyAgICAgICAgcmVxdWVz
dC5zZXRJbml0aWF0b3IoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yOjpDU1MpOwogICAg
ICAgICBpZiAob3B0aW9ucy5yZXF1ZXN0T3JpZ2luUG9saWN5KCkgPT0gUG90ZW50aWFsbHlDcm9z
c09yaWdpbkVuYWJsZWQpCiAgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJv
bChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgZG9jdW1lbnQtPnNlY3VyaXR5T3Jp
Z2luKCksIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscygpKTsKICAgICAgICAgaWYgKENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci5yZXF1ZXN0SW1h
Z2UocmVxdWVzdCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAppbmRleCBkMGI2
Mjc0N2YyNDNiOTJiN2E4MGMwOTc0YzkzNDY2ZTgxNzQ0MzNkLi4wODA0MWJmMDZhMThjMzgzODZj
ZTA0YjlmMjUzNjQ1ODEyZDYzNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3Bw
CkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5o
IgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRl
ICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTc3LDEwICs3Niw3IEBAIFN0eWxlQ2FjaGVkSW1hZ2UqIENT
U0ltYWdlVmFsdWU6OmNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNv
bnN0CiAgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKICAgICAgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci5kb2N1bWVudCgpLT5j
b21wbGV0ZVVSTChtX3VybCkpLCBvcHRpb25zKTsKLSAgICAgICAgaWYgKG1faW5pdGlhdG9yTmFt
ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
cmVxdWVzdC5zZXRJbml0aWF0b3IobV9pbml0aWF0b3JOYW1lKTsKKyAgICAgICAgcmVxdWVzdC5z
ZXRJbml0aWF0b3IoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yOjpDU1MpOwogCiAgICAg
ICAgIGlmIChvcHRpb25zLnJlcXVlc3RPcmlnaW5Qb2xpY3koKSA9PSBQb3RlbnRpYWxseUNyb3Nz
T3JpZ2luRW5hYmxlZCkKICAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9s
KHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBsb2FkZXIuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVZhbHVlLmgKaW5kZXggMDBhZDQ0MTU0MzVlZTE1Y2ZmZDI1Yzg0NTZjMzhjNmUzODBl
YmVkMy4uYThjNWVjMzFiN2MyY2U4MWRiNDQwODU1NDJhODQ3MDY1YWQxNzQ5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5oCkBAIC01NSw4ICs1NSw2IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wga25vd25Ub0JlT3BhcXVlKGNvbnN0IFJlbmRlckVsZW1lbnQqKSBjb25zdDsKIAotICAgIHZv
aWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgeyBtX2luaXRpYXRvck5h
bWUgPSBuYW1lOyB9Ci0KIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ1NTSW1hZ2VWYWx1ZShjb25z
dCBTdHJpbmcmIHVybCk7CiAgICAgQ1NTSW1hZ2VWYWx1ZShjb25zdCBTdHJpbmcmIHVybCwgU3R5
bGVJbWFnZSopOwpAQCAtNjUsNyArNjMsNiBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3VybDsK
ICAgICBSZWZQdHI8U3R5bGVJbWFnZT4gbV9pbWFnZTsKICAgICBib29sIG1fYWNjZXNzZWRJbWFn
ZTsKLSAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0b3JOYW1lOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9y
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAppbmRleCBmNTY3
OTU2MDE4MWY5ZWZhZmU1YTlmMTMyYTFiMDkxNDQwZmM1MDEzLi5mMWVhMmE0NGQwZWYyOTY5MGEy
OTVjZmRiZWUzZWZkZWNjMTA2OGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlSW1wb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0
LmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCkBAIC0xMTUsNyArMTE0LDcgQEAgdm9pZCBT
dHlsZVJ1bGVJbXBvcnQ6OnJlcXVlc3RTdHlsZVNoZWV0KCkKICAgICAvLyBGSVhNRTogU2tpcCBD
b250ZW50IFNlY3VyaXR5IFBvbGljeSBjaGVjayB3aGVuIHN0eWxlc2hlZXQgaXMgaW4gYSB1c2Vy
IGFnZW50IHNoYWRvdyB0cmVlLgogICAgIC8vIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NjY2Mz4uCiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KGFic1VSTCksIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgp
KTsKLSAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzKCkuY3NzKTsKKyAgICByZXF1ZXN0LnNldEluaXRpYXRvcihDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3I6OkNTUyk7CiAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCiAgICAgICAgIG1fY2Fj
aGVkU2hlZXQtPnJlbW92ZUNsaWVudCgmbV9zdHlsZVNoZWV0Q2xpZW50KTsKICAgICBpZiAobV9w
YXJlbnRTdHlsZVNoZWV0LT5pc1VzZXJTdHlsZVNoZWV0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggZjljNzBlMzI2OTdjN2RhMjIxYzk0NGJhN2E3OTcyZDIxY2UxYmNl
Ny4uODEyYzYxMzgzMzNmMDhhOGZlYWIyMDJmNjA2ZDRhOGQyYmRlMDA3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjcxLDcgKzI3MSw3IEBAIGJvb2wgU2NyaXB0RWxl
bWVudDo6cmVxdWVzdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZVVybCkKICAgICAgICAgICAg
IHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVx
dWVzdCgpLCBtX2VsZW1lbnQuZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLCBhbGxvd0NyZWRl
bnRpYWxzKTsKICAgICAgICAgfQogICAgICAgICByZXF1ZXN0LnNldENoYXJzZXQoc2NyaXB0Q2hh
cnNldCgpKTsKLSAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoJmVsZW1lbnQoKSk7CisgICAg
ICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKFN0cmluZyhlbGVtZW50KCkubG9jYWxOYW1lKCkpKTsK
IAogICAgICAgICBtX2NhY2hlZFNjcmlwdCA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmNhY2hlZFJl
c291cmNlTG9hZGVyKCkucmVxdWVzdFNjcmlwdChyZXF1ZXN0KTsKICAgICAgICAgbV9pc0V4dGVy
bmFsU2NyaXB0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJv
ZHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcApp
bmRleCBlMzQ2OGEwNDY2ZGI3YjBmZDA5YmNkZGI4M2IxMzhhZDJiYzY5NDFlLi42ZTU0MWQ3Yzg2
MTU2ZmFiOTkwZGU5Mzg0N2FhMjI1NTZmY2RmMmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Qm9keUVsZW1lbnQuY3BwCkBAIC04MSw3ICs4MSw2IEBAIHZvaWQgSFRNTEJvZHlFbGVtZW50Ojpj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYK
ICAgICAgICAgU3RyaW5nIHVybCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh2
YWx1ZSk7CiAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgYXV0byBp
bWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwo
dXJsKS5zdHJpbmcoKSk7Ci0gICAgICAgICAgICBpbWFnZVZhbHVlLmdldCgpLnNldEluaXRpYXRv
cihsb2NhbE5hbWUoKSk7CiAgICAgICAgICAgICBzdHlsZS5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0
eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgV1RGTW92ZShpbWFnZVZhbHVlKSkpOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIGlmIChuYW1lID09IG1hcmdpbndpZHRoQXR0ciB8fCBuYW1lID09
IGxlZnRtYXJnaW5BdHRyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAK
aW5kZXggY2YzNzQzZDViY2UyOWY1NmU5NGE2ODQ5MmMzMzc2Y2UzOWI1NjkwZC4uMGUzNDFjZDBh
NzBmZGFmOGIzMjQ4YTMyZDRmMzdiNGVmNDlhMWVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExpbmtFbGVtZW50LmNwcApAQCAtMjU1LDcgKzI1NSw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50
Ojpwcm9jZXNzKCkKICAgICAgICAgaWYgKCFpc0FjdGl2ZSkKICAgICAgICAgICAgIHByaW9yaXR5
ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHk6OlZlcnlMb3c7CiAgICAgICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVy
bCkpLCBjaGFyc2V0LCBwcmlvcml0eSk7Ci0gICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRo
aXMpOworICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihTdHJpbmcobG9jYWxOYW1lKCkpKTsK
IAogICAgICAgICBpZiAoZG9jdW1lbnQoKS5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dT
dHlsZVdpdGhOb25jZShmYXN0R2V0QXR0cmlidXRlKEhUTUxOYW1lczo6bm9uY2VBdHRyKSkpIHsK
ICAgICAgICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAppbmRleCA5YTY0YzUxYjYy
MDhlMzYwNDA0MmYxZGNhYjBmNWJiNzhmZWMxNzY1Li5lNzE3ZDA3Y2Q5MzZjZGZiM2Q4ODZlMjJi
N2Q3OTZjNWFkZTQyMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9D
U1NQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NT
UHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBDU1NQcmVsb2FkU2Nh
bm5lcjo6ZW1pdFJ1bGUoKQogICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKICAgICAgICAg
ICAgIFVSTCBiYXNlRWxlbWVudFVSTDsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHBhc3NlZCBp
biBmcm9tIHRoZSBIVE1MUHJlbG9hZFNjYW5uZXIgdmlhIHNjYW4oKTogd2l0aG91dCBpdCB3ZSB3
aWxsIGdldCByZWxhdGl2ZSBVUkxzIHdyb25nLgogICAgICAgICAgICAgLy8gRklYTUU6IFNob3Vs
ZCB0aGlzIGJlIGluY2x1ZGluZyB0aGUgY2hhcnNldCBpbiB0aGUgcHJlbG9hZCByZXF1ZXN0Pwot
ICAgICAgICAgICAgbV9yZXF1ZXN0cy0+YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8UHJlbG9hZFJl
cXVlc3Q+KCJjc3MiLCB1cmwsIGJhc2VFbGVtZW50VVJMLCBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5
bGVTaGVldCwgU3RyaW5nKCkpKTsKKyAgICAgICAgICAgIG1fcmVxdWVzdHMtPmFwcGVuZChzdGQ6
Om1ha2VfdW5pcXVlPFByZWxvYWRSZXF1ZXN0PihDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3I6OkNTUywgdXJsLCBiYXNlRWxlbWVudFVSTCwgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hl
ZXQsIFN0cmluZygpKSk7CiAgICAgICAgIH0KICAgICAgICAgbV9zdGF0ZSA9IEluaXRpYWw7CiAg
ICAgfSBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShydWxlLCAiY2hhcnNl
dCIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRT
Y2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5l
ci5jcHAKaW5kZXggM2YyYTY1ZWRkOTkwM2FhNmMwZTBjMzNhOGU5MDk3NTg5ZWFmMzA3ZS4uNTVl
MDlhNTdjNWYwY2M0ODg4MWJjMjRhZTVhOTg0M2I4OTU4YTkyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0yOCw2ICsyOCw4
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTFByZWxvYWRTY2FubmVyLmgi
CiAKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAi
SFRNTFNyY3NldFBhcnNlci5oIgpAQCAtODcsOSArODksOSBAQCBTdHJpbmcgVG9rZW5QcmVsb2Fk
U2Nhbm5lcjo6aW5pdGlhdG9yRm9yKFRhZ0lkIHRhZ0lkKQogICAgIGNhc2UgVGFnSWQ6OlRlbXBs
YXRlOgogICAgIGNhc2UgVGFnSWQ6Ok1ldGE6CiAgICAgY2FzZSBUYWdJZDo6UGljdHVyZToKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAidW5rbm93biI7Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiAidW5rbm93biI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxSZXNvdXJjZVByZWxvYWRlci5oCmluZGV4IGJjMmY0ZmE2NTkxN2M0NmE4OWM5MmM4NzM2MDRh
MmRmNjgyNDRiZGQuLjBlMjY4NDgzZjZhMTBmOGYxYjFmNWM4ZDI3MDBlZTU5NTQwNDljNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRl
ci5oCkBAIC0yOCwxMyArMjgsMTQgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQcmVsb2FkUmVxdWVzdCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUHJlbG9hZFJlcXVlc3QoY29u
c3QgU3RyaW5nJiBpbml0aWF0b3IsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkwsIGNvbnN0IFVS
TCYgYmFzZVVSTCwgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgcmVzb3VyY2VUeXBlLCBjb25zdCBTdHJp
bmcmIG1lZGlhQXR0cmlidXRlKQorICAgIFByZWxvYWRSZXF1ZXN0KGNvbnN0IENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvciYgaW5pdGlhdG9yLCBjb25zdCBTdHJpbmcmIHJlc291cmNlVVJM
LCBjb25zdCBVUkwmIGJhc2VVUkwsIENhY2hlZFJlc291cmNlOjpUeXBlIHJlc291cmNlVHlwZSwg
Y29uc3QgU3RyaW5nJiBtZWRpYUF0dHJpYnV0ZSkKICAgICAgICAgOiBtX2luaXRpYXRvcihpbml0
aWF0b3IpCiAgICAgICAgICwgbV9yZXNvdXJjZVVSTChyZXNvdXJjZVVSTCkKICAgICAgICAgLCBt
X2Jhc2VVUkwoYmFzZVVSTC5pc29sYXRlZENvcHkoKSkKQEAgLTU1LDcgKzU2LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBVUkwgY29tcGxldGVVUkwoRG9jdW1lbnQmKTsKIAotICAgIFN0cmlu
ZyBtX2luaXRpYXRvcjsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IgbV9pbml0
aWF0b3I7CiAgICAgU3RyaW5nIG1fcmVzb3VyY2VVUkw7CiAgICAgVVJMIG1fYmFzZVVSTDsKICAg
ICBTdHJpbmcgbV9jaGFyc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKaW5kZXggMDNjMWNiMDAxODg1YzQzMzA5ZTVhZTJhMTU3ZTcxMTE2ZGVhYzM2Ny4uYjk1Zjhm
OGM0ZDg4Y2E5MDYwMzdiZjZmMGJjYWNlZWFmOTI0MDFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xNDk5LDcgKzE0OTksNyBAQCB2b2lkIERvY3VtZW50
TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2UoKQogCiAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFJlc291cmNlTG9hZGVyT3B0aW9ucz4gbWFpblJlc291cmNlTG9hZE9wdGlvbnMoU2Vu
ZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3JlZENyZWRlbnRp
YWxzLCBBc2tDbGllbnRGb3JBbGxDcmVkZW50aWFscywgQ2xpZW50UmVxdWVzdGVkQ3JlZGVudGlh
bHMsIFNraXBTZWN1cml0eUNoZWNrLCBVc2VEZWZhdWx0T3JpZ2luUmVzdHJpY3Rpb25zRm9yVHlw
ZSwgSW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlv
bjo6RG9Qb2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5n
LCBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcpOwogICAgIENhY2hlZFJlc291cmNlUmVxdWVz
dCBjYWNoZWRSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCwgbWFpblJlc291cmNlTG9hZE9wdGlvbnMp
OwotICAgIGNhY2hlZFJlc291cmNlUmVxdWVzdC5zZXRJbml0aWF0b3IoKnRoaXMpOworICAgIC8v
IGNhY2hlZFJlc291cmNlUmVxdWVzdC5zZXRJbml0aWF0b3IoKnRoaXMpOwogICAgIG1fbWFpblJl
c291cmNlID0gbV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+cmVxdWVzdE1haW5SZXNvdXJjZShjYWNo
ZWRSZXNvdXJjZVJlcXVlc3QpOwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAK
aW5kZXggY2RjNDU5ZjJiZmE4YTFiZTYyYWZlZTMzYzRiMGJlNzcxY2I2MWExZC4uY2IyN2I1MGE4
YWQxYzI1YjQ4MDYwZDNlYTAyMTQzNTAwYTI3Y2QxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTM0LDcgKzM0LDYgQEAK
ICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCi0jaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1
cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2lu
Y2x1ZGUgIkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCIKQEAgLTM4NSw5ICszODQs
OCBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTZWN1cgogICAgICAgICB9CiAKICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QocmVxdWVzdCwgb3B0aW9ucyk7Ci0jaWYgRU5BQkxF
KFJFU09VUkNFX1RJTUlORykKLSAgICAgICAgbmV3UmVxdWVzdC5zZXRJbml0aWF0b3IobV9vcHRp
b25zLmluaXRpYXRvcik7Ci0jZW5kaWYKKyAgICAgICAgbmV3UmVxdWVzdC5zZXRJbml0aWF0b3Io
bV9vcHRpb25zLmluaXRpYXRvclR5cGUpOworCiAgICAgICAgIEFTU0VSVCghbV9yZXNvdXJjZSk7
CiAgICAgICAgIG1fcmVzb3VyY2UgPSBtX2RvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCku
cmVxdWVzdFJhd1Jlc291cmNlKG5ld1JlcXVlc3QpOwogICAgICAgICBpZiAobV9yZXNvdXJjZSkK
QEAgLTQ2MSw3ICs0NTksNyBAQCBib29sIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6aXNBbGxv
d2VkUmVkaXJlY3QoY29uc3QgVVJMJiB1cmwpCiAKIGJvb2wgRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyOjppc1hNTEh0dHBSZXF1ZXN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9vcHRpb25zLmlu
aXRpYXRvciA9PSBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkueG1saHR0cHJlcXVl
c3Q7CisgICAgcmV0dXJuIG1fb3B0aW9ucy5pbml0aWF0b3JUeXBlID09IENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcjo6WE1MSHR0cFJlcXVlc3Q7CiB9CiAKIFNlY3VyaXR5T3JpZ2luKiBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IDBjMzBkYWI1ZjJhODM1OTRmZDMwYmU5NDlm
ZmFkZDY5MWM2MGFkZTkuLjVhOTBiYzg4NzdjNDdiMzRjODEwNmNhNDU1ZjdhMTA2NTQ4YTY5MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBA
IHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAgb3B0aW9ucy5z
ZXRDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uKGVsZW1lbnQoKS5pc0luVXNlckFnZW50
U2hhZG93VHJlZSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGlj
eUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7
CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGRvY3VtZW50LmNvbXBsZXRlVVJMKHNvdXJjZVVSSShhdHRyKSkpLCBvcHRpb25zKTsKLSAgICAg
ICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoJmVsZW1lbnQoKSk7CisgICAgICAgIHJlcXVlc3Quc2V0
SW5pdGlhdG9yKFN0cmluZyhlbGVtZW50KCkubG9jYWxOYW1lKCkpKTsKIAogICAgICAgICBTdHJp
bmcgY3Jvc3NPcmlnaW5Nb2RlID0gZWxlbWVudCgpLmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVz
Ojpjcm9zc29yaWdpbkF0dHIpOwogICAgICAgICBpZiAoIWNyb3NzT3JpZ2luTW9kZS5pc051bGwo
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCmluZGV4IGJlNDAzMWUwYWEzOGFl
OTA2ZjRjY2MyYmVjNjAxYzhmZjcxODdiZjIuLjE0OGZlMGQ3ZTM3YzcxMDJlYTA3ZTU3YmU0YmIw
NWYyZDM3MmQzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTEyNSw3
ICsxMjUsNyBAQCBzdGF0aWMgdm9pZCBwcmVsb2FkSWZOZWVkZWQoY29uc3QgTGlua1JlbEF0dHJp
YnV0ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBVUkwmIGhyZQogCiAgICAgUmVzb3VyY2VSZXF1ZXN0
IHJlc291cmNlUmVxdWVzdChkb2N1bWVudC5jb21wbGV0ZVVSTChocmVmKSk7CiAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IGxpbmtSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCwgQ2FjaGVkUmVzb3Vy
Y2U6OmRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBlLnZhbHVlKCkpKTsKLSAgICBs
aW5rUmVxdWVzdC5zZXRJbml0aWF0b3IoImxpbmsiKTsKKyAgICBsaW5rUmVxdWVzdC5zZXRJbml0
aWF0b3IoU3RyaW5nKCJsaW5rIikpOwogCiAgICAgaWYgKCFjcm9zc09yaWdpbk1vZGUuaXNOdWxs
KCkpIHsKICAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA9IGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2luTW9kZSwgInVzZS1jcmVkZW50aWFs
cyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFs
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCAyYzJk
NWUzOWIzZGZkZmMwNzFjMjNkYTI3OTE4YTY4YmZkOWExZTZjLi40ZWM5M2VjY2MxYjc4YjhjM2Ez
MTdlNjNiMGE3ZWU3ZGMzOWVjMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFi
bGVMb2FkZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFRocmVh
ZGFibGVMb2FkZXJPcHRpb25zOjpUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucygpCiAgICAgOiBwcmVm
bGlnaHRQb2xpY3koQ29uc2lkZXJQcmVmbGlnaHQpCiAgICAgLCBjcm9zc09yaWdpblJlcXVlc3RQ
b2xpY3koRGVueUNyb3NzT3JpZ2luUmVxdWVzdHMpCisgICAgLCBpbml0aWF0b3JUeXBlKENhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcjo6VW5rbm93bikKIHsKIH0KIApAQCAtNTEsMTMgKzUy
LDEzIEBAIFRocmVhZGFibGVMb2FkZXJPcHRpb25zOjp+VGhyZWFkYWJsZUxvYWRlck9wdGlvbnMo
KQogewogfQogCi1UaHJlYWRhYmxlTG9hZGVyT3B0aW9uczo6VGhyZWFkYWJsZUxvYWRlck9wdGlv
bnMoY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBiYXNlT3B0aW9ucywgUHJlZmxpZ2h0UG9s
aWN5IHByZWZsaWdodFBvbGljeSwgQ3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5IGNyb3NzT3JpZ2lu
UmVxdWVzdFBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgY29udGVudFNl
Y3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBzZWN1cml0
eU9yaWdpbiwgU3RyaW5nJiYgaW5pdGlhdG9yKQorVGhyZWFkYWJsZUxvYWRlck9wdGlvbnM6OlRo
cmVhZGFibGVMb2FkZXJPcHRpb25zKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgYmFzZU9w
dGlvbnMsIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3ksIENyb3NzT3JpZ2luUmVxdWVz
dFBvbGljeSBjcm9zc09yaWdpblJlcXVlc3RQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeUVu
Zm9yY2VtZW50IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+JiYgc2VjdXJpdHlPcmlnaW4sIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cjo6VHlwZSBpbml0aWF0b3JUeXBlKQogICAgIDogUmVzb3VyY2VMb2FkZXJPcHRpb25zKGJhc2VP
cHRpb25zKQogICAgICwgcHJlZmxpZ2h0UG9saWN5KHByZWZsaWdodFBvbGljeSkKICAgICAsIGNy
b3NzT3JpZ2luUmVxdWVzdFBvbGljeShjcm9zc09yaWdpblJlcXVlc3RQb2xpY3kpCiAgICAgLCBj
b250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudChjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZv
cmNlbWVudCkKICAgICAsIHNlY3VyaXR5T3JpZ2luKFdURk1vdmUoc2VjdXJpdHlPcmlnaW4pKQot
ICAgICwgaW5pdGlhdG9yKFdURk1vdmUoaW5pdGlhdG9yKSkKKyAgICAsIGluaXRpYXRvclR5cGUo
aW5pdGlhdG9yVHlwZSkKIHsKIH0KIApAQCAtNjYsNyArNjcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
VGhyZWFkYWJsZUxvYWRlck9wdGlvbnM+IFRocmVhZGFibGVMb2FkZXJPcHRpb25zOjppc29sYXRl
ZENvcHkoKQogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW5Db3B5Owog
ICAgIGlmIChzZWN1cml0eU9yaWdpbikKICAgICAgICAgc2VjdXJpdHlPcmlnaW5Db3B5ID0gc2Vj
dXJpdHlPcmlnaW4tPmlzb2xhdGVkQ29weSgpOwotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PFRocmVhZGFibGVMb2FkZXJPcHRpb25zPigqdGhpcywgcHJlZmxpZ2h0UG9saWN5LCBjcm9zc09y
aWdpblJlcXVlc3RQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBXVEZN
b3ZlKHNlY3VyaXR5T3JpZ2luQ29weSksIGluaXRpYXRvci5pc29sYXRlZENvcHkoKSk7CisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkYWJsZUxvYWRlck9wdGlvbnM+KCp0aGlzLCBw
cmVmbGlnaHRQb2xpY3ksIGNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSwgY29udGVudFNlY3VyaXR5
UG9saWN5RW5mb3JjZW1lbnQsIFdURk1vdmUoc2VjdXJpdHlPcmlnaW5Db3B5KSwgaW5pdGlhdG9y
VHlwZSk7CiB9CiAKIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBUaHJlYWRhYmxlTG9hZGVyOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVGhyZWFkYWJsZUxvYWRlckNs
aWVudCogY2xpZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFRocmVh
ZGFibGVMb2FkZXJPcHRpb25zJiBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRh
YmxlTG9hZGVyLmgKaW5kZXggYzNhNzQ5NmI4NzgxNWY2NzFkM2E3MDIzOGY5MzIxMzdmYWEyNDg4
Yy4uMTFkNjZlMDk3OGQ3NDBiM2VjYTkyMTczYTg0MGZlYjZkNjJmNDQyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVm
IFRocmVhZGFibGVMb2FkZXJfaAogI2RlZmluZSBUaHJlYWRhYmxlTG9hZGVyX2gKIAorI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvci5oIgogI2luY2x1ZGUgIlJlc291cmNl
TG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KQEAgLTY3LDcgKzY4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgc3RydWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zIDogUmVzb3VyY2VMb2FkZXJPcHRpb25z
IHsKICAgICAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMoKTsKLSAgICAgICAgVGhyZWFkYWJs
ZUxvYWRlck9wdGlvbnMoY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgUHJlZmxpZ2h0UG9s
aWN5LCBDcm9zc09yaWdpblJlcXVlc3RQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50LCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYsIFN0cmluZyYmIGluaXRpYXRvcik7Cisg
ICAgICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYsIFByZWZsaWdodFBvbGljeSwgQ3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5LCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmLCBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3I6OlR5cGUpOwogICAgICAgICB+VGhyZWFkYWJsZUxvYWRl
ck9wdGlvbnMoKTsKIAogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkYWJsZUxvYWRlck9w
dGlvbnM+IGlzb2xhdGVkQ29weSgpIGNvbnN0OwpAQCAtNzYsNyArNzcsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIENyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSBjcm9zc09yaWdpblJl
cXVlc3RQb2xpY3k7CiAgICAgICAgIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IGNv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50IHsgQ29udGVudFNlY3VyaXR5UG9saWN5RW5m
b3JjZW1lbnQ6OkVuZm9yY2VDb25uZWN0U3JjRGlyZWN0aXZlIH07CiAgICAgICAgIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW47Ci0gICAgICAgIFN0cmluZyBpbml0aWF0b3I7
IC8vIFRoaXMgY2Fubm90IGJlIGFuIEF0b21pY1N0cmluZywgYXMgaXNvbGF0ZWRDb3B5KCkgd291
bGRuJ3QgY3JlYXRlIGFuIG9iamVjdCB0aGF0J3Mgc2FmZSBmb3IgcGFzc2luZyB0byBhbm90aGVy
IHRocmVhZC4KKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yOjpUeXBlIGlu
aXRpYXRvclR5cGU7CiAgICAgfTsKIAogICAgIC8vIFVzZWZ1bCBmb3IgZG9pbmcgbG9hZGVyIG9w
ZXJhdGlvbnMgZnJvbSBhbnkgdGhyZWFkIChub3QgdGhyZWFkc2FmZSwgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBj
MGE5OWEzZGU5Nzg5NDVmZDY0OWRjMmQ2ZWE3OGRiNjc4NzEzMDFkLi5mMGEzNzNjNmJmN2NkYjAz
ZDU0MmE1ZGY4OGNiNDNlMmE4M2Q4Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTcwMiwxMSArNzAyLDExIEBA
IHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnN0b3JlUmVzb3VyY2VUaW1pbmdJbml0aWF0b3JJ
bmZvcm1hdGlvbihjb25zdCBDYWNoZWRSCiAgICAgaWYgKHJlc291cmNlLT50eXBlKCkgPT0gQ2Fj
aGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSkgewogICAgICAgICAvLyA8aWZyYW1lPnMgc2hvdWxk
IHJlcG9ydCB0aGUgaW5pdGlhbCBuYXZpZ2F0aW9uIHJlcXVlc3RlZCBieSB0aGUgcGFyZW50IGRv
Y3VtZW50LCBidXQgbm90IHN1YnNlcXVlbnQgbmF2aWdhdGlvbnMuCiAgICAgICAgIGlmIChmcmFt
ZSgpLT5vd25lckVsZW1lbnQoKSAmJiBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZUxvYWRlcigpLT5z
dGF0ZU1hY2hpbmUoKS5jb21taXR0aW5nRmlyc3RSZWFsTG9hZCgpKSB7Ci0gICAgICAgICAgICBJ
bml0aWF0b3JJbmZvIGluZm8gPSB7IGZyYW1lKCktPm93bmVyRWxlbWVudCgpLT5sb2NhbE5hbWUo
KSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgfTsKKyAgICAgICAgICAgIEluaXRpYXRv
ckluZm8gaW5mbyhTdHJpbmcoZnJhbWUoKS0+b3duZXJFbGVtZW50KCktPmxvY2FsTmFtZSgpKSwg
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogICAgICAgICAgICAgbV9pbml0aWF0b3JN
YXAuYWRkKHJlc291cmNlLmdldCgpLCBpbmZvKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEluaXRpYXRvckluZm8gaW5mbyA9IHsgcmVxdWVzdC5pbml0aWF0b3JOYW1lKCksIG1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIH07CisgICAgICAgIEluaXRpYXRvckluZm8gaW5m
byhyZXF1ZXN0LmluaXRpYXRvcigpLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiAg
ICAgICAgIG1faW5pdGlhdG9yTWFwLmFkZChyZXNvdXJjZS5nZXQoKSwgaW5mbyk7CiAgICAgfQog
fQpAQCAtOTg2LDcgKzk4Niw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWREb25l
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgYm9vbCBzaG91bGRQZXJmb3JtCiAgICAgICAgICAg
ICAgICAgaW5pdGlhdG9yRG9jdW1lbnQgPSBkb2N1bWVudCgpLT5wYXJlbnREb2N1bWVudCgpOwog
ICAgICAgICAgICAgQVNTRVJUKGluaXRpYXRvckRvY3VtZW50KTsKICAgICAgICAgICAgIGNvbnN0
IEluaXRpYXRvckluZm8mIGluZm8gPSBpbml0aWF0b3JJdC0+dmFsdWU7Ci0gICAgICAgICAgICBp
bml0aWF0b3JEb2N1bWVudC0+ZG9tV2luZG93KCktPnBlcmZvcm1hbmNlKCktPmFkZFJlc291cmNl
VGltaW5nKGluZm8ubmFtZSwgaW5pdGlhdG9yRG9jdW1lbnQsIHJlc291cmNlLT5yZXNvdXJjZVJl
cXVlc3QoKSwgcmVzb3VyY2UtPnJlc3BvbnNlKCksIGluZm8uc3RhcnRUaW1lLCByZXNvdXJjZS0+
bG9hZEZpbmlzaFRpbWUoKSk7CisgICAgICAgICAgICBpbml0aWF0b3JEb2N1bWVudC0+ZG9tV2lu
ZG93KCktPnBlcmZvcm1hbmNlKCktPmFkZFJlc291cmNlVGltaW5nKGluZm8uaW5pdGlhdG9yKCks
IGluaXRpYXRvckRvY3VtZW50LCByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCksIHJlc291cmNl
LT5yZXNwb25zZSgpLCBpbmZvLnN0YXJ0VGltZSgpLCByZXNvdXJjZS0+bG9hZEZpbmlzaFRpbWUo
KSk7CiAgICAgICAgICAgICBtX2luaXRpYXRvck1hcC5yZW1vdmUoaW5pdGlhdG9ySXQpOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaAppbmRleCBiMWY3YzRmYWY1ZGJiMDk2MDFjNTg5MmY1ZDY0NzEzOTQ5
YjFmNjBkLi4yYjc0ZTlkOGI0YmExMzQyZjFlYzJmYjMwMjcxZjkxZTUyMzVhYzRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApA
QCAtMTgwLDkgKzE4MCwyMCBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fZ2FyYmFnZUNvbGxlY3RE
b2N1bWVudFJlc291cmNlc1RpbWVyOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlORykKLSAg
ICBzdHJ1Y3QgSW5pdGlhdG9ySW5mbyB7Ci0gICAgICAgIEF0b21pY1N0cmluZyBuYW1lOwotICAg
ICAgICBkb3VibGUgc3RhcnRUaW1lOworICAgIGNsYXNzIEluaXRpYXRvckluZm8geworICAgIHB1
YmxpYzoKKyAgICAgICAgSW5pdGlhdG9ySW5mbygpID0gZGVmYXVsdDsKKyAgICAgICAgSW5pdGlh
dG9ySW5mbyhjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3ImIGluaXRpYXRvciwg
ZG91YmxlIHN0YXJ0VGltZSkKKyAgICAgICAgICAgIDogbV9pbml0aWF0b3IoaW5pdGlhdG9yKQor
ICAgICAgICAgICAgLCBtX3N0YXJ0VGltZShzdGFydFRpbWUpCisgICAgICAgIHsgfQorCisgICAg
ICAgIGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciYgaW5pdGlhdG9yKCkgY29u
c3QgeyByZXR1cm4gbV9pbml0aWF0b3I7IH0KKyAgICAgICAgZG91YmxlIHN0YXJ0VGltZSgpIGNv
bnN0ICB7IHJldHVybiBtX3N0YXJ0VGltZTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yIG1faW5pdGlhdG9yOworICAgICAgICBkb3VibGUg
bV9zdGFydFRpbWU7CiAgICAgfTsKICAgICBIYXNoTWFwPENhY2hlZFJlc291cmNlKiwgSW5pdGlh
dG9ySW5mbz4gbV9pbml0aWF0b3JNYXA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggYTA1ZGE4Yzc1
NjMxOWI2NmRkNDQ1MTQxZDVlODY1ZjljNzQ3Y2YwNS4uZTRlZjMwZjU0OGU0MmE5NGZjNTllODk3
NWQ5ZmE1NDEwMDgxOTk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKQEAgLTY0LDMyICs2NCw0IEBAIENhY2hlZFJl
c291cmNlUmVxdWVzdDo6fkNhY2hlZFJlc291cmNlUmVxdWVzdCgpCiB7CiB9CiAKLXZvaWQgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRJbml0aWF0b3IoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVt
ZW50KQotewotICAgIEFTU0VSVCghbV9pbml0aWF0b3JFbGVtZW50ICYmIG1faW5pdGlhdG9yTmFt
ZS5pc0VtcHR5KCkpOwotICAgIG1faW5pdGlhdG9yRWxlbWVudCA9IGVsZW1lbnQ7Ci19Ci0KLXZv
aWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRJbml0aWF0b3IoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lKQotewotICAgIEFTU0VSVCghbV9pbml0aWF0b3JFbGVtZW50ICYmIG1faW5pdGlhdG9y
TmFtZS5pc0VtcHR5KCkpOwotICAgIG1faW5pdGlhdG9yTmFtZSA9IG5hbWU7Ci19Ci0KLXZvaWQg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRJbml0aWF0b3IoRG9jdW1lbnRMb2FkZXImIGRvY3Vt
ZW50TG9hZGVyKQotewotICAgIG1faW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyID0gJmRvY3VtZW50
TG9hZGVyOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcmIENhY2hlZFJlc291cmNlUmVxdWVzdDo6
aW5pdGlhdG9yTmFtZSgpIGNvbnN0Ci17Ci0gICAgaWYgKG1faW5pdGlhdG9yRWxlbWVudCkKLSAg
ICAgICAgcmV0dXJuIG1faW5pdGlhdG9yRWxlbWVudC0+bG9jYWxOYW1lKCk7Ci0gICAgaWYgKCFt
X2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbV9pbml0aWF0b3JOYW1l
OwotCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZGVmYXVsdE5hbWUo
InJlc291cmNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0gICAgcmV0
dXJuIGRlZmF1bHROYW1lOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXgg
YzhhMjFlZjMwOGJlYTcwM2Q4MmZmNmJmZDZjZTViMWQ2YjFhNmNkOC4uNjFiYTYyZmM3MzBkZWE1
NDUzNWJhYTk4YzIzMzE4NTgzZGVjZmE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAtMjYsOCArMjYsNyBAQAogI2lm
bmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAogI2RlZmluZSBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RfaAogCi0jaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKLSNpbmNsdWRlICJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTM1LDcgKzM0LDYgQEAKICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xh
c3MgRG9jdW1lbnQ7CiAKIGNsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdCB7CiBwdWJsaWM6CkBA
IC01NywxMyArNTUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZv
clByZWxvYWQpIHsgbV9mb3JQcmVsb2FkID0gZm9yUHJlbG9hZDsgfQogICAgIERlZmVyT3B0aW9u
IGRlZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcjsgfQogICAgIHZvaWQgc2V0RGVmZXIoRGVm
ZXJPcHRpb24gZGVmZXIpIHsgbV9kZWZlciA9IGRlZmVyOyB9Ci0gICAgdm9pZCBzZXRJbml0aWF0
b3IoUGFzc1JlZlB0cjxFbGVtZW50Pik7Ci0gICAgdm9pZCBzZXRJbml0aWF0b3IoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lKTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYXRvck5hbWUo
KSBjb25zdDsKICAgICBib29sIGFsbG93c0NhY2hpbmcoKSBjb25zdCB7IHJldHVybiBtX29wdGlv
bnMuY2FjaGluZ1BvbGljeSgpID09IENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZzsgfQogCi0g
ICAgdm9pZCBzZXRJbml0aWF0b3IoRG9jdW1lbnRMb2FkZXImKTsKLSAgICBEb2N1bWVudExvYWRl
ciogaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWF0aW5n
RG9jdW1lbnRMb2FkZXIuZ2V0KCk7IH0KKyAgICBjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3ImIGluaXRpYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhdG9yOyB9CisgICAg
dm9pZCBzZXRJbml0aWF0b3IoY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yJiBp
bml0aWF0b3IpIHsgbV9pbml0aWF0b3IgPSBpbml0aWF0b3I7IH0KIAogcHJpdmF0ZToKICAgICBS
ZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CkBAIC03Miw5ICs2Nyw3IEBAIHByaXZh
dGU6CiAgICAgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IG1fcHJpb3JpdHk7CiAgICAg
Ym9vbCBtX2ZvclByZWxvYWQ7CiAgICAgRGVmZXJPcHRpb24gbV9kZWZlcjsKLSAgICBSZWZQdHI8
RWxlbWVudD4gbV9pbml0aWF0b3JFbGVtZW50OwotICAgIEF0b21pY1N0cmluZyBtX2luaXRpYXRv
ck5hbWU7Ci0gICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBtX2luaXRpYXRpbmdEb2N1bWVudExv
YWRlcjsKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3IgbV9pbml0aWF0b3I7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWEzMWE2NTg2Y2U0ZTU0YjkxYzAwNmZiZjRiNWU1NTcwODBiMzIzYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3IuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JfaAorI2Rl
ZmluZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JfaAorCisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9yIHsKK3B1YmxpYzoKKyAgICBlbnVtIFR5cGUgeworICAgICAg
ICBVbmtub3duID0gMCwKKyAgICAgICAgRWxlbWVudCwKKyAgICAgICAgQ1NTLAorICAgICAgICBY
TUxIdHRwUmVxdWVzdAorICAgIH07CisKKyAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3IoVHlwZSB0eXBlID0gVW5rbm93bikKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX3R5cGUgIT0gRWxlbWVudCk7CisgICAgfQorCisgICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9yKGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yTmFtZSkKKyAgICAg
ICAgOiBtX3R5cGUoRWxlbWVudCkKKyAgICAgICAgLCBtX2luaXRpYXRvck5hbWUoaW5pdGlhdG9y
TmFtZSkKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSk7
CisgICAgfQorCisgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAg
Y29uc3QgU3RyaW5nJiBpbml0aWF0b3JOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWF0b3JO
YW1lOyB9CisKKyAgICBib29sIGlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgpIGNvbnN0IHsg
cmV0dXJuIG1faW5pdGlhdG9yTmFtZS5pc1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQoKTsgfQor
Citwcml2YXRlOgorICAgIFR5cGUgbV90eXBlOworICAgIFN0cmluZyBtX2luaXRpYXRvck5hbWU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzg3MDFiNjEwMmM0ZjAxZjNlYTdjZDE5MDdlNmNhZDQw
MDhmNGZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLUNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMoKQotICAgIDogY3NzKCJjc3MiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVj
dEZyb21MaXRlcmFsKQotICAgICwgaWNvbigiaWNvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwpCi0gICAgLCB4bWxodHRwcmVxdWVzdCgieG1saHR0cHJlcXVlc3QiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjY1NzNiYjE3MTY5NjA0ZGQyNzQ2N2JkYzM4Mjc5MTAzNjA1NGRkMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oCisrKyAvZGV2L251bGwK
QEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yc19oCi0jZGVm
aW5lIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnNfaAotCi0jaW5jbHVkZSAiVGhyZWFk
R2xvYmFsRGF0YS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXN0cnVjdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
IHsKLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCk7Ci0KLSAgICBjb25zdCBB
dG9taWNTdHJpbmcgY3NzOwotICAgIGNvbnN0IEF0b21pY1N0cmluZyBpY29uOwotICAgIGNvbnN0
IEF0b21pY1N0cmluZyB4bWxodHRwcmVxdWVzdDsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShD
YWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
Ci1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBUaHJlYWRHbG9iYWxEYXRhOwotfTsKLQotaW5s
aW5lIGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMmIGNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMoKQotewotICAgIHJldHVybiB0aHJlYWRHbG9iYWxEYXRhKCkuY2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5jcHAKaW5kZXggNDc5MGY3MzQ5Mzg5NmVlM2I1
MjUyMWQyYTc1ZTg4NzZkZDljNTgwMi4uNDEzODcxN2I4YWZmNDBiMTE0NGQ3NDkwNjExNTE4YTQy
MGZiZTNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNW
R0RvY3VtZW50UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3IuaCIKICNpbmNsdWRlICJDYWNoZWRTVkdEb2N1bWVudC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgQ2FjaGVkU1ZHRG9jdW1lbnRS
ZWZlcmVuY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzb3Vy
CiAgICAgICAgIHJldHVybjsKIAogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChsb2FkZXIuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSwgb3B0
aW9ucyk7Ci0gICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycygpLmNzcyk7CisgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0SW5pdGlhdG9yOjpDU1MpOwogICAgIG1fZG9jdW1lbnQgPSBsb2FkZXIucmVxdWVzdFNW
R0RvY3VtZW50KHJlcXVlc3QpOwogICAgIGlmIChtX2RvY3VtZW50KQogICAgICAgICBtX2RvY3Vt
ZW50LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2Fk
ZXIuY3BwCmluZGV4IDRhMGZkMjdjNjAxNmU3NmFjYjYwNGYwOTVlYjMzZDNlMzU0ODMwMDUuLjYz
NmI1NjE2MTM4ZDM4NmQzOWNlZTZmM2ZhMTAzZGQ1MjEwNWU2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAi
Q2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTYyLDcgKzYxLDcgQEAgdm9p
ZCBJY29uTG9hZGVyOjpzdGFydExvYWRpbmcoKQogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2ZyYW1lLmxvYWRlcigpLmljb24oKS51cmwoKSksIFJl
c291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1ZmZlckRh
dGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgRG9Ob3RBc2tDbGllbnRGb3JBbnlDcmVk
ZW50aWFscywgQ2xpZW50RGlkTm90UmVxdWVzdENyZWRlbnRpYWxzLCBEb1NlY3VyaXR5Q2hlY2ss
IFVzZURlZmF1bHRPcmlnaW5SZXN0cmljdGlvbnNGb3JUeXBlLCBEb05vdEluY2x1ZGVDZXJ0aWZp
Y2F0ZUluZm8sIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2ss
IERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZywgQ2FjaGluZ1BvbGljeTo6
QWxsb3dDYWNoaW5nKSk7CiAKICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5z
ZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6TG93KTsKLSAgICByZXF1ZXN0LnNldElu
aXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuaWNvbik7CisgICAgcmVx
dWVzdC5zZXRJbml0aWF0b3IoU3RyaW5nKCJpY29uIikpOwogCiAgICAgbV9yZXNvdXJjZSA9IG1f
ZnJhbWUuZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0UmF3UmVzb3Vy
Y2UocmVxdWVzdCk7CiAgICAgaWYgKG1fcmVzb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2UuY3BwCmluZGV4IGVkMzlhMWQxNTA4MWI0NzY0YWU5N2FmYWY3MzhiYTk2Nzk3ZTczMmIuLjc2
MTQ1ZmQyZjVjOGUxZDQ5YmQzNDNhYjJkZWI2MmQxNzA2NTJmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2UuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgRU5BQkxFKFdFQl9USU1JTkcp
CiAjaW5jbHVkZSAiUGVyZm9ybWFuY2UuaCIKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtMTc3LDE0ICsxNzgsMTIgQEAgdm9p
ZCBQZXJmb3JtYW5jZTo6d2Via2l0U2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKHVuc2lnbmVk
IHNpemUpCiAgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
d2Via2l0cmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogfQog
Ci12b2lkIFBlcmZvcm1hbmNlOjphZGRSZXNvdXJjZVRpbWluZyhjb25zdCBTdHJpbmcmIGluaXRp
YXRvck5hbWUsIERvY3VtZW50KiBpbml0aWF0b3JEb2N1bWVudCwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGlu
aXRpYXRpb25UaW1lLCBkb3VibGUgZmluaXNoVGltZSkKK3ZvaWQgUGVyZm9ybWFuY2U6OmFkZFJl
c291cmNlVGltaW5nKGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvciYgaW5pdGlh
dG9yLCBEb2N1bWVudCogaW5pdGlhdG9yRG9jdW1lbnQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGRvdWJsZSBpbml0aWF0
aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgaWYgKGlzUmVzb3VyY2VUaW1pbmdC
dWZmZXJGdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVu
dHJ5PiBlbnRyeSA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNyZWF0ZShpbml0aWF0b3JO
YW1lLCByZXF1ZXN0LCByZXNwb25zZSwgaW5pdGlhdGlvblRpbWUsIGZpbmlzaFRpbWUsIGluaXRp
YXRvckRvY3VtZW50KTsKLQotICAgIG1fcmVzb3VyY2VUaW1pbmdCdWZmZXIuYXBwZW5kKGVudHJ5
KTsKKyAgICBtX3Jlc291cmNlVGltaW5nQnVmZmVyLmFwcGVuZChQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nOjpjcmVhdGUoaW5pdGlhdG9yLCByZXF1ZXN0LCByZXNwb25zZSwgaW5pdGlhdGlvblRp
bWUsIGZpbmlzaFRpbWUsIGluaXRpYXRvckRvY3VtZW50KSk7CiAKICAgICBpZiAoaXNSZXNvdXJj
ZVRpbWluZ0J1ZmZlckZ1bGwoKSkKICAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS53ZWJraXRyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGxFdmVudCwgZmFsc2Us
IGZhbHNlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKaW5kZXggOTNmNDQwNjQ0YmI3NjNm
YTdkYzhkMTdlNDg2MmUzMjM1ZTljNzZmNy4uMmVhNTQwY2ZmMWU4MWJiN2U1ZDU3NTQyMjUyODEz
YzRlOTA5NmQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaApAQCAtNDcsNiArNDcsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKQEAgLTc0LDcgKzc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2Vi
a2l0Q2xlYXJSZXNvdXJjZVRpbWluZ3MoKTsKICAgICB2b2lkIHdlYmtpdFNldFJlc291cmNlVGlt
aW5nQnVmZmVyU2l6ZSh1bnNpZ25lZCBpbnQpOwogCi0gICAgdm9pZCBhZGRSZXNvdXJjZVRpbWlu
Zyhjb25zdCBTdHJpbmcmIGluaXRpYXRvck5hbWUsIERvY3VtZW50KiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGRvdWJsZSBpbml0aWF0aW9uVGltZSwg
ZG91YmxlIGZpbmlzaFRpbWUpOworICAgIHZvaWQgYWRkUmVzb3VyY2VUaW1pbmcoY29uc3QgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yJiwgRG9jdW1lbnQqLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgZG91YmxlIGluaXRpYXRpb25UaW1lLCBk
b3VibGUgZmluaXNoVGltZSk7CiAjZW5kaWYKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGVyZm9y
bWFuY2U+OjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nLmNwcAppbmRleCAzMWI4OTcxMzdmNTExZTQ1Zjc3NTdlOTU2YzI2ZjM3NTg3YWI2
YTYwLi5hOWFiNDA2YmZiMDI0YmY1N2VhYWIyOTk2ZjRkMzhiZmRlMWI1YTlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAKQEAgLTc2
LDkgKzc2LDkgQEAgc3RhdGljIGJvb2wgcGFzc2VzVGltaW5nQWxsb3dDaGVjayhjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgRG9jdW1lbnQqIHIKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLVBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OlBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmco
Y29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWF0b3JUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBkb3VibGUgaW5pdGlh
dGlvblRpbWUsIGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCogcmVxdWVzdGluZ0RvY3VtZW50
KQorUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZzo6UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyhj
b25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3ImIGluaXRpYXRvciwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
ZG91YmxlIGluaXRpYXRpb25UaW1lLCBkb3VibGUgZmluaXNoVGltZSwgRG9jdW1lbnQqIHJlcXVl
c3RpbmdEb2N1bWVudCkKICAgICA6IFBlcmZvcm1hbmNlRW50cnkocmVxdWVzdC51cmwoKS5zdHJp
bmcoKSwgInJlc291cmNlIiwgbW9ub3RvbmljVGltZVRvRG9jdW1lbnRNaWxsaXNlY29uZHMocmVx
dWVzdGluZ0RvY3VtZW50LCBpbml0aWF0aW9uVGltZSksIG1vbm90b25pY1RpbWVUb0RvY3VtZW50
TWlsbGlzZWNvbmRzKHJlcXVlc3RpbmdEb2N1bWVudCwgZmluaXNoVGltZSkpCi0gICAgLCBtX2lu
aXRpYXRvclR5cGUoaW5pdGlhdG9yVHlwZSkKKyAgICAsIG1faW5pdGlhdG9yKGluaXRpYXRvcikK
ICAgICAsIG1fdGltaW5nKHJlc3BvbnNlLnJlc291cmNlTG9hZFRpbWluZygpKQogICAgICwgbV9m
aW5pc2hUaW1lKGZpbmlzaFRpbWUpCiAgICAgLCBtX3Nob3VsZFJlcG9ydERldGFpbHMocGFzc2Vz
VGltaW5nQWxsb3dDaGVjayhyZXNwb25zZSwgcmVxdWVzdGluZ0RvY3VtZW50KSkKQEAgLTkwLDkg
KzkwLDIxIEBAIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6On5QZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nKCkKIHsKIH0KIAotQXRvbWljU3RyaW5nIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OmluaXRpYXRvclR5cGUoKSBjb25zdAorU3RyaW5nIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OmluaXRpYXRvclR5cGUoKSBjb25zdAogewotICAgIHJldHVybiBtX2luaXRpYXRvclR5cGU7Cisg
ICAgc3dpdGNoIChtX2luaXRpYXRvci50eXBlKCkpIHsKKyAgICBjYXNlIENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcjo6VW5rbm93bjoKKyAgICAgICAgcmV0dXJuICJ1bmtub3duIjsKKyAg
ICBjYXNlIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcjo6RWxlbWVudDoKKyAgICAgICAg
cmV0dXJuIG1faW5pdGlhdG9yLmluaXRpYXRvck5hbWUoKTsKKyAgICBjYXNlIENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcjo6Q1NTOgorICAgICAgICByZXR1cm4gImNzcyI7CisgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3I6OlhNTEh0dHBSZXF1ZXN0OgorICAgICAg
ICByZXR1cm4gInhtbGh0dHByZXF1ZXN0IjsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gInVua25vd24iOwogfQogCiBkb3VibGUgUGVyZm9ybWFuY2VSZXNv
dXJjZVRpbWluZzo6cmVkaXJlY3RTdGFydCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oCmluZGV4IDNjMzVkMWFmYzlkMDRmN2M3ZjFh
ZGNmZDE0NWIzM2VhZTNhNmZjNTMuLmMxZTRkNDBiNGJlYzM2OTE0ZTlmZjgyNWMwODU2NjM2NDA3
NDMwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJj
ZVRpbWluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5oCkBAIC0zNCw2ICszNCw3IEBACiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVElNSU5HKQog
CisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9yLmgiCiAjaW5jbHVkZSAi
UGVyZm9ybWFuY2VFbnRyeS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC01MCwxMiArNTEsMTIgQEAgY2xhc3MgUmVzb3Vy
Y2VSZXNwb25zZTsKIAogY2xhc3MgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBmaW5hbCA6IHB1
YmxpYyBQZXJmb3JtYW5jZUVudHJ5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGluaXRpYXRvclR5
cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGRvdWJsZSBpbml0aWF0aW9uVGltZSwgZG91YmxlIGZpbmlzaFRpbWUsIERv
Y3VtZW50KiByZXF1ZXN0aW5nRG9jdW1lbnQpCisgICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nPiBjcmVhdGUoY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
JiBpbml0aWF0b3IsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGRvdWJsZSBpbml0aWF0aW9uVGltZSwgZG91YmxlIGZpbmlz
aFRpbWUsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKGluaXRpYXRvclR5cGUs
IHJlcXVlc3QsIHJlc3BvbnNlLCBpbml0aWF0aW9uVGltZSwgZmluaXNoVGltZSwgcmVxdWVzdGlu
Z0RvY3VtZW50KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcoaW5pdGlhdG9yLCByZXF1ZXN0LCByZXNwb25zZSwgaW5pdGlhdGlvblRpbWUs
IGZpbmlzaFRpbWUsIHJlcXVlc3RpbmdEb2N1bWVudCkpOwogICAgIH0KIAotICAgIEF0b21pY1N0
cmluZyBpbml0aWF0b3JUeXBlKCkgY29uc3Q7CisgICAgU3RyaW5nIGluaXRpYXRvclR5cGUoKSBj
b25zdDsKIAogICAgIGRvdWJsZSByZWRpcmVjdFN0YXJ0KCkgY29uc3Q7CiAgICAgZG91YmxlIHJl
ZGlyZWN0RW5kKCkgY29uc3Q7CkBAIC03MSwxMiArNzIsMTIgQEAgcHVibGljOgogICAgIGJvb2wg
aXNSZXNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToK
LSAgICBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGF0
b3JUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwg
ZG91YmxlIGluaXRpYXRpb25UaW1lLCBkb3VibGUgZmluaXNoVGltZSwgRG9jdW1lbnQqKTsKKyAg
ICBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvciYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
LCBkb3VibGUgaW5pdGlhdGlvblRpbWUsIGRvdWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCopOwog
ICAgIH5QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKCk7CiAKICAgICBkb3VibGUgcmVzb3VyY2VU
aW1lVG9Eb2N1bWVudE1pbGxpc2Vjb25kcyhpbnQgZGVsdGFNaWxsaXNlY29uZHMpIGNvbnN0Owog
Ci0gICAgQXRvbWljU3RyaW5nIG1faW5pdGlhdG9yVHlwZTsKKyAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3IgbV9pbml0aWF0b3I7CiAgICAgUmVzb3VyY2VMb2FkVGltaW5nIG1fdGlt
aW5nOwogICAgIGRvdWJsZSBtX2ZpbmlzaFRpbWU7CiAgICAgYm9vbCBtX3Nob3VsZFJlcG9ydERl
dGFpbHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCmlu
ZGV4IDYzYmM1YWJmNDhlZGE2NGY0ZDM4Zjc3MmU4NWY3MmE4MGFjMzA2ZjAuLmZiOTczZWRhM2Vk
OTU4ZGY0MzhhZWY3ZWU1MDJlYWJiMjNlOGMwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgogCi0jaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNp
bmNsdWRlICJUZXh0Q29kZWNJQ1UuaCIKICNpbmNsdWRlICJUaHJlYWRUaW1lcnMuaCIKQEAgLTQ5
LDggKzQ4LDcgQEAgVGhyZWFkR2xvYmFsRGF0YSogVGhyZWFkR2xvYmFsRGF0YTo6c2hhcmVkTWFp
blRocmVhZFN0YXRpY0RhdGE7CiAjZW5kaWYKIAogVGhyZWFkR2xvYmFsRGF0YTo6VGhyZWFkR2xv
YmFsRGF0YSgpCi0gICAgOiBtX2NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoc3RkOjpt
YWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzPigpKQotICAgICwgbV9l
dmVudE5hbWVzKEV2ZW50TmFtZXM6OmNyZWF0ZSgpKQorICAgIDogbV9ldmVudE5hbWVzKEV2ZW50
TmFtZXM6OmNyZWF0ZSgpKQogICAgICwgbV90aHJlYWRUaW1lcnMoc3RkOjptYWtlX3VuaXF1ZTxU
aHJlYWRUaW1lcnM+KCkpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc01haW5UaHJlYWQoaXNN
YWluVGhyZWFkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRH
bG9iYWxEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgK
aW5kZXggNTcwNjY2YjI5OTNkZDljMWRhNjhkMmI3NGRiNDJkNjQ5NTA5NjQ3MC4uNGM0NTk1MTVi
MjI0MGJmOGNhYTBjYjUyNGZiZTQ0NzZlMjRiYjc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuaApAQCAtNDAsNyArNDAsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBUaHJlYWRUaW1lcnM7CiAKLSAgICBzdHJ1Y3QgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9yczsKICAgICBzdHJ1Y3QgRXZlbnROYW1lczsKICAgICBzdHJ1Y3Qg
SUNVQ29udmVydGVyV3JhcHBlcjsKICAgICBzdHJ1Y3QgVEVDQ29udmVydGVyV3JhcHBlcjsKQEAg
LTUyLDcgKzUxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBXRUJDT1JFX0VYUE9S
VCB+VGhyZWFkR2xvYmFsRGF0YSgpOwogICAgICAgICB2b2lkIGRlc3Ryb3koKTsgLy8gY2FsbGVk
IG9uIHdvcmtlcnMgdG8gY2xlYW4gdXAgdGhlIFRocmVhZEdsb2JhbERhdGEgYmVmb3JlIHRoZSB0
aHJlYWQgZXhpdHMuCiAKLSAgICAgICAgY29uc3QgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycyYgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpIHsgcmV0dXJuICptX2NhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM7IH0KICAgICAgICAgRXZlbnROYW1lcyYgZXZlbnRO
YW1lcygpIHsgcmV0dXJuICptX2V2ZW50TmFtZXM7IH0KICAgICAgICAgVGhyZWFkVGltZXJzJiB0
aHJlYWRUaW1lcnMoKSB7IHJldHVybiAqbV90aHJlYWRUaW1lcnM7IH0KIApAQCAtNjcsNyArNjUs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzPiBtX2NhY2hl
ZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVu
dE5hbWVzPiBtX2V2ZW50TmFtZXM7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRUaW1l
cnM+IG1fdGhyZWFkVGltZXJzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
LmNwcAppbmRleCBiNjdlMmU4OWY5MDgyNDZjYzE0MWU1NGQwMjcwOGNjZTA5YzdlMDBhLi5lYTA4
YTczNzNhMTc2MDE2ZTBjNjFjMWRmZTY2YTI4Yjc2MjEyYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBTVkdGRUltYWdl
RWxlbWVudDo6cmVxdWVzdEltYWdlUmVzb3VyY2UoKQogICAgIG9wdGlvbnMuc2V0Q29udGVudFNl
Y3VyaXR5UG9saWN5SW1wb3NpdGlvbihpc0luVXNlckFnZW50U2hhZG93VHJlZSgpID8gQ29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3Vy
aXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7CiAKICAgICBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCho
cmVmKCkpKSwgb3B0aW9ucyk7Ci0gICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CisgICAg
cmVxdWVzdC5zZXRJbml0aWF0b3IoU3RyaW5nKGxvY2FsTmFtZSgpKSk7CiAgICAgbV9jYWNoZWRJ
bWFnZSA9IGRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0SW1hZ2UocmVx
dWVzdCk7CiAKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggY2IwYmQxNWJhYjYxNGI2OGRkOGVjZjU0MjAw
ZjE4Njc2MjM5ZmVlMS4uOTMxMGI0ZjAzMmJmNTQ0ZTYxNDY2ZTRlYzgwMTAzMzdkY2RhN2IwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKQEAgLTEw
NSw3ICsxMDUsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6bG9hZEZvbnQoKQogCiAg
ICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlciA9IGRvY3Vt
ZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkuY29tcGxldGVVUkwoaHJlZikp
LCBvcHRpb25zKTsKLSAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CisgICAgICAg
IHJlcXVlc3Quc2V0SW5pdGlhdG9yKFN0cmluZyhsb2NhbE5hbWUoKSkpOwogICAgICAgICBtX2Nh
Y2hlZEZvbnQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci5yZXF1ZXN0Rm9udChyZXF1ZXN0LCBpc1NW
R0ZvbnRUYXJnZXQoKnRoaXMpKTsKICAgICAgICAgaWYgKG1fY2FjaGVkRm9udCkgewogICAgICAg
ICAgICAgbV9jYWNoZWRGb250LT5hZGRDbGllbnQodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAKaW5kZXggOGE5MjYzNGQyMzUxOTNhNjAwYjhiMjU3NDI0Y2EwZDJmZjRjMGFj
ZS4uNmI4MDUyNWI5ZTc4OWViZWZhMzM2OTRhNGU0Y2JiMGRkNjRkNGNiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtNTcxLDcgKzU3MSw3IEBAIHZvaWQgU1ZHVXNlRWxl
bWVudDo6dXBkYXRlRXh0ZXJuYWxEb2N1bWVudCgpCiAgICAgICAgIG9wdGlvbnMuc2V0Q29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbihpc0luVXNlckFnZW50U2hhZG93VHJlZSgpID8gQ29u
dGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNl
Y3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayk7CiAKICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBSZXNvdXJjZVJlcXVlc3QgeyBleHRlcm5hbERvY3Vt
ZW50VVJMIH0sIG9wdGlvbnMgfTsKLSAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7
CisgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKFN0cmluZyhsb2NhbE5hbWUoKSkpOwogICAg
ICAgICBtX2V4dGVybmFsRG9jdW1lbnQgPSBkb2N1bWVudCgpLmNhY2hlZFJlc291cmNlTG9hZGVy
KCkucmVxdWVzdFNWR0RvY3VtZW50KHJlcXVlc3QpOwogICAgICAgICBpZiAobV9leHRlcm5hbERv
Y3VtZW50KQogICAgICAgICAgICAgbV9leHRlcm5hbERvY3VtZW50LT5hZGRDbGllbnQodGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCAyMjRiODY1NjgzMDI5NmRh
Nzc0ODhmNGQxNjVhYjE1ZjY4ODY1MjY5Li45NDBkMWEyZmI3ZTEzOWUwYjRmMjk3NDVjYTY3Njc1
ZGZjNGYwMDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTI0LDcg
KzI0LDYgQEAKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgogCiAjaW5jbHVkZSAiQmxvYi5o
IgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRl
ICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgpAQCAtNzE1LDcgKzcxNCw3IEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
b3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPSBVc2VBY2Nlc3NDb250cm9sOwogICAg
IG9wdGlvbnMuc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbigpOwogICAgIG9wdGlvbnMu
Y29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpID8gQ29udGVu
dFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6IENvbnRlbnRTZWN1cml0
eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ29ubmVjdFNyY0RpcmVjdGl2ZTsKLSAgICBvcHRp
b25zLmluaXRpYXRvciA9IGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS54bWxodHRw
cmVxdWVzdDsKKyAgICBvcHRpb25zLmluaXRpYXRvclR5cGUgPSBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3I6OlhNTEh0dHBSZXF1ZXN0OwogCiAgICAgaWYgKG1fdGltZW91dE1pbGxpc2Vj
b25kcykgewogICAgICAgICBpZiAoIW1fYXN5bmMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjlmOTg2MWZkYWY5YTEyNmQ0
Yzg3NGI1YmJiMTFiMzI4NTZkOWZlMi4uZDA0ZGI0MGQzZDkzMzZmNjY0YjVkYzUyMzU2ZTI4OGE3
MDc1OTYxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA1LTAxICBaYW4gRG9iZXJzZWsg
IDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBDbGVhbiB1cCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QgaW5pdGlhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTE3MDY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRv
ci10eXBlLWNzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
cGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtY3NzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUt
aWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJwZXJm
L3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1p
bWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVz
b3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWltZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWxpbmstZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2Ut
dGltaW5nL2luaXRpYXRvci10eXBlLWxpbmsuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1zY3JpcHQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGlt
aW5nL2luaXRpYXRvci10eXBlLXNjcmlwdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLXhtbGh0dHByZXF1ZXN0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291
cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14bWxodHRwcmVxdWVzdC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2VzL2lmcmFtZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNi0wNC0zMCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgSURMXSBQYXNzIGV2ZW4gbW9yZSB0eXBl
cyBieSByZWZlcmVuY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVy
Zi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtY3NzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUt
Y3NzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODVmYjdkYzMwYjIwY2FhMTJlODE1YjRkMjU5
NjM4ZWMzNzg3YTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1jc3MtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNyBAQAorRGVzY3JpcHRpb24KKworVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgaW5p
dGlhdG9yVHlwZSBhdHRyaWJ1dGUgZm9yIGEgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBvYmpl
Y3QgcmVwcmVzZW50aW5nIGEgcmVzb3VyY2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5pdGlhdGVk
IGJ5IHRoZSBDU1MgdXJsKCkgc3ludGF4LgorCisKK1BBU1MgJ2NzcycgaW5pdGlhdG9yIHR5cGUg
Zm9yIGVudHJ5ICdodHRwOi8vMTI3LjAuMC4xOjgwMDAvd2VicGVyZi9yZXNvdXJjZXMvYWJlLnBu
ZycgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJj
ZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWNzcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU1ZDhlMTM4NGM2MTE1YTU4ODY1MzU3MTcxMmZlNzEyYWY0YTQ5M2QKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2lu
aXRpYXRvci10eXBlLWNzcy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5jc3MiIC8+Cis8c2NyaXB0Pgorc2V0dXAoe3RpbWVvdXQ6IDIwMDAs
IGV4cGxpY2l0X2RvbmU6IHRydWV9KTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgdmFy
IHRlc3RlZEVudHJ5TmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAiL3dlYnBlcmYvcmVz
b3VyY2VzL2FiZS5wbmciOworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBlbnRy
aWVzID0gd2luZG93LnBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeU5hbWUodGVzdGVkRW50
cnlOYW1lKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyaWVzLmxlbmd0aCwgMSk7CisKKyAg
ICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1swXTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRy
eS5uYW1lLCB0ZXN0ZWRFbnRyeU5hbWUpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5Lmlu
aXRpYXRvclR5cGUsICJjc3MiKTsKKyAgICB9LCAiJ2NzcycgaW5pdGlhdG9yIHR5cGUgZm9yIGVu
dHJ5ICciICsgdGVzdGVkRW50cnlOYW1lICsgIiciKTsKKworICAgIGRvbmUoKTsKK30KKzwvc2Ny
aXB0PgorPHN0eWxlPgorZGl2IHsKKyAgICBiYWNrZ3JvdW5kOiB1cmwoJy93ZWJwZXJmL3Jlc291
cmNlcy9hYmUucG5nJyk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0cygpIj4KKzxoMT5EZXNjcmlwdGlvbjwvaDE+Cis8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRo
ZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
IG9iamVjdAorcmVwcmVzZW50aW5nIGEgcmVzb3VyY2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5p
dGlhdGVkIGJ5IHRoZSBDU1MgdXJsKCkgc3ludGF4LjwvcD4KKzxkaXYgaWQ9InRlc3REaXYiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1pZnJhbWUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0
aWF0b3ItdHlwZS1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhZjE4YzNhZjk5MWEy
ZDUxNmI5NTQ4NjY0ODFhYjc1NjJiN2NiNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWlmcmFt
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3Qg
dmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5jZVJl
c291cmNlVGltaW5nIG9iamVjdCByZXByZXNlbnRpbmcgYSByZXNvdXJjZSBvZiB3aGljaCByZXF1
ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIEhUTUwgPGlmcmFtZT4gZWxlbWVudC4KKworCisKK1BB
U1MgJ2lmcmFtZScgaW5pdGlhdG9yIHR5cGUgZm9yIGVudHJ5ICdodHRwOi8vMTI3LjAuMC4xOjgw
MDAvd2VicGVyZi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwnIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWlm
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWlu
Zy9pbml0aWF0b3ItdHlwZS1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTI4NzA2MjU1MzlhNzdi
MzhhZmY5OWJjMmMyYmYwZGYyNjZjNzZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1pZnJhbWUu
aHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
Y3NzIiAvPgorPHNjcmlwdD4KK3NldHVwKHt0aW1lb3V0OiAyMDAwLCBleHBsaWNpdF9kb25lOiB0
cnVlfSk7CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIHZhciBpZnJhbWUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBpZnJhbWUuc3JjID0gIi93ZWJwZXJmL3Jl
c291cmNlcy9pZnJhbWUuaHRtbCI7CisgICAgaWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIHRlc3RlZEVu
dHJ5TmFtZSA9IGlmcmFtZS5zcmM7CisgICAgICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIHZhciBlbnRyaWVzID0gd2luZG93LnBlcmZvcm1hbmNlLndlYmtpdEdldEVu
dHJpZXNCeU5hbWUodGVzdGVkRW50cnlOYW1lKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGVudHJpZXMubGVuZ3RoLCAxKTsKKworICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IGVu
dHJpZXNbMF07CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5uYW1lLCB0ZXN0
ZWRFbnRyeU5hbWUpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkuaW5pdGlh
dG9yVHlwZSwgImlmcmFtZSIpOworICAgICAgICAgICAgfSwgIidpZnJhbWUnIGluaXRpYXRvciB0
eXBlIGZvciBlbnRyeSAnIiArIHRlc3RlZEVudHJ5TmFtZSArICInIik7CisgICAgICAgICAgICBk
b25lKCk7CisgICAgICAgIH0sIDIwMCk7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyYW1lKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0cygpIj4KKzxoMT5EZXNjcmlwdGlvbjwvaDE+Cis8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRo
ZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
IG9iamVjdCByZXByZXNlbnRpbmcKK2EgcmVzb3VyY2Ugb2Ygd2hpY2ggcmVxdWVzdCB3YXMgaW5p
dGlhdGVkIGJ5IHRoZSBIVE1MICYjeDAwM2M7aWZyYW1lJiN4MDAzZTsgZWxlbWVudC48L3A+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBl
cmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLWltZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBl
LWltZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBjMGNkMzkwMmZiNmI5OGQxZDE4OWFhMmU0
MWVjODYzZjgxM2M3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtaW1nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDggQEAKK0Rlc2NyaXB0aW9uCisKK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGlu
aXRpYXRvclR5cGUgYXR0cmlidXRlIGZvciBhIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgb2Jq
ZWN0IHJlcHJlc2VudGluZyBhIHJlc291cmNlIG9mIHdoaWNoIHJlcXVlc3Qgd2FzIGluaXRpYXRl
ZCBieSB0aGUgSFRNTCA8aW1nPiBlbGVtZW50LgorCisKKworUEFTUyAnaW1nJyBpbml0aWF0b3Ig
dHlwZSBmb3IgZW50cnkgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC93ZWJwZXJmL3Jlc291cmNlcy9h
YmUucG5nJyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jl
c291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1pbWcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtaW1nLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTU5NjU0MzM2MjExZWUyNGE2MDgzZGEzMTI3ZDcwZDFmY2E5MjJmYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1p
bmcvaW5pdGlhdG9yLXR5cGUtaW1nLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyIgLz4KKzxzY3JpcHQ+CitzZXR1cCh7dGltZW91dDog
MjAwMCwgZXhwbGljaXRfZG9uZTogdHJ1ZX0pOworCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAg
ICB2YXIgdGVzdGVkRW50cnlOYW1lID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICIvd2VicGVy
Zi9yZXNvdXJjZXMvYWJlLnBuZyI7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFy
IGVudHJpZXMgPSB3aW5kb3cucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5TmFtZSh0ZXN0
ZWRFbnRyeU5hbWUpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGVudHJpZXMubGVuZ3RoLCAxKTsK
KworICAgICAgICB2YXIgZW50cnkgPSBlbnRyaWVzWzBdOworICAgICAgICBhc3NlcnRfZXF1YWxz
KGVudHJ5Lm5hbWUsIHRlc3RlZEVudHJ5TmFtZSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50
cnkuaW5pdGlhdG9yVHlwZSwgImltZyIpOworICAgIH0sICInaW1nJyBpbml0aWF0b3IgdHlwZSBm
b3IgZW50cnkgJyIgKyB0ZXN0ZWRFbnRyeU5hbWUgKyAiJyIpOworCisgICAgZG9uZSgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorPGgxPkRlc2Ny
aXB0aW9uPC9oMT4KKzxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGluaXRpYXRvclR5cGUgYXR0
cmlidXRlIGZvciBhIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgb2JqZWN0CityZXByZXNlbnRp
bmcgYSByZXNvdXJjZSBvZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIEhUTUwg
JiN4MDAzYztpbWcmI3gwMDNlOyBlbGVtZW50LjwvcD4KKzxpbWcgc3JjPSIvd2VicGVyZi9yZXNv
dXJjZXMvYWJlLnBuZyI+PC9pbWc+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBl
LWxpbmstZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291
cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1saW5rLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
Y2U0OWIzY2UyYmEyYTVhOTY2NjE0YzFkOWM0NDI4ZWVmOTVmZWUyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0
b3ItdHlwZS1saW5rLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0Rlc2NyaXB0aW9uCisK
K1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGluaXRpYXRvclR5cGUgYXR0cmlidXRlIGZvciBhIFBl
cmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcgb2JqZWN0IHJlcHJlc2VudGluZyBhIHJlc291cmNlIG9m
IHdoaWNoIHJlcXVlc3Qgd2FzIGluaXRpYXRlZCBieSB0aGUgSFRNTCA8bGluaz4gZWxlbWVudC4K
KworCitQQVNTICdsaW5rJyBpbml0aWF0b3IgdHlwZSBmb3IgZW50cnkgJ2h0dHA6Ly8xMjcuMC4w
LjE6ODAwMC93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcycgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5
cGUtbGluay5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRp
bWluZy9pbml0aWF0b3ItdHlwZS1saW5rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk1ZjE0MmNiNjhhNTAz
NDBlOTJlNjY2YzVlMGExMzA2ODVjNDNiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcvaW5pdGlhdG9yLXR5cGUtbGluay5o
dG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5j
c3MiIC8+Cis8c2NyaXB0Pgorc2V0dXAoe3RpbWVvdXQ6IDIwMDAsIGV4cGxpY2l0X2RvbmU6IHRy
dWV9KTsKKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgICAgdmFyIHRlc3RlZEVudHJ5TmFtZSA9
IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAiL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3Nz
IjsKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgZW50cmllcyA9IHdpbmRvdy5w
ZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlOYW1lKHRlc3RlZEVudHJ5TmFtZSk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoZW50cmllcy5sZW5ndGgsIDEpOworCisgICAgICAgIHZhciBlbnRy
eSA9IGVudHJpZXNbMF07CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkubmFtZSwgdGVzdGVk
RW50cnlOYW1lKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5pbml0aWF0b3JUeXBlLCAi
bGluayIpOworICAgIH0sICInbGluaycgaW5pdGlhdG9yIHR5cGUgZm9yIGVudHJ5ICciICsgdGVz
dGVkRW50cnlOYW1lICsgIiciKTsKKworICAgIGRvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KKzxoMT5EZXNjcmlwdGlvbjwvaDE+Cis8cD5U
aGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJm
b3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdAorcmVwcmVzZW50aW5nIGEgcmVzb3VyY2Ugb2Yg
d2hpY2ggcmVxdWVzdCB3YXMgaW5pdGlhdGVkIGJ5IHRoZSBIVE1MICYjeDAwM2M7bGluayYjeDAw
M2U7IGVsZW1lbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1zY3Jp
cHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNl
LXRpbWluZy9pbml0aWF0b3ItdHlwZS1zY3JpcHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3
MGEyYzQ2Yjc1NjBmYWY1MzkwNWVjNDAyM2VmZWY1ZTg3MzNiZjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRv
ci10eXBlLXNjcmlwdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitEZXNjcmlwdGlvbgor
CitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQ
ZXJmb3JtYW5jZVJlc291cmNlVGltaW5nIG9iamVjdCByZXByZXNlbnRpbmcgYSByZXNvdXJjZSBv
ZiB3aGljaCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIEhUTUwgPHNjcmlwdD4gZWxlbWVu
dC4KKworCitQQVNTICdzY3JpcHQnIGluaXRpYXRvciB0eXBlIGZvciBlbnRyeSAnaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRv
ci10eXBlLXNjcmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291
cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS1zY3JpcHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMTAyZjFh
NTI2MTVlYWUxNTg2ZjA5ZDQwMjJjMTc3NWQ0YjA5Yzg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlw
ZS1zY3JpcHQuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3czYy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuY3NzIiAvPgorPHNjcmlwdD4KK3NldHVwKHt0aW1lb3V0OiAyMDAwLCBleHBsaWNp
dF9kb25lOiB0cnVlfSk7CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIHZhciB0ZXN0ZWRF
bnRyeU5hbWUgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgIi93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIjsKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgZW50cmllcyA9
IHdpbmRvdy5wZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlOYW1lKHRlc3RlZEVudHJ5TmFt
ZSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cmllcy5sZW5ndGgsIDEpOworCisgICAgICAg
IHZhciBlbnRyeSA9IGVudHJpZXNbMF07CisgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnkubmFt
ZSwgdGVzdGVkRW50cnlOYW1lKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5pbml0aWF0
b3JUeXBlLCAic2NyaXB0Iik7CisgICAgfSwgIidzY3JpcHQnIGluaXRpYXRvciB0eXBlIGZvciBl
bnRyeSAnIiArIHRlc3RlZEVudHJ5TmFtZSArICInIik7CisKKyAgICBkb25lKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Cis8aDE+RGVzY3JpcHRp
b248L2gxPgorPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgaW5pdGlhdG9yVHlwZSBhdHRyaWJ1
dGUgZm9yIGEgUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyBvYmplY3QKK3JlcHJlc2VudGluZyBh
IHJlc291cmNlIG9mIHdoaWNoIHJlcXVlc3Qgd2FzIGluaXRpYXRlZCBieSB0aGUgSFRNTCAmI3gw
MDNjO3NjcmlwdCYjeDAwM2U7IGVsZW1lbnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0
aWF0b3ItdHlwZS14bWxodHRwcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLXhtbGh0dHByZXF1
ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODE5Y2I2Y2RmODViZGMyZGQ1OWVjMGM2MjE0
NDUzNTc5MzYyZGJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14bWxodHRwcmVxdWVzdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitEZXNjcmlwdGlvbgorCitUaGlzIHRlc3QgdmFsaWRh
dGVzIHRoZSBpbml0aWF0b3JUeXBlIGF0dHJpYnV0ZSBmb3IgYSBQZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nIG9iamVjdCByZXByZXNlbnRpbmcgYSByZXNvdXJjZSBvZiB3aGljaCByZXF1ZXN0IHdh
cyBpbml0aWF0ZWQgYnkgdGhlIFhNTEh0dHBSZXF1ZXN0LgorCisKK1BBU1MgJ3htbGh0dHByZXF1
ZXN0JyBpbml0aWF0b3IgdHlwZSBmb3IgZW50cnkgJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC93ZWJw
ZXJmL3Jlc291cmNlcy9hYmUucG5nJyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9pbml0aWF0b3ItdHlwZS14bWxodHRwcmVxdWVz
dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZy9p
bml0aWF0b3ItdHlwZS14bWxodHRwcmVxdWVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3MWM0OGZiZTMw
MTliOTgzZjJiMGZhNjk0MDdkY2E2ZTIxZmEzNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVzb3VyY2UtdGltaW5nL2luaXRpYXRvci10eXBlLXht
bGh0dHByZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii93M2MvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmNzcyIgLz4KKzxzY3JpcHQ+CitzZXR1cCh7dGltZW91dDogMjAwMCwgZXhw
bGljaXRfZG9uZTogdHJ1ZX0pOworCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICB2YXIgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgdmFyIHRlc3RlZEVudHJ5TmFtZSA9IHdpbmRv
dy5sb2NhdGlvbi5vcmlnaW4gKyAiL3dlYnBlcmYvcmVzb3VyY2VzL2FiZS5wbmciOworICAgIHho
ci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdmFyIGVudHJp
ZXMgPSB3aW5kb3cucGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5TmFtZSh0ZXN0ZWRFbnRy
eU5hbWUpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cmllcy5sZW5ndGgsIDEp
OworCisgICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1swXTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGVudHJ5Lm5hbWUsIHRlc3RlZEVudHJ5TmFtZSk7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlbnRyeS5pbml0aWF0b3JUeXBlLCAieG1saHR0cHJlcXVl
c3QiKTsKKyAgICAgICAgICAgIH0sICIneG1saHR0cHJlcXVlc3QnIGluaXRpYXRvciB0eXBlIGZv
ciBlbnRyeSAnIiArIHRlc3RlZEVudHJ5TmFtZSArICInIik7CisgICAgICAgICAgICBkb25lKCk7
CisgICAgICAgIH0sIDIwMCk7CisgICAgfTsKKyAgICB4aHIub3BlbigiR0VUIiwgdGVzdGVkRW50
cnlOYW1lLCB0cnVlKTsKKyAgICB4aHIuc2VuZCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCkiPgorPGgxPkRlc2NyaXB0aW9uPC9oMT4KKzxwPlRoaXMg
dGVzdCB2YWxpZGF0ZXMgdGhlIGluaXRpYXRvclR5cGUgYXR0cmlidXRlIGZvciBhIFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmcgb2JqZWN0CityZXByZXNlbnRpbmcgYSByZXNvdXJjZSBvZiB3aGlj
aCByZXF1ZXN0IHdhcyBpbml0aWF0ZWQgYnkgdGhlIFhNTEh0dHBSZXF1ZXN0LjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2VicGVyZi9y
ZXNvdXJjZXMvaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnBlcmYvcmVz
b3VyY2VzL2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmYjlmMDQwZmQwYTdmNTdlNGMyMzUwOWEw
OGI3MWQyMzkxNjAzNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnBlcmYvcmVzb3VyY2VzL2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsNiBAQAorPGh0bWw+Cis8
aGVhZD4KKzxib2R5PgorVGVzdCBmcmFtZS4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWJiZDQ2N2I4NWUzY2VkYzE3Nzhi
MjFlYTVmOTNlN2Y1YTIxZDg0My4uOTNhNGEwMmRmNDMyMGFjMzc5NDIxMTU0NmIxZTZjMzhhZmQy
MGJlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2
ODIsNiArMTY4Miw3IEBAIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rlc3RzL3czYy93ZWJwZXJm
L3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcgWyBTa2lwIF0KIAogIyBSZXNvdXJjZSBUaW1p
bmcgaXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCiB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90
ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZyBbIFNraXAg
XQord2Via2l0Lm9yZy9iLzYxMTM4IGh0dHAvdGVzdHMvd2VicGVyZi9yZXNvdXJjZS10aW1pbmcg
WyBTa2lwIF0KIAogIyBUZXN0cyB0aGF0IGNyZWF0ZSBhbiBleHRyYSBncmFwaGljcyBsYXllcgog
d2Via2l0Lm9yZy9iLzEwMjY5NyBjb21wb3NpdGluZy9vdmVyZmxvdy9vdmVyZmxvdy1hdXRvLXdp
dGgtdG91Y2gtbm8tb3ZlcmZsb3cuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlMTVkN2E2NDgyOTdiMThhYTc3NWE0Njc1NGRh
MDIzNzI5Y2EyMjUxLi5mODllNDJiMTU4Y2Y3NDQ2YTg4YzQ5MmZkZGYzNzQ4YTE0YTVhYzIyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTg3LDYgKzU4
Nyw3IEBAIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vSW50ZWwvdXNlci10aW1pbmcgWyBTa2lwIF0KIAogIyBUT0RPIFJlc291cmNlIFRpbWluZyBp
cyBub3QgZW5hYmxlIHlldCwgc2tpcCBpdC4KIHdlYmtpdC5vcmcvYi82MTEzOCBodHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nIFsgU2tpcCBdCit3
ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0cy93ZWJwZXJmL3Jlc291cmNlLXRpbWluZyBbIFNr
aXAgXQogCiAjIE5lZWQgc3VwcG9ydCBmb3IgUmVzb3VyY2VIYW5kbGU6OmRpZENoYW5nZVByaW9y
aXR5IGFuZCBEUlQgc3VwcG9ydAogd2Via2l0Lm9yZy9iLzExMTAxNiBodHRwL3Rlc3RzL2xvYWRp
bmcvcHJvbW90ZS1pbWctcHJlbG9hZC1wcmlvcml0eS5odG1sIFsgU2tpcCBdICMgQ3Jhc2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>