<?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>221586</bug_id>
          
          <creation_ts>2021-02-08 16:37:27 -0800</creation_ts>
          <short_desc>REGRESSION(r272480): Caused assertion failure seen with EME tests</short_desc>
          <delta_ts>2021-02-08 16:44:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>221187</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>jer.noble</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1726885</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-02-08 16:37:27 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/272480 broke the build:
Caused assertion failure seen with EME tests

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726887</commentid>
    <comment_count>1</comment_count>
      <attachid>419654</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-02-08 16:37:42 -0800</bug_when>
    <thetext>Created attachment 419654
REVERT of r272480

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726888</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-02-08 16:41:31 -0800</bug_when>
    <thetext>Here is the (long) backtrace for the EME test crash seen on Apple internal bots:

ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key)
/Volumes/Data/worker/build/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/HashTable.h(649) : void WTF::HashTable&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;&gt;&gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;, WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;&gt;&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;&gt;::checkKey(const T &amp;) [Key = WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, Value = WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;&gt;, Extractor = WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;&gt;&gt;, HashFunctions = WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;, Traits = WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;&gt;&gt;::KeyValuePairTraits, KeyTraits = WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;, HashTranslator = WTF::HashMapTranslator&lt;WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt;&gt;&gt;&gt;::KeyValuePairTraits, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&gt;&gt;, T = WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;]
1   0x1356b72cc WTFCrash
2   0x104cb6f24 WTF::StringImpl::at(unsigned int) const
3   0x1067ce78c void WTF::HashTable&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt; &gt;::checkKey&lt;WTF::HashMapTranslator&lt;WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt; &gt;, WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;(WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; const&amp;)
4   0x1067ce47c WTF::HashTableAddResult&lt;WTF::HashTableIterator&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt; &gt; &gt; WTF::HashTable&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt; &gt;::add&lt;WTF::HashMapTranslator&lt;WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt; &gt;, WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt;(WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&amp;&amp;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;&amp;&amp;)
5   0x1067ce3f8 WTF::HashTableAddResult&lt;WTF::HashTableIterator&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt; &gt; &gt; WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;::inlineAdd&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt;(WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&amp;&amp;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;&amp;&amp;)
6   0x1067b5fc4 WTF::HashTableAddResult&lt;WTF::HashTableIterator&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt; &gt; &gt; WTF::HashMap&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;, WTF::DefaultHash&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt; &gt;, WTF::HashTraits&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt; &gt;::add&lt;WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt; &gt;(WTF::ObjectIdentifier&lt;WebCore::MediaKeySystemRequestIdentifierType&gt;&amp;&amp;, WTF::Ref&lt;WebCore::MediaKeySystemRequest, WTF::RawPtrTraits&lt;WebCore::MediaKeySystemRequest&gt; &gt;&amp;&amp;)
7   0x1067b5c38 WebKit::MediaKeySystemPermissionRequestManager::sendMediaKeySystemRequest(WebCore::MediaKeySystemRequest&amp;)
8   0x1067b5aa4 WebKit::MediaKeySystemPermissionRequestManager::startMediaKeySystemRequest(WebCore::MediaKeySystemRequest&amp;)
9   0x106b17798 WebKit::WebMediaKeySystemClient::requestMediaKeySystem(WebCore::MediaKeySystemRequest&amp;)
10  0x1150bc79c WebCore::MediaKeySystemController::requestMediaKeySystem(WebCore::MediaKeySystemRequest&amp;)
11  0x1150bc65c WebCore::MediaKeySystemRequest::start()
12  0x1151961b8 WebCore::NavigatorEME::requestMediaKeySystemAccess(WebCore::Navigator&amp;, WebCore::Document&amp;, WTF::String const&amp;, WTF::Vector&lt;WebCore::CDMKeySystemConfiguration, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)
13  0x115d7c6fc WebCore::jsNavigatorPrototypeFunction_requestMediaKeySystemAccessBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNavigator*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)
14  0x115d7fb70 long long WebCore::IDLOperationReturningPromise&lt;WebCore::JSNavigator&gt;::call&lt;&amp;(WebCore::jsNavigatorPrototypeFunction_requestMediaKeySystemAccessBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNavigator*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)), (WebCore::CastedThisErrorBehavior)2&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*)::&apos;lambda&apos;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)::operator()(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;) const
15  0x115d7c8b4 JSC::JSValue WebCore::callPromiseFunction&lt;long long WebCore::IDLOperationReturningPromise&lt;WebCore::JSNavigator&gt;::call&lt;&amp;(WebCore::jsNavigatorPrototypeFunction_requestMediaKeySystemAccessBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNavigator*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)), (WebCore::CastedThisErrorBehavior)2&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*)::&apos;lambda&apos;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, &amp;(WebCore::jsNavigatorPrototypeFunction_requestMediaKeySystemAccessBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNavigator*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)))
16  0x115d7c39c long long WebCore::IDLOperationReturningPromise&lt;WebCore::JSNavigator&gt;::call&lt;&amp;(WebCore::jsNavigatorPrototypeFunction_requestMediaKeySystemAccessBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSNavigator*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)), (WebCore::CastedThisErrorBehavior)2&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*)
17  0x115d770f4 WebCore::jsNavigatorPrototypeFunction_requestMediaKeySystemAccess(JSC::JSGlobalObject*, JSC::CallFrame*)
18  0x280004c04
19  0x2800041e8
20  0x2800041e8
21  0x2800041e8
22  0x280004728
23  0x1371cd77c JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
24  0x136a8b2dc JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)
25  0x136e092f4 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)
26  0x136e093c4 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
27  0x136e096f0 JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
28  0x1176a06ac WebCore::JSExecState::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
29  0x1176026e8 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&amp;, WebCore::Event&amp;)
30  0x117d67240 WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&amp;, WTF::Vector&lt;WTF::RefPtr&lt;WebCore::RegisteredEventListener, WTF::RawPtrTraits&lt;WebCore::RegisteredEventListener&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::RegisteredEventListener&gt; &gt;, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;, WebCore::EventTarget::EventInvokePhase)
31  0x117d631f4 WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase)
LEAK: 1 WebPageProxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726889</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-02-08 16:42:35 -0800</bug_when>
    <thetext>&lt;rdar://74119248&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726890</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-08 16:43:52 -0800</bug_when>
    <thetext>Committed r272561: &lt;https://commits.webkit.org/r272561&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419654.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726891</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-08 16:44:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/74120289&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419654</attachid>
            <date>2021-02-08 16:37:42 -0800</date>
            <delta_ts>2021-02-08 16:43:53 -0800</delta_ts>
            <desc>REVERT of r272480</desc>
            <filename>bug-221586-20210209003741.patch</filename>
            <type>text/plain</type>
            <size>133236</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTVkOGU4ZDBlZjQ5MWFk
MDU2NjcwMWEyMmEzNmFkYTI1Mjk1MGFjMy4uMTMyMDJlYjllMjJhYTJlYWQ3Yzc2OGNmMzhiYzYy
ZDQxZDgxZTgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAyLTA4ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI3MjQ4MCwgcjI3MjQ4MSwgYW5kIHIyNzI1MDAuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE1ODYKKworICAgICAgICBDYXVz
ZWQgYXNzZXJ0aW9uIGZhaWx1cmUgc2VlbiB3aXRoIEVNRSB0ZXN0cworCisgICAgICAgIFJldmVy
dGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIlBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1l
ZGlhS2V5U3lzdGVtIGFjY2VzcyBzdXBwb3J0IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8yNzI0ODAKKworICAgICAgICAiVW5yZXZpZXdlZCwgYnVpbGQgZml4IGFm
dGVyIHIyNzI0ODAiCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8y
NzI0ODEKKworICAgICAgICAiUGVybWlzc2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0
ZW0gYWNjZXNzIHN1cHBvcnQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjExODcKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzI3MjUwMAorCiAyMDIxLTAyLTA4ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29u
eS5jb20+CiAKICAgICAgICAgRml4IE1TVkMgYnVpbGQgd2l0aCBFTkNSWVBURURfTUVESUEgZW5h
YmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0Y2U0N2YyMzlmNjhlZDE4ZDE3NDJlNTBlZjhmYzUwODlhN2RmYjMy
Li5hNzliNWQ0NDMwYmI1OTE4N2RhM2YzZDU1ZjljY2YyZTY5MTJhMzA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDIxLTAyLTA4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3MjQ4MCwgcjI3MjQ4
MSwgYW5kIHIyNzI1MDAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE1ODYKKworICAgICAgICBDYXVzZWQgYXNzZXJ0aW9uIGZhaWx1cmUgc2VlbiB3
aXRoIEVNRSB0ZXN0cworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAg
IlBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lzdGVtIGFjY2VzcyBzdXBwb3J0
IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3
CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzI0ODAKKworICAg
ICAgICAiVW5yZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIHIyNzI0ODAiCisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzI0ODEKKworICAgICAgICAiUGVybWlzc2lv
biByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjExODcKKyAgICAgICAg
aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI3MjUwMAorCiAyMDIxLTAyLTA4ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIHdp
dGggcmVtb3RlIGxheWVyIHRyZWUgbG9nZ2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCA0Y2I3
YmY1ODI1NDY2OWIyYTFlOWIzZmQ5YTI4MjdiNjAzMjM0OWQxLi4wNjRkMTliZThmM2M2NzUzMTY1
OGNjMTg1Yjg1NmY0NmViM2E2YTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDIxLTAyLTA4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4K
KworICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3MjQ4MCwgcjI3MjQ4MSwgYW5kIHIy
NzI1MDAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjE1ODYKKworICAgICAgICBDYXVzZWQgYXNzZXJ0aW9uIGZhaWx1cmUgc2VlbiB3aXRoIEVNRSB0
ZXN0cworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIlBlcm1pc3Np
b24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lzdGVtIGFjY2VzcyBzdXBwb3J0IgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisgICAgICAg
IGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzI0ODAKKworICAgICAgICAiVW5y
ZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIHIyNzI0ODAiCisgICAgICAgIGh0dHBzOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8yNzI0ODEKKworICAgICAgICAiUGVybWlzc2lvbiByZXF1ZXN0
IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjExODcKKyAgICAgICAgaHR0cHM6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI3MjUwMAorCiAyMDIxLTAxLTIyICBTYW0gV2Vpbmln
ICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZ2VuZXJhdGUtcHJlZmVyZW5j
ZXMuc2ggZnJvbSB0aGUgV2ViS2l0TGVnYWN5IHRhcmdldCBzbyBpdCBkb2Vzbid0IGdldCBpbmNs
dWRlZCBpbiB0aGUgZnJhbWV3b3JrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzM5
MWRiZmUyNzM0NzA5YzU1YjJlZmQ3MzNmNTg1MWViNjM2MzQzMi4uODk5ZmU1ZjdiZDZkMzEzNzk1
YjY0Y2E3YTk3NzBmOTMzY2M0ZDI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDIxLTAyLTA4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3MjQ4MCwgcjI3MjQ4
MSwgYW5kIHIyNzI1MDAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjE1ODYKKworICAgICAgICBDYXVzZWQgYXNzZXJ0aW9uIGZhaWx1cmUgc2VlbiB3
aXRoIEVNRSB0ZXN0cworCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAg
IlBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lzdGVtIGFjY2VzcyBzdXBwb3J0
IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3
CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzI0ODAKKworICAg
ICAgICAiVW5yZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIHIyNzI0ODAiCisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzI0ODEKKworICAgICAgICAiUGVybWlzc2lv
biByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQiCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjExODcKKyAgICAgICAg
aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI3MjUwMAorCiAyMDIxLTAyLTA4ICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHRoZSBVc2Vy
Q29udGVudENvbnRyb2xsZXIgZm9yIFNlcnZpY2VXb3JrZXIgcGFnZXMgYmUgbm9uLW9wdGlvbmFs
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0ZmNkMmM4YWJmNDJlYmY0NWNjMmQ5Nzg5NGRhZDA2
ZTg0ZGU3MzU5Li5kZDA1OTkyYmFjNmRiMmE5OTllOWVlNzJmMTMxZDIyY2M2NWM3Yjc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5OCw4ICsxNDk4LDYgQEAgaWYgKEVOQUJMRV9FTkNSWVBU
RURfTUVESUEpCiAgICAgICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9u
LmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3RhdHVzTWFwLmNw
cAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQWNjZXNzLmNw
cAotICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5jcHAKLSAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVl
c3QuY3BwCiAgICAgICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAogICAg
ICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5jcHAKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKaW5kZXggNzFhZmZmZThkYmU3YzI5NjlmNDdlOGRlZTYwMGM0ZDZjMDJhNGFhYS4uMzcy
OGFiZTBlNmFlYmFkMGY0NmVjNGRmNGUwYWYzNGVkMjM4MTI3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CkBAIC0yNCw5ICsyNCw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBNb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzUmVxdWVzdERhdGEuaAogCiAgICAg
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1DbGllbnQuaAotICAgIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQuaAotICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgKLSAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtUmVxdWVzdC5oCiAKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1
bWVyLmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keVNvdXJjZS5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVt
Q2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1YmUzZjM1Yjk0NzY0ODM0
OTMxN2VjY2E3Nzc5M2RiOThkOWVkOGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleVN5c3RlbUNsaWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotCi0jaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIFBhZ2U7
Ci1jbGFzcyBNZWRpYUtleVN5c3RlbVJlcXVlc3Q7Ci0KLWNsYXNzIE1lZGlhS2V5U3lzdGVtQ2xp
ZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhS2V5U3lzdGVtQ2xpZW50PiB7Ci1wdWJs
aWM6Ci0gICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSA9IDA7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lz
dGVtUmVxdWVzdCYpID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfk1lZGlhS2V5U3lz
dGVtQ2xpZW50KCkgPSBkZWZhdWx0OwotfTsKLQotV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92aWRl
TWVkaWFLZXlTeXN0ZW1UbyhQYWdlJiwgTWVkaWFLZXlTeXN0ZW1DbGllbnQmKTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMTYzOGIzNTNiNWZiMGZiZmEwMzY4ZDVkMDEyNjFjZmMxMTgzNjA3MS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBT
LkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQot
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
Ci0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyLmgiCi0KLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotCi0jaW5j
bHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGZWF0
dXJlUG9saWN5LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJIVE1MSUZyYW1lRWxl
bWVudC5oIgotI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oIgotI2luY2x1ZGUgIlBh
Z2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jb25zdCBjaGFyKiBNZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKLXsKLSAgICByZXR1cm4gIk1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlciI7Ci19Ci0KLU1lZGlhS2V5U3lzdGVtQ29udHJvbGxlciogTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyOjpmcm9tKFBhZ2UqIHBhZ2UpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFn
ZSwgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpKSk7Ci19Ci0KLU1l
ZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKE1lZGlhS2V5
U3lzdGVtQ2xpZW50JiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQp
KQotewotfQotCi1NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6On5NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIoKQotewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnBhZ2VEZXN0
cm95ZWQoKTsKLX0KLQotdm9pZCBwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhQYWdlJiBwYWdlLCBN
ZWRpYUtleVN5c3RlbUNsaWVudCYgY2xpZW50KQotewotICAgIE1lZGlhS2V5U3lzdGVtQ29udHJv
bGxlcjo6cHJvdmlkZVRvKCZwYWdlLCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1l
bnROYW1lKCksIG1ha2VVbmlxdWU8TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyPihjbGllbnQpKTsK
LX0KLQotdm9pZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmxvZ1JlcXVlc3RNZWRpYUtleVN5
c3RlbURlbmlhbChEb2N1bWVudCYgZG9jdW1lbnQpCi17Ci0gICAgaWYgKGF1dG8qIHdpbmRvdyA9
IGRvY3VtZW50LmRvbVdpbmRvdygpKQotICAgICAgICB3aW5kb3ctPnByaW50RXJyb3JNZXNzYWdl
KG1ha2VTdHJpbmcoIk5vdCBhbGxvd2VkIHRvIGFjY2VzcyBNZWRpYUtleVN5c3RlbS4iKSk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYmFmMDVjNWQ5ODI2OTk1MjM2ZjZkYjFmMDY5N2JlMmU5YmE2YWY3MS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEg
Uy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQotCi0jaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCIKLSNpbmNsdWRlICJTdXBw
bGVtZW50YWJsZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE1lZGlhS2V5U3lz
dGVtUmVxdWVzdDsKLQotY2xhc3MgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyIDogcHVibGljIFN1
cHBsZW1lbnQ8UGFnZT4gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgot
ICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcihNZWRpYUtleVN5c3RlbUNsaWVu
dCYpOwotICAgIH5NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIoKTsKLQotICAgIHZvaWQgcmVxdWVz
dE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOwotICAgIHZvaWQgY2FuY2Vs
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOwotCi0gICAgdm9p
ZCBsb2dSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1EZW5pYWwoRG9jdW1lbnQmKTsKLQotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwotICAgIHN0YXRp
YyBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIqIGZyb20oUGFnZSopOwotCi1wcml2YXRlOgotICAg
IFdlYWtQdHI8TWVkaWFLZXlTeXN0ZW1DbGllbnQ+IG1fY2xpZW50OwotfTsKLQotaW5saW5lIHZv
aWQgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAg
bV9jbGllbnQtPnJlcXVlc3RNZWRpYUtleVN5c3RlbShyZXF1ZXN0KTsKLX0KLQotaW5saW5lIHZv
aWQgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3Qo
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIGlmIChtX2NsaWVudCkKLSAg
ICAgICAgbV9jbGllbnQtPmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTY2OTcxNWU1ZGU3MmY5NjQ3YmMwZWM5M2JlNTVlYThkOGYzNWUzZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxMjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEg
Uy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhS2V5
U3lzdGVtUmVxdWVzdC5oIgotCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLQotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJKU0RPTVByb21p
c2VEZWZlcnJlZC5oIgotI2luY2x1ZGUgIkpTTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaCIKLSNpbmNs
dWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgiCi0j
aW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCi0jaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKLSNpbmNsdWRlICJXaW5kb3dFdmVudExvb3AuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1SZWY8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0PiBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCi17Ci0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigq
bmV3IE1lZGlhS2V5U3lzdGVtUmVxdWVzdChkb2N1bWVudCwga2V5U3lzdGVtLCBXVEZNb3ZlKHBy
b21pc2UpKSk7Ci0gICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKLSAgICByZXR1cm4gcmVz
dWx0OwotfQotCi1NZWRpYUtleVN5c3RlbVJlcXVlc3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdChE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UpCi0gICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCi0gICAg
LCBtX2tleVN5c3RlbShrZXlTeXN0ZW0pCi0gICAgLCBtX3Byb21pc2UoV1RGTW92ZShwcm9taXNl
KSkKLXsKLX0KLQotTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp+TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
KCkKLXsKLSAgICBpZiAobV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyKQotICAgICAgICBtX2FsbG93
Q29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShtX3Byb21pc2UpKTsKLX0KLQotU2VjdXJpdHlPcmln
aW4qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6dG9wTGV2ZWxEb2N1bWVudE9yaWdpbigpIGNvbnN0
Ci17Ci0gICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIHJldHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT50b3BPcmlnaW4o
KTsKLX0KLQotdm9pZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OnN0YXJ0KCkKLXsKLSAgICBBU1NF
UlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkgewotICAgICAgICBkZW55KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKLSAgICBhdXRvKiBjb250cm9sbGVyID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVy
Ojpmcm9tKGRvY3VtZW50LnBhZ2UoKSk7Ci0gICAgaWYgKCFjb250cm9sbGVyKSB7Ci0gICAgICAg
IGRlbnkoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGNvbnRyb2xsZXItPnJlcXVl
c3RNZWRpYUtleVN5c3RlbSgqdGhpcyk7Ci19Ci0KLXZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
OjphbGxvdyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17
Ci0gICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpVc2Vy
SW50ZXJhY3Rpb24sIFt0aGlzLCBoYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKG1f
YWxsb3dDb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUobV9wcm9taXNlKSk7Ci0gICAgICAgIGhhbmRsZXIoKTsKLSAgICB9KTsKLX0KLQotdm9pZCBN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAg
IGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBF
eGNlcHRpb25Db2RlIGNvZGUgPSBOb3RTdXBwb3J0ZWRFcnJvcjsKLSAgICBpZiAoIW1lc3NhZ2Uu
aXNFbXB0eSgpKQotICAgICAgICBtX3Byb21pc2UtPnJlamVjdChjb2RlLCBtZXNzYWdlKTsKLSAg
ICBlbHNlCi0gICAgICAgIG1fcHJvbWlzZS0+cmVqZWN0KGNvZGUpOwotfQotCi12b2lkIE1lZGlh
S2V5U3lzdGVtUmVxdWVzdDo6c3RvcCgpCi17Ci0gICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2Fz
dDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgaWYgKGF1dG8qIGNv
bnRyb2xsZXIgPSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgp
KSkKLSAgICAgICAgY29udHJvbGxlci0+Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KCp0aGlz
KTsKLX0KLQotY29uc3QgY2hhciogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphY3RpdmVET01PYmpl
Y3ROYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIk1lZGlhS2V5U3lzdGVtUmVxdWVzdCI7Ci19
Ci0KLURvY3VtZW50KiBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjMxM2MzOGIyYjZmYThhZDk1YmJhYjdlY2YzNWNjNDdiYmQ1NWU1MS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCisrKyAvZGV2L251
bGwKQEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5M
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwot
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQotCi0jaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiSURMVHlwZXMuaCIK
LSNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgotI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL09i
amVjdElkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBNZWRpYUtleVN5c3Rl
bTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKLQotZW51bSBNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlwZSB7IH07Ci11c2lu
ZyBNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxNZWRp
YUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlwZT47Ci0KLWNsYXNzIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4sIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QgewotcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZWY8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0PiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcm
IGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Ci0gICAgdmlydHVhbCB+TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0KCk7Ci0KLSAgICB2b2lkIHNldEFsbG93Q2FsbGJhY2soQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZWY8RGVmZXJyZWRQcm9taXNlPiYmKT4mJiBjYWxsYmFjaykgeyBtX2Fs
bG93Q29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQotICAgIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoKTsKLQotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgYWxsb3coQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGRlbnkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBlbXB0
eVN0cmluZygpKTsKLQotICAgIFdFQkNPUkVfRVhQT1JUIFNlY3VyaXR5T3JpZ2luKiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnQqIGRv
Y3VtZW50KCkgY29uc3Q7Ci0KLSAgICBjb25zdCBTdHJpbmcga2V5U3lzdGVtKCkgY29uc3QgeyBy
ZXR1cm4gbV9rZXlTeXN0ZW07IH0KLQotcHJpdmF0ZToKLSAgICBNZWRpYUtleVN5c3RlbVJlcXVl
c3QoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJik7Ci0KLSAgICB2b2lkIHN0b3AoKSBmaW5hbDsKLSAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7Ci0KLSAgICBNZWRpYUtleVN5c3RlbVJlcXVlc3RJ
ZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLQotICAgIFN0cmluZyBtX2tleVN5c3RlbTsKLSAgICBS
ZWY8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7Ci0KLSAgICBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpPiBtX2FsbG93Q29tcGxldGlvbkhhbmRsZXI7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9OYXZpZ2F0b3JFTUUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9OYXZpZ2F0b3JFTUUuY3BwCmluZGV4IGZjNjEzNzRlMjE2NDFjMTY3NDFkN2U1MWRkMGUzZTdh
MmQ1MmI2NjIuLjY5NDU2NGFmM2U1OTNhNjk2MTc1OGZhZmQ3MmE3ZDUwNDdhNmFjMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1F
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRv
ckVNRS5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJl
ZC5oIgogI2luY2x1ZGUgIkpTTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCi0jaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTEwMCwyNyArOTks
MjMgQEAgdm9pZCBOYXZpZ2F0b3JFTUU6OnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2VzcyhOYXZp
Z2F0b3ImIG5hdmlnYXRvciwgRG9jdW1lbnQmIGQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGF1dG8gcmVxdWVzdCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6Y3JlYXRlKGRvY3VtZW50
LCBrZXlTeXN0ZW0sIFdURk1vdmUocHJvbWlzZSkpOwotICAgIHJlcXVlc3QtPnNldEFsbG93Q2Fs
bGJhY2soW2tleVN5c3RlbSwgc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBv
cnRlZENvbmZpZ3VyYXRpb25zKSwgJmRvY3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciks
IGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXShSZWY8RGVmZXJyZWRQcm9taXNlPiYm
IHByb21pc2UpIG11dGFibGUgewotICAgICAgICBkb2N1bWVudC5wb3N0VGFzayhbcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSksICZkb2N1bWVudCwga2V5U3lzdGVtLCBsb2dnZXIgPSBXVEZNb3Zl
KGxvZ2dlciksIGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpLCBzdXBwb3J0ZWRDb25m
aWd1cmF0aW9ucyA9IFdURk1vdmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpXSAoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAgICAgICAgICAgLy8gMy4gTGV0IGRvY3VtZW50
IGJlIHRoZSBjYWxsaW5nIGNvbnRleHQncyBEb2N1bWVudC4KLSAgICAgICAgICAgIC8vIDQuIExl
dCBvcmlnaW4gYmUgdGhlIG9yaWdpbiBvZiBkb2N1bWVudC4KLSAgICAgICAgICAgIC8vIDUuIExl
dCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCi0gICAgICAgICAgICAvLyA2LiBSdW4gdGhlIGZv
bGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKLSAgICAgICAgICAgIC8vIDYuMS4gSWYga2V5U3lz
dGVtIGlzIG5vdCBvbmUgb2YgdGhlIEtleSBTeXN0ZW1zIHN1cHBvcnRlZCBieSB0aGUgdXNlciBh
Z2VudCwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIE5vdFN1cHBvcnRlZEVycm9yLgotICAgICAgICAg
ICAgLy8gICAgICBTdHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KLSAgICAgICAg
ICAgIGlmICghQ0RNOjpzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKSB7Ci0gICAgICAgICAg
ICAgICAgaW5mb0xvZyhsb2dnZXIsIGlkZW50aWZpZXIsICJSZWplY3RlZDoga2V5U3lzdGVtKCIs
IGtleVN5c3RlbSwgIikgbm90IHN1cHBvcnRlZCIpOwotICAgICAgICAgICAgICAgIHByb21pc2Ut
PnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0
aGUgaW1wbGVtZW50YXRpb24gb2Yga2V5U3lzdGVtLgotICAgICAgICAgICAgYXV0byBpbXBsZW1l
bnRhdGlvbiA9IENETTo6Y3JlYXRlKGRvY3VtZW50LCBrZXlTeXN0ZW0pOwotICAgICAgICAgICAg
dHJ5TmV4dFN1cHBvcnRlZENvbmZpZ3VyYXRpb24oV1RGTW92ZShpbXBsZW1lbnRhdGlvbiksIFdU
Rk1vdmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBXVEZNb3ZlKHByb21pc2UpLCBXVEZNb3Zl
KGxvZ2dlciksIFdURk1vdmUoaWRlbnRpZmllcikpOwotICAgICAgICB9KTsKKyAgICBkb2N1bWVu
dC5wb3N0VGFzayhba2V5U3lzdGVtLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IFdURk1vdmUo
c3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgJmRv
Y3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlk
ZW50aWZpZXIpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICAv
LyAzLiBMZXQgZG9jdW1lbnQgYmUgdGhlIGNhbGxpbmcgY29udGV4dCdzIERvY3VtZW50LgorICAg
ICAgICAvLyA0LiBMZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCisgICAgICAg
IC8vIDUuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCisgICAgICAgIC8vIDYuIFJ1biB0
aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgorICAgICAgICAvLyA2LjEuIElmIGtleVN5
c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVzZXIg
YWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KKyAgICAgICAg
Ly8gICAgICBTdHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KKyAgICAgICAgaWYg
KCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgIGluZm9M
b2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgiLCBrZXlTeXN0ZW0s
ICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBw
b3J0ZWRFcnJvcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAv
LyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0aGUgaW1wbGVtZW50YXRpb24gb2Yga2V5U3lz
dGVtLgorICAgICAgICBhdXRvIGltcGxlbWVudGF0aW9uID0gQ0RNOjpjcmVhdGUoZG9jdW1lbnQs
IGtleVN5c3RlbSk7CisgICAgICAgIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdURk1v
dmUoaW1wbGVtZW50YXRpb24pLCBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwgV1RG
TW92ZShwcm9taXNlKSwgV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKICAg
ICB9KTsKLSAgICByZXF1ZXN0LT5zdGFydCgpOwogfQogCiBzdGF0aWMgdm9pZCB0cnlOZXh0U3Vw
cG9ydGVkQ29uZmlndXJhdGlvbihSZWZQdHI8Q0RNPiYmIGltcGxlbWVudGF0aW9uLCBWZWN0b3I8
TWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uPiYmIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zLCBS
ZWZQdHI8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIFJlZjxMb2dnZXI+JiYgbG9nZ2VyLCBX
VEY6OkxvZ2dlcjo6TG9nU2l0ZUlkZW50aWZpZXImJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYjA5MGFh
NDA3MzBhNTZiYmJmZjk1OGVhY2RhMDZiOThiY2RkZjYuLjZkMDE3Y2EyZGE3NTcyYTQ4OWVkZTRl
Y2MzNzRiMDQ4MzQyOWI2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwNDgsMTEgKzMwNDgsNiBAQAogCQk5OUQxQjJEMzIz
QUMxNDMxMDA4MTFDRjAgLyogSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RDFCMkQxMjNBQzE0MzAwMDgxMUNG
MCAvKiBJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9h
dGluZ09iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlBNTI4RTgyMTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QUIxRjM4MDE4RTI0
ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAwNTM0NzQz
IC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5QUNDMDc5NjI1QzcyNUVFMDBEQzYzODYgLyogTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlBQ0MwNzk0MjVDNzI1RUQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJl
cXVlc3QuY3BwICovOyB9OwotCQk5QUNDMDc5ODI1QzcyNjc3MDBEQzYzODYgLyogTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlBQ0MwNzk3MjVDNzI2NzYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuY3BwICovOyB9OwotCQk5QUNDMDdBNjI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QUNDMDdBNTI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOUFDQzA3
QTgyNUM4MTEwRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdBNzI1QzgxMTBEMDBEQzYz
ODYgLyogTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQk5QUNDMDdBRjI1QzgxNDFEMDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QUNDMDdBRTI1QzgxNDFDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250
cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOUIwMkUwQzgyMzVFQUQyQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBD
MzIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjBBQkNBRTIzNkJC
NDMxMDBCNDUwODUgLyogVGFza1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjEy
MjlDNDIzRkU0QkQyMDA4Q0E3NTEgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxNTE4NjIzNTc3NDVFMDAx
MTVFNkUgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyMDE3LDExICsxMjAxMiw2IEBACiAJCTlBQzZG
MDI1MjExNDhGNTQwMENCREEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGlhRW5naW5lQ29uZmlndXJhdGlv
bkZhY3RvcnkuaDsgcGF0aCA9IG1lZGlhY2FwYWJpbGl0aWVzL01lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUFDNkYwMkQyMTE0
OEY5RjAwQ0JEQTA2IC8qIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2NrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3RvcnlNb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUFDNkYw
MkYyMTE0OEZBMjAwQ0JEQTA2IC8qIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2Nr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3RvcnlNb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlBQ0MwNzk0
MjVDNzI1RUQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUFDQzA3OTcyNUM3MjY3NjAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk5QUNDMDdBNTI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QUNDMDdBNzI1QzgxMTBEMDBE
QzYzODYgLyogTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJOUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQzMyMzVFNzZBQTAw
NDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTlCMDJFMEM0MjM1RTc2QUEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3M0Y2NCAvKiBS
ZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBSZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9SZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWls
dGlucy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMjgwNzUsMTUg
KzI4MDY1LDEwIEBACiAJCQkJMkQ5QkY3M0MxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lz
dGVtQWNjZXNzLmNwcCAqLywKIAkJCQkyRDlCRjczRDFEQkZEQzBGMDA3QTdEOTkgLyogTWVkaWFL
ZXlTeXN0ZW1BY2Nlc3MuaCAqLywKIAkJCQkyRDlCRjZGOTFEQkZCNzFGMDA3QTdEOTkgLyogTWVk
aWFLZXlTeXN0ZW1BY2Nlc3MuaWRsICovLAotCQkJCTlBQ0MwN0E3MjVDODExMEQwMERDNjM4NiAv
KiBNZWRpYUtleVN5c3RlbUNsaWVudC5oICovLAogCQkJCTJEOUJGNzNFMURCRkRDMEYwMDdBN0Q5
OSAvKiBNZWRpYUtleVN5c3RlbUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkyRDlCRjZGQTFEQkZC
NzFGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uLmlkbCAqLywKLQkJCQk5
QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcCAq
LywKLQkJCQk5QUNDMDdBRTI1QzgxNDFDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyLmggKi8sCiAJCQkJMkQ5QkY3M0YxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVt
TWVkaWFDYXBhYmlsaXR5LmggKi8sCiAJCQkJMkQ5QkY2RkIxREJGQjcxRjAwN0E3RDk5IC8qIE1l
ZGlhS2V5U3lzdGVtTWVkaWFDYXBhYmlsaXR5LmlkbCAqLywKLQkJCQk5QUNDMDc5NDI1QzcyNUVE
MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCAqLywKLQkJCQk5QUNDMDdBNTI1
QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggKi8sCiAJCQkJMkQ5QkY2
RkMxREJGQjcxRjAwN0E3RDk5IC8qIE5hdmlnYXRvcitFTUUuaWRsICovLAogCQkJCTJEOUJGNzQw
MURCRkRDMEYwMDdBN0Q5OSAvKiBOYXZpZ2F0b3JFTUUuY3BwICovLAogCQkJCTJEOUJGNzQxMURC
RkRDMEYwMDdBN0Q5OSAvKiBOYXZpZ2F0b3JFTUUuaCAqLywKQEAgLTMzNzMzLDkgKzMzNzE4LDYg
QEAKIAkJCQlDREY0QjcxQTFFMDFEM0QwMDBFMjM1QTIgLyogTWVkaWFLZXlTZXNzaW9uVHlwZS5p
ZGwgaW4gSGVhZGVycyAqLywKIAkJCQlDREY0QjcyODFFMDNDNTczMDBFMjM1QTIgLyogTWVkaWFL
ZXlzUmVxdWlyZW1lbnQuaWRsIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNEI3MTgxRTAxQ0I5MTAw
RTIzNUEyIC8qIE1lZGlhS2V5c1Jlc3RyaWN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUFD
QzA3QTgyNUM4MTEwRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQk5QUNDMDdBRjI1QzgxNDFEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5QUNDMDdBNjI1QzgxMERGMDBEQzYzODYgLyog
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBODAwRTBBMTk1
MTZFMDBBOEVGNUYgLyogTWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzgyODk0ODI1
QzIzRkU1MDBBN0JBMDMgLyogTWVkaWFNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4
Mjg5NEMyNUMzNzAwQjAwQTdCQTAzIC8qIE1lZGlhTWV0YWRhdGFJbml0LmggaW4gSGVhZGVycyAq
LywKQEAgLTM2MDk1LDggKzM2MDc3LDYgQEAKIAkJCQkyRDlCRjc0NTFEQkZEQzQ0MDA3QTdEOTkg
LyogTWVkaWFLZXlTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOUJGNzQ0MURCRkRD
NDEwMDdBN0Q5OSAvKiBNZWRpYUtleVN0YXR1c01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDlCRjc0MzFEQkZEQzNFMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJOUFDQzA3OTgyNUM3MjY3NzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5QUNDMDc5NjI1QzcyNUVFMDBEQzYz
ODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MUU0
OTZFMUFENUFBMEQwMDhBNTBCNCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0gaW4gU291
cmNlcyAqLywKIAkJCQkwNzhFNDNERTFBQkI2RjZGMDAxQzJGQTYgLyogTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MkM4QjExMTMxQzUxODYwMEE0
RkNFOSAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAppbmRleCA0NmVjMGM1NGNjNDRkMWIzYmJkY2UwOTYyZjI3MTMwNTgw
NWE4NzI5Li5jYmNhOGQzMzg4YzU4MjliNzQyNzIyZTc0OTlmOTM2OWZiM2MzMDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTc1LDcgKzc1LDYgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9DYWNoZSIKICAgICAiJHtXRUJLSVRf
RElSfS9XZWJQcm9jZXNzL0RhdGFiYXNlcyIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIiCi0gICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9FbmNy
eXB0ZWRNZWRpYSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0ZpbGVBUEkiCiAgICAg
IiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvR2FtZXBhZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQppbmRleCAzNDZjOGE2M2E3YjdhZTQ5
N2ExYmVlMjRkN2Y4MDhiMGZhOGNlNGEzLi4yMTMwNGRhMzBkNzg4MjU0MzY1MjI3YWE2YjM2ZjBl
NzZmNjkwZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCkBAIC02Miw3ICs2Miw2IEBAIHNldChXZWJLaXRf
UFVCTElDX0ZSQU1FV09SS19IRUFERVJTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSWNvbkRhdGFi
YXNlLmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuaAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS0xheW91dE1vZGUuaAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkNhbGxiYWNrLmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tNZXNzYWdlTGlzdGVu
ZXIuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tEaXNwbGF5LmgKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCAw
NjZmMDY1ZmUzZTNhZWM0YTA3OTg2ODE5M2RhZThhMGIwNzc3NWI4Li5mNDlmMzhiNmE1ZjlkM2Q3
MDk1MmQyZTEyMWM4OTk1ZGVjZTk4ZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaApAQCAt
NTIsNyArNTIsNiBAQCBleHRlcm4gIkMiIHsKICAgICBNKENvbnRleHRNZW51KSBcCiAgICAgTShE
aXNrUGVyc2lzdGVuY3kpIFwKICAgICBNKERyYWdBbmREcm9wKSBcCi0gICAgTShFTUUpIFwKICAg
ICBNKEZ1bGxzY3JlZW4pIFwKICAgICBNKEdhbWVwYWQpIFwKICAgICBNKElQQykgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCmluZGV4IDQ2Yzc3M2VlMzhjZDMwNjc1YjZlOGIxNjI1
Zjk3NTMwNzkzYjE2YmIuLjA1NTY5MzQzYTBkYzNhYWQ2YzJkMzM0MDNlOGUyOWJhODZmZTRjYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKQEAgLTE4OSw4ICsxODksNiBAQCBw
dWJsaWM6CiAgICAgICAgIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCiAjZW5kaWYKIAotICAgICAg
ICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaywKLQogICAgICAgICAvLyBCdW5kbGUg
dHlwZXMKICAgICAgICAgQnVuZGxlLAogICAgICAgICBCdW5kbGVCYWNrRm9yd2FyZExpc3QsCkBA
IC00NDAsOCArNDM4LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxBUEk6Ok9iamVj
dDo6VHlwZT4gewogICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbCwKICNlbmRpZgogCi0gICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjaywKLQogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAg
QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZSwKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OkJ1
bmRsZUJhY2tGb3J3YXJkTGlzdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXgg
N2M4YmQyMzkyNGM0YWI3MTE1NGY1Y2FjN2U3M2NjNzNkMzk0NThjMC4uODRlZTZjMjg4ZjZkMmVi
ZDUxZmE3M2VhNzI3MDhmMzI5NDZiZGQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKQEAgLTE0Miw4ICsxNDIsNiBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dlYnNp
dGVEYXRhU3RvcmUqIFdLV2Vic2l0ZURhdGFTdG9yZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLV2Vic2l0ZVBvbGljaWVzKiBXS1dlYnNpdGVQb2xpY2llc1JlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLV2luZG93RmVhdHVyZXMqIFdLV2luZG93RmVhdHVyZXNSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bkNhbGxiYWNrKiBXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmOwotdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
KiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RSZWY7Ci10eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrKiBXS01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmOwogCiAvKiBXZWJLaXQyIEJ1bmRsZSB0eXBlcyAq
LwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAppbmRleCAwMGFiMTlkNDZkZGU0YWRhMjBkMjkzZmU4M2MyNzkwYWVjYzYw
MzkwLi42ZDRlYTUzNDhjN2RhZWY3NTEwMzg5MGI1MDljMDcyMDk5MzFhMzE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKQEAgLTI4Niw4ICsyODYsNiBAQCBVSVByb2Nlc3MvRnJhbWVMb2FkU3RhdGUuY3BwCiBVSVBy
b2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIFVJUHJv
Y2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiBVSVByb2Nlc3MvTGVn
YWN5R2xvYmFsU2V0dGluZ3MuY3BwCi1VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKLVVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCiBVSVByb2Nlc3MvUGFnZUxvYWRTdGF0ZS5jcHAKIFVJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBA
IC0zOTQsNyArMzkyLDYgQEAgVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5jcHAKIFVJ
UHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3Bl
Y3Rvci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCi1V
SVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5jcHAKIFVJ
UHJvY2Vzcy9BUEkvQy9XS01lc3NhZ2VMaXN0ZW5lci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS01v
Y2tEaXNwbGF5LmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2aWNlLmNwcApAQCAt
NTE1LDggKzUxMiw2IEBAIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIu
Y3BwCiAKIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuY3BwCiAKLVdlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCi0KIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0
cnlQcm94eS5jcHAKIAogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
LmNwcApAQCAtNjcxLDcgKzY2Niw2IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJh
Z0NsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCi1XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcAogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAKIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDE2MzY3ZTZjYWM4MjVhYTlj
NzRmYjRjNDg0M2RkMmYxZmYxZGFkMzguLmIxN2I1YTE5NjJiYzlmZGU2YmY4ZjA1NWQ0YjRhZTll
MTdlYjg0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBA
IC0yMDUsOSArMjA1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWREaXNhYmxlSW5z
cGVjdG9yQnJvd3NlckRvbWFpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVl
c3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBw
YWdlLnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24ob3Jp
Z2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQotCi0g
ICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9y
aWdpbiwgY29uc3QgV1RGOjpTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQotCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggYzhhMTg5NWE2ZDBk
ZTcwOWY5YWUzOThiZTQ1YmVhNjZiOWViZmEwZC4uY2M5Y2Y1OTU3ZWEzMGQ2YWNmMDQ2OGRlNzAx
Nzk4YTZmNDE4MTE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKQEAgLTc4LDcgKzc4LDYgQEAgY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsK
IGNsYXNzIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJv
eHk7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwotY2xhc3MgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdDsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrOwogY2xhc3Mg
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk7CkBAIC0xMzYsNyArMTM1LDYgQEAgV0tfQURE
X0FQSV9NQVBQSU5HKFdLSFRUUENvb2tpZVN0b3JlUmVmLCBBUEk6OkhUVFBDb29raWVTdG9yZSkK
IFdLX0FERF9BUElfTUFQUElORyhXS0hpdFRlc3RSZXN1bHRSZWYsIEFQSTo6SGl0VGVzdFJlc3Vs
dCkKIFdLX0FERF9BUElfTUFQUElORyhXS0ljb25EYXRhYmFzZVJlZiwgV2ViSWNvbkRhdGFiYXNl
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3JQcm94eSkK
LVdLX0FERF9BUElfTUFQUElORyhXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVm
LCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaykKIFdLX0FERF9BUElfTUFQUElORyhX
S01lc3NhZ2VMaXN0ZW5lclJlZiwgQVBJOjpNZXNzYWdlTGlzdGVuZXIpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBBUEk6Ok5hdmlnYXRpb25BY3Rpb24pCiBXS19B
RERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgQVBJOjpOYXZpZ2F0aW9uRGF0YSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGFhYTczMjRiYmMyYWIzNzI1N2RhODNhYmJjMzQwNzE0YmE3ZTA1MzAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIx
IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
S01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmgiCi0KLSNpbmNsdWRlICJNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVdLVHlwZUlEIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2tHZXRUeXBlSUQoKQotewotICAgIHJldHVybiB0b0FQSShNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjazo6QVBJVHlwZSk7Ci19Ci0KLXZvaWQgV0tNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2Fs
bGJhY2tSZWYgcGVybWlzc2lvbkNhbGxiYWNrLCBib29sIGdyYW50ZWQpCi17Ci0gICAgcmV0dXJu
IHRvSW1wbChwZXJtaXNzaW9uQ2FsbGJhY2spLT5jb21wbGV0ZShncmFudGVkKTsKLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjVkMzY4MzdlZmE2OWE0YjA2ZGYxMzIxMjJmYWY2YTBhMWY1MjA3OC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgot
Ci0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLVdLX0VYUE9SVCBX
S1R5cGVJRCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrR2V0VHlwZUlEKHZvaWQp
OwotCi1XS19FWFBPUlQgdm9pZCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrQ29t
cGxldGUoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBwZXJtaXNzaW9uQ2Fs
bGJhY2ssIGJvb2wgZ3JhbnRlZCk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCBjMzllNzJmMDcxMmNi
YWMwYmViYWZmMGIwMmU4NDU3M2FjMTZmOTE0Li43NDQzZjcwZjk1NzU4MzZkODQzZGE1NGM4NDgx
NTA5YzlkOGM0ZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
QEAgLTU4LDcgKzU4LDYgQEAKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAi
TGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1
ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2lu
Y2x1ZGUgIk5hdmlnYXRpb25BY3Rpb25EYXRhLmgiCkBAIC0xMTgsNyArMTE3LDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAK
IHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAg
ICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwg
V0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQ
YWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdl
VUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJ
Q2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMiwgV0tQYWdlVUlDbGllbnRWMTMsIFdLUGFnZVVJ
Q2xpZW50VjE0LCBXS1BhZ2VVSUNsaWVudFYxNSwgV0tQYWdlVUlDbGllbnRWMTY+IFZlcnNpb25z
OworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVu
dFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0
LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBX
S1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQ
YWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMywgV0tQ
YWdlVUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xpZW50VjE1PiBWZXJzaW9uczsKIH07CiAKICNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTIxMjAsMTYgKzIxMTksNiBAQCB2b2lkIFdLUGFnZVNl
dFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNl
KiB3a0NsaWVudAogCiAgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiks
IHRvQVBJKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrOjpjcmVhdGUoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigpKSk7CiAgICAgICAgIH0KLQotICAgICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVBy
b3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBmaW5hbAotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGlj
eUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpIHsKLSAgICAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJ
KEFQSTo6U3RyaW5nOjpjcmVhdGUoa2V5U3lzdGVtKS5wdHIoKSksIHRvQVBJKE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNhbGxiYWNrOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
LnB0cigpKSk7Ci0gICAgICAgIH0KICAgICB9OwogCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRV
SUNsaWVudChtYWtlVW5pcXVlPFVJQ2xpZW50Pih3a0NsaWVudCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggM2QzMTViZTYxMzQ4ZGQ3
ZDI0NjdiYWE5NGRlYTRhZTcxMWMyNzgwMy4uNjM2MzU1NTY0ZDAwYjExMjJhODdlMjI5YTMwYjk0
ZDdlOTllNGVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VV
SUNsaWVudC5oCkBAIC0xMzgsMTAgKzEzOCw4IEBAIHR5cGVkZWYgYm9vbCAoKldLUGFnZVNob3Vs
ZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjaykoV0tQYWdlCiB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VSdW5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2FsbGJhY2spKCk7
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2lu
UmVmIHRvcE9yaWdpbiwgV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZiBj
YWxsYmFjayk7CiAKLXR5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvck1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJp
dHlPcmlnaW5SZWYgdG9wT3JpZ2luLCBXS1N0cmluZ1JlZiBrZXlTeXN0ZW0sIFdLTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spOwotCiAvLyBEZXByZWNhdGVkCi10
eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9u
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3Jl
YXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdl
LCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBX
S0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICAgICAgKCpXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
IHR5cGVkZWYgdm9pZCAoKldLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1pbWVU
eXBlLCBXS1N0cmluZ1JlZiB1cmwsIFdLU3RyaW5nUmVmIHBsdWdpbnNQYWdlVVJMLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEpKFdLUGFnZVJlZiBw
YWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgdXJsLCBXS1N0cmluZ1JlZiBw
bHVnaW5zUGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0xNDY3LDEyMSArMTQ2
NSw2IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjE1IHsKICAgICAKIH0gV0tQYWdl
VUlDbGllbnRWMTU7CiAKLXR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjE2IHsKLSAgICBX
S1BhZ2VVSUNsaWVudEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJhc2U7Ci0KLSAgICAvLyBWZXJzaW9uIDAuCi0gICAgV0tQYWdlQ3JlYXRlTmV3
UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgICAgICBjcmVh
dGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7Ci0gICAgV0tQYWdlVUlDbGllbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93UGFn
ZTsKLSAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNsb3NlOwotICAgIFdLUGFnZVRha2VGb2N1c0NhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZUZvY3VzOwotICAg
IFdLUGFnZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9jdXM7Ci0gICAgV0tQYWdlVW5mb2N1c0NhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmZvY3VzOwotICAgIFdLUGFnZVJ1
bkphdmFTY3JpcHRBbGVydENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAg
ICAgcnVuSmF2YVNjcmlwdEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7Ci0gICAgV0tQYWdl
UnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAg
ICAgICBydW5KYXZhU2NyaXB0Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOwotICAgIFdL
UGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAg
ICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOwotICAg
IFdLUGFnZVNldFN0YXR1c1RleHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0U3RhdHVzVGV4dDsKLSAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxl
bWVudENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7Ci0gICAgV0tQYWdlTWlzc2luZ1BsdWdp
bkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICBtaXNzaW5n
UGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOwotICAgIFdLUGFnZURp
ZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkTm90SGFuZGxlS2V5RXZlbnQ7Ci0gICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxFdmVu
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVXaGVl
bEV2ZW50OwotICAgIFdLUGFnZUdldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG9vbGJhcnNBcmVWaXNpYmxlOwotICAgIFdLUGFnZVNl
dFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0VG9vbGJhcnNBcmVWaXNpYmxlOwotICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2libGVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJs
ZTsKLSAgICBXS1BhZ2VTZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldE1lbnVCYXJJc1Zpc2libGU7Ci0gICAgV0tQYWdlR2V0U3Rh
dHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0dXNCYXJJc1Zpc2libGU7Ci0gICAgV0tQYWdlU2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNCYXJJc1Zpc2libGU7
Ci0gICAgV0tQYWdlR2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpc1Jlc2l6YWJsZTsKLSAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzUmVzaXph
YmxlOwotICAgIFdLUGFnZUdldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2V0V2luZG93RnJhbWU7Ci0gICAgV0tQYWdlU2V0V2luZG93
RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRX
aW5kb3dGcmFtZTsKLSAgICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFj
a19kZXByZWNhdGVkRm9yVXNlV2l0aFY2ICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbF9k
ZXByZWNhdGVkRm9yVXNlV2l0aFY2OwotICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKLSAgICBXS1Bh
Z2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhZ2VEaWRTY3JvbGw7Ci0gICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVv
dGE7Ci0gICAgV0tQYWdlUnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5PcGVuUGFuZWw7Ci0gICAgV0tQYWdlRGVjaWRlUG9saWN5
Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQ
b2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwotICAgIFdLUGFnZUhlYWRlckhl
aWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVh
ZGVySGVpZ2h0OwotICAgIFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9vdGVySGVpZ2h0OwotICAgIFdLUGFnZURyYXdI
ZWFkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZHJhd0hlYWRlcjsKLSAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdGb290ZXI7Ci0gICAgV0tQYWdlUHJpbnRG
cmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmludEZyYW1lOwotICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7Ci0gICAgdm9pZCogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVz
ZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQotICAg
IFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKLSAgICB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNob3VsZEludGVycnVwdEphdmFTY3JpcHRfdW5hdmFpbGFibGU7Ci0KLSAgICAvLyBWZXJz
aW9uIDEuCi0gICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjEgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjE7Ci0gICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKLSAgICBXS1BhZ2VE
ZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAg
ICAgIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwotICAgIFdL
UGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjEgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjE7Ci0KLSAgICAvLyBWZXJzaW9uIDIuCi0gICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNr
ZXI7Ci0gICAgV0tQYWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoaWRlQ29sb3JQaWNrZXI7Ci0gICAgV0tQYWdlVW5hdmFpbGFi
bGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7Ci0KLSAgICAvLyBWZXJzaW9uIDMuCi0gICAgV0tQ
YWdlUGlubmVkU3RhdGVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwaW5uZWRTdGF0ZURpZENoYW5nZTsKLQotICAgIC8vIFZlcnNpb24gNC4KLSAgICB2
b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVudXNlZDI7IC8vIFVzZWQgdG8gYmUgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlh
bExvbmdNb3VzZVByZXNzLgotICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMzsgLy8gVXNlZCB0byBiZSBk
aWRSZWNvZ25pemVMb25nTW91c2VQcmVzcy4KLSAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDQ7IC8vIFVz
ZWQgdG8gYmUgZGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KLSAgICBX
S1BhZ2VJc1BsYXlpbmdBdWRpb0RpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlOwotCi0gICAgLy8gVmVyc2lvbiA1Lgot
ICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2sgICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7
Ci0gICAgV0tQYWdlRGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWRDbGlja0F1dG9GaWxsQnV0dG9uOwotICAgIFdLUGFnZVJ1bkph
dmFTY3JpcHRBbGVydENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICAg
cnVuSmF2YVNjcmlwdEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7Ci0gICAgV0tQYWdlUnVu
SmF2YVNjcmlwdENvbmZpcm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAg
ICBydW5KYXZhU2NyaXB0Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OwotICAgIFdLUGFn
ZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAg
ICAgICAgcnVuSmF2YVNjcmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OwotICAgIHZv
aWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW51c2VkNTsgLy8gVXNlZCB0byBiZSBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENo
YW5nZS4KLQotICAgIC8vIFZlcnNpb24gNi4KLSAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7
Ci0gICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7Ci0gICAgV0tQYWdlUnVuSmF2YVNj
cmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5K
YXZhU2NyaXB0Q29uZmlybTsKLSAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7Ci0g
ICAgV0tDaGVja1VzZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47Ci0KLSAgICAv
LyBWZXJzaW9uIDcuCi0gICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7
Ci0gICAgV0tGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7Ci0KLSAgICAvLyBW
ZXJzaW9uIDguCi0gICAgV0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s7Ci0gICAgV0tEaWRM
b3NlUG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaWRMb3NlUG9pbnRlckxvY2s7Ci0KLSAgICAvLyBWZXJzaW9uIDkuCi0gICAgV0tIYW5k
bGVBdXRvcGxheUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoYW5kbGVBdXRvcGxheUV2ZW50OwotCi0gICAgLy8gVmVyc2lvbiAxMC4KLSAgICBXS0hh
c1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOwotICAgIFdLRGlkRXhj
ZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAg
ICAgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKLQot
ICAgIC8vIFZlcnNpb24gMTEuCi0gICAgV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25n
UGFzc3dvcmRBcHBlYXJhbmNlQ2FsbGJhY2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRT
dHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7Ci0KLSAgICAvLyBWZXJzaW9uIDEyLgotICAgIFdLUGFn
ZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtOwotCi0gICAgLy8gVmVyc2lvbiAxMy4K
LSAgICBXS1BhZ2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2Fs
bGJhY2sgICAgICAgICAgIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3M7Ci0KLSAgICAvLyBWZXJzaW9uIDE0LgotICAgIFdLUGFnZVJ1bldlYkF1dGhlbnRpY2F0aW9u
UGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuV2ViQXV0aGVudGlj
YXRpb25QYW5lbDsKLQotICAgIC8vIFZlcnNpb24gMTUuCi0gICAgV0tQYWdlRGVjaWRlUG9saWN5
Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICBkZWNpZGVQ
b2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0OwotCi0gICAgLy8gVmVy
c2lvbiAxNi4KLSAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3Q7Ci0KLX0gV0tQYWdlVUlDbGllbnRWMTY7Ci0KLQogI2lmZGVmIF9fY3Bs
dXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNGFmYzM1ZDAxNzcyZDU4OTdjNzdlYWMwMTA3YmM5YmU3NGI0NjI4YS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KLSNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGtleVN5c3Rl
bSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKLSAgICB9Ci0KLSAgICB2b2lkIGNvbXBs
ZXRlKGJvb2wgc3VjY2VzcykKLSAgICB7Ci0gICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIg
PSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIHsgfSk7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHN1Y2Nlc3MpOwotICAgIH0KLQotICAgIGNvbnN0IFN0cmluZyYga2V5U3lz
dGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KLQotcHJpdmF0ZToKLSAgICBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotICAgICAgICA6
IG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKLSAgICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQotICAgIHsgfQotCi0gICAgU3RyaW5nIG1fa2V5U3lz
dGVtOwotICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhhbmRs
ZXI7Ci19OwotCi1jbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayA6IHB1Ymxp
YyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvbkNhbGxiYWNrPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFjaz4gY3JlYXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSkpOwotICAgIH0KLQotICAgIHZvaWQgY29tcGxldGUoYm9vbCBncmFudGVkKSB7IG1fY29tcGxl
dGlvbkhhbmRsZXIoZ3JhbnRlZCk7IH0KLQotcHJpdmF0ZToKLSAgICBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQotICAgICAgICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpCi0gICAgeyB9Ci0KLSAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiBtX2NvbXBsZXRpb25IYW5kbGVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0ZmJiNjY2NjRhNWRmOWY0NmNiN2Q5ZmNlNWY5YmNlZGFlZTVmNDBhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjEgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKLQotI2lu
Y2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKLSNp
bmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKLSNp
bmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLSNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKLSNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgotI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi0jaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECi1zdGF0aWMgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkKLXsKLSAgICBy
ZXR1cm4gIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkiOwotfQot
Ci1zdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpCi17Ci0gICAgcmV0dXJuIFdlYktp
dDJMb2dFTUU7Ci19Ci0KLWNvbnN0IExvZ2dlciYgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wYWdlLmxv
Z2dlcigpOwotfQotI2VuZGlmCi0KLU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2Vi
UGFnZVByb3h5JiBwYWdlKQotICAgIDogbV9wYWdlKHBhZ2UpCi0jaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECi0gICAgLCBtX2xvZ0lkZW50aWZpZXIoTG9nZ2VySGVscGVyOjp1bmlxdWVMb2dJZGVu
dGlmaWVyKCkpCi0jZW5kaWYKLXsKLX0KLQotTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkoKQotewotICAgIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKLX0KLQotdm9pZCBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGlu
Z1JlcXVlc3RzKCkKLXsKLSAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3BlbmRpbmdSZXF1ZXN0
cy52YWx1ZXMoKSkKLSAgICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOwotCi0gICAgbV9wZW5k
aW5nUmVxdWVzdHMuY2xlYXIoKTsKLX0KLQotdm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpkZW55UmVxdWVzdChNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKLXsKLSAgICBpZiAo
IW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsIHJlcXVlc3QubWVkaWFLZXlTeXN0ZW1JRCgpLCAiLCByZWFz
b246ICIsIG1lc3NhZ2UpOwotCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICBtX3Bh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQocmVxdWVz
dC5tZWRpYUtleVN5c3RlbUlEKCksIG1lc3NhZ2UpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFN
KG1lc3NhZ2UpOwotI2VuZGlmCi19Ci0KLXZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Z3JhbnRSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eSYgcmVxdWVzdCkKLXsKLSAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2Vz
cygpKQotICAgICAgICByZXR1cm47Ci0KLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgcmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCksICIs
IGtleVN5c3RlbTogIiwgcmVxdWVzdC5rZXlTeXN0ZW0oKSk7Ci0KLSAgICBtX3BhZ2Uuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpNZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQg
eyByZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSB9LCBbXSB7IH0pOwotI2Vsc2UKLSAgICBVTlVT
RURfUEFSQU0ocmVxdWVzdCk7Ci0jZW5kaWYKLX0KLQotUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eT4gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Y3JlYXRlUmVxdWVzdEZvckZyYW1lKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCi17Ci0gICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCBtZWRpYUtleVN5c3RlbUlEKTsKLQotICAgIGF1dG8gcmVxdWVzdCA9IE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKCp0aGlzLCBtZWRpYUtl
eVN5c3RlbUlELCBtX3BhZ2UubWFpbkZyYW1lKCktPmZyYW1lSUQoKSwgZnJhbWVJRCwgV1RGTW92
ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwga2V5U3lzdGVtKTsKLSAgICBtX3BlbmRpbmdSZXF1
ZXN0cy5hZGQobWVkaWFLZXlTeXN0ZW1JRCwgcmVxdWVzdC5wdHIoKSk7Ci0gICAgcmV0dXJuIHJl
cXVlc3Q7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNGFiMzg2
ZWNhNWU0NzlkMTA0MTc3YTdhOTE3NmYwMWY0ZGRjYWE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0x
LDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Ci0jaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+Ci0jaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
LSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBT
ZWN1cml0eU9yaWdpbjsKLX07Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdl
UHJveHk7Ci0KLWNsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eT4gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgot
ICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHko
V2ViUGFnZVByb3h5Jik7Ci0gICAgfk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkoKTsKLQotICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZTsgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7Ci0KLSAgICBS
ZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0Rm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKTsKLQotICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwotICAgIHZvaWQgZGVueVJlcXVlc3QoTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlID0g
eyB9KTsKLQotcHJpdmF0ZToKLSNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKLSAgICBjb25zdCBM
b2dnZXImIGxvZ2dlcigpIGNvbnN0OwotICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KLSNlbmRpZgotCi0gICAgV2ViUGFnZVBy
b3h5JiBtX3BhZ2U7Ci0KLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7Ci0gICAgSGFzaFNl
dDxTdHJpbmc+IG1fdmFsaWRBdXRob3JpemF0aW9uVG9rZW5zOwotCi0jaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECi0gICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwotI2VuZGlmCi19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDQ3YWY4NGM5NDVkZmM0YzIwYTI4MzRlMzNm
MjgwODBjOWI0ZjEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKLQotI2lu
Y2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbkRhdGEuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLU1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dFByb3h5KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFn
ZXIsIHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKLSAgICA6
IG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKLSAgICAsIG1fbWVkaWFLZXlTeXN0ZW1J
RChtZWRpYUtleVN5c3RlbUlEKQotICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJRCkKLSAg
ICAsIG1fZnJhbWVJRChmcmFtZUlEKQotICAgICwgbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlP
cmlnaW4oV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkKLSAgICAsIG1fa2V5U3lzdGVt
KGtleVN5c3RlbSkKLXsKLX0KLQotdm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmFsbG93KCkKLXsKLSAgICBBU1NFUlQobV9tYW5hZ2VyKTsKLSAgICBpZiAoIW1fbWFu
YWdlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9tYW5hZ2VyLT5ncmFudFJlcXVlc3QoKnRo
aXMpOwotICAgIGludmFsaWRhdGUoKTsKLX0KLQotdm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OmRlbnkoKQotewotICAgIGlmICghbV9tYW5hZ2VyKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX21hbmFnZXItPmRlbnlSZXF1ZXN0KCp0aGlzKTsKLSAgICBpbnZhbGlk
YXRlKCk7Ci19Ci0KLXZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojpp
bnZhbGlkYXRlKCkKLXsKLSAgICBtX21hbmFnZXIgPSBudWxscHRyOwotfQotCi12b2lkIE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKCkKLXsKLSNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBwbGF0
Zm9ybXMgbm90IHlldCBzdXBwb3J0aW5nIHRoZSBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIHJl
cXVlc3QKLSAgICAvLyBpbiB0aGVpciBBUElVSUNsaWVudC4KLSAgICBhbGxvdygpOwotI2Vsc2UK
LSAgICBkZW55KCk7Ci0jZW5kaWYKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OGZmOTQ1
Y2Y0MDI4MTFjYTBjZGZhMGU0NDYxYzYxZDI4NjkzM2EwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzYgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLWNsYXNzIFNlY3VyaXR5T3JpZ2luOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsK
LQotY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIFJl
ZkNvdW50ZWQ8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiB7Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNy
ZWF0ZShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2Vy
LCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0pCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgbWVkaWFLZXlTeXN0ZW1JRCwgbWFp
bkZyYW1lSUQsIGZyYW1lSUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIGtleVN5
c3RlbSkpOwotICAgIH0KLQotICAgIHZvaWQgYWxsb3coKTsKLSAgICB2b2lkIGRlbnkoKTsKLQot
ICAgIHZvaWQgaW52YWxpZGF0ZSgpOwotCi0gICAgdWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCgp
IGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFLZXlTeXN0ZW1JRDsgfQotICAgIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0K
LSAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhbWVJRDsgfQotCi0gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luLmdldCgpOyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVs
RG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSgp
IGNvbnN0IHsgcmV0dXJuIG1fa2V5U3lzdGVtOyB9Ci0KLSAgICB2b2lkIGRvRGVmYXVsdEFjdGlv
bigpOwotCi1wcml2YXRlOgotICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94
eShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3Qg
bWVkaWFLZXlTeXN0ZW1JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSk7Ci0KLSAgICBX
ZWFrUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fbWFu
YWdlcjsKLSAgICB1aW50NjRfdCBtX21lZGlhS2V5U3lzdGVtSUQ7Ci0gICAgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7Ci0gICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1fZnJhbWVJRDsKLSAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAgIFN0cmluZyBtX2tleVN5c3RlbTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5jcHAKaW5kZXggNDM4NGQ0OWExN2M5ZWYwM2MzMGI4OWY3MjRiNWI1Mzk3MjE0ZDk3Yy4uYjlk
OTMyMDk2MzlkZDNiZjhmMjc0ODM1MjRjZjQwNmQ2M2VjNjBhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zMyw4ICszMyw2IEBACiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1
ZmZlckxpc3QuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ5LDcgKzQ3LDcg
QEAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWEKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVy
KQogICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVy
PigpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPigpKQogI2Vu
ZGlmCiB7CiAgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVEZXZpY2UpOwpA
QCAtNzksOCArNzcsOCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OgogewogICAgIG1fZGVzY3Jp
cHRpb24gPSBkZXNjcmlwdGlvbjsKIAotICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8V2Vi
Q29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2U+KGhhbmRsZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgbV9i
dWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRp
b24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPENBUmlu
Z0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPiho
YW5kbGUpLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFr
ZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7
CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRl
eCBhMWUyN2FkNWZkNzAzOGVkMmVkZWViMzJjMTViNTA5MTBkYWQ1MWUwLi44YjUxMjUwZjVjYWQ3
ZjNmNWNlNzhmNThkNjc2MzcxOTBjZjhiZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKIAotI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIuaD4KIApAQCAtNDQsOCArNDMsNyBAQCBjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7
CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKLSAgICAKKwogY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAxOTM1ODBlMWZkMTY5YWY2YWU3NGVjMjZj
MDkyMmE0NGVlMjM0NjdhLi5mNTJkYzQ2OWQxNjhjYjQ5NDhhN2E3YzllNmU2ODc1ODBjYjQwZmQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgyNzUsMjcg
KzgyNzUsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0ZSgpCiAjZW5k
aWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25Gb3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luRGF0YSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCi17Ci0jaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKLSAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKSk7Ci0KLSAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpKTsKLSAgICBh
dXRvIHJlcXVlc3QgPSBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNy
ZWF0ZVJlcXVlc3RGb3JGcmFtZShtZWRpYUtleVN5c3RlbUlELCBmcmFtZUlELCB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpLCBrZXlTeXN0ZW0pOwotICAgIG1fdWlD
bGllbnQtPmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoKnRo
aXMsIG9yaWdpbiwga2V5U3lzdGVtLCBbcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKGJvb2wg
YWxsb3dlZCkgewotICAgICAgICBpZiAoYWxsb3dlZCkKLSAgICAgICAgICAgIHJlcXVlc3QtPmFs
bG93KCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKLSAgICB9
KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG1lZGlhS2V5U3lzdGVtSUQpOwotICAgIFVOVVNF
RF9QQVJBTShmcmFtZUlEKTsKLSAgICBVTlVTRURfUEFSQU0odG9wTGV2ZWxEb2N1bWVudE9yaWdp
bkRhdGEpOwotICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOwotI2VuZGlmCi19Ci0KICNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewpAQCAtODMwNiwyMyArODI4NSwxMyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlk
ZW50aWZpZXIgZgogfQogI2VuZGlmCiAKLQogI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEltYWdlRXh0cmFjdGlvbihjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkltYWdlRXh0cmFjdGlvblJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBwYWdlQ2xpZW50KCkucmVxdWVzdEltYWdlRXh0cmFjdGlvbihpbWFnZURhdGEsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KLSNlbmRpZgogCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKLU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIFdlYlBh
Z2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKQotewotICAg
IGlmIChtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKQotICAgICAgICBy
ZXR1cm4gKm1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7Ci0KLSAgICBt
X21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyID0gbWFrZVVuaXF1ZTxNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PigqdGhpcyk7Ci0gICAgcmV0
dXJuICptX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwotfQogI2VuZGlm
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50
NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQpAQCAtMTA0NTIsMTEg
KzEwNDIxLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yU3BlZWNoUmVjb2duaXRpb24oRnJhbWVJZGVudGlmaWUKICNlbmRpZgogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlv
bihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBjb21wbGV0aW9u
SGFuZGxlcih0cnVlKTsKLX0KLQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIFdlYkNvcmU6
OkNhcHR1cmVTb3VyY2VPckVycm9yIFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNv
dXJjZUZvclNwZWVjaFJlY29nbml0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggMWEwNTg1MTlkNGY5Y2E5NmM3MTE0ZDg5ZjdhMDMxODM5MmVmNjY5ZC4uN2Ix
OGIxMjljOTE3ZDRkYjYwN2U4NTIyZWQwMGZmZjc2MTBhZjhjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiSGlkZGVuUGFn
ZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291bnRlci5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNv
bnRleHQuaCIKLSNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0YXRlLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgiCkBAIC03NCw4ICs3Myw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2lu
Y2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUG9wdXBN
ZW51UHJveHkuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgIldlYlBv
cHVwTWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXBJRC5oIgogI2luY2x1ZGUgIldl
YnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4K
QEAgLTE4MzAsOCArMTgyOSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBy
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvclNwZWVjaFJlY29nbml0aW9uKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
Ci0gICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9u
KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOwotCiAgICAgdm9pZCBzeW5jSWZNb2NrRGV2aWNlc0VuYWJsZWRDaGFuZ2Vk
KCk7CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCkBAIC0yMDA4LDExICsyMDA1LDYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYpOwog
ICAgIHZvaWQgYmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKTsKIAotI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCi0gICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSYgbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKLSNlbmRp
ZgotICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IG1lZGlhS2V5U3lzdGVtSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJik7Ci0KICAgICB2b2lkIHJ1bk1vZGFsKCk7CiAgICAgdm9pZCBub3Rp
ZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
ICAgICB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdT
dHlsZSk7CkBAIC0yNTIxLDEwICsyNTEzLDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5PiBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwot
I2VuZGlmCi0KICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gbV9h
Y3Rpdml0eVN0YXRlOwogICAgIGJvb2wgbV92aWV3V2FzRXZlckluV2luZG93IHsgZmFsc2UgfTsK
ICNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBlNmFhYjM4YjI2OWJjMTY5ZDhjM2VlNjdl
NTNiYWExNTgwMmFiMDU1Li40MWI3MDRmNGViNTkxNDFkOTgxMmMxMjgyYjBkMDVlMWFhNzU5N2Ix
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yODMsMTAgKzI4Myw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAg
QmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQotICAgIFJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bklkZW50aWZpZXIsIFN0cmluZyBrZXlTeXN0ZW0pCi0jZW5kaWYKLQogICAgICMgTm90aWZpY2F0
aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qg
cmVxdWVzdElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICBTaG93Tm90aWZpY2F0aW9u
KFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJMLCBTdHJpbmcgdGFnLCBT
dHJpbmcgbGFuZywgZW51bTp1aW50OF90IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBk
aXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYw
ZGJjYjRjMDE4MWJmZjFiMzk4MjZlNTRiMDI3MTRiY2M2YjIxN2UuLjdlMDA3MmMzYjY4MDg0ZDZi
YzI2MjZiOTA1ZDMwMmQ3MDBlZmUyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTUyMCwxMiArMTUyMCw2IEBACiAJCTk5RTcxNEM1
MUMxMjRBMDQwMDY2NUIzQSAvKiBfV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTcxNEMxMUMxMjQ5RTYwMDY2NUIz
QSAvKiBfV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5OUU3MTg5QTIxRjc5RDlFMDA1NUU5NzUgLyogX1dLVG91
Y2hFdmVudEdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5RTcxODk2MjFGNzlEOUQwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJh
dG9yLm1tICovOyB9OwogCQk5OUU3MTg5QzIxRjc5RDlFMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVu
dEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTlFNzE4OTgyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5QUNDMDdB
RDI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0Mw
N0FDMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oICovOyB9OwotCQk5QUNDMDdCMTI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUFDQzA3QjAyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QuaCAqLzsgfTsKLQkJOUFDQzA3QjMyNUM4MTVGMzAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0IyMjVDODE1RjMwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi87IH07
Ci0JCTlBQ0MwN0I1MjVDODE2MEMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlBQ0MwN0I0MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCAqLzsgfTsKLQkJOUFDQzA3QjcyNUM4MUQzNDAwREM2Mzg2IC8qIFdlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QUNDMDdCNjI1QzgxRDMzMDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQuaCAqLzsgfTsKLQkJOUFDQzA3QjkyNUM4MjE4NDAwREM2Mzg2IC8qIFdLTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0I4MjVDODIxODMwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwQ0IyMzVFQjk1MzAwNDA0NEIyIC8qIF9XS1RleHRNYW5p
cHVsYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUIwMkUwQzkyMzVFQjYyRDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25E
ZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTlCMDJFMENDMjM1RUI5NTcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQ0Ey
MzVFQjg4NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwRDcyMzVGQzk0RjAw
NDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIyIC8qIF9X
S1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC00ODc1LDEyICs0ODY5LDYgQEAKIAkJOTlFNzE4OTYyMUY3OUQ5
RDAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU3MTg5ODIxRjc5RDlFMDA1NUU5NzUgLyogX1dLVG91
Y2hFdmVudEdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tU
b3VjaEV2ZW50R2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RjY0
MkQyMUZBQkUzNzgwMDk2MjFFOSAvKiBDb29yZGluYXRlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvb3JkaW5hdGVTeXN0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJOUFDQzA3QUMyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg7IHBhdGggPSBFbmNyeXB0
ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5QUNDMDdCMDI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTlBQ0MwN0IyMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUFDQzA3QjQyNUM4MTYwQjAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUFDQzA3QjYyNUM4MUQzMzAwREM2Mzg2IC8qIFdl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTlBQ0MwN0I4MjVDODIxODMwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIw
MkUwQzkyMzVFQjYyRDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0EyMzVFQjg4NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5p
cHVsYXRpb25JdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMENEMjM1RUI5NjcwMDQwNDRCMiAv
KiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlw
dWxhdGlvblRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MzU0LDE0ICs5
MzQyLDYgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07Ci0JCTlBQ0MwN0E5MjVDODEyRTcwMERDNjM4NiAvKiBFbmNyeXB0ZWRNZWRpYSAqLyA9IHsK
LQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJOUFDQzA3QUMyNUM4MTMy
RDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8s
Ci0JCQkpOwotCQkJbmFtZSA9IEVuY3J5cHRlZE1lZGlhOwotCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKLQkJfTsKIAkJQTE1Nzk5QUMyNTg0NDMzMTAwNTI4MjM2IC8qIE1lZGlhRm9ybWF0UmVh
ZGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTk0Nzgs
NyArOTQ1OCw2IEBACiAJCQkJNDFEMTI5RDgxRjNEMTAxNDAwRDE1RTQ3IC8qIENhY2hlICovLAog
CQkJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAvKiBjb2NvYSAqLywKIAkJCQk1MTJBOTc1NDE4
MERGOTI3MDAzOUExNDkgLyogRGF0YWJhc2VzICovLAotCQkJCTlBQ0MwN0E5MjVDODEyRTcwMERD
NjM4NiAvKiBFbmNyeXB0ZWRNZWRpYSAqLywKIAkJCQlCQ0FDQzQzQjE2QjI0QzVEMDBCNkUwOTIg
LyogRW50cnlQb2ludCAqLywKIAkJCQlFMTcwODc2RDE2RDZDQTcyMDBGOTkyMjYgLyogRmlsZUFQ
SSAqLywKIAkJCQlDRDczQkEzRDEzMUEyQTIxMDBFRURFRDIgLyogRnVsbFNjcmVlbiAqLywKQEAg
LTk1NDQsNyArOTUyMyw2IEBACiAJCQkJQkMwMzJENkExMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkZy
YW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJQkMxQkUxREYxMkQ1NEE0MTAwMDRBMjI4IC8qIFdl
Ykdlb2xvY2F0aW9uQ2xpZW50LmNwcCAqLywKIAkJCQlCQzFCRTFERTEyRDU0QTQxMDAwNEEyMjgg
LyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCAqLywKLQkJCQk5QUNDMDdCNjI1QzgxRDMzMDBEQzYz
ODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLywKIAkJCQk1MTNGRkI4RTIwMTQ1OUMy
MDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwICovLAogCQkJCTUx
M0ZGQjhGMjAxNDU5QzIwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5o
ICovLAogCQkJCTMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGll
bnQuY3BwICovLApAQCAtOTY4NCw5ICs5NjYyLDYgQEAKIAkJCQk1Q0VBQkEyQjIzMzMyNTE0MDA3
OTc3OTcgLyogTGVnYWN5R2xvYmFsU2V0dGluZ3MuY3BwICovLAogCQkJCTVDRUFCQTJBMjMzMzI0
NzcwMDc5Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0aW5ncy5oICovLAogCQkJCTMxNjA3RjM4MTk2
MjcwMDIwMDlCODdEQSAvKiBMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCAqLywKLQkJCQk5QUND
MDdCMDI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5o
ICovLAotCQkJCTlBQ0MwN0IyMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCi0JCQkJOUFDQzA3QjQyNUM4MTYwQjAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovLAogCQkJCTkz
NDI1ODk4MjU1QjUzNEIwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLywK
IAkJCQlCQzZFREFBNTExMTI3MUM2MDBFNzY3OEIgLyogUGFnZUNsaWVudC5oICovLAogCQkJCTFB
Qzc1Mzc5MTgzQTlGREEwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmNwcCAqLywKQEAgLTk5OTks
NyArOTk3NCw2IEBACiAJCQkJNTFBOUUxMDgxMzE1Q0QxODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVT
dG9yYWdlTWFuYWdlci5jcHAgKi8sCiAJCQkJNTFBOUUxMDkxMzE1Q0QxODAwOUU3MDMxIC8qIFdL
S2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oICovLAogCQkJCTJENzkwQTlFMUFENzE2NDkwMEFCOTBC
MyAvKiBXS0xheW91dE1vZGUuaCAqLywKLQkJCQk5QUNDMDdCODI1QzgyMTgzMDBEQzYzODYgLyog
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovLAogCQkJCTVDQUJEQzg0MjJD
NDBGQ0MwMDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5lci5jcHAgKi8sCiAJCQkJNUNBQkRDODUy
MkM0MEZDQzAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3RlbmVyLmggKi8sCiAJCQkJQzExRTE2OTMy
MTJCODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXkuY3BwICovLApAQCAtMTE3MjIsMTAgKzEx
Njk2LDYgQEAKIAkJCQlCQ0M1NkY3OTExNTk5NTdEMDAxQ0NBRjkgLyogTWFjaFBvcnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBMjRCNUYzMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTU3OTlCRTI1ODQ0MzMyMDA1MjgyMzYgLyogTWVkaWFG
b3JtYXRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTlBQ0MwN0IxMjVDODE1RDgwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKLQkJ
CQk5QUNDMDdBRDI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTlBQ0MwN0IzMjVDODE1RjMwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLywKLQkJCQk5QUNDMDdCNTI1QzgxNjBDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQyNTg5QTI1NUI1
MzVBMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwN0UxOUVGQzIzRDQwMUYxMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RTE5RUZEMjNENDAxRjEwMDk0RkZCNCAv
KiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICov
LApAQCAtMTIxNjcsNyArMTIxMzcsNiBAQAogCQkJCUJDOUJBNTA1MTY5N0M0NTMwMEU0NDYxNiAv
KiBXZWJLaXQySW5pdGlhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2MjgwQzcxOTE5OTUw
QzAwNkFEOUY5IC8qIFdlYktpdFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMDAzQTUz
MTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk5QUNDMDdCNzI1QzgxRDM0MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBX
ZWJNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0MzE5MTc2NDYzMDAw
MzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MDk4NTRFRDEyQkM0RTE4MDAwQUQwODAgLyogV2ViTWVtb3J5U2FtcGxlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xMjQ3Niw3ICsxMjQ0NSw2IEBACiAJCQkJMkQ3OTBBOUYxQUQ3MTY0OTAwQUI5MEIz
IC8qIFdLTGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNFOTEyMTQyMjkzQzI4MDAw
NUJFQzc4IC8qIFdLTWFpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE1NzlCMjgyNTg0OTBFNTAw
NTI4MjM2IC8qIFdLTWVkaWFGb3JtYXRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTlBQ0Mw
N0I5MjVDODIxODQwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTkxN0RBNzI1MkQ2NDlFMDA1MDMxM0YgLyogV0tNZWRp
YVBsYXliYWNrU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjQwRUU2MUJGNjc3RTMwMEJB
ODFCRSAvKiBXS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0FCREM4NjIyQzQwRkRFMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1l
ZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyNDk4ODJk
MDdhOTllNzVkMDkxYmZiNzJhZWVjODMxNjQ4NTc3MzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRl
ZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxp
YSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgotCi0jaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKLQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJGcmFtZS5oIgotI2luY2x1ZGUgIldlYlBhZ2UuaCIK
LSNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRG9j
dW1lbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUxvYWRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFn
ZSYgcGFnZSkKLSAgICA6IG1fcGFnZShwYWdlKQotewotfQotCi12b2lkIE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRp
YUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
cmVxdWVzdC5kb2N1bWVudCgpOwotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50ID8gZG9jdW1l
bnQtPmZyYW1lKCkgOiBudWxscHRyOwotCi0gICAgaWYgKCFmcmFtZSB8fCAhZG9jdW1lbnQtPnBh
Z2UoKSkgewotICAgICAgICByZXF1ZXN0LmRlbnkoZW1wdHlTdHJpbmcoKSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+Y2FuU3RhcnRNZWRpYSgp
KSB7Ci0gICAgICAgIHNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdHMgPSBtX3BlbmRpbmdN
ZWRpYUtleVN5c3RlbVJlcXVlc3RzLmFkZChkb2N1bWVudCwgVmVjdG9yPFJlZjxNZWRpYUtleVN5
c3RlbVJlcXVlc3Q+PigpKS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgcGVuZGluZ1JlcXVlc3RzLmFw
cGVuZChyZXF1ZXN0KTsKLX0KLQotdm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6c2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3Qm
IHVzZXJSZXF1ZXN0KQotewotICAgIGF1dG8qIGZyYW1lID0gdXNlclJlcXVlc3QuZG9jdW1lbnQo
KSA/IHVzZXJSZXF1ZXN0LmRvY3VtZW50KCktPmZyYW1lKCkgOiBudWxscHRyOwotICAgIGlmICgh
ZnJhbWUpIHsKLSAgICAgICAgdXNlclJlcXVlc3QuZGVueShlbXB0eVN0cmluZygpKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMu
YWRkKHVzZXJSZXF1ZXN0LmlkZW50aWZpZXIoKSwgbWFrZVJlZih1c2VyUmVxdWVzdCkpOwotCi0g
ICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsK
LSAgICBBU1NFUlQod2ViRnJhbWUpOwotCi0gICAgYXV0byogdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biA9IHVzZXJSZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKTsKLSAgICBtX3BhZ2Uuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Rm9yRnJhbWUodXNlclJlcXVlc3QuaWRlbnRpZmllcigpLnRvVUludDY0KCksIHdlYkZyYW1lLT5m
cmFtZUlEKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4tPmRhdGEoKSwgdXNlclJlcXVlc3Qua2V5
U3lzdGVtKCkpKTsKLX0KLQotdm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYg
cmVxdWVzdCkKLXsKLSAgICBpZiAoYXV0byByZW1vdmVkUmVxdWVzdCA9IG1fb25nb2luZ01lZGlh
S2V5U3lzdGVtUmVxdWVzdHMudGFrZShyZXF1ZXN0LmlkZW50aWZpZXIoKSkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGF1dG8qIGRvY3VtZW50ID0gcmVxdWVzdC5kb2N1bWVudCgpOwotICAgIGlm
ICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8gaXRlcmF0b3IgPSBtX3Bl
bmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmZpbmQoZG9jdW1lbnQpOwotICAgIGlmIChpdGVy
YXRvciA9PSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmVuZCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdHMgPSBpdGVyYXRvci0+dmFsdWU7Ci0g
ICAgcGVuZGluZ1JlcXVlc3RzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyZXF1ZXN0XShhdXRvJiBp
dGVtKSB7Ci0gICAgICAgIHJldHVybiAmcmVxdWVzdCA9PSBpdGVtLnB0cigpOwotICAgIH0pOwot
Ci0gICAgaWYgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnJlbW92ZShpdGVyYXRvcik7Ci19
Ci0KLXZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlhS2V5
U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCByZXF1ZXN0SUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29p
bmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnRha2UobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+KHJlcXVlc3RJRCkpOwotICAgIGlmICghcmVx
dWVzdCkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgcmVxdWVzdC0+YWxsb3coV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
fQotCi12b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtl
eVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCByZXF1ZXN0SUQsIFN0cmluZyYmIG1lc3NhZ2UpCi17
Ci0gICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtl
KG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlhS2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXJUeXBl
PihyZXF1ZXN0SUQpKTsKLSAgICBpZiAoIXJlcXVlc3QpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHJlcXVlc3QtPmRlbnkoV1RGTW92ZShtZXNzYWdlKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRl
ZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2OTU1ZmI5ZGVkNzExNjFjYWRmNGEyMzY5MDJiMmM1NDIy
NTY5YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLQotI2luY2x1ZGUgIlNhbmRib3hFeHRl
bnNpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtQ2xpZW50Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdlOwotCi1jbGFzcyBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIoV2ViUGFnZSYpOwotICAgIH5NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpID0gZGVmYXVsdDsKLQotICAgIHZvaWQgc3RhcnRNZWRpYUtleVN5c3RlbVJlcXVl
c3QoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7Ci0gICAgdm9pZCBjYW5jZWxNZWRp
YUtleVN5c3RlbVJlcXVlc3QoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7Ci0gICAg
dm9pZCBtZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQodWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7Ci0gICAgdm9pZCBtZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCwg
U3RyaW5nJiYpOwotCi1wcml2YXRlOgotICAgIHZvaWQgc2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVz
dChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKTsKLQotICAgIFdlYlBhZ2UmIG1fcGFn
ZTsKLQotICAgIEhhc2hNYXA8V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciwgUmVmPFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdD4+IG1fb25nb2luZ01lZGlhS2V5
U3lzdGVtUmVxdWVzdHM7Ci0gICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnQ+LCBW
ZWN0b3I8UmVmPFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdD4+PiBtX3BlbmRpbmdNZWRp
YUtleVN5c3RlbVJlcXVlc3RzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKaW5kZXggMjdlYjg1
ZTBlNWUwYzczMGUxMTk4YjgyNWQyMjkxZmEzNTM1MjNiMi4uMDJhN2I0Y2RhMzZiYTNiNWRiMjM1
MmE0YjNiZGQwY2YyZGZlYmQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCkBAIC00MSw3ICs0MSw2
IEBAIGNsYXNzIENvbm5lY3Rpb247CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1lZGlh
U3RyZWFtUHJpdmF0ZTsKLWNsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdDsKIH0KIAogbmFtZXNwYWNl
IFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTY2ODE2NzNlYTBhZGU0YzM3M2FhNmRkMGIwNmU1ZjZiODI5
YmJmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGll
bnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMSBJZ2FsaWEgUy5MLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCIKLQotI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCi0KLSNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oIgotI2luY2x1ZGUgIldlYlBhZ2UuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lz
dGVtQ29udHJvbGxlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLVdl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudChXZWJQYWdlJiBw
YWdlKQotICAgIDogbV9wYWdlKHBhZ2UpCi17Ci19Ci0KLXZvaWQgV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQ6OnJlcXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVl
c3QpCi17Ci0gICAgbV9wYWdlLm1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KCkuc3RhcnRNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Ci19Ci0KLXZvaWQgV2ViTWVk
aWFLZXlTeXN0ZW1DbGllbnQ6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5
c3RlbVJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgbV9wYWdlLm1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3Qp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLSNlbmRpZiAvLyBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYjM3NDNmNGRmMDVkZDk2ZWFkYWM4NjRjZWVhMDc0ZjYyYTc2N2Uy
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjEgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQotCi0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbUNsaWVudC5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUGFnZTsKLQotY2xhc3MgV2ViTWVk
aWFLZXlTeXN0ZW1DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1DbGllbnQg
ewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFdlYk1lZGlhS2V5
U3lzdGVtQ2xpZW50KFdlYlBhZ2UmKTsKLSAgICB+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQoKSB7
IH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KLQot
ICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVx
dWVzdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdl
YkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpIG92ZXJyaWRlOwotCi0gICAgV2ViUGFnZSYg
bV9wYWdlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggMTZmOGFiZjEzMmUyODgzYWE2N2JiNGVkNWUwNDc5OWRiYWY0OGE1MC4u
MjkzMGY1YzI2YjE4NGJlYWQxOTI3OWM3ZmU5OTI2MGYyZmYzNzYyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2LDcgKzQ2LDYgQEAKICNp
bmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIkxvYWRQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0YXRlLmgiCiAjaW5j
bHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4u
aCIKQEAgLTEwNSw3ICsxMDQsNiBAQAogI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1lZGlhS2V5U3RvcmFn
ZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIgogI2luY2x1
ZGUgIldlYk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgiCkBAIC00NzUsOSArNDczLDYgQEAgV2ViUGFn
ZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzKQogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAs
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsgbWFrZVVuaXF1ZVJlZjxVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+KCp0aGlzKSB9Ci0jZW5kaWYKLSNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQotICAgICwgbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlciB7IG1ha2VVbmlxdWVSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI+KCp0aGlzKSB9CiAjZW5kaWYKICAgICAsIG1fcGFnZVNjcm9sbGVkSHlzdGVyZXNp
cyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0YXRlID09IFBBTDo6
SHlzdGVyZXNpc1N0YXRlOjpTdG9wcGVkKSBwYWdlU3RvcHBlZFNjcm9sbGluZygpOyB9LCBwYWdl
U2Nyb2xsSHlzdGVyZXNpc0R1cmF0aW9uKQogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwocGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCkBAIC02
NTksOSArNjU0LDYgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgV2ViQ29yZTo6cHJvdmlkZVVzZXJNZWRpYVRvKG1fcGFnZS5nZXQoKSwgbmV3
IFdlYlVzZXJNZWRpYUNsaWVudCgqdGhpcykpOwogI2VuZGlmCi0jaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKLSAgICBXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbygqbV9wYWdlLmdl
dCgpLCAqbmV3IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KCp0aGlzKSk7Ci0jZW5kaWYKIAogICAg
IG1fcGFnZS0+c2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbihwYXJhbWV0ZXJzLmNvbnRyb2xsZWRC
eUF1dG9tYXRpb24pOwogICAgIG1fcGFnZS0+c2V0SGFzUmVzb3VyY2VMb2FkQ2xpZW50KHBhcmFt
ZXRlcnMuaGFzUmVzb3VyY2VMb2FkQ2xpZW50KTsKQEAgLTQ1MzcsMTggKzQ1MjksNiBAQCB2b2lk
IFdlYlBhZ2U6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAKICNlbmRpZgogCi0jaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKLXZvaWQgV2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVk
KHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLT5tZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQobWVkaWFLZXlTeXN0ZW1JRCwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotfQotCi12b2lkIFdlYlBhZ2U6Om1lZGlhS2V5U3lz
dGVtV2FzRGVuaWVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFN0cmluZyYmIG1lc3NhZ2Up
Ci17Ci0gICAgbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci0+bWVkaWFL
ZXlTeXN0ZW1XYXNEZW5pZWQobWVkaWFLZXlTeXN0ZW1JRCwgV1RGTW92ZShtZXNzYWdlKSk7Ci19
Ci0jZW5kaWYKLQogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogdm9pZCBXZWJQYWdlOjphZHZh
bmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjNzkzODEzZGM0ZDgx
MWY4NzE2Njc2ZjJhYWM1ZjRmOGMxOTFiOTFkLi43MWI4N2IwYTA5YjNmZTViOTMzYTE3NTNjODdi
NzA0ZWFhY2EzMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0yNDcsNyArMjQ3LDYgQEAgY2xhc3MgR2FtZXBhZERhdGE7CiBjbGFzcyBHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7
CiBjbGFzcyBNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zOwotY2xhc3MgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQREZQbHVnaW47CiBjbGFzcyBQYWdlQmFubmVyOwpAQCAt
Njc0LDEwICs2NzMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlc0NoYW5nZWQo
KTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOyB9Ci0jZW5kaWYKLQogICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVs
ZW1lbnQmKTsKICAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKTsK
ICAgICB2b2lkIGVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKTsKQEAgLTE2NzksMTEg
KzE2NzQsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCB1
c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2VVSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiB2
aWRlb0RldmljZVVJRCwgU3RyaW5nJiYgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1
aW50NjRfdCByZWFzb24sIFN0cmluZyYmIGludmFsaWRDb25zdHJhaW50KTsKLSNlbmRpZgogCi0j
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzR3Jh
bnRlZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwotICAgIHZvaWQgbWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3QgbWVkaWFLZXlT
eXN0ZW1JRCwgU3RyaW5nJiYgbWVzc2FnZSk7CiAjZW5kaWYKIAogICAgIHZvaWQgcmVxdWVzdE1l
ZGlhUGxheWJhY2tTdGF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6TWVkaWFQbGF5
YmFja1N0YXRlKT4mJik7CkBAIC0xOTk1LDEwICsxOTg2LDYgQEAgcHJpdmF0ZToKICAgICBVbmlx
dWVSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX3VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgogCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKLSAgICBVbmlxdWVSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+
IG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7Ci0jZW5kaWYKLQogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRDb250ZXh0Owog
I2lmIFBMQVRGT1JNKEdUSykKICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25HdGs+IG1fcHJp
bnRPcGVyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAyM2ZjYTM1NzFmMDc0NzUwOTFmZjNmYzE0YmFiYzQ2
NWUyMTZlZDRjLi4yZGE5OWNkMzcyMzkyZTgyYzUzMGQ0MmMwMWExMjg3NzBmYmQ4NzE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KQEAgLTM3OCwxMSArMzc4LDYgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBD
YXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQotICAgIE1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCBtZWRpYUtleVN5c3Rl
bUlEKSAtPiAoKSBBc3luYwotICAgIE1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IG1l
ZGlhS2V5U3lzdGVtSUQsIFN0cmluZyBtZXNzYWdlKQotI2VuZGlmCi0KICAgICBSZXF1ZXN0TWVk
aWFQbGF5YmFja1N0YXRlKCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6Ok1lZGlhUGxheWJhY2tT
dGF0ZSBzdGF0ZSkgQXN5bmMKICAgICBQYXVzZUFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBBc3lu
YwogICAgIFN1c3BlbmRBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDdlMWM1MGJkMzdmMGRmMzFhNjI5NjU3NTA3NzBlYzUxODY0ZmU4OTUuLjQw
ZDdmMDc5ZDBiYWI3YjM4Yzk2ZjExOTEwZTdjNzNkNDI5YzU3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNTgxLDggKzU4MSw2IEBACiAJCTkzRTJBMUE0MTIzQjBCM0MwMDlGRTEyQSAvKiBX
ZWJEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRTJBMUEyMTIzQjBCM0MwMDlGRTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdpb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Uy
QTFBNTEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJvYXJkUmVnaW9uLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkExQTMxMjNCMEIzQzAwOUZF
MTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tbSAqLzsgfTsKIAkJOTNGREU5MzMwRDc5Q0FGMzAw
NzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGREU5MzIwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3Rv
cnlJbnRlcm5hbC5oICovOyB9OwotCQk5QUNDMDdCQzI1Qzg1QTQ3MDBEQzYzODYgLyogV2ViTWVk
aWFLZXlTeXN0ZW1DbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QUNDMDdCQjI1Qzg1QTQ3MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQubW0gKi87IH07Ci0JCTlBQ0MwN0JFMjVDODVBNTkwMERDNjM4NiAvKiBXZWJNZWRpYUtl
eVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUFDQzA3QkQyNUM4NUE1OTAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50
LmggKi87IH07CiAJCUExMEMxRDE4MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURl
bGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTBDMUQxMDE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5oICovOyB9
OwogCQlBMTBDMUQxOTE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwQzFEMTEx
ODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUubSAqLzsgfTsKIAkJQTEw
QzFEMUExODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwQzFEMTIxODIw
MkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5oICovOyB9OwpAQCAt
MTQxNCw4ICsxNDEyLDYgQEAKIAkJOTNFMkExQTIxMjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hi
b2FyZFJlZ2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXNoYm9h
cmRSZWdpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMkExQTMxMjNCMEIz
QzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYkRhc2hib2FyZFJlZ2lvbi5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNGREU5MzIwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJIaXN0b3J5SW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUFDQzA3QkIyNUM4NUE0NzAwREM2
Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTlBQ0MwN0JEMjVDODVBNTkwMERDNjM4NiAvKiBXZWJNZWRpYUtl
eVN5c3RlbUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRp
YUtleVN5c3RlbUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5Q0FFOUQw
NzAyNTJBNDEzMEVDQTE2RUEgLyogV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQk5Q0YwRTI0OTAyMTM2MUIwMEVDQTE2RUEgLyogV2ViRnJhbWVQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVQ
cml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwogCQlBMTBDMUQxMDE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxl
Z2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZWZhdWx0Rm9ybURl
bGVnYXRlLmg7IHBhdGggPSBpb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0Rm9ybURlbGVn
YXRlLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTI2NzcsOCArMjY3Myw2IEBA
CiAJCQkJOTM0NUQ0RUIwMzY1QzVCMjAwODYzNUNFIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQ
YW5lbC5tICovLAogCQkJCUNEOEJGQ0U2MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2Ny
ZWVuTGlzdGVuZXIuaCAqLywKIAkJCQlDRDhCRkNFNTE1NTMxMjI0MDA1QUZCMjUgLyogV2ViS2l0
RnVsbFNjcmVlbkxpc3RlbmVyLm1tICovLAotCQkJCTlBQ0MwN0JEMjVDODVBNTkwMERDNjM4NiAv
KiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovLAotCQkJCTlBQ0MwN0JCMjVDODVBNDcwMERD
NjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbSAqLywKIAkJCQkzMUMxMUE2QzE0NzY1
NTJFMDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8sCiAJCQkJMzFDMTFBNkQx
NDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSAqLywKIAkJCQlBNThB
NTc5NzE0M0U3MjcwMDAxMjVGNTAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCAqLywK
QEAgLTMxMTQsNyArMzEwOCw2IEBACiAJCQkJOTM5ODEwNzkwODI0QkYwMTAwOERGMDM4IC8qIFdl
YkxvY2FsaXphYmxlU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MkQzMjQxMzFFRDFF
MDAwNzVGQTRCIC8qIFdlYkxvY2FsaXphYmxlU3RyaW5nc0ludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMTBDMUQ4MDE4MjAzMDNEMDAzNjg4M0EgLyogV2ViTWFpbERlbGVnYXRlLmggaW4g
SGVhZGVycyAqLywKLQkJCQk5QUNDMDdCRTI1Qzg1QTU5MDBEQzYzODYgLyogV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MkU1RjQ1MUFCRjg4NzUwMDAzQjE2
NCAvKiBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MTBDMUQ3MjE4MjAzMDBFMDAzNjg4M0EgLyogV2ViTUlNRVR5cGVSZWdpc3RyeS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTE4NUY2MjYxMDcxMkI4MDAwN0FBMzkzIC8qIFdlYk5hdmlnYXRpb25EYXRh
LmggaW4gSGVhZGVycyAqLywKQEAgLTM2NTcsNyArMzY1MCw2IEBACiAJCQkJNTEyMEM4MkMxRTU0
Q0U4QTAwMjVCMjUwIC8qIFdlYktpdFZlcnNpb25DaGVja3MubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlFRDVCOTUyNDExMUI3MjVBMDA0NzIyOTggLyogV2ViTG9jYWxpemFibGVTdHJpbmdzLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM0MkQzNEQxMzFFRDM4ODAwNzVGQTRCIC8qIFdlYkxvY2FsaXph
YmxlU3RyaW5nc0ludGVybmFsLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJOUFDQzA3QkMyNUM4NUE0
NzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDcyRTVGNDYxQUJGODg3NTAwMDNCMTY0IC8qIFdlYk1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTBDMUQ3MzE4MjAzMDBFMDAzNjg4M0EgLyogV2Vi
TUlNRVR5cGVSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxODVGNjI4MTA3MTJCOTcw
MDdBQTM5MyAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiNWM4
ZjUzOTQ5Y2FiYTdjMTczYjE4MWVjNDRiZDgwNDliODRhNGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0KLSNpbXBvcnQgPFdlYkNvcmUvTWVkaWFL
ZXlTeXN0ZW1DbGllbnQuaD4KLQotY2xhc3MgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQgOiBwdWJs
aWMgV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1DbGllbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KCkgPSBkZWZhdWx0
OwotCi0gICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgb3ZlcnJpZGUgeyB9Ci0KLSAgICB2b2lkIHJl
cXVlc3RNZWRpYUtleVN5c3RlbShXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRp
YUtleVN5c3RlbVJlcXVlc3QmKSBvdmVycmlkZSB7IH0KLX07Ci0KLSNlbmRpZiAvLyBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGM0NGM1MTExM2RjZGE5NWY2NjJkYzdhOTAzZDc0ZTZk
NmEyYTlkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5tbQorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiV2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaCIKLQotI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0KLSNpbXBvcnQgPFdl
YkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmg+Ci0jaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhj
ZXB0aW9ucy5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotdm9pZCBXZWJNZWRpYUtl
eVN5c3RlbUNsaWVudDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVz
dCYgcmVxdWVzdCkKLXsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLQotICAgIHJl
cXVlc3QuYWxsb3coW10geyB9KTsKLQotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLX0K
LQotI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZjQ3OGNhYTc4MjZlNmIxODBhMmQzOWI3OGU4
Y2I2ZThjYWMxNGMzNS4uZjcwYjBlYjAzMTM1ZWZlZjljMTA3YzRlNjI2NDRiZmI2YzBhMDA3ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODUsNyAr
ODUsNiBAQAogI2ltcG9ydCAiV2ViS2l0U3RhdGlzdGljc1ByaXZhdGUuaCIKICNpbXBvcnQgIldl
YktpdFZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldlYkxvY2FsaXphYmxlU3RyaW5ncy5oIgot
I2ltcG9ydCAiV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCIKICNpbXBvcnQgIldlYk5TRGF0YUV4
dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNEYXRhRXh0cmFzUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2Vi
TlNEaWN0aW9uYXJ5RXh0cmFzLmgiCkBAIC0xNTY5LDkgKzE1NjgsNiBAQCAtICh2b2lkKV9jb21t
b25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3Vw
TmFtZTooTlNTdAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmICFQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKCpfcHJp
dmF0ZS0+cGFnZSwgKm5ldyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudChzZWxmKSk7CiAjZW5k
aWYKLSNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIFdlYkNvcmU6OnByb3ZpZGVNZWRp
YUtleVN5c3RlbVRvKCpfcHJpdmF0ZS0+cGFnZSwgKm5ldyBXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dCgpKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgX3ByaXZh
dGUtPnBhZ2UtPnNldFJlbW90ZUluc3BlY3Rpb25BbGxvd2VkKHRydWUpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDgwMTZmNTIyNWI2NDEyZjFl
N2YyYzg1YmZmMzQwOGQxYzM4NmI4YjUuLjNiMTQ2ZmFmNDRlMmRiZmIwMDk5Y2Y1MzY2MDJiZDYz
Mzc4NTM5YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMS0wMi0wOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzI0ODAs
IHIyNzI0ODEsIGFuZCByMjcyNTAwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIxNTg2CisKKyAgICAgICAgQ2F1c2VkIGFzc2VydGlvbiBmYWlsdXJl
IHNlZW4gd2l0aCBFTUUgdGVzdHMKKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisg
ICAgICAgICJQZXJtaXNzaW9uIHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mg
c3VwcG9ydCIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTE4NworICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjcyNDgw
CisKKyAgICAgICAgIlVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBhZnRlciByMjcyNDgwIgorICAgICAg
ICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjcyNDgxCisKKyAgICAgICAgIlBl
cm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lzdGVtIGFjY2VzcyBzdXBwb3J0Igor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3Cisg
ICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzI1MDAKKwogMjAyMS0w
Mi0wOCAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2J1
aWxkLndlYmtpdC5vcmddIEFkZCBIVE1MIGZpbGUgdGhhdCB0cmFuc2xhdGVzIGEgYnVpbGRlciBu
YW1lIGFuZCBudW1iZXIgcGFpciB0byBhIHZhbGlkIEJ1aWxkYm90IFVSTApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVz
dFJ1bm5lci5pZGwKaW5kZXggYTA3MWVjZGRkOWU0MzQ4M2ZlNzcxOTY4NmMzNWE0ZjM3YjhiMWJj
Ny4uZGIxNTk5YTJjNTYwMmFlODFhYjJmMjRlMDhmOWY5NTUzOWMwNWI5YSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCkBAIC00MDgsNyArNDA4LDQgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIg
ewogCiAgICAgLy8gU3BlZWNoUmVjb2duaXRpb24KICAgICB1bmRlZmluZWQgc2V0SXNTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2xlYW4gdmFsdWUpOwotCi0gICAgLy8gTWVk
aWFLZXlTeXN0ZW0KLSAgICB1bmRlZmluZWQgc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25H
cmFudGVkKGJvb2xlYW4gdmFsdWUpOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDg2NGNjZTI4NTk3YTQxOGQ4
OWE1MzU3ZGM5MjAwY2NkMDE5NGM3ZDUuLjYzODA5ODkyNTE4Y2NlM2NmZDZiYTJkZmFjZGM2ZjVl
ZjkwM2JhYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMjA4NCwxMSArMjA4NCw2IEBAIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkK
ICAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgic2V0SXNTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25HcmFudGVkIiwgZ3JhbnRlZCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0SXNN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKLXsKLSAgICBwb3N0
U3luY2hyb25vdXNQYWdlTWVzc2FnZSgic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFu
dGVkIiwgZ3JhbnRlZCk7Ci19Ci0KIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggYmNmNzEwYjdiODU0NjlmOWJjNjkyMDQxMjgy
NzE0NmQyM2IzYmM5Ny4uOTNhOTdjYmRkZTQ4NzVjYmQzMzVhNzBmY2I5ZmY1M2RiNGYyOGI0NCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKQEAgLTUxOSw4ICs1MTksNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldElzU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKIAotICAgIHZvaWQgc2V0SXNNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wpOwotCiBwcml2YXRlOgogICAgIFRlc3RS
dW5uZXIoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRl
eCBiM2YzYjkzM2Q5ZGFmMDA2ZTBmZjg3MzI0NGU3NWE5MzZmNzIyOGQ4Li5kMmNiZWY0MjUzZGZl
NjUxMzI4NzIzZDU3OWRiMzQxNGJmMWRhNzhjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtNDYsNyArNDYsNiBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0Zy
YW1lSW5mb1JlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0hUVFBDb29raWVTdG9yZVJlZi5oPgog
I2luY2x1ZGUgPFdlYktpdC9XS0ljb25EYXRhYmFzZS5oPgotI2luY2x1ZGUgPFdlYktpdC9XS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTWVz
c2FnZUxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja0Rpc3BsYXkuaD4KICNpbmNs
dWRlIDxXZWJLaXQvV0tNb2NrTWVkaWFEZXZpY2UuaD4KQEAgLTM0NCwyMSArMzQzLDYgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6c2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVk
KGJvb2wgZ3JhbnRlZCkKICAgICBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRl
ZCA9IGdyYW50ZWQ7CiB9CiAKLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1N0
cmluZ1JlZiwgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBjYWxsYmFjaykK
LXsKLSAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29tcGxldGVNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DaGVjayhjYWxsYmFjayk7Ci19Ci0KLXZvaWQgVGVzdENvbnRyb2xsZXI6OmNv
bXBsZXRlTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2soV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFja1JlZiBjYWxsYmFjaykKLXsKLSAgICBXS01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvbkNhbGxiYWNrQ29tcGxldGUoY2FsbGJhY2ssIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25HcmFudGVkKTsKLX0KLQotdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SXNNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKLXsKLSAgICBtX2lzTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uR3JhbnRlZCA9IGdyYW50ZWQ7Ci19Ci0KIFdLUGFnZVJlZiBUZXN0Q29udHJv
bGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBj
b25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tX
aW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
IHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9y
bVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBAIC03MTUsOCArNjk5
LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0
IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29v
a2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFTdG9y
ZSgpKSwgbnVsbHB0ciwgbnVsbHB0cik7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29u
ZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWMTYgcGFnZVVJ
Q2xpZW50ID0gewotICAgICAgICB7IDE2LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisgICAgV0tQ
YWdlVUlDbGllbnRWMTUgcGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDE1LCBtX21haW5XZWJW
aWV3LmdldCgpIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAt
NzkwLDggKzc3NCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0
aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb25maXJtCiAgICAgICAgIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3MsCiAgICAgICAgIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCi0gICAg
ICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QsCi0g
ICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKKyAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdAog
ICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwg
JnBhZ2VVSUNsaWVudC5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCmluZGV4IDgxOGMyYjRlYzRhNTYyYmMwNjdhNGYzZDVjZWJiY2RiZDA1YzA0N2MuLmJiNzVk
NTA3MDJjM2E1M2YzOWRlMTU4MWRjYzRkM2IzMzczOTY0Y2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTM1Niw5ICszNTYsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjb21wbGV0ZVNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrKFdLU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uQ2FsbGJhY2tSZWYpOwogICAgIHZvaWQgc2V0SXNTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wpOwogCi0gICAgdm9pZCBjb21wbGV0ZU1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkNoZWNrKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tS
ZWYpOwotICAgIHZvaWQgc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wp
OwotCiBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGdl
bmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMmKTsKICAgICBXS1JldGFp
blB0cjxXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmPiBnZW5lcmF0ZUNvbnRleHRDb25maWd1cmF0
aW9uKGNvbnN0IFRlc3RPcHRpb25zJikgY29uc3Q7CkBAIC02NTAsOCArNjQ3LDYgQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAgICAgYm9vbCBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3Jh
bnRlZCB7IGZhbHNlIH07Ci0KLSAgICBib29sIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25H
cmFudGVkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDU1MDM1NWM3YjhiOTg0ODRhN2QyOGNm
NTU5NWY2Mzg3NTE3YmY0YmEuLjU5OGRmYzdkMWFjMGUzN2JiMjJmYjc4NGJhMTU0YWI3NDc3YWVh
MTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMzYw
LDExICsxMzYwLDYgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlk
UmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQogCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVz
c2FnZU5hbWUsICJzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQiKSkgewotICAg
ICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25HcmFudGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9Ci0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBhYzI4ZWIwMzBlZjNmNTYyN2RhMmM2MDQzMDQ4ZWJkMzA2MWM3
YzIzLi43MmI1YTdkYWVmZWZiYTdmNzkzZjBmNzVlMDAwNzA0ZWZlYWY3MzYxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMjEtMDItMDggIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcyNDgwLCByMjcyNDgx
LCBhbmQgcjI3MjUwMC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTU4NgorCisgICAgICAgIENhdXNlZCBhc3NlcnRpb24gZmFpbHVyZSBzZWVuIHdp
dGggRU1FIHRlc3RzCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKKworICAgICAgICAi
UGVybWlzc2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQi
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjExODcK
KyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI3MjQ4MAorCisgICAg
ICAgICJVbnJldmlld2VkLCBidWlsZCBmaXggYWZ0ZXIgcjI3MjQ4MCIKKyAgICAgICAgaHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI3MjQ4MQorCisgICAgICAgICJQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydCIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE4NworICAgICAgICBo
dHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjcyNTAwCisKIDIwMjEtMDItMDggIFJv
YiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBNYWtlIGdldFN0YXJ0RW5kTGlz
dENoaWxkcmVuIGNoZWNrIHJlbmRlcmVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nl
c3MtZXhwZWN0ZWQudHh0CmluZGV4IDEyMGJhMWYyYzI4N2NlYjc2OGVmMGE2ZjRhMmY4ZTQ5MmVl
YTRhYTAuLjIwOTIzNGQ1MTE5OGYwYzEyNDhhZWQ2ZWMzYjc1NjNhMTc1MGRkYzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVt
QWNjZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVk
aWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQKQEAgLTMxLDEwICszMSw2
IEBAIFJVTihjYXBhYmlsaXRpZXMucGVyc2lzdGVudFN0YXRlID0gIm5vdC1hbGxvd2VkIikKIFJV
Tihwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygib3JnLndl
YmtpdC5tb2NrIiwgW2NhcGFiaWxpdGllc10pKQogUHJvbWlzZSByZXNvbHZlZCBPSwogCi1SVU4o
dGVzdFJ1bm5lci5zZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoZmFsc2UpKQot
UlVOKHByb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcu
d2Via2l0Lm1vY2siLCBbY2FwYWJpbGl0aWVzXSkpCi1Qcm9taXNlIHJlamVjdGVkIGNvcnJlY3Rs
eSBPSwotCiBSVU4ocHJvbWlzZSA9IG1lZGlhS2V5U3lzdGVtQWNjZXNzLmNyZWF0ZU1lZGlhS2V5
cygpKQogUHJvbWlzZSByZXNvbHZlZCBPSwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sIGIvTGF5b3V0
VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRt
bAppbmRleCA1NTViOWVlNzY5ZWViZDE2ZDlhNjc2OTJiNjM3MDNkNGNhMzJjNzA5Li40Nzk2ZjE4
YzIwMWYxNzQ2ZDdkZjQzMjc0MmQ5NzVjNzVlZTRiYTc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVt
QWNjZXNzLmh0bWwKQEAgLTg0LDEzICs4NCw2IEBACiAgICAgICAgIH0sCiAKICAgICAgICAgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBydW4oJ3Rlc3RSdW5uZXIuc2V0SXNNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25HcmFudGVkKGZhbHNlKScpOwotICAgICAgICAgICAgcnVuKCdwcm9taXNlID0g
bmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygib3JnLndlYmtpdC5tb2NrIiwg
W2NhcGFiaWxpdGllc10pJyk7Ci0gICAgICAgICAgICBzaG91bGRSZWplY3QocHJvbWlzZSkudGhl
bihuZXh0LCBuZXh0KTsKLSAgICAgICAgfSwKLQotICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKHRy
dWUpOwogICAgICAgICAgICAgcnVuKCdwcm9taXNlID0gbWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3Jl
YXRlTWVkaWFLZXlzKCknKTsKICAgICAgICAgICAgIHNob3VsZFJlc29sdmUocHJvbWlzZSkudGhl
bihuZXh0LCBuZXh0KTsKICAgICAgICAgfSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>